aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/encryption/appinfo/application.php30
-rw-r--r--apps/encryption/appinfo/routes.php5
-rw-r--r--apps/encryption/controller/settingscontroller.php131
-rw-r--r--apps/encryption/controller/statuscontroller.php21
-rw-r--r--apps/encryption/js/encryption.js19
-rw-r--r--apps/encryption/js/settings-admin.js19
-rw-r--r--apps/encryption/js/settings-personal.js43
-rw-r--r--apps/encryption/l10n/ar.js2
-rw-r--r--apps/encryption/l10n/ar.json2
-rw-r--r--apps/encryption/l10n/ast.js2
-rw-r--r--apps/encryption/l10n/ast.json2
-rw-r--r--apps/encryption/l10n/az.js5
-rw-r--r--apps/encryption/l10n/az.json5
-rw-r--r--apps/encryption/l10n/bg_BG.js5
-rw-r--r--apps/encryption/l10n/bg_BG.json5
-rw-r--r--apps/encryption/l10n/bs.js1
-rw-r--r--apps/encryption/l10n/bs.json1
-rw-r--r--apps/encryption/l10n/ca.js2
-rw-r--r--apps/encryption/l10n/ca.json2
-rw-r--r--apps/encryption/l10n/cs_CZ.js8
-rw-r--r--apps/encryption/l10n/cs_CZ.json8
-rw-r--r--apps/encryption/l10n/da.js5
-rw-r--r--apps/encryption/l10n/da.json5
-rw-r--r--apps/encryption/l10n/de.js5
-rw-r--r--apps/encryption/l10n/de.json5
-rw-r--r--apps/encryption/l10n/de_DE.js5
-rw-r--r--apps/encryption/l10n/de_DE.json5
-rw-r--r--apps/encryption/l10n/el.js8
-rw-r--r--apps/encryption/l10n/el.json8
-rw-r--r--apps/encryption/l10n/en_GB.js8
-rw-r--r--apps/encryption/l10n/en_GB.json8
-rw-r--r--apps/encryption/l10n/eo.js1
-rw-r--r--apps/encryption/l10n/eo.json1
-rw-r--r--apps/encryption/l10n/es.js13
-rw-r--r--apps/encryption/l10n/es.json13
-rw-r--r--apps/encryption/l10n/es_AR.js2
-rw-r--r--apps/encryption/l10n/es_AR.json2
-rw-r--r--apps/encryption/l10n/es_MX.js2
-rw-r--r--apps/encryption/l10n/es_MX.json2
-rw-r--r--apps/encryption/l10n/et_EE.js5
-rw-r--r--apps/encryption/l10n/et_EE.json5
-rw-r--r--apps/encryption/l10n/eu.js5
-rw-r--r--apps/encryption/l10n/eu.json5
-rw-r--r--apps/encryption/l10n/fa.js1
-rw-r--r--apps/encryption/l10n/fa.json1
-rw-r--r--apps/encryption/l10n/fi_FI.js5
-rw-r--r--apps/encryption/l10n/fi_FI.json5
-rw-r--r--apps/encryption/l10n/fr.js11
-rw-r--r--apps/encryption/l10n/fr.json11
-rw-r--r--apps/encryption/l10n/gl.js7
-rw-r--r--apps/encryption/l10n/gl.json7
-rw-r--r--apps/encryption/l10n/hr.js2
-rw-r--r--apps/encryption/l10n/hr.json2
-rw-r--r--apps/encryption/l10n/hu_HU.js2
-rw-r--r--apps/encryption/l10n/hu_HU.json2
-rw-r--r--apps/encryption/l10n/id.js5
-rw-r--r--apps/encryption/l10n/id.json5
-rw-r--r--apps/encryption/l10n/it.js8
-rw-r--r--apps/encryption/l10n/it.json8
-rw-r--r--apps/encryption/l10n/ja.js5
-rw-r--r--apps/encryption/l10n/ja.json5
-rw-r--r--apps/encryption/l10n/ko.js5
-rw-r--r--apps/encryption/l10n/ko.json5
-rw-r--r--apps/encryption/l10n/lt_LT.js2
-rw-r--r--apps/encryption/l10n/lt_LT.json2
-rw-r--r--apps/encryption/l10n/lv.js1
-rw-r--r--apps/encryption/l10n/lv.json1
-rw-r--r--apps/encryption/l10n/nb_NO.js5
-rw-r--r--apps/encryption/l10n/nb_NO.json5
-rw-r--r--apps/encryption/l10n/nl.js8
-rw-r--r--apps/encryption/l10n/nl.json8
-rw-r--r--apps/encryption/l10n/pl.js5
-rw-r--r--apps/encryption/l10n/pl.json5
-rw-r--r--apps/encryption/l10n/pt_BR.js5
-rw-r--r--apps/encryption/l10n/pt_BR.json5
-rw-r--r--apps/encryption/l10n/pt_PT.js8
-rw-r--r--apps/encryption/l10n/pt_PT.json8
-rw-r--r--apps/encryption/l10n/ro.js10
-rw-r--r--apps/encryption/l10n/ro.json10
-rw-r--r--apps/encryption/l10n/ru.js8
-rw-r--r--apps/encryption/l10n/ru.json8
-rw-r--r--apps/encryption/l10n/sk_SK.js5
-rw-r--r--apps/encryption/l10n/sk_SK.json5
-rw-r--r--apps/encryption/l10n/sl.js5
-rw-r--r--apps/encryption/l10n/sl.json5
-rw-r--r--apps/encryption/l10n/sq.js1
-rw-r--r--apps/encryption/l10n/sq.json1
-rw-r--r--apps/encryption/l10n/sr.js5
-rw-r--r--apps/encryption/l10n/sr.json5
-rw-r--r--apps/encryption/l10n/sr@latin.js1
-rw-r--r--apps/encryption/l10n/sr@latin.json1
-rw-r--r--apps/encryption/l10n/sv.js5
-rw-r--r--apps/encryption/l10n/sv.json5
-rw-r--r--apps/encryption/l10n/tr.js8
-rw-r--r--apps/encryption/l10n/tr.json8
-rw-r--r--apps/encryption/l10n/uk.js9
-rw-r--r--apps/encryption/l10n/uk.json9
-rw-r--r--apps/encryption/l10n/vi.js1
-rw-r--r--apps/encryption/l10n/vi.json1
-rw-r--r--apps/encryption/l10n/zh_CN.js4
-rw-r--r--apps/encryption/l10n/zh_CN.json4
-rw-r--r--apps/encryption/l10n/zh_TW.js2
-rw-r--r--apps/encryption/l10n/zh_TW.json2
-rw-r--r--apps/encryption/lib/crypto/crypt.php9
-rw-r--r--apps/encryption/lib/crypto/encryption.php14
-rw-r--r--apps/encryption/lib/keymanager.php54
-rw-r--r--apps/encryption/settings/settings-personal.php2
-rw-r--r--apps/encryption/tests/controller/SettingsControllerTest.php222
-rw-r--r--apps/encryption/tests/lib/crypto/encryptionTest.php27
-rw-r--r--apps/encryption_dummy/appinfo/app.php4
-rw-r--r--apps/encryption_dummy/lib/dummymodule.php7
-rw-r--r--apps/files/appinfo/remote.php1
-rw-r--r--apps/files/appinfo/routes.php2
-rw-r--r--apps/files/css/files.css22
-rw-r--r--apps/files/js/file-upload.js12
-rw-r--r--apps/files/js/fileactions.js15
-rw-r--r--apps/files/js/filelist.js3
-rw-r--r--apps/files/l10n/ca.js1
-rw-r--r--apps/files/l10n/ca.json1
-rw-r--r--apps/files/l10n/cs_CZ.js1
-rw-r--r--apps/files/l10n/cs_CZ.json1
-rw-r--r--apps/files/l10n/de.js1
-rw-r--r--apps/files/l10n/de.json1
-rw-r--r--apps/files/l10n/de_DE.js1
-rw-r--r--apps/files/l10n/de_DE.json1
-rw-r--r--apps/files/l10n/el.js1
-rw-r--r--apps/files/l10n/el.json1
-rw-r--r--apps/files/l10n/en_GB.js2
-rw-r--r--apps/files/l10n/en_GB.json2
-rw-r--r--apps/files/l10n/es.js1
-rw-r--r--apps/files/l10n/es.json1
-rw-r--r--apps/files/l10n/et_EE.js10
-rw-r--r--apps/files/l10n/et_EE.json10
-rw-r--r--apps/files/l10n/fi_FI.js1
-rw-r--r--apps/files/l10n/fi_FI.json1
-rw-r--r--apps/files/l10n/fr.js3
-rw-r--r--apps/files/l10n/fr.json3
-rw-r--r--apps/files/l10n/gl.js1
-rw-r--r--apps/files/l10n/gl.json1
-rw-r--r--apps/files/l10n/id.js4
-rw-r--r--apps/files/l10n/id.json4
-rw-r--r--apps/files/l10n/it.js1
-rw-r--r--apps/files/l10n/it.json1
-rw-r--r--apps/files/l10n/ja.js1
-rw-r--r--apps/files/l10n/ja.json1
-rw-r--r--apps/files/l10n/lb.js1
-rw-r--r--apps/files/l10n/lb.json1
-rw-r--r--apps/files/l10n/nl.js1
-rw-r--r--apps/files/l10n/nl.json1
-rw-r--r--apps/files/l10n/ro.js1
-rw-r--r--apps/files/l10n/ro.json1
-rw-r--r--apps/files/l10n/ru.js1
-rw-r--r--apps/files/l10n/ru.json1
-rw-r--r--apps/files/l10n/sr.js1
-rw-r--r--apps/files/l10n/sr.json1
-rw-r--r--apps/files/l10n/uk.js6
-rw-r--r--apps/files/l10n/uk.json6
-rw-r--r--apps/files/templates/list.php2
-rw-r--r--apps/files/tests/js/fileUploadSpec.js59
-rw-r--r--apps/files/tests/js/fileactionsSpec.js42
-rw-r--r--apps/files/tests/js/filelistSpec.js9
-rw-r--r--apps/files_external/3rdparty/composer.json2
-rw-r--r--apps/files_external/3rdparty/composer.lock14
-rw-r--r--apps/files_external/3rdparty/composer/installed.json14
-rw-r--r--apps/files_external/3rdparty/icewind/smb/composer.json2
-rw-r--r--apps/files_external/3rdparty/icewind/smb/src/Parser.php1
-rw-r--r--apps/files_external/appinfo/routes.php8
-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/fr.js2
-rw-r--r--apps/files_external/l10n/fr.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/ro.js7
-rw-r--r--apps/files_external/l10n/ro.json7
-rw-r--r--apps/files_external/l10n/uk.js6
-rw-r--r--apps/files_external/l10n/uk.json6
-rw-r--r--apps/files_external/lib/dropbox.php14
-rw-r--r--apps/files_external/tests/js/mountsfilelistSpec.js2
-rw-r--r--apps/files_sharing/api/local.php2
-rw-r--r--apps/files_sharing/appinfo/app.php37
-rw-r--r--apps/files_sharing/appinfo/application.php124
-rw-r--r--apps/files_sharing/appinfo/routes.php16
-rw-r--r--apps/files_sharing/application.php115
-rw-r--r--apps/files_sharing/js/public.js7
-rw-r--r--apps/files_sharing/l10n/cs_CZ.js1
-rw-r--r--apps/files_sharing/l10n/cs_CZ.json1
-rw-r--r--apps/files_sharing/l10n/de.js1
-rw-r--r--apps/files_sharing/l10n/de.json1
-rw-r--r--apps/files_sharing/l10n/de_DE.js1
-rw-r--r--apps/files_sharing/l10n/de_DE.json1
-rw-r--r--apps/files_sharing/l10n/el.js1
-rw-r--r--apps/files_sharing/l10n/el.json1
-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/et_EE.js1
-rw-r--r--apps/files_sharing/l10n/et_EE.json1
-rw-r--r--apps/files_sharing/l10n/fi_FI.js1
-rw-r--r--apps/files_sharing/l10n/fi_FI.json1
-rw-r--r--apps/files_sharing/l10n/fr.js3
-rw-r--r--apps/files_sharing/l10n/fr.json3
-rw-r--r--apps/files_sharing/l10n/gl.js1
-rw-r--r--apps/files_sharing/l10n/gl.json1
-rw-r--r--apps/files_sharing/l10n/it.js1
-rw-r--r--apps/files_sharing/l10n/it.json1
-rw-r--r--apps/files_sharing/l10n/ko.js1
-rw-r--r--apps/files_sharing/l10n/ko.json1
-rw-r--r--apps/files_sharing/l10n/nl.js1
-rw-r--r--apps/files_sharing/l10n/nl.json1
-rw-r--r--apps/files_sharing/l10n/pt_BR.js1
-rw-r--r--apps/files_sharing/l10n/pt_BR.json1
-rw-r--r--apps/files_sharing/l10n/pt_PT.js1
-rw-r--r--apps/files_sharing/l10n/pt_PT.json1
-rw-r--r--apps/files_sharing/l10n/ro.js3
-rw-r--r--apps/files_sharing/l10n/ro.json3
-rw-r--r--apps/files_sharing/l10n/sr.js7
-rw-r--r--apps/files_sharing/l10n/sr.json7
-rw-r--r--apps/files_sharing/l10n/uk.js1
-rw-r--r--apps/files_sharing/l10n/uk.json1
-rw-r--r--apps/files_sharing/lib/helper.php2
-rw-r--r--apps/files_sharing/lib/mountprovider.php72
-rw-r--r--apps/files_sharing/lib/propagation/changewatcher.php76
-rw-r--r--apps/files_sharing/lib/propagation/propagationmanager.php112
-rw-r--r--apps/files_sharing/lib/propagation/recipientpropagator.php118
-rw-r--r--apps/files_sharing/lib/readonlycache.php42
-rw-r--r--apps/files_sharing/lib/readonlywrapper.php5
-rw-r--r--apps/files_sharing/lib/sharedmount.php21
-rw-r--r--apps/files_sharing/lib/sharedstorage.php50
-rw-r--r--apps/files_sharing/lib/updater.php39
-rw-r--r--apps/files_sharing/publicwebdav.php3
-rw-r--r--apps/files_sharing/tests/cache.php4
-rw-r--r--apps/files_sharing/tests/controller/sharecontroller.php2
-rw-r--r--apps/files_sharing/tests/etagpropagation.php345
-rw-r--r--apps/files_sharing/tests/permissions.php4
-rw-r--r--apps/files_sharing/tests/sharedstorage.php5
-rw-r--r--apps/files_sharing/tests/sizepropagation.php (renamed from apps/files_sharing/tests/propagation.php)4
-rw-r--r--apps/files_sharing/tests/testcase.php9
-rw-r--r--apps/files_sharing/tests/watcher.php4
-rw-r--r--apps/files_trashbin/appinfo/routes.php2
-rw-r--r--apps/files_trashbin/command/expire.php1
-rw-r--r--apps/files_trashbin/l10n/et_EE.js2
-rw-r--r--apps/files_trashbin/l10n/et_EE.json2
-rw-r--r--apps/files_trashbin/l10n/ro.js6
-rw-r--r--apps/files_trashbin/l10n/ro.json6
-rw-r--r--apps/files_trashbin/lib/storage.php5
-rw-r--r--apps/files_trashbin/tests/trashbin.php4
-rw-r--r--apps/files_versions/appinfo/routes.php2
-rw-r--r--apps/files_versions/tests/versions.php4
-rw-r--r--apps/provisioning_api/appinfo/routes.php42
-rw-r--r--apps/provisioning_api/lib/apps.php2
-rw-r--r--apps/provisioning_api/lib/groups.php4
-rw-r--r--apps/provisioning_api/lib/users.php6
-rw-r--r--apps/provisioning_api/tests/appstest.php2
-rw-r--r--apps/provisioning_api/tests/groupstest.php4
-rw-r--r--apps/provisioning_api/tests/userstest.php2
-rw-r--r--apps/user_ldap/ajax/getNewServerConfigPrefix.php4
-rw-r--r--apps/user_ldap/css/settings.css1
-rw-r--r--apps/user_ldap/group_ldap.php2
-rw-r--r--apps/user_ldap/js/wizard/wizardTabAbstractFilter.js1
-rw-r--r--apps/user_ldap/js/wizard/wizardTabElementary.js36
-rw-r--r--apps/user_ldap/js/wizard/wizardTabGeneric.js8
-rw-r--r--apps/user_ldap/js/wizard/wizardTabLoginFilter.js1
-rw-r--r--apps/user_ldap/l10n/bg_BG.js3
-rw-r--r--apps/user_ldap/l10n/bg_BG.json3
-rw-r--r--apps/user_ldap/l10n/cs_CZ.js44
-rw-r--r--apps/user_ldap/l10n/cs_CZ.json44
-rw-r--r--apps/user_ldap/l10n/de.js36
-rw-r--r--apps/user_ldap/l10n/de.json36
-rw-r--r--apps/user_ldap/l10n/de_DE.js34
-rw-r--r--apps/user_ldap/l10n/de_DE.json34
-rw-r--r--apps/user_ldap/l10n/el.js31
-rw-r--r--apps/user_ldap/l10n/el.json31
-rw-r--r--apps/user_ldap/l10n/en_GB.js44
-rw-r--r--apps/user_ldap/l10n/en_GB.json44
-rw-r--r--apps/user_ldap/l10n/it.js44
-rw-r--r--apps/user_ldap/l10n/it.json44
-rw-r--r--apps/user_ldap/l10n/ja.js3
-rw-r--r--apps/user_ldap/l10n/ja.json3
-rw-r--r--apps/user_ldap/l10n/nl.js44
-rw-r--r--apps/user_ldap/l10n/nl.json44
-rw-r--r--apps/user_ldap/l10n/ro.js8
-rw-r--r--apps/user_ldap/l10n/ro.json8
-rw-r--r--apps/user_ldap/l10n/ru.js12
-rw-r--r--apps/user_ldap/l10n/ru.json12
-rw-r--r--apps/user_ldap/l10n/sr.js23
-rw-r--r--apps/user_ldap/l10n/sr.json23
-rw-r--r--apps/user_ldap/l10n/sr@latin.js1
-rw-r--r--apps/user_ldap/l10n/sr@latin.json1
-rw-r--r--apps/user_ldap/l10n/tr.js5
-rw-r--r--apps/user_ldap/l10n/tr.json5
-rw-r--r--apps/user_ldap/l10n/uk.js18
-rw-r--r--apps/user_ldap/l10n/uk.json18
-rw-r--r--apps/user_ldap/tests/wizard.php6
-rw-r--r--apps/user_ldap/user_ldap.php10
-rw-r--r--apps/user_webdavauth/l10n/ro.js1
-rw-r--r--apps/user_webdavauth/l10n/ro.json1
298 files changed, 3032 insertions, 526 deletions
diff --git a/apps/encryption/appinfo/application.php b/apps/encryption/appinfo/application.php
index 5d0fe2c9184..fa620992c81 100644
--- a/apps/encryption/appinfo/application.php
+++ b/apps/encryption/appinfo/application.php
@@ -24,8 +24,10 @@
namespace OCA\Encryption\AppInfo;
-use OC\Files\Filesystem;
use OC\Files\View;
+use OCA\Encryption\Controller\RecoveryController;
+use OCA\Encryption\Controller\SettingsController;
+use OCA\Encryption\Controller\StatusController;
use OCA\Encryption\Crypto\Crypt;
use OCA\Encryption\Crypto\Encryption;
use OCA\Encryption\HookManager;
@@ -126,11 +128,11 @@ class Application extends \OCP\AppFramework\App {
function (IAppContainer $c) {
$server = $c->getServer();
- return new KeyManager($server->getEncryptionKeyStorage(\OCA\Encryption\Crypto\Encryption::ID),
+ return new KeyManager($server->getEncryptionKeyStorage(),
$c->query('Crypt'),
$server->getConfig(),
$server->getUserSession(),
- new \OCA\Encryption\Session($server->getSession()),
+ new Session($server->getSession()),
$server->getLogger(),
$c->query('Util')
);
@@ -146,14 +148,14 @@ class Application extends \OCP\AppFramework\App {
$server->getSecureRandom(),
$c->query('KeyManager'),
$server->getConfig(),
- $server->getEncryptionKeyStorage(\OCA\Encryption\Crypto\Encryption::ID),
+ $server->getEncryptionKeyStorage(),
$server->getEncryptionFilesHelper(),
- new \OC\Files\View());
+ new View());
});
$container->registerService('RecoveryController', function (IAppContainer $c) {
$server = $c->getServer();
- return new \OCA\Encryption\Controller\RecoveryController(
+ return new RecoveryController(
$c->getAppName(),
$server->getRequest(),
$server->getConfig(),
@@ -163,7 +165,7 @@ class Application extends \OCP\AppFramework\App {
$container->registerService('StatusController', function (IAppContainer $c) {
$server = $c->getServer();
- return new \OCA\Encryption\Controller\StatusController(
+ return new StatusController(
$c->getAppName(),
$server->getRequest(),
$server->getL10N($c->getAppName()),
@@ -171,6 +173,20 @@ class Application extends \OCP\AppFramework\App {
);
});
+ $container->registerService('SettingsController', function (IAppContainer $c) {
+ $server = $c->getServer();
+ return new SettingsController(
+ $c->getAppName(),
+ $server->getRequest(),
+ $server->getL10N($c->getAppName()),
+ $server->getUserManager(),
+ $server->getUserSession(),
+ $c->query('KeyManager'),
+ $c->query('Crypt'),
+ $c->query('Session')
+ );
+ });
+
$container->registerService('UserSetup',
function (IAppContainer $c) {
$server = $c->getServer();
diff --git a/apps/encryption/appinfo/routes.php b/apps/encryption/appinfo/routes.php
index 4194308a0ce..8fa163d0751 100644
--- a/apps/encryption/appinfo/routes.php
+++ b/apps/encryption/appinfo/routes.php
@@ -31,6 +31,11 @@ namespace OCA\Encryption\AppInfo;
'verb' => 'POST'
],
[
+ 'name' => 'Settings#updatePrivateKeyPassword',
+ 'url' => '/ajax/updatePrivateKeyPassword',
+ 'verb' => 'POST'
+ ],
+ [
'name' => 'Recovery#changeRecoveryPassword',
'url' => '/ajax/changeRecoveryPassword',
'verb' => 'POST'
diff --git a/apps/encryption/controller/settingscontroller.php b/apps/encryption/controller/settingscontroller.php
new file mode 100644
index 00000000000..7fa3f469a14
--- /dev/null
+++ b/apps/encryption/controller/settingscontroller.php
@@ -0,0 +1,131 @@
+<?php
+/**
+ * @author Björn Schießle <schiessle@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OCA\Encryption\Controller;
+
+use OCA\Encryption\Crypto\Crypt;
+use OCA\Encryption\KeyManager;
+use OCA\Encryption\Session;
+use OCP\AppFramework\Controller;
+use OCP\AppFramework\Http;
+use OCP\AppFramework\Http\DataResponse;
+use OCP\IL10N;
+use OCP\IRequest;
+use OCP\IUserManager;
+use OCP\IUserSession;
+
+class SettingsController extends Controller {
+
+ /** @var IL10N */
+ private $l;
+
+ /** @var IUserManager */
+ private $userManager;
+
+ /** @var IUserSession */
+ private $userSession;
+
+ /** @var KeyManager */
+ private $keyManager;
+
+ /** @var Crypt */
+ private $crypt;
+
+ /** @var Session */
+ private $session;
+
+ /**
+ * @param string $AppName
+ * @param IRequest $request
+ * @param IL10N $l10n
+ * @param IUserManager $userManager
+ * @param IUserSession $userSession
+ * @param KeyManager $keyManager
+ * @param Crypt $crypt
+ * @param Session $session
+ */
+ public function __construct($AppName,
+ IRequest $request,
+ IL10N $l10n,
+ IUserManager $userManager,
+ IUserSession $userSession,
+ KeyManager $keyManager,
+ Crypt $crypt,
+ Session $session) {
+ parent::__construct($AppName, $request);
+ $this->l = $l10n;
+ $this->userSession = $userSession;
+ $this->userManager = $userManager;
+ $this->keyManager = $keyManager;
+ $this->crypt = $crypt;
+ $this->session = $session;
+ }
+
+
+ /**
+ * @NoAdminRequired
+ * @UseSession
+ *
+ * @param string $oldPassword
+ * @param string $newPassword
+ * @return DataResponse
+ */
+ public function updatePrivateKeyPassword($oldPassword, $newPassword) {
+ $result = false;
+ $uid = $this->userSession->getUser()->getUID();
+ $errorMessage = $this->l->t('Could not update the private key password.');
+
+ //check if password is correct
+ $passwordCorrect = $this->userManager->checkPassword($uid, $newPassword);
+
+ if ($passwordCorrect !== false) {
+ $encryptedKey = $this->keyManager->getPrivateKey($uid);
+ $decryptedKey = $this->crypt->decryptPrivateKey($encryptedKey, $oldPassword);
+
+ if ($decryptedKey) {
+ $encryptedKey = $this->crypt->symmetricEncryptFileContent($decryptedKey, $newPassword);
+ $header = $this->crypt->generateHeader();
+ if ($encryptedKey) {
+ $this->keyManager->setPrivateKey($uid, $header . $encryptedKey);
+ $this->session->setPrivateKey($decryptedKey);
+ $result = true;
+ }
+ } else {
+ $errorMessage = $this->l->t('The old password was not correct, please try again.');
+ }
+ } else {
+ $errorMessage = $this->l->t('The current log-in password was not correct, please try again.');
+ }
+
+ if ($result === true) {
+ $this->session->setStatus(Session::INIT_SUCCESSFUL);
+ return new DataResponse(
+ ['message' => (string) $this->l->t('Private key password successfully updated.')]
+ );
+ } else {
+ return new DataResponse(
+ ['message' => (string) $errorMessage],
+ Http::STATUS_BAD_REQUEST
+ );
+ }
+
+ }
+}
diff --git a/apps/encryption/controller/statuscontroller.php b/apps/encryption/controller/statuscontroller.php
index fc06d7f86a0..ef3d70a0b4c 100644
--- a/apps/encryption/controller/statuscontroller.php
+++ b/apps/encryption/controller/statuscontroller.php
@@ -59,30 +59,29 @@ class StatusController extends Controller {
*/
public function getStatus() {
+ $status = 'error';
+ $message = '';
switch( $this->session->getStatus()) {
case Session::INIT_EXECUTED:
$status = 'success';
$message = (string)$this->l->t(
- 'Invalid private key for Encryption App. Please update your private'
- . ' key password in your personal settings to recover access to your'
- . ' encrypted files.', array('app' => 'encryption'));
+ 'Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.'
+ );
break;
case Session::NOT_INITIALIZED:
$status = 'success';
$message = (string)$this->l->t(
- 'Encryption App is enabled but your keys are not initialized,'
- . ' please log-out and log-in again', array('app' => 'encryption'));
+ 'Encryption App is enabled but your keys are not initialized, please log-out and log-in again'
+ );
break;
- default:
- $status = 'error';
}
return new DataResponse(
- array(
+ [
'status' => $status,
- 'data' => array(
- 'message' => $message)
- )
+ 'data' => [
+ 'message' => $message]
+ ]
);
}
diff --git a/apps/encryption/js/encryption.js b/apps/encryption/js/encryption.js
index c02b4d74ae8..ea6a5596f24 100644
--- a/apps/encryption/js/encryption.js
+++ b/apps/encryption/js/encryption.js
@@ -5,25 +5,23 @@
* See the COPYING-README file.
*/
+if (!OC.Encryption) {
+ OC.Encryption = {};
+}
+
/**
* @namespace
* @memberOf OC
*/
-OC.Encryption= {
- MIGRATION_OPEN: 0,
- MIGRATION_COMPLETED: 1,
- MIGRATION_IN_PROGRESS: -1,
-
-
+OC.Encryption = {
displayEncryptionWarning: function () {
-
- if (!OC.Notification.isHidden()) {
+ if (!OC.currentUser || !OC.Notification.isHidden()) {
return;
}
$.get(
- OC.generateUrl('/apps/encryption/ajax/getStatus')
- , function( result ) {
+ OC.generateUrl('/apps/encryption/ajax/getStatus'),
+ function (result) {
if (result.status === "success") {
OC.Notification.show(result.data.message);
}
@@ -31,7 +29,6 @@ OC.Encryption= {
);
}
};
-
$(document).ready(function() {
// wait for other apps/extensions to register their event handlers and file actions
// in the "ready" clause
diff --git a/apps/encryption/js/settings-admin.js b/apps/encryption/js/settings-admin.js
index 36765adf3e4..bb539f6a4e2 100644
--- a/apps/encryption/js/settings-admin.js
+++ b/apps/encryption/js/settings-admin.js
@@ -12,17 +12,20 @@ $(document).ready(function(){
$( 'input:radio[name="adminEnableRecovery"]' ).change(
function() {
var recoveryStatus = $( this ).val();
- var oldStatus = (1+parseInt(recoveryStatus)) % 2;
+ var oldStatus = (1+parseInt(recoveryStatus, 10)) % 2;
var recoveryPassword = $( '#encryptionRecoveryPassword' ).val();
var confirmPassword = $( '#repeatEncryptionRecoveryPassword' ).val();
OC.msg.startSaving('#encryptionSetRecoveryKey .msg');
$.post(
- OC.generateUrl('/apps/encryption/ajax/adminRecovery')
- , { adminEnableRecovery: recoveryStatus, recoveryPassword: recoveryPassword, confirmPassword: confirmPassword }
- , function( result ) {
+ OC.generateUrl('/apps/encryption/ajax/adminRecovery'),
+ { adminEnableRecovery: recoveryStatus,
+ recoveryPassword: recoveryPassword,
+ confirmPassword: confirmPassword },
+ function( result ) {
OC.msg.finishedSaving('#encryptionSetRecoveryKey .msg', result);
if (result.status === "error") {
- $('input:radio[name="adminEnableRecovery"][value="'+oldStatus.toString()+'"]').attr("checked", "true");
+ $('input:radio[name="adminEnableRecovery"][value="'+oldStatus.toString()+'"]')
+ .attr("checked", "true");
} else {
if (recoveryStatus === "0") {
$('p[name="changeRecoveryPasswordBlock"]').addClass("hidden");
@@ -44,9 +47,9 @@ $(document).ready(function(){
var confirmNewPassword = $('#repeatedNewEncryptionRecoveryPassword').val();
OC.msg.startSaving('#encryptionChangeRecoveryKey .msg');
$.post(
- OC.generateUrl('/apps/encryption/ajax/changeRecoveryPassword')
- , { oldPassword: oldRecoveryPassword, newPassword: newRecoveryPassword, confirmPassword: confirmNewPassword }
- , function( data ) {
+ OC.generateUrl('/apps/encryption/ajax/changeRecoveryPassword'),
+ { oldPassword: oldRecoveryPassword, newPassword: newRecoveryPassword, confirmPassword: confirmNewPassword },
+ function( data ) {
OC.msg.finishedSaving('#encryptionChangeRecoveryKey .msg', data);
}
);
diff --git a/apps/encryption/js/settings-personal.js b/apps/encryption/js/settings-personal.js
index dcfbba4ecde..e36f10a244e 100644
--- a/apps/encryption/js/settings-personal.js
+++ b/apps/encryption/js/settings-personal.js
@@ -4,23 +4,26 @@
* See the COPYING-README file.
*/
-function updatePrivateKeyPasswd() {
- var oldPrivateKeyPassword = $('input:password[id="oldPrivateKeyPassword"]').val();
- var newPrivateKeyPassword = $('input:password[id="newPrivateKeyPassword"]').val();
- OC.msg.startSaving('#encryption .msg');
- $.post(
- OC.generateUrl('/apps/encryption/ajax/updatePrivateKeyPassword')
- , { oldPassword: oldPrivateKeyPassword, newPassword: newPrivateKeyPassword }
- , function( data ) {
- if (data.status === "error") {
- OC.msg.finishedSaving('#encryption .msg', data);
- } else {
- OC.msg.finishedSaving('#encryption .msg', data);
- }
- }
- );
+if (!OC.Encryption) {
+ OC.Encryption = {};
}
+OC.Encryption = {
+ updatePrivateKeyPassword: function() {
+ var oldPrivateKeyPassword = $('input:password[id="oldPrivateKeyPassword"]').val();
+ var newPrivateKeyPassword = $('input:password[id="newPrivateKeyPassword"]').val();
+ OC.msg.startSaving('#encryption .msg');
+ $.post(
+ OC.generateUrl('/apps/encryption/ajax/updatePrivateKeyPassword'),
+ {oldPassword: oldPrivateKeyPassword, newPassword: newPrivateKeyPassword}
+ ).success(function (response) {
+ OC.msg.finishedSuccess('#encryption .msg', response.message);
+ }).fail(function (response) {
+ OC.msg.finishedError('#encryption .msg', response.responseJSON.message);
+ });
+ }
+};
+
$(document).ready(function(){
// Trigger ajax on recoveryAdmin status change
@@ -29,9 +32,9 @@ $(document).ready(function(){
var recoveryStatus = $( this ).val();
OC.msg.startAction('#userEnableRecovery .msg', 'Updating recovery keys. This can take some time...');
$.post(
- OC.generateUrl('/apps/encryption/ajax/userSetRecovery')
- , { userEnableRecovery: recoveryStatus }
- , function( data ) {
+ OC.generateUrl('/apps/encryption/ajax/userSetRecovery'),
+ { userEnableRecovery: recoveryStatus },
+ function( data ) {
OC.msg.finishedAction('#userEnableRecovery .msg', data);
}
);
@@ -48,7 +51,7 @@ $(document).ready(function(){
if (newPrivateKeyPassword !== '' && oldPrivateKeyPassword !== '' ) {
$('button:button[name="submitChangePrivateKeyPassword"]').removeAttr("disabled");
if(event.which === 13) {
- updatePrivateKeyPasswd();
+ OC.Encryption.updatePrivateKeyPassword();
}
} else {
$('button:button[name="submitChangePrivateKeyPassword"]').attr("disabled", "true");
@@ -56,7 +59,7 @@ $(document).ready(function(){
});
$('button:button[name="submitChangePrivateKeyPassword"]').click(function() {
- updatePrivateKeyPasswd();
+ OC.Encryption.updatePrivateKeyPassword();
});
});
diff --git a/apps/encryption/l10n/ar.js b/apps/encryption/l10n/ar.js
index e4f0499f9f1..7f2dcb55c02 100644
--- a/apps/encryption/l10n/ar.js
+++ b/apps/encryption/l10n/ar.js
@@ -7,6 +7,8 @@ OC.L10N.register(
"Could not disable recovery key. Please check your recovery key password!" : "لا يمكن تعطيل مفتاح الاستعادة, يرجى التحقق من كلمة مرور مفتاح الاستعادة!",
"Password successfully changed." : "تم تغيير كلمة المرور بنجاح.",
"Could not change the password. Maybe the old password was not correct." : "تعذر تغيير كلمة المرور. من الممكن ان كلمة المرور القديمة غير صحيحة.",
+ "Private key password successfully updated." : "تم تحديث كلمة المرور للمفتاح الخاص بنجاح.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "المفتاح الخاص بتشفير التطبيقات غير صالح. يرجى تحديث كلمة السر الخاصة بالمفتاح الخاص من الإعدادت الشخصية حتى تتمكن من الوصول للملفات المشفرة.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "تم تمكين تشفير البرامج لكن لم يتم تهيئة المفاتيح لذا يرجى تسجيل الخروج ثم تسجيل الدخول مرة آخرى.",
"Enable recovery key (allow to recover users files in case of password loss):" : "تفعيل استعادة المفتاح (سوف يمكنك من استعادة ملفات المستخدمين في حال فقدان كلمة المرور):",
"Recovery key password" : "استعادة كلمة مرور المفتاح",
diff --git a/apps/encryption/l10n/ar.json b/apps/encryption/l10n/ar.json
index dfb2066e42c..3808eeb9e76 100644
--- a/apps/encryption/l10n/ar.json
+++ b/apps/encryption/l10n/ar.json
@@ -5,6 +5,8 @@
"Could not disable recovery key. Please check your recovery key password!" : "لا يمكن تعطيل مفتاح الاستعادة, يرجى التحقق من كلمة مرور مفتاح الاستعادة!",
"Password successfully changed." : "تم تغيير كلمة المرور بنجاح.",
"Could not change the password. Maybe the old password was not correct." : "تعذر تغيير كلمة المرور. من الممكن ان كلمة المرور القديمة غير صحيحة.",
+ "Private key password successfully updated." : "تم تحديث كلمة المرور للمفتاح الخاص بنجاح.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "المفتاح الخاص بتشفير التطبيقات غير صالح. يرجى تحديث كلمة السر الخاصة بالمفتاح الخاص من الإعدادت الشخصية حتى تتمكن من الوصول للملفات المشفرة.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "تم تمكين تشفير البرامج لكن لم يتم تهيئة المفاتيح لذا يرجى تسجيل الخروج ثم تسجيل الدخول مرة آخرى.",
"Enable recovery key (allow to recover users files in case of password loss):" : "تفعيل استعادة المفتاح (سوف يمكنك من استعادة ملفات المستخدمين في حال فقدان كلمة المرور):",
"Recovery key password" : "استعادة كلمة مرور المفتاح",
diff --git a/apps/encryption/l10n/ast.js b/apps/encryption/l10n/ast.js
index d8d07eeef0e..7316c5b6651 100644
--- a/apps/encryption/l10n/ast.js
+++ b/apps/encryption/l10n/ast.js
@@ -7,6 +7,8 @@ OC.L10N.register(
"Could not disable recovery key. Please check your recovery key password!" : "Nun pudo deshabilitase la clave de recuperación. Por favor comprueba la contraseña!",
"Password successfully changed." : "Camudóse la contraseña",
"Could not change the password. Maybe the old password was not correct." : "Nun pudo camudase la contraseña. Comprueba que la contraseña actual seya correuta.",
+ "Private key password successfully updated." : "Contraseña de clave privada anovada correchamente.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Clave privada non válida pa Encryption. Por favor, anueva la to contraseña de clave nos tos axustes personales pa recuperar l'accesu a los tos ficheros cifraos.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicación Encryption ta habilitada pero les tos claves nun s'aniciaron, por favor zarra sesión y aníciala de nueves",
"Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los ficheros del usuariu en casu de perda de la contraseña);",
"Recovery key password" : "Contraseña de clave de recuperación",
diff --git a/apps/encryption/l10n/ast.json b/apps/encryption/l10n/ast.json
index 094184150bb..6639d1341ca 100644
--- a/apps/encryption/l10n/ast.json
+++ b/apps/encryption/l10n/ast.json
@@ -5,6 +5,8 @@
"Could not disable recovery key. Please check your recovery key password!" : "Nun pudo deshabilitase la clave de recuperación. Por favor comprueba la contraseña!",
"Password successfully changed." : "Camudóse la contraseña",
"Could not change the password. Maybe the old password was not correct." : "Nun pudo camudase la contraseña. Comprueba que la contraseña actual seya correuta.",
+ "Private key password successfully updated." : "Contraseña de clave privada anovada correchamente.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Clave privada non válida pa Encryption. Por favor, anueva la to contraseña de clave nos tos axustes personales pa recuperar l'accesu a los tos ficheros cifraos.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicación Encryption ta habilitada pero les tos claves nun s'aniciaron, por favor zarra sesión y aníciala de nueves",
"Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los ficheros del usuariu en casu de perda de la contraseña);",
"Recovery key password" : "Contraseña de clave de recuperación",
diff --git a/apps/encryption/l10n/az.js b/apps/encryption/l10n/az.js
index 8b81de3e86d..bbb3e72ce95 100644
--- a/apps/encryption/l10n/az.js
+++ b/apps/encryption/l10n/az.js
@@ -13,6 +13,11 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Xahiş olunur yeni bərpa açarını təkrarlayasınız",
"Password successfully changed." : "Şifrə uğurla dəyişdirildi.",
"Could not change the password. Maybe the old password was not correct." : "Şifrəni dəyişmək olmur, ola bilər ki, köhnə şifrə düzgün olmayıb.",
+ "Could not update the private key password." : "Gizli açarın şifrəsini yeniləmək mümkün olmadı.",
+ "The old password was not correct, please try again." : "Köhnə şifrə düzgün deyildi, xahiş olunur yenidən cəhd edəsiniz.",
+ "The current log-in password was not correct, please try again." : "Hal-hazırki istifadəçi şifrəsi düzgün deyildi, xahiş olunur yenidən cəhd edəsiniz.",
+ "Private key password successfully updated." : "Gizli aşar şifrəsi uğurla yeniləndi.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifrələnmə proqramı üçün yalnış şəxsi açar. Xahiş olunur öz şəxsi quraşdırmalarınızda şəxsi açarınızı yeniləyəsiniz ki, şifrələnmiş fayllara yetki ala biləsiniz. ",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Proqram şifrələnməsi işə salınıb ancaq, sizin açarlar inisializasiya edilməyib. Xahiş edilir çıxıb yenidən daxil olasınız",
"Enable recovery key (allow to recover users files in case of password loss):" : "Bərpa açarını aktivləşdir(şifrə itirilməsi hadısələrində, istifadəçi fayllarının bərpasına izin verir)",
"Recovery key password" : "Açar şifrənin bərpa edilməsi",
diff --git a/apps/encryption/l10n/az.json b/apps/encryption/l10n/az.json
index 204ada9af50..78bedc365b1 100644
--- a/apps/encryption/l10n/az.json
+++ b/apps/encryption/l10n/az.json
@@ -11,6 +11,11 @@
"Please repeat the new recovery password" : "Xahiş olunur yeni bərpa açarını təkrarlayasınız",
"Password successfully changed." : "Şifrə uğurla dəyişdirildi.",
"Could not change the password. Maybe the old password was not correct." : "Şifrəni dəyişmək olmur, ola bilər ki, köhnə şifrə düzgün olmayıb.",
+ "Could not update the private key password." : "Gizli açarın şifrəsini yeniləmək mümkün olmadı.",
+ "The old password was not correct, please try again." : "Köhnə şifrə düzgün deyildi, xahiş olunur yenidən cəhd edəsiniz.",
+ "The current log-in password was not correct, please try again." : "Hal-hazırki istifadəçi şifrəsi düzgün deyildi, xahiş olunur yenidən cəhd edəsiniz.",
+ "Private key password successfully updated." : "Gizli aşar şifrəsi uğurla yeniləndi.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifrələnmə proqramı üçün yalnış şəxsi açar. Xahiş olunur öz şəxsi quraşdırmalarınızda şəxsi açarınızı yeniləyəsiniz ki, şifrələnmiş fayllara yetki ala biləsiniz. ",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Proqram şifrələnməsi işə salınıb ancaq, sizin açarlar inisializasiya edilməyib. Xahiş edilir çıxıb yenidən daxil olasınız",
"Enable recovery key (allow to recover users files in case of password loss):" : "Bərpa açarını aktivləşdir(şifrə itirilməsi hadısələrində, istifadəçi fayllarının bərpasına izin verir)",
"Recovery key password" : "Açar şifrənin bərpa edilməsi",
diff --git a/apps/encryption/l10n/bg_BG.js b/apps/encryption/l10n/bg_BG.js
index c450f36ae4d..f809545a6b9 100644
--- a/apps/encryption/l10n/bg_BG.js
+++ b/apps/encryption/l10n/bg_BG.js
@@ -13,6 +13,11 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Моля, въведи повторна новата парола за възстановяване",
"Password successfully changed." : "Паролата е успешно променена.",
"Could not change the password. Maybe the old password was not correct." : "Грешка при промяна на паролата. Може би старата ти парола е сгрешена.",
+ "Could not update the private key password." : "Неуспешна промяна на паролата на личния ключ",
+ "The old password was not correct, please try again." : "Старата парола е грешна, опитай отново.",
+ "The current log-in password was not correct, please try again." : "Грешна парола за вписване, опитай отново.",
+ "Private key password successfully updated." : "Успешно променена тайната парола за ключа.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невалиден личен ключ за Криптиращата Програма. Моля, обнови личния си ключ в Лични настройки, за да възстановиш достъпа до криптираните си файловете.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Програмата за криптиране е включена, но твоите ключове не са зададени, моля отпиши си и се впиши отново.",
"Enable recovery key (allow to recover users files in case of password loss):" : "Включи опцията възстановяване на ключ (разрешава да възстанови файловете на потребителите в случай на загубена парола):",
"Recovery key password" : "Парола за възстановяане на ключа",
diff --git a/apps/encryption/l10n/bg_BG.json b/apps/encryption/l10n/bg_BG.json
index 1f81c3b5dfe..ca285bfff49 100644
--- a/apps/encryption/l10n/bg_BG.json
+++ b/apps/encryption/l10n/bg_BG.json
@@ -11,6 +11,11 @@
"Please repeat the new recovery password" : "Моля, въведи повторна новата парола за възстановяване",
"Password successfully changed." : "Паролата е успешно променена.",
"Could not change the password. Maybe the old password was not correct." : "Грешка при промяна на паролата. Може би старата ти парола е сгрешена.",
+ "Could not update the private key password." : "Неуспешна промяна на паролата на личния ключ",
+ "The old password was not correct, please try again." : "Старата парола е грешна, опитай отново.",
+ "The current log-in password was not correct, please try again." : "Грешна парола за вписване, опитай отново.",
+ "Private key password successfully updated." : "Успешно променена тайната парола за ключа.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невалиден личен ключ за Криптиращата Програма. Моля, обнови личния си ключ в Лични настройки, за да възстановиш достъпа до криптираните си файловете.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Програмата за криптиране е включена, но твоите ключове не са зададени, моля отпиши си и се впиши отново.",
"Enable recovery key (allow to recover users files in case of password loss):" : "Включи опцията възстановяване на ключ (разрешава да възстанови файловете на потребителите в случай на загубена парола):",
"Recovery key password" : "Парола за възстановяане на ключа",
diff --git a/apps/encryption/l10n/bs.js b/apps/encryption/l10n/bs.js
index ce2ac3f7d3a..bd38f94486e 100644
--- a/apps/encryption/l10n/bs.js
+++ b/apps/encryption/l10n/bs.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"encryption",
{
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za šifriranje. Molim ažurirajte lozinku svoga privatnog ključa u svojim osobnim postavkama da biste obnovili pristup svojim šifriranim datotekama.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je uključena, ali vaši ključevi nisu inicializirani, molim odjavite se i ponovno prijavite",
"Enabled" : "Aktivirano",
"Disabled" : "Onemogućeno"
diff --git a/apps/encryption/l10n/bs.json b/apps/encryption/l10n/bs.json
index fea356ccfe1..4d858dbb966 100644
--- a/apps/encryption/l10n/bs.json
+++ b/apps/encryption/l10n/bs.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za šifriranje. Molim ažurirajte lozinku svoga privatnog ključa u svojim osobnim postavkama da biste obnovili pristup svojim šifriranim datotekama.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je uključena, ali vaši ključevi nisu inicializirani, molim odjavite se i ponovno prijavite",
"Enabled" : "Aktivirano",
"Disabled" : "Onemogućeno"
diff --git a/apps/encryption/l10n/ca.js b/apps/encryption/l10n/ca.js
index 13c838f40a4..c81840fae7d 100644
--- a/apps/encryption/l10n/ca.js
+++ b/apps/encryption/l10n/ca.js
@@ -7,6 +7,8 @@ OC.L10N.register(
"Could not disable recovery key. Please check your recovery key password!" : "No s'ha pogut desactivar la calu de recuperació. Comproveu la contrasenya de la clau de recuperació!",
"Password successfully changed." : "La contrasenya s'ha canviat.",
"Could not change the password. Maybe the old password was not correct." : "No s'ha pogut canviar la contrasenya. Potser la contrasenya anterior no era correcta.",
+ "Private key password successfully updated." : "La contrasenya de la clau privada s'ha actualitzat.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clau privada de l'aplicació d'encriptació no és vàlida! Actualitzeu la contrasenya de la clau privada a l'arranjament personal per recuperar els fitxers encriptats.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.",
"Enable recovery key (allow to recover users files in case of password loss):" : "Activa la clau de recuperació (permet recuperar fitxers d'usuaris en cas de pèrdua de contrasenya):",
"Recovery key password" : "Clau de recuperació de la contrasenya",
diff --git a/apps/encryption/l10n/ca.json b/apps/encryption/l10n/ca.json
index 0452f1b4d27..5309fafa2d6 100644
--- a/apps/encryption/l10n/ca.json
+++ b/apps/encryption/l10n/ca.json
@@ -5,6 +5,8 @@
"Could not disable recovery key. Please check your recovery key password!" : "No s'ha pogut desactivar la calu de recuperació. Comproveu la contrasenya de la clau de recuperació!",
"Password successfully changed." : "La contrasenya s'ha canviat.",
"Could not change the password. Maybe the old password was not correct." : "No s'ha pogut canviar la contrasenya. Potser la contrasenya anterior no era correcta.",
+ "Private key password successfully updated." : "La contrasenya de la clau privada s'ha actualitzat.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clau privada de l'aplicació d'encriptació no és vàlida! Actualitzeu la contrasenya de la clau privada a l'arranjament personal per recuperar els fitxers encriptats.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'aplicació d'encriptació està activada però les claus no estan inicialitzades, sortiu i acrediteu-vos de nou.",
"Enable recovery key (allow to recover users files in case of password loss):" : "Activa la clau de recuperació (permet recuperar fitxers d'usuaris en cas de pèrdua de contrasenya):",
"Recovery key password" : "Clau de recuperació de la contrasenya",
diff --git a/apps/encryption/l10n/cs_CZ.js b/apps/encryption/l10n/cs_CZ.js
index b1f765a0e10..e433bad6b97 100644
--- a/apps/encryption/l10n/cs_CZ.js
+++ b/apps/encryption/l10n/cs_CZ.js
@@ -13,7 +13,15 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Zopakujte prosím nové heslo pro obnovu",
"Password successfully changed." : "Heslo bylo úspěšně změněno.",
"Could not change the password. Maybe the old password was not correct." : "Změna hesla se nezdařila. Pravděpodobně nebylo stávající heslo zadáno správně.",
+ "Recovery Key enabled" : "Záchranný klíč povolen",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Nelze povolit záchranný klíč. Zkuste to prosím znovu nebo kontaktujte svého správce.",
+ "Could not update the private key password." : "Nelze aktualizovat heslo soukromého klíče.",
+ "The old password was not correct, please try again." : "Staré heslo nebylo zadáno správně, zkuste to prosím znovu.",
+ "The current log-in password was not correct, please try again." : "Současné přihlašovací heslo nebylo zadáno správně, zkuste to prosím znovu.",
+ "Private key password successfully updated." : "Heslo soukromého klíče úspěšně aktualizováno.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný soukromý klíč pro šifrovací aplikaci. Aktualizujte prosím heslo svého soukromého klíče ve vašem osobním nastavení, abyste znovu získali přístup k vašim zašifrovaným souborům.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikace pro šifrování je zapnuta, ale vaše klíče nejsou inicializované. Prosím odhlaste se a znovu přihlaste",
+ "ownCloud basic encryption module" : "ownCloud základní šifrovací modul",
"Enable recovery key (allow to recover users files in case of password loss):" : "Povolit klíč pro obnovu (umožňuje obnovu uživatelských souborů v případě ztráty hesla)",
"Recovery key password" : "Heslo klíče pro obnovu",
"Repeat Recovery key password" : "Zopakujte heslo klíče pro obnovu",
diff --git a/apps/encryption/l10n/cs_CZ.json b/apps/encryption/l10n/cs_CZ.json
index 8dc366486e8..164d7ac7354 100644
--- a/apps/encryption/l10n/cs_CZ.json
+++ b/apps/encryption/l10n/cs_CZ.json
@@ -11,7 +11,15 @@
"Please repeat the new recovery password" : "Zopakujte prosím nové heslo pro obnovu",
"Password successfully changed." : "Heslo bylo úspěšně změněno.",
"Could not change the password. Maybe the old password was not correct." : "Změna hesla se nezdařila. Pravděpodobně nebylo stávající heslo zadáno správně.",
+ "Recovery Key enabled" : "Záchranný klíč povolen",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Nelze povolit záchranný klíč. Zkuste to prosím znovu nebo kontaktujte svého správce.",
+ "Could not update the private key password." : "Nelze aktualizovat heslo soukromého klíče.",
+ "The old password was not correct, please try again." : "Staré heslo nebylo zadáno správně, zkuste to prosím znovu.",
+ "The current log-in password was not correct, please try again." : "Současné přihlašovací heslo nebylo zadáno správně, zkuste to prosím znovu.",
+ "Private key password successfully updated." : "Heslo soukromého klíče úspěšně aktualizováno.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný soukromý klíč pro šifrovací aplikaci. Aktualizujte prosím heslo svého soukromého klíče ve vašem osobním nastavení, abyste znovu získali přístup k vašim zašifrovaným souborům.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikace pro šifrování je zapnuta, ale vaše klíče nejsou inicializované. Prosím odhlaste se a znovu přihlaste",
+ "ownCloud basic encryption module" : "ownCloud základní šifrovací modul",
"Enable recovery key (allow to recover users files in case of password loss):" : "Povolit klíč pro obnovu (umožňuje obnovu uživatelských souborů v případě ztráty hesla)",
"Recovery key password" : "Heslo klíče pro obnovu",
"Repeat Recovery key password" : "Zopakujte heslo klíče pro obnovu",
diff --git a/apps/encryption/l10n/da.js b/apps/encryption/l10n/da.js
index 2db9f682551..18c8e22bc61 100644
--- a/apps/encryption/l10n/da.js
+++ b/apps/encryption/l10n/da.js
@@ -15,6 +15,11 @@ OC.L10N.register(
"Could not change the password. Maybe the old password was not correct." : "Kunne ikke ændre kodeordet. Måske var det gamle kodeord ikke korrekt.",
"Recovery Key enabled" : "Gendannalsesnøgle aktiv",
"Could not enable the recovery key, please try again or contact your administrator" : "Kunne ikke aktivere gendannelsesnøglen, venligst prøv igen eller kontakt din administrator",
+ "Could not update the private key password." : "Kunne ikke opdatere kodeordet til den private nøgle.",
+ "The old password was not correct, please try again." : "Det gamle kodeord var ikke korrekt, prøv venligst igen.",
+ "The current log-in password was not correct, please try again." : "Det nuværende kodeord til log-in var ikke korrekt, prøv venligst igen.",
+ "Private key password successfully updated." : "Privat nøgle kodeord succesfuldt opdateret.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøgle for krypteringsprogrammet. Opdater venligst dit kodeord for den private nøgle i dine personlige indstillinger. Det kræves for at få adgang til dine krypterede filer.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet er aktiveret, men din nøgler er ikke igangsat. Log venligst ud og ind igen.",
"ownCloud basic encryption module" : "ownCloud basis krypteringsmodul",
"Enable recovery key (allow to recover users files in case of password loss):" : "Aktiver gendannelsesnøgle (Tillad gendannelse af brugerfiler i tilfælde af tab af kodeord):",
diff --git a/apps/encryption/l10n/da.json b/apps/encryption/l10n/da.json
index 9aa80f72d74..baf52f14508 100644
--- a/apps/encryption/l10n/da.json
+++ b/apps/encryption/l10n/da.json
@@ -13,6 +13,11 @@
"Could not change the password. Maybe the old password was not correct." : "Kunne ikke ændre kodeordet. Måske var det gamle kodeord ikke korrekt.",
"Recovery Key enabled" : "Gendannalsesnøgle aktiv",
"Could not enable the recovery key, please try again or contact your administrator" : "Kunne ikke aktivere gendannelsesnøglen, venligst prøv igen eller kontakt din administrator",
+ "Could not update the private key password." : "Kunne ikke opdatere kodeordet til den private nøgle.",
+ "The old password was not correct, please try again." : "Det gamle kodeord var ikke korrekt, prøv venligst igen.",
+ "The current log-in password was not correct, please try again." : "Det nuværende kodeord til log-in var ikke korrekt, prøv venligst igen.",
+ "Private key password successfully updated." : "Privat nøgle kodeord succesfuldt opdateret.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøgle for krypteringsprogrammet. Opdater venligst dit kodeord for den private nøgle i dine personlige indstillinger. Det kræves for at få adgang til dine krypterede filer.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet er aktiveret, men din nøgler er ikke igangsat. Log venligst ud og ind igen.",
"ownCloud basic encryption module" : "ownCloud basis krypteringsmodul",
"Enable recovery key (allow to recover users files in case of password loss):" : "Aktiver gendannelsesnøgle (Tillad gendannelse af brugerfiler i tilfælde af tab af kodeord):",
diff --git a/apps/encryption/l10n/de.js b/apps/encryption/l10n/de.js
index 00d13fa660e..c248b481cf1 100644
--- a/apps/encryption/l10n/de.js
+++ b/apps/encryption/l10n/de.js
@@ -15,6 +15,11 @@ OC.L10N.register(
"Could not change the password. Maybe the old password was not correct." : "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort falsch.",
"Recovery Key enabled" : "Wiederherstellungsschlüssel aktiviert",
"Could not enable the recovery key, please try again or contact your administrator" : "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden, bitte versuche es noch einmal oder kontaktiere Deinen Administrator",
+ "Could not update the private key password." : "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden.",
+ "The old password was not correct, please try again." : "Das alte Passwort war nicht korrekt, bitte versuche es noch einmal.",
+ "The current log-in password was not correct, please try again." : "Das aktuelle Anmeldepasswort war nicht korrekt, bitte versuche es noch einmal.",
+ "Private key password successfully updated." : "Passwort des privaten Schlüssels erfolgreich aktualisiert",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselung-App. Bitte aktualisiere Dein privates Schlüssel-Passwort, um den Zugriff auf Deine verschlüsselten Dateien wiederherzustellen.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Die Verschlüsselung-App ist aktiviert, aber Deine Schlüssel sind nicht initialisiert. Bitte melde Dich nochmals ab und wieder an.",
"ownCloud basic encryption module" : "ownCloud-Basisverschlüsselungsmodul",
"Enable recovery key (allow to recover users files in case of password loss):" : "Wiederherstellungsschlüssel aktivieren (ermöglicht das Wiederherstellen von Dateien, falls das Passwort vergessen wurde):",
diff --git a/apps/encryption/l10n/de.json b/apps/encryption/l10n/de.json
index 47ee8e24cca..74c591fb632 100644
--- a/apps/encryption/l10n/de.json
+++ b/apps/encryption/l10n/de.json
@@ -13,6 +13,11 @@
"Could not change the password. Maybe the old password was not correct." : "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort falsch.",
"Recovery Key enabled" : "Wiederherstellungsschlüssel aktiviert",
"Could not enable the recovery key, please try again or contact your administrator" : "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden, bitte versuche es noch einmal oder kontaktiere Deinen Administrator",
+ "Could not update the private key password." : "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden.",
+ "The old password was not correct, please try again." : "Das alte Passwort war nicht korrekt, bitte versuche es noch einmal.",
+ "The current log-in password was not correct, please try again." : "Das aktuelle Anmeldepasswort war nicht korrekt, bitte versuche es noch einmal.",
+ "Private key password successfully updated." : "Passwort des privaten Schlüssels erfolgreich aktualisiert",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselung-App. Bitte aktualisiere Dein privates Schlüssel-Passwort, um den Zugriff auf Deine verschlüsselten Dateien wiederherzustellen.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Die Verschlüsselung-App ist aktiviert, aber Deine Schlüssel sind nicht initialisiert. Bitte melde Dich nochmals ab und wieder an.",
"ownCloud basic encryption module" : "ownCloud-Basisverschlüsselungsmodul",
"Enable recovery key (allow to recover users files in case of password loss):" : "Wiederherstellungsschlüssel aktivieren (ermöglicht das Wiederherstellen von Dateien, falls das Passwort vergessen wurde):",
diff --git a/apps/encryption/l10n/de_DE.js b/apps/encryption/l10n/de_DE.js
index cde424c218f..695937fc6c5 100644
--- a/apps/encryption/l10n/de_DE.js
+++ b/apps/encryption/l10n/de_DE.js
@@ -15,6 +15,11 @@ OC.L10N.register(
"Could not change the password. Maybe the old password was not correct." : "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort nicht richtig.",
"Recovery Key enabled" : "Wiederherstellungsschlüssel aktiviert",
"Could not enable the recovery key, please try again or contact your administrator" : "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden, bitte versuchen Sie es noch einmal oder kontaktieren Sie Ihren Administrator",
+ "Could not update the private key password." : "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden.",
+ "The old password was not correct, please try again." : "Das alte Passwort war nicht korrekt, bitte versuchen Sie es noch einmal.",
+ "The current log-in password was not correct, please try again." : "Das aktuelle Anmeldepasswort war nicht korrekt, bitte versuchen Sie es noch einmal.",
+ "Private key password successfully updated." : "Das Passwort des privaten Schlüssels wurde erfolgreich aktualisiert.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselungs-App. Bitte aktualisieren Sie Ihr privates Schlüsselpasswort, um den Zugriff auf Ihre verschlüsselten Dateien wiederherzustellen.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Verschlüsselung-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte nochmals ab- und wieder anmelden.",
"ownCloud basic encryption module" : "ownCloud-Basisverschlüsselungsmodul",
"Enable recovery key (allow to recover users files in case of password loss):" : "Aktivieren Sie den Wiederherstellungsschlüssel (erlaubt die Wiederherstellung des Zugangs zu den Benutzerdateien, wenn das Passwort verloren geht):",
diff --git a/apps/encryption/l10n/de_DE.json b/apps/encryption/l10n/de_DE.json
index 05ebedbf79c..66e7d6f9772 100644
--- a/apps/encryption/l10n/de_DE.json
+++ b/apps/encryption/l10n/de_DE.json
@@ -13,6 +13,11 @@
"Could not change the password. Maybe the old password was not correct." : "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort nicht richtig.",
"Recovery Key enabled" : "Wiederherstellungsschlüssel aktiviert",
"Could not enable the recovery key, please try again or contact your administrator" : "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden, bitte versuchen Sie es noch einmal oder kontaktieren Sie Ihren Administrator",
+ "Could not update the private key password." : "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden.",
+ "The old password was not correct, please try again." : "Das alte Passwort war nicht korrekt, bitte versuchen Sie es noch einmal.",
+ "The current log-in password was not correct, please try again." : "Das aktuelle Anmeldepasswort war nicht korrekt, bitte versuchen Sie es noch einmal.",
+ "Private key password successfully updated." : "Das Passwort des privaten Schlüssels wurde erfolgreich aktualisiert.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ungültiger privater Schlüssel für die Verschlüsselungs-App. Bitte aktualisieren Sie Ihr privates Schlüsselpasswort, um den Zugriff auf Ihre verschlüsselten Dateien wiederherzustellen.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Verschlüsselung-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte nochmals ab- und wieder anmelden.",
"ownCloud basic encryption module" : "ownCloud-Basisverschlüsselungsmodul",
"Enable recovery key (allow to recover users files in case of password loss):" : "Aktivieren Sie den Wiederherstellungsschlüssel (erlaubt die Wiederherstellung des Zugangs zu den Benutzerdateien, wenn das Passwort verloren geht):",
diff --git a/apps/encryption/l10n/el.js b/apps/encryption/l10n/el.js
index 40ec43e1f85..4b8ebdc2f7f 100644
--- a/apps/encryption/l10n/el.js
+++ b/apps/encryption/l10n/el.js
@@ -13,7 +13,15 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Παρακαλώ επαναλάβετε το νέο κωδικό επαναφοράς",
"Password successfully changed." : "Ο κωδικός αλλάχτηκε επιτυχώς.",
"Could not change the password. Maybe the old password was not correct." : "Αποτυχία αλλαγής κωδικού ίσως ο παλιός κωδικός να μην ήταν σωστός.",
+ "Recovery Key enabled" : "Κλειδί ανάκτησης ενεργοποιημένο",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Αδυναμία ενεργοποίησης κλειδιού ανάκτησης, παρακαλούμε προσπαθήστε αργότερα ή επικοινωνήστε με το διαχειριστή σας",
+ "Could not update the private key password." : "Αποτυχία ενημέρωσης του προσωπικού κλειδιού πρόσβασης",
+ "The old password was not correct, please try again." : "Το παλαιό συνθηματικό δεν είναι σωστό, παρακαλώ δοκιμάστε ξανά.",
+ "The current log-in password was not correct, please try again." : "Το τρέχον συνθηματικό δεν είναι σωστό, παρακαλώ δοκιμάστε ξανά.",
+ "Private key password successfully updated." : "Το Προσωπικό κλειδί πρόσβασης ενημερώθηκε επιτυχώς",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Άκυρο προσωπικό κλειδί για την εφαρμογή κρυπτογράφησης. Παρακαλώ ενημερώστε τον κωδικό του προσωπικού κλειδίου σας στις προσωπικές ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.",
+ "ownCloud basic encryption module" : "Βασική μονάδα κρυπτογράφησης του ",
"Enable recovery key (allow to recover users files in case of password loss):" : "Ενεργοποίηση κλειδιού ανάκτησης (επιτρέψτε την ανάκτηση αρχείων χρηστών σε περίπτωση απώλειας κωδικού):",
"Recovery key password" : "Επαναφορά κωδικού κλειδιού",
"Repeat Recovery key password" : "Επαναλάβετε το κλειδί επαναφοράς κωδικού",
diff --git a/apps/encryption/l10n/el.json b/apps/encryption/l10n/el.json
index d8d985c7773..b75921da40c 100644
--- a/apps/encryption/l10n/el.json
+++ b/apps/encryption/l10n/el.json
@@ -11,7 +11,15 @@
"Please repeat the new recovery password" : "Παρακαλώ επαναλάβετε το νέο κωδικό επαναφοράς",
"Password successfully changed." : "Ο κωδικός αλλάχτηκε επιτυχώς.",
"Could not change the password. Maybe the old password was not correct." : "Αποτυχία αλλαγής κωδικού ίσως ο παλιός κωδικός να μην ήταν σωστός.",
+ "Recovery Key enabled" : "Κλειδί ανάκτησης ενεργοποιημένο",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Αδυναμία ενεργοποίησης κλειδιού ανάκτησης, παρακαλούμε προσπαθήστε αργότερα ή επικοινωνήστε με το διαχειριστή σας",
+ "Could not update the private key password." : "Αποτυχία ενημέρωσης του προσωπικού κλειδιού πρόσβασης",
+ "The old password was not correct, please try again." : "Το παλαιό συνθηματικό δεν είναι σωστό, παρακαλώ δοκιμάστε ξανά.",
+ "The current log-in password was not correct, please try again." : "Το τρέχον συνθηματικό δεν είναι σωστό, παρακαλώ δοκιμάστε ξανά.",
+ "Private key password successfully updated." : "Το Προσωπικό κλειδί πρόσβασης ενημερώθηκε επιτυχώς",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Άκυρο προσωπικό κλειδί για την εφαρμογή κρυπτογράφησης. Παρακαλώ ενημερώστε τον κωδικό του προσωπικού κλειδίου σας στις προσωπικές ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Η εφαρμογή κρυπτογράφησης είναι ενεργοποιημένη αλλά τα κλειδιά σας δεν έχουν καταγραφεί, παρακαλώ αποσυνδεθείτε και επανασυνδεθείτε.",
+ "ownCloud basic encryption module" : "Βασική μονάδα κρυπτογράφησης του ",
"Enable recovery key (allow to recover users files in case of password loss):" : "Ενεργοποίηση κλειδιού ανάκτησης (επιτρέψτε την ανάκτηση αρχείων χρηστών σε περίπτωση απώλειας κωδικού):",
"Recovery key password" : "Επαναφορά κωδικού κλειδιού",
"Repeat Recovery key password" : "Επαναλάβετε το κλειδί επαναφοράς κωδικού",
diff --git a/apps/encryption/l10n/en_GB.js b/apps/encryption/l10n/en_GB.js
index 5478182c2de..518897fbbed 100644
--- a/apps/encryption/l10n/en_GB.js
+++ b/apps/encryption/l10n/en_GB.js
@@ -13,7 +13,15 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Please repeat the new recovery password",
"Password successfully changed." : "Password changed successfully.",
"Could not change the password. Maybe the old password was not correct." : "Could not change the password. Maybe the old password was incorrect.",
+ "Recovery Key enabled" : "Recovery Key enabled",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Could not enable the recovery key, please try again or contact your administrator",
+ "Could not update the private key password." : "Could not update the private key password.",
+ "The old password was not correct, please try again." : "The old password was not correct, please try again.",
+ "The current log-in password was not correct, please try again." : "The current log-in password was not correct, please try again.",
+ "Private key password successfully updated." : "Private key password updated successfully.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Encryption App is enabled but your keys are not initialised, please log-out and log-in again",
+ "ownCloud basic encryption module" : "ownCloud basic encryption module",
"Enable recovery key (allow to recover users files in case of password loss):" : "Enable recovery key (allow to recover users files in case of password loss):",
"Recovery key password" : "Recovery key password",
"Repeat Recovery key password" : "Repeat recovery key password",
diff --git a/apps/encryption/l10n/en_GB.json b/apps/encryption/l10n/en_GB.json
index f2b2cad62dd..19575b67aff 100644
--- a/apps/encryption/l10n/en_GB.json
+++ b/apps/encryption/l10n/en_GB.json
@@ -11,7 +11,15 @@
"Please repeat the new recovery password" : "Please repeat the new recovery password",
"Password successfully changed." : "Password changed successfully.",
"Could not change the password. Maybe the old password was not correct." : "Could not change the password. Maybe the old password was incorrect.",
+ "Recovery Key enabled" : "Recovery Key enabled",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Could not enable the recovery key, please try again or contact your administrator",
+ "Could not update the private key password." : "Could not update the private key password.",
+ "The old password was not correct, please try again." : "The old password was not correct, please try again.",
+ "The current log-in password was not correct, please try again." : "The current log-in password was not correct, please try again.",
+ "Private key password successfully updated." : "Private key password updated successfully.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Encryption App is enabled but your keys are not initialised, please log-out and log-in again",
+ "ownCloud basic encryption module" : "ownCloud basic encryption module",
"Enable recovery key (allow to recover users files in case of password loss):" : "Enable recovery key (allow to recover users files in case of password loss):",
"Recovery key password" : "Recovery key password",
"Repeat Recovery key password" : "Repeat recovery key password",
diff --git a/apps/encryption/l10n/eo.js b/apps/encryption/l10n/eo.js
index de3e4e2ea40..b547556342c 100644
--- a/apps/encryption/l10n/eo.js
+++ b/apps/encryption/l10n/eo.js
@@ -3,6 +3,7 @@ OC.L10N.register(
{
"Password successfully changed." : "La pasvorto sukcese ŝanĝiĝis.",
"Could not change the password. Maybe the old password was not correct." : "Ne eblis ŝanĝi la pasvorton. Eble la malnova pasvorto malĝustis.",
+ "Private key password successfully updated." : "La pasvorto de la malpublika klavo sukcese ĝisdatiĝis.",
"Enabled" : "Kapabligita",
"Disabled" : "Malkapabligita",
"Change Password" : "Ŝarĝi pasvorton",
diff --git a/apps/encryption/l10n/eo.json b/apps/encryption/l10n/eo.json
index 60560f163a5..d907cc2a493 100644
--- a/apps/encryption/l10n/eo.json
+++ b/apps/encryption/l10n/eo.json
@@ -1,6 +1,7 @@
{ "translations": {
"Password successfully changed." : "La pasvorto sukcese ŝanĝiĝis.",
"Could not change the password. Maybe the old password was not correct." : "Ne eblis ŝanĝi la pasvorton. Eble la malnova pasvorto malĝustis.",
+ "Private key password successfully updated." : "La pasvorto de la malpublika klavo sukcese ĝisdatiĝis.",
"Enabled" : "Kapabligita",
"Disabled" : "Malkapabligita",
"Change Password" : "Ŝarĝi pasvorton",
diff --git a/apps/encryption/l10n/es.js b/apps/encryption/l10n/es.js
index db3b2a213c5..6a682d1a209 100644
--- a/apps/encryption/l10n/es.js
+++ b/apps/encryption/l10n/es.js
@@ -1,11 +1,11 @@
OC.L10N.register(
"encryption",
{
- "Missing recovery key password" : "Falta contraseña de recuperación.",
+ "Missing recovery key password" : "Falta contraseña de recuperación",
"Please repeat the recovery key password" : "Por favor, repita la contraseña de recuperación",
- "Repeated recovery key password does not match the provided recovery key password" : "La contraseña de recuperación reintroducida no coincide con la contraseña de recuperación proporcionada.",
+ "Repeated recovery key password does not match the provided recovery key password" : "La contraseña de recuperación reintroducida no coincide con la contraseña de recuperación proporcionada",
"Recovery key successfully enabled" : "Se ha habilitado la recuperación de archivos",
- "Could not enable recovery key. Please check your recovery key password!" : "No se pudo habilitar la clave de recuperación. Por favor compruebe su contraseña.",
+ "Could not enable recovery key. Please check your recovery key password!" : "No se pudo habilitar la contraseña de recuperación. Por favor compruebe su contraseña de recuperación!",
"Recovery key successfully disabled" : "Clave de recuperación deshabilitada",
"Could not disable recovery key. Please check your recovery key password!" : "No se pudo deshabilitar la clave de recuperación. Por favor, ¡compruebe su contraseña!",
"Please provide the old recovery password" : "Por favor, ingrese su antigua contraseña de recuperación",
@@ -15,8 +15,13 @@ OC.L10N.register(
"Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.",
"Recovery Key enabled" : "Recuperación de clave habilitada",
"Could not enable the recovery key, please try again or contact your administrator" : "No se pudo habilitar la clave de recuperación, por favor vuelva a intentarlo o póngase en contacto con el administrador",
+ "Could not update the private key password." : "No se pudo actualizar la contraseña de la clave privada.",
+ "The old password was not correct, please try again." : "La antigua contraseña no es correcta, por favor intente de nuevo.",
+ "The current log-in password was not correct, please try again." : "La contraseña de inicio de sesión actual no es correcto, por favor intente de nuevo.",
+ "Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la app de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La app de cifrado está habilitada pero sus claves no se han inicializado, por favor, cierre la sesión y vuelva a iniciarla de nuevo.",
- "ownCloud basic encryption module" : "Módulo base de encriptación ownCloud",
+ "ownCloud basic encryption module" : "Módulo básico de encriptación ownCloud",
"Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los ficheros del usuario en caso de pérdida de la contraseña);",
"Recovery key password" : "Contraseña de clave de recuperación",
"Repeat Recovery key password" : "Repite la contraseña de clave de recuperación",
diff --git a/apps/encryption/l10n/es.json b/apps/encryption/l10n/es.json
index 57606eeea57..9aaedac1f10 100644
--- a/apps/encryption/l10n/es.json
+++ b/apps/encryption/l10n/es.json
@@ -1,9 +1,9 @@
{ "translations": {
- "Missing recovery key password" : "Falta contraseña de recuperación.",
+ "Missing recovery key password" : "Falta contraseña de recuperación",
"Please repeat the recovery key password" : "Por favor, repita la contraseña de recuperación",
- "Repeated recovery key password does not match the provided recovery key password" : "La contraseña de recuperación reintroducida no coincide con la contraseña de recuperación proporcionada.",
+ "Repeated recovery key password does not match the provided recovery key password" : "La contraseña de recuperación reintroducida no coincide con la contraseña de recuperación proporcionada",
"Recovery key successfully enabled" : "Se ha habilitado la recuperación de archivos",
- "Could not enable recovery key. Please check your recovery key password!" : "No se pudo habilitar la clave de recuperación. Por favor compruebe su contraseña.",
+ "Could not enable recovery key. Please check your recovery key password!" : "No se pudo habilitar la contraseña de recuperación. Por favor compruebe su contraseña de recuperación!",
"Recovery key successfully disabled" : "Clave de recuperación deshabilitada",
"Could not disable recovery key. Please check your recovery key password!" : "No se pudo deshabilitar la clave de recuperación. Por favor, ¡compruebe su contraseña!",
"Please provide the old recovery password" : "Por favor, ingrese su antigua contraseña de recuperación",
@@ -13,8 +13,13 @@
"Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.",
"Recovery Key enabled" : "Recuperación de clave habilitada",
"Could not enable the recovery key, please try again or contact your administrator" : "No se pudo habilitar la clave de recuperación, por favor vuelva a intentarlo o póngase en contacto con el administrador",
+ "Could not update the private key password." : "No se pudo actualizar la contraseña de la clave privada.",
+ "The old password was not correct, please try again." : "La antigua contraseña no es correcta, por favor intente de nuevo.",
+ "The current log-in password was not correct, please try again." : "La contraseña de inicio de sesión actual no es correcto, por favor intente de nuevo.",
+ "Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la app de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La app de cifrado está habilitada pero sus claves no se han inicializado, por favor, cierre la sesión y vuelva a iniciarla de nuevo.",
- "ownCloud basic encryption module" : "Módulo base de encriptación ownCloud",
+ "ownCloud basic encryption module" : "Módulo básico de encriptación ownCloud",
"Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los ficheros del usuario en caso de pérdida de la contraseña);",
"Recovery key password" : "Contraseña de clave de recuperación",
"Repeat Recovery key password" : "Repite la contraseña de clave de recuperación",
diff --git a/apps/encryption/l10n/es_AR.js b/apps/encryption/l10n/es_AR.js
index 917ba2547d5..527536b26fb 100644
--- a/apps/encryption/l10n/es_AR.js
+++ b/apps/encryption/l10n/es_AR.js
@@ -7,6 +7,8 @@ OC.L10N.register(
"Could not disable recovery key. Please check your recovery key password!" : "No fue posible deshabilitar la clave de recuperación. Por favor, comprobá tu contraseña.",
"Password successfully changed." : "Tu contraseña fue cambiada",
"Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Comprobá que la contraseña actual sea correcta.",
+ "Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Llave privada inválida para la aplicación de encriptación. Por favor actualice la clave de la llave privada en las configuraciones personales para recobrar el acceso a sus archivos encriptados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encriptación está habilitada pero las llaves no fueron inicializadas, por favor termine y vuelva a iniciar la sesión",
"Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar clave de recuperación (te permite recuperar los archivos de usuario en el caso que pierdas la contraseña):",
"Recovery key password" : "Contraseña de recuperación de clave",
diff --git a/apps/encryption/l10n/es_AR.json b/apps/encryption/l10n/es_AR.json
index ad5d1af33ac..7b154b351e7 100644
--- a/apps/encryption/l10n/es_AR.json
+++ b/apps/encryption/l10n/es_AR.json
@@ -5,6 +5,8 @@
"Could not disable recovery key. Please check your recovery key password!" : "No fue posible deshabilitar la clave de recuperación. Por favor, comprobá tu contraseña.",
"Password successfully changed." : "Tu contraseña fue cambiada",
"Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Comprobá que la contraseña actual sea correcta.",
+ "Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Llave privada inválida para la aplicación de encriptación. Por favor actualice la clave de la llave privada en las configuraciones personales para recobrar el acceso a sus archivos encriptados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encriptación está habilitada pero las llaves no fueron inicializadas, por favor termine y vuelva a iniciar la sesión",
"Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar clave de recuperación (te permite recuperar los archivos de usuario en el caso que pierdas la contraseña):",
"Recovery key password" : "Contraseña de recuperación de clave",
diff --git a/apps/encryption/l10n/es_MX.js b/apps/encryption/l10n/es_MX.js
index f3e4c44e385..a3b4645040d 100644
--- a/apps/encryption/l10n/es_MX.js
+++ b/apps/encryption/l10n/es_MX.js
@@ -7,6 +7,8 @@ OC.L10N.register(
"Could not disable recovery key. Please check your recovery key password!" : "No se pudo deshabilitar la clave de recuperación. Por favor compruebe su contraseña!",
"Password successfully changed." : "Su contraseña ha sido cambiada",
"Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.",
+ "Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la aplicación de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.",
"Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los archivos del usuario en caso de pérdida de la contraseña);",
"Recovery key password" : "Contraseña de clave de recuperación",
diff --git a/apps/encryption/l10n/es_MX.json b/apps/encryption/l10n/es_MX.json
index 0bc5526d172..96d745e8f0d 100644
--- a/apps/encryption/l10n/es_MX.json
+++ b/apps/encryption/l10n/es_MX.json
@@ -5,6 +5,8 @@
"Could not disable recovery key. Please check your recovery key password!" : "No se pudo deshabilitar la clave de recuperación. Por favor compruebe su contraseña!",
"Password successfully changed." : "Su contraseña ha sido cambiada",
"Could not change the password. Maybe the old password was not correct." : "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.",
+ "Private key password successfully updated." : "Contraseña de clave privada actualizada con éxito.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "La clave privada no es válida para la aplicación de cifrado. Por favor, actualiza la contraseña de tu clave privada en tus ajustes personales para recuperar el acceso a tus archivos cifrados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de crifrado está habilitada pero tus claves no han sido inicializadas, por favor, cierra la sesión y vuelva a iniciarla de nuevo.",
"Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar la clave de recuperación (permite recuperar los archivos del usuario en caso de pérdida de la contraseña);",
"Recovery key password" : "Contraseña de clave de recuperación",
diff --git a/apps/encryption/l10n/et_EE.js b/apps/encryption/l10n/et_EE.js
index 8e60b9028ec..67e7993cdd6 100644
--- a/apps/encryption/l10n/et_EE.js
+++ b/apps/encryption/l10n/et_EE.js
@@ -13,6 +13,11 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Palun korda uut taastevõtme parooli",
"Password successfully changed." : "Parool edukalt vahetatud.",
"Could not change the password. Maybe the old password was not correct." : "Ei suutnud vahetada parooli. Võib-olla on vana parool valesti sisestatud.",
+ "Could not update the private key password." : "Ei suutnud uuendada privaatse võtme parooli.",
+ "The old password was not correct, please try again." : "Vana parool polnud õige, palun proovi uuesti.",
+ "The current log-in password was not correct, please try again." : "Praeguse sisselogimise parool polnud õige, palun proovi uuesti.",
+ "Private key password successfully updated." : "Privaatse võtme parool edukalt uuendatud.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Vigane Krüpteerimisrakendi privaatvõti . Palun uuenda oma privaatse võtme parool oma personaasete seadete all taastamaks ligipääsu oma krüpteeritud failidele.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krüpteerimisrakend on lubatud, kuid võtmeid pole lähtestatud. Palun logi välja ning uuesti sisse.",
"Enable recovery key (allow to recover users files in case of password loss):" : "Luba taastevõti (võimalda kasutaja failide taastamine parooli kaotuse puhul):",
"Recovery key password" : "Taastevõtme parool",
diff --git a/apps/encryption/l10n/et_EE.json b/apps/encryption/l10n/et_EE.json
index a977ba75e88..00991bb6c88 100644
--- a/apps/encryption/l10n/et_EE.json
+++ b/apps/encryption/l10n/et_EE.json
@@ -11,6 +11,11 @@
"Please repeat the new recovery password" : "Palun korda uut taastevõtme parooli",
"Password successfully changed." : "Parool edukalt vahetatud.",
"Could not change the password. Maybe the old password was not correct." : "Ei suutnud vahetada parooli. Võib-olla on vana parool valesti sisestatud.",
+ "Could not update the private key password." : "Ei suutnud uuendada privaatse võtme parooli.",
+ "The old password was not correct, please try again." : "Vana parool polnud õige, palun proovi uuesti.",
+ "The current log-in password was not correct, please try again." : "Praeguse sisselogimise parool polnud õige, palun proovi uuesti.",
+ "Private key password successfully updated." : "Privaatse võtme parool edukalt uuendatud.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Vigane Krüpteerimisrakendi privaatvõti . Palun uuenda oma privaatse võtme parool oma personaasete seadete all taastamaks ligipääsu oma krüpteeritud failidele.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krüpteerimisrakend on lubatud, kuid võtmeid pole lähtestatud. Palun logi välja ning uuesti sisse.",
"Enable recovery key (allow to recover users files in case of password loss):" : "Luba taastevõti (võimalda kasutaja failide taastamine parooli kaotuse puhul):",
"Recovery key password" : "Taastevõtme parool",
diff --git a/apps/encryption/l10n/eu.js b/apps/encryption/l10n/eu.js
index 937dbe089e0..c8942314d38 100644
--- a/apps/encryption/l10n/eu.js
+++ b/apps/encryption/l10n/eu.js
@@ -13,6 +13,11 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Mesedez errepikatu berreskuratze pasahitz berria",
"Password successfully changed." : "Pasahitza behar bezala aldatu da.",
"Could not change the password. Maybe the old password was not correct." : "Ezin izan da pasahitza aldatu. Agian pasahitz zaharra okerrekoa da.",
+ "Could not update the private key password." : "Ezin izan da gako pribatu pasahitza eguneratu. ",
+ "The old password was not correct, please try again." : "Pasahitz zaharra ez da egokia. Mesedez, saiatu berriro.",
+ "The current log-in password was not correct, please try again." : "Oraingo pasahitza ez da egokia. Mesedez, saiatu berriro.",
+ "Private key password successfully updated." : "Gako pasahitz pribatu behar bezala eguneratu da.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Enkriptazio aplikaziorako gako pribatu okerra. Mesedez eguneratu zure gako pribatuaren pasahitza zure ezarpen pertsonaletan zure enkriptatuko fitxategietarako sarrera berreskuratzeko.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi",
"Enable recovery key (allow to recover users files in case of password loss):" : "Gaitu berreskurapen gakoa (erabiltzaileen fitxategiak berreskuratzea ahalbidetzen du pasahitza galtzen badute ere):",
"Recovery key password" : "Berreskuratze gako pasahitza",
diff --git a/apps/encryption/l10n/eu.json b/apps/encryption/l10n/eu.json
index b1d8f49a34f..4c83627f8df 100644
--- a/apps/encryption/l10n/eu.json
+++ b/apps/encryption/l10n/eu.json
@@ -11,6 +11,11 @@
"Please repeat the new recovery password" : "Mesedez errepikatu berreskuratze pasahitz berria",
"Password successfully changed." : "Pasahitza behar bezala aldatu da.",
"Could not change the password. Maybe the old password was not correct." : "Ezin izan da pasahitza aldatu. Agian pasahitz zaharra okerrekoa da.",
+ "Could not update the private key password." : "Ezin izan da gako pribatu pasahitza eguneratu. ",
+ "The old password was not correct, please try again." : "Pasahitz zaharra ez da egokia. Mesedez, saiatu berriro.",
+ "The current log-in password was not correct, please try again." : "Oraingo pasahitza ez da egokia. Mesedez, saiatu berriro.",
+ "Private key password successfully updated." : "Gako pasahitz pribatu behar bezala eguneratu da.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Enkriptazio aplikaziorako gako pribatu okerra. Mesedez eguneratu zure gako pribatuaren pasahitza zure ezarpen pertsonaletan zure enkriptatuko fitxategietarako sarrera berreskuratzeko.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi",
"Enable recovery key (allow to recover users files in case of password loss):" : "Gaitu berreskurapen gakoa (erabiltzaileen fitxategiak berreskuratzea ahalbidetzen du pasahitza galtzen badute ere):",
"Recovery key password" : "Berreskuratze gako pasahitza",
diff --git a/apps/encryption/l10n/fa.js b/apps/encryption/l10n/fa.js
index c5c2e4efff6..24e91656aed 100644
--- a/apps/encryption/l10n/fa.js
+++ b/apps/encryption/l10n/fa.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"Could not disable recovery key. Please check your recovery key password!" : "کلید بازیابی را نمی تواند غیرفعال نماید. لطفا رمزعبور کلید بازیابی خود را بررسی کنید!",
"Password successfully changed." : "رمزعبور با موفقیت تغییر یافت.",
"Could not change the password. Maybe the old password was not correct." : "رمزعبور را نمیتواند تغییر دهد. شاید رمزعبورقدیمی صحیح نمی باشد.",
+ "Private key password successfully updated." : "رمزعبور کلید خصوصی با موفقیت به روز شد.",
"Enable recovery key (allow to recover users files in case of password loss):" : "فعال کردن کلید بازیابی(اجازه بازیابی فایل های کاربران در صورت از دست دادن رمزعبور):",
"Recovery key password" : "رمزعبور کلید بازیابی",
"Enabled" : "فعال شده",
diff --git a/apps/encryption/l10n/fa.json b/apps/encryption/l10n/fa.json
index dcc010c3e1c..ad046fcda2b 100644
--- a/apps/encryption/l10n/fa.json
+++ b/apps/encryption/l10n/fa.json
@@ -5,6 +5,7 @@
"Could not disable recovery key. Please check your recovery key password!" : "کلید بازیابی را نمی تواند غیرفعال نماید. لطفا رمزعبور کلید بازیابی خود را بررسی کنید!",
"Password successfully changed." : "رمزعبور با موفقیت تغییر یافت.",
"Could not change the password. Maybe the old password was not correct." : "رمزعبور را نمیتواند تغییر دهد. شاید رمزعبورقدیمی صحیح نمی باشد.",
+ "Private key password successfully updated." : "رمزعبور کلید خصوصی با موفقیت به روز شد.",
"Enable recovery key (allow to recover users files in case of password loss):" : "فعال کردن کلید بازیابی(اجازه بازیابی فایل های کاربران در صورت از دست دادن رمزعبور):",
"Recovery key password" : "رمزعبور کلید بازیابی",
"Enabled" : "فعال شده",
diff --git a/apps/encryption/l10n/fi_FI.js b/apps/encryption/l10n/fi_FI.js
index f69ab49786f..6589c4aa4c7 100644
--- a/apps/encryption/l10n/fi_FI.js
+++ b/apps/encryption/l10n/fi_FI.js
@@ -15,6 +15,11 @@ OC.L10N.register(
"Could not change the password. Maybe the old password was not correct." : "Salasanan vaihto epäonnistui. Kenties vanha salasana oli väärin.",
"Recovery Key enabled" : "Palautusavain käytössä",
"Could not enable the recovery key, please try again or contact your administrator" : "Palautusavaimen käyttöönotto epäonnistui, yritä myöhemmin uudelleen tai ota yhteys ylläpitäjään",
+ "Could not update the private key password." : "Yksityisen avaimen salasanaa ei voitu päivittää.",
+ "The old password was not correct, please try again." : "Vanha salasana oli väärin, yritä uudelleen.",
+ "The current log-in password was not correct, please try again." : "Nykyinen kirjautumiseen käytettävä salasana oli väärin, yritä uudelleen.",
+ "Private key password successfully updated." : "Yksityisen avaimen salasana päivitettiin onnistuneesti.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Salaussovelluksen salausavain on virheellinen. Ole hyvä ja päivitä salausavain henkilökohtaisissa asetuksissasi jotta voit taas avata salatuskirjoitetut tiedostosi.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Salaussovellus on käytössä, mutta salausavaimia ei ole alustettu. Ole hyvä ja kirjaudu sisään uudelleen.",
"ownCloud basic encryption module" : "ownCloudin perussalausmoduuli",
"Enable recovery key (allow to recover users files in case of password loss):" : "Käytä palautusavainta (salli käyttäjien tiedostojen palauttaminen, jos heidän salasana unohtuu):",
diff --git a/apps/encryption/l10n/fi_FI.json b/apps/encryption/l10n/fi_FI.json
index 5a08c06b972..de8159a61b2 100644
--- a/apps/encryption/l10n/fi_FI.json
+++ b/apps/encryption/l10n/fi_FI.json
@@ -13,6 +13,11 @@
"Could not change the password. Maybe the old password was not correct." : "Salasanan vaihto epäonnistui. Kenties vanha salasana oli väärin.",
"Recovery Key enabled" : "Palautusavain käytössä",
"Could not enable the recovery key, please try again or contact your administrator" : "Palautusavaimen käyttöönotto epäonnistui, yritä myöhemmin uudelleen tai ota yhteys ylläpitäjään",
+ "Could not update the private key password." : "Yksityisen avaimen salasanaa ei voitu päivittää.",
+ "The old password was not correct, please try again." : "Vanha salasana oli väärin, yritä uudelleen.",
+ "The current log-in password was not correct, please try again." : "Nykyinen kirjautumiseen käytettävä salasana oli väärin, yritä uudelleen.",
+ "Private key password successfully updated." : "Yksityisen avaimen salasana päivitettiin onnistuneesti.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Salaussovelluksen salausavain on virheellinen. Ole hyvä ja päivitä salausavain henkilökohtaisissa asetuksissasi jotta voit taas avata salatuskirjoitetut tiedostosi.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Salaussovellus on käytössä, mutta salausavaimia ei ole alustettu. Ole hyvä ja kirjaudu sisään uudelleen.",
"ownCloud basic encryption module" : "ownCloudin perussalausmoduuli",
"Enable recovery key (allow to recover users files in case of password loss):" : "Käytä palautusavainta (salli käyttäjien tiedostojen palauttaminen, jos heidän salasana unohtuu):",
diff --git a/apps/encryption/l10n/fr.js b/apps/encryption/l10n/fr.js
index d2c988dda0d..44e571d88c0 100644
--- a/apps/encryption/l10n/fr.js
+++ b/apps/encryption/l10n/fr.js
@@ -5,7 +5,7 @@ OC.L10N.register(
"Please repeat the recovery key password" : "Répétez le mot de passe de la clef de récupération",
"Repeated recovery key password does not match the provided recovery key password" : "Le mot de passe de la clef de récupération et sa répétition ne sont pas identiques.",
"Recovery key successfully enabled" : "Clef de récupération activée avec succès",
- "Could not enable recovery key. Please check your recovery key password!" : "Impossible d'activer la clé de récupération. Veuillez vérifier votre mot de passe de clé de récupération !",
+ "Could not enable recovery key. Please check your recovery key password!" : "Impossible d'activer la clef de récupération. Veuillez vérifier le mot de passe de votre clé de récupération !",
"Recovery key successfully disabled" : "Clef de récupération désactivée avec succès",
"Could not disable recovery key. Please check your recovery key password!" : "Impossible de désactiver la clef de récupération. Veuillez vérifier le mot de passe de votre clef de récupération !",
"Please provide the old recovery password" : "Veuillez entrer l'ancien mot de passe de récupération",
@@ -13,8 +13,13 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Veuillez répéter le nouveau mot de passe de récupération",
"Password successfully changed." : "Mot de passe changé avec succès.",
"Could not change the password. Maybe the old password was not correct." : "Erreur lors du changement de mot de passe. L'ancien mot de passe est peut-être incorrect.",
- "Recovery Key enabled" : "Clé de récupération activée",
- "Could not enable the recovery key, please try again or contact your administrator" : "Impossible d'activer la clé de récupération. Veuillez essayer à nouveau ou contacter votre administrateur",
+ "Recovery Key enabled" : "Clef de récupération activée",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Impossible d'activer la clef de récupération. Veuillez essayer à nouveau ou contacter votre administrateur",
+ "Could not update the private key password." : "Impossible de mettre à jour le mot de passe de la clef privée.",
+ "The old password was not correct, please try again." : "L'ancien mot de passe est incorrect. Veuillez réessayer.",
+ "The current log-in password was not correct, please try again." : "Le mot de passe de connexion actuel n'est pas correct, veuillez réessayer.",
+ "Private key password successfully updated." : "Mot de passe de la clef privée mis à jour avec succès.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Votre clef privée pour le chiffrement n'est pas valide ! Veuillez mettre à jour le mot de passe de votre clef privée dans vos paramètres personnels pour récupérer l'accès à vos fichiers chiffrés.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'application de chiffrement est activée mais vos clefs ne sont pas initialisées. Veuillez vous déconnecter et ensuite vous reconnecter.",
"ownCloud basic encryption module" : "Module de chiffrement de base d'ownCloud",
"Enable recovery key (allow to recover users files in case of password loss):" : "Activer la clef de récupération (permet de récupérer les fichiers des utilisateurs en cas de perte de mot de passe).",
diff --git a/apps/encryption/l10n/fr.json b/apps/encryption/l10n/fr.json
index ba7692e0e34..9f8f41ad80f 100644
--- a/apps/encryption/l10n/fr.json
+++ b/apps/encryption/l10n/fr.json
@@ -3,7 +3,7 @@
"Please repeat the recovery key password" : "Répétez le mot de passe de la clef de récupération",
"Repeated recovery key password does not match the provided recovery key password" : "Le mot de passe de la clef de récupération et sa répétition ne sont pas identiques.",
"Recovery key successfully enabled" : "Clef de récupération activée avec succès",
- "Could not enable recovery key. Please check your recovery key password!" : "Impossible d'activer la clé de récupération. Veuillez vérifier votre mot de passe de clé de récupération !",
+ "Could not enable recovery key. Please check your recovery key password!" : "Impossible d'activer la clef de récupération. Veuillez vérifier le mot de passe de votre clé de récupération !",
"Recovery key successfully disabled" : "Clef de récupération désactivée avec succès",
"Could not disable recovery key. Please check your recovery key password!" : "Impossible de désactiver la clef de récupération. Veuillez vérifier le mot de passe de votre clef de récupération !",
"Please provide the old recovery password" : "Veuillez entrer l'ancien mot de passe de récupération",
@@ -11,8 +11,13 @@
"Please repeat the new recovery password" : "Veuillez répéter le nouveau mot de passe de récupération",
"Password successfully changed." : "Mot de passe changé avec succès.",
"Could not change the password. Maybe the old password was not correct." : "Erreur lors du changement de mot de passe. L'ancien mot de passe est peut-être incorrect.",
- "Recovery Key enabled" : "Clé de récupération activée",
- "Could not enable the recovery key, please try again or contact your administrator" : "Impossible d'activer la clé de récupération. Veuillez essayer à nouveau ou contacter votre administrateur",
+ "Recovery Key enabled" : "Clef de récupération activée",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Impossible d'activer la clef de récupération. Veuillez essayer à nouveau ou contacter votre administrateur",
+ "Could not update the private key password." : "Impossible de mettre à jour le mot de passe de la clef privée.",
+ "The old password was not correct, please try again." : "L'ancien mot de passe est incorrect. Veuillez réessayer.",
+ "The current log-in password was not correct, please try again." : "Le mot de passe de connexion actuel n'est pas correct, veuillez réessayer.",
+ "Private key password successfully updated." : "Mot de passe de la clef privée mis à jour avec succès.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Votre clef privée pour le chiffrement n'est pas valide ! Veuillez mettre à jour le mot de passe de votre clef privée dans vos paramètres personnels pour récupérer l'accès à vos fichiers chiffrés.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'application de chiffrement est activée mais vos clefs ne sont pas initialisées. Veuillez vous déconnecter et ensuite vous reconnecter.",
"ownCloud basic encryption module" : "Module de chiffrement de base d'ownCloud",
"Enable recovery key (allow to recover users files in case of password loss):" : "Activer la clef de récupération (permet de récupérer les fichiers des utilisateurs en cas de perte de mot de passe).",
diff --git a/apps/encryption/l10n/gl.js b/apps/encryption/l10n/gl.js
index d0321b2d7c8..b4598ecbb19 100644
--- a/apps/encryption/l10n/gl.js
+++ b/apps/encryption/l10n/gl.js
@@ -14,7 +14,12 @@ OC.L10N.register(
"Password successfully changed." : "O contrasinal foi cambiado satisfactoriamente",
"Could not change the password. Maybe the old password was not correct." : "Non foi posíbel cambiar o contrasinal. Probabelmente o contrasinal antigo non é o correcto.",
"Recovery Key enabled" : "Activada a chave de recuperación",
- "Could not enable the recovery key, please try again or contact your administrator" : "Non foi posíbel activar a chave de recuperación, tenteo de novo ou póñase en contacto co administrador.",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Non foi posíbel activar a chave de recuperación, ténteo de novo ou póñase en contacto co administrador.",
+ "Could not update the private key password." : "Non foi posíbel actualizar o contrasinal da chave privada.",
+ "The old password was not correct, please try again." : "O contrasinal antigo non é correcto, ténteo de novo.",
+ "The current log-in password was not correct, please try again." : "O actual contrasinal de acceso non é correcto, ténteo de novo.",
+ "Private key password successfully updated." : "A chave privada foi actualizada correctamente.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "A chave privada para a aplicación de cifrado non é correcta. Actualice o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros cifrados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A aplicación de cifrado está activada, mais as chaves non foron preparadas, saia da sesión e volva a acceder de novo",
"ownCloud basic encryption module" : "Módulo básico de cifrado de ownCloud",
"Enable recovery key (allow to recover users files in case of password loss):" : "Activar a chave de recuperación (permitirá recuperar os ficheiros dos usuarios no caso de perda do contrasinal):",
diff --git a/apps/encryption/l10n/gl.json b/apps/encryption/l10n/gl.json
index 6c803f3cf7f..64033763059 100644
--- a/apps/encryption/l10n/gl.json
+++ b/apps/encryption/l10n/gl.json
@@ -12,7 +12,12 @@
"Password successfully changed." : "O contrasinal foi cambiado satisfactoriamente",
"Could not change the password. Maybe the old password was not correct." : "Non foi posíbel cambiar o contrasinal. Probabelmente o contrasinal antigo non é o correcto.",
"Recovery Key enabled" : "Activada a chave de recuperación",
- "Could not enable the recovery key, please try again or contact your administrator" : "Non foi posíbel activar a chave de recuperación, tenteo de novo ou póñase en contacto co administrador.",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Non foi posíbel activar a chave de recuperación, ténteo de novo ou póñase en contacto co administrador.",
+ "Could not update the private key password." : "Non foi posíbel actualizar o contrasinal da chave privada.",
+ "The old password was not correct, please try again." : "O contrasinal antigo non é correcto, ténteo de novo.",
+ "The current log-in password was not correct, please try again." : "O actual contrasinal de acceso non é correcto, ténteo de novo.",
+ "Private key password successfully updated." : "A chave privada foi actualizada correctamente.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "A chave privada para a aplicación de cifrado non é correcta. Actualice o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros cifrados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A aplicación de cifrado está activada, mais as chaves non foron preparadas, saia da sesión e volva a acceder de novo",
"ownCloud basic encryption module" : "Módulo básico de cifrado de ownCloud",
"Enable recovery key (allow to recover users files in case of password loss):" : "Activar a chave de recuperación (permitirá recuperar os ficheiros dos usuarios no caso de perda do contrasinal):",
diff --git a/apps/encryption/l10n/hr.js b/apps/encryption/l10n/hr.js
index 9d910763c2a..18e4ae65ddd 100644
--- a/apps/encryption/l10n/hr.js
+++ b/apps/encryption/l10n/hr.js
@@ -7,6 +7,8 @@ OC.L10N.register(
"Could not disable recovery key. Please check your recovery key password!" : "Ključ za oporavak nije moguće deaktivirati. Molimo provjerite svoju lozinku ključa za oporavak!",
"Password successfully changed." : "Lozinka uspješno promijenjena.",
"Could not change the password. Maybe the old password was not correct." : "Lozinku nije moguće promijeniti. Možda je stara lozinka bila neispravna.",
+ "Private key password successfully updated." : "Lozinka privatnog ključa uspješno ažurirana.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za šifriranje. Molimo ažurirajte lozinku svoga privatnog ključa u svojim osobnimpostavkama da biste obnovili pristup svojim šifriranim datotekama.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je aktivirana ali vaši ključevi nisu inicijalizirani, molimo odjavite se iponovno prijavite.",
"Enable recovery key (allow to recover users files in case of password loss):" : "Aktivirajte ključ za oporavak (u slučaju gubitka lozinke dozvolite oporavak korisničkih datoteka):",
"Recovery key password" : "Lozinka ključa za oporavak",
diff --git a/apps/encryption/l10n/hr.json b/apps/encryption/l10n/hr.json
index 3e5eda279cb..20b45588c7e 100644
--- a/apps/encryption/l10n/hr.json
+++ b/apps/encryption/l10n/hr.json
@@ -5,6 +5,8 @@
"Could not disable recovery key. Please check your recovery key password!" : "Ključ za oporavak nije moguće deaktivirati. Molimo provjerite svoju lozinku ključa za oporavak!",
"Password successfully changed." : "Lozinka uspješno promijenjena.",
"Could not change the password. Maybe the old password was not correct." : "Lozinku nije moguće promijeniti. Možda je stara lozinka bila neispravna.",
+ "Private key password successfully updated." : "Lozinka privatnog ključa uspješno ažurirana.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za šifriranje. Molimo ažurirajte lozinku svoga privatnog ključa u svojim osobnimpostavkama da biste obnovili pristup svojim šifriranim datotekama.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija šifriranja je aktivirana ali vaši ključevi nisu inicijalizirani, molimo odjavite se iponovno prijavite.",
"Enable recovery key (allow to recover users files in case of password loss):" : "Aktivirajte ključ za oporavak (u slučaju gubitka lozinke dozvolite oporavak korisničkih datoteka):",
"Recovery key password" : "Lozinka ključa za oporavak",
diff --git a/apps/encryption/l10n/hu_HU.js b/apps/encryption/l10n/hu_HU.js
index 9b1ec36849c..3895af355b9 100644
--- a/apps/encryption/l10n/hu_HU.js
+++ b/apps/encryption/l10n/hu_HU.js
@@ -7,6 +7,8 @@ OC.L10N.register(
"Could not disable recovery key. Please check your recovery key password!" : "A helyreállítási kulcsot nem lehetett kikapcsolni. Ellenőrizze a helyreállítási kulcsa jelszavát!",
"Password successfully changed." : "A jelszót sikeresen megváltoztattuk.",
"Could not change the password. Maybe the old password was not correct." : "A jelszót nem lehet megváltoztatni! Lehet, hogy hibás volt a régi jelszó.",
+ "Private key password successfully updated." : "A személyes kulcsának jelszava frissítésre került.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Az állományok titkosításához használt titkos kulcsa érvénytelen. Kérjük frissítse a titkos kulcs jelszót a személyes beállításokban, hogy ismét hozzáférjen a titkosított állományaihoz!",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Az állományok titkosítása engedélyezve van, de az Ön titkos kulcsai nincsenek beállítva. Ezért kérjük, hogy jelentkezzen ki, és lépjen be újra!",
"Enable recovery key (allow to recover users files in case of password loss):" : "A helyreállítási kulcs beállítása (lehetővé teszi a felhasználók állományainak visszaállítását, ha elfelejtik a jelszavukat):",
"Recovery key password" : "A helyreállítási kulcs jelszava",
diff --git a/apps/encryption/l10n/hu_HU.json b/apps/encryption/l10n/hu_HU.json
index 9ef22a34bfa..f7b04188138 100644
--- a/apps/encryption/l10n/hu_HU.json
+++ b/apps/encryption/l10n/hu_HU.json
@@ -5,6 +5,8 @@
"Could not disable recovery key. Please check your recovery key password!" : "A helyreállítási kulcsot nem lehetett kikapcsolni. Ellenőrizze a helyreállítási kulcsa jelszavát!",
"Password successfully changed." : "A jelszót sikeresen megváltoztattuk.",
"Could not change the password. Maybe the old password was not correct." : "A jelszót nem lehet megváltoztatni! Lehet, hogy hibás volt a régi jelszó.",
+ "Private key password successfully updated." : "A személyes kulcsának jelszava frissítésre került.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Az állományok titkosításához használt titkos kulcsa érvénytelen. Kérjük frissítse a titkos kulcs jelszót a személyes beállításokban, hogy ismét hozzáférjen a titkosított állományaihoz!",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Az állományok titkosítása engedélyezve van, de az Ön titkos kulcsai nincsenek beállítva. Ezért kérjük, hogy jelentkezzen ki, és lépjen be újra!",
"Enable recovery key (allow to recover users files in case of password loss):" : "A helyreállítási kulcs beállítása (lehetővé teszi a felhasználók állományainak visszaállítását, ha elfelejtik a jelszavukat):",
"Recovery key password" : "A helyreállítási kulcs jelszava",
diff --git a/apps/encryption/l10n/id.js b/apps/encryption/l10n/id.js
index b0f93d02dd3..fe4b8bb139b 100644
--- a/apps/encryption/l10n/id.js
+++ b/apps/encryption/l10n/id.js
@@ -13,6 +13,11 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Silakan ulangi sandi pemulihan baru",
"Password successfully changed." : "Sandi berhasil diubah",
"Could not change the password. Maybe the old password was not correct." : "Tidak dapat mengubah sandi. Kemungkinan sandi lama yang dimasukkan salah.",
+ "Could not update the private key password." : "Tidak dapat memperbarui sandi kunci private.",
+ "The old password was not correct, please try again." : "Sandi lama salah, mohon coba lagi.",
+ "The current log-in password was not correct, please try again." : "Sandi masuk saat ini salah, mohon coba lagi.",
+ "Private key password successfully updated." : "Sandi kunci privat berhasil diperbarui.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Kunci privat tidak sah untuk Aplikasi Enskripsi. Silakan perbarui sandi kunci privat anda pada pengaturan pribadi untuk memulihkan akses ke berkas anda yang dienskripsi.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikasi Enskripsi telah diaktifkan tetapi kunci tidak diinisialisasi, silakan log-out dan log-in lagi",
"Enable recovery key (allow to recover users files in case of password loss):" : "Aktifkan kunci pemulihan (memungkinkan pengguna untuk memulihkan berkas dalam kasus kehilangan sandi):",
"Recovery key password" : "Sandi kunci pemulihan",
diff --git a/apps/encryption/l10n/id.json b/apps/encryption/l10n/id.json
index 69a01d9c5ad..dcbe7c1cdf0 100644
--- a/apps/encryption/l10n/id.json
+++ b/apps/encryption/l10n/id.json
@@ -11,6 +11,11 @@
"Please repeat the new recovery password" : "Silakan ulangi sandi pemulihan baru",
"Password successfully changed." : "Sandi berhasil diubah",
"Could not change the password. Maybe the old password was not correct." : "Tidak dapat mengubah sandi. Kemungkinan sandi lama yang dimasukkan salah.",
+ "Could not update the private key password." : "Tidak dapat memperbarui sandi kunci private.",
+ "The old password was not correct, please try again." : "Sandi lama salah, mohon coba lagi.",
+ "The current log-in password was not correct, please try again." : "Sandi masuk saat ini salah, mohon coba lagi.",
+ "Private key password successfully updated." : "Sandi kunci privat berhasil diperbarui.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Kunci privat tidak sah untuk Aplikasi Enskripsi. Silakan perbarui sandi kunci privat anda pada pengaturan pribadi untuk memulihkan akses ke berkas anda yang dienskripsi.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikasi Enskripsi telah diaktifkan tetapi kunci tidak diinisialisasi, silakan log-out dan log-in lagi",
"Enable recovery key (allow to recover users files in case of password loss):" : "Aktifkan kunci pemulihan (memungkinkan pengguna untuk memulihkan berkas dalam kasus kehilangan sandi):",
"Recovery key password" : "Sandi kunci pemulihan",
diff --git a/apps/encryption/l10n/it.js b/apps/encryption/l10n/it.js
index ea0d4576314..efcc6cd4564 100644
--- a/apps/encryption/l10n/it.js
+++ b/apps/encryption/l10n/it.js
@@ -13,7 +13,15 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Ripeti la nuova password di recupero",
"Password successfully changed." : "Password modificata correttamente.",
"Could not change the password. Maybe the old password was not correct." : "Impossibile cambiare la password. Forse la vecchia password non era corretta.",
+ "Recovery Key enabled" : "Chiave di ripristino abilitata",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Impossibile abilitare la chiave di ripristino, prova ancora o contatta il tuo amministratore",
+ "Could not update the private key password." : "Impossibile aggiornare la password della chiave privata.",
+ "The old password was not correct, please try again." : "La vecchia password non era corretta, prova di nuovo.",
+ "The current log-in password was not correct, please try again." : "La password di accesso attuale non era corretta, prova ancora.",
+ "Private key password successfully updated." : "Password della chiave privata aggiornata correttamente.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chiave privata non valida per l'applicazione di cifratura. Aggiorna la password della chiave privata nelle impostazioni personali per ripristinare l'accesso ai tuoi file cifrati.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'applicazione di cifratura è abilitata, ma le chiavi non sono state inizializzate, disconnettiti ed effettua nuovamente l'accesso",
+ "ownCloud basic encryption module" : "Modulo di cifratura di base di ownCloud",
"Enable recovery key (allow to recover users files in case of password loss):" : "Abilita la chiave di recupero (permette di recuperare i file utenti in caso di perdita della password):",
"Recovery key password" : "Password della chiave di recupero",
"Repeat Recovery key password" : "Ripeti la password della chiave di recupero",
diff --git a/apps/encryption/l10n/it.json b/apps/encryption/l10n/it.json
index 0f66ddfb26d..e93035b88df 100644
--- a/apps/encryption/l10n/it.json
+++ b/apps/encryption/l10n/it.json
@@ -11,7 +11,15 @@
"Please repeat the new recovery password" : "Ripeti la nuova password di recupero",
"Password successfully changed." : "Password modificata correttamente.",
"Could not change the password. Maybe the old password was not correct." : "Impossibile cambiare la password. Forse la vecchia password non era corretta.",
+ "Recovery Key enabled" : "Chiave di ripristino abilitata",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Impossibile abilitare la chiave di ripristino, prova ancora o contatta il tuo amministratore",
+ "Could not update the private key password." : "Impossibile aggiornare la password della chiave privata.",
+ "The old password was not correct, please try again." : "La vecchia password non era corretta, prova di nuovo.",
+ "The current log-in password was not correct, please try again." : "La password di accesso attuale non era corretta, prova ancora.",
+ "Private key password successfully updated." : "Password della chiave privata aggiornata correttamente.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chiave privata non valida per l'applicazione di cifratura. Aggiorna la password della chiave privata nelle impostazioni personali per ripristinare l'accesso ai tuoi file cifrati.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'applicazione di cifratura è abilitata, ma le chiavi non sono state inizializzate, disconnettiti ed effettua nuovamente l'accesso",
+ "ownCloud basic encryption module" : "Modulo di cifratura di base di ownCloud",
"Enable recovery key (allow to recover users files in case of password loss):" : "Abilita la chiave di recupero (permette di recuperare i file utenti in caso di perdita della password):",
"Recovery key password" : "Password della chiave di recupero",
"Repeat Recovery key password" : "Ripeti la password della chiave di recupero",
diff --git a/apps/encryption/l10n/ja.js b/apps/encryption/l10n/ja.js
index 2cc31aa5291..c4e2443c1fb 100644
--- a/apps/encryption/l10n/ja.js
+++ b/apps/encryption/l10n/ja.js
@@ -13,6 +13,11 @@ OC.L10N.register(
"Please repeat the new recovery password" : "新しい復旧キーのパスワードをもう一度入力",
"Password successfully changed." : "パスワードを変更できました。",
"Could not change the password. Maybe the old password was not correct." : "パスワードを変更できませんでした。古いパスワードが間違っているかもしれません。",
+ "Could not update the private key password." : "秘密鍵のパスワードを更新できませんでした。",
+ "The old password was not correct, please try again." : "古いパスワードが一致しませんでした。もう一度入力してください。",
+ "The current log-in password was not correct, please try again." : "ログインパスワードが一致しませんでした。もう一度入力してください。",
+ "Private key password successfully updated." : "秘密鍵のパスワードが正常に更新されました。",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "暗号化アプリの無効なプライベートキーです。あなたの暗号化されたファイルへアクセスするために、個人設定からプライベートキーのパスワードを更新してください。",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください",
"Enable recovery key (allow to recover users files in case of password loss):" : "リカバリキーを有効にする (パスワードを忘れた場合にユーザーのファイルを回復できます):",
"Recovery key password" : "リカバリキーのパスワード",
diff --git a/apps/encryption/l10n/ja.json b/apps/encryption/l10n/ja.json
index c7e16f92233..622bf9bc42d 100644
--- a/apps/encryption/l10n/ja.json
+++ b/apps/encryption/l10n/ja.json
@@ -11,6 +11,11 @@
"Please repeat the new recovery password" : "新しい復旧キーのパスワードをもう一度入力",
"Password successfully changed." : "パスワードを変更できました。",
"Could not change the password. Maybe the old password was not correct." : "パスワードを変更できませんでした。古いパスワードが間違っているかもしれません。",
+ "Could not update the private key password." : "秘密鍵のパスワードを更新できませんでした。",
+ "The old password was not correct, please try again." : "古いパスワードが一致しませんでした。もう一度入力してください。",
+ "The current log-in password was not correct, please try again." : "ログインパスワードが一致しませんでした。もう一度入力してください。",
+ "Private key password successfully updated." : "秘密鍵のパスワードが正常に更新されました。",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "暗号化アプリの無効なプライベートキーです。あなたの暗号化されたファイルへアクセスするために、個人設定からプライベートキーのパスワードを更新してください。",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "暗号化アプリは有効ですが、あなたの暗号化キーは初期化されていません。ログアウトした後に、再度ログインしてください",
"Enable recovery key (allow to recover users files in case of password loss):" : "リカバリキーを有効にする (パスワードを忘れた場合にユーザーのファイルを回復できます):",
"Recovery key password" : "リカバリキーのパスワード",
diff --git a/apps/encryption/l10n/ko.js b/apps/encryption/l10n/ko.js
index 94551d42a86..80281648a9a 100644
--- a/apps/encryption/l10n/ko.js
+++ b/apps/encryption/l10n/ko.js
@@ -13,6 +13,11 @@ OC.L10N.register(
"Please repeat the new recovery password" : "새 복구 암호를 다시 입력하십시오",
"Password successfully changed." : "암호가 성공적으로 변경되었습니다",
"Could not change the password. Maybe the old password was not correct." : "암호를 변경할 수 없습니다. 예전 암호가 정확하지 않은 것 같습니다.",
+ "Could not update the private key password." : "개인 키 암호를 업데이트할 수 없습니다",
+ "The old password was not correct, please try again." : "이전 암호가 잘못되었습니다. 다시 시도하십시오.",
+ "The current log-in password was not correct, please try again." : "현재 로그인 암호가 잘못되었습니다. 다시 시도하십시오.",
+ "Private key password successfully updated." : "개인 키 암호가 성공적으로 업데이트 되었습니다.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "암호화 앱의 개인 키가 잘못되었습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 업데이트해야 합니다.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오",
"Enable recovery key (allow to recover users files in case of password loss):" : "복구 키 사용 (암호를 잊었을 때 파일을 복구할 수 있도록 함):",
"Recovery key password" : "복구 키 암호",
diff --git a/apps/encryption/l10n/ko.json b/apps/encryption/l10n/ko.json
index 76824c4efc5..3b0bb40460b 100644
--- a/apps/encryption/l10n/ko.json
+++ b/apps/encryption/l10n/ko.json
@@ -11,6 +11,11 @@
"Please repeat the new recovery password" : "새 복구 암호를 다시 입력하십시오",
"Password successfully changed." : "암호가 성공적으로 변경되었습니다",
"Could not change the password. Maybe the old password was not correct." : "암호를 변경할 수 없습니다. 예전 암호가 정확하지 않은 것 같습니다.",
+ "Could not update the private key password." : "개인 키 암호를 업데이트할 수 없습니다",
+ "The old password was not correct, please try again." : "이전 암호가 잘못되었습니다. 다시 시도하십시오.",
+ "The current log-in password was not correct, please try again." : "현재 로그인 암호가 잘못되었습니다. 다시 시도하십시오.",
+ "Private key password successfully updated." : "개인 키 암호가 성공적으로 업데이트 되었습니다.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "암호화 앱의 개인 키가 잘못되었습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 업데이트해야 합니다.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "암호화 앱이 활성화되어 있지만 키가 초기화되지 않았습니다. 로그아웃한 후 다시 로그인하십시오",
"Enable recovery key (allow to recover users files in case of password loss):" : "복구 키 사용 (암호를 잊었을 때 파일을 복구할 수 있도록 함):",
"Recovery key password" : "복구 키 암호",
diff --git a/apps/encryption/l10n/lt_LT.js b/apps/encryption/l10n/lt_LT.js
index cd1f0637aaf..06d6478a572 100644
--- a/apps/encryption/l10n/lt_LT.js
+++ b/apps/encryption/l10n/lt_LT.js
@@ -7,6 +7,8 @@ OC.L10N.register(
"Could not disable recovery key. Please check your recovery key password!" : "Neišėjo išjungti jūsų atkūrimo rakto. Prašome jį patikrinti!",
"Password successfully changed." : "Slaptažodis sėkmingai pakeistas",
"Could not change the password. Maybe the old password was not correct." : "Slaptažodis nebuvo pakeistas. Gali būti, kad buvo neteisingai suvestas senasis.",
+ "Private key password successfully updated." : "Privataus rakto slaptažodis buvo sėkmingai atnaujintas.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Netinkamas privatus raktas Šifravimo programai. Prašome atnaujinti savo privataus rakto slaptažodį asmeniniuose nustatymuose, kad atkurti prieigą prie šifruotų failų.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifravimo programa įjungta, bet Jūsų raktai nėra pritaikyti. Prašome atsijungti ir vėl prisijungti",
"Enable recovery key (allow to recover users files in case of password loss):" : "Įjunkite atkūrimo raktą, (leisti atkurti naudotojų failus praradus slaptažodį):",
"Recovery key password" : "Atkūrimo rakto slaptažodis",
diff --git a/apps/encryption/l10n/lt_LT.json b/apps/encryption/l10n/lt_LT.json
index 562afb8b8ca..2e6a199121f 100644
--- a/apps/encryption/l10n/lt_LT.json
+++ b/apps/encryption/l10n/lt_LT.json
@@ -5,6 +5,8 @@
"Could not disable recovery key. Please check your recovery key password!" : "Neišėjo išjungti jūsų atkūrimo rakto. Prašome jį patikrinti!",
"Password successfully changed." : "Slaptažodis sėkmingai pakeistas",
"Could not change the password. Maybe the old password was not correct." : "Slaptažodis nebuvo pakeistas. Gali būti, kad buvo neteisingai suvestas senasis.",
+ "Private key password successfully updated." : "Privataus rakto slaptažodis buvo sėkmingai atnaujintas.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Netinkamas privatus raktas Šifravimo programai. Prašome atnaujinti savo privataus rakto slaptažodį asmeniniuose nustatymuose, kad atkurti prieigą prie šifruotų failų.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifravimo programa įjungta, bet Jūsų raktai nėra pritaikyti. Prašome atsijungti ir vėl prisijungti",
"Enable recovery key (allow to recover users files in case of password loss):" : "Įjunkite atkūrimo raktą, (leisti atkurti naudotojų failus praradus slaptažodį):",
"Recovery key password" : "Atkūrimo rakto slaptažodis",
diff --git a/apps/encryption/l10n/lv.js b/apps/encryption/l10n/lv.js
index d3bccd6630b..965029639c0 100644
--- a/apps/encryption/l10n/lv.js
+++ b/apps/encryption/l10n/lv.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"encryption",
{
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Šifrēšanas lietotnei nepareiza privātā atslēga. Lūdzu atjaunojiet savu privāto atslēgu personīgo uzstādījumu sadaļā, lai atjaunot pieeju šifrētajiem failiem.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifrēšanas lietotnes ir pieslēgta, bet šifrēšanas atslēgas nav uzstādītas. Lūdzu izejiet no sistēmas un ieejiet sistēmā atpakaļ.",
"Enabled" : "Pievienots"
},
diff --git a/apps/encryption/l10n/lv.json b/apps/encryption/l10n/lv.json
index c89c656100e..3fa2f139253 100644
--- a/apps/encryption/l10n/lv.json
+++ b/apps/encryption/l10n/lv.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Šifrēšanas lietotnei nepareiza privātā atslēga. Lūdzu atjaunojiet savu privāto atslēgu personīgo uzstādījumu sadaļā, lai atjaunot pieeju šifrētajiem failiem.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Šifrēšanas lietotnes ir pieslēgta, bet šifrēšanas atslēgas nav uzstādītas. Lūdzu izejiet no sistēmas un ieejiet sistēmā atpakaļ.",
"Enabled" : "Pievienots"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"
diff --git a/apps/encryption/l10n/nb_NO.js b/apps/encryption/l10n/nb_NO.js
index cdced9e124a..ee3184a7f02 100644
--- a/apps/encryption/l10n/nb_NO.js
+++ b/apps/encryption/l10n/nb_NO.js
@@ -13,6 +13,11 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Gjenta det nye gjenopprettingspassordet",
"Password successfully changed." : "Passordet ble endret.",
"Could not change the password. Maybe the old password was not correct." : "Klarte ikke å endre passordet. Kanskje gammelt passord ikke var korrekt.",
+ "Could not update the private key password." : "Klarte ikke å oppdatere privatnøkkelpassordet.",
+ "The old password was not correct, please try again." : "Det gamle passordet var feil. Prøv igjen.",
+ "The current log-in password was not correct, please try again." : "Det nåværende innloggingspassordet var feil. Prøv igjen.",
+ "Private key password successfully updated." : "Passord for privat nøkkel ble oppdatert.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøkkel for Krypterings-app. Oppdater passordet for din private nøkkel i dine personlige innstillinger for å gjenopprette tilgang til de krypterte filene dine.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App for kryptering er aktivert men nøklene dine er ikke satt opp. Logg ut og logg inn igjen.",
"Enable recovery key (allow to recover users files in case of password loss):" : "Aktiver gjenopprettingsnøkkel (tillat å gjenopprette brukerfiler i tilfelle tap av passord):",
"Recovery key password" : "Passord for gjenopprettingsnøkkel",
diff --git a/apps/encryption/l10n/nb_NO.json b/apps/encryption/l10n/nb_NO.json
index 1526f1d3c1e..942eaf1855c 100644
--- a/apps/encryption/l10n/nb_NO.json
+++ b/apps/encryption/l10n/nb_NO.json
@@ -11,6 +11,11 @@
"Please repeat the new recovery password" : "Gjenta det nye gjenopprettingspassordet",
"Password successfully changed." : "Passordet ble endret.",
"Could not change the password. Maybe the old password was not correct." : "Klarte ikke å endre passordet. Kanskje gammelt passord ikke var korrekt.",
+ "Could not update the private key password." : "Klarte ikke å oppdatere privatnøkkelpassordet.",
+ "The old password was not correct, please try again." : "Det gamle passordet var feil. Prøv igjen.",
+ "The current log-in password was not correct, please try again." : "Det nåværende innloggingspassordet var feil. Prøv igjen.",
+ "Private key password successfully updated." : "Passord for privat nøkkel ble oppdatert.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ugyldig privat nøkkel for Krypterings-app. Oppdater passordet for din private nøkkel i dine personlige innstillinger for å gjenopprette tilgang til de krypterte filene dine.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App for kryptering er aktivert men nøklene dine er ikke satt opp. Logg ut og logg inn igjen.",
"Enable recovery key (allow to recover users files in case of password loss):" : "Aktiver gjenopprettingsnøkkel (tillat å gjenopprette brukerfiler i tilfelle tap av passord):",
"Recovery key password" : "Passord for gjenopprettingsnøkkel",
diff --git a/apps/encryption/l10n/nl.js b/apps/encryption/l10n/nl.js
index 28a60c68172..505cff99620 100644
--- a/apps/encryption/l10n/nl.js
+++ b/apps/encryption/l10n/nl.js
@@ -13,7 +13,15 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Herhaal het nieuwe herstelwachtwoord",
"Password successfully changed." : "Wachtwoord succesvol gewijzigd.",
"Could not change the password. Maybe the old password was not correct." : "Kon wachtwoord niet wijzigen. Wellicht oude wachtwoord niet juist ingevoerd.",
+ "Recovery Key enabled" : "Herstelsleutel ingeschakeld",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Kon herstelsleutel niet inschakelen, probeer het opnieuw, of neem contact op met uw beheerder",
+ "Could not update the private key password." : "Kon het wachtwoord van de privésleutel niet bijwerken.",
+ "The old password was not correct, please try again." : "Het oude wachtwoord was onjuist, probeer het opnieuw.",
+ "The current log-in password was not correct, please try again." : "Het huidige inlogwachtwoord was niet juist, probeer het opnieuw.",
+ "Private key password successfully updated." : "Privésleutel succesvol bijgewerkt.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ongeldige privésleutel voor crypto app. Werk het privésleutel wachtwoord bij in uw persoonlijke instellingen om opnieuw toegang te krijgen tot uw versleutelde bestanden.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Crypto app is geactiveerd, maar uw sleutels werden niet geïnitialiseerd. Log uit en log daarna opnieuw in.",
+ "ownCloud basic encryption module" : "ownCloud basis versleutelingsmodule",
"Enable recovery key (allow to recover users files in case of password loss):" : "Activeren herstelsleutel (maakt het mogelijk om gebruikersbestanden terug te halen in geval van verlies van het wachtwoord):",
"Recovery key password" : "Wachtwoord herstelsleulel",
"Repeat Recovery key password" : "Herhaal het herstelsleutel wachtwoord",
diff --git a/apps/encryption/l10n/nl.json b/apps/encryption/l10n/nl.json
index d1086717a35..13d9747295e 100644
--- a/apps/encryption/l10n/nl.json
+++ b/apps/encryption/l10n/nl.json
@@ -11,7 +11,15 @@
"Please repeat the new recovery password" : "Herhaal het nieuwe herstelwachtwoord",
"Password successfully changed." : "Wachtwoord succesvol gewijzigd.",
"Could not change the password. Maybe the old password was not correct." : "Kon wachtwoord niet wijzigen. Wellicht oude wachtwoord niet juist ingevoerd.",
+ "Recovery Key enabled" : "Herstelsleutel ingeschakeld",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Kon herstelsleutel niet inschakelen, probeer het opnieuw, of neem contact op met uw beheerder",
+ "Could not update the private key password." : "Kon het wachtwoord van de privésleutel niet bijwerken.",
+ "The old password was not correct, please try again." : "Het oude wachtwoord was onjuist, probeer het opnieuw.",
+ "The current log-in password was not correct, please try again." : "Het huidige inlogwachtwoord was niet juist, probeer het opnieuw.",
+ "Private key password successfully updated." : "Privésleutel succesvol bijgewerkt.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ongeldige privésleutel voor crypto app. Werk het privésleutel wachtwoord bij in uw persoonlijke instellingen om opnieuw toegang te krijgen tot uw versleutelde bestanden.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Crypto app is geactiveerd, maar uw sleutels werden niet geïnitialiseerd. Log uit en log daarna opnieuw in.",
+ "ownCloud basic encryption module" : "ownCloud basis versleutelingsmodule",
"Enable recovery key (allow to recover users files in case of password loss):" : "Activeren herstelsleutel (maakt het mogelijk om gebruikersbestanden terug te halen in geval van verlies van het wachtwoord):",
"Recovery key password" : "Wachtwoord herstelsleulel",
"Repeat Recovery key password" : "Herhaal het herstelsleutel wachtwoord",
diff --git a/apps/encryption/l10n/pl.js b/apps/encryption/l10n/pl.js
index 5bca5e7fe33..5b94369ffd2 100644
--- a/apps/encryption/l10n/pl.js
+++ b/apps/encryption/l10n/pl.js
@@ -13,6 +13,11 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Proszę powtórz nowe hasło odzyskiwania",
"Password successfully changed." : "Zmiana hasła udana.",
"Could not change the password. Maybe the old password was not correct." : "Nie można zmienić hasła. Może stare hasło nie było poprawne.",
+ "Could not update the private key password." : "Nie można zmienić hasła klucza prywatnego.",
+ "The old password was not correct, please try again." : "Stare hasło nie było poprawne. Spróbuj jeszcze raz.",
+ "The current log-in password was not correct, please try again." : "Obecne hasło logowania nie było poprawne. Spróbuj ponownie.",
+ "Private key password successfully updated." : "Pomyślnie zaktualizowano hasło klucza prywatnego.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Klucz prywatny nie jest poprawny! Może Twoje hasło zostało zmienione z zewnątrz. Można zaktualizować hasło klucza prywatnego w ustawieniach osobistych w celu odzyskania dostępu do plików",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacja szyfrująca jest aktywna, ale twoje klucze nie zostały zainicjowane, prosze wyloguj się i zaloguj ponownie.",
"Enable recovery key (allow to recover users files in case of password loss):" : "Włączhasło klucza odzyskiwania (pozwala odzyskać pliki użytkowników w przypadku utraty hasła):",
"Recovery key password" : "Hasło klucza odzyskiwania",
diff --git a/apps/encryption/l10n/pl.json b/apps/encryption/l10n/pl.json
index c883b8ab718..7f173df628d 100644
--- a/apps/encryption/l10n/pl.json
+++ b/apps/encryption/l10n/pl.json
@@ -11,6 +11,11 @@
"Please repeat the new recovery password" : "Proszę powtórz nowe hasło odzyskiwania",
"Password successfully changed." : "Zmiana hasła udana.",
"Could not change the password. Maybe the old password was not correct." : "Nie można zmienić hasła. Może stare hasło nie było poprawne.",
+ "Could not update the private key password." : "Nie można zmienić hasła klucza prywatnego.",
+ "The old password was not correct, please try again." : "Stare hasło nie było poprawne. Spróbuj jeszcze raz.",
+ "The current log-in password was not correct, please try again." : "Obecne hasło logowania nie było poprawne. Spróbuj ponownie.",
+ "Private key password successfully updated." : "Pomyślnie zaktualizowano hasło klucza prywatnego.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Klucz prywatny nie jest poprawny! Może Twoje hasło zostało zmienione z zewnątrz. Można zaktualizować hasło klucza prywatnego w ustawieniach osobistych w celu odzyskania dostępu do plików",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacja szyfrująca jest aktywna, ale twoje klucze nie zostały zainicjowane, prosze wyloguj się i zaloguj ponownie.",
"Enable recovery key (allow to recover users files in case of password loss):" : "Włączhasło klucza odzyskiwania (pozwala odzyskać pliki użytkowników w przypadku utraty hasła):",
"Recovery key password" : "Hasło klucza odzyskiwania",
diff --git a/apps/encryption/l10n/pt_BR.js b/apps/encryption/l10n/pt_BR.js
index 43a872d3bc4..cbac8f72b48 100644
--- a/apps/encryption/l10n/pt_BR.js
+++ b/apps/encryption/l10n/pt_BR.js
@@ -15,6 +15,11 @@ OC.L10N.register(
"Could not change the password. Maybe the old password was not correct." : "Não foi possível alterar a senha. Talvez a senha antiga não estava correta.",
"Recovery Key enabled" : "Recuperar Chave habilitada",
"Could not enable the recovery key, please try again or contact your administrator" : "Não foi possível habilitar a chave recuperada, por favor tente novamente ou entre em contato com seu administrador",
+ "Could not update the private key password." : "Não foi possível atualizar a senha da chave privada.",
+ "The old password was not correct, please try again." : "A senha antiga não estava correta, por favor, tente novamente.",
+ "The current log-in password was not correct, please try again." : "A senha atual do log-in não estava correta, por favor, tente novamente.",
+ "Private key password successfully updated." : "Senha de chave privada atualizada com sucesso.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave do App de Criptografia é inválida. Por favor, atualize sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App de criptografia está ativado, mas as chaves não estão inicializadas, por favor log-out e faça login novamente",
"ownCloud basic encryption module" : "Modo de criptografia básico ownCloud",
"Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar chave de recuperação (permite recuperar arquivos de usuários em caso de perda de senha):",
diff --git a/apps/encryption/l10n/pt_BR.json b/apps/encryption/l10n/pt_BR.json
index 4e566f95878..328a3194635 100644
--- a/apps/encryption/l10n/pt_BR.json
+++ b/apps/encryption/l10n/pt_BR.json
@@ -13,6 +13,11 @@
"Could not change the password. Maybe the old password was not correct." : "Não foi possível alterar a senha. Talvez a senha antiga não estava correta.",
"Recovery Key enabled" : "Recuperar Chave habilitada",
"Could not enable the recovery key, please try again or contact your administrator" : "Não foi possível habilitar a chave recuperada, por favor tente novamente ou entre em contato com seu administrador",
+ "Could not update the private key password." : "Não foi possível atualizar a senha da chave privada.",
+ "The old password was not correct, please try again." : "A senha antiga não estava correta, por favor, tente novamente.",
+ "The current log-in password was not correct, please try again." : "A senha atual do log-in não estava correta, por favor, tente novamente.",
+ "Private key password successfully updated." : "Senha de chave privada atualizada com sucesso.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave do App de Criptografia é inválida. Por favor, atualize sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "App de criptografia está ativado, mas as chaves não estão inicializadas, por favor log-out e faça login novamente",
"ownCloud basic encryption module" : "Modo de criptografia básico ownCloud",
"Enable recovery key (allow to recover users files in case of password loss):" : "Habilitar chave de recuperação (permite recuperar arquivos de usuários em caso de perda de senha):",
diff --git a/apps/encryption/l10n/pt_PT.js b/apps/encryption/l10n/pt_PT.js
index f91dabc6998..526c79f207b 100644
--- a/apps/encryption/l10n/pt_PT.js
+++ b/apps/encryption/l10n/pt_PT.js
@@ -13,7 +13,15 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Escreva de novo a nova palavra-passe de recuperação",
"Password successfully changed." : "Palavra-passe alterada com sucesso.",
"Could not change the password. Maybe the old password was not correct." : "Não foi possível alterar a senha. Possivelmente a senha antiga não está correta.",
+ "Recovery Key enabled" : "Chave de Recuperação ativada",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Não foi possível ativar a chave de recuperação, por favor, tente de novo ou contacte o seu administrador",
+ "Could not update the private key password." : "Não foi possível atualizar a senha da chave privada.",
+ "The old password was not correct, please try again." : "A senha antiga não estava correta, por favor, tente de novo.",
+ "The current log-in password was not correct, please try again." : "A senha de iniciar a sessão atual não estava correta, por favor, tente de novo.",
+ "Private key password successfully updated." : "A senha da chave privada foi atualizada com sucesso. ",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave privada inválida da Aplicação de Encriptação. Por favor atualize a sua senha de chave privada nas definições pessoais, para recuperar o acesso aos seus ficheiros encriptados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A Aplicação de Encriptação está ativada, mas as suas chaves não inicializaram. Por favor termine e inicie a sessão novamente",
+ "ownCloud basic encryption module" : "módulo de encriptação básico da ownCloud",
"Enable recovery key (allow to recover users files in case of password loss):" : "Ativar a chave de recuperação (permite recuperar os ficheiros do utilizador, se perder a senha):",
"Recovery key password" : "Senha da chave de recuperação",
"Repeat Recovery key password" : "Contrassenha da chave de recuperação",
diff --git a/apps/encryption/l10n/pt_PT.json b/apps/encryption/l10n/pt_PT.json
index b13e94f2078..24385809d25 100644
--- a/apps/encryption/l10n/pt_PT.json
+++ b/apps/encryption/l10n/pt_PT.json
@@ -11,7 +11,15 @@
"Please repeat the new recovery password" : "Escreva de novo a nova palavra-passe de recuperação",
"Password successfully changed." : "Palavra-passe alterada com sucesso.",
"Could not change the password. Maybe the old password was not correct." : "Não foi possível alterar a senha. Possivelmente a senha antiga não está correta.",
+ "Recovery Key enabled" : "Chave de Recuperação ativada",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Não foi possível ativar a chave de recuperação, por favor, tente de novo ou contacte o seu administrador",
+ "Could not update the private key password." : "Não foi possível atualizar a senha da chave privada.",
+ "The old password was not correct, please try again." : "A senha antiga não estava correta, por favor, tente de novo.",
+ "The current log-in password was not correct, please try again." : "A senha de iniciar a sessão atual não estava correta, por favor, tente de novo.",
+ "Private key password successfully updated." : "A senha da chave privada foi atualizada com sucesso. ",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chave privada inválida da Aplicação de Encriptação. Por favor atualize a sua senha de chave privada nas definições pessoais, para recuperar o acesso aos seus ficheiros encriptados.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "A Aplicação de Encriptação está ativada, mas as suas chaves não inicializaram. Por favor termine e inicie a sessão novamente",
+ "ownCloud basic encryption module" : "módulo de encriptação básico da ownCloud",
"Enable recovery key (allow to recover users files in case of password loss):" : "Ativar a chave de recuperação (permite recuperar os ficheiros do utilizador, se perder a senha):",
"Recovery key password" : "Senha da chave de recuperação",
"Repeat Recovery key password" : "Contrassenha da chave de recuperação",
diff --git a/apps/encryption/l10n/ro.js b/apps/encryption/l10n/ro.js
index fdeb33df8c3..60291bc3a4b 100644
--- a/apps/encryption/l10n/ro.js
+++ b/apps/encryption/l10n/ro.js
@@ -1,13 +1,23 @@
OC.L10N.register(
"encryption",
{
+ "Missing recovery key password" : "Lipsește parola cheii de recuperare",
+ "Please repeat the recovery key password" : "Te rog repetă parola cheii de recuperare",
"Recovery key successfully enabled" : "Cheia de recupeare a fost activata cu succes",
"Could not enable recovery key. Please check your recovery key password!" : "Nu s-a putut activa cheia de recuperare. Verifica parola de recuperare!",
"Recovery key successfully disabled" : "Cheia de recuperare dezactivata cu succes",
"Could not disable recovery key. Please check your recovery key password!" : "Nu am putut dezactiva cheia de recuperare. Verifica parola de recuperare!",
+ "Please provide the old recovery password" : "Te rog oferă parola de recuperare veche",
+ "Please provide a new recovery password" : "Te rog oferă o nouă parolă de recuperare",
+ "Please repeat the new recovery password" : "Te rog repetă noua parolă de recuperare",
"Password successfully changed." : "Parola a fost modificată cu succes.",
"Could not change the password. Maybe the old password was not correct." : "Parola nu a putut fi schimbata. Poate ca parola veche este incorecta.",
+ "Recovery Key enabled" : "Cheie de recuperare activată",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Nu poate fi activată cheia de recuperare, te rog încearcă din nou sau contactează administratorul",
+ "Private key password successfully updated." : "Cheia privata a fost actualizata cu succes",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Cheie privată nevalidă pentru aplicația Încriptare. Te rog, actualizează-ți parola cheii private folosind setările personale pentru a reaccesa fișierele tale încriptate.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplicatia de criptare este activata dar tastatura nu este initializata , va rugam deconectati-va si reconectati-va",
+ "ownCloud basic encryption module" : "modul de ecnriptie bazic ownCloud",
"Enabled" : "Activat",
"Disabled" : "Dezactivat",
"Change Password" : "Schimbă parola"
diff --git a/apps/encryption/l10n/ro.json b/apps/encryption/l10n/ro.json
index 94b67b91db9..87f9134fc45 100644
--- a/apps/encryption/l10n/ro.json
+++ b/apps/encryption/l10n/ro.json
@@ -1,11 +1,21 @@
{ "translations": {
+ "Missing recovery key password" : "Lipsește parola cheii de recuperare",
+ "Please repeat the recovery key password" : "Te rog repetă parola cheii de recuperare",
"Recovery key successfully enabled" : "Cheia de recupeare a fost activata cu succes",
"Could not enable recovery key. Please check your recovery key password!" : "Nu s-a putut activa cheia de recuperare. Verifica parola de recuperare!",
"Recovery key successfully disabled" : "Cheia de recuperare dezactivata cu succes",
"Could not disable recovery key. Please check your recovery key password!" : "Nu am putut dezactiva cheia de recuperare. Verifica parola de recuperare!",
+ "Please provide the old recovery password" : "Te rog oferă parola de recuperare veche",
+ "Please provide a new recovery password" : "Te rog oferă o nouă parolă de recuperare",
+ "Please repeat the new recovery password" : "Te rog repetă noua parolă de recuperare",
"Password successfully changed." : "Parola a fost modificată cu succes.",
"Could not change the password. Maybe the old password was not correct." : "Parola nu a putut fi schimbata. Poate ca parola veche este incorecta.",
+ "Recovery Key enabled" : "Cheie de recuperare activată",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Nu poate fi activată cheia de recuperare, te rog încearcă din nou sau contactează administratorul",
+ "Private key password successfully updated." : "Cheia privata a fost actualizata cu succes",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Cheie privată nevalidă pentru aplicația Încriptare. Te rog, actualizează-ți parola cheii private folosind setările personale pentru a reaccesa fișierele tale încriptate.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplicatia de criptare este activata dar tastatura nu este initializata , va rugam deconectati-va si reconectati-va",
+ "ownCloud basic encryption module" : "modul de ecnriptie bazic ownCloud",
"Enabled" : "Activat",
"Disabled" : "Dezactivat",
"Change Password" : "Schimbă parola"
diff --git a/apps/encryption/l10n/ru.js b/apps/encryption/l10n/ru.js
index e473ab7df1d..c1104e7f589 100644
--- a/apps/encryption/l10n/ru.js
+++ b/apps/encryption/l10n/ru.js
@@ -13,7 +13,15 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Повторите новый пароль восстановления",
"Password successfully changed." : "Пароль успешно изменен.",
"Could not change the password. Maybe the old password was not correct." : "Невозможно изменить пароль. Возможно, указанный старый пароль не верен.",
+ "Recovery Key enabled" : "Ключ Восстановления включен",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Не возможно задействовать ключ восстановления, попробуйте снова или обратитесь к вашему системному администатору",
+ "Could not update the private key password." : "Невозможно обновить пароль закрытого ключа.",
+ "The old password was not correct, please try again." : "Указан неверный старый пароль, повторите попытку.",
+ "The current log-in password was not correct, please try again." : "Текущий пароль для учётной записи введён неверно, пожалуйста повторите попытку.",
+ "Private key password successfully updated." : "Пароль закрытого ключа успешно обновлён.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Закрытый ключ приложения шифрования недействителен. Обновите закрытый ключ в личных настройках, чтобы восстановить доступ к зашифрованным файлам.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение шифрования активно, но ваши ключи не инициализированы, выйдите из системы и войдите заново",
+ "ownCloud basic encryption module" : "Базовый модуль шифрования ownCloud",
"Enable recovery key (allow to recover users files in case of password loss):" : "Включить ключ восстановления (позволяет пользователям восстановить файлы при потере пароля):",
"Recovery key password" : "Пароль ключа восстановления",
"Repeat Recovery key password" : "Повторите пароль ключа восстановления",
diff --git a/apps/encryption/l10n/ru.json b/apps/encryption/l10n/ru.json
index 67d0d70fccf..6d97a487786 100644
--- a/apps/encryption/l10n/ru.json
+++ b/apps/encryption/l10n/ru.json
@@ -11,7 +11,15 @@
"Please repeat the new recovery password" : "Повторите новый пароль восстановления",
"Password successfully changed." : "Пароль успешно изменен.",
"Could not change the password. Maybe the old password was not correct." : "Невозможно изменить пароль. Возможно, указанный старый пароль не верен.",
+ "Recovery Key enabled" : "Ключ Восстановления включен",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Не возможно задействовать ключ восстановления, попробуйте снова или обратитесь к вашему системному администатору",
+ "Could not update the private key password." : "Невозможно обновить пароль закрытого ключа.",
+ "The old password was not correct, please try again." : "Указан неверный старый пароль, повторите попытку.",
+ "The current log-in password was not correct, please try again." : "Текущий пароль для учётной записи введён неверно, пожалуйста повторите попытку.",
+ "Private key password successfully updated." : "Пароль закрытого ключа успешно обновлён.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Закрытый ключ приложения шифрования недействителен. Обновите закрытый ключ в личных настройках, чтобы восстановить доступ к зашифрованным файлам.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Приложение шифрования активно, но ваши ключи не инициализированы, выйдите из системы и войдите заново",
+ "ownCloud basic encryption module" : "Базовый модуль шифрования ownCloud",
"Enable recovery key (allow to recover users files in case of password loss):" : "Включить ключ восстановления (позволяет пользователям восстановить файлы при потере пароля):",
"Recovery key password" : "Пароль ключа восстановления",
"Repeat Recovery key password" : "Повторите пароль ключа восстановления",
diff --git a/apps/encryption/l10n/sk_SK.js b/apps/encryption/l10n/sk_SK.js
index bf05b8a8c8b..763646a364f 100644
--- a/apps/encryption/l10n/sk_SK.js
+++ b/apps/encryption/l10n/sk_SK.js
@@ -13,6 +13,11 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Zopakujte prosím nové heslo pre obnovenie",
"Password successfully changed." : "Heslo úspešne zmenené.",
"Could not change the password. Maybe the old password was not correct." : "Nemožno zmeniť heslo. Pravdepodobne nebolo staré heslo zadané správne.",
+ "Could not update the private key password." : "Nemožno aktualizovať heslo súkromného kľúča.",
+ "The old password was not correct, please try again." : "Staré heslo nebolo zadané správne, prosím skúste to ešte raz.",
+ "The current log-in password was not correct, please try again." : "Toto heslo nebolo správne, prosím skúste to ešte raz.",
+ "Private key password successfully updated." : "Heslo súkromného kľúča je úspešne aktualizované.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný súkromný kľúč na šifrovanie aplikácií. Zaktualizujte si heslo súkromného kľúča v svojom osobnom nastavení, aby ste znovu získali prístup k svojim zašifrovaným súborom.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikácia na šifrovanie je zapnutá, ale vaše kľúče nie sú inicializované. Odhláste sa a znovu sa prihláste.",
"Enable recovery key (allow to recover users files in case of password loss):" : "Povoliť obnovovací kľúč (umožňuje obnoviť používateľské súbory v prípade straty hesla):",
"Recovery key password" : "Heslo obnovovacieho kľúča",
diff --git a/apps/encryption/l10n/sk_SK.json b/apps/encryption/l10n/sk_SK.json
index 66f629af91f..dcc8cd48bbb 100644
--- a/apps/encryption/l10n/sk_SK.json
+++ b/apps/encryption/l10n/sk_SK.json
@@ -11,6 +11,11 @@
"Please repeat the new recovery password" : "Zopakujte prosím nové heslo pre obnovenie",
"Password successfully changed." : "Heslo úspešne zmenené.",
"Could not change the password. Maybe the old password was not correct." : "Nemožno zmeniť heslo. Pravdepodobne nebolo staré heslo zadané správne.",
+ "Could not update the private key password." : "Nemožno aktualizovať heslo súkromného kľúča.",
+ "The old password was not correct, please try again." : "Staré heslo nebolo zadané správne, prosím skúste to ešte raz.",
+ "The current log-in password was not correct, please try again." : "Toto heslo nebolo správne, prosím skúste to ešte raz.",
+ "Private key password successfully updated." : "Heslo súkromného kľúča je úspešne aktualizované.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chybný súkromný kľúč na šifrovanie aplikácií. Zaktualizujte si heslo súkromného kľúča v svojom osobnom nastavení, aby ste znovu získali prístup k svojim zašifrovaným súborom.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikácia na šifrovanie je zapnutá, ale vaše kľúče nie sú inicializované. Odhláste sa a znovu sa prihláste.",
"Enable recovery key (allow to recover users files in case of password loss):" : "Povoliť obnovovací kľúč (umožňuje obnoviť používateľské súbory v prípade straty hesla):",
"Recovery key password" : "Heslo obnovovacieho kľúča",
diff --git a/apps/encryption/l10n/sl.js b/apps/encryption/l10n/sl.js
index 3e9dd2d76b6..e10a9b302da 100644
--- a/apps/encryption/l10n/sl.js
+++ b/apps/encryption/l10n/sl.js
@@ -13,6 +13,11 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Ponovno vpišite nov ključ za obnovitev",
"Password successfully changed." : "Geslo je uspešno spremenjeno.",
"Could not change the password. Maybe the old password was not correct." : "Gesla ni mogoče spremeniti. Morda vnos starega gesla ni pravilen.",
+ "Could not update the private key password." : "Ni mogoče posodobiti gesla zasebnega ključa.",
+ "The old password was not correct, please try again." : "Staro geslo ni vpisana pravilno. Poskusite znova.",
+ "The current log-in password was not correct, please try again." : "Trenutno geslo za prijavo ni vpisano pravilno. Poskusite znova.",
+ "Private key password successfully updated." : "Zasebni ključ za geslo je uspešno posodobljen.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ni ustreznega osebnega ključa za program za šifriranje. Posodobite osebni ključ za dostop do šifriranih datotek med nastavitvami.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Program za šifriranje je omogočen, vendar ni začet. Odjavite se in nato ponovno prijavite.",
"Enable recovery key (allow to recover users files in case of password loss):" : "Omogoči ključ za obnovitev datotek (v primeru izgube gesla):",
"Recovery key password" : "Ključ za obnovitev gesla",
diff --git a/apps/encryption/l10n/sl.json b/apps/encryption/l10n/sl.json
index 3b3f55794df..55a40653bd7 100644
--- a/apps/encryption/l10n/sl.json
+++ b/apps/encryption/l10n/sl.json
@@ -11,6 +11,11 @@
"Please repeat the new recovery password" : "Ponovno vpišite nov ključ za obnovitev",
"Password successfully changed." : "Geslo je uspešno spremenjeno.",
"Could not change the password. Maybe the old password was not correct." : "Gesla ni mogoče spremeniti. Morda vnos starega gesla ni pravilen.",
+ "Could not update the private key password." : "Ni mogoče posodobiti gesla zasebnega ključa.",
+ "The old password was not correct, please try again." : "Staro geslo ni vpisana pravilno. Poskusite znova.",
+ "The current log-in password was not correct, please try again." : "Trenutno geslo za prijavo ni vpisano pravilno. Poskusite znova.",
+ "Private key password successfully updated." : "Zasebni ključ za geslo je uspešno posodobljen.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ni ustreznega osebnega ključa za program za šifriranje. Posodobite osebni ključ za dostop do šifriranih datotek med nastavitvami.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Program za šifriranje je omogočen, vendar ni začet. Odjavite se in nato ponovno prijavite.",
"Enable recovery key (allow to recover users files in case of password loss):" : "Omogoči ključ za obnovitev datotek (v primeru izgube gesla):",
"Recovery key password" : "Ključ za obnovitev gesla",
diff --git a/apps/encryption/l10n/sq.js b/apps/encryption/l10n/sq.js
index 672859cc166..be24512a35c 100644
--- a/apps/encryption/l10n/sq.js
+++ b/apps/encryption/l10n/sq.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"encryption",
{
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Çelësi privat për Aplikacionin e Shifrimit është i pavlefshëm. Ju lutem përditësoni fjalëkalimin e çelësit tuaj privat në parametrat tuaj për të rimarrë qasje në skedarët tuaj të shifruar.",
"Enabled" : "Aktivizuar"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/encryption/l10n/sq.json b/apps/encryption/l10n/sq.json
index b0e2b66e012..48f32535ac0 100644
--- a/apps/encryption/l10n/sq.json
+++ b/apps/encryption/l10n/sq.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Çelësi privat për Aplikacionin e Shifrimit është i pavlefshëm. Ju lutem përditësoni fjalëkalimin e çelësit tuaj privat në parametrat tuaj për të rimarrë qasje në skedarët tuaj të shifruar.",
"Enabled" : "Aktivizuar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/encryption/l10n/sr.js b/apps/encryption/l10n/sr.js
index 4383f25f638..5d15b172dbf 100644
--- a/apps/encryption/l10n/sr.js
+++ b/apps/encryption/l10n/sr.js
@@ -15,6 +15,11 @@ OC.L10N.register(
"Could not change the password. Maybe the old password was not correct." : "Не могу да променим лозинку. Можда стара лозинка није исправна.",
"Recovery Key enabled" : "Кључ опоравка укључен",
"Could not enable the recovery key, please try again or contact your administrator" : "Не могу да укључим кључ опоравка. Покушајте поново или контактирајте администратора",
+ "Could not update the private key password." : "Не могу да ажирирам личну кључ лозинку.",
+ "The old password was not correct, please try again." : "Стара лозинка није исправна, покушајте поново.",
+ "The current log-in password was not correct, please try again." : "Тренутна лозинка за пријаву није исправна, покушајте поново.",
+ "Private key password successfully updated." : "Лична кључ лозинка је успешно ажурирана.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Неисправан лични кључ за апликацију шифровања. Ажурирајте лозинку личног кључа у личним поставкама да бисте опоравили приступ вашим шифрованим фајловима.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Апликација шифровања је укључена али ваши кључеви нису иницијализовани. Одјавите се и поново се пријавите.",
"ownCloud basic encryption module" : "оунКлауд основни шифрарски модул",
"Enable recovery key (allow to recover users files in case of password loss):" : "Омогући кључ за опоравак (омогућава опоравак корисничких фајлова у случају губитка лозинке):",
diff --git a/apps/encryption/l10n/sr.json b/apps/encryption/l10n/sr.json
index b69e4fa2b3e..9d0438f870c 100644
--- a/apps/encryption/l10n/sr.json
+++ b/apps/encryption/l10n/sr.json
@@ -13,6 +13,11 @@
"Could not change the password. Maybe the old password was not correct." : "Не могу да променим лозинку. Можда стара лозинка није исправна.",
"Recovery Key enabled" : "Кључ опоравка укључен",
"Could not enable the recovery key, please try again or contact your administrator" : "Не могу да укључим кључ опоравка. Покушајте поново или контактирајте администратора",
+ "Could not update the private key password." : "Не могу да ажирирам личну кључ лозинку.",
+ "The old password was not correct, please try again." : "Стара лозинка није исправна, покушајте поново.",
+ "The current log-in password was not correct, please try again." : "Тренутна лозинка за пријаву није исправна, покушајте поново.",
+ "Private key password successfully updated." : "Лична кључ лозинка је успешно ажурирана.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Неисправан лични кључ за апликацију шифровања. Ажурирајте лозинку личног кључа у личним поставкама да бисте опоравили приступ вашим шифрованим фајловима.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Апликација шифровања је укључена али ваши кључеви нису иницијализовани. Одјавите се и поново се пријавите.",
"ownCloud basic encryption module" : "оунКлауд основни шифрарски модул",
"Enable recovery key (allow to recover users files in case of password loss):" : "Омогући кључ за опоравак (омогућава опоравак корисничких фајлова у случају губитка лозинке):",
diff --git a/apps/encryption/l10n/sr@latin.js b/apps/encryption/l10n/sr@latin.js
index 4dbc57ff3ec..b078b50fce7 100644
--- a/apps/encryption/l10n/sr@latin.js
+++ b/apps/encryption/l10n/sr@latin.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"encryption",
{
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za Aplikaciju za šifrovanje. Molimo da osvežite vašu lozinku privatnog ključa u ličnim podešavanjima kako bi dobili pristup šifrovanim fajlovima.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija za šifrovanje je omogućena ali Vaši ključevi nisu inicijalizovani, molimo Vas da se izlogujete i ulogujete ponovo.",
"Disabled" : "Onemogućeno"
},
diff --git a/apps/encryption/l10n/sr@latin.json b/apps/encryption/l10n/sr@latin.json
index 6cac6d1a0f1..08f90ad5912 100644
--- a/apps/encryption/l10n/sr@latin.json
+++ b/apps/encryption/l10n/sr@latin.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za Aplikaciju za šifrovanje. Molimo da osvežite vašu lozinku privatnog ključa u ličnim podešavanjima kako bi dobili pristup šifrovanim fajlovima.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija za šifrovanje je omogućena ali Vaši ključevi nisu inicijalizovani, molimo Vas da se izlogujete i ulogujete ponovo.",
"Disabled" : "Onemogućeno"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
diff --git a/apps/encryption/l10n/sv.js b/apps/encryption/l10n/sv.js
index cb82ade98c8..16898b8da67 100644
--- a/apps/encryption/l10n/sv.js
+++ b/apps/encryption/l10n/sv.js
@@ -13,6 +13,11 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Vänligen upprepa det nya återställningslösenordet",
"Password successfully changed." : "Ändringen av lösenordet lyckades.",
"Could not change the password. Maybe the old password was not correct." : "Kunde inte ändra lösenordet. Kanske det gamla lösenordet inte var rätt.",
+ "Could not update the private key password." : "Kunde inte uppdatera lösenord för den privata nyckeln",
+ "The old password was not correct, please try again." : "Det gamla lösenordet var inte korrekt. Vänligen försök igen.",
+ "The current log-in password was not correct, please try again." : "Det nuvarande inloggningslösenordet var inte korrekt. Vänligen försök igen.",
+ "Private key password successfully updated." : "Den privata nyckelns lösenord uppdaterades utan problem.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ogiltig privat nyckel i krypteringsprogrammet. Vänligen uppdatera lösenordet till din privata nyckel under dina personliga inställningar för att återfå tillgång till dina krypterade filer.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet är aktiverat men dina nycklar är inte initierade. Vänligen logga ut och in igen",
"Enable recovery key (allow to recover users files in case of password loss):" : "Aktivera återställningsnyckel (för att kunna återfå användarens filer vid glömt eller förlorat lösenord):",
"Recovery key password" : "Lösenord för återställningsnyckel",
diff --git a/apps/encryption/l10n/sv.json b/apps/encryption/l10n/sv.json
index ed038a0fa33..537316161fb 100644
--- a/apps/encryption/l10n/sv.json
+++ b/apps/encryption/l10n/sv.json
@@ -11,6 +11,11 @@
"Please repeat the new recovery password" : "Vänligen upprepa det nya återställningslösenordet",
"Password successfully changed." : "Ändringen av lösenordet lyckades.",
"Could not change the password. Maybe the old password was not correct." : "Kunde inte ändra lösenordet. Kanske det gamla lösenordet inte var rätt.",
+ "Could not update the private key password." : "Kunde inte uppdatera lösenord för den privata nyckeln",
+ "The old password was not correct, please try again." : "Det gamla lösenordet var inte korrekt. Vänligen försök igen.",
+ "The current log-in password was not correct, please try again." : "Det nuvarande inloggningslösenordet var inte korrekt. Vänligen försök igen.",
+ "Private key password successfully updated." : "Den privata nyckelns lösenord uppdaterades utan problem.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ogiltig privat nyckel i krypteringsprogrammet. Vänligen uppdatera lösenordet till din privata nyckel under dina personliga inställningar för att återfå tillgång till dina krypterade filer.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Krypteringsprogrammet är aktiverat men dina nycklar är inte initierade. Vänligen logga ut och in igen",
"Enable recovery key (allow to recover users files in case of password loss):" : "Aktivera återställningsnyckel (för att kunna återfå användarens filer vid glömt eller förlorat lösenord):",
"Recovery key password" : "Lösenord för återställningsnyckel",
diff --git a/apps/encryption/l10n/tr.js b/apps/encryption/l10n/tr.js
index 4fc6dc3fbd0..ef00578b5dc 100644
--- a/apps/encryption/l10n/tr.js
+++ b/apps/encryption/l10n/tr.js
@@ -13,7 +13,15 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Lütfen yeni kurtarma parolasını yenileyin",
"Password successfully changed." : "Parola başarıyla değiştirildi.",
"Could not change the password. Maybe the old password was not correct." : "Parola değiştirilemedi. Eski parolanız doğru olmayabilir.",
+ "Recovery Key enabled" : "Kurtarma anahtarı etkin",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Kurtarma anahtarını etkinleştirmek olmadı, tekrar deneyin ya da yöneticinize başvurun",
+ "Could not update the private key password." : "Özel anahtar parolası güncellenemedi",
+ "The old password was not correct, please try again." : "Eski parola doğru değil, lütfen yeniden deneyin.",
+ "The current log-in password was not correct, please try again." : "Geçerli oturum parolası doğru değil, lütfen yeniden deneyin.",
+ "Private key password successfully updated." : "Özel anahtar parolası başarıyla güncellendi.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifreleme Uygulaması için geçersiz özel anahtar. Lütfen şifreli dosyalarınıza erişimi tekrar kazanabilmek için kişisel ayarlarınızdan özel anahtar parolanızı güncelleyin.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın",
+ "ownCloud basic encryption module" : "ownCloud basit şifreleme modülü",
"Enable recovery key (allow to recover users files in case of password loss):" : "Kurtarma anahtarını etkinleştir (parola kaybı durumunda kullanıcı dosyalarının kurtarılmasına izin verir):",
"Recovery key password" : "Kurtarma anahtarı parolası",
"Repeat Recovery key password" : "Kurtarma anahtarı parolasını yineleyin",
diff --git a/apps/encryption/l10n/tr.json b/apps/encryption/l10n/tr.json
index 3f9084528fc..38fbc6898d9 100644
--- a/apps/encryption/l10n/tr.json
+++ b/apps/encryption/l10n/tr.json
@@ -11,7 +11,15 @@
"Please repeat the new recovery password" : "Lütfen yeni kurtarma parolasını yenileyin",
"Password successfully changed." : "Parola başarıyla değiştirildi.",
"Could not change the password. Maybe the old password was not correct." : "Parola değiştirilemedi. Eski parolanız doğru olmayabilir.",
+ "Recovery Key enabled" : "Kurtarma anahtarı etkin",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Kurtarma anahtarını etkinleştirmek olmadı, tekrar deneyin ya da yöneticinize başvurun",
+ "Could not update the private key password." : "Özel anahtar parolası güncellenemedi",
+ "The old password was not correct, please try again." : "Eski parola doğru değil, lütfen yeniden deneyin.",
+ "The current log-in password was not correct, please try again." : "Geçerli oturum parolası doğru değil, lütfen yeniden deneyin.",
+ "Private key password successfully updated." : "Özel anahtar parolası başarıyla güncellendi.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Şifreleme Uygulaması için geçersiz özel anahtar. Lütfen şifreli dosyalarınıza erişimi tekrar kazanabilmek için kişisel ayarlarınızdan özel anahtar parolanızı güncelleyin.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın",
+ "ownCloud basic encryption module" : "ownCloud basit şifreleme modülü",
"Enable recovery key (allow to recover users files in case of password loss):" : "Kurtarma anahtarını etkinleştir (parola kaybı durumunda kullanıcı dosyalarının kurtarılmasına izin verir):",
"Recovery key password" : "Kurtarma anahtarı parolası",
"Repeat Recovery key password" : "Kurtarma anahtarı parolasını yineleyin",
diff --git a/apps/encryption/l10n/uk.js b/apps/encryption/l10n/uk.js
index 0dc7bacc16c..6abba2b9f9f 100644
--- a/apps/encryption/l10n/uk.js
+++ b/apps/encryption/l10n/uk.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Please repeat the recovery key password" : "Введіть ще раз пароль для ключа відновлення",
"Repeated recovery key password does not match the provided recovery key password" : "Введені паролі ключа відновлення не співпадають",
"Recovery key successfully enabled" : "Ключ відновлення підключено",
+ "Could not enable recovery key. Please check your recovery key password!" : "Не вдалося підключити ключ відновлення. Будь ласка, перевірте пароль свого ключа відновлення!",
"Recovery key successfully disabled" : "Ключ відновлення відключено",
"Could not disable recovery key. Please check your recovery key password!" : "Не вдалося відключити ключ відновлення. Будь ласка, перевірте пароль ключа відновлення!",
"Please provide the old recovery password" : "Будь ласка, введіть старий пароль відновлення",
@@ -12,7 +13,15 @@ OC.L10N.register(
"Please repeat the new recovery password" : "Будь ласка, введіть новий пароль відновлення ще раз",
"Password successfully changed." : "Пароль змінено.",
"Could not change the password. Maybe the old password was not correct." : "Не вдалося змінити пароль. Можливо ви неправильно ввели старий пароль.",
+ "Recovery Key enabled" : "Ключ відновлення підключено",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Не вдалося підключити ключ відновлення, будь ласка, перевірте пароль ключа відновлення!",
+ "Could not update the private key password." : "Не вдалося оновити пароль секретного ключа.",
+ "The old password was not correct, please try again." : "Старий пароль введено не вірно, спробуйте ще раз.",
+ "The current log-in password was not correct, please try again." : "Невірний пароль входу, будь ласка, спробуйте ще раз.",
+ "Private key password successfully updated." : "Пароль секретного ключа оновлено.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невірний закритий ключ для доданку шифрування. Оновіть пароль до вашого закритого ключа в особистих налаштуваннях.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову",
+ "ownCloud basic encryption module" : "базовий модуль шифрування ownCloud",
"Enable recovery key (allow to recover users files in case of password loss):" : "Ввімкнути ключ відновлення (дозволяє користувачам відновлювати файли при втраті паролю):",
"Recovery key password" : "Пароль ключа відновлення",
"Repeat Recovery key password" : "Введіть ще раз пароль ключа відновлення",
diff --git a/apps/encryption/l10n/uk.json b/apps/encryption/l10n/uk.json
index 173c7159910..31918de0499 100644
--- a/apps/encryption/l10n/uk.json
+++ b/apps/encryption/l10n/uk.json
@@ -3,6 +3,7 @@
"Please repeat the recovery key password" : "Введіть ще раз пароль для ключа відновлення",
"Repeated recovery key password does not match the provided recovery key password" : "Введені паролі ключа відновлення не співпадають",
"Recovery key successfully enabled" : "Ключ відновлення підключено",
+ "Could not enable recovery key. Please check your recovery key password!" : "Не вдалося підключити ключ відновлення. Будь ласка, перевірте пароль свого ключа відновлення!",
"Recovery key successfully disabled" : "Ключ відновлення відключено",
"Could not disable recovery key. Please check your recovery key password!" : "Не вдалося відключити ключ відновлення. Будь ласка, перевірте пароль ключа відновлення!",
"Please provide the old recovery password" : "Будь ласка, введіть старий пароль відновлення",
@@ -10,7 +11,15 @@
"Please repeat the new recovery password" : "Будь ласка, введіть новий пароль відновлення ще раз",
"Password successfully changed." : "Пароль змінено.",
"Could not change the password. Maybe the old password was not correct." : "Не вдалося змінити пароль. Можливо ви неправильно ввели старий пароль.",
+ "Recovery Key enabled" : "Ключ відновлення підключено",
+ "Could not enable the recovery key, please try again or contact your administrator" : "Не вдалося підключити ключ відновлення, будь ласка, перевірте пароль ключа відновлення!",
+ "Could not update the private key password." : "Не вдалося оновити пароль секретного ключа.",
+ "The old password was not correct, please try again." : "Старий пароль введено не вірно, спробуйте ще раз.",
+ "The current log-in password was not correct, please try again." : "Невірний пароль входу, будь ласка, спробуйте ще раз.",
+ "Private key password successfully updated." : "Пароль секретного ключа оновлено.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невірний закритий ключ для доданку шифрування. Оновіть пароль до вашого закритого ключа в особистих налаштуваннях.",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову",
+ "ownCloud basic encryption module" : "базовий модуль шифрування ownCloud",
"Enable recovery key (allow to recover users files in case of password loss):" : "Ввімкнути ключ відновлення (дозволяє користувачам відновлювати файли при втраті паролю):",
"Recovery key password" : "Пароль ключа відновлення",
"Repeat Recovery key password" : "Введіть ще раз пароль ключа відновлення",
diff --git a/apps/encryption/l10n/vi.js b/apps/encryption/l10n/vi.js
index 0bd1e40794d..1e835e4b9ad 100644
--- a/apps/encryption/l10n/vi.js
+++ b/apps/encryption/l10n/vi.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"Could not disable recovery key. Please check your recovery key password!" : "Không thể vô hiệu hóa khóa khôi phục. Vui lòng kiểm tra mật khẩu khóa khôi phục!",
"Password successfully changed." : "Đã đổi mật khẩu.",
"Could not change the password. Maybe the old password was not correct." : "Không thể đổi mật khẩu. Có lẽ do mật khẩu cũ không đúng.",
+ "Private key password successfully updated." : "Cập nhật thành công mật khẩu khóa cá nhân",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Ứng dụng mã hóa đã được kích hoạt nhưng bạn chưa khởi tạo khóa. Vui lòng đăng xuất ra và đăng nhập lại",
"Enabled" : "Bật",
"Disabled" : "Tắt",
diff --git a/apps/encryption/l10n/vi.json b/apps/encryption/l10n/vi.json
index 224870445aa..51973ceb65d 100644
--- a/apps/encryption/l10n/vi.json
+++ b/apps/encryption/l10n/vi.json
@@ -5,6 +5,7 @@
"Could not disable recovery key. Please check your recovery key password!" : "Không thể vô hiệu hóa khóa khôi phục. Vui lòng kiểm tra mật khẩu khóa khôi phục!",
"Password successfully changed." : "Đã đổi mật khẩu.",
"Could not change the password. Maybe the old password was not correct." : "Không thể đổi mật khẩu. Có lẽ do mật khẩu cũ không đúng.",
+ "Private key password successfully updated." : "Cập nhật thành công mật khẩu khóa cá nhân",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Ứng dụng mã hóa đã được kích hoạt nhưng bạn chưa khởi tạo khóa. Vui lòng đăng xuất ra và đăng nhập lại",
"Enabled" : "Bật",
"Disabled" : "Tắt",
diff --git a/apps/encryption/l10n/zh_CN.js b/apps/encryption/l10n/zh_CN.js
index 7bf5bb3ad37..59d5b397435 100644
--- a/apps/encryption/l10n/zh_CN.js
+++ b/apps/encryption/l10n/zh_CN.js
@@ -12,6 +12,10 @@ OC.L10N.register(
"Please repeat the new recovery password" : "请替换新的恢复密码",
"Password successfully changed." : "密码修改成功。",
"Could not change the password. Maybe the old password was not correct." : "不能修改密码。旧密码可能不正确。",
+ "Could not update the private key password." : "不能更新私有密钥。",
+ "The old password was not correct, please try again." : "原始密码错误,请重试。",
+ "Private key password successfully updated." : "私钥密码成功更新。",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "无效的私有密钥。请到您的个人配置里去更新私有密钥,来恢复对加密文件的访问。",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。",
"Enable recovery key (allow to recover users files in case of password loss):" : "启用恢复密钥(允许你在密码丢失后恢复文件):",
"Recovery key password" : "恢复密钥密码",
diff --git a/apps/encryption/l10n/zh_CN.json b/apps/encryption/l10n/zh_CN.json
index 2cb368ad169..590a6cf8471 100644
--- a/apps/encryption/l10n/zh_CN.json
+++ b/apps/encryption/l10n/zh_CN.json
@@ -10,6 +10,10 @@
"Please repeat the new recovery password" : "请替换新的恢复密码",
"Password successfully changed." : "密码修改成功。",
"Could not change the password. Maybe the old password was not correct." : "不能修改密码。旧密码可能不正确。",
+ "Could not update the private key password." : "不能更新私有密钥。",
+ "The old password was not correct, please try again." : "原始密码错误,请重试。",
+ "Private key password successfully updated." : "私钥密码成功更新。",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "无效的私有密钥。请到您的个人配置里去更新私有密钥,来恢复对加密文件的访问。",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。",
"Enable recovery key (allow to recover users files in case of password loss):" : "启用恢复密钥(允许你在密码丢失后恢复文件):",
"Recovery key password" : "恢复密钥密码",
diff --git a/apps/encryption/l10n/zh_TW.js b/apps/encryption/l10n/zh_TW.js
index b7860cbb30b..a3915f15a6f 100644
--- a/apps/encryption/l10n/zh_TW.js
+++ b/apps/encryption/l10n/zh_TW.js
@@ -7,6 +7,8 @@ OC.L10N.register(
"Could not disable recovery key. Please check your recovery key password!" : "無法停用還原金鑰。請檢查您的還原金鑰密碼!",
"Password successfully changed." : "成功變更密碼。",
"Could not change the password. Maybe the old password was not correct." : "無法變更密碼,或許是輸入的舊密碼不正確。",
+ "Private key password successfully updated." : "私人金鑰密碼已成功更新。",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "無效的檔案加密私鑰,請在個人設定中更新您的私鑰密語以存取加密的檔案。",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "檔案加密已啓用,但是您的金鑰尚未初始化,請重新登入一次",
"Enable recovery key (allow to recover users files in case of password loss):" : "啟用還原金鑰 (因忘記密碼仍允許還原使用者檔案):",
"Recovery key password" : "還原金鑰密碼",
diff --git a/apps/encryption/l10n/zh_TW.json b/apps/encryption/l10n/zh_TW.json
index 7001d5b9b5f..61523cc06f5 100644
--- a/apps/encryption/l10n/zh_TW.json
+++ b/apps/encryption/l10n/zh_TW.json
@@ -5,6 +5,8 @@
"Could not disable recovery key. Please check your recovery key password!" : "無法停用還原金鑰。請檢查您的還原金鑰密碼!",
"Password successfully changed." : "成功變更密碼。",
"Could not change the password. Maybe the old password was not correct." : "無法變更密碼,或許是輸入的舊密碼不正確。",
+ "Private key password successfully updated." : "私人金鑰密碼已成功更新。",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "無效的檔案加密私鑰,請在個人設定中更新您的私鑰密語以存取加密的檔案。",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "檔案加密已啓用,但是您的金鑰尚未初始化,請重新登入一次",
"Enable recovery key (allow to recover users files in case of password loss):" : "啟用還原金鑰 (因忘記密碼仍允許還原使用者檔案):",
"Recovery key password" : "還原金鑰密碼",
diff --git a/apps/encryption/lib/crypto/crypt.php b/apps/encryption/lib/crypto/crypt.php
index 9ada9200551..782dbbe5a35 100644
--- a/apps/encryption/lib/crypto/crypt.php
+++ b/apps/encryption/lib/crypto/crypt.php
@@ -210,6 +210,15 @@ class Crypt {
}
/**
+ * get legacy cipher
+ *
+ * @return string
+ */
+ public function getLegacyCipher() {
+ return self::LEGACY_CIPHER;
+ }
+
+ /**
* @param string $encryptedContent
* @param string $iv
* @return string
diff --git a/apps/encryption/lib/crypto/encryption.php b/apps/encryption/lib/crypto/encryption.php
index 8498b4223e1..3f298481680 100644
--- a/apps/encryption/lib/crypto/encryption.php
+++ b/apps/encryption/lib/crypto/encryption.php
@@ -101,6 +101,7 @@ class Encryption implements IEncryptionModule {
*
* @param string $path to the file
* @param string $user who read/write the file
+ * @param string $mode php stream open mode
* @param array $header contains the header data read from the file
* @param array $accessList who has access to the file contains the key 'users' and 'public'
*
@@ -108,12 +109,19 @@ class Encryption implements IEncryptionModule {
* written to the header, in case of a write operation
* or if no additional data is needed return a empty array
*/
- public function begin($path, $user, array $header, array $accessList) {
+ public function begin($path, $user, $mode, array $header, array $accessList) {
if (isset($header['cipher'])) {
$this->cipher = $header['cipher'];
- } else {
+ } else if (
+ $mode === 'w'
+ || $mode === 'w+'
+ || $mode === 'wb'
+ || $mode === 'wb+'
+ ) {
$this->cipher = $this->crypt->getCipher();
+ } else {
+ $this->cipher = $this->crypt->getLegacyCipher();
}
$this->path = $this->getPathToRealFile($path);
@@ -234,7 +242,7 @@ class Encryption implements IEncryptionModule {
public function decrypt($data) {
$result = '';
if (!empty($data)) {
- $result = $this->crypt->symmetricDecryptFileContent($data, $this->fileKey);
+ $result = $this->crypt->symmetricDecryptFileContent($data, $this->fileKey, $this->cipher);
}
return $result;
}
diff --git a/apps/encryption/lib/keymanager.php b/apps/encryption/lib/keymanager.php
index 0c6edd49c81..bde8212e9dc 100644
--- a/apps/encryption/lib/keymanager.php
+++ b/apps/encryption/lib/keymanager.php
@@ -23,6 +23,7 @@
namespace OCA\Encryption;
use OC\Encryption\Exceptions\DecryptionFailedException;
+use OCA\Encryption\Crypto\Encryption;
use OCA\Encryption\Exceptions\PrivateKeyMissingException;
use OCA\Encryption\Exceptions\PublicKeyMissingException;
use OCA\Encryption\Crypto\Crypt;
@@ -141,7 +142,8 @@ class KeyManager {
// Save public key
$this->keyStorage->setSystemUserKey(
- $this->publicShareKeyId . '.publicKey', $keyPair['publicKey']);
+ $this->publicShareKeyId . '.publicKey', $keyPair['publicKey'],
+ Encryption::ID);
// Encrypt private key empty passphrase
$encryptedKey = $this->crypt->symmetricEncryptFileContent($keyPair['privateKey'], '');
@@ -164,7 +166,7 @@ class KeyManager {
* @return string
*/
public function getRecoveryKey() {
- return $this->keyStorage->getSystemUserKey($this->recoveryKeyId . '.publicKey');
+ return $this->keyStorage->getSystemUserKey($this->recoveryKeyId . '.publicKey', Encryption::ID);
}
/**
@@ -181,7 +183,7 @@ class KeyManager {
* @return bool
*/
public function checkRecoveryPassword($password) {
- $recoveryKey = $this->keyStorage->getSystemUserKey($this->recoveryKeyId . '.privateKey');
+ $recoveryKey = $this->keyStorage->getSystemUserKey($this->recoveryKeyId . '.privateKey', Encryption::ID);
$decryptedRecoveryKey = $this->crypt->decryptPrivateKey($recoveryKey,
$password);
@@ -219,7 +221,10 @@ class KeyManager {
*/
public function setRecoveryKey($password, $keyPair) {
// Save Public Key
- $this->keyStorage->setSystemUserKey($this->getRecoveryKeyId(). '.publicKey', $keyPair['publicKey']);
+ $this->keyStorage->setSystemUserKey($this->getRecoveryKeyId().
+ '.publicKey',
+ $keyPair['publicKey'],
+ Encryption::ID);
$encryptedKey = $this->crypt->symmetricEncryptFileContent($keyPair['privateKey'],
$password);
@@ -238,7 +243,7 @@ class KeyManager {
* @return bool
*/
public function setPublicKey($userId, $key) {
- return $this->keyStorage->setUserKey($userId, $this->publicKeyId, $key);
+ return $this->keyStorage->setUserKey($userId, $this->publicKeyId, $key, Encryption::ID);
}
/**
@@ -249,7 +254,8 @@ class KeyManager {
public function setPrivateKey($userId, $key) {
return $this->keyStorage->setUserKey($userId,
$this->privateKeyId,
- $key);
+ $key,
+ Encryption::ID);
}
/**
@@ -260,7 +266,7 @@ class KeyManager {
* @return boolean
*/
public function setFileKey($path, $key) {
- return $this->keyStorage->setFileKey($path, $this->fileKeyId, $key);
+ return $this->keyStorage->setFileKey($path, $this->fileKeyId, $key, Encryption::ID);
}
/**
@@ -286,7 +292,7 @@ class KeyManager {
*/
public function setShareKey($path, $uid, $key) {
$keyId = $uid . '.' . $this->shareKeyId;
- return $this->keyStorage->setFileKey($path, $keyId, $key);
+ return $this->keyStorage->setFileKey($path, $keyId, $key, Encryption::ID);
}
/**
@@ -326,7 +332,7 @@ class KeyManager {
*/
public function getPrivateKey($userId) {
$privateKey = $this->keyStorage->getUserKey($userId,
- $this->privateKeyId);
+ $this->privateKeyId, Encryption::ID);
if (strlen($privateKey) !== 0) {
return $privateKey;
@@ -340,12 +346,12 @@ class KeyManager {
* @return string
*/
public function getFileKey($path, $uid) {
- $encryptedFileKey = $this->keyStorage->getFileKey($path, $this->fileKeyId);
+ $encryptedFileKey = $this->keyStorage->getFileKey($path, $this->fileKeyId, Encryption::ID);
if (is_null($uid)) {
$uid = $this->getPublicShareKeyId();
$shareKey = $this->getShareKey($path, $uid);
- $privateKey = $this->keyStorage->getSystemUserKey($this->publicShareKeyId . '.privateKey');
+ $privateKey = $this->keyStorage->getSystemUserKey($this->publicShareKeyId . '.privateKey', Encryption::ID);
$privateKey = $this->crypt->decryptPrivateKey($privateKey);
} else {
$shareKey = $this->getShareKey($path, $uid);
@@ -369,7 +375,7 @@ class KeyManager {
*/
public function getEncryptedFileKey($path) {
$encryptedFileKey = $this->keyStorage->getFileKey($path,
- $this->fileKeyId);
+ $this->fileKeyId, Encryption::ID);
return $encryptedFileKey;
}
@@ -382,7 +388,10 @@ class KeyManager {
* @return boolean
*/
public function deleteShareKey($path, $keyId) {
- return $this->keyStorage->deleteFileKey($path, $keyId . '.' . $this->shareKeyId);
+ return $this->keyStorage->deleteFileKey(
+ $path,
+ $keyId . '.' . $this->shareKeyId,
+ Encryption::ID);
}
@@ -393,7 +402,7 @@ class KeyManager {
*/
public function getShareKey($path, $uid) {
$keyId = $uid . '.' . $this->shareKeyId;
- return $this->keyStorage->getFileKey($path, $keyId);
+ return $this->keyStorage->getFileKey($path, $keyId, Encryption::ID);
}
/**
@@ -418,7 +427,7 @@ class KeyManager {
* @throws PublicKeyMissingException
*/
public function getPublicKey($userId) {
- $publicKey = $this->keyStorage->getUserKey($userId, $this->publicKeyId);
+ $publicKey = $this->keyStorage->getUserKey($userId, $this->publicKeyId, Encryption::ID);
if (strlen($publicKey) !== 0) {
return $publicKey;
@@ -436,7 +445,7 @@ class KeyManager {
* @return string
*/
public function getPublicShareKey() {
- return $this->keyStorage->getSystemUserKey($this->publicShareKeyId . '.publicKey');
+ return $this->keyStorage->getSystemUserKey($this->publicShareKeyId . '.publicKey', Encryption::ID);
}
/**
@@ -462,7 +471,7 @@ class KeyManager {
* @return bool
*/
public function deletePublicKey($uid) {
- return $this->keyStorage->deleteUserKey($uid, $this->publicKeyId);
+ return $this->keyStorage->deleteUserKey($uid, $this->publicKeyId, Encryption::ID);
}
/**
@@ -470,11 +479,11 @@ class KeyManager {
* @return bool
*/
private function deletePrivateKey($uid) {
- return $this->keyStorage->deleteUserKey($uid, $this->privateKeyId);
+ return $this->keyStorage->deleteUserKey($uid, $this->privateKeyId, Encryption::ID);
}
public function deleteAllFileKeys($path) {
- return $this->keyStorage->deleteAllFileKeys($path);
+ return $this->keyStorage->deleteAllFileKeys($path, Encryption::ID);
}
/**
@@ -502,7 +511,7 @@ class KeyManager {
* @return string returns openssl key
*/
public function getSystemPrivateKey($keyId) {
- return $this->keyStorage->getSystemUserKey($keyId . '.' . $this->privateKeyId);
+ return $this->keyStorage->getSystemUserKey($keyId . '.' . $this->privateKeyId, Encryption::ID);
}
/**
@@ -511,7 +520,10 @@ class KeyManager {
* @return string returns openssl key
*/
public function setSystemPrivateKey($keyId, $key) {
- return $this->keyStorage->setSystemUserKey($keyId . '.' . $this->privateKeyId, $key);
+ return $this->keyStorage->setSystemUserKey(
+ $keyId . '.' . $this->privateKeyId,
+ $key,
+ Encryption::ID);
}
/**
diff --git a/apps/encryption/settings/settings-personal.php b/apps/encryption/settings/settings-personal.php
index abbe62af615..01e1bdab0ea 100644
--- a/apps/encryption/settings/settings-personal.php
+++ b/apps/encryption/settings/settings-personal.php
@@ -38,7 +38,7 @@ $util = new \OCA\Encryption\Util(
\OC::$server->getConfig());
$keyManager = new \OCA\Encryption\KeyManager(
- \OC::$server->getEncryptionKeyStorage(\OCA\Encryption\Crypto\Encryption::ID),
+ \OC::$server->getEncryptionKeyStorage(),
$crypt,
\OC::$server->getConfig(),
$userSession,
diff --git a/apps/encryption/tests/controller/SettingsControllerTest.php b/apps/encryption/tests/controller/SettingsControllerTest.php
new file mode 100644
index 00000000000..478bf8213b5
--- /dev/null
+++ b/apps/encryption/tests/controller/SettingsControllerTest.php
@@ -0,0 +1,222 @@
+<?php
+/**
+ * @author Björn Schießle <schiessle@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OCA\Encryption\Tests\Controller;
+
+use OCA\Encryption\Controller\SettingsController;
+use OCA\Encryption\Session;
+use OCP\AppFramework\Http;
+use Test\TestCase;
+
+class SettingsControllerTest extends TestCase {
+
+ /** @var SettingsController */
+ private $controller;
+
+ /** @var \PHPUnit_Framework_MockObject_MockObject */
+ private $requestMock;
+
+ /** @var \PHPUnit_Framework_MockObject_MockObject */
+ private $l10nMock;
+
+ /** @var \PHPUnit_Framework_MockObject_MockObject */
+ private $userManagerMock;
+
+ /** @var \PHPUnit_Framework_MockObject_MockObject */
+ private $userSessionMock;
+
+ /** @var \PHPUnit_Framework_MockObject_MockObject */
+ private $keyManagerMock;
+
+ /** @var \PHPUnit_Framework_MockObject_MockObject */
+ private $cryptMock;
+
+ /** @var \PHPUnit_Framework_MockObject_MockObject */
+ private $sessionMock;
+
+ protected function setUp() {
+
+ parent::setUp();
+
+ $this->requestMock = $this->getMock('OCP\IRequest');
+
+ $this->l10nMock = $this->getMockBuilder('OCP\IL10N')
+ ->disableOriginalConstructor()->getMock();
+
+ $this->l10nMock->expects($this->any())
+ ->method('t')
+ ->will($this->returnCallback(function($message) {
+ return $message;
+ }));
+
+ $this->userManagerMock = $this->getMockBuilder('OCP\IUserManager')
+ ->disableOriginalConstructor()->getMock();
+
+ $this->keyManagerMock = $this->getMockBuilder('OCA\Encryption\KeyManager')
+ ->disableOriginalConstructor()->getMock();
+
+ $this->cryptMock = $this->getMockBuilder('OCA\Encryption\Crypto\Crypt')
+ ->disableOriginalConstructor()->getMock();
+
+ $this->userSessionMock = $this->getMockBuilder('OCP\IUserSession')
+ ->disableOriginalConstructor()
+ ->setMethods([
+ 'isLoggedIn',
+ 'getUID',
+ 'login',
+ 'logout',
+ 'setUser',
+ 'getUser',
+ 'canChangePassword',
+ ])
+ ->getMock();
+
+ $this->userSessionMock->expects($this->any())
+ ->method('getUID')
+ ->willReturn('testUser');
+
+ $this->userSessionMock->expects($this->any())
+ ->method($this->anything())
+ ->will($this->returnSelf());
+
+ $this->sessionMock = $this->getMockBuilder('OCA\Encryption\Session')
+ ->disableOriginalConstructor()->getMock();
+
+ $this->controller = new SettingsController(
+ 'encryption',
+ $this->requestMock,
+ $this->l10nMock,
+ $this->userManagerMock,
+ $this->userSessionMock,
+ $this->keyManagerMock,
+ $this->cryptMock,
+ $this->sessionMock
+ );
+ }
+
+ /**
+ * test updatePrivateKeyPassword() if wrong new password was entered
+ */
+ public function testUpdatePrivateKeyPasswordWrongNewPassword() {
+
+ $oldPassword = 'old';
+ $newPassword = 'new';
+
+ $this->userManagerMock
+ ->expects($this->once())
+ ->method('checkPassword')
+ ->willReturn(false);
+
+ $result = $this->controller->updatePrivateKeyPassword($oldPassword, $newPassword);
+
+ $data = $result->getData();
+
+ $this->assertSame(Http::STATUS_BAD_REQUEST, $result->getStatus());
+ $this->assertSame('The current log-in password was not correct, please try again.',
+ $data['message']);
+ }
+
+ /**
+ * test updatePrivateKeyPassword() if wrong old password was entered
+ */
+ public function testUpdatePrivateKeyPasswordWrongOldPassword() {
+
+ $oldPassword = 'old';
+ $newPassword = 'new';
+
+ $this->userManagerMock
+ ->expects($this->once())
+ ->method('checkPassword')
+ ->willReturn(true);
+
+ $this->cryptMock
+ ->expects($this->once())
+ ->method('decryptPrivateKey')
+ ->willReturn(false);
+
+ $result = $this->controller->updatePrivateKeyPassword($oldPassword, $newPassword);
+
+ $data = $result->getData();
+
+ $this->assertSame(Http::STATUS_BAD_REQUEST, $result->getStatus());
+ $this->assertSame('The old password was not correct, please try again.',
+ $data['message']);
+ }
+
+ /**
+ * test updatePrivateKeyPassword() with the correct old and new password
+ */
+ public function testUpdatePrivateKeyPassword() {
+
+ $oldPassword = 'old';
+ $newPassword = 'new';
+
+ $this->userSessionMock
+ ->expects($this->once())
+ ->method('getUID')
+ ->willReturn('testUser');
+
+ $this->userManagerMock
+ ->expects($this->once())
+ ->method('checkPassword')
+ ->willReturn(true);
+
+ $this->cryptMock
+ ->expects($this->once())
+ ->method('decryptPrivateKey')
+ ->willReturn('decryptedKey');
+
+ $this->cryptMock
+ ->expects($this->once())
+ ->method('symmetricEncryptFileContent')
+ ->willReturn('encryptedKey');
+
+ $this->cryptMock
+ ->expects($this->once())
+ ->method('generateHeader')
+ ->willReturn('header.');
+
+ // methods which must be called after successful changing the key password
+ $this->keyManagerMock
+ ->expects($this->once())
+ ->method('setPrivateKey')
+ ->with($this->equalTo('testUser'), $this->equalTo('header.encryptedKey'));
+
+ $this->sessionMock
+ ->expects($this->once())
+ ->method('setPrivateKey')
+ ->with($this->equalTo('decryptedKey'));
+
+ $this->sessionMock
+ ->expects($this->once())
+ ->method('setStatus')
+ ->with($this->equalTo(Session::INIT_SUCCESSFUL));
+
+ $result = $this->controller->updatePrivateKeyPassword($oldPassword, $newPassword);
+
+ $data = $result->getData();
+
+ $this->assertSame(Http::STATUS_OK, $result->getStatus());
+ $this->assertSame('Private key password successfully updated.',
+ $data['message']);
+ }
+
+}
diff --git a/apps/encryption/tests/lib/crypto/encryptionTest.php b/apps/encryption/tests/lib/crypto/encryptionTest.php
index 9e14a70ebb0..500433c77d4 100644
--- a/apps/encryption/tests/lib/crypto/encryptionTest.php
+++ b/apps/encryption/tests/lib/crypto/encryptionTest.php
@@ -72,5 +72,32 @@ class EncryptionTest extends TestCase {
);
}
+ /**
+ * @dataProvider dataTestBegin
+ */
+ public function testBegin($mode, $header, $legacyCipher, $defaultCipher, $expected) {
+
+ $this->cryptMock->expects($this->any())
+ ->method('getCipher')
+ ->willReturn($defaultCipher);
+ $this->cryptMock->expects($this->any())
+ ->method('getLegacyCipher')
+ ->willReturn($legacyCipher);
+
+ $result = $this->instance->begin('/user/files/foo.txt', 'user', $mode, $header, []);
+
+ $this->assertArrayHasKey('cipher', $result);
+ $this->assertSame($expected, $result['cipher']);
+ }
+
+ public function dataTestBegin() {
+ return array(
+ array('w', ['cipher' => 'myCipher'], 'legacyCipher', 'defaultCipher', 'myCipher'),
+ array('r', ['cipher' => 'myCipher'], 'legacyCipher', 'defaultCipher', 'myCipher'),
+ array('w', [], 'legacyCipher', 'defaultCipher', 'defaultCipher'),
+ array('r', [], 'legacyCipher', 'defaultCipher', 'legacyCipher'),
+ );
+ }
+
} \ No newline at end of file
diff --git a/apps/encryption_dummy/appinfo/app.php b/apps/encryption_dummy/appinfo/app.php
index fa17e676eda..51a535a9820 100644
--- a/apps/encryption_dummy/appinfo/app.php
+++ b/apps/encryption_dummy/appinfo/app.php
@@ -2,5 +2,7 @@
$manager = \OC::$server->getEncryptionManager();
$module = new \OCA\Encryption_Dummy\DummyModule();
-$manager->registerEncryptionModule($module);
+$manager->registerEncryptionModule('OC_DUMMY_MODULE', 'Dummy Encryption Module', function() use ($module) {
+ return $module;
+});
diff --git a/apps/encryption_dummy/lib/dummymodule.php b/apps/encryption_dummy/lib/dummymodule.php
index 813b50edcbd..141edfb58f9 100644
--- a/apps/encryption_dummy/lib/dummymodule.php
+++ b/apps/encryption_dummy/lib/dummymodule.php
@@ -53,6 +53,7 @@ class DummyModule implements IEncryptionModule {
*
* @param string $path to the file
* @param string $user who read/write the file (null for public access)
+ * @param string $mode php stream open mode
* @param array $header contains the header data read from the file
* @param array $accessList who has access to the file contains the key 'users' and 'public'
*
@@ -60,7 +61,7 @@ class DummyModule implements IEncryptionModule {
* written to the header, in case of a write operation
* or if no additional data is needed return a empty array
*/
- public function begin($path, $user, array $header, array $accessList) {
+ public function begin($path, $user, $mode, array $header, array $accessList) {
return array();
}
@@ -76,8 +77,8 @@ class DummyModule implements IEncryptionModule {
public function end($path) {
if ($this->isWriteOperation) {
- $storage = \OC::$server->getEncryptionKeyStorage($this->getId());
- $storage->setFileKey($path, 'fileKey', 'foo');
+ $storage = \OC::$server->getEncryptionKeyStorage();
+ $storage->setFileKey($path, 'fileKey', 'foo', $this->getId());
}
return '';
}
diff --git a/apps/files/appinfo/remote.php b/apps/files/appinfo/remote.php
index 1e54fc10efa..b8dc68f1f81 100644
--- a/apps/files/appinfo/remote.php
+++ b/apps/files/appinfo/remote.php
@@ -43,6 +43,7 @@ $server->setBaseUri($baseuri);
// Load plugins
$defaults = new OC_Defaults();
+$server->addPlugin(new \OC\Connector\Sabre\BlockLegacyClientPlugin(\OC::$server->getConfig()));
$server->addPlugin(new \Sabre\DAV\Auth\Plugin($authBackend, $defaults->getName()));
// FIXME: The following line is a workaround for legacy components relying on being able to send a GET to /
$server->addPlugin(new \OC\Connector\Sabre\DummyGetResponsePlugin());
diff --git a/apps/files/appinfo/routes.php b/apps/files/appinfo/routes.php
index b6506824a80..08c9041062d 100644
--- a/apps/files/appinfo/routes.php
+++ b/apps/files/appinfo/routes.php
@@ -85,4 +85,4 @@ $this->create('download', 'download{file}')
->actionInclude('files/download.php');
// Register with the capabilities API
-\OC_API::register('get', '/cloud/capabilities', array('OCA\Files\Capabilities', 'getCapabilities'), 'files', \OC_API::USER_AUTH);
+\OCP\API::register('get', '/cloud/capabilities', array('OCA\Files\Capabilities', 'getCapabilities'), 'files', \OCP\API::USER_AUTH);
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index 455ccae3f96..e4bf791761d 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -274,7 +274,16 @@ table.multiselect #headerName {
position: relative;
width: 9999px; /* when we use 100%, the styling breaks on mobile … table styling */
}
-table td.selection, table th.selection, table td.fileaction { width:32px; text-align:center; }
+table.multiselect #modified {
+ display: none;
+}
+
+table td.selection,
+table th.selection,
+table td.fileaction {
+ width: 32px;
+ text-align: center;
+}
table td.filename a.name {
position:relative; /* Firefox needs to explicitly have this default set … */
-moz-box-sizing: border-box;
@@ -572,7 +581,9 @@ a.action>img {
#fileList tr:hover a.action,
#fileList a.action.permanent,
#fileList tr:focus a.action,
-#fileList a.action.permanent
+#fileList a.action.permanent,
+#fileList tr:hover a.action.no-permission:hover,
+#fileList tr:focus a.action.no-permission:focus
/*#fileList .name:focus .action*/ {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
filter: alpha(opacity=50);
@@ -593,18 +604,19 @@ a.action>img {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
filter: alpha(opacity=30);
opacity: .3;
- height: 60px;
+ /* add whitespace to bottom of files list to correctly show dropdowns */
+ height: 300px;
}
-
.summary:hover,
.summary:focus,
.summary,
table tr.summary td {
background-color: transparent;
}
-
.summary td {
border-bottom: none;
+ vertical-align: top;
+ padding-top: 20px;
}
.summary .info {
margin-left: 40px;
diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js
index ce8127c9887..6b6acdb5e01 100644
--- a/apps/files/js/file-upload.js
+++ b/apps/files/js/file-upload.js
@@ -611,7 +611,7 @@ OC.Upload = {
var lastPos;
var checkInput = function () {
var filename = input.val();
- if (Files.isFileNameValid(filename)) {
+ if (!Files.isFileNameValid(filename)) {
// Files.isFileNameValid(filename) throws an exception itself
} else if (FileList.inList(filename)) {
throw t('files', '{new_name} already exists', {new_name: filename});
@@ -651,12 +651,6 @@ OC.Upload = {
FileList.lastAction();
}
var name = FileList.getUniqueName(newname);
- if (newname !== name) {
- FileList.checkName(name, newname, true);
- var hidden = true;
- } else {
- var hidden = false;
- }
switch(type) {
case 'file':
$.post(
@@ -667,7 +661,7 @@ OC.Upload = {
},
function(result) {
if (result.status === 'success') {
- FileList.add(result.data, {hidden: hidden, animate: true, scrollTo: true});
+ FileList.add(result.data, {animate: true, scrollTo: true});
} else {
OC.dialogs.alert(result.data.message, t('core', 'Could not create file'));
}
@@ -683,7 +677,7 @@ OC.Upload = {
},
function(result) {
if (result.status === 'success') {
- FileList.add(result.data, {hidden: hidden, animate: true, scrollTo: true});
+ FileList.add(result.data, {animate: true, scrollTo: true});
} else {
OC.dialogs.alert(result.data.message, t('core', 'Could not create folder'));
}
diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js
index b335f1f6432..1956fda0077 100644
--- a/apps/files/js/fileactions.js
+++ b/apps/files/js/fileactions.js
@@ -288,9 +288,15 @@
} else if (mountType === 'shared-root') {
deleteTitle = t('files', 'Unshare');
}
+ var cssClasses = 'action delete icon-delete';
+ if((context.$file.data('permissions') & OC.PERMISSION_DELETE) === 0) {
+ // add css class no-permission to delete icon
+ cssClasses += ' no-permission';
+ deleteTitle = t('files', 'No permission to delete');
+ }
var $actionLink = $('<a href="#" original-title="' +
escapeHTML(deleteTitle) +
- '" class="action delete icon-delete">' +
+ '" class="' +cssClasses + '">' +
'<span class="hidden-visually">' + escapeHTML(deleteTitle) + '</span>' +
'</a>'
);
@@ -426,12 +432,17 @@
name: 'Delete',
displayName: '',
mime: 'all',
- permissions: OC.PERMISSION_DELETE,
+ // permission is READ because we show a hint instead if there is no permission
+ permissions: OC.PERMISSION_READ,
icon: function() {
return OC.imagePath('core', 'actions/delete');
},
render: _.bind(this._renderDeleteAction, this),
actionHandler: function(fileName, context) {
+ // if there is no permission to delete do nothing
+ if((context.$file.data('permissions') & OC.PERMISSION_DELETE) === 0) {
+ return;
+ }
context.fileList.do_delete(fileName, context.dir);
$('.tipsy').remove();
}
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 9d60e77b0ac..0181acab596 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -1623,7 +1623,8 @@
updateEmptyContent: function() {
var permissions = this.getDirectoryPermissions();
var isCreatable = (permissions & OC.PERMISSION_CREATE) !== 0;
- this.$el.find('#emptycontent').toggleClass('hidden', !isCreatable || !this.isEmpty);
+ this.$el.find('#emptycontent').toggleClass('hidden', !this.isEmpty);
+ this.$el.find('#emptycontent .uploadmessage').toggleClass('hidden', !isCreatable || !this.isEmpty);
this.$el.find('#filestable thead th').toggleClass('hidden', this.isEmpty);
},
/**
diff --git a/apps/files/l10n/ca.js b/apps/files/l10n/ca.js
index ef55e399946..68eb57fb335 100644
--- a/apps/files/l10n/ca.js
+++ b/apps/files/l10n/ca.js
@@ -70,6 +70,7 @@ OC.L10N.register(
"An error occurred while trying to update the tags" : "S'ha produït un error en tractar d'actualitzar les etiquetes",
"A new file or folder has been <strong>created</strong>" : "S'ha <strong>creat</strong> un nou fitxer o una nova carpeta",
"A file or folder has been <strong>changed</strong>" : "S'ha <strong>canviat</strong> un fitxer o una carpeta",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limitar les notificacions sobre la creació i canvis dels seus <strong>arxius favorits</strong><em>(solament Stream)</em>",
"A file or folder has been <strong>deleted</strong>" : "S'ha <strong>elminiat</strong> un fitxer o una carpeta",
"A file or folder has been <strong>restored</strong>" : "S'ha <strong>restaurat</strong> un fitxer o una carpeta",
"You created %1$s" : "Has creat %1$s",
diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json
index f102b4f5fd3..8ca81cecdc7 100644
--- a/apps/files/l10n/ca.json
+++ b/apps/files/l10n/ca.json
@@ -68,6 +68,7 @@
"An error occurred while trying to update the tags" : "S'ha produït un error en tractar d'actualitzar les etiquetes",
"A new file or folder has been <strong>created</strong>" : "S'ha <strong>creat</strong> un nou fitxer o una nova carpeta",
"A file or folder has been <strong>changed</strong>" : "S'ha <strong>canviat</strong> un fitxer o una carpeta",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limitar les notificacions sobre la creació i canvis dels seus <strong>arxius favorits</strong><em>(solament Stream)</em>",
"A file or folder has been <strong>deleted</strong>" : "S'ha <strong>elminiat</strong> un fitxer o una carpeta",
"A file or folder has been <strong>restored</strong>" : "S'ha <strong>restaurat</strong> un fitxer o una carpeta",
"You created %1$s" : "Has creat %1$s",
diff --git a/apps/files/l10n/cs_CZ.js b/apps/files/l10n/cs_CZ.js
index 84444eb360e..9c0d27d9f44 100644
--- a/apps/files/l10n/cs_CZ.js
+++ b/apps/files/l10n/cs_CZ.js
@@ -42,6 +42,7 @@ OC.L10N.register(
"Delete" : "Smazat",
"Disconnect storage" : "Odpojit úložiště",
"Unshare" : "Zrušit sdílení",
+ "No permission to delete" : "Chybí oprávnění mazat",
"Download" : "Stáhnout",
"Select" : "Vybrat",
"Pending" : "Nevyřízené",
diff --git a/apps/files/l10n/cs_CZ.json b/apps/files/l10n/cs_CZ.json
index 24fa5840ad5..663161c5e42 100644
--- a/apps/files/l10n/cs_CZ.json
+++ b/apps/files/l10n/cs_CZ.json
@@ -40,6 +40,7 @@
"Delete" : "Smazat",
"Disconnect storage" : "Odpojit úložiště",
"Unshare" : "Zrušit sdílení",
+ "No permission to delete" : "Chybí oprávnění mazat",
"Download" : "Stáhnout",
"Select" : "Vybrat",
"Pending" : "Nevyřízené",
diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js
index 721495a7335..a0584c3a7d5 100644
--- a/apps/files/l10n/de.js
+++ b/apps/files/l10n/de.js
@@ -42,6 +42,7 @@ OC.L10N.register(
"Delete" : "Löschen",
"Disconnect storage" : "Speicher trennen",
"Unshare" : "Freigabe aufheben",
+ "No permission to delete" : "Keine Berechtigung zum Löschen",
"Download" : "Herunterladen",
"Select" : "Auswählen",
"Pending" : "Ausstehend",
diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json
index 467cbda63ea..a767f6dc129 100644
--- a/apps/files/l10n/de.json
+++ b/apps/files/l10n/de.json
@@ -40,6 +40,7 @@
"Delete" : "Löschen",
"Disconnect storage" : "Speicher trennen",
"Unshare" : "Freigabe aufheben",
+ "No permission to delete" : "Keine Berechtigung zum Löschen",
"Download" : "Herunterladen",
"Select" : "Auswählen",
"Pending" : "Ausstehend",
diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js
index 34239019ea4..1877607d449 100644
--- a/apps/files/l10n/de_DE.js
+++ b/apps/files/l10n/de_DE.js
@@ -42,6 +42,7 @@ OC.L10N.register(
"Delete" : "Löschen",
"Disconnect storage" : "Speicher trennen",
"Unshare" : "Freigabe aufheben",
+ "No permission to delete" : "Keine Berechtigung zum Löschen",
"Download" : "Herunterladen",
"Select" : "Auswählen",
"Pending" : "Ausstehend",
diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json
index 2a061bda5f0..ab58d02491a 100644
--- a/apps/files/l10n/de_DE.json
+++ b/apps/files/l10n/de_DE.json
@@ -40,6 +40,7 @@
"Delete" : "Löschen",
"Disconnect storage" : "Speicher trennen",
"Unshare" : "Freigabe aufheben",
+ "No permission to delete" : "Keine Berechtigung zum Löschen",
"Download" : "Herunterladen",
"Select" : "Auswählen",
"Pending" : "Ausstehend",
diff --git a/apps/files/l10n/el.js b/apps/files/l10n/el.js
index 24ebdfbfc6c..284b92a0c18 100644
--- a/apps/files/l10n/el.js
+++ b/apps/files/l10n/el.js
@@ -42,6 +42,7 @@ OC.L10N.register(
"Delete" : "Διαγραφή",
"Disconnect storage" : "Αποσυνδεδεμένος αποθηκευτικός χώρος",
"Unshare" : "Διακοπή διαμοιρασμού",
+ "No permission to delete" : "Δεν έχετε άδεια να το διαγράψετε",
"Download" : "Λήψη",
"Select" : "Επιλογή",
"Pending" : "Εκκρεμεί",
diff --git a/apps/files/l10n/el.json b/apps/files/l10n/el.json
index c718e8323d2..9ff4a93567f 100644
--- a/apps/files/l10n/el.json
+++ b/apps/files/l10n/el.json
@@ -40,6 +40,7 @@
"Delete" : "Διαγραφή",
"Disconnect storage" : "Αποσυνδεδεμένος αποθηκευτικός χώρος",
"Unshare" : "Διακοπή διαμοιρασμού",
+ "No permission to delete" : "Δεν έχετε άδεια να το διαγράψετε",
"Download" : "Λήψη",
"Select" : "Επιλογή",
"Pending" : "Εκκρεμεί",
diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js
index fa0fa7307c8..80515d6890e 100644
--- a/apps/files/l10n/en_GB.js
+++ b/apps/files/l10n/en_GB.js
@@ -70,6 +70,7 @@ OC.L10N.register(
"An error occurred while trying to update the tags" : "An error occurred whilst trying to update the tags",
"A new file or folder has been <strong>created</strong>" : "A new file or folder has been <strong>created</strong>",
"A file or folder has been <strong>changed</strong>" : "A file or folder has been <strong>changed</strong>",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limit notifications about creation and changes to your <strong>favourite files</strong> <em>(Stream only)</em>",
"A file or folder has been <strong>deleted</strong>" : "A file or folder has been <strong>deleted</strong>",
"A file or folder has been <strong>restored</strong>" : "A file or folder has been <strong>restored</strong>",
"You created %1$s" : "You created %1$s",
@@ -99,6 +100,7 @@ OC.L10N.register(
"Folder" : "Folder",
"Upload" : "Upload",
"Cancel upload" : "Cancel upload",
+ "No files in here" : "No files in here",
"Upload some content or sync with your devices!" : "Upload some content or sync with your devices!",
"No entries found in this folder" : "No entries found in this folder",
"Select all" : "Select all",
diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json
index 8f3a23a1639..e22b24ca829 100644
--- a/apps/files/l10n/en_GB.json
+++ b/apps/files/l10n/en_GB.json
@@ -68,6 +68,7 @@
"An error occurred while trying to update the tags" : "An error occurred whilst trying to update the tags",
"A new file or folder has been <strong>created</strong>" : "A new file or folder has been <strong>created</strong>",
"A file or folder has been <strong>changed</strong>" : "A file or folder has been <strong>changed</strong>",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limit notifications about creation and changes to your <strong>favourite files</strong> <em>(Stream only)</em>",
"A file or folder has been <strong>deleted</strong>" : "A file or folder has been <strong>deleted</strong>",
"A file or folder has been <strong>restored</strong>" : "A file or folder has been <strong>restored</strong>",
"You created %1$s" : "You created %1$s",
@@ -97,6 +98,7 @@
"Folder" : "Folder",
"Upload" : "Upload",
"Cancel upload" : "Cancel upload",
+ "No files in here" : "No files in here",
"Upload some content or sync with your devices!" : "Upload some content or sync with your devices!",
"No entries found in this folder" : "No entries found in this folder",
"Select all" : "Select all",
diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js
index 90562ff52f5..bd3a645c693 100644
--- a/apps/files/l10n/es.js
+++ b/apps/files/l10n/es.js
@@ -42,6 +42,7 @@ OC.L10N.register(
"Delete" : "Eliminar",
"Disconnect storage" : "Desconectar almacenamiento",
"Unshare" : "Dejar de compartir",
+ "No permission to delete" : "Ninguna autorización a borrar",
"Download" : "Descargar",
"Select" : "Seleccionar",
"Pending" : "Pendiente",
diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json
index 62ed9b2defe..010430d9b3b 100644
--- a/apps/files/l10n/es.json
+++ b/apps/files/l10n/es.json
@@ -40,6 +40,7 @@
"Delete" : "Eliminar",
"Disconnect storage" : "Desconectar almacenamiento",
"Unshare" : "Dejar de compartir",
+ "No permission to delete" : "Ninguna autorización a borrar",
"Download" : "Descargar",
"Select" : "Seleccionar",
"Pending" : "Pendiente",
diff --git a/apps/files/l10n/et_EE.js b/apps/files/l10n/et_EE.js
index a829246bfa9..7eada9d7875 100644
--- a/apps/files/l10n/et_EE.js
+++ b/apps/files/l10n/et_EE.js
@@ -45,6 +45,7 @@ OC.L10N.register(
"Download" : "Lae alla",
"Select" : "Vali",
"Pending" : "Ootel",
+ "Unable to determine date" : "Kuupäeva tuvastamine ei õnnestunud",
"Error moving file." : "Viga faili liigutamisel.",
"Error moving file" : "Viga faili eemaldamisel",
"Error" : "Viga",
@@ -62,6 +63,7 @@ OC.L10N.register(
"Your storage is full, files can not be updated or synced anymore!" : "Sinu andmemaht on täis! Faile ei uuendata ega sünkroniseerita!",
"Your storage is almost full ({usedSpacePercent}%)" : "Su andmemaht on peaaegu täis ({usedSpacePercent}%)",
"{dirs} and {files}" : "{dirs} ja {files}",
+ "Favorited" : "Lemmikud",
"Favorite" : "Lemmik",
"A new file or folder has been <strong>created</strong>" : "Uus fail või kataloog on <strong>loodud</strong>",
"A file or folder has been <strong>changed</strong>" : "Fail või kataloog on <strong>muudetud</strong>",
@@ -93,9 +95,15 @@ OC.L10N.register(
"Folder" : "Kaust",
"Upload" : "Lae üles",
"Cancel upload" : "Tühista üleslaadimine",
+ "No files in here" : "Siin ei ole faile",
+ "Upload some content or sync with your devices!" : "Laadi sisu üles või süngi oma seadmetega!",
+ "No entries found in this folder" : "Selles kaustas ei leitud kirjeid",
+ "Select all" : "Vali kõik",
"Upload too large" : "Üleslaadimine on liiga suur",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Failid, mida sa proovid üles laadida, ületab serveri poolt üleslaetavatele failidele määratud maksimaalse suuruse.",
"Files are being scanned, please wait." : "Faile skannitakse, palun oota.",
- "Currently scanning" : "Praegu skännimisel"
+ "Currently scanning" : "Praegu skännimisel",
+ "No favorites" : "Lemmikuid pole",
+ "Files and folders you mark as favorite will show up here" : "Siin kuvatakse faile ja kaustasid, mille oled märkinud lemmikuteks"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/et_EE.json b/apps/files/l10n/et_EE.json
index b39420a5aa3..342c43b5daf 100644
--- a/apps/files/l10n/et_EE.json
+++ b/apps/files/l10n/et_EE.json
@@ -43,6 +43,7 @@
"Download" : "Lae alla",
"Select" : "Vali",
"Pending" : "Ootel",
+ "Unable to determine date" : "Kuupäeva tuvastamine ei õnnestunud",
"Error moving file." : "Viga faili liigutamisel.",
"Error moving file" : "Viga faili eemaldamisel",
"Error" : "Viga",
@@ -60,6 +61,7 @@
"Your storage is full, files can not be updated or synced anymore!" : "Sinu andmemaht on täis! Faile ei uuendata ega sünkroniseerita!",
"Your storage is almost full ({usedSpacePercent}%)" : "Su andmemaht on peaaegu täis ({usedSpacePercent}%)",
"{dirs} and {files}" : "{dirs} ja {files}",
+ "Favorited" : "Lemmikud",
"Favorite" : "Lemmik",
"A new file or folder has been <strong>created</strong>" : "Uus fail või kataloog on <strong>loodud</strong>",
"A file or folder has been <strong>changed</strong>" : "Fail või kataloog on <strong>muudetud</strong>",
@@ -91,9 +93,15 @@
"Folder" : "Kaust",
"Upload" : "Lae üles",
"Cancel upload" : "Tühista üleslaadimine",
+ "No files in here" : "Siin ei ole faile",
+ "Upload some content or sync with your devices!" : "Laadi sisu üles või süngi oma seadmetega!",
+ "No entries found in this folder" : "Selles kaustas ei leitud kirjeid",
+ "Select all" : "Vali kõik",
"Upload too large" : "Üleslaadimine on liiga suur",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Failid, mida sa proovid üles laadida, ületab serveri poolt üleslaetavatele failidele määratud maksimaalse suuruse.",
"Files are being scanned, please wait." : "Faile skannitakse, palun oota.",
- "Currently scanning" : "Praegu skännimisel"
+ "Currently scanning" : "Praegu skännimisel",
+ "No favorites" : "Lemmikuid pole",
+ "Files and folders you mark as favorite will show up here" : "Siin kuvatakse faile ja kaustasid, mille oled märkinud lemmikuteks"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/fi_FI.js b/apps/files/l10n/fi_FI.js
index db7dbca8f12..39fa18bd8ae 100644
--- a/apps/files/l10n/fi_FI.js
+++ b/apps/files/l10n/fi_FI.js
@@ -42,6 +42,7 @@ OC.L10N.register(
"Delete" : "Poista",
"Disconnect storage" : "Katkaise yhteys tallennustilaan",
"Unshare" : "Peru jakaminen",
+ "No permission to delete" : "Ei oikeutta poistaa",
"Download" : "Lataa",
"Select" : "Valitse",
"Pending" : "Odottaa",
diff --git a/apps/files/l10n/fi_FI.json b/apps/files/l10n/fi_FI.json
index 8bfa09be9bc..82a1f64cc5b 100644
--- a/apps/files/l10n/fi_FI.json
+++ b/apps/files/l10n/fi_FI.json
@@ -40,6 +40,7 @@
"Delete" : "Poista",
"Disconnect storage" : "Katkaise yhteys tallennustilaan",
"Unshare" : "Peru jakaminen",
+ "No permission to delete" : "Ei oikeutta poistaa",
"Download" : "Lataa",
"Select" : "Valitse",
"Pending" : "Odottaa",
diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js
index 34d92155970..f155c4c5556 100644
--- a/apps/files/l10n/fr.js
+++ b/apps/files/l10n/fr.js
@@ -42,6 +42,7 @@ OC.L10N.register(
"Delete" : "Supprimer",
"Disconnect storage" : "Déconnecter ce support de stockage",
"Unshare" : "Ne plus partager",
+ "No permission to delete" : "Pas de permission de suppression",
"Download" : "Télécharger",
"Select" : "Sélectionner",
"Pending" : "En attente",
@@ -89,7 +90,7 @@ OC.L10N.register(
"Maximum upload size" : "Taille max. d'envoi",
"max. possible: " : "Max. possible :",
"Save" : "Sauvegarder",
- "Can not be edited from here due to insufficient permissions." : "Ne peut être modifié ici à cause de permissions insufisantes.",
+ "Can not be edited from here due to insufficient permissions." : "Ne peut être modifié ici à cause de permissions insuffisantes.",
"Settings" : "Paramètres",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "Utilisez cette adresse pour <a href=\"%s\" target=\"_blank\">accéder à vos fichiers par WebDAV</a>",
diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json
index 66b527512d1..2cecba687d8 100644
--- a/apps/files/l10n/fr.json
+++ b/apps/files/l10n/fr.json
@@ -40,6 +40,7 @@
"Delete" : "Supprimer",
"Disconnect storage" : "Déconnecter ce support de stockage",
"Unshare" : "Ne plus partager",
+ "No permission to delete" : "Pas de permission de suppression",
"Download" : "Télécharger",
"Select" : "Sélectionner",
"Pending" : "En attente",
@@ -87,7 +88,7 @@
"Maximum upload size" : "Taille max. d'envoi",
"max. possible: " : "Max. possible :",
"Save" : "Sauvegarder",
- "Can not be edited from here due to insufficient permissions." : "Ne peut être modifié ici à cause de permissions insufisantes.",
+ "Can not be edited from here due to insufficient permissions." : "Ne peut être modifié ici à cause de permissions insuffisantes.",
"Settings" : "Paramètres",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "Utilisez cette adresse pour <a href=\"%s\" target=\"_blank\">accéder à vos fichiers par WebDAV</a>",
diff --git a/apps/files/l10n/gl.js b/apps/files/l10n/gl.js
index c1c6ec11f45..cc1a61a32b6 100644
--- a/apps/files/l10n/gl.js
+++ b/apps/files/l10n/gl.js
@@ -42,6 +42,7 @@ OC.L10N.register(
"Delete" : "Eliminar",
"Disconnect storage" : "Desconectar o almacenamento",
"Unshare" : "Deixar de compartir",
+ "No permission to delete" : "Non ten permisos para eliminar",
"Download" : "Descargar",
"Select" : "Seleccionar",
"Pending" : "Pendentes",
diff --git a/apps/files/l10n/gl.json b/apps/files/l10n/gl.json
index 07c5efde382..e178d9ce831 100644
--- a/apps/files/l10n/gl.json
+++ b/apps/files/l10n/gl.json
@@ -40,6 +40,7 @@
"Delete" : "Eliminar",
"Disconnect storage" : "Desconectar o almacenamento",
"Unshare" : "Deixar de compartir",
+ "No permission to delete" : "Non ten permisos para eliminar",
"Download" : "Descargar",
"Select" : "Seleccionar",
"Pending" : "Pendentes",
diff --git a/apps/files/l10n/id.js b/apps/files/l10n/id.js
index ffc8c909b91..97190ddf47a 100644
--- a/apps/files/l10n/id.js
+++ b/apps/files/l10n/id.js
@@ -67,8 +67,10 @@ OC.L10N.register(
"{dirs} and {files}" : "{dirs} dan {files}",
"Favorited" : "Difavoritkan",
"Favorite" : "Favorit",
+ "An error occurred while trying to update the tags" : "Terjadi kesalahan saat mencoba untuk memperbarui label",
"A new file or folder has been <strong>created</strong>" : "Sebuah berkas atau folder baru telah <strong>dibuat</strong>",
"A file or folder has been <strong>changed</strong>" : "Sebuah berkas atau folder telah <strong>diubah</strong>",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Batas notifikasi tentang pembuatan dan perubahan <strong>berkas favorit</strong> Anda <em>(Hanya stream)</em>",
"A file or folder has been <strong>deleted</strong>" : "Sebuah berkas atau folder telah <strong>dihapus</strong>",
"A file or folder has been <strong>restored</strong>" : "Sebuah berkas atau folder telah <strong>dipulihkan</strong>",
"You created %1$s" : "Anda membuat %1$s",
@@ -87,6 +89,7 @@ OC.L10N.register(
"Maximum upload size" : "Ukuran pengunggahan maksimum",
"max. possible: " : "Kemungkinan maks.:",
"Save" : "Simpan",
+ "Can not be edited from here due to insufficient permissions." : "Tidak dapat diidit dari sini karena tidak memiliki izin.",
"Settings" : "Pengaturan",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "Gunakan alamat ini untuk <a href=\"%s\" target=\"_blank\">mengakses Berkas via WebDAV</a>",
@@ -97,6 +100,7 @@ OC.L10N.register(
"Folder" : "Folder",
"Upload" : "Unggah",
"Cancel upload" : "Batal unggah",
+ "No files in here" : "Tidak ada berkas disini",
"Upload some content or sync with your devices!" : "Unggah beberapa konten dan sinkronisasikan dengan perangkat Anda!",
"No entries found in this folder" : "Tidak ada entri yang ditemukan dalam folder ini",
"Select all" : "Pilih Semua",
diff --git a/apps/files/l10n/id.json b/apps/files/l10n/id.json
index 51d64896b0c..c3906da3c3d 100644
--- a/apps/files/l10n/id.json
+++ b/apps/files/l10n/id.json
@@ -65,8 +65,10 @@
"{dirs} and {files}" : "{dirs} dan {files}",
"Favorited" : "Difavoritkan",
"Favorite" : "Favorit",
+ "An error occurred while trying to update the tags" : "Terjadi kesalahan saat mencoba untuk memperbarui label",
"A new file or folder has been <strong>created</strong>" : "Sebuah berkas atau folder baru telah <strong>dibuat</strong>",
"A file or folder has been <strong>changed</strong>" : "Sebuah berkas atau folder telah <strong>diubah</strong>",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Batas notifikasi tentang pembuatan dan perubahan <strong>berkas favorit</strong> Anda <em>(Hanya stream)</em>",
"A file or folder has been <strong>deleted</strong>" : "Sebuah berkas atau folder telah <strong>dihapus</strong>",
"A file or folder has been <strong>restored</strong>" : "Sebuah berkas atau folder telah <strong>dipulihkan</strong>",
"You created %1$s" : "Anda membuat %1$s",
@@ -85,6 +87,7 @@
"Maximum upload size" : "Ukuran pengunggahan maksimum",
"max. possible: " : "Kemungkinan maks.:",
"Save" : "Simpan",
+ "Can not be edited from here due to insufficient permissions." : "Tidak dapat diidit dari sini karena tidak memiliki izin.",
"Settings" : "Pengaturan",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "Gunakan alamat ini untuk <a href=\"%s\" target=\"_blank\">mengakses Berkas via WebDAV</a>",
@@ -95,6 +98,7 @@
"Folder" : "Folder",
"Upload" : "Unggah",
"Cancel upload" : "Batal unggah",
+ "No files in here" : "Tidak ada berkas disini",
"Upload some content or sync with your devices!" : "Unggah beberapa konten dan sinkronisasikan dengan perangkat Anda!",
"No entries found in this folder" : "Tidak ada entri yang ditemukan dalam folder ini",
"Select all" : "Pilih Semua",
diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js
index 13f2ecd4dcb..64faf5318e0 100644
--- a/apps/files/l10n/it.js
+++ b/apps/files/l10n/it.js
@@ -42,6 +42,7 @@ OC.L10N.register(
"Delete" : "Elimina",
"Disconnect storage" : "Disconnetti archiviazione",
"Unshare" : "Rimuovi condivisione",
+ "No permission to delete" : "Nessun permesso per eliminare",
"Download" : "Scarica",
"Select" : "Seleziona",
"Pending" : "In corso",
diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json
index 40d3aa7f125..62861a64611 100644
--- a/apps/files/l10n/it.json
+++ b/apps/files/l10n/it.json
@@ -40,6 +40,7 @@
"Delete" : "Elimina",
"Disconnect storage" : "Disconnetti archiviazione",
"Unshare" : "Rimuovi condivisione",
+ "No permission to delete" : "Nessun permesso per eliminare",
"Download" : "Scarica",
"Select" : "Seleziona",
"Pending" : "In corso",
diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js
index fc90f8c2d97..80e1f478509 100644
--- a/apps/files/l10n/ja.js
+++ b/apps/files/l10n/ja.js
@@ -70,6 +70,7 @@ OC.L10N.register(
"An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
"A new file or folder has been <strong>created</strong>" : "新しいファイルまたはフォルダーを<strong>作成</strong>したとき",
"A file or folder has been <strong>changed</strong>" : "ファイルまたはフォルダーを<strong>変更</strong>したとき",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "<strong>お気に入りファイル</strong>に対する作成と変更の通知は制限されています。<em>(表示のみ)</em>",
"A file or folder has been <strong>deleted</strong>" : "ファイルまたはフォルダーを<strong>削除</strong>したとき",
"A file or folder has been <strong>restored</strong>" : "ファイルまたはフォルダーを<strong>復元</strong>したとき",
"You created %1$s" : "あなたは %1$s を作成しました",
diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json
index c9c579ac189..f3868ed14cf 100644
--- a/apps/files/l10n/ja.json
+++ b/apps/files/l10n/ja.json
@@ -68,6 +68,7 @@
"An error occurred while trying to update the tags" : "タグを更新する際にエラーが発生しました",
"A new file or folder has been <strong>created</strong>" : "新しいファイルまたはフォルダーを<strong>作成</strong>したとき",
"A file or folder has been <strong>changed</strong>" : "ファイルまたはフォルダーを<strong>変更</strong>したとき",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "<strong>お気に入りファイル</strong>に対する作成と変更の通知は制限されています。<em>(表示のみ)</em>",
"A file or folder has been <strong>deleted</strong>" : "ファイルまたはフォルダーを<strong>削除</strong>したとき",
"A file or folder has been <strong>restored</strong>" : "ファイルまたはフォルダーを<strong>復元</strong>したとき",
"You created %1$s" : "あなたは %1$s を作成しました",
diff --git a/apps/files/l10n/lb.js b/apps/files/l10n/lb.js
index 8dc8269c0cc..5e7ec175af7 100644
--- a/apps/files/l10n/lb.js
+++ b/apps/files/l10n/lb.js
@@ -29,6 +29,7 @@ OC.L10N.register(
"Settings" : "Astellungen",
"New" : "Nei",
"Text file" : "Text Fichier",
+ "New folder" : "Neien Dossier",
"Folder" : "Dossier",
"Upload" : "Eroplueden",
"Cancel upload" : "Upload ofbriechen",
diff --git a/apps/files/l10n/lb.json b/apps/files/l10n/lb.json
index 524bd0c1cc9..5fc987294c7 100644
--- a/apps/files/l10n/lb.json
+++ b/apps/files/l10n/lb.json
@@ -27,6 +27,7 @@
"Settings" : "Astellungen",
"New" : "Nei",
"Text file" : "Text Fichier",
+ "New folder" : "Neien Dossier",
"Folder" : "Dossier",
"Upload" : "Eroplueden",
"Cancel upload" : "Upload ofbriechen",
diff --git a/apps/files/l10n/nl.js b/apps/files/l10n/nl.js
index 01363c80c27..84907aa2af7 100644
--- a/apps/files/l10n/nl.js
+++ b/apps/files/l10n/nl.js
@@ -42,6 +42,7 @@ OC.L10N.register(
"Delete" : "Verwijderen",
"Disconnect storage" : "Verbinding met opslag verbreken",
"Unshare" : "Stop met delen",
+ "No permission to delete" : "Geen permissie om te verwijderen",
"Download" : "Downloaden",
"Select" : "Selecteer",
"Pending" : "In behandeling",
diff --git a/apps/files/l10n/nl.json b/apps/files/l10n/nl.json
index 1b8a2381de6..cee8ce6886d 100644
--- a/apps/files/l10n/nl.json
+++ b/apps/files/l10n/nl.json
@@ -40,6 +40,7 @@
"Delete" : "Verwijderen",
"Disconnect storage" : "Verbinding met opslag verbreken",
"Unshare" : "Stop met delen",
+ "No permission to delete" : "Geen permissie om te verwijderen",
"Download" : "Downloaden",
"Select" : "Selecteer",
"Pending" : "In behandeling",
diff --git a/apps/files/l10n/ro.js b/apps/files/l10n/ro.js
index 0a293c2523e..16699e084f6 100644
--- a/apps/files/l10n/ro.js
+++ b/apps/files/l10n/ro.js
@@ -93,6 +93,7 @@ OC.L10N.register(
"Folder" : "Dosar",
"Upload" : "Încărcă",
"Cancel upload" : "Anulează încărcarea",
+ "Select all" : "Selectează tot",
"Upload too large" : "Fișierul încărcat este prea mare",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fișierele pe care încerci să le încarci depășesc limita de încărcare maximă admisă pe acest server.",
"Files are being scanned, please wait." : "Fișierele sunt scanate, te rog așteaptă.",
diff --git a/apps/files/l10n/ro.json b/apps/files/l10n/ro.json
index b3e59f9cfac..d09af6ba759 100644
--- a/apps/files/l10n/ro.json
+++ b/apps/files/l10n/ro.json
@@ -91,6 +91,7 @@
"Folder" : "Dosar",
"Upload" : "Încărcă",
"Cancel upload" : "Anulează încărcarea",
+ "Select all" : "Selectează tot",
"Upload too large" : "Fișierul încărcat este prea mare",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fișierele pe care încerci să le încarci depășesc limita de încărcare maximă admisă pe acest server.",
"Files are being scanned, please wait." : "Fișierele sunt scanate, te rog așteaptă.",
diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js
index e6f3b43bf04..19e71acd491 100644
--- a/apps/files/l10n/ru.js
+++ b/apps/files/l10n/ru.js
@@ -42,6 +42,7 @@ OC.L10N.register(
"Delete" : "Удалить",
"Disconnect storage" : "Отсоединить хранилище",
"Unshare" : "Закрыть доступ",
+ "No permission to delete" : "Недостаточно прав для удаления",
"Download" : "Скачать",
"Select" : "Выбрать",
"Pending" : "Ожидание",
diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json
index 66e059a160e..99e7b91861d 100644
--- a/apps/files/l10n/ru.json
+++ b/apps/files/l10n/ru.json
@@ -40,6 +40,7 @@
"Delete" : "Удалить",
"Disconnect storage" : "Отсоединить хранилище",
"Unshare" : "Закрыть доступ",
+ "No permission to delete" : "Недостаточно прав для удаления",
"Download" : "Скачать",
"Select" : "Выбрать",
"Pending" : "Ожидание",
diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js
index 0064fd19818..eb0d35954e7 100644
--- a/apps/files/l10n/sr.js
+++ b/apps/files/l10n/sr.js
@@ -42,6 +42,7 @@ OC.L10N.register(
"Delete" : "Обриши",
"Disconnect storage" : "Искључи складиште",
"Unshare" : "Не дели",
+ "No permission to delete" : "Без дозволе за брисање",
"Download" : "Преузми",
"Select" : "Изабери",
"Pending" : "На чекању",
diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json
index 7a27e3d89fb..5451caae81b 100644
--- a/apps/files/l10n/sr.json
+++ b/apps/files/l10n/sr.json
@@ -40,6 +40,7 @@
"Delete" : "Обриши",
"Disconnect storage" : "Искључи складиште",
"Unshare" : "Не дели",
+ "No permission to delete" : "Без дозволе за брисање",
"Download" : "Преузми",
"Select" : "Изабери",
"Pending" : "На чекању",
diff --git a/apps/files/l10n/uk.js b/apps/files/l10n/uk.js
index ee509490a6c..a9496a55823 100644
--- a/apps/files/l10n/uk.js
+++ b/apps/files/l10n/uk.js
@@ -70,6 +70,7 @@ OC.L10N.register(
"An error occurred while trying to update the tags" : "Виникла помилка при спробі оновити мітки",
"A new file or folder has been <strong>created</strong>" : "Новий файл або теку було <strong>створено</strong>",
"A file or folder has been <strong>changed</strong>" : "Файл або теку було <strong> змінено </strong>",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Обмежити повідомлення про створення та зміни в ваших <strong>улюблених файлах</strong>\n<em>(Тількі потік)</em>",
"A file or folder has been <strong>deleted</strong>" : "Файл або теку було <strong> видалено </strong>",
"A file or folder has been <strong>restored</strong>" : "Файл або теку було <strong> відновлено </strong>",
"You created %1$s" : "Вами створено %1$s",
@@ -99,14 +100,15 @@ OC.L10N.register(
"Folder" : "Тека",
"Upload" : "Вивантажити",
"Cancel upload" : "Перервати завантаження",
+ "No files in here" : "Тут немає файлів",
"Upload some content or sync with your devices!" : "Завантажте вміст або синхронізуйте з пристроями!",
- "No entries found in this folder" : "Записів не знайдено в цій папці",
+ "No entries found in this folder" : "Записів не знайдено в цій теці",
"Select all" : "Вибрати всі",
"Upload too large" : "Файл занадто великий",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Файли,що ви намагаєтесь відвантажити перевищують максимальний дозволений розмір файлів на цьому сервері.",
"Files are being scanned, please wait." : "Файли скануються, зачекайте, будь-ласка.",
"Currently scanning" : "Триває перевірка",
"No favorites" : "Немає обраних",
- "Files and folders you mark as favorite will show up here" : "Файли і папки, які ви помітили як улюблені з’являться тут"
+ "Files and folders you mark as favorite will show up here" : "Файли і теки, які ви помітили як улюблені, з’являться тут"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files/l10n/uk.json b/apps/files/l10n/uk.json
index fde1b788506..c34b8501ae9 100644
--- a/apps/files/l10n/uk.json
+++ b/apps/files/l10n/uk.json
@@ -68,6 +68,7 @@
"An error occurred while trying to update the tags" : "Виникла помилка при спробі оновити мітки",
"A new file or folder has been <strong>created</strong>" : "Новий файл або теку було <strong>створено</strong>",
"A file or folder has been <strong>changed</strong>" : "Файл або теку було <strong> змінено </strong>",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Обмежити повідомлення про створення та зміни в ваших <strong>улюблених файлах</strong>\n<em>(Тількі потік)</em>",
"A file or folder has been <strong>deleted</strong>" : "Файл або теку було <strong> видалено </strong>",
"A file or folder has been <strong>restored</strong>" : "Файл або теку було <strong> відновлено </strong>",
"You created %1$s" : "Вами створено %1$s",
@@ -97,14 +98,15 @@
"Folder" : "Тека",
"Upload" : "Вивантажити",
"Cancel upload" : "Перервати завантаження",
+ "No files in here" : "Тут немає файлів",
"Upload some content or sync with your devices!" : "Завантажте вміст або синхронізуйте з пристроями!",
- "No entries found in this folder" : "Записів не знайдено в цій папці",
+ "No entries found in this folder" : "Записів не знайдено в цій теці",
"Select all" : "Вибрати всі",
"Upload too large" : "Файл занадто великий",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Файли,що ви намагаєтесь відвантажити перевищують максимальний дозволений розмір файлів на цьому сервері.",
"Files are being scanned, please wait." : "Файли скануються, зачекайте, будь-ласка.",
"Currently scanning" : "Триває перевірка",
"No favorites" : "Немає обраних",
- "Files and folders you mark as favorite will show up here" : "Файли і папки, які ви помітили як улюблені з’являться тут"
+ "Files and folders you mark as favorite will show up here" : "Файли і теки, які ви помітили як улюблені, з’являться тут"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/files/templates/list.php b/apps/files/templates/list.php
index 02137c7e446..32651b261da 100644
--- a/apps/files/templates/list.php
+++ b/apps/files/templates/list.php
@@ -54,7 +54,7 @@
<div id="emptycontent" class="hidden">
<div class="icon-folder"></div>
<h2><?php p($l->t('No files in here')); ?></h2>
- <p><?php p($l->t('Upload some content or sync with your devices!')); ?></p>
+ <p class="uploadmessage hidden"><?php p($l->t('Upload some content or sync with your devices!')); ?></p>
</div>
<div class="nofilterresults emptycontent hidden">
diff --git a/apps/files/tests/js/fileUploadSpec.js b/apps/files/tests/js/fileUploadSpec.js
index 49b7265ced1..817654c4fa9 100644
--- a/apps/files/tests/js/fileUploadSpec.js
+++ b/apps/files/tests/js/fileUploadSpec.js
@@ -35,7 +35,14 @@ describe('OC.Upload tests', function() {
$('#testArea').append(
'<input type="file" id="file_upload_start" name="files[]" multiple="multiple">' +
'<input type="hidden" id="upload_limit" name="upload_limit" value="10000000">' + // 10 MB
- '<input type="hidden" id="free_space" name="free_space" value="50000000">' // 50 MB
+ '<input type="hidden" id="free_space" name="free_space" value="50000000">' + // 50 MB
+ // TODO: handlebars!
+ '<div id="new">' +
+ '<a>New</a>' +
+ '<ul>' +
+ '<li data-type="file" data-newname="New text file.txt"><p>Text file</p></li>' +
+ '</ul>' +
+ '</div>'
);
$dummyUploader = $('#file_upload_start');
});
@@ -111,4 +118,54 @@ describe('OC.Upload tests', function() {
);
});
});
+ describe('New file', function() {
+ var $input;
+ var currentDirStub;
+
+ beforeEach(function() {
+ OC.Upload.init();
+ $('#new>a').click();
+ $('#new li[data-type=file]').click();
+ $input = $('#new input[type=text]');
+
+ currentDirStub = sinon.stub(FileList, 'getCurrentDirectory');
+ currentDirStub.returns('testdir');
+ });
+ afterEach(function() {
+ currentDirStub.restore();
+ });
+ it('sets default text in field', function() {
+ expect($input.length).toEqual(1);
+ expect($input.val()).toEqual('New text file.txt');
+ });
+ it('creates file when enter is pressed', function() {
+ $input.val('somefile.txt');
+ $input.trigger(new $.Event('keyup', {keyCode: 13}));
+ $input.parent('form').submit();
+ expect(fakeServer.requests.length).toEqual(2);
+
+ var request = fakeServer.requests[1];
+ expect(request.method).toEqual('POST');
+ expect(request.url).toEqual(OC.webroot + '/index.php/apps/files/ajax/newfile.php');
+ var query = OC.parseQueryString(request.requestBody);
+ expect(query).toEqual({
+ dir: 'testdir',
+ filename: 'somefile.txt'
+ });
+ });
+ it('prevents entering invalid file names', function() {
+ $input.val('..');
+ $input.trigger(new $.Event('keyup', {keyCode: 13}));
+ $input.parent('form').submit();
+ expect(fakeServer.requests.length).toEqual(1);
+ });
+ it('prevents entering file names that already exist', function() {
+ var inListStub = sinon.stub(FileList, 'inList').returns(true);
+ $input.val('existing.txt');
+ $input.trigger(new $.Event('keyup', {keyCode: 13}));
+ $input.parent('form').submit();
+ expect(fakeServer.requests.length).toEqual(1);
+ inListStub.restore();
+ });
+ });
});
diff --git a/apps/files/tests/js/fileactionsSpec.js b/apps/files/tests/js/fileactionsSpec.js
index 828aec9b6b9..53fa8707674 100644
--- a/apps/files/tests/js/fileactionsSpec.js
+++ b/apps/files/tests/js/fileactionsSpec.js
@@ -157,6 +157,48 @@ describe('OCA.Files.FileActions tests', function() {
expect(deleteStub.getCall(0).args[1]).toEqual('/somepath/dir');
deleteStub.restore();
});
+ it('shows delete hint when no permission to delete', function() {
+ var deleteStub = sinon.stub(fileList, 'do_delete');
+ var fileData = {
+ id: 18,
+ type: 'file',
+ name: 'testName.txt',
+ path: '/somepath/dir',
+ mimetype: 'text/plain',
+ size: '1234',
+ etag: 'a01234c',
+ mtime: '123456',
+ permissions: OC.PERMISSION_READ
+ };
+ var $tr = fileList.add(fileData);
+ FileActions.display($tr.find('td.filename'), true, fileList);
+
+ var $action = $tr.find('.action.delete');
+
+ expect($action.hasClass('no-permission')).toEqual(true);
+ deleteStub.restore();
+ });
+ it('shows delete hint not when permission to delete', function() {
+ var deleteStub = sinon.stub(fileList, 'do_delete');
+ var fileData = {
+ id: 18,
+ type: 'file',
+ name: 'testName.txt',
+ path: '/somepath/dir',
+ mimetype: 'text/plain',
+ size: '1234',
+ etag: 'a01234c',
+ mtime: '123456',
+ permissions: OC.PERMISSION_DELETE
+ };
+ var $tr = fileList.add(fileData);
+ FileActions.display($tr.find('td.filename'), true, fileList);
+
+ var $action = $tr.find('.action.delete');
+
+ expect($action.hasClass('no-permission')).toEqual(false);
+ deleteStub.restore();
+ });
it('passes context to action handler', function() {
var actionStub = sinon.stub();
var fileData = {
diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js
index 153cbe52c10..aa44c92792d 100644
--- a/apps/files/tests/js/filelistSpec.js
+++ b/apps/files/tests/js/filelistSpec.js
@@ -87,7 +87,8 @@ describe('OCA.Files.FileList tests', function() {
'<tbody id="fileList"></tbody>' +
'<tfoot></tfoot>' +
'</table>' +
- '<div id="emptycontent">Empty content message</div>' +
+ // TODO: move to handlebars template
+ '<div id="emptycontent"><h2>Empty content message</h2><p class="uploadmessage">Upload message</p></div>' +
'<div class="nofilterresults hidden"></div>' +
'</div>'
);
@@ -845,13 +846,15 @@ describe('OCA.Files.FileList tests', function() {
fileList.setFiles([]);
expect($('#filestable thead th').hasClass('hidden')).toEqual(true);
expect($('#emptycontent').hasClass('hidden')).toEqual(false);
+ expect($('#emptycontent .uploadmessage').hasClass('hidden')).toEqual(false);
expect(fileList.$el.find('.summary').hasClass('hidden')).toEqual(true);
});
- it('hides headers, empty content message, and summary when list is empty and user has no creation permission', function(){
+ it('hides headers, upload message, and summary when list is empty and user has no creation permission', function(){
$('#permissions').val(0);
fileList.setFiles([]);
expect($('#filestable thead th').hasClass('hidden')).toEqual(true);
- expect($('#emptycontent').hasClass('hidden')).toEqual(true);
+ expect($('#emptycontent').hasClass('hidden')).toEqual(false);
+ expect($('#emptycontent .uploadmessage').hasClass('hidden')).toEqual(true);
expect(fileList.$el.find('.summary').hasClass('hidden')).toEqual(true);
});
it('calling findFileEl() can find existing file element', function() {
diff --git a/apps/files_external/3rdparty/composer.json b/apps/files_external/3rdparty/composer.json
index 8992220d843..9680d92e548 100644
--- a/apps/files_external/3rdparty/composer.json
+++ b/apps/files_external/3rdparty/composer.json
@@ -6,7 +6,7 @@
"vendor-dir": "."
},
"require": {
- "icewind/smb": "1.0.0",
+ "icewind/smb": "1.0.1",
"icewind/streams": "0.2"
}
}
diff --git a/apps/files_external/3rdparty/composer.lock b/apps/files_external/3rdparty/composer.lock
index ffd5c7c3c65..84fbb046d5a 100644
--- a/apps/files_external/3rdparty/composer.lock
+++ b/apps/files_external/3rdparty/composer.lock
@@ -4,24 +4,24 @@
"Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "hash": "2554253c9f91c67cd0db753a69105bc0",
+ "hash": "7b46d64e33feb600c5f0ec830b211e6f",
"packages": [
{
"name": "icewind/smb",
- "version": "v1.0.0",
+ "version": "v1.0.1",
"source": {
"type": "git",
"url": "https://github.com/icewind1991/SMB.git",
- "reference": "4f5d9db3a9397e30476f92eb753751b54d6d4fa5"
+ "reference": "8041bc1960bf2da94e60b88b34e5c78300eac476"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/icewind1991/SMB/zipball/4f5d9db3a9397e30476f92eb753751b54d6d4fa5",
- "reference": "4f5d9db3a9397e30476f92eb753751b54d6d4fa5",
+ "url": "https://api.github.com/repos/icewind1991/SMB/zipball/8041bc1960bf2da94e60b88b34e5c78300eac476",
+ "reference": "8041bc1960bf2da94e60b88b34e5c78300eac476",
"shasum": ""
},
"require": {
- "icewind/streams": "0.2.x",
+ "icewind/streams": "0.2.*",
"php": ">=5.3"
},
"require-dev": {
@@ -45,7 +45,7 @@
}
],
"description": "php wrapper for smbclient and libsmbclient-php",
- "time": "2015-04-10 12:10:08"
+ "time": "2015-04-20 11:16:24"
},
{
"name": "icewind/streams",
diff --git a/apps/files_external/3rdparty/composer/installed.json b/apps/files_external/3rdparty/composer/installed.json
index 441ed1f14fa..42e8fdd29db 100644
--- a/apps/files_external/3rdparty/composer/installed.json
+++ b/apps/files_external/3rdparty/composer/installed.json
@@ -43,27 +43,27 @@
},
{
"name": "icewind/smb",
- "version": "v1.0.0",
- "version_normalized": "1.0.0.0",
+ "version": "v1.0.1",
+ "version_normalized": "1.0.1.0",
"source": {
"type": "git",
"url": "https://github.com/icewind1991/SMB.git",
- "reference": "4f5d9db3a9397e30476f92eb753751b54d6d4fa5"
+ "reference": "8041bc1960bf2da94e60b88b34e5c78300eac476"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/icewind1991/SMB/zipball/4f5d9db3a9397e30476f92eb753751b54d6d4fa5",
- "reference": "4f5d9db3a9397e30476f92eb753751b54d6d4fa5",
+ "url": "https://api.github.com/repos/icewind1991/SMB/zipball/8041bc1960bf2da94e60b88b34e5c78300eac476",
+ "reference": "8041bc1960bf2da94e60b88b34e5c78300eac476",
"shasum": ""
},
"require": {
- "icewind/streams": "0.2.x",
+ "icewind/streams": "0.2.*",
"php": ">=5.3"
},
"require-dev": {
"satooshi/php-coveralls": "dev-master"
},
- "time": "2015-04-10 12:10:08",
+ "time": "2015-04-20 11:16:24",
"type": "library",
"installation-source": "source",
"autoload": {
diff --git a/apps/files_external/3rdparty/icewind/smb/composer.json b/apps/files_external/3rdparty/icewind/smb/composer.json
index 92f4280d775..593eb728716 100644
--- a/apps/files_external/3rdparty/icewind/smb/composer.json
+++ b/apps/files_external/3rdparty/icewind/smb/composer.json
@@ -10,7 +10,7 @@
],
"require" : {
"php": ">=5.3",
- "icewind/streams": "0.2.x"
+ "icewind/streams": "0.2.*"
},
"require-dev": {
"satooshi/php-coveralls" : "dev-master"
diff --git a/apps/files_external/3rdparty/icewind/smb/src/Parser.php b/apps/files_external/3rdparty/icewind/smb/src/Parser.php
index 8b4de7825e4..6af70143c52 100644
--- a/apps/files_external/3rdparty/icewind/smb/src/Parser.php
+++ b/apps/files_external/3rdparty/icewind/smb/src/Parser.php
@@ -91,7 +91,6 @@ class Parser {
$mode = 0;
$size = 0;
foreach ($output as $line) {
- list($name, $value) = explode(':', $line, 2);
// A line = explode statement may not fill all array elements
// properly. May happen when accessing non Windows Fileservers
$words = explode(':', $line, 2);
diff --git a/apps/files_external/appinfo/routes.php b/apps/files_external/appinfo/routes.php
index 31f82087786..8c6dff7a901 100644
--- a/apps/files_external/appinfo/routes.php
+++ b/apps/files_external/appinfo/routes.php
@@ -46,12 +46,6 @@ $application->registerRoutes(
)
);
-// TODO: move these to app framework
-$this->create('files_external_add_root_certificate', 'ajax/addRootCertificate.php')
- ->actionInclude('files_external/ajax/addRootCertificate.php');
-$this->create('files_external_remove_root_certificate', 'ajax/removeRootCertificate.php')
- ->actionInclude('files_external/ajax/removeRootCertificate.php');
-
$this->create('files_external_dropbox', 'ajax/dropbox.php')
->actionInclude('files_external/ajax/dropbox.php');
$this->create('files_external_google', 'ajax/google.php')
@@ -61,7 +55,7 @@ $this->create('files_external_google', 'ajax/google.php')
$this->create('files_external_list_applicable', '/applicable')
->actionInclude('files_external/ajax/applicable.php');
-\OC_API::register('get',
+\OCP\API::register('get',
'/apps/files_external/api/v1/mounts',
array('\OCA\Files\External\Api', 'getUserMounts'),
'files_external');
diff --git a/apps/files_external/l10n/en_GB.js b/apps/files_external/l10n/en_GB.js
index 4f9bf8adc3c..e4dfb3effcc 100644
--- a/apps/files_external/l10n/en_GB.js
+++ b/apps/files_external/l10n/en_GB.js
@@ -64,6 +64,7 @@ OC.L10N.register(
"<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.",
"No external storage configured" : "No external storage configured",
+ "You can add external storages in the personal settings" : "You can add external storages in the personal settings",
"Name" : "Name",
"Storage type" : "Storage type",
"Scope" : "Scope",
@@ -72,6 +73,7 @@ OC.L10N.register(
"Configuration" : "Configuration",
"Available for" : "Available for",
"Add storage" : "Add storage",
+ "Advanced settings" : "Advanced settings",
"Delete" : "Delete",
"Enable User External Storage" : "Enable User External Storage",
"Allow users to mount the following external storage" : "Allow users to mount the following external storage"
diff --git a/apps/files_external/l10n/en_GB.json b/apps/files_external/l10n/en_GB.json
index ca49348ab72..6b66198cef4 100644
--- a/apps/files_external/l10n/en_GB.json
+++ b/apps/files_external/l10n/en_GB.json
@@ -62,6 +62,7 @@
"<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.",
"No external storage configured" : "No external storage configured",
+ "You can add external storages in the personal settings" : "You can add external storages in the personal settings",
"Name" : "Name",
"Storage type" : "Storage type",
"Scope" : "Scope",
@@ -70,6 +71,7 @@
"Configuration" : "Configuration",
"Available for" : "Available for",
"Add storage" : "Add storage",
+ "Advanced settings" : "Advanced settings",
"Delete" : "Delete",
"Enable User External Storage" : "Enable User External Storage",
"Allow users to mount the following external storage" : "Allow users to mount the following external storage"
diff --git a/apps/files_external/l10n/fr.js b/apps/files_external/l10n/fr.js
index f63553fe50a..4b6b3b7d305 100644
--- a/apps/files_external/l10n/fr.js
+++ b/apps/files_external/l10n/fr.js
@@ -37,7 +37,7 @@ OC.L10N.register(
"Password (required for OpenStack Object Storage)" : "Mot de passe (requis pour OpenStack Object Storage)",
"Service Name (required for OpenStack Object Storage)" : "Nom du service (requis pour le stockage OpenStack)",
"URL of identity endpoint (required for OpenStack Object Storage)" : "URL du point d'accès d'identité (requis pour le stockage OpenStack)",
- "Timeout of HTTP requests in seconds" : "Temps maximal de requête HTTP en seconde",
+ "Timeout of HTTP requests in seconds" : "Délai d'attente maximal des requêtes HTTP en secondes",
"Share" : "Partager",
"SMB / CIFS using OC login" : "SMB / CIFS en utilisant les identifiants OC",
"Username as share" : "Nom d'utilisateur comme nom de partage",
diff --git a/apps/files_external/l10n/fr.json b/apps/files_external/l10n/fr.json
index af99c2c935a..add46dd3021 100644
--- a/apps/files_external/l10n/fr.json
+++ b/apps/files_external/l10n/fr.json
@@ -35,7 +35,7 @@
"Password (required for OpenStack Object Storage)" : "Mot de passe (requis pour OpenStack Object Storage)",
"Service Name (required for OpenStack Object Storage)" : "Nom du service (requis pour le stockage OpenStack)",
"URL of identity endpoint (required for OpenStack Object Storage)" : "URL du point d'accès d'identité (requis pour le stockage OpenStack)",
- "Timeout of HTTP requests in seconds" : "Temps maximal de requête HTTP en seconde",
+ "Timeout of HTTP requests in seconds" : "Délai d'attente maximal des requêtes HTTP en secondes",
"Share" : "Partager",
"SMB / CIFS using OC login" : "SMB / CIFS en utilisant les identifiants OC",
"Username as share" : "Nom d'utilisateur comme nom de partage",
diff --git a/apps/files_external/l10n/ja.js b/apps/files_external/l10n/ja.js
index 8b6a255db92..cd50ae8c530 100644
--- a/apps/files_external/l10n/ja.js
+++ b/apps/files_external/l10n/ja.js
@@ -44,7 +44,9 @@ OC.L10N.register(
"URL" : "URL",
"Secure https://" : "セキュア https://",
"Public key" : "公開鍵",
+ "Storage with id \"%i\" not found" : "ストレージID \"%i\" が見つかりません",
"Invalid mount point" : "無効なマウントポイント",
+ "Invalid storage backend \"%s\"" : "\"%s\" のストレージバックエンドが不正",
"Access granted" : "アクセスは許可されました",
"Error configuring Dropbox storage" : "Dropboxストレージの設定エラー",
"Grant access" : "アクセスを許可",
diff --git a/apps/files_external/l10n/ja.json b/apps/files_external/l10n/ja.json
index dbdd911cb96..81da7f57397 100644
--- a/apps/files_external/l10n/ja.json
+++ b/apps/files_external/l10n/ja.json
@@ -42,7 +42,9 @@
"URL" : "URL",
"Secure https://" : "セキュア https://",
"Public key" : "公開鍵",
+ "Storage with id \"%i\" not found" : "ストレージID \"%i\" が見つかりません",
"Invalid mount point" : "無効なマウントポイント",
+ "Invalid storage backend \"%s\"" : "\"%s\" のストレージバックエンドが不正",
"Access granted" : "アクセスは許可されました",
"Error configuring Dropbox storage" : "Dropboxストレージの設定エラー",
"Grant access" : "アクセスを許可",
diff --git a/apps/files_external/l10n/ro.js b/apps/files_external/l10n/ro.js
index bef9b29c81a..e7e6a5662f5 100644
--- a/apps/files_external/l10n/ro.js
+++ b/apps/files_external/l10n/ro.js
@@ -3,8 +3,14 @@ OC.L10N.register(
{
"Please provide a valid Dropbox app key and secret." : "Prezintă te rog o cheie de Dropbox validă și parola",
"External storage" : "Stocare externă",
+ "Local" : "Local",
"Location" : "Locație",
"Amazon S3" : "Amazon S3",
+ "Key" : "Cheie",
+ "Secret" : "Secret",
+ "Access Key" : "Cheie de acces",
+ "Secret Key" : "Cheie secretă",
+ "Hostname" : "Hostname",
"Port" : "Portul",
"Region" : "Regiune",
"Host" : "Gazdă",
@@ -12,6 +18,7 @@ OC.L10N.register(
"Password" : "Parolă",
"Share" : "Partajează",
"URL" : "URL",
+ "Public key" : "Cheie publică",
"Access granted" : "Acces permis",
"Error configuring Dropbox storage" : "Eroare la configurarea mediului de stocare Dropbox",
"Grant access" : "Permite accesul",
diff --git a/apps/files_external/l10n/ro.json b/apps/files_external/l10n/ro.json
index ee904b6712e..bc7612b5cde 100644
--- a/apps/files_external/l10n/ro.json
+++ b/apps/files_external/l10n/ro.json
@@ -1,8 +1,14 @@
{ "translations": {
"Please provide a valid Dropbox app key and secret." : "Prezintă te rog o cheie de Dropbox validă și parola",
"External storage" : "Stocare externă",
+ "Local" : "Local",
"Location" : "Locație",
"Amazon S3" : "Amazon S3",
+ "Key" : "Cheie",
+ "Secret" : "Secret",
+ "Access Key" : "Cheie de acces",
+ "Secret Key" : "Cheie secretă",
+ "Hostname" : "Hostname",
"Port" : "Portul",
"Region" : "Regiune",
"Host" : "Gazdă",
@@ -10,6 +16,7 @@
"Password" : "Parolă",
"Share" : "Partajează",
"URL" : "URL",
+ "Public key" : "Cheie publică",
"Access granted" : "Acces permis",
"Error configuring Dropbox storage" : "Eroare la configurarea mediului de stocare Dropbox",
"Grant access" : "Permite accesul",
diff --git a/apps/files_external/l10n/uk.js b/apps/files_external/l10n/uk.js
index 2f6e84c62b8..d31efca661e 100644
--- a/apps/files_external/l10n/uk.js
+++ b/apps/files_external/l10n/uk.js
@@ -14,7 +14,7 @@ OC.L10N.register(
"Secret" : "Секрет",
"Bucket" : "Кошик",
"Amazon S3 and compliant" : "Amazon S3 та сумісний",
- "Access Key" : "Ключ доступа",
+ "Access Key" : "Ключ доступу",
"Secret Key" : "Секретний ключ",
"Hostname" : "Ім'я хоста",
"Port" : "Порт",
@@ -55,7 +55,7 @@ OC.L10N.register(
"System" : "Система",
"All users. Type to select user or group." : "Всі користувачі. Введіть ім'я користувача або групи.",
"(group)" : "(група)",
- "Saved" : "Збереженно",
+ "Saved" : "Збережено",
"Generate keys" : "Створити ключі",
"Error generating key pair" : "Помилка створення ключової пари",
"<b>Note:</b> " : "<b>Примітка:</b>",
@@ -64,6 +64,7 @@ OC.L10N.register(
"<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 неможливо. Зверніться до системного адміністратора.",
"No external storage configured" : "Немає налаштованих зовнішніх сховищ",
+ "You can add external storages in the personal settings" : "Ви можете додати зовнішні сховища в особистих налаштуваннях",
"Name" : "Ім'я",
"Storage type" : "Тип сховища",
"Scope" : "Область",
@@ -72,6 +73,7 @@ OC.L10N.register(
"Configuration" : "Налаштування",
"Available for" : "Доступний для",
"Add storage" : "Додати сховище",
+ "Advanced settings" : "Розширені налаштування",
"Delete" : "Видалити",
"Enable User External Storage" : "Активувати користувацькі зовнішні сховища",
"Allow users to mount the following external storage" : "Дозволити користувачам монтувати наступні зовнішні сховища"
diff --git a/apps/files_external/l10n/uk.json b/apps/files_external/l10n/uk.json
index 744021ce707..e8306c44580 100644
--- a/apps/files_external/l10n/uk.json
+++ b/apps/files_external/l10n/uk.json
@@ -12,7 +12,7 @@
"Secret" : "Секрет",
"Bucket" : "Кошик",
"Amazon S3 and compliant" : "Amazon S3 та сумісний",
- "Access Key" : "Ключ доступа",
+ "Access Key" : "Ключ доступу",
"Secret Key" : "Секретний ключ",
"Hostname" : "Ім'я хоста",
"Port" : "Порт",
@@ -53,7 +53,7 @@
"System" : "Система",
"All users. Type to select user or group." : "Всі користувачі. Введіть ім'я користувача або групи.",
"(group)" : "(група)",
- "Saved" : "Збереженно",
+ "Saved" : "Збережено",
"Generate keys" : "Створити ключі",
"Error generating key pair" : "Помилка створення ключової пари",
"<b>Note:</b> " : "<b>Примітка:</b>",
@@ -62,6 +62,7 @@
"<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 неможливо. Зверніться до системного адміністратора.",
"No external storage configured" : "Немає налаштованих зовнішніх сховищ",
+ "You can add external storages in the personal settings" : "Ви можете додати зовнішні сховища в особистих налаштуваннях",
"Name" : "Ім'я",
"Storage type" : "Тип сховища",
"Scope" : "Область",
@@ -70,6 +71,7 @@
"Configuration" : "Налаштування",
"Available for" : "Доступний для",
"Add storage" : "Додати сховище",
+ "Advanced settings" : "Розширені налаштування",
"Delete" : "Видалити",
"Enable User External Storage" : "Активувати користувацькі зовнішні сховища",
"Allow users to mount the following external storage" : "Дозволити користувачам монтувати наступні зовнішні сховища"
diff --git a/apps/files_external/lib/dropbox.php b/apps/files_external/lib/dropbox.php
index b685f635aea..78219f8f06e 100644
--- a/apps/files_external/lib/dropbox.php
+++ b/apps/files_external/lib/dropbox.php
@@ -77,7 +77,7 @@ class Dropbox extends \OC\Files\Storage\Common {
* @return mixed directory contents if $list is true, file metadata if $list is
* false, null if the file doesn't exist or "false" if the operation failed
*/
- private function getMetaData($path, $list = false) {
+ private function getDropBoxMetaData($path, $list = false) {
$path = $this->root.$path;
if ( ! $list && isset($this->metaData[$path])) {
return $this->metaData[$path];
@@ -150,7 +150,7 @@ class Dropbox extends \OC\Files\Storage\Common {
}
public function opendir($path) {
- $contents = $this->getMetaData($path, true);
+ $contents = $this->getDropBoxMetaData($path, true);
if ($contents !== false) {
$files = array();
foreach ($contents as $file) {
@@ -163,7 +163,7 @@ class Dropbox extends \OC\Files\Storage\Common {
}
public function stat($path) {
- $metaData = $this->getMetaData($path);
+ $metaData = $this->getDropBoxMetaData($path);
if ($metaData) {
$stat['size'] = $metaData['bytes'];
$stat['atime'] = time();
@@ -177,7 +177,7 @@ class Dropbox extends \OC\Files\Storage\Common {
if ($path == '' || $path == '/') {
return 'dir';
} else {
- $metaData = $this->getMetaData($path);
+ $metaData = $this->getDropBoxMetaData($path);
if ($metaData) {
if ($metaData['is_dir'] == 'true') {
return 'dir';
@@ -193,7 +193,7 @@ class Dropbox extends \OC\Files\Storage\Common {
if ($path == '' || $path == '/') {
return true;
}
- if ($this->getMetaData($path)) {
+ if ($this->getDropBoxMetaData($path)) {
return true;
}
return false;
@@ -213,7 +213,7 @@ class Dropbox extends \OC\Files\Storage\Common {
public function rename($path1, $path2) {
try {
// overwrite if target file exists and is not a directory
- $destMetaData = $this->getMetaData($path2);
+ $destMetaData = $this->getDropBoxMetaData($path2);
if (isset($destMetaData) && $destMetaData !== false && !$destMetaData['is_dir']) {
$this->unlink($path2);
}
@@ -297,7 +297,7 @@ class Dropbox extends \OC\Files\Storage\Common {
if ($this->filetype($path) == 'dir') {
return 'httpd/unix-directory';
} else {
- $metaData = $this->getMetaData($path);
+ $metaData = $this->getDropBoxMetaData($path);
if ($metaData) {
return $metaData['mime_type'];
}
diff --git a/apps/files_external/tests/js/mountsfilelistSpec.js b/apps/files_external/tests/js/mountsfilelistSpec.js
index a4e4fec1177..c7ea819d2fe 100644
--- a/apps/files_external/tests/js/mountsfilelistSpec.js
+++ b/apps/files_external/tests/js/mountsfilelistSpec.js
@@ -128,7 +128,7 @@ describe('OCA.External.FileList tests', function() {
'?dir=/another%20mount%20points/sftp%20mount'
);
expect($tr.find('.nametext').text().trim()).toEqual('sftp mount');
- expect($tr.find('.column-scope').text().trim()).toEqual('System');
+ expect($tr.find('.column-scope > span').text().trim()).toEqual('System');
expect($tr.find('.column-backend').text().trim()).toEqual('SFTP');
$tr = $rows.eq(1);
diff --git a/apps/files_sharing/api/local.php b/apps/files_sharing/api/local.php
index 1a5edbfd070..00509bcee69 100644
--- a/apps/files_sharing/api/local.php
+++ b/apps/files_sharing/api/local.php
@@ -571,7 +571,7 @@ class Local {
$result = $query->execute($args);
if (\OCP\DB::isError($result)) {
- \OCP\Util::writeLog('files_sharing', \OC_DB::getErrorMessage($result), \OCP\Util::ERROR);
+ \OCP\Util::writeLog('files_sharing', \OC_DB::getErrorMessage(), \OCP\Util::ERROR);
return null;
}
if ($share = $result->fetchRow()) {
diff --git a/apps/files_sharing/appinfo/app.php b/apps/files_sharing/appinfo/app.php
index d009fbca3b9..19d3b6cd9cc 100644
--- a/apps/files_sharing/appinfo/app.php
+++ b/apps/files_sharing/appinfo/app.php
@@ -25,31 +25,38 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
+
+namespace OCA\Files_Sharing\Appinfo;
+
$l = \OC::$server->getL10N('files_sharing');
-OC::$CLASSPATH['OC_Share_Backend_File'] = 'files_sharing/lib/share/file.php';
-OC::$CLASSPATH['OC_Share_Backend_Folder'] = 'files_sharing/lib/share/folder.php';
-OC::$CLASSPATH['OC\Files\Storage\Shared'] = 'files_sharing/lib/sharedstorage.php';
-OC::$CLASSPATH['OC\Files\Cache\SharedScanner'] = 'files_sharing/lib/scanner.php';
-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\Maintainer'] = 'files_sharing/lib/maintainer.php';
-OC::$CLASSPATH['OCA\Files\Share\Proxy'] = 'files_sharing/lib/proxy.php';
+\OC::$CLASSPATH['OC_Share_Backend_File'] = 'files_sharing/lib/share/file.php';
+\OC::$CLASSPATH['OC_Share_Backend_Folder'] = 'files_sharing/lib/share/folder.php';
+\OC::$CLASSPATH['OC\Files\Storage\Shared'] = 'files_sharing/lib/sharedstorage.php';
+\OC::$CLASSPATH['OC\Files\Cache\SharedScanner'] = 'files_sharing/lib/scanner.php';
+\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\Maintainer'] = 'files_sharing/lib/maintainer.php';
+\OC::$CLASSPATH['OCA\Files\Share\Proxy'] = 'files_sharing/lib/proxy.php';
// Exceptions
-OC::$CLASSPATH['OCA\Files_Sharing\Exceptions\BrokenPath'] = 'files_sharing/lib/exceptions.php';
+\OC::$CLASSPATH['OCA\Files_Sharing\Exceptions\BrokenPath'] = 'files_sharing/lib/exceptions.php';
+
+$application = new Application();
+$application->registerMountProviders();
+$application->setupPropagation();
\OCP\App::registerAdmin('files_sharing', 'settings-admin');
\OCA\Files_Sharing\Helper::registerHooks();
-OCP\Share::registerBackend('file', 'OC_Share_Backend_File');
-OCP\Share::registerBackend('folder', 'OC_Share_Backend_Folder', 'file');
+\OCP\Share::registerBackend('file', 'OC_Share_Backend_File');
+\OCP\Share::registerBackend('folder', 'OC_Share_Backend_Folder', 'file');
-OCP\Util::addScript('files_sharing', 'share');
-OCP\Util::addScript('files_sharing', 'external');
+\OCP\Util::addScript('files_sharing', 'share');
+\OCP\Util::addScript('files_sharing', 'external');
// FIXME: registering a job here will cause additional useless SQL queries
// when the route is not cron.php, needs a better way
diff --git a/apps/files_sharing/appinfo/application.php b/apps/files_sharing/appinfo/application.php
new file mode 100644
index 00000000000..0eb20945070
--- /dev/null
+++ b/apps/files_sharing/appinfo/application.php
@@ -0,0 +1,124 @@
+<?php
+/**
+ * Copyright (c) 2015 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_Sharing\Appinfo;
+
+use OCA\Files_Sharing\Helper;
+use OCA\Files_Sharing\MountProvider;
+use OCA\Files_Sharing\Propagation\PropagationManager;
+use OCP\AppFramework\App;
+use OC\AppFramework\Utility\SimpleContainer;
+use OCA\Files_Sharing\Controllers\ExternalSharesController;
+use OCA\Files_Sharing\Controllers\ShareController;
+use OCA\Files_Sharing\Middleware\SharingCheckMiddleware;
+use \OCP\IContainer;
+
+class Application extends App {
+ public function __construct(array $urlParams = array()) {
+ parent::__construct('files_sharing', $urlParams);
+
+ $container = $this->getContainer();
+ $server = $container->getServer();
+
+ /**
+ * Controllers
+ */
+ $container->registerService('ShareController', function (SimpleContainer $c) use ($server) {
+ return new ShareController(
+ $c->query('AppName'),
+ $c->query('Request'),
+ $c->query('UserSession'),
+ $server->getAppConfig(),
+ $server->getConfig(),
+ $c->query('URLGenerator'),
+ $c->query('UserManager'),
+ $server->getLogger(),
+ $server->getActivityManager()
+ );
+ });
+ $container->registerService('ExternalSharesController', function (SimpleContainer $c) {
+ return new ExternalSharesController(
+ $c->query('AppName'),
+ $c->query('Request'),
+ $c->query('IsIncomingShareEnabled'),
+ $c->query('ExternalManager')
+ );
+ });
+
+ /**
+ * Core class wrappers
+ */
+ $container->registerService('UserSession', function (SimpleContainer $c) use ($server) {
+ return $server->getUserSession();
+ });
+ $container->registerService('URLGenerator', function (SimpleContainer $c) use ($server) {
+ return $server->getUrlGenerator();
+ });
+ $container->registerService('UserManager', function (SimpleContainer $c) use ($server) {
+ return $server->getUserManager();
+ });
+ $container->registerService('IsIncomingShareEnabled', function (SimpleContainer $c) {
+ return Helper::isIncomingServer2serverShareEnabled();
+ });
+ $container->registerService('ExternalManager', function (SimpleContainer $c) use ($server) {
+ $user = $server->getUserSession()->getUser();
+ $uid = $user ? $user->getUID() : null;
+ return new \OCA\Files_Sharing\External\Manager(
+ $server->getDatabaseConnection(),
+ \OC\Files\Filesystem::getMountManager(),
+ \OC\Files\Filesystem::getLoader(),
+ $server->getHTTPHelper(),
+ $uid
+ );
+ });
+
+ /**
+ * Middleware
+ */
+ $container->registerService('SharingCheckMiddleware', function (SimpleContainer $c) use ($server) {
+ return new SharingCheckMiddleware(
+ $c->query('AppName'),
+ $server->getConfig(),
+ $server->getAppManager()
+ );
+ });
+
+ // Execute middlewares
+ $container->registerMiddleware('SharingCheckMiddleware');
+
+ $container->registerService('MountProvider', function (IContainer $c) {
+ /** @var \OCP\IServerContainer $server */
+ $server = $c->query('ServerContainer');
+ return new MountProvider(
+ $server->getConfig(),
+ $c->query('PropagationManager')
+ );
+ });
+
+ $container->registerService('PropagationManager', function (IContainer $c) {
+ /** @var \OCP\IServerContainer $server */
+ $server = $c->query('ServerContainer');
+ return new PropagationManager(
+ $server->getUserSession(),
+ $server->getConfig()
+ );
+ });
+ }
+
+ public function registerMountProviders() {
+ /** @var \OCP\IServerContainer $server */
+ $server = $this->getContainer()->query('ServerContainer');
+ $mountProviderCollection = $server->getMountProviderCollection();
+ $mountProviderCollection->registerProvider($this->getContainer()->query('MountProvider'));
+ }
+
+ public function setupPropagation() {
+ $propagationManager = $this->getContainer()->query('PropagationManager');
+ \OCP\Util::connectHook('OC_Filesystem', 'setup', $propagationManager, 'globalSetup');
+ }
+}
diff --git a/apps/files_sharing/appinfo/routes.php b/apps/files_sharing/appinfo/routes.php
index 16f8727a510..78fa138f5b5 100644
--- a/apps/files_sharing/appinfo/routes.php
+++ b/apps/files_sharing/appinfo/routes.php
@@ -25,7 +25,7 @@
*/
namespace OCA\Files_Sharing\AppInfo;
-use OCA\Files_Sharing\Application;
+use OCP\API;
$application = new Application();
$application->registerRoutes($this, [
@@ -55,33 +55,33 @@ $this->create('sharing_external_test_remote', '/testremote')
//TODO: SET: mail notification, waiting for PR #4689 to be accepted
-\OC_API::register('get',
+API::register('get',
'/apps/files_sharing/api/v1/shares',
array('\OCA\Files_Sharing\API\Local', 'getAllShares'),
'files_sharing');
-\OC_API::register('post',
+API::register('post',
'/apps/files_sharing/api/v1/shares',
array('\OCA\Files_Sharing\API\Local', 'createShare'),
'files_sharing');
-\OC_API::register('get',
+API::register('get',
'/apps/files_sharing/api/v1/shares/{id}',
array('\OCA\Files_Sharing\API\Local', 'getShare'),
'files_sharing');
-\OC_API::register('put',
+API::register('put',
'/apps/files_sharing/api/v1/shares/{id}',
array('\OCA\Files_Sharing\API\Local', 'updateShare'),
'files_sharing');
-\OC_API::register('delete',
+API::register('delete',
'/apps/files_sharing/api/v1/shares/{id}',
array('\OCA\Files_Sharing\API\Local', 'deleteShare'),
'files_sharing');
// Register with the capabilities API
-\OC_API::register('get',
+API::register('get',
'/cloud/capabilities',
array('OCA\Files_Sharing\Capabilities', 'getCapabilities'),
- 'files_sharing', \OC_API::USER_AUTH);
+ 'files_sharing', API::USER_AUTH);
diff --git a/apps/files_sharing/application.php b/apps/files_sharing/application.php
deleted file mode 100644
index 62c07ffe404..00000000000
--- a/apps/files_sharing/application.php
+++ /dev/null
@@ -1,115 +0,0 @@
-<?php
-/**
- * @author Björn Schießle <schiessle@owncloud.com>
- * @author Lukas Reschke <lukas@owncloud.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- *
- * @copyright Copyright (c) 2015, ownCloud, Inc.
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-
-namespace OCA\Files_Sharing;
-
-use OC\AppFramework\Utility\SimpleContainer;
-use OCA\Files_Sharing\Controllers\ExternalSharesController;
-use OCA\Files_Sharing\Controllers\ShareController;
-use OCA\Files_Sharing\Middleware\SharingCheckMiddleware;
-use \OCP\AppFramework\App;
-
-/**
- * @package OCA\Files_Sharing
- */
-class Application extends App {
-
-
- /**
- * @param array $urlParams
- */
- public function __construct(array $urlParams=array()){
- parent::__construct('files_sharing', $urlParams);
-
- $container = $this->getContainer();
- $server = $container->getServer();
-
- /**
- * Controllers
- */
- $container->registerService('ShareController', function(SimpleContainer $c) use ($server) {
- return new ShareController(
- $c->query('AppName'),
- $c->query('Request'),
- $c->query('UserSession'),
- $server->getAppConfig(),
- $server->getConfig(),
- $c->query('URLGenerator'),
- $c->query('UserManager'),
- $server->getLogger(),
- $server->getActivityManager()
- );
- });
- $container->registerService('ExternalSharesController', function(SimpleContainer $c) {
- return new ExternalSharesController(
- $c->query('AppName'),
- $c->query('Request'),
- $c->query('IsIncomingShareEnabled'),
- $c->query('ExternalManager')
- );
- });
-
- /**
- * Core class wrappers
- */
- $container->registerService('UserSession', function(SimpleContainer $c) use ($server) {
- return $server->getUserSession();
- });
- $container->registerService('URLGenerator', function(SimpleContainer $c) use ($server){
- return $server->getUrlGenerator();
- });
- $container->registerService('UserManager', function(SimpleContainer $c) use ($server){
- return $server->getUserManager();
- });
- $container->registerService('IsIncomingShareEnabled', function(SimpleContainer $c) {
- return Helper::isIncomingServer2serverShareEnabled();
- });
- $container->registerService('ExternalManager', function(SimpleContainer $c) use ($server){
- $user = $server->getUserSession()->getUser();
- $uid = $user ? $user->getUID() : null;
- return new \OCA\Files_Sharing\External\Manager(
- $server->getDatabaseConnection(),
- \OC\Files\Filesystem::getMountManager(),
- \OC\Files\Filesystem::getLoader(),
- $server->getHTTPHelper(),
- $uid
- );
- });
-
- /**
- * Middleware
- */
- $container->registerService('SharingCheckMiddleware', function(SimpleContainer $c) use ($server){
- return new SharingCheckMiddleware(
- $c->query('AppName'),
- $server->getConfig(),
- $server->getAppManager()
- );
- });
-
- // Execute middlewares
- $container->registerMiddleware('SharingCheckMiddleware');
- }
-
-}
diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js
index bec43a4fb57..41bfeba031f 100644
--- a/apps/files_sharing/js/public.js
+++ b/apps/files_sharing/js/public.js
@@ -150,6 +150,13 @@ OCA.Sharing.PublicApp = {
return OC.generateUrl('/apps/files_sharing/ajax/publicpreview.php?') + $.param(urlSpec);
};
+ this.fileList.updateEmptyContent = function() {
+ this.$el.find('#emptycontent .uploadmessage').text(
+ t('files_sharing', 'You can upload into this folder')
+ );
+ OCA.Files.FileList.prototype.updateEmptyContent.apply(this, arguments);
+ };
+
var file_upload_start = $('#file_upload_start');
file_upload_start.on('fileuploadadd', function (e, data) {
var fileDirectory = '';
diff --git a/apps/files_sharing/l10n/cs_CZ.js b/apps/files_sharing/l10n/cs_CZ.js
index d6bd498ce52..d1d89a15999 100644
--- a/apps/files_sharing/l10n/cs_CZ.js
+++ b/apps/files_sharing/l10n/cs_CZ.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Remote share password" : "Heslo ke vzdálenému úložišti",
"Cancel" : "Zrušit",
"Add remote share" : "Přidat vzdálené úložiště",
+ "You can upload into this folder" : "Můžete nahrávat do tohoto adresáře",
"No ownCloud installation (7 or higher) found at {remote}" : "Nebyla nalezena instalace ownCloud (7 nebo vyšší) na {remote}",
"Invalid ownCloud url" : "Neplatná ownCloud url",
"Share" : "Sdílet",
diff --git a/apps/files_sharing/l10n/cs_CZ.json b/apps/files_sharing/l10n/cs_CZ.json
index be42df94b7b..95fea4806cf 100644
--- a/apps/files_sharing/l10n/cs_CZ.json
+++ b/apps/files_sharing/l10n/cs_CZ.json
@@ -19,6 +19,7 @@
"Remote share password" : "Heslo ke vzdálenému úložišti",
"Cancel" : "Zrušit",
"Add remote share" : "Přidat vzdálené úložiště",
+ "You can upload into this folder" : "Můžete nahrávat do tohoto adresáře",
"No ownCloud installation (7 or higher) found at {remote}" : "Nebyla nalezena instalace ownCloud (7 nebo vyšší) na {remote}",
"Invalid ownCloud url" : "Neplatná ownCloud url",
"Share" : "Sdílet",
diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js
index 8022b53bc97..e5b7b7bcb32 100644
--- a/apps/files_sharing/l10n/de.js
+++ b/apps/files_sharing/l10n/de.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Remote share password" : "Passwort für die entfernte Freigabe",
"Cancel" : "Abbrechen",
"Add remote share" : "Entfernte Freigabe hinzufügen",
+ "You can upload into this folder" : "Du kannst in diesen Ordner hochladen",
"No ownCloud installation (7 or higher) found at {remote}" : "Keine OwnCloud-Installation (7 oder höher) auf {remote} gefunden",
"Invalid ownCloud url" : "Ungültige OwnCloud-URL",
"Share" : "Teilen",
diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json
index 4bc9eaee223..a323072083d 100644
--- a/apps/files_sharing/l10n/de.json
+++ b/apps/files_sharing/l10n/de.json
@@ -19,6 +19,7 @@
"Remote share password" : "Passwort für die entfernte Freigabe",
"Cancel" : "Abbrechen",
"Add remote share" : "Entfernte Freigabe hinzufügen",
+ "You can upload into this folder" : "Du kannst in diesen Ordner hochladen",
"No ownCloud installation (7 or higher) found at {remote}" : "Keine OwnCloud-Installation (7 oder höher) auf {remote} gefunden",
"Invalid ownCloud url" : "Ungültige OwnCloud-URL",
"Share" : "Teilen",
diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js
index c95941de665..b75864375e2 100644
--- a/apps/files_sharing/l10n/de_DE.js
+++ b/apps/files_sharing/l10n/de_DE.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Remote share password" : "Passwort für die entfernte Freigabe",
"Cancel" : "Abbrechen",
"Add remote share" : "Entfernte Freigabe hinzufügen",
+ "You can upload into this folder" : "Sie können in diesen Ordner hochladen",
"No ownCloud installation (7 or higher) found at {remote}" : "Keine OwnCloud-Installation (7 oder höher) auf {remote} gefunden",
"Invalid ownCloud url" : "Ungültige OwnCloud-Adresse",
"Share" : "Teilen",
diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json
index 75d99afb019..730ec010017 100644
--- a/apps/files_sharing/l10n/de_DE.json
+++ b/apps/files_sharing/l10n/de_DE.json
@@ -19,6 +19,7 @@
"Remote share password" : "Passwort für die entfernte Freigabe",
"Cancel" : "Abbrechen",
"Add remote share" : "Entfernte Freigabe hinzufügen",
+ "You can upload into this folder" : "Sie können in diesen Ordner hochladen",
"No ownCloud installation (7 or higher) found at {remote}" : "Keine OwnCloud-Installation (7 oder höher) auf {remote} gefunden",
"Invalid ownCloud url" : "Ungültige OwnCloud-Adresse",
"Share" : "Teilen",
diff --git a/apps/files_sharing/l10n/el.js b/apps/files_sharing/l10n/el.js
index 293641b8a08..9e3cbf9621a 100644
--- a/apps/files_sharing/l10n/el.js
+++ b/apps/files_sharing/l10n/el.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Remote share password" : "Κωδικός πρόσβασης απομακρυσμένου κοινόχρηστου φακέλου",
"Cancel" : "Άκυρο",
"Add remote share" : "Προσθήκη απομακρυσμένου κοινόχρηστου φακέλου",
+ "You can upload into this folder" : "Μπορείτε να μεταφορτώσετε σε αυτόν τον φάκελο",
"No ownCloud installation (7 or higher) found at {remote}" : "Δεν βρέθηκε εγκατάστση ownCloud (7 ή νεώτερη) στο {remote}",
"Invalid ownCloud url" : "Άκυρη url ownCloud ",
"Share" : "Διαμοιράστε",
diff --git a/apps/files_sharing/l10n/el.json b/apps/files_sharing/l10n/el.json
index 702ef8fc650..3a796c25ae4 100644
--- a/apps/files_sharing/l10n/el.json
+++ b/apps/files_sharing/l10n/el.json
@@ -19,6 +19,7 @@
"Remote share password" : "Κωδικός πρόσβασης απομακρυσμένου κοινόχρηστου φακέλου",
"Cancel" : "Άκυρο",
"Add remote share" : "Προσθήκη απομακρυσμένου κοινόχρηστου φακέλου",
+ "You can upload into this folder" : "Μπορείτε να μεταφορτώσετε σε αυτόν τον φάκελο",
"No ownCloud installation (7 or higher) found at {remote}" : "Δεν βρέθηκε εγκατάστση ownCloud (7 ή νεώτερη) στο {remote}",
"Invalid ownCloud url" : "Άκυρη url ownCloud ",
"Share" : "Διαμοιράστε",
diff --git a/apps/files_sharing/l10n/en_GB.js b/apps/files_sharing/l10n/en_GB.js
index 6ba75c4fc30..75956e85025 100644
--- a/apps/files_sharing/l10n/en_GB.js
+++ b/apps/files_sharing/l10n/en_GB.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Remote share password" : "Remote share password",
"Cancel" : "Cancel",
"Add remote share" : "Add remote share",
+ "You can upload into this folder" : "You can upload into this folder",
"No ownCloud installation (7 or higher) found at {remote}" : "No ownCloud installation (7 or higher) found at {remote}",
"Invalid ownCloud url" : "Invalid ownCloud URL",
"Share" : "Share",
@@ -56,6 +57,7 @@ OC.L10N.register(
"Download %s" : "Download %s",
"Direct link" : "Direct link",
"Federated Cloud Sharing" : "Federated Cloud Sharing",
+ "Open documentation" : "Open documentation",
"Allow users on this server to send shares to other servers" : "Allow users on this server to send shares to other servers",
"Allow users on this server to receive shares from other servers" : "Allow users on this server to receive shares from other servers"
},
diff --git a/apps/files_sharing/l10n/en_GB.json b/apps/files_sharing/l10n/en_GB.json
index 94bb78cfb66..85d6ac5a2f8 100644
--- a/apps/files_sharing/l10n/en_GB.json
+++ b/apps/files_sharing/l10n/en_GB.json
@@ -19,6 +19,7 @@
"Remote share password" : "Remote share password",
"Cancel" : "Cancel",
"Add remote share" : "Add remote share",
+ "You can upload into this folder" : "You can upload into this folder",
"No ownCloud installation (7 or higher) found at {remote}" : "No ownCloud installation (7 or higher) found at {remote}",
"Invalid ownCloud url" : "Invalid ownCloud URL",
"Share" : "Share",
@@ -54,6 +55,7 @@
"Download %s" : "Download %s",
"Direct link" : "Direct link",
"Federated Cloud Sharing" : "Federated Cloud Sharing",
+ "Open documentation" : "Open documentation",
"Allow users on this server to send shares to other servers" : "Allow users on this server to send shares to other servers",
"Allow users on this server to receive shares from other servers" : "Allow users on this server to receive shares from other servers"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/files_sharing/l10n/es.js b/apps/files_sharing/l10n/es.js
index 4f9e5e7c823..c361a450343 100644
--- a/apps/files_sharing/l10n/es.js
+++ b/apps/files_sharing/l10n/es.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Remote share password" : "Contraseña del compartido remoto",
"Cancel" : "Cancelar",
"Add remote share" : "Añadir recurso compartido remoto",
+ "You can upload into this folder" : "Usted puede cargar a este folder",
"No ownCloud installation (7 or higher) found at {remote}" : "No se encontró una instalación de ownCloud (7 o mayor) en {remote}",
"Invalid ownCloud url" : "URL de ownCloud inválida",
"Share" : "Compartir",
diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json
index 08f13f113c9..dfe9367fef1 100644
--- a/apps/files_sharing/l10n/es.json
+++ b/apps/files_sharing/l10n/es.json
@@ -19,6 +19,7 @@
"Remote share password" : "Contraseña del compartido remoto",
"Cancel" : "Cancelar",
"Add remote share" : "Añadir recurso compartido remoto",
+ "You can upload into this folder" : "Usted puede cargar a este folder",
"No ownCloud installation (7 or higher) found at {remote}" : "No se encontró una instalación de ownCloud (7 o mayor) en {remote}",
"Invalid ownCloud url" : "URL de ownCloud inválida",
"Share" : "Compartir",
diff --git a/apps/files_sharing/l10n/et_EE.js b/apps/files_sharing/l10n/et_EE.js
index 889811627f6..bbe0b020b42 100644
--- a/apps/files_sharing/l10n/et_EE.js
+++ b/apps/files_sharing/l10n/et_EE.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"This share is password-protected" : "See jagamine on parooliga kaitstud",
"The password is wrong. Try again." : "Parool on vale. Proovi uuesti.",
"Password" : "Parool",
+ "No entries found in this folder" : "Selles kaustas ei leitud kirjeid",
"Name" : "Nimi",
"Share time" : "Jagamise aeg",
"Sorry, this link doesn’t seem to work anymore." : "Vabandust, see link ei tundu enam toimivat.",
diff --git a/apps/files_sharing/l10n/et_EE.json b/apps/files_sharing/l10n/et_EE.json
index 63859ca4f90..3e36c3540fa 100644
--- a/apps/files_sharing/l10n/et_EE.json
+++ b/apps/files_sharing/l10n/et_EE.json
@@ -23,6 +23,7 @@
"This share is password-protected" : "See jagamine on parooliga kaitstud",
"The password is wrong. Try again." : "Parool on vale. Proovi uuesti.",
"Password" : "Parool",
+ "No entries found in this folder" : "Selles kaustas ei leitud kirjeid",
"Name" : "Nimi",
"Share time" : "Jagamise aeg",
"Sorry, this link doesn’t seem to work anymore." : "Vabandust, see link ei tundu enam toimivat.",
diff --git a/apps/files_sharing/l10n/fi_FI.js b/apps/files_sharing/l10n/fi_FI.js
index 951ca5338c3..7d9cc87dcba 100644
--- a/apps/files_sharing/l10n/fi_FI.js
+++ b/apps/files_sharing/l10n/fi_FI.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Remote share password" : "Etäjaon salasana",
"Cancel" : "Peru",
"Add remote share" : "Lisää etäjako",
+ "You can upload into this folder" : "Voit lähettää tiedostoja tähän kansioon",
"No ownCloud installation (7 or higher) found at {remote}" : "ownCloud-asennusta (versiota 7 tai uudempaa) ei löytynyt osoitteesta {remote}",
"Invalid ownCloud url" : "Virheellinen ownCloud-osoite",
"Share" : "Jaa",
diff --git a/apps/files_sharing/l10n/fi_FI.json b/apps/files_sharing/l10n/fi_FI.json
index f2ae2c47418..3c7f40bd76c 100644
--- a/apps/files_sharing/l10n/fi_FI.json
+++ b/apps/files_sharing/l10n/fi_FI.json
@@ -19,6 +19,7 @@
"Remote share password" : "Etäjaon salasana",
"Cancel" : "Peru",
"Add remote share" : "Lisää etäjako",
+ "You can upload into this folder" : "Voit lähettää tiedostoja tähän kansioon",
"No ownCloud installation (7 or higher) found at {remote}" : "ownCloud-asennusta (versiota 7 tai uudempaa) ei löytynyt osoitteesta {remote}",
"Invalid ownCloud url" : "Virheellinen ownCloud-osoite",
"Share" : "Jaa",
diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js
index 0ed5c63a209..6fd7bf4a9d9 100644
--- a/apps/files_sharing/l10n/fr.js
+++ b/apps/files_sharing/l10n/fr.js
@@ -21,13 +21,14 @@ OC.L10N.register(
"Remote share password" : "Mot de passe du partage distant",
"Cancel" : "Annuler",
"Add remote share" : "Ajouter un partage distant",
+ "You can upload into this folder" : "Vous pouvez téléverser dans ce dossier",
"No ownCloud installation (7 or higher) found at {remote}" : "Aucune installation ownCloud (7 ou supérieur) trouvée sur {remote}",
"Invalid ownCloud url" : "URL ownCloud non valide",
"Share" : "Partager",
"Shared by" : "Partagé par",
"A file or folder has been <strong>shared</strong>" : "Un fichier ou un répertoire a été <strong>partagé</strong>",
"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>",
- "A public shared file or folder was <strong>downloaded</strong>" : "Un fichier ou un répertoire partagé a été <strong>téléchargé</strong>",
+ "A public shared file or folder was <strong>downloaded</strong>" : "Un fichier ou un répertoire partagé publiquement a été <strong>téléchargé</strong>",
"You received a new remote share from %s" : "Vous avez reçu un partage distant de %s",
"%1$s accepted remote share %2$s" : "%1$s a accepté le partage distant %2$s",
"%1$s declined remote share %2$s" : "%1$s a refusé le partage distant %2$s",
diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json
index b997b89ae57..07629def1d3 100644
--- a/apps/files_sharing/l10n/fr.json
+++ b/apps/files_sharing/l10n/fr.json
@@ -19,13 +19,14 @@
"Remote share password" : "Mot de passe du partage distant",
"Cancel" : "Annuler",
"Add remote share" : "Ajouter un partage distant",
+ "You can upload into this folder" : "Vous pouvez téléverser dans ce dossier",
"No ownCloud installation (7 or higher) found at {remote}" : "Aucune installation ownCloud (7 ou supérieur) trouvée sur {remote}",
"Invalid ownCloud url" : "URL ownCloud non valide",
"Share" : "Partager",
"Shared by" : "Partagé par",
"A file or folder has been <strong>shared</strong>" : "Un fichier ou un répertoire a été <strong>partagé</strong>",
"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>",
- "A public shared file or folder was <strong>downloaded</strong>" : "Un fichier ou un répertoire partagé a été <strong>téléchargé</strong>",
+ "A public shared file or folder was <strong>downloaded</strong>" : "Un fichier ou un répertoire partagé publiquement a été <strong>téléchargé</strong>",
"You received a new remote share from %s" : "Vous avez reçu un partage distant de %s",
"%1$s accepted remote share %2$s" : "%1$s a accepté le partage distant %2$s",
"%1$s declined remote share %2$s" : "%1$s a refusé le partage distant %2$s",
diff --git a/apps/files_sharing/l10n/gl.js b/apps/files_sharing/l10n/gl.js
index 6198fd4365c..11cc0348f34 100644
--- a/apps/files_sharing/l10n/gl.js
+++ b/apps/files_sharing/l10n/gl.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Remote share password" : "Contrasinal da compartición remota",
"Cancel" : "Cancelar",
"Add remote share" : "Engadir unha compartición remota",
+ "You can upload into this folder" : "Pode envialo a este cartafol",
"No ownCloud installation (7 or higher) found at {remote}" : "Non se atopa unha instalación de ownCloud (7 ou superior) en {remote}",
"Invalid ownCloud url" : "URL incorrecto do ownCloud",
"Share" : "Compartir",
diff --git a/apps/files_sharing/l10n/gl.json b/apps/files_sharing/l10n/gl.json
index 6bb428cb372..01972ddee16 100644
--- a/apps/files_sharing/l10n/gl.json
+++ b/apps/files_sharing/l10n/gl.json
@@ -19,6 +19,7 @@
"Remote share password" : "Contrasinal da compartición remota",
"Cancel" : "Cancelar",
"Add remote share" : "Engadir unha compartición remota",
+ "You can upload into this folder" : "Pode envialo a este cartafol",
"No ownCloud installation (7 or higher) found at {remote}" : "Non se atopa unha instalación de ownCloud (7 ou superior) en {remote}",
"Invalid ownCloud url" : "URL incorrecto do ownCloud",
"Share" : "Compartir",
diff --git a/apps/files_sharing/l10n/it.js b/apps/files_sharing/l10n/it.js
index 720902b8764..33cb2e81bcf 100644
--- a/apps/files_sharing/l10n/it.js
+++ b/apps/files_sharing/l10n/it.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Remote share password" : "Password della condivisione remota",
"Cancel" : "Annulla",
"Add remote share" : "Aggiungi condivisione remota",
+ "You can upload into this folder" : "Puoi caricare in questa cartella",
"No ownCloud installation (7 or higher) found at {remote}" : "Nessuna installazione di ownCloud (7 o superiore) trovata su {remote}",
"Invalid ownCloud url" : "URL di ownCloud non valido",
"Share" : "Condividi",
diff --git a/apps/files_sharing/l10n/it.json b/apps/files_sharing/l10n/it.json
index a2e73bd8949..a738a79154e 100644
--- a/apps/files_sharing/l10n/it.json
+++ b/apps/files_sharing/l10n/it.json
@@ -19,6 +19,7 @@
"Remote share password" : "Password della condivisione remota",
"Cancel" : "Annulla",
"Add remote share" : "Aggiungi condivisione remota",
+ "You can upload into this folder" : "Puoi caricare in questa cartella",
"No ownCloud installation (7 or higher) found at {remote}" : "Nessuna installazione di ownCloud (7 o superiore) trovata su {remote}",
"Invalid ownCloud url" : "URL di ownCloud non valido",
"Share" : "Condividi",
diff --git a/apps/files_sharing/l10n/ko.js b/apps/files_sharing/l10n/ko.js
index cfabc03d48d..4d94b883890 100644
--- a/apps/files_sharing/l10n/ko.js
+++ b/apps/files_sharing/l10n/ko.js
@@ -56,6 +56,7 @@ OC.L10N.register(
"Download %s" : "%s 다운로드",
"Direct link" : "직접 링크",
"Federated Cloud Sharing" : "클라우드 연합 공유",
+ "Open documentation" : "문서 열기",
"Allow users on this server to send shares to other servers" : "이 서버의 사용자가 다른 서버와 공유할 수 있도록 허용",
"Allow users on this server to receive shares from other servers" : "이 서버의 사용자가 다른 서버에서 공유한 파일을 받을 수 있도록 허용"
},
diff --git a/apps/files_sharing/l10n/ko.json b/apps/files_sharing/l10n/ko.json
index 4c88707e124..cc0e793977d 100644
--- a/apps/files_sharing/l10n/ko.json
+++ b/apps/files_sharing/l10n/ko.json
@@ -54,6 +54,7 @@
"Download %s" : "%s 다운로드",
"Direct link" : "직접 링크",
"Federated Cloud Sharing" : "클라우드 연합 공유",
+ "Open documentation" : "문서 열기",
"Allow users on this server to send shares to other servers" : "이 서버의 사용자가 다른 서버와 공유할 수 있도록 허용",
"Allow users on this server to receive shares from other servers" : "이 서버의 사용자가 다른 서버에서 공유한 파일을 받을 수 있도록 허용"
},"pluralForm" :"nplurals=1; plural=0;"
diff --git a/apps/files_sharing/l10n/nl.js b/apps/files_sharing/l10n/nl.js
index 73e0ef6a802..5bebbcfdae0 100644
--- a/apps/files_sharing/l10n/nl.js
+++ b/apps/files_sharing/l10n/nl.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Remote share password" : "Wachtwoord externe share",
"Cancel" : "Annuleren",
"Add remote share" : "Toevoegen externe share",
+ "You can upload into this folder" : "U kunt uploaden naar deze map",
"No ownCloud installation (7 or higher) found at {remote}" : "Geen recente ownCloud installatie (7 of hoger) gevonden op {remote}",
"Invalid ownCloud url" : "Ongeldige ownCloud url",
"Share" : "Deel",
diff --git a/apps/files_sharing/l10n/nl.json b/apps/files_sharing/l10n/nl.json
index 30446fbb20b..e5d1d7c3a7f 100644
--- a/apps/files_sharing/l10n/nl.json
+++ b/apps/files_sharing/l10n/nl.json
@@ -19,6 +19,7 @@
"Remote share password" : "Wachtwoord externe share",
"Cancel" : "Annuleren",
"Add remote share" : "Toevoegen externe share",
+ "You can upload into this folder" : "U kunt uploaden naar deze map",
"No ownCloud installation (7 or higher) found at {remote}" : "Geen recente ownCloud installatie (7 of hoger) gevonden op {remote}",
"Invalid ownCloud url" : "Ongeldige ownCloud url",
"Share" : "Deel",
diff --git a/apps/files_sharing/l10n/pt_BR.js b/apps/files_sharing/l10n/pt_BR.js
index ece7742d2ce..308cdc4a161 100644
--- a/apps/files_sharing/l10n/pt_BR.js
+++ b/apps/files_sharing/l10n/pt_BR.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Remote share password" : "Senha do compartilhamento remoto",
"Cancel" : "Cancelar",
"Add remote share" : "Adicionar compartilhamento remoto",
+ "You can upload into this folder" : "Você não pode enviar arquivos para esta pasta",
"No ownCloud installation (7 or higher) found at {remote}" : "Nenhuma instalação ownCloud (7 ou superior) foi encontrada em {remote}",
"Invalid ownCloud url" : "Url invalida para ownCloud",
"Share" : "Compartilhar",
diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json
index b2c4db8007f..9941074430a 100644
--- a/apps/files_sharing/l10n/pt_BR.json
+++ b/apps/files_sharing/l10n/pt_BR.json
@@ -19,6 +19,7 @@
"Remote share password" : "Senha do compartilhamento remoto",
"Cancel" : "Cancelar",
"Add remote share" : "Adicionar compartilhamento remoto",
+ "You can upload into this folder" : "Você não pode enviar arquivos para esta pasta",
"No ownCloud installation (7 or higher) found at {remote}" : "Nenhuma instalação ownCloud (7 ou superior) foi encontrada em {remote}",
"Invalid ownCloud url" : "Url invalida para ownCloud",
"Share" : "Compartilhar",
diff --git a/apps/files_sharing/l10n/pt_PT.js b/apps/files_sharing/l10n/pt_PT.js
index c742b0d90be..6015d359684 100644
--- a/apps/files_sharing/l10n/pt_PT.js
+++ b/apps/files_sharing/l10n/pt_PT.js
@@ -56,6 +56,7 @@ OC.L10N.register(
"Download %s" : "Transferir %s",
"Direct link" : "Hiperligação direta",
"Federated Cloud Sharing" : "Partilha de Cloud Federada",
+ "Open documentation" : "Abrir documentação",
"Allow users on this server to send shares to other servers" : "Permitir utilizadores neste servidor para enviar as partilhas para outros servidores",
"Allow users on this server to receive shares from other servers" : "Permitir utilizadores neste servidor para receber as partilhas de outros servidores"
},
diff --git a/apps/files_sharing/l10n/pt_PT.json b/apps/files_sharing/l10n/pt_PT.json
index 37dd2267e5b..e3f95d18117 100644
--- a/apps/files_sharing/l10n/pt_PT.json
+++ b/apps/files_sharing/l10n/pt_PT.json
@@ -54,6 +54,7 @@
"Download %s" : "Transferir %s",
"Direct link" : "Hiperligação direta",
"Federated Cloud Sharing" : "Partilha de Cloud Federada",
+ "Open documentation" : "Abrir documentação",
"Allow users on this server to send shares to other servers" : "Permitir utilizadores neste servidor para enviar as partilhas para outros servidores",
"Allow users on this server to receive shares from other servers" : "Permitir utilizadores neste servidor para receber as partilhas de outros servidores"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/files_sharing/l10n/ro.js b/apps/files_sharing/l10n/ro.js
index 71e62028e49..deca9cc68e0 100644
--- a/apps/files_sharing/l10n/ro.js
+++ b/apps/files_sharing/l10n/ro.js
@@ -4,6 +4,8 @@ OC.L10N.register(
"Server to server sharing is not enabled on this server" : "Partajarea server-server nu este activată pe acest server",
"Shared with you" : "Partajat cu tine",
"Shared with others" : "Partajat cu alții",
+ "Nothing shared with you yet" : "Nimic nu e partajat cu tine încă",
+ "Nothing shared yet" : "Nimic partajat încă",
"Cancel" : "Anulare",
"Share" : "Partajează",
"Shared by" : "impartite in ",
@@ -19,6 +21,7 @@ OC.L10N.register(
"Name" : "Nume",
"Reasons might be:" : "Motive posibile ar fi:",
"the item was removed" : "acest articol a fost șters",
+ "the link expired" : "linkul a expirat",
"sharing is disabled" : "Partajare este oprită",
"Add to your ownCloud" : "Adaugă propriul tău ownCloud",
"Download" : "Descarcă",
diff --git a/apps/files_sharing/l10n/ro.json b/apps/files_sharing/l10n/ro.json
index d580052a402..62f44c6f9d1 100644
--- a/apps/files_sharing/l10n/ro.json
+++ b/apps/files_sharing/l10n/ro.json
@@ -2,6 +2,8 @@
"Server to server sharing is not enabled on this server" : "Partajarea server-server nu este activată pe acest server",
"Shared with you" : "Partajat cu tine",
"Shared with others" : "Partajat cu alții",
+ "Nothing shared with you yet" : "Nimic nu e partajat cu tine încă",
+ "Nothing shared yet" : "Nimic partajat încă",
"Cancel" : "Anulare",
"Share" : "Partajează",
"Shared by" : "impartite in ",
@@ -17,6 +19,7 @@
"Name" : "Nume",
"Reasons might be:" : "Motive posibile ar fi:",
"the item was removed" : "acest articol a fost șters",
+ "the link expired" : "linkul a expirat",
"sharing is disabled" : "Partajare este oprită",
"Add to your ownCloud" : "Adaugă propriul tău ownCloud",
"Download" : "Descarcă",
diff --git a/apps/files_sharing/l10n/sr.js b/apps/files_sharing/l10n/sr.js
index a71286a10c3..bbb29b8ff8e 100644
--- a/apps/files_sharing/l10n/sr.js
+++ b/apps/files_sharing/l10n/sr.js
@@ -21,8 +21,9 @@ OC.L10N.register(
"Remote share password" : "Лозинка удаљеног дељења",
"Cancel" : "Одустани",
"Add remote share" : "Додај удаљено дељење",
- "No ownCloud installation (7 or higher) found at {remote}" : "Нема ОунКлауд инсталације верзије 7 или више на {remote}",
- "Invalid ownCloud url" : "Неисправан ОунКлауд УРЛ",
+ "You can upload into this folder" : "Можете да отпремате у ову фасциклу",
+ "No ownCloud installation (7 or higher) found at {remote}" : "Нема оунКлауд инсталације верзије 7 или више на {remote}",
+ "Invalid ownCloud url" : "Неисправан оунКлауд УРЛ",
"Share" : "Дељење",
"Shared by" : "Дели",
"A file or folder has been <strong>shared</strong>" : "Фајл или фасцикла је <strong>дељен</strong>",
@@ -51,7 +52,7 @@ OC.L10N.register(
"the link expired" : "веза је истекла",
"sharing is disabled" : "дељење је искључено",
"For more info, please ask the person who sent this link." : "За више информација, питајте особу која вам је послала везу.",
- "Add to your ownCloud" : "Додај у свој ОунКлауд",
+ "Add to your ownCloud" : "Додај у свој оунКлауд",
"Download" : "Преузми",
"Download %s" : "Преузми %s",
"Direct link" : "Директна веза",
diff --git a/apps/files_sharing/l10n/sr.json b/apps/files_sharing/l10n/sr.json
index 711ceade23f..624449a5885 100644
--- a/apps/files_sharing/l10n/sr.json
+++ b/apps/files_sharing/l10n/sr.json
@@ -19,8 +19,9 @@
"Remote share password" : "Лозинка удаљеног дељења",
"Cancel" : "Одустани",
"Add remote share" : "Додај удаљено дељење",
- "No ownCloud installation (7 or higher) found at {remote}" : "Нема ОунКлауд инсталације верзије 7 или више на {remote}",
- "Invalid ownCloud url" : "Неисправан ОунКлауд УРЛ",
+ "You can upload into this folder" : "Можете да отпремате у ову фасциклу",
+ "No ownCloud installation (7 or higher) found at {remote}" : "Нема оунКлауд инсталације верзије 7 или више на {remote}",
+ "Invalid ownCloud url" : "Неисправан оунКлауд УРЛ",
"Share" : "Дељење",
"Shared by" : "Дели",
"A file or folder has been <strong>shared</strong>" : "Фајл или фасцикла је <strong>дељен</strong>",
@@ -49,7 +50,7 @@
"the link expired" : "веза је истекла",
"sharing is disabled" : "дељење је искључено",
"For more info, please ask the person who sent this link." : "За више информација, питајте особу која вам је послала везу.",
- "Add to your ownCloud" : "Додај у свој ОунКлауд",
+ "Add to your ownCloud" : "Додај у свој оунКлауд",
"Download" : "Преузми",
"Download %s" : "Преузми %s",
"Direct link" : "Директна веза",
diff --git a/apps/files_sharing/l10n/uk.js b/apps/files_sharing/l10n/uk.js
index 657954a5de5..5561d011710 100644
--- a/apps/files_sharing/l10n/uk.js
+++ b/apps/files_sharing/l10n/uk.js
@@ -56,6 +56,7 @@ OC.L10N.register(
"Download %s" : "Завантажити %s",
"Direct link" : "Пряме посилання",
"Federated Cloud Sharing" : "Об’єднання хмарних сховищ",
+ "Open documentation" : "Відкрити документацію",
"Allow users on this server to send shares to other servers" : "Дозволити користувачам цього сервера публікувати на інших серверах",
"Allow users on this server to receive shares from other servers" : "Дозволити користувачам на цьому сервері отримувати публікації з інших серверів"
},
diff --git a/apps/files_sharing/l10n/uk.json b/apps/files_sharing/l10n/uk.json
index d4fb8c7dfe5..13f2ac4fc6a 100644
--- a/apps/files_sharing/l10n/uk.json
+++ b/apps/files_sharing/l10n/uk.json
@@ -54,6 +54,7 @@
"Download %s" : "Завантажити %s",
"Direct link" : "Пряме посилання",
"Federated Cloud Sharing" : "Об’єднання хмарних сховищ",
+ "Open documentation" : "Відкрити документацію",
"Allow users on this server to send shares to other servers" : "Дозволити користувачам цього сервера публікувати на інших серверах",
"Allow users on this server to receive shares from other servers" : "Дозволити користувачам на цьому сервері отримувати публікації з інших серверів"
},"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/apps/files_sharing/lib/helper.php b/apps/files_sharing/lib/helper.php
index 5b5525e244f..05b0352ca1f 100644
--- a/apps/files_sharing/lib/helper.php
+++ b/apps/files_sharing/lib/helper.php
@@ -30,9 +30,7 @@ namespace OCA\Files_Sharing;
class Helper {
public static function registerHooks() {
- \OCP\Util::connectHook('OC_Filesystem', 'setup', '\OC\Files\Storage\Shared', 'setup');
\OCP\Util::connectHook('OC_Filesystem', 'setup', '\OCA\Files_Sharing\External\Manager', 'setup');
- \OCP\Util::connectHook('OC_Filesystem', 'post_write', '\OC\Files\Cache\Shared_Updater', 'writeHook');
\OCP\Util::connectHook('OC_Filesystem', 'delete', '\OC\Files\Cache\Shared_Updater', 'deleteHook');
\OCP\Util::connectHook('OC_Filesystem', 'post_rename', '\OC\Files\Cache\Shared_Updater', 'renameHook');
\OCP\Util::connectHook('OC_Filesystem', 'post_delete', '\OCA\Files_Sharing\Hooks', 'unshareChildren');
diff --git a/apps/files_sharing/lib/mountprovider.php b/apps/files_sharing/lib/mountprovider.php
new file mode 100644
index 00000000000..94fb473883d
--- /dev/null
+++ b/apps/files_sharing/lib/mountprovider.php
@@ -0,0 +1,72 @@
+<?php
+/**
+ * Copyright (c) 2015 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_Sharing;
+
+use OC\Files\Filesystem;
+use OCA\Files_Sharing\Propagation\PropagationManager;
+use OCP\Files\Config\IMountProvider;
+use OCP\Files\Storage\IStorageFactory;
+use OCP\IConfig;
+use OCP\IUser;
+
+class MountProvider implements IMountProvider {
+ /**
+ * @var \OCP\IConfig
+ */
+ protected $config;
+
+ /**
+ * @var \OCA\Files_Sharing\Propagation\PropagationManager
+ */
+ protected $propagationManager;
+
+ /**
+ * @param \OCP\IConfig $config
+ * @param \OCA\Files_Sharing\Propagation\PropagationManager $propagationManager
+ */
+ public function __construct(IConfig $config, PropagationManager $propagationManager) {
+ $this->config = $config;
+ $this->propagationManager = $propagationManager;
+ }
+
+
+ /**
+ * Get all mountpoints applicable for the user and check for shares where we need to update the etags
+ *
+ * @param \OCP\IUser $user
+ * @param \OCP\Files\Storage\IStorageFactory $storageFactory
+ * @return \OCP\Files\Mount\IMountPoint[]
+ */
+ public function getMountsForUser(IUser $user, IStorageFactory $storageFactory) {
+ $shares = \OCP\Share::getItemsSharedWithUser('file', $user->getUID());
+ $propagator = $this->propagationManager->getSharePropagator($user->getUID());
+ $propagator->propagateDirtyMountPoints($shares);
+ $shares = array_filter($shares, function ($share) {
+ return $share['permissions'] > 0;
+ });
+ return array_map(function ($share) use ($user, $storageFactory) {
+ Filesystem::initMountPoints($share['uid_owner']);
+ // for updating etags for the share owner when we make changes to this share.
+ $ownerPropagator = $this->propagationManager->getChangePropagator($share['uid_owner']);
+
+ // for updating our etags when changes are made to the share from the owners side (probably indirectly by us trough another share)
+ $this->propagationManager->listenToOwnerChanges($share['uid_owner'], $user->getUID());
+ return new SharedMount(
+ '\OC\Files\Storage\Shared',
+ '/' . $user->getUID() . '/' . $share['file_target'],
+ array(
+ 'propagator' => $ownerPropagator,
+ 'share' => $share,
+ 'user' => $user->getUID()
+ ),
+ $storageFactory
+ );
+ }, $shares);
+ }
+}
diff --git a/apps/files_sharing/lib/propagation/changewatcher.php b/apps/files_sharing/lib/propagation/changewatcher.php
new file mode 100644
index 00000000000..483f436e289
--- /dev/null
+++ b/apps/files_sharing/lib/propagation/changewatcher.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Copyright (c) 2015 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_Sharing\Propagation;
+
+use OC\Files\Cache\ChangePropagator;
+use OC\Files\Filesystem;
+use OC\Files\View;
+use OCA\Files_Sharing\SharedMount;
+
+/**
+ * Watch for changes made in a shared mount and propagate the changes to the share owner
+ */
+class ChangeWatcher {
+ /**
+ * The user view for the logged in user
+ *
+ * @var \OC\Files\View
+ */
+ private $baseView;
+
+ /**
+ * @param \OC\Files\View $baseView the view for the logged in user
+ */
+ public function __construct(View $baseView) {
+ $this->baseView = $baseView;
+ }
+
+
+ public function writeHook($params) {
+ $path = $params['path'];
+ $fullPath = $this->baseView->getAbsolutePath($path);
+ $mount = $this->baseView->getMount($path);
+ if ($mount instanceof SharedMount) {
+ $this->propagateForOwner($mount->getShare(), $mount->getInternalPath($fullPath), $mount->getOwnerPropagator());
+ }
+ }
+
+ public function renameHook($params) {
+ $path1 = $params['oldpath'];
+ $path2 = $params['newpath'];
+ $fullPath1 = $this->baseView->getAbsolutePath($path1);
+ $fullPath2 = $this->baseView->getAbsolutePath($path2);
+ $mount1 = $this->baseView->getMount($path1);
+ $mount2 = $this->baseView->getMount($path2);
+ if ($mount1 instanceof SharedMount and $mount1->getInternalPath($fullPath1) !== '') {
+ $this->propagateForOwner($mount1->getShare(), $mount1->getInternalPath($fullPath1), $mount1->getOwnerPropagator());
+ }
+ if ($mount1 !== $mount2 and $mount2 instanceof SharedMount and $mount2->getInternalPath($fullPath2) !== '') {
+ $this->propagateForOwner($mount2->getShare(), $mount2->getInternalPath($fullPath2), $mount2->getOwnerPropagator());
+ }
+ }
+
+ /**
+ * @param array $share
+ * @param string $internalPath
+ * @param \OC\Files\Cache\ChangePropagator $propagator
+ */
+ private function propagateForOwner($share, $internalPath, ChangePropagator $propagator) {
+ // note that we have already set up the filesystem for the owner when mounting the share
+ $view = new View('/' . $share['uid_owner'] . '/files');
+
+ $shareRootPath = $view->getPath($share['item_source']);
+ if (!is_null($shareRootPath)) {
+ $path = $shareRootPath . '/' . $internalPath;
+ $path = Filesystem::normalizePath($path);
+ $propagator->addChange($path);
+ $propagator->propagateChanges();
+ }
+ }
+}
diff --git a/apps/files_sharing/lib/propagation/propagationmanager.php b/apps/files_sharing/lib/propagation/propagationmanager.php
new file mode 100644
index 00000000000..fa073be7f60
--- /dev/null
+++ b/apps/files_sharing/lib/propagation/propagationmanager.php
@@ -0,0 +1,112 @@
+<?php
+/**
+ * Copyright (c) 2015 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_Sharing\Propagation;
+
+use OC\Files\Filesystem;
+use OC\Files\View;
+use OCP\IConfig;
+use OCP\IUserSession;
+
+
+/**
+ * Keep track of all change and share propagators by owner
+ */
+class PropagationManager {
+ /**
+ * @var \OCP\IUserSession
+ */
+ private $userSession;
+
+ /**
+ * @var \OCP\IConfig
+ */
+ private $config;
+
+ /**
+ * Change propagators for share owner
+ *
+ * @var \OC\Files\Cache\ChangePropagator[]
+ */
+ private $changePropagators = [];
+
+ /**
+ * Recipient propagators
+ *
+ * @var \OCA\Files_Sharing\Propagation\RecipientPropagator[]
+ */
+ private $sharePropagators = [];
+
+ public function __construct(IUserSession $userSession, IConfig $config) {
+ $this->userSession = $userSession;
+ $this->config = $config;
+ }
+
+ /**
+ * @param string $user
+ * @return \OC\Files\Cache\ChangePropagator
+ */
+ public function getChangePropagator($user) {
+ $activeUser = $this->userSession->getUser();
+
+ // for the local user we want to propagator from the active view, not any cached one
+ if ($activeUser && $activeUser->getUID() === $user && Filesystem::getView() instanceof View) {
+ // it's important that we take the existing propagator here to make sure we can listen to external changes
+ $this->changePropagators[$user] = Filesystem::getView()->getUpdater()->getPropagator();
+ }
+ if (isset($this->changePropagators[$user])) {
+ return $this->changePropagators[$user];
+ }
+ $view = new View('/' . $user . '/files');
+ $this->changePropagators[$user] = $view->getUpdater()->getPropagator();
+ return $this->changePropagators[$user];
+ }
+
+ /**
+ * @param string $user
+ * @return \OCA\Files_Sharing\Propagation\RecipientPropagator
+ */
+ public function getSharePropagator($user) {
+ if (isset($this->sharePropagators[$user])) {
+ return $this->sharePropagators[$user];
+ }
+ $this->sharePropagators[$user] = new RecipientPropagator($user, $this->getChangePropagator($user), $this->config);
+ return $this->sharePropagators[$user];
+ }
+
+ /**
+ * Attach the recipient propagator for $user to the change propagator of a share owner to mark shares as dirty when the owner makes a change to a share
+ *
+ * @param string $shareOwner
+ * @param string $user
+ */
+ public function listenToOwnerChanges($shareOwner, $user) {
+ $sharePropagator = $this->getSharePropagator($user);
+ $ownerPropagator = $this->getChangePropagator($shareOwner);
+ $sharePropagator->attachToPropagator($ownerPropagator, $shareOwner);
+ }
+
+ /**
+ * To be called from setupFS trough a hook
+ *
+ * Sets up listening to changes made to shares owned by the current user
+ */
+ public function globalSetup() {
+ $user = $this->userSession->getUser();
+ if (!$user) {
+ return;
+ }
+ $watcher = new ChangeWatcher(Filesystem::getView());
+
+ // for marking shares owned by the active user as dirty when a file inside them changes
+ $this->listenToOwnerChanges($user->getUID(), $user->getUID());
+ \OC_Hook::connect('OC_Filesystem', 'post_write', $watcher, 'writeHook');
+ \OC_Hook::connect('OC_Filesystem', 'post_delete', $watcher, 'writeHook');
+ \OC_Hook::connect('OC_Filesystem', 'post_rename', $watcher, 'renameHook');
+ }
+}
diff --git a/apps/files_sharing/lib/propagation/recipientpropagator.php b/apps/files_sharing/lib/propagation/recipientpropagator.php
new file mode 100644
index 00000000000..5b7651f2ce7
--- /dev/null
+++ b/apps/files_sharing/lib/propagation/recipientpropagator.php
@@ -0,0 +1,118 @@
+<?php
+/**
+ * Copyright (c) 2015 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_Sharing\Propagation;
+
+use OC\Files\Cache\ChangePropagator;
+use OC\Files\View;
+use OC\Share\Share;
+
+/**
+ * Propagate etags for share recipients
+ */
+class RecipientPropagator {
+ /**
+ * @var string
+ */
+ protected $userId;
+
+ /**
+ * @var \OC\Files\Cache\ChangePropagator
+ */
+ protected $changePropagator;
+
+ /**
+ * @var \OCP\IConfig
+ */
+ protected $config;
+
+ /**
+ * @param string $userId current user, must match the propagator's
+ * user
+ * @param \OC\Files\Cache\ChangePropagator $changePropagator change propagator
+ * initialized with a view for $user
+ * @param \OCP\IConfig $config
+ */
+ public function __construct($userId, $changePropagator, $config) {
+ $this->userId = $userId;
+ $this->changePropagator = $changePropagator;
+ $this->config = $config;
+ }
+
+ /**
+ * Propagate the etag changes for all shares marked as dirty and mark the shares as clean
+ *
+ * @param array $shares the shares for the users
+ * @param int $time
+ */
+ public function propagateDirtyMountPoints(array $shares, $time = null) {
+ if ($time === null) {
+ $time = microtime(true);
+ }
+ $dirtyShares = $this->getDirtyShares($shares);
+ foreach ($dirtyShares as $share) {
+ $this->changePropagator->addChange($share['file_target']);
+ }
+ if (count($dirtyShares)) {
+ $this->config->setUserValue($this->userId, 'files_sharing', 'last_propagate', $time);
+ $this->changePropagator->propagateChanges(floor($time));
+ }
+ }
+
+ /**
+ * Get all shares we need to update the etag for
+ *
+ * @param array $shares the shares for the users
+ * @return string[]
+ */
+ protected function getDirtyShares($shares) {
+ $dirty = [];
+ $userTime = $this->config->getUserValue($this->userId, 'files_sharing', 'last_propagate', 0);
+ foreach ($shares as $share) {
+ $updateTime = $this->config->getAppValue('files_sharing', $share['id'], 0);
+ if ($updateTime >= $userTime) {
+ $dirty[] = $share;
+ }
+ }
+ return $dirty;
+ }
+
+ /**
+ * @param array $share
+ * @param int $time
+ */
+ public function markDirty($share, $time = null) {
+ if ($time === null) {
+ $time = microtime(true);
+ }
+ $this->config->setAppValue('files_sharing', $share['id'], $time);
+ }
+
+ /**
+ * Listen on the propagator for updates made to shares owned by a user
+ *
+ * @param \OC\Files\Cache\ChangePropagator $propagator
+ * @param string $owner
+ */
+ public function attachToPropagator(ChangePropagator $propagator, $owner) {
+ $propagator->listen('\OC\Files', 'propagate', function ($path, $entry) use ($owner) {
+ $shares = Share::getAllSharesForFileId($entry['fileid']);
+ foreach ($shares as $share) {
+ // propagate down the share tree
+ $this->markDirty($share, microtime(true));
+
+ // propagate up the share tree
+ $user = $share['uid_owner'];
+ $view = new View('/' . $user . '/files');
+ $path = $view->getPath($share['file_source']);
+ $watcher = new ChangeWatcher($view);
+ $watcher->writeHook(['path' => $path]);
+ }
+ });
+ }
+}
diff --git a/apps/files_sharing/lib/readonlycache.php b/apps/files_sharing/lib/readonlycache.php
deleted file mode 100644
index ebef1634757..00000000000
--- a/apps/files_sharing/lib/readonlycache.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-/**
- * @author Joas Schilling <nickvergessen@owncloud.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <icewind@owncloud.com>
- *
- * @copyright Copyright (c) 2015, ownCloud, Inc.
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-
-namespace OCA\Files_Sharing;
-
-use OC\Files\Cache\Cache;
-
-class ReadOnlyCache extends Cache {
- public function get($path) {
- $data = parent::get($path);
- $data['permissions'] &= (\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE);
- return $data;
- }
-
- public function getFolderContents($path) {
- $content = parent::getFolderContents($path);
- foreach ($content as &$data) {
- $data['permissions'] &= (\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_SHARE);
- }
- return $content;
- }
-}
diff --git a/apps/files_sharing/lib/readonlywrapper.php b/apps/files_sharing/lib/readonlywrapper.php
index 067000ff47c..a5d84f7f5a2 100644
--- a/apps/files_sharing/lib/readonlywrapper.php
+++ b/apps/files_sharing/lib/readonlywrapper.php
@@ -23,7 +23,9 @@
namespace OCA\Files_Sharing;
+use OC\Files\Cache\Wrapper\CachePermissionsMask;
use OC\Files\Storage\Wrapper\Wrapper;
+use OCP\Constants;
class ReadOnlyWrapper extends Wrapper {
public function isUpdatable($path) {
@@ -66,6 +68,7 @@ class ReadOnlyWrapper extends Wrapper {
if (!$storage) {
$storage = $this;
}
- return new ReadOnlyCache($storage);
+ $sourceCache = $this->storage->getCache($path, $storage);
+ return new CachePermissionsMask($sourceCache, Constants::PERMISSION_READ | Constants::PERMISSION_SHARE);
}
}
diff --git a/apps/files_sharing/lib/sharedmount.php b/apps/files_sharing/lib/sharedmount.php
index da00549541b..15aea0aa52a 100644
--- a/apps/files_sharing/lib/sharedmount.php
+++ b/apps/files_sharing/lib/sharedmount.php
@@ -25,6 +25,7 @@ namespace OCA\Files_Sharing;
use OC\Files\Mount\MountPoint;
use OC\Files\Mount\MoveableMount;
+use OC\Files\View;
/**
* Shared mount points can be moved by the user
@@ -35,8 +36,14 @@ class SharedMount extends MountPoint implements MoveableMount {
*/
protected $storage = null;
+ /**
+ * @var \OC\Files\Cache\ChangePropagator
+ */
+ protected $ownerPropagator;
+
public function __construct($storage, $mountpoint, $arguments = null, $loader = null) {
// first update the mount point before creating the parent
+ $this->ownerPropagator = $arguments['propagator'];
$newMountPoint = $this->verifyMountPoint($arguments['share'], $arguments['user']);
$absMountPoint = '/' . $arguments['user'] . '/files' . $newMountPoint;
parent::__construct($storage, $absMountPoint, $arguments, $loader);
@@ -49,8 +56,9 @@ class SharedMount extends MountPoint implements MoveableMount {
$mountPoint = basename($share['file_target']);
$parent = dirname($share['file_target']);
+ $view = new View('/' . $user . '/files');
- if (!\OC\Files\Filesystem::is_dir($parent)) {
+ if (!$view->is_dir($parent)) {
$parent = Helper::getShareFolder();
}
@@ -174,4 +182,15 @@ class SharedMount extends MountPoint implements MoveableMount {
return $result;
}
+
+ public function getShare() {
+ return $this->getStorage()->getShare();
+ }
+
+ /**
+ * @return \OC\Files\Cache\ChangePropagator
+ */
+ public function getOwnerPropagator() {
+ return $this->ownerPropagator;
+ }
}
diff --git a/apps/files_sharing/lib/sharedstorage.php b/apps/files_sharing/lib/sharedstorage.php
index 8c2f03b1419..bc01465cb4a 100644
--- a/apps/files_sharing/lib/sharedstorage.php
+++ b/apps/files_sharing/lib/sharedstorage.php
@@ -28,8 +28,12 @@
*/
namespace OC\Files\Storage;
+
+use OC\Files\Cache\ChangePropagator;
use OC\Files\Filesystem;
+use OC\Files\View;
use OCA\Files_Sharing\ISharedStorage;
+use OCA\Files_Sharing\Propagator;
use OCA\Files_Sharing\SharedMount;
/**
@@ -47,6 +51,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
/**
* get id of the mount point
+ *
* @return string
*/
public function getId() {
@@ -55,14 +60,16 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
/**
* get file cache of the shared item source
+ *
* @return int
*/
public function getSourceId() {
- return (int) $this->share['file_source'];
+ return (int)$this->share['file_source'];
}
/**
* Get the source file path, permissions, and owner for a shared file
+ *
* @param string $target Shared target file path
* @return Returns array with the keys path, permissions, and owner or false if not found
*/
@@ -86,6 +93,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
/**
* Get the source file path for a shared file
+ *
* @param string $target Shared target file path
* @return string|false source file path or false if not found
*/
@@ -109,6 +117,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
/**
* Get the permissions granted for a shared file
+ *
* @param string $target Shared target file path
* @return int CRUDS permissions granted
*/
@@ -138,13 +147,14 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
/**
* Delete the directory if DELETE permission is granted
+ *
* @param string $path
* @return boolean
*/
public function rmdir($path) {
// never delete a share mount point
- if(empty($path)) {
+ if (empty($path)) {
return false;
}
@@ -277,6 +287,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
/**
* Delete the file if DELETE permission is granted
+ *
* @param string $path
* @return boolean
*/
@@ -426,37 +437,6 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
return false;
}
- public static function setup($options) {
- $user = $options['user'];
- $shares = \OCP\Share::getItemsSharedWithUser('file', $user);
- $manager = Filesystem::getMountManager();
- $loader = Filesystem::getLoader();
- if (
- !isset(self::$isInitialized[$user]) && (
- !\OCP\User::isLoggedIn()
- || \OCP\User::getUser() != $options['user']
- || $shares
- )
- ) {
- foreach ($shares as $share) {
- // don't mount shares where we have no permissions
- if ($share['permissions'] > 0) {
- $mount = new SharedMount(
- '\OC\Files\Storage\Shared',
- $options['user_dir'] . '/' . $share['file_target'],
- array(
- 'share' => $share,
- 'user' => $user
- ),
- $loader
- );
- $manager->addMount($mount);
- }
- }
- }
- self::$isInitialized[$user] = true;
- }
-
/**
* return mount point of share, relative to data/user/files
*
@@ -476,6 +456,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
/**
* does the group share already has a user specific unique name
+ *
* @return bool
*/
public function uniqueNameSet() {
@@ -493,6 +474,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
/**
* get share ID
+ *
* @return integer unique share ID
*/
public function getShareId() {
@@ -501,6 +483,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
/**
* get the user who shared the file
+ *
* @return string
*/
public function getSharedFrom() {
@@ -516,6 +499,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
/**
* return share type, can be "file" or "folder"
+ *
* @return string
*/
public function getItemType() {
diff --git a/apps/files_sharing/lib/updater.php b/apps/files_sharing/lib/updater.php
index 322c031f2f1..45cf662d148 100644
--- a/apps/files_sharing/lib/updater.php
+++ b/apps/files_sharing/lib/updater.php
@@ -50,47 +50,9 @@ class Shared_Updater {
}
/**
- * Correct the parent folders' ETags for all users shared the file at $target
- *
- * @param string $target
- */
- static public function correctFolders($target) {
-
- // ignore part files
- if (pathinfo($target, PATHINFO_EXTENSION) === 'part') {
- return false;
- }
-
- // Correct Shared folders of other users shared with
- $shares = \OCA\Files_Sharing\Helper::getSharesFromItem($target);
-
- foreach ($shares as $share) {
- if ((int)$share['share_type'] === \OCP\Share::SHARE_TYPE_USER) {
- self::correctUsersFolder($share['share_with'], $share['file_target']);
- } elseif ((int)$share['share_type'] === \OCP\Share::SHARE_TYPE_GROUP) {
- $users = \OC_Group::usersInGroup($share['share_with']);
- foreach ($users as $user) {
- self::correctUsersFolder($user, $share['file_target']);
- }
- } else { //unique name for group share
- self::correctUsersFolder($share['share_with'], $share['file_target']);
- }
- }
- }
-
- /**
- * @param array $params
- */
- static public function writeHook($params) {
- self::correctFolders($params['path']);
- }
-
- /**
* @param array $params
*/
static public function renameHook($params) {
- self::correctFolders($params['newpath']);
- self::correctFolders(pathinfo($params['oldpath'], PATHINFO_DIRNAME));
self::renameChildren($params['oldpath'], $params['newpath']);
}
@@ -99,7 +61,6 @@ class Shared_Updater {
*/
static public function deleteHook($params) {
$path = $params['path'];
- self::correctFolders($path);
}
/**
diff --git a/apps/files_sharing/publicwebdav.php b/apps/files_sharing/publicwebdav.php
index 3a961f5d757..3be464c64f0 100644
--- a/apps/files_sharing/publicwebdav.php
+++ b/apps/files_sharing/publicwebdav.php
@@ -56,7 +56,8 @@ $server->addPlugin(new \OC\Connector\Sabre\ExceptionLoggerPlugin('webdav', \OC::
// wait with registering these until auth is handled and the filesystem is setup
$server->on('beforeMethod', function () use ($server, $objectTree, $authBackend) {
$share = $authBackend->getShare();
- $owner = $share['uid_owner'];
+ $rootShare = \OCP\Share::resolveReShare($share);
+ $owner = $rootShare['uid_owner'];
$isWritable = $share['permissions'] & (\OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_CREATE);
$fileId = $share['file_source'];
diff --git a/apps/files_sharing/tests/cache.php b/apps/files_sharing/tests/cache.php
index 882c8afadc3..7e7e5ee26d5 100644
--- a/apps/files_sharing/tests/cache.php
+++ b/apps/files_sharing/tests/cache.php
@@ -113,7 +113,9 @@ class Test_Files_Sharing_Cache extends TestCase {
}
protected function tearDown() {
- $this->sharedCache->clear();
+ if($this->sharedCache) {
+ $this->sharedCache->clear();
+ }
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
diff --git a/apps/files_sharing/tests/controller/sharecontroller.php b/apps/files_sharing/tests/controller/sharecontroller.php
index c3bd41b0402..64ee5b8ce51 100644
--- a/apps/files_sharing/tests/controller/sharecontroller.php
+++ b/apps/files_sharing/tests/controller/sharecontroller.php
@@ -26,7 +26,7 @@
namespace OCA\Files_Sharing\Controllers;
use OC\Files\Filesystem;
-use OCA\Files_Sharing\Application;
+use OCA\Files_Sharing\AppInfo\Application;
use OCP\AppFramework\Http\NotFoundResponse;
use OCP\AppFramework\IAppContainer;
use OCP\Files;
diff --git a/apps/files_sharing/tests/etagpropagation.php b/apps/files_sharing/tests/etagpropagation.php
new file mode 100644
index 00000000000..041ed34ce11
--- /dev/null
+++ b/apps/files_sharing/tests/etagpropagation.php
@@ -0,0 +1,345 @@
+<?php
+/**
+ * @author Vincent Petry <pvince81@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OCA\Files_sharing\Tests;
+
+use OC\Files\Filesystem;
+use OC\Files\View;
+
+class EtagPropagation extends TestCase {
+ /**
+ * @var \OC\Files\View
+ */
+ private $rootView;
+ protected $fileIds = []; // [$user=>[$path=>$id]]
+ protected $fileEtags = []; // [$id=>$etag]
+
+ protected function setUp() {
+ parent::setUp();
+ $this->setUpShares();
+ }
+
+ protected function tearDown() {
+ \OC_Hook::clear('OC_Filesystem', 'post_write');
+ \OC_Hook::clear('OC_Filesystem', 'post_delete');
+ \OC_Hook::clear('OC_Filesystem', 'post_rename');
+ parent::tearDown();
+ }
+
+ /**
+ * "user1" is the admin who shares a folder "sub1/sub2/folder" with "user2" and "user3"
+ * "user2" receives the folder and puts it in "sub1/sub2/folder"
+ * "user3" receives the folder and puts it in "sub1/sub2/folder"
+ * "user2" reshares the subdir "sub1/sub2/folder/inside" with "user4"
+ * "user4" puts the received "inside" folder into "sub1/sub2/inside" (this is to check if it propagates across multiple subfolders)
+ */
+ private function setUpShares() {
+ $this->fileIds[self::TEST_FILES_SHARING_API_USER1] = [];
+ $this->fileIds[self::TEST_FILES_SHARING_API_USER2] = [];
+ $this->fileIds[self::TEST_FILES_SHARING_API_USER3] = [];
+ $this->fileIds[self::TEST_FILES_SHARING_API_USER4] = [];
+
+ $this->rootView = new View('');
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
+ $view1 = new View('/' . self::TEST_FILES_SHARING_API_USER1 . '/files');
+ $view1->mkdir('/sub1/sub2/folder/inside');
+ $view1->mkdir('/directReshare');
+ $view1->mkdir('/sub1/sub2/folder/other');
+ $view1->mkdir('/sub1/sub2/folder/other');
+ $view1->file_put_contents('/sub1/sub2/folder/file.txt', 'foobar');
+ $view1->file_put_contents('/sub1/sub2/folder/inside/file.txt', 'foobar');
+ $folderInfo = $view1->getFileInfo('/sub1/sub2/folder');
+ \OCP\Share::shareItem('folder', $folderInfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, 31);
+ \OCP\Share::shareItem('folder', $folderInfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER3, 31);
+ $folderInfo = $view1->getFileInfo('/directReshare');
+ \OCP\Share::shareItem('folder', $folderInfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, 31);
+ $this->fileIds[self::TEST_FILES_SHARING_API_USER1][''] = $view1->getFileInfo('')->getId();
+ $this->fileIds[self::TEST_FILES_SHARING_API_USER1]['sub1'] = $view1->getFileInfo('sub1')->getId();
+ $this->fileIds[self::TEST_FILES_SHARING_API_USER1]['sub1/sub2'] = $view1->getFileInfo('sub1/sub2')->getId();
+
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
+ $view2 = new View('/' . self::TEST_FILES_SHARING_API_USER2 . '/files');
+ $view2->mkdir('/sub1/sub2');
+ $view2->rename('/folder', '/sub1/sub2/folder');
+ $insideInfo = $view2->getFileInfo('/sub1/sub2/folder/inside');
+ \OCP\Share::shareItem('folder', $insideInfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER4, 31);
+ $folderInfo = $view2->getFileInfo('/directReshare');
+ \OCP\Share::shareItem('folder', $folderInfo->getId(), \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER4, 31);
+ $this->fileIds[self::TEST_FILES_SHARING_API_USER2][''] = $view2->getFileInfo('')->getId();
+ $this->fileIds[self::TEST_FILES_SHARING_API_USER2]['sub1'] = $view2->getFileInfo('sub1')->getId();
+ $this->fileIds[self::TEST_FILES_SHARING_API_USER2]['sub1/sub2'] = $view2->getFileInfo('sub1/sub2')->getId();
+
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER3);
+ $view3 = new View('/' . self::TEST_FILES_SHARING_API_USER3 . '/files');
+ $view3->mkdir('/sub1/sub2');
+ $view3->rename('/folder', '/sub1/sub2/folder');
+ $this->fileIds[self::TEST_FILES_SHARING_API_USER3][''] = $view3->getFileInfo('')->getId();
+ $this->fileIds[self::TEST_FILES_SHARING_API_USER3]['sub1'] = $view3->getFileInfo('sub1')->getId();
+ $this->fileIds[self::TEST_FILES_SHARING_API_USER3]['sub1/sub2'] = $view3->getFileInfo('sub1/sub2')->getId();
+
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER4);
+ $view4 = new View('/' . self::TEST_FILES_SHARING_API_USER4 . '/files');
+ $view4->mkdir('/sub1/sub2');
+ $view4->rename('/inside', '/sub1/sub2/inside');
+ $this->fileIds[self::TEST_FILES_SHARING_API_USER4][''] = $view4->getFileInfo('')->getId();
+ $this->fileIds[self::TEST_FILES_SHARING_API_USER4]['sub1'] = $view4->getFileInfo('sub1')->getId();
+ $this->fileIds[self::TEST_FILES_SHARING_API_USER4]['sub1/sub2'] = $view4->getFileInfo('sub1/sub2')->getId();
+
+ foreach ($this->fileIds as $user => $ids) {
+ $this->loginAsUser($user);
+ foreach ($ids as $id) {
+ $path = $this->rootView->getPath($id);
+ $this->fileEtags[$id] = $this->rootView->getFileInfo($path)->getEtag();
+ }
+ }
+ }
+
+ /**
+ * @param string[] $users
+ * @param string $subPath
+ */
+ private function assertEtagsChanged($users, $subPath = '') {
+ $oldUser = \OC::$server->getUserSession()->getUser();
+ foreach ($users as $user) {
+ $this->loginAsUser($user);
+ $id = $this->fileIds[$user][$subPath];
+ $path = $this->rootView->getPath($id);
+ $etag = $this->rootView->getFileInfo($path)->getEtag();
+ $this->assertNotEquals($this->fileEtags[$id], $etag, 'Failed asserting that the etag for "' . $subPath . '" of user ' . $user . ' has changed');
+ $this->fileEtags[$id] = $etag;
+ }
+ $this->loginAsUser($oldUser->getUID());
+ }
+
+ /**
+ * @param string[] $users
+ * @param string $subPath
+ */
+ private function assertEtagsNotChanged($users, $subPath = '') {
+ $oldUser = \OC::$server->getUserSession()->getUser();
+ foreach ($users as $user) {
+ $this->loginAsUser($user);
+ $id = $this->fileIds[$user][$subPath];
+ $path = $this->rootView->getPath($id);
+ $etag = $this->rootView->getFileInfo($path)->getEtag();
+ $this->assertEquals($this->fileEtags[$id], $etag, 'Failed asserting that the etag for "' . $subPath . '" of user ' . $user . ' has not changed');
+ $this->fileEtags[$id] = $etag;
+ }
+ $this->loginAsUser($oldUser->getUID());
+ }
+
+ /**
+ * Assert that the etags for the root, /sub1 and /sub1/sub2 have changed
+ *
+ * @param string[] $users
+ */
+ private function assertEtagsForFoldersChanged($users) {
+ $this->assertEtagsChanged($users);
+
+ $this->assertEtagsChanged($users, 'sub1');
+ $this->assertEtagsChanged($users, 'sub1/sub2');
+ }
+
+ private function assertAllUnchaged() {
+ $users = [self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
+ self::TEST_FILES_SHARING_API_USER3, self::TEST_FILES_SHARING_API_USER4];
+ $this->assertEtagsNotChanged($users);
+ }
+
+ public function testOwnerWritesToShare() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
+ Filesystem::file_put_contents('/sub1/sub2/folder/asd.txt', 'bar');
+ $this->assertEtagsNotChanged([self::TEST_FILES_SHARING_API_USER4]);
+ $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
+ self::TEST_FILES_SHARING_API_USER3]);
+
+ $this->assertAllUnchaged();
+ }
+
+ public function testOwnerWritesToShareWithReshare() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
+ Filesystem::file_put_contents('/sub1/sub2/folder/inside/bar.txt', 'bar');
+ $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
+ self::TEST_FILES_SHARING_API_USER3, self::TEST_FILES_SHARING_API_USER4]);
+
+ $this->assertAllUnchaged();
+ }
+
+ public function testOwnerRenameInShare() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
+ $this->assertEtagsNotChanged([self::TEST_FILES_SHARING_API_USER4]);
+ Filesystem::rename('/sub1/sub2/folder/file.txt', '/sub1/sub2/folder/renamed.txt');
+ $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
+ self::TEST_FILES_SHARING_API_USER3]);
+
+ $this->assertAllUnchaged();
+ }
+
+ public function testOwnerRenameInReShare() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
+ Filesystem::rename('/sub1/sub2/folder/inside/file.txt', '/sub1/sub2/folder/inside/renamed.txt');
+ $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
+ self::TEST_FILES_SHARING_API_USER3, self::TEST_FILES_SHARING_API_USER4]);
+
+ $this->assertAllUnchaged();
+ }
+
+ public function testOwnerRenameIntoReShare() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
+ Filesystem::rename('/sub1/sub2/folder/file.txt', '/sub1/sub2/folder/inside/renamed.txt');
+ $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
+ self::TEST_FILES_SHARING_API_USER3, self::TEST_FILES_SHARING_API_USER4]);
+
+ $this->assertAllUnchaged();
+ }
+
+ public function testOwnerRenameOutOfReShare() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
+ Filesystem::rename('/sub1/sub2/folder/inside/file.txt', '/sub1/sub2/folder/renamed.txt');
+ $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
+ self::TEST_FILES_SHARING_API_USER3, self::TEST_FILES_SHARING_API_USER4]);
+
+ $this->assertAllUnchaged();
+ }
+
+ public function testOwnerDeleteInShare() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
+ Filesystem::unlink('/sub1/sub2/folder/file.txt');
+ $this->assertEtagsNotChanged([self::TEST_FILES_SHARING_API_USER4]);
+ $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
+ self::TEST_FILES_SHARING_API_USER3]);
+
+ $this->assertAllUnchaged();
+ }
+
+ public function testOwnerDeleteInReShare() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER1);
+ Filesystem::unlink('/sub1/sub2/folder/inside/file.txt');
+ $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
+ self::TEST_FILES_SHARING_API_USER3, self::TEST_FILES_SHARING_API_USER4]);
+
+ $this->assertAllUnchaged();
+ }
+
+ public function testRecipientWritesToShare() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
+ Filesystem::file_put_contents('/sub1/sub2/folder/asd.txt', 'bar');
+ $this->assertEtagsNotChanged([self::TEST_FILES_SHARING_API_USER4]);
+ $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
+ self::TEST_FILES_SHARING_API_USER3]);
+
+ $this->assertAllUnchaged();
+ }
+
+ public function testRecipientWritesToReshare() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
+ Filesystem::file_put_contents('/sub1/sub2/folder/inside/asd.txt', 'bar');
+ $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
+ self::TEST_FILES_SHARING_API_USER3, self::TEST_FILES_SHARING_API_USER4]);
+
+ $this->assertAllUnchaged();
+ }
+
+ public function testRecipientWritesToOtherRecipientsReshare() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER3);
+ Filesystem::file_put_contents('/sub1/sub2/folder/inside/asd.txt', 'bar');
+ $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
+ self::TEST_FILES_SHARING_API_USER3, self::TEST_FILES_SHARING_API_USER4]);
+
+ $this->assertAllUnchaged();
+ }
+
+ public function testRecipientRenameInShare() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
+ Filesystem::rename('/sub1/sub2/folder/file.txt', '/sub1/sub2/folder/renamed.txt');
+ $this->assertEtagsNotChanged([self::TEST_FILES_SHARING_API_USER4]);
+ $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
+ self::TEST_FILES_SHARING_API_USER3]);
+
+ $this->assertAllUnchaged();
+ }
+
+ public function testRecipientRenameInReShare() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
+ Filesystem::rename('/sub1/sub2/folder/inside/file.txt', '/sub1/sub2/folder/inside/renamed.txt');
+ $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
+ self::TEST_FILES_SHARING_API_USER3, self::TEST_FILES_SHARING_API_USER4]);
+
+ $this->assertAllUnchaged();
+ }
+
+ public function testRecipientRenameResharedFolder() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
+ Filesystem::rename('/directReshare', '/sub1/directReshare');
+ $this->assertEtagsNotChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER3, self::TEST_FILES_SHARING_API_USER4]);
+ $this->assertEtagsChanged([self::TEST_FILES_SHARING_API_USER2]);
+
+ $this->assertEtagsChanged([self::TEST_FILES_SHARING_API_USER2], 'sub1');
+
+ $this->assertAllUnchaged();
+ }
+
+ public function testRecipientDeleteInShare() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
+ Filesystem::unlink('/sub1/sub2/folder/file.txt');
+ $this->assertEtagsNotChanged([self::TEST_FILES_SHARING_API_USER4]);
+ $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
+ self::TEST_FILES_SHARING_API_USER3]);
+
+ $this->assertAllUnchaged();
+ }
+
+ public function testRecipientDeleteInReShare() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER2);
+ Filesystem::unlink('/sub1/sub2/folder/inside/file.txt');
+ $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
+ self::TEST_FILES_SHARING_API_USER3, self::TEST_FILES_SHARING_API_USER4]);
+
+ $this->assertAllUnchaged();
+ }
+
+ public function testReshareRecipientWritesToReshare() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER4);
+ Filesystem::file_put_contents('/sub1/sub2/inside/asd.txt', 'bar');
+ $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
+ self::TEST_FILES_SHARING_API_USER3, self::TEST_FILES_SHARING_API_USER4]);
+
+ $this->assertAllUnchaged();
+ }
+
+ public function testReshareRecipientRenameInReShare() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER4);
+ Filesystem::rename('/sub1/sub2/inside/file.txt', '/sub1/sub2/inside/renamed.txt');
+ $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
+ self::TEST_FILES_SHARING_API_USER3, self::TEST_FILES_SHARING_API_USER4]);
+
+ $this->assertAllUnchaged();
+ }
+
+ public function testReshareRecipientDeleteInReShare() {
+ $this->loginAsUser(self::TEST_FILES_SHARING_API_USER4);
+ Filesystem::unlink('/sub1/sub2/inside/file.txt');
+ $this->assertEtagsForFoldersChanged([self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER2,
+ self::TEST_FILES_SHARING_API_USER3, self::TEST_FILES_SHARING_API_USER4]);
+
+ $this->assertAllUnchaged();
+ }
+}
diff --git a/apps/files_sharing/tests/permissions.php b/apps/files_sharing/tests/permissions.php
index 92703f4a905..91f0347163a 100644
--- a/apps/files_sharing/tests/permissions.php
+++ b/apps/files_sharing/tests/permissions.php
@@ -103,7 +103,9 @@ class Test_Files_Sharing_Permissions extends OCA\Files_sharing\Tests\TestCase {
}
protected function tearDown() {
- $this->sharedCache->clear();
+ if ($this->sharedCache) {
+ $this->sharedCache->clear();
+ }
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
diff --git a/apps/files_sharing/tests/sharedstorage.php b/apps/files_sharing/tests/sharedstorage.php
index a1469a74687..7c28d0431e1 100644
--- a/apps/files_sharing/tests/sharedstorage.php
+++ b/apps/files_sharing/tests/sharedstorage.php
@@ -368,7 +368,10 @@ class Test_Files_Sharing_Storage extends OCA\Files_sharing\Tests\TestCase {
self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
$this->assertTrue($rootView->file_exists('/' . self::TEST_FILES_SHARING_API_USER2 . '/files/' . $this->folder));
- OC_Hook::emit('OC_Filesystem', 'setup', array('user' => self::TEST_FILES_SHARING_API_USER3, 'user_dir' => \OC_User::getHome(self::TEST_FILES_SHARING_API_USER3)));
+
+ $mountConfigManager = \OC::$server->getMountProviderCollection();
+ $mounts = $mountConfigManager->getMountsForUser(\OC::$server->getUserManager()->get(self::TEST_FILES_SHARING_API_USER3));
+ array_walk($mounts, array(\OC\Files\Filesystem::getMountManager(), 'addMount'));
$this->assertTrue($rootView->file_exists('/' . self::TEST_FILES_SHARING_API_USER3 . '/files/' . $this->filename));
diff --git a/apps/files_sharing/tests/propagation.php b/apps/files_sharing/tests/sizepropagation.php
index 546f67556f2..4ab3475ccfc 100644
--- a/apps/files_sharing/tests/propagation.php
+++ b/apps/files_sharing/tests/sizepropagation.php
@@ -19,11 +19,11 @@
*
*/
-namespace OCA\Files_Sharing\Tests;
+namespace OCA\Files_sharing\Tests;
use OC\Files\View;
-class Propagation extends TestCase {
+class SizePropagation extends TestCase {
public function testSizePropagationWhenOwnerChangesFile() {
$this->loginHelper(self::TEST_FILES_SHARING_API_USER1);
diff --git a/apps/files_sharing/tests/testcase.php b/apps/files_sharing/tests/testcase.php
index b9f8658a69e..b9e9f077201 100644
--- a/apps/files_sharing/tests/testcase.php
+++ b/apps/files_sharing/tests/testcase.php
@@ -31,6 +31,7 @@ namespace OCA\Files_Sharing\Tests;
use OC\Files\Filesystem;
use OCA\Files\Share;
+use OCA\Files_Sharing\Appinfo\Application;
/**
* Class Test_Files_Sharing_Base
@@ -42,6 +43,7 @@ abstract class TestCase extends \Test\TestCase {
const TEST_FILES_SHARING_API_USER1 = "test-share-user1";
const TEST_FILES_SHARING_API_USER2 = "test-share-user2";
const TEST_FILES_SHARING_API_USER3 = "test-share-user3";
+ const TEST_FILES_SHARING_API_USER4 = "test-share-user4";
const TEST_FILES_SHARING_API_GROUP1 = "test-share-group1";
@@ -57,6 +59,10 @@ abstract class TestCase extends \Test\TestCase {
public static function setUpBeforeClass() {
parent::setUpBeforeClass();
+ $application = new Application();
+ $application->registerMountProviders();
+ $application->setupPropagation();
+
// reset backend
\OC_User::clearBackends();
\OC_Group::clearBackends();
@@ -64,7 +70,6 @@ abstract class TestCase extends \Test\TestCase {
// clear share hooks
\OC_Hook::clear('OCP\\Share');
\OC::registerShareHooks();
- \OCP\Util::connectHook('OC_Filesystem', 'setup', '\OC\Files\Storage\Shared', 'setup');
// create users
$backend = new \OC_User_Dummy();
@@ -72,6 +77,7 @@ abstract class TestCase extends \Test\TestCase {
$backend->createUser(self::TEST_FILES_SHARING_API_USER1, self::TEST_FILES_SHARING_API_USER1);
$backend->createUser(self::TEST_FILES_SHARING_API_USER2, self::TEST_FILES_SHARING_API_USER2);
$backend->createUser(self::TEST_FILES_SHARING_API_USER3, self::TEST_FILES_SHARING_API_USER3);
+ $backend->createUser(self::TEST_FILES_SHARING_API_USER4, self::TEST_FILES_SHARING_API_USER4);
// create group
$groupBackend = new \OC_Group_Dummy();
@@ -147,6 +153,7 @@ abstract class TestCase extends \Test\TestCase {
\OC::$server->getUserSession()->setUser(null);
\OC\Files\Filesystem::tearDown();
\OC::$server->getUserSession()->login($user, $password);
+
\OC_Util::setupFS($user);
}
diff --git a/apps/files_sharing/tests/watcher.php b/apps/files_sharing/tests/watcher.php
index a2e440069a4..4af5de6aaae 100644
--- a/apps/files_sharing/tests/watcher.php
+++ b/apps/files_sharing/tests/watcher.php
@@ -76,7 +76,9 @@ class Test_Files_Sharing_Watcher extends OCA\Files_sharing\Tests\TestCase {
}
protected function tearDown() {
- $this->sharedCache->clear();
+ if ($this->sharedCache) {
+ $this->sharedCache->clear();
+ }
self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
diff --git a/apps/files_trashbin/appinfo/routes.php b/apps/files_trashbin/appinfo/routes.php
index 05b082002a5..526ad1d4e35 100644
--- a/apps/files_trashbin/appinfo/routes.php
+++ b/apps/files_trashbin/appinfo/routes.php
@@ -34,4 +34,4 @@ $this->create('files_trashbin_ajax_undelete', 'ajax/undelete.php')
// Register with the capabilities API
-\OC_API::register('get', '/cloud/capabilities', array('OCA\Files_Trashbin\Capabilities', 'getCapabilities'), 'files_trashbin', \OC_API::USER_AUTH);
+\OCP\API::register('get', '/cloud/capabilities', array('OCA\Files_Trashbin\Capabilities', 'getCapabilities'), 'files_trashbin', \OCP\API::USER_AUTH);
diff --git a/apps/files_trashbin/command/expire.php b/apps/files_trashbin/command/expire.php
index f0526d42830..e617fa47c90 100644
--- a/apps/files_trashbin/command/expire.php
+++ b/apps/files_trashbin/command/expire.php
@@ -52,5 +52,6 @@ class Expire implements ICommand {
\OC_Util::tearDownFS();
\OC_Util::setupFS($this->user);
Trashbin::expire($this->trashBinSize, $this->user);
+ \OC_Util::tearDownFS();
}
}
diff --git a/apps/files_trashbin/l10n/et_EE.js b/apps/files_trashbin/l10n/et_EE.js
index 58da11098a7..6ffc04efadb 100644
--- a/apps/files_trashbin/l10n/et_EE.js
+++ b/apps/files_trashbin/l10n/et_EE.js
@@ -8,6 +8,8 @@ OC.L10N.register(
"Delete permanently" : "Kustuta jäädavalt",
"Error" : "Viga",
"restored" : "taastatud",
+ "No entries found in this folder" : "Selles kaustas ei leitud kirjeid",
+ "Select all" : "Vali kõik",
"Name" : "Nimi",
"Deleted" : "Kustutatud",
"Delete" : "Kustuta"
diff --git a/apps/files_trashbin/l10n/et_EE.json b/apps/files_trashbin/l10n/et_EE.json
index 6f5a83792b7..c5c55a520f7 100644
--- a/apps/files_trashbin/l10n/et_EE.json
+++ b/apps/files_trashbin/l10n/et_EE.json
@@ -6,6 +6,8 @@
"Delete permanently" : "Kustuta jäädavalt",
"Error" : "Viga",
"restored" : "taastatud",
+ "No entries found in this folder" : "Selles kaustas ei leitud kirjeid",
+ "Select all" : "Vali kõik",
"Name" : "Nimi",
"Deleted" : "Kustutatud",
"Delete" : "Kustuta"
diff --git a/apps/files_trashbin/l10n/ro.js b/apps/files_trashbin/l10n/ro.js
index 0feb1e8e721..89fb577014e 100644
--- a/apps/files_trashbin/l10n/ro.js
+++ b/apps/files_trashbin/l10n/ro.js
@@ -1,11 +1,17 @@
OC.L10N.register(
"files_trashbin",
{
+ "Couldn't delete %s permanently" : "Nu pot șterge %s permanent.",
+ "Couldn't restore %s" : "Nu se poate recupera %s",
"Deleted files" : "Sterge fisierele",
"Restore" : "Restabilire",
"Delete permanently" : "Șterge permanent",
"Error" : "Eroare",
+ "restored" : "restaurat",
+ "No deleted files" : "Nu sunt fișiere șterse",
+ "Select all" : "Selectează tot",
"Name" : "Nume",
+ "Deleted" : "A fost șters.",
"Delete" : "Șterge"
},
"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/files_trashbin/l10n/ro.json b/apps/files_trashbin/l10n/ro.json
index 758dc748460..6a68abae7fa 100644
--- a/apps/files_trashbin/l10n/ro.json
+++ b/apps/files_trashbin/l10n/ro.json
@@ -1,9 +1,15 @@
{ "translations": {
+ "Couldn't delete %s permanently" : "Nu pot șterge %s permanent.",
+ "Couldn't restore %s" : "Nu se poate recupera %s",
"Deleted files" : "Sterge fisierele",
"Restore" : "Restabilire",
"Delete permanently" : "Șterge permanent",
"Error" : "Eroare",
+ "restored" : "restaurat",
+ "No deleted files" : "Nu sunt fișiere șterse",
+ "Select all" : "Selectează tot",
"Name" : "Nume",
+ "Deleted" : "A fost șters.",
"Delete" : "Șterge"
},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
} \ No newline at end of file
diff --git a/apps/files_trashbin/lib/storage.php b/apps/files_trashbin/lib/storage.php
index 61e0816fd24..418d7d2f1fd 100644
--- a/apps/files_trashbin/lib/storage.php
+++ b/apps/files_trashbin/lib/storage.php
@@ -84,7 +84,10 @@ class Storage extends Wrapper {
* @param string $path
*/
public function unlink($path) {
- if (self::$disableTrash || !\OC_App::isEnabled('files_trashbin')) {
+ if (self::$disableTrash
+ || !\OC_App::isEnabled('files_trashbin')
+ || (pathinfo($path, PATHINFO_EXTENSION) === 'part')
+ ) {
return $this->storage->unlink($path);
}
$normalized = Filesystem::normalizePath($this->mountPoint . '/' . $path);
diff --git a/apps/files_trashbin/tests/trashbin.php b/apps/files_trashbin/tests/trashbin.php
index bf6446389f1..a2e1a9addf6 100644
--- a/apps/files_trashbin/tests/trashbin.php
+++ b/apps/files_trashbin/tests/trashbin.php
@@ -54,7 +54,9 @@ class Test_Trashbin extends \Test\TestCase {
// clear share hooks
\OC_Hook::clear('OCP\\Share');
\OC::registerShareHooks();
- \OCP\Util::connectHook('OC_Filesystem', 'setup', '\OC\Files\Storage\Shared', 'setup');
+ $application = new \OCA\Files_Sharing\AppInfo\Application();
+ $application->registerMountProviders();
+ $application->setupPropagation();
//disable encryption
\OC_App::disable('files_encryption');
diff --git a/apps/files_versions/appinfo/routes.php b/apps/files_versions/appinfo/routes.php
index 9a9bd5bd655..0ea37d3b1b1 100644
--- a/apps/files_versions/appinfo/routes.php
+++ b/apps/files_versions/appinfo/routes.php
@@ -38,4 +38,4 @@ $this->create('files_versions_ajax_rollbackVersion', 'ajax/rollbackVersion.php')
->actionInclude('files_versions/ajax/rollbackVersion.php');
// Register with the capabilities API
-OC_API::register('get', '/cloud/capabilities', array('OCA\Files_Versions\Capabilities', 'getCapabilities'), 'files_versions', OC_API::USER_AUTH);
+\OCP\API::register('get', '/cloud/capabilities', array('OCA\Files_Versions\Capabilities', 'getCapabilities'), 'files_versions', \OCP\API::USER_AUTH);
diff --git a/apps/files_versions/tests/versions.php b/apps/files_versions/tests/versions.php
index f8bfe38df4d..ff088ffdad3 100644
--- a/apps/files_versions/tests/versions.php
+++ b/apps/files_versions/tests/versions.php
@@ -47,7 +47,9 @@ class Test_Files_Versioning extends \Test\TestCase {
\OC_Hook::clear('OCP\\Share');
\OC::registerShareHooks();
\OCA\Files_Versions\Hooks::connectHooks();
- \OCP\Util::connectHook('OC_Filesystem', 'setup', '\OC\Files\Storage\Shared', 'setup');
+ $application = new \OCA\Files_Sharing\AppInfo\Application();
+ $application->registerMountProviders();
+ $application->setupPropagation();
// create test user
self::loginHelper(self::TEST_VERSIONS_USER2, true);
diff --git a/apps/provisioning_api/appinfo/routes.php b/apps/provisioning_api/appinfo/routes.php
index 756822bc7e1..87f073f82b0 100644
--- a/apps/provisioning_api/appinfo/routes.php
+++ b/apps/provisioning_api/appinfo/routes.php
@@ -21,27 +21,29 @@
*/
// Users
-OCP\API::register('get', '/cloud/users', array('OCA\Provisioning_API\Users', 'getUsers'), 'provisioning_api', OC_API::ADMIN_AUTH);
-OCP\API::register('post', '/cloud/users', array('OCA\Provisioning_API\Users', 'addUser'), 'provisioning_api', OC_API::ADMIN_AUTH);
-OCP\API::register('get', '/cloud/users/{userid}', array('OCA\Provisioning_API\Users', 'getUser'), 'provisioning_api', OC_API::USER_AUTH);
-OCP\API::register('put', '/cloud/users/{userid}', array('OCA\Provisioning_API\Users', 'editUser'), 'provisioning_api', OC_API::USER_AUTH);
-OCP\API::register('delete', '/cloud/users/{userid}', array('OCA\Provisioning_API\Users', 'deleteUser'), 'provisioning_api', OC_API::SUBADMIN_AUTH);
-OCP\API::register('get', '/cloud/users/{userid}/groups', array('OCA\Provisioning_API\Users', 'getUsersGroups'), 'provisioning_api', OC_API::USER_AUTH);
-OCP\API::register('post', '/cloud/users/{userid}/groups', array('OCA\Provisioning_API\Users', 'addToGroup'), 'provisioning_api', OC_API::SUBADMIN_AUTH);
-OCP\API::register('delete', '/cloud/users/{userid}/groups', array('OCA\Provisioning_API\Users', 'removeFromGroup'), 'provisioning_api', OC_API::SUBADMIN_AUTH);
-OCP\API::register('post', '/cloud/users/{userid}/subadmins', array('OCA\Provisioning_API\Users', 'addSubAdmin'), 'provisioning_api', OC_API::ADMIN_AUTH);
-OCP\API::register('delete', '/cloud/users/{userid}/subadmins', array('OCA\Provisioning_API\Users', 'removeSubAdmin'), 'provisioning_api', OC_API::ADMIN_AUTH);
-OCP\API::register('get', '/cloud/users/{userid}/subadmins', array('OCA\Provisioning_API\Users', 'getUserSubAdminGroups'), 'provisioning_api', OC_API::ADMIN_AUTH);
+use OCP\API;
+
+API::register('get', '/cloud/users', array('OCA\Provisioning_API\Users', 'getUsers'), 'provisioning_api', API::ADMIN_AUTH);
+API::register('post', '/cloud/users', array('OCA\Provisioning_API\Users', 'addUser'), 'provisioning_api', API::ADMIN_AUTH);
+API::register('get', '/cloud/users/{userid}', array('OCA\Provisioning_API\Users', 'getUser'), 'provisioning_api', API::USER_AUTH);
+API::register('put', '/cloud/users/{userid}', array('OCA\Provisioning_API\Users', 'editUser'), 'provisioning_api', API::USER_AUTH);
+API::register('delete', '/cloud/users/{userid}', array('OCA\Provisioning_API\Users', 'deleteUser'), 'provisioning_api', API::SUBADMIN_AUTH);
+API::register('get', '/cloud/users/{userid}/groups', array('OCA\Provisioning_API\Users', 'getUsersGroups'), 'provisioning_api', API::USER_AUTH);
+API::register('post', '/cloud/users/{userid}/groups', array('OCA\Provisioning_API\Users', 'addToGroup'), 'provisioning_api', API::SUBADMIN_AUTH);
+API::register('delete', '/cloud/users/{userid}/groups', array('OCA\Provisioning_API\Users', 'removeFromGroup'), 'provisioning_api', API::SUBADMIN_AUTH);
+API::register('post', '/cloud/users/{userid}/subadmins', array('OCA\Provisioning_API\Users', 'addSubAdmin'), 'provisioning_api', API::ADMIN_AUTH);
+API::register('delete', '/cloud/users/{userid}/subadmins', array('OCA\Provisioning_API\Users', 'removeSubAdmin'), 'provisioning_api', API::ADMIN_AUTH);
+API::register('get', '/cloud/users/{userid}/subadmins', array('OCA\Provisioning_API\Users', 'getUserSubAdminGroups'), 'provisioning_api', API::ADMIN_AUTH);
// Groups
-OCP\API::register('get', '/cloud/groups', array('OCA\Provisioning_API\Groups', 'getGroups'), 'provisioning_api', OC_API::SUBADMIN_AUTH);
-OCP\API::register('post', '/cloud/groups', array('OCA\Provisioning_API\Groups', 'addGroup'), 'provisioning_api', OC_API::SUBADMIN_AUTH);
-OCP\API::register('get', '/cloud/groups/{groupid}', array('OCA\Provisioning_API\Groups', 'getGroup'), 'provisioning_api', OC_API::SUBADMIN_AUTH);
-OCP\API::register('delete', '/cloud/groups/{groupid}', array('OCA\Provisioning_API\Groups', 'deleteGroup'), 'provisioning_api', OC_API::ADMIN_AUTH);
-OCP\API::register('get', '/cloud/groups/{groupid}/subadmins', array('OCA\Provisioning_API\Groups', 'getSubAdminsOfGroup'), 'provisioning_api', OC_API::ADMIN_AUTH);
+API::register('get', '/cloud/groups', array('OCA\Provisioning_API\Groups', 'getGroups'), 'provisioning_api', API::SUBADMIN_AUTH);
+API::register('post', '/cloud/groups', array('OCA\Provisioning_API\Groups', 'addGroup'), 'provisioning_api', API::SUBADMIN_AUTH);
+API::register('get', '/cloud/groups/{groupid}', array('OCA\Provisioning_API\Groups', 'getGroup'), 'provisioning_api', API::SUBADMIN_AUTH);
+API::register('delete', '/cloud/groups/{groupid}', array('OCA\Provisioning_API\Groups', 'deleteGroup'), 'provisioning_api', API::ADMIN_AUTH);
+API::register('get', '/cloud/groups/{groupid}/subadmins', array('OCA\Provisioning_API\Groups', 'getSubAdminsOfGroup'), 'provisioning_api', API::ADMIN_AUTH);
// Apps
-OCP\API::register('get', '/cloud/apps', array('OCA\Provisioning_API\Apps', 'getApps'), 'provisioning_api', OC_API::ADMIN_AUTH);
-OCP\API::register('get', '/cloud/apps/{appid}', array('OCA\Provisioning_API\Apps', 'getAppInfo'), 'provisioning_api', OC_API::ADMIN_AUTH);
-OCP\API::register('post', '/cloud/apps/{appid}', array('OCA\Provisioning_API\Apps', 'enable'), 'provisioning_api', OC_API::ADMIN_AUTH);
-OCP\API::register('delete', '/cloud/apps/{appid}', array('OCA\Provisioning_API\Apps', 'disable'), 'provisioning_api', OC_API::ADMIN_AUTH);
+API::register('get', '/cloud/apps', array('OCA\Provisioning_API\Apps', 'getApps'), 'provisioning_api', API::ADMIN_AUTH);
+API::register('get', '/cloud/apps/{appid}', array('OCA\Provisioning_API\Apps', 'getAppInfo'), 'provisioning_api', API::ADMIN_AUTH);
+API::register('post', '/cloud/apps/{appid}', array('OCA\Provisioning_API\Apps', 'enable'), 'provisioning_api', API::ADMIN_AUTH);
+API::register('delete', '/cloud/apps/{appid}', array('OCA\Provisioning_API\Apps', 'disable'), 'provisioning_api', API::ADMIN_AUTH);
diff --git a/apps/provisioning_api/lib/apps.php b/apps/provisioning_api/lib/apps.php
index c1abb772e41..2bafd06a084 100644
--- a/apps/provisioning_api/lib/apps.php
+++ b/apps/provisioning_api/lib/apps.php
@@ -60,7 +60,7 @@ class Apps {
if(!is_null($info)) {
return new OC_OCS_Result(OC_App::getAppInfo($app));
} else {
- return new OC_OCS_Result(null, \OC_API::RESPOND_NOT_FOUND, 'The request app was not found');
+ return new OC_OCS_Result(null, \OCP\API::RESPOND_NOT_FOUND, 'The request app was not found');
}
}
diff --git a/apps/provisioning_api/lib/groups.php b/apps/provisioning_api/lib/groups.php
index 4a5a69216c4..cd156110635 100644
--- a/apps/provisioning_api/lib/groups.php
+++ b/apps/provisioning_api/lib/groups.php
@@ -44,14 +44,14 @@ class Groups{
public static function getGroup($parameters){
// Check the group exists
if(!OC_Group::groupExists($parameters['groupid'])){
- return new OC_OCS_Result(null, \OC_API::RESPOND_NOT_FOUND, 'The requested group could not be found');
+ return new OC_OCS_Result(null, \OCP\API::RESPOND_NOT_FOUND, 'The requested group could not be found');
}
// Check subadmin has access to this group
if(\OC_User::isAdminUser(\OC_User::getUser())
|| in_array($parameters['groupid'], \OC_SubAdmin::getSubAdminsGroups(\OC_User::getUser()))){
return new OC_OCS_Result(array('users' => OC_Group::usersInGroup($parameters['groupid'])));
} else {
- return new OC_OCS_Result(null, \OC_API::RESPOND_UNAUTHORISED, 'User does not have access to specified group');
+ return new OC_OCS_Result(null, \OCP\API::RESPOND_UNAUTHORISED, 'User does not have access to specified group');
}
}
diff --git a/apps/provisioning_api/lib/users.php b/apps/provisioning_api/lib/users.php
index 6169ea16f9c..505a141c032 100644
--- a/apps/provisioning_api/lib/users.php
+++ b/apps/provisioning_api/lib/users.php
@@ -67,7 +67,7 @@ class Users {
if(OC_User::isAdminUser(OC_User::getUser()) || OC_SubAdmin::isUserAccessible(OC_User::getUser(), $userId)) {
// Check they exist
if(!OC_User::userExists($userId)) {
- return new OC_OCS_Result(null, \OC_API::RESPOND_NOT_FOUND, 'The requested user could not be found');
+ return new OC_OCS_Result(null, \OCP\API::RESPOND_NOT_FOUND, 'The requested user could not be found');
}
// Show all
$return = array(
@@ -80,7 +80,7 @@ class Users {
} else {
// Check they are looking up themselves
if(OC_User::getUser() != $userId) {
- return new OC_OCS_Result(null, \OC_API::RESPOND_UNAUTHORISED);
+ return new OC_OCS_Result(null, \OCP\API::RESPOND_UNAUTHORISED);
}
// Return some additional information compared to the core route
$return = array(
@@ -226,7 +226,7 @@ class Users {
// Check they're an admin
if(!OC_Group::inGroup(OC_User::getUser(), 'admin')){
// This user doesn't have rights to add a user to this group
- return new OC_OCS_Result(null, \OC_API::RESPOND_UNAUTHORISED);
+ return new OC_OCS_Result(null, \OCP\API::RESPOND_UNAUTHORISED);
}
// Check if the group exists
if(!OC_Group::groupExists($group)){
diff --git a/apps/provisioning_api/tests/appstest.php b/apps/provisioning_api/tests/appstest.php
index b2b5748ea27..140dd287a0e 100644
--- a/apps/provisioning_api/tests/appstest.php
+++ b/apps/provisioning_api/tests/appstest.php
@@ -36,7 +36,7 @@ class AppsTest extends TestCase {
$result = \OCA\provisioning_API\Apps::getAppInfo(array('appid' => 'not_provisioning_api'));
$this->assertInstanceOf('OC_OCS_Result', $result);
$this->assertFalse($result->succeeded());
- $this->assertEquals(\OC_API::RESPOND_NOT_FOUND, $result->getStatusCode());
+ $this->assertEquals(\OCP\API::RESPOND_NOT_FOUND, $result->getStatusCode());
}
diff --git a/apps/provisioning_api/tests/groupstest.php b/apps/provisioning_api/tests/groupstest.php
index 7c5343af46d..94bde52c392 100644
--- a/apps/provisioning_api/tests/groupstest.php
+++ b/apps/provisioning_api/tests/groupstest.php
@@ -39,7 +39,7 @@ class GroupsTest extends TestCase {
$this->assertInstanceOf('OC_OCS_Result', $result);
$this->assertFalse($result->succeeded());
- $this->assertEquals(\OC_API::RESPOND_UNAUTHORISED, $result->getStatusCode());
+ $this->assertEquals(\OCP\API::RESPOND_UNAUTHORISED, $result->getStatusCode());
}
@@ -92,7 +92,7 @@ class GroupsTest extends TestCase {
$this->assertInstanceOf('OC_OCS_Result', $result);
$this->assertFalse($result->succeeded());
- $this->assertEquals(\OC_API::RESPOND_UNAUTHORISED, $result->getStatusCode());
+ $this->assertEquals(\OCP\API::RESPOND_UNAUTHORISED, $result->getStatusCode());
}
diff --git a/apps/provisioning_api/tests/userstest.php b/apps/provisioning_api/tests/userstest.php
index f06f853ee1f..b7e83a3c4fe 100644
--- a/apps/provisioning_api/tests/userstest.php
+++ b/apps/provisioning_api/tests/userstest.php
@@ -101,7 +101,7 @@ class UsersTest extends TestCase {
$result = \OCA\provisioning_API\Users::getUser($params);
$this->assertInstanceOf('OC_OCS_Result', $result);
$this->assertFalse($result->succeeded());
- $this->assertEquals(\OC_API::RESPOND_NOT_FOUND, $result->getStatusCode());
+ $this->assertEquals(\OCP\API::RESPOND_NOT_FOUND, $result->getStatusCode());
}
diff --git a/apps/user_ldap/ajax/getNewServerConfigPrefix.php b/apps/user_ldap/ajax/getNewServerConfigPrefix.php
index d0135917886..aa97b181846 100644
--- a/apps/user_ldap/ajax/getNewServerConfigPrefix.php
+++ b/apps/user_ldap/ajax/getNewServerConfigPrefix.php
@@ -35,14 +35,14 @@ $nk = 's'.str_pad($ln+1, 2, '0', STR_PAD_LEFT);
$resultData = array('configPrefix' => $nk);
+$newConfig = new \OCA\user_ldap\lib\Configuration($nk, false);
if(isset($_POST['copyConfig'])) {
$originalConfig = new \OCA\user_ldap\lib\Configuration($_POST['copyConfig']);
- $newConfig = new \OCA\user_ldap\lib\Configuration($nk, false);
$newConfig->setConfiguration($originalConfig->getConfiguration());
- $newConfig->saveConfiguration();
} else {
$configuration = new \OCA\user_ldap\lib\Configuration($nk, false);
$resultData['defaults'] = $configuration->getDefaults();
}
+$newConfig->saveConfiguration();
OCP\JSON::success($resultData);
diff --git a/apps/user_ldap/css/settings.css b/apps/user_ldap/css/settings.css
index b351f9ae2af..8648246247d 100644
--- a/apps/user_ldap/css/settings.css
+++ b/apps/user_ldap/css/settings.css
@@ -66,7 +66,6 @@
width: 100%;
margin-left: 0;
margin-right: 0;
- border: 0;
}
.tableCellInput {
diff --git a/apps/user_ldap/group_ldap.php b/apps/user_ldap/group_ldap.php
index 7695ba06388..8f56e01bf3d 100644
--- a/apps/user_ldap/group_ldap.php
+++ b/apps/user_ldap/group_ldap.php
@@ -746,6 +746,6 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
* compared with OC_USER_BACKEND_CREATE_USER etc.
*/
public function implementsActions($actions) {
- return (bool)(OC_GROUP_BACKEND_COUNT_USERS & $actions);
+ return (bool)(\OC_Group_Backend::COUNT_USERS & $actions);
}
}
diff --git a/apps/user_ldap/js/wizard/wizardTabAbstractFilter.js b/apps/user_ldap/js/wizard/wizardTabAbstractFilter.js
index 024b6af65d0..702c30a5a69 100644
--- a/apps/user_ldap/js/wizard/wizardTabAbstractFilter.js
+++ b/apps/user_ldap/js/wizard/wizardTabAbstractFilter.js
@@ -237,6 +237,7 @@ OCA = OCA || {};
* @inheritdoc
*/
onActivate: function() {
+ this._super();
this.considerFeatureRequests();
},
diff --git a/apps/user_ldap/js/wizard/wizardTabElementary.js b/apps/user_ldap/js/wizard/wizardTabElementary.js
index c7767b9cf66..d123a1ea080 100644
--- a/apps/user_ldap/js/wizard/wizardTabElementary.js
+++ b/apps/user_ldap/js/wizard/wizardTabElementary.js
@@ -14,6 +14,9 @@ OCA = OCA || {};
* in the LDAP wizard.
*/
var WizardTabElementary = OCA.LDAP.Wizard.WizardTabGeneric.subClass({
+ /** @property {number} */
+ _configChooserNextServerNumber: 1,
+
/**
* initializes the instance. Always call it after initialization.
*
@@ -24,7 +27,7 @@ OCA = OCA || {};
tabIndex = 0;
this._super(tabIndex, tabID);
this.isActive = true;
- this.configChooserID = '#ldap_serverconfig_chooser';
+ this.$configChooser = $('#ldap_serverconfig_chooser');
var items = {
ldap_host: {
@@ -88,7 +91,7 @@ OCA = OCA || {};
* @returns {string}
*/
getConfigID: function() {
- return $(this.configChooserID).val();
+ return this.$configChooser.val();
},
/**
@@ -204,9 +207,17 @@ OCA = OCA || {};
*/
onNewConfiguration: function(view, result) {
if(result.isSuccess === true) {
- $(view.configChooserID + ' option:selected').removeAttr('selected');
- var html = '<option value="'+result.configPrefix+'" selected="selected">'+t('user_ldap','{nthServer}. Server', {nthServer: $(view.configChooserID + ' option').length + 1})+'</option>';
- $(view.configChooserID + ' option:last').after(html);
+ console.log('new config');
+ var nthServer = view._configChooserNextServerNumber;
+ view.$configChooser.find('option:selected').removeAttr('selected');
+ var html = '<option value="'+result.configPrefix+'" selected="selected">'+t('user_ldap','{nthServer}. Server', {nthServer: nthServer})+'</option>';
+ if(view.$configChooser.find('option:last').length > 0) {
+ view.$configChooser.find('option:last').after(html);
+ } else {
+ view.$configChooser.html(html);
+ }
+
+ view._configChooserNextServerNumber++;
}
},
@@ -222,16 +233,16 @@ OCA = OCA || {};
if(view.getConfigID() === result.configPrefix) {
// if the deleted value is still the selected one (99% of
// the cases), remove it from the list and load the topmost
- $(view.configChooserID + ' option:selected').remove();
- $(view.configChooserID + ' option:first').select();
- if($(view.configChooserID + ' option').length < 2) {
+ view.$configChooser.find('option:selected').remove();
+ view.$configChooser.find('option:first').select();
+ if(view.$configChooser.find(' option').length < 1) {
view.configModel.newConfig(false);
} else {
view.configModel.load(view.getConfigID());
}
} else {
// otherwise just remove the entry
- $(view.configChooserID + ' option[value=' + result.configPrefix + ']').remove();
+ view.$configChooser.find('option[value=' + result.configPrefix + ']').remove();
}
} else {
OC.Notification.showTemporary(result.errorMessage);
@@ -252,7 +263,7 @@ OCA = OCA || {};
if(objectsFound < 1) {
message = t('user_ldap', 'No object found in the given Base DN. Please revise.');
} else if(objectsFound > 1000) {
- message = t('user_ldap', 'More then 1.000 directory entries available.');
+ message = t('user_ldap', 'More than 1.000 directory entries available.');
} else {
message = t('user_ldap', objectsFound + ' entries available within the provided Base DN');
}
@@ -303,9 +314,10 @@ OCA = OCA || {};
* @private
*/
_enableConfigChooser: function() {
+ this._configChooserNextServerNumber = this.$configChooser.find(' option').length + 1;
var view = this;
- $(this.configChooserID).change(function(){
- var value = $(view.configChooserID + ' option:selected:first').attr('value');
+ this.$configChooser.change(function(){
+ var value = view.$configChooser.find(' option:selected:first').attr('value');
view.configModel.load(value);
});
},
diff --git a/apps/user_ldap/js/wizard/wizardTabGeneric.js b/apps/user_ldap/js/wizard/wizardTabGeneric.js
index 524d2a048a1..720628fa609 100644
--- a/apps/user_ldap/js/wizard/wizardTabGeneric.js
+++ b/apps/user_ldap/js/wizard/wizardTabGeneric.js
@@ -75,9 +75,13 @@ OCA = OCA || {};
/**
* this is called by the main view, if the tab is being switched to.
- * The concrete tab view can implement this if necessary.
*/
- onActivate: function() { },
+ onActivate: function() {
+ if(!_.isUndefined(this.filterModeKey)
+ && this.configModel.configuration.ldap_experienced_admin === '1') {
+ this.setFilterMode(this.configModel.FILTER_MODE_RAW);
+ }
+ },
/**
* updates the tab when the model loaded a configuration and notified
diff --git a/apps/user_ldap/js/wizard/wizardTabLoginFilter.js b/apps/user_ldap/js/wizard/wizardTabLoginFilter.js
index 9438fd73346..b73d267d168 100644
--- a/apps/user_ldap/js/wizard/wizardTabLoginFilter.js
+++ b/apps/user_ldap/js/wizard/wizardTabLoginFilter.js
@@ -184,6 +184,7 @@ OCA = OCA || {};
* @inheritdoc
*/
onActivate: function() {
+ this._super();
this.considerFeatureRequests();
if(!this.managedItems.ldap_login_filter.$element.val()) {
this.configModel.requestWizard('ldap_login_filter');
diff --git a/apps/user_ldap/l10n/bg_BG.js b/apps/user_ldap/l10n/bg_BG.js
index 42f1a3759f2..e363f1c897b 100644
--- a/apps/user_ldap/l10n/bg_BG.js
+++ b/apps/user_ldap/l10n/bg_BG.js
@@ -33,11 +33,14 @@ OC.L10N.register(
"Test Filter" : "Тестов Филтър",
"Other Attributes:" : "Други Атрибути:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Заявява филтърът, който да бъде приложен при опит за вписване. %%uid замества потребителското име в полето login action. Пример: \"uid=%%uid\".",
+ "Test Loginname" : "Проверка на Потребителско име",
+ "Verify settings" : "Потвърди настройките",
"1. Server" : "1. Сървър",
"%s. Server:" : "%s. Сървър:",
"Host" : "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Протоколът не задължителен освен ако не изискваш SLL. В такъв случай започни с ldaps://",
"Port" : "Порт",
+ "Detect Port" : "Открит Port",
"User DN" : "User DN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN на потребителят, с който ще стане свързването, пр. uid=agent,dc=example,dc=com. За анонимен достъп, остави DN и Парола празни.",
"Password" : "Парола",
diff --git a/apps/user_ldap/l10n/bg_BG.json b/apps/user_ldap/l10n/bg_BG.json
index f10290c783c..250be5f00a3 100644
--- a/apps/user_ldap/l10n/bg_BG.json
+++ b/apps/user_ldap/l10n/bg_BG.json
@@ -31,11 +31,14 @@
"Test Filter" : "Тестов Филтър",
"Other Attributes:" : "Други Атрибути:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Заявява филтърът, който да бъде приложен при опит за вписване. %%uid замества потребителското име в полето login action. Пример: \"uid=%%uid\".",
+ "Test Loginname" : "Проверка на Потребителско име",
+ "Verify settings" : "Потвърди настройките",
"1. Server" : "1. Сървър",
"%s. Server:" : "%s. Сървър:",
"Host" : "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Протоколът не задължителен освен ако не изискваш SLL. В такъв случай започни с ldaps://",
"Port" : "Порт",
+ "Detect Port" : "Открит Port",
"User DN" : "User DN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN на потребителят, с който ще стане свързването, пр. uid=agent,dc=example,dc=com. За анонимен достъп, остави DN и Парола празни.",
"Password" : "Парола",
diff --git a/apps/user_ldap/l10n/cs_CZ.js b/apps/user_ldap/l10n/cs_CZ.js
index 1b0daba6559..3a07a48e1a5 100644
--- a/apps/user_ldap/l10n/cs_CZ.js
+++ b/apps/user_ldap/l10n/cs_CZ.js
@@ -10,15 +10,38 @@ OC.L10N.register(
"No configuration specified" : "Neurčena žádná konfigurace",
"No data specified" : "Neurčena žádná data",
" Could not set configuration %s" : "Nelze nastavit konfiguraci %s",
+ "Action does not exist" : "Tato akce neexistuje",
"Configuration incorrect" : "Nesprávná konfigurace",
"Configuration incomplete" : "Nekompletní konfigurace",
"Configuration OK" : "Konfigurace v pořádku",
"Select groups" : "Vyberte skupiny",
"Select object classes" : "Vyberte objektové třídy",
+ "Please check the credentials, they seem to be wrong." : "Ověřte své přihlašovací údaje, zdají se být neplatné.",
+ "Please specify the port, it could not be auto-detected." : "Uveďte prosím port, nelze ho automaticky detekovat.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN nelze automaticky detekovat, ověřte prosím přihlašovací údaje, host a port.",
+ "Could not detect Base DN, please enter it manually." : "Nelze automaticky detekovat Base DN, zadejte prosím ručně.",
"{nthServer}. Server" : "{nthServer}. Server",
+ "No object found in the given Base DN. Please revise." : "V zadané Base DN nebyl objekt nalezen. Ověřte.",
+ "More then 1.000 directory entries available." : "Je dostupných více než 1000 adresářových záznamů.",
+ " entries available within the provided Base DN" : "záznamů dostupných v zadané Base DN",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Došlo k chybě. Ověře prosím Base DN společně s nastavením připojení a přihlašovacími údaji.",
"Do you really want to delete the current Server Configuration?" : "Opravdu si přejete smazat současné nastavení serveru?",
"Confirm Deletion" : "Potvrdit smazání",
+ "Mappings cleared successfully!" : "Mapování úspěšně vyčištěno!",
+ "Error while clearing the mappings." : "Chyba při čištění mapování.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Ukládání selhalo. Ujistěte se, že databáze funguje. Načtěte znovu, než budete pokračovat.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Přepnutí módu povolí automatické LDAP dotazy. V závislosti na velikosti vašeho LDAP může vyhledávání chvíli trvat. Opravdu si přejete přepnout mód?",
+ "Mode switch" : "Přepnutí módu",
"Select attributes" : "Vyberte atributy",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Uživatel nenalezen. Zkontrolujte prosím své přihlašovací údaje a jméno. Použitý filtr (pro zkopírování a ověření v příkazovém řádku): <br/>",
+ "User found and settings verified." : "Uživatel nalezen a nastavení ověřeno.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Nastavení ověřena, nalezen jeden uživatel. Pouze první se bude moci přihlásit. Zvažte nasazení užšího filtru.",
+ "An unspecified error occurred. Please check the settings and the log." : "Došlo k nespecifikované chybě. Zkontrolujte prosím nastavení a soubor logu.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Filtr vyhledávání je neplatný, pravděpodobně z důvodu chybné syntax jako třeba neuzavřené závorky. Ověřte to.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Došlo k chybě připojení k LDAP / AD, zkontrolujte prosím host, port a přihlašovací údaje.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Chybí zástupný znak %uid. Bude nahrazen přihlašovacím jménem při dotazování LDAP / AD.",
+ "Please provide a login name to test against" : "Zadejte prosím přihlašovací jméno pro otestování",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Skupinové pole bylo vypnuto, protože LDAP / AD server nepodporuje memberOf.",
"_%s group found_::_%s groups found_" : ["nalezena %s skupina","nalezeny %s skupiny","nalezeno %s skupin"],
"_%s user found_::_%s users found_" : ["nalezen %s uživatel","nalezeni %s uživatelé","nalezeno %s uživatelů"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Nelze detekovat atribut pro zobrazení jména uživatele. Upřesněte ho prosím sami v rozšířeném nastavení LDAP.",
@@ -26,29 +49,50 @@ OC.L10N.register(
"Invalid Host" : "Neplatný hostitel",
"Server" : "Server",
"Users" : "Uživatelé",
+ "Login Attributes" : "Přihlašovací atributy",
"Groups" : "Skupiny",
"Test Configuration" : "Vyzkoušet nastavení",
"Help" : "Nápověda",
"Groups meeting these criteria are available in %s:" : "Skupiny splňující tyto podmínky jsou k dispozici v %s:",
+ "Only these object classes:" : "Pouze tyto třídy objektů:",
+ "Only from these groups:" : "Pouze z těchto skupin:",
+ "Search groups" : "Prohledat skupiny",
+ "Available groups" : "Dostupné skupiny",
+ "Selected groups" : "Vybrané skupiny",
+ "Edit LDAP Query" : "Upravit LDAP požadavek",
+ "LDAP Filter:" : "LDAP filtr:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Filtr určuje, kteří uživatelé LDAP mají mít přístup k instanci %s.",
"Test Filter" : "Otestovat filtr",
+ "Verify settings and count groups" : "Ověřit nastavení a spočítat skupiny",
+ "When logging in, %s will find the user based on the following attributes:" : "Při přihlašování, %s bude hledat uživatele na základě následujících atributů:",
+ "LDAP / AD Username:" : "LDAP / AD uživatelské jméno:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Umožňuje přihlášení s LDAP / AD uživatelským jménem, které má rozpoznatelnou hodnotu pro uid nebo samaccountname.",
+ "LDAP / AD Email Address:" : "LDAP / AD emailová adresa:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Umožňuje přihlášení s atributem emailu. Jsou povoleny Mail a mailPrimaryAddress.",
"Other Attributes:" : "Další atributy:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Určuje použitý filtr při pokusu o přihlášení. %%uid nahrazuje uživatelské jméno v činnosti přihlášení. Příklad: \"uid=%%uid\"",
+ "Test Loginname" : "Testovací přihlašovací jméno",
+ "Verify settings" : "Ověřit nastavení",
"1. Server" : "1. Server",
"%s. Server:" : "%s. Server:",
"Host" : "Počítač",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Můžete vynechat protokol, vyjma pokud požadujete SSL. Tehdy začněte s ldaps://",
"Port" : "Port",
+ "Detect Port" : "Detekovat port",
"User DN" : "Uživatelské DN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN klientského uživatele, ke kterému tvoříte vazbu, např. uid=agent,dc=example,dc=com. Pro anonymní přístup ponechte DN a heslo prázdné.",
"Password" : "Heslo",
"For anonymous access, leave DN and Password empty." : "Pro anonymní přístup ponechte údaje DN and heslo prázdné.",
"One Base DN per line" : "Jedna základní DN na řádku",
"You can specify Base DN for users and groups in the Advanced tab" : "V rozšířeném nastavení můžete určit základní DN pro uživatele a skupiny",
+ "Detect Base DN" : "Detekovat Base DN",
+ "Test Base DN" : "Otestovat Base DN",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Zabraňuje automatickým LDAP požadavkům. Výhodné pro objemná nastavení, ale vyžaduje znalosti o LDAP.",
"Manually enter LDAP filters (recommended for large directories)" : "Ručně vložit LDAP filtry (doporučeno pro obsáhlé adresáře)",
"Limit %s access to users meeting these criteria:" : "Omezit přístup %s uživatelům splňujícím tyto podmínky:",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Nejčastější třídy objektů pro uživatele jsou organizationalPerson, person, user a inetOrgPerson. Pokud si nejste jisti které třídy objektů zvolit, obraťte se na svého adresářového správce.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Filtr určuje, kteří uživatelé LDAP mají mít přístup k instanci %s.",
+ "Verify settings and count users" : "Ověřit nastavení a spočítat uživatele",
"Saving" : "Ukládá se",
"Back" : "Zpět",
"Continue" : "Pokračovat",
diff --git a/apps/user_ldap/l10n/cs_CZ.json b/apps/user_ldap/l10n/cs_CZ.json
index 44f27988475..38f91f97f9d 100644
--- a/apps/user_ldap/l10n/cs_CZ.json
+++ b/apps/user_ldap/l10n/cs_CZ.json
@@ -8,15 +8,38 @@
"No configuration specified" : "Neurčena žádná konfigurace",
"No data specified" : "Neurčena žádná data",
" Could not set configuration %s" : "Nelze nastavit konfiguraci %s",
+ "Action does not exist" : "Tato akce neexistuje",
"Configuration incorrect" : "Nesprávná konfigurace",
"Configuration incomplete" : "Nekompletní konfigurace",
"Configuration OK" : "Konfigurace v pořádku",
"Select groups" : "Vyberte skupiny",
"Select object classes" : "Vyberte objektové třídy",
+ "Please check the credentials, they seem to be wrong." : "Ověřte své přihlašovací údaje, zdají se být neplatné.",
+ "Please specify the port, it could not be auto-detected." : "Uveďte prosím port, nelze ho automaticky detekovat.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN nelze automaticky detekovat, ověřte prosím přihlašovací údaje, host a port.",
+ "Could not detect Base DN, please enter it manually." : "Nelze automaticky detekovat Base DN, zadejte prosím ručně.",
"{nthServer}. Server" : "{nthServer}. Server",
+ "No object found in the given Base DN. Please revise." : "V zadané Base DN nebyl objekt nalezen. Ověřte.",
+ "More then 1.000 directory entries available." : "Je dostupných více než 1000 adresářových záznamů.",
+ " entries available within the provided Base DN" : "záznamů dostupných v zadané Base DN",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Došlo k chybě. Ověře prosím Base DN společně s nastavením připojení a přihlašovacími údaji.",
"Do you really want to delete the current Server Configuration?" : "Opravdu si přejete smazat současné nastavení serveru?",
"Confirm Deletion" : "Potvrdit smazání",
+ "Mappings cleared successfully!" : "Mapování úspěšně vyčištěno!",
+ "Error while clearing the mappings." : "Chyba při čištění mapování.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Ukládání selhalo. Ujistěte se, že databáze funguje. Načtěte znovu, než budete pokračovat.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Přepnutí módu povolí automatické LDAP dotazy. V závislosti na velikosti vašeho LDAP může vyhledávání chvíli trvat. Opravdu si přejete přepnout mód?",
+ "Mode switch" : "Přepnutí módu",
"Select attributes" : "Vyberte atributy",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Uživatel nenalezen. Zkontrolujte prosím své přihlašovací údaje a jméno. Použitý filtr (pro zkopírování a ověření v příkazovém řádku): <br/>",
+ "User found and settings verified." : "Uživatel nalezen a nastavení ověřeno.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Nastavení ověřena, nalezen jeden uživatel. Pouze první se bude moci přihlásit. Zvažte nasazení užšího filtru.",
+ "An unspecified error occurred. Please check the settings and the log." : "Došlo k nespecifikované chybě. Zkontrolujte prosím nastavení a soubor logu.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Filtr vyhledávání je neplatný, pravděpodobně z důvodu chybné syntax jako třeba neuzavřené závorky. Ověřte to.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Došlo k chybě připojení k LDAP / AD, zkontrolujte prosím host, port a přihlašovací údaje.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Chybí zástupný znak %uid. Bude nahrazen přihlašovacím jménem při dotazování LDAP / AD.",
+ "Please provide a login name to test against" : "Zadejte prosím přihlašovací jméno pro otestování",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Skupinové pole bylo vypnuto, protože LDAP / AD server nepodporuje memberOf.",
"_%s group found_::_%s groups found_" : ["nalezena %s skupina","nalezeny %s skupiny","nalezeno %s skupin"],
"_%s user found_::_%s users found_" : ["nalezen %s uživatel","nalezeni %s uživatelé","nalezeno %s uživatelů"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Nelze detekovat atribut pro zobrazení jména uživatele. Upřesněte ho prosím sami v rozšířeném nastavení LDAP.",
@@ -24,29 +47,50 @@
"Invalid Host" : "Neplatný hostitel",
"Server" : "Server",
"Users" : "Uživatelé",
+ "Login Attributes" : "Přihlašovací atributy",
"Groups" : "Skupiny",
"Test Configuration" : "Vyzkoušet nastavení",
"Help" : "Nápověda",
"Groups meeting these criteria are available in %s:" : "Skupiny splňující tyto podmínky jsou k dispozici v %s:",
+ "Only these object classes:" : "Pouze tyto třídy objektů:",
+ "Only from these groups:" : "Pouze z těchto skupin:",
+ "Search groups" : "Prohledat skupiny",
+ "Available groups" : "Dostupné skupiny",
+ "Selected groups" : "Vybrané skupiny",
+ "Edit LDAP Query" : "Upravit LDAP požadavek",
+ "LDAP Filter:" : "LDAP filtr:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Filtr určuje, kteří uživatelé LDAP mají mít přístup k instanci %s.",
"Test Filter" : "Otestovat filtr",
+ "Verify settings and count groups" : "Ověřit nastavení a spočítat skupiny",
+ "When logging in, %s will find the user based on the following attributes:" : "Při přihlašování, %s bude hledat uživatele na základě následujících atributů:",
+ "LDAP / AD Username:" : "LDAP / AD uživatelské jméno:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Umožňuje přihlášení s LDAP / AD uživatelským jménem, které má rozpoznatelnou hodnotu pro uid nebo samaccountname.",
+ "LDAP / AD Email Address:" : "LDAP / AD emailová adresa:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Umožňuje přihlášení s atributem emailu. Jsou povoleny Mail a mailPrimaryAddress.",
"Other Attributes:" : "Další atributy:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Určuje použitý filtr při pokusu o přihlášení. %%uid nahrazuje uživatelské jméno v činnosti přihlášení. Příklad: \"uid=%%uid\"",
+ "Test Loginname" : "Testovací přihlašovací jméno",
+ "Verify settings" : "Ověřit nastavení",
"1. Server" : "1. Server",
"%s. Server:" : "%s. Server:",
"Host" : "Počítač",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Můžete vynechat protokol, vyjma pokud požadujete SSL. Tehdy začněte s ldaps://",
"Port" : "Port",
+ "Detect Port" : "Detekovat port",
"User DN" : "Uživatelské DN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN klientského uživatele, ke kterému tvoříte vazbu, např. uid=agent,dc=example,dc=com. Pro anonymní přístup ponechte DN a heslo prázdné.",
"Password" : "Heslo",
"For anonymous access, leave DN and Password empty." : "Pro anonymní přístup ponechte údaje DN and heslo prázdné.",
"One Base DN per line" : "Jedna základní DN na řádku",
"You can specify Base DN for users and groups in the Advanced tab" : "V rozšířeném nastavení můžete určit základní DN pro uživatele a skupiny",
+ "Detect Base DN" : "Detekovat Base DN",
+ "Test Base DN" : "Otestovat Base DN",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Zabraňuje automatickým LDAP požadavkům. Výhodné pro objemná nastavení, ale vyžaduje znalosti o LDAP.",
"Manually enter LDAP filters (recommended for large directories)" : "Ručně vložit LDAP filtry (doporučeno pro obsáhlé adresáře)",
"Limit %s access to users meeting these criteria:" : "Omezit přístup %s uživatelům splňujícím tyto podmínky:",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Nejčastější třídy objektů pro uživatele jsou organizationalPerson, person, user a inetOrgPerson. Pokud si nejste jisti které třídy objektů zvolit, obraťte se na svého adresářového správce.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Filtr určuje, kteří uživatelé LDAP mají mít přístup k instanci %s.",
+ "Verify settings and count users" : "Ověřit nastavení a spočítat uživatele",
"Saving" : "Ukládá se",
"Back" : "Zpět",
"Continue" : "Pokračovat",
diff --git a/apps/user_ldap/l10n/de.js b/apps/user_ldap/l10n/de.js
index e77e664d904..a1bf2feef90 100644
--- a/apps/user_ldap/l10n/de.js
+++ b/apps/user_ldap/l10n/de.js
@@ -10,15 +10,32 @@ OC.L10N.register(
"No configuration specified" : "Keine Konfiguration angegeben",
"No data specified" : "Keine Daten angegeben",
" Could not set configuration %s" : "Die Konfiguration %s konnte nicht gesetzt werden",
+ "Action does not exist" : "Aktion existiert nicht",
"Configuration incorrect" : "Konfiguration nicht korrekt",
"Configuration incomplete" : "Konfiguration nicht vollständig",
"Configuration OK" : "Konfiguration OK",
"Select groups" : "Gruppen auswählen",
"Select object classes" : "Objektklassen auswählen",
+ "Please check the credentials, they seem to be wrong." : "Bitte überprüfe die Anmeldeinformationen, sie sind anscheinend falsch.",
+ "Please specify the port, it could not be auto-detected." : "Bitte gib den Port an, er konnte nicht automatisch erkannt werden.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Die Base DN konnte nicht automatisch erkannt werden, bitte überprüfe die Anmeldeinformationen, den Host und den Port.",
+ "Could not detect Base DN, please enter it manually." : "Die Base DN konnte nicht erkannt werden, bitte manuell eingeben.",
"{nthServer}. Server" : "{nthServer}. - Server",
+ "No object found in the given Base DN. Please revise." : "Keine Objekte in der Base DN gefunden, bitte überprüfen.",
+ "More then 1.000 directory entries available." : "Es sind mehr als 1,000 Verzeichniseinträge verfügbar.",
+ " entries available within the provided Base DN" : "Einträge in der Vorgesehenen Base DN verfügbar",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Ein Fehler ist aufgetreten. Bitte prüfe die Base DN und auch die Verbindungs- und Anmeldeeinstellungen.",
"Do you really want to delete the current Server Configuration?" : "Soll die aktuelle Serverkonfiguration wirklich gelöscht werden?",
"Confirm Deletion" : "Löschen bestätigen",
+ "Mappings cleared successfully!" : "Zuordnungen erfolgreich gelöscht!",
+ "Error while clearing the mappings." : "Fehler beim Löschen der Zuordnungen.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Speichern fehlgeschlagen. Bitte stelle sicher, dass die Datenbank in Betrieb ist. Bitte lade vor dem Fortfahren neu.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Das Umschalten des Modus ermöglicht automatische LDAP-Abfragen. Abhängig von Deiner LDAP-Größe können diese einige Zeit in Anspruch nehmen. Willst Du immer noch den Modus wechseln?",
+ "Mode switch" : "Modus umschalten",
"Select attributes" : "Attribute auswählen",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Benutzer nicht gefunden. Bitte überprüfe Deine Loginattribute und Deinen Benutzernamen. Gültige Filter (zum Kopieren und Einfügen bei der Überprüfung auf der Kommandozeile): <br/>",
+ "User found and settings verified." : "Benutzer gefunden und Einstellungen überprüft.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Es ist ein Verbindungsfehler zum LDAP/AD aufgetreten, bitte überprüfe Host, Port und Anmeldeinformationen.",
"_%s group found_::_%s groups found_" : ["%s Gruppe gefunden","%s Gruppen gefunden"],
"_%s user found_::_%s users found_" : ["%s Benutzer gefunden","%s Benutzer gefunden"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Das Anzeigename-Attribut des Benutzers konnte nicht gefunden werden. Bitte gib es in den erweiterten LDAP-Einstellungen selber an.",
@@ -26,29 +43,46 @@ OC.L10N.register(
"Invalid Host" : "Ungültiger Host",
"Server" : "Server",
"Users" : "Benutzer",
+ "Login Attributes" : "Loginattribute",
"Groups" : "Gruppen",
"Test Configuration" : "Testkonfiguration",
"Help" : "Hilfe",
"Groups meeting these criteria are available in %s:" : "Gruppen, auf die diese Kriterien zutreffen, sind verfügbar in %s:",
+ "Only these object classes:" : "Nur diese Objektklassen:",
+ "Only from these groups:" : "Nur aus diesen Gruppen:",
+ "Search groups" : "Gruppen suchen",
+ "Available groups" : "Verfügbare Gruppen",
+ "Selected groups" : "Ausgewählte Gruppen",
+ "Edit LDAP Query" : "LDAP-Abfrage bearbeiten",
+ "LDAP Filter:" : "LDAP-Filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Der Filter bestimmt, welche LDAP-Gruppen Zugriff auf die %s-Instanz haben sollen.",
"Test Filter" : "Testfilter",
+ "Verify settings and count groups" : "Einstellungen überprüfen und Gruppen zählen",
+ "LDAP / AD Username:" : "LDAP-/AD-Benutzername:",
+ "LDAP / AD Email Address:" : "LDAP-/AD-E-Mail-Adresse:",
"Other Attributes:" : "Andere Attribute:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Bestimmt den Filter, welcher bei einer Anmeldung angewandt wird. %%uid ersetzt den Benutzernamen bei der Anmeldung. Beispiel: \"uid=%%uid\"",
+ "Test Loginname" : "Loginnamen testen",
+ "Verify settings" : "Einstellungen überprüfen",
"1. Server" : "1. Server",
"%s. Server:" : "%s. Server:",
"Host" : "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Du kannst das Protokoll auslassen, außer wenn Du SSL benötigst. Beginne dann mit ldaps://",
"Port" : "Port",
+ "Detect Port" : "Port ermitteln",
"User DN" : "Benutzer-DN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Der DN des Benutzers, mit dem der LDAP-Bind durchgeführt werden soll, z.B. uid=agent,dc=example,dc=com. Für anonymen Zugriff lasse DN und Passwort leer.",
"Password" : "Passwort",
"For anonymous access, leave DN and Password empty." : "Lasse die Felder DN und Passwort für anonymen Zugang leer.",
"One Base DN per line" : "Einen Basis-DN pro Zeile",
- "You can specify Base DN for users and groups in the Advanced tab" : "Du kannst die Basis-DN für Benutzer und Gruppen im Reiter „Fortgeschritten“ angeben",
+ "You can specify Base DN for users and groups in the Advanced tab" : "Du kannst die Base DN für Benutzer und Gruppen im Reiter „Fortgeschritten“ angeben",
+ "Detect Base DN" : "Base DN ermitteln",
+ "Test Base DN" : "Base DN testen",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Verhindert automatische LDAP-Anfragen. Besser geeignet für größere Installationen, benötigt aber erweiterte LDAP-Kenntnisse.",
"Manually enter LDAP filters (recommended for large directories)" : "LDAP-Filter manuell eingeben (empfohlen für große Verzeichnisse)",
"Limit %s access to users meeting these criteria:" : "Den %s-Zugriff auf Benutzer, die den folgenden Kriterien entsprechen, beschränken:",
"The filter specifies which LDAP users shall have access to the %s instance." : "Der Filter gibt an, welche LDAP-Benutzer Zugriff auf die %s-Instanz haben sollen.",
+ "Verify settings and count users" : "Einstellungen überprüfen und Benutzer zählen",
"Saving" : "Speichern",
"Back" : "Zurück",
"Continue" : "Fortsetzen",
diff --git a/apps/user_ldap/l10n/de.json b/apps/user_ldap/l10n/de.json
index 407e5bb73d4..72bf5903d48 100644
--- a/apps/user_ldap/l10n/de.json
+++ b/apps/user_ldap/l10n/de.json
@@ -8,15 +8,32 @@
"No configuration specified" : "Keine Konfiguration angegeben",
"No data specified" : "Keine Daten angegeben",
" Could not set configuration %s" : "Die Konfiguration %s konnte nicht gesetzt werden",
+ "Action does not exist" : "Aktion existiert nicht",
"Configuration incorrect" : "Konfiguration nicht korrekt",
"Configuration incomplete" : "Konfiguration nicht vollständig",
"Configuration OK" : "Konfiguration OK",
"Select groups" : "Gruppen auswählen",
"Select object classes" : "Objektklassen auswählen",
+ "Please check the credentials, they seem to be wrong." : "Bitte überprüfe die Anmeldeinformationen, sie sind anscheinend falsch.",
+ "Please specify the port, it could not be auto-detected." : "Bitte gib den Port an, er konnte nicht automatisch erkannt werden.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Die Base DN konnte nicht automatisch erkannt werden, bitte überprüfe die Anmeldeinformationen, den Host und den Port.",
+ "Could not detect Base DN, please enter it manually." : "Die Base DN konnte nicht erkannt werden, bitte manuell eingeben.",
"{nthServer}. Server" : "{nthServer}. - Server",
+ "No object found in the given Base DN. Please revise." : "Keine Objekte in der Base DN gefunden, bitte überprüfen.",
+ "More then 1.000 directory entries available." : "Es sind mehr als 1,000 Verzeichniseinträge verfügbar.",
+ " entries available within the provided Base DN" : "Einträge in der Vorgesehenen Base DN verfügbar",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Ein Fehler ist aufgetreten. Bitte prüfe die Base DN und auch die Verbindungs- und Anmeldeeinstellungen.",
"Do you really want to delete the current Server Configuration?" : "Soll die aktuelle Serverkonfiguration wirklich gelöscht werden?",
"Confirm Deletion" : "Löschen bestätigen",
+ "Mappings cleared successfully!" : "Zuordnungen erfolgreich gelöscht!",
+ "Error while clearing the mappings." : "Fehler beim Löschen der Zuordnungen.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Speichern fehlgeschlagen. Bitte stelle sicher, dass die Datenbank in Betrieb ist. Bitte lade vor dem Fortfahren neu.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Das Umschalten des Modus ermöglicht automatische LDAP-Abfragen. Abhängig von Deiner LDAP-Größe können diese einige Zeit in Anspruch nehmen. Willst Du immer noch den Modus wechseln?",
+ "Mode switch" : "Modus umschalten",
"Select attributes" : "Attribute auswählen",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Benutzer nicht gefunden. Bitte überprüfe Deine Loginattribute und Deinen Benutzernamen. Gültige Filter (zum Kopieren und Einfügen bei der Überprüfung auf der Kommandozeile): <br/>",
+ "User found and settings verified." : "Benutzer gefunden und Einstellungen überprüft.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Es ist ein Verbindungsfehler zum LDAP/AD aufgetreten, bitte überprüfe Host, Port und Anmeldeinformationen.",
"_%s group found_::_%s groups found_" : ["%s Gruppe gefunden","%s Gruppen gefunden"],
"_%s user found_::_%s users found_" : ["%s Benutzer gefunden","%s Benutzer gefunden"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Das Anzeigename-Attribut des Benutzers konnte nicht gefunden werden. Bitte gib es in den erweiterten LDAP-Einstellungen selber an.",
@@ -24,29 +41,46 @@
"Invalid Host" : "Ungültiger Host",
"Server" : "Server",
"Users" : "Benutzer",
+ "Login Attributes" : "Loginattribute",
"Groups" : "Gruppen",
"Test Configuration" : "Testkonfiguration",
"Help" : "Hilfe",
"Groups meeting these criteria are available in %s:" : "Gruppen, auf die diese Kriterien zutreffen, sind verfügbar in %s:",
+ "Only these object classes:" : "Nur diese Objektklassen:",
+ "Only from these groups:" : "Nur aus diesen Gruppen:",
+ "Search groups" : "Gruppen suchen",
+ "Available groups" : "Verfügbare Gruppen",
+ "Selected groups" : "Ausgewählte Gruppen",
+ "Edit LDAP Query" : "LDAP-Abfrage bearbeiten",
+ "LDAP Filter:" : "LDAP-Filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Der Filter bestimmt, welche LDAP-Gruppen Zugriff auf die %s-Instanz haben sollen.",
"Test Filter" : "Testfilter",
+ "Verify settings and count groups" : "Einstellungen überprüfen und Gruppen zählen",
+ "LDAP / AD Username:" : "LDAP-/AD-Benutzername:",
+ "LDAP / AD Email Address:" : "LDAP-/AD-E-Mail-Adresse:",
"Other Attributes:" : "Andere Attribute:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Bestimmt den Filter, welcher bei einer Anmeldung angewandt wird. %%uid ersetzt den Benutzernamen bei der Anmeldung. Beispiel: \"uid=%%uid\"",
+ "Test Loginname" : "Loginnamen testen",
+ "Verify settings" : "Einstellungen überprüfen",
"1. Server" : "1. Server",
"%s. Server:" : "%s. Server:",
"Host" : "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Du kannst das Protokoll auslassen, außer wenn Du SSL benötigst. Beginne dann mit ldaps://",
"Port" : "Port",
+ "Detect Port" : "Port ermitteln",
"User DN" : "Benutzer-DN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Der DN des Benutzers, mit dem der LDAP-Bind durchgeführt werden soll, z.B. uid=agent,dc=example,dc=com. Für anonymen Zugriff lasse DN und Passwort leer.",
"Password" : "Passwort",
"For anonymous access, leave DN and Password empty." : "Lasse die Felder DN und Passwort für anonymen Zugang leer.",
"One Base DN per line" : "Einen Basis-DN pro Zeile",
- "You can specify Base DN for users and groups in the Advanced tab" : "Du kannst die Basis-DN für Benutzer und Gruppen im Reiter „Fortgeschritten“ angeben",
+ "You can specify Base DN for users and groups in the Advanced tab" : "Du kannst die Base DN für Benutzer und Gruppen im Reiter „Fortgeschritten“ angeben",
+ "Detect Base DN" : "Base DN ermitteln",
+ "Test Base DN" : "Base DN testen",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Verhindert automatische LDAP-Anfragen. Besser geeignet für größere Installationen, benötigt aber erweiterte LDAP-Kenntnisse.",
"Manually enter LDAP filters (recommended for large directories)" : "LDAP-Filter manuell eingeben (empfohlen für große Verzeichnisse)",
"Limit %s access to users meeting these criteria:" : "Den %s-Zugriff auf Benutzer, die den folgenden Kriterien entsprechen, beschränken:",
"The filter specifies which LDAP users shall have access to the %s instance." : "Der Filter gibt an, welche LDAP-Benutzer Zugriff auf die %s-Instanz haben sollen.",
+ "Verify settings and count users" : "Einstellungen überprüfen und Benutzer zählen",
"Saving" : "Speichern",
"Back" : "Zurück",
"Continue" : "Fortsetzen",
diff --git a/apps/user_ldap/l10n/de_DE.js b/apps/user_ldap/l10n/de_DE.js
index 3290e715673..696a14abb6c 100644
--- a/apps/user_ldap/l10n/de_DE.js
+++ b/apps/user_ldap/l10n/de_DE.js
@@ -10,15 +10,32 @@ OC.L10N.register(
"No configuration specified" : "Keine Konfiguration angegeben",
"No data specified" : "Keine Daten angegeben",
" Could not set configuration %s" : "Die Konfiguration %s konnte nicht gesetzt werden",
+ "Action does not exist" : "Aktion existiert nicht",
"Configuration incorrect" : "Konfiguration nicht korrekt",
"Configuration incomplete" : "Konfiguration nicht vollständig",
"Configuration OK" : "Konfiguration OK",
"Select groups" : "Gruppen auswählen",
"Select object classes" : "Objektklassen auswählen",
+ "Please check the credentials, they seem to be wrong." : "Bitte überprüfen Sie die Anmeldeinformationen, sie sind anscheinend falsch.",
+ "Please specify the port, it could not be auto-detected." : "Bitte geben Sie den Port an, er konnte nicht automatisch erkannt werden.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Die Base DN konnte nicht automatisch erkannt werden, bitte überprüfen Sie Anmeldeinformationen, Host und Port.",
+ "Could not detect Base DN, please enter it manually." : "Die Base DN konnte nicht erkannt werden, bitte geben Sie sie manuell ein.",
"{nthServer}. Server" : "{nthServer}. - Server",
+ "No object found in the given Base DN. Please revise." : "Keine Objekte in der angegebenen Base DN gefunden, bitte überprüfen.",
+ "More then 1.000 directory entries available." : "Es sind mehr als 1.000 Verzeichniseinträge verfügbar.",
+ " entries available within the provided Base DN" : "Einträge in der angegebenen Base DN verfügbar",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Es ist ein Fehler aufgetreten. Bitte überprüfen Sie die Base DN wie auch die Verbindungseinstellungen und Anmeldeinformationen.",
"Do you really want to delete the current Server Configuration?" : "Soll die aktuelle Serverkonfiguration wirklich gelöscht werden?",
"Confirm Deletion" : "Löschen bestätigen",
+ "Mappings cleared successfully!" : "Zuordnungen erfolgreich gelöscht!",
+ "Error while clearing the mappings." : "Fehler beim Löschen der Zuordnungen.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Speichern fehlgeschlagen. Bitte stellen Sie sicher, dass die Datenbank in Betrieb ist. Bitte laden Sie vor dem Fortfahren neu.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Das Umschalten des Modus ermöglicht automatische LDAP-Abfragen. Abhängig von Ihrer LDAP-Größe können diese einige Zeit in Anspruch nehmen. Wollen Sie immer noch den Modus wechseln?",
+ "Mode switch" : "Modus umschalten",
"Select attributes" : "Attribute auswählen",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Benutzer nicht gefunden. Bitte überprüfen Sie Ihre Loginattribute und Ihren Benutzernamen. Gültiger Filter (zum Kopieren und Einfügen bei der Überprüfung auf der Kommandozeile): <br/>",
+ "User found and settings verified." : "Benutzer gefunden und Einstellungen überprüft.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Es ist ein Verbindungsfehler zum LDAP/AD aufgetreten, bitte überprüfen Sie Host, Port und Anmeldeinformationen.",
"_%s group found_::_%s groups found_" : ["%s Gruppe gefunden","%s Gruppen gefunden"],
"_%s user found_::_%s users found_" : ["%s Benutzer gefunden","%s Benutzer gefunden"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Das Anzeigename-Attribut des Benutzers konnte nicht gefunden werden. Bitte geben Sie es in den erweiterten LDAP-Einstellungen selber an.",
@@ -26,29 +43,46 @@ OC.L10N.register(
"Invalid Host" : "Ungültiger Host",
"Server" : "Server",
"Users" : "Benutzer",
+ "Login Attributes" : "Anmeldeattribute",
"Groups" : "Gruppen",
"Test Configuration" : "Testkonfiguration",
"Help" : "Hilfe",
"Groups meeting these criteria are available in %s:" : "Gruppen, auf die diese Kriterien zutreffen, sind verfügbar in %s:",
+ "Only these object classes:" : "Nur diese Objektklassen:",
+ "Only from these groups:" : "Nur aus diesen Gruppen:",
+ "Search groups" : "Gruppen suchen",
+ "Available groups" : "Verfügbare Gruppen",
+ "Selected groups" : "Ausgewählte Gruppen",
+ "Edit LDAP Query" : "LDAP-Abfrage bearbeiten",
+ "LDAP Filter:" : "LDAP-Filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Der Filter bestimmt, welche LDAP-Gruppen Zugriff auf die %s-Instanz haben sollen.",
"Test Filter" : "Testfilter",
+ "Verify settings and count groups" : "Einstellungen überprüfen und Gruppen zählen",
+ "LDAP / AD Username:" : "LDAP-/AD-Benutzername:",
+ "LDAP / AD Email Address:" : "LDAP-/AD-E-Mail-Adresse:",
"Other Attributes:" : "Andere Attribute:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Bestimmt den Filter, welcher bei einer Anmeldung angewandt wird. %%uid ersetzt den Benutzernamen bei der Anmeldung. Beispiel: \"uid=%%uid\"",
+ "Test Loginname" : "Loginnamen testen",
+ "Verify settings" : "Einstellungen überprüfen",
"1. Server" : "1. Server",
"%s. Server:" : "%s. Server:",
"Host" : "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Sie können das Protokoll auslassen, außer wenn Sie SSL benötigen. Beginnen Sie dann mit ldaps://",
"Port" : "Port",
+ "Detect Port" : "Port ermitteln",
"User DN" : "Benutzer-DN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Der DN des Benutzers, mit dem der LDAP-Bind durchgeführt werden soll, z.B. uid=agent,dc=example,dc=com. Für einen anonymen Zugriff lassen Sie DN und Passwort leer.",
"Password" : "Passwort",
"For anonymous access, leave DN and Password empty." : "Lassen Sie die Felder DN und Passwort für einen anonymen Zugang leer.",
"One Base DN per line" : "Einen Basis-DN pro Zeile",
"You can specify Base DN for users and groups in the Advanced tab" : " Sie können die Basis-DN für Benutzer und Gruppen im Reiter „Fortgeschritten“ angeben",
+ "Detect Base DN" : "Base DN ermitteln",
+ "Test Base DN" : "Base DN testen",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Verhindert automatische LDAP-Anfragen. Besser geeignet für größere Installationen, benötigt aber erweiterte LDAP-Kenntnisse.",
"Manually enter LDAP filters (recommended for large directories)" : "LDAP-Filter manuell eingeben (empfohlen für große Verzeichnisse)",
"Limit %s access to users meeting these criteria:" : "Den %s-Zugriff auf Benutzer, die den folgenden Kriterien entsprechen, beschränken:",
"The filter specifies which LDAP users shall have access to the %s instance." : "Der Filter gibt an, welche LDAP-Benutzer Zugriff auf die %s-Instanz haben sollen.",
+ "Verify settings and count users" : "Einstellungen überprüfen und Benutzer zählen",
"Saving" : "Speichern",
"Back" : "Zurück",
"Continue" : "Fortsetzen",
diff --git a/apps/user_ldap/l10n/de_DE.json b/apps/user_ldap/l10n/de_DE.json
index 3467cbc6082..8f3e46ff282 100644
--- a/apps/user_ldap/l10n/de_DE.json
+++ b/apps/user_ldap/l10n/de_DE.json
@@ -8,15 +8,32 @@
"No configuration specified" : "Keine Konfiguration angegeben",
"No data specified" : "Keine Daten angegeben",
" Could not set configuration %s" : "Die Konfiguration %s konnte nicht gesetzt werden",
+ "Action does not exist" : "Aktion existiert nicht",
"Configuration incorrect" : "Konfiguration nicht korrekt",
"Configuration incomplete" : "Konfiguration nicht vollständig",
"Configuration OK" : "Konfiguration OK",
"Select groups" : "Gruppen auswählen",
"Select object classes" : "Objektklassen auswählen",
+ "Please check the credentials, they seem to be wrong." : "Bitte überprüfen Sie die Anmeldeinformationen, sie sind anscheinend falsch.",
+ "Please specify the port, it could not be auto-detected." : "Bitte geben Sie den Port an, er konnte nicht automatisch erkannt werden.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Die Base DN konnte nicht automatisch erkannt werden, bitte überprüfen Sie Anmeldeinformationen, Host und Port.",
+ "Could not detect Base DN, please enter it manually." : "Die Base DN konnte nicht erkannt werden, bitte geben Sie sie manuell ein.",
"{nthServer}. Server" : "{nthServer}. - Server",
+ "No object found in the given Base DN. Please revise." : "Keine Objekte in der angegebenen Base DN gefunden, bitte überprüfen.",
+ "More then 1.000 directory entries available." : "Es sind mehr als 1.000 Verzeichniseinträge verfügbar.",
+ " entries available within the provided Base DN" : "Einträge in der angegebenen Base DN verfügbar",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Es ist ein Fehler aufgetreten. Bitte überprüfen Sie die Base DN wie auch die Verbindungseinstellungen und Anmeldeinformationen.",
"Do you really want to delete the current Server Configuration?" : "Soll die aktuelle Serverkonfiguration wirklich gelöscht werden?",
"Confirm Deletion" : "Löschen bestätigen",
+ "Mappings cleared successfully!" : "Zuordnungen erfolgreich gelöscht!",
+ "Error while clearing the mappings." : "Fehler beim Löschen der Zuordnungen.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Speichern fehlgeschlagen. Bitte stellen Sie sicher, dass die Datenbank in Betrieb ist. Bitte laden Sie vor dem Fortfahren neu.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Das Umschalten des Modus ermöglicht automatische LDAP-Abfragen. Abhängig von Ihrer LDAP-Größe können diese einige Zeit in Anspruch nehmen. Wollen Sie immer noch den Modus wechseln?",
+ "Mode switch" : "Modus umschalten",
"Select attributes" : "Attribute auswählen",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Benutzer nicht gefunden. Bitte überprüfen Sie Ihre Loginattribute und Ihren Benutzernamen. Gültiger Filter (zum Kopieren und Einfügen bei der Überprüfung auf der Kommandozeile): <br/>",
+ "User found and settings verified." : "Benutzer gefunden und Einstellungen überprüft.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Es ist ein Verbindungsfehler zum LDAP/AD aufgetreten, bitte überprüfen Sie Host, Port und Anmeldeinformationen.",
"_%s group found_::_%s groups found_" : ["%s Gruppe gefunden","%s Gruppen gefunden"],
"_%s user found_::_%s users found_" : ["%s Benutzer gefunden","%s Benutzer gefunden"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Das Anzeigename-Attribut des Benutzers konnte nicht gefunden werden. Bitte geben Sie es in den erweiterten LDAP-Einstellungen selber an.",
@@ -24,29 +41,46 @@
"Invalid Host" : "Ungültiger Host",
"Server" : "Server",
"Users" : "Benutzer",
+ "Login Attributes" : "Anmeldeattribute",
"Groups" : "Gruppen",
"Test Configuration" : "Testkonfiguration",
"Help" : "Hilfe",
"Groups meeting these criteria are available in %s:" : "Gruppen, auf die diese Kriterien zutreffen, sind verfügbar in %s:",
+ "Only these object classes:" : "Nur diese Objektklassen:",
+ "Only from these groups:" : "Nur aus diesen Gruppen:",
+ "Search groups" : "Gruppen suchen",
+ "Available groups" : "Verfügbare Gruppen",
+ "Selected groups" : "Ausgewählte Gruppen",
+ "Edit LDAP Query" : "LDAP-Abfrage bearbeiten",
+ "LDAP Filter:" : "LDAP-Filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Der Filter bestimmt, welche LDAP-Gruppen Zugriff auf die %s-Instanz haben sollen.",
"Test Filter" : "Testfilter",
+ "Verify settings and count groups" : "Einstellungen überprüfen und Gruppen zählen",
+ "LDAP / AD Username:" : "LDAP-/AD-Benutzername:",
+ "LDAP / AD Email Address:" : "LDAP-/AD-E-Mail-Adresse:",
"Other Attributes:" : "Andere Attribute:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Bestimmt den Filter, welcher bei einer Anmeldung angewandt wird. %%uid ersetzt den Benutzernamen bei der Anmeldung. Beispiel: \"uid=%%uid\"",
+ "Test Loginname" : "Loginnamen testen",
+ "Verify settings" : "Einstellungen überprüfen",
"1. Server" : "1. Server",
"%s. Server:" : "%s. Server:",
"Host" : "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Sie können das Protokoll auslassen, außer wenn Sie SSL benötigen. Beginnen Sie dann mit ldaps://",
"Port" : "Port",
+ "Detect Port" : "Port ermitteln",
"User DN" : "Benutzer-DN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Der DN des Benutzers, mit dem der LDAP-Bind durchgeführt werden soll, z.B. uid=agent,dc=example,dc=com. Für einen anonymen Zugriff lassen Sie DN und Passwort leer.",
"Password" : "Passwort",
"For anonymous access, leave DN and Password empty." : "Lassen Sie die Felder DN und Passwort für einen anonymen Zugang leer.",
"One Base DN per line" : "Einen Basis-DN pro Zeile",
"You can specify Base DN for users and groups in the Advanced tab" : " Sie können die Basis-DN für Benutzer und Gruppen im Reiter „Fortgeschritten“ angeben",
+ "Detect Base DN" : "Base DN ermitteln",
+ "Test Base DN" : "Base DN testen",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Verhindert automatische LDAP-Anfragen. Besser geeignet für größere Installationen, benötigt aber erweiterte LDAP-Kenntnisse.",
"Manually enter LDAP filters (recommended for large directories)" : "LDAP-Filter manuell eingeben (empfohlen für große Verzeichnisse)",
"Limit %s access to users meeting these criteria:" : "Den %s-Zugriff auf Benutzer, die den folgenden Kriterien entsprechen, beschränken:",
"The filter specifies which LDAP users shall have access to the %s instance." : "Der Filter gibt an, welche LDAP-Benutzer Zugriff auf die %s-Instanz haben sollen.",
+ "Verify settings and count users" : "Einstellungen überprüfen und Benutzer zählen",
"Saving" : "Speichern",
"Back" : "Zurück",
"Continue" : "Fortsetzen",
diff --git a/apps/user_ldap/l10n/el.js b/apps/user_ldap/l10n/el.js
index 018338ff51c..53e2e418a7f 100644
--- a/apps/user_ldap/l10n/el.js
+++ b/apps/user_ldap/l10n/el.js
@@ -10,6 +10,7 @@ OC.L10N.register(
"No configuration specified" : "Καμμία διαμόρφωση δεν προσδιορίστηκε",
"No data specified" : "Δεν προσδιορίστηκαν δεδομένα",
" Could not set configuration %s" : "Αδυναμία ρύθμισης %s",
+ "Action does not exist" : "Η ενέργεια δεν υπάρχει",
"Configuration incorrect" : "Η διαμόρφωση είναι λανθασμένη",
"Configuration incomplete" : "Η διαμόρφωση είναι ελλιπής",
"Configuration OK" : "Η διαμόρφωση είναι εντάξει",
@@ -17,14 +18,30 @@ OC.L10N.register(
"Select object classes" : "Επιλογή κλάσης αντικειμένων",
"Please check the credentials, they seem to be wrong." : "Παρακαλώ ελέγξτε τα στοιχεία, φαίνεται να είναι λάθος.",
"Please specify the port, it could not be auto-detected." : "Παρακαλώ ορίστε την θύρα, δεν ήταν εφικτό να εντοπιστεί αυτόματα.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Αδυναμία ανίχνευσης Base DN, παρακαλώ αναθεωρήστε τα διαπιστευτήρια, το διακομιστή και τη θύρα.",
+ "Could not detect Base DN, please enter it manually." : "Αδυναμία ανίχνευσης Base DN, παρακαλώ να το εισάγετε χειροκίνητα.",
"{nthServer}. Server" : "{nthServer}. Διακομιστής",
+ "No object found in the given Base DN. Please revise." : "Δεν βρέθηκε αντικείμενο στο δηλωθέν Base DN. Παρακαλώ αναθεωρήστε.",
"More then 1.000 directory entries available." : "Είναι διαθέσιμες περισσότερες από 1.000 εγγραφές καταλόγου.",
+ " entries available within the provided Base DN" : "διαθέσιμες καταχωρήσεις εντός του δηλωθέντος ",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Παρουσιάστηκε σφάλμα. Παρακαλούμε ελέγξτε το Base DN καθώς και τις ρυθμίσεις και τα διαπιστευτήρια σύνδεσης.",
"Do you really want to delete the current Server Configuration?" : "Θέλετε να διαγράψετε τις τρέχουσες ρυθμίσεις του διακομιστή;",
"Confirm Deletion" : "Επιβεβαίωση Διαγραφής",
"Mappings cleared successfully!" : "Η εκκαθάριση αντιστοιχιών ήταν επιτυχής!",
"Error while clearing the mappings." : "Σφάλμα κατά την εκκαθάριση των αντιστοιχιών.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Αποτυχία αποθήκευσης. Παρακαλούμε βεβαιωθείτε ότι η βάση δεδομένων λειτουργεί. Επαναφορτώστε πριν συνεχίσετε.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Η αλλαγή της κατάστασης θα ενεργοποιήσει αυτόματα ερωτήματα LDAP. Ανάλογα με το μέγεθος του LDAP αυτό μπορεί να διαρκέσει αρκετά. Θέλετε ακόμη να αλλάξετε κατάσταση λειτουργίας;",
+ "Mode switch" : "Αλλαγή κατάστασης",
"Select attributes" : "Επιλογή χαρακτηριστικών",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Δεν βρέθηκε ο χρήστης. Παρακαλούμε ελέγξτε ότι τις ιδιότητες σύνδεσης και το όνομα χρήστη. Ενεργό φίλτρο (για αντιγραφή και επικόλληση για επικύρωση σε γραμμή εντολών): ",
"User found and settings verified." : "Ο χρήστης βρέθηκε και οι ρυθμίσεις επιβεβαιώθηκαν.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Οι ρυθμίσεις επαληθεύτηκαν αλλά βρέθηκε ένας χρήστης. Μόνο ο πρώτος θα μπορέσει να συνδεθεί. Εξετάστε τη χρήση πιο επιλεκτικού φίλτρου.",
+ "An unspecified error occurred. Please check the settings and the log." : "Προέκυψε ένα απροσδιόριστο σφάλμα. Παρακαλούμε ελέγξτε τις ρυθμίσεςι και το αρχείο ακταγραφής.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Το φίλτρο αναζήτησης δεν είναι έγκυρο, πιθανώς λόγω συντακτικών προβλημάτων όπως μη ταίριασμα ανοίγματος και κλεισίματος αγκυλών. Παρακαλούμε διορθώστε.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Προέκυψε σφάλμα σύνδεσης στο LDAP / AD, παρακαλούμε ελέγξτε διακομιστή θύρα και διαπιστευτήρια.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Η κράτηση θέσης %uid απουσιάζει. Θα αντικατασταθεί με το όνομα σύνδεσης κατά το ερώτημα ",
+ "Please provide a login name to test against" : "Παρακαλούμε δώστε ένα όνομα σύνδεσης για να γίνει δοκιμή",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Το πεδίο ομάδας απενεργοποιήθηκε επειδή ο διακομιστής LDAP / AD δεν υποστηρίζει το memberOf.",
"_%s group found_::_%s groups found_" : ["%s ομάδα βρέθηκε","%s ομάδες βρέθηκαν"],
"_%s user found_::_%s users found_" : ["%s χρήστης βρέθηκε","%s χρήστες βρέθηκαν"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Δεν ήταν δυνατή η ανίχνευση της ιδιότητας του εμφανιζόμενου ονόματος χρήστη . Παρακαλείστε να το προσδιορίσετε στις προηγμένες ρυθμίσεις LDAP",
@@ -32,36 +49,50 @@ OC.L10N.register(
"Invalid Host" : "Άκυρος εξυπηρετητής",
"Server" : "Διακομιστής",
"Users" : "Χρήστες",
+ "Login Attributes" : "Ιδιότητες Σύνδεσης",
"Groups" : "Ομάδες",
"Test Configuration" : "Δοκιμαστικες ρυθμισεις",
"Help" : "Βοήθεια",
"Groups meeting these criteria are available in %s:" : "Οι ομάδες που πληρούν τα κριτήρια είναι διαθέσιμες σε %s:",
"Only these object classes:" : "Μόνο οι κλάσεις αντικειμένων:",
"Only from these groups:" : "Μόνο από τις ομάδες:",
+ "Search groups" : "Αναζήτηση ομάδων",
"Available groups" : "Διαθέσιμες ομάδες",
"Selected groups" : "Επιλεγμένες ομάδες",
+ "Edit LDAP Query" : "Επεξεργασία ερωτήματος ",
+ "LDAP Filter:" : "Φίλτρο LDAP:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Το φίλτρο καθορίζει ποιες ομάδες LDAP θα έχουν πρόσβαση στην εγκατάσταση %s.",
"Test Filter" : "Φίλτρο Ελέγχου",
"Verify settings and count groups" : "Επιβεβαίωση ρυθμίσεων και καταμέτρηση ομάδων",
+ "When logging in, %s will find the user based on the following attributes:" : "Κατά τη σύνδεση, το %s θα βρει το χρήστη βασιζόμενος στις ακόλουθες ιδιότητες:",
+ "LDAP / AD Username:" : "Όνομα χρήστη LDAP / AD:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Επιτρέπει σύνδεση με το όνομα χρήστη στο LDAP / AD, το οποίο είναι είτε uid ή samaccountname και θα ανιχνευθεί.",
+ "LDAP / AD Email Address:" : "Διεύθυνση ηλ. ταχυδρομείου LDAP / AD:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Επιτρέπει με χρήση μια ιδιότητας email. Τα mail και mailPrimaryAddress θα επιτραπούν.",
"Other Attributes:" : "Άλλες Ιδιότητες:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Ορίζει το φίλτρο που θα εφαρμοστεί, όταν επιχειριθεί σύνδεση. Το %%uid αντικαθιστά το όνομα χρήστη κατά τη σύνδεση. Παράδειγμα: \"uid=%%uid\"",
+ "Test Loginname" : "Δοκιμή ",
"Verify settings" : "Επιβεβαίωση ρυθμίσεων",
"1. Server" : "1. Διακομιστής",
"%s. Server:" : "%s. Διακομιστής:",
"Host" : "Διακομιστής",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Μπορείτε να παραλείψετε το πρωτόκολλο, εκτός αν απαιτείται SSL. Σε αυτή την περίπτωση ξεκινήστε με ldaps://",
"Port" : "Θύρα",
+ "Detect Port" : "Ανίχνευση Θύρας",
"User DN" : "User DN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Το DN του χρήστη πελάτη με το οποίο θα πρέπει να γίνει η σύνδεση, π.χ. uid=agent,dc=example,dc=com. Για χρήση χωρίς πιστοποίηση, αφήστε το DN και τον Κωδικό κενά.",
"Password" : "Συνθηματικό",
"For anonymous access, leave DN and Password empty." : "Για ανώνυμη πρόσβαση, αφήστε κενά τα πεδία DN και Pasword.",
"One Base DN per line" : "Ένα DN Βάσης ανά γραμμή ",
"You can specify Base DN for users and groups in the Advanced tab" : "Μπορείτε να καθορίσετε το Base DN για χρήστες και ομάδες από την καρτέλα Προηγμένες ρυθμίσεις",
+ "Detect Base DN" : "Ανίχνευση Base DN",
+ "Test Base DN" : "Δοκιμή ",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Αποφυγή αυτόματων αιτημάτων LDAP. Προτιμότερο για μεγαλύτερες εγκαταστάσεις, αλλά απαιτεί κάποιες γνώσεις LDAP.",
"Manually enter LDAP filters (recommended for large directories)" : "Εισάγετε με μη αυτόματο τρόπο φίλτρα LDAP (προτείνεται για μεγάλους καταλόγους)",
"Limit %s access to users meeting these criteria:" : "Περιορισμός της πρόσβασης %s σε χρήστες που πληρούν τα κριτήρια:",
"The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Οι πιο συνηθισμένες κλάσεις αντικειμένων για τους χρήστες είναι οι organizationalPerson, person, user, και inetOrgPerson. Εάν δεν είσαστε σίγουροι πιο κλάση να επιλέξετε, παρακαλώ συμβουλευτείτε τον διαχειριστή του καταλόγου σας.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Το φίλτρο καθορίζει ποιοι χρήστες LDAP θα έχουν πρόσβαση στην εγκατάσταση %s.",
+ "Verify settings and count users" : "Επαλήθευση ρυθμίσεων και καταμέτρηση χρηστών",
"Saving" : "Αποθήκευση",
"Back" : "Επιστροφή",
"Continue" : "Συνέχεια",
diff --git a/apps/user_ldap/l10n/el.json b/apps/user_ldap/l10n/el.json
index e55aa18d5a1..99a969e677f 100644
--- a/apps/user_ldap/l10n/el.json
+++ b/apps/user_ldap/l10n/el.json
@@ -8,6 +8,7 @@
"No configuration specified" : "Καμμία διαμόρφωση δεν προσδιορίστηκε",
"No data specified" : "Δεν προσδιορίστηκαν δεδομένα",
" Could not set configuration %s" : "Αδυναμία ρύθμισης %s",
+ "Action does not exist" : "Η ενέργεια δεν υπάρχει",
"Configuration incorrect" : "Η διαμόρφωση είναι λανθασμένη",
"Configuration incomplete" : "Η διαμόρφωση είναι ελλιπής",
"Configuration OK" : "Η διαμόρφωση είναι εντάξει",
@@ -15,14 +16,30 @@
"Select object classes" : "Επιλογή κλάσης αντικειμένων",
"Please check the credentials, they seem to be wrong." : "Παρακαλώ ελέγξτε τα στοιχεία, φαίνεται να είναι λάθος.",
"Please specify the port, it could not be auto-detected." : "Παρακαλώ ορίστε την θύρα, δεν ήταν εφικτό να εντοπιστεί αυτόματα.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Αδυναμία ανίχνευσης Base DN, παρακαλώ αναθεωρήστε τα διαπιστευτήρια, το διακομιστή και τη θύρα.",
+ "Could not detect Base DN, please enter it manually." : "Αδυναμία ανίχνευσης Base DN, παρακαλώ να το εισάγετε χειροκίνητα.",
"{nthServer}. Server" : "{nthServer}. Διακομιστής",
+ "No object found in the given Base DN. Please revise." : "Δεν βρέθηκε αντικείμενο στο δηλωθέν Base DN. Παρακαλώ αναθεωρήστε.",
"More then 1.000 directory entries available." : "Είναι διαθέσιμες περισσότερες από 1.000 εγγραφές καταλόγου.",
+ " entries available within the provided Base DN" : "διαθέσιμες καταχωρήσεις εντός του δηλωθέντος ",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Παρουσιάστηκε σφάλμα. Παρακαλούμε ελέγξτε το Base DN καθώς και τις ρυθμίσεις και τα διαπιστευτήρια σύνδεσης.",
"Do you really want to delete the current Server Configuration?" : "Θέλετε να διαγράψετε τις τρέχουσες ρυθμίσεις του διακομιστή;",
"Confirm Deletion" : "Επιβεβαίωση Διαγραφής",
"Mappings cleared successfully!" : "Η εκκαθάριση αντιστοιχιών ήταν επιτυχής!",
"Error while clearing the mappings." : "Σφάλμα κατά την εκκαθάριση των αντιστοιχιών.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Αποτυχία αποθήκευσης. Παρακαλούμε βεβαιωθείτε ότι η βάση δεδομένων λειτουργεί. Επαναφορτώστε πριν συνεχίσετε.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Η αλλαγή της κατάστασης θα ενεργοποιήσει αυτόματα ερωτήματα LDAP. Ανάλογα με το μέγεθος του LDAP αυτό μπορεί να διαρκέσει αρκετά. Θέλετε ακόμη να αλλάξετε κατάσταση λειτουργίας;",
+ "Mode switch" : "Αλλαγή κατάστασης",
"Select attributes" : "Επιλογή χαρακτηριστικών",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Δεν βρέθηκε ο χρήστης. Παρακαλούμε ελέγξτε ότι τις ιδιότητες σύνδεσης και το όνομα χρήστη. Ενεργό φίλτρο (για αντιγραφή και επικόλληση για επικύρωση σε γραμμή εντολών): ",
"User found and settings verified." : "Ο χρήστης βρέθηκε και οι ρυθμίσεις επιβεβαιώθηκαν.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Οι ρυθμίσεις επαληθεύτηκαν αλλά βρέθηκε ένας χρήστης. Μόνο ο πρώτος θα μπορέσει να συνδεθεί. Εξετάστε τη χρήση πιο επιλεκτικού φίλτρου.",
+ "An unspecified error occurred. Please check the settings and the log." : "Προέκυψε ένα απροσδιόριστο σφάλμα. Παρακαλούμε ελέγξτε τις ρυθμίσεςι και το αρχείο ακταγραφής.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Το φίλτρο αναζήτησης δεν είναι έγκυρο, πιθανώς λόγω συντακτικών προβλημάτων όπως μη ταίριασμα ανοίγματος και κλεισίματος αγκυλών. Παρακαλούμε διορθώστε.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Προέκυψε σφάλμα σύνδεσης στο LDAP / AD, παρακαλούμε ελέγξτε διακομιστή θύρα και διαπιστευτήρια.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Η κράτηση θέσης %uid απουσιάζει. Θα αντικατασταθεί με το όνομα σύνδεσης κατά το ερώτημα ",
+ "Please provide a login name to test against" : "Παρακαλούμε δώστε ένα όνομα σύνδεσης για να γίνει δοκιμή",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Το πεδίο ομάδας απενεργοποιήθηκε επειδή ο διακομιστής LDAP / AD δεν υποστηρίζει το memberOf.",
"_%s group found_::_%s groups found_" : ["%s ομάδα βρέθηκε","%s ομάδες βρέθηκαν"],
"_%s user found_::_%s users found_" : ["%s χρήστης βρέθηκε","%s χρήστες βρέθηκαν"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Δεν ήταν δυνατή η ανίχνευση της ιδιότητας του εμφανιζόμενου ονόματος χρήστη . Παρακαλείστε να το προσδιορίσετε στις προηγμένες ρυθμίσεις LDAP",
@@ -30,36 +47,50 @@
"Invalid Host" : "Άκυρος εξυπηρετητής",
"Server" : "Διακομιστής",
"Users" : "Χρήστες",
+ "Login Attributes" : "Ιδιότητες Σύνδεσης",
"Groups" : "Ομάδες",
"Test Configuration" : "Δοκιμαστικες ρυθμισεις",
"Help" : "Βοήθεια",
"Groups meeting these criteria are available in %s:" : "Οι ομάδες που πληρούν τα κριτήρια είναι διαθέσιμες σε %s:",
"Only these object classes:" : "Μόνο οι κλάσεις αντικειμένων:",
"Only from these groups:" : "Μόνο από τις ομάδες:",
+ "Search groups" : "Αναζήτηση ομάδων",
"Available groups" : "Διαθέσιμες ομάδες",
"Selected groups" : "Επιλεγμένες ομάδες",
+ "Edit LDAP Query" : "Επεξεργασία ερωτήματος ",
+ "LDAP Filter:" : "Φίλτρο LDAP:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Το φίλτρο καθορίζει ποιες ομάδες LDAP θα έχουν πρόσβαση στην εγκατάσταση %s.",
"Test Filter" : "Φίλτρο Ελέγχου",
"Verify settings and count groups" : "Επιβεβαίωση ρυθμίσεων και καταμέτρηση ομάδων",
+ "When logging in, %s will find the user based on the following attributes:" : "Κατά τη σύνδεση, το %s θα βρει το χρήστη βασιζόμενος στις ακόλουθες ιδιότητες:",
+ "LDAP / AD Username:" : "Όνομα χρήστη LDAP / AD:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Επιτρέπει σύνδεση με το όνομα χρήστη στο LDAP / AD, το οποίο είναι είτε uid ή samaccountname και θα ανιχνευθεί.",
+ "LDAP / AD Email Address:" : "Διεύθυνση ηλ. ταχυδρομείου LDAP / AD:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Επιτρέπει με χρήση μια ιδιότητας email. Τα mail και mailPrimaryAddress θα επιτραπούν.",
"Other Attributes:" : "Άλλες Ιδιότητες:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Ορίζει το φίλτρο που θα εφαρμοστεί, όταν επιχειριθεί σύνδεση. Το %%uid αντικαθιστά το όνομα χρήστη κατά τη σύνδεση. Παράδειγμα: \"uid=%%uid\"",
+ "Test Loginname" : "Δοκιμή ",
"Verify settings" : "Επιβεβαίωση ρυθμίσεων",
"1. Server" : "1. Διακομιστής",
"%s. Server:" : "%s. Διακομιστής:",
"Host" : "Διακομιστής",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Μπορείτε να παραλείψετε το πρωτόκολλο, εκτός αν απαιτείται SSL. Σε αυτή την περίπτωση ξεκινήστε με ldaps://",
"Port" : "Θύρα",
+ "Detect Port" : "Ανίχνευση Θύρας",
"User DN" : "User DN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Το DN του χρήστη πελάτη με το οποίο θα πρέπει να γίνει η σύνδεση, π.χ. uid=agent,dc=example,dc=com. Για χρήση χωρίς πιστοποίηση, αφήστε το DN και τον Κωδικό κενά.",
"Password" : "Συνθηματικό",
"For anonymous access, leave DN and Password empty." : "Για ανώνυμη πρόσβαση, αφήστε κενά τα πεδία DN και Pasword.",
"One Base DN per line" : "Ένα DN Βάσης ανά γραμμή ",
"You can specify Base DN for users and groups in the Advanced tab" : "Μπορείτε να καθορίσετε το Base DN για χρήστες και ομάδες από την καρτέλα Προηγμένες ρυθμίσεις",
+ "Detect Base DN" : "Ανίχνευση Base DN",
+ "Test Base DN" : "Δοκιμή ",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Αποφυγή αυτόματων αιτημάτων LDAP. Προτιμότερο για μεγαλύτερες εγκαταστάσεις, αλλά απαιτεί κάποιες γνώσεις LDAP.",
"Manually enter LDAP filters (recommended for large directories)" : "Εισάγετε με μη αυτόματο τρόπο φίλτρα LDAP (προτείνεται για μεγάλους καταλόγους)",
"Limit %s access to users meeting these criteria:" : "Περιορισμός της πρόσβασης %s σε χρήστες που πληρούν τα κριτήρια:",
"The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Οι πιο συνηθισμένες κλάσεις αντικειμένων για τους χρήστες είναι οι organizationalPerson, person, user, και inetOrgPerson. Εάν δεν είσαστε σίγουροι πιο κλάση να επιλέξετε, παρακαλώ συμβουλευτείτε τον διαχειριστή του καταλόγου σας.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Το φίλτρο καθορίζει ποιοι χρήστες LDAP θα έχουν πρόσβαση στην εγκατάσταση %s.",
+ "Verify settings and count users" : "Επαλήθευση ρυθμίσεων και καταμέτρηση χρηστών",
"Saving" : "Αποθήκευση",
"Back" : "Επιστροφή",
"Continue" : "Συνέχεια",
diff --git a/apps/user_ldap/l10n/en_GB.js b/apps/user_ldap/l10n/en_GB.js
index 4cfbae15ced..9cf7824c8ac 100644
--- a/apps/user_ldap/l10n/en_GB.js
+++ b/apps/user_ldap/l10n/en_GB.js
@@ -10,15 +10,38 @@ OC.L10N.register(
"No configuration specified" : "No configuration specified",
"No data specified" : "No data specified",
" Could not set configuration %s" : " Could not set configuration %s",
+ "Action does not exist" : "Action does not exist",
"Configuration incorrect" : "Configuration incorrect",
"Configuration incomplete" : "Configuration incomplete",
"Configuration OK" : "Configuration OK",
"Select groups" : "Select groups",
"Select object classes" : "Select object classes",
+ "Please check the credentials, they seem to be wrong." : "Please check the credentials, they seem to be wrong.",
+ "Please specify the port, it could not be auto-detected." : "Please specify the port, it could not be auto-detected.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN could not be auto-detected, please revise credentials, host and port.",
+ "Could not detect Base DN, please enter it manually." : "Could not detect Base DN, please enter it manually.",
"{nthServer}. Server" : "{nthServer}. Server",
+ "No object found in the given Base DN. Please revise." : "No object found in the given Base DN. Please revise.",
+ "More then 1.000 directory entries available." : "More than 1,000 directory entries available.",
+ " entries available within the provided Base DN" : " entries available within the provided Base DN",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "An error occurred. Please check the Base DN, as well as connection settings and credentials.",
"Do you really want to delete the current Server Configuration?" : "Do you really want to delete the current Server Configuration?",
"Confirm Deletion" : "Confirm Deletion",
+ "Mappings cleared successfully!" : "Mappings cleared successfully!",
+ "Error while clearing the mappings." : "Error whilst clearing the mappings.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Saving failed. Please make sure the database is in operation. Reload before continuing.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?",
+ "Mode switch" : "Mode switch",
"Select attributes" : "Select attributes",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>",
+ "User found and settings verified." : "User found and settings verified.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter.",
+ "An unspecified error occurred. Please check the settings and the log." : "An unspecified error occurred. Please check the settings and the log.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "The search filter is invalid, probably due to syntax issues like an uneven number of opened and closed brackets. Please revise.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "A connection error to LDAP / AD occurred, please check host, port and credentials.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD.",
+ "Please provide a login name to test against" : "Please provide a login name to test against",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "The group box was disabled, because the LDAP / AD server does not support memberOf.",
"_%s group found_::_%s groups found_" : ["%s group found","%s groups found"],
"_%s user found_::_%s users found_" : ["%s user found","%s users found"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings.",
@@ -26,29 +49,50 @@ OC.L10N.register(
"Invalid Host" : "Invalid Host",
"Server" : "Server",
"Users" : "Users",
+ "Login Attributes" : "Login Attributes",
"Groups" : "Groups",
"Test Configuration" : "Test Configuration",
"Help" : "Help",
"Groups meeting these criteria are available in %s:" : "Groups meeting these criteria are available in %s:",
+ "Only these object classes:" : "Only these object classes:",
+ "Only from these groups:" : "Only from these groups:",
+ "Search groups" : "Search groups",
+ "Available groups" : "Available groups",
+ "Selected groups" : "Selected groups",
+ "Edit LDAP Query" : "Edit LDAP Query",
+ "LDAP Filter:" : "LDAP Filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "The filter specifies which LDAP groups shall have access to the %s instance.",
"Test Filter" : "Test Filter",
+ "Verify settings and count groups" : "Verify settings and count groups",
+ "When logging in, %s will find the user based on the following attributes:" : "When logging in, %s will find the user based on the following attributes:",
+ "LDAP / AD Username:" : "LDAP / AD Username:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected.",
+ "LDAP / AD Email Address:" : "LDAP / AD Email Address:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed.",
"Other Attributes:" : "Other Attributes:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"",
+ "Test Loginname" : "Test Loginname",
+ "Verify settings" : "Verify settings",
"1. Server" : "1. Server",
"%s. Server:" : "%s. Server:",
"Host" : "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "You can omit the protocol, except you require SSL. Then start with ldaps://",
"Port" : "Port",
+ "Detect Port" : "Detect Port",
"User DN" : "User DN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty.",
"Password" : "Password",
"For anonymous access, leave DN and Password empty." : "For anonymous access, leave DN and Password empty.",
"One Base DN per line" : "One Base DN per line",
"You can specify Base DN for users and groups in the Advanced tab" : "You can specify Base DN for users and groups in the Advanced tab",
+ "Detect Base DN" : "Detect Base DN",
+ "Test Base DN" : "Test Base DN",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge.",
"Manually enter LDAP filters (recommended for large directories)" : "Manually enter LDAP filters (recommended for large directories)",
"Limit %s access to users meeting these criteria:" : "Limit %s access to users meeting these criteria:",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin.",
"The filter specifies which LDAP users shall have access to the %s instance." : "The filter specifies which LDAP users shall have access to the %s instance.",
+ "Verify settings and count users" : "Verify settings and count users",
"Saving" : "Saving",
"Back" : "Back",
"Continue" : "Continue",
diff --git a/apps/user_ldap/l10n/en_GB.json b/apps/user_ldap/l10n/en_GB.json
index 5a352c0ffa6..f5a46aa6b51 100644
--- a/apps/user_ldap/l10n/en_GB.json
+++ b/apps/user_ldap/l10n/en_GB.json
@@ -8,15 +8,38 @@
"No configuration specified" : "No configuration specified",
"No data specified" : "No data specified",
" Could not set configuration %s" : " Could not set configuration %s",
+ "Action does not exist" : "Action does not exist",
"Configuration incorrect" : "Configuration incorrect",
"Configuration incomplete" : "Configuration incomplete",
"Configuration OK" : "Configuration OK",
"Select groups" : "Select groups",
"Select object classes" : "Select object classes",
+ "Please check the credentials, they seem to be wrong." : "Please check the credentials, they seem to be wrong.",
+ "Please specify the port, it could not be auto-detected." : "Please specify the port, it could not be auto-detected.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN could not be auto-detected, please revise credentials, host and port.",
+ "Could not detect Base DN, please enter it manually." : "Could not detect Base DN, please enter it manually.",
"{nthServer}. Server" : "{nthServer}. Server",
+ "No object found in the given Base DN. Please revise." : "No object found in the given Base DN. Please revise.",
+ "More then 1.000 directory entries available." : "More than 1,000 directory entries available.",
+ " entries available within the provided Base DN" : " entries available within the provided Base DN",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "An error occurred. Please check the Base DN, as well as connection settings and credentials.",
"Do you really want to delete the current Server Configuration?" : "Do you really want to delete the current Server Configuration?",
"Confirm Deletion" : "Confirm Deletion",
+ "Mappings cleared successfully!" : "Mappings cleared successfully!",
+ "Error while clearing the mappings." : "Error whilst clearing the mappings.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Saving failed. Please make sure the database is in operation. Reload before continuing.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?",
+ "Mode switch" : "Mode switch",
"Select attributes" : "Select attributes",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>",
+ "User found and settings verified." : "User found and settings verified.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter.",
+ "An unspecified error occurred. Please check the settings and the log." : "An unspecified error occurred. Please check the settings and the log.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "The search filter is invalid, probably due to syntax issues like an uneven number of opened and closed brackets. Please revise.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "A connection error to LDAP / AD occurred, please check host, port and credentials.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD.",
+ "Please provide a login name to test against" : "Please provide a login name to test against",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "The group box was disabled, because the LDAP / AD server does not support memberOf.",
"_%s group found_::_%s groups found_" : ["%s group found","%s groups found"],
"_%s user found_::_%s users found_" : ["%s user found","%s users found"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings.",
@@ -24,29 +47,50 @@
"Invalid Host" : "Invalid Host",
"Server" : "Server",
"Users" : "Users",
+ "Login Attributes" : "Login Attributes",
"Groups" : "Groups",
"Test Configuration" : "Test Configuration",
"Help" : "Help",
"Groups meeting these criteria are available in %s:" : "Groups meeting these criteria are available in %s:",
+ "Only these object classes:" : "Only these object classes:",
+ "Only from these groups:" : "Only from these groups:",
+ "Search groups" : "Search groups",
+ "Available groups" : "Available groups",
+ "Selected groups" : "Selected groups",
+ "Edit LDAP Query" : "Edit LDAP Query",
+ "LDAP Filter:" : "LDAP Filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "The filter specifies which LDAP groups shall have access to the %s instance.",
"Test Filter" : "Test Filter",
+ "Verify settings and count groups" : "Verify settings and count groups",
+ "When logging in, %s will find the user based on the following attributes:" : "When logging in, %s will find the user based on the following attributes:",
+ "LDAP / AD Username:" : "LDAP / AD Username:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected.",
+ "LDAP / AD Email Address:" : "LDAP / AD Email Address:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed.",
"Other Attributes:" : "Other Attributes:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"",
+ "Test Loginname" : "Test Loginname",
+ "Verify settings" : "Verify settings",
"1. Server" : "1. Server",
"%s. Server:" : "%s. Server:",
"Host" : "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "You can omit the protocol, except you require SSL. Then start with ldaps://",
"Port" : "Port",
+ "Detect Port" : "Detect Port",
"User DN" : "User DN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty.",
"Password" : "Password",
"For anonymous access, leave DN and Password empty." : "For anonymous access, leave DN and Password empty.",
"One Base DN per line" : "One Base DN per line",
"You can specify Base DN for users and groups in the Advanced tab" : "You can specify Base DN for users and groups in the Advanced tab",
+ "Detect Base DN" : "Detect Base DN",
+ "Test Base DN" : "Test Base DN",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge.",
"Manually enter LDAP filters (recommended for large directories)" : "Manually enter LDAP filters (recommended for large directories)",
"Limit %s access to users meeting these criteria:" : "Limit %s access to users meeting these criteria:",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin.",
"The filter specifies which LDAP users shall have access to the %s instance." : "The filter specifies which LDAP users shall have access to the %s instance.",
+ "Verify settings and count users" : "Verify settings and count users",
"Saving" : "Saving",
"Back" : "Back",
"Continue" : "Continue",
diff --git a/apps/user_ldap/l10n/it.js b/apps/user_ldap/l10n/it.js
index f0b06342af2..7a1833f0e2e 100644
--- a/apps/user_ldap/l10n/it.js
+++ b/apps/user_ldap/l10n/it.js
@@ -10,15 +10,38 @@ OC.L10N.register(
"No configuration specified" : "Nessuna configurazione specificata",
"No data specified" : "Nessun dato specificato",
" Could not set configuration %s" : "Impossibile impostare la configurazione %s",
+ "Action does not exist" : "L'azione non esiste",
"Configuration incorrect" : "Configurazione non corretta",
"Configuration incomplete" : "Configurazione incompleta",
"Configuration OK" : "Configurazione corretta",
"Select groups" : "Seleziona i gruppi",
"Select object classes" : "Seleziona le classi di oggetti",
+ "Please check the credentials, they seem to be wrong." : "Controlla le credenziali, sembrano essere errate.",
+ "Please specify the port, it could not be auto-detected." : "Specifica la porta, potrebbe non essere rilevata automaticamente.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Il DN base non può essere rilevato automaticamente, controlla le credenziali, l'host e la porta.",
+ "Could not detect Base DN, please enter it manually." : "Impossibile rilevare il DN base, digitalo manualmente.",
"{nthServer}. Server" : "{nthServer}. server",
+ "No object found in the given Base DN. Please revise." : "Nessun oggetto trovato nel DN base specificato. Controlla.",
+ "More then 1.000 directory entries available." : "Più di 1.000 cartelle disponibili.",
+ " entries available within the provided Base DN" : "voci disponibili all'interno del DN base",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Si è verificato un errore. Controlla il DN base, così come le impostazioni di connessione e le credenziali.",
"Do you really want to delete the current Server Configuration?" : "Vuoi davvero eliminare la configurazione attuale del server?",
"Confirm Deletion" : "Conferma l'eliminazione",
+ "Mappings cleared successfully!" : "Associazioni cancellate correttamente!",
+ "Error while clearing the mappings." : "Errore durante la cancellazione delle associazioni.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Salvataggio non riuscito. Assicurati che il database sia operativo. Ricarica prima di continuare.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Il cambio di modalità abiliterà le query LDAP automatiche. In base alla dimensione di LDAP, potrebbero richiedere del tempo. Vuoi ancora cambiare modalità?",
+ "Mode switch" : "Cambio modalità",
"Select attributes" : "Seleziona gli attributi",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Utente non trovato. Controlla i tuoi attributi di accesso e il nome utente.\nFiltro effettivo (copiare e incollare per la convalida della riga di comando):<br/>",
+ "User found and settings verified." : "Utente trovato e impostazioni verificate.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Le impostazioni sono state verificate, ma è stato trovato un utente. Solo il primo sarà in grado di accedere. Considera un filtro più restrittivo.",
+ "An unspecified error occurred. Please check the settings and the log." : "Si è non specificato un errore sconosciuto. Controlla le impostazioni e il file di log.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Il filtro di ricerca non è valido, probabilmente a causa di problemi di sintassi come un numero dispari di parentesi aperte e chiuse. Controlla.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Si è verificato un errore di connessione a LDAP / AD, controlla l'host, la porta e le credenziali.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Manca il segnaposto %uid. Sarà sostituito con il nome di accesso nelle query a LDAP / AD.",
+ "Please provide a login name to test against" : "Fornisci un nome di accesso da provare",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "La casella dei gruppi è stata disabilitata, poiché il server LDAP / AD non supporta memberOf.",
"_%s group found_::_%s groups found_" : ["%s gruppo trovato","%s gruppi trovati"],
"_%s user found_::_%s users found_" : ["%s utente trovato","%s utenti trovati"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Impossibile rilevare l'attributo nome visualizzato dell'utente. Specificalo nelle impostazioni avanzate di ldap.",
@@ -26,29 +49,50 @@ OC.L10N.register(
"Invalid Host" : "Host non valido",
"Server" : "Server",
"Users" : "Utenti",
+ "Login Attributes" : "Attributi di accesso",
"Groups" : "Gruppi",
"Test Configuration" : "Prova configurazione",
"Help" : "Aiuto",
"Groups meeting these criteria are available in %s:" : "I gruppi che corrispondono a questi criteri sono disponibili in %s:",
+ "Only these object classes:" : "Solo queste classi di oggetti:",
+ "Only from these groups:" : "Solo da questi gruppi:",
+ "Search groups" : "Cerca gruppi",
+ "Available groups" : "Gruppi disponibili",
+ "Selected groups" : "Gruppi selezionati",
+ "Edit LDAP Query" : "Modifica query LDAP",
+ "LDAP Filter:" : "Filtro LDAP:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Il filtro specifica quali gruppi LDAP devono avere accesso all'istanza %s.",
"Test Filter" : "Prova filtro",
+ "Verify settings and count groups" : "Verifica le impostazioni e conta i gruppi",
+ "When logging in, %s will find the user based on the following attributes:" : "Quando accedi, %s troverà l'utente sulla base dei seguenti attributi:",
+ "LDAP / AD Username:" : "Nome utente LDAP / AD:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Consente l'accesso tramite il nome utente LDAP / AD, può essere sia uid o samaccountname e sarà rilevato.",
+ "LDAP / AD Email Address:" : "Indirizzo email LDAP / AD:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Consente l'accesso tramite l'attributo email. Mail e mailPrimaryAddress saranno consentiti.",
"Other Attributes:" : "Altri attributi:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Specifica quale filtro utilizzare quando si tenta l'accesso. %%uid sostituisce il nome utente all'atto dell'accesso. Esempio: \"uid=%%uid\"",
+ "Test Loginname" : "Prova nome di accesso",
+ "Verify settings" : "Verifica impostazioni",
"1. Server" : "1. server",
"%s. Server:" : "%s. server:",
"Host" : "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "È possibile omettere il protocollo, ad eccezione se è necessario SSL. Quindi inizia con ldaps://",
"Port" : "Porta",
+ "Detect Port" : "Rileva porta",
"User DN" : "DN utente",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Il DN per il client dell'utente con cui deve essere associato, ad esempio uid=agente,dc=esempio,dc=com. Per l'accesso anonimo, lasciare vuoti i campi DN e Password",
"Password" : "Password",
"For anonymous access, leave DN and Password empty." : "Per l'accesso anonimo, lasciare vuoti i campi DN e Password",
"One Base DN per line" : "Un DN base per riga",
"You can specify Base DN for users and groups in the Advanced tab" : "Puoi specificare una DN base per gli utenti ed i gruppi nella scheda Avanzate",
+ "Detect Base DN" : "Rileva DN base",
+ "Test Base DN" : "Rileva DN base",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Impedisce le richieste LDAP automatiche. Meglio per installazioni più grandi, ma richiede una certa conoscenza di LDAP.",
"Manually enter LDAP filters (recommended for large directories)" : "Digita manualmente i filtri LDAP (consigliato per directory grandi)",
"Limit %s access to users meeting these criteria:" : "Limita l'accesso a %s ai gruppi che verificano questi criteri:",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Le classi di oggetti più comuni per gli utenti sono organizationalPerson, person, user, e inetOrgPerson. Se non sei sicuro su quale classe di oggetti selezionare, consulta l'amministratore della tua directory.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Il filtro specifica quali utenti LDAP devono avere accesso all'istanza %s.",
+ "Verify settings and count users" : "Verifica le impostazioni e conta gli utenti",
"Saving" : "Salvataggio",
"Back" : "Indietro",
"Continue" : "Continua",
diff --git a/apps/user_ldap/l10n/it.json b/apps/user_ldap/l10n/it.json
index 115bdb3b0cd..1e12daa1c28 100644
--- a/apps/user_ldap/l10n/it.json
+++ b/apps/user_ldap/l10n/it.json
@@ -8,15 +8,38 @@
"No configuration specified" : "Nessuna configurazione specificata",
"No data specified" : "Nessun dato specificato",
" Could not set configuration %s" : "Impossibile impostare la configurazione %s",
+ "Action does not exist" : "L'azione non esiste",
"Configuration incorrect" : "Configurazione non corretta",
"Configuration incomplete" : "Configurazione incompleta",
"Configuration OK" : "Configurazione corretta",
"Select groups" : "Seleziona i gruppi",
"Select object classes" : "Seleziona le classi di oggetti",
+ "Please check the credentials, they seem to be wrong." : "Controlla le credenziali, sembrano essere errate.",
+ "Please specify the port, it could not be auto-detected." : "Specifica la porta, potrebbe non essere rilevata automaticamente.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Il DN base non può essere rilevato automaticamente, controlla le credenziali, l'host e la porta.",
+ "Could not detect Base DN, please enter it manually." : "Impossibile rilevare il DN base, digitalo manualmente.",
"{nthServer}. Server" : "{nthServer}. server",
+ "No object found in the given Base DN. Please revise." : "Nessun oggetto trovato nel DN base specificato. Controlla.",
+ "More then 1.000 directory entries available." : "Più di 1.000 cartelle disponibili.",
+ " entries available within the provided Base DN" : "voci disponibili all'interno del DN base",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Si è verificato un errore. Controlla il DN base, così come le impostazioni di connessione e le credenziali.",
"Do you really want to delete the current Server Configuration?" : "Vuoi davvero eliminare la configurazione attuale del server?",
"Confirm Deletion" : "Conferma l'eliminazione",
+ "Mappings cleared successfully!" : "Associazioni cancellate correttamente!",
+ "Error while clearing the mappings." : "Errore durante la cancellazione delle associazioni.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Salvataggio non riuscito. Assicurati che il database sia operativo. Ricarica prima di continuare.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Il cambio di modalità abiliterà le query LDAP automatiche. In base alla dimensione di LDAP, potrebbero richiedere del tempo. Vuoi ancora cambiare modalità?",
+ "Mode switch" : "Cambio modalità",
"Select attributes" : "Seleziona gli attributi",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Utente non trovato. Controlla i tuoi attributi di accesso e il nome utente.\nFiltro effettivo (copiare e incollare per la convalida della riga di comando):<br/>",
+ "User found and settings verified." : "Utente trovato e impostazioni verificate.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Le impostazioni sono state verificate, ma è stato trovato un utente. Solo il primo sarà in grado di accedere. Considera un filtro più restrittivo.",
+ "An unspecified error occurred. Please check the settings and the log." : "Si è non specificato un errore sconosciuto. Controlla le impostazioni e il file di log.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Il filtro di ricerca non è valido, probabilmente a causa di problemi di sintassi come un numero dispari di parentesi aperte e chiuse. Controlla.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Si è verificato un errore di connessione a LDAP / AD, controlla l'host, la porta e le credenziali.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Manca il segnaposto %uid. Sarà sostituito con il nome di accesso nelle query a LDAP / AD.",
+ "Please provide a login name to test against" : "Fornisci un nome di accesso da provare",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "La casella dei gruppi è stata disabilitata, poiché il server LDAP / AD non supporta memberOf.",
"_%s group found_::_%s groups found_" : ["%s gruppo trovato","%s gruppi trovati"],
"_%s user found_::_%s users found_" : ["%s utente trovato","%s utenti trovati"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Impossibile rilevare l'attributo nome visualizzato dell'utente. Specificalo nelle impostazioni avanzate di ldap.",
@@ -24,29 +47,50 @@
"Invalid Host" : "Host non valido",
"Server" : "Server",
"Users" : "Utenti",
+ "Login Attributes" : "Attributi di accesso",
"Groups" : "Gruppi",
"Test Configuration" : "Prova configurazione",
"Help" : "Aiuto",
"Groups meeting these criteria are available in %s:" : "I gruppi che corrispondono a questi criteri sono disponibili in %s:",
+ "Only these object classes:" : "Solo queste classi di oggetti:",
+ "Only from these groups:" : "Solo da questi gruppi:",
+ "Search groups" : "Cerca gruppi",
+ "Available groups" : "Gruppi disponibili",
+ "Selected groups" : "Gruppi selezionati",
+ "Edit LDAP Query" : "Modifica query LDAP",
+ "LDAP Filter:" : "Filtro LDAP:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Il filtro specifica quali gruppi LDAP devono avere accesso all'istanza %s.",
"Test Filter" : "Prova filtro",
+ "Verify settings and count groups" : "Verifica le impostazioni e conta i gruppi",
+ "When logging in, %s will find the user based on the following attributes:" : "Quando accedi, %s troverà l'utente sulla base dei seguenti attributi:",
+ "LDAP / AD Username:" : "Nome utente LDAP / AD:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Consente l'accesso tramite il nome utente LDAP / AD, può essere sia uid o samaccountname e sarà rilevato.",
+ "LDAP / AD Email Address:" : "Indirizzo email LDAP / AD:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Consente l'accesso tramite l'attributo email. Mail e mailPrimaryAddress saranno consentiti.",
"Other Attributes:" : "Altri attributi:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Specifica quale filtro utilizzare quando si tenta l'accesso. %%uid sostituisce il nome utente all'atto dell'accesso. Esempio: \"uid=%%uid\"",
+ "Test Loginname" : "Prova nome di accesso",
+ "Verify settings" : "Verifica impostazioni",
"1. Server" : "1. server",
"%s. Server:" : "%s. server:",
"Host" : "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "È possibile omettere il protocollo, ad eccezione se è necessario SSL. Quindi inizia con ldaps://",
"Port" : "Porta",
+ "Detect Port" : "Rileva porta",
"User DN" : "DN utente",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "Il DN per il client dell'utente con cui deve essere associato, ad esempio uid=agente,dc=esempio,dc=com. Per l'accesso anonimo, lasciare vuoti i campi DN e Password",
"Password" : "Password",
"For anonymous access, leave DN and Password empty." : "Per l'accesso anonimo, lasciare vuoti i campi DN e Password",
"One Base DN per line" : "Un DN base per riga",
"You can specify Base DN for users and groups in the Advanced tab" : "Puoi specificare una DN base per gli utenti ed i gruppi nella scheda Avanzate",
+ "Detect Base DN" : "Rileva DN base",
+ "Test Base DN" : "Rileva DN base",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Impedisce le richieste LDAP automatiche. Meglio per installazioni più grandi, ma richiede una certa conoscenza di LDAP.",
"Manually enter LDAP filters (recommended for large directories)" : "Digita manualmente i filtri LDAP (consigliato per directory grandi)",
"Limit %s access to users meeting these criteria:" : "Limita l'accesso a %s ai gruppi che verificano questi criteri:",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Le classi di oggetti più comuni per gli utenti sono organizationalPerson, person, user, e inetOrgPerson. Se non sei sicuro su quale classe di oggetti selezionare, consulta l'amministratore della tua directory.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Il filtro specifica quali utenti LDAP devono avere accesso all'istanza %s.",
+ "Verify settings and count users" : "Verifica le impostazioni e conta gli utenti",
"Saving" : "Salvataggio",
"Back" : "Indietro",
"Continue" : "Continua",
diff --git a/apps/user_ldap/l10n/ja.js b/apps/user_ldap/l10n/ja.js
index fd2ef9c9145..6dda509053a 100644
--- a/apps/user_ldap/l10n/ja.js
+++ b/apps/user_ldap/l10n/ja.js
@@ -30,8 +30,11 @@ OC.L10N.register(
"Test Configuration" : "設定をテスト",
"Help" : "ヘルプ",
"Groups meeting these criteria are available in %s:" : "これらの基準を満たすグループが %s で利用可能:",
+ "LDAP Filter:" : "LDAP フィルタ:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "フィルターは、どの LDAP グループが %s にアクセスするかを指定します。",
"Test Filter" : "フィルターをテスト",
+ "LDAP / AD Username:" : "LDAP / AD ユーザ名:",
+ "LDAP / AD Email Address:" : "LDAP / AD メールアドレス:",
"Other Attributes:" : "その他の属性:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "ログイン実行時に適用するフィルターを定義します。%%uid にはログイン操作におけるユーザー名が入ります。例: \"uid=%%uid\"",
"1. Server" : "1. Server",
diff --git a/apps/user_ldap/l10n/ja.json b/apps/user_ldap/l10n/ja.json
index 7117cb0ec17..d616a84e457 100644
--- a/apps/user_ldap/l10n/ja.json
+++ b/apps/user_ldap/l10n/ja.json
@@ -28,8 +28,11 @@
"Test Configuration" : "設定をテスト",
"Help" : "ヘルプ",
"Groups meeting these criteria are available in %s:" : "これらの基準を満たすグループが %s で利用可能:",
+ "LDAP Filter:" : "LDAP フィルタ:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "フィルターは、どの LDAP グループが %s にアクセスするかを指定します。",
"Test Filter" : "フィルターをテスト",
+ "LDAP / AD Username:" : "LDAP / AD ユーザ名:",
+ "LDAP / AD Email Address:" : "LDAP / AD メールアドレス:",
"Other Attributes:" : "その他の属性:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "ログイン実行時に適用するフィルターを定義します。%%uid にはログイン操作におけるユーザー名が入ります。例: \"uid=%%uid\"",
"1. Server" : "1. Server",
diff --git a/apps/user_ldap/l10n/nl.js b/apps/user_ldap/l10n/nl.js
index 12fead8651a..32314097c49 100644
--- a/apps/user_ldap/l10n/nl.js
+++ b/apps/user_ldap/l10n/nl.js
@@ -10,15 +10,38 @@ OC.L10N.register(
"No configuration specified" : "Geen configuratie opgegeven",
"No data specified" : "Geen gegevens verstrekt",
" Could not set configuration %s" : "Kon configuratie %s niet instellen",
+ "Action does not exist" : "Actie bestaat niet",
"Configuration incorrect" : "Configuratie onjuist",
"Configuration incomplete" : "Configuratie incompleet",
"Configuration OK" : "Configuratie OK",
"Select groups" : "Selecteer groepen",
"Select object classes" : "Selecteer objectklasse",
+ "Please check the credentials, they seem to be wrong." : "Controleer de inloggegevens, ze lijken onjuist.",
+ "Please specify the port, it could not be auto-detected." : "Geef de poort op, die kon niet automatisch worden vastgesteld.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Basis DN kon niet automatisch worden vastgesteld, herstel inloggegevens, server en poort.",
+ "Could not detect Base DN, please enter it manually." : "Kon basis DN niet vaststellen, voer de gegevens handmatig in.",
"{nthServer}. Server" : "{nthServer}. Server",
+ "No object found in the given Base DN. Please revise." : "Geen object gevonden in de basis DN. Review instellingen.",
+ "More then 1.000 directory entries available." : "Meer dan 1.000 directoryobjecten beschikbaar.",
+ " entries available within the provided Base DN" : "accounts beschikbaar binnen de provider Basis DN",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Er trad een fout op. Controleer de Basis DN en de verbindingsinstellingen en inloggegevens.",
"Do you really want to delete the current Server Configuration?" : "Wilt u werkelijk de huidige Serverconfiguratie verwijderen?",
"Confirm Deletion" : "Bevestig verwijderen",
+ "Mappings cleared successfully!" : "Mappings succesvol schoongemaakt!",
+ "Error while clearing the mappings." : "Fout bij opschonen mappings.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Opslaan mislukt. Verifieer dat de database draait. Herlaad voordat u verder gaat.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Omschakelen van de modus schakelt automatische LDAP opvragingen in. Afhankelijk van uw LDAP omvang kan dat even duren. Wilt u nog steeds omschakelen?",
+ "Mode switch" : "Omschakelen modus",
"Select attributes" : "Selecteer attributen",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Gebruiker niet gevonden. Verifieer de inloggegevens en gebruikersnaam. Effectief filter (kopiëren en plakken voor commandoregel validatie): <br/>",
+ "User found and settings verified." : "Gebruiker gevonden en instellingen geverifieerd.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Instellingen geverifieerd, slechts één gebruiker gevonden. Alleen de eerste kan inloggen. Overweeg een krapper filter.",
+ "An unspecified error occurred. Please check the settings and the log." : "Er trad een ongedefinieerde fout op. Controleer de instellingen en de logging.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Het zoekfilter is ongeldig, waarschijnlijk door syntax problemen zoals een ongelijk aantal open- en sluithaakjes. Graag aanpassen.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Er trad een verbindingsfout naar LDAP / AD op, verifieer servernaam, poort en inloggegevens.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "De %uid opvultekst ontbreekt. Die wordt vervangen door de inlognaam bij het bevragen van LDAP / AD.",
+ "Please provide a login name to test against" : "Geef een inlognaam op om opnieuw tegen te testen",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "De groepsbox was uitgeschakeld omdat de LDAP / AD server het attribuut memberOf niet ondersteunt.",
"_%s group found_::_%s groups found_" : ["%s groep gevonden","%s groepen gevonden"],
"_%s user found_::_%s users found_" : ["%s gebruiker gevonden","%s gebruikers gevonden"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Kon het weergavenaam attribuut van de gebruiker niet vinden. Geef het zelf op in de geavanceerde ldap instellingen.",
@@ -26,29 +49,50 @@ OC.L10N.register(
"Invalid Host" : "Ongeldige server",
"Server" : "Server",
"Users" : "Gebruikers",
+ "Login Attributes" : "Inlogattributen",
"Groups" : "Groepen",
"Test Configuration" : "Test configuratie",
"Help" : "Help",
"Groups meeting these criteria are available in %s:" : "Groepsafspraken die voldoen aan deze criteria zijn beschikbaar in %s:",
+ "Only these object classes:" : "Alleen deze objectklassen:",
+ "Only from these groups:" : "Alleen van deze groepen:",
+ "Search groups" : "Zoeken groepen",
+ "Available groups" : "Beschikbare groepen",
+ "Selected groups" : "Geselecteerde groepen",
+ "Edit LDAP Query" : "Bewerken LDAP bevraging",
+ "LDAP Filter:" : "LDAP Filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Dit filter geeft aan welke LDAP groepen toegang hebben tot %s.",
"Test Filter" : "Testfilter",
+ "Verify settings and count groups" : "Verifiëren instellingen en tel groepen",
+ "When logging in, %s will find the user based on the following attributes:" : "Bij inloggen vindt %s de gebruiker gebaseerd op de volgende attributen:",
+ "LDAP / AD Username:" : "LDAP / AD gebruikersnaam:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Maakt inloggen tegen de LDAP / AD gebruikersnaam mogelijk, ofwel uid of samaccountname en wordt gedetecteerd.",
+ "LDAP / AD Email Address:" : "LDAP / AD e-mailadres:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Maak inloggen tegen een e-mailattribuut mogelijk. E-mail en mailPrimaryAddress zijn mogelijk.",
"Other Attributes:" : "Overige attributen:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definiëert het toe te passen filter als er geprobeerd wordt in te loggen. %%uid vervangt de gebruikersnaam bij het inloggen. Bijvoorbeeld: \"uid=%%uid\"",
+ "Test Loginname" : "Test inlognaam",
+ "Verify settings" : "Verifiëren instellingen",
"1. Server" : "1. Server",
"%s. Server:" : "%s. Server:",
"Host" : "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Je kunt het protocol weglaten, tenzij je SSL vereist. Start in dat geval met ldaps://",
"Port" : "Poort",
+ "Detect Port" : "Detecteer poort",
"User DN" : "User DN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "De DN van de client gebruiker waarmee de verbinding zal worden gemaakt, bijv. uid=agent,dc=example,dc=com. Voor anonieme toegang laat je het DN en het wachtwoord leeg.",
"Password" : "Wachtwoord",
"For anonymous access, leave DN and Password empty." : "Voor anonieme toegang, laat de DN en het wachtwoord leeg.",
"One Base DN per line" : "Een Base DN per regel",
"You can specify Base DN for users and groups in the Advanced tab" : "Je kunt het Base DN voor gebruikers en groepen specificeren in het tab Geavanceerd.",
+ "Detect Base DN" : "Detecteren basis DN",
+ "Test Base DN" : "Testen basis DN",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Voorkom automatische LDAP opvragingen. Weliswaar beter voor grote installaties, maar vergt LDAP kennis.",
"Manually enter LDAP filters (recommended for large directories)" : "Handmatig invoeren LDAP filters (aanbevolen voor grote directories)",
"Limit %s access to users meeting these criteria:" : "Beperk %s toegang tot gebruikers die voldoen aan deze criteria:",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "De meest gebruikeliujke objectklassen voor gebruikers zijn organizationalPerson, persoon, gebruiker, en inetOrgPerson. Als u niet zeker weet welke objectklasse moet worden geselecteerd, raadpleeg dan uw directorybeheerder.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Dit filter geeft aan welke LDAP gebruikers toegang hebben tot %s.",
+ "Verify settings and count users" : "Verifiëren instellingen en tellen gebruikers",
"Saving" : "Opslaan",
"Back" : "Terug",
"Continue" : "Verder",
diff --git a/apps/user_ldap/l10n/nl.json b/apps/user_ldap/l10n/nl.json
index 5aa26c02386..00063196346 100644
--- a/apps/user_ldap/l10n/nl.json
+++ b/apps/user_ldap/l10n/nl.json
@@ -8,15 +8,38 @@
"No configuration specified" : "Geen configuratie opgegeven",
"No data specified" : "Geen gegevens verstrekt",
" Could not set configuration %s" : "Kon configuratie %s niet instellen",
+ "Action does not exist" : "Actie bestaat niet",
"Configuration incorrect" : "Configuratie onjuist",
"Configuration incomplete" : "Configuratie incompleet",
"Configuration OK" : "Configuratie OK",
"Select groups" : "Selecteer groepen",
"Select object classes" : "Selecteer objectklasse",
+ "Please check the credentials, they seem to be wrong." : "Controleer de inloggegevens, ze lijken onjuist.",
+ "Please specify the port, it could not be auto-detected." : "Geef de poort op, die kon niet automatisch worden vastgesteld.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Basis DN kon niet automatisch worden vastgesteld, herstel inloggegevens, server en poort.",
+ "Could not detect Base DN, please enter it manually." : "Kon basis DN niet vaststellen, voer de gegevens handmatig in.",
"{nthServer}. Server" : "{nthServer}. Server",
+ "No object found in the given Base DN. Please revise." : "Geen object gevonden in de basis DN. Review instellingen.",
+ "More then 1.000 directory entries available." : "Meer dan 1.000 directoryobjecten beschikbaar.",
+ " entries available within the provided Base DN" : "accounts beschikbaar binnen de provider Basis DN",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Er trad een fout op. Controleer de Basis DN en de verbindingsinstellingen en inloggegevens.",
"Do you really want to delete the current Server Configuration?" : "Wilt u werkelijk de huidige Serverconfiguratie verwijderen?",
"Confirm Deletion" : "Bevestig verwijderen",
+ "Mappings cleared successfully!" : "Mappings succesvol schoongemaakt!",
+ "Error while clearing the mappings." : "Fout bij opschonen mappings.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Opslaan mislukt. Verifieer dat de database draait. Herlaad voordat u verder gaat.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Omschakelen van de modus schakelt automatische LDAP opvragingen in. Afhankelijk van uw LDAP omvang kan dat even duren. Wilt u nog steeds omschakelen?",
+ "Mode switch" : "Omschakelen modus",
"Select attributes" : "Selecteer attributen",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Gebruiker niet gevonden. Verifieer de inloggegevens en gebruikersnaam. Effectief filter (kopiëren en plakken voor commandoregel validatie): <br/>",
+ "User found and settings verified." : "Gebruiker gevonden en instellingen geverifieerd.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Instellingen geverifieerd, slechts één gebruiker gevonden. Alleen de eerste kan inloggen. Overweeg een krapper filter.",
+ "An unspecified error occurred. Please check the settings and the log." : "Er trad een ongedefinieerde fout op. Controleer de instellingen en de logging.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Het zoekfilter is ongeldig, waarschijnlijk door syntax problemen zoals een ongelijk aantal open- en sluithaakjes. Graag aanpassen.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Er trad een verbindingsfout naar LDAP / AD op, verifieer servernaam, poort en inloggegevens.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "De %uid opvultekst ontbreekt. Die wordt vervangen door de inlognaam bij het bevragen van LDAP / AD.",
+ "Please provide a login name to test against" : "Geef een inlognaam op om opnieuw tegen te testen",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "De groepsbox was uitgeschakeld omdat de LDAP / AD server het attribuut memberOf niet ondersteunt.",
"_%s group found_::_%s groups found_" : ["%s groep gevonden","%s groepen gevonden"],
"_%s user found_::_%s users found_" : ["%s gebruiker gevonden","%s gebruikers gevonden"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Kon het weergavenaam attribuut van de gebruiker niet vinden. Geef het zelf op in de geavanceerde ldap instellingen.",
@@ -24,29 +47,50 @@
"Invalid Host" : "Ongeldige server",
"Server" : "Server",
"Users" : "Gebruikers",
+ "Login Attributes" : "Inlogattributen",
"Groups" : "Groepen",
"Test Configuration" : "Test configuratie",
"Help" : "Help",
"Groups meeting these criteria are available in %s:" : "Groepsafspraken die voldoen aan deze criteria zijn beschikbaar in %s:",
+ "Only these object classes:" : "Alleen deze objectklassen:",
+ "Only from these groups:" : "Alleen van deze groepen:",
+ "Search groups" : "Zoeken groepen",
+ "Available groups" : "Beschikbare groepen",
+ "Selected groups" : "Geselecteerde groepen",
+ "Edit LDAP Query" : "Bewerken LDAP bevraging",
+ "LDAP Filter:" : "LDAP Filter:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Dit filter geeft aan welke LDAP groepen toegang hebben tot %s.",
"Test Filter" : "Testfilter",
+ "Verify settings and count groups" : "Verifiëren instellingen en tel groepen",
+ "When logging in, %s will find the user based on the following attributes:" : "Bij inloggen vindt %s de gebruiker gebaseerd op de volgende attributen:",
+ "LDAP / AD Username:" : "LDAP / AD gebruikersnaam:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Maakt inloggen tegen de LDAP / AD gebruikersnaam mogelijk, ofwel uid of samaccountname en wordt gedetecteerd.",
+ "LDAP / AD Email Address:" : "LDAP / AD e-mailadres:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Maak inloggen tegen een e-mailattribuut mogelijk. E-mail en mailPrimaryAddress zijn mogelijk.",
"Other Attributes:" : "Overige attributen:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definiëert het toe te passen filter als er geprobeerd wordt in te loggen. %%uid vervangt de gebruikersnaam bij het inloggen. Bijvoorbeeld: \"uid=%%uid\"",
+ "Test Loginname" : "Test inlognaam",
+ "Verify settings" : "Verifiëren instellingen",
"1. Server" : "1. Server",
"%s. Server:" : "%s. Server:",
"Host" : "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" : "Je kunt het protocol weglaten, tenzij je SSL vereist. Start in dat geval met ldaps://",
"Port" : "Poort",
+ "Detect Port" : "Detecteer poort",
"User DN" : "User DN",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "De DN van de client gebruiker waarmee de verbinding zal worden gemaakt, bijv. uid=agent,dc=example,dc=com. Voor anonieme toegang laat je het DN en het wachtwoord leeg.",
"Password" : "Wachtwoord",
"For anonymous access, leave DN and Password empty." : "Voor anonieme toegang, laat de DN en het wachtwoord leeg.",
"One Base DN per line" : "Een Base DN per regel",
"You can specify Base DN for users and groups in the Advanced tab" : "Je kunt het Base DN voor gebruikers en groepen specificeren in het tab Geavanceerd.",
+ "Detect Base DN" : "Detecteren basis DN",
+ "Test Base DN" : "Testen basis DN",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Voorkom automatische LDAP opvragingen. Weliswaar beter voor grote installaties, maar vergt LDAP kennis.",
"Manually enter LDAP filters (recommended for large directories)" : "Handmatig invoeren LDAP filters (aanbevolen voor grote directories)",
"Limit %s access to users meeting these criteria:" : "Beperk %s toegang tot gebruikers die voldoen aan deze criteria:",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "De meest gebruikeliujke objectklassen voor gebruikers zijn organizationalPerson, persoon, gebruiker, en inetOrgPerson. Als u niet zeker weet welke objectklasse moet worden geselecteerd, raadpleeg dan uw directorybeheerder.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Dit filter geeft aan welke LDAP gebruikers toegang hebben tot %s.",
+ "Verify settings and count users" : "Verifiëren instellingen en tellen gebruikers",
"Saving" : "Opslaan",
"Back" : "Terug",
"Continue" : "Verder",
diff --git a/apps/user_ldap/l10n/ro.js b/apps/user_ldap/l10n/ro.js
index c36b232f185..cb3a126fe6f 100644
--- a/apps/user_ldap/l10n/ro.js
+++ b/apps/user_ldap/l10n/ro.js
@@ -1,9 +1,13 @@
OC.L10N.register(
"user_ldap",
{
+ "Failed to clear the mappings." : "Ștergerea mapărilor a eșuat.",
+ "Failed to delete the server configuration" : "Ștergerea configurației serverului a eșuat.",
"The configuration is valid and the connection could be established!" : "Configuraţia este valida şi s-a stabilit conectarea",
"No action specified" : "Nu este specificata nici o acţiune ",
"No configuration specified" : "Nu este specificata nici o configurare ",
+ "No data specified" : "Nici o dată specificată",
+ "Action does not exist" : "Acțiunea nu există",
"Configuration incorrect" : "Configuraţie incorecta ",
"Configuration incomplete" : "Configuraţie incompleta ",
"Configuration OK" : "Configuraţie valida",
@@ -11,6 +15,10 @@ OC.L10N.register(
"Do you really want to delete the current Server Configuration?" : "Sunteţi sigur ca vreţi sa ştergeţi configuraţia actuala a serverului ?",
"Confirm Deletion" : "Confirmaţi Ştergerea ",
"Select attributes" : "Selectaţi caracteristici",
+ "_%s group found_::_%s groups found_" : ["%s grup găsit.","%s grupuri găsite.","%s grupuri găsite."],
+ "_%s user found_::_%s users found_" : ["%s utilizator găsit.","%s utilizatori găsiți.","%s utilizatori găsiți."],
+ "Invalid Host" : "Host invalid",
+ "Server" : "Server",
"Users" : "Utilizatori",
"Groups" : "Grupuri",
"Test Configuration" : "Configurare test",
diff --git a/apps/user_ldap/l10n/ro.json b/apps/user_ldap/l10n/ro.json
index 44cc6680e64..c84722f88ba 100644
--- a/apps/user_ldap/l10n/ro.json
+++ b/apps/user_ldap/l10n/ro.json
@@ -1,7 +1,11 @@
{ "translations": {
+ "Failed to clear the mappings." : "Ștergerea mapărilor a eșuat.",
+ "Failed to delete the server configuration" : "Ștergerea configurației serverului a eșuat.",
"The configuration is valid and the connection could be established!" : "Configuraţia este valida şi s-a stabilit conectarea",
"No action specified" : "Nu este specificata nici o acţiune ",
"No configuration specified" : "Nu este specificata nici o configurare ",
+ "No data specified" : "Nici o dată specificată",
+ "Action does not exist" : "Acțiunea nu există",
"Configuration incorrect" : "Configuraţie incorecta ",
"Configuration incomplete" : "Configuraţie incompleta ",
"Configuration OK" : "Configuraţie valida",
@@ -9,6 +13,10 @@
"Do you really want to delete the current Server Configuration?" : "Sunteţi sigur ca vreţi sa ştergeţi configuraţia actuala a serverului ?",
"Confirm Deletion" : "Confirmaţi Ştergerea ",
"Select attributes" : "Selectaţi caracteristici",
+ "_%s group found_::_%s groups found_" : ["%s grup găsit.","%s grupuri găsite.","%s grupuri găsite."],
+ "_%s user found_::_%s users found_" : ["%s utilizator găsit.","%s utilizatori găsiți.","%s utilizatori găsiți."],
+ "Invalid Host" : "Host invalid",
+ "Server" : "Server",
"Users" : "Utilizatori",
"Groups" : "Grupuri",
"Test Configuration" : "Configurare test",
diff --git a/apps/user_ldap/l10n/ru.js b/apps/user_ldap/l10n/ru.js
index 04e788b5777..dcf2bcb8d86 100644
--- a/apps/user_ldap/l10n/ru.js
+++ b/apps/user_ldap/l10n/ru.js
@@ -10,12 +10,20 @@ OC.L10N.register(
"No configuration specified" : "Конфигурация не создана",
"No data specified" : "Нет данных",
" Could not set configuration %s" : "Невозможно создать конфигурацию %s",
+ "Action does not exist" : "Действия не существует",
"Configuration incorrect" : "Конфигурация некорректна",
"Configuration incomplete" : "Конфигурация не завершена",
"Configuration OK" : "Конфигурация в порядке",
"Select groups" : "Выберите группы",
"Select object classes" : "Выберите объектные классы",
+ "Please check the credentials, they seem to be wrong." : "Пожалуйста проверьте учетный данные, возможно они не верны.",
+ "Please specify the port, it could not be auto-detected." : "Пожалуйста укажите порт, он не может быть определен автоматически.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "База поиска не может быть определена автоматически, пожалуйста перепроверьте учетные данные, адрес и порт.",
+ "Could not detect Base DN, please enter it manually." : "Не возможно обнаружить Base DN, пожалуйста задайте в ручную.",
"{nthServer}. Server" : "Сервер {nthServer}.",
+ "No object found in the given Base DN. Please revise." : "Не найдено объектов в Base DN. Пожалуйста перепроверьте.",
+ "More then 1.000 directory entries available." : "Доступно более 1.000 папок.",
+ " entries available within the provided Base DN" : "элементы доступные в Базе",
"Do you really want to delete the current Server Configuration?" : "Вы действительно хотите удалить существующую конфигурацию сервера?",
"Confirm Deletion" : "Подтверждение удаления",
"Select attributes" : "Выберите атрибуты",
@@ -30,8 +38,12 @@ OC.L10N.register(
"Test Configuration" : "Проверить конфигурацию",
"Help" : "Помощь",
"Groups meeting these criteria are available in %s:" : "Группы, отвечающие этим критериям доступны в %s:",
+ "Search groups" : "Поиск групп",
+ "Available groups" : "Доступные группы",
+ "Selected groups" : "Выбранные группы",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Этот фильтр определяет какие LDAP группы должны иметь доступ к экземпляру %s.",
"Test Filter" : "Проверить фильтр",
+ "LDAP / AD Username:" : "Имя пользователя LDAP/AD:",
"Other Attributes:" : "Другие атрибуты:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Определяет фильтр для применения при попытке входа. %%uid заменяет имя пользователя при входе в систему. Например: \"uid=%%uid\"",
"1. Server" : "Сервер 1.",
diff --git a/apps/user_ldap/l10n/ru.json b/apps/user_ldap/l10n/ru.json
index 999c2e01bc3..b6a04af8177 100644
--- a/apps/user_ldap/l10n/ru.json
+++ b/apps/user_ldap/l10n/ru.json
@@ -8,12 +8,20 @@
"No configuration specified" : "Конфигурация не создана",
"No data specified" : "Нет данных",
" Could not set configuration %s" : "Невозможно создать конфигурацию %s",
+ "Action does not exist" : "Действия не существует",
"Configuration incorrect" : "Конфигурация некорректна",
"Configuration incomplete" : "Конфигурация не завершена",
"Configuration OK" : "Конфигурация в порядке",
"Select groups" : "Выберите группы",
"Select object classes" : "Выберите объектные классы",
+ "Please check the credentials, they seem to be wrong." : "Пожалуйста проверьте учетный данные, возможно они не верны.",
+ "Please specify the port, it could not be auto-detected." : "Пожалуйста укажите порт, он не может быть определен автоматически.",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "База поиска не может быть определена автоматически, пожалуйста перепроверьте учетные данные, адрес и порт.",
+ "Could not detect Base DN, please enter it manually." : "Не возможно обнаружить Base DN, пожалуйста задайте в ручную.",
"{nthServer}. Server" : "Сервер {nthServer}.",
+ "No object found in the given Base DN. Please revise." : "Не найдено объектов в Base DN. Пожалуйста перепроверьте.",
+ "More then 1.000 directory entries available." : "Доступно более 1.000 папок.",
+ " entries available within the provided Base DN" : "элементы доступные в Базе",
"Do you really want to delete the current Server Configuration?" : "Вы действительно хотите удалить существующую конфигурацию сервера?",
"Confirm Deletion" : "Подтверждение удаления",
"Select attributes" : "Выберите атрибуты",
@@ -28,8 +36,12 @@
"Test Configuration" : "Проверить конфигурацию",
"Help" : "Помощь",
"Groups meeting these criteria are available in %s:" : "Группы, отвечающие этим критериям доступны в %s:",
+ "Search groups" : "Поиск групп",
+ "Available groups" : "Доступные группы",
+ "Selected groups" : "Выбранные группы",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Этот фильтр определяет какие LDAP группы должны иметь доступ к экземпляру %s.",
"Test Filter" : "Проверить фильтр",
+ "LDAP / AD Username:" : "Имя пользователя LDAP/AD:",
"Other Attributes:" : "Другие атрибуты:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Определяет фильтр для применения при попытке входа. %%uid заменяет имя пользователя при входе в систему. Например: \"uid=%%uid\"",
"1. Server" : "Сервер 1.",
diff --git a/apps/user_ldap/l10n/sr.js b/apps/user_ldap/l10n/sr.js
index 0312baf6b75..889623841ba 100644
--- a/apps/user_ldap/l10n/sr.js
+++ b/apps/user_ldap/l10n/sr.js
@@ -30,9 +30,18 @@ OC.L10N.register(
"Mappings cleared successfully!" : "Мапирања успешно очишћена!",
"Error while clearing the mappings." : "Грешка при чишћењу мапирања.",
"Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Упис није успео. Проверите да је база у функцији. Поново учитајте пре настављања.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Пребацивање режима укључиће аутоматске ЛДАП упите. Зависно од ЛДАП величине то може потрајати. Заиста желите да промените режим?",
"Mode switch" : "Промена режима",
"Select attributes" : "Изаберите атрибуте",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Корисник није нађен. Проверите пријавне атрибуте и корисничко име. Важећи филтер (за копирај-налепи за оверу командне линије): <br/>",
"User found and settings verified." : "Корисник нађен и поставке проверене.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Поставке проверене али један корисник је нађен. Само први ће успети да се пријави. Размотрите проширење филтрирања.",
+ "An unspecified error occurred. Please check the settings and the log." : "Десила се неодређана грешка. Проверите поставке и записник.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Филтер претраге је неисправан, вероватно због синтаксе попут неједнаког броја отворених и затворених заграда. Проверите.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Дошло је до грешке ЛДАП / АД везе. Проверите домаћина, порт и акредитиве.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Недостаје %uid местодржач. Биће замењен са пријавним именом при ЛДАП / АД упиту.",
+ "Please provide a login name to test against" : "Наведите пријавно име за тест са",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Поље групе је искључено јер ЛДАП / АД сервер не подржава припадност групи.",
"_%s group found_::_%s groups found_" : ["нађена %s група","нађене %s групе","нађено %s група"],
"_%s user found_::_%s users found_" : ["нађен %s корисник","нађена %s корисника","нађено %s корисника"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Немогу да откријем особину приказивања корисниковог имена. Наведите је у напредним поставкама LDAP-a",
@@ -45,11 +54,21 @@ OC.L10N.register(
"Test Configuration" : "Тестирај конфигурацију",
"Help" : "Помоћ",
"Groups meeting these criteria are available in %s:" : "Групе које испуњавају ове критеријуме су доступне у %s:",
+ "Only these object classes:" : "Само ове класе објеката:",
+ "Only from these groups:" : "Само из ових група:",
"Search groups" : "Претражи групе",
"Available groups" : "Доступне групе",
"Selected groups" : "Изабране групе",
+ "Edit LDAP Query" : "Уреди ЛДАП упит",
+ "LDAP Filter:" : "ЛДАП филтер:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Филтер прецизира које ће LDAP групе требају имати приступ %s случају.",
"Test Filter" : "Тестни филтер",
+ "Verify settings and count groups" : "Провери поставке и преброј групе",
+ "When logging in, %s will find the user based on the following attributes:" : "При пријављивању, %s ће пронаћи корисника на основу следећих атрибута:",
+ "LDAP / AD Username:" : "ЛДАП / АД корисничко име:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Дозволи пријаву уз ЛДАП / АД корисичко име које је или uid или samaccountname и биће откривено.",
+ "LDAP / AD Email Address:" : "ЛДАП / АД е-адреса:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Дозволи пријаву уз атрибут е-поште. Mail и mailPrimaryAddress биће дозвољени.",
"Other Attributes:" : "Остали параметри:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Одређује филтер који ће се применити при покушају пријављивања. %%uid замењује корисничко име при пријављивању. Пример: \"uid=%%uid\"",
"Test Loginname" : "Испробај име за пријаву",
@@ -66,10 +85,14 @@ OC.L10N.register(
"For anonymous access, leave DN and Password empty." : "За анониман приступ, оставите поља DN и лозинка празним.",
"One Base DN per line" : "Једна Base DN по линији",
"You can specify Base DN for users and groups in the Advanced tab" : "Можете навести Base DN за кориснике и групе у картици Напредно",
+ "Detect Base DN" : "Откриј базни ДН",
+ "Test Base DN" : "Тестирај базни ДН",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Избегава аутоматске LDAP захтеве. Боље за веће поставке, али тражи мало више познавања LDAP-а.",
"Manually enter LDAP filters (recommended for large directories)" : "Унесите ручно LDAP филтере (препоручено за велике директоријуме)",
"Limit %s access to users meeting these criteria:" : "Ограничи %s приступа за кориснике који испуњавају ове критеријуме:",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Најчешће класе објеката за кориснике су organizationalPerson, person, user и inetOrgPerson. Ако нисте сигурни шта да изаберете, питајте администратора именика.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Филтер одређује који ЛДАП корисници ће имати приступ на %s.",
+ "Verify settings and count users" : "Провери поставке и преброј кориснике",
"Saving" : "Чувам",
"Back" : "Назад",
"Continue" : "Настави",
diff --git a/apps/user_ldap/l10n/sr.json b/apps/user_ldap/l10n/sr.json
index 97aa229839e..8ef9e6d05ca 100644
--- a/apps/user_ldap/l10n/sr.json
+++ b/apps/user_ldap/l10n/sr.json
@@ -28,9 +28,18 @@
"Mappings cleared successfully!" : "Мапирања успешно очишћена!",
"Error while clearing the mappings." : "Грешка при чишћењу мапирања.",
"Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Упис није успео. Проверите да је база у функцији. Поново учитајте пре настављања.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Пребацивање режима укључиће аутоматске ЛДАП упите. Зависно од ЛДАП величине то може потрајати. Заиста желите да промените режим?",
"Mode switch" : "Промена режима",
"Select attributes" : "Изаберите атрибуте",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Корисник није нађен. Проверите пријавне атрибуте и корисничко име. Важећи филтер (за копирај-налепи за оверу командне линије): <br/>",
"User found and settings verified." : "Корисник нађен и поставке проверене.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Поставке проверене али један корисник је нађен. Само први ће успети да се пријави. Размотрите проширење филтрирања.",
+ "An unspecified error occurred. Please check the settings and the log." : "Десила се неодређана грешка. Проверите поставке и записник.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Филтер претраге је неисправан, вероватно због синтаксе попут неједнаког броја отворених и затворених заграда. Проверите.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Дошло је до грешке ЛДАП / АД везе. Проверите домаћина, порт и акредитиве.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Недостаје %uid местодржач. Биће замењен са пријавним именом при ЛДАП / АД упиту.",
+ "Please provide a login name to test against" : "Наведите пријавно име за тест са",
+ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Поље групе је искључено јер ЛДАП / АД сервер не подржава припадност групи.",
"_%s group found_::_%s groups found_" : ["нађена %s група","нађене %s групе","нађено %s група"],
"_%s user found_::_%s users found_" : ["нађен %s корисник","нађена %s корисника","нађено %s корисника"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Немогу да откријем особину приказивања корисниковог имена. Наведите је у напредним поставкама LDAP-a",
@@ -43,11 +52,21 @@
"Test Configuration" : "Тестирај конфигурацију",
"Help" : "Помоћ",
"Groups meeting these criteria are available in %s:" : "Групе које испуњавају ове критеријуме су доступне у %s:",
+ "Only these object classes:" : "Само ове класе објеката:",
+ "Only from these groups:" : "Само из ових група:",
"Search groups" : "Претражи групе",
"Available groups" : "Доступне групе",
"Selected groups" : "Изабране групе",
+ "Edit LDAP Query" : "Уреди ЛДАП упит",
+ "LDAP Filter:" : "ЛДАП филтер:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Филтер прецизира које ће LDAP групе требају имати приступ %s случају.",
"Test Filter" : "Тестни филтер",
+ "Verify settings and count groups" : "Провери поставке и преброј групе",
+ "When logging in, %s will find the user based on the following attributes:" : "При пријављивању, %s ће пронаћи корисника на основу следећих атрибута:",
+ "LDAP / AD Username:" : "ЛДАП / АД корисничко име:",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Дозволи пријаву уз ЛДАП / АД корисичко име које је или uid или samaccountname и биће откривено.",
+ "LDAP / AD Email Address:" : "ЛДАП / АД е-адреса:",
+ "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Дозволи пријаву уз атрибут е-поште. Mail и mailPrimaryAddress биће дозвољени.",
"Other Attributes:" : "Остали параметри:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Одређује филтер који ће се применити при покушају пријављивања. %%uid замењује корисничко име при пријављивању. Пример: \"uid=%%uid\"",
"Test Loginname" : "Испробај име за пријаву",
@@ -64,10 +83,14 @@
"For anonymous access, leave DN and Password empty." : "За анониман приступ, оставите поља DN и лозинка празним.",
"One Base DN per line" : "Једна Base DN по линији",
"You can specify Base DN for users and groups in the Advanced tab" : "Можете навести Base DN за кориснике и групе у картици Напредно",
+ "Detect Base DN" : "Откриј базни ДН",
+ "Test Base DN" : "Тестирај базни ДН",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Избегава аутоматске LDAP захтеве. Боље за веће поставке, али тражи мало више познавања LDAP-а.",
"Manually enter LDAP filters (recommended for large directories)" : "Унесите ручно LDAP филтере (препоручено за велике директоријуме)",
"Limit %s access to users meeting these criteria:" : "Ограничи %s приступа за кориснике који испуњавају ове критеријуме:",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Најчешће класе објеката за кориснике су organizationalPerson, person, user и inetOrgPerson. Ако нисте сигурни шта да изаберете, питајте администратора именика.",
"The filter specifies which LDAP users shall have access to the %s instance." : "Филтер одређује који ЛДАП корисници ће имати приступ на %s.",
+ "Verify settings and count users" : "Провери поставке и преброј кориснике",
"Saving" : "Чувам",
"Back" : "Назад",
"Continue" : "Настави",
diff --git a/apps/user_ldap/l10n/sr@latin.js b/apps/user_ldap/l10n/sr@latin.js
index 4a2f45db5c7..7769a4b6bda 100644
--- a/apps/user_ldap/l10n/sr@latin.js
+++ b/apps/user_ldap/l10n/sr@latin.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"user_ldap",
{
+ "Server" : "Server",
"Users" : "Korisnici",
"Groups" : "Grupe",
"Help" : "Pomoć",
diff --git a/apps/user_ldap/l10n/sr@latin.json b/apps/user_ldap/l10n/sr@latin.json
index 8cf62805869..ad4492827f7 100644
--- a/apps/user_ldap/l10n/sr@latin.json
+++ b/apps/user_ldap/l10n/sr@latin.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "Server" : "Server",
"Users" : "Korisnici",
"Groups" : "Grupe",
"Help" : "Pomoć",
diff --git a/apps/user_ldap/l10n/tr.js b/apps/user_ldap/l10n/tr.js
index 15b474a5225..449ad9334cc 100644
--- a/apps/user_ldap/l10n/tr.js
+++ b/apps/user_ldap/l10n/tr.js
@@ -10,14 +10,19 @@ OC.L10N.register(
"No configuration specified" : "Yapılandırma belirtilmemiş",
"No data specified" : "Veri belirtilmemiş",
" Could not set configuration %s" : "%s yapılandırması ayarlanamadı",
+ "Action does not exist" : "Aksiyon yok",
"Configuration incorrect" : "Yapılandırma geçersiz",
"Configuration incomplete" : "Yapılandırma tamamlanmamış",
"Configuration OK" : "Yapılandırma tamam",
"Select groups" : "Grupları seç",
"Select object classes" : "Nesne sınıflarını seç",
+ "Please check the credentials, they seem to be wrong." : "Kimlik bilgilerini kontrol edin, onlar yanlış görünüyor.",
+ "Please specify the port, it could not be auto-detected." : "Port belirtin, bu otomatik olarak algılana madı.",
"{nthServer}. Server" : "{nthServer}. Sunucu",
"Do you really want to delete the current Server Configuration?" : "Şu anki sunucu yapılandırmasını silmek istediğinizden emin misiniz?",
"Confirm Deletion" : "Silmeyi onayla",
+ "Mappings cleared successfully!" : "Dönüşümler temizleme basarildi",
+ "Error while clearing the mappings." : "Eşlemelerini takas ederken hata oluştu.",
"Select attributes" : "Nitelikleri seç",
"_%s group found_::_%s groups found_" : ["%s grup bulundu","%s grup bulundu"],
"_%s user found_::_%s users found_" : ["%s kullanıcı bulundu","%s kullanıcı bulundu"],
diff --git a/apps/user_ldap/l10n/tr.json b/apps/user_ldap/l10n/tr.json
index f4a3e37cde9..45945eb009f 100644
--- a/apps/user_ldap/l10n/tr.json
+++ b/apps/user_ldap/l10n/tr.json
@@ -8,14 +8,19 @@
"No configuration specified" : "Yapılandırma belirtilmemiş",
"No data specified" : "Veri belirtilmemiş",
" Could not set configuration %s" : "%s yapılandırması ayarlanamadı",
+ "Action does not exist" : "Aksiyon yok",
"Configuration incorrect" : "Yapılandırma geçersiz",
"Configuration incomplete" : "Yapılandırma tamamlanmamış",
"Configuration OK" : "Yapılandırma tamam",
"Select groups" : "Grupları seç",
"Select object classes" : "Nesne sınıflarını seç",
+ "Please check the credentials, they seem to be wrong." : "Kimlik bilgilerini kontrol edin, onlar yanlış görünüyor.",
+ "Please specify the port, it could not be auto-detected." : "Port belirtin, bu otomatik olarak algılana madı.",
"{nthServer}. Server" : "{nthServer}. Sunucu",
"Do you really want to delete the current Server Configuration?" : "Şu anki sunucu yapılandırmasını silmek istediğinizden emin misiniz?",
"Confirm Deletion" : "Silmeyi onayla",
+ "Mappings cleared successfully!" : "Dönüşümler temizleme basarildi",
+ "Error while clearing the mappings." : "Eşlemelerini takas ederken hata oluştu.",
"Select attributes" : "Nitelikleri seç",
"_%s group found_::_%s groups found_" : ["%s grup bulundu","%s grup bulundu"],
"_%s user found_::_%s users found_" : ["%s kullanıcı bulundu","%s kullanıcı bulundu"],
diff --git a/apps/user_ldap/l10n/uk.js b/apps/user_ldap/l10n/uk.js
index 5aa7c217c60..40941e3479f 100644
--- a/apps/user_ldap/l10n/uk.js
+++ b/apps/user_ldap/l10n/uk.js
@@ -20,7 +20,7 @@ OC.L10N.register(
"Confirm Deletion" : "Підтвердіть Видалення",
"Select attributes" : "Виберіть атрибути",
"_%s group found_::_%s groups found_" : [" %s група знайдена "," %s груп знайдено ","%s груп знайдено "],
- "_%s user found_::_%s users found_" : ["%s користувач знайден","%s користувачів знайдено","%s користувачів знайдено"],
+ "_%s user found_::_%s users found_" : ["%s користувача знайдено","%s користувачів знайдено","%s користувачів знайдено"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Не вдалося виявити ім'я користувача. Будь ласка, сформулюйте самі в розширених налаштуваннях LDAP.",
"Could not find the desired feature" : "Не вдалося знайти потрібну функцію",
"Invalid Host" : "Невірний Host",
@@ -32,7 +32,7 @@ OC.L10N.register(
"Groups meeting these criteria are available in %s:" : "Групи, що відповідають цим критеріям доступні в %s:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Фільтр визначає, які LDAP групи повинні мати доступ до %s примірника.",
"Test Filter" : "Тест Фільтр",
- "Other Attributes:" : "Інші Атрібути:",
+ "Other Attributes:" : "Інші Атрибути:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Визначає фільтр, який слід застосовувати при спробі входу.\n%%uid замінює ім'я користувача при вході в систему. Приклад: \"uid=%%uid\"",
"1. Server" : "1. Сервер",
"%s. Server:" : "%s. Сервер:",
@@ -43,12 +43,12 @@ OC.L10N.register(
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN клієнтського користувача для прив'язки, наприклад: uid=agent,dc=example,dc=com. Для анонімного доступу, залиште DN і Пароль порожніми.",
"Password" : "Пароль",
"For anonymous access, leave DN and Password empty." : "Для анонімного доступу, залиште DN і Пароль порожніми.",
- "One Base DN per line" : "Один Base DN на одній строчці",
+ "One Base DN per line" : "Один Base DN на рядок",
"You can specify Base DN for users and groups in the Advanced tab" : "Ви можете задати Базовий DN для користувачів і груп на вкладинці Додатково",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Уникати автоматичні запити LDAP. Краще для великих установок, але вимагає деякого LDAP знання.",
"Manually enter LDAP filters (recommended for large directories)" : "Вручну введіть LDAP фільтри (рекомендується для великих каталогів)",
"Limit %s access to users meeting these criteria:" : "Обмежити %s доступ до користувачів, що відповідають цим критеріям:",
- "The filter specifies which LDAP users shall have access to the %s instance." : "Фільтр визначає, які користувачі LDAP повині мати доступ до примірника %s.",
+ "The filter specifies which LDAP users shall have access to the %s instance." : "Фільтр визначає, які користувачі LDAP повинні мати доступ до примірника %s.",
"Saving" : "Збереження",
"Back" : "Назад",
"Continue" : "Продовжити",
@@ -70,17 +70,17 @@ OC.L10N.register(
"Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Не рекомендується, використовувати його тільки для тестування!\nЯкщо з'єднання працює лише з цією опцією, імпортуйте SSL сертифікат LDAP сервера у ваший %s сервер.",
"Cache Time-To-Live" : "Час актуальності Кеша",
"in seconds. A change empties the cache." : "в секундах. Зміна очищує кеш.",
- "Directory Settings" : "Налаштування Каталога",
+ "Directory Settings" : "Налаштування Каталогу",
"User Display Name Field" : "Поле, яке відображає Ім'я Користувача",
"The LDAP attribute to use to generate the user's display name." : "Атрибут LDAP, який використовується для генерації імен користувачів.",
"Base User Tree" : "Основне Дерево Користувачів",
- "One User Base DN per line" : "Один Користувач Base DN на одній строчці",
+ "One User Base DN per line" : "Один Користувач Base DN на рядок",
"User Search Attributes" : "Пошукові Атрибути Користувача",
- "Optional; one attribute per line" : "Додатково; один атрибут на строчку",
+ "Optional; one attribute per line" : "Додатково; один атрибут на рядок",
"Group Display Name Field" : "Поле, яке відображає Ім'я Групи",
"The LDAP attribute to use to generate the groups's display name." : "Атрибут LDAP, який використовується для генерації імен груп.",
"Base Group Tree" : "Основне Дерево Груп",
- "One Group Base DN per line" : "Одна Група Base DN на одній строчці",
+ "One Group Base DN per line" : "Одна Група Base DN на рядок",
"Group Search Attributes" : "Пошукові Атрибути Групи",
"Group-Member association" : "Асоціація Група-Член",
"Nested Groups" : "Вкладені Групи",
@@ -91,7 +91,7 @@ OC.L10N.register(
"Quota Field" : "Поле Квоти",
"Quota Default" : "Квота за замовчанням",
"in bytes" : "в байтах",
- "Email Field" : "Поле Ел. пошти",
+ "Email Field" : "Поле E-mail",
"User Home Folder Naming Rule" : "Правило іменування домашньої теки користувача",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Залиште порожнім для імені користувача (за замовчанням). Інакше, вкажіть атрибут LDAP/AD.",
"Internal Username" : "Внутрішня Ім'я користувача",
diff --git a/apps/user_ldap/l10n/uk.json b/apps/user_ldap/l10n/uk.json
index 16fd5b66343..daa03c128d3 100644
--- a/apps/user_ldap/l10n/uk.json
+++ b/apps/user_ldap/l10n/uk.json
@@ -18,7 +18,7 @@
"Confirm Deletion" : "Підтвердіть Видалення",
"Select attributes" : "Виберіть атрибути",
"_%s group found_::_%s groups found_" : [" %s група знайдена "," %s груп знайдено ","%s груп знайдено "],
- "_%s user found_::_%s users found_" : ["%s користувач знайден","%s користувачів знайдено","%s користувачів знайдено"],
+ "_%s user found_::_%s users found_" : ["%s користувача знайдено","%s користувачів знайдено","%s користувачів знайдено"],
"Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Не вдалося виявити ім'я користувача. Будь ласка, сформулюйте самі в розширених налаштуваннях LDAP.",
"Could not find the desired feature" : "Не вдалося знайти потрібну функцію",
"Invalid Host" : "Невірний Host",
@@ -30,7 +30,7 @@
"Groups meeting these criteria are available in %s:" : "Групи, що відповідають цим критеріям доступні в %s:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "Фільтр визначає, які LDAP групи повинні мати доступ до %s примірника.",
"Test Filter" : "Тест Фільтр",
- "Other Attributes:" : "Інші Атрібути:",
+ "Other Attributes:" : "Інші Атрибути:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Визначає фільтр, який слід застосовувати при спробі входу.\n%%uid замінює ім'я користувача при вході в систему. Приклад: \"uid=%%uid\"",
"1. Server" : "1. Сервер",
"%s. Server:" : "%s. Сервер:",
@@ -41,12 +41,12 @@
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN клієнтського користувача для прив'язки, наприклад: uid=agent,dc=example,dc=com. Для анонімного доступу, залиште DN і Пароль порожніми.",
"Password" : "Пароль",
"For anonymous access, leave DN and Password empty." : "Для анонімного доступу, залиште DN і Пароль порожніми.",
- "One Base DN per line" : "Один Base DN на одній строчці",
+ "One Base DN per line" : "Один Base DN на рядок",
"You can specify Base DN for users and groups in the Advanced tab" : "Ви можете задати Базовий DN для користувачів і груп на вкладинці Додатково",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Уникати автоматичні запити LDAP. Краще для великих установок, але вимагає деякого LDAP знання.",
"Manually enter LDAP filters (recommended for large directories)" : "Вручну введіть LDAP фільтри (рекомендується для великих каталогів)",
"Limit %s access to users meeting these criteria:" : "Обмежити %s доступ до користувачів, що відповідають цим критеріям:",
- "The filter specifies which LDAP users shall have access to the %s instance." : "Фільтр визначає, які користувачі LDAP повині мати доступ до примірника %s.",
+ "The filter specifies which LDAP users shall have access to the %s instance." : "Фільтр визначає, які користувачі LDAP повинні мати доступ до примірника %s.",
"Saving" : "Збереження",
"Back" : "Назад",
"Continue" : "Продовжити",
@@ -68,17 +68,17 @@
"Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Не рекомендується, використовувати його тільки для тестування!\nЯкщо з'єднання працює лише з цією опцією, імпортуйте SSL сертифікат LDAP сервера у ваший %s сервер.",
"Cache Time-To-Live" : "Час актуальності Кеша",
"in seconds. A change empties the cache." : "в секундах. Зміна очищує кеш.",
- "Directory Settings" : "Налаштування Каталога",
+ "Directory Settings" : "Налаштування Каталогу",
"User Display Name Field" : "Поле, яке відображає Ім'я Користувача",
"The LDAP attribute to use to generate the user's display name." : "Атрибут LDAP, який використовується для генерації імен користувачів.",
"Base User Tree" : "Основне Дерево Користувачів",
- "One User Base DN per line" : "Один Користувач Base DN на одній строчці",
+ "One User Base DN per line" : "Один Користувач Base DN на рядок",
"User Search Attributes" : "Пошукові Атрибути Користувача",
- "Optional; one attribute per line" : "Додатково; один атрибут на строчку",
+ "Optional; one attribute per line" : "Додатково; один атрибут на рядок",
"Group Display Name Field" : "Поле, яке відображає Ім'я Групи",
"The LDAP attribute to use to generate the groups's display name." : "Атрибут LDAP, який використовується для генерації імен груп.",
"Base Group Tree" : "Основне Дерево Груп",
- "One Group Base DN per line" : "Одна Група Base DN на одній строчці",
+ "One Group Base DN per line" : "Одна Група Base DN на рядок",
"Group Search Attributes" : "Пошукові Атрибути Групи",
"Group-Member association" : "Асоціація Група-Член",
"Nested Groups" : "Вкладені Групи",
@@ -89,7 +89,7 @@
"Quota Field" : "Поле Квоти",
"Quota Default" : "Квота за замовчанням",
"in bytes" : "в байтах",
- "Email Field" : "Поле Ел. пошти",
+ "Email Field" : "Поле E-mail",
"User Home Folder Naming Rule" : "Правило іменування домашньої теки користувача",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Залиште порожнім для імені користувача (за замовчанням). Інакше, вкажіть атрибут LDAP/AD.",
"Internal Username" : "Внутрішня Ім'я користувача",
diff --git a/apps/user_ldap/tests/wizard.php b/apps/user_ldap/tests/wizard.php
index 7cf393d31ba..f8e14f08bc9 100644
--- a/apps/user_ldap/tests/wizard.php
+++ b/apps/user_ldap/tests/wizard.php
@@ -275,7 +275,7 @@ class Test_Wizard extends \Test\TestCase {
} else if($filter === 'mailPrimaryAddress') {
return 17;
}
- var_dump($filter);
+ throw new \Exception('Untested filter: ' . $filter);
}));
$result = $wizard->detectEmailAttribute()->getResultArray();
@@ -314,7 +314,7 @@ class Test_Wizard extends \Test\TestCase {
} else if($filter === 'mailPrimaryAddress') {
return 17;
}
- var_dump($filter);
+ throw new \Exception('Untested filter: ' . $filter);
}));
$result = $wizard->detectEmailAttribute()->getResultArray();
@@ -353,7 +353,7 @@ class Test_Wizard extends \Test\TestCase {
} else if($filter === 'mailPrimaryAddress') {
return 0;
}
- var_dump($filter);
+ throw new \Exception('Untested filter: ' . $filter);
}));
$result = $wizard->detectEmailAttribute();
diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php
index cd8a2dd251c..cc5d5f5226f 100644
--- a/apps/user_ldap/user_ldap.php
+++ b/apps/user_ldap/user_ldap.php
@@ -355,11 +355,11 @@ class USER_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn
* compared with OC_USER_BACKEND_CREATE_USER etc.
*/
public function implementsActions($actions) {
- return (bool)((OC_USER_BACKEND_CHECK_PASSWORD
- | OC_USER_BACKEND_GET_HOME
- | OC_USER_BACKEND_GET_DISPLAYNAME
- | OC_USER_BACKEND_PROVIDE_AVATAR
- | OC_USER_BACKEND_COUNT_USERS)
+ return (bool)((\OC_User_Backend::CHECK_PASSWORD
+ | \OC_User_Backend::GET_HOME
+ | \OC_User_Backend::GET_DISPLAYNAME
+ | \OC_User_Backend::PROVIDE_AVATAR
+ | \OC_User_Backend::COUNT_USERS)
& $actions);
}
diff --git a/apps/user_webdavauth/l10n/ro.js b/apps/user_webdavauth/l10n/ro.js
index 4bc803850dc..46637452e5f 100644
--- a/apps/user_webdavauth/l10n/ro.js
+++ b/apps/user_webdavauth/l10n/ro.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"user_webdavauth",
{
"WebDAV Authentication" : "Autentificare WebDAV",
+ "Address:" : "Adresa:",
"Save" : "Salvează"
},
"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/user_webdavauth/l10n/ro.json b/apps/user_webdavauth/l10n/ro.json
index 74666c22a5e..c3b2bcdc970 100644
--- a/apps/user_webdavauth/l10n/ro.json
+++ b/apps/user_webdavauth/l10n/ro.json
@@ -1,5 +1,6 @@
{ "translations": {
"WebDAV Authentication" : "Autentificare WebDAV",
+ "Address:" : "Adresa:",
"Save" : "Salvează"
},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
} \ No newline at end of file