diff options
562 files changed, 5579 insertions, 1608 deletions
diff --git a/apps/encryption/appinfo/app.php b/apps/encryption/appinfo/app.php index 6bbf2113366..0c7c231aef7 100644 --- a/apps/encryption/appinfo/app.php +++ b/apps/encryption/appinfo/app.php @@ -23,7 +23,11 @@ namespace OCA\Encryption\AppInfo; +\OCP\Util::addscript('encryption', 'encryption'); + $app = new Application(); -$app->registerEncryptionModule(); -$app->registerHooks(); -$app->registerSettings(); +if (\OC::$server->getEncryptionManager()->isReady()) { + $app->registerEncryptionModule(); + $app->registerHooks(); + $app->registerSettings(); +} diff --git a/apps/encryption/appinfo/application.php b/apps/encryption/appinfo/application.php index 34845ecf1e8..5d0fe2c9184 100644 --- a/apps/encryption/appinfo/application.php +++ b/apps/encryption/appinfo/application.php @@ -27,10 +27,12 @@ namespace OCA\Encryption\AppInfo; use OC\Files\Filesystem; use OC\Files\View; use OCA\Encryption\Crypto\Crypt; +use OCA\Encryption\Crypto\Encryption; use OCA\Encryption\HookManager; use OCA\Encryption\Hooks\UserHooks; use OCA\Encryption\KeyManager; use OCA\Encryption\Recovery; +use OCA\Encryption\Session; use OCA\Encryption\Users\Setup; use OCA\Encryption\Util; use OCP\App; @@ -40,13 +42,10 @@ use OCP\IConfig; class Application extends \OCP\AppFramework\App { - /** - * @var IManager - */ + + /** @var IManager */ private $encryptionManager; - /** - * @var IConfig - */ + /** @var IConfig */ private $config; /** @@ -59,6 +58,10 @@ class Application extends \OCP\AppFramework\App { $this->registerServices(); } + /** + * register hooks + */ + public function registerHooks() { if (!$this->config->getSystemValue('maintenance', false)) { @@ -73,7 +76,7 @@ class Application extends \OCP\AppFramework\App { $container->query('UserSetup'), $server->getUserSession(), $container->query('Util'), - new \OCA\Encryption\Session($server->getSession()), + $container->query('Session'), $container->query('Crypt'), $container->query('Recovery')) ]); @@ -88,14 +91,17 @@ class Application extends \OCP\AppFramework\App { public function registerEncryptionModule() { $container = $this->getContainer(); - $container->registerService('EncryptionModule', function (IAppContainer $c) { - return new \OCA\Encryption\Crypto\Encryption( - $c->query('Crypt'), - $c->query('KeyManager'), - $c->query('Util')); + + $this->encryptionManager->registerEncryptionModule( + Encryption::ID, + Encryption::DISPLAY_NAME, + function() use ($container) { + return new Encryption( + $container->query('Crypt'), + $container->query('KeyManager'), + $container->query('Util') + ); }); - $module = $container->query('EncryptionModule'); - $this->encryptionManager->registerEncryptionModule($module); } public function registerServices() { @@ -109,6 +115,13 @@ class Application extends \OCP\AppFramework\App { $server->getConfig()); }); + $container->registerService('Session', + function (IAppContainer $c) { + $server = $c->getServer(); + return new Session($server->getSession()); + } + ); + $container->registerService('KeyManager', function (IAppContainer $c) { $server = $c->getServer(); @@ -138,7 +151,7 @@ class Application extends \OCP\AppFramework\App { new \OC\Files\View()); }); - $container->registerService('RecoveryController', function (IAppContainer $c) { + $container->registerService('RecoveryController', function (IAppContainer $c) { $server = $c->getServer(); return new \OCA\Encryption\Controller\RecoveryController( $c->getAppName(), @@ -148,6 +161,16 @@ class Application extends \OCP\AppFramework\App { $c->query('Recovery')); }); + $container->registerService('StatusController', function (IAppContainer $c) { + $server = $c->getServer(); + return new \OCA\Encryption\Controller\StatusController( + $c->getAppName(), + $server->getRequest(), + $server->getL10N($c->getAppName()), + $c->query('Session') + ); + }); + $container->registerService('UserSetup', function (IAppContainer $c) { $server = $c->getServer(); diff --git a/apps/encryption/appinfo/info.xml b/apps/encryption/appinfo/info.xml index e4a7d790e9c..53a2459f864 100644 --- a/apps/encryption/appinfo/info.xml +++ b/apps/encryption/appinfo/info.xml @@ -16,7 +16,7 @@ based on AES 128 or 256 bit keys. More information is available in the Encryption documentation </description> -<name>Encryption</name> + <name>ownCloud Default Encryption Module</name> <license>AGPL</license> <author>Bjoern Schiessle, Clark Tomlinson</author> <requiremin>8</requiremin> diff --git a/apps/encryption/appinfo/register_command.php b/apps/encryption/appinfo/register_command.php new file mode 100644 index 00000000000..8a9df8ea3eb --- /dev/null +++ b/apps/encryption/appinfo/register_command.php @@ -0,0 +1,15 @@ +<?php +/** + * Copyright (c) 2015 Thomas Müller <deepdiver@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +use OCA\Encryption\Command\MigrateKeys; + +$userManager = OC::$server->getUserManager(); +$view = new \OC\Files\View(); +$config = \OC::$server->getConfig(); +$connection = \OC::$server->getDatabaseConnection(); +$application->add(new MigrateKeys($userManager, $view, $connection, $config)); diff --git a/apps/encryption/appinfo/routes.php b/apps/encryption/appinfo/routes.php index 0dab4a01b97..4194308a0ce 100644 --- a/apps/encryption/appinfo/routes.php +++ b/apps/encryption/appinfo/routes.php @@ -35,10 +35,15 @@ namespace OCA\Encryption\AppInfo; 'url' => '/ajax/changeRecoveryPassword', 'verb' => 'POST' ], - [ + [ 'name' => 'Recovery#userSetRecovery', 'url' => '/ajax/userSetRecovery', 'verb' => 'POST' + ], + [ + 'name' => 'Status#getStatus', + 'url' => '/ajax/getStatus', + 'verb' => 'GET' ] diff --git a/apps/encryption/appinfo/version b/apps/encryption/appinfo/version new file mode 100644 index 00000000000..3eefcb9dd5b --- /dev/null +++ b/apps/encryption/appinfo/version @@ -0,0 +1 @@ +1.0.0 diff --git a/apps/encryption/command/migratekeys.php b/apps/encryption/command/migratekeys.php new file mode 100644 index 00000000000..b814d697a2c --- /dev/null +++ b/apps/encryption/command/migratekeys.php @@ -0,0 +1,105 @@ +<?php +/** + * Copyright (c) 2015 Thomas Müller <thomas.mueller@tmit.eu> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace OCA\Encryption\Command; + +use OC\DB\Connection; +use OC\Files\View; +use OC\User\Manager; +use OCA\Encryption\Migration; +use OCP\IConfig; +use OCP\IUserBackend; +use Symfony\Component\Console\Command\Command; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; + +class MigrateKeys extends Command { + + /** @var \OC\User\Manager */ + private $userManager; + + /** @var View */ + private $view; + /** @var \OC\DB\Connection */ + private $connection; + /** @var IConfig */ + private $config; + + /** + * @param Manager $userManager + * @param View $view + * @param Connection $connection + * @param IConfig $config + */ + public function __construct(Manager $userManager, + View $view, + Connection $connection, + IConfig $config) { + + $this->userManager = $userManager; + $this->view = $view; + $this->connection = $connection; + $this->config = $config; + parent::__construct(); + } + + protected function configure() { + $this + ->setName('encryption:migrate') + ->setDescription('initial migration to encryption 2.0') + ->addArgument( + 'user_id', + InputArgument::OPTIONAL | InputArgument::IS_ARRAY, + 'will migrate keys of the given user(s)' + ); + } + + protected function execute(InputInterface $input, OutputInterface $output) { + + // perform system reorganization + $migration = new Migration($this->config, $this->view, $this->connection); + + $users = $input->getArgument('user_id'); + if (!empty($users)) { + foreach ($users as $user) { + if ($this->userManager->userExists($user)) { + $output->writeln("Migrating keys <info>$user</info>"); + $migration->reorganizeFolderStructureForUser($user); + } else { + $output->writeln("<error>Unknown user $user</error>"); + } + } + } else { + $output->writeln("Reorganize system folder structure"); + $migration->reorganizeSystemFolderStructure(); + $migration->updateDB(); + foreach($this->userManager->getBackends() as $backend) { + $name = get_class($backend); + + if ($backend instanceof IUserBackend) { + $name = $backend->getBackendName(); + } + + $output->writeln("Migrating keys for users on backend <info>$name</info>"); + + $limit = 500; + $offset = 0; + do { + $users = $backend->getUsers('', $limit, $offset); + foreach ($users as $user) { + $output->writeln(" <info>$user</info>"); + $migration->reorganizeFolderStructureForUser($user); + } + $offset += $limit; + } while(count($users) >= $limit); + } + } + + } +} diff --git a/apps/encryption/controller/statuscontroller.php b/apps/encryption/controller/statuscontroller.php new file mode 100644 index 00000000000..ef3d70a0b4c --- /dev/null +++ b/apps/encryption/controller/statuscontroller.php @@ -0,0 +1,88 @@ +<?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\Session; +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http\DataResponse; +use OCP\IL10N; +use OCP\IRequest; + +class StatusController extends Controller { + + /** @var IL10N */ + private $l; + + /** @var Session */ + private $session; + + /** + * @param string $AppName + * @param IRequest $request + * @param IL10N $l10n + * @param Session $session + */ + public function __construct($AppName, + IRequest $request, + IL10N $l10n, + Session $session + ) { + parent::__construct($AppName, $request); + $this->l = $l10n; + $this->session = $session; + } + + /** + * @NoAdminRequired + * @return DataResponse + */ + 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.' + ); + 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' + ); + break; + } + + return new DataResponse( + [ + 'status' => $status, + 'data' => [ + 'message' => $message] + ] + ); + } + +} diff --git a/apps/encryption/hooks/userhooks.php b/apps/encryption/hooks/userhooks.php index c39fa34108b..b09b8e7049a 100644 --- a/apps/encryption/hooks/userhooks.php +++ b/apps/encryption/hooks/userhooks.php @@ -142,7 +142,6 @@ class UserHooks implements IHook { } // ensure filesystem is loaded - // Todo: update? if (!\OC\Files\Filesystem::$loaded) { \OC_Util::setupFS($params['uid']); } @@ -197,7 +196,9 @@ class UserHooks implements IHook { public function preSetPassphrase($params) { if (App::isEnabled('encryption')) { - if (!$this->user->getUser()->canChangePassword()) { + $user = $this->user->getUser(); + + if ($user && !$user->canChangePassword()) { $this->setPassphrase($params); } } @@ -213,8 +214,10 @@ class UserHooks implements IHook { // Get existing decrypted private key $privateKey = $this->session->getPrivateKey(); + $user = $this->user->getUser(); - if ($params['uid'] === $this->user->getUser()->getUID() && $privateKey) { + // current logged in user changes his own password + if ($user && $params['uid'] === $user->getUID() && $privateKey) { // Encrypt private key with new user pwd as passphrase $encryptedPrivateKey = $this->crypt->symmetricEncryptFileContent($privateKey, @@ -231,7 +234,7 @@ class UserHooks implements IHook { // NOTE: Session does not need to be updated as the // private key has not changed, only the passphrase // used to decrypt it has changed - } else { // admin changed the password for a different user, create new keys and reencrypt file keys + } else { // admin changed the password for a different user, create new keys and re-encrypt file keys $user = $params['uid']; $recoveryPassword = isset($params['recoveryPassword']) ? $params['recoveryPassword'] : null; diff --git a/apps/encryption/js/encryption.js b/apps/encryption/js/encryption.js index d2d1c3a1fc5..c02b4d74ae8 100644 --- a/apps/encryption/js/encryption.js +++ b/apps/encryption/js/encryption.js @@ -9,8 +9,33 @@ * @namespace * @memberOf OC */ -OC.Encryption={ - MIGRATION_OPEN:0, - MIGRATION_COMPLETED:1, - MIGRATION_IN_PROGRESS:-1, +OC.Encryption= { + MIGRATION_OPEN: 0, + MIGRATION_COMPLETED: 1, + MIGRATION_IN_PROGRESS: -1, + + + displayEncryptionWarning: function () { + + if (!OC.Notification.isHidden()) { + return; + } + + $.get( + OC.generateUrl('/apps/encryption/ajax/getStatus') + , function( result ) { + if (result.status === "success") { + OC.Notification.show(result.data.message); + } + } + ); + } }; + +$(document).ready(function() { + // wait for other apps/extensions to register their event handlers and file actions + // in the "ready" clause + _.defer(function() { + OC.Encryption.displayEncryptionWarning(); + }); +}); diff --git a/apps/encryption/l10n/ar.js b/apps/encryption/l10n/ar.js index e4f0499f9f1..aa07ac83c77 100644 --- a/apps/encryption/l10n/ar.js +++ b/apps/encryption/l10n/ar.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." : "تعذر تغيير كلمة المرور. من الممكن ان كلمة المرور القديمة غير صحيحة.", + "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..abee54f539d 100644 --- a/apps/encryption/l10n/ar.json +++ b/apps/encryption/l10n/ar.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." : "تعذر تغيير كلمة المرور. من الممكن ان كلمة المرور القديمة غير صحيحة.", + "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..1f8adec4604 100644 --- a/apps/encryption/l10n/ast.js +++ b/apps/encryption/l10n/ast.js @@ -7,6 +7,7 @@ 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.", + "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..d1bf0b6b7d5 100644 --- a/apps/encryption/l10n/ast.json +++ b/apps/encryption/l10n/ast.json @@ -5,6 +5,7 @@ "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.", + "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..7ef7b6b2027 100644 --- a/apps/encryption/l10n/az.js +++ b/apps/encryption/l10n/az.js @@ -13,6 +13,7 @@ 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.", + "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..ad675bdab96 100644 --- a/apps/encryption/l10n/az.json +++ b/apps/encryption/l10n/az.json @@ -11,6 +11,7 @@ "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.", + "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..dbfd97421b7 100644 --- a/apps/encryption/l10n/bg_BG.js +++ b/apps/encryption/l10n/bg_BG.js @@ -13,6 +13,7 @@ OC.L10N.register( "Please repeat the new recovery password" : "Моля, въведи повторна новата парола за възстановяване", "Password successfully changed." : "Паролата е успешно променена.", "Could not change the password. Maybe the old password was not correct." : "Грешка при промяна на паролата. Може би старата ти парола е сгрешена.", + "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..9938f672b9b 100644 --- a/apps/encryption/l10n/bg_BG.json +++ b/apps/encryption/l10n/bg_BG.json @@ -11,6 +11,7 @@ "Please repeat the new recovery password" : "Моля, въведи повторна новата парола за възстановяване", "Password successfully changed." : "Паролата е успешно променена.", "Could not change the password. Maybe the old password was not correct." : "Грешка при промяна на паролата. Може би старата ти парола е сгрешена.", + "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..2986dd96242 100644 --- a/apps/encryption/l10n/ca.js +++ b/apps/encryption/l10n/ca.js @@ -7,6 +7,7 @@ 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.", + "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..b6458161877 100644 --- a/apps/encryption/l10n/ca.json +++ b/apps/encryption/l10n/ca.json @@ -5,6 +5,7 @@ "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.", + "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..fcec4fd4d23 100644 --- a/apps/encryption/l10n/cs_CZ.js +++ b/apps/encryption/l10n/cs_CZ.js @@ -13,7 +13,11 @@ 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.", + "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..49c4d0eb33c 100644 --- a/apps/encryption/l10n/cs_CZ.json +++ b/apps/encryption/l10n/cs_CZ.json @@ -11,7 +11,11 @@ "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.", + "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 1310627a174..5aad28311d8 100644 --- a/apps/encryption/l10n/da.js +++ b/apps/encryption/l10n/da.js @@ -15,8 +15,9 @@ 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", - "ownCloud basic encryption module" : "ownCloud basis krypteringsmodul", + "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):", "Recovery key password" : "Gendannelsesnøgle kodeord", "Repeat Recovery key password" : "Gentag gendannelse af nøglekoden", diff --git a/apps/encryption/l10n/da.json b/apps/encryption/l10n/da.json index 64a619d067b..8916a6bb4d6 100644 --- a/apps/encryption/l10n/da.json +++ b/apps/encryption/l10n/da.json @@ -13,8 +13,9 @@ "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", - "ownCloud basic encryption module" : "ownCloud basis krypteringsmodul", + "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):", "Recovery key password" : "Gendannelsesnøgle kodeord", "Repeat Recovery key password" : "Gentag gendannelse af nøglekoden", diff --git a/apps/encryption/l10n/de.js b/apps/encryption/l10n/de.js index f184c27a687..d91c7f16307 100644 --- a/apps/encryption/l10n/de.js +++ b/apps/encryption/l10n/de.js @@ -13,7 +13,11 @@ OC.L10N.register( "Please repeat the new recovery password" : "Bitte das neue Passwort zur Wiederherstellung wiederholen", "Password successfully changed." : "Dein Passwort wurde geändert.", "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", + "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):", "Recovery key password" : "Wiederherstellungsschlüssel-Passwort", "Repeat Recovery key password" : "Schlüssel-Passwort zur Wiederherstellung wiederholen", diff --git a/apps/encryption/l10n/de.json b/apps/encryption/l10n/de.json index aeccd11c28e..04f97f298a7 100644 --- a/apps/encryption/l10n/de.json +++ b/apps/encryption/l10n/de.json @@ -11,7 +11,11 @@ "Please repeat the new recovery password" : "Bitte das neue Passwort zur Wiederherstellung wiederholen", "Password successfully changed." : "Dein Passwort wurde geändert.", "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", + "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):", "Recovery key password" : "Wiederherstellungsschlüssel-Passwort", "Repeat Recovery key password" : "Schlüssel-Passwort zur Wiederherstellung wiederholen", diff --git a/apps/encryption/l10n/de_DE.js b/apps/encryption/l10n/de_DE.js index b92dadd9921..71cf2ea6202 100644 --- a/apps/encryption/l10n/de_DE.js +++ b/apps/encryption/l10n/de_DE.js @@ -13,7 +13,11 @@ OC.L10N.register( "Please repeat the new recovery password" : "Bitte das neue Passwort zur Wiederherstellung wiederholen", "Password successfully changed." : "Das Passwort wurde erfolgreich geändert.", "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", + "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):", "Recovery key password" : "Wiederherstellungschlüsselpasswort", "Repeat Recovery key password" : "Schlüsselpasswort zur Wiederherstellung wiederholen", diff --git a/apps/encryption/l10n/de_DE.json b/apps/encryption/l10n/de_DE.json index db96a2a731a..c55229f1238 100644 --- a/apps/encryption/l10n/de_DE.json +++ b/apps/encryption/l10n/de_DE.json @@ -11,7 +11,11 @@ "Please repeat the new recovery password" : "Bitte das neue Passwort zur Wiederherstellung wiederholen", "Password successfully changed." : "Das Passwort wurde erfolgreich geändert.", "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", + "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):", "Recovery key password" : "Wiederherstellungschlüsselpasswort", "Repeat Recovery key password" : "Schlüsselpasswort zur Wiederherstellung wiederholen", diff --git a/apps/encryption/l10n/el.js b/apps/encryption/l10n/el.js index 40ec43e1f85..f60089f3d10 100644 --- a/apps/encryption/l10n/el.js +++ b/apps/encryption/l10n/el.js @@ -13,7 +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." : "Αποτυχία αλλαγής κωδικού ίσως ο παλιός κωδικός να μην ήταν σωστός.", + "Recovery Key enabled" : "Κλειδί ανάκτησης ενεργοποιημένο", + "Could not enable the recovery key, please try again or contact your administrator" : "Αδυναμία ενεργοποίησης κλειδιού ανάκτησης, παρακαλούμε προσπαθήστε αργότερα ή επικοινωνήστε με το διαχειριστή σας", + "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..e3dcd4ab78a 100644 --- a/apps/encryption/l10n/el.json +++ b/apps/encryption/l10n/el.json @@ -11,7 +11,11 @@ "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" : "Αδυναμία ενεργοποίησης κλειδιού ανάκτησης, παρακαλούμε προσπαθήστε αργότερα ή επικοινωνήστε με το διαχειριστή σας", + "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..9bd1bf36f70 100644 --- a/apps/encryption/l10n/en_GB.js +++ b/apps/encryption/l10n/en_GB.js @@ -13,6 +13,7 @@ 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.", + "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", "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", diff --git a/apps/encryption/l10n/en_GB.json b/apps/encryption/l10n/en_GB.json index f2b2cad62dd..a2b33b68a14 100644 --- a/apps/encryption/l10n/en_GB.json +++ b/apps/encryption/l10n/en_GB.json @@ -11,6 +11,7 @@ "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.", + "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", "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", diff --git a/apps/encryption/l10n/es.js b/apps/encryption/l10n/es.js index 33a1f95ee61..d30432ecea3 100644 --- a/apps/encryption/l10n/es.js +++ b/apps/encryption/l10n/es.js @@ -13,7 +13,11 @@ OC.L10N.register( "Please repeat the new recovery password" : "Por favor, repita su nueva contraseña de recuperación", "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.", + "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", + "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", "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 501d6318752..282181c52e7 100644 --- a/apps/encryption/l10n/es.json +++ b/apps/encryption/l10n/es.json @@ -11,7 +11,11 @@ "Please repeat the new recovery password" : "Por favor, repita su nueva contraseña de recuperación", "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.", + "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", + "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", "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..4bdc684cf11 100644 --- a/apps/encryption/l10n/es_AR.js +++ b/apps/encryption/l10n/es_AR.js @@ -7,6 +7,7 @@ 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.", + "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..a9874da1c3c 100644 --- a/apps/encryption/l10n/es_AR.json +++ b/apps/encryption/l10n/es_AR.json @@ -5,6 +5,7 @@ "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.", + "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..cce2e0d213e 100644 --- a/apps/encryption/l10n/es_MX.js +++ b/apps/encryption/l10n/es_MX.js @@ -7,6 +7,7 @@ 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.", + "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..beb1b76cf2f 100644 --- a/apps/encryption/l10n/es_MX.json +++ b/apps/encryption/l10n/es_MX.json @@ -5,6 +5,7 @@ "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.", + "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..667aabfc6bd 100644 --- a/apps/encryption/l10n/et_EE.js +++ b/apps/encryption/l10n/et_EE.js @@ -13,6 +13,7 @@ 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.", + "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..56c7d478628 100644 --- a/apps/encryption/l10n/et_EE.json +++ b/apps/encryption/l10n/et_EE.json @@ -11,6 +11,7 @@ "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.", + "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..6567bdd2272 100644 --- a/apps/encryption/l10n/eu.js +++ b/apps/encryption/l10n/eu.js @@ -13,6 +13,7 @@ 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.", + "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..9a586a8b088 100644 --- a/apps/encryption/l10n/eu.json +++ b/apps/encryption/l10n/eu.json @@ -11,6 +11,7 @@ "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.", + "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/fi_FI.js b/apps/encryption/l10n/fi_FI.js index d9ec3e2d808..8258b2e28ff 100644 --- a/apps/encryption/l10n/fi_FI.js +++ b/apps/encryption/l10n/fi_FI.js @@ -15,8 +15,9 @@ 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", - "ownCloud basic encryption module" : "ownCloudin perussalausmoduuli", + "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):", "Recovery key password" : "Palautusavaimen salasana", "Repeat Recovery key password" : "Toista palautusavaimen salasana", diff --git a/apps/encryption/l10n/fi_FI.json b/apps/encryption/l10n/fi_FI.json index 7a3aa891e28..9e1205a77f3 100644 --- a/apps/encryption/l10n/fi_FI.json +++ b/apps/encryption/l10n/fi_FI.json @@ -13,8 +13,9 @@ "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", - "ownCloud basic encryption module" : "ownCloudin perussalausmoduuli", + "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):", "Recovery key password" : "Palautusavaimen salasana", "Repeat Recovery key password" : "Toista palautusavaimen salasana", diff --git a/apps/encryption/l10n/fr.js b/apps/encryption/l10n/fr.js index 2c01315dbd5..2d3d9be26e7 100644 --- a/apps/encryption/l10n/fr.js +++ b/apps/encryption/l10n/fr.js @@ -15,8 +15,9 @@ OC.L10N.register( "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", - "ownCloud basic encryption module" : "Module de chiffrement de base d'ownCloud", + "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).", "Recovery key password" : "Mot de passe de la clef de récupération", "Repeat Recovery key password" : "Répétez le mot de passe de la clef de récupération", diff --git a/apps/encryption/l10n/fr.json b/apps/encryption/l10n/fr.json index 4b284f482f6..5367350ffeb 100644 --- a/apps/encryption/l10n/fr.json +++ b/apps/encryption/l10n/fr.json @@ -13,8 +13,9 @@ "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", - "ownCloud basic encryption module" : "Module de chiffrement de base d'ownCloud", + "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).", "Recovery key password" : "Mot de passe de la clef de récupération", "Repeat Recovery key password" : "Répétez le mot de passe de la clef de récupération", diff --git a/apps/encryption/l10n/gl.js b/apps/encryption/l10n/gl.js index 2dc9f521428..79d17247a23 100644 --- a/apps/encryption/l10n/gl.js +++ b/apps/encryption/l10n/gl.js @@ -13,7 +13,11 @@ OC.L10N.register( "Please repeat the new recovery password" : "Repita a nova chave de recuperación", "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.", + "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):", "Recovery key password" : "Contrasinal da chave de recuperación", "Repeat Recovery key password" : "Repita o contrasinal da chave de recuperación", diff --git a/apps/encryption/l10n/gl.json b/apps/encryption/l10n/gl.json index 451b88f6750..7557d2b8bae 100644 --- a/apps/encryption/l10n/gl.json +++ b/apps/encryption/l10n/gl.json @@ -11,7 +11,11 @@ "Please repeat the new recovery password" : "Repita a nova chave de recuperación", "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.", + "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):", "Recovery key password" : "Contrasinal da chave de recuperación", "Repeat Recovery key password" : "Repita o contrasinal da chave de recuperación", diff --git a/apps/encryption/l10n/hr.js b/apps/encryption/l10n/hr.js index 9d910763c2a..ebdc362c7cb 100644 --- a/apps/encryption/l10n/hr.js +++ b/apps/encryption/l10n/hr.js @@ -7,6 +7,7 @@ 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.", + "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..5b8e335f501 100644 --- a/apps/encryption/l10n/hr.json +++ b/apps/encryption/l10n/hr.json @@ -5,6 +5,7 @@ "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.", + "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..259d82d68a9 100644 --- a/apps/encryption/l10n/hu_HU.js +++ b/apps/encryption/l10n/hu_HU.js @@ -7,6 +7,7 @@ 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ó.", + "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..a44cb2df4b1 100644 --- a/apps/encryption/l10n/hu_HU.json +++ b/apps/encryption/l10n/hu_HU.json @@ -5,6 +5,7 @@ "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ó.", + "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..2067ed10f2c 100644 --- a/apps/encryption/l10n/id.js +++ b/apps/encryption/l10n/id.js @@ -13,6 +13,7 @@ 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.", + "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..1cfb9e55d01 100644 --- a/apps/encryption/l10n/id.json +++ b/apps/encryption/l10n/id.json @@ -11,6 +11,7 @@ "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.", + "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..82f05e22ebf 100644 --- a/apps/encryption/l10n/it.js +++ b/apps/encryption/l10n/it.js @@ -13,7 +13,11 @@ 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", + "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..9e7ae7086ef 100644 --- a/apps/encryption/l10n/it.json +++ b/apps/encryption/l10n/it.json @@ -11,7 +11,11 @@ "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", + "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..42f08010a20 100644 --- a/apps/encryption/l10n/ja.js +++ b/apps/encryption/l10n/ja.js @@ -13,6 +13,7 @@ OC.L10N.register( "Please repeat the new recovery password" : "新しい復旧キーのパスワードをもう一度入力", "Password successfully changed." : "パスワードを変更できました。", "Could not change the password. Maybe the old password was not correct." : "パスワードを変更できませんでした。古いパスワードが間違っているかもしれません。", + "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..a1fb308f456 100644 --- a/apps/encryption/l10n/ja.json +++ b/apps/encryption/l10n/ja.json @@ -11,6 +11,7 @@ "Please repeat the new recovery password" : "新しい復旧キーのパスワードをもう一度入力", "Password successfully changed." : "パスワードを変更できました。", "Could not change the password. Maybe the old password was not correct." : "パスワードを変更できませんでした。古いパスワードが間違っているかもしれません。", + "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..bf325795523 100644 --- a/apps/encryption/l10n/ko.js +++ b/apps/encryption/l10n/ko.js @@ -13,6 +13,7 @@ OC.L10N.register( "Please repeat the new recovery password" : "새 복구 암호를 다시 입력하십시오", "Password successfully changed." : "암호가 성공적으로 변경되었습니다", "Could not change the password. Maybe the old password was not correct." : "암호를 변경할 수 없습니다. 예전 암호가 정확하지 않은 것 같습니다.", + "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..b64632bf76b 100644 --- a/apps/encryption/l10n/ko.json +++ b/apps/encryption/l10n/ko.json @@ -11,6 +11,7 @@ "Please repeat the new recovery password" : "새 복구 암호를 다시 입력하십시오", "Password successfully changed." : "암호가 성공적으로 변경되었습니다", "Could not change the password. Maybe the old password was not correct." : "암호를 변경할 수 없습니다. 예전 암호가 정확하지 않은 것 같습니다.", + "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..85eed21f1a2 100644 --- a/apps/encryption/l10n/lt_LT.js +++ b/apps/encryption/l10n/lt_LT.js @@ -7,6 +7,7 @@ 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.", + "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..55bf06fd6e4 100644 --- a/apps/encryption/l10n/lt_LT.json +++ b/apps/encryption/l10n/lt_LT.json @@ -5,6 +5,7 @@ "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.", + "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..077903e43c1 100644 --- a/apps/encryption/l10n/nb_NO.js +++ b/apps/encryption/l10n/nb_NO.js @@ -13,6 +13,7 @@ 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.", + "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..278b73cbf51 100644 --- a/apps/encryption/l10n/nb_NO.json +++ b/apps/encryption/l10n/nb_NO.json @@ -11,6 +11,7 @@ "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.", + "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..e994c8bfdfc 100644 --- a/apps/encryption/l10n/nl.js +++ b/apps/encryption/l10n/nl.js @@ -13,7 +13,11 @@ 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", + "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..574cfac66f9 100644 --- a/apps/encryption/l10n/nl.json +++ b/apps/encryption/l10n/nl.json @@ -11,7 +11,11 @@ "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", + "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..e77e3be4199 100644 --- a/apps/encryption/l10n/pl.js +++ b/apps/encryption/l10n/pl.js @@ -13,6 +13,7 @@ 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.", + "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..4faa11eb398 100644 --- a/apps/encryption/l10n/pl.json +++ b/apps/encryption/l10n/pl.json @@ -11,6 +11,7 @@ "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.", + "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 0511e8223d8..e12da46f3b2 100644 --- a/apps/encryption/l10n/pt_BR.js +++ b/apps/encryption/l10n/pt_BR.js @@ -13,7 +13,11 @@ OC.L10N.register( "Please repeat the new recovery password" : "Por favor, repita a nova senha de recuperação", "Password successfully changed." : "Senha alterada com sucesso.", "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", + "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):", "Recovery key password" : "Senha da chave de recuperação", "Repeat Recovery key password" : "Repita Recuperação de senha da chave", diff --git a/apps/encryption/l10n/pt_BR.json b/apps/encryption/l10n/pt_BR.json index 7fde33da2b4..05186d8636a 100644 --- a/apps/encryption/l10n/pt_BR.json +++ b/apps/encryption/l10n/pt_BR.json @@ -11,7 +11,11 @@ "Please repeat the new recovery password" : "Por favor, repita a nova senha de recuperação", "Password successfully changed." : "Senha alterada com sucesso.", "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", + "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):", "Recovery key password" : "Senha da chave de recuperação", "Repeat Recovery key password" : "Repita Recuperação de senha da chave", diff --git a/apps/encryption/l10n/pt_PT.js b/apps/encryption/l10n/pt_PT.js index f91dabc6998..afe0e8d03d3 100644 --- a/apps/encryption/l10n/pt_PT.js +++ b/apps/encryption/l10n/pt_PT.js @@ -13,7 +13,11 @@ 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", + "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..bede8c72bf0 100644 --- a/apps/encryption/l10n/pt_PT.json +++ b/apps/encryption/l10n/pt_PT.json @@ -11,7 +11,11 @@ "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", + "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..d69ecfcd78c 100644 --- a/apps/encryption/l10n/ro.js +++ b/apps/encryption/l10n/ro.js @@ -1,13 +1,22 @@ 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", + "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..80235b587ab 100644 --- a/apps/encryption/l10n/ro.json +++ b/apps/encryption/l10n/ro.json @@ -1,11 +1,20 @@ { "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", + "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..f500c33c59c 100644 --- a/apps/encryption/l10n/ru.js +++ b/apps/encryption/l10n/ru.js @@ -13,7 +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." : "Невозможно изменить пароль. Возможно, указанный старый пароль не верен.", + "Recovery Key enabled" : "Ключ Восстановления включен", + "Could not enable the recovery key, please try again or contact your administrator" : "Не возможно задействовать ключ восстановления, попробуйте снова или обратитесь к вашему системному администатору", + "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..fc88ccfc34e 100644 --- a/apps/encryption/l10n/ru.json +++ b/apps/encryption/l10n/ru.json @@ -11,7 +11,11 @@ "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" : "Не возможно задействовать ключ восстановления, попробуйте снова или обратитесь к вашему системному администатору", + "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..e8719571710 100644 --- a/apps/encryption/l10n/sk_SK.js +++ b/apps/encryption/l10n/sk_SK.js @@ -13,6 +13,7 @@ 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.", + "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..14fc49e0d72 100644 --- a/apps/encryption/l10n/sk_SK.json +++ b/apps/encryption/l10n/sk_SK.json @@ -11,6 +11,7 @@ "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.", + "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..082e2ef5b61 100644 --- a/apps/encryption/l10n/sl.js +++ b/apps/encryption/l10n/sl.js @@ -13,6 +13,7 @@ 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.", + "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..b26a21763a2 100644 --- a/apps/encryption/l10n/sl.json +++ b/apps/encryption/l10n/sl.json @@ -11,6 +11,7 @@ "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.", + "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 b9d31514afb..d6643b871b6 100644 --- a/apps/encryption/l10n/sr.js +++ b/apps/encryption/l10n/sr.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,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." : "Не могу да променим лозинку. Можда стара лозинка није исправна.", + "Recovery Key enabled" : "Кључ опоравка укључен", + "Could not enable the recovery key, please try again or contact your administrator" : "Не могу да укључим кључ опоравка. Покушајте поново или контактирајте администратора", + "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" : "Поновите лозинку кључа за опоравак", @@ -24,7 +29,7 @@ OC.L10N.register( "Repeat New Recovery key password" : "Поновите лозинку кључа опоравка", "Change Password" : "Измени лозинку", "Your private key password no longer matches your log-in password." : "Лозинка вашег личног кључа више није иста као ваша лозинка за пријаву.", - "Set your old private key password to your current log-in password:" : "Промените ваш стари приватни кључ-лозинку у вашу тренутну улазну лозинку:", + "Set your old private key password to your current log-in password:" : "Поставите стару лозинку личног кључа као тренутну лозинку за пријаву:", " If you don't remember your old password you can ask your administrator to recover your files." : "Ако се не сећате старе лозинке, можете затражити од администратора да опорави ваше фајлове.", "Old log-in password" : "Стара лозинка за пријаву", "Current log-in password" : "Тренутна лозинка за пријаву", diff --git a/apps/encryption/l10n/sr.json b/apps/encryption/l10n/sr.json index 4aae6f2ff59..15f5980090d 100644 --- a/apps/encryption/l10n/sr.json +++ b/apps/encryption/l10n/sr.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,11 @@ "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" : "Не могу да укључим кључ опоравка. Покушајте поново или контактирајте администратора", + "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" : "Поновите лозинку кључа за опоравак", @@ -22,7 +27,7 @@ "Repeat New Recovery key password" : "Поновите лозинку кључа опоравка", "Change Password" : "Измени лозинку", "Your private key password no longer matches your log-in password." : "Лозинка вашег личног кључа више није иста као ваша лозинка за пријаву.", - "Set your old private key password to your current log-in password:" : "Промените ваш стари приватни кључ-лозинку у вашу тренутну улазну лозинку:", + "Set your old private key password to your current log-in password:" : "Поставите стару лозинку личног кључа као тренутну лозинку за пријаву:", " If you don't remember your old password you can ask your administrator to recover your files." : "Ако се не сећате старе лозинке, можете затражити од администратора да опорави ваше фајлове.", "Old log-in password" : "Стара лозинка за пријаву", "Current log-in password" : "Тренутна лозинка за пријаву", 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..75da65c8928 100644 --- a/apps/encryption/l10n/sv.js +++ b/apps/encryption/l10n/sv.js @@ -13,6 +13,7 @@ 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.", + "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..4f650616067 100644 --- a/apps/encryption/l10n/sv.json +++ b/apps/encryption/l10n/sv.json @@ -11,6 +11,7 @@ "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.", + "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..d5829734831 100644 --- a/apps/encryption/l10n/tr.js +++ b/apps/encryption/l10n/tr.js @@ -13,6 +13,7 @@ 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.", + "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", "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ı", diff --git a/apps/encryption/l10n/tr.json b/apps/encryption/l10n/tr.json index 3f9084528fc..75aee1e2d7a 100644 --- a/apps/encryption/l10n/tr.json +++ b/apps/encryption/l10n/tr.json @@ -11,6 +11,7 @@ "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.", + "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", "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ı", diff --git a/apps/encryption/l10n/uk.js b/apps/encryption/l10n/uk.js index 0dc7bacc16c..f1b1f9a8b73 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,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." : "Не вдалося змінити пароль. Можливо ви неправильно ввели старий пароль.", + "Recovery Key enabled" : "Ключ відновлення підключено", + "Could not enable the recovery key, please try again or contact your administrator" : "Не вдалося підключити ключ відновлення, будь ласка, перевірте пароль ключа відновлення!", + "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..0fdefc95161 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,11 @@ "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" : "Не вдалося підключити ключ відновлення, будь ласка, перевірте пароль ключа відновлення!", + "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/zh_CN.js b/apps/encryption/l10n/zh_CN.js index 7bf5bb3ad37..f65d6efb423 100644 --- a/apps/encryption/l10n/zh_CN.js +++ b/apps/encryption/l10n/zh_CN.js @@ -12,6 +12,7 @@ OC.L10N.register( "Please repeat the new recovery password" : "请替换新的恢复密码", "Password successfully changed." : "密码修改成功。", "Could not change the password. Maybe the old password was not correct." : "不能修改密码。旧密码可能不正确。", + "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..aafd85baa08 100644 --- a/apps/encryption/l10n/zh_CN.json +++ b/apps/encryption/l10n/zh_CN.json @@ -10,6 +10,7 @@ "Please repeat the new recovery password" : "请替换新的恢复密码", "Password successfully changed." : "密码修改成功。", "Could not change the password. Maybe the old password was not correct." : "不能修改密码。旧密码可能不正确。", + "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..7701a67e2c9 100644 --- a/apps/encryption/l10n/zh_TW.js +++ b/apps/encryption/l10n/zh_TW.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." : "無法變更密碼,或許是輸入的舊密碼不正確。", + "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..607f7a70e17 100644 --- a/apps/encryption/l10n/zh_TW.json +++ b/apps/encryption/l10n/zh_TW.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." : "無法變更密碼,或許是輸入的舊密碼不正確。", + "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 c026aa6a90a..9ada9200551 100644 --- a/apps/encryption/lib/crypto/crypt.php +++ b/apps/encryption/lib/crypto/crypt.php @@ -231,7 +231,7 @@ class Crypt { * @param string $password * @return bool|string */ - public function decryptPrivateKey($privateKey, $password) { + public function decryptPrivateKey($privateKey, $password = '') { $header = $this->parseHeader($privateKey); @@ -273,7 +273,7 @@ class Crypt { * @return string * @throws DecryptionFailedException */ - public function symmetricDecryptFileContent($keyFileContents, $passPhrase = '', $cipher = self::DEFAULT_CIPHER) { + public function symmetricDecryptFileContent($keyFileContents, $passPhrase, $cipher = self::DEFAULT_CIPHER) { // Remove Padding $noPadding = $this->removePadding($keyFileContents); diff --git a/apps/encryption/lib/crypto/encryption.php b/apps/encryption/lib/crypto/encryption.php index fd5a84c9734..8498b4223e1 100644 --- a/apps/encryption/lib/crypto/encryption.php +++ b/apps/encryption/lib/crypto/encryption.php @@ -32,6 +32,7 @@ use OCA\Encryption\KeyManager; class Encryption implements IEncryptionModule { const ID = 'OC_DEFAULT_MODULE'; + const DISPLAY_NAME = 'ownCloud Default Encryption'; /** * @var Crypt @@ -90,7 +91,7 @@ class Encryption implements IEncryptionModule { * @return string */ public function getDisplayName() { - return 'ownCloud Default Encryption'; + return self::DISPLAY_NAME; } /** diff --git a/apps/encryption/lib/keymanager.php b/apps/encryption/lib/keymanager.php index a280ea9bde3..b451b5c25a9 100644 --- a/apps/encryption/lib/keymanager.php +++ b/apps/encryption/lib/keymanager.php @@ -140,7 +140,8 @@ class KeyManager { // Encrypt private key empty passphrase $encryptedKey = $this->crypt->symmetricEncryptFileContent($keyPair['privateKey'], ''); - $this->keyStorage->setSystemUserKey($this->publicShareKeyId . '.privateKey', $encryptedKey); + $header = $this->crypt->generateHeader(); + $this->setSystemPrivateKey($this->publicShareKeyId, $header . $encryptedKey); } $this->keyId = $userSession && $userSession->isLoggedIn() ? $userSession->getUser()->getUID() : false; @@ -294,6 +295,9 @@ class KeyManager { * @return boolean */ public function init($uid, $passPhrase) { + + $this->session->setStatus(Session::INIT_EXECUTED); + try { $privateKey = $this->getPrivateKey($uid); $privateKey = $this->crypt->decryptPrivateKey($privateKey, @@ -304,10 +308,13 @@ class KeyManager { return false; } - $this->session->setPrivateKey($privateKey); - $this->session->setStatus(Session::INIT_SUCCESSFUL); + if ($privateKey) { + $this->session->setPrivateKey($privateKey); + $this->session->setStatus(Session::INIT_SUCCESSFUL); + return true; + } - return true; + return false; } /** @@ -337,7 +344,7 @@ class KeyManager { $uid = $this->getPublicShareKeyId(); $shareKey = $this->getShareKey($path, $uid); $privateKey = $this->keyStorage->getSystemUserKey($this->publicShareKeyId . '.privateKey'); - $privateKey = $this->crypt->symmetricDecryptFileContent($privateKey); + $privateKey = $this->crypt->decryptPrivateKey($privateKey); } else { $shareKey = $this->getShareKey($path, $uid); $privateKey = $this->session->getPrivateKey(); diff --git a/apps/encryption/lib/migration.php b/apps/encryption/lib/migration.php new file mode 100644 index 00000000000..e4e5595efa1 --- /dev/null +++ b/apps/encryption/lib/migration.php @@ -0,0 +1,319 @@ +<?php +/** + * ownCloud + * + * @copyright (C) 2015 ownCloud, Inc. + * + * @author Bjoern Schiessle <schiessle@owncloud.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\Encryption; + + +use OC\DB\Connection; +use OC\Files\View; +use OCP\IConfig; + +class Migration { + + private $moduleId; + /** @var \OC\Files\View */ + private $view; + /** @var \OC\DB\Connection */ + private $connection; + /** @var IConfig */ + private $config; + + /** + * @param IConfig $config + * @param View $view + * @param Connection $connection + */ + public function __construct(IConfig $config, View $view, Connection $connection) { + $this->view = $view; + $this->view->getUpdater()->disable(); + $this->connection = $connection; + $this->moduleId = \OCA\Encryption\Crypto\Encryption::ID; + $this->config = $config; + } + + public function __destruct() { + $this->view->deleteAll('files_encryption/public_keys'); + $this->updateFileCache(); + } + + /** + * update file cache, copy unencrypted_size to the 'size' column + */ + private function updateFileCache() { + $query = $this->connection->createQueryBuilder(); + $query->update('`*PREFIX*filecache`') + ->set('`size`', '`unencrypted_size`') + ->where($query->expr()->eq('`encrypted`', ':encrypted')) + ->setParameter('encrypted', 1); + $query->execute(); + } + + /** + * iterate through users and reorganize the folder structure + */ + public function reorganizeFolderStructure() { + $this->reorganizeSystemFolderStructure(); + + $limit = 500; + $offset = 0; + do { + $users = \OCP\User::getUsers('', $limit, $offset); + foreach ($users as $user) { + $this->reorganizeFolderStructureForUser($user); + } + $offset += $limit; + } while (count($users) >= $limit); + } + + /** + * reorganize system wide folder structure + */ + public function reorganizeSystemFolderStructure() { + + $this->createPathForKeys('/files_encryption'); + + // backup system wide folders + $this->backupSystemWideKeys(); + + // rename system wide mount point + $this->renameFileKeys('', '/files_encryption/keys'); + + // rename system private keys + $this->renameSystemPrivateKeys(); + + $storage = $this->view->getMount('')->getStorage(); + $storage->getScanner()->scan('files_encryption'); + } + + + /** + * reorganize folder structure for user + * + * @param string $user + */ + public function reorganizeFolderStructureForUser($user) { + // backup all keys + \OC_Util::tearDownFS(); + \OC_Util::setupFS($user); + if ($this->backupUserKeys($user)) { + // rename users private key + $this->renameUsersPrivateKey($user); + $this->renameUsersPublicKey($user); + // rename file keys + $path = '/files_encryption/keys'; + $this->renameFileKeys($user, $path); + $trashPath = '/files_trashbin/keys'; + if (\OC_App::isEnabled('files_trashbin') && $this->view->is_dir($user . '/' . $trashPath)) { + $this->renameFileKeys($user, $trashPath, true); + $this->view->deleteAll($trashPath); + } + // delete old folders + $this->deleteOldKeys($user); + $this->view->getMount('/' . $user)->getStorage()->getScanner()->scan('files_encryption'); + } + } + + /** + * update database + */ + public function updateDB() { + + // delete left-over from old encryption which is no longer needed + $this->config->deleteAppValue('files_encryption', 'installed_version'); + $this->config->deleteAppValue('files_encryption', 'ocsid'); + $this->config->deleteAppValue('files_encryption', 'types'); + $this->config->deleteAppValue('files_encryption', 'enabled'); + + + $query = $this->connection->createQueryBuilder(); + $query->update('`*PREFIX*appconfig`') + ->set('`appid`', ':newappid') + ->where($query->expr()->eq('`appid`', ':oldappid')) + ->setParameter('oldappid', 'files_encryption') + ->setParameter('newappid', 'encryption'); + $query->execute(); + + $query = $this->connection->createQueryBuilder(); + $query->update('`*PREFIX*preferences`') + ->set('`appid`', ':newappid') + ->where($query->expr()->eq('`appid`', ':oldappid')) + ->setParameter('oldappid', 'files_encryption') + ->setParameter('newappid', 'encryption'); + $query->execute(); + } + + /** + * create backup of system-wide keys + */ + private function backupSystemWideKeys() { + $backupDir = 'encryption_migration_backup_' . date("Y-m-d_H-i-s"); + $this->view->mkdir($backupDir); + $this->view->copy('files_encryption', $backupDir . '/files_encryption'); + } + + /** + * create backup of user specific keys + * + * @param string $user + * @return bool + */ + private function backupUserKeys($user) { + $encryptionDir = $user . '/files_encryption'; + if ($this->view->is_dir($encryptionDir)) { + $backupDir = $user . '/encryption_migration_backup_' . date("Y-m-d_H-i-s"); + $this->view->mkdir($backupDir); + $this->view->copy($encryptionDir, $backupDir); + return true; + } + return false; + } + + /** + * rename system-wide private keys + */ + private function renameSystemPrivateKeys() { + $dh = $this->view->opendir('files_encryption'); + $this->createPathForKeys('/files_encryption/' . $this->moduleId ); + if (is_resource($dh)) { + while (($privateKey = readdir($dh)) !== false) { + if (!\OC\Files\Filesystem::isIgnoredDir($privateKey) ) { + if (!$this->view->is_dir('/files_encryption/' . $privateKey)) { + $this->view->rename('files_encryption/' . $privateKey, 'files_encryption/' . $this->moduleId . '/' . $privateKey); + $this->renameSystemPublicKey($privateKey); + } + } + } + closedir($dh); + } + } + + /** + * rename system wide public key + * + * @param $privateKey private key for which we want to rename the corresponding public key + */ + private function renameSystemPublicKey($privateKey) { + $publicKey = substr($privateKey,0 , strrpos($privateKey, '.privateKey')) . '.publicKey'; + $this->view->rename('files_encryption/public_keys/' . $publicKey, 'files_encryption/' . $this->moduleId . '/' . $publicKey); + } + + /** + * rename user-specific private keys + * + * @param string $user + */ + private function renameUsersPrivateKey($user) { + $oldPrivateKey = $user . '/files_encryption/' . $user . '.privateKey'; + $newPrivateKey = $user . '/files_encryption/' . $this->moduleId . '/' . $user . '.privateKey'; + $this->createPathForKeys(dirname($newPrivateKey)); + + $this->view->rename($oldPrivateKey, $newPrivateKey); + } + + /** + * rename user-specific public keys + * + * @param string $user + */ + private function renameUsersPublicKey($user) { + $oldPublicKey = '/files_encryption/public_keys/' . $user . '.publicKey'; + $newPublicKey = $user . '/files_encryption/' . $this->moduleId . '/' . $user . '.publicKey'; + $this->createPathForKeys(dirname($newPublicKey)); + + $this->view->rename($oldPublicKey, $newPublicKey); + } + + /** + * rename file keys + * + * @param string $user + * @param string $path + * @param bool $trash + */ + private function renameFileKeys($user, $path, $trash = false) { + + $dh = $this->view->opendir($user . '/' . $path); + + if (is_resource($dh)) { + while (($file = readdir($dh)) !== false) { + if (!\OC\Files\Filesystem::isIgnoredDir($file)) { + if ($this->view->is_dir($user . '/' . $path . '/' . $file)) { + $this->renameFileKeys($user, $path . '/' . $file, $trash); + } else { + $target = $this->getTargetDir($user, $path, $file, $trash); + $this->createPathForKeys(dirname($target)); + $this->view->rename($user . '/' . $path . '/' . $file, $target); + } + } + } + closedir($dh); + } + } + + /** + * generate target directory + * + * @param string $user + * @param string $filePath + * @param string $filename + * @param bool $trash + * @return string + */ + private function getTargetDir($user, $filePath, $filename, $trash) { + if ($trash) { + $targetDir = $user . '/files_encryption/keys/files_trashbin/' . substr($filePath, strlen('/files_trashbin/keys/')) . '/' . $this->moduleId . '/' . $filename; + } else { + $targetDir = $user . '/files_encryption/keys/files/' . substr($filePath, strlen('/files_encryption/keys/')) . '/' . $this->moduleId . '/' . $filename; + } + + return $targetDir; + } + + /** + * delete old keys + * + * @param string $user + */ + private function deleteOldKeys($user) { + $this->view->deleteAll($user . '/files_encryption/keyfiles'); + $this->view->deleteAll($user . '/files_encryption/share-keys'); + } + + /** + * create directories for the keys recursively + * + * @param string $path + */ + private function createPathForKeys($path) { + if (!$this->view->file_exists($path)) { + $sub_dirs = explode('/', $path); + $dir = ''; + foreach ($sub_dirs as $sub_dir) { + $dir .= '/' . $sub_dir; + if (!$this->view->is_dir($dir)) { + $this->view->mkdir($dir); + } + } + } + } +} diff --git a/apps/encryption/lib/recovery.php b/apps/encryption/lib/recovery.php index 5c1e91866a0..cfaa3e49619 100644 --- a/apps/encryption/lib/recovery.php +++ b/apps/encryption/lib/recovery.php @@ -135,8 +135,9 @@ class Recovery { $recoveryKey = $this->keyManager->getSystemPrivateKey($this->keyManager->getRecoveryKeyId()); $decryptedRecoveryKey = $this->crypt->decryptPrivateKey($recoveryKey, $oldPassword); $encryptedRecoveryKey = $this->crypt->symmetricEncryptFileContent($decryptedRecoveryKey, $newPassword); + $header = $this->crypt->generateHeader(); if ($encryptedRecoveryKey) { - $this->keyManager->setSystemPrivateKey($this->keyManager->getRecoveryKeyId(), $encryptedRecoveryKey); + $this->keyManager->setSystemPrivateKey($this->keyManager->getRecoveryKeyId(), $header . $encryptedRecoveryKey); return true; } return false; diff --git a/apps/encryption/tests/hooks/UserHooksTest.php b/apps/encryption/tests/hooks/UserHooksTest.php index 1d76e3ba1a2..bcfb33e86cb 100644 --- a/apps/encryption/tests/hooks/UserHooksTest.php +++ b/apps/encryption/tests/hooks/UserHooksTest.php @@ -143,6 +143,35 @@ class UserHooksTest extends TestCase { $this->assertNull($this->instance->setPassphrase($this->params)); } + public function testSetPasswordNoUser() { + $this->sessionMock->expects($this->once()) + ->method('getPrivateKey') + ->willReturn(true); + + $userSessionMock = $this->getMockBuilder('OCP\IUserSession') + ->disableOriginalConstructor() + ->getMock(); + + $userSessionMock->expects($this->any())->method('getUser')->will($this->returnValue(null)); + + $this->recoveryMock->expects($this->once()) + ->method('isRecoveryEnabledForUser') + ->with('testUser') + ->willReturn(false); + + $userHooks = new UserHooks($this->keyManagerMock, + $this->loggerMock, + $this->userSetupMock, + $userSessionMock, + $this->utilMock, + $this->sessionMock, + $this->cryptMock, + $this->recoveryMock + ); + + $this->assertNull($userHooks->setPassphrase($this->params)); + } + public function testPostPasswordReset() { $this->keyManagerMock->expects($this->once()) ->method('replaceUserKeys') @@ -157,7 +186,7 @@ class UserHooksTest extends TestCase { protected function setUp() { parent::setUp(); - $loggerMock = $this->getMock('OCP\ILogger'); + $this->loggerMock = $this->getMock('OCP\ILogger'); $this->keyManagerMock = $this->getMockBuilder('OCA\Encryption\KeyManager') ->disableOriginalConstructor() ->getMock(); @@ -203,7 +232,7 @@ class UserHooksTest extends TestCase { $this->recoveryMock = $recoveryMock; $this->utilMock = $utilMock; $this->instance = new UserHooks($this->keyManagerMock, - $loggerMock, + $this->loggerMock, $this->userSetupMock, $this->userSessionMock, $this->utilMock, diff --git a/apps/encryption/tests/lib/KeyManagerTest.php b/apps/encryption/tests/lib/KeyManagerTest.php index 1e51341a7e4..251628d99f2 100644 --- a/apps/encryption/tests/lib/KeyManagerTest.php +++ b/apps/encryption/tests/lib/KeyManagerTest.php @@ -268,7 +268,7 @@ class KeyManagerTest extends TestCase { ->willReturn(true); $this->cryptMock->expects($this->once()) - ->method('symmetricDecryptFileContent') + ->method('decryptPrivateKey') ->willReturn(true); $this->cryptMock->expects($this->once()) diff --git a/apps/encryption/tests/lib/MigrationTest.php b/apps/encryption/tests/lib/MigrationTest.php new file mode 100644 index 00000000000..f56ff5cc2f7 --- /dev/null +++ b/apps/encryption/tests/lib/MigrationTest.php @@ -0,0 +1,356 @@ +<?php + /** + * ownCloud + * + * @copyright (C) 2015 ownCloud, Inc. + * + * @author Bjoern Schiessle <schiessle@owncloud.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\Encryption\Tests; + +use OCA\Encryption\Migration; + +class MigrationTest extends \Test\TestCase { + + const TEST_ENCRYPTION_MIGRATION_USER1='test_encryption_user1'; + const TEST_ENCRYPTION_MIGRATION_USER2='test_encryption_user2'; + const TEST_ENCRYPTION_MIGRATION_USER3='test_encryption_user3'; + + /** @var \OC\Files\View */ + private $view; + private $public_share_key_id = 'share_key_id'; + private $recovery_key_id = 'recovery_key_id'; + private $moduleId; + + public static function setUpBeforeClass() { + parent::setUpBeforeClass(); + \OC_User::createUser(self::TEST_ENCRYPTION_MIGRATION_USER1, 'foo'); + \OC_User::createUser(self::TEST_ENCRYPTION_MIGRATION_USER2, 'foo'); + \OC_User::createUser(self::TEST_ENCRYPTION_MIGRATION_USER3, 'foo'); + } + + public static function tearDownAfterClass() { + \OC_User::deleteUser(self::TEST_ENCRYPTION_MIGRATION_USER1); + \OC_User::deleteUser(self::TEST_ENCRYPTION_MIGRATION_USER2); + \OC_User::deleteUser(self::TEST_ENCRYPTION_MIGRATION_USER3); + parent::tearDownAfterClass(); + } + + + public function setUp() { + $this->view = new \OC\Files\View(); + $this->moduleId = \OCA\Encryption\Crypto\Encryption::ID; + } + + protected function createDummyShareKeys($uid) { + $this->view->mkdir($uid . '/files_encryption/keys/folder1/folder2/folder3/file3'); + $this->view->mkdir($uid . '/files_encryption/keys/folder1/folder2/file2'); + $this->view->mkdir($uid . '/files_encryption/keys/folder1/file.1'); + $this->view->mkdir($uid . '/files_encryption/keys/folder2/file.2.1'); + $this->view->file_put_contents($uid . '/files_encryption/keys/folder1/folder2/folder3/file3/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/keys/folder1/folder2/folder3/file3/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/keys/folder1/folder2/folder3/file3/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/keys/folder1/folder2/file2/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/keys/folder1/folder2/file2/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/keys/folder1/folder2/file2/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/keys/folder1/file.1/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/keys/folder1/file.1/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/keys/folder1/file.1/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/keys/folder2/file.2.1/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/keys/folder2/file.2.1/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/keys/folder2/file.2.1/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey' , 'data'); + if ($this->public_share_key_id) { + $this->view->file_put_contents($uid . '/files_encryption/keys/folder2/file.2.1/' . $this->public_share_key_id . '.shareKey' , 'data'); + } + if ($this->recovery_key_id) { + $this->view->file_put_contents($uid . '/files_encryption/keys/folder2/file.2.1/' . $this->recovery_key_id . '.shareKey' , 'data'); + } + } + + protected function createDummyUserKeys($uid) { + $this->view->mkdir($uid . '/files_encryption/'); + $this->view->mkdir('/files_encryption/public_keys'); + $this->view->file_put_contents($uid . '/files_encryption/' . $uid . '.privateKey', 'privateKey'); + $this->view->file_put_contents('/files_encryption/public_keys/' . $uid . '.publicKey', 'publicKey'); + } + + protected function createDummyFileKeys($uid) { + $this->view->mkdir($uid . '/files_encryption/keys/folder1/folder2/folder3/file3'); + $this->view->mkdir($uid . '/files_encryption/keys/folder1/folder2/file2'); + $this->view->mkdir($uid . '/files_encryption/keys/folder1/file.1'); + $this->view->mkdir($uid . '/files_encryption/keys/folder2/file.2.1'); + $this->view->file_put_contents($uid . '/files_encryption/keys/folder1/folder2/folder3/file3/fileKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/keys/folder1/folder2/file2/fileKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/keys/folder1/file.1/fileKey' , 'data'); + $this->view->file_put_contents($uid . '/files_encryption/keys/folder2/file.2.1/fileKey' , 'data'); + } + + protected function createDummyFilesInTrash($uid) { + $this->view->mkdir($uid . '/files_trashbin/keys/file1.d5457864'); + $this->view->mkdir($uid . '/files_trashbin/keys/folder1.d7437648723/file2'); + $this->view->file_put_contents($uid . '/files_trashbin/keys/file1.d5457864/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_trashbin/keys/file1.d5457864/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey' , 'data'); + $this->view->file_put_contents($uid . '/files_trashbin/keys/folder1.d7437648723/file2/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey' , 'data'); + + $this->view->file_put_contents($uid . '/files_trashbin/keys/file1.d5457864/fileKey' , 'data'); + $this->view->file_put_contents($uid . '/files_trashbin/keys/folder1.d7437648723/file2/fileKey' , 'data'); + } + + protected function createDummySystemWideKeys() { + $this->view->mkdir('files_encryption'); + $this->view->mkdir('files_encryption/public_keys'); + $this->view->file_put_contents('files_encryption/systemwide_1.privateKey', 'data'); + $this->view->file_put_contents('files_encryption/systemwide_2.privateKey', 'data'); + $this->view->file_put_contents('files_encryption/public_keys/systemwide_1.publicKey', 'data'); + $this->view->file_put_contents('files_encryption/public_keys/systemwide_2.publicKey', 'data'); + + } + + public function testMigrateToNewFolderStructure() { + $this->createDummyUserKeys(self::TEST_ENCRYPTION_MIGRATION_USER1); + $this->createDummyUserKeys(self::TEST_ENCRYPTION_MIGRATION_USER2); + $this->createDummyUserKeys(self::TEST_ENCRYPTION_MIGRATION_USER3); + + $this->createDummyShareKeys(self::TEST_ENCRYPTION_MIGRATION_USER1); + $this->createDummyShareKeys(self::TEST_ENCRYPTION_MIGRATION_USER2); + $this->createDummyShareKeys(self::TEST_ENCRYPTION_MIGRATION_USER3); + + $this->createDummyFileKeys(self::TEST_ENCRYPTION_MIGRATION_USER1); + $this->createDummyFileKeys(self::TEST_ENCRYPTION_MIGRATION_USER2); + $this->createDummyFileKeys(self::TEST_ENCRYPTION_MIGRATION_USER3); + + $this->createDummyFilesInTrash(self::TEST_ENCRYPTION_MIGRATION_USER2); + + // no user for system wide mount points + $this->createDummyFileKeys(''); + $this->createDummyShareKeys(''); + + $this->createDummySystemWideKeys(); + + $m = new Migration(\OC::$server->getConfig(), new \OC\Files\View(), \OC::$server->getDatabaseConnection()); + $m->reorganizeFolderStructure(); + + $this->assertTrue( + $this->view->file_exists( + self::TEST_ENCRYPTION_MIGRATION_USER1 . '/files_encryption/' . + $this->moduleId . '/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.publicKey') + ); + $this->assertTrue( + $this->view->file_exists( + self::TEST_ENCRYPTION_MIGRATION_USER2 . '/files_encryption/' . + $this->moduleId . '/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.publicKey') + ); + $this->assertTrue( + $this->view->file_exists( + self::TEST_ENCRYPTION_MIGRATION_USER3 . '/files_encryption/' . + $this->moduleId . '/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.publicKey') + ); + $this->assertTrue( + $this->view->file_exists( + '/files_encryption/' . $this->moduleId . '/systemwide_1.publicKey') + ); + $this->assertTrue( + $this->view->file_exists( + '/files_encryption/' . $this->moduleId . '/systemwide_2.publicKey') + ); + + $this->verifyNewKeyPath(self::TEST_ENCRYPTION_MIGRATION_USER1); + $this->verifyNewKeyPath(self::TEST_ENCRYPTION_MIGRATION_USER2); + $this->verifyNewKeyPath(self::TEST_ENCRYPTION_MIGRATION_USER3); + // system wide keys + $this->verifyNewKeyPath(''); + // trash + $this->verifyFilesInTrash(self::TEST_ENCRYPTION_MIGRATION_USER2); + + } + + protected function verifyFilesInTrash($uid) { + // share keys + $this->assertTrue( + $this->view->file_exists($uid . '/files_encryption/keys/files_trashbin/file1.d5457864/' . $this->moduleId . '/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey') + ); + $this->assertTrue( + $this->view->file_exists($uid . '/files_encryption/keys/files_trashbin/file1.d5457864/' . $this->moduleId . '/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey') + ); + $this->assertTrue( + $this->view->file_exists($uid . '/files_encryption/keys/files_trashbin/folder1.d7437648723/file2/' . $this->moduleId . '/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey') + ); + + // file keys + $this->assertTrue( + $this->view->file_exists($uid . '/files_encryption/keys/files_trashbin/file1.d5457864/' . $this->moduleId . '/fileKey') + ); + + $this->assertTrue( + $this->view->file_exists($uid . '/files_encryption/keys/files_trashbin/file1.d5457864/' . $this->moduleId . '/fileKey') + ); + $this->assertTrue( + $this->view->file_exists($uid . '/files_encryption/keys/files_trashbin/folder1.d7437648723/file2/' . $this->moduleId . '/fileKey') + ); + } + + protected function verifyNewKeyPath($uid) { + // private key + if ($uid !== '') { + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/' . $this->moduleId . '/'. $uid . '.privateKey')); + } + // file keys + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/files/folder1/folder2/folder3/file3/' . $this->moduleId . '/fileKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/files/folder1/folder2/file2/' . $this->moduleId . '/fileKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/files/folder1/file.1/' . $this->moduleId . '/fileKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/files/folder2/file.2.1/' .$this->moduleId . '/fileKey')); + // share keys + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/files/folder1/folder2/folder3/file3/' . $this->moduleId . '/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/files/folder1/folder2/folder3/file3/' . $this->moduleId . '/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/files/folder1/folder2/folder3/file3/' . $this->moduleId . '/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/files/folder1/folder2/file2/' . $this->moduleId . '/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/files/folder1/folder2/file2/' . $this->moduleId . '/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/files/folder1/folder2/file2/' . $this->moduleId . '/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/files/folder1/file.1/' . $this->moduleId . '/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/files/folder1/file.1/' . $this->moduleId . '/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/files/folder1/file.1/' . $this->moduleId . '/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/files/folder2/file.2.1/' . $this->moduleId . '/' . self::TEST_ENCRYPTION_MIGRATION_USER1 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/files/folder2/file.2.1/' . $this->moduleId . '/' . self::TEST_ENCRYPTION_MIGRATION_USER2 . '.shareKey')); + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/files/folder2/file.2.1/' . $this->moduleId . '/' . self::TEST_ENCRYPTION_MIGRATION_USER3 . '.shareKey')); + if ($this->public_share_key_id) { + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/files/folder2/file.2.1/' . $this->moduleId . '/' . $this->public_share_key_id . '.shareKey')); + } + if ($this->recovery_key_id) { + $this->assertTrue($this->view->file_exists($uid . '/files_encryption/keys/files/folder2/file.2.1/' . $this->moduleId . '/' . $this->recovery_key_id . '.shareKey')); + } + } + + private function prepareDB() { + $config = \OC::$server->getConfig(); + $config->setAppValue('files_encryption', 'recoveryKeyId', 'recovery_id'); + $config->setAppValue('files_encryption', 'publicShareKeyId', 'share_id'); + $config->setAppValue('files_encryption', 'recoveryAdminEnabled', '1'); + $config->setUserValue(self::TEST_ENCRYPTION_MIGRATION_USER1, 'files_encryption', 'recoverKeyEnabled', '1'); + + // delete default values set by the encryption app during initialization + + /** @var \OC\DB\Connection $connection */ + $connection = \OC::$server->getDatabaseConnection(); + $query = $connection->createQueryBuilder(); + $query->delete('`*PREFIX*appconfig`') + ->where($query->expr()->eq('`appid`', ':appid')) + ->setParameter('appid', 'encryption'); + $query->execute(); + $query = $connection->createQueryBuilder(); + $query->delete('`*PREFIX*preferences`') + ->where($query->expr()->eq('`appid`', ':appid')) + ->setParameter('appid', 'encryption'); + $query->execute(); + } + + public function testUpdateDB() { + $this->prepareDB(); + + $m = new Migration(\OC::$server->getConfig(), new \OC\Files\View(), \OC::$server->getDatabaseConnection()); + $m->updateDB(); + + $this->verifyDB('`*PREFIX*appconfig`', 'files_encryption', 0); + $this->verifyDB('`*PREFIX*preferences`', 'files_encryption', 0); + $this->verifyDB('`*PREFIX*appconfig`', 'encryption', 3); + $this->verifyDB('`*PREFIX*preferences`', 'encryption', 1); + + } + + public function verifyDB($table, $appid, $expected) { + /** @var \OC\DB\Connection $connection */ + $connection = \OC::$server->getDatabaseConnection(); + $query = $connection->createQueryBuilder(); + $query->select('`appid`') + ->from($table) + ->where($query->expr()->eq('`appid`', ':appid')) + ->setParameter('appid', $appid); + $result = $query->execute(); + $values = $result->fetchAll(); + $this->assertSame($expected, + count($values) + ); + } + + /** + * test update of the file cache + */ + public function testUpdateFileCache() { + $this->prepareFileCache(); + $m = new Migration(\OC::$server->getConfig(), new \OC\Files\View(), \OC::$server->getDatabaseConnection()); + \Test_Helper::invokePrivate($m, 'updateFileCache'); + + // check results + + /** @var \OC\DB\Connection $connection */ + $connection = \OC::$server->getDatabaseConnection(); + $query = $connection->createQueryBuilder(); + $query->select('*') + ->from('`*PREFIX*filecache`'); + $result = $query->execute(); + $entries = $result->fetchAll(); + foreach($entries as $entry) { + if ((int)$entry['encrypted'] === 1) { + $this->assertSame((int)$entry['unencrypted_size'], (int)$entry['size']); + } else { + $this->assertSame((int)$entry['unencrypted_size'] - 2, (int)$entry['size']); + } + } + + + } + + public function prepareFileCache() { + /** @var \OC\DB\Connection $connection */ + $connection = \OC::$server->getDatabaseConnection(); + $query = $connection->createQueryBuilder(); + $query->delete('`*PREFIX*filecache`'); + $query->execute(); + $query = $connection->createQueryBuilder(); + $result = $query->select('`fileid`') + ->from('`*PREFIX*filecache`') + ->setMaxResults(1)->execute()->fetchAll(); + $this->assertEmpty($result); + $query = $connection->createQueryBuilder(); + $query->insert('`*PREFIX*filecache`') + ->values( + array( + '`storage`' => ':storage', + '`path_hash`' => ':path_hash', + '`encrypted`' => ':encrypted', + '`size`' => ':size', + '`unencrypted_size`' => ':unencrypted_size' + ) + ); + for ($i = 1; $i < 20; $i++) { + $query->setParameter('storage', 1) + ->setParameter('path_hash', $i) + ->setParameter('encrypted', $i % 2) + ->setParameter('size', $i) + ->setParameter('unencrypted_size', $i + 2); + $this->assertSame(1, + $query->execute() + ); + } + $query = $connection->createQueryBuilder(); + $result = $query->select('`fileid`') + ->from('`*PREFIX*filecache`') + ->execute()->fetchAll(); + $this->assertSame(19, count($result)); + } + +} diff --git a/apps/encryption_dummy/appinfo/app.php b/apps/encryption_dummy/appinfo/app.php index fa17e676eda..f04886f9f1f 100644 --- a/apps/encryption_dummy/appinfo/app.php +++ b/apps/encryption_dummy/appinfo/app.php @@ -2,5 +2,5 @@ $manager = \OC::$server->getEncryptionManager(); $module = new \OCA\Encryption_Dummy\DummyModule(); -$manager->registerEncryptionModule($module); +$manager->registerEncryptionModule('OC_DUMMY_MODULE', 'Dummy Encryption Module', $module); 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/l10n/es.js b/apps/files/l10n/es.js index c6b9a7b6e7e..90562ff52f5 100644 --- a/apps/files/l10n/es.js +++ b/apps/files/l10n/es.js @@ -70,6 +70,7 @@ OC.L10N.register( "An error occurred while trying to update the tags" : "Se produjo un error al tratar de actualizar las etiquetas", "A new file or folder has been <strong>created</strong>" : "Se ha <strong>creado</strong> un nuevo archivo o carpeta", "A file or folder has been <strong>changed</strong>" : "Se ha <strong>modificado</strong> un archivo o carpeta", + "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limitar las notificaiones acerca de la creación y cambios de sus <strong>archivos favoritos</strong><em>(Stream only)</em>", "A file or folder has been <strong>deleted</strong>" : "Se ha <strong>eliminado</strong> un archivo o carpeta", "A file or folder has been <strong>restored</strong>" : "Se ha <strong>restaurado</strong> un archivo o carpeta", "You created %1$s" : "Ha creado %1$s", diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json index 683149bafea..62ed9b2defe 100644 --- a/apps/files/l10n/es.json +++ b/apps/files/l10n/es.json @@ -68,6 +68,7 @@ "An error occurred while trying to update the tags" : "Se produjo un error al tratar de actualizar las etiquetas", "A new file or folder has been <strong>created</strong>" : "Se ha <strong>creado</strong> un nuevo archivo o carpeta", "A file or folder has been <strong>changed</strong>" : "Se ha <strong>modificado</strong> un archivo o carpeta", + "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limitar las notificaiones acerca de la creación y cambios de sus <strong>archivos favoritos</strong><em>(Stream only)</em>", "A file or folder has been <strong>deleted</strong>" : "Se ha <strong>eliminado</strong> un archivo o carpeta", "A file or folder has been <strong>restored</strong>" : "Se ha <strong>restaurado</strong> un archivo o carpeta", "You created %1$s" : "Ha creado %1$s", 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/fr.js b/apps/files/l10n/fr.js index 997b916b051..1c42ce7649c 100644 --- a/apps/files/l10n/fr.js +++ b/apps/files/l10n/fr.js @@ -67,7 +67,7 @@ OC.L10N.register( "{dirs} and {files}" : "{dirs} et {files}", "Favorited" : "Marqué comme favori", "Favorite" : "Favoris", - "An error occurred while trying to update the tags" : "Une erreur est survenue lors de la tentative de mise à jour des étiquettes", + "An error occurred while trying to update the tags" : "Une erreur est survenue lors de la mise à jour des étiquettes", "A new file or folder has been <strong>created</strong>" : "Un nouveau fichier ou répertoire a été <strong>créé</strong>", "A file or folder has been <strong>changed</strong>" : "Un fichier ou un répertoire a été <strong>modifié</strong>", "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limiter les notifications à ce qui concerne la création et la modification de vos <strong>fichiers favoris</strong> <em>(Flux uniquement)</em>", @@ -89,7 +89,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 c27bdd6ca6d..c04ba115e8b 100644 --- a/apps/files/l10n/fr.json +++ b/apps/files/l10n/fr.json @@ -65,7 +65,7 @@ "{dirs} and {files}" : "{dirs} et {files}", "Favorited" : "Marqué comme favori", "Favorite" : "Favoris", - "An error occurred while trying to update the tags" : "Une erreur est survenue lors de la tentative de mise à jour des étiquettes", + "An error occurred while trying to update the tags" : "Une erreur est survenue lors de la mise à jour des étiquettes", "A new file or folder has been <strong>created</strong>" : "Un nouveau fichier ou répertoire a été <strong>créé</strong>", "A file or folder has been <strong>changed</strong>" : "Un fichier ou un répertoire a été <strong>modifié</strong>", "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limiter les notifications à ce qui concerne la création et la modification de vos <strong>fichiers favoris</strong> <em>(Flux uniquement)</em>", @@ -87,7 +87,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/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/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/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/appnavigation.php b/apps/files/templates/appnavigation.php index f586b0ecb28..70b98303b06 100644 --- a/apps/files/templates/appnavigation.php +++ b/apps/files/templates/appnavigation.php @@ -3,7 +3,7 @@ <?php foreach ($_['navigationItems'] as $item) { ?> <li data-id="<?php p($item['id']) ?>" class="nav-<?php p($item['id']) ?>"> <a href="<?php p(isset($item['href']) ? $item['href'] : '#') ?>" - class="nav-icon-<?php p($item['id']) ?> svg"> + class="nav-icon-<?php p($item['icon'] !== '' ? $item['icon'] : $item['id']) ?> svg"> <?php p($item['name']);?> </a> </li> 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/fr.js b/apps/files_external/l10n/fr.js index b5804618a9a..f63553fe50a 100644 --- a/apps/files_external/l10n/fr.js +++ b/apps/files_external/l10n/fr.js @@ -66,7 +66,7 @@ OC.L10N.register( "No external storage configured" : "Aucun stockage externe configuré", "You can add external storages in the personal settings" : "Vous pouvez ajouter des stockages externes dans les paramètres personnels", "Name" : "Nom", - "Storage type" : "Type de support de stockage", + "Storage type" : "Type de stockage", "Scope" : "Portée", "External Storage" : "Stockage externe", "Folder name" : "Nom du dossier", diff --git a/apps/files_external/l10n/fr.json b/apps/files_external/l10n/fr.json index e72a6d1bf7f..af99c2c935a 100644 --- a/apps/files_external/l10n/fr.json +++ b/apps/files_external/l10n/fr.json @@ -64,7 +64,7 @@ "No external storage configured" : "Aucun stockage externe configuré", "You can add external storages in the personal settings" : "Vous pouvez ajouter des stockages externes dans les paramètres personnels", "Name" : "Nom", - "Storage type" : "Type de support de stockage", + "Storage type" : "Type de stockage", "Scope" : "Portée", "External Storage" : "Stockage externe", "Folder name" : "Nom du dossier", 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/sftp.php b/apps/files_external/lib/sftp.php index 392479c2f79..c457a87a6c7 100644 --- a/apps/files_external/lib/sftp.php +++ b/apps/files_external/lib/sftp.php @@ -133,7 +133,15 @@ class SFTP extends \OC\Files\Storage\Common { * {@inheritdoc} */ public function getId(){ - return 'sftp::' . $this->user . '@' . $this->host . ':' . $this->port . '/' . $this->root; + $id = 'sftp::' . $this->user . '@' . $this->host; + if ($this->port !== 22) { + $id .= ':' . $this->port; + } + // note: this will double the root slash, + // we should not change it to keep compatible with + // old storage ids + $id .= '/' . $this->root; + return $id; } /** diff --git a/apps/files_external/tests/backends/sftp.php b/apps/files_external/tests/backends/sftp.php index e619fd7e13d..29461c3abcc 100644 --- a/apps/files_external/tests/backends/sftp.php +++ b/apps/files_external/tests/backends/sftp.php @@ -47,4 +47,61 @@ class SFTP extends Storage { parent::tearDown(); } + + /** + * @dataProvider configProvider + */ + public function testStorageId($config, $expectedStorageId) { + $instance = new \OC\Files\Storage\SFTP($config); + $this->assertEquals($expectedStorageId, $instance->getId()); + } + + public function configProvider() { + return [ + [ + // no root path + [ + 'run' => true, + 'host' => 'somehost', + 'user' => 'someuser', + 'password' => 'somepassword', + 'root' => '', + ], + 'sftp::someuser@somehost//', + ], + [ + // without leading nor trailing slash + [ + 'run' => true, + 'host' => 'somehost', + 'user' => 'someuser', + 'password' => 'somepassword', + 'root' => 'remotedir/subdir', + ], + 'sftp::someuser@somehost//remotedir/subdir/', + ], + [ + // regular path + [ + 'run' => true, + 'host' => 'somehost', + 'user' => 'someuser', + 'password' => 'somepassword', + 'root' => '/remotedir/subdir/', + ], + 'sftp::someuser@somehost//remotedir/subdir/', + ], + [ + // different port + [ + 'run' => true, + 'host' => 'somehost:8822', + 'user' => 'someuser', + 'password' => 'somepassword', + 'root' => 'remotedir/subdir/', + ], + 'sftp::someuser@somehost:8822//remotedir/subdir/', + ], + ]; + } } 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/routes.php b/apps/files_sharing/appinfo/routes.php index 16f8727a510..9ac3a1f731a 100644 --- a/apps/files_sharing/appinfo/routes.php +++ b/apps/files_sharing/appinfo/routes.php @@ -26,6 +26,7 @@ namespace OCA\Files_Sharing\AppInfo; use OCA\Files_Sharing\Application; +use OCP\API; $application = new Application(); $application->registerRoutes($this, [ @@ -55,33 +56,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/l10n/es.js b/apps/files_sharing/l10n/es.js index 771bcdd25db..4f9e5e7c823 100644 --- a/apps/files_sharing/l10n/es.js +++ b/apps/files_sharing/l10n/es.js @@ -56,6 +56,7 @@ OC.L10N.register( "Download %s" : "Descargar %s", "Direct link" : "Enlace directo", "Federated Cloud Sharing" : "Compartido en Cloud Federado", + "Open documentation" : "Documentación abierta", "Allow users on this server to send shares to other servers" : "Permitir a usuarios de este servidor compartir con usuarios de otros servidores", "Allow users on this server to receive shares from other servers" : "Permitir a usuarios de este servidor recibir archivos de usuarios de otros servidores" }, diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json index 8b811d82e42..08f13f113c9 100644 --- a/apps/files_sharing/l10n/es.json +++ b/apps/files_sharing/l10n/es.json @@ -54,6 +54,7 @@ "Download %s" : "Descargar %s", "Direct link" : "Enlace directo", "Federated Cloud Sharing" : "Compartido en Cloud Federado", + "Open documentation" : "Documentación abierta", "Allow users on this server to send shares to other servers" : "Permitir a usuarios de este servidor compartir con usuarios de otros servidores", "Allow users on this server to receive shares from other servers" : "Permitir a usuarios de este servidor recibir archivos de usuarios de otros servidores" },"pluralForm" :"nplurals=2; plural=(n != 1);" 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/fr.js b/apps/files_sharing/l10n/fr.js index 54d1f88ef0e..0ed5c63a209 100644 --- a/apps/files_sharing/l10n/fr.js +++ b/apps/files_sharing/l10n/fr.js @@ -56,6 +56,7 @@ OC.L10N.register( "Download %s" : "Télécharger %s", "Direct link" : "Lien direct", "Federated Cloud Sharing" : "Federated Cloud Sharing", + "Open documentation" : "Voir la documentation", "Allow users on this server to send shares to other servers" : "Autoriser les utilisateurs de ce serveur à envoyer des partages vers d'autres serveurs", "Allow users on this server to receive shares from other servers" : "Autoriser les utilisateurs de ce serveur à recevoir des partages d'autres serveurs" }, diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json index 370ca5e3c49..b997b89ae57 100644 --- a/apps/files_sharing/l10n/fr.json +++ b/apps/files_sharing/l10n/fr.json @@ -54,6 +54,7 @@ "Download %s" : "Télécharger %s", "Direct link" : "Lien direct", "Federated Cloud Sharing" : "Federated Cloud Sharing", + "Open documentation" : "Voir la documentation", "Allow users on this server to send shares to other servers" : "Autoriser les utilisateurs de ce serveur à envoyer des partages vers d'autres serveurs", "Allow users on this server to receive shares from other servers" : "Autoriser les utilisateurs de ce serveur à recevoir des partages d'autres serveurs" },"pluralForm" :"nplurals=2; plural=(n > 1);" 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/pl.js b/apps/files_sharing/l10n/pl.js index 2a8fd58dfd5..361ebeff203 100644 --- a/apps/files_sharing/l10n/pl.js +++ b/apps/files_sharing/l10n/pl.js @@ -45,6 +45,7 @@ OC.L10N.register( "Add to your ownCloud" : "Dodaj do twojego ownCloud", "Download" : "Pobierz", "Download %s" : "Pobierz %s", - "Direct link" : "Bezpośredni link" + "Direct link" : "Bezpośredni link", + "Open documentation" : "Otwórz dokumentację" }, "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_sharing/l10n/pl.json b/apps/files_sharing/l10n/pl.json index 5071051a96f..372b4724a59 100644 --- a/apps/files_sharing/l10n/pl.json +++ b/apps/files_sharing/l10n/pl.json @@ -43,6 +43,7 @@ "Add to your ownCloud" : "Dodaj do twojego ownCloud", "Download" : "Pobierz", "Download %s" : "Pobierz %s", - "Direct link" : "Bezpośredni link" + "Direct link" : "Bezpośredni link", + "Open documentation" : "Otwórz dokumentację" },"pluralForm" :"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/files_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/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_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/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_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/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/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/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..98c3312f665 100644 --- a/apps/user_ldap/l10n/cs_CZ.js +++ b/apps/user_ldap/l10n/cs_CZ.js @@ -10,14 +10,26 @@ 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.", "Select attributes" : "Vyberte atributy", "_%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ů"], diff --git a/apps/user_ldap/l10n/cs_CZ.json b/apps/user_ldap/l10n/cs_CZ.json index 44f27988475..be8caeb0c08 100644 --- a/apps/user_ldap/l10n/cs_CZ.json +++ b/apps/user_ldap/l10n/cs_CZ.json @@ -8,14 +8,26 @@ "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.", "Select attributes" : "Vyberte atributy", "_%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ů"], diff --git a/apps/user_ldap/l10n/da.js b/apps/user_ldap/l10n/da.js index 6db29699fcf..b5a0183f9f0 100644 --- a/apps/user_ldap/l10n/da.js +++ b/apps/user_ldap/l10n/da.js @@ -10,15 +10,38 @@ OC.L10N.register( "No configuration specified" : "Der er ikke angivet en konfiguration", "No data specified" : "Der er ikke angivet data", " Could not set configuration %s" : "Kunne ikke indstille konfigurationen %s", + "Action does not exist" : "Handlingen findes ikke", "Configuration incorrect" : "Konfigurationen er ikke korrekt", "Configuration incomplete" : "Konfigurationen er ikke komplet", "Configuration OK" : "Konfigurationen er OK", "Select groups" : "Vælg grupper", "Select object classes" : "Vælg objektklasser", + "Please check the credentials, they seem to be wrong." : "Tjek venligst brugeroplysningerne - de ser ud til at være forkerte.", + "Please specify the port, it could not be auto-detected." : "Angiv venligst porten - den kunne ikke registreres automatisk.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN kunne ikke registreres automatisk - gennemse venligst brugeroplysningerne, vært og port.", + "Could not detect Base DN, please enter it manually." : "Kunne ikke registrere Base DN - angiv den venligst manuelt.", "{nthServer}. Server" : "{nthServer}. server", + "No object found in the given Base DN. Please revise." : "Intet objekt fundet i den givne Base DN. Gennemse venligst.", + "More then 1.000 directory entries available." : "Mere end 1.000 tilgængelige katalogposter.", + " entries available within the provided Base DN" : "poster tilgængelige inden for det angivne Base DN.", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Der opstod en fejl. Tjek venligst Base DN, såvel som forbindelsesindstillingerne og brugeroplysningerne.", "Do you really want to delete the current Server Configuration?" : "Ønsker du virkelig at slette den nuværende Server Konfiguration?", "Confirm Deletion" : "Bekræft Sletning", + "Mappings cleared successfully!" : "Kortlægningerne blev ryddet af vejen!", + "Error while clearing the mappings." : "Fejl under rydning af kortlægninger.", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Lagringen mislykkedes. Sørg venligst for at databasen er i drift. Genindlæs for der fortsættes.", + "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?" : "Skift af tilstanden vil betyde aktivering af automatiske LDAP-forespørgsler. Afhængig af størrelsen på din LDAP, vil det kunne tage noget tid. Ønsker du stadig at ændre tilstanden?", + "Mode switch" : "Skift af tilstand", "Select attributes" : "Vælg attributter", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Bruger blev ikke fundet. Tjek venligst dine login-attributter og brugernavnet. Gældende filter (til kopiér-og-indsæt for validering via kommandolinje): <br/>", + "User found and settings verified." : "Bruger blev fundetog indstillingerne bekræftet.", + "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Indstillingerne blev verificieret, men én bruger blev fundet. Det er blot den første, der vil kunne logge ind. Overvej et mere begrænset filter.", + "An unspecified error occurred. Please check the settings and the log." : "Der opstod en uspecificeret fejl. Tjek venligst indstillingerne og loggen.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Søgefilteret er ugyldigt - sandsynligvis på grund af problemer med syntaksen, såsom et ulige antal åbne og lukkede parenteser. Gennemse venligst. ", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Der opstod en forbindelsesfejl til LDAP/AD - tjek venligst vært, port og brugeroplysninger.", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Pladsholderen for %uid mangler. Den vil blive erstattes med loginnavnet, når LDAP/AD forespørges.", + "Please provide a login name to test against" : "Angiv venligst et loginnavn for at teste mod", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Gruppeboksen var slået fra, fordi LDAP/AD-serveren ikke understøtter memberOf.", "_%s group found_::_%s groups found_" : ["Der blev fundet %s gruppe","Der blev fundet %s grupper"], "_%s user found_::_%s users found_" : ["Der blev fundet %s bruger","Der blev fundet %s brugere"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Kunne ikke registrere navneattributten for visning af bruger. Angiv den venligst selv i de avancerede ldap-indstillinger.", @@ -26,29 +49,50 @@ OC.L10N.register( "Invalid Host" : "Ugyldig vært", "Server" : "Server", "Users" : "Brugere", + "Login Attributes" : "Login-attributter", "Groups" : "Grupper", "Test Configuration" : "Test Konfiguration", "Help" : "Hjælp", "Groups meeting these criteria are available in %s:" : "Grupper som opfylder disse kriterier er tilgængelige i %s:", + "Only these object classes:" : "Kun disse objektklasser:", + "Only from these groups:" : "Kun fra disse grupper:", + "Search groups" : "Søg grupper", + "Available groups" : "Tilgængelige grupper", + "Selected groups" : "Valgte grupper", + "Edit LDAP Query" : "Redigér LDAP-forespørgsel", + "LDAP Filter:" : "LDAP-filter:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filteret angiver hvilke LDAP-grupper, der skal have adgang til instansen %s.", "Test Filter" : "Test filter", + "Verify settings and count groups" : "Verificér indstillinger og optællingsgrupper", + "When logging in, %s will find the user based on the following attributes:" : "Når der logges ind, så vil %s finde brugeren baseret på følgende attributter:", + "LDAP / AD Username:" : "LDAP/AD-brugernavn:", + "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Tillader login mod LDAP/AD-brugernavnet, hvilket enten er et uid eller samaccountname, og vil blive detekteret.", + "LDAP / AD Email Address:" : "E-mailadresser for LDAP/AD:", + "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Tillader login mod en e-mailattribut. Mail og mailPrimaryAddress vil være tilladt.", "Other Attributes:" : "Andre attributter:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definerer dét filter der anvendes, når der er forsøg på at logge ind. %%uuid erstattter brugernavnet i login-handlingen. Eksempel: \"uid=%%uuid\"", + "Test Loginname" : "Test loginnavn", + "Verify settings" : "Verificér indstillinger", "1. Server" : "1. server", "%s. Server:" : "%s. server:", "Host" : "Vært", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Du kan udelade protokollen, medmindre du skal bruge SSL. Start i så fald med ldaps://", "Port" : "Port", + "Detect Port" : "Registrér port", "User DN" : "Bruger 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'et for klientbrugeren, for hvilken forbindelsen skal foretages, eks. uid=agent,dc=eksempel,dc=com. For anonym adgang lades DN og Password stå tomme.", "Password" : "Kodeord", "For anonymous access, leave DN and Password empty." : "For anonym adgang, skal du lade DN og Adgangskode tomme.", "One Base DN per line" : "Ét Base DN per linje", "You can specify Base DN for users and groups in the Advanced tab" : "Du kan specificere base DN for brugere og grupper i fanen Advanceret", + "Detect Base DN" : "Registrér Base DN", + "Test Base DN" : "Test Base DN", "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Undgår automatiske LDAP-forespørgsler. Bedre på større opsætninger, men kræver en del LDAP-kendskab.", "Manually enter LDAP filters (recommended for large directories)" : "Angiv LDAP-filtre manuelt (anbefales til større kataloger)", "Limit %s access to users meeting these criteria:" : "Begræns %s-adgangen til brugere som imødekommer disse kriterier:", + "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 fleste gængse objektklasser for brugere er organizationalPerson, person, user og inetOrgPerson. Hvis du ikker er sikker på hvilken objektklasse, der skal vælges, så tal med administratoren af dit katalog.", "The filter specifies which LDAP users shall have access to the %s instance." : "Filteret angiver hvilke LDAP-brugere, der skal have adgang til %s-instansen.", + "Verify settings and count users" : "Verificér indstillinger og optalte brugere", "Saving" : "Gemmer", "Back" : "Tilbage", "Continue" : "Videre", diff --git a/apps/user_ldap/l10n/da.json b/apps/user_ldap/l10n/da.json index ffbc502f76b..f57c8d212ef 100644 --- a/apps/user_ldap/l10n/da.json +++ b/apps/user_ldap/l10n/da.json @@ -8,15 +8,38 @@ "No configuration specified" : "Der er ikke angivet en konfiguration", "No data specified" : "Der er ikke angivet data", " Could not set configuration %s" : "Kunne ikke indstille konfigurationen %s", + "Action does not exist" : "Handlingen findes ikke", "Configuration incorrect" : "Konfigurationen er ikke korrekt", "Configuration incomplete" : "Konfigurationen er ikke komplet", "Configuration OK" : "Konfigurationen er OK", "Select groups" : "Vælg grupper", "Select object classes" : "Vælg objektklasser", + "Please check the credentials, they seem to be wrong." : "Tjek venligst brugeroplysningerne - de ser ud til at være forkerte.", + "Please specify the port, it could not be auto-detected." : "Angiv venligst porten - den kunne ikke registreres automatisk.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN kunne ikke registreres automatisk - gennemse venligst brugeroplysningerne, vært og port.", + "Could not detect Base DN, please enter it manually." : "Kunne ikke registrere Base DN - angiv den venligst manuelt.", "{nthServer}. Server" : "{nthServer}. server", + "No object found in the given Base DN. Please revise." : "Intet objekt fundet i den givne Base DN. Gennemse venligst.", + "More then 1.000 directory entries available." : "Mere end 1.000 tilgængelige katalogposter.", + " entries available within the provided Base DN" : "poster tilgængelige inden for det angivne Base DN.", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Der opstod en fejl. Tjek venligst Base DN, såvel som forbindelsesindstillingerne og brugeroplysningerne.", "Do you really want to delete the current Server Configuration?" : "Ønsker du virkelig at slette den nuværende Server Konfiguration?", "Confirm Deletion" : "Bekræft Sletning", + "Mappings cleared successfully!" : "Kortlægningerne blev ryddet af vejen!", + "Error while clearing the mappings." : "Fejl under rydning af kortlægninger.", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Lagringen mislykkedes. Sørg venligst for at databasen er i drift. Genindlæs for der fortsættes.", + "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?" : "Skift af tilstanden vil betyde aktivering af automatiske LDAP-forespørgsler. Afhængig af størrelsen på din LDAP, vil det kunne tage noget tid. Ønsker du stadig at ændre tilstanden?", + "Mode switch" : "Skift af tilstand", "Select attributes" : "Vælg attributter", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Bruger blev ikke fundet. Tjek venligst dine login-attributter og brugernavnet. Gældende filter (til kopiér-og-indsæt for validering via kommandolinje): <br/>", + "User found and settings verified." : "Bruger blev fundetog indstillingerne bekræftet.", + "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Indstillingerne blev verificieret, men én bruger blev fundet. Det er blot den første, der vil kunne logge ind. Overvej et mere begrænset filter.", + "An unspecified error occurred. Please check the settings and the log." : "Der opstod en uspecificeret fejl. Tjek venligst indstillingerne og loggen.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Søgefilteret er ugyldigt - sandsynligvis på grund af problemer med syntaksen, såsom et ulige antal åbne og lukkede parenteser. Gennemse venligst. ", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Der opstod en forbindelsesfejl til LDAP/AD - tjek venligst vært, port og brugeroplysninger.", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Pladsholderen for %uid mangler. Den vil blive erstattes med loginnavnet, når LDAP/AD forespørges.", + "Please provide a login name to test against" : "Angiv venligst et loginnavn for at teste mod", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Gruppeboksen var slået fra, fordi LDAP/AD-serveren ikke understøtter memberOf.", "_%s group found_::_%s groups found_" : ["Der blev fundet %s gruppe","Der blev fundet %s grupper"], "_%s user found_::_%s users found_" : ["Der blev fundet %s bruger","Der blev fundet %s brugere"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Kunne ikke registrere navneattributten for visning af bruger. Angiv den venligst selv i de avancerede ldap-indstillinger.", @@ -24,29 +47,50 @@ "Invalid Host" : "Ugyldig vært", "Server" : "Server", "Users" : "Brugere", + "Login Attributes" : "Login-attributter", "Groups" : "Grupper", "Test Configuration" : "Test Konfiguration", "Help" : "Hjælp", "Groups meeting these criteria are available in %s:" : "Grupper som opfylder disse kriterier er tilgængelige i %s:", + "Only these object classes:" : "Kun disse objektklasser:", + "Only from these groups:" : "Kun fra disse grupper:", + "Search groups" : "Søg grupper", + "Available groups" : "Tilgængelige grupper", + "Selected groups" : "Valgte grupper", + "Edit LDAP Query" : "Redigér LDAP-forespørgsel", + "LDAP Filter:" : "LDAP-filter:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filteret angiver hvilke LDAP-grupper, der skal have adgang til instansen %s.", "Test Filter" : "Test filter", + "Verify settings and count groups" : "Verificér indstillinger og optællingsgrupper", + "When logging in, %s will find the user based on the following attributes:" : "Når der logges ind, så vil %s finde brugeren baseret på følgende attributter:", + "LDAP / AD Username:" : "LDAP/AD-brugernavn:", + "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Tillader login mod LDAP/AD-brugernavnet, hvilket enten er et uid eller samaccountname, og vil blive detekteret.", + "LDAP / AD Email Address:" : "E-mailadresser for LDAP/AD:", + "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Tillader login mod en e-mailattribut. Mail og mailPrimaryAddress vil være tilladt.", "Other Attributes:" : "Andre attributter:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definerer dét filter der anvendes, når der er forsøg på at logge ind. %%uuid erstattter brugernavnet i login-handlingen. Eksempel: \"uid=%%uuid\"", + "Test Loginname" : "Test loginnavn", + "Verify settings" : "Verificér indstillinger", "1. Server" : "1. server", "%s. Server:" : "%s. server:", "Host" : "Vært", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Du kan udelade protokollen, medmindre du skal bruge SSL. Start i så fald med ldaps://", "Port" : "Port", + "Detect Port" : "Registrér port", "User DN" : "Bruger 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'et for klientbrugeren, for hvilken forbindelsen skal foretages, eks. uid=agent,dc=eksempel,dc=com. For anonym adgang lades DN og Password stå tomme.", "Password" : "Kodeord", "For anonymous access, leave DN and Password empty." : "For anonym adgang, skal du lade DN og Adgangskode tomme.", "One Base DN per line" : "Ét Base DN per linje", "You can specify Base DN for users and groups in the Advanced tab" : "Du kan specificere base DN for brugere og grupper i fanen Advanceret", + "Detect Base DN" : "Registrér Base DN", + "Test Base DN" : "Test Base DN", "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Undgår automatiske LDAP-forespørgsler. Bedre på større opsætninger, men kræver en del LDAP-kendskab.", "Manually enter LDAP filters (recommended for large directories)" : "Angiv LDAP-filtre manuelt (anbefales til større kataloger)", "Limit %s access to users meeting these criteria:" : "Begræns %s-adgangen til brugere som imødekommer disse kriterier:", + "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 fleste gængse objektklasser for brugere er organizationalPerson, person, user og inetOrgPerson. Hvis du ikker er sikker på hvilken objektklasse, der skal vælges, så tal med administratoren af dit katalog.", "The filter specifies which LDAP users shall have access to the %s instance." : "Filteret angiver hvilke LDAP-brugere, der skal have adgang til %s-instansen.", + "Verify settings and count users" : "Verificér indstillinger og optalte brugere", "Saving" : "Gemmer", "Back" : "Tilbage", "Continue" : "Videre", diff --git a/apps/user_ldap/l10n/de.js b/apps/user_ldap/l10n/de.js index e77e664d904..419e4cff59c 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 prüfe die Anmeldeinformationen, sie scheinen nicht richtig zu sein.", + "Please specify the port, it could not be auto-detected." : "Bitte den Port manuell eingeben, 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 Verzeichnis Einträ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 während dem löschen der Zuordnungen!", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Speichern fehlgeschlagen. Bitte sicherstellen dass die Datenbank arbeitet. Neuladen vor dem Fortfahren.", + "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 kann dies eine Weile dauern. 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/>" : "User nicht gefunden. Prüfe Deine Login Attribute und den Usernamen. Effektiver Filter (copy-and-paste für die Kommando Zeilen Überprüfung): <br/>", + "User found and settings verified." : "User gefunden und Einstellungen überprüft.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Es trat ein Verbindungsfehler zu LDAP / AD auf, bitte prüfen sie den Server, den Port und dieAnmeldeinformationen.", "_%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" : "Anmelde Attribute", "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 Objekt Klassen:", + "Only from these groups:" : "Nur von diesen Gruppen:", + "Search groups" : "Suche Gruppen", + "Available groups" : "Verfügbare Gruppen", + "Selected groups" : "Ausgewählte Gruppen", + "Edit LDAP Query" : "Editiere die LDAP Abfrage", + "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" : "Überprüfe die Einstellungen und zähle Gruppen", + "LDAP / AD Username:" : "LDAP / AD Benutzername:", + "LDAP / AD Email Address:" : "LDAP / AD Email 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" : "Teste den Benutzernamen", + "Verify settings" : "Überprüfe Einstellungen", "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" : "Ermittle den Port", "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", + "Detect Base DN" : "Ermittle die Base DN", + "Test Base DN" : "Teste die Base DN", "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" : "Überprüfe Einstellungen und zähle Benutzer", "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..47fc89ddb59 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 prüfe die Anmeldeinformationen, sie scheinen nicht richtig zu sein.", + "Please specify the port, it could not be auto-detected." : "Bitte den Port manuell eingeben, 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 Verzeichnis Einträ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 während dem löschen der Zuordnungen!", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Speichern fehlgeschlagen. Bitte sicherstellen dass die Datenbank arbeitet. Neuladen vor dem Fortfahren.", + "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 kann dies eine Weile dauern. 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/>" : "User nicht gefunden. Prüfe Deine Login Attribute und den Usernamen. Effektiver Filter (copy-and-paste für die Kommando Zeilen Überprüfung): <br/>", + "User found and settings verified." : "User gefunden und Einstellungen überprüft.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Es trat ein Verbindungsfehler zu LDAP / AD auf, bitte prüfen sie den Server, den Port und dieAnmeldeinformationen.", "_%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" : "Anmelde Attribute", "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 Objekt Klassen:", + "Only from these groups:" : "Nur von diesen Gruppen:", + "Search groups" : "Suche Gruppen", + "Available groups" : "Verfügbare Gruppen", + "Selected groups" : "Ausgewählte Gruppen", + "Edit LDAP Query" : "Editiere die LDAP Abfrage", + "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" : "Überprüfe die Einstellungen und zähle Gruppen", + "LDAP / AD Username:" : "LDAP / AD Benutzername:", + "LDAP / AD Email Address:" : "LDAP / AD Email 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" : "Teste den Benutzernamen", + "Verify settings" : "Überprüfe Einstellungen", "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" : "Ermittle den Port", "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", + "Detect Base DN" : "Ermittle die Base DN", + "Test Base DN" : "Teste die Base DN", "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" : "Überprüfe Einstellungen und zähle Benutzer", "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..132780c74bf 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 prüfe die Anmeldeinformationen, sie scheinen nicht richtig zu sein.", + "Please specify the port, it could not be auto-detected." : "Bitte den Port manuell eingeben, 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 Verzeichnis Einträ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 während dem löschen der Zuordnungen!", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Speichern fehlgeschlagen. Bitte sicherstellen dass die Datenbank arbeitet. Neuladen vor dem Fortfahren.", + "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 kann dies eine Weile dauern. 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/>" : "User nicht gefunden. Prüfe Deine Login Attribute und den Usernamen. Effektiver Filter (copy-and-paste für die Kommando Zeilen Überprüfung): <br/>", + "User found and settings verified." : "User gefunden und Einstellungen überprüft.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Es trat ein Verbindungsfehler zu LDAP / AD auf, bitte prüfen sie den Server, den Port und dieAnmeldeinformationen.", "_%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" : "Anmelde Attribute", "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 Objekt Klassen:", + "Only from these groups:" : "Nur von diesen Gruppen:", + "Search groups" : "Suche Gruppen", + "Available groups" : "Verfügbare Gruppen", + "Selected groups" : "Ausgewählte Gruppen", + "Edit LDAP Query" : "Editiere die LDAP Abfrage", + "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" : "Überprüfe die Einstellungen und zähle Gruppen", + "LDAP / AD Username:" : "LDAP / AD Benutzername:", + "LDAP / AD Email Address:" : "LDAP / AD Email 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" : "Teste den Benutzernamen", + "Verify settings" : "Überprüfe Einstellungen", "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" : "Ermittle den Port", "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" : "Ermittle die Base DN", + "Test Base DN" : "Teste die Base DN", "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" : "Überprüfe Einstellungen und zähle Benutzer", "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..a4661c72581 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 prüfe die Anmeldeinformationen, sie scheinen nicht richtig zu sein.", + "Please specify the port, it could not be auto-detected." : "Bitte den Port manuell eingeben, 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 Verzeichnis Einträ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 während dem löschen der Zuordnungen!", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Speichern fehlgeschlagen. Bitte sicherstellen dass die Datenbank arbeitet. Neuladen vor dem Fortfahren.", + "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 kann dies eine Weile dauern. 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/>" : "User nicht gefunden. Prüfe Deine Login Attribute und den Usernamen. Effektiver Filter (copy-and-paste für die Kommando Zeilen Überprüfung): <br/>", + "User found and settings verified." : "User gefunden und Einstellungen überprüft.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Es trat ein Verbindungsfehler zu LDAP / AD auf, bitte prüfen sie den Server, den Port und dieAnmeldeinformationen.", "_%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" : "Anmelde Attribute", "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 Objekt Klassen:", + "Only from these groups:" : "Nur von diesen Gruppen:", + "Search groups" : "Suche Gruppen", + "Available groups" : "Verfügbare Gruppen", + "Selected groups" : "Ausgewählte Gruppen", + "Edit LDAP Query" : "Editiere die LDAP Abfrage", + "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" : "Überprüfe die Einstellungen und zähle Gruppen", + "LDAP / AD Username:" : "LDAP / AD Benutzername:", + "LDAP / AD Email Address:" : "LDAP / AD Email 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" : "Teste den Benutzernamen", + "Verify settings" : "Überprüfe Einstellungen", "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" : "Ermittle den Port", "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" : "Ermittle die Base DN", + "Test Base DN" : "Teste die Base DN", "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" : "Überprüfe Einstellungen und zähle Benutzer", "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/es.js b/apps/user_ldap/l10n/es.js index 45b29d6d20c..84297d32ba5 100644 --- a/apps/user_ldap/l10n/es.js +++ b/apps/user_ldap/l10n/es.js @@ -10,15 +10,38 @@ OC.L10N.register( "No configuration specified" : "No se ha especificado la configuración", "No data specified" : "No se han especificado los datos", " Could not set configuration %s" : "No se pudo establecer la configuración %s", + "Action does not exist" : "Acción no existe.", "Configuration incorrect" : "Configuración Incorrecta", "Configuration incomplete" : "Configuración incompleta", "Configuration OK" : "Configuración correcta", "Select groups" : "Seleccionar grupos", "Select object classes" : "Seleccionar la clase de objeto", + "Please check the credentials, they seem to be wrong." : "Por favor verifique las credenciales, parecen no ser correctas.", + "Please specify the port, it could not be auto-detected." : "Por favor especifique el puerto, no pudo ser auto-detectado.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN no puede ser detectada automáticamente, por favor revise credenciales, host y puerto.", + "Could not detect Base DN, please enter it manually." : "No se pudo detectar Base DN, por favor ingrésela manualmente.", "{nthServer}. Server" : "{nthServer}. servidor", + "No object found in the given Base DN. Please revise." : "No se encuentra ningún objeto en la Base DN dada. Por favor revisar.", + "More then 1.000 directory entries available." : "Más de 1.000 entradas de directorios disponibles.", + " entries available within the provided Base DN" : "entradas disponibles dentro de la BaseDN provista", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Un error ocurrió. Por favor revise la Base DN, también como la configuración de la conexión y credenciales.", "Do you really want to delete the current Server Configuration?" : "¿Realmente desea eliminar la configuración actual del servidor?", "Confirm Deletion" : "Confirmar eliminación", + "Mappings cleared successfully!" : "Asignaciones borrado exitosamente!", + "Error while clearing the mappings." : "Error mientras se borraban las asignaciones.", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Guardado fallido. Por favor, asegúrese que la base de datos esta en Operación. Actualizar antes de continuar.", + "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?" : "Cambiando el modo habilitará automáticamente las consultas LDAP. Dependiendo del tamaño de su LDAP puede tardar un rato. Desea cambiar el modo?", + "Mode switch" : "Modo interruptor", "Select attributes" : "Seleccionar atributos", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Usuario no encontrado. Por favor verifique los atributos de inicio de sesión y nombre de usuario. Filtro eficaz (copie-y-pegue para validar desde la línea de comando):<br/>", + "User found and settings verified." : "Usuario encontrado y configuración verificada.", + "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Configuración verificada, pero no se encuentra ningún usuario. Sólo el primero podrá iniciar sesión. Considere un filtro más estrecho.", + "An unspecified error occurred. Please check the settings and the log." : "Un error no especificado ocurrió. Por favor verifique las configuraciones y el registro.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "El filtro de búsqueda es inválido, probablemente debido a problemas de sintáxis tales como números impares de paréntesis abiertos y cerrados. Por favor revíselos.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Un error de conexión a LDAP / AD ocurrió, por favor verifique host, puerto y credenciales.", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "El marcador de posición %uid no está presente. Será reemplazado con el nombre de inicio de sesión cuando se consulte LDAP / AD.", + "Please provide a login name to test against" : "Por favor suministre un nombre de inicio de sesión para probar", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "El cuadro de grupo fue deshabilitado, porque el servidor LDAP / AD no admite memberOf.", "_%s group found_::_%s groups found_" : ["Grupo %s encontrado","Grupos %s encontrados"], "_%s user found_::_%s users found_" : ["Usuario %s encontrado","Usuarios %s encontrados"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "No se pudo detectar el atributo de nombre de usuario pantalla. Por favor especifique lo mismo en ajustes avanzados ldap.", @@ -26,29 +49,50 @@ OC.L10N.register( "Invalid Host" : "Host inválido", "Server" : "Servidor", "Users" : "Usuarios", + "Login Attributes" : "Atributos de inicio de sesión", "Groups" : "Grupos", "Test Configuration" : "Configuración de prueba", "Help" : "Ayuda", "Groups meeting these criteria are available in %s:" : "Los grupos que cumplen estos criterios están disponibles en %s:", + "Only these object classes:" : "Sólo estas clases de objetos:", + "Only from these groups:" : "Sólo desde estos grupos:", + "Search groups" : "Buscar grupos", + "Available groups" : "Grupos disponibles", + "Selected groups" : "Grupos seleccionados", + "Edit LDAP Query" : "Editar consulta LDAP", + "LDAP Filter:" : "Filtro LDAP:", "The filter specifies which LDAP groups shall have access to the %s instance." : "El filtro especifica que grupos LDAP tendrán acceso a %s.", "Test Filter" : "Filtro de prueba", + "Verify settings and count groups" : "Verificar configuraciones y contar grupos", + "When logging in, %s will find the user based on the following attributes:" : "Cuando se inicia sesión, %s encontrará al usuario basado en los siguientes atributos:", + "LDAP / AD Username:" : "Nombre de usuario LDAP /AD:", + "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Permite el inicio de sesión contra el nombre de usuario LDAP / AD, el cual es o el uid o samaccountname y será detectado.", + "LDAP / AD Email Address:" : "LDAP / AD dirección de correo electrónico:", + "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Permite el inicio de sesión contra un atributo de correo electrónico. Correo y dirección primario de correo electrónico está habilitada.", "Other Attributes:" : "Otros atributos:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Define el filtro a aplicar cuando se intenta identificar. %%uid remplazará al nombre de usuario en el proceso de identificación. Por ejemplo: \"uid=%%uid\"", + "Test Loginname" : "Probar nombre de sesión", + "Verify settings" : "Verificar configuración", "1. Server" : "1. Servidor", "%s. Server:" : "%s. Servidor:", "Host" : "Servidor", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Puede omitir el protocolo, excepto si requiere SSL. En ese caso, empiece con ldaps://", "Port" : "Puerto", + "Detect Port" : "Detectar puerto", "User DN" : "DN usuario", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del usuario cliente con el que se hará la asociación, p.ej. uid=agente,dc=ejemplo,dc=com. Para acceso anónimo, deje DN y contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deje DN y contraseña vacíos.", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puede especificar el DN base para usuarios y grupos en la pestaña Avanzado", + "Detect Base DN" : "Detectar Base DN", + "Test Base DN" : "Probar Base DN", "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita peticiones automáticas al LDAP. Mejor para grandes configuraciones, pero requiere cierto conocimiento de LDAP.", "Manually enter LDAP filters (recommended for large directories)" : "Ingrese manualmente los filtros LDAP (Recomendado para grandes directorios)", "Limit %s access to users meeting these criteria:" : "Limitar el acceso a %s a los usuarios que cumplan estos criterios:", + "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." : "Los objetos de clases más comunes para los usuarios son organizationalPerson, persona, usuario y inetOrgPerson. Si no está seguro que objeto de clase seleccionar, por favor consulte con su administrador de directorio. ", "The filter specifies which LDAP users shall have access to the %s instance." : "El filtro especifica que usuarios LDAP pueden tener acceso a %s.", + "Verify settings and count users" : "Verificar configuración y contar usuarios", "Saving" : "Guardando", "Back" : "Atrás", "Continue" : "Continuar", diff --git a/apps/user_ldap/l10n/es.json b/apps/user_ldap/l10n/es.json index b99bf215b8e..7a9448882fe 100644 --- a/apps/user_ldap/l10n/es.json +++ b/apps/user_ldap/l10n/es.json @@ -8,15 +8,38 @@ "No configuration specified" : "No se ha especificado la configuración", "No data specified" : "No se han especificado los datos", " Could not set configuration %s" : "No se pudo establecer la configuración %s", + "Action does not exist" : "Acción no existe.", "Configuration incorrect" : "Configuración Incorrecta", "Configuration incomplete" : "Configuración incompleta", "Configuration OK" : "Configuración correcta", "Select groups" : "Seleccionar grupos", "Select object classes" : "Seleccionar la clase de objeto", + "Please check the credentials, they seem to be wrong." : "Por favor verifique las credenciales, parecen no ser correctas.", + "Please specify the port, it could not be auto-detected." : "Por favor especifique el puerto, no pudo ser auto-detectado.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "Base DN no puede ser detectada automáticamente, por favor revise credenciales, host y puerto.", + "Could not detect Base DN, please enter it manually." : "No se pudo detectar Base DN, por favor ingrésela manualmente.", "{nthServer}. Server" : "{nthServer}. servidor", + "No object found in the given Base DN. Please revise." : "No se encuentra ningún objeto en la Base DN dada. Por favor revisar.", + "More then 1.000 directory entries available." : "Más de 1.000 entradas de directorios disponibles.", + " entries available within the provided Base DN" : "entradas disponibles dentro de la BaseDN provista", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Un error ocurrió. Por favor revise la Base DN, también como la configuración de la conexión y credenciales.", "Do you really want to delete the current Server Configuration?" : "¿Realmente desea eliminar la configuración actual del servidor?", "Confirm Deletion" : "Confirmar eliminación", + "Mappings cleared successfully!" : "Asignaciones borrado exitosamente!", + "Error while clearing the mappings." : "Error mientras se borraban las asignaciones.", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Guardado fallido. Por favor, asegúrese que la base de datos esta en Operación. Actualizar antes de continuar.", + "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?" : "Cambiando el modo habilitará automáticamente las consultas LDAP. Dependiendo del tamaño de su LDAP puede tardar un rato. Desea cambiar el modo?", + "Mode switch" : "Modo interruptor", "Select attributes" : "Seleccionar atributos", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Usuario no encontrado. Por favor verifique los atributos de inicio de sesión y nombre de usuario. Filtro eficaz (copie-y-pegue para validar desde la línea de comando):<br/>", + "User found and settings verified." : "Usuario encontrado y configuración verificada.", + "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Configuración verificada, pero no se encuentra ningún usuario. Sólo el primero podrá iniciar sesión. Considere un filtro más estrecho.", + "An unspecified error occurred. Please check the settings and the log." : "Un error no especificado ocurrió. Por favor verifique las configuraciones y el registro.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "El filtro de búsqueda es inválido, probablemente debido a problemas de sintáxis tales como números impares de paréntesis abiertos y cerrados. Por favor revíselos.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Un error de conexión a LDAP / AD ocurrió, por favor verifique host, puerto y credenciales.", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "El marcador de posición %uid no está presente. Será reemplazado con el nombre de inicio de sesión cuando se consulte LDAP / AD.", + "Please provide a login name to test against" : "Por favor suministre un nombre de inicio de sesión para probar", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "El cuadro de grupo fue deshabilitado, porque el servidor LDAP / AD no admite memberOf.", "_%s group found_::_%s groups found_" : ["Grupo %s encontrado","Grupos %s encontrados"], "_%s user found_::_%s users found_" : ["Usuario %s encontrado","Usuarios %s encontrados"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "No se pudo detectar el atributo de nombre de usuario pantalla. Por favor especifique lo mismo en ajustes avanzados ldap.", @@ -24,29 +47,50 @@ "Invalid Host" : "Host inválido", "Server" : "Servidor", "Users" : "Usuarios", + "Login Attributes" : "Atributos de inicio de sesión", "Groups" : "Grupos", "Test Configuration" : "Configuración de prueba", "Help" : "Ayuda", "Groups meeting these criteria are available in %s:" : "Los grupos que cumplen estos criterios están disponibles en %s:", + "Only these object classes:" : "Sólo estas clases de objetos:", + "Only from these groups:" : "Sólo desde estos grupos:", + "Search groups" : "Buscar grupos", + "Available groups" : "Grupos disponibles", + "Selected groups" : "Grupos seleccionados", + "Edit LDAP Query" : "Editar consulta LDAP", + "LDAP Filter:" : "Filtro LDAP:", "The filter specifies which LDAP groups shall have access to the %s instance." : "El filtro especifica que grupos LDAP tendrán acceso a %s.", "Test Filter" : "Filtro de prueba", + "Verify settings and count groups" : "Verificar configuraciones y contar grupos", + "When logging in, %s will find the user based on the following attributes:" : "Cuando se inicia sesión, %s encontrará al usuario basado en los siguientes atributos:", + "LDAP / AD Username:" : "Nombre de usuario LDAP /AD:", + "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Permite el inicio de sesión contra el nombre de usuario LDAP / AD, el cual es o el uid o samaccountname y será detectado.", + "LDAP / AD Email Address:" : "LDAP / AD dirección de correo electrónico:", + "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Permite el inicio de sesión contra un atributo de correo electrónico. Correo y dirección primario de correo electrónico está habilitada.", "Other Attributes:" : "Otros atributos:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Define el filtro a aplicar cuando se intenta identificar. %%uid remplazará al nombre de usuario en el proceso de identificación. Por ejemplo: \"uid=%%uid\"", + "Test Loginname" : "Probar nombre de sesión", + "Verify settings" : "Verificar configuración", "1. Server" : "1. Servidor", "%s. Server:" : "%s. Servidor:", "Host" : "Servidor", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Puede omitir el protocolo, excepto si requiere SSL. En ese caso, empiece con ldaps://", "Port" : "Puerto", + "Detect Port" : "Detectar puerto", "User DN" : "DN usuario", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del usuario cliente con el que se hará la asociación, p.ej. uid=agente,dc=ejemplo,dc=com. Para acceso anónimo, deje DN y contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deje DN y contraseña vacíos.", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puede especificar el DN base para usuarios y grupos en la pestaña Avanzado", + "Detect Base DN" : "Detectar Base DN", + "Test Base DN" : "Probar Base DN", "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita peticiones automáticas al LDAP. Mejor para grandes configuraciones, pero requiere cierto conocimiento de LDAP.", "Manually enter LDAP filters (recommended for large directories)" : "Ingrese manualmente los filtros LDAP (Recomendado para grandes directorios)", "Limit %s access to users meeting these criteria:" : "Limitar el acceso a %s a los usuarios que cumplan estos criterios:", + "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." : "Los objetos de clases más comunes para los usuarios son organizationalPerson, persona, usuario y inetOrgPerson. Si no está seguro que objeto de clase seleccionar, por favor consulte con su administrador de directorio. ", "The filter specifies which LDAP users shall have access to the %s instance." : "El filtro especifica que usuarios LDAP pueden tener acceso a %s.", + "Verify settings and count users" : "Verificar configuración y contar usuarios", "Saving" : "Guardando", "Back" : "Atrás", "Continue" : "Continuar", diff --git a/apps/user_ldap/l10n/fr.js b/apps/user_ldap/l10n/fr.js index cd71fa7905c..193094fca59 100644 --- a/apps/user_ldap/l10n/fr.js +++ b/apps/user_ldap/l10n/fr.js @@ -36,6 +36,12 @@ OC.L10N.register( "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Utilisateur introuvable. Veuillez vérifier les attributs de login et le nom d'utilisateur. Filtre effectif (à copier-coller pour valider en ligne de commande):<br/>", "User found and settings verified." : "Utilisateur trouvé et paramètres vérifiés.", "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Paramètres vérifiés, mais seul le premier utilisateur pourra se connecter. Considérez utiliser un filtre plus restrictif.", + "An unspecified error occurred. Please check the settings and the log." : "Une erreur non spécifiée s'est produite. Veuillez vérifier les paramètres et le log.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Le filtre de recherche n'est pas valide, probablement à cause de problèmes de syntaxe tels que des parenthèses manquantes. Veuillez le corriger.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Une erreur s'est produite à la connexion au LDAP / AD. Veuillez vérifier l'hôte, le port et les informations d'identification.", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "La chaîne %uid est manquante. Cette chaîne est remplacée par l'identifiant de connexion lors des requêtes LDAP / AD.", + "Please provide a login name to test against" : "Veuillez indiquer un identifiant de connexion avec lequel tester.", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Les groupes sont désactivés car le serveur LDAP / AD ne prend pas en charge memberOf.", "_%s group found_::_%s groups found_" : ["%s groupe trouvé","%s groupes trouvés"], "_%s user found_::_%s users found_" : ["%s utilisateur trouvé","%s utilisateurs trouvés"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Impossible de détecter l'attribut contenant le nom d'affichage des utilisateurs. Veuillez l'indiquer vous-même dans les paramètres ldap avancés.", @@ -43,36 +49,57 @@ OC.L10N.register( "Invalid Host" : "Hôte non valide", "Server" : "Serveur", "Users" : "Utilisateurs", + "Login Attributes" : "Attributs de login", "Groups" : "Groupes", "Test Configuration" : "Tester la configuration", "Help" : "Aide", "Groups meeting these criteria are available in %s:" : "Les groupes respectant ces critères sont disponibles dans %s :", + "Only these object classes:" : "Seulement ces classes d'objets :", + "Only from these groups:" : "Seulement dans ces groupes :", + "Search groups" : "Chercher dans les groupes", + "Available groups" : "Chercher dans les utilisateurs", + "Selected groups" : "Groupes sélectionnés", + "Edit LDAP Query" : "Modifier la requête LDAP", + "LDAP Filter:" : "Filtre LDAP :", "The filter specifies which LDAP groups shall have access to the %s instance." : "Le filtre spécifie quels groupes LDAP ont accès à l'instance %s.", "Test Filter" : "Test du filtre", + "Verify settings and count groups" : "Vérifier les paramètres et compter les groupes", + "When logging in, %s will find the user based on the following attributes:" : "Au login, %s cherchera l'utilisateur sur base de ces attributs :", + "LDAP / AD Username:" : "Nom d'utilisateur LDAP / AD :", + "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Autoriser le login avec le nom d'utilisateur LDAP / AD (uid ou samaccountname, la détection est automatique). ", + "LDAP / AD Email Address:" : "Adresse mail LDAP / AD :", + "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Autoriser le login avec une adresse mail. Mail et mailPrimaryAddress sont autorisés.", "Other Attributes:" : "Autres attributs :", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Définit le filtre à appliquer lors d'une tentative de connexion. %%uid remplace le nom d'utilisateur. Exemple : \"uid=%%uid\"", + "Test Loginname" : "Loginname de test", + "Verify settings" : "Tester les paramètres", "1. Server" : "1. Serveur", "%s. Server:" : "%s. Serveur :", "Host" : "Hôte", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Vous pouvez omettre le protocole, sauf si vous avez besoin de SSL. Dans ce cas préfixez avec ldaps://", "Port" : "Port", + "Detect Port" : "Détecter le port", "User DN" : "DN Utilisateur (Autorisé à consulter l'annuaire)", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN de l'utilisateur client pour lequel la liaison doit se faire, par exemple uid=agent,dc=example,dc=com. Pour un accès anonyme, laisser le DN et le mot de passe vides.", "Password" : "Mot de passe", "For anonymous access, leave DN and Password empty." : "Pour un accès anonyme, laisser le DN utilisateur et le mot de passe vides.", "One Base DN per line" : "Un DN de base par ligne", "You can specify Base DN for users and groups in the Advanced tab" : "Vous pouvez spécifier les DN de base de vos utilisateurs et groupes via l'onglet Avancé", + "Detect Base DN" : "Détecter le DN de base", + "Test Base DN" : "Tester le DN de base", "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Évite les requêtes LDAP automatiques. Mieux pour les installations de grande ampleur, mais demande des connaissances en LDAP.", "Manually enter LDAP filters (recommended for large directories)" : "Entrée manuelle des filtres LDAP (recommandé pour les annuaires de grande ampleur)", "Limit %s access to users meeting these criteria:" : "Limiter l'accès à %s aux utilisateurs respectant ces critères :", + "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Les classes d'objets fréquentes pour les utilisateurs sont : organizationalPerson, person, user et inetOrgPerson. Si vous n'êtes pas sûr de la classe à utiliser, demandez à l'administrateur de l'annuaire.", "The filter specifies which LDAP users shall have access to the %s instance." : "Le filtre spécifie quels utilisateurs LDAP doivent avoir accès à l'instance %s.", + "Verify settings and count users" : "Vérifier les paramètres et compter les utilisateurs", "Saving" : "Enregistrement...", "Back" : "Retour", "Continue" : "Poursuivre", "LDAP" : "LDAP", "Expert" : "Expert", "Advanced" : "Avancé", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avertissement :</b> Les applications user_ldap et user_webdavauth sont incompatibles. Des dysfonctionnements peuvent survenir. Contactez votre administrateur système pour qu'il désactive l'une d'elles.", + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avertissement :</b> Les applications user_ldap et user_webdavauth sont incompatibles. Des dysfonctionnements peuvent survenir. Contactez votre administrateur système pour qu'il en désactive une.", "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Attention :</b> Le module php LDAP n'est pas installé, par conséquent cette extension ne pourra fonctionner. Veuillez contacter votre administrateur système afin qu'il l'installe.", "Connection Settings" : "Paramètres de connexion", "Configuration Active" : "Configuration active", @@ -81,7 +108,7 @@ OC.L10N.register( "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Fournir un serveur de backup optionnel. Il doit s'agir d'une réplique du serveur LDAP/AD principal.", "Backup (Replica) Port" : "Port du serveur de backup (réplique)", "Disable Main Server" : "Désactiver le serveur principal", - "Only connect to the replica server." : "Se connecter uniquement au serveur de replica.", + "Only connect to the replica server." : "Se connecter uniquement à la réplique", "Case insensitive LDAP server (Windows)" : "Serveur LDAP insensible à la casse (Windows)", "Turn off SSL certificate validation." : "Désactiver la validation des certificats SSL.", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Non recommandé, à utiliser à des fins de tests uniquement. Si la connexion ne fonctionne qu'avec cette option, importez le certificat SSL du serveur LDAP dans le serveur %s.", @@ -102,8 +129,8 @@ OC.L10N.register( "Group-Member association" : "Association groupe-membre", "Nested Groups" : "Groupes imbriqués", "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Si activé, les groupes contenant d'autres groupes sont pris en charge (fonctionne uniquement si l'attribut membre du groupe contient des DNs).", - "Paging chunksize" : "Dimensionnement des paginations", - "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "La taille d'une part (chunksize) est utilisée pour les recherches paginées de LDAP qui peuvent retourner des résultats par lots comme une énumération d'utilisateurs ou groupes. (Configurer à 0 pour désactiver les recherches paginées de LDAP.)", + "Paging chunksize" : "Paging chunksize", + "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Chunksize utilisée pour les recherches LDAP paginées qui peuvent retourner des résultats par lots comme une énumération d'utilisateurs ou de groupes. (Configurer à 0 pour désactiver les recherches LDAP paginées)", "Special Attributes" : "Attributs spéciaux", "Quota Field" : "Champ du quota", "Quota Default" : "Quota par défaut", diff --git a/apps/user_ldap/l10n/fr.json b/apps/user_ldap/l10n/fr.json index 709fe2c7ceb..b6408cfaef4 100644 --- a/apps/user_ldap/l10n/fr.json +++ b/apps/user_ldap/l10n/fr.json @@ -34,6 +34,12 @@ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Utilisateur introuvable. Veuillez vérifier les attributs de login et le nom d'utilisateur. Filtre effectif (à copier-coller pour valider en ligne de commande):<br/>", "User found and settings verified." : "Utilisateur trouvé et paramètres vérifiés.", "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Paramètres vérifiés, mais seul le premier utilisateur pourra se connecter. Considérez utiliser un filtre plus restrictif.", + "An unspecified error occurred. Please check the settings and the log." : "Une erreur non spécifiée s'est produite. Veuillez vérifier les paramètres et le log.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Le filtre de recherche n'est pas valide, probablement à cause de problèmes de syntaxe tels que des parenthèses manquantes. Veuillez le corriger.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Une erreur s'est produite à la connexion au LDAP / AD. Veuillez vérifier l'hôte, le port et les informations d'identification.", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "La chaîne %uid est manquante. Cette chaîne est remplacée par l'identifiant de connexion lors des requêtes LDAP / AD.", + "Please provide a login name to test against" : "Veuillez indiquer un identifiant de connexion avec lequel tester.", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Les groupes sont désactivés car le serveur LDAP / AD ne prend pas en charge memberOf.", "_%s group found_::_%s groups found_" : ["%s groupe trouvé","%s groupes trouvés"], "_%s user found_::_%s users found_" : ["%s utilisateur trouvé","%s utilisateurs trouvés"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Impossible de détecter l'attribut contenant le nom d'affichage des utilisateurs. Veuillez l'indiquer vous-même dans les paramètres ldap avancés.", @@ -41,36 +47,57 @@ "Invalid Host" : "Hôte non valide", "Server" : "Serveur", "Users" : "Utilisateurs", + "Login Attributes" : "Attributs de login", "Groups" : "Groupes", "Test Configuration" : "Tester la configuration", "Help" : "Aide", "Groups meeting these criteria are available in %s:" : "Les groupes respectant ces critères sont disponibles dans %s :", + "Only these object classes:" : "Seulement ces classes d'objets :", + "Only from these groups:" : "Seulement dans ces groupes :", + "Search groups" : "Chercher dans les groupes", + "Available groups" : "Chercher dans les utilisateurs", + "Selected groups" : "Groupes sélectionnés", + "Edit LDAP Query" : "Modifier la requête LDAP", + "LDAP Filter:" : "Filtre LDAP :", "The filter specifies which LDAP groups shall have access to the %s instance." : "Le filtre spécifie quels groupes LDAP ont accès à l'instance %s.", "Test Filter" : "Test du filtre", + "Verify settings and count groups" : "Vérifier les paramètres et compter les groupes", + "When logging in, %s will find the user based on the following attributes:" : "Au login, %s cherchera l'utilisateur sur base de ces attributs :", + "LDAP / AD Username:" : "Nom d'utilisateur LDAP / AD :", + "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Autoriser le login avec le nom d'utilisateur LDAP / AD (uid ou samaccountname, la détection est automatique). ", + "LDAP / AD Email Address:" : "Adresse mail LDAP / AD :", + "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Autoriser le login avec une adresse mail. Mail et mailPrimaryAddress sont autorisés.", "Other Attributes:" : "Autres attributs :", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Définit le filtre à appliquer lors d'une tentative de connexion. %%uid remplace le nom d'utilisateur. Exemple : \"uid=%%uid\"", + "Test Loginname" : "Loginname de test", + "Verify settings" : "Tester les paramètres", "1. Server" : "1. Serveur", "%s. Server:" : "%s. Serveur :", "Host" : "Hôte", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Vous pouvez omettre le protocole, sauf si vous avez besoin de SSL. Dans ce cas préfixez avec ldaps://", "Port" : "Port", + "Detect Port" : "Détecter le port", "User DN" : "DN Utilisateur (Autorisé à consulter l'annuaire)", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN de l'utilisateur client pour lequel la liaison doit se faire, par exemple uid=agent,dc=example,dc=com. Pour un accès anonyme, laisser le DN et le mot de passe vides.", "Password" : "Mot de passe", "For anonymous access, leave DN and Password empty." : "Pour un accès anonyme, laisser le DN utilisateur et le mot de passe vides.", "One Base DN per line" : "Un DN de base par ligne", "You can specify Base DN for users and groups in the Advanced tab" : "Vous pouvez spécifier les DN de base de vos utilisateurs et groupes via l'onglet Avancé", + "Detect Base DN" : "Détecter le DN de base", + "Test Base DN" : "Tester le DN de base", "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Évite les requêtes LDAP automatiques. Mieux pour les installations de grande ampleur, mais demande des connaissances en LDAP.", "Manually enter LDAP filters (recommended for large directories)" : "Entrée manuelle des filtres LDAP (recommandé pour les annuaires de grande ampleur)", "Limit %s access to users meeting these criteria:" : "Limiter l'accès à %s aux utilisateurs respectant ces critères :", + "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Les classes d'objets fréquentes pour les utilisateurs sont : organizationalPerson, person, user et inetOrgPerson. Si vous n'êtes pas sûr de la classe à utiliser, demandez à l'administrateur de l'annuaire.", "The filter specifies which LDAP users shall have access to the %s instance." : "Le filtre spécifie quels utilisateurs LDAP doivent avoir accès à l'instance %s.", + "Verify settings and count users" : "Vérifier les paramètres et compter les utilisateurs", "Saving" : "Enregistrement...", "Back" : "Retour", "Continue" : "Poursuivre", "LDAP" : "LDAP", "Expert" : "Expert", "Advanced" : "Avancé", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avertissement :</b> Les applications user_ldap et user_webdavauth sont incompatibles. Des dysfonctionnements peuvent survenir. Contactez votre administrateur système pour qu'il désactive l'une d'elles.", + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avertissement :</b> Les applications user_ldap et user_webdavauth sont incompatibles. Des dysfonctionnements peuvent survenir. Contactez votre administrateur système pour qu'il en désactive une.", "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Attention :</b> Le module php LDAP n'est pas installé, par conséquent cette extension ne pourra fonctionner. Veuillez contacter votre administrateur système afin qu'il l'installe.", "Connection Settings" : "Paramètres de connexion", "Configuration Active" : "Configuration active", @@ -79,7 +106,7 @@ "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Fournir un serveur de backup optionnel. Il doit s'agir d'une réplique du serveur LDAP/AD principal.", "Backup (Replica) Port" : "Port du serveur de backup (réplique)", "Disable Main Server" : "Désactiver le serveur principal", - "Only connect to the replica server." : "Se connecter uniquement au serveur de replica.", + "Only connect to the replica server." : "Se connecter uniquement à la réplique", "Case insensitive LDAP server (Windows)" : "Serveur LDAP insensible à la casse (Windows)", "Turn off SSL certificate validation." : "Désactiver la validation des certificats SSL.", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Non recommandé, à utiliser à des fins de tests uniquement. Si la connexion ne fonctionne qu'avec cette option, importez le certificat SSL du serveur LDAP dans le serveur %s.", @@ -100,8 +127,8 @@ "Group-Member association" : "Association groupe-membre", "Nested Groups" : "Groupes imbriqués", "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Si activé, les groupes contenant d'autres groupes sont pris en charge (fonctionne uniquement si l'attribut membre du groupe contient des DNs).", - "Paging chunksize" : "Dimensionnement des paginations", - "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "La taille d'une part (chunksize) est utilisée pour les recherches paginées de LDAP qui peuvent retourner des résultats par lots comme une énumération d'utilisateurs ou groupes. (Configurer à 0 pour désactiver les recherches paginées de LDAP.)", + "Paging chunksize" : "Paging chunksize", + "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Chunksize utilisée pour les recherches LDAP paginées qui peuvent retourner des résultats par lots comme une énumération d'utilisateurs ou de groupes. (Configurer à 0 pour désactiver les recherches LDAP paginées)", "Special Attributes" : "Attributs spéciaux", "Quota Field" : "Champ du quota", "Quota Default" : "Quota par défaut", diff --git a/apps/user_ldap/l10n/gl.js b/apps/user_ldap/l10n/gl.js index 7a89f87cfd1..12ac6c86fe3 100644 --- a/apps/user_ldap/l10n/gl.js +++ b/apps/user_ldap/l10n/gl.js @@ -10,15 +10,38 @@ OC.L10N.register( "No configuration specified" : "Non se especificou unha configuración", "No data specified" : "Non se especificaron datos", " Could not set configuration %s" : "Non foi posíbel estabelecer a configuración %s", + "Action does not exist" : "Non existe esta acción", "Configuration incorrect" : "Configuración incorrecta", "Configuration incomplete" : "Configuración incompleta", "Configuration OK" : "Configuración correcta", "Select groups" : "Seleccionar grupos", "Select object classes" : "Seleccione as clases de obxectos", + "Please check the credentials, they seem to be wrong." : "Comprobe as credenciais, semella que son incorrectas.", + "Please specify the port, it could not be auto-detected." : "Especifique o porto, non foi posíbel detectalo automaticamente.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "Non foi posíbel detectar automaticamente o DN base, revise as credenciais, a máquina e o porto.", + "Could not detect Base DN, please enter it manually." : "Non foi posíbel detectar o DN base, introdúzao manualmente.", "{nthServer}. Server" : "{nthServer}. Servidor", + "No object found in the given Base DN. Please revise." : "Non se atopou o obxecto no DN base solicitado. Revíseo.", + "More then 1.000 directory entries available." : "Máis de 1.000 entradas de directorio dispoñíbeis.", + " entries available within the provided Base DN" : "entradas dispoñíbeis no DN base fornecido", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Produciuse un erro. Comprobe o DN base, os axustes de conexión e as credenciais.", "Do you really want to delete the current Server Configuration?" : "Confirma que quere eliminar a configuración actual do servidor?", "Confirm Deletion" : "Confirmar a eliminación", + "Mappings cleared successfully!" : "Limpáronse satisfactoriamente as asignacións!", + "Error while clearing the mappings." : "Produciuse un erro ao limpar as asignacións.", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Non foi posíbel gardar. Asegúrese de que a base de datos está en funcionamento. Volva a cargar antes de continuar.", + "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?" : "O cambio do modo permitirá consultas LDAP automáticas. Dependendo do tamaño de LDAP pode levarlle un chisco. Quere cambiar de modo aínda así?", + "Mode switch" : "Cambio de modo", "Select attributes" : "Seleccione os atributos", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Non se atopou o usuario. Recomendase consultar os atributos de acceso e o nome de usuario. Filtro eficaz (copiar e pegar para a validación en liña de ordes): <br/>", + "User found and settings verified." : "Atopouse o usuario e verificáronse os axustes.", + "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Os axustes foron verificados, mais atopou un usuario. Só o primeiro deles será quen de iniciar sesión. Considere o so dun filtro máis preciso.", + "An unspecified error occurred. Please check the settings and the log." : "Produciuse un erro non agardado. Comprobe os axustes e o rexistro.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "O filtro de busca é incorrecto, probabelmente por mor de erros de sintaxe como un número impar de chaves de apertura/peche. Revíseo.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Produciuse un erro de conexión no LDAP / AD, comprobe a máquina o porto e as credenciais.", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Non se atopou o marcador de posición %uid. Vai seren substituído co nome de acceso cando se consulta LDAP / AD.", + "Please provide a login name to test against" : "Forneza o nome de acceso para facer a proba", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "A caixa de grupo está desactivada, o servidor LDAP / AD non admite «memberOf».", "_%s group found_::_%s groups found_" : ["Atopouse %s grupo","Atopáronse %s grupos"], "_%s user found_::_%s users found_" : ["Atopouse %s usuario","Atopáronse %s usuarios"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Non foi posíbel detectar o atributo nome de usuario que mostrar. Especifíqueo vostede mesmo nos axustes avanzados de LDAP.", @@ -26,29 +49,50 @@ OC.L10N.register( "Invalid Host" : "Máquina incorrecta", "Server" : "Servidor", "Users" : "Usuarios", + "Login Attributes" : "Atributos de acceso", "Groups" : "Grupos", "Test Configuration" : "Probar a configuración", "Help" : "Axuda", "Groups meeting these criteria are available in %s:" : "Os grupos que cumpren estes criterios están dispoñíbeis en %s:", + "Only these object classes:" : "Só estas clases de obxecto:", + "Only from these groups:" : "Só para estes grupos:", + "Search groups" : "Buscar grupos", + "Available groups" : "Grupos dispoñíbeis", + "Selected groups" : "Grupos seleccionados", + "Edit LDAP Query" : "Editar a consulta LDAP", + "LDAP Filter:" : "Filtro LDAP:", "The filter specifies which LDAP groups shall have access to the %s instance." : "O filtro especifica que grupos LDAP teñen acceso á instancia %s.", "Test Filter" : "Filtro de probas", + "Verify settings and count groups" : "Verificar os axustes e contar os grupos", + "When logging in, %s will find the user based on the following attributes:" : "Ao acceder, %s atopa o usuario en función dos seguintes atributos:", + "LDAP / AD Username:" : "Nome de usuario LDAP / AD:", + "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Permite o acceso contra o nome de usuario LDAP / AD, sexa UID ou «samaccountname» e será detectado.", + "LDAP / AD Email Address:" : "Enderezo de correo LDAP / AD:", + "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Permite o acceso contra un atributo de correo-e. Permitirase «Mail» e «mailPrimaryAddress».", "Other Attributes:" : "Outros atributos:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Define o filtro que se aplica cando se intenta o acceso. %%uid substitúe o nome de usuario e a acción de acceso. Exemplo: «uid=%%uid»", + "Test Loginname" : "Probar o nome de acceso", + "Verify settings" : "Verificar os axustes", "1. Server" : "1. Servidor", "%s. Server:" : "%s. Servidor:", - "Host" : "Servidor", + "Host" : "Máquina", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Pode omitir o protocolo agás que precise de SSL. Nese caso comece con ldaps://", "Port" : "Porto", + "Detect Port" : "Detectar o porto", "User DN" : "DN do usuario", "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." : "O DN do cliente do usuario co que hai que estabelecer unha conexión, p.ex uid=axente, dc=exemplo, dc=com. Para o acceso anónimo deixe o DN e o contrasinal baleiros.", "Password" : "Contrasinal", "For anonymous access, leave DN and Password empty." : "Para o acceso anónimo deixe o DN e o contrasinal baleiros.", "One Base DN per line" : "Un DN base por liña", "You can specify Base DN for users and groups in the Advanced tab" : "Pode especificar o DN base para usuarios e grupos na lapela de «Avanzado»", + "Detect Base DN" : "Detectar o DN base", + "Test Base DN" : "Probar o DN base", "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita as peticións LDAP automáticas. E o mellor para as configuracións máis grandes, mais require algúns coñecementos de LDAP.", "Manually enter LDAP filters (recommended for large directories)" : "Introduza manualmente os filtros LDAP (recomendado para directorios grandes)", "Limit %s access to users meeting these criteria:" : "Limitar o acceso a %s para os usuarios que cumpren con estes criterios:", + "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." : "As clases de obxecto máis comúns para os usuarios son «organizationalPerson», «person», «user» e «inetOrgPerson». Se non está seguro de que clase de obxecto ten que seleccionar, consulte co administrador de directorios.", "The filter specifies which LDAP users shall have access to the %s instance." : "O filtro especifica que usuarios LDAP teñen acceso á instancia %s.", + "Verify settings and count users" : "Verificar os axustes e contar os usuarios", "Saving" : "Gardando", "Back" : "Atrás", "Continue" : "Continuar", diff --git a/apps/user_ldap/l10n/gl.json b/apps/user_ldap/l10n/gl.json index 9a19b3a0541..3f22dc04747 100644 --- a/apps/user_ldap/l10n/gl.json +++ b/apps/user_ldap/l10n/gl.json @@ -8,15 +8,38 @@ "No configuration specified" : "Non se especificou unha configuración", "No data specified" : "Non se especificaron datos", " Could not set configuration %s" : "Non foi posíbel estabelecer a configuración %s", + "Action does not exist" : "Non existe esta acción", "Configuration incorrect" : "Configuración incorrecta", "Configuration incomplete" : "Configuración incompleta", "Configuration OK" : "Configuración correcta", "Select groups" : "Seleccionar grupos", "Select object classes" : "Seleccione as clases de obxectos", + "Please check the credentials, they seem to be wrong." : "Comprobe as credenciais, semella que son incorrectas.", + "Please specify the port, it could not be auto-detected." : "Especifique o porto, non foi posíbel detectalo automaticamente.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "Non foi posíbel detectar automaticamente o DN base, revise as credenciais, a máquina e o porto.", + "Could not detect Base DN, please enter it manually." : "Non foi posíbel detectar o DN base, introdúzao manualmente.", "{nthServer}. Server" : "{nthServer}. Servidor", + "No object found in the given Base DN. Please revise." : "Non se atopou o obxecto no DN base solicitado. Revíseo.", + "More then 1.000 directory entries available." : "Máis de 1.000 entradas de directorio dispoñíbeis.", + " entries available within the provided Base DN" : "entradas dispoñíbeis no DN base fornecido", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Produciuse un erro. Comprobe o DN base, os axustes de conexión e as credenciais.", "Do you really want to delete the current Server Configuration?" : "Confirma que quere eliminar a configuración actual do servidor?", "Confirm Deletion" : "Confirmar a eliminación", + "Mappings cleared successfully!" : "Limpáronse satisfactoriamente as asignacións!", + "Error while clearing the mappings." : "Produciuse un erro ao limpar as asignacións.", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Non foi posíbel gardar. Asegúrese de que a base de datos está en funcionamento. Volva a cargar antes de continuar.", + "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?" : "O cambio do modo permitirá consultas LDAP automáticas. Dependendo do tamaño de LDAP pode levarlle un chisco. Quere cambiar de modo aínda así?", + "Mode switch" : "Cambio de modo", "Select attributes" : "Seleccione os atributos", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Non se atopou o usuario. Recomendase consultar os atributos de acceso e o nome de usuario. Filtro eficaz (copiar e pegar para a validación en liña de ordes): <br/>", + "User found and settings verified." : "Atopouse o usuario e verificáronse os axustes.", + "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Os axustes foron verificados, mais atopou un usuario. Só o primeiro deles será quen de iniciar sesión. Considere o so dun filtro máis preciso.", + "An unspecified error occurred. Please check the settings and the log." : "Produciuse un erro non agardado. Comprobe os axustes e o rexistro.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "O filtro de busca é incorrecto, probabelmente por mor de erros de sintaxe como un número impar de chaves de apertura/peche. Revíseo.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Produciuse un erro de conexión no LDAP / AD, comprobe a máquina o porto e as credenciais.", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Non se atopou o marcador de posición %uid. Vai seren substituído co nome de acceso cando se consulta LDAP / AD.", + "Please provide a login name to test against" : "Forneza o nome de acceso para facer a proba", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "A caixa de grupo está desactivada, o servidor LDAP / AD non admite «memberOf».", "_%s group found_::_%s groups found_" : ["Atopouse %s grupo","Atopáronse %s grupos"], "_%s user found_::_%s users found_" : ["Atopouse %s usuario","Atopáronse %s usuarios"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Non foi posíbel detectar o atributo nome de usuario que mostrar. Especifíqueo vostede mesmo nos axustes avanzados de LDAP.", @@ -24,29 +47,50 @@ "Invalid Host" : "Máquina incorrecta", "Server" : "Servidor", "Users" : "Usuarios", + "Login Attributes" : "Atributos de acceso", "Groups" : "Grupos", "Test Configuration" : "Probar a configuración", "Help" : "Axuda", "Groups meeting these criteria are available in %s:" : "Os grupos que cumpren estes criterios están dispoñíbeis en %s:", + "Only these object classes:" : "Só estas clases de obxecto:", + "Only from these groups:" : "Só para estes grupos:", + "Search groups" : "Buscar grupos", + "Available groups" : "Grupos dispoñíbeis", + "Selected groups" : "Grupos seleccionados", + "Edit LDAP Query" : "Editar a consulta LDAP", + "LDAP Filter:" : "Filtro LDAP:", "The filter specifies which LDAP groups shall have access to the %s instance." : "O filtro especifica que grupos LDAP teñen acceso á instancia %s.", "Test Filter" : "Filtro de probas", + "Verify settings and count groups" : "Verificar os axustes e contar os grupos", + "When logging in, %s will find the user based on the following attributes:" : "Ao acceder, %s atopa o usuario en función dos seguintes atributos:", + "LDAP / AD Username:" : "Nome de usuario LDAP / AD:", + "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Permite o acceso contra o nome de usuario LDAP / AD, sexa UID ou «samaccountname» e será detectado.", + "LDAP / AD Email Address:" : "Enderezo de correo LDAP / AD:", + "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Permite o acceso contra un atributo de correo-e. Permitirase «Mail» e «mailPrimaryAddress».", "Other Attributes:" : "Outros atributos:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Define o filtro que se aplica cando se intenta o acceso. %%uid substitúe o nome de usuario e a acción de acceso. Exemplo: «uid=%%uid»", + "Test Loginname" : "Probar o nome de acceso", + "Verify settings" : "Verificar os axustes", "1. Server" : "1. Servidor", "%s. Server:" : "%s. Servidor:", - "Host" : "Servidor", + "Host" : "Máquina", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Pode omitir o protocolo agás que precise de SSL. Nese caso comece con ldaps://", "Port" : "Porto", + "Detect Port" : "Detectar o porto", "User DN" : "DN do usuario", "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." : "O DN do cliente do usuario co que hai que estabelecer unha conexión, p.ex uid=axente, dc=exemplo, dc=com. Para o acceso anónimo deixe o DN e o contrasinal baleiros.", "Password" : "Contrasinal", "For anonymous access, leave DN and Password empty." : "Para o acceso anónimo deixe o DN e o contrasinal baleiros.", "One Base DN per line" : "Un DN base por liña", "You can specify Base DN for users and groups in the Advanced tab" : "Pode especificar o DN base para usuarios e grupos na lapela de «Avanzado»", + "Detect Base DN" : "Detectar o DN base", + "Test Base DN" : "Probar o DN base", "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita as peticións LDAP automáticas. E o mellor para as configuracións máis grandes, mais require algúns coñecementos de LDAP.", "Manually enter LDAP filters (recommended for large directories)" : "Introduza manualmente os filtros LDAP (recomendado para directorios grandes)", "Limit %s access to users meeting these criteria:" : "Limitar o acceso a %s para os usuarios que cumpren con estes criterios:", + "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." : "As clases de obxecto máis comúns para os usuarios son «organizationalPerson», «person», «user» e «inetOrgPerson». Se non está seguro de que clase de obxecto ten que seleccionar, consulte co administrador de directorios.", "The filter specifies which LDAP users shall have access to the %s instance." : "O filtro especifica que usuarios LDAP teñen acceso á instancia %s.", + "Verify settings and count users" : "Verificar os axustes e contar os usuarios", "Saving" : "Gardando", "Back" : "Atrás", "Continue" : "Continuar", diff --git a/apps/user_ldap/l10n/it.js b/apps/user_ldap/l10n/it.js index f0b06342af2..6b381f72e76 100644 --- a/apps/user_ldap/l10n/it.js +++ b/apps/user_ldap/l10n/it.js @@ -10,15 +10,36 @@ 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", + "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 +47,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..534c60a50a8 100644 --- a/apps/user_ldap/l10n/it.json +++ b/apps/user_ldap/l10n/it.json @@ -8,15 +8,36 @@ "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", + "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 +45,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..43cf25d010a 100644 --- a/apps/user_ldap/l10n/nl.js +++ b/apps/user_ldap/l10n/nl.js @@ -10,15 +10,31 @@ 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.", "_%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 +42,45 @@ 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", + "LDAP / AD Username:" : "LDAP / AD gebruikersnaam:", + "LDAP / AD Email Address:" : "LDAP / AD e-mailadres:", "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 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..d18c303cf04 100644 --- a/apps/user_ldap/l10n/nl.json +++ b/apps/user_ldap/l10n/nl.json @@ -8,15 +8,31 @@ "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.", "_%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 +40,45 @@ "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", + "LDAP / AD Username:" : "LDAP / AD gebruikersnaam:", + "LDAP / AD Email Address:" : "LDAP / AD e-mailadres:", "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 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/pt_BR.js b/apps/user_ldap/l10n/pt_BR.js index 32f73bd2d44..1e3607a9f63 100644 --- a/apps/user_ldap/l10n/pt_BR.js +++ b/apps/user_ldap/l10n/pt_BR.js @@ -41,6 +41,7 @@ OC.L10N.register( "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Um erro de conexão para LDAP / AD ocorreu, por favor, verifique host, a porta e as credenciais.", "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "O espaço reservado %uid está faltando. Ele será substituído pelo nome de login ao consultar LDAP / AD.", "Please provide a login name to test against" : "Por favor, forneça um nome de login para testar", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "A caixa do grupo foi desativada, porque o servidor LDAP / AD não suporta memberOf.", "_%s group found_::_%s groups found_" : ["grupo% s encontrado","grupos% s encontrado"], "_%s user found_::_%s users found_" : ["usuário %s encontrado","usuários %s encontrados"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Não foi possível detectar o nome de exibição do atributo do usuário. Por favor, indique-o você mesmo em configurações avançadas do LDAP.", @@ -48,29 +49,50 @@ OC.L10N.register( "Invalid Host" : "Host Inválido", "Server" : "Servidor", "Users" : "Usuários", + "Login Attributes" : "Atributos de Acesso", "Groups" : "Grupos", "Test Configuration" : "Teste de Configuração", "Help" : "Ajuda", "Groups meeting these criteria are available in %s:" : "Grupos que satisfazem estes critérios estão disponíveis em %s:", + "Only these object classes:" : "Apenas essas classes de objetos:", + "Only from these groups:" : "Somente a partir desses grupos:", + "Search groups" : "Procurar grupos", + "Available groups" : "Grupos disponíveis", + "Selected groups" : "Grupos selecionados", + "Edit LDAP Query" : "Editar consulta LDAP", + "LDAP Filter:" : "Filtro LDAP:", "The filter specifies which LDAP groups shall have access to the %s instance." : "O filtro especifica quais grupos LDAP devem ter acesso à instância do %s.", "Test Filter" : "Filtro Teste", + "Verify settings and count groups" : "Verificar as configurações e grupos de conta", + "When logging in, %s will find the user based on the following attributes:" : "Ao entrar, %s vai encontrar o usuário com base nos seguintes atributos:", + "LDAP / AD Username:" : "Nome do usuário LDAP / AD:", + "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Permitir o login contra o nome de usuário LDAP / AD, que é ou uid ou samaccountname e será detectado.", + "LDAP / AD Email Address:" : "Endereço de e-mail LDAP / AD:", + "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Permite o login contra um atributo de e-mail. E-mail e endereço primário de e-mail serão permitidos.", "Other Attributes:" : "Outros Atributos:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Define o filtro a ser aplicado, quando o login for feito. %%uid substitui o nome do usuário na ação de login. Exemplo: \"uid=%%uid\"", + "Test Loginname" : "Teste nome de Login", + "Verify settings" : "Verificar configurações", "1. Server" : "1. Servidor", "%s. Server:" : "%s. Servidor:", "Host" : "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Você pode omitir o protocolo, exceto quando requerer SSL. Então inicie com ldaps://", "Port" : "Porta", + "Detect Port" : "Detectar Porta", "User DN" : "DN Usuário", "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." : "O DN do cliente usuário com qual a ligação deverá ser feita, ex. uid=agent,dc=example,dc=com. Para acesso anônimo, deixe DN e Senha vazios.", "Password" : "Senha", "For anonymous access, leave DN and Password empty." : "Para acesso anônimo, deixe DN e Senha vazios.", "One Base DN per line" : "Uma base DN por linha", "You can specify Base DN for users and groups in the Advanced tab" : "Você pode especificar DN Base para usuários e grupos na guia Avançada", + "Detect Base DN" : "Detectar Base DN", + "Test Base DN" : "Teste Base DN", "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita pedidos LDAP automáticos. Melhor para configurações maiores, mas requer algum conhecimento LDAP.", "Manually enter LDAP filters (recommended for large directories)" : "Inserir manualmente filtros LDAP (recomendado para grandes diretórios)", "Limit %s access to users meeting these criteria:" : "Limitar o acesso %s para usuários que satisfazem esses critérios:", + "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." : "As classes de objetos mais comuns para os usuários são organizationalPerson, pessoa, usuário e inetOrgPerson. Se você não tem certeza de qual classe de objeto selecionar, por favor, consulte o seu administrador do diretório.", "The filter specifies which LDAP users shall have access to the %s instance." : "O filtro especifica quais usuários LDAP devem ter acesso à instância do %s.", + "Verify settings and count users" : "Verificar configurações e contas de usuários", "Saving" : "Salvando", "Back" : "Voltar", "Continue" : "Continuar", diff --git a/apps/user_ldap/l10n/pt_BR.json b/apps/user_ldap/l10n/pt_BR.json index d2fe39bcea1..7abeb3c2b7e 100644 --- a/apps/user_ldap/l10n/pt_BR.json +++ b/apps/user_ldap/l10n/pt_BR.json @@ -39,6 +39,7 @@ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Um erro de conexão para LDAP / AD ocorreu, por favor, verifique host, a porta e as credenciais.", "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "O espaço reservado %uid está faltando. Ele será substituído pelo nome de login ao consultar LDAP / AD.", "Please provide a login name to test against" : "Por favor, forneça um nome de login para testar", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "A caixa do grupo foi desativada, porque o servidor LDAP / AD não suporta memberOf.", "_%s group found_::_%s groups found_" : ["grupo% s encontrado","grupos% s encontrado"], "_%s user found_::_%s users found_" : ["usuário %s encontrado","usuários %s encontrados"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Não foi possível detectar o nome de exibição do atributo do usuário. Por favor, indique-o você mesmo em configurações avançadas do LDAP.", @@ -46,29 +47,50 @@ "Invalid Host" : "Host Inválido", "Server" : "Servidor", "Users" : "Usuários", + "Login Attributes" : "Atributos de Acesso", "Groups" : "Grupos", "Test Configuration" : "Teste de Configuração", "Help" : "Ajuda", "Groups meeting these criteria are available in %s:" : "Grupos que satisfazem estes critérios estão disponíveis em %s:", + "Only these object classes:" : "Apenas essas classes de objetos:", + "Only from these groups:" : "Somente a partir desses grupos:", + "Search groups" : "Procurar grupos", + "Available groups" : "Grupos disponíveis", + "Selected groups" : "Grupos selecionados", + "Edit LDAP Query" : "Editar consulta LDAP", + "LDAP Filter:" : "Filtro LDAP:", "The filter specifies which LDAP groups shall have access to the %s instance." : "O filtro especifica quais grupos LDAP devem ter acesso à instância do %s.", "Test Filter" : "Filtro Teste", + "Verify settings and count groups" : "Verificar as configurações e grupos de conta", + "When logging in, %s will find the user based on the following attributes:" : "Ao entrar, %s vai encontrar o usuário com base nos seguintes atributos:", + "LDAP / AD Username:" : "Nome do usuário LDAP / AD:", + "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Permitir o login contra o nome de usuário LDAP / AD, que é ou uid ou samaccountname e será detectado.", + "LDAP / AD Email Address:" : "Endereço de e-mail LDAP / AD:", + "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Permite o login contra um atributo de e-mail. E-mail e endereço primário de e-mail serão permitidos.", "Other Attributes:" : "Outros Atributos:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Define o filtro a ser aplicado, quando o login for feito. %%uid substitui o nome do usuário na ação de login. Exemplo: \"uid=%%uid\"", + "Test Loginname" : "Teste nome de Login", + "Verify settings" : "Verificar configurações", "1. Server" : "1. Servidor", "%s. Server:" : "%s. Servidor:", "Host" : "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Você pode omitir o protocolo, exceto quando requerer SSL. Então inicie com ldaps://", "Port" : "Porta", + "Detect Port" : "Detectar Porta", "User DN" : "DN Usuário", "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." : "O DN do cliente usuário com qual a ligação deverá ser feita, ex. uid=agent,dc=example,dc=com. Para acesso anônimo, deixe DN e Senha vazios.", "Password" : "Senha", "For anonymous access, leave DN and Password empty." : "Para acesso anônimo, deixe DN e Senha vazios.", "One Base DN per line" : "Uma base DN por linha", "You can specify Base DN for users and groups in the Advanced tab" : "Você pode especificar DN Base para usuários e grupos na guia Avançada", + "Detect Base DN" : "Detectar Base DN", + "Test Base DN" : "Teste Base DN", "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita pedidos LDAP automáticos. Melhor para configurações maiores, mas requer algum conhecimento LDAP.", "Manually enter LDAP filters (recommended for large directories)" : "Inserir manualmente filtros LDAP (recomendado para grandes diretórios)", "Limit %s access to users meeting these criteria:" : "Limitar o acesso %s para usuários que satisfazem esses critérios:", + "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." : "As classes de objetos mais comuns para os usuários são organizationalPerson, pessoa, usuário e inetOrgPerson. Se você não tem certeza de qual classe de objeto selecionar, por favor, consulte o seu administrador do diretório.", "The filter specifies which LDAP users shall have access to the %s instance." : "O filtro especifica quais usuários LDAP devem ter acesso à instância do %s.", + "Verify settings and count users" : "Verificar configurações e contas de usuários", "Saving" : "Salvando", "Back" : "Voltar", "Continue" : "Continuar", 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/sk_SK.js b/apps/user_ldap/l10n/sk_SK.js index 24e1da2bcda..a8f9cb398da 100644 --- a/apps/user_ldap/l10n/sk_SK.js +++ b/apps/user_ldap/l10n/sk_SK.js @@ -26,12 +26,19 @@ OC.L10N.register( "Invalid Host" : "Neplatný hostiteľ", "Server" : "Server", "Users" : "Používatelia", + "Login Attributes" : "Prihlasovacie atribúty", "Groups" : "Skupiny", "Test Configuration" : "Test nastavenia", "Help" : "Pomoc", "Groups meeting these criteria are available in %s:" : "Skupiny spĺňajúce tieto kritériá sú k dispozícii v %s:", + "Search groups" : "Prehľadať skupiny", + "Available groups" : "Dostupné skupiny", + "Selected groups" : "Vybrané skupiny", + "LDAP Filter:" : "LDAP filter:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Tento filter LDAP určuje, ktoré skupiny budú mať prístup k %s inštancii.", "Test Filter" : "Otestovať filter", + "LDAP / AD Username:" : "Používateľské meno LDAP / AD:", + "LDAP / AD Email Address:" : "LDAP / AD emailová adresa:", "Other Attributes:" : "Iné atribúty:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Určuje použitý filter, pri pokuse o prihlásenie. %%uid nahrádza používateľské meno v činnosti prihlásenia. Napríklad: \"uid=%%uid\"", "1. Server" : "1. Server", diff --git a/apps/user_ldap/l10n/sk_SK.json b/apps/user_ldap/l10n/sk_SK.json index 3b0e067cdc6..c7d877bae69 100644 --- a/apps/user_ldap/l10n/sk_SK.json +++ b/apps/user_ldap/l10n/sk_SK.json @@ -24,12 +24,19 @@ "Invalid Host" : "Neplatný hostiteľ", "Server" : "Server", "Users" : "Používatelia", + "Login Attributes" : "Prihlasovacie atribúty", "Groups" : "Skupiny", "Test Configuration" : "Test nastavenia", "Help" : "Pomoc", "Groups meeting these criteria are available in %s:" : "Skupiny spĺňajúce tieto kritériá sú k dispozícii v %s:", + "Search groups" : "Prehľadať skupiny", + "Available groups" : "Dostupné skupiny", + "Selected groups" : "Vybrané skupiny", + "LDAP Filter:" : "LDAP filter:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Tento filter LDAP určuje, ktoré skupiny budú mať prístup k %s inštancii.", "Test Filter" : "Otestovať filter", + "LDAP / AD Username:" : "Používateľské meno LDAP / AD:", + "LDAP / AD Email Address:" : "LDAP / AD emailová adresa:", "Other Attributes:" : "Iné atribúty:", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Určuje použitý filter, pri pokuse o prihlásenie. %%uid nahrádza používateľské meno v činnosti prihlásenia. Napríklad: \"uid=%%uid\"", "1. Server" : "1. Server", diff --git a/apps/user_ldap/l10n/sr.js b/apps/user_ldap/l10n/sr.js index c8b8f9fed95..889623841ba 100644 --- a/apps/user_ldap/l10n/sr.js +++ b/apps/user_ldap/l10n/sr.js @@ -10,15 +10,38 @@ 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." : "Не могу да откријем базни ДН. Унесите га ручно.", "{nthServer}. Server" : "{nthServer}. Сервер", + "No object found in the given Base DN. Please revise." : "Нема објекта за дати базни ДН. Проверите.", + "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." : "Грешка. Проверите базни ДН као и поставке везе и акредитиве.", "Do you really want to delete the current Server Configuration?" : "Да ли стварно желите да обришете тренутну конфигурацију сервера?", "Confirm Deletion" : "Потврдa брисањa", + "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", @@ -26,29 +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:" : "ЛДАП филтер:", "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" : "Испробај име за пријаву", + "Verify settings" : "Провери поставке", "1. Server" : "1. сервер", "%s. Server:" : "%s. Сервер:", "Host" : "Домаћин", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Можете да изоставите протокол, осим ако захтевате ССЛ. У том случају почните са ldaps://", "Port" : "Порт", + "Detect Port" : "Откриј порт", "User DN" : "Корисников DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "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 по линији", "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 2d401c62927..8ef9e6d05ca 100644 --- a/apps/user_ldap/l10n/sr.json +++ b/apps/user_ldap/l10n/sr.json @@ -8,15 +8,38 @@ "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." : "Не могу да откријем базни ДН. Унесите га ручно.", "{nthServer}. Server" : "{nthServer}. Сервер", + "No object found in the given Base DN. Please revise." : "Нема објекта за дати базни ДН. Проверите.", + "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." : "Грешка. Проверите базни ДН као и поставке везе и акредитиве.", "Do you really want to delete the current Server Configuration?" : "Да ли стварно желите да обришете тренутну конфигурацију сервера?", "Confirm Deletion" : "Потврдa брисањa", + "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", @@ -24,29 +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:" : "ЛДАП филтер:", "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" : "Испробај име за пријаву", + "Verify settings" : "Провери поставке", "1. Server" : "1. сервер", "%s. Server:" : "%s. Сервер:", "Host" : "Домаћин", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Можете да изоставите протокол, осим ако захтевате ССЛ. У том случају почните са ldaps://", "Port" : "Порт", + "Detect Port" : "Откриј порт", "User DN" : "Корисников DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "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 по линији", "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/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 diff --git a/config/config.sample.php b/config/config.sample.php index e3b81f69f6b..61ae59542d4 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -420,7 +420,7 @@ $CONFIG = array( */ /** - * Checks an app before install whether it uses private APIs instead of the + * Checks an app before install whether it uses private APIs instead of the * proper public APIs. If this is set to true it will only allow to install or * enable apps that pass this check. */ @@ -831,7 +831,8 @@ $CONFIG = array( 'redis' => array( 'host' => 'localhost', // can also be a unix domain socket: '/tmp/redis.sock' 'port' => 6379, - 'timeout' => 0.0 + 'timeout' => 0.0, + 'dbindex' => 0, // Optional, if undefined SELECT will not run and will use Redis Server's default DB Index. ), /** diff --git a/core/css/styles.css b/core/css/styles.css index b0938f51af9..4cf5e4e18ca 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -233,12 +233,13 @@ textarea:disabled { } .primary:hover, input[type="submit"].primary:hover, input[type="button"].primary:hover, button.primary:hover, .button.primary:hover, .primary:focus, input[type="submit"].primary:focus, input[type="button"].primary:focus, button.primary:focus, .button.primary:focus { - border: 1px solid #1d2d44; background-color: #304d76; color: #fff; } - .primary:active, input[type="submit"].primary:active, input[type="button"].primary:active, button.primary:active, .button.primary:active { - border: 1px solid #1d2d44; + .primary:active, input[type="submit"].primary:active, input[type="button"].primary:active, button.primary:active, .button.primary:active, + .primary:disabled, input[type="submit"].primary:disabled, input[type="button"].primary:disabled, button.primary:disabled, .button.primary:disabled, + .primary:disabled:hover, input[type="submit"].primary:disabled:hover, input[type="button"].primary:disabled:hover, button.primary:disabled:hover, .button.primary:disabled:hover, + .primary:disabled:focus, input[type="submit"].primary:disabled:focus, input[type="button"].primary:disabled:focus, button.primary:disabled:focus, .button.primary:disabled:focus { background-color: #1d2d44; color: #bbb; } diff --git a/core/js/js.js b/core/js/js.js index cb93e73f2e0..7604dc2a5b7 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -1142,16 +1142,16 @@ function initCore() { }); // all the tipsy stuff needs to be here (in reverse order) to work - $('.displayName .action').tipsy({gravity:'se', fade:true, live:true}); - $('.password .action').tipsy({gravity:'se', fade:true, live:true}); - $('#upload').tipsy({gravity:'w', fade:true}); - $('.selectedActions a').tipsy({gravity:'s', fade:true, live:true}); - $('a.action.delete').tipsy({gravity:'e', fade:true, live:true}); - $('a.action').tipsy({gravity:'s', fade:true, live:true}); - $('td .modified').tipsy({gravity:'s', fade:true, live:true}); - $('td.lastLogin').tipsy({gravity:'s', fade:true, html:true}); - $('input').tipsy({gravity:'w', fade:true}); - $('.extra-data').tipsy({gravity:'w', fade:true, live:true}); + $('.displayName .action').tipsy({gravity:'se', live:true}); + $('.password .action').tipsy({gravity:'se', live:true}); + $('#upload').tipsy({gravity:'w'}); + $('.selectedActions a').tipsy({gravity:'s', live:true}); + $('a.action.delete').tipsy({gravity:'e', live:true}); + $('a.action').tipsy({gravity:'s', live:true}); + $('td .modified').tipsy({gravity:'s', live:true}); + $('td.lastLogin').tipsy({gravity:'s', html:true}); + $('input').tipsy({gravity:'w'}); + $('.extra-data').tipsy({gravity:'w', live:true}); // toggle for menus $(document).on('mouseup.closemenus', function(event) { diff --git a/core/js/share.js b/core/js/share.js index f22a6a78cfd..2eae6fa49a2 100644 --- a/core/js/share.js +++ b/core/js/share.js @@ -1180,7 +1180,7 @@ $(document).ready(function() { } else { expirationDateField.attr('original-title', result.data.message); } - expirationDateField.tipsy({gravity: 'n', fade: true}); + expirationDateField.tipsy({gravity: 'n'}); expirationDateField.tipsy('show'); expirationDateField.addClass('error'); } else { diff --git a/core/l10n/de.js b/core/l10n/de.js index c059adec55b..e3813f094a5 100644 --- a/core/l10n/de.js +++ b/core/l10n/de.js @@ -72,7 +72,7 @@ OC.L10N.register( "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Dein Webserver ist noch nicht hinreichend für Datei-Synchronisation konfiguriert, weil die WebDAV-Schnittstelle vermutlich defekt ist.", "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Dieser Server hat keine funktionierende Internetverbindung. Dies bedeutet, dass einige Funktionen wie das Einhängen externen Speicherplatzes, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren werden. Der Fernzugriff auf Dateien und der Versand von E-Mail-Benachrichtigungen kann ebenfalls nicht funktionieren. Es wird empfohlen, die Internetverbindung dieses Servers zu aktivieren, wenn Du alle Funktionen nutzen möchtest.", "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Dein Datenverzeichnis und Deine Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, Deinen Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass Du es aus dem Document-Root-Verzeichnis des Webservers herausverschiebst.", - "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Es wurde kein Pufferspeicher konfiguriert. Zur Erhöhung der Leistungsfähigkeit konfiguriere, soweit verfügbar, den Pufferspeicher. Weitere Informationen finden Sie in unserer <a href=\"{docLink}\">Dokumentation</a>.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Es wurde kein PHP Memory Cache konfiguriert. Konfiguriere zur Erhöhung der Leistungsfähigkeit, soweit verfügbar, einen Memory Cache. Weitere Informationen finden Sie in unserer <a href=\"{docLink}\">Dokumentation</a>.", "Error occurred while checking server setup" : "Fehler beim Überprüfen der Servereinrichtung", "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "Der „{header}“-HTTP-Header ist nicht so konfiguriert, dass er „{expected}“ entspricht. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.", "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "Der „Strict-Transport-Security“-HTTP-Header ist nicht auf mindestens „2.678.400 Sekunden“ eingestellt. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.", diff --git a/core/l10n/de.json b/core/l10n/de.json index 8606afe94ef..469d72b1df3 100644 --- a/core/l10n/de.json +++ b/core/l10n/de.json @@ -70,7 +70,7 @@ "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Dein Webserver ist noch nicht hinreichend für Datei-Synchronisation konfiguriert, weil die WebDAV-Schnittstelle vermutlich defekt ist.", "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Dieser Server hat keine funktionierende Internetverbindung. Dies bedeutet, dass einige Funktionen wie das Einhängen externen Speicherplatzes, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren werden. Der Fernzugriff auf Dateien und der Versand von E-Mail-Benachrichtigungen kann ebenfalls nicht funktionieren. Es wird empfohlen, die Internetverbindung dieses Servers zu aktivieren, wenn Du alle Funktionen nutzen möchtest.", "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Dein Datenverzeichnis und Deine Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, Deinen Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass Du es aus dem Document-Root-Verzeichnis des Webservers herausverschiebst.", - "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Es wurde kein Pufferspeicher konfiguriert. Zur Erhöhung der Leistungsfähigkeit konfiguriere, soweit verfügbar, den Pufferspeicher. Weitere Informationen finden Sie in unserer <a href=\"{docLink}\">Dokumentation</a>.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Es wurde kein PHP Memory Cache konfiguriert. Konfiguriere zur Erhöhung der Leistungsfähigkeit, soweit verfügbar, einen Memory Cache. Weitere Informationen finden Sie in unserer <a href=\"{docLink}\">Dokumentation</a>.", "Error occurred while checking server setup" : "Fehler beim Überprüfen der Servereinrichtung", "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "Der „{header}“-HTTP-Header ist nicht so konfiguriert, dass er „{expected}“ entspricht. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.", "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "Der „Strict-Transport-Security“-HTTP-Header ist nicht auf mindestens „2.678.400 Sekunden“ eingestellt. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.", diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js index dd978e0291f..af00fd203c8 100644 --- a/core/l10n/de_DE.js +++ b/core/l10n/de_DE.js @@ -72,7 +72,7 @@ OC.L10N.register( "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Ihr Webserver ist noch nicht hinreichend für Datei-Synchronisation konfiguriert, weil die WebDAV-Schnittstelle vermutlich defekt ist.", "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Dieser Server hat keine funktionierende Internetverbindung. Dies bedeutet, dass einige Funktionen wie das Einhängen externen Speicherplatzes, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren werden. Der Fernzugriff auf Dateien und der Versand von E-Mail-Benachrichtigungen kann ebenfalls nicht funktionieren. Es wird empfohlen, die Internetverbindung dieses Servers zu aktivieren, wenn Sie alle Funktionen nutzen möchten.", "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Ihr Datenverzeichnis und Ihre Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, Ihren Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass Sie es aus dem Document-Root-Verzeichnis des Webservers herausverschieben.", - "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Es wurde kein Pufferspeicher konfiguriert. Zur Erhöhung der Leistungsfähigkeit konfigurieren Sie, soweit verfügbar, den Pufferspeicher. Weitere Informationen finden Sie in unserer <a href=\"{docLink}\">Dokumentation</a>.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Es wurde kein PHP Memory Cache konfiguriert. Konfiguriere zur Erhöhung der Leistungsfähigkeit, soweit verfügbar, einen Memory Cache. Weitere Informationen finden Sie in unserer <a href=\"{docLink}\">Dokumentation</a>.", "Error occurred while checking server setup" : "Fehler beim Überprüfen der Servereinrichtung", "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "Der „{header}“-HTTP-Header ist nicht so konfiguriert, dass er „{expected}“ entspricht. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.", "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "Der „Strict-Transport-Security“-HTTP-Header ist nicht auf mindestens „2.678.400 Sekunden“ eingestellt. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.", diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json index 94a2892fbea..79b71510c6f 100644 --- a/core/l10n/de_DE.json +++ b/core/l10n/de_DE.json @@ -70,7 +70,7 @@ "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Ihr Webserver ist noch nicht hinreichend für Datei-Synchronisation konfiguriert, weil die WebDAV-Schnittstelle vermutlich defekt ist.", "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Dieser Server hat keine funktionierende Internetverbindung. Dies bedeutet, dass einige Funktionen wie das Einhängen externen Speicherplatzes, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren werden. Der Fernzugriff auf Dateien und der Versand von E-Mail-Benachrichtigungen kann ebenfalls nicht funktionieren. Es wird empfohlen, die Internetverbindung dieses Servers zu aktivieren, wenn Sie alle Funktionen nutzen möchten.", "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Ihr Datenverzeichnis und Ihre Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, Ihren Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass Sie es aus dem Document-Root-Verzeichnis des Webservers herausverschieben.", - "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Es wurde kein Pufferspeicher konfiguriert. Zur Erhöhung der Leistungsfähigkeit konfigurieren Sie, soweit verfügbar, den Pufferspeicher. Weitere Informationen finden Sie in unserer <a href=\"{docLink}\">Dokumentation</a>.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Es wurde kein PHP Memory Cache konfiguriert. Konfiguriere zur Erhöhung der Leistungsfähigkeit, soweit verfügbar, einen Memory Cache. Weitere Informationen finden Sie in unserer <a href=\"{docLink}\">Dokumentation</a>.", "Error occurred while checking server setup" : "Fehler beim Überprüfen der Servereinrichtung", "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "Der „{header}“-HTTP-Header ist nicht so konfiguriert, dass er „{expected}“ entspricht. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.", "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "Der „Strict-Transport-Security“-HTTP-Header ist nicht auf mindestens „2.678.400 Sekunden“ eingestellt. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.", diff --git a/core/l10n/es.js b/core/l10n/es.js index 2632fb47cd7..3f6342db271 100644 --- a/core/l10n/es.js +++ b/core/l10n/es.js @@ -72,6 +72,7 @@ OC.L10N.register( "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Su servidor web aún no está configurado adecuadamente para permitir sincronización de archivos ya que la interfaz WebDAV parece no estar funcionando.", "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Este servidor no tiene una conexión a Internet. Esto significa que algunas de las características como el montaje de almacenamiento externo, las notificaciones sobre actualizaciones o instalación de aplicaciones de terceros no funcionan. Podría no funcionar el acceso a los archivos de forma remota y el envío de correos electrónicos de notificación. Sugerimos habilitar la conexión a Internet de este servidor, si quiere tener todas las funciones.", "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Su directorio de datos y sus archivos probablemente sean accesibles desde Internet. El archivo .htaccess no está funcionando. Le sugerimos encarecidamente que configure su servidor web de modo que el directorio de datos ya no sea accesible o que mueva el directorio de datos fuera de la raíz de documentos del servidor web.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "La memoria caché no ha sido configurada. Para aumentar su performance por favor configure memcache si está disponible. Más información puede ser encontrada en nuestra <a href=\"{docLink}\">documentación</a>.", "Error occurred while checking server setup" : "Ha ocurrido un error al revisar la configuración del servidor", "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "La \"{header}\" cabecera HTTP no está configurado para ser igual a \"{expected}\". Esto puede suponer un riesgo para la seguridad o la privacidad, por lo que se recomienda ajustar esta opción.", "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "La \"Strict-Transport-Security\" Cabecera HTTP no está configurada a al menos \"2,678,400\" segundos. Esto es un riesgo potencial de seguridad y debe ajustar esta opción.", @@ -85,6 +86,9 @@ OC.L10N.register( "Error while changing permissions" : "Error al cambiar permisos", "Shared with you and the group {group} by {owner}" : "Compartido contigo y el grupo {group} por {owner}", "Shared with you by {owner}" : "Compartido contigo por {owner}", + "Share with users or groups …" : "Compartir con usuarios o grupos ...", + "Share with users, groups or remote users …" : "Comparte con usuarios, grupos o usuarios remotos ...", + "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "Comparta con personas en otros ownClouds utilizando la sintáxis username@example.com/owncloud", "Share link" : "Enlace compartido", "The public link will expire no later than {days} days after it is created" : "El vínculo público no expirará antes de {days} desde que se creó", "Link" : "Enlace", @@ -97,6 +101,7 @@ OC.L10N.register( "Set expiration date" : "Establecer fecha de caducidad", "Expiration" : "Expira en:", "Expiration date" : "Fecha de caducidad", + "An error occured. Please try again" : "Un error ocurrió. Por favor reinténtelo nuevamente.", "Adding user..." : "Añadiendo usuario...", "group" : "grupo", "remote" : "remoto", @@ -176,6 +181,7 @@ OC.L10N.register( "File: %s" : "Archivo: %s", "Line: %s" : "Línea: %s", "Trace" : "Trazas", + "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Su directorio de datos y sus archivos probablemente sean accesibles a través de internet ya que el archivo .htaccess no funciona.", "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." : "Para información de cómo configurar apropiadamente su servidor, por favor vea la <a href=\"%s\" target=\"_blank\">documentación</a>.", "Create an <strong>admin account</strong>" : "Crear una <strong>cuenta de administrador</strong>", @@ -189,17 +195,22 @@ OC.L10N.register( "Database name" : "Nombre de la base de datos", "Database tablespace" : "Espacio de tablas de la base de datos", "Database host" : "Host de la base de datos", + "Performance warning" : "Advertencia de rendimiento", "SQLite will be used as database." : "Se utilizará SQLite como base de datos.", "For larger installations we recommend to choose a different database backend." : "Para grandes instalaciones recomendamos seleccionar una base de datos diferente", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "El uso de SQLite esta desaconsejado especialmente cuando se usa el cliente de escritorio para sincronizar los ficheros.", "Finish setup" : "Completar la instalación", "Finishing …" : "Finalizando...", + "Need help?" : "Necesita ayuda?", + "See the documentation" : "Vea la documentación", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere JavaScript para operar correctamente. Por favor, {linkstart}habilite JavaScript{linkend} y recargue la página.", "%s is available. Get more information on how to update." : "%s está disponible. Obtener más información de como actualizar.", "Log out" : "Salir", "Search" : "Buscar", "Server side authentication failed!" : "La autenticación a fallado en el servidor.", "Please contact your administrator." : "Por favor, contacte con el administrador.", + "An internal error occured." : "Un error interno ocurrió.", + "Please try again or contact your administrator." : "Por favor reintente nuevamente o contáctese con su administrador.", "Forgot your password? Reset it!" : "¿Olvidó su contraseña? ¡Restablézcala!", "remember" : "recordar", "Log in" : "Entrar", diff --git a/core/l10n/es.json b/core/l10n/es.json index 9c9fc0ffa3a..acede300e0e 100644 --- a/core/l10n/es.json +++ b/core/l10n/es.json @@ -70,6 +70,7 @@ "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Su servidor web aún no está configurado adecuadamente para permitir sincronización de archivos ya que la interfaz WebDAV parece no estar funcionando.", "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Este servidor no tiene una conexión a Internet. Esto significa que algunas de las características como el montaje de almacenamiento externo, las notificaciones sobre actualizaciones o instalación de aplicaciones de terceros no funcionan. Podría no funcionar el acceso a los archivos de forma remota y el envío de correos electrónicos de notificación. Sugerimos habilitar la conexión a Internet de este servidor, si quiere tener todas las funciones.", "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Su directorio de datos y sus archivos probablemente sean accesibles desde Internet. El archivo .htaccess no está funcionando. Le sugerimos encarecidamente que configure su servidor web de modo que el directorio de datos ya no sea accesible o que mueva el directorio de datos fuera de la raíz de documentos del servidor web.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "La memoria caché no ha sido configurada. Para aumentar su performance por favor configure memcache si está disponible. Más información puede ser encontrada en nuestra <a href=\"{docLink}\">documentación</a>.", "Error occurred while checking server setup" : "Ha ocurrido un error al revisar la configuración del servidor", "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "La \"{header}\" cabecera HTTP no está configurado para ser igual a \"{expected}\". Esto puede suponer un riesgo para la seguridad o la privacidad, por lo que se recomienda ajustar esta opción.", "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "La \"Strict-Transport-Security\" Cabecera HTTP no está configurada a al menos \"2,678,400\" segundos. Esto es un riesgo potencial de seguridad y debe ajustar esta opción.", @@ -83,6 +84,9 @@ "Error while changing permissions" : "Error al cambiar permisos", "Shared with you and the group {group} by {owner}" : "Compartido contigo y el grupo {group} por {owner}", "Shared with you by {owner}" : "Compartido contigo por {owner}", + "Share with users or groups …" : "Compartir con usuarios o grupos ...", + "Share with users, groups or remote users …" : "Comparte con usuarios, grupos o usuarios remotos ...", + "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "Comparta con personas en otros ownClouds utilizando la sintáxis username@example.com/owncloud", "Share link" : "Enlace compartido", "The public link will expire no later than {days} days after it is created" : "El vínculo público no expirará antes de {days} desde que se creó", "Link" : "Enlace", @@ -95,6 +99,7 @@ "Set expiration date" : "Establecer fecha de caducidad", "Expiration" : "Expira en:", "Expiration date" : "Fecha de caducidad", + "An error occured. Please try again" : "Un error ocurrió. Por favor reinténtelo nuevamente.", "Adding user..." : "Añadiendo usuario...", "group" : "grupo", "remote" : "remoto", @@ -174,6 +179,7 @@ "File: %s" : "Archivo: %s", "Line: %s" : "Línea: %s", "Trace" : "Trazas", + "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Su directorio de datos y sus archivos probablemente sean accesibles a través de internet ya que el archivo .htaccess no funciona.", "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." : "Para información de cómo configurar apropiadamente su servidor, por favor vea la <a href=\"%s\" target=\"_blank\">documentación</a>.", "Create an <strong>admin account</strong>" : "Crear una <strong>cuenta de administrador</strong>", @@ -187,17 +193,22 @@ "Database name" : "Nombre de la base de datos", "Database tablespace" : "Espacio de tablas de la base de datos", "Database host" : "Host de la base de datos", + "Performance warning" : "Advertencia de rendimiento", "SQLite will be used as database." : "Se utilizará SQLite como base de datos.", "For larger installations we recommend to choose a different database backend." : "Para grandes instalaciones recomendamos seleccionar una base de datos diferente", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "El uso de SQLite esta desaconsejado especialmente cuando se usa el cliente de escritorio para sincronizar los ficheros.", "Finish setup" : "Completar la instalación", "Finishing …" : "Finalizando...", + "Need help?" : "Necesita ayuda?", + "See the documentation" : "Vea la documentación", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere JavaScript para operar correctamente. Por favor, {linkstart}habilite JavaScript{linkend} y recargue la página.", "%s is available. Get more information on how to update." : "%s está disponible. Obtener más información de como actualizar.", "Log out" : "Salir", "Search" : "Buscar", "Server side authentication failed!" : "La autenticación a fallado en el servidor.", "Please contact your administrator." : "Por favor, contacte con el administrador.", + "An internal error occured." : "Un error interno ocurrió.", + "Please try again or contact your administrator." : "Por favor reintente nuevamente o contáctese con su administrador.", "Forgot your password? Reset it!" : "¿Olvidó su contraseña? ¡Restablézcala!", "remember" : "recordar", "Log in" : "Entrar", diff --git a/core/l10n/et_EE.js b/core/l10n/et_EE.js index e4acdc2bf65..40195e2769c 100644 --- a/core/l10n/et_EE.js +++ b/core/l10n/et_EE.js @@ -45,6 +45,7 @@ OC.L10N.register( "Error loading file picker template: {error}" : "Viga failivalija malli laadimisel: {error}", "Ok" : "Ok", "Error loading message template: {error}" : "Viga sõnumi malli laadimisel: {error}", + "read-only" : "kirjutuskaitstud", "_{count} file conflict_::_{count} file conflicts_" : ["{count} failikonflikt","{count} failikonflikti"], "One file conflict" : "Üks failikonflikt", "New Files" : "Uued failid", @@ -73,9 +74,11 @@ OC.L10N.register( "Shared with you by {owner}" : "Sinuga jagas {owner}", "Share link" : "Jaga linki", "The public link will expire no later than {days} days after it is created" : "Avalik link aegub mitte hiljem kui pärast {days} päeva selle loomist", + "Link" : "Link", "Password protect" : "Parooliga kaitstud", "Password" : "Parool", "Choose a password for the public link" : "Vali avaliku lingi jaoks parool", + "Allow editing" : "Luba muutmine", "Email link to person" : "Saada link isikule e-postiga", "Send" : "Saada", "Set expiration date" : "Määra aegumise kuupäev", @@ -109,6 +112,7 @@ OC.L10N.register( "Hello world!" : "Tere maailm!", "sunny" : "päikeseline", "Hello {name}, the weather is {weather}" : "Tere {name}, ilm on {weather}", + "Hello {name}" : "Tere, {name}", "_download %n file_::_download %n files_" : ["laadi alla %n fail","laadi alla %n faili"], "Updating {productName} to version {version}, this may take a while." : "Uuendan {productName} versioonile {version}, see võtab veidi aega.", "Please reload the page." : "Palun laadi see uuesti.", diff --git a/core/l10n/et_EE.json b/core/l10n/et_EE.json index f4d2dce4435..3ab79a04cde 100644 --- a/core/l10n/et_EE.json +++ b/core/l10n/et_EE.json @@ -43,6 +43,7 @@ "Error loading file picker template: {error}" : "Viga failivalija malli laadimisel: {error}", "Ok" : "Ok", "Error loading message template: {error}" : "Viga sõnumi malli laadimisel: {error}", + "read-only" : "kirjutuskaitstud", "_{count} file conflict_::_{count} file conflicts_" : ["{count} failikonflikt","{count} failikonflikti"], "One file conflict" : "Üks failikonflikt", "New Files" : "Uued failid", @@ -71,9 +72,11 @@ "Shared with you by {owner}" : "Sinuga jagas {owner}", "Share link" : "Jaga linki", "The public link will expire no later than {days} days after it is created" : "Avalik link aegub mitte hiljem kui pärast {days} päeva selle loomist", + "Link" : "Link", "Password protect" : "Parooliga kaitstud", "Password" : "Parool", "Choose a password for the public link" : "Vali avaliku lingi jaoks parool", + "Allow editing" : "Luba muutmine", "Email link to person" : "Saada link isikule e-postiga", "Send" : "Saada", "Set expiration date" : "Määra aegumise kuupäev", @@ -107,6 +110,7 @@ "Hello world!" : "Tere maailm!", "sunny" : "päikeseline", "Hello {name}, the weather is {weather}" : "Tere {name}, ilm on {weather}", + "Hello {name}" : "Tere, {name}", "_download %n file_::_download %n files_" : ["laadi alla %n fail","laadi alla %n faili"], "Updating {productName} to version {version}, this may take a while." : "Uuendan {productName} versioonile {version}, see võtab veidi aega.", "Please reload the page." : "Palun laadi see uuesti.", diff --git a/core/l10n/fr.js b/core/l10n/fr.js index 59bc3071b31..8b3f02c7bae 100644 --- a/core/l10n/fr.js +++ b/core/l10n/fr.js @@ -69,14 +69,14 @@ OC.L10N.register( "So-so password" : "Mot de passe tout juste acceptable", "Good password" : "Mot de passe de sécurité suffisante", "Strong password" : "Mot de passe fort", - "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Votre serveur web n'est pas correctement configuré pour permettre la synchronisation de fichiers : l'interface WebDAV semble ne pas fonctionner.", - "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Ce serveur ne peut se connecter à internet. Cela signifie que certaines fonctionnalités, telles que le montage de supports de stockage distants, les notifications de mises à jour ou l'installation d'applications tierces ne fonctionneront pas. L'accès aux fichiers à distance, ainsi que les notifications par mails ne seront pas fonctionnels également. Il est recommandé d'activer la connexion internet pour ce serveur si vous souhaitez disposer de l'ensemble des fonctionnalités offertes.", - "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou bien de le déplacer à l'extérieur de la racine du serveur web.", + "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Votre serveur web n'est pas correctement configuré pour la synchronisation de fichiers : l'interface WebDAV semble ne pas fonctionner.", + "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Ce serveur ne peut se connecter à internet. Cela signifie que certaines fonctionnalités, telles que le montage de supports de stockage distants, les notifications de mises à jour ou l'installation d'applications tierces ne fonctionneront pas. L'accès aux fichiers à distance, ainsi que les notifications par mail peuvent aussi être indisponibles. Il est recommandé d'activer la connexion internet pour ce serveur si vous souhaitez disposer de l'ensemble des fonctionnalités offertes.", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou de le déplacer hors de la racine du serveur web.", "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Aucun cache de la mémoire n'est configuré. Si possible, configurez un \"memcache\" pour augmenter les performances. Pour plus d'information consultez la <a href=\"{docLink}\">documentation</a>.", "Error occurred while checking server setup" : "Une erreur s'est produite lors de la vérification de la configuration du serveur", "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "L'en-tête HTTP \"{header}\" n'est pas configurée pour être égale à \"{expected}\" créant potentiellement un risque relié à la sécurité et à la vie privée. Il est donc recommandé d'ajuster ce paramètre.", - "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "L'en-tête HTTP \"Strict-Transport-Security\" n'est pas configurée pour durer \"2,678,400\" secondes. C'est un risque de sécurité potentiel et il est donc recommandé d'ajuster ce paramètre.", - "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Vous accédez à ce site via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS à la place.", + "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "L'en-tête HTTP \"Strict-Transport-Security\" n'est pas configurée à \"2,678,400\" secondes. C'est un risque de sécurité potentiel et il est donc recommandé d'ajuster ce paramètre.", + "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Vous accédez à ce site via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS.", "Shared" : "Partagé", "Shared with {recipients}" : "Partagé avec {recipients}", "Share" : "Partager", @@ -154,7 +154,7 @@ OC.L10N.register( "Apps" : "Applications", "Admin" : "Administration", "Help" : "Aide", - "Error loading tags" : "Erreur de chargement des étiquettes.", + "Error loading tags" : "Erreur lors du chargement des étiquettes", "Tag already exists" : "L'étiquette existe déjà.", "Error deleting tag(s)" : "Erreur de suppression d'étiquette(s)", "Error tagging" : "Erreur lors de l'étiquetage", diff --git a/core/l10n/fr.json b/core/l10n/fr.json index 8a13b7a1598..641c07bcf07 100644 --- a/core/l10n/fr.json +++ b/core/l10n/fr.json @@ -67,14 +67,14 @@ "So-so password" : "Mot de passe tout juste acceptable", "Good password" : "Mot de passe de sécurité suffisante", "Strong password" : "Mot de passe fort", - "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Votre serveur web n'est pas correctement configuré pour permettre la synchronisation de fichiers : l'interface WebDAV semble ne pas fonctionner.", - "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Ce serveur ne peut se connecter à internet. Cela signifie que certaines fonctionnalités, telles que le montage de supports de stockage distants, les notifications de mises à jour ou l'installation d'applications tierces ne fonctionneront pas. L'accès aux fichiers à distance, ainsi que les notifications par mails ne seront pas fonctionnels également. Il est recommandé d'activer la connexion internet pour ce serveur si vous souhaitez disposer de l'ensemble des fonctionnalités offertes.", - "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou bien de le déplacer à l'extérieur de la racine du serveur web.", + "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Votre serveur web n'est pas correctement configuré pour la synchronisation de fichiers : l'interface WebDAV semble ne pas fonctionner.", + "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Ce serveur ne peut se connecter à internet. Cela signifie que certaines fonctionnalités, telles que le montage de supports de stockage distants, les notifications de mises à jour ou l'installation d'applications tierces ne fonctionneront pas. L'accès aux fichiers à distance, ainsi que les notifications par mail peuvent aussi être indisponibles. Il est recommandé d'activer la connexion internet pour ce serveur si vous souhaitez disposer de l'ensemble des fonctionnalités offertes.", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou de le déplacer hors de la racine du serveur web.", "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Aucun cache de la mémoire n'est configuré. Si possible, configurez un \"memcache\" pour augmenter les performances. Pour plus d'information consultez la <a href=\"{docLink}\">documentation</a>.", "Error occurred while checking server setup" : "Une erreur s'est produite lors de la vérification de la configuration du serveur", "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "L'en-tête HTTP \"{header}\" n'est pas configurée pour être égale à \"{expected}\" créant potentiellement un risque relié à la sécurité et à la vie privée. Il est donc recommandé d'ajuster ce paramètre.", - "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "L'en-tête HTTP \"Strict-Transport-Security\" n'est pas configurée pour durer \"2,678,400\" secondes. C'est un risque de sécurité potentiel et il est donc recommandé d'ajuster ce paramètre.", - "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Vous accédez à ce site via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS à la place.", + "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "L'en-tête HTTP \"Strict-Transport-Security\" n'est pas configurée à \"2,678,400\" secondes. C'est un risque de sécurité potentiel et il est donc recommandé d'ajuster ce paramètre.", + "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Vous accédez à ce site via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS.", "Shared" : "Partagé", "Shared with {recipients}" : "Partagé avec {recipients}", "Share" : "Partager", @@ -152,7 +152,7 @@ "Apps" : "Applications", "Admin" : "Administration", "Help" : "Aide", - "Error loading tags" : "Erreur de chargement des étiquettes.", + "Error loading tags" : "Erreur lors du chargement des étiquettes", "Tag already exists" : "L'étiquette existe déjà.", "Error deleting tag(s)" : "Erreur de suppression d'étiquette(s)", "Error tagging" : "Erreur lors de l'étiquetage", diff --git a/core/l10n/pl.js b/core/l10n/pl.js index 53e38f97d53..7d8de99d237 100644 --- a/core/l10n/pl.js +++ b/core/l10n/pl.js @@ -77,6 +77,7 @@ OC.L10N.register( "Error while changing permissions" : "Błąd przy zmianie uprawnień", "Shared with you and the group {group} by {owner}" : "Udostępnione tobie i grupie {group} przez {owner}", "Shared with you by {owner}" : "Udostępnione tobie przez {owner}", + "Share with users or groups …" : "Współdziel z użytkownikami lub grupami", "Share link" : "Udostępnij link", "The public link will expire no later than {days} days after it is created" : "Link publiczny wygaśnie nie później niż po {days} dniach od utworzenia", "Link" : "Odnośnik", @@ -161,6 +162,7 @@ OC.L10N.register( "Technical details" : "Szczegóły techniczne", "Remote Address: %s" : "Adres zdalny: %s", "Request ID: %s" : "ID żądania: %s", + "Type: %s" : "Typ: %s", "Code: %s" : "Kod: %s", "Message: %s" : "Komunikat: %s", "File: %s" : "Plik: %s", @@ -181,11 +183,13 @@ OC.L10N.register( "Database host" : "Komputer bazy danych", "Finish setup" : "Zakończ konfigurowanie", "Finishing …" : "Kończę ...", + "Need help?" : "Potrzebujesz pomocy?", "%s is available. Get more information on how to update." : "%s jest dostępna. Dowiedz się więcej na temat aktualizacji.", "Log out" : "Wyloguj", "Search" : "Wyszukaj", "Server side authentication failed!" : "Uwierzytelnianie po stronie serwera nie powiodło się!", "Please contact your administrator." : "Skontaktuj się z administratorem", + "Please try again or contact your administrator." : "Spróbuj ponownie lub skontaktuj się z administratorem.", "Forgot your password? Reset it!" : "Nie pamiętasz hasła? Zresetuj je!", "remember" : "pamiętaj", "Log in" : "Zaloguj", diff --git a/core/l10n/pl.json b/core/l10n/pl.json index 9d8d496c45c..2054c5b946d 100644 --- a/core/l10n/pl.json +++ b/core/l10n/pl.json @@ -75,6 +75,7 @@ "Error while changing permissions" : "Błąd przy zmianie uprawnień", "Shared with you and the group {group} by {owner}" : "Udostępnione tobie i grupie {group} przez {owner}", "Shared with you by {owner}" : "Udostępnione tobie przez {owner}", + "Share with users or groups …" : "Współdziel z użytkownikami lub grupami", "Share link" : "Udostępnij link", "The public link will expire no later than {days} days after it is created" : "Link publiczny wygaśnie nie później niż po {days} dniach od utworzenia", "Link" : "Odnośnik", @@ -159,6 +160,7 @@ "Technical details" : "Szczegóły techniczne", "Remote Address: %s" : "Adres zdalny: %s", "Request ID: %s" : "ID żądania: %s", + "Type: %s" : "Typ: %s", "Code: %s" : "Kod: %s", "Message: %s" : "Komunikat: %s", "File: %s" : "Plik: %s", @@ -179,11 +181,13 @@ "Database host" : "Komputer bazy danych", "Finish setup" : "Zakończ konfigurowanie", "Finishing …" : "Kończę ...", + "Need help?" : "Potrzebujesz pomocy?", "%s is available. Get more information on how to update." : "%s jest dostępna. Dowiedz się więcej na temat aktualizacji.", "Log out" : "Wyloguj", "Search" : "Wyszukaj", "Server side authentication failed!" : "Uwierzytelnianie po stronie serwera nie powiodło się!", "Please contact your administrator." : "Skontaktuj się z administratorem", + "Please try again or contact your administrator." : "Spróbuj ponownie lub skontaktuj się z administratorem.", "Forgot your password? Reset it!" : "Nie pamiętasz hasła? Zresetuj je!", "remember" : "pamiętaj", "Log in" : "Zaloguj", diff --git a/core/l10n/ro.js b/core/l10n/ro.js index dbf3fd9e20c..a9e34f6b43c 100644 --- a/core/l10n/ro.js +++ b/core/l10n/ro.js @@ -6,6 +6,10 @@ OC.L10N.register( "Turned off maintenance mode" : "Modul mentenanță a fost dezactivat", "Updated database" : "Bază de date actualizată", "Updated \"%s\" to %s" : "\"%s\" a fost actualizat până la %s", + "Repair warning: " : "Alerte reparare:", + "Repair error: " : "Eroare de reparare:", + "Following incompatible apps have been disabled: %s" : "Următoarele aplicații incompatibile au fost dezactivate: %s", + "Following 3rd party apps have been disabled: %s" : "Următoarele aplicații externe au fost dezactivate: %s", "No image or file provided" : "Nu a fost furnizat vreo imagine sau fișier", "Unknown filetype" : "Tip fișier necunoscut", "Invalid image" : "Imagine invalidă", diff --git a/core/l10n/ro.json b/core/l10n/ro.json index 58c3168fe2b..0cdef73f4e5 100644 --- a/core/l10n/ro.json +++ b/core/l10n/ro.json @@ -4,6 +4,10 @@ "Turned off maintenance mode" : "Modul mentenanță a fost dezactivat", "Updated database" : "Bază de date actualizată", "Updated \"%s\" to %s" : "\"%s\" a fost actualizat până la %s", + "Repair warning: " : "Alerte reparare:", + "Repair error: " : "Eroare de reparare:", + "Following incompatible apps have been disabled: %s" : "Următoarele aplicații incompatibile au fost dezactivate: %s", + "Following 3rd party apps have been disabled: %s" : "Următoarele aplicații externe au fost dezactivate: %s", "No image or file provided" : "Nu a fost furnizat vreo imagine sau fișier", "Unknown filetype" : "Tip fișier necunoscut", "Invalid image" : "Imagine invalidă", diff --git a/core/l10n/ru.js b/core/l10n/ru.js index 0b3a55b9eaf..71916e38afe 100644 --- a/core/l10n/ru.js +++ b/core/l10n/ru.js @@ -101,6 +101,7 @@ OC.L10N.register( "Set expiration date" : "Установить срок действия", "Expiration" : "Срок действия", "Expiration date" : "Дата окончания", + "An error occured. Please try again" : "Произошла ошибка. Попробуйте ещё раз", "Adding user..." : "Добавляем пользователя...", "group" : "группа", "remote" : "удаленный", @@ -208,6 +209,8 @@ OC.L10N.register( "Search" : "Найти", "Server side authentication failed!" : "Неудачная аутентификация с сервером!", "Please contact your administrator." : "Пожалуйста, свяжитесь с вашим администратором.", + "An internal error occured." : "Произошла внутренняя ошибка", + "Please try again or contact your administrator." : "Пожалуйста попробуйте ещё раз или свяжитесь с вашим администратором", "Forgot your password? Reset it!" : "Забыли пароль? Сбросьте его!", "remember" : "запомнить", "Log in" : "Войти", diff --git a/core/l10n/ru.json b/core/l10n/ru.json index 817cd16da34..ab800f8489e 100644 --- a/core/l10n/ru.json +++ b/core/l10n/ru.json @@ -99,6 +99,7 @@ "Set expiration date" : "Установить срок действия", "Expiration" : "Срок действия", "Expiration date" : "Дата окончания", + "An error occured. Please try again" : "Произошла ошибка. Попробуйте ещё раз", "Adding user..." : "Добавляем пользователя...", "group" : "группа", "remote" : "удаленный", @@ -206,6 +207,8 @@ "Search" : "Найти", "Server side authentication failed!" : "Неудачная аутентификация с сервером!", "Please contact your administrator." : "Пожалуйста, свяжитесь с вашим администратором.", + "An internal error occured." : "Произошла внутренняя ошибка", + "Please try again or contact your administrator." : "Пожалуйста попробуйте ещё раз или свяжитесь с вашим администратором", "Forgot your password? Reset it!" : "Забыли пароль? Сбросьте его!", "remember" : "запомнить", "Log in" : "Войти", diff --git a/core/l10n/sk_SK.js b/core/l10n/sk_SK.js index 94e6b24b091..1e6252b566d 100644 --- a/core/l10n/sk_SK.js +++ b/core/l10n/sk_SK.js @@ -162,11 +162,13 @@ OC.L10N.register( "Technical details" : "Technické podrobnosti", "Remote Address: %s" : "Vzdialená adresa: %s", "Request ID: %s" : "ID požiadavky: %s", + "Type: %s" : "Typ: %s", "Code: %s" : "Kód: %s", "Message: %s" : "Správa: %s", "File: %s" : "Súbor: %s", "Line: %s" : "Riadok: %s", "Trace" : "Trasa", + "Security warning" : "Bezpečnostné varovanie", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Váš priečinok s dátami a súbormi je dostupný z internetu, lebo súbor .htaccess nefunguje.", "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." : "Pre informácie, ako správne nastaviť váš server, sa pozrite do <a href=\"%s\" target=\"_blank\">dokumentácie</a>.", "Create an <strong>admin account</strong>" : "Vytvoriť <strong>administrátorský účet</strong>", @@ -185,6 +187,7 @@ OC.L10N.register( "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Najmä pri používaní klientských aplikácií na synchronizáciu s desktopom neodporúčame používať SQLite.", "Finish setup" : "Dokončiť inštaláciu", "Finishing …" : "Dokončujem...", + "Need help?" : "Potrebujete pomoc?", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Táto aplikácia vyžaduje JavaScript, aby správne fungovala. Prosím, {linkstart}zapnite si JavaScript{linkend} a obnovte stránku", "%s is available. Get more information on how to update." : "%s je dostupná. Získajte viac informácií o postupe aktualizácie.", "Log out" : "Odhlásiť", diff --git a/core/l10n/sk_SK.json b/core/l10n/sk_SK.json index 6fcf55320af..676270f879f 100644 --- a/core/l10n/sk_SK.json +++ b/core/l10n/sk_SK.json @@ -160,11 +160,13 @@ "Technical details" : "Technické podrobnosti", "Remote Address: %s" : "Vzdialená adresa: %s", "Request ID: %s" : "ID požiadavky: %s", + "Type: %s" : "Typ: %s", "Code: %s" : "Kód: %s", "Message: %s" : "Správa: %s", "File: %s" : "Súbor: %s", "Line: %s" : "Riadok: %s", "Trace" : "Trasa", + "Security warning" : "Bezpečnostné varovanie", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Váš priečinok s dátami a súbormi je dostupný z internetu, lebo súbor .htaccess nefunguje.", "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." : "Pre informácie, ako správne nastaviť váš server, sa pozrite do <a href=\"%s\" target=\"_blank\">dokumentácie</a>.", "Create an <strong>admin account</strong>" : "Vytvoriť <strong>administrátorský účet</strong>", @@ -183,6 +185,7 @@ "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Najmä pri používaní klientských aplikácií na synchronizáciu s desktopom neodporúčame používať SQLite.", "Finish setup" : "Dokončiť inštaláciu", "Finishing …" : "Dokončujem...", + "Need help?" : "Potrebujete pomoc?", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Táto aplikácia vyžaduje JavaScript, aby správne fungovala. Prosím, {linkstart}zapnite si JavaScript{linkend} a obnovte stránku", "%s is available. Get more information on how to update." : "%s je dostupná. Získajte viac informácií o postupe aktualizácie.", "Log out" : "Odhlásiť", diff --git a/core/l10n/sr.js b/core/l10n/sr.js index cac5da81fd1..4e41aeabca6 100644 --- a/core/l10n/sr.js +++ b/core/l10n/sr.js @@ -88,6 +88,7 @@ OC.L10N.register( "Shared with you by {owner}" : "{owner} дели са вама", "Share with users or groups …" : "Дели са корисницима или групама...", "Share with users, groups or remote users …" : "Дели са корисницима, групама или удаљеним корисницима...", + "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "Подели са људима на осталим ownCloud-има користећи синтаксу username@example.com/owncloud", "Share link" : "Веза дељења", "The public link will expire no later than {days} days after it is created" : "Јавна веза ће престати да важи {days} дана након стварања", "Link" : "Веза", diff --git a/core/l10n/sr.json b/core/l10n/sr.json index 0aca5d8add3..e8f333df002 100644 --- a/core/l10n/sr.json +++ b/core/l10n/sr.json @@ -86,6 +86,7 @@ "Shared with you by {owner}" : "{owner} дели са вама", "Share with users or groups …" : "Дели са корисницима или групама...", "Share with users, groups or remote users …" : "Дели са корисницима, групама или удаљеним корисницима...", + "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "Подели са људима на осталим ownCloud-има користећи синтаксу username@example.com/owncloud", "Share link" : "Веза дељења", "The public link will expire no later than {days} days after it is created" : "Јавна веза ће престати да важи {days} дана након стварања", "Link" : "Веза", diff --git a/core/l10n/uk.js b/core/l10n/uk.js index 88624bdbd35..1d479a06311 100644 --- a/core/l10n/uk.js +++ b/core/l10n/uk.js @@ -50,7 +50,7 @@ OC.L10N.register( "Yes" : "Так", "Choose" : "Обрати", "Error loading file picker template: {error}" : "Помилка при завантаженні шаблону вибору: {error}", - "Ok" : "Ok", + "Ok" : "Гаразд", "Error loading message template: {error}" : "Помилка при завантаженні шаблону повідомлення: {error}", "read-only" : "Тільки для читання", "_{count} file conflict_::_{count} file conflicts_" : ["{count} файловий конфлікт","{count} файлових конфліктів","{count} файлових конфліктів"], @@ -72,7 +72,9 @@ OC.L10N.register( "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Ваш веб-сервер ще не налаштований належним чином, щоб дозволити синхронізацію файлів, тому що інтерфейс WebDAV, здається, зіпсований.", "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Цей сервер не має підключення до Інтернету. Це означає, що деякі з функцій, таких як зовнішнє сховище, повідомлення про оновлення та встановлення сторонніх додатків не будуть працювати. Доступ до файлів віддалено і відправки повідомлень поштою можуть не працювати. Ми пропонуємо включити підключення до Інтернету для цього сервера, якщо ви хочете, щоб всі функції працювали.", "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Ваш каталог даних і ваші файли можливо доступні з інтернету. .htaccess файл не працює. Ми настійно рекомендуємо вам налаштувати ваш веб сервер таким чином, що-б каталог даних не був більше доступний або перемістіть каталог даних за межі кореня веб сервера.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Кеш пам'яті не налаштований. Задля покращення продуктивності, будь ласка, налаштуйте memcache, якщо є можливість. Додаткову інформацію шукайте у нашій <a href=\"{docLink}\">документації</a>.", "Error occurred while checking server setup" : "При перевірці налаштувань серверу сталася помилка", + "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "HTTP заголовок \"{header}\" не налаштований як \"{expected}\". Це потенційний ризик для безпеки чи приватності і ми радимо виправити це налаштування.", "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "HTTP заголовок \"Strict-Transport-Security\" повинен бути налаштований принаймні на \"2,678,400\" секунд. Це потенційна проблема безпеки і ми рекомендуємо змінити ці налаштування.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Ви зайшли на цей сайт через HTTP. Ми настійно рекомендуємо налаштувати ваш сервер на використання HTTPS.", "Shared" : "Опубліковано", @@ -84,6 +86,9 @@ OC.L10N.register( "Error while changing permissions" : "Помилка при зміні повноважень", "Shared with you and the group {group} by {owner}" : " {owner} опублікував для Вас та для групи {group}", "Shared with you by {owner}" : "{owner} опублікував для Вас", + "Share with users or groups …" : "Поширити серед користувачів або груп ...", + "Share with users, groups or remote users …" : "Поширити серед локальних чи віддалених користувачів або груп ...", + "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "Поширити серед людей інших ownCloud'ів, використовуючи синтаксис ім'я_користувача@файли.укр/owncloud", "Share link" : "Опублікувати посилання", "The public link will expire no later than {days} days after it is created" : "Доступ до опублікованого посилання буде припинено не пізніше ніж через {days} днів з моменту створення", "Link" : "Посилання", @@ -96,6 +101,7 @@ OC.L10N.register( "Set expiration date" : "Встановити термін дії", "Expiration" : "Закінчення", "Expiration date" : "Термін дії", + "An error occured. Please try again" : "Виникла помилка. Будь ласка, спробуйте ще раз", "Adding user..." : "Додавання користувача...", "group" : "група", "remote" : "Віддалений", @@ -175,6 +181,7 @@ OC.L10N.register( "File: %s" : "Файл: %s", "Line: %s" : "Рядок: %s", "Trace" : "Трасування", + "Security warning" : "Попередження безпеки", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Ваші дані каталогів і файлів, ймовірно, доступні з інтернету, тому що .htaccess файл не працює.", "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." : "Для отримання інформації, як правильно налаштувати сервер, див. <a href=\"%s\" target=\"_blank\">документацію</a>.", "Create an <strong>admin account</strong>" : "Створити <strong>обліковий запис адміністратора</strong>", @@ -188,17 +195,22 @@ OC.L10N.register( "Database name" : "Назва бази даних", "Database tablespace" : "Таблиця бази даних", "Database host" : "Хост бази даних", + "Performance warning" : "Попередження продуктивності", "SQLite will be used as database." : "В якості бази даних буде використана SQLite.", "For larger installations we recommend to choose a different database backend." : "Для великих установок ми радимо вибрати іншу базу даних.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Особливо викликає сумнів використання SQLite при синхронізації файлів з використанням клієнта для ПК.", "Finish setup" : "Завершити встановлення", "Finishing …" : "Завершується ...", + "Need help?" : "Потрібна допомога?", + "See the documentation" : "Дивіться документацію", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ця програма вимагає увімкнений JavaScript для коректної роботи. Будь ласка, {linkstart} Увімкніть JavaScript {linkend} та перезавантажте інтерфейс.", "%s is available. Get more information on how to update." : "%s доступний. Отримай більше інформації про те, як оновити.", "Log out" : "Вихід", "Search" : "Знайти", "Server side authentication failed!" : "Невдала аутентифікація з сервером!", "Please contact your administrator." : "Будь ласка, зверніться до вашого Адміністратора.", + "An internal error occured." : "Внутрішня помилка.", + "Please try again or contact your administrator." : "Будь ласка, спробуйте ще раз або зверніться до адміністратора.", "Forgot your password? Reset it!" : "Забули ваш пароль? Скиньте його!", "remember" : "запам'ятати", "Log in" : "Увійти", diff --git a/core/l10n/uk.json b/core/l10n/uk.json index 35e85f441de..ad3969d1402 100644 --- a/core/l10n/uk.json +++ b/core/l10n/uk.json @@ -48,7 +48,7 @@ "Yes" : "Так", "Choose" : "Обрати", "Error loading file picker template: {error}" : "Помилка при завантаженні шаблону вибору: {error}", - "Ok" : "Ok", + "Ok" : "Гаразд", "Error loading message template: {error}" : "Помилка при завантаженні шаблону повідомлення: {error}", "read-only" : "Тільки для читання", "_{count} file conflict_::_{count} file conflicts_" : ["{count} файловий конфлікт","{count} файлових конфліктів","{count} файлових конфліктів"], @@ -70,7 +70,9 @@ "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Ваш веб-сервер ще не налаштований належним чином, щоб дозволити синхронізацію файлів, тому що інтерфейс WebDAV, здається, зіпсований.", "This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Цей сервер не має підключення до Інтернету. Це означає, що деякі з функцій, таких як зовнішнє сховище, повідомлення про оновлення та встановлення сторонніх додатків не будуть працювати. Доступ до файлів віддалено і відправки повідомлень поштою можуть не працювати. Ми пропонуємо включити підключення до Інтернету для цього сервера, якщо ви хочете, щоб всі функції працювали.", "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Ваш каталог даних і ваші файли можливо доступні з інтернету. .htaccess файл не працює. Ми настійно рекомендуємо вам налаштувати ваш веб сервер таким чином, що-б каталог даних не був більше доступний або перемістіть каталог даних за межі кореня веб сервера.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Кеш пам'яті не налаштований. Задля покращення продуктивності, будь ласка, налаштуйте memcache, якщо є можливість. Додаткову інформацію шукайте у нашій <a href=\"{docLink}\">документації</a>.", "Error occurred while checking server setup" : "При перевірці налаштувань серверу сталася помилка", + "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "HTTP заголовок \"{header}\" не налаштований як \"{expected}\". Це потенційний ризик для безпеки чи приватності і ми радимо виправити це налаштування.", "The \"Strict-Transport-Security\" HTTP header is not configured to least \"2,678,400\" seconds. This is a potential security risk and we recommend adjusting this setting." : "HTTP заголовок \"Strict-Transport-Security\" повинен бути налаштований принаймні на \"2,678,400\" секунд. Це потенційна проблема безпеки і ми рекомендуємо змінити ці налаштування.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Ви зайшли на цей сайт через HTTP. Ми настійно рекомендуємо налаштувати ваш сервер на використання HTTPS.", "Shared" : "Опубліковано", @@ -82,6 +84,9 @@ "Error while changing permissions" : "Помилка при зміні повноважень", "Shared with you and the group {group} by {owner}" : " {owner} опублікував для Вас та для групи {group}", "Shared with you by {owner}" : "{owner} опублікував для Вас", + "Share with users or groups …" : "Поширити серед користувачів або груп ...", + "Share with users, groups or remote users …" : "Поширити серед локальних чи віддалених користувачів або груп ...", + "Share with people on other ownClouds using the syntax username@example.com/owncloud" : "Поширити серед людей інших ownCloud'ів, використовуючи синтаксис ім'я_користувача@файли.укр/owncloud", "Share link" : "Опублікувати посилання", "The public link will expire no later than {days} days after it is created" : "Доступ до опублікованого посилання буде припинено не пізніше ніж через {days} днів з моменту створення", "Link" : "Посилання", @@ -94,6 +99,7 @@ "Set expiration date" : "Встановити термін дії", "Expiration" : "Закінчення", "Expiration date" : "Термін дії", + "An error occured. Please try again" : "Виникла помилка. Будь ласка, спробуйте ще раз", "Adding user..." : "Додавання користувача...", "group" : "група", "remote" : "Віддалений", @@ -173,6 +179,7 @@ "File: %s" : "Файл: %s", "Line: %s" : "Рядок: %s", "Trace" : "Трасування", + "Security warning" : "Попередження безпеки", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Ваші дані каталогів і файлів, ймовірно, доступні з інтернету, тому що .htaccess файл не працює.", "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." : "Для отримання інформації, як правильно налаштувати сервер, див. <a href=\"%s\" target=\"_blank\">документацію</a>.", "Create an <strong>admin account</strong>" : "Створити <strong>обліковий запис адміністратора</strong>", @@ -186,17 +193,22 @@ "Database name" : "Назва бази даних", "Database tablespace" : "Таблиця бази даних", "Database host" : "Хост бази даних", + "Performance warning" : "Попередження продуктивності", "SQLite will be used as database." : "В якості бази даних буде використана SQLite.", "For larger installations we recommend to choose a different database backend." : "Для великих установок ми радимо вибрати іншу базу даних.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Особливо викликає сумнів використання SQLite при синхронізації файлів з використанням клієнта для ПК.", "Finish setup" : "Завершити встановлення", "Finishing …" : "Завершується ...", + "Need help?" : "Потрібна допомога?", + "See the documentation" : "Дивіться документацію", "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ця програма вимагає увімкнений JavaScript для коректної роботи. Будь ласка, {linkstart} Увімкніть JavaScript {linkend} та перезавантажте інтерфейс.", "%s is available. Get more information on how to update." : "%s доступний. Отримай більше інформації про те, як оновити.", "Log out" : "Вихід", "Search" : "Знайти", "Server side authentication failed!" : "Невдала аутентифікація з сервером!", "Please contact your administrator." : "Будь ласка, зверніться до вашого Адміністратора.", + "An internal error occured." : "Внутрішня помилка.", + "Please try again or contact your administrator." : "Будь ласка, спробуйте ще раз або зверніться до адміністратора.", "Forgot your password? Reset it!" : "Забули ваш пароль? Скиньте його!", "remember" : "запам'ятати", "Log in" : "Увійти", diff --git a/core/shipped.json b/core/shipped.json index 15a2c6a1473..7993b61569c 100644 --- a/core/shipped.json +++ b/core/shipped.json @@ -7,7 +7,7 @@ "external", "files", "files_antivirus", - "files_encryption", + "encryption", "files_external", "files_ldap_home", "files_locking", @@ -64,7 +64,7 @@ try { \OC::$server->getTempManager()->cleanOld(); // Exit if background jobs are disabled! - $appMode = OC_BackgroundJob::getExecutionType(); + $appMode = \OCP\BackgroundJob::getExecutionType(); if ($appMode == 'none') { if (OC::$CLI) { echo 'Background Jobs are disabled!' . PHP_EOL; @@ -107,7 +107,7 @@ try { // We call ownCloud from the CLI (aka cron) if ($appMode != 'cron') { - OC_BackgroundJob::setExecutionType('cron'); + \OCP\BackgroundJob::setExecutionType('cron'); } // open the file and try to lock if. If it is not locked, the background diff --git a/lib/base.php b/lib/base.php index f0c54640b17..7e6183520e1 100644 --- a/lib/base.php +++ b/lib/base.php @@ -718,24 +718,8 @@ class OC { private static function registerEncryptionHooks() { $enabled = self::$server->getEncryptionManager()->isEnabled(); if ($enabled) { - $user = \OC::$server->getUserSession()->getUser(); - $uid = ''; - if ($user) { - $uid = $user->getUID(); - } - $updater = new \OC\Encryption\Update( - new \OC\Files\View(), - new \OC\Encryption\Util( - new \OC\Files\View(), - \OC::$server->getUserManager(), - \OC::$server->getConfig()), - \OC\Files\Filesystem::getMountManager(), - \OC::$server->getEncryptionManager(), - \OC::$server->getEncryptionFilesHelper(), - $uid - ); - \OCP\Util::connectHook('OCP\Share', 'post_shared', $updater, 'postShared'); - \OCP\Util::connectHook('OCP\Share', 'post_unshare', $updater, 'postUnshared'); + \OCP\Util::connectHook('OCP\Share', 'post_shared', 'OC\Encryption\HookManager', 'postShared'); + \OCP\Util::connectHook('OCP\Share', 'post_unshare', 'OC\Encryption\HookManager', 'postUnshared'); } } diff --git a/lib/l10n/de.js b/lib/l10n/de.js index 73703a77e6a..3f14875c221 100644 --- a/lib/l10n/de.js +++ b/lib/l10n/de.js @@ -52,11 +52,11 @@ OC.L10N.register( "Archives of type %s are not supported" : "Archive vom Typ %s werden nicht unterstützt", "Failed to open archive when installing app" : "Das Archiv konnte bei der Installation der Applikation nicht geöffnet werden", "App does not provide an info.xml file" : "Die Applikation enthält keine info.xml Datei", - "App can't be installed because of not allowed code in the App" : "Die Applikation kann auf Grund von unerlaubtem Code nicht installiert werden", - "App can't be installed because it is not compatible with this version of ownCloud" : "Die Anwendung konnte nicht installiert werden, weil Sie nicht mit dieser Version von ownCloud kompatibel ist.", + "App can't be installed because of not allowed code in the App" : "Die App kann nicht installiert werden, weil sie unerlaubten Code enthält", + "App can't be installed because it is not compatible with this version of ownCloud" : "Die App kann nicht installiert werden, weil sie mit dieser Version von ownCloud nicht kompatibel ist", "App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" : "Die App kann nicht installiert werden, weil sie den <shipped>true</shipped>-Tag enthält, der bei Apps, die nicht zum Standardumfang von ownCloud gehören, nicht erlaubt ist", - "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Die Applikation konnte nicht installiert werden, da die Version in der info.xml nicht die gleiche Version wie im App-Store ist", - "Application is not enabled" : "Die Anwendung ist nicht aktiviert", + "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Die App kann nicht installiert werden, weil die Version in info.xml/version nicht mit der Version aus dem App Store übereinstimmt", + "Application is not enabled" : "Die App ist nicht aktiviert", "Authentication error" : "Authentifizierungsfehler", "Token expired. Please reload page." : "Token abgelaufen. Bitte lade die Seite neu.", "Unknown user" : "Unbekannter Benutzer", diff --git a/lib/l10n/de.json b/lib/l10n/de.json index a017a2edd37..366eefdd23d 100644 --- a/lib/l10n/de.json +++ b/lib/l10n/de.json @@ -50,11 +50,11 @@ "Archives of type %s are not supported" : "Archive vom Typ %s werden nicht unterstützt", "Failed to open archive when installing app" : "Das Archiv konnte bei der Installation der Applikation nicht geöffnet werden", "App does not provide an info.xml file" : "Die Applikation enthält keine info.xml Datei", - "App can't be installed because of not allowed code in the App" : "Die Applikation kann auf Grund von unerlaubtem Code nicht installiert werden", - "App can't be installed because it is not compatible with this version of ownCloud" : "Die Anwendung konnte nicht installiert werden, weil Sie nicht mit dieser Version von ownCloud kompatibel ist.", + "App can't be installed because of not allowed code in the App" : "Die App kann nicht installiert werden, weil sie unerlaubten Code enthält", + "App can't be installed because it is not compatible with this version of ownCloud" : "Die App kann nicht installiert werden, weil sie mit dieser Version von ownCloud nicht kompatibel ist", "App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" : "Die App kann nicht installiert werden, weil sie den <shipped>true</shipped>-Tag enthält, der bei Apps, die nicht zum Standardumfang von ownCloud gehören, nicht erlaubt ist", - "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Die Applikation konnte nicht installiert werden, da die Version in der info.xml nicht die gleiche Version wie im App-Store ist", - "Application is not enabled" : "Die Anwendung ist nicht aktiviert", + "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Die App kann nicht installiert werden, weil die Version in info.xml/version nicht mit der Version aus dem App Store übereinstimmt", + "Application is not enabled" : "Die App ist nicht aktiviert", "Authentication error" : "Authentifizierungsfehler", "Token expired. Please reload page." : "Token abgelaufen. Bitte lade die Seite neu.", "Unknown user" : "Unbekannter Benutzer", diff --git a/lib/l10n/de_DE.js b/lib/l10n/de_DE.js index 3e507ade3e9..b6bc89942f1 100644 --- a/lib/l10n/de_DE.js +++ b/lib/l10n/de_DE.js @@ -52,7 +52,7 @@ OC.L10N.register( "Archives of type %s are not supported" : "Archive des Typs %s werden nicht unterstützt.", "Failed to open archive when installing app" : "Das Archiv konnte bei der Installation der Applikation nicht geöffnet werden", "App does not provide an info.xml file" : "Die Applikation enthält keine info.xml Datei", - "App can't be installed because of not allowed code in the App" : "Die Applikation kann auf Grund von unerlaubten Code nicht installiert werden", + "App can't be installed because of not allowed code in the App" : "Die App kann nicht installiert werden, weil sie unerlaubten Code enthält", "App can't be installed because it is not compatible with this version of ownCloud" : "Die Anwendung konnte nicht installiert werden, weil Sie nicht mit dieser Version von ownCloud kompatibel ist.", "App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" : "Die App kann nicht installiert werden, weil sie den <shipped>true</shipped>-Tag enthält, der bei Apps, die nicht zum Standardumfang von ownCloud gehören, nicht erlaubt ist", "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Die Applikation konnte nicht installiert werden, da die Version in der info.xml nicht die gleiche Version wie im App-Store ist", diff --git a/lib/l10n/de_DE.json b/lib/l10n/de_DE.json index 17a772ec9d1..e86d3424d95 100644 --- a/lib/l10n/de_DE.json +++ b/lib/l10n/de_DE.json @@ -50,7 +50,7 @@ "Archives of type %s are not supported" : "Archive des Typs %s werden nicht unterstützt.", "Failed to open archive when installing app" : "Das Archiv konnte bei der Installation der Applikation nicht geöffnet werden", "App does not provide an info.xml file" : "Die Applikation enthält keine info.xml Datei", - "App can't be installed because of not allowed code in the App" : "Die Applikation kann auf Grund von unerlaubten Code nicht installiert werden", + "App can't be installed because of not allowed code in the App" : "Die App kann nicht installiert werden, weil sie unerlaubten Code enthält", "App can't be installed because it is not compatible with this version of ownCloud" : "Die Anwendung konnte nicht installiert werden, weil Sie nicht mit dieser Version von ownCloud kompatibel ist.", "App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" : "Die App kann nicht installiert werden, weil sie den <shipped>true</shipped>-Tag enthält, der bei Apps, die nicht zum Standardumfang von ownCloud gehören, nicht erlaubt ist", "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "Die Applikation konnte nicht installiert werden, da die Version in der info.xml nicht die gleiche Version wie im App-Store ist", diff --git a/lib/l10n/es.js b/lib/l10n/es.js index e7761bf5bc4..a457b29741f 100644 --- a/lib/l10n/es.js +++ b/lib/l10n/es.js @@ -84,6 +84,7 @@ OC.L10N.register( "Set an admin password." : "Configurar la contraseña del administrador.", "Can't create or write into the data directory %s" : "No es posible crear o escribir en el directorio de datos %s", "%s shared »%s« with you" : "%s ha compartido »%s« contigo", + "%s via %s" : "%s vía %s", "Sharing %s failed, because the backend does not allow shares from type %i" : "No se pudo compartir %s porque el repositorio no permite recursos compartidos del tipo %i", "Sharing %s failed, because the file does not exist" : "No se pudo compartir %s porque el archivo no existe", "You are not allowed to share %s" : "Usted no está autorizado para compartir %s", @@ -116,6 +117,8 @@ OC.L10N.register( "A valid password must be provided" : "Se debe proporcionar una contraseña válida", "The username is already being used" : "El nombre de usuario ya está en uso", "No database drivers (sqlite, mysql, or postgresql) installed." : "No están instalados los drivers de BBDD (sqlite, mysql, o postgresql)", + "Microsoft Windows Platform is not supported" : "Plataforma Microsoft Windows no está soportada", + "Running ownCloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself. Find Linux packages as well as easy to deploy virtual machine images on <a href=\"%s\">%s</a>. For migrating existing installations to Linux you can find some tips and a migration script in <a href=\"%s\">our documentation</a>." : "Ejecutar el servidor ownCloud en la plataforma Microsoft Windows no está soportada. Sugerimos que utilice un servidor Linux en una máquina virtual si no posee opción de migrar de servidor. Encuentre paquetes de Linux así como implementar máquinas virtuales en <a href=\"%s\">%s</a>. Para migrar instalaciones actuales hacia Linux puede encontrar algunos consejos y un script de migración en <a href=\"%s\">nuestra documentación</a>.", "Cannot write into \"config\" directory" : "No se puede escribir el el directorio de configuración", "Cannot write into \"apps\" directory" : "No se puede escribir en el directorio de \"apps\"", "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Esto puede solucionarse fácilmente %sdándole permisos de escritura al servidor en el directorio%s de apps o deshabilitando la tienda de apps en el archivo de configuración.", diff --git a/lib/l10n/es.json b/lib/l10n/es.json index 75a07ddf0ca..48dbd42d0bc 100644 --- a/lib/l10n/es.json +++ b/lib/l10n/es.json @@ -82,6 +82,7 @@ "Set an admin password." : "Configurar la contraseña del administrador.", "Can't create or write into the data directory %s" : "No es posible crear o escribir en el directorio de datos %s", "%s shared »%s« with you" : "%s ha compartido »%s« contigo", + "%s via %s" : "%s vía %s", "Sharing %s failed, because the backend does not allow shares from type %i" : "No se pudo compartir %s porque el repositorio no permite recursos compartidos del tipo %i", "Sharing %s failed, because the file does not exist" : "No se pudo compartir %s porque el archivo no existe", "You are not allowed to share %s" : "Usted no está autorizado para compartir %s", @@ -114,6 +115,8 @@ "A valid password must be provided" : "Se debe proporcionar una contraseña válida", "The username is already being used" : "El nombre de usuario ya está en uso", "No database drivers (sqlite, mysql, or postgresql) installed." : "No están instalados los drivers de BBDD (sqlite, mysql, o postgresql)", + "Microsoft Windows Platform is not supported" : "Plataforma Microsoft Windows no está soportada", + "Running ownCloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself. Find Linux packages as well as easy to deploy virtual machine images on <a href=\"%s\">%s</a>. For migrating existing installations to Linux you can find some tips and a migration script in <a href=\"%s\">our documentation</a>." : "Ejecutar el servidor ownCloud en la plataforma Microsoft Windows no está soportada. Sugerimos que utilice un servidor Linux en una máquina virtual si no posee opción de migrar de servidor. Encuentre paquetes de Linux así como implementar máquinas virtuales en <a href=\"%s\">%s</a>. Para migrar instalaciones actuales hacia Linux puede encontrar algunos consejos y un script de migración en <a href=\"%s\">nuestra documentación</a>.", "Cannot write into \"config\" directory" : "No se puede escribir el el directorio de configuración", "Cannot write into \"apps\" directory" : "No se puede escribir en el directorio de \"apps\"", "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Esto puede solucionarse fácilmente %sdándole permisos de escritura al servidor en el directorio%s de apps o deshabilitando la tienda de apps en el archivo de configuración.", diff --git a/lib/l10n/fr.js b/lib/l10n/fr.js index 5a235f06ca5..b0c5f895228 100644 --- a/lib/l10n/fr.js +++ b/lib/l10n/fr.js @@ -31,8 +31,10 @@ OC.L10N.register( "yesterday" : "hier", "_%n day ago_::_%n days ago_" : ["il y a %n jour","il y a %n jours"], "last month" : "le mois dernier", + "_%n month ago_::_%n months ago_" : ["Il y a %n mois","Il y a %n mois"], "last year" : "l'année dernière", "_%n year ago_::_%n years ago_" : ["il y a %n an","il y a %n ans"], + "_%n minute ago_::_%n minutes ago_" : ["il y a %n minute","il y a %n minutes"], "seconds ago" : "il y a quelques secondes", "web services under your control" : "services web sous votre contrôle", "Empty filename is not allowed" : "Le nom de fichier ne peut pas être vide", @@ -51,8 +53,8 @@ OC.L10N.register( "App does not provide an info.xml file" : "L'application ne fournit pas de fichier info.xml", "App can't be installed because of not allowed code in the App" : "L'application ne peut être installée car elle contient du code non-autorisé", "App can't be installed because it is not compatible with this version of ownCloud" : "L'application ne peut être installée car elle n'est pas compatible avec cette version de ownCloud", - "App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" : "L'application ne peut être installée car elle contient la balise <shipped>true</shipped> qui n'est pas autorisée pour les applications non-diffusées", - "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "L'application ne peut être installée car la version de info.xml/version n'est identique à celle indiquée sur l'app store", + "App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" : "L'application ne peut être installée car elle contient la balise <shipped>true</shipped> qui n'est pas autorisée pour les applications non incluses par défaut", + "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "L'application ne peut être installée car la version dans info.xml/version n'est pas identique à celle indiquée sur l'app store", "Application is not enabled" : "L'application n'est pas activée", "Authentication error" : "Erreur d'authentification", "Token expired. Please reload page." : "La session a expiré. Veuillez recharger la page.", @@ -60,23 +62,23 @@ OC.L10N.register( "%s enter the database username." : "%s entrez le nom d'utilisateur de la base de données.", "%s enter the database name." : "%s entrez le nom de la base de données.", "%s you may not use dots in the database name" : "%s vous ne pouvez pas utiliser de points dans le nom de la base de données", - "MS SQL username and/or password not valid: %s" : "Le nom d'utilisateur et/ou le mot de passe de la base MS SQL est invalide : %s", + "MS SQL username and/or password not valid: %s" : "Nom d'utilisateur et/ou le mot de passe MS SQL non valide : %s", "You need to enter either an existing account or the administrator." : "Vous devez spécifier le nom d'un compte existant, ou celui de l'administrateur.", - "MySQL/MariaDB username and/or password not valid" : "Nom d'utilisateur et/ou mot de passe MySQL/MariaDB invalide", + "MySQL/MariaDB username and/or password not valid" : "Nom d'utilisateur et/ou mot de passe MySQL/MariaDB non valide", "DB Error: \"%s\"" : "Erreur de la base de données : \"%s\"", "Offending command was: \"%s\"" : "La requête en cause est : \"%s\"", "MySQL/MariaDB user '%s'@'localhost' exists already." : "L'utilisateur MySQL/MariaDB '%s'@'localhost' existe déjà.", - "Drop this user from MySQL/MariaDB" : "Retirer cet utilisateur de la base MySQL/MariaDB", + "Drop this user from MySQL/MariaDB" : "Supprimez cet utilisateur de la base MySQL/MariaDB", "MySQL/MariaDB user '%s'@'%%' already exists" : "L'utilisateur MySQL/MariaDB '%s'@'%%' existe déjà", - "Drop this user from MySQL/MariaDB." : "Retirer cet utilisateur de la base MySQL/MariaDB.", + "Drop this user from MySQL/MariaDB." : "Supprimez cet utilisateur de la base MySQL/MariaDB.", "Oracle connection could not be established" : "La connexion Oracle ne peut pas être établie", "Oracle username and/or password not valid" : "Nom d'utilisateur et/ou mot de passe de la base Oracle non valide(s)", "Offending command was: \"%s\", name: %s, password: %s" : "La requête en cause est : \"%s\", nom : %s, mot de passe : %s", "PostgreSQL username and/or password not valid" : "Nom d'utilisateur et/ou mot de passe de la base PostgreSQL non valide(s)", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X n'est pas pris en charge et %s ne fonctionnera pas correctement sur cette plate-forme. Son utilisation est à vos risques et périls !", "For the best results, please consider using a GNU/Linux server instead." : "Pour obtenir les meilleurs résultats, vous devriez utiliser un serveur GNU/Linux.", - "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Il semble que cette instance %s fonctionne sur un environnement PHP 32-bits et open_basedir a été configuré dans php.ini. Cela engendre des problèmes avec les fichiers supérieurs à 4Go et cela est donc fortement déconseillé.", - "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Veuillez supprimer la configuration open_basedir de votre php.ini ou basculer sur une version PHP 64-bits.", + "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Il semble que cette instance %s fonctionne sur un environnement PHP 32-bit et open_basedir a été configuré dans php.ini. Cela engendre des problèmes avec les fichiers de taille supérieure à 4 Go et est donc fortement déconseillé.", + "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Veuillez supprimer la configuration open_basedir de votre php.ini ou utiliser une version PHP 64-bit.", "Set an admin username." : "Spécifiez un nom d'utilisateur pour l'administrateur.", "Set an admin password." : "Spécifiez un mot de passe pour l'administrateur.", "Can't create or write into the data directory %s" : "Impossible de créer ou d'écrire dans le répertoire des données %s", @@ -113,7 +115,7 @@ OC.L10N.register( "A valid username must be provided" : "Un nom d'utilisateur valide doit être saisi", "A valid password must be provided" : "Un mot de passe valide doit être saisi", "The username is already being used" : "Ce nom d'utilisateur est déjà utilisé", - "No database drivers (sqlite, mysql, or postgresql) installed." : "Aucun pilote de base de données (sqlite, mysql, ou postgresql) n’est installé.", + "No database drivers (sqlite, mysql, or postgresql) installed." : "Aucun pilote de base de données n’est installé (sqlite, mysql ou postgresql).", "Microsoft Windows Platform is not supported" : "La plate-forme Microsoft Windows n'est pas prise en charge.", "Running ownCloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself. Find Linux packages as well as easy to deploy virtual machine images on <a href=\"%s\">%s</a>. For migrating existing installations to Linux you can find some tips and a migration script in <a href=\"%s\">our documentation</a>." : "Executer un serveur ownCloud sur une plate-forme Microsoft Windows n'est pas pris en charge. Nous vous suggérons d'utiliser un serveur Linux sur une machine virtuelle si vous n'avez pas la possibilité de migrer votre serveur. Les paquets Linux ainsi que des images virtuelles faciles à déployer se trouvent sur <a href=\"%s\">%s</a>. Pour migrer des installations existantes vers Linux, vous trouverez des conseils et des scripts de migration dans <a href=\"%s\">notre documentation</a>.", "Cannot write into \"config\" directory" : "Impossible d’écrire dans le répertoire \"config\"", @@ -122,7 +124,7 @@ OC.L10N.register( "Cannot create \"data\" directory (%s)" : "Impossible de créer le répertoire \"data\" (%s)", "This can usually be fixed by <a href=\"%s\" target=\"_blank\">giving the webserver write access to the root directory</a>." : "Ce problème est généralement résolu <a href=\"%s\" target=\"_blank\">en donnant au serveur web un accès en écriture au répertoire racine</a>.", "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Le problème de permissions peut généralement être résolu %sen donnant au serveur web un accès en écriture au répertoire racine%s", - "Setting locale to %s failed" : "Le choix de la langue pour %s a échoué", + "Setting locale to %s failed" : "La spécification des paramètres régionaux à %s a échoué", "Please install one of these locales on your system and restart your webserver." : "Veuillez installer l'un de ces paramètres régionaux sur votre système et redémarrer votre serveur web.", "Please ask your server administrator to install the module." : "Veuillez demander à votre administrateur d’installer le module.", "PHP module %s not installed." : "Le module PHP %s n’est pas installé.", diff --git a/lib/l10n/fr.json b/lib/l10n/fr.json index f348592850a..b7759a26862 100644 --- a/lib/l10n/fr.json +++ b/lib/l10n/fr.json @@ -29,8 +29,10 @@ "yesterday" : "hier", "_%n day ago_::_%n days ago_" : ["il y a %n jour","il y a %n jours"], "last month" : "le mois dernier", + "_%n month ago_::_%n months ago_" : ["Il y a %n mois","Il y a %n mois"], "last year" : "l'année dernière", "_%n year ago_::_%n years ago_" : ["il y a %n an","il y a %n ans"], + "_%n minute ago_::_%n minutes ago_" : ["il y a %n minute","il y a %n minutes"], "seconds ago" : "il y a quelques secondes", "web services under your control" : "services web sous votre contrôle", "Empty filename is not allowed" : "Le nom de fichier ne peut pas être vide", @@ -49,8 +51,8 @@ "App does not provide an info.xml file" : "L'application ne fournit pas de fichier info.xml", "App can't be installed because of not allowed code in the App" : "L'application ne peut être installée car elle contient du code non-autorisé", "App can't be installed because it is not compatible with this version of ownCloud" : "L'application ne peut être installée car elle n'est pas compatible avec cette version de ownCloud", - "App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" : "L'application ne peut être installée car elle contient la balise <shipped>true</shipped> qui n'est pas autorisée pour les applications non-diffusées", - "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "L'application ne peut être installée car la version de info.xml/version n'est identique à celle indiquée sur l'app store", + "App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" : "L'application ne peut être installée car elle contient la balise <shipped>true</shipped> qui n'est pas autorisée pour les applications non incluses par défaut", + "App can't be installed because the version in info.xml/version is not the same as the version reported from the app store" : "L'application ne peut être installée car la version dans info.xml/version n'est pas identique à celle indiquée sur l'app store", "Application is not enabled" : "L'application n'est pas activée", "Authentication error" : "Erreur d'authentification", "Token expired. Please reload page." : "La session a expiré. Veuillez recharger la page.", @@ -58,23 +60,23 @@ "%s enter the database username." : "%s entrez le nom d'utilisateur de la base de données.", "%s enter the database name." : "%s entrez le nom de la base de données.", "%s you may not use dots in the database name" : "%s vous ne pouvez pas utiliser de points dans le nom de la base de données", - "MS SQL username and/or password not valid: %s" : "Le nom d'utilisateur et/ou le mot de passe de la base MS SQL est invalide : %s", + "MS SQL username and/or password not valid: %s" : "Nom d'utilisateur et/ou le mot de passe MS SQL non valide : %s", "You need to enter either an existing account or the administrator." : "Vous devez spécifier le nom d'un compte existant, ou celui de l'administrateur.", - "MySQL/MariaDB username and/or password not valid" : "Nom d'utilisateur et/ou mot de passe MySQL/MariaDB invalide", + "MySQL/MariaDB username and/or password not valid" : "Nom d'utilisateur et/ou mot de passe MySQL/MariaDB non valide", "DB Error: \"%s\"" : "Erreur de la base de données : \"%s\"", "Offending command was: \"%s\"" : "La requête en cause est : \"%s\"", "MySQL/MariaDB user '%s'@'localhost' exists already." : "L'utilisateur MySQL/MariaDB '%s'@'localhost' existe déjà.", - "Drop this user from MySQL/MariaDB" : "Retirer cet utilisateur de la base MySQL/MariaDB", + "Drop this user from MySQL/MariaDB" : "Supprimez cet utilisateur de la base MySQL/MariaDB", "MySQL/MariaDB user '%s'@'%%' already exists" : "L'utilisateur MySQL/MariaDB '%s'@'%%' existe déjà", - "Drop this user from MySQL/MariaDB." : "Retirer cet utilisateur de la base MySQL/MariaDB.", + "Drop this user from MySQL/MariaDB." : "Supprimez cet utilisateur de la base MySQL/MariaDB.", "Oracle connection could not be established" : "La connexion Oracle ne peut pas être établie", "Oracle username and/or password not valid" : "Nom d'utilisateur et/ou mot de passe de la base Oracle non valide(s)", "Offending command was: \"%s\", name: %s, password: %s" : "La requête en cause est : \"%s\", nom : %s, mot de passe : %s", "PostgreSQL username and/or password not valid" : "Nom d'utilisateur et/ou mot de passe de la base PostgreSQL non valide(s)", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X n'est pas pris en charge et %s ne fonctionnera pas correctement sur cette plate-forme. Son utilisation est à vos risques et périls !", "For the best results, please consider using a GNU/Linux server instead." : "Pour obtenir les meilleurs résultats, vous devriez utiliser un serveur GNU/Linux.", - "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Il semble que cette instance %s fonctionne sur un environnement PHP 32-bits et open_basedir a été configuré dans php.ini. Cela engendre des problèmes avec les fichiers supérieurs à 4Go et cela est donc fortement déconseillé.", - "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Veuillez supprimer la configuration open_basedir de votre php.ini ou basculer sur une version PHP 64-bits.", + "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Il semble que cette instance %s fonctionne sur un environnement PHP 32-bit et open_basedir a été configuré dans php.ini. Cela engendre des problèmes avec les fichiers de taille supérieure à 4 Go et est donc fortement déconseillé.", + "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Veuillez supprimer la configuration open_basedir de votre php.ini ou utiliser une version PHP 64-bit.", "Set an admin username." : "Spécifiez un nom d'utilisateur pour l'administrateur.", "Set an admin password." : "Spécifiez un mot de passe pour l'administrateur.", "Can't create or write into the data directory %s" : "Impossible de créer ou d'écrire dans le répertoire des données %s", @@ -111,7 +113,7 @@ "A valid username must be provided" : "Un nom d'utilisateur valide doit être saisi", "A valid password must be provided" : "Un mot de passe valide doit être saisi", "The username is already being used" : "Ce nom d'utilisateur est déjà utilisé", - "No database drivers (sqlite, mysql, or postgresql) installed." : "Aucun pilote de base de données (sqlite, mysql, ou postgresql) n’est installé.", + "No database drivers (sqlite, mysql, or postgresql) installed." : "Aucun pilote de base de données n’est installé (sqlite, mysql ou postgresql).", "Microsoft Windows Platform is not supported" : "La plate-forme Microsoft Windows n'est pas prise en charge.", "Running ownCloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself. Find Linux packages as well as easy to deploy virtual machine images on <a href=\"%s\">%s</a>. For migrating existing installations to Linux you can find some tips and a migration script in <a href=\"%s\">our documentation</a>." : "Executer un serveur ownCloud sur une plate-forme Microsoft Windows n'est pas pris en charge. Nous vous suggérons d'utiliser un serveur Linux sur une machine virtuelle si vous n'avez pas la possibilité de migrer votre serveur. Les paquets Linux ainsi que des images virtuelles faciles à déployer se trouvent sur <a href=\"%s\">%s</a>. Pour migrer des installations existantes vers Linux, vous trouverez des conseils et des scripts de migration dans <a href=\"%s\">notre documentation</a>.", "Cannot write into \"config\" directory" : "Impossible d’écrire dans le répertoire \"config\"", @@ -120,7 +122,7 @@ "Cannot create \"data\" directory (%s)" : "Impossible de créer le répertoire \"data\" (%s)", "This can usually be fixed by <a href=\"%s\" target=\"_blank\">giving the webserver write access to the root directory</a>." : "Ce problème est généralement résolu <a href=\"%s\" target=\"_blank\">en donnant au serveur web un accès en écriture au répertoire racine</a>.", "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Le problème de permissions peut généralement être résolu %sen donnant au serveur web un accès en écriture au répertoire racine%s", - "Setting locale to %s failed" : "Le choix de la langue pour %s a échoué", + "Setting locale to %s failed" : "La spécification des paramètres régionaux à %s a échoué", "Please install one of these locales on your system and restart your webserver." : "Veuillez installer l'un de ces paramètres régionaux sur votre système et redémarrer votre serveur web.", "Please ask your server administrator to install the module." : "Veuillez demander à votre administrateur d’installer le module.", "PHP module %s not installed." : "Le module PHP %s n’est pas installé.", diff --git a/lib/l10n/it.js b/lib/l10n/it.js index 7075997b18b..d60b0a4622c 100644 --- a/lib/l10n/it.js +++ b/lib/l10n/it.js @@ -84,6 +84,7 @@ OC.L10N.register( "Set an admin password." : "Imposta una password di amministrazione.", "Can't create or write into the data directory %s" : "Impossibile creare o scrivere nella cartella dei dati %s", "%s shared »%s« with you" : "%s ha condiviso «%s» con te", + "%s via %s" : "%s tramite %s", "Sharing %s failed, because the backend does not allow shares from type %i" : "Condivisione di %s non riuscita, poiché il motore non consente condivisioni del tipo %i", "Sharing %s failed, because the file does not exist" : "Condivisione di %s non riuscita, poiché il file non esiste", "You are not allowed to share %s" : "Non ti è consentito condividere %s", diff --git a/lib/l10n/it.json b/lib/l10n/it.json index 4124a5bf3c8..83065091c8b 100644 --- a/lib/l10n/it.json +++ b/lib/l10n/it.json @@ -82,6 +82,7 @@ "Set an admin password." : "Imposta una password di amministrazione.", "Can't create or write into the data directory %s" : "Impossibile creare o scrivere nella cartella dei dati %s", "%s shared »%s« with you" : "%s ha condiviso «%s» con te", + "%s via %s" : "%s tramite %s", "Sharing %s failed, because the backend does not allow shares from type %i" : "Condivisione di %s non riuscita, poiché il motore non consente condivisioni del tipo %i", "Sharing %s failed, because the file does not exist" : "Condivisione di %s non riuscita, poiché il file non esiste", "You are not allowed to share %s" : "Non ti è consentito condividere %s", diff --git a/lib/l10n/ja.js b/lib/l10n/ja.js index e1121b6344b..f28db0d7204 100644 --- a/lib/l10n/ja.js +++ b/lib/l10n/ja.js @@ -84,6 +84,7 @@ OC.L10N.register( "Set an admin password." : "管理者のパスワードを設定。", "Can't create or write into the data directory %s" : "%s データディレクトリに作成、書き込みができません", "%s shared »%s« with you" : "%sが あなたと »%s«を共有しました", + "%s via %s" : "%s に %s から", "Sharing %s failed, because the backend does not allow shares from type %i" : "%s の共有に失敗しました。%i タイプからの共有は許可されていないからです。", "Sharing %s failed, because the file does not exist" : "%s の共有に失敗しました。そのようなファイルは存在しないからです。", "You are not allowed to share %s" : "%s を共有することを許可されていません。", @@ -116,6 +117,8 @@ OC.L10N.register( "A valid password must be provided" : "有効なパスワードを指定する必要があります", "The username is already being used" : "ユーザー名はすでに使われています", "No database drivers (sqlite, mysql, or postgresql) installed." : "データベースドライバー (sqlite, mysql, postgresql) がインストールされていません。", + "Microsoft Windows Platform is not supported" : "Microsoft Windows サーバーはサポートしていません。", + "Running ownCloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself. Find Linux packages as well as easy to deploy virtual machine images on <a href=\"%s\">%s</a>. For migrating existing installations to Linux you can find some tips and a migration script in <a href=\"%s\">our documentation</a>." : "Microsoft Windowsサーバー上での ownCloud の動作は、サポートされていません。現在のサーバーOSを変更することができないのであれば、仮想マシン上で Linuxサーバーを動かすことをお勧めします。仮想マシンイメージを配置するのと同じぐらい簡単にLinuxパッケージを<a href=\"%s\">%s</a>で見つけられます。現在稼働中の設定をLinuxに移行する 移行スクリプトと注意点をこちらの<a href=\"%s\">ドキュメント</a>で確認してください。", "Cannot write into \"config\" directory" : "\"config\" ディレクトリに書き込みができません", "Cannot write into \"apps\" directory" : "\"apps\" ディレクトリに書き込みができません", "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "多くの場合、これは %s Webサーバーにappsディレクトリ %s への書き込み権限を与えるか、設定ファイルでアプリストアを無効化することで解決できます。", @@ -141,6 +144,8 @@ OC.L10N.register( "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "PostgreSQL >= 9 がインストールされているかどうか確認してください。もしくは、ログからエラーに関する詳細な情報を確認してください。", "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "ディレクトリが他のユーザーから見えないように、パーミッションを 0770 に変更してください。", "Data directory (%s) is readable by other users" : "データディレクトリ (%s) は他のユーザーも閲覧することができます", + "Data directory (%s) must be an absolute path" : "データディレクトリ (%s) は、絶対パスである必要があります。", + "Check the value of \"datadirectory\" in your configuration" : "設定ファイル内の \"datadirectory\" の値を確認してください。", "Data directory (%s) is invalid" : "データディレクトリ (%s) は無効です", "Please check that the data directory contains a file \".ocdata\" in its root." : "データディレクトリに \".ocdata\" ファイルが含まれていることを確認してください。", "Could not obtain lock type %d on \"%s\"." : "\"%s\" で %d タイプのロックを取得できませんでした。" diff --git a/lib/l10n/ja.json b/lib/l10n/ja.json index 25bbc7b72fa..d096d48e3c2 100644 --- a/lib/l10n/ja.json +++ b/lib/l10n/ja.json @@ -82,6 +82,7 @@ "Set an admin password." : "管理者のパスワードを設定。", "Can't create or write into the data directory %s" : "%s データディレクトリに作成、書き込みができません", "%s shared »%s« with you" : "%sが あなたと »%s«を共有しました", + "%s via %s" : "%s に %s から", "Sharing %s failed, because the backend does not allow shares from type %i" : "%s の共有に失敗しました。%i タイプからの共有は許可されていないからです。", "Sharing %s failed, because the file does not exist" : "%s の共有に失敗しました。そのようなファイルは存在しないからです。", "You are not allowed to share %s" : "%s を共有することを許可されていません。", @@ -114,6 +115,8 @@ "A valid password must be provided" : "有効なパスワードを指定する必要があります", "The username is already being used" : "ユーザー名はすでに使われています", "No database drivers (sqlite, mysql, or postgresql) installed." : "データベースドライバー (sqlite, mysql, postgresql) がインストールされていません。", + "Microsoft Windows Platform is not supported" : "Microsoft Windows サーバーはサポートしていません。", + "Running ownCloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself. Find Linux packages as well as easy to deploy virtual machine images on <a href=\"%s\">%s</a>. For migrating existing installations to Linux you can find some tips and a migration script in <a href=\"%s\">our documentation</a>." : "Microsoft Windowsサーバー上での ownCloud の動作は、サポートされていません。現在のサーバーOSを変更することができないのであれば、仮想マシン上で Linuxサーバーを動かすことをお勧めします。仮想マシンイメージを配置するのと同じぐらい簡単にLinuxパッケージを<a href=\"%s\">%s</a>で見つけられます。現在稼働中の設定をLinuxに移行する 移行スクリプトと注意点をこちらの<a href=\"%s\">ドキュメント</a>で確認してください。", "Cannot write into \"config\" directory" : "\"config\" ディレクトリに書き込みができません", "Cannot write into \"apps\" directory" : "\"apps\" ディレクトリに書き込みができません", "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "多くの場合、これは %s Webサーバーにappsディレクトリ %s への書き込み権限を与えるか、設定ファイルでアプリストアを無効化することで解決できます。", @@ -139,6 +142,8 @@ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "PostgreSQL >= 9 がインストールされているかどうか確認してください。もしくは、ログからエラーに関する詳細な情報を確認してください。", "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "ディレクトリが他のユーザーから見えないように、パーミッションを 0770 に変更してください。", "Data directory (%s) is readable by other users" : "データディレクトリ (%s) は他のユーザーも閲覧することができます", + "Data directory (%s) must be an absolute path" : "データディレクトリ (%s) は、絶対パスである必要があります。", + "Check the value of \"datadirectory\" in your configuration" : "設定ファイル内の \"datadirectory\" の値を確認してください。", "Data directory (%s) is invalid" : "データディレクトリ (%s) は無効です", "Please check that the data directory contains a file \".ocdata\" in its root." : "データディレクトリに \".ocdata\" ファイルが含まれていることを確認してください。", "Could not obtain lock type %d on \"%s\"." : "\"%s\" で %d タイプのロックを取得できませんでした。" diff --git a/lib/l10n/ro.js b/lib/l10n/ro.js index db35a95e88d..7b417ab5628 100644 --- a/lib/l10n/ro.js +++ b/lib/l10n/ro.js @@ -2,8 +2,13 @@ OC.L10N.register( "lib", { "Cannot write into \"config\" directory!" : "Nu se poate scrie în folderul \"config\"!", + "This can usually be fixed by giving the webserver write access to the config directory" : "Aceasta se poate repara de obicei prin permiterea accesului de scriere la dosarul de configurarea a webserverului", "See %s" : "Vezi %s", "PHP %s or higher is required." : "Versiunea PHP %s sau mai mare este necesară.", + "PHP with a version lower than %s is required." : "Este necesară o versiune PHP mai mică decât %s", + "Following platforms are supported: %s" : "Sunt suportate următoarele platforme: %s", + "ownCloud %s or higher is required." : "ownCloud %s sau mai mare este necesar.", + "ownCloud with a version lower than %s is required." : "ownCloud cu o versiune mai mică decât %s este necesară.", "Help" : "Ajutor", "Personal" : "Personal", "Users" : "Utilizatori", @@ -17,8 +22,11 @@ OC.L10N.register( "last month" : "ultima lună", "_%n month ago_::_%n months ago_" : ["%n lună în urmă","%n luni în urmă","%n luni în urmă"], "last year" : "ultimul an", + "_%n year ago_::_%n years ago_" : ["%n an în urmă","%n ani în urmâ","%n ani în urmâ"], "seconds ago" : "secunde în urmă", "web services under your control" : "servicii web controlate de tine", + "Empty filename is not allowed" : "Nu este permis fișier fără nume", + "File name is too long" : "Numele fișierului este prea lung", "Application is not enabled" : "Aplicația nu este activată", "Authentication error" : "Eroare la autentificare", "Token expired. Please reload page." : "Token expirat. Te rugăm să reîncarci pagina.", diff --git a/lib/l10n/ro.json b/lib/l10n/ro.json index b610fd6ed68..47ea0d5fbbd 100644 --- a/lib/l10n/ro.json +++ b/lib/l10n/ro.json @@ -1,7 +1,12 @@ { "translations": { "Cannot write into \"config\" directory!" : "Nu se poate scrie în folderul \"config\"!", + "This can usually be fixed by giving the webserver write access to the config directory" : "Aceasta se poate repara de obicei prin permiterea accesului de scriere la dosarul de configurarea a webserverului", "See %s" : "Vezi %s", "PHP %s or higher is required." : "Versiunea PHP %s sau mai mare este necesară.", + "PHP with a version lower than %s is required." : "Este necesară o versiune PHP mai mică decât %s", + "Following platforms are supported: %s" : "Sunt suportate următoarele platforme: %s", + "ownCloud %s or higher is required." : "ownCloud %s sau mai mare este necesar.", + "ownCloud with a version lower than %s is required." : "ownCloud cu o versiune mai mică decât %s este necesară.", "Help" : "Ajutor", "Personal" : "Personal", "Users" : "Utilizatori", @@ -15,8 +20,11 @@ "last month" : "ultima lună", "_%n month ago_::_%n months ago_" : ["%n lună în urmă","%n luni în urmă","%n luni în urmă"], "last year" : "ultimul an", + "_%n year ago_::_%n years ago_" : ["%n an în urmă","%n ani în urmâ","%n ani în urmâ"], "seconds ago" : "secunde în urmă", "web services under your control" : "servicii web controlate de tine", + "Empty filename is not allowed" : "Nu este permis fișier fără nume", + "File name is too long" : "Numele fișierului este prea lung", "Application is not enabled" : "Aplicația nu este activată", "Authentication error" : "Eroare la autentificare", "Token expired. Please reload page." : "Token expirat. Te rugăm să reîncarci pagina.", diff --git a/lib/l10n/ru.js b/lib/l10n/ru.js index fa026c27741..9d6ed3b301c 100644 --- a/lib/l10n/ru.js +++ b/lib/l10n/ru.js @@ -84,6 +84,7 @@ OC.L10N.register( "Set an admin password." : "Задать пароль для admin.", "Can't create or write into the data directory %s" : "Невозможно создать или записать в каталог данных %s", "%s shared »%s« with you" : "%s поделился »%s« с вами", + "%s via %s" : "%s через %s", "Sharing %s failed, because the backend does not allow shares from type %i" : "Не удалось поделиться %s, общий доступ не допускает публикации из элементов типа %i", "Sharing %s failed, because the file does not exist" : "Не удалось поделиться %s, файл не существует", "You are not allowed to share %s" : "Вам запрещено делиться %s", diff --git a/lib/l10n/ru.json b/lib/l10n/ru.json index 9b63890c826..c3e1dbae4de 100644 --- a/lib/l10n/ru.json +++ b/lib/l10n/ru.json @@ -82,6 +82,7 @@ "Set an admin password." : "Задать пароль для admin.", "Can't create or write into the data directory %s" : "Невозможно создать или записать в каталог данных %s", "%s shared »%s« with you" : "%s поделился »%s« с вами", + "%s via %s" : "%s через %s", "Sharing %s failed, because the backend does not allow shares from type %i" : "Не удалось поделиться %s, общий доступ не допускает публикации из элементов типа %i", "Sharing %s failed, because the file does not exist" : "Не удалось поделиться %s, файл не существует", "You are not allowed to share %s" : "Вам запрещено делиться %s", diff --git a/lib/l10n/sr.js b/lib/l10n/sr.js index e88b2ef6840..aa9738b2d4b 100644 --- a/lib/l10n/sr.js +++ b/lib/l10n/sr.js @@ -84,6 +84,7 @@ OC.L10N.register( "Set an admin password." : "Поставите лозинку за администратора.", "Can't create or write into the data directory %s" : "Не могу креирати или уписивати у директоријум података %s", "%s shared »%s« with you" : "%s подели „%s“ са вама", + "%s via %s" : "%s путем %s", "Sharing %s failed, because the backend does not allow shares from type %i" : "Дељење %s није успело зато што поздина не дозвољава дељење од типа %i", "Sharing %s failed, because the file does not exist" : "Дељење %s није успело зато што датотека не постоји", "You are not allowed to share %s" : "Није вам дозвољено да делите %s", @@ -117,6 +118,7 @@ OC.L10N.register( "The username is already being used" : "Корисничко име се већ користи", "No database drivers (sqlite, mysql, or postgresql) installed." : "Нема драјвера базе података (скулајт, мајскул или постгрескул).", "Microsoft Windows Platform is not supported" : "Мајкрософт Виндоуз платформа није подржана", + "Running ownCloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself. Find Linux packages as well as easy to deploy virtual machine images on <a href=\"%s\">%s</a>. For migrating existing installations to Linux you can find some tips and a migration script in <a href=\"%s\">our documentation</a>." : "Покретање оунКлауд сервера на Мајкрософт Виндоуз платформи није подржано. Препоручујемо да користите Линукс сервер у виртуалној машини ако немате могућност пресељења самог сервера. Налажење Линукс пакета је лако, само распакујте пакете са <a href=\"%s\">%s</a>. За пресељење постојеће инсталације на Линукс, савете и скрипте можете наћи у <a href=\"%s\">нашој документацији</a>.", "Cannot write into \"config\" directory" : "Не могу уписивати у директоријуму \"config\"", "Cannot write into \"apps\" directory" : "Не могу уписивати у директоријуму \"apps\"", "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Ово се обично може поправити %sgдавањем права уписа веб серверу директоријум%s апликација или искуључивањем продавнице апликација у датотеци config file.", diff --git a/lib/l10n/sr.json b/lib/l10n/sr.json index e1b13fdce85..53308a72b6d 100644 --- a/lib/l10n/sr.json +++ b/lib/l10n/sr.json @@ -82,6 +82,7 @@ "Set an admin password." : "Поставите лозинку за администратора.", "Can't create or write into the data directory %s" : "Не могу креирати или уписивати у директоријум података %s", "%s shared »%s« with you" : "%s подели „%s“ са вама", + "%s via %s" : "%s путем %s", "Sharing %s failed, because the backend does not allow shares from type %i" : "Дељење %s није успело зато што поздина не дозвољава дељење од типа %i", "Sharing %s failed, because the file does not exist" : "Дељење %s није успело зато што датотека не постоји", "You are not allowed to share %s" : "Није вам дозвољено да делите %s", @@ -115,6 +116,7 @@ "The username is already being used" : "Корисничко име се већ користи", "No database drivers (sqlite, mysql, or postgresql) installed." : "Нема драјвера базе података (скулајт, мајскул или постгрескул).", "Microsoft Windows Platform is not supported" : "Мајкрософт Виндоуз платформа није подржана", + "Running ownCloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself. Find Linux packages as well as easy to deploy virtual machine images on <a href=\"%s\">%s</a>. For migrating existing installations to Linux you can find some tips and a migration script in <a href=\"%s\">our documentation</a>." : "Покретање оунКлауд сервера на Мајкрософт Виндоуз платформи није подржано. Препоручујемо да користите Линукс сервер у виртуалној машини ако немате могућност пресељења самог сервера. Налажење Линукс пакета је лако, само распакујте пакете са <a href=\"%s\">%s</a>. За пресељење постојеће инсталације на Линукс, савете и скрипте можете наћи у <a href=\"%s\">нашој документацији</a>.", "Cannot write into \"config\" directory" : "Не могу уписивати у директоријуму \"config\"", "Cannot write into \"apps\" directory" : "Не могу уписивати у директоријуму \"apps\"", "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Ово се обично може поправити %sgдавањем права уписа веб серверу директоријум%s апликација или искуључивањем продавнице апликација у датотеци config file.", diff --git a/lib/l10n/uk.js b/lib/l10n/uk.js index ce47b7538a5..44964a0514b 100644 --- a/lib/l10n/uk.js +++ b/lib/l10n/uk.js @@ -81,6 +81,7 @@ OC.L10N.register( "Set an admin password." : "Встановіть пароль адміністратора.", "Can't create or write into the data directory %s" : "Неможливо створити або записати каталог даних %s", "%s shared »%s« with you" : "%s розподілено »%s« з тобою", + "%s via %s" : "%s за допомогою %s", "Sharing %s failed, because the backend does not allow shares from type %i" : "Не вдалося поділитися %s, загальний доступ не допускає публікації з елементів типу %i", "Sharing %s failed, because the file does not exist" : "Не вдалося поділитися %s, оскільки файл не існує", "You are not allowed to share %s" : "Вам заборонено поширювати %s", @@ -113,6 +114,8 @@ OC.L10N.register( "A valid password must be provided" : "Потрібно задати вірний пароль", "The username is already being used" : "Ім'я користувача вже використовується", "No database drivers (sqlite, mysql, or postgresql) installed." : "Не встановлено драйвер бази даних (sqlite, mysql, or postgresql).", + "Microsoft Windows Platform is not supported" : "Платформа Microsoft Windows не підтримується", + "Running ownCloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself. Find Linux packages as well as easy to deploy virtual machine images on <a href=\"%s\">%s</a>. For migrating existing installations to Linux you can find some tips and a migration script in <a href=\"%s\">our documentation</a>." : "Запуск сервера ownCloud на платформі Microsoft Windows не підтримується. Ми пропонуємо використати сервер на базі Linux у віртуальній машині, якщо у вас немає можливості мігрувати увесь сервер. Знайдіть пакунки для Linux, а також прості у впровадженні образи віртуальних машин на <a href=\"%s\">%s</a>. При міграції існуючих встановлень на Linux ви можете використати деякі поради та скрипт міграції з <a href=\"%s\">нашій документації</a>.", "Cannot write into \"config\" directory" : "Не можу писати у теку \"config\"", "Cannot write into \"apps\" directory" : "Не можу писати у теку \"apps\"", "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Зазвичай це можна виправити, %s надавши веб-серверу права на запис в каталог додатків %s або відключивши сховище програм у файлі конфігурації.", @@ -138,6 +141,8 @@ OC.L10N.register( "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Переконайтеся що версія PostgreSQL> = 9 або перевірте журнали для отримання додаткової інформацією про помилку", "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Змініть права доступу на 0770, щоб інші користувачі не могли отримати список файлів цього каталогу.", "Data directory (%s) is readable by other users" : "Каталог даних (%s) доступний для читання іншим користувачам", + "Data directory (%s) must be an absolute path" : "Тека з даними (%s) має бути задана абсолютним шляхом", + "Check the value of \"datadirectory\" in your configuration" : "Перевірте значення \"datadirectory\" у своїй конфігурації", "Data directory (%s) is invalid" : "Каталог даних (%s) невірний", "Please check that the data directory contains a file \".ocdata\" in its root." : "Переконайтеся, що файл \".ocdata\" присутній у корені каталогу даних.", "Could not obtain lock type %d on \"%s\"." : "Не вдалося отримати блокування типу %d для \"%s\"" diff --git a/lib/l10n/uk.json b/lib/l10n/uk.json index d4c371e0ea6..a3ddeb3656a 100644 --- a/lib/l10n/uk.json +++ b/lib/l10n/uk.json @@ -79,6 +79,7 @@ "Set an admin password." : "Встановіть пароль адміністратора.", "Can't create or write into the data directory %s" : "Неможливо створити або записати каталог даних %s", "%s shared »%s« with you" : "%s розподілено »%s« з тобою", + "%s via %s" : "%s за допомогою %s", "Sharing %s failed, because the backend does not allow shares from type %i" : "Не вдалося поділитися %s, загальний доступ не допускає публікації з елементів типу %i", "Sharing %s failed, because the file does not exist" : "Не вдалося поділитися %s, оскільки файл не існує", "You are not allowed to share %s" : "Вам заборонено поширювати %s", @@ -111,6 +112,8 @@ "A valid password must be provided" : "Потрібно задати вірний пароль", "The username is already being used" : "Ім'я користувача вже використовується", "No database drivers (sqlite, mysql, or postgresql) installed." : "Не встановлено драйвер бази даних (sqlite, mysql, or postgresql).", + "Microsoft Windows Platform is not supported" : "Платформа Microsoft Windows не підтримується", + "Running ownCloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself. Find Linux packages as well as easy to deploy virtual machine images on <a href=\"%s\">%s</a>. For migrating existing installations to Linux you can find some tips and a migration script in <a href=\"%s\">our documentation</a>." : "Запуск сервера ownCloud на платформі Microsoft Windows не підтримується. Ми пропонуємо використати сервер на базі Linux у віртуальній машині, якщо у вас немає можливості мігрувати увесь сервер. Знайдіть пакунки для Linux, а також прості у впровадженні образи віртуальних машин на <a href=\"%s\">%s</a>. При міграції існуючих встановлень на Linux ви можете використати деякі поради та скрипт міграції з <a href=\"%s\">нашій документації</a>.", "Cannot write into \"config\" directory" : "Не можу писати у теку \"config\"", "Cannot write into \"apps\" directory" : "Не можу писати у теку \"apps\"", "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Зазвичай це можна виправити, %s надавши веб-серверу права на запис в каталог додатків %s або відключивши сховище програм у файлі конфігурації.", @@ -136,6 +139,8 @@ "Please make sure you have PostgreSQL >= 9 or check the logs for more information about the error" : "Переконайтеся що версія PostgreSQL> = 9 або перевірте журнали для отримання додаткової інформацією про помилку", "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Змініть права доступу на 0770, щоб інші користувачі не могли отримати список файлів цього каталогу.", "Data directory (%s) is readable by other users" : "Каталог даних (%s) доступний для читання іншим користувачам", + "Data directory (%s) must be an absolute path" : "Тека з даними (%s) має бути задана абсолютним шляхом", + "Check the value of \"datadirectory\" in your configuration" : "Перевірте значення \"datadirectory\" у своїй конфігурації", "Data directory (%s) is invalid" : "Каталог даних (%s) невірний", "Please check that the data directory contains a file \".ocdata\" in its root." : "Переконайтеся, що файл \".ocdata\" присутній у корені каталогу даних.", "Could not obtain lock type %d on \"%s\"." : "Не вдалося отримати блокування типу %d для \"%s\"" diff --git a/lib/private/api.php b/lib/private/api.php index 119cdb7d1a3..dd50162f03e 100644 --- a/lib/private/api.php +++ b/lib/private/api.php @@ -34,17 +34,33 @@ class OC_API { /** * API authentication levels */ + + /** @deprecated Use \OCP\API::GUEST_AUTH instead */ const GUEST_AUTH = 0; + + /** @deprecated Use \OCP\API::USER_AUTH instead */ const USER_AUTH = 1; + + /** @deprecated Use \OCP\API::SUBADMIN_AUTH instead */ const SUBADMIN_AUTH = 2; + + /** @deprecated Use \OCP\API::ADMIN_AUTH instead */ const ADMIN_AUTH = 3; /** * API Response Codes */ + + /** @deprecated Use \OCP\API::RESPOND_UNAUTHORISED instead */ const RESPOND_UNAUTHORISED = 997; + + /** @deprecated Use \OCP\API::RESPOND_SERVER_ERROR instead */ const RESPOND_SERVER_ERROR = 996; + + /** @deprecated Use \OCP\API::RESPOND_NOT_FOUND instead */ const RESPOND_NOT_FOUND = 998; + + /** @deprecated Use \OCP\API::RESPOND_UNKNOWN_ERROR instead */ const RESPOND_UNKNOWN_ERROR = 999; /** @@ -65,7 +81,7 @@ class OC_API { * @param array $requirements */ public static function register($method, $url, $action, $app, - $authLevel = OC_API::USER_AUTH, + $authLevel = \OCP\API::USER_AUTH, $defaults = array(), $requirements = array()) { $name = strtolower($method).$url; @@ -106,7 +122,7 @@ class OC_API { if(!self::isAuthorised($action)) { $responses[] = array( 'app' => $action['app'], - 'response' => new OC_OCS_Result(null, OC_API::RESPOND_UNAUTHORISED, 'Unauthorised'), + 'response' => new OC_OCS_Result(null, \OCP\API::RESPOND_UNAUTHORISED, 'Unauthorised'), 'shipped' => OC_App::isShipped($action['app']), ); continue; @@ -114,7 +130,7 @@ class OC_API { if(!is_callable($action['action'])) { $responses[] = array( 'app' => $action['app'], - 'response' => new OC_OCS_Result(null, OC_API::RESPOND_NOT_FOUND, 'Api method not found'), + 'response' => new OC_OCS_Result(null, \OCP\API::RESPOND_NOT_FOUND, 'Api method not found'), 'shipped' => OC_App::isShipped($action['app']), ); continue; @@ -172,7 +188,7 @@ class OC_API { // Which shipped response do we use if they all failed? // They may have failed for different reasons (different status codes) // Which response code should we return? - // Maybe any that are not OC_API::RESPOND_SERVER_ERROR + // Maybe any that are not \OCP\API::RESPOND_SERVER_ERROR // Merge failed responses if more than one $data = array(); foreach($shipped['failed'] as $failure) { @@ -235,15 +251,15 @@ class OC_API { private static function isAuthorised($action) { $level = $action['authlevel']; switch($level) { - case OC_API::GUEST_AUTH: + case \OCP\API::GUEST_AUTH: // Anyone can access return true; break; - case OC_API::USER_AUTH: + case \OCP\API::USER_AUTH: // User required return self::loginUser(); break; - case OC_API::SUBADMIN_AUTH: + case \OCP\API::SUBADMIN_AUTH: // Check for subadmin $user = self::loginUser(); if(!$user) { @@ -258,7 +274,7 @@ class OC_API { } } break; - case OC_API::ADMIN_AUTH: + case \OCP\API::ADMIN_AUTH: // Check for admin $user = self::loginUser(); if(!$user) { @@ -325,7 +341,7 @@ class OC_API { */ public static function respond($result, $format='xml') { // Send 401 headers if unauthorised - if($result->getStatusCode() === self::RESPOND_UNAUTHORISED) { + if($result->getStatusCode() === \OCP\API::RESPOND_UNAUTHORISED) { header('WWW-Authenticate: Basic realm="Authorisation Required"'); header('HTTP/1.0 401 Unauthorized'); } @@ -384,7 +400,7 @@ class OC_API { * Based on the requested format the response content type is set */ public static function setContentType() { - $format = \OC_API::requestedFormat(); + $format = self::requestedFormat(); if ($format === 'xml') { header('Content-type: text/xml; charset=UTF-8'); return; diff --git a/lib/private/appframework/http/request.php b/lib/private/appframework/http/request.php index 002c1151adc..2455209cdf3 100644 --- a/lib/private/appframework/http/request.php +++ b/lib/private/appframework/http/request.php @@ -238,7 +238,7 @@ class Request implements \ArrayAccess, \Countable, IRequest { case 'params': case 'urlParams': if(in_array($name, array('put', 'patch'))) { - return $this->getContent($name); + return $this->getContent(); } else { return isset($this->items[$name]) ? $this->items[$name] @@ -252,7 +252,6 @@ class Request implements \ArrayAccess, \Countable, IRequest { return isset($this[$name]) ? $this[$name] : null; - break; } } @@ -360,7 +359,7 @@ class Request implements \ArrayAccess, \Countable, IRequest { * @param string $key the key that will be taken from the $_COOKIE array * @return array the value in the $_COOKIE element */ - function getCookie($key) { + public function getCookie($key) { return isset($this->cookies[$key]) ? $this->cookies[$key] : null; } diff --git a/lib/private/appframework/utility/simplecontainer.php b/lib/private/appframework/utility/simplecontainer.php index 9e80f89e458..c7dff6f4571 100644 --- a/lib/private/appframework/utility/simplecontainer.php +++ b/lib/private/appframework/utility/simplecontainer.php @@ -106,7 +106,7 @@ class SimpleContainer extends \Pimple\Container implements \OCP\IContainer { * @param string $name * @param mixed $value */ - function registerParameter($name, $value) { + public function registerParameter($name, $value) { $this[$name] = $value; } @@ -119,7 +119,7 @@ class SimpleContainer extends \Pimple\Container implements \OCP\IContainer { * @param \Closure $closure the closure to be called on service creation * @param bool $shared */ - function registerService($name, \Closure $closure, $shared = true) { + public function registerService($name, \Closure $closure, $shared = true) { if (isset($this[$name])) { unset($this[$name]); } diff --git a/lib/private/avatarmanager.php b/lib/private/avatarmanager.php index 578ab05d49b..0ff4a3444e2 100644 --- a/lib/private/avatarmanager.php +++ b/lib/private/avatarmanager.php @@ -38,7 +38,7 @@ class AvatarManager implements IAvatarManager { * @param string $user the ownCloud user id * @return \OCP\IAvatar */ - function getAvatar($user) { + public function getAvatar($user) { return new Avatar($user); } } diff --git a/lib/private/backgroundjob.php b/lib/private/backgroundjob.php deleted file mode 100644 index 574109feee1..00000000000 --- a/lib/private/backgroundjob.php +++ /dev/null @@ -1,56 +0,0 @@ -<?php -/** - * @author Bart Visscher <bartv@thisnet.nl> - * @author Felix Moeller <mail@felixmoeller.de> - * @author Jakob Sack <mail@jakobsack.de> - * @author Jörn Friedrich Dreyer <jfd@butonic.de> - * @author Morris Jobke <hey@morrisjobke.de> - * @author Scrutinizer Auto-Fixer <auto-fixer@scrutinizer-ci.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/> - * - */ - -/** - * This class does the dirty work. - */ -class OC_BackgroundJob{ - /** - * get the execution type of background jobs - * @return string - * - * This method returns the type how background jobs are executed. If the user - * did not select something, the type is ajax. - */ - public static function getExecutionType() { - return OC_Appconfig::getValue( 'core', 'backgroundjobs_mode', 'ajax' ); - } - - /** - * sets the background jobs execution type - * @param string $type execution type - * @return false|null - * - * This method sets the execution type of the background jobs. Possible types - * are "none", "ajax", "webcron", "cron" - */ - public static function setExecutionType( $type ) { - if( !in_array( $type, array('none', 'ajax', 'webcron', 'cron'))) { - return false; - } - return OC_Appconfig::setValue( 'core', 'backgroundjobs_mode', $type ); - } -} diff --git a/lib/private/console/application.php b/lib/private/console/application.php index 551d69ef53c..6d24665e012 100644 --- a/lib/private/console/application.php +++ b/lib/private/console/application.php @@ -52,8 +52,8 @@ class Application { $errors = \OC_Util::checkServer(\OC::$server->getConfig()); if (!empty($errors)) { foreach ($errors as $error) { - $output->writeln($error['error']); - $output->writeln($error['hint']); + $output->writeln((string)$error['error']); + $output->writeln((string)$error['hint']); $output->writeln(''); } throw new \Exception("Environment not properly prepared."); diff --git a/lib/private/db.php b/lib/private/db.php index 7e7bd4dd57e..98df1c73714 100644 --- a/lib/private/db.php +++ b/lib/private/db.php @@ -290,25 +290,24 @@ class OC_DB { public static function raiseExceptionOnError($result, $message = null) { if(self::isError($result)) { if ($message === null) { - $message = self::getErrorMessage($result); + $message = self::getErrorMessage(); } else { - $message .= ', Root cause:' . self::getErrorMessage($result); + $message .= ', Root cause:' . self::getErrorMessage(); } - throw new \OC\DatabaseException($message, self::getErrorCode($result)); + throw new \OC\DatabaseException($message, self::getErrorCode()); } } - public static function getErrorCode($error) { + public static function getErrorCode() { $connection = \OC::$server->getDatabaseConnection(); return $connection->errorCode(); } /** * returns the error code and message as a string for logging * works with DoctrineException - * @param mixed $error * @return string */ - public static function getErrorMessage($error) { + public static function getErrorMessage() { $connection = \OC::$server->getDatabaseConnection(); return $connection->getError(); } diff --git a/lib/private/db/connection.php b/lib/private/db/connection.php index cb19695641a..2d8ab550a70 100644 --- a/lib/private/db/connection.php +++ b/lib/private/db/connection.php @@ -79,6 +79,8 @@ class Connection extends \Doctrine\DBAL\Connection implements IDBConnection { parent::__construct($params, $driver, $config, $eventManager); $this->adapter = new $params['adapter']($this); $this->tablePrefix = $params['tablePrefix']; + + parent::setTransactionIsolation(parent::TRANSACTION_READ_COMMITTED); } /** diff --git a/lib/private/encryption/hookmanager.php b/lib/private/encryption/hookmanager.php new file mode 100644 index 00000000000..c62583b4b47 --- /dev/null +++ b/lib/private/encryption/hookmanager.php @@ -0,0 +1,66 @@ +<?php +/** + * @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 OC\Encryption; + +use OC\Files\Filesystem; +use OC\Files\View; + +class HookManager { + /** + * @var Update + */ + private static $updater; + + public static function postShared($params) { + self::getUpdate()->postShared($params); + } + public static function postUnshared($params) { + self::getUpdate()->postUnshared($params); + } + + /** + * @return Update + */ + private static function getUpdate() { + if (is_null(self::$updater)) { + $user = \OC::$server->getUserSession()->getUser(); + $uid = ''; + if ($user) { + $uid = $user->getUID(); + } + self::$updater = new Update( + new View(), + new Util( + new View(), + \OC::$server->getUserManager(), + \OC::$server->getGroupManager(), + \OC::$server->getConfig()), + Filesystem::getMountManager(), + \OC::$server->getEncryptionManager(), + \OC::$server->getEncryptionFilesHelper(), + $uid + ); + } + + return self::$updater; + } +} diff --git a/lib/private/encryption/keys/storage.php b/lib/private/encryption/keys/storage.php index 9d978193130..925c20c74c8 100644 --- a/lib/private/encryption/keys/storage.php +++ b/lib/private/encryption/keys/storage.php @@ -266,7 +266,7 @@ class Storage implements \OCP\Encryption\Keys\IStorage { $filename = $this->util->stripPartialFileExtension($filename); // in case of system wide mount points the keys are stored directly in the data directory - if ($this->util->isSystemWideMountPoint($filename)) { + if ($this->util->isSystemWideMountPoint($filename, $owner)) { $keyPath = $this->keys_base_dir . $filename . '/'; } else { $keyPath = '/' . $owner . $this->keys_base_dir . $filename . '/'; @@ -287,7 +287,7 @@ class Storage implements \OCP\Encryption\Keys\IStorage { list($owner, $source) = $this->util->getUidAndFilename($source); list(, $target) = $this->util->getUidAndFilename($target); - $systemWide = $this->util->isSystemWideMountPoint($target); + $systemWide = $this->util->isSystemWideMountPoint($target, $owner); if ($systemWide) { $sourcePath = $this->keys_base_dir . $source . '/'; @@ -315,7 +315,7 @@ class Storage implements \OCP\Encryption\Keys\IStorage { list($owner, $source) = $this->util->getUidAndFilename($source); list(, $target) = $this->util->getUidAndFilename($target); - $systemWide = $this->util->isSystemWideMountPoint($target); + $systemWide = $this->util->isSystemWideMountPoint($target, $owner); if ($systemWide) { $sourcePath = $this->keys_base_dir . $source . '/'; diff --git a/lib/private/encryption/manager.php b/lib/private/encryption/manager.php index 74cad0a75bb..7a3f17519fc 100644 --- a/lib/private/encryption/manager.php +++ b/lib/private/encryption/manager.php @@ -22,24 +22,34 @@ namespace OC\Encryption; +use OC\Files\Storage\Shared; use OC\Files\Storage\Wrapper\Encryption; +use OC\Files\View; use OCP\Encryption\IEncryptionModule; +use OCP\Encryption\IManager; use OCP\Files\Mount\IMountPoint; +use OCP\IConfig; +use OCP\ILogger; -class Manager implements \OCP\Encryption\IManager { +class Manager implements IManager { /** @var array */ protected $encryptionModules; - /** @var \OCP\IConfig */ + /** @var IConfig */ protected $config; + /** @var ILogger */ + protected $logger; + /** - * @param \OCP\IConfig $config + * @param IConfig $config + * @param ILogger $logger */ - public function __construct(\OCP\IConfig $config) { + public function __construct(IConfig $config, ILogger $logger) { $this->encryptionModules = array(); $this->config = $config; + $this->logger = $logger; } /** @@ -59,17 +69,35 @@ class Manager implements \OCP\Encryption\IManager { } /** - * Registers an encryption module + * check if new encryption is ready * - * @param IEncryptionModule $module + * @return boolean + */ + public function isReady() { + // check if we are still in transit between the old and the new encryption + $oldEncryption = $this->config->getAppValue('files_encryption', 'installed_version'); + if (!empty($oldEncryption)) { + $warning = 'Installation is in transit between the old Encryption (ownCloud <= 8.0) + and the new encryption. Please enable the "ownCloud Default Encryption Module" + and run \'occ encryption:migrate\''; + $this->logger->warning($warning); + return false; + } + return true; + } + + /** + * Registers an callback function which must return an encryption module instance + * + * @param string $id + * @param string $displayName + * @param callable $callback * @throws Exceptions\ModuleAlreadyExistsException */ - public function registerEncryptionModule(IEncryptionModule $module) { - $id = $module->getId(); - $name = $module->getDisplayName(); + public function registerEncryptionModule($id, $displayName, callable $callback) { if (isset($this->encryptionModules[$id])) { - throw new Exceptions\ModuleAlreadyExistsException($id, $name); + throw new Exceptions\ModuleAlreadyExistsException($id, $displayName); } $defaultEncryptionModuleId = $this->getDefaultEncryptionModuleId(); @@ -78,22 +106,26 @@ class Manager implements \OCP\Encryption\IManager { $this->setDefaultEncryptionModule($id); } - $this->encryptionModules[$id] = $module; + $this->encryptionModules[$id] = [ + 'id' => $id, + 'displayName' => $displayName, + 'callback' => $callback, + ]; } /** * Unregisters an encryption module * - * @param IEncryptionModule $module + * @param string $moduleId */ - public function unregisterEncryptionModule(IEncryptionModule $module) { - unset($this->encryptionModules[$module->getId()]); + public function unregisterEncryptionModule($moduleId) { + unset($this->encryptionModules[$moduleId]); } /** * get a list of all encryption modules * - * @return IEncryptionModule[] + * @return array [id => ['id' => $id, 'displayName' => $displayName, 'callback' => callback]] */ public function getEncryptionModules() { return $this->encryptionModules; @@ -109,21 +141,13 @@ class Manager implements \OCP\Encryption\IManager { public function getEncryptionModule($moduleId = '') { if (!empty($moduleId)) { if (isset($this->encryptionModules[$moduleId])) { - return $this->encryptionModules[$moduleId]; + return call_user_func($this->encryptionModules[$moduleId]['callback']); } else { $message = "Module with id: $moduleId does not exists."; throw new Exceptions\ModuleDoesNotExistsException($message); } - } else { // get default module and return this - // For now we simply return the first module until we have a way - // to enable multiple modules and define a default module - $module = reset($this->encryptionModules); - if ($module) { - return $module; - } else { - $message = 'No encryption module registered'; - throw new Exceptions\ModuleDoesNotExistsException($message); - } + } else { + return $this->getDefaultEncryptionModule(); } } @@ -137,7 +161,7 @@ class Manager implements \OCP\Encryption\IManager { $defaultModuleId = $this->getDefaultEncryptionModuleId(); if (!empty($defaultModuleId)) { if (isset($this->encryptionModules[$defaultModuleId])) { - return $this->encryptionModules[$defaultModuleId]; + return call_user_func($this->encryptionModules[$defaultModuleId]['callback']); } else { $message = 'Default encryption module not loaded'; throw new Exceptions\ModuleDoesNotExistsException($message); @@ -185,10 +209,14 @@ class Manager implements \OCP\Encryption\IManager { 'mountPoint' => $mountPoint, 'mount' => $mount]; - if (!($storage instanceof \OC\Files\Storage\Shared)) { + if (!($storage instanceof Shared)) { $manager = \OC::$server->getEncryptionManager(); - $util = new \OC\Encryption\Util( - new \OC\Files\View(), \OC::$server->getUserManager(), \OC::$server->getConfig()); + $util = new Util( + new View(), + \OC::$server->getUserManager(), + \OC::$server->getGroupManager(), + \OC::$server->getConfig() + ); $user = \OC::$server->getUserSession()->getUser(); $logger = \OC::$server->getLogger(); $uid = $user ? $user->getUID() : null; diff --git a/lib/private/encryption/util.php b/lib/private/encryption/util.php index e7cf607c7b1..98a38012dba 100644 --- a/lib/private/encryption/util.php +++ b/lib/private/encryption/util.php @@ -24,6 +24,7 @@ namespace OC\Encryption; use OC\Encryption\Exceptions\EncryptionHeaderKeyExistsException; use OC\Encryption\Exceptions\EncryptionHeaderToLargeException; +use OC\Encryption\Exceptions\ModuleDoesNotExistsException; use OC\Files\View; use OCP\Encryption\IEncryptionModule; use OCP\IConfig; @@ -65,15 +66,20 @@ class Util { /** @var array paths excluded from encryption */ protected $excludedPaths; + /** @var \OC\Group\Manager $manager */ + protected $groupManager; + /** * * @param \OC\Files\View $view * @param \OC\User\Manager $userManager + * @param \OC\Group\Manager $groupManager * @param IConfig $config */ public function __construct( \OC\Files\View $view, \OC\User\Manager $userManager, + \OC\Group\Manager $groupManager, IConfig $config) { $this->ocHeaderKeys = [ @@ -82,6 +88,7 @@ class Util { $this->view = $view; $this->userManager = $userManager; + $this->groupManager = $groupManager; $this->config = $config; $this->excludedPaths[] = 'files_encryption'; @@ -92,6 +99,7 @@ class Util { * * @param array $header * @return string + * @throws ModuleDoesNotExistsException */ public function getEncryptionModuleId(array $header = null) { $id = ''; @@ -99,6 +107,14 @@ class Util { if (isset($header[$encryptionModuleKey])) { $id = $header[$encryptionModuleKey]; + } elseif (isset($header['cipher'])) { + if (class_exists('\OCA\Encryption\Crypto\Encryption')) { + // fall back to default encryption if the user migrated from + // ownCloud <= 8.0 with the old encryption + $id = \OCA\Encryption\Crypto\Encryption::ID; + } else { + throw new ModuleDoesNotExistsException('ownCloud default encryption module missing'); + } } return $id; @@ -294,15 +310,15 @@ class Util { /** * check if the file is stored on a system wide mount point * @param string $path relative to /data/user with leading '/' + * @param string $uid * @return boolean */ - public function isSystemWideMountPoint($path) { - $normalizedPath = ltrim($path, '/'); + public function isSystemWideMountPoint($path, $uid) { if (\OCP\App::isEnabled("files_external")) { $mounts = \OC_Mount_Config::getSystemMountPoints(); foreach ($mounts as $mount) { - if ($mount['mountpoint'] == substr($normalizedPath, 0, strlen($mount['mountpoint']))) { - if ($this->isMountPointApplicableToUser($mount)) { + if (strpos($path, '/files/' . $mount['mountpoint']) === 0) { + if ($this->isMountPointApplicableToUser($mount, $uid)) { return true; } } @@ -312,6 +328,29 @@ class Util { } /** + * check if mount point is applicable to user + * + * @param array $mount contains $mount['applicable']['users'], $mount['applicable']['groups'] + * @param string $uid + * @return boolean + */ + private function isMountPointApplicableToUser($mount, $uid) { + $acceptedUids = array('all', $uid); + // check if mount point is applicable for the user + $intersection = array_intersect($acceptedUids, $mount['applicable']['users']); + if (!empty($intersection)) { + return true; + } + // check if mount point is applicable for group where the user is a member + foreach ($mount['applicable']['groups'] as $gid) { + if ($this->groupManager->isInGroup($uid, $gid)) { + return true; + } + } + return false; + } + + /** * check if it is a path which is excluded by ownCloud from encryption * * @param string $path diff --git a/lib/private/files/storage/wrapper/encryption.php b/lib/private/files/storage/wrapper/encryption.php index 5697139bd6b..01bd861e3a2 100644 --- a/lib/private/files/storage/wrapper/encryption.php +++ b/lib/private/files/storage/wrapper/encryption.php @@ -154,7 +154,8 @@ class Encryption extends Wrapper { * @return bool */ public function unlink($path) { - if ($this->util->isExcluded($path)) { + $fullPath = $this->getFullPath($path); + if ($this->util->isExcluded($fullPath)) { return $this->storage->unlink($path); } @@ -175,7 +176,8 @@ class Encryption extends Wrapper { * @return bool */ public function rename($path1, $path2) { - if ($this->util->isExcluded($path1)) { + $fullPath1 = $this->getFullPath($path1); + if ($this->util->isExcluded($fullPath1)) { return $this->storage->rename($path1, $path2); } @@ -204,8 +206,9 @@ class Encryption extends Wrapper { * @return bool */ public function copy($path1, $path2) { - if ($this->util->isExcluded($path1)) { - return $this->storage->rename($path1, $path2); + $fullPath1 = $this->getFullPath($path1); + if ($this->util->isExcluded($fullPath1)) { + return $this->storage->copy($path1, $path2); } $source = $this->getFullPath($path1); diff --git a/lib/private/files/stream/encryption.php b/lib/private/files/stream/encryption.php index 9ba98e61d3e..4a1df840105 100644 --- a/lib/private/files/stream/encryption.php +++ b/lib/private/files/stream/encryption.php @@ -280,7 +280,7 @@ class Encryption extends Wrapper { if ($this->position === 0) { $this->writeHeader(); - $this->size+=$this->util->getHeaderSize(); + $this->size = $this->util->getHeaderSize(); } $length = 0; @@ -293,7 +293,7 @@ class Encryption extends Wrapper { // for seekable streams the pointer is moved back to the beginning of the encrypted block // flush will start writing there when the position moves to another block - $positionInFile = floor($this->position / $this->unencryptedBlockSize) * + $positionInFile = (int)floor($this->position / $this->unencryptedBlockSize) * $this->util->getBlockSize() + $this->util->getHeaderSize(); $resultFseek = parent::stream_seek($positionInFile); diff --git a/lib/private/geo.php b/lib/private/geo.php deleted file mode 100644 index cbc5074dc73..00000000000 --- a/lib/private/geo.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php -/** - * @author Christopher Schäpers <kondou@ts.unde.re> - * @author Georg Ehrke <georg@owncloud.com> - * @author Lukas Reschke <lukas@owncloud.com> - * @author Morris Jobke <hey@morrisjobke.de> - * @author Robin McCorkell <rmccorkell@karoshi.org.uk> - * @author Scrutinizer Auto-Fixer <auto-fixer@scrutinizer-ci.com> - * @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/> - * - */ -class OC_Geo{ - /** - * returns the closest timezone to coordinates - * @param float $latitude - * @param float $longitude - * @return mixed Closest timezone - */ - public static function timezone($latitude, $longitude) { - $alltimezones = DateTimeZone::listIdentifiers(); - $variances = array(); - //calculate for all timezones the system know - foreach($alltimezones as $timezone) { - $datetimezoneobj = new DateTimeZone($timezone); - $locationinformations = $datetimezoneobj->getLocation(); - $latitudeoftimezone = $locationinformations['latitude']; - $longitudeoftimezone = $locationinformations['longitude']; - $variances[abs($latitudeoftimezone - $latitude) + abs($longitudeoftimezone - $longitude)] = $timezone; - } - //sort array and return the timezone with the smallest difference - ksort($variances); - reset($variances); - return current($variances); - } -} diff --git a/lib/private/helper.php b/lib/private/helper.php index 11311d7c55f..35c5147e2fa 100644 --- a/lib/private/helper.php +++ b/lib/private/helper.php @@ -978,7 +978,6 @@ class OC_Helper { $quota = OC_Util::getUserQuota(\OCP\User::getUser()); if ($quota !== \OCP\Files\FileInfo::SPACE_UNLIMITED) { // always get free space / total space from root + mount points - $path = ''; return self::getGlobalStorageInfo(); } } diff --git a/lib/private/l10n.php b/lib/private/l10n.php index 59f26423afa..b070a299a16 100644 --- a/lib/private/l10n.php +++ b/lib/private/l10n.php @@ -391,13 +391,10 @@ class OC_L10N implements \OCP\IL10N { switch($type) { case 'date': return Punic\Calendar::formatDate($value, $width, $locale); - break; case 'datetime': return Punic\Calendar::formatDatetime($value, $width, $locale); - break; case 'time': return Punic\Calendar::formatTime($value, $width, $locale); - break; default: return false; } diff --git a/lib/private/memcache/redis.php b/lib/private/memcache/redis.php index 62186d3c4ec..e7425726b2b 100644 --- a/lib/private/memcache/redis.php +++ b/lib/private/memcache/redis.php @@ -51,7 +51,12 @@ class Redis extends Cache { } else { $timeout = 0.0; // unlimited } + self::$cache->connect( $host, $port, $timeout ); + + if (isset($config['dbindex'])) { + self::$cache->select( $config['dbindex'] ); + } } } diff --git a/lib/private/ocs/cloud.php b/lib/private/ocs/cloud.php index 8d3ed1f1cb4..f662bde2858 100644 --- a/lib/private/ocs/cloud.php +++ b/lib/private/ocs/cloud.php @@ -25,7 +25,7 @@ class OC_OCS_Cloud { - public static function getCapabilities($parameters) { + public static function getCapabilities() { $result = array(); list($major, $minor, $micro) = OC_Util::getVersion(); $result['version'] = array( diff --git a/lib/private/ocs/config.php b/lib/private/ocs/config.php index 295da5b01d3..fc9640b6cc4 100644 --- a/lib/private/ocs/config.php +++ b/lib/private/ocs/config.php @@ -23,7 +23,7 @@ class OC_OCS_Config { - public static function apiConfig($parameters) { + public static function apiConfig() { $xml['version'] = '1.7'; $xml['website'] = 'ownCloud'; $xml['host'] = OCP\Util::getServerHost(); diff --git a/lib/private/ocs/person.php b/lib/private/ocs/person.php index 0e0d75305d1..0059982c55e 100644 --- a/lib/private/ocs/person.php +++ b/lib/private/ocs/person.php @@ -23,7 +23,7 @@ class OC_OCS_Person { - public static function check($parameters) { + public static function check() { $login = isset($_POST['login']) ? $_POST['login'] : false; $password = isset($_POST['password']) ? $_POST['password'] : false; if($login && $password) { diff --git a/lib/private/response.php b/lib/private/response.php index 018c44d2367..5725af2b893 100644 --- a/lib/private/response.php +++ b/lib/private/response.php @@ -212,9 +212,10 @@ class OC_Response { } /** - * Send file as response, checking and setting caching headers - * @param string $filepath of file to send - */ + * Send file as response, checking and setting caching headers + * @param string $filepath of file to send + * @deprecated 8.1.0 - Use \OCP\AppFramework\Http\StreamResponse or another AppFramework controller instead + */ static public function sendFile($filepath) { $fp = fopen($filepath, 'rb'); if ($fp) { diff --git a/lib/private/route/route.php b/lib/private/route/route.php index cb864d3d73d..b33360f11ec 100644 --- a/lib/private/route/route.php +++ b/lib/private/route/route.php @@ -37,7 +37,7 @@ class Route extends SymfonyRoute implements IRoute { * @return \OC\Route\Route */ public function method($method) { - $this->setRequirement('_method', strtoupper($method)); + $this->setMethods($method); return $this; } @@ -109,7 +109,7 @@ class Route extends SymfonyRoute implements IRoute { * @return \OC\Route\Route */ public function requirements($requirements) { - $method = $this->getRequirement('_method'); + $method = $this->getMethods(); $this->setRequirements($requirements); if (isset($requirements['_method'])) { $method = $requirements['_method']; diff --git a/lib/private/security/certificate.php b/lib/private/security/certificate.php index 468427d0702..0d7fcc4148d 100644 --- a/lib/private/security/certificate.php +++ b/lib/private/security/certificate.php @@ -49,18 +49,18 @@ class Certificate implements ICertificate { */ public function __construct($data, $name) { $this->name = $name; - try { - $gmt = new \DateTimeZone('GMT'); - $info = openssl_x509_parse($data); - $this->commonName = isset($info['subject']['CN']) ? $info['subject']['CN'] : null; - $this->organization = isset($info['subject']['O']) ? $info['subject']['O'] : null; - $this->issueDate = new \DateTime('@' . $info['validFrom_time_t'], $gmt); - $this->expireDate = new \DateTime('@' . $info['validTo_time_t'], $gmt); - $this->issuerName = isset($info['issuer']['CN']) ? $info['issuer']['CN'] : null; - $this->issuerOrganization = isset($info['issuer']['O']) ? $info['issuer']['O'] : null; - } catch (\Exception $e) { + $gmt = new \DateTimeZone('GMT'); + $info = openssl_x509_parse($data); + if(!is_array($info)) { throw new \Exception('Certificate could not get parsed.'); } + + $this->commonName = isset($info['subject']['CN']) ? $info['subject']['CN'] : null; + $this->organization = isset($info['subject']['O']) ? $info['subject']['O'] : null; + $this->issueDate = new \DateTime('@' . $info['validFrom_time_t'], $gmt); + $this->expireDate = new \DateTime('@' . $info['validTo_time_t'], $gmt); + $this->issuerName = isset($info['issuer']['CN']) ? $info['issuer']['CN'] : null; + $this->issuerOrganization = isset($info['issuer']['O']) ? $info['issuer']['O'] : null; } /** diff --git a/lib/private/security/certificatemanager.php b/lib/private/security/certificatemanager.php index beeb87a8316..d61c7f29327 100644 --- a/lib/private/security/certificatemanager.php +++ b/lib/private/security/certificatemanager.php @@ -107,12 +107,12 @@ class CertificateManager implements ICertificateManager { * * @param string $certificate the certificate data * @param string $name the filename for the certificate - * @return \OCP\ICertificate|void|bool + * @return \OCP\ICertificate * @throws \Exception If the certificate could not get added */ public function addCertificate($certificate, $name) { if (!Filesystem::isValidPath($name) or Filesystem::isFileBlacklisted($name)) { - return false; + throw new \Exception('Filename is not valid'); } $dir = $this->getPathToCertificates() . 'uploads/'; diff --git a/lib/private/server.php b/lib/private/server.php index 6df7722973e..d321ecb68bd 100644 --- a/lib/private/server.php +++ b/lib/private/server.php @@ -72,7 +72,7 @@ class Server extends SimpleContainer implements IServerContainer { /** * @param string $webRoot */ - function __construct($webRoot) { + public function __construct($webRoot) { $this->webRoot = $webRoot; $this->registerService('ContactsManager', function ($c) { @@ -84,11 +84,16 @@ class Server extends SimpleContainer implements IServerContainer { }); $this->registerService('EncryptionManager', function (Server $c) { - return new Encryption\Manager($c->getConfig()); + return new Encryption\Manager($c->getConfig(), $c->getLogger()); }); $this->registerService('EncryptionFileHelper', function (Server $c) { - $util = new \OC\Encryption\Util(new \OC\Files\View(), $c->getUserManager(), $c->getConfig()); + $util = new \OC\Encryption\Util( + new \OC\Files\View(), + $c->getUserManager(), + $c->getGroupManager(), + $c->getConfig() + ); return new Encryption\File($util); }); @@ -412,21 +417,21 @@ class Server extends SimpleContainer implements IServerContainer { /** * @return \OCP\Contacts\IManager */ - function getContactsManager() { + public function getContactsManager() { return $this->query('ContactsManager'); } /** * @return \OC\Encryption\Manager */ - function getEncryptionManager() { + public function getEncryptionManager() { return $this->query('EncryptionManager'); } /** * @return \OC\Encryption\File */ - function getEncryptionFilesHelper() { + public function getEncryptionFilesHelper() { return $this->query('EncryptionFileHelper'); } @@ -435,9 +440,14 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\Encryption\Keys\IStorage */ - function getEncryptionKeyStorage($encryptionModuleId) { + public function getEncryptionKeyStorage($encryptionModuleId) { $view = new \OC\Files\View(); - $util = new \OC\Encryption\Util($view, \OC::$server->getUserManager(), \OC::$server->getConfig()); + $util = new \OC\Encryption\Util( + $view, + \OC::$server->getUserManager(), + \OC::$server->getGroupManager(), + \OC::$server->getConfig() + ); return $this->query('EncryptionKeyStorageFactory')->get($encryptionModuleId, $view, $util); } @@ -448,7 +458,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\IRequest */ - function getRequest() { + public function getRequest() { return $this->query('Request'); } @@ -457,7 +467,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\IPreview */ - function getPreviewManager() { + public function getPreviewManager() { return $this->query('PreviewManager'); } @@ -467,7 +477,7 @@ class Server extends SimpleContainer implements IServerContainer { * @see \OCP\ITagManager::load() * @return \OCP\ITagManager */ - function getTagManager() { + public function getTagManager() { return $this->query('TagManager'); } @@ -476,7 +486,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\IAvatarManager */ - function getAvatarManager() { + public function getAvatarManager() { return $this->query('AvatarManager'); } @@ -485,7 +495,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\Files\Folder */ - function getRootFolder() { + public function getRootFolder() { return $this->query('RootFolder'); } @@ -495,7 +505,7 @@ class Server extends SimpleContainer implements IServerContainer { * @param string $userId user ID * @return \OCP\Files\Folder */ - function getUserFolder($userId = null) { + public function getUserFolder($userId = null) { if ($userId === null) { $user = $this->getUserSession()->getUser(); if (!$user) { @@ -532,7 +542,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\Files\Folder */ - function getAppFolder() { + public function getAppFolder() { $dir = '/' . \OC_App::getCurrentApp(); $root = $this->getRootFolder(); $folder = null; @@ -547,49 +557,49 @@ class Server extends SimpleContainer implements IServerContainer { /** * @return \OC\User\Manager */ - function getUserManager() { + public function getUserManager() { return $this->query('UserManager'); } /** * @return \OC\Group\Manager */ - function getGroupManager() { + public function getGroupManager() { return $this->query('GroupManager'); } /** * @return \OC\User\Session */ - function getUserSession() { + public function getUserSession() { return $this->query('UserSession'); } /** * @return \OCP\ISession */ - function getSession() { + public function getSession() { return $this->query('UserSession')->getSession(); } /** * @param \OCP\ISession $session */ - function setSession(\OCP\ISession $session) { + public function setSession(\OCP\ISession $session) { return $this->query('UserSession')->setSession($session); } /** * @return \OC\NavigationManager */ - function getNavigationManager() { + public function getNavigationManager() { return $this->query('NavigationManager'); } /** * @return \OCP\IConfig */ - function getConfig() { + public function getConfig() { return $this->query('AllConfig'); } @@ -598,7 +608,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OC\SystemConfig */ - function getSystemConfig() { + public function getSystemConfig() { return $this->query('SystemConfig'); } @@ -607,7 +617,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\IAppConfig */ - function getAppConfig() { + public function getAppConfig() { return $this->query('AppConfig'); } @@ -618,21 +628,21 @@ class Server extends SimpleContainer implements IServerContainer { * @param string $lang * @return \OC_L10N */ - function getL10N($app, $lang = null) { + public function getL10N($app, $lang = null) { return $this->query('L10NFactory')->get($app, $lang); } /** * @return \OCP\IURLGenerator */ - function getURLGenerator() { + public function getURLGenerator() { return $this->query('URLGenerator'); } /** * @return \OCP\IHelper */ - function getHelper() { + public function getHelper() { return $this->query('AppHelper'); } @@ -641,7 +651,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\ICache */ - function getCache() { + public function getCache() { return $this->query('UserCache'); } @@ -650,7 +660,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\ICacheFactory */ - function getMemCacheFactory() { + public function getMemCacheFactory() { return $this->query('MemCacheFactory'); } @@ -659,7 +669,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\IDBConnection */ - function getDatabaseConnection() { + public function getDatabaseConnection() { return $this->query('DatabaseConnection'); } @@ -668,7 +678,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\Activity\IManager */ - function getActivityManager() { + public function getActivityManager() { return $this->query('ActivityManager'); } @@ -677,7 +687,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\BackgroundJob\IJobList */ - function getJobList() { + public function getJobList() { return $this->query('JobList'); } @@ -686,7 +696,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\ILogger */ - function getLogger() { + public function getLogger() { return $this->query('Logger'); } @@ -695,7 +705,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\Route\IRouter */ - function getRouter() { + public function getRouter() { return $this->query('Router'); } @@ -704,7 +714,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\ISearch */ - function getSearch() { + public function getSearch() { return $this->query('Search'); } @@ -713,7 +723,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\Security\ISecureRandom */ - function getSecureRandom() { + public function getSecureRandom() { return $this->query('SecureRandom'); } @@ -722,7 +732,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\Security\ICrypto */ - function getCrypto() { + public function getCrypto() { return $this->query('Crypto'); } @@ -731,7 +741,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\Security\IHasher */ - function getHasher() { + public function getHasher() { return $this->query('Hasher'); } @@ -740,7 +750,7 @@ class Server extends SimpleContainer implements IServerContainer { * @deprecated use getDatabaseConnection, will be removed in ownCloud 10 * @return \OCP\IDb */ - function getDb() { + public function getDb() { return $this->query('Db'); } @@ -749,7 +759,7 @@ class Server extends SimpleContainer implements IServerContainer { * @deprecated Use getHTTPClientService() * @return \OC\HTTPHelper */ - function getHTTPHelper() { + public function getHTTPHelper() { return $this->query('HTTPHelper'); } @@ -759,7 +769,7 @@ class Server extends SimpleContainer implements IServerContainer { * @param string $uid (optional) if not specified the current loggedin user is used * @return \OCP\ICertificateManager */ - function getCertificateManager($uid = null) { + public function getCertificateManager($uid = null) { if (is_null($uid)) { $userSession = $this->getUserSession(); $user = $userSession->getUser(); @@ -776,7 +786,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\Http\Client\IClientService */ - function getHTTPClientService() { + public function getHTTPClientService() { return $this->query('HttpClientService'); } @@ -785,7 +795,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\IEventSource */ - function createEventSource() { + public function createEventSource() { return new \OC_EventSource(); } @@ -796,7 +806,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\Diagnostics\IEventLogger */ - function getEventLogger() { + public function getEventLogger() { return $this->query('EventLogger'); } @@ -807,7 +817,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\Diagnostics\IQueryLogger */ - function getQueryLogger() { + public function getQueryLogger() { return $this->query('QueryLogger'); } @@ -816,7 +826,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\ITempManager */ - function getTempManager() { + public function getTempManager() { return $this->query('TempManager'); } @@ -825,7 +835,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\App\IAppManager */ - function getAppManager() { + public function getAppManager() { return $this->query('AppManager'); } @@ -834,7 +844,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return \OCP\Mail\IMailer */ - function getMailer() { + public function getMailer() { return $this->query('Mailer'); } @@ -843,7 +853,7 @@ class Server extends SimpleContainer implements IServerContainer { * * @return string */ - function getWebRoot() { + public function getWebRoot() { return $this->webRoot; } @@ -871,7 +881,7 @@ class Server extends SimpleContainer implements IServerContainer { /** * @return \OCP\Files\Config\IMountProviderCollection */ - function getMountProviderCollection(){ + public function getMountProviderCollection(){ return $this->query('MountConfigManager'); } @@ -887,7 +897,7 @@ class Server extends SimpleContainer implements IServerContainer { /** * @return \OCP\Command\IBus */ - function getCommandBus(){ + public function getCommandBus(){ return $this->query('AsyncCommandBus'); } diff --git a/lib/private/setup/mssql.php b/lib/private/setup/mssql.php index 8a4904b9243..f8815259af4 100644 --- a/lib/private/setup/mssql.php +++ b/lib/private/setup/mssql.php @@ -32,11 +32,9 @@ class MSSQL extends AbstractDatabase { $masterConnection = @sqlsrv_connect($this->dbhost, $masterConnectionInfo); if(!$masterConnection) { - $entry = null; + $entry = ''; if( ($errors = sqlsrv_errors() ) != null) { $entry='DB Error: "'.print_r(sqlsrv_errors()).'"<br />'; - } else { - $entry = ''; } throw new \OC\DatabaseSetupException($this->trans->t('MS SQL username and/or password not valid: %s', array($entry)), $this->trans->t('You need to enter either an existing account or the administrator.')); diff --git a/lib/private/share/hooks.php b/lib/private/share/hooks.php index 968a2d5c19b..6eff4cc246f 100644 --- a/lib/private/share/hooks.php +++ b/lib/private/share/hooks.php @@ -32,7 +32,7 @@ class Hooks extends \OC\Share\Constants { // Delete any items shared with the deleted user $query = \OC_DB::prepare('DELETE FROM `*PREFIX*share`' .' WHERE `share_with` = ? AND `share_type` = ? OR `share_type` = ?'); - $result = $query->execute(array($arguments['uid'], self::SHARE_TYPE_USER, self::$shareTypeGroupUserUnique)); + $query->execute(array($arguments['uid'], self::SHARE_TYPE_USER, self::$shareTypeGroupUserUnique)); // Delete any items the deleted user shared $query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*share` WHERE `uid_owner` = ?'); $result = $query->execute(array($arguments['uid'])); diff --git a/lib/private/share/share.php b/lib/private/share/share.php index 729dbe79d38..227a3d5a411 100644 --- a/lib/private/share/share.php +++ b/lib/private/share/share.php @@ -153,7 +153,7 @@ class Share extends \OC\Share\Constants { $result = $query->execute(array($source, self::SHARE_TYPE_USER)); if (\OCP\DB::isError($result)) { - \OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR); + \OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage(), \OC_Log::ERROR); } else { while ($row = $result->fetchRow()) { $shares[] = $row['share_with']; @@ -175,7 +175,7 @@ class Share extends \OC\Share\Constants { $result = $query->execute(array($source, self::SHARE_TYPE_GROUP)); if (\OCP\DB::isError($result)) { - \OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR); + \OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage(), \OC_Log::ERROR); } else { while ($row = $result->fetchRow()) { $usersInGroup = \OC_Group::usersInGroup($row['share_with']); @@ -199,7 +199,7 @@ class Share extends \OC\Share\Constants { $result = $query->execute(array($source, self::SHARE_TYPE_LINK)); if (\OCP\DB::isError($result)) { - \OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage($result), \OCP\Util::ERROR); + \OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage(), \OCP\Util::ERROR); } else { if ($result->fetchRow()) { $publicShare = true; @@ -218,7 +218,7 @@ class Share extends \OC\Share\Constants { $result = $query->execute(array($source, self::SHARE_TYPE_REMOTE)); if (\OCP\DB::isError($result)) { - \OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage($result), \OCP\Util::ERROR); + \OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage(), \OCP\Util::ERROR); } else { if ($result->fetchRow()) { $remoteShare = true; @@ -256,7 +256,7 @@ class Share extends \OC\Share\Constants { $result = $query->execute(); if (\OCP\DB::isError($result)) { - \OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage($result), \OC_Log::ERROR); + \OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage(), \OC_Log::ERROR); } else { while ($row = $result->fetchRow()) { foreach ($fileTargets[$row['fileid']] as $uid => $shareData) { @@ -447,7 +447,7 @@ class Share extends \OC\Share\Constants { $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `token` = ?', 1); $result = $query->execute(array($token)); if (\OC_DB::isError($result)) { - \OC_Log::write('OCP\Share', \OC_DB::getErrorMessage($result) . ', token=' . $token, \OC_Log::ERROR); + \OC_Log::write('OCP\Share', \OC_DB::getErrorMessage() . ', token=' . $token, \OC_Log::ERROR); } $row = $result->fetchRow(); if ($row === false) { @@ -1598,7 +1598,7 @@ class Share extends \OC\Share\Constants { $result = $query->execute($queryArgs); if (\OC_DB::isError($result)) { \OC_Log::write('OCP\Share', - \OC_DB::getErrorMessage($result) . ', select=' . $select . ' where=', + \OC_DB::getErrorMessage() . ', select=' . $select . ' where=', \OC_Log::ERROR); } $items = array(); @@ -1662,7 +1662,7 @@ class Share extends \OC\Share\Constants { $parentResult = $query->execute(array($row['parent'])); if (\OC_DB::isError($result)) { \OC_Log::write('OCP\Share', 'Can\'t select parent: ' . - \OC_DB::getErrorMessage($result) . ', select=' . $select . ' where=' . $where, + \OC_DB::getErrorMessage() . ', select=' . $select . ' where=' . $where, \OC_Log::ERROR); } else { $parentRow = $parentResult->fetchRow(); diff --git a/lib/private/subadmin.php b/lib/private/subadmin.php index 10ef87bac18..ec4f9f3b899 100644 --- a/lib/private/subadmin.php +++ b/lib/private/subadmin.php @@ -43,7 +43,7 @@ class OC_SubAdmin{ */ public static function createSubAdmin($uid, $gid) { $stmt = OC_DB::prepare('INSERT INTO `*PREFIX*group_admin` (`gid`,`uid`) VALUES(?,?)'); - $result = $stmt->execute(array($gid, $uid)); + $stmt->execute(array($gid, $uid)); OC_Hook::emit( "OC_SubAdmin", "post_createSubAdmin", array( "gid" => $gid )); return true; } @@ -56,7 +56,7 @@ class OC_SubAdmin{ */ public static function deleteSubAdmin($uid, $gid) { $stmt = OC_DB::prepare('DELETE FROM `*PREFIX*group_admin` WHERE `gid` = ? AND `uid` = ?'); - $result = $stmt->execute(array($gid, $uid)); + $stmt->execute(array($gid, $uid)); OC_Hook::emit( "OC_SubAdmin", "post_deleteSubAdmin", array( "gid" => $gid )); return true; } @@ -177,7 +177,7 @@ class OC_SubAdmin{ */ public static function post_deleteUser($parameters) { $stmt = OC_DB::prepare('DELETE FROM `*PREFIX*group_admin` WHERE `uid` = ?'); - $result = $stmt->execute(array($parameters['uid'])); + $stmt->execute(array($parameters['uid'])); return true; } @@ -188,7 +188,7 @@ class OC_SubAdmin{ */ public static function post_deleteGroup($parameters) { $stmt = OC_DB::prepare('DELETE FROM `*PREFIX*group_admin` WHERE `gid` = ?'); - $result = $stmt->execute(array($parameters['gid'])); + $stmt->execute(array($parameters['gid'])); return true; } } diff --git a/lib/private/tags.php b/lib/private/tags.php index 975b6dbfe0d..6edd7b2f980 100644 --- a/lib/private/tags.php +++ b/lib/private/tags.php @@ -228,12 +228,12 @@ class Tags implements \OCP\ITags { while ($row = $result->fetch()) { $objId = (int)$row['objid']; if (!isset($entries[$objId])) { - $entry = $entries[$objId] = array(); + $entries[$objId] = array(); } - $entry = $entries[$objId][] = $row['category']; + $entries[$objId][] = $row['category']; } if (\OCP\DB::isError($result)) { - \OCP\Util::writeLog('core', __METHOD__. 'DB error: ' . \OCP\DB::getErrorMessage($result), \OCP\Util::ERROR); + \OCP\Util::writeLog('core', __METHOD__. 'DB error: ' . \OCP\DB::getErrorMessage(), \OCP\Util::ERROR); return false; } } @@ -283,7 +283,7 @@ class Tags implements \OCP\ITags { $stmt = \OCP\DB::prepare($sql); $result = $stmt->execute(array($tagId)); if (\OCP\DB::isError($result)) { - \OCP\Util::writeLog('core', __METHOD__. 'DB error: ' . \OCP\DB::getErrorMessage($result), \OCP\Util::ERROR); + \OCP\Util::writeLog('core', __METHOD__. 'DB error: ' . \OCP\DB::getErrorMessage(), \OCP\Util::ERROR); return false; } } catch(\Exception $e) { @@ -510,7 +510,7 @@ class Tags implements \OCP\ITags { . 'WHERE `uid` = ?'); $result = $stmt->execute(array($arguments['uid'])); if (\OCP\DB::isError($result)) { - \OCP\Util::writeLog('core', __METHOD__. 'DB error: ' . \OCP\DB::getErrorMessage($result), \OCP\Util::ERROR); + \OCP\Util::writeLog('core', __METHOD__. 'DB error: ' . \OCP\DB::getErrorMessage(), \OCP\Util::ERROR); } } catch(\Exception $e) { \OCP\Util::writeLog('core', __METHOD__.', exception: '.$e->getMessage(), @@ -539,7 +539,7 @@ class Tags implements \OCP\ITags { . 'WHERE `uid` = ?'); $result = $stmt->execute(array($arguments['uid'])); if (\OCP\DB::isError($result)) { - \OCP\Util::writeLog('core', __METHOD__. ', DB error: ' . \OCP\DB::getErrorMessage($result), \OCP\Util::ERROR); + \OCP\Util::writeLog('core', __METHOD__. ', DB error: ' . \OCP\DB::getErrorMessage(), \OCP\Util::ERROR); } } catch(\Exception $e) { \OCP\Util::writeLog('core', __METHOD__ . ', exception: ' @@ -567,7 +567,7 @@ class Tags implements \OCP\ITags { $stmt = \OCP\DB::prepare($query); $result = $stmt->execute($updates); if (\OCP\DB::isError($result)) { - \OCP\Util::writeLog('core', __METHOD__. 'DB error: ' . \OCP\DB::getErrorMessage($result), \OCP\Util::ERROR); + \OCP\Util::writeLog('core', __METHOD__. 'DB error: ' . \OCP\DB::getErrorMessage(), \OCP\Util::ERROR); return false; } } catch(\Exception $e) { @@ -725,7 +725,7 @@ class Tags implements \OCP\ITags { $result = $stmt->execute(array($id)); if (\OCP\DB::isError($result)) { \OCP\Util::writeLog('core', - __METHOD__. 'DB error: ' . \OCP\DB::getErrorMessage($result), + __METHOD__. 'DB error: ' . \OCP\DB::getErrorMessage(), \OCP\Util::ERROR); return false; } diff --git a/lib/private/user/database.php b/lib/private/user/database.php index 457d40e22d3..f2fa0cc39ce 100644 --- a/lib/private/user/database.php +++ b/lib/private/user/database.php @@ -200,7 +200,7 @@ class OC_User_Database extends OC_User_Backend implements \OCP\IUserBackend { $result = $query->execute(array($uid)); if (OC_DB::isError($result)) { - OC_Log::write('core', OC_DB::getErrorMessage($result), OC_Log::ERROR); + OC_Log::write('core', OC_DB::getErrorMessage(), OC_Log::ERROR); return false; } @@ -268,7 +268,7 @@ class OC_User_Database extends OC_User_Backend implements \OCP\IUserBackend { $query = OC_DB::prepare('SELECT COUNT(*) FROM `*PREFIX*users`'); $result = $query->execute(); if (OC_DB::isError($result)) { - OC_Log::write('core', OC_DB::getErrorMessage($result), OC_Log::ERROR); + OC_Log::write('core', OC_DB::getErrorMessage(), OC_Log::ERROR); return false; } return $result->fetchOne(); diff --git a/lib/private/vobject.php b/lib/private/vobject.php deleted file mode 100644 index ccfe5ae006e..00000000000 --- a/lib/private/vobject.php +++ /dev/null @@ -1,258 +0,0 @@ -<?php -/** - * @author Bart Visscher <bartv@thisnet.nl> - * @author Felix Moeller <mail@felixmoeller.de> - * @author Lukas Reschke <lukas@owncloud.com> - * @author Morris Jobke <hey@morrisjobke.de> - * @author Robin McCorkell <rmccorkell@karoshi.org.uk> - * @author Susinthiran Sithamparanathan <chesusin@gmail.com> - * @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/> - * - */ - -/** - * This class provides a streamlined interface to the Sabre VObject classes - */ -class OC_VObject{ - /** @var Sabre\VObject\Component */ - protected $vObject; - - /** - * @return Sabre\VObject\Component - */ - public function getVObject() { - return $this->vObject; - } - - /** - * Parses the VObject - * @param string $data VObject as string - * @return Sabre\VObject\Reader|null - */ - public static function parse($data) { - try { - Sabre\VObject\Property::$classMap['LAST-MODIFIED'] = 'Sabre\VObject\Property\DateTime'; - $vObject = Sabre\VObject\Reader::read($data); - if ($vObject instanceof Sabre\VObject\Component) { - $vObject = new OC_VObject($vObject); - } - return $vObject; - } catch (Exception $e) { - OC_Log::write('vobject', $e->getMessage(), OC_Log::ERROR); - return null; - } - } - - /** - * Escapes semicolons - * @param array $value - * @return string - */ - public static function escapeSemicolons($value) { - foreach($value as &$i ) { - $i = implode("\\\\;", explode(';', $i)); - } - return implode(';', $value); - } - - /** - * Creates an array out of a multivalue property - * @param string $value - * @return array - */ - public static function unescapeSemicolons($value) { - $array = explode(';', $value); - $arrayCount = count($array); - for($i = 0; $i < $arrayCount; $i++) { - if(substr($array[$i], -2, 2)=="\\\\") { - if(isset($array[$i+1])) { - $array[$i] = substr($array[$i], 0, count($array[$i])-2).';'.$array[$i+1]; - unset($array[$i+1]); - } - else{ - $array[$i] = substr($array[$i], 0, count($array[$i])-2).';'; - } - $i = $i - 1; - } - } - return $array; - } - - /** - * Constructor - * @param Sabre\VObject\Component|string $vobject_or_name - */ - public function __construct($vobject_or_name) { - if (is_object($vobject_or_name)) { - $this->vObject = $vobject_or_name; - } else { - $this->vObject = new Sabre\VObject\Component($vobject_or_name); - } - } - - /** - * @todo Write documentation - * @param \OC_VObject|\Sabre\VObject\Component $item - * @param null $itemValue - */ - public function add($item, $itemValue = null) { - if ($item instanceof OC_VObject) { - $item = $item->getVObject(); - } - $this->vObject->add($item, $itemValue); - } - - /** - * Add property to vobject - * @param object $name of property - * @param object $value of property - * @param array|object $parameters of property - * @return Sabre\VObject\Property newly created - */ - public function addProperty($name, $value, $parameters=array()) { - if(is_array($value)) { - $value = OC_VObject::escapeSemicolons($value); - } - $property = new Sabre\VObject\Property( $name, $value ); - foreach($parameters as $name => $value) { - $property->parameters[] = new Sabre\VObject\Parameter($name, $value); - } - - $this->vObject->add($property); - return $property; - } - - public function setUID() { - $uid = substr(md5(rand().time()), 0, 10); - $this->vObject->add('UID', $uid); - } - - /** - * @todo Write documentation - * @param mixed $name - * @param string $string - */ - public function setString($name, $string) { - if ($string != '') { - $string = strtr($string, array("\r\n"=>"\n")); - $this->vObject->__set($name, $string); - }else{ - $this->vObject->__unset($name); - } - } - - /** - * Sets or unsets the Date and Time for a property. - * When $datetime is set to 'now', use the current time - * When $datetime is null, unset the property - * - * @param string $name - * @param DateTime $datetime - * @param int $dateType - * @return void - */ - public function setDateTime($name, $datetime, $dateType=Sabre\VObject\Property\DateTime::LOCALTZ) { - if ($datetime == 'now') { - $datetime = new DateTime(); - } - if ($datetime instanceof DateTime) { - $datetime_element = new Sabre\VObject\Property\DateTime($name); - $datetime_element->setDateTime($datetime, $dateType); - $this->vObject->__set($name, $datetime_element); - }else{ - $this->vObject->__unset($name); - } - } - - /** - * @todo Write documentation - * @param string $name - * @return string - */ - public function getAsString($name) { - return $this->vObject->__isset($name) ? - $this->vObject->__get($name)->value : - ''; - } - - /** - * @todo Write documentation - * @param string $name - * @return array - */ - public function getAsArray($name) { - $values = array(); - if ($this->vObject->__isset($name)) { - $values = explode(',', $this->getAsString($name)); - $values = array_map('trim', $values); - } - return $values; - } - - /** - * @todo Write documentation - * @param string $name - * @return array|OC_VObject|\Sabre\VObject\Property - */ - public function &__get($name) { - if ($name == 'children') { - return $this->vObject->children; - } - $return = $this->vObject->__get($name); - if ($return instanceof Sabre\VObject\Component) { - $return = new OC_VObject($return); - } - return $return; - } - - /** - * @todo Write documentation - * @param string $name - * @param string $value - */ - public function __set($name, $value) { - return $this->vObject->__set($name, $value); - } - - /** - * @todo Write documentation - * @param string $name - */ - public function __unset($name) { - return $this->vObject->__unset($name); - } - - /** - * @todo Write documentation - * @param string $name - * @return bool - */ - public function __isset($name) { - return $this->vObject->__isset($name); - } - - /** - * @todo Write documentation - * @param callable $function - * @param array $arguments - * @return mixed - */ - public function __call($function, $arguments) { - return call_user_func_array(array($this->vObject, $function), $arguments); - } -} diff --git a/lib/public/activity/iconsumer.php b/lib/public/activity/iconsumer.php index 97adc8a3ba0..a55110ababc 100644 --- a/lib/public/activity/iconsumer.php +++ b/lib/public/activity/iconsumer.php @@ -29,6 +29,12 @@ // This means that they should be used by apps instead of the internal ownCloud classes namespace OCP\Activity; +/** + * Interface IConsumer + * + * @package OCP\Activity + * @since 6.0.0 + */ interface IConsumer { /** * @param $app @@ -42,6 +48,7 @@ interface IConsumer { * @param $type * @param $priority * @return mixed + * @since 6.0.0 */ function receive($app, $subject, $subjectParams, $message, $messageParams, $file, $link, $affectedUser, $type, $priority ); } diff --git a/lib/public/activity/iextension.php b/lib/public/activity/iextension.php index 499fc90f7ca..19d1d2e83a0 100644 --- a/lib/public/activity/iextension.php +++ b/lib/public/activity/iextension.php @@ -31,6 +31,12 @@ // This means that they should be used by apps instead of the internal ownCloud classes namespace OCP\Activity; +/** + * Interface IExtension + * + * @package OCP\Activity + * @since 8.0.0 + */ interface IExtension { const PRIORITY_VERYLOW = 10; @@ -45,6 +51,7 @@ interface IExtension { * * @param string $languageCode * @return array|false + * @since 8.0.0 */ public function getNotificationTypes($languageCode); @@ -54,6 +61,7 @@ interface IExtension { * * @param string $method * @return array|false + * @since 8.0.0 */ public function getDefaultTypes($method); @@ -63,6 +71,7 @@ interface IExtension { * * @param string $type * @return string|false + * @since 8.0.0 */ public function getTypeIcon($type); @@ -77,6 +86,7 @@ interface IExtension { * @param boolean $highlightParams * @param string $languageCode * @return string|false + * @since 8.0.0 */ public function translate($app, $text, $params, $stripPath, $highlightParams, $languageCode); @@ -90,6 +100,7 @@ interface IExtension { * @param string $app * @param string $text * @return array|false + * @since 8.0.0 */ public function getSpecialParameterList($app, $text); @@ -99,6 +110,7 @@ interface IExtension { * * @param array $activity * @return integer|false + * @since 8.0.0 */ public function getGroupParameter($activity); @@ -108,6 +120,7 @@ interface IExtension { * If no further entries are to be added false is no be returned. * * @return array|false + * @since 8.0.0 */ public function getNavigation(); @@ -116,6 +129,7 @@ interface IExtension { * * @param string $filterValue * @return boolean + * @since 8.0.0 */ public function isFilterValid($filterValue); @@ -126,6 +140,7 @@ interface IExtension { * @param array $types * @param string $filter * @return array|false + * @since 8.0.0 */ public function filterNotificationTypes($types, $filter); @@ -137,6 +152,7 @@ interface IExtension { * * @param string $filter * @return array|false + * @since 8.0.0 */ public function getQueryForFilter($filter); } diff --git a/lib/public/activity/imanager.php b/lib/public/activity/imanager.php index 2e55c8b45b2..cadb37da03b 100644 --- a/lib/public/activity/imanager.php +++ b/lib/public/activity/imanager.php @@ -31,6 +31,12 @@ // This means that they should be used by apps instead of the internal ownCloud classes namespace OCP\Activity; +/** + * Interface IManager + * + * @package OCP\Activity + * @since 6.0.0 + */ interface IManager { /** @@ -45,6 +51,7 @@ interface IManager { * @param $type * @param $priority * @return mixed + * @since 6.0.0 */ function publishActivity($app, $subject, $subjectParams, $message, $messageParams, $file, $link, $affectedUser, $type, $priority); @@ -56,6 +63,7 @@ interface IManager { * * @param \Closure $callable * @return void + * @since 6.0.0 */ function registerConsumer(\Closure $callable); @@ -67,6 +75,7 @@ interface IManager { * * @param \Closure $callable * @return void + * @since 8.0.0 */ function registerExtension(\Closure $callable); @@ -74,18 +83,21 @@ interface IManager { * Will return additional notification types as specified by other apps * @param string $languageCode * @return array + * @since 8.0.0 */ function getNotificationTypes($languageCode); /** * @param string $method * @return array + * @since 8.0.0 */ function getDefaultTypes($method); /** * @param string $type * @return string + * @since 8.0.0 */ function getTypeIcon($type); @@ -97,6 +109,7 @@ interface IManager { * @param boolean $highlightParams * @param string $languageCode * @return string|false + * @since 8.0.0 */ function translate($app, $text, $params, $stripPath, $highlightParams, $languageCode); @@ -104,23 +117,27 @@ interface IManager { * @param string $app * @param string $text * @return array|false + * @since 8.0.0 */ function getSpecialParameterList($app, $text); /** * @param array $activity * @return integer|false + * @since 8.0.0 */ function getGroupParameter($activity); /** * @return array + * @since 8.0.0 */ function getNavigation(); /** * @param string $filterValue * @return boolean + * @since 8.0.0 */ function isFilterValid($filterValue); @@ -128,12 +145,14 @@ interface IManager { * @param array $types * @param string $filter * @return array + * @since 8.0.0 */ function filterNotificationTypes($types, $filter); /** * @param string $filter * @return array + * @since 8.0.0 */ function getQueryForFilter($filter); @@ -144,6 +163,7 @@ interface IManager { * * @return string * @throws \UnexpectedValueException If the token is invalid, does not exist or is not unique + * @since 8.1.0 */ public function getCurrentUserId(); } diff --git a/lib/public/api.php b/lib/public/api.php index e0c154dcebf..6b920b6cf52 100644 --- a/lib/public/api.php +++ b/lib/public/api.php @@ -33,20 +33,40 @@ namespace OCP; /** * This class provides functions to manage apps in ownCloud + * @since 5.0.0 */ class API { /** + * API authentication levels + * @since 8.1.0 + */ + const GUEST_AUTH = 0; + const USER_AUTH = 1; + const SUBADMIN_AUTH = 2; + const ADMIN_AUTH = 3; + + /** + * API Response Codes + * @since 8.1.0 + */ + const RESPOND_UNAUTHORISED = 997; + const RESPOND_SERVER_ERROR = 996; + const RESPOND_NOT_FOUND = 998; + const RESPOND_UNKNOWN_ERROR = 999; + + /** * registers an api call * @param string $method the http method * @param string $url the url to match * @param callable $action the function to run * @param string $app the id of the app registering the call - * @param int $authLevel the level of authentication required for the call (See OC_API constants) + * @param int $authLevel the level of authentication required for the call (See `self::*_AUTH` constants) * @param array $defaults * @param array $requirements + * @since 5.0.0 */ - public static function register($method, $url, $action, $app, $authLevel = OC_API::USER_AUTH, + public static function register($method, $url, $action, $app, $authLevel = self::USER_AUTH, $defaults = array(), $requirements = array()){ \OC_API::register($method, $url, $action, $app, $authLevel, $defaults, $requirements); } diff --git a/lib/public/app.php b/lib/public/app.php index df02008a7df..13f41025425 100644 --- a/lib/public/app.php +++ b/lib/public/app.php @@ -38,6 +38,7 @@ namespace OCP; /** * This class provides functions to manage apps in ownCloud + * @since 4.0.0 */ class App { /** @@ -45,7 +46,7 @@ class App { * @param array $data with all information * @return boolean * - * @deprecated This method is deprecated. Do not call it anymore. + * @deprecated 4.5.0 This method is deprecated. Do not call it anymore. * It'll remain in our public API for compatibility reasons. * */ @@ -71,8 +72,9 @@ class App { * @param array $data containing the data * @return boolean * - * @deprecated Use \OC::$server->getNavigationManager()->add() instead to + * @deprecated 8.1.0 Use \OC::$server->getNavigationManager()->add() instead to * register a closure, this helps to speed up all requests against ownCloud + * @since 4.0.0 */ public static function addNavigationEntry($data) { \OC::$server->getNavigationManager()->add($data); @@ -88,7 +90,8 @@ class App { * property from all other entries. The templates can use this for * highlighting the current position of the user. * - * @deprecated Use \OC::$server->getNavigationManager()->setActiveEntry() instead + * @deprecated 8.1.0 Use \OC::$server->getNavigationManager()->setActiveEntry() instead + * @since 4.0.0 */ public static function setActiveNavigationEntry( $id ) { return \OC_App::setActiveNavigationEntry( $id ); @@ -99,6 +102,7 @@ class App { * @param string $app appid * @param string $page page to be included * @return void + * @since 4.0.0 */ public static function registerPersonal( $app, $page ) { \OC_App::registerPersonal( $app, $page ); @@ -109,6 +113,7 @@ class App { * @param string $app string appid * @param string $page string page to be included * @return void + * @since 4.0.0 */ public static function registerAdmin( $app, $page ) { \OC_App::registerAdmin( $app, $page ); @@ -119,6 +124,7 @@ class App { * @param string $app id of the app or the path of the info.xml file * @param boolean $path (optional) * @return array + * @since 4.0.0 */ public static function getAppInfo( $app, $path=false ) { return \OC_App::getAppInfo( $app, $path); @@ -130,6 +136,7 @@ class App { * @return boolean * * This function checks whether or not an app is enabled. + * @since 4.0.0 */ public static function isEnabled( $app ) { return \OC_App::isEnabled( $app ); @@ -139,6 +146,7 @@ class App { * Check if the app is enabled, redirects to home if not * @param string $app * @return void + * @since 4.0.0 */ public static function checkAppEnabled( $app ) { \OC_Util::checkAppEnabled( $app ); @@ -148,6 +156,7 @@ class App { * Get the last version of the app, either from appinfo/version or from appinfo/info.xml * @param string $app * @return string + * @since 4.0.0 */ public static function getAppVersion( $app ) { return \OC_App::getAppVersion( $app ); diff --git a/lib/public/app/iappmanager.php b/lib/public/app/iappmanager.php index 69b8c335d67..7be5c921841 100644 --- a/lib/public/app/iappmanager.php +++ b/lib/public/app/iappmanager.php @@ -24,6 +24,12 @@ namespace OCP\App; use OCP\IUser; +/** + * Interface IAppManager + * + * @package OCP\App + * @since 8.0.0 + */ interface IAppManager { /** * Check if an app is enabled for user @@ -31,6 +37,7 @@ interface IAppManager { * @param string $appId * @param \OCP\IUser $user (optional) if not defined, the currently loggedin user will be used * @return bool + * @since 8.0.0 */ public function isEnabledForUser($appId, $user = null); @@ -39,6 +46,7 @@ interface IAppManager { * * @param string $appId * @return bool + * @since 8.0.0 */ public function isInstalled($appId); @@ -46,6 +54,7 @@ interface IAppManager { * Enable an app for every user * * @param string $appId + * @since 8.0.0 */ public function enableApp($appId); @@ -54,6 +63,7 @@ interface IAppManager { * * @param string $appId * @param \OCP\IGroup[] $groups + * @since 8.0.0 */ public function enableAppForGroups($appId, $groups); @@ -61,6 +71,7 @@ interface IAppManager { * Disable an app for every user * * @param string $appId + * @since 8.0.0 */ public function disableApp($appId); @@ -69,6 +80,7 @@ interface IAppManager { * * @param \OCP\IUser $user * @return string[] + * @since 8.1.0 */ public function getEnabledAppsForUser(IUser $user); @@ -76,11 +88,13 @@ interface IAppManager { * List all installed apps * * @return string[] + * @since 8.0.0 */ public function getInstalledApps(); /** * Clear the cached list of apps when enabling/disabling an app + * @since 8.1.0 */ public function clearAppsCache(); } diff --git a/lib/public/appframework/apicontroller.php b/lib/public/appframework/apicontroller.php index 0cb5b0c7d5b..90eea47d730 100644 --- a/lib/public/appframework/apicontroller.php +++ b/lib/public/appframework/apicontroller.php @@ -33,6 +33,7 @@ use OCP\IRequest; /** * Base class to inherit your controllers from that are used for RESTful APIs + * @since 7.0.0 */ abstract class ApiController extends Controller { @@ -44,14 +45,15 @@ abstract class ApiController extends Controller { * constructor of the controller * @param string $appName the name of the app * @param IRequest $request an instance of the request - * @param string $corsMethods: comma seperated string of HTTP verbs which + * @param string $corsMethods comma seperated string of HTTP verbs which * should be allowed for websites or webapps when calling your API, defaults to * 'PUT, POST, GET, DELETE, PATCH' - * @param string $corsAllowedHeaders: comma seperated string of HTTP headers + * @param string $corsAllowedHeaders comma seperated string of HTTP headers * which should be allowed for websites or webapps when calling your API, * defaults to 'Authorization, Content-Type, Accept' * @param int $corsMaxAge number in seconds how long a preflighted OPTIONS * request should be cached, defaults to 1728000 seconds + * @since 7.0.0 */ public function __construct($appName, IRequest $request, @@ -72,6 +74,7 @@ abstract class ApiController extends Controller { * @NoAdminRequired * @NoCSRFRequired * @PublicPage + * @since 7.0.0 */ public function preflightedCors() { if(isset($this->request->server['HTTP_ORIGIN'])) { diff --git a/lib/public/appframework/app.php b/lib/public/appframework/app.php index d070e0d4c83..bf4e14961f5 100644 --- a/lib/public/appframework/app.php +++ b/lib/public/appframework/app.php @@ -38,6 +38,7 @@ use OC\AppFramework\routing\RouteConfig; * * Any application must inherit this call - all controller instances to be used are * to be registered using IContainer::registerService + * @since 6.0.0 */ class App { @@ -50,6 +51,7 @@ class App { * @param string $topNamespace the namespace which should be prepended to * the transformed app id, defaults to OCA\ * @return string the starting namespace for the app + * @since 8.0.0 */ public static function buildAppNamespace($appId, $topNamespace='OCA\\') { return \OC\AppFramework\App::buildAppNamespace($appId, $topNamespace); @@ -58,6 +60,7 @@ class App { /** * @param array $urlParams an array with variables extracted from the routes + * @since 6.0.0 */ public function __construct($appName, $urlParams = array()) { $this->container = new \OC\AppFramework\DependencyInjection\DIContainer($appName, $urlParams); @@ -67,6 +70,7 @@ class App { /** * @return IAppContainer + * @since 6.0.0 */ public function getContainer() { return $this->container; @@ -88,6 +92,7 @@ class App { * * @param \OCP\Route\IRouter $router * @param array $routes + * @since 6.0.0 */ public function registerRoutes($router, $routes) { $routeConfig = new RouteConfig($this->container, $router, $routes); @@ -123,6 +128,7 @@ class App { * @param string $controllerName the name of the controller under which it is * stored in the DI container * @param string $methodName the method that you want to call + * @since 6.0.0 */ public function dispatch($controllerName, $methodName) { \OC\AppFramework\App::main($controllerName, $methodName, $this->container); diff --git a/lib/public/appframework/controller.php b/lib/public/appframework/controller.php index 944fe0383e1..b8986c0b772 100644 --- a/lib/public/appframework/controller.php +++ b/lib/public/appframework/controller.php @@ -34,32 +34,41 @@ namespace OCP\AppFramework; use OCP\AppFramework\Http\TemplateResponse; use OCP\AppFramework\Http\JSONResponse; use OCP\AppFramework\Http\DataResponse; +use OCP\AppFramework\Http\Response; use OCP\IRequest; /** * Base class to inherit your controllers from + * @since 6.0.0 */ abstract class Controller { /** * app name * @var string + * @since 7.0.0 */ protected $appName; /** * current request * @var \OCP\IRequest + * @since 6.0.0 */ protected $request; + /** + * @var array + * @since 7.0.0 + */ private $responders; /** * constructor of the controller * @param string $appName the name of the app * @param IRequest $request an instance of the request + * @since 6.0.0 - parameter $appName was added in 7.0.0 - parameter $app was removed in 7.0.0 */ public function __construct($appName, IRequest $request){ @@ -88,6 +97,7 @@ abstract class Controller { * Parses an HTTP accept header and returns the supported responder type * @param string $acceptHeader * @return string the responder type + * @since 7.0.0 */ public function getResponderByHTTPHeader($acceptHeader) { $headers = explode(',', $acceptHeader); @@ -112,6 +122,7 @@ abstract class Controller { * Registers a formatter for a type * @param string $format * @param \Closure $responder + * @since 7.0.0 */ protected function registerResponder($format, \Closure $responder) { $this->responders[$format] = $responder; @@ -125,6 +136,7 @@ abstract class Controller { * @param string $format the format for which a formatter has been registered * @throws \DomainException if format does not match a registered formatter * @return Response + * @since 7.0.0 */ public function buildResponse($response, $format='json') { if(array_key_exists($format, $this->responders)) { @@ -142,7 +154,7 @@ abstract class Controller { /** * Lets you access post and get parameters by the index - * @deprecated write your parameters as method arguments instead + * @deprecated 7.0.0 write your parameters as method arguments instead * @param string $key the key which you want to access in the URL Parameter * placeholder, $_POST or $_GET array. * The priority how they're returned is the following: @@ -151,6 +163,7 @@ abstract class Controller { * 3. GET parameters * @param string $default If the key is not found, this value will be returned * @return mixed the content of the array + * @since 6.0.0 */ public function params($key, $default=null){ return $this->request->getParam($key, $default); @@ -160,8 +173,9 @@ abstract class Controller { /** * Returns all params that were received, be it from the request * (as GET or POST) or through the URL by the route - * @deprecated use $this->request instead + * @deprecated 7.0.0 use $this->request instead * @return array the array with all parameters + * @since 6.0.0 */ public function getParams() { return $this->request->getParams(); @@ -170,8 +184,9 @@ abstract class Controller { /** * Returns the method of the request - * @deprecated use $this->request instead + * @deprecated 7.0.0 use $this->request instead * @return string the method of the request (POST, GET, etc) + * @since 6.0.0 */ public function method() { return $this->request->getMethod(); @@ -180,9 +195,10 @@ abstract class Controller { /** * Shortcut for accessing an uploaded file through the $_FILES array - * @deprecated use $this->request instead + * @deprecated 7.0.0 use $this->request instead * @param string $key the key that will be taken from the $_FILES array * @return array the file in the $_FILES element + * @since 6.0.0 */ public function getUploadedFile($key) { return $this->request->getUploadedFile($key); @@ -191,9 +207,10 @@ abstract class Controller { /** * Shortcut for getting env variables - * @deprecated use $this->request instead + * @deprecated 7.0.0 use $this->request instead * @param string $key the key that will be taken from the $_ENV array * @return array the value in the $_ENV element + * @since 6.0.0 */ public function env($key) { return $this->request->getEnv($key); @@ -202,9 +219,10 @@ abstract class Controller { /** * Shortcut for getting cookie variables - * @deprecated use $this->request instead + * @deprecated 7.0.0 use $this->request instead * @param string $key the key that will be taken from the $_COOKIE array * @return array the value in the $_COOKIE element + * @since 6.0.0 */ public function cookie($key) { return $this->request->getCookie($key); @@ -213,13 +231,14 @@ abstract class Controller { /** * Shortcut for rendering a template - * @deprecated return a template response instead + * @deprecated 7.0.0 return a template response instead * @param string $templateName the name of the template * @param array $params the template parameters in key => value structure * @param string $renderAs user renders a full page, blank only your template * admin an entry in the admin settings * @param string[] $headers set additional headers in name/value pairs * @return \OCP\AppFramework\Http\TemplateResponse containing the page + * @since 6.0.0 */ public function render($templateName, array $params=array(), $renderAs='user', array $headers=array()){ diff --git a/lib/public/appframework/db/doesnotexistexception.php b/lib/public/appframework/db/doesnotexistexception.php index 2d5d145c223..6df0477498c 100644 --- a/lib/public/appframework/db/doesnotexistexception.php +++ b/lib/public/appframework/db/doesnotexistexception.php @@ -27,6 +27,7 @@ namespace OCP\AppFramework\Db; /** * This is returned or should be returned when a find request does not find an * entry in the database + * @since 7.0.0 */ class DoesNotExistException extends \Exception { @@ -38,4 +39,4 @@ class DoesNotExistException extends \Exception { parent::__construct($msg); } -}
\ No newline at end of file +} diff --git a/lib/public/appframework/db/entity.php b/lib/public/appframework/db/entity.php index 1a9e9777fe4..a12f759357e 100644 --- a/lib/public/appframework/db/entity.php +++ b/lib/public/appframework/db/entity.php @@ -26,6 +26,7 @@ namespace OCP\AppFramework\Db; /** * @method integer getId() * @method void setId(integer $id) + * @since 7.0.0 */ abstract class Entity { @@ -40,6 +41,7 @@ abstract class Entity { * @param array $params the array which was obtained via $this->params('key') * in the controller * @return Entity + * @since 7.0.0 */ public static function fromParams(array $params) { $instance = new static(); @@ -56,6 +58,7 @@ abstract class Entity { /** * Maps the keys of the row array to the attributes * @param array $row the row to map onto the entity + * @since 7.0.0 */ public static function fromRow(array $row){ $instance = new static(); @@ -73,7 +76,8 @@ abstract class Entity { /** - * @return an array with attribute and type + * @return array with attribute and type + * @since 7.0.0 */ public function getFieldTypes() { return $this->_fieldTypes; @@ -82,12 +86,12 @@ abstract class Entity { /** * Marks the entity as clean needed for setting the id after the insertion + * @since 7.0.0 */ public function resetUpdatedFields(){ $this->_updatedFields = array(); } - protected function setter($name, $args) { // setters should only work for existing attributes if(property_exists($this, $name)){ @@ -108,7 +112,6 @@ abstract class Entity { } } - protected function getter($name) { // getters should only work for existing attributes if(property_exists($this, $name)){ @@ -125,6 +128,7 @@ abstract class Entity { * into an array: for instance setId will save Id in the * updated fields array so it can be easily used to create the * getter method + * @since 7.0.0 */ public function __call($methodName, $args){ $attr = lcfirst( substr($methodName, 3) ); @@ -154,6 +158,7 @@ abstract class Entity { * Transform a database columnname to a property * @param string $columnName the name of the column * @return string the property name + * @since 7.0.0 */ public function columnToProperty($columnName){ $parts = explode('_', $columnName); @@ -175,6 +180,7 @@ abstract class Entity { * Transform a property to a database column name * @param string $property the name of the property * @return string the column name + * @since 7.0.0 */ public function propertyToColumn($property){ $parts = preg_split('/(?=[A-Z])/', $property); @@ -194,6 +200,7 @@ abstract class Entity { /** * @return array array of updated fields for update query + * @since 7.0.0 */ public function getUpdatedFields(){ return $this->_updatedFields; @@ -216,6 +223,7 @@ abstract class Entity { * Warning: This doesn't result in a unique value * @param string $attributeName the name of the attribute, which value should be slugified * @return string slugified value + * @since 7.0.0 */ public function slugify($attributeName){ // toSlug should only work for existing attributes diff --git a/lib/public/appframework/db/mapper.php b/lib/public/appframework/db/mapper.php index 16a781f0ead..157bea36916 100644 --- a/lib/public/appframework/db/mapper.php +++ b/lib/public/appframework/db/mapper.php @@ -32,6 +32,7 @@ use OCP\IDb; /** * Simple parent class for inheriting your data access layer from. This class * may be subject to change in the future + * @since 7.0.0 */ abstract class Mapper { @@ -44,6 +45,7 @@ abstract class Mapper { * @param string $tableName the name of the table. set this to allow entity * @param string $entityClass the name of the entity that the sql should be * mapped to queries without using sql + * @since 7.0.0 */ public function __construct(IDBConnection $db, $tableName, $entityClass=null){ $this->db = $db; @@ -61,6 +63,7 @@ abstract class Mapper { /** * @return string the table name + * @since 7.0.0 */ public function getTableName(){ return $this->tableName; @@ -71,6 +74,7 @@ abstract class Mapper { * Deletes an entity from the table * @param Entity $entity the entity that should be deleted * @return Entity the deleted entity + * @since 7.0.0 - return value added in 8.1.0 */ public function delete(Entity $entity){ $sql = 'DELETE FROM `' . $this->tableName . '` WHERE `id` = ?'; @@ -84,6 +88,7 @@ abstract class Mapper { * Creates a new entry in the db from an entity * @param Entity $entity the entity that should be created * @return Entity the saved entity with the set id + * @since 7.0.0 */ public function insert(Entity $entity){ // get updated fields to save, fields have to be set using a setter to @@ -132,6 +137,7 @@ abstract class Mapper { * @throws \InvalidArgumentException if entity has no id * @param Entity $entity the entity that should be created * @return Entity the saved entity with the set id + * @since 7.0.0 - return value was added in 8.0.0 */ public function update(Entity $entity){ // if entity wasn't changed it makes no sense to run a db query @@ -216,6 +222,7 @@ abstract class Mapper { * @param int $limit the maximum number of rows * @param int $offset from which row we want to start * @return \PDOStatement the database query result + * @since 7.0.0 */ protected function execute($sql, array $params=[], $limit=null, $offset=null){ if ($this->db instanceof IDb) { @@ -264,6 +271,7 @@ abstract class Mapper { * @throws DoesNotExistException if the item does not exist * @throws MultipleObjectsReturnedException if more than one item exist * @return array the result as row + * @since 7.0.0 */ protected function findOneQuery($sql, array $params=[], $limit=null, $offset=null){ $stmt = $this->execute($sql, $params, $limit, $offset); @@ -289,6 +297,7 @@ abstract class Mapper { * from the current mapper name (MyEntityMapper -> MyEntity) * @param array $row the row which should be converted to an entity * @return Entity the entity + * @since 7.0.0 */ protected function mapRowToEntity($row) { return call_user_func($this->entityClass .'::fromRow', $row); @@ -302,6 +311,7 @@ abstract class Mapper { * @param int $limit the maximum number of rows * @param int $offset from which row we want to start * @return array all fetched entities + * @since 7.0.0 */ protected function findEntities($sql, array $params=[], $limit=null, $offset=null) { $stmt = $this->execute($sql, $params, $limit, $offset); @@ -328,6 +338,7 @@ abstract class Mapper { * @throws DoesNotExistException if the item does not exist * @throws MultipleObjectsReturnedException if more than one item exist * @return Entity the entity + * @since 7.0.0 */ protected function findEntity($sql, array $params=[], $limit=null, $offset=null){ return $this->mapRowToEntity($this->findOneQuery($sql, $params, $limit, $offset)); diff --git a/lib/public/appframework/db/multipleobjectsreturnedexception.php b/lib/public/appframework/db/multipleobjectsreturnedexception.php index 6aa4ea349dc..cdfb748b145 100644 --- a/lib/public/appframework/db/multipleobjectsreturnedexception.php +++ b/lib/public/appframework/db/multipleobjectsreturnedexception.php @@ -27,6 +27,7 @@ namespace OCP\AppFramework\Db; /** * This is returned or should be returned when a find request finds more than one * row + * @since 7.0.0 */ class MultipleObjectsReturnedException extends \Exception { @@ -38,4 +39,4 @@ class MultipleObjectsReturnedException extends \Exception { parent::__construct($msg); } -}
\ No newline at end of file +} diff --git a/lib/public/appframework/http.php b/lib/public/appframework/http.php index 095b8e30583..65b62ffd15a 100644 --- a/lib/public/appframework/http.php +++ b/lib/public/appframework/http.php @@ -30,6 +30,7 @@ namespace OCP\AppFramework; /** * Base class which contains constants for HTTP status codes + * @since 6.0.0 */ class Http { diff --git a/lib/public/appframework/http/contentsecuritypolicy.php b/lib/public/appframework/http/contentsecuritypolicy.php index 6c527879698..be4b6e60f97 100644 --- a/lib/public/appframework/http/contentsecuritypolicy.php +++ b/lib/public/appframework/http/contentsecuritypolicy.php @@ -35,6 +35,7 @@ use OCP\AppFramework\Http; * should require no modification at all for most use-cases. * * @package OCP\AppFramework\Http + * @since 8.1.0 */ class ContentSecurityPolicy { /** @var bool Whether inline JS snippets are allowed */ @@ -86,6 +87,7 @@ class ContentSecurityPolicy { * Whether inline JavaScript snippets are allowed or forbidden * @param bool $state * @return $this + * @since 8.1.0 */ public function allowInlineScript($state = false) { $this->inlineScriptAllowed = $state; @@ -96,6 +98,7 @@ class ContentSecurityPolicy { * Whether eval in JavaScript is allowed or forbidden * @param bool $state * @return $this + * @since 8.1.0 */ public function allowEvalScript($state = true) { $this->evalScriptAllowed= $state; @@ -107,6 +110,7 @@ class ContentSecurityPolicy { * allow JavaScript from all domains. * @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized. * @return $this + * @since 8.1.0 */ public function addAllowedScriptDomain($domain) { $this->allowedScriptDomains[] = $domain; @@ -117,6 +121,7 @@ class ContentSecurityPolicy { * Whether inline CSS snippets are allowed or forbidden * @param bool $state * @return $this + * @since 8.1.0 */ public function allowInlineStyle($state = true) { $this->inlineStyleAllowed = $state; @@ -128,6 +133,7 @@ class ContentSecurityPolicy { * CSS from all domains. * @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized. * @return $this + * @since 8.1.0 */ public function addAllowedStyleDomain($domain) { $this->allowedStyleDomains[] = $domain; @@ -139,6 +145,7 @@ class ContentSecurityPolicy { * fonts from all domains. * @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized. * @return $this + * @since 8.1.0 */ public function addAllowedFontDomain($domain) { $this->allowedFontDomains[] = $domain; @@ -150,6 +157,7 @@ class ContentSecurityPolicy { * images from all domains. * @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized. * @return $this + * @since 8.1.0 */ public function addAllowedImageDomain($domain) { $this->allowedImageDomains[] = $domain; @@ -160,6 +168,7 @@ class ContentSecurityPolicy { * To which remote domains the JS connect to. * @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized. * @return $this + * @since 8.1.0 */ public function addAllowedConnectDomain($domain) { $this->allowedConnectDomains[] = $domain; @@ -170,6 +179,7 @@ class ContentSecurityPolicy { * From whoch domains media elements can be embedded. * @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized. * @return $this + * @since 8.1.0 */ public function addAllowedMediaDomain($domain) { $this->allowedMediaDomains[] = $domain; @@ -180,6 +190,7 @@ class ContentSecurityPolicy { * From which domains objects such as <object>, <embed> or <applet> are executed * @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized. * @return $this + * @since 8.1.0 */ public function addAllowedObjectDomain($domain) { $this->allowedObjectDomains[] = $domain; @@ -190,6 +201,7 @@ class ContentSecurityPolicy { * Which domains can be embedded in an iframe * @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized. * @return $this + * @since 8.1.0 */ public function addAllowedFrameDomain($domain) { $this->allowedFrameDomains[] = $domain; @@ -200,6 +212,7 @@ class ContentSecurityPolicy { * Domains from which web-workers and nested browsing content can load elements * @param string $domain Domain to whitelist. Any passed value needs to be properly sanitized. * @return $this + * @since 8.1.0 */ public function addAllowedChildSrcDomain($domain) { $this->allowedChildSrcDomains[] = $domain; @@ -209,6 +222,7 @@ class ContentSecurityPolicy { /** * Get the generated Content-Security-Policy as a string * @return string + * @since 8.1.0 */ public function buildPolicy() { $policy = "default-src 'none';"; diff --git a/lib/public/appframework/http/datadisplayresponse.php b/lib/public/appframework/http/datadisplayresponse.php index ebb77950c96..35272d0f823 100644 --- a/lib/public/appframework/http/datadisplayresponse.php +++ b/lib/public/appframework/http/datadisplayresponse.php @@ -23,6 +23,12 @@ namespace OCP\AppFramework\Http; use OCP\AppFramework\Http; +/** + * Class DataDisplayResponse + * + * @package OCP\AppFramework\Http + * @since 8.1.0 + */ class DataDisplayResponse extends Response { /** @@ -36,6 +42,7 @@ class DataDisplayResponse extends Response { * @param string $data the data to display * @param int $statusCode the Http status code, defaults to 200 * @param array $headers additional key value based headers + * @since 8.1.0 */ public function __construct($data="", $statusCode=Http::STATUS_OK, $headers=[]) { @@ -48,6 +55,7 @@ class DataDisplayResponse extends Response { /** * Outputs data. No processing is done. * @return string + * @since 8.1.0 */ public function render() { return $this->data; @@ -58,6 +66,7 @@ class DataDisplayResponse extends Response { * Sets values in the data * @param string $data the data to display * @return DataDisplayResponse Reference to this object + * @since 8.1.0 */ public function setData($data){ $this->data = $data; @@ -69,6 +78,7 @@ class DataDisplayResponse extends Response { /** * Used to get the set parameters * @return string the data + * @since 8.1.0 */ public function getData(){ return $this->data; diff --git a/lib/public/appframework/http/datadownloadresponse.php b/lib/public/appframework/http/datadownloadresponse.php index 837023acb8a..612386f9801 100644 --- a/lib/public/appframework/http/datadownloadresponse.php +++ b/lib/public/appframework/http/datadownloadresponse.php @@ -21,6 +21,12 @@ */ namespace OCP\AppFramework\Http; +/** + * Class DataDownloadResponse + * + * @package OCP\AppFramework\Http + * @since 8.0.0 + */ class DataDownloadResponse extends DownloadResponse { /** * @var string @@ -32,6 +38,7 @@ class DataDownloadResponse extends DownloadResponse { * @param string $data text to be downloaded * @param string $filename the name that the downloaded file should have * @param string $contentType the mimetype that the downloaded file should have + * @since 8.0.0 */ public function __construct($data, $filename, $contentType) { $this->data = $data; @@ -40,6 +47,7 @@ class DataDownloadResponse extends DownloadResponse { /** * @param string $data + * @since 8.0.0 */ public function setData($data) { $this->data = $data; @@ -47,6 +55,7 @@ class DataDownloadResponse extends DownloadResponse { /** * @return string + * @since 8.0.0 */ public function render() { return $this->data; diff --git a/lib/public/appframework/http/dataresponse.php b/lib/public/appframework/http/dataresponse.php index b86686ffe82..555faa6ea1a 100644 --- a/lib/public/appframework/http/dataresponse.php +++ b/lib/public/appframework/http/dataresponse.php @@ -32,6 +32,7 @@ use OCP\AppFramework\Http; /** * A generic DataResponse class that is used to return generic data responses * for responders to transform + * @since 8.0.0 */ class DataResponse extends Response { @@ -46,6 +47,7 @@ class DataResponse extends Response { * @param array|object $data the object or array that should be transformed * @param int $statusCode the Http status code, defaults to 200 * @param array $headers additional key value based headers + * @since 8.0.0 */ public function __construct($data=array(), $statusCode=Http::STATUS_OK, array $headers=array()) { @@ -59,6 +61,7 @@ class DataResponse extends Response { * Sets values in the data json array * @param array|object $data an array or object which will be transformed * @return DataResponse Reference to this object + * @since 8.0.0 */ public function setData($data){ $this->data = $data; @@ -70,6 +73,7 @@ class DataResponse extends Response { /** * Used to get the set parameters * @return array the data + * @since 8.0.0 */ public function getData(){ return $this->data; diff --git a/lib/public/appframework/http/downloadresponse.php b/lib/public/appframework/http/downloadresponse.php index dfcc65ffea5..0b9a8bcc6d8 100644 --- a/lib/public/appframework/http/downloadresponse.php +++ b/lib/public/appframework/http/downloadresponse.php @@ -27,6 +27,7 @@ namespace OCP\AppFramework\Http; /** * Prompts the user to download the a file + * @since 7.0.0 */ class DownloadResponse extends \OCP\AppFramework\Http\Response { @@ -37,6 +38,7 @@ class DownloadResponse extends \OCP\AppFramework\Http\Response { * Creates a response that prompts the user to download the file * @param string $filename the name that the downloaded file should have * @param string $contentType the mimetype that the downloaded file should have + * @since 7.0.0 */ public function __construct($filename, $contentType) { $this->filename = $filename; diff --git a/lib/public/appframework/http/icallbackresponse.php b/lib/public/appframework/http/icallbackresponse.php index 2f27a164897..87da73a5ad5 100644 --- a/lib/public/appframework/http/icallbackresponse.php +++ b/lib/public/appframework/http/icallbackresponse.php @@ -27,6 +27,7 @@ namespace OCP\AppFramework\Http; * Interface ICallbackResponse * * @package OCP\AppFramework\Http + * @since 8.1.0 */ interface ICallbackResponse { @@ -34,6 +35,7 @@ interface ICallbackResponse { * Outputs the content that should be printed * * @param IOutput $output a small wrapper that handles output + * @since 8.1.0 */ function callback(IOutput $output); diff --git a/lib/public/appframework/http/ioutput.php b/lib/public/appframework/http/ioutput.php index 8fd362daf16..ad90dc1e4cb 100644 --- a/lib/public/appframework/http/ioutput.php +++ b/lib/public/appframework/http/ioutput.php @@ -24,11 +24,13 @@ namespace OCP\AppFramework\Http; /** * Very thin wrapper class to make output testable + * @since 8.1.0 */ interface IOutput { /** * @param string $out + * @since 8.1.0 */ public function setOutput($out); @@ -36,21 +38,25 @@ interface IOutput { * @param string $path * * @return bool false if an error occured + * @since 8.1.0 */ public function setReadfile($path); /** * @param string $header + * @since 8.1.0 */ public function setHeader($header); /** * @return int returns the current http response code + * @since 8.1.0 */ public function getHttpResponseCode(); /** * @param int $code sets the http status code + * @since 8.1.0 */ public function setHttpResponseCode($code); @@ -62,6 +68,7 @@ interface IOutput { * @param string $domain * @param bool $secure * @param bool $httponly + * @since 8.1.0 */ public function setCookie($name, $value, $expire, $path, $domain, $secure, $httponly); diff --git a/lib/public/appframework/http/jsonresponse.php b/lib/public/appframework/http/jsonresponse.php index 492811043f1..1a770109d45 100644 --- a/lib/public/appframework/http/jsonresponse.php +++ b/lib/public/appframework/http/jsonresponse.php @@ -33,6 +33,7 @@ use OCP\AppFramework\Http; /** * A renderer for JSON calls + * @since 6.0.0 */ class JSONResponse extends Response { @@ -47,6 +48,7 @@ class JSONResponse extends Response { * constructor of JSONResponse * @param array|object $data the object or array that should be transformed * @param int $statusCode the Http status code, defaults to 200 + * @since 6.0.0 */ public function __construct($data=array(), $statusCode=Http::STATUS_OK) { $this->data = $data; @@ -58,6 +60,7 @@ class JSONResponse extends Response { /** * Returns the rendered json * @return string the rendered json + * @since 6.0.0 */ public function render(){ return json_encode($this->data); @@ -68,6 +71,7 @@ class JSONResponse extends Response { * @param array|object $data an array or object which will be transformed * to JSON * @return JSONResponse Reference to this object + * @since 6.0.0 - return value was added in 7.0.0 */ public function setData($data){ $this->data = $data; @@ -79,6 +83,7 @@ class JSONResponse extends Response { /** * Used to get the set parameters * @return array the data + * @since 6.0.0 */ public function getData(){ return $this->data; diff --git a/lib/public/appframework/http/notfoundresponse.php b/lib/public/appframework/http/notfoundresponse.php index 21f0461f5e6..8f59384faf1 100644 --- a/lib/public/appframework/http/notfoundresponse.php +++ b/lib/public/appframework/http/notfoundresponse.php @@ -26,15 +26,20 @@ use OCP\Template; /** * A generic 404 response showing an 404 error page as well to the end-user + * @since 8.1.0 */ class NotFoundResponse extends Response { + /** + * @since 8.1.0 + */ public function __construct() { $this->setStatus(404); } /** * @return string + * @since 8.1.0 */ public function render() { $template = new Template('core', '404', 'guest'); diff --git a/lib/public/appframework/http/ocsresponse.php b/lib/public/appframework/http/ocsresponse.php index 4cc1ba80d03..52d3c2fa665 100644 --- a/lib/public/appframework/http/ocsresponse.php +++ b/lib/public/appframework/http/ocsresponse.php @@ -33,6 +33,7 @@ use OC_OCS; /** * A renderer for OCS responses + * @since 8.1.0 */ class OCSResponse extends Response { @@ -58,13 +59,14 @@ class OCSResponse extends Response { * @param int $dimension * @param int|string $itemscount * @param int|string $itemsperpage + * @since 8.1.0 */ public function __construct($format, $status, $statuscode, $message, $data=[], $tag='', $tagattribute='', $dimension=-1, $itemscount='', $itemsperpage='') { $this->format = $format; - $this->status = $status; + $this->setStatus($status); $this->statuscode = $statuscode; $this->message = $message; $this->data = $data; @@ -86,14 +88,17 @@ class OCSResponse extends Response { } } - + /** + * @return string + * @since 8.1.0 + */ public function render() { return OC_OCS::generateXml( - $this->format, $this->status, $this->statuscode, $this->message, + $this->format, $this->getStatus(), $this->statuscode, $this->message, $this->data, $this->tag, $this->tagattribute, $this->dimension, $this->itemscount, $this->itemsperpage ); } -}
\ No newline at end of file +} diff --git a/lib/public/appframework/http/redirectresponse.php b/lib/public/appframework/http/redirectresponse.php index a9108be8c04..41a2e48035e 100644 --- a/lib/public/appframework/http/redirectresponse.php +++ b/lib/public/appframework/http/redirectresponse.php @@ -31,6 +31,7 @@ use OCP\AppFramework\Http; /** * Redirects to a different URL + * @since 7.0.0 */ class RedirectResponse extends Response { @@ -39,6 +40,7 @@ class RedirectResponse extends Response { /** * Creates a response that redirects to a url * @param string $redirectURL the url to redirect to + * @since 7.0.0 */ public function __construct($redirectURL) { $this->redirectURL = $redirectURL; @@ -49,6 +51,7 @@ class RedirectResponse extends Response { /** * @return string the url to redirect + * @since 7.0.0 */ public function getRedirectURL() { return $this->redirectURL; diff --git a/lib/public/appframework/http/response.php b/lib/public/appframework/http/response.php index b79777c5f1d..8fd5fdd8f53 100644 --- a/lib/public/appframework/http/response.php +++ b/lib/public/appframework/http/response.php @@ -37,6 +37,7 @@ use OCP\AppFramework\Http; * Base class for responses. Also used to just send headers. * * It handles headers, HTTP status code, last modified and ETag. + * @since 6.0.0 */ class Response { @@ -85,6 +86,7 @@ class Response { * @param int $cacheSeconds the amount of seconds that should be cached * if 0 then caching will be disabled * @return $this + * @since 6.0.0 - return value was added in 7.0.0 */ public function cacheFor($cacheSeconds) { @@ -106,6 +108,7 @@ class Response { * to null cookie will be considered as session * cookie. * @return $this + * @since 8.0.0 */ public function addCookie($name, $value, \DateTime $expireDate = null) { $this->cookies[$name] = array('value' => $value, 'expireDate' => $expireDate); @@ -117,6 +120,7 @@ class Response { * Set the specified cookies * @param array $cookies array('foo' => array('value' => 'bar', 'expire' => null)) * @return $this + * @since 8.0.0 */ public function setCookies(array $cookies) { $this->cookies = $cookies; @@ -128,6 +132,7 @@ class Response { * Invalidates the specified cookie * @param string $name * @return $this + * @since 8.0.0 */ public function invalidateCookie($name) { $this->addCookie($name, 'expired', new \DateTime('1971-01-01 00:00')); @@ -138,6 +143,7 @@ class Response { * Invalidates the specified cookies * @param array $cookieNames array('foo', 'bar') * @return $this + * @since 8.0.0 */ public function invalidateCookies(array $cookieNames) { foreach($cookieNames as $cookieName) { @@ -149,6 +155,7 @@ class Response { /** * Returns the cookies * @return array + * @since 8.0.0 */ public function getCookies() { return $this->cookies; @@ -160,6 +167,7 @@ class Response { * @param string $name The name of the HTTP header * @param string $value The value, null will delete it * @return $this + * @since 6.0.0 - return value was added in 7.0.0 */ public function addHeader($name, $value) { $name = trim($name); // always remove leading and trailing whitespace @@ -180,6 +188,7 @@ class Response { * Set the headers * @param array $headers value header pairs * @return $this + * @since 8.0.0 */ public function setHeaders(array $headers) { $this->headers = $headers; @@ -191,6 +200,7 @@ class Response { /** * Returns the set headers * @return array the headers + * @since 6.0.0 */ public function getHeaders() { $mergeWith = []; @@ -217,6 +227,7 @@ class Response { /** * By default renders no output * @return null + * @since 6.0.0 */ public function render() { return null; @@ -224,10 +235,11 @@ class Response { /** - * Set response status - * @param int $status a HTTP status code, see also the STATUS constants - * @return Response Reference to this object - */ + * Set response status + * @param int $status a HTTP status code, see also the STATUS constants + * @return Response Reference to this object + * @since 6.0.0 - return value was added in 7.0.0 + */ public function setStatus($status) { $this->status = $status; @@ -238,6 +250,7 @@ class Response { * Set a Content-Security-Policy * @param ContentSecurityPolicy $csp Policy to set for the response object * @return $this + * @since 8.1.0 */ public function setContentSecurityPolicy(ContentSecurityPolicy $csp) { $this->contentSecurityPolicy = $csp; @@ -248,6 +261,7 @@ class Response { * Get the currently used Content-Security-Policy * @return ContentSecurityPolicy|null Used Content-Security-Policy or null if * none specified. + * @since 8.1.0 */ public function getContentSecurityPolicy() { return $this->contentSecurityPolicy; @@ -256,6 +270,7 @@ class Response { /** * Get response status + * @since 6.0.0 */ public function getStatus() { return $this->status; @@ -265,6 +280,7 @@ class Response { /** * Get the ETag * @return string the etag + * @since 6.0.0 */ public function getETag() { return $this->ETag; @@ -274,6 +290,7 @@ class Response { /** * Get "last modified" date * @return \DateTime RFC2822 formatted last modified date + * @since 6.0.0 */ public function getLastModified() { return $this->lastModified; @@ -284,6 +301,7 @@ class Response { * Set the ETag * @param string $ETag * @return Response Reference to this object + * @since 6.0.0 - return value was added in 7.0.0 */ public function setETag($ETag) { $this->ETag = $ETag; @@ -296,6 +314,7 @@ class Response { * Set "last modified" date * @param \DateTime $lastModified * @return Response Reference to this object + * @since 6.0.0 - return value was added in 7.0.0 */ public function setLastModified($lastModified) { $this->lastModified = $lastModified; diff --git a/lib/public/appframework/http/streamresponse.php b/lib/public/appframework/http/streamresponse.php index 057c395d84f..625b3d62278 100644 --- a/lib/public/appframework/http/streamresponse.php +++ b/lib/public/appframework/http/streamresponse.php @@ -28,6 +28,7 @@ use OCP\AppFramework\Http; * Class StreamResponse * * @package OCP\AppFramework\Http + * @since 8.1.0 */ class StreamResponse extends Response implements ICallbackResponse { /** @var string */ @@ -35,6 +36,7 @@ class StreamResponse extends Response implements ICallbackResponse { /** * @param string $filePath the path to the file which should be streamed + * @since 8.1.0 */ public function __construct ($filePath) { $this->filePath = $filePath; @@ -45,6 +47,7 @@ class StreamResponse extends Response implements ICallbackResponse { * Streams the file using readfile * * @param IOutput $output a small wrapper that handles output + * @since 8.1.0 */ public function callback (IOutput $output) { // handle caching diff --git a/lib/public/appframework/http/templateresponse.php b/lib/public/appframework/http/templateresponse.php index 209b069c89a..961903a8eab 100644 --- a/lib/public/appframework/http/templateresponse.php +++ b/lib/public/appframework/http/templateresponse.php @@ -32,6 +32,7 @@ namespace OCP\AppFramework\Http; /** * Response for a normal template + * @since 6.0.0 */ class TemplateResponse extends Response { @@ -66,6 +67,7 @@ class TemplateResponse extends Response { * @param array $params an array of parameters which should be passed to the * template * @param string $renderAs how the page should be rendered, defaults to user + * @since 6.0.0 - parameters $params and $renderAs were added in 7.0.0 */ public function __construct($appName, $templateName, array $params=array(), $renderAs='user') { @@ -81,6 +83,7 @@ class TemplateResponse extends Response { * @param array $params an array with key => value structure which sets template * variables * @return TemplateResponse Reference to this object + * @since 6.0.0 - return value was added in 7.0.0 */ public function setParams(array $params){ $this->params = $params; @@ -92,6 +95,7 @@ class TemplateResponse extends Response { /** * Used for accessing the set parameters * @return array the params + * @since 6.0.0 */ public function getParams(){ return $this->params; @@ -101,6 +105,7 @@ class TemplateResponse extends Response { /** * Used for accessing the name of the set template * @return string the name of the used template + * @since 6.0.0 */ public function getTemplateName(){ return $this->templateName; @@ -114,6 +119,7 @@ class TemplateResponse extends Response { * normal page including footer and header and blank * just renders the plain template * @return TemplateResponse Reference to this object + * @since 6.0.0 - return value was added in 7.0.0 */ public function renderAs($renderAs){ $this->renderAs = $renderAs; @@ -125,6 +131,7 @@ class TemplateResponse extends Response { /** * Returns the set renderAs * @return string the renderAs value + * @since 6.0.0 */ public function getRenderAs(){ return $this->renderAs; @@ -134,6 +141,7 @@ class TemplateResponse extends Response { /** * Returns the rendered html * @return string the rendered html + * @since 6.0.0 */ public function render(){ // \OCP\Template needs an empty string instead of 'blank' for an unwrapped response diff --git a/lib/public/appframework/iapi.php b/lib/public/appframework/iapi.php index a8df1552b26..2de2a360453 100644 --- a/lib/public/appframework/iapi.php +++ b/lib/public/appframework/iapi.php @@ -33,7 +33,7 @@ namespace OCP\AppFramework; /** * A few very basic and frequently used API functions are combined in here - * @deprecated + * @deprecated 8.0.0 */ interface IApi { @@ -41,14 +41,14 @@ interface IApi { /** * Gets the userid of the current user * @return string the user id of the current user - * @deprecated Use \OC::$server->getUserSession()->getUser()->getUID() + * @deprecated 8.0.0 Use \OC::$server->getUserSession()->getUser()->getUID() */ function getUserId(); /** * Adds a new javascript file - * @deprecated include javascript and css in template files + * @deprecated 8.0.0 include javascript and css in template files * @param string $scriptName the name of the javascript in js/ without the suffix * @param string $appName the name of the app, defaults to the current one * @return void @@ -58,7 +58,7 @@ interface IApi { /** * Adds a new css file - * @deprecated include javascript and css in template files + * @deprecated 8.0.0 include javascript and css in template files * @param string $styleName the name of the css file in css/without the suffix * @param string $appName the name of the app, defaults to the current one * @return void @@ -67,7 +67,7 @@ interface IApi { /** - * @deprecated include javascript and css in template files + * @deprecated 8.0.0 include javascript and css in template files * shorthand for addScript for files in the 3rdparty directory * @param string $name the name of the file without the suffix * @return void @@ -76,7 +76,7 @@ interface IApi { /** - * @deprecated include javascript and css in template files + * @deprecated 8.0.0 include javascript and css in template files * shorthand for addStyle for files in the 3rdparty directory * @param string $name the name of the file without the suffix * @return void @@ -86,7 +86,7 @@ interface IApi { /** * Checks if an app is enabled - * @deprecated communication between apps should happen over built in + * @deprecated 8.0.0 communication between apps should happen over built in * callbacks or interfaces (check the contacts and calendar managers) * Checks if an app is enabled * also use \OC::$server->getAppManager()->isEnabledForUser($appName) diff --git a/lib/public/appframework/iappcontainer.php b/lib/public/appframework/iappcontainer.php index a577d31ed93..64b1082aa97 100644 --- a/lib/public/appframework/iappcontainer.php +++ b/lib/public/appframework/iappcontainer.php @@ -32,51 +32,57 @@ use OCP\IContainer; * @package OCP\AppFramework * * This container interface provides short cuts for app developers to access predefined app service. + * @since 6.0.0 */ interface IAppContainer extends IContainer { /** * used to return the appname of the set application * @return string the name of your application + * @since 6.0.0 */ function getAppName(); /** - * @deprecated implements only deprecated methods + * @deprecated 8.0.0 implements only deprecated methods * @return IApi + * @since 6.0.0 */ function getCoreApi(); /** * @return \OCP\IServerContainer + * @since 6.0.0 */ function getServer(); /** * @param string $middleWare * @return boolean + * @since 6.0.0 */ function registerMiddleWare($middleWare); /** - * @deprecated use IUserSession->isLoggedIn() + * @deprecated 8.0.0 use IUserSession->isLoggedIn() * @return boolean + * @since 6.0.0 */ function isLoggedIn(); /** - * @deprecated use IGroupManager->isAdmin($userId) + * @deprecated 8.0.0 use IGroupManager->isAdmin($userId) * @return boolean - * @deprecated use the groupmanager instead to find out if the user is in - * the admin group + * @since 6.0.0 */ function isAdminUser(); /** - * @deprecated use the ILogger instead + * @deprecated 8.0.0 use the ILogger instead * @param string $message * @param string $level * @return mixed + * @since 6.0.0 */ function log($message, $level); diff --git a/lib/public/appframework/middleware.php b/lib/public/appframework/middleware.php index c7c46347623..6c75a2dfc74 100644 --- a/lib/public/appframework/middleware.php +++ b/lib/public/appframework/middleware.php @@ -37,6 +37,7 @@ use OCP\AppFramework\Http\Response; * deal with possible exceptions raised in the controller methods. * They're modeled after Django's middleware system: * https://docs.djangoproject.com/en/dev/topics/http/middleware/ + * @since 6.0.0 */ abstract class Middleware { @@ -48,6 +49,7 @@ abstract class Middleware { * @param Controller $controller the controller that is being called * @param string $methodName the name of the method that will be called on * the controller + * @since 6.0.0 */ public function beforeController($controller, $methodName){ @@ -67,6 +69,7 @@ abstract class Middleware { * @param \Exception $exception the thrown exception * @throws \Exception the passed in exception if it cant handle it * @return Response a Response object in case that the exception was handled + * @since 6.0.0 */ public function afterException($controller, $methodName, \Exception $exception){ throw $exception; @@ -82,6 +85,7 @@ abstract class Middleware { * the controller * @param Response $response the generated response from the controller * @return Response a Response object + * @since 6.0.0 */ public function afterController($controller, $methodName, Response $response){ return $response; @@ -97,6 +101,7 @@ abstract class Middleware { * the controller * @param string $output the generated output from a response * @return string the output that should be printed + * @since 6.0.0 */ public function beforeOutput($controller, $methodName, $output){ return $output; diff --git a/lib/public/appframework/ocscontroller.php b/lib/public/appframework/ocscontroller.php index e3fca47e487..602731fe761 100644 --- a/lib/public/appframework/ocscontroller.php +++ b/lib/public/appframework/ocscontroller.php @@ -34,6 +34,7 @@ use OCP\IRequest; /** * Base class to inherit your controllers from that are used for RESTful APIs + * @since 8.1.0 */ abstract class OCSController extends ApiController { @@ -41,14 +42,15 @@ abstract class OCSController extends ApiController { * constructor of the controller * @param string $appName the name of the app * @param IRequest $request an instance of the request - * @param string $corsMethods: comma seperated string of HTTP verbs which + * @param string $corsMethods comma seperated string of HTTP verbs which * should be allowed for websites or webapps when calling your API, defaults to * 'PUT, POST, GET, DELETE, PATCH' - * @param string $corsAllowedHeaders: comma seperated string of HTTP headers + * @param string $corsAllowedHeaders comma seperated string of HTTP headers * which should be allowed for websites or webapps when calling your API, * defaults to 'Authorization, Content-Type, Accept' * @param int $corsMaxAge number in seconds how long a preflighted OPTIONS * request should be cached, defaults to 1728000 seconds + * @since 8.1.0 */ public function __construct($appName, IRequest $request, @@ -70,6 +72,7 @@ abstract class OCSController extends ApiController { * Unwrap data and build ocs response * @param string $format json or xml * @param array|DataResponse $data the data which should be transformed + * @since 8.1.0 */ private function buildOCSResponse($format, $data) { if ($data instanceof DataResponse) { diff --git a/lib/public/appframework/queryexception.php b/lib/public/appframework/queryexception.php index bf038e19976..c8cd0cfe9fb 100644 --- a/lib/public/appframework/queryexception.php +++ b/lib/public/appframework/queryexception.php @@ -24,5 +24,10 @@ namespace OCP\AppFramework; use Exception; - +/** + * Class QueryException + * + * @package OCP\AppFramework + * @since 8.1.0 + */ class QueryException extends Exception {} diff --git a/lib/public/appframework/utility/icontrollermethodreflector.php b/lib/public/appframework/utility/icontrollermethodreflector.php index 39cf99515c0..a3b57cf6936 100644 --- a/lib/public/appframework/utility/icontrollermethodreflector.php +++ b/lib/public/appframework/utility/icontrollermethodreflector.php @@ -28,12 +28,14 @@ namespace OCP\AppFramework\Utility; * Reads and parses annotations from doc comments * * @package OCP\AppFramework\Utility + * @since 8.0.0 */ interface IControllerMethodReflector { /** * @param object $object an object or classname * @param string $method the method which we want to inspect + * @since 8.0.0 */ public function reflect($object, $method); @@ -44,11 +46,13 @@ interface IControllerMethodReflector { * parsed * @return string|null type in the type parameters (@param int $something) * would return int or null if not existing + * @since 8.0.0 */ public function getType($parameter); /** * @return array the arguments of the method with key => default value + * @since 8.0.0 */ public function getParameters(); @@ -57,7 +61,8 @@ interface IControllerMethodReflector { * * @param string $name the name of the annotation * @return bool true if the annotation is found + * @since 8.0.0 */ public function hasAnnotation($name); -}
\ No newline at end of file +} diff --git a/lib/public/appframework/utility/itimefactory.php b/lib/public/appframework/utility/itimefactory.php index 54013adfbf4..6fe2fab2557 100644 --- a/lib/public/appframework/utility/itimefactory.php +++ b/lib/public/appframework/utility/itimefactory.php @@ -26,11 +26,13 @@ namespace OCP\AppFramework\Utility; /** * Needed to mock calls to time() + * @since 8.0.0 */ interface ITimeFactory { /** * @return int the result of a call to time() + * @since 8.0.0 */ public function getTime(); diff --git a/lib/public/authentication/iapachebackend.php b/lib/public/authentication/iapachebackend.php index 343873a115c..51ca57788f3 100644 --- a/lib/public/authentication/iapachebackend.php +++ b/lib/public/authentication/iapachebackend.php @@ -29,12 +29,19 @@ // This means that they should be used by apps instead of the internal ownCloud classes namespace OCP\Authentication; +/** + * Interface IApacheBackend + * + * @package OCP\Authentication + * @since 6.0.0 + */ interface IApacheBackend { /** * In case the user has been authenticated by Apache true is returned. * * @return boolean whether Apache reports a user as currently logged in. + * @since 6.0.0 */ public function isSessionActive(); @@ -43,12 +50,14 @@ interface IApacheBackend { * supply any attribute(s) which are valid for <a>. * * @return string with one or more HTML attributes. + * @since 6.0.0 */ public function getLogoutAttribute(); /** * Return the id of the current user * @return string + * @since 6.0.0 */ public function getCurrentUserId(); diff --git a/lib/public/backgroundjob.php b/lib/public/backgroundjob.php index 1286a4bbff5..176c1d6e1ae 100644 --- a/lib/public/backgroundjob.php +++ b/lib/public/backgroundjob.php @@ -47,6 +47,7 @@ use \OC\BackgroundJob\JobList; * A regular Job will be executed every time cron.php is run, a QueuedJob will only run once and a TimedJob * will only run at a specific interval which is to be specified in the constructor of the job by calling * $this->setInterval($interval) with $interval in seconds. + * @since 4.5.0 */ class BackgroundJob { /** @@ -56,9 +57,10 @@ class BackgroundJob { * * This method returns the type how background jobs are executed. If the user * did not select something, the type is ajax. + * @since 5.0.0 */ public static function getExecutionType() { - return \OC_BackgroundJob::getExecutionType(); + return \OC::$server->getConfig()->getAppValue('core', 'backgroundjobs_mode', 'ajax'); } /** @@ -69,14 +71,19 @@ class BackgroundJob { * * This method sets the execution type of the background jobs. Possible types * are "none", "ajax", "webcron", "cron" + * @since 5.0.0 */ public static function setExecutionType($type) { - return \OC_BackgroundJob::setExecutionType($type); + if( !in_array( $type, array('none', 'ajax', 'webcron', 'cron'))) { + return false; + } + \OC::$server->getConfig()->setAppValue('core', 'backgroundjobs_mode', $type); } /** * @param string $job * @param mixed $argument + * @since 6.0.0 */ public static function registerJob($job, $argument = null) { $jobList = \OC::$server->getJobList(); @@ -84,11 +91,12 @@ class BackgroundJob { } /** - * @deprecated + * @deprecated 6.0.0 * creates a regular task * @param string $klass class name * @param string $method method name * @return boolean|null + * @since 4.5.0 */ public static function addRegularTask($klass, $method) { if (!\OC::needUpgrade()) { @@ -98,11 +106,12 @@ class BackgroundJob { } /** - * @deprecated + * @deprecated 6.0.0 * gets all regular tasks * @return array * * key is string "$klass-$method", value is array( $klass, $method ) + * @since 4.5.0 */ static public function allRegularTasks() { $jobList = \OC::$server->getJobList(); @@ -118,10 +127,11 @@ class BackgroundJob { } /** - * @deprecated + * @deprecated 6.0.0 * Gets one queued task * @param int $id ID of the task * @return BackgroundJob\IJob|null + * @since 4.5.0 */ public static function findQueuedTask($id) { $jobList = \OC::$server->getJobList(); @@ -129,9 +139,10 @@ class BackgroundJob { } /** - * @deprecated + * @deprecated 6.0.0 * Gets all queued tasks * @return array an array of associative arrays + * @since 4.5.0 */ public static function allQueuedTasks() { $jobList = \OC::$server->getJobList(); @@ -148,10 +159,11 @@ class BackgroundJob { } /** - * @deprecated + * @deprecated 6.0.0 * Gets all queued tasks of a specific app * @param string $app app name * @return array an array of associative arrays + * @since 4.5.0 */ public static function queuedTaskWhereAppIs($app) { $jobList = \OC::$server->getJobList(); @@ -170,13 +182,14 @@ class BackgroundJob { } /** - * @deprecated + * @deprecated 6.0.0 * queues a task * @param string $app app name * @param string $class class name * @param string $method method name * @param string $parameters all useful data as text * @return boolean id of task + * @since 4.5.0 */ public static function addQueuedTask($app, $class, $method, $parameters) { self::registerJob('OC\BackgroundJob\Legacy\QueuedJob', array('app' => $app, 'klass' => $class, 'method' => $method, 'parameters' => $parameters)); @@ -184,12 +197,13 @@ class BackgroundJob { } /** - * @deprecated + * @deprecated 6.0.0 * deletes a queued task * @param int $id id of task * @return boolean|null * * Deletes a report + * @since 4.5.0 */ public static function deleteQueuedTask($id) { $jobList = \OC::$server->getJobList(); diff --git a/lib/public/backgroundjob/ijob.php b/lib/public/backgroundjob/ijob.php index 9206590dd05..3a1be86ef4e 100644 --- a/lib/public/backgroundjob/ijob.php +++ b/lib/public/backgroundjob/ijob.php @@ -23,6 +23,12 @@ namespace OCP\BackgroundJob; +/** + * Interface IJob + * + * @package OCP\BackgroundJob + * @since 7.0.0 + */ interface IJob { /** * Run the background job with the registered argument @@ -30,6 +36,7 @@ interface IJob { * @param \OCP\BackgroundJob\IJobList $jobList The job list that manages the state of this job * @param \OC\Log $logger * @return void + * @since 7.0.0 */ public function execute($jobList, $logger = null); @@ -38,6 +45,7 @@ interface IJob { * This id is determined by the job list when a job is added to the list * * @return int + * @since 7.0.0 */ public function getId(); @@ -45,6 +53,7 @@ interface IJob { * Get the last time this job was run as unix timestamp * * @return int + * @since 7.0.0 */ public function getLastRun(); @@ -53,6 +62,7 @@ interface IJob { * This is the argument that will be passed to the background job * * @return mixed + * @since 7.0.0 */ public function getArgument(); } diff --git a/lib/public/backgroundjob/ijoblist.php b/lib/public/backgroundjob/ijoblist.php index 2f551265976..e2dc348e54d 100644 --- a/lib/public/backgroundjob/ijoblist.php +++ b/lib/public/backgroundjob/ijoblist.php @@ -24,6 +24,12 @@ namespace OCP\BackgroundJob; +/** + * Interface IJobList + * + * @package OCP\BackgroundJob + * @since 7.0.0 + */ interface IJobList { /** * Add a job to the list @@ -32,6 +38,7 @@ interface IJobList { * @param mixed $argument The argument to be passed to $job->run() when the job is exectured * @param string $job * @return void + * @since 7.0.0 */ public function add($job, $argument = null); @@ -41,6 +48,7 @@ interface IJobList { * @param \OCP\BackgroundJob\IJob|string $job * @param mixed $argument * @return void + * @since 7.0.0 */ public function remove($job, $argument = null); @@ -50,6 +58,7 @@ interface IJobList { * @param \OCP\BackgroundJob\IJob|string $job * @param mixed $argument * @return bool + * @since 7.0.0 */ public function has($job, $argument); @@ -57,6 +66,7 @@ interface IJobList { * get all jobs in the list * * @return \OCP\BackgroundJob\IJob[] + * @since 7.0.0 */ public function getAll(); @@ -64,12 +74,14 @@ interface IJobList { * get the next job in the list * * @return \OCP\BackgroundJob\IJob + * @since 7.0.0 */ public function getNext(); /** * @param int $id * @return \OCP\BackgroundJob\IJob + * @since 7.0.0 */ public function getById($id); @@ -78,6 +90,7 @@ interface IJobList { * * @param \OCP\BackgroundJob\IJob $job * @return void + * @since 7.0.0 */ public function setLastJob($job); @@ -85,6 +98,7 @@ interface IJobList { * get the id of the last ran job * * @return int + * @since 7.0.0 */ public function getLastJob(); @@ -93,6 +107,7 @@ interface IJobList { * * @param \OCP\BackgroundJob\IJob $job * @return void + * @since 7.0.0 */ public function setLastRun($job); } diff --git a/lib/public/command/ibus.php b/lib/public/command/ibus.php index 237bbd3f40f..b27edc04742 100644 --- a/lib/public/command/ibus.php +++ b/lib/public/command/ibus.php @@ -21,11 +21,18 @@ namespace OCP\Command; +/** + * Interface IBus + * + * @package OCP\Command + * @since 8.1.0 + */ interface IBus { /** * Schedule a command to be fired * * @param \OCP\Command\ICommand | callable $command + * @since 8.1.0 */ public function push($command); @@ -33,6 +40,7 @@ interface IBus { * Require all commands using a trait to be run synchronous * * @param string $trait + * @since 8.1.0 */ public function requireSync($trait); } diff --git a/lib/public/command/icommand.php b/lib/public/command/icommand.php index b3a7fc8d9a0..6ec07575b44 100644 --- a/lib/public/command/icommand.php +++ b/lib/public/command/icommand.php @@ -21,9 +21,16 @@ namespace OCP\Command; +/** + * Interface ICommand + * + * @package OCP\Command + * @since 8.1.0 + */ interface ICommand { /** * Run the command + * @since 8.1.0 */ public function handle(); } diff --git a/lib/public/config.php b/lib/public/config.php index acafdccd4ee..86e18de78e1 100644 --- a/lib/public/config.php +++ b/lib/public/config.php @@ -43,7 +43,7 @@ namespace OCP; /** * This class provides functions to read and write configuration data. * configuration can be on a system, application or user level - * @deprecated use methods of \OCP\IConfig + * @deprecated 8.0.0 use methods of \OCP\IConfig */ class Config { /** @@ -51,7 +51,7 @@ class Config { * @param string $key key * @param mixed $default = null default value * @return mixed the value or $default - * @deprecated use method getSystemValue of \OCP\IConfig + * @deprecated 8.0.0 use method getSystemValue of \OCP\IConfig * * This function gets the value from config.php. If it does not exist, * $default will be returned. @@ -65,7 +65,7 @@ class Config { * @param string $key key * @param mixed $value value * @return bool - * @deprecated use method setSystemValue of \OCP\IConfig + * @deprecated 8.0.0 use method setSystemValue of \OCP\IConfig * * This function sets the value and writes the config.php. If the file can * not be written, false will be returned. @@ -82,7 +82,7 @@ class Config { /** * Deletes a value from config.php * @param string $key key - * @deprecated use method deleteSystemValue of \OCP\IConfig + * @deprecated 8.0.0 use method deleteSystemValue of \OCP\IConfig * * This function deletes the value from config.php. */ @@ -96,7 +96,7 @@ class Config { * @param string $key key * @param string $default = null, default value if the key does not exist * @return string the value or $default - * @deprecated use method getAppValue of \OCP\IConfig + * @deprecated 8.0.0 use method getAppValue of \OCP\IConfig * * This function gets a value from the appconfig table. If the key does * not exist the default value will be returned @@ -111,7 +111,7 @@ class Config { * @param string $key key * @param string $value value * @return boolean true/false - * @deprecated use method setAppValue of \OCP\IConfig + * @deprecated 8.0.0 use method setAppValue of \OCP\IConfig * * Sets a value. If the key did not exist before it will be created. */ @@ -131,7 +131,7 @@ class Config { * @param string $key key * @param string $default = null, default value if the key does not exist * @return string the value or $default - * @deprecated use method getUserValue of \OCP\IConfig + * @deprecated 8.0.0 use method getUserValue of \OCP\IConfig * * This function gets a value from the preferences table. If the key does * not exist the default value will be returned @@ -147,7 +147,7 @@ class Config { * @param string $key key * @param string $value value * @return bool - * @deprecated use method setUserValue of \OCP\IConfig + * @deprecated 8.0.0 use method setUserValue of \OCP\IConfig * * Adds a value to the preferences. If the key did not exist before, it * will be added automagically. diff --git a/lib/public/constants.php b/lib/public/constants.php index 014da9f0edd..4d44bf24928 100644 --- a/lib/public/constants.php +++ b/lib/public/constants.php @@ -28,30 +28,37 @@ namespace OCP; -/** @deprecated Use \OCP\Constants::PERMISSION_CREATE instead */ +/** @deprecated 8.0.0 Use \OCP\Constants::PERMISSION_CREATE instead */ const PERMISSION_CREATE = 4; -/** @deprecated Use \OCP\Constants::PERMISSION_READ instead */ +/** @deprecated 8.0.0 Use \OCP\Constants::PERMISSION_READ instead */ const PERMISSION_READ = 1; -/** @deprecated Use \OCP\Constants::PERMISSION_UPDATE instead */ +/** @deprecated 8.0.0 Use \OCP\Constants::PERMISSION_UPDATE instead */ const PERMISSION_UPDATE = 2; -/** @deprecated Use \OCP\Constants::PERMISSION_DELETE instead */ +/** @deprecated 8.0.0 Use \OCP\Constants::PERMISSION_DELETE instead */ const PERMISSION_DELETE = 8; -/** @deprecated Use \OCP\Constants::PERMISSION_SHARE instead */ +/** @deprecated 8.0.0 Use \OCP\Constants::PERMISSION_SHARE instead */ const PERMISSION_SHARE = 16; -/** @deprecated Use \OCP\Constants::PERMISSION_ALL instead */ +/** @deprecated 8.0.0 Use \OCP\Constants::PERMISSION_ALL instead */ const PERMISSION_ALL = 31; -/** @deprecated Use \OCP\Constants::FILENAME_INVALID_CHARS instead */ +/** @deprecated 8.0.0 Use \OCP\Constants::FILENAME_INVALID_CHARS instead */ const FILENAME_INVALID_CHARS = "\\/<>:\"|?*\n"; +/** + * Class Constants + * + * @package OCP + * @since 8.0.0 + */ class Constants { /** * CRUDS permissions. + * @since 8.0.0 */ const PERMISSION_CREATE = 4; const PERMISSION_READ = 1; @@ -60,5 +67,8 @@ class Constants { const PERMISSION_SHARE = 16; const PERMISSION_ALL = 31; + /** + * @since 8.0.0 + */ const FILENAME_INVALID_CHARS = "\\/<>:\"|?*\n"; } diff --git a/lib/public/contacts.php b/lib/public/contacts.php index 6aa15ce4408..ee741678fcb 100644 --- a/lib/public/contacts.php +++ b/lib/public/contacts.php @@ -46,6 +46,7 @@ namespace OCP { * For updating it is mandatory to keep the id. * Without an id a new contact will be created. * + * @since 5.0.0 */ class Contacts { @@ -90,6 +91,7 @@ namespace OCP { * @param array $searchProperties defines the properties within the query pattern should match * @param array $options - for future use. One should always have options! * @return array an array of contacts which are arrays of key-value-pairs + * @since 5.0.0 */ public static function search($pattern, $searchProperties = array(), $options = array()) { $cm = \OC::$server->getContactsManager(); @@ -102,6 +104,7 @@ namespace OCP { * @param object $id the unique identifier to a contact * @param string $address_book_key * @return bool successful or not + * @since 5.0.0 */ public static function delete($id, $address_book_key) { $cm = \OC::$server->getContactsManager(); @@ -115,6 +118,7 @@ namespace OCP { * @param array $properties this array if key-value-pairs defines a contact * @param string $address_book_key identifier of the address book in which the contact shall be created or updated * @return array an array representing the contact just created or updated + * @since 5.0.0 */ public static function createOrUpdate($properties, $address_book_key) { $cm = \OC::$server->getContactsManager(); @@ -125,6 +129,7 @@ namespace OCP { * Check if contacts are available (e.g. contacts app enabled) * * @return bool true if enabled, false if not + * @since 5.0.0 */ public static function isEnabled() { $cm = \OC::$server->getContactsManager(); @@ -133,6 +138,7 @@ namespace OCP { /** * @param \OCP\IAddressBook $address_book + * @since 5.0.0 */ public static function registerAddressBook(\OCP\IAddressBook $address_book) { $cm = \OC::$server->getContactsManager(); @@ -141,6 +147,7 @@ namespace OCP { /** * @param \OCP\IAddressBook $address_book + * @since 5.0.0 */ public static function unregisterAddressBook(\OCP\IAddressBook $address_book) { $cm = \OC::$server->getContactsManager(); @@ -149,6 +156,7 @@ namespace OCP { /** * @return array + * @since 5.0.0 */ public static function getAddressBooks() { $cm = \OC::$server->getContactsManager(); @@ -157,6 +165,7 @@ namespace OCP { /** * removes all registered address book instances + * @since 5.0.0 */ public static function clear() { $cm = \OC::$server->getContactsManager(); diff --git a/lib/public/contacts/imanager.php b/lib/public/contacts/imanager.php index a745445b2c7..4b7d0f7d40a 100644 --- a/lib/public/contacts/imanager.php +++ b/lib/public/contacts/imanager.php @@ -47,6 +47,7 @@ namespace OCP\Contacts { * For updating it is mandatory to keep the id. * Without an id a new contact will be created. * + * @since 6.0.0 */ interface IManager { @@ -92,6 +93,7 @@ namespace OCP\Contacts { * @param array $searchProperties defines the properties within the query pattern should match * @param array $options - for future use. One should always have options! * @return array an array of contacts which are arrays of key-value-pairs + * @since 6.0.0 */ function search($pattern, $searchProperties = array(), $options = array()); @@ -101,6 +103,7 @@ namespace OCP\Contacts { * @param object $id the unique identifier to a contact * @param string $address_book_key identifier of the address book in which the contact shall be deleted * @return bool successful or not + * @since 6.0.0 */ function delete($id, $address_book_key); @@ -111,6 +114,7 @@ namespace OCP\Contacts { * @param array $properties this array if key-value-pairs defines a contact * @param string $address_book_key identifier of the address book in which the contact shall be created or updated * @return array an array representing the contact just created or updated + * @since 6.0.0 */ function createOrUpdate($properties, $address_book_key); @@ -118,6 +122,7 @@ namespace OCP\Contacts { * Check if contacts are available (e.g. contacts app enabled) * * @return bool true if enabled, false if not + * @since 6.0.0 */ function isEnabled(); @@ -126,6 +131,7 @@ namespace OCP\Contacts { * * @param \OCP\IAddressBook $address_book * @return void + * @since 6.0.0 */ function registerAddressBook(\OCP\IAddressBook $address_book); @@ -134,6 +140,7 @@ namespace OCP\Contacts { * * @param \OCP\IAddressBook $address_book * @return void + * @since 6.0.0 */ function unregisterAddressBook(\OCP\IAddressBook $address_book); @@ -143,17 +150,20 @@ namespace OCP\Contacts { * * @param \Closure $callable * @return void + * @since 6.0.0 */ function register(\Closure $callable); /** * @return array + * @since 6.0.0 */ function getAddressBooks(); /** * removes all registered address book instances * @return void + * @since 6.0.0 */ function clear(); } diff --git a/lib/public/db.php b/lib/public/db.php index 49f0a091716..6e6c5222ec4 100644 --- a/lib/public/db.php +++ b/lib/public/db.php @@ -40,6 +40,7 @@ namespace OCP; /** * This class provides access to the internal database system. Use this class exlusively if you want to access databases + * @since 4.5.0 */ class DB { /** @@ -50,6 +51,7 @@ class DB { * @return \OC_DB_StatementWrapper prepared SQL query * * SQL query via Doctrine prepare(), needs to be execute()'d! + * @since 4.5.0 */ static public function prepare( $query, $limit=null, $offset=null ) { return(\OC_DB::prepare($query, $limit, $offset)); @@ -64,6 +66,7 @@ class DB { * If this is null or an empty array, all keys of $input will be compared * @return int number of inserted rows * @throws \Doctrine\DBAL\DBALException + * @since 5.0.0 - parameter $compare was added in 8.1.0 * */ public static function insertIfNotExist($table, $input, array $compare = null) { @@ -79,49 +82,55 @@ class DB { * * Call this method right after the insert command or other functions may * cause trouble! + * @since 4.5.0 */ public static function insertid($table=null) { - return(\OC_DB::insertid($table)); + return \OC::$server->getDatabaseConnection()->lastInsertId($table); } /** * Start a transaction + * @since 4.5.0 */ public static function beginTransaction() { - \OC_DB::beginTransaction(); + \OC::$server->getDatabaseConnection()->beginTransaction(); } /** * Commit the database changes done during a transaction that is in progress + * @since 4.5.0 */ public static function commit() { - \OC_DB::commit(); + \OC::$server->getDatabaseConnection()->commit(); } /** * Rollback the database changes done during a transaction that is in progress + * @since 8.0.0 */ public static function rollback() { - \OC_DB::rollback(); + \OC::$server->getDatabaseConnection()->rollback(); } /** * Check if a result is an error, works with Doctrine * @param mixed $result * @return bool + * @since 4.5.0 */ public static function isError($result) { - return(\OC_DB::isError($result)); + // Doctrine returns false on error (and throws an exception) + return $result === false; } /** * returns the error code and message as a string for logging * works with DoctrineException - * @param mixed $error * @return string + * @since 6.0.0 */ - public static function getErrorMessage($error) { - return(\OC_DB::getErrorMessage($error)); + public static function getErrorMessage() { + return \OC::$server->getDatabaseConnection()->getError(); } } diff --git a/lib/public/defaults.php b/lib/public/defaults.php index 190cc98507b..2d55a64f002 100644 --- a/lib/public/defaults.php +++ b/lib/public/defaults.php @@ -34,12 +34,14 @@ namespace OCP; /** * public api to access default strings and urls for your templates + * @since 6.0.0 */ class Defaults { /** * \OC_Defaults instance to retrieve the defaults * @return string + * @since 6.0.0 */ private $defaults; @@ -54,6 +56,7 @@ class Defaults { /** * get base URL for the organisation behind your ownCloud instance * @return string + * @since 6.0.0 */ public function getBaseUrl() { return $this->defaults->getBaseUrl(); @@ -62,6 +65,7 @@ class Defaults { /** * link to the desktop sync client * @return string + * @since 6.0.0 */ public function getSyncClientUrl() { return $this->defaults->getSyncClientUrl(); @@ -70,6 +74,7 @@ class Defaults { /** * link to the iOS client * @return string + * @since 8.0.0 */ public function getiOSClientUrl() { return $this->defaults->getiOSClientUrl(); @@ -78,6 +83,7 @@ class Defaults { /** * link to the Android client * @return string + * @since 8.0.0 */ public function getAndroidClientUrl() { return $this->defaults->getAndroidClientUrl(); @@ -86,6 +92,7 @@ class Defaults { /** * base URL to the documentation of your ownCloud instance * @return string + * @since 6.0.0 */ public function getDocBaseUrl() { return $this->defaults->getDocBaseUrl(); @@ -94,6 +101,7 @@ class Defaults { /** * name of your ownCloud instance * @return string + * @since 6.0.0 */ public function getName() { return $this->defaults->getName(); @@ -102,6 +110,7 @@ class Defaults { /** * name of your ownCloud instance containing HTML styles * @return string + * @since 8.0.0 */ public function getHTMLName() { return $this->defaults->getHTMLName(); @@ -110,6 +119,7 @@ class Defaults { /** * Entity behind your onwCloud instance * @return string + * @since 6.0.0 */ public function getEntity() { return $this->defaults->getEntity(); @@ -118,6 +128,7 @@ class Defaults { /** * ownCloud slogan * @return string + * @since 6.0.0 */ public function getSlogan() { return $this->defaults->getSlogan(); @@ -126,6 +137,7 @@ class Defaults { /** * logo claim * @return string + * @since 6.0.0 */ public function getLogoClaim() { return $this->defaults->getLogoClaim(); @@ -134,6 +146,7 @@ class Defaults { /** * footer, short version * @return string + * @since 6.0.0 */ public function getShortFooter() { return $this->defaults->getShortFooter(); @@ -142,6 +155,7 @@ class Defaults { /** * footer, long version * @return string + * @since 6.0.0 */ public function getLongFooter() { return $this->defaults->getLongFooter(); @@ -150,6 +164,7 @@ class Defaults { /** * Returns the AppId for the App Store for the iOS Client * @return string AppId + * @since 8.0.0 */ public function getiTunesAppId() { return $this->defaults->getiTunesAppId(); diff --git a/lib/public/diagnostics/ievent.php b/lib/public/diagnostics/ievent.php index cff3d31f55b..733d5e4832c 100644 --- a/lib/public/diagnostics/ievent.php +++ b/lib/public/diagnostics/ievent.php @@ -22,29 +22,40 @@ namespace OCP\Diagnostics; +/** + * Interface IEvent + * + * @package OCP\Diagnostics + * @since 8.0.0 + */ interface IEvent { /** * @return string + * @since 8.0.0 */ public function getId(); /** * @return string + * @since 8.0.0 */ public function getDescription(); /** * @return float + * @since 8.0.0 */ public function getStart(); /** * @return float + * @since 8.0.0 */ public function getEnd(); /** * @return float + * @since 8.0.0 */ public function getDuration(); } diff --git a/lib/public/diagnostics/ieventlogger.php b/lib/public/diagnostics/ieventlogger.php index cc10862fc79..c9b4653393b 100644 --- a/lib/public/diagnostics/ieventlogger.php +++ b/lib/public/diagnostics/ieventlogger.php @@ -22,12 +22,19 @@ namespace OCP\Diagnostics; +/** + * Interface IEventLogger + * + * @package OCP\Diagnostics + * @since 8.0.0 + */ interface IEventLogger { /** * Mark the start of an event * * @param string $id * @param string $description + * @since 8.0.0 */ public function start($id, $description); @@ -35,6 +42,7 @@ interface IEventLogger { * Mark the end of an event * * @param string $id + * @since 8.0.0 */ public function end($id); @@ -43,11 +51,13 @@ interface IEventLogger { * @param string $description * @param float $start * @param float $end + * @since 8.0.0 */ public function log($id, $description, $start, $end); /** * @return \OCP\Diagnostics\IEvent[] + * @since 8.0.0 */ public function getEvents(); } diff --git a/lib/public/diagnostics/iquery.php b/lib/public/diagnostics/iquery.php index 78808ddc381..54853f733c9 100644 --- a/lib/public/diagnostics/iquery.php +++ b/lib/public/diagnostics/iquery.php @@ -22,19 +22,28 @@ namespace OCP\Diagnostics; +/** + * Interface IQuery + * + * @package OCP\Diagnostics + * @since 8.0.0 + */ interface IQuery { /** * @return string + * @since 8.0.0 */ public function getSql(); /** * @return array + * @since 8.0.0 */ public function getParams(); /** * @return float + * @since 8.0.0 */ public function getDuration(); } diff --git a/lib/public/diagnostics/iquerylogger.php b/lib/public/diagnostics/iquerylogger.php index 8c51c35ae36..4a6a0d0704b 100644 --- a/lib/public/diagnostics/iquerylogger.php +++ b/lib/public/diagnostics/iquerylogger.php @@ -24,18 +24,30 @@ namespace OCP\Diagnostics; use Doctrine\DBAL\Logging\SQLLogger; +/** + * Interface IQueryLogger + * + * @package OCP\Diagnostics + * @since 8.0.0 + */ interface IQueryLogger extends SQLLogger { /** * @param string $sql * @param array $params * @param array $types + * @since 8.0.0 */ public function startQuery($sql, array $params = null, array $types = null); + /** + * @return mixed + * @since 8.0.0 + */ public function stopQuery(); /** * @return \OCP\Diagnostics\IQuery[] + * @since 8.0.0 */ public function getQueries(); } diff --git a/lib/public/encryption/exceptions/genericencryptionexception.php b/lib/public/encryption/exceptions/genericencryptionexception.php index c488d4df162..be96450d431 100644 --- a/lib/public/encryption/exceptions/genericencryptionexception.php +++ b/lib/public/encryption/exceptions/genericencryptionexception.php @@ -22,13 +22,19 @@ namespace OCP\Encryption\Exceptions; - +/** + * Class GenericEncryptionException + * + * @package OCP\Encryption\Exceptions + * @since 8.1.0 + */ class GenericEncryptionException extends \Exception { /** * @param string $message * @param int $code * @param \Exception $previous + * @since 8.1.0 */ public function __construct($message = '', $code = 0, \Exception $previous = null) { if (empty($message)) { diff --git a/lib/public/encryption/iencryptionmodule.php b/lib/public/encryption/iencryptionmodule.php index d22ca0ec86c..dc55f8939ef 100644 --- a/lib/public/encryption/iencryptionmodule.php +++ b/lib/public/encryption/iencryptionmodule.php @@ -21,10 +21,17 @@ namespace OCP\Encryption; +/** + * Interface IEncryptionModule + * + * @package OCP\Encryption + * @since 8.1.0 + */ interface IEncryptionModule { /** * @return string defining the technical unique id + * @since 8.1.0 */ public function getId(); @@ -32,6 +39,7 @@ interface IEncryptionModule { * In comparison to getKey() this function returns a human readable (maybe translated) name * * @return string + * @since 8.1.0 */ public function getDisplayName(); @@ -48,6 +56,7 @@ interface IEncryptionModule { * $return array $header contain data as key-value pairs which should be * written to the header, in case of a write operation * or if no additional data is needed return a empty array + * @since 8.1.0 */ public function begin($path, $user, array $header, array $accessList); @@ -59,6 +68,7 @@ interface IEncryptionModule { * @param string $path to the file * @return string remained data which should be written to the file in case * of a write operation + * @since 8.1.0 */ public function end($path); @@ -67,6 +77,7 @@ interface IEncryptionModule { * * @param string $data you want to encrypt * @return mixed encrypted data + * @since 8.1.0 */ public function encrypt($data); @@ -75,6 +86,7 @@ interface IEncryptionModule { * * @param string $data you want to decrypt * @return mixed decrypted data + * @since 8.1.0 */ public function decrypt($data); @@ -85,6 +97,7 @@ interface IEncryptionModule { * @param string $uid of the user who performs the operation * @param array $accessList who has access to the file contains the key 'users' and 'public' * @return boolean + * @since 8.1.0 */ public function update($path, $uid, array $accessList); @@ -93,6 +106,7 @@ interface IEncryptionModule { * * @param string $path * @return boolean + * @since 8.1.0 */ public function shouldEncrypt($path); @@ -101,6 +115,7 @@ interface IEncryptionModule { * ownCloud read/write files with a block size of 8192 byte * * @return integer + * @since 8.1.0 */ public function getUnencryptedBlockSize(); } diff --git a/lib/public/encryption/ifile.php b/lib/public/encryption/ifile.php index cc1e8f426b2..8b3f0fa4bf3 100644 --- a/lib/public/encryption/ifile.php +++ b/lib/public/encryption/ifile.php @@ -22,6 +22,12 @@ namespace OCP\Encryption; +/** + * Interface IFile + * + * @package OCP\Encryption + * @since 8.1.0 + */ interface IFile { /** @@ -29,6 +35,7 @@ interface IFile { * * @param string $path to the file * @return array + * @since 8.1.0 */ public function getAccessList($path); diff --git a/lib/public/encryption/imanager.php b/lib/public/encryption/imanager.php index 3dcdbf5d03a..3a370710781 100644 --- a/lib/public/encryption/imanager.php +++ b/lib/public/encryption/imanager.php @@ -27,6 +27,7 @@ use OC\Encryption\Exceptions\ModuleAlreadyExistsException; /** * This class provides access to files encryption apps. * + * @since 8.1.0 */ interface IManager { @@ -34,28 +35,34 @@ interface IManager { * Check if encryption is available (at least one encryption module needs to be enabled) * * @return bool true if enabled, false if not + * @since 8.1.0 */ function isEnabled(); /** - * Registers an encryption module + * Registers an callback function which must return an encryption module instance * - * @param IEncryptionModule $module + * @param string $id + * @param string $displayName + * @param callable $callback * @throws ModuleAlreadyExistsException + * @since 8.1.0 */ - function registerEncryptionModule(IEncryptionModule $module); + function registerEncryptionModule($id, $displayName, callable $callback); /** * Unregisters an encryption module * - * @param IEncryptionModule $module + * @param string $moduleId + * @since 8.1.0 */ - function unregisterEncryptionModule(IEncryptionModule $module); + function unregisterEncryptionModule($moduleId); /** * get a list of all encryption modules * - * @return array + * @return array [id => ['id' => $id, 'displayName' => $displayName, 'callback' => callback]] + * @since 8.1.0 */ function getEncryptionModules(); @@ -66,6 +73,7 @@ interface IManager { * @param string $moduleId * @return IEncryptionModule * @throws ModuleDoesNotExistsException + * @since 8.1.0 */ function getEncryptionModule($moduleId); @@ -74,6 +82,7 @@ interface IManager { * * @return \OCP\Encryption\IEncryptionModule * @throws ModuleDoesNotExistsException + * @since 8.1.0 */ public function getDefaultEncryptionModule(); @@ -82,6 +91,7 @@ interface IManager { * * @param string $moduleId * @return string + * @since 8.1.0 */ public function setDefaultEncryptionModule($moduleId); diff --git a/lib/public/encryption/keys/istorage.php b/lib/public/encryption/keys/istorage.php index c6933e7afab..3e497ed2c75 100644 --- a/lib/public/encryption/keys/istorage.php +++ b/lib/public/encryption/keys/istorage.php @@ -22,6 +22,12 @@ namespace OCP\Encryption\Keys; +/** + * Interface IStorage + * + * @package OCP\Encryption\Keys + * @since 8.1.0 + */ interface IStorage { /** @@ -31,6 +37,7 @@ interface IStorage { * @param string $keyId id of the key * * @return mixed key + * @since 8.1.0 */ public function getUserKey($uid, $keyId); @@ -41,6 +48,7 @@ interface IStorage { * @param string $keyId id of the key * * @return mixed key + * @since 8.1.0 */ public function getFileKey($path, $keyId); @@ -51,6 +59,7 @@ interface IStorage { * @param string $keyId id of the key * * @return mixed key + * @since 8.1.0 */ public function getSystemUserKey($keyId); @@ -60,6 +69,7 @@ interface IStorage { * @param string $uid ID if the user for whom we want the key * @param string $keyId id of the key * @param mixed $key + * @since 8.1.0 */ public function setUserKey($uid, $keyId, $key); @@ -69,6 +79,7 @@ interface IStorage { * @param string $path path to file * @param string $keyId id of the key * @param boolean + * @since 8.1.0 */ public function setFileKey($path, $keyId, $key); @@ -80,6 +91,7 @@ interface IStorage { * @param mixed $key * * @return mixed key + * @since 8.1.0 */ public function setSystemUserKey($keyId, $key); @@ -90,6 +102,7 @@ interface IStorage { * @param string $keyId id of the key * * @return boolean False when the key could not be deleted + * @since 8.1.0 */ public function deleteUserKey($uid, $keyId); @@ -100,6 +113,7 @@ interface IStorage { * @param string $keyId id of the key * * @return boolean False when the key could not be deleted + * @since 8.1.0 */ public function deleteFileKey($path, $keyId); @@ -108,6 +122,7 @@ interface IStorage { * * @param string $path to the file * @return boolean False when the keys could not be deleted + * @since 8.1.0 */ public function deleteAllFileKeys($path); @@ -118,6 +133,7 @@ interface IStorage { * @param string $keyId id of the key * * @return boolean False when the key could not be deleted + * @since 8.1.0 */ public function deleteSystemUserKey($keyId); @@ -126,6 +142,7 @@ interface IStorage { * * @param string $source * @param string $target + * @since 8.1.0 */ public function renameKeys($source, $target); @@ -134,6 +151,7 @@ interface IStorage { * * @param string $source * @param string $target + * @since 8.1.0 */ public function copyKeys($source, $target); diff --git a/lib/public/files.php b/lib/public/files.php index e6910e8799b..c9944b2919a 100644 --- a/lib/public/files.php +++ b/lib/public/files.php @@ -40,11 +40,13 @@ namespace OCP; /** * This class provides access to the internal filesystem abstraction layer. Use * this class exlusively if you want to access files + * @since 5.0.0 */ class Files { /** * Recusive deletion of folders * @return bool + * @since 5.0.0 */ static function rmdirr( $dir ) { return \OC_Helper::rmdirr( $dir ); @@ -55,6 +57,7 @@ class Files { * @param string $path * @return string * does NOT work for ownClouds filesystem, use OC_FileSystem::getMimeType instead + * @since 5.0.0 */ static function getMimeType( $path ) { return(\OC_Helper::getMimeType( $path )); @@ -64,6 +67,7 @@ class Files { * Search for files by mimetype * @param string $mimetype * @return array + * @since 6.0.0 */ static public function searchByMime( $mimetype ) { return(\OC\Files\Filesystem::searchByMime( $mimetype )); @@ -74,9 +78,10 @@ class Files { * @param resource $source * @param resource $target * @return int the number of bytes copied + * @since 5.0.0 */ public static function streamCopy( $source, $target ) { - list($count, $result) = \OC_Helper::streamCopy( $source, $target ); + list($count, ) = \OC_Helper::streamCopy( $source, $target ); return $count; } @@ -86,9 +91,10 @@ class Files { * @return string * * temporary files are automatically cleaned up after the script is finished + * @since 5.0.0 */ public static function tmpFile( $postfix='' ) { - return(\OC_Helper::tmpFile( $postfix )); + return \OC::$server->getTempManager()->getTemporaryFile($postfix); } /** @@ -96,9 +102,10 @@ class Files { * @return string * * temporary files are automatically cleaned up after the script is finished + * @since 5.0.0 */ public static function tmpFolder() { - return(\OC_Helper::tmpFolder()); + return \OC::$server->getTempManager()->getTemporaryFolder(); } /** @@ -106,6 +113,7 @@ class Files { * @param string $path * @param string $filename * @return string + * @since 5.0.0 */ public static function buildNotExistingFileName( $path, $filename ) { return(\OC_Helper::buildNotExistingFileName( $path, $filename )); @@ -116,6 +124,7 @@ class Files { * existant * @param string $app * @return \OC\Files\View + * @since 5.0.0 */ public static function getStorage( $app ) { return \OC_App::getStorage( $app ); diff --git a/lib/public/files/alreadyexistsexception.php b/lib/public/files/alreadyexistsexception.php index 0709a6bf94c..2ff231c56f4 100644 --- a/lib/public/files/alreadyexistsexception.php +++ b/lib/public/files/alreadyexistsexception.php @@ -31,5 +31,6 @@ namespace OCP\Files; /** * Exception for already existing files/folders + * @since 6.0.0 */ class AlreadyExistsException extends \Exception {} diff --git a/lib/public/files/config/imountprovider.php b/lib/public/files/config/imountprovider.php index 01d71618aa6..8e21e4c8650 100644 --- a/lib/public/files/config/imountprovider.php +++ b/lib/public/files/config/imountprovider.php @@ -27,6 +27,7 @@ use OCP\IUser; /** * Provides + * @since 8.0.0 */ interface IMountProvider { /** @@ -35,6 +36,7 @@ interface IMountProvider { * @param \OCP\IUser $user * @param \OCP\Files\Storage\IStorageFactory $loader * @return \OCP\Files\Mount\IMountPoint[] + * @since 8.0.0 */ public function getMountsForUser(IUser $user, IStorageFactory $loader); } diff --git a/lib/public/files/config/imountprovidercollection.php b/lib/public/files/config/imountprovidercollection.php index 467aa05b8a2..a458cbf3ce7 100644 --- a/lib/public/files/config/imountprovidercollection.php +++ b/lib/public/files/config/imountprovidercollection.php @@ -26,6 +26,7 @@ use OCP\IUser; /** * Manages the different mount providers + * @since 8.0.0 */ interface IMountProviderCollection { /** @@ -33,6 +34,7 @@ interface IMountProviderCollection { * * @param \OCP\IUser $user * @return \OCP\Files\Mount\IMountPoint[] + * @since 8.0.0 */ public function getMountsForUser(IUser $user); @@ -40,6 +42,7 @@ interface IMountProviderCollection { * Add a provider for mount points * * @param \OCP\Files\Config\IMountProvider $provider + * @since 8.0.0 */ public function registerProvider(IMountProvider $provider); } diff --git a/lib/public/files/entitytoolargeexception.php b/lib/public/files/entitytoolargeexception.php index 770d1153876..4dcfa77728b 100644 --- a/lib/public/files/entitytoolargeexception.php +++ b/lib/public/files/entitytoolargeexception.php @@ -31,5 +31,6 @@ namespace OCP\Files; /** * Exception for too large entity + * @since 6.0.0 */ class EntityTooLargeException extends \Exception {} diff --git a/lib/public/files/file.php b/lib/public/files/file.php index 69e6e510c8f..839d646edb1 100644 --- a/lib/public/files/file.php +++ b/lib/public/files/file.php @@ -30,12 +30,19 @@ // This means that they should be used by apps instead of the internal ownCloud classes namespace OCP\Files; +/** + * Interface File + * + * @package OCP\Files + * @since 6.0.0 + */ interface File extends Node { /** * Get the content of the file as string * * @return string * @throws \OCP\Files\NotPermittedException + * @since 6.0.0 */ public function getContent(); @@ -45,6 +52,7 @@ interface File extends Node { * @param string $data * @throws \OCP\Files\NotPermittedException * @return void + * @since 6.0.0 */ public function putContent($data); @@ -52,6 +60,7 @@ interface File extends Node { * Get the mimetype of the file * * @return string + * @since 6.0.0 */ public function getMimeType(); @@ -61,6 +70,7 @@ interface File extends Node { * @param string $mode * @return resource * @throws \OCP\Files\NotPermittedException + * @since 6.0.0 */ public function fopen($mode); @@ -71,6 +81,7 @@ interface File extends Node { * @param string $type * @param bool $raw * @return string + * @since 6.0.0 */ public function hash($type, $raw = false); } diff --git a/lib/public/files/fileinfo.php b/lib/public/files/fileinfo.php index 69bca284cc5..accbe04e044 100644 --- a/lib/public/files/fileinfo.php +++ b/lib/public/files/fileinfo.php @@ -24,20 +24,35 @@ */ namespace OCP\Files; +/** + * Interface FileInfo + * + * @package OCP\Files + * @since 7.0.0 + */ interface FileInfo { + /** + * @since 7.0.0 + */ const TYPE_FILE = 'file'; + /** + * @since 7.0.0 + */ const TYPE_FOLDER = 'dir'; - /* + /** * @const \OCP\Files\FileInfo::SPACE_NOT_COMPUTED Return value for a not computed space value + * @since 8.0.0 */ const SPACE_NOT_COMPUTED = -1; - /* + /** * @const \OCP\Files\FileInfo::SPACE_UNKNOWN Return value for unknown space value + * @since 8.0.0 */ const SPACE_UNKNOWN = -2; - /* + /** * @const \OCP\Files\FileInfo::SPACE_UNKNOWN Return value for unlimited space + * @since 8.0.0 */ const SPACE_UNLIMITED = -3; @@ -45,6 +60,7 @@ interface FileInfo { * Get the Etag of the file or folder * * @return string + * @since 7.0.0 */ public function getEtag(); @@ -52,6 +68,7 @@ interface FileInfo { * Get the size in bytes for the file or folder * * @return int + * @since 7.0.0 */ public function getSize(); @@ -59,6 +76,7 @@ interface FileInfo { * Get the last modified date as timestamp for the file or folder * * @return int + * @since 7.0.0 */ public function getMtime(); @@ -66,6 +84,7 @@ interface FileInfo { * Get the name of the file or folder * * @return string + * @since 7.0.0 */ public function getName(); @@ -73,6 +92,7 @@ interface FileInfo { * Get the path relative to the storage * * @return string + * @since 7.0.0 */ public function getInternalPath(); @@ -80,6 +100,7 @@ interface FileInfo { * Get the absolute path * * @return string + * @since 7.0.0 */ public function getPath(); @@ -87,6 +108,7 @@ interface FileInfo { * Get the full mimetype of the file or folder i.e. 'image/png' * * @return string + * @since 7.0.0 */ public function getMimetype(); @@ -94,6 +116,7 @@ interface FileInfo { * Get the first part of the mimetype of the file or folder i.e. 'image' * * @return string + * @since 7.0.0 */ public function getMimePart(); @@ -101,6 +124,7 @@ interface FileInfo { * Get the storage the file or folder is storage on * * @return \OCP\Files\Storage + * @since 7.0.0 */ public function getStorage(); @@ -108,6 +132,7 @@ interface FileInfo { * Get the file id of the file or folder * * @return int + * @since 7.0.0 */ public function getId(); @@ -115,6 +140,7 @@ interface FileInfo { * Check whether the file is encrypted * * @return bool + * @since 7.0.0 */ public function isEncrypted(); @@ -128,6 +154,7 @@ interface FileInfo { * \OCP\Constants::PERMISSION_ALL * * @return int + * @since 7.0.0 - namespace of constants has changed in 8.0.0 */ public function getPermissions(); @@ -135,6 +162,7 @@ interface FileInfo { * Check whether this is a file or a folder * * @return \OCP\Files\FileInfo::TYPE_FILE|\OCP\Files\FileInfo::TYPE_FOLDER + * @since 7.0.0 */ public function getType(); @@ -142,6 +170,7 @@ interface FileInfo { * Check if the file or folder is readable * * @return bool + * @since 7.0.0 */ public function isReadable(); @@ -149,6 +178,7 @@ interface FileInfo { * Check if a file is writable * * @return bool + * @since 7.0.0 */ public function isUpdateable(); @@ -156,6 +186,7 @@ interface FileInfo { * Check whether new files or folders can be created inside this folder * * @return bool + * @since 8.0.0 */ public function isCreatable(); @@ -163,6 +194,7 @@ interface FileInfo { * Check if a file or folder can be deleted * * @return bool + * @since 7.0.0 */ public function isDeletable(); @@ -170,6 +202,7 @@ interface FileInfo { * Check if a file or folder can be shared * * @return bool + * @since 7.0.0 */ public function isShareable(); @@ -177,6 +210,7 @@ interface FileInfo { * Check if a file or folder is shared * * @return bool + * @since 7.0.0 */ public function isShared(); @@ -184,6 +218,7 @@ interface FileInfo { * Check if a file or folder is mounted * * @return bool + * @since 7.0.0 */ public function isMounted(); @@ -191,6 +226,7 @@ interface FileInfo { * Get the mountpoint the file belongs to * * @return \OCP\Files\Mount\IMountPoint + * @since 8.0.0 */ public function getMountPoint(); } diff --git a/lib/public/files/filenametoolongexception.php b/lib/public/files/filenametoolongexception.php index 260a749f3ac..ccf56e19a6b 100644 --- a/lib/public/files/filenametoolongexception.php +++ b/lib/public/files/filenametoolongexception.php @@ -28,6 +28,11 @@ // This means that they should be used by apps instead of the internal ownCloud classes namespace OCP\Files; - +/** + * Class FileNameTooLongException + * + * @package OCP\Files + * @since 8.1.0 + */ class FileNameTooLongException extends InvalidPathException { } diff --git a/lib/public/files/folder.php b/lib/public/files/folder.php index 7082d917cf4..f5f91e8158c 100644 --- a/lib/public/files/folder.php +++ b/lib/public/files/folder.php @@ -30,6 +30,9 @@ // This means that they should be used by apps instead of the internal ownCloud classes namespace OCP\Files; +/** + * @since 6.0.0 + */ interface Folder extends Node { /** * Get the full path of an item in the folder within owncloud's filesystem @@ -37,6 +40,7 @@ interface Folder extends Node { * @param string $path relative path of an item in the folder * @return string * @throws \OCP\Files\NotPermittedException + * @since 6.0.0 */ public function getFullPath($path); @@ -46,6 +50,7 @@ interface Folder extends Node { * @param string $path absolute path of an item in the folder * @throws \OCP\Files\NotFoundException * @return string + * @since 6.0.0 */ public function getRelativePath($path); @@ -54,6 +59,7 @@ interface Folder extends Node { * * @param \OCP\Files\Node $node * @return bool + * @since 6.0.0 */ public function isSubNode($node); @@ -62,6 +68,7 @@ interface Folder extends Node { * * @throws \OCP\Files\NotFoundException * @return \OCP\Files\Node[] + * @since 6.0.0 */ public function getDirectoryListing(); @@ -71,6 +78,7 @@ interface Folder extends Node { * @param string $path relative path of the file or folder * @return \OCP\Files\Node * @throws \OCP\Files\NotFoundException + * @since 6.0.0 */ public function get($path); @@ -79,6 +87,7 @@ interface Folder extends Node { * * @param string $path relative path of the file or folder * @return bool + * @since 6.0.0 */ public function nodeExists($path); @@ -88,6 +97,7 @@ interface Folder extends Node { * @param string $path relative path of the new folder * @return \OCP\Files\Folder * @throws \OCP\Files\NotPermittedException + * @since 6.0.0 */ public function newFolder($path); @@ -105,6 +115,7 @@ interface Folder extends Node { * * @param string $query * @return \OCP\Files\Node[] + * @since 6.0.0 */ public function search($query); @@ -114,6 +125,7 @@ interface Folder extends Node { * * @param string $mimetype * @return \OCP\Files\Node[] + * @since 6.0.0 */ public function searchByMime($mimetype); @@ -123,6 +135,7 @@ interface Folder extends Node { * @param string|int $tag tag name or tag id * @param string $userId owner of the tags * @return \OCP\Files\Node[] + * @since 8.0.0 */ public function searchByTag($tag, $userId); @@ -131,6 +144,7 @@ interface Folder extends Node { * * @param int $id * @return \OCP\Files\Node[] + * @since 6.0.0 */ public function getById($id); @@ -138,6 +152,7 @@ interface Folder extends Node { * Get the amount of free space inside the folder * * @return int + * @since 6.0.0 */ public function getFreeSpace(); @@ -145,6 +160,7 @@ interface Folder extends Node { * Check if new files or folders can be created within the folder * * @return bool + * @since 6.0.0 */ public function isCreatable(); @@ -154,6 +170,7 @@ interface Folder extends Node { * @param string $name * @return string * @throws NotPermittedException + * @since 8.1.0 */ public function getNonExistingName($name); } diff --git a/lib/public/files/ihomestorage.php b/lib/public/files/ihomestorage.php index b9766e6f4c2..fc9b0357578 100644 --- a/lib/public/files/ihomestorage.php +++ b/lib/public/files/ihomestorage.php @@ -29,6 +29,12 @@ // This means that they should be used by apps instead of the internal ownCloud classes namespace OCP\Files; +/** + * Interface IHomeStorage + * + * @package OCP\Files + * @since 7.0.0 + */ interface IHomeStorage { } diff --git a/lib/public/files/invalidcharacterinpathexception.php b/lib/public/files/invalidcharacterinpathexception.php index 0ac79a3b8ae..a25712353b6 100644 --- a/lib/public/files/invalidcharacterinpathexception.php +++ b/lib/public/files/invalidcharacterinpathexception.php @@ -30,6 +30,7 @@ namespace OCP\Files; /** * Exception for invalid path + * @since 8.1.0 */ class InvalidCharacterInPathException extends InvalidPathException { diff --git a/lib/public/files/invalidcontentexception.php b/lib/public/files/invalidcontentexception.php index d02118da8a2..6aebf367241 100644 --- a/lib/public/files/invalidcontentexception.php +++ b/lib/public/files/invalidcontentexception.php @@ -31,5 +31,6 @@ namespace OCP\Files; /** * Exception for invalid content + * @since 6.0.0 */ class InvalidContentException extends \Exception {} diff --git a/lib/public/files/invalidpathexception.php b/lib/public/files/invalidpathexception.php index 06ea5cd872a..e86d58bde7a 100644 --- a/lib/public/files/invalidpathexception.php +++ b/lib/public/files/invalidpathexception.php @@ -31,5 +31,6 @@ namespace OCP\Files; /** * Exception for invalid path + * @since 6.0.0 */ class InvalidPathException extends \Exception {} diff --git a/lib/public/files/irootfolder.php b/lib/public/files/irootfolder.php index cbea0c0979b..19192cd9cc9 100644 --- a/lib/public/files/irootfolder.php +++ b/lib/public/files/irootfolder.php @@ -25,7 +25,12 @@ namespace OCP\Files; use OC\Hooks\Emitter; - +/** + * Interface IRootFolder + * + * @package OCP\Files + * @since 8.0.0 + */ interface IRootFolder extends Folder, Emitter { } diff --git a/lib/public/files/locknotacquiredexception.php b/lib/public/files/locknotacquiredexception.php index aa8e7e97d89..66e131ab1e5 100644 --- a/lib/public/files/locknotacquiredexception.php +++ b/lib/public/files/locknotacquiredexception.php @@ -32,6 +32,7 @@ namespace OCP\Files; /** * Exception for a file that is locked + * @since 7.0.0 */ class LockNotAcquiredException extends \Exception { /** @var string $path The path that could not be locked */ diff --git a/lib/public/files/mount/imountpoint.php b/lib/public/files/mount/imountpoint.php index 50126e1fcf0..5452bcdb03a 100644 --- a/lib/public/files/mount/imountpoint.php +++ b/lib/public/files/mount/imountpoint.php @@ -24,6 +24,7 @@ namespace OCP\Files\Mount; /** * A storage mounted to folder on the filesystem + * @since 8.0.0 */ interface IMountPoint { @@ -31,6 +32,7 @@ interface IMountPoint { * get complete path to the mount point * * @return string + * @since 8.0.0 */ public function getMountPoint(); @@ -38,6 +40,7 @@ interface IMountPoint { * Set the mountpoint * * @param string $mountPoint new mount point + * @since 8.0.0 */ public function setMountPoint($mountPoint); @@ -45,6 +48,7 @@ interface IMountPoint { * Get the storage that is mounted * * @return \OC\Files\Storage\Storage + * @since 8.0.0 */ public function getStorage(); @@ -52,6 +56,7 @@ interface IMountPoint { * Get the id of the storages * * @return string + * @since 8.0.0 */ public function getStorageId(); @@ -60,6 +65,7 @@ interface IMountPoint { * * @param string $path absolute path to a file or folder * @return string + * @since 8.0.0 */ public function getInternalPath($path); @@ -67,6 +73,7 @@ interface IMountPoint { * Apply a storage wrapper to the mounted storage * * @param callable $wrapper + * @since 8.0.0 */ public function wrapStorage($wrapper); @@ -76,6 +83,7 @@ interface IMountPoint { * @param string $name Name of the mount option to get * @param mixed $default Default value for the mount option * @return mixed + * @since 8.0.0 */ public function getOption($name, $default); @@ -83,6 +91,7 @@ interface IMountPoint { * Get all options for the mount * * @return array + * @since 8.1.0 */ public function getOptions(); } diff --git a/lib/public/files/node.php b/lib/public/files/node.php index 6739d8cc391..aa1115f8c28 100644 --- a/lib/public/files/node.php +++ b/lib/public/files/node.php @@ -32,6 +32,12 @@ // This means that they should be used by apps instead of the internal ownCloud classes namespace OCP\Files; +/** + * Interface Node + * + * @package OCP\Files + * @since 6.0.0 - extends FileInfo was added in 8.0.0 + */ interface Node extends FileInfo { /** * Move the file or folder to a new location @@ -39,12 +45,14 @@ interface Node extends FileInfo { * @param string $targetPath the absolute target path * @throws \OCP\Files\NotPermittedException * @return \OCP\Files\Node + * @since 6.0.0 */ public function move($targetPath); /** * Delete the file or folder * @return void + * @since 6.0.0 */ public function delete(); @@ -53,6 +61,7 @@ interface Node extends FileInfo { * * @param string $targetPath the absolute target path * @return \OCP\Files\Node + * @since 6.0.0 */ public function copy($targetPath); @@ -63,6 +72,7 @@ interface Node extends FileInfo { * @param int $mtime (optional) modified date as unix timestamp * @throws \OCP\Files\NotPermittedException * @return void + * @since 6.0.0 */ public function touch($mtime = null); @@ -71,6 +81,7 @@ interface Node extends FileInfo { * * @return \OCP\Files\Storage * @throws \OCP\Files\NotFoundException + * @since 6.0.0 */ public function getStorage(); @@ -78,6 +89,7 @@ interface Node extends FileInfo { * Get the full path of the file or folder * * @return string + * @since 6.0.0 */ public function getPath(); @@ -85,6 +97,7 @@ interface Node extends FileInfo { * Get the path of the file or folder relative to the mountpoint of it's storage * * @return string + * @since 6.0.0 */ public function getInternalPath(); @@ -94,6 +107,7 @@ interface Node extends FileInfo { * @return int * @throws InvalidPathException * @throws NotFoundException + * @since 6.0.0 */ public function getId(); @@ -104,6 +118,7 @@ interface Node extends FileInfo { * - size * * @return array + * @since 6.0.0 */ public function stat(); @@ -113,6 +128,7 @@ interface Node extends FileInfo { * @return int * @throws InvalidPathException * @throws NotFoundException + * @since 6.0.0 */ public function getMTime(); @@ -122,6 +138,7 @@ interface Node extends FileInfo { * @return int * @throws InvalidPathException * @throws NotFoundException + * @since 6.0.0 */ public function getSize(); @@ -133,6 +150,7 @@ interface Node extends FileInfo { * @return string * @throws InvalidPathException * @throws NotFoundException + * @since 6.0.0 */ public function getEtag(); @@ -148,6 +166,7 @@ interface Node extends FileInfo { * @return int * @throws InvalidPathException * @throws NotFoundException + * @since 6.0.0 - namespace of constants has changed in 8.0.0 */ public function getPermissions(); @@ -157,6 +176,7 @@ interface Node extends FileInfo { * @return bool * @throws InvalidPathException * @throws NotFoundException + * @since 6.0.0 */ public function isReadable(); @@ -166,6 +186,7 @@ interface Node extends FileInfo { * @return bool * @throws InvalidPathException * @throws NotFoundException + * @since 6.0.0 */ public function isUpdateable(); @@ -175,6 +196,7 @@ interface Node extends FileInfo { * @return bool * @throws InvalidPathException * @throws NotFoundException + * @since 6.0.0 */ public function isDeletable(); @@ -184,6 +206,7 @@ interface Node extends FileInfo { * @return bool * @throws InvalidPathException * @throws NotFoundException + * @since 6.0.0 */ public function isShareable(); @@ -191,6 +214,7 @@ interface Node extends FileInfo { * Get the parent folder of the file or folder * * @return Folder + * @since 6.0.0 */ public function getParent(); @@ -198,6 +222,7 @@ interface Node extends FileInfo { * Get the filename of the file or folder * * @return string + * @since 6.0.0 */ public function getName(); } diff --git a/lib/public/files/notenoughspaceexception.php b/lib/public/files/notenoughspaceexception.php index d79caff6872..a2cc0d6956b 100644 --- a/lib/public/files/notenoughspaceexception.php +++ b/lib/public/files/notenoughspaceexception.php @@ -31,5 +31,6 @@ namespace OCP\Files; /** * Exception for not enough space + * @since 6.0.0 */ class NotEnoughSpaceException extends \Exception {} diff --git a/lib/public/files/notfoundexception.php b/lib/public/files/notfoundexception.php index 13aa04c57dc..ae93e8d1e6d 100644 --- a/lib/public/files/notfoundexception.php +++ b/lib/public/files/notfoundexception.php @@ -31,5 +31,6 @@ namespace OCP\Files; /** * Exception for not found entity + * @since 6.0.0 */ class NotFoundException extends \Exception {} diff --git a/lib/public/files/notpermittedexception.php b/lib/public/files/notpermittedexception.php index 6f2475a174f..ee82ae56e51 100644 --- a/lib/public/files/notpermittedexception.php +++ b/lib/public/files/notpermittedexception.php @@ -31,5 +31,6 @@ namespace OCP\Files; /** * Exception for not permitted action + * @since 6.0.0 */ class NotPermittedException extends \Exception {} diff --git a/lib/public/files/objectstore/iobjectstore.php b/lib/public/files/objectstore/iobjectstore.php index 0eeecc1204d..5943731849e 100644 --- a/lib/public/files/objectstore/iobjectstore.php +++ b/lib/public/files/objectstore/iobjectstore.php @@ -21,32 +21,42 @@ */ namespace OCP\Files\ObjectStore; +/** + * Interface IObjectStore + * + * @package OCP\Files\ObjectStore + * @since 7.0.0 + */ interface IObjectStore { /** * @return string the container or bucket name where objects are stored + * @since 7.0.0 */ function getStorageId(); /** * @param string $urn the unified resource name used to identify the object * @return resource stream with the read data - * @throws Exception when something goes wrong, message will be logged + * @throws \Exception when something goes wrong, message will be logged + * @since 7.0.0 */ function readObject($urn); /** * @param string $urn the unified resource name used to identify the object * @param resource $stream stream with the data to write - * @throws Exception when something goes wrong, message will be logged + * @throws \Exception when something goes wrong, message will be logged + * @since 7.0.0 */ function writeObject($urn, $stream); /** * @param string $urn the unified resource name used to identify the object * @return void - * @throws Exception when something goes wrong, message will be logged + * @throws \Exception when something goes wrong, message will be logged + * @since 7.0.0 */ function deleteObject($urn); -}
\ No newline at end of file +} diff --git a/lib/public/files/reservedwordexception.php b/lib/public/files/reservedwordexception.php index 15527a86f69..0fda9841194 100644 --- a/lib/public/files/reservedwordexception.php +++ b/lib/public/files/reservedwordexception.php @@ -30,6 +30,7 @@ namespace OCP\Files; /** * Exception for invalid path + * @since 8.1.0 */ class ReservedWordException extends InvalidPathException { diff --git a/lib/public/files/storage.php b/lib/public/files/storage.php index bac2c95ebce..17e09af9832 100644 --- a/lib/public/files/storage.php +++ b/lib/public/files/storage.php @@ -38,6 +38,7 @@ use OCP\Files\InvalidPathException; * Provide a common interface to all different storage options * * All paths passed to the storage are relative to the storage and should NOT have a leading slash. + * @since 6.0.0 */ interface Storage { /** @@ -45,6 +46,7 @@ interface Storage { * * @param array $parameters * @return void + * @since 6.0.0 */ public function __construct($parameters); @@ -54,6 +56,7 @@ interface Storage { * and two storage objects with the same id should refer to two storages that display the same files. * * @return string + * @since 6.0.0 */ public function getId(); @@ -62,6 +65,7 @@ interface Storage { * * @param string $path * @return bool + * @since 6.0.0 */ public function mkdir($path); @@ -70,6 +74,7 @@ interface Storage { * * @param string $path * @return bool + * @since 6.0.0 */ public function rmdir($path); @@ -78,6 +83,7 @@ interface Storage { * * @param string $path * @return resource|false + * @since 6.0.0 */ public function opendir($path); @@ -86,6 +92,7 @@ interface Storage { * * @param string $path * @return bool + * @since 6.0.0 */ public function is_dir($path); @@ -94,6 +101,7 @@ interface Storage { * * @param string $path * @return bool + * @since 6.0.0 */ public function is_file($path); @@ -103,6 +111,7 @@ interface Storage { * * @param string $path * @return array|false + * @since 6.0.0 */ public function stat($path); @@ -111,6 +120,7 @@ interface Storage { * * @param string $path * @return string|false + * @since 6.0.0 */ public function filetype($path); @@ -120,6 +130,7 @@ interface Storage { * * @param string $path * @return int|false + * @since 6.0.0 */ public function filesize($path); @@ -128,6 +139,7 @@ interface Storage { * * @param string $path * @return bool + * @since 6.0.0 */ public function isCreatable($path); @@ -136,6 +148,7 @@ interface Storage { * * @param string $path * @return bool + * @since 6.0.0 */ public function isReadable($path); @@ -144,6 +157,7 @@ interface Storage { * * @param string $path * @return bool + * @since 6.0.0 */ public function isUpdatable($path); @@ -152,6 +166,7 @@ interface Storage { * * @param string $path * @return bool + * @since 6.0.0 */ public function isDeletable($path); @@ -160,6 +175,7 @@ interface Storage { * * @param string $path * @return bool + * @since 6.0.0 */ public function isSharable($path); @@ -169,6 +185,7 @@ interface Storage { * * @param string $path * @return int + * @since 6.0.0 */ public function getPermissions($path); @@ -177,6 +194,7 @@ interface Storage { * * @param string $path * @return bool + * @since 6.0.0 */ public function file_exists($path); @@ -185,6 +203,7 @@ interface Storage { * * @param string $path * @return int|false + * @since 6.0.0 */ public function filemtime($path); @@ -193,6 +212,7 @@ interface Storage { * * @param string $path * @return string|false + * @since 6.0.0 */ public function file_get_contents($path); @@ -202,6 +222,7 @@ interface Storage { * @param string $path * @param string $data * @return bool + * @since 6.0.0 */ public function file_put_contents($path, $data); @@ -210,6 +231,7 @@ interface Storage { * * @param string $path * @return bool + * @since 6.0.0 */ public function unlink($path); @@ -219,6 +241,7 @@ interface Storage { * @param string $path1 * @param string $path2 * @return bool + * @since 6.0.0 */ public function rename($path1, $path2); @@ -228,6 +251,7 @@ interface Storage { * @param string $path1 * @param string $path2 * @return bool + * @since 6.0.0 */ public function copy($path1, $path2); @@ -237,6 +261,7 @@ interface Storage { * @param string $path * @param string $mode * @return resource|false + * @since 6.0.0 */ public function fopen($path, $mode); @@ -246,6 +271,7 @@ interface Storage { * * @param string $path * @return string|false + * @since 6.0.0 */ public function getMimeType($path); @@ -256,6 +282,7 @@ interface Storage { * @param string $path * @param bool $raw * @return string|false + * @since 6.0.0 */ public function hash($type, $path, $raw = false); @@ -264,6 +291,7 @@ interface Storage { * * @param string $path * @return int|false + * @since 6.0.0 */ public function free_space($path); @@ -272,6 +300,7 @@ interface Storage { * * @param string $query * @return array|false + * @since 6.0.0 */ public function search($query); @@ -282,6 +311,7 @@ interface Storage { * @param string $path * @param int $mtime * @return bool + * @since 6.0.0 */ public function touch($path, $mtime = null); @@ -291,6 +321,7 @@ interface Storage { * * @param string $path * @return string|false + * @since 6.0.0 */ public function getLocalFile($path); @@ -300,6 +331,7 @@ interface Storage { * * @param string $path * @return string|false + * @since 6.0.0 */ public function getLocalFolder($path); /** @@ -308,6 +340,7 @@ interface Storage { * @param string $path * @param int $time * @return bool + * @since 6.0.0 * * hasUpdated for folders should return at least true if a file inside the folder is add, removed or renamed. * returning true for other changes in the folder is optional @@ -319,6 +352,7 @@ interface Storage { * * @param string $path * @return string|false + * @since 6.0.0 */ public function getETag($path); @@ -330,6 +364,7 @@ interface Storage { * it might return a temporary file. * * @return bool true if the files are stored locally, false otherwise + * @since 7.0.0 */ public function isLocal(); @@ -338,6 +373,7 @@ interface Storage { * * @param string $class * @return bool + * @since 7.0.0 */ public function instanceOfStorage($class); @@ -348,6 +384,7 @@ interface Storage { * * @param string $path * @return array|false + * @since 8.0.0 */ public function getDirectDownload($path); @@ -356,6 +393,7 @@ interface Storage { * @param string $fileName the name of the file itself * @return void * @throws InvalidPathException + * @since 8.1.0 */ public function verifyPath($path, $fileName); @@ -364,6 +402,7 @@ interface Storage { * @param string $sourceInternalPath * @param string $targetInternalPath * @return bool + * @since 8.1.0 */ public function copyFromStorage(\OCP\Files\Storage $sourceStorage, $sourceInternalPath, $targetInternalPath); @@ -372,6 +411,7 @@ interface Storage { * @param string $sourceInternalPath * @param string $targetInternalPath * @return bool + * @since 8.1.0 */ public function moveFromStorage(\OCP\Files\Storage $sourceStorage, $sourceInternalPath, $targetInternalPath); } diff --git a/lib/public/files/storage/istoragefactory.php b/lib/public/files/storage/istoragefactory.php index e7827297f03..bd9651299cf 100644 --- a/lib/public/files/storage/istoragefactory.php +++ b/lib/public/files/storage/istoragefactory.php @@ -26,6 +26,7 @@ use OCP\Files\Mount\IMountPoint; /** * Creates storage instances and manages and applies storage wrappers + * @since 8.0.0 */ interface IStorageFactory { /** @@ -37,6 +38,7 @@ interface IStorageFactory { * @param callable $callback * @return bool true if the wrapper was added, false if there was already a wrapper with this * name registered + * @since 8.0.0 */ public function addStorageWrapper($wrapperName, $callback); @@ -45,6 +47,7 @@ interface IStorageFactory { * @param string $class * @param array $arguments * @return \OCP\Files\Storage + * @since 8.0.0 */ public function getInstance(IMountPoint $mountPoint, $class, $arguments); } diff --git a/lib/public/files/storageinvalidexception.php b/lib/public/files/storageinvalidexception.php index c6036a58046..11099c2fe03 100644 --- a/lib/public/files/storageinvalidexception.php +++ b/lib/public/files/storageinvalidexception.php @@ -31,6 +31,7 @@ namespace OCP\Files; /** * Storage has invalid configuration + * @since 7.0.0 */ class StorageInvalidException extends \Exception { } diff --git a/lib/public/files/storagenotavailableexception.php b/lib/public/files/storagenotavailableexception.php index 4b912caa5bd..842867ba567 100644 --- a/lib/public/files/storagenotavailableexception.php +++ b/lib/public/files/storagenotavailableexception.php @@ -31,6 +31,7 @@ namespace OCP\Files; /** * Storage is temporarily not available + * @since 6.0.0 */ class StorageNotAvailableException extends \Exception { } diff --git a/lib/public/groupinterface.php b/lib/public/groupinterface.php index 7f4932a0775..16de6bc8663 100644 --- a/lib/public/groupinterface.php +++ b/lib/public/groupinterface.php @@ -31,4 +31,10 @@ // This means that they should be used by apps instead of the internal ownCloud classes namespace OCP; +/** + * Interface GroupInterface + * + * @package OCP + * @since 4.5.0 + */ interface GroupInterface extends \OC_Group_Interface {} diff --git a/lib/public/http/client/iclient.php b/lib/public/http/client/iclient.php index 88c61bc3cd5..ab907dcfb82 100644 --- a/lib/public/http/client/iclient.php +++ b/lib/public/http/client/iclient.php @@ -25,6 +25,7 @@ namespace OCP\Http\Client; * Interface IClient * * @package OCP\Http + * @since 8.1.0 */ interface IClient { @@ -54,6 +55,7 @@ interface IClient { * 'debug' => true, * @return IResponse * @throws \Exception If the request could not get completed + * @since 8.1.0 */ public function get($uri, array $options = []); @@ -77,6 +79,7 @@ interface IClient { * 'verify' => true, // bool or string to CA file * 'debug' => true, * @return IResponse + * @since 8.1.0 */ public function head($uri, $options = []); @@ -105,6 +108,7 @@ interface IClient { * 'verify' => true, // bool or string to CA file * 'debug' => true, * @return IResponse + * @since 8.1.0 */ public function post($uri, array $options = []); @@ -133,6 +137,7 @@ interface IClient { * 'verify' => true, // bool or string to CA file * 'debug' => true, * @return IResponse + * @since 8.1.0 */ public function put($uri, array $options = []); @@ -161,6 +166,7 @@ interface IClient { * 'verify' => true, // bool or string to CA file * 'debug' => true, * @return IResponse + * @since 8.1.0 */ public function delete($uri, array $options = []); @@ -189,6 +195,7 @@ interface IClient { * 'verify' => true, // bool or string to CA file * 'debug' => true, * @return IResponse + * @since 8.1.0 */ public function options($uri, array $options = []); } diff --git a/lib/public/http/client/iclientservice.php b/lib/public/http/client/iclientservice.php index 98cf035c71a..2a8bff7bc69 100644 --- a/lib/public/http/client/iclientservice.php +++ b/lib/public/http/client/iclientservice.php @@ -25,10 +25,12 @@ namespace OCP\Http\Client; * Interface IClientService * * @package OCP\Http + * @since 8.1.0 */ interface IClientService { /** * @return IClient + * @since 8.1.0 */ public function newClient(); } diff --git a/lib/public/http/client/iresponse.php b/lib/public/http/client/iresponse.php index 041d9f454e8..3a717d1650c 100644 --- a/lib/public/http/client/iresponse.php +++ b/lib/public/http/client/iresponse.php @@ -25,26 +25,31 @@ namespace OCP\Http\Client; * Interface IResponse * * @package OCP\Http + * @since 8.1.0 */ interface IResponse { /** * @return string + * @since 8.1.0 */ public function getBody(); /** * @return int + * @since 8.1.0 */ public function getStatusCode(); /** * @param $key * @return string + * @since 8.1.0 */ public function getHeader($key); /** * @return array + * @since 8.1.0 */ public function getHeaders(); } diff --git a/lib/public/iaddressbook.php b/lib/public/iaddressbook.php index 978becf16d9..f3f60ab22d7 100644 --- a/lib/public/iaddressbook.php +++ b/lib/public/iaddressbook.php @@ -30,16 +30,24 @@ // use OCP namespace for all classes that are considered public. // This means that they should be used by apps instead of the internal ownCloud classes namespace OCP { + /** + * Interface IAddressBook + * + * @package OCP + * @since 5.0.0 + */ interface IAddressBook { /** * @return string defining the technical unique key + * @since 5.0.0 */ public function getKey(); /** * In comparison to getKey() this function returns a human readable (maybe translated) name * @return mixed + * @since 5.0.0 */ public function getDisplayName(); @@ -48,6 +56,7 @@ namespace OCP { * @param array $searchProperties defines the properties within the query pattern should match * @param array $options - for future use. One should always have options! * @return array an array of contacts which are arrays of key-value-pairs + * @since 5.0.0 */ public function search($pattern, $searchProperties, $options); // // dummy results @@ -59,6 +68,7 @@ namespace OCP { /** * @param array $properties this array if key-value-pairs defines a contact * @return array an array representing the contact just created or updated + * @since 5.0.0 */ public function createOrUpdate($properties); // // dummy @@ -69,12 +79,14 @@ namespace OCP { /** * @return mixed + * @since 5.0.0 */ public function getPermissions(); /** * @param object $id the unique identifier to a contact * @return bool successful or not + * @since 5.0.0 */ public function delete($id); } diff --git a/lib/public/iappconfig.php b/lib/public/iappconfig.php index 33fc3e4e362..d89ffd9194a 100644 --- a/lib/public/iappconfig.php +++ b/lib/public/iappconfig.php @@ -27,6 +27,7 @@ namespace OCP; /** * This class provides an easy way for apps to store config values in the * database. + * @since 7.0.0 */ interface IAppConfig { /** @@ -34,6 +35,7 @@ interface IAppConfig { * @param string $app * @param string $key * @return bool + * @since 7.0.0 */ public function hasKey($app, $key); @@ -43,10 +45,11 @@ interface IAppConfig { * @param string $key key * @param string $default = null, default value if the key does not exist * @return string the value or $default - * @deprecated use method getAppValue of \OCP\IConfig + * @deprecated 8.0.0 use method getAppValue of \OCP\IConfig * * This function gets a value from the appconfig table. If the key does * not exist the default value will be returned + * @since 7.0.0 */ public function getValue($app, $key, $default = null); @@ -55,7 +58,8 @@ interface IAppConfig { * @param string $app app * @param string $key key * @return bool - * @deprecated use method deleteAppValue of \OCP\IConfig + * @deprecated 8.0.0 use method deleteAppValue of \OCP\IConfig + * @since 7.0.0 */ public function deleteKey($app, $key); @@ -63,10 +67,11 @@ interface IAppConfig { * Get the available keys for an app * @param string $app the app we are looking for * @return array an array of key names - * @deprecated use method getAppKeys of \OCP\IConfig + * @deprecated 8.0.0 use method getAppKeys of \OCP\IConfig * * This function gets all keys of an app. Please note that the values are * not returned. + * @since 7.0.0 */ public function getKeys($app); @@ -76,6 +81,7 @@ interface IAppConfig { * @param string|false $key * @param string|false $app * @return array|false + * @since 7.0.0 */ public function getValues($app, $key); @@ -84,10 +90,11 @@ interface IAppConfig { * @param string $app app * @param string $key key * @param string $value value - * @deprecated use method setAppValue of \OCP\IConfig + * @deprecated 8.0.0 use method setAppValue of \OCP\IConfig * * Sets a value. If the key did not exist before it will be created. * @return void + * @since 7.0.0 */ public function setValue($app, $key, $value); @@ -97,6 +104,7 @@ interface IAppConfig { * * This function returns a list of all apps that have at least one * entry in the appconfig table. + * @since 7.0.0 */ public function getApps(); @@ -104,9 +112,10 @@ interface IAppConfig { * Remove app from appconfig * @param string $app app * @return bool - * @deprecated use method deleteAppValue of \OCP\IConfig + * @deprecated 8.0.0 use method deleteAppValue of \OCP\IConfig * * Removes all keys in appconfig belonging to the app. + * @since 7.0.0 */ public function deleteApp($app); } diff --git a/lib/public/iavatar.php b/lib/public/iavatar.php index f6e41d16696..fc29212a599 100644 --- a/lib/public/iavatar.php +++ b/lib/public/iavatar.php @@ -27,21 +27,23 @@ namespace OCP; /** * This class provides avatar functionality + * @since 6.0.0 */ - interface IAvatar { /** * get the users avatar * @param int $size size in px of the avatar, avatars are square, defaults to 64 * @return boolean|\OCP\IImage containing the avatar or false if there's no image + * @since 6.0.0 */ - function get($size = 64); + public function get($size = 64); /** * Check if an avatar exists for the user * * @return bool + * @since 8.1.0 */ public function exists(); @@ -52,12 +54,14 @@ interface IAvatar { * @throws \Exception if the provided image is not valid * @throws \OC\NotSquareException if the image is not square * @return void + * @since 6.0.0 */ - function set($data); + public function set($data); /** * remove the users avatar * @return void + * @since 6.0.0 */ - function remove(); + public function remove(); } diff --git a/lib/public/iavatarmanager.php b/lib/public/iavatarmanager.php index 218f8cb41c7..5ad5bf6a364 100644 --- a/lib/public/iavatarmanager.php +++ b/lib/public/iavatarmanager.php @@ -26,6 +26,7 @@ namespace OCP; /** * This class provides avatar functionality + * @since 6.0.0 */ interface IAvatarManager { @@ -35,6 +36,7 @@ interface IAvatarManager { * @see \OCP\IAvatar * @param string $user the ownCloud user id * @return \OCP\IAvatar + * @since 6.0.0 */ - function getAvatar($user); + public function getAvatar($user); } diff --git a/lib/public/icache.php b/lib/public/icache.php index 215b490fb5f..d7593a263c8 100644 --- a/lib/public/icache.php +++ b/lib/public/icache.php @@ -33,6 +33,7 @@ namespace OCP; /** * This interface defines method for accessing the file based user cache. + * @since 6.0.0 */ interface ICache { @@ -40,6 +41,7 @@ interface ICache { * Get a value from the user cache * @param string $key * @return mixed + * @since 6.0.0 */ public function get($key); @@ -49,6 +51,7 @@ interface ICache { * @param mixed $value * @param int $ttl Time To Live in seconds. Defaults to 60*60*24 * @return bool + * @since 6.0.0 */ public function set($key, $value, $ttl = 0); @@ -56,6 +59,7 @@ interface ICache { * Check if a value is set in the user cache * @param string $key * @return bool + * @since 6.0.0 */ public function hasKey($key); @@ -63,6 +67,7 @@ interface ICache { * Remove an item from the user cache * @param string $key * @return bool + * @since 6.0.0 */ public function remove($key); @@ -70,6 +75,7 @@ interface ICache { * Clear the user cache of all entries starting with a prefix * @param string $prefix (optional) * @return bool + * @since 6.0.0 */ public function clear($prefix = ''); } diff --git a/lib/public/icachefactory.php b/lib/public/icachefactory.php index 173ace2242a..a030b7fc5bc 100644 --- a/lib/public/icachefactory.php +++ b/lib/public/icachefactory.php @@ -22,6 +22,12 @@ namespace OCP; +/** + * Interface ICacheFactory + * + * @package OCP + * @since 7.0.0 + */ interface ICacheFactory{ /** * Get a memory cache instance @@ -30,6 +36,7 @@ interface ICacheFactory{ * * @param string $prefix * @return \OCP\ICache + * @since 7.0.0 */ public function create($prefix = ''); @@ -37,6 +44,7 @@ interface ICacheFactory{ * Check if any memory cache backend is available * * @return bool + * @since 7.0.0 */ public function isAvailable(); } diff --git a/lib/public/icertificate.php b/lib/public/icertificate.php index 19f64b7b042..73abc030934 100644 --- a/lib/public/icertificate.php +++ b/lib/public/icertificate.php @@ -22,44 +22,58 @@ namespace OCP; +/** + * Interface ICertificate + * + * @package OCP + * @since 8.0.0 + */ interface ICertificate { /** * @return string + * @since 8.0.0 */ public function getName(); /** * @return string + * @since 8.0.0 */ public function getCommonName(); /** * @return string + * @since 8.0.0 */ public function getOrganization(); /** * @return \DateTime + * @since 8.0.0 */ public function getIssueDate(); /** * @return \DateTime + * @since 8.0.0 */ public function getExpireDate(); /** * @return bool + * @since 8.0.0 */ public function isExpired(); /** * @return string + * @since 8.0.0 */ public function getIssuerName(); /** * @return string + * @since 8.0.0 */ public function getIssuerOrganization(); } diff --git a/lib/public/icertificatemanager.php b/lib/public/icertificatemanager.php index f6045fe5b28..3014cd8f633 100644 --- a/lib/public/icertificatemanager.php +++ b/lib/public/icertificatemanager.php @@ -24,24 +24,29 @@ namespace OCP; /** * Manage trusted certificates for users + * @since 8.0.0 */ interface ICertificateManager { /** * Returns all certificates trusted by the user * * @return \OCP\ICertificate[] + * @since 8.0.0 */ public function listCertificates(); /** * @param string $certificate the certificate data * @param string $name the filename for the certificate - * @return bool | \OCP\ICertificate + * @return \OCP\ICertificate + * @throws \Exception If the certificate could not get added + * @since 8.0.0 */ public function addCertificate($certificate, $name); /** * @param string $name + * @since 8.0.0 */ public function removeCertificate($name); @@ -49,6 +54,7 @@ interface ICertificateManager { * Get the path to the certificate bundle for this user * * @return string + * @since 8.0.0 */ public function getCertificateBundle(); } diff --git a/lib/public/iconfig.php b/lib/public/iconfig.php index f28a114a2bb..ff0b6c6a5b0 100644 --- a/lib/public/iconfig.php +++ b/lib/public/iconfig.php @@ -37,6 +37,7 @@ namespace OCP; /** * Access to all the configuration options ownCloud offers + * @since 6.0.0 */ interface IConfig { /** @@ -44,6 +45,7 @@ interface IConfig { * * @param array $configs Associative array with `key => value` pairs * If value is null, the config key will be deleted + * @since 8.0.0 */ public function setSystemValues(array $configs); @@ -52,6 +54,7 @@ interface IConfig { * * @param string $key the key of the value, under which will be saved * @param mixed $value the value that should be stored + * @since 8.0.0 */ public function setSystemValue($key, $value); @@ -61,6 +64,7 @@ interface IConfig { * @param string $key the key of the value, under which it was saved * @param mixed $default the default value to be returned if the value isn't set * @return mixed the value or $default + * @since 6.0.0 - parameter $default was added in 7.0.0 */ public function getSystemValue($key, $default = ''); @@ -68,6 +72,7 @@ interface IConfig { * Delete a system wide defined value * * @param string $key the key of the value, under which it was saved + * @since 8.0.0 */ public function deleteSystemValue($key); @@ -76,6 +81,7 @@ interface IConfig { * * @param string $appName the appName that we stored the value under * @return string[] the keys stored for the app + * @since 8.0.0 */ public function getAppKeys($appName); @@ -86,6 +92,7 @@ interface IConfig { * @param string $key the key of the value, under which will be saved * @param string $value the value that should be stored * @return void + * @since 6.0.0 */ public function setAppValue($appName, $key, $value); @@ -96,6 +103,7 @@ interface IConfig { * @param string $key the key of the value, under which it was saved * @param string $default the default value to be returned if the value isn't set * @return string the saved value + * @since 6.0.0 - parameter $default was added in 7.0.0 */ public function getAppValue($appName, $key, $default = ''); @@ -104,6 +112,7 @@ interface IConfig { * * @param string $appName the appName that we stored the value under * @param string $key the key of the value, under which it was saved + * @since 8.0.0 */ public function deleteAppValue($appName, $key); @@ -111,6 +120,7 @@ interface IConfig { * Removes all keys in appconfig belonging to the app * * @param string $appName the appName the configs are stored under + * @since 8.0.0 */ public function deleteAppValues($appName); @@ -124,6 +134,7 @@ interface IConfig { * @param string $value the value that you want to store * @param string $preCondition only update if the config value was previously the value passed as $preCondition * @throws \OCP\PreConditionNotMetException if a precondition is specified and is not met + * @since 6.0.0 - parameter $precondition was added in 8.0.0 */ public function setUserValue($userId, $appName, $key, $value, $preCondition = null); @@ -135,6 +146,7 @@ interface IConfig { * @param string $key the key under which the value is being stored * @param mixed $default the default value to be returned if the value isn't set * @return string + * @since 6.0.0 - parameter $default was added in 7.0.0 */ public function getUserValue($userId, $appName, $key, $default = ''); @@ -145,6 +157,7 @@ interface IConfig { * @param string $key the key to get the value for * @param array $userIds the user IDs to fetch the values for * @return array Mapped values: userId => value + * @since 8.0.0 */ public function getUserValueForUsers($appName, $key, $userIds); @@ -154,6 +167,7 @@ interface IConfig { * @param string $userId the userId of the user that we want to store the value under * @param string $appName the appName that we stored the value under * @return string[] + * @since 8.0.0 */ public function getUserKeys($userId, $appName); @@ -163,6 +177,7 @@ interface IConfig { * @param string $userId the userId of the user that we want to store the value under * @param string $appName the appName that we stored the value under * @param string $key the key under which the value is being stored + * @since 8.0.0 */ public function deleteUserValue($userId, $appName, $key); @@ -170,6 +185,7 @@ interface IConfig { * Delete all user values * * @param string $userId the userId of the user that we want to remove all values from + * @since 8.0.0 */ public function deleteAllUserValues($userId); @@ -177,6 +193,7 @@ interface IConfig { * Delete all user related values of one app * * @param string $appName the appName of the app that we want to remove all values from + * @since 8.0.0 */ public function deleteAppFromAllUsers($appName); @@ -187,6 +204,7 @@ interface IConfig { * @param string $key the key to get the user for * @param string $value the value to get the user for * @return array of user IDs + * @since 8.0.0 */ public function getUsersForUserValue($appName, $key, $value); } diff --git a/lib/public/icontainer.php b/lib/public/icontainer.php index 10cb6bbe37d..35bf6a76ce8 100644 --- a/lib/public/icontainer.php +++ b/lib/public/icontainer.php @@ -36,6 +36,7 @@ namespace OCP; * IContainer is the basic interface to be used for any internal dependency injection mechanism * * @package OCP + * @since 6.0.0 */ interface IContainer { @@ -44,8 +45,9 @@ interface IContainer { * * @param string $name * @return mixed + * @since 6.0.0 */ - function query($name); + public function query($name); /** * A value is stored in the container with it's corresponding name @@ -53,8 +55,9 @@ interface IContainer { * @param string $name * @param mixed $value * @return void + * @since 6.0.0 */ - function registerParameter($name, $value); + public function registerParameter($name, $value); /** * A service is registered in the container where a closure is passed in which will actually @@ -67,6 +70,7 @@ interface IContainer { * @param \Closure $closure * @param bool $shared * @return void + * @since 6.0.0 */ - function registerService($name, \Closure $closure, $shared = true); + public function registerService($name, \Closure $closure, $shared = true); } diff --git a/lib/public/idatetimeformatter.php b/lib/public/idatetimeformatter.php index 1eed73cda00..77afd6930ce 100644 --- a/lib/public/idatetimeformatter.php +++ b/lib/public/idatetimeformatter.php @@ -22,6 +22,12 @@ namespace OCP; +/** + * Interface IDateTimeFormatter + * + * @package OCP + * @since 8.0.0 + */ interface IDateTimeFormatter { /** * Formats the date of the given timestamp @@ -36,6 +42,7 @@ interface IDateTimeFormatter { * @param \DateTimeZone $timeZone The timezone to use * @param \OCP\IL10N $l The locale to use * @return string Formatted date string + * @since 8.0.0 */ public function formatDate($timestamp, $format = 'long', \DateTimeZone $timeZone = null, \OCP\IL10N $l = null); @@ -53,6 +60,7 @@ interface IDateTimeFormatter { * @param \DateTimeZone $timeZone The timezone to use * @param \OCP\IL10N $l The locale to use * @return string Formatted relative date string + * @since 8.0.0 */ public function formatDateRelativeDay($timestamp, $format = 'long', \DateTimeZone $timeZone = null, \OCP\IL10N $l = null); @@ -68,6 +76,7 @@ interface IDateTimeFormatter { * >= 13 month => last year, n years ago * @param \OCP\IL10N $l The locale to use * @return string Formatted date span + * @since 8.0.0 */ public function formatDateSpan($timestamp, $baseTimestamp = null, \OCP\IL10N $l = null); @@ -84,6 +93,7 @@ interface IDateTimeFormatter { * @param \DateTimeZone $timeZone The timezone to use * @param \OCP\IL10N $l The locale to use * @return string Formatted time string + * @since 8.0.0 */ public function formatTime($timestamp, $format = 'medium', \DateTimeZone $timeZone = null, \OCP\IL10N $l = null); @@ -101,6 +111,7 @@ interface IDateTimeFormatter { * >= 13 month => last year, n years ago * @param \OCP\IL10N $l The locale to use * @return string Formatted time span + * @since 8.0.0 */ public function formatTimeSpan($timestamp, $baseTimestamp = null, \OCP\IL10N $l = null); @@ -113,6 +124,7 @@ interface IDateTimeFormatter { * @param \DateTimeZone $timeZone The timezone to use * @param \OCP\IL10N $l The locale to use * @return string Formatted date and time string + * @since 8.0.0 */ public function formatDateTime($timestamp, $formatDate = 'long', $formatTime = 'medium', \DateTimeZone $timeZone = null, \OCP\IL10N $l = null); @@ -126,6 +138,7 @@ interface IDateTimeFormatter { * @param \DateTimeZone $timeZone The timezone to use * @param \OCP\IL10N $l The locale to use * @return string Formatted relative date and time string + * @since 8.0.0 */ public function formatDateTimeRelativeDay($timestamp, $formatDate = 'long', $formatTime = 'medium', \DateTimeZone $timeZone = null, \OCP\IL10N $l = null); } diff --git a/lib/public/idatetimezone.php b/lib/public/idatetimezone.php index eb74074aa46..2334f1314b5 100644 --- a/lib/public/idatetimezone.php +++ b/lib/public/idatetimezone.php @@ -22,11 +22,17 @@ namespace OCP; - +/** + * Interface IDateTimeZone + * + * @package OCP + * @since 8.0.0 + */ interface IDateTimeZone { /** * @param bool|int $timestamp * @return \DateTimeZone + * @since 8.0.0 - parameter $timestamp was added in 8.1.0 */ public function getTimeZone($timestamp = false); } diff --git a/lib/public/idb.php b/lib/public/idb.php index 8d7060f66d6..f3e7915d9f7 100644 --- a/lib/public/idb.php +++ b/lib/public/idb.php @@ -25,6 +25,7 @@ namespace OCP; /** * Small Facade for being able to inject the database connection for tests + * @since 7.0.0 - extends IDBConnection was added in 8.1.0 */ interface IDb extends IDBConnection { @@ -35,6 +36,7 @@ interface IDb extends IDBConnection { * @param int $limit the maximum number of rows * @param int $offset from which row we want to start * @return \OC_DB_StatementWrapper prepared SQL query + * @since 7.0.0 */ public function prepareQuery($sql, $limit=null, $offset=null); @@ -43,6 +45,7 @@ interface IDb extends IDBConnection { * Used to get the id of the just inserted element * @param string $tableName the name of the table where we inserted the item * @return int the id of the inserted element + * @since 7.0.0 */ public function getInsertId($tableName); diff --git a/lib/public/idbconnection.php b/lib/public/idbconnection.php index ac909dfe5de..ebad3c1f693 100644 --- a/lib/public/idbconnection.php +++ b/lib/public/idbconnection.php @@ -34,7 +34,10 @@ namespace OCP; /** - * TODO: Description + * Interface IDBConnection + * + * @package OCP + * @since 6.0.0 */ interface IDBConnection { /** @@ -43,6 +46,7 @@ interface IDBConnection { * @param int $limit the maximum number of rows * @param int $offset from which row we want to start * @return \Doctrine\DBAL\Driver\Statement The prepared statement. + * @since 6.0.0 */ public function prepare($sql, $limit=null, $offset=null); @@ -56,6 +60,7 @@ interface IDBConnection { * @param string[] $params The parameters to bind to the query, if any. * @param array $types The types the previous parameters are in. * @return \Doctrine\DBAL\Driver\Statement The executed statement. + * @since 8.0.0 */ public function executeQuery($query, array $params = array(), $types = array()); @@ -69,6 +74,7 @@ interface IDBConnection { * @param array $params The query parameters. * @param array $types The parameter types. * @return integer The number of affected rows. + * @since 8.0.0 */ public function executeUpdate($query, array $params = array(), array $types = array()); @@ -76,6 +82,7 @@ interface IDBConnection { * Used to get the id of the just inserted element * @param string $table the name of the table where we inserted the item * @return int the id of the inserted element + * @since 6.0.0 */ public function lastInsertId($table = null); @@ -89,27 +96,32 @@ interface IDBConnection { * Please note: text fields (clob) must not be used in the compare array * @return int number of inserted rows * @throws \Doctrine\DBAL\DBALException + * @since 6.0.0 - parameter $compare was added in 8.1.0, return type changed from boolean in 8.1.0 */ public function insertIfNotExist($table, $input, array $compare = null); /** * Start a transaction + * @since 6.0.0 */ public function beginTransaction(); /** * Commit the database changes done during a transaction that is in progress + * @since 6.0.0 */ public function commit(); /** * Rollback the database changes done during a transaction that is in progress + * @since 6.0.0 */ public function rollBack(); /** * Gets the error code and message as a string for logging * @return string + * @since 6.0.0 */ public function getError(); @@ -117,6 +129,7 @@ interface IDBConnection { * Fetch the SQLSTATE associated with the last database operation. * * @return integer The last error code. + * @since 8.0.0 */ public function errorCode(); @@ -124,6 +137,7 @@ interface IDBConnection { * Fetch extended error information associated with the last database operation. * * @return array The last error information. + * @since 8.0.0 */ public function errorInfo(); @@ -131,11 +145,13 @@ interface IDBConnection { * Establishes the connection with the database. * * @return bool + * @since 8.0.0 */ public function connect(); /** * Close the database connection + * @since 8.0.0 */ public function close(); @@ -145,6 +161,7 @@ interface IDBConnection { * @param mixed $input Parameter to be quoted. * @param int $type Type of the parameter. * @return string The quoted parameter. + * @since 8.0.0 */ public function quote($input, $type = \PDO::PARAM_STR); @@ -153,6 +170,7 @@ interface IDBConnection { * the platform this driver connects to. * * @return \Doctrine\DBAL\Platforms\AbstractPlatform The database platform. + * @since 8.0.0 */ public function getDatabasePlatform(); @@ -160,6 +178,7 @@ interface IDBConnection { * Drop a table from the database if it exists * * @param string $table table name without the prefix + * @since 8.0.0 */ public function dropTable($table); @@ -168,6 +187,7 @@ interface IDBConnection { * * @param string $table table name without the prefix * @return bool + * @since 8.0.0 */ public function tableExists($table); } diff --git a/lib/public/ieventsource.php b/lib/public/ieventsource.php index ad5c44eb239..176d5677f0a 100644 --- a/lib/public/ieventsource.php +++ b/lib/public/ieventsource.php @@ -29,6 +29,7 @@ namespace OCP; * use server side events with caution, to many open requests can hang the server * * The event source will initialize the connection to the client when the first data is sent + * @since 8.0.0 */ interface IEventSource { /** @@ -38,11 +39,13 @@ interface IEventSource { * @param mixed $data * * if only one parameter is given, a typeless message will be send with that parameter as data + * @since 8.0.0 */ public function send($type, $data = null); /** * close the connection of the event source + * @since 8.0.0 */ public function close(); } diff --git a/lib/public/igroup.php b/lib/public/igroup.php index a5fc44e0d5d..b16bb94d43f 100644 --- a/lib/public/igroup.php +++ b/lib/public/igroup.php @@ -22,9 +22,16 @@ namespace OCP; +/** + * Interface IGroup + * + * @package OCP + * @since 8.0.0 + */ interface IGroup { /** * @return string + * @since 8.0.0 */ public function getGID(); @@ -32,6 +39,7 @@ interface IGroup { * get all users in the group * * @return \OCP\IUser[] + * @since 8.0.0 */ public function getUsers(); @@ -40,6 +48,7 @@ interface IGroup { * * @param \OCP\IUser $user * @return bool + * @since 8.0.0 */ public function inGroup($user); @@ -47,6 +56,7 @@ interface IGroup { * add a user to the group * * @param \OCP\IUser $user + * @since 8.0.0 */ public function addUser($user); @@ -54,6 +64,7 @@ interface IGroup { * remove a user from the group * * @param \OCP\IUser $user + * @since 8.0.0 */ public function removeUser($user); @@ -64,6 +75,7 @@ interface IGroup { * @param int $limit * @param int $offset * @return \OCP\IUser[] + * @since 8.0.0 */ public function searchUsers($search, $limit = null, $offset = null); @@ -72,6 +84,7 @@ interface IGroup { * * @param string $search * @return int|bool + * @since 8.0.0 */ public function count($search = ''); @@ -82,6 +95,7 @@ interface IGroup { * @param int $limit * @param int $offset * @return \OCP\IUser[] + * @since 8.0.0 */ public function searchDisplayName($search, $limit = null, $offset = null); @@ -89,6 +103,7 @@ interface IGroup { * delete the group * * @return bool + * @since 8.0.0 */ public function delete(); } diff --git a/lib/public/igroupmanager.php b/lib/public/igroupmanager.php index 89998ecf65b..ffd459b09e1 100644 --- a/lib/public/igroupmanager.php +++ b/lib/public/igroupmanager.php @@ -37,30 +37,38 @@ namespace OCP; * - postCreate(\OC\Group\Group $group) * * @package OC\Group + * @since 8.0.0 */ interface IGroupManager { /** * @param \OCP\UserInterface $backend + * @since 8.0.0 */ public function addBackend($backend); + /** + * @since 8.0.0 + */ public function clearBackends(); /** * @param string $gid * @return \OCP\IGroup + * @since 8.0.0 */ public function get($gid); /** * @param string $gid * @return bool + * @since 8.0.0 */ public function groupExists($gid); /** * @param string $gid * @return \OCP\IGroup + * @since 8.0.0 */ public function createGroup($gid); @@ -69,18 +77,21 @@ interface IGroupManager { * @param int $limit * @param int $offset * @return \OCP\IGroup[] + * @since 8.0.0 */ public function search($search, $limit = null, $offset = null); /** * @param \OCP\IUser $user * @return \OCP\IGroup[] + * @since 8.0.0 */ public function getUserGroups($user); /** * @param \OCP\IUser $user * @return array with group names + * @since 8.0.0 */ public function getUserGroupIds($user); @@ -92,6 +103,7 @@ interface IGroupManager { * @param int $limit * @param int $offset * @return array an array of display names (value) and user ids (key) + * @since 8.0.0 */ public function displayNamesInGroup($gid, $search = '', $limit = -1, $offset = 0); @@ -99,6 +111,7 @@ interface IGroupManager { * Checks if a userId is in the admin group * @param string $userId * @return bool if admin + * @since 8.0.0 */ public function isAdmin($userId); @@ -107,6 +120,7 @@ interface IGroupManager { * @param string $userId * @param group $group * @return bool if in group + * @since 8.0.0 */ public function isInGroup($userId, $group); } diff --git a/lib/public/ihelper.php b/lib/public/ihelper.php index 0eb265f5a61..a42dbf5ec61 100644 --- a/lib/public/ihelper.php +++ b/lib/public/ihelper.php @@ -32,6 +32,7 @@ namespace OCP; /** * Functions that don't have any specific interface to place + * @since 6.0.0 */ interface IHelper { /** @@ -39,6 +40,7 @@ interface IHelper { * installed * @param string $url the url that should be fetched * @return string the content of the webpage + * @since 6.0.0 */ public function getUrlContent($url); } diff --git a/lib/public/iimage.php b/lib/public/iimage.php index 36e5492138c..202adeaba54 100644 --- a/lib/public/iimage.php +++ b/lib/public/iimage.php @@ -23,12 +23,14 @@ namespace OCP; /** * Class for basic image manipulation + * @since 8.1.0 */ interface IImage { /** * Determine whether the object contains an image resource. * * @return bool + * @since 8.1.0 */ public function valid(); @@ -36,6 +38,7 @@ interface IImage { * Returns the MIME type of the image or an empty string if no image is loaded. * * @return string + * @since 8.1.0 */ public function mimeType(); @@ -43,6 +46,7 @@ interface IImage { * Returns the width of the image or -1 if no image is loaded. * * @return int + * @since 8.1.0 */ public function width(); @@ -50,6 +54,7 @@ interface IImage { * Returns the height of the image or -1 if no image is loaded. * * @return int + * @since 8.1.0 */ public function height(); @@ -57,6 +62,7 @@ interface IImage { * Returns the width when the image orientation is top-left. * * @return int + * @since 8.1.0 */ public function widthTopLeft(); @@ -64,6 +70,7 @@ interface IImage { * Returns the height when the image orientation is top-left. * * @return int + * @since 8.1.0 */ public function heightTopLeft(); @@ -72,6 +79,7 @@ interface IImage { * * @param string $mimeType * @return bool + * @since 8.1.0 */ public function show($mimeType = null); @@ -81,16 +89,19 @@ interface IImage { * @param string $filePath * @param string $mimeType * @return bool + * @since 8.1.0 */ public function save($filePath = null, $mimeType = null); /** * @return resource Returns the image resource in any. + * @since 8.1.0 */ public function resource(); /** * @return string Returns the raw image data. + * @since 8.1.0 */ public function data(); @@ -99,6 +110,7 @@ interface IImage { * Get the orientation based on EXIF data. * * @return int The orientation or -1 if no EXIF data is available. + * @since 8.1.0 */ public function getOrientation(); @@ -106,7 +118,8 @@ interface IImage { * (I'm open for suggestions on better method name ;) * Fixes orientation based on EXIF data. * - * @return bool. + * @return bool + * @since 8.1.0 */ public function fixOrientation(); @@ -115,6 +128,7 @@ interface IImage { * * @param integer $maxSize The maximum size of either the width or height. * @return bool + * @since 8.1.0 */ public function resize($maxSize); @@ -122,6 +136,7 @@ interface IImage { * @param int $width * @param int $height * @return bool + * @since 8.1.0 */ public function preciseResize($width, $height); @@ -130,6 +145,7 @@ interface IImage { * * @param int $size maximum size for the result (optional) * @return bool for success or failure + * @since 8.1.0 */ public function centerCrop($size = 0); @@ -141,6 +157,7 @@ interface IImage { * @param int $w Width * @param int $h Height * @return bool for success or failure + * @since 8.1.0 */ public function crop($x, $y, $w, $h); @@ -150,6 +167,7 @@ interface IImage { * @param integer $maxWidth * @param integer $maxHeight * @return bool + * @since 8.1.0 */ public function fitIn($maxWidth, $maxHeight); } diff --git a/lib/public/il10n.php b/lib/public/il10n.php index 35c09268825..e1d0102105b 100644 --- a/lib/public/il10n.php +++ b/lib/public/il10n.php @@ -35,7 +35,10 @@ namespace OCP; /** - * TODO: Description + * Interface IL10N + * + * @package OCP + * @since 6.0.0 */ interface IL10N { /** @@ -46,6 +49,7 @@ interface IL10N { * * Returns the translation. If no translation is found, $text will be * returned. + * @since 6.0.0 */ public function t($text, $parameters = array()); @@ -62,6 +66,7 @@ interface IL10N { * * The correct plural is determined by the plural_forms-function * provided by the po file. + * @since 6.0.0 * */ public function n($text_singular, $text_plural, $count, $parameters = array()); @@ -70,6 +75,8 @@ interface IL10N { * Localization * @param string $type Type of localization * @param array $data parameters for this localization + * @param array $options currently supports following options: + * - 'width': handed into \Punic\Calendar::formatDate as second parameter * @return string|false * * Returns the localized data. @@ -87,14 +94,16 @@ interface IL10N { * - Creates a time * - l10n-field: time * - params: timestamp (int/string) + * @since 6.0.0 - parameter $options was added in 8.0.0 */ - public function l($type, $data); + public function l($type, $data, $options = array()); /** * The code (en, de, ...) of the language that is used for this OC_L10N object * * @return string language + * @since 7.0.0 */ public function getLanguageCode(); } diff --git a/lib/public/ilogger.php b/lib/public/ilogger.php index cd4e61fcbc4..43b1ef70e5b 100644 --- a/lib/public/ilogger.php +++ b/lib/public/ilogger.php @@ -25,6 +25,7 @@ namespace OCP; /** * Interface ILogger * @package OCP + * @since 7.0.0 * * This logger interface follows the design guidelines of PSR-3 * https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md#3-psrlogloggerinterface @@ -36,8 +37,9 @@ interface ILogger { * @param string $message * @param array $context * @return null + * @since 7.0.0 */ - function emergency($message, array $context = array()); + public function emergency($message, array $context = array()); /** * Action must be taken immediately. @@ -45,8 +47,9 @@ interface ILogger { * @param string $message * @param array $context * @return null + * @since 7.0.0 */ - function alert($message, array $context = array()); + public function alert($message, array $context = array()); /** * Critical conditions. @@ -54,8 +57,9 @@ interface ILogger { * @param string $message * @param array $context * @return null + * @since 7.0.0 */ - function critical($message, array $context = array()); + public function critical($message, array $context = array()); /** * Runtime errors that do not require immediate action but should typically @@ -64,8 +68,9 @@ interface ILogger { * @param string $message * @param array $context * @return null + * @since 7.0.0 */ - function error($message, array $context = array()); + public function error($message, array $context = array()); /** * Exceptional occurrences that are not errors. @@ -73,8 +78,9 @@ interface ILogger { * @param string $message * @param array $context * @return null + * @since 7.0.0 */ - function warning($message, array $context = array()); + public function warning($message, array $context = array()); /** * Normal but significant events. @@ -82,8 +88,9 @@ interface ILogger { * @param string $message * @param array $context * @return null + * @since 7.0.0 */ - function notice($message, array $context = array()); + public function notice($message, array $context = array()); /** * Interesting events. @@ -91,8 +98,9 @@ interface ILogger { * @param string $message * @param array $context * @return null + * @since 7.0.0 */ - function info($message, array $context = array()); + public function info($message, array $context = array()); /** * Detailed debug information. @@ -100,8 +108,9 @@ interface ILogger { * @param string $message * @param array $context * @return null + * @since 7.0.0 */ - function debug($message, array $context = array()); + public function debug($message, array $context = array()); /** * Logs with an arbitrary level. @@ -110,6 +119,7 @@ interface ILogger { * @param string $message * @param array $context * @return mixed + * @since 7.0.0 */ - function log($level, $message, array $context = array()); + public function log($level, $message, array $context = array()); } diff --git a/lib/public/image.php b/lib/public/image.php index cf30bacd899..ebcae80f8e8 100644 --- a/lib/public/image.php +++ b/lib/public/image.php @@ -33,6 +33,7 @@ namespace OCP; /** * This class provides functions to handle images + * @since 6.0.0 */ class Image extends \OC_Image { } diff --git a/lib/public/inavigationmanager.php b/lib/public/inavigationmanager.php index 19366b4a1dd..fe2a4cfee27 100644 --- a/lib/public/inavigationmanager.php +++ b/lib/public/inavigationmanager.php @@ -35,6 +35,7 @@ namespace OCP; /** * Manages the ownCloud navigation + * @since 6.0.0 */ interface INavigationManager { /** @@ -44,6 +45,7 @@ interface INavigationManager { * The use of a closure is preferred, because it will avoid * loading the routing of your app, unless required. * @return void + * @since 6.0.0 */ public function add($entry); @@ -51,6 +53,7 @@ interface INavigationManager { * Sets the current navigation entry of the currently running app * @param string $appId id of the app entry to activate (from added $entry) * @return void + * @since 6.0.0 */ public function setActiveEntry($appId); } diff --git a/lib/public/ipreview.php b/lib/public/ipreview.php index d0a7972714c..fc81da976b9 100644 --- a/lib/public/ipreview.php +++ b/lib/public/ipreview.php @@ -34,6 +34,7 @@ namespace OCP; /** * This class provides functions to render and show thumbnails and previews of files + * @since 6.0.0 */ interface IPreview { /** @@ -45,18 +46,21 @@ interface IPreview { * @param string $mimeTypeRegex Regex with the mime types that are supported by this provider * @param \Closure $callable * @return void + * @since 8.1.0 */ public function registerProvider($mimeTypeRegex, \Closure $callable); /** * Get all providers * @return array + * @since 8.1.0 */ public function getProviders(); /** * Does the manager have any providers * @return bool + * @since 8.1.0 */ public function hasProviders(); @@ -67,6 +71,7 @@ interface IPreview { * @param int $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image * @param boolean $scaleUp Scale smaller images up to the thumbnail size or not. Might look ugly * @return \OCP\IImage + * @since 6.0.0 */ public function createPreview($file, $maxX = 100, $maxY = 75, $scaleUp = false); @@ -75,6 +80,7 @@ interface IPreview { * Returns true if the passed mime type is supported * @param string $mimeType * @return boolean + * @since 6.0.0 */ public function isMimeSupported($mimeType = '*'); @@ -83,6 +89,7 @@ interface IPreview { * * @param \OCP\Files\FileInfo $file * @return bool + * @since 8.0.0 */ public function isAvailable(\OCP\Files\FileInfo $file); } diff --git a/lib/public/irequest.php b/lib/public/irequest.php index 1b83eaf2c36..20fa543dd69 100644 --- a/lib/public/irequest.php +++ b/lib/public/irequest.php @@ -58,6 +58,7 @@ namespace OCP; * * @property-read string[] $server * @property-read string[] $urlParams + * @since 6.0.0 */ interface IRequest { @@ -65,8 +66,9 @@ interface IRequest { * @param string $name * * @return string + * @since 6.0.0 */ - function getHeader($name); + public function getHeader($name); /** * Lets you access post and get parameters by the index @@ -80,6 +82,7 @@ interface IRequest { * 3. GET parameters * @param mixed $default If the key is not found, this value will be returned * @return mixed the content of the array + * @since 6.0.0 */ public function getParam($key, $default = null); @@ -89,6 +92,7 @@ interface IRequest { * * (as GET or POST) or through the URL by the route * @return array the array with all parameters + * @since 6.0.0 */ public function getParams(); @@ -96,6 +100,7 @@ interface IRequest { * Returns the method of the request * * @return string the method of the request (POST, GET, etc) + * @since 6.0.0 */ public function getMethod(); @@ -104,6 +109,7 @@ interface IRequest { * * @param string $key the key that will be taken from the $_FILES array * @return array the file in the $_FILES element + * @since 6.0.0 */ public function getUploadedFile($key); @@ -113,6 +119,7 @@ interface IRequest { * * @param string $key the key that will be taken from the $_ENV array * @return array the value in the $_ENV element + * @since 6.0.0 */ public function getEnv($key); @@ -122,13 +129,15 @@ interface IRequest { * * @param string $key the key that will be taken from the $_COOKIE array * @return array the value in the $_COOKIE element + * @since 6.0.0 */ - function getCookie($key); + public function getCookie($key); /** * Checks if the CSRF check was correct * @return bool true if CSRF check passed + * @since 6.0.0 */ public function passesCSRFCheck(); @@ -136,6 +145,7 @@ interface IRequest { * Returns an ID for the request, value is not guaranteed to be unique and is mostly meant for logging * If `mod_unique_id` is installed this value will be taken. * @return string + * @since 8.1.0 */ public function getId(); @@ -145,6 +155,7 @@ interface IRequest { * specified in this header will be returned instead. * Do always use this instead of $_SERVER['REMOTE_ADDR'] * @return string IP address + * @since 8.1.0 */ public function getRemoteAddress(); @@ -152,6 +163,7 @@ interface IRequest { * Returns the server protocol. It respects reverse proxy servers and load * balancers. * @return string Server protocol (http or https) + * @since 8.1.0 */ public function getServerProtocol(); @@ -159,6 +171,7 @@ interface IRequest { * Returns the request uri, even if the website uses one or more * reverse proxies * @return string + * @since 8.1.0 */ public function getRequestUri(); @@ -166,6 +179,7 @@ interface IRequest { * Get raw PathInfo from request (not urldecoded) * @throws \Exception * @return string Path info + * @since 8.1.0 */ public function getRawPathInfo(); @@ -173,6 +187,7 @@ interface IRequest { * Get PathInfo from request * @throws \Exception * @return string|false Path info or false when not found + * @since 8.1.0 */ public function getPathInfo(); @@ -180,6 +195,7 @@ interface IRequest { * Returns the script name, even if the website uses one or more * reverse proxies * @return string the script name + * @since 8.1.0 */ public function getScriptName(); @@ -187,6 +203,7 @@ interface IRequest { * Checks whether the user agent matches a given regex * @param array $agent array of agent names * @return bool true if at least one of the given agent matches, false otherwise + * @since 8.1.0 */ public function isUserAgent(array $agent); @@ -194,6 +211,7 @@ interface IRequest { * Returns the unverified server host from the headers without checking * whether it is a trusted domain * @return string Server host + * @since 8.1.0 */ public function getInsecureServerHost(); @@ -201,6 +219,7 @@ interface IRequest { * Returns the server host from the headers, or the first configured * trusted domain if the host isn't in the trusted list * @return string Server host + * @since 8.1.0 */ public function getServerHost(); } diff --git a/lib/public/isearch.php b/lib/public/isearch.php index fe25d5b49f7..f7a9b5fb55c 100644 --- a/lib/public/isearch.php +++ b/lib/public/isearch.php @@ -28,6 +28,7 @@ namespace OCP; /** * Small Interface for Search + * @since 7.0.0 */ interface ISearch { @@ -36,7 +37,8 @@ interface ISearch { * @param string $query * @param string[] $inApps optionally limit results to the given apps * @return array An array of OCP\Search\Result's - * @deprecated use searchPaged() with page and size + * @deprecated 8.0.0 use searchPaged() with page and size + * @since 7.0.0 - parameter $inApps was added in 8.0.0 */ public function search($query, array $inApps = array()); @@ -47,6 +49,7 @@ interface ISearch { * @param int $page pages start at page 1 * @param int $size * @return array An array of OCP\Search\Result's + * @since 8.0.0 */ public function searchPaged($query, array $inApps = array(), $page = 1, $size = 30); @@ -54,17 +57,20 @@ interface ISearch { * Register a new search provider to search with * @param string $class class name of a OCP\Search\Provider * @param array $options optional + * @since 7.0.0 */ public function registerProvider($class, array $options = array()); /** * Remove one existing search provider * @param string $provider class name of a OCP\Search\Provider + * @since 7.0.0 */ public function removeProvider($provider); /** * Remove all registered search providers + * @since 7.0.0 */ public function clearProviders(); diff --git a/lib/public/iservercontainer.php b/lib/public/iservercontainer.php index dd0d2f417cf..9af1582dae9 100644 --- a/lib/public/iservercontainer.php +++ b/lib/public/iservercontainer.php @@ -44,6 +44,7 @@ namespace OCP; * @package OCP * * This container holds all ownCloud services + * @since 6.0.0 */ interface IServerContainer { @@ -52,8 +53,9 @@ interface IServerContainer { * providers which actual deliver the contact information. * * @return \OCP\Contacts\IManager + * @since 6.0.0 */ - function getContactsManager(); + public function getContactsManager(); /** * The current request object holding all information about the request currently being processed @@ -61,260 +63,297 @@ interface IServerContainer { * In case the current execution was not initiated by a web request null is returned * * @return \OCP\IRequest + * @since 6.0.0 */ - function getRequest(); + public function getRequest(); /** * Returns the preview manager which can create preview images for a given file * * @return \OCP\IPreview + * @since 6.0.0 */ - function getPreviewManager(); + public function getPreviewManager(); /** * Returns the tag manager which can get and set tags for different object types * * @see \OCP\ITagManager::load() * @return \OCP\ITagManager + * @since 6.0.0 */ - function getTagManager(); + public function getTagManager(); /** * Returns the root folder of ownCloud's data directory * * @return \OCP\Files\Folder + * @since 6.0.0 */ - function getRootFolder(); + public function getRootFolder(); /** * Returns a view to ownCloud's files folder * * @param string $userId user ID * @return \OCP\Files\Folder + * @since 6.0.0 - parameter $userId was added in 8.0.0 */ - function getUserFolder($userId = null); + public function getUserFolder($userId = null); /** * Returns an app-specific view in ownClouds data directory * * @return \OCP\Files\Folder + * @since 6.0.0 */ - function getAppFolder(); + public function getAppFolder(); /** * Returns a user manager * * @return \OCP\IUserManager + * @since 8.0.0 */ - function getUserManager(); + public function getUserManager(); /** * Returns a group manager * * @return \OCP\IGroupManager + * @since 8.0.0 */ - function getGroupManager(); + public function getGroupManager(); /** * Returns the user session * * @return \OCP\IUserSession + * @since 6.0.0 */ - function getUserSession(); + public function getUserSession(); /** * Returns the navigation manager * * @return \OCP\INavigationManager + * @since 6.0.0 */ - function getNavigationManager(); + public function getNavigationManager(); /** * Returns the config manager * * @return \OCP\IConfig + * @since 6.0.0 */ - function getConfig(); + public function getConfig(); /** * Returns a Crypto instance * * @return \OCP\Security\ICrypto + * @since 8.0.0 */ - function getCrypto(); + public function getCrypto(); /** * Returns a Hasher instance * * @return \OCP\Security\IHasher + * @since 8.0.0 */ - function getHasher(); + public function getHasher(); /** * Returns a SecureRandom instance * * @return \OCP\Security\ISecureRandom + * @since 8.1.0 */ - function getSecureRandom(); + public function getSecureRandom(); /** * Returns an instance of the db facade - * @deprecated use getDatabaseConnection, will be removed in ownCloud 10 + * @deprecated 8.1.0 use getDatabaseConnection, will be removed in ownCloud 10 * @return \OCP\IDb + * @since 7.0.0 */ - function getDb(); + public function getDb(); /** * Returns the app config manager * * @return \OCP\IAppConfig + * @since 7.0.0 */ - function getAppConfig(); + public function getAppConfig(); /** * get an L10N instance * @param string $app appid * @param string $lang * @return \OCP\IL10N + * @since 6.0.0 - parameter $lang was added in 8.0.0 */ - function getL10N($app, $lang = null); + public function getL10N($app, $lang = null); /** * @return \OC\Encryption\Manager + * @since 8.1.0 */ - function getEncryptionManager(); + public function getEncryptionManager(); /** * @return \OC\Encryption\File + * @since 8.1.0 */ - function getEncryptionFilesHelper(); + public function getEncryptionFilesHelper(); /** * @param string $encryptionModuleId encryption module ID * * @return \OCP\Encryption\Keys\IStorage + * @since 8.1.0 */ - function getEncryptionKeyStorage($encryptionModuleId); + public function getEncryptionKeyStorage($encryptionModuleId); /** * Returns the URL generator * * @return \OCP\IURLGenerator + * @since 6.0.0 */ - function getURLGenerator(); + public function getURLGenerator(); /** * Returns the Helper * * @return \OCP\IHelper + * @since 6.0.0 */ - function getHelper(); + public function getHelper(); /** * Returns an ICache instance * * @return \OCP\ICache + * @since 6.0.0 */ - function getCache(); + public function getCache(); /** * Returns an \OCP\CacheFactory instance * * @return \OCP\ICacheFactory + * @since 7.0.0 */ - function getMemCacheFactory(); + public function getMemCacheFactory(); /** * Returns the current session * * @return \OCP\ISession + * @since 6.0.0 */ - function getSession(); + public function getSession(); /** * Returns the activity manager * * @return \OCP\Activity\IManager + * @since 6.0.0 */ - function getActivityManager(); + public function getActivityManager(); /** * Returns the current session * * @return \OCP\IDBConnection + * @since 6.0.0 */ - function getDatabaseConnection(); + public function getDatabaseConnection(); /** * Returns an avatar manager, used for avatar functionality * * @return \OCP\IAvatarManager + * @since 6.0.0 */ - function getAvatarManager(); + public function getAvatarManager(); /** * Returns an job list for controlling background jobs * * @return \OCP\BackgroundJob\IJobList + * @since 7.0.0 */ - function getJobList(); + public function getJobList(); /** * Returns a logger instance * * @return \OCP\ILogger + * @since 8.0.0 */ - function getLogger(); + public function getLogger(); /** * Returns a router for generating and matching urls * * @return \OCP\Route\IRouter + * @since 7.0.0 */ - function getRouter(); + public function getRouter(); /** * Returns a search instance * * @return \OCP\ISearch + * @since 7.0.0 */ - function getSearch(); + public function getSearch(); /** * Get the certificate manager for the user * * @param \OCP\IUser $user (optional) if not specified the current loggedin user is used * @return \OCP\ICertificateManager + * @since 8.0.0 */ - function getCertificateManager($user = null); + public function getCertificateManager($user = null); /** * Create a new event source * * @return \OCP\IEventSource + * @since 8.0.0 */ - function createEventSource(); + public function createEventSource(); /** * Returns an instance of the HTTP helper class * @return \OC\HTTPHelper - * @deprecated Use \OCP\Http\Client\IClientService + * @deprecated 8.1.0 Use \OCP\Http\Client\IClientService + * @since 8.0.0 */ - function getHTTPHelper(); + public function getHTTPHelper(); /** * Returns an instance of the HTTP client service * * @return \OCP\Http\Client\IClientService + * @since 8.1.0 */ - function getHTTPClientService(); + public function getHTTPClientService(); /** * Get the active event logger * * @return \OCP\Diagnostics\IEventLogger + * @since 8.0.0 */ - function getEventLogger(); + public function getEventLogger(); /** * Get the active query logger @@ -322,50 +361,58 @@ interface IServerContainer { * The returned logger only logs data when debug mode is enabled * * @return \OCP\Diagnostics\IQueryLogger + * @since 8.0.0 */ - function getQueryLogger(); + public function getQueryLogger(); /** * Get the manager for temporary files and folders * * @return \OCP\ITempManager + * @since 8.0.0 */ - function getTempManager(); + public function getTempManager(); /** * Get the app manager * * @return \OCP\App\IAppManager + * @since 8.0.0 */ - function getAppManager(); + public function getAppManager(); /** * Get the webroot * * @return string + * @since 8.0.0 */ - function getWebRoot(); + public function getWebRoot(); /** * @return \OCP\Files\Config\IMountProviderCollection + * @since 8.0.0 */ - function getMountProviderCollection(); + public function getMountProviderCollection(); /** * Get the IniWrapper * * @return \bantu\IniGetWrapper\IniGetWrapper + * @since 8.0.0 */ - function getIniWrapper(); + public function getIniWrapper(); /** * @return \OCP\Command\IBus + * @since 8.1.0 */ - function getCommandBus(); + public function getCommandBus(); /** * Creates a new mailer * * @return \OCP\Mail\IMailer + * @since 8.1.0 */ - function getMailer(); + public function getMailer(); } diff --git a/lib/public/isession.php b/lib/public/isession.php index 9a996455f6b..aee635d7a9d 100644 --- a/lib/public/isession.php +++ b/lib/public/isession.php @@ -35,6 +35,7 @@ namespace OCP; * Interface ISession * * wrap PHP's internal session handling into the ISession interface + * @since 6.0.0 */ interface ISession { @@ -43,6 +44,7 @@ interface ISession { * * @param string $key * @param mixed $value + * @since 6.0.0 */ public function set($key, $value); @@ -51,6 +53,7 @@ interface ISession { * * @param string $key * @return mixed should return null if $key does not exist + * @since 6.0.0 */ public function get($key); @@ -59,6 +62,7 @@ interface ISession { * * @param string $key * @return bool + * @since 6.0.0 */ public function exists($key); @@ -66,16 +70,19 @@ interface ISession { * Remove a $key/$value pair from the session * * @param string $key + * @since 6.0.0 */ public function remove($key); /** * Reset and recreate the session + * @since 6.0.0 */ public function clear(); /** * Close the session and release the lock + * @since 7.0.0 */ public function close(); diff --git a/lib/public/itagmanager.php b/lib/public/itagmanager.php index af980d29dab..5ed005548d3 100644 --- a/lib/public/itagmanager.php +++ b/lib/public/itagmanager.php @@ -41,19 +41,21 @@ namespace OCP; * Tag names are not case-sensitive, but will be saved with the case they * are entered in. If a user already has a tag 'family' for a type, and * tries to add a tag named 'Family' it will be silently ignored. + * @since 6.0.0 */ interface ITagManager { /** - * Create a new \OCP\ITags instance and load tags from db for the current user. - * - * @see \OCP\ITags - * @param string $type The type identifier e.g. 'contact' or 'event'. - * @param array $defaultTags An array of default tags to be used if none are stored. - * @param boolean $includeShared Whether to include tags for items shared with this user by others. - * @param string $userId user for which to retrieve the tags, defaults to the currently - * logged in user - * @return \OCP\ITags + * Create a new \OCP\ITags instance and load tags from db for the current user. + * + * @see \OCP\ITags + * @param string $type The type identifier e.g. 'contact' or 'event'. + * @param array $defaultTags An array of default tags to be used if none are stored. + * @param boolean $includeShared Whether to include tags for items shared with this user by others. + * @param string $userId user for which to retrieve the tags, defaults to the currently + * logged in user + * @return \OCP\ITags + * @since 6.0.0 - parameter $includeShared and $userId were added in 8.0.0 */ public function load($type, $defaultTags = array(), $includeShared = false, $userId = null); } diff --git a/lib/public/itags.php b/lib/public/itags.php index 7a9b1e556ea..7faeb619fde 100644 --- a/lib/public/itags.php +++ b/lib/public/itags.php @@ -47,37 +47,41 @@ namespace OCP; * Tag names are not case-sensitive, but will be saved with the case they * are entered in. If a user already has a tag 'family' for a type, and * tries to add a tag named 'Family' it will be silently ignored. + * @since 6.0.0 */ interface ITags { /** - * Check if any tags are saved for this type and user. - * - * @return boolean - */ + * Check if any tags are saved for this type and user. + * + * @return boolean + * @since 6.0.0 + */ public function isEmpty(); /** - * Returns an array mapping a given tag's properties to its values: - * ['id' => 0, 'name' = 'Tag', 'owner' = 'User', 'type' => 'tagtype'] - * - * @param string $id The ID of the tag that is going to be mapped - * @return array|false - */ + * Returns an array mapping a given tag's properties to its values: + * ['id' => 0, 'name' = 'Tag', 'owner' = 'User', 'type' => 'tagtype'] + * + * @param string $id The ID of the tag that is going to be mapped + * @return array|false + * @since 8.0.0 + */ public function getTag($id); /** - * Get the tags for a specific user. - * - * This returns an array with id/name maps: - * [ - * ['id' => 0, 'name' = 'First tag'], - * ['id' => 1, 'name' = 'Second tag'], - * ] - * - * @return array - */ + * Get the tags for a specific user. + * + * This returns an array with id/name maps: + * [ + * ['id' => 0, 'name' = 'First tag'], + * ['id' => 1, 'name' = 'Second tag'], + * ] + * + * @return array + * @since 6.0.0 + */ public function getTags(); /** @@ -93,120 +97,134 @@ interface ITags { * @param array $objIds item ids * @return array|boolean with object id as key and an array * of tag names as value or false if an error occurred + * @since 8.0.0 */ public function getTagsForObjects(array $objIds); /** - * Get a list of items tagged with $tag. - * - * Throws an exception if the tag could not be found. - * - * @param string|integer $tag Tag id or name. - * @return array|false An array of object ids or false on error. - */ + * Get a list of items tagged with $tag. + * + * Throws an exception if the tag could not be found. + * + * @param string|integer $tag Tag id or name. + * @return array|false An array of object ids or false on error. + * @since 6.0.0 + */ public function getIdsForTag($tag); /** - * Checks whether a tag is already saved. - * - * @param string $name The name to check for. - * @return bool - */ + * Checks whether a tag is already saved. + * + * @param string $name The name to check for. + * @return bool + * @since 6.0.0 + */ public function hasTag($name); /** - * Checks whether a tag is saved for the given user, - * disregarding the ones shared with him or her. - * - * @param string $name The tag name to check for. - * @param string $user The user whose tags are to be checked. - * @return bool - */ + * Checks whether a tag is saved for the given user, + * disregarding the ones shared with him or her. + * + * @param string $name The tag name to check for. + * @param string $user The user whose tags are to be checked. + * @return bool + * @since 8.0.0 + */ public function userHasTag($name, $user); /** - * Add a new tag. - * - * @param string $name A string with a name of the tag - * @return int|false the id of the added tag or false if it already exists. - */ + * Add a new tag. + * + * @param string $name A string with a name of the tag + * @return int|false the id of the added tag or false if it already exists. + * @since 6.0.0 + */ public function add($name); /** - * Rename tag. - * - * @param string|integer $from The name or ID of the existing tag - * @param string $to The new name of the tag. - * @return bool - */ + * Rename tag. + * + * @param string|integer $from The name or ID of the existing tag + * @param string $to The new name of the tag. + * @return bool + * @since 6.0.0 + */ public function rename($from, $to); /** - * Add a list of new tags. - * - * @param string[] $names A string with a name or an array of strings containing - * the name(s) of the to add. - * @param bool $sync When true, save the tags - * @param int|null $id int Optional object id to add to this|these tag(s) - * @return bool Returns false on error. - */ + * Add a list of new tags. + * + * @param string[] $names A string with a name or an array of strings containing + * the name(s) of the to add. + * @param bool $sync When true, save the tags + * @param int|null $id int Optional object id to add to this|these tag(s) + * @return bool Returns false on error. + * @since 6.0.0 + */ public function addMultiple($names, $sync=false, $id = null); /** - * Delete tag/object relations from the db - * - * @param array $ids The ids of the objects - * @return boolean Returns false on error. - */ + * Delete tag/object relations from the db + * + * @param array $ids The ids of the objects + * @return boolean Returns false on error. + * @since 6.0.0 + */ public function purgeObjects(array $ids); /** - * Get favorites for an object type - * - * @return array|false An array of object ids. - */ + * Get favorites for an object type + * + * @return array|false An array of object ids. + * @since 6.0.0 + */ public function getFavorites(); /** - * Add an object to favorites - * - * @param int $objid The id of the object - * @return boolean - */ + * Add an object to favorites + * + * @param int $objid The id of the object + * @return boolean + * @since 6.0.0 + */ public function addToFavorites($objid); /** - * Remove an object from favorites - * - * @param int $objid The id of the object - * @return boolean - */ + * Remove an object from favorites + * + * @param int $objid The id of the object + * @return boolean + * @since 6.0.0 + */ public function removeFromFavorites($objid); /** - * Creates a tag/object relation. - * - * @param int $objid The id of the object - * @param string $tag The id or name of the tag - * @return boolean Returns false on database error. - */ + * Creates a tag/object relation. + * + * @param int $objid The id of the object + * @param string $tag The id or name of the tag + * @return boolean Returns false on database error. + * @since 6.0.0 + */ public function tagAs($objid, $tag); /** - * Delete single tag/object relation from the db - * - * @param int $objid The id of the object - * @param string $tag The id or name of the tag - * @return boolean - */ + * Delete single tag/object relation from the db + * + * @param int $objid The id of the object + * @param string $tag The id or name of the tag + * @return boolean + * @since 6.0.0 + */ public function unTag($objid, $tag); /** - * Delete tags from the database - * - * @param string[]|integer[] $names An array of tags (names or IDs) to delete - * @return bool Returns false on error - */ + * Delete tags from the database + * + * @param string[]|integer[] $names An array of tags (names or IDs) to delete + * @return bool Returns false on error + * @since 6.0.0 + */ public function delete($names); } diff --git a/lib/public/itempmanager.php b/lib/public/itempmanager.php index ac67a852a31..7ba5b1e7bff 100644 --- a/lib/public/itempmanager.php +++ b/lib/public/itempmanager.php @@ -22,12 +22,19 @@ namespace OCP; +/** + * Interface ITempManager + * + * @package OCP + * @since 8.0.0 + */ interface ITempManager { /** * Create a temporary file and return the path * * @param string $postFix * @return string + * @since 8.0.0 */ public function getTemporaryFile($postFix = ''); @@ -36,16 +43,19 @@ interface ITempManager { * * @param string $postFix * @return string + * @since 8.0.0 */ public function getTemporaryFolder($postFix = ''); /** * Remove the temporary files and folders generated during this request + * @since 8.0.0 */ public function clean(); /** * Remove old temporary files and folders that were failed to be cleaned + * @since 8.0.0 */ public function cleanOld(); } diff --git a/lib/public/iurlgenerator.php b/lib/public/iurlgenerator.php index 57bf73f9d24..3be27d87fa1 100644 --- a/lib/public/iurlgenerator.php +++ b/lib/public/iurlgenerator.php @@ -34,6 +34,7 @@ namespace OCP; /** * Class to generate URLs + * @since 6.0.0 */ interface IURLGenerator { /** @@ -41,6 +42,7 @@ interface IURLGenerator { * @param string $routeName the name of the route * @param array $arguments an array with arguments which will be filled into the url * @return string the url + * @since 6.0.0 */ public function linkToRoute($routeName, $arguments = array()); @@ -49,6 +51,7 @@ interface IURLGenerator { * @param string $routeName the name of the route * @param array $arguments an array with arguments which will be filled into the url * @return string the absolute url + * @since 8.0.0 */ public function linkToRouteAbsolute($routeName, $arguments = array()); @@ -56,15 +59,19 @@ interface IURLGenerator { * Returns an URL for an image or file * @param string $appName the name of the app * @param string $file the name of the file + * @param array $args array with param=>value, will be appended to the returned url + * The value of $args will be urlencoded * @return string the url + * @since 6.0.0 */ - public function linkTo($appName, $file); + public function linkTo($appName, $file, $args = array()); /** * Returns the link to an image, like linkTo but only with prepending img/ * @param string $appName the name of the app * @param string $file the name of the file * @return string the url + * @since 6.0.0 */ public function imagePath($appName, $file); @@ -73,12 +80,14 @@ interface IURLGenerator { * Makes an URL absolute * @param string $url the url in the ownCloud host * @return string the absolute version of the url + * @since 6.0.0 */ public function getAbsoluteURL($url); /** * @param string $key * @return string url to the online documentation + * @since 8.0.0 */ public function linkToDocs($key); } diff --git a/lib/public/iuser.php b/lib/public/iuser.php index 9f75b8145f0..393ab90d260 100644 --- a/lib/public/iuser.php +++ b/lib/public/iuser.php @@ -24,11 +24,18 @@ namespace OCP; +/** + * Interface IUser + * + * @package OCP + * @since 8.0.0 + */ interface IUser { /** * get the user id * * @return string + * @since 8.0.0 */ public function getUID(); @@ -36,6 +43,7 @@ interface IUser { * get the display name for the user, if no specific display name is set it will fallback to the user id * * @return string + * @since 8.0.0 */ public function getDisplayName(); @@ -44,6 +52,7 @@ interface IUser { * * @param string $displayName * @return bool + * @since 8.0.0 */ public function setDisplayName($displayName); @@ -52,11 +61,13 @@ interface IUser { * login * * @return int + * @since 8.0.0 */ public function getLastLogin(); /** * updates the timestamp of the most recent login of this user + * @since 8.0.0 */ public function updateLastLoginTimestamp(); @@ -64,6 +75,7 @@ interface IUser { * Delete the user * * @return bool + * @since 8.0.0 */ public function delete(); @@ -73,6 +85,7 @@ interface IUser { * @param string $password * @param string $recoveryPassword for the encryption app to reset encryption keys * @return bool + * @since 8.0.0 */ public function setPassword($password, $recoveryPassword = null); @@ -87,6 +100,7 @@ interface IUser { * Get the name of the backend class the user is connected with * * @return string + * @since 8.0.0 */ public function getBackendClassName(); @@ -94,6 +108,7 @@ interface IUser { * check if the backend allows the user to change his avatar on Personal page * * @return bool + * @since 8.0.0 */ public function canChangeAvatar(); @@ -108,6 +123,7 @@ interface IUser { * check if the backend supports changing display names * * @return bool + * @since 8.0.0 */ public function canChangeDisplayName(); @@ -115,6 +131,7 @@ interface IUser { * check if the user is enabled * * @return bool + * @since 8.0.0 */ public function isEnabled(); @@ -122,6 +139,7 @@ interface IUser { * set the enabled status for the user * * @param bool $enabled + * @since 8.0.0 */ public function setEnabled($enabled); } diff --git a/lib/public/iuserbackend.php b/lib/public/iuserbackend.php index 64035bf7acd..2c472596b77 100644 --- a/lib/public/iuserbackend.php +++ b/lib/public/iuserbackend.php @@ -29,11 +29,18 @@ // This means that they should be used by apps instead of the internal ownCloud classes namespace OCP; +/** + * Interface IUserBackend + * + * @package OCP + * @since 8.0.0 + */ interface IUserBackend { /** * Backend name to be shown in user management * @return string the name of the backend to be shown + * @since 8.0.0 */ public function getBackendName(); diff --git a/lib/public/iusermanager.php b/lib/public/iusermanager.php index df0975b70a0..23fb84e6ada 100644 --- a/lib/public/iusermanager.php +++ b/lib/public/iusermanager.php @@ -36,18 +36,21 @@ namespace OCP; * - postCreateUser(\OC\User\User $user, string $password) * * @package OC\User + * @since 8.0.0 */ interface IUserManager { /** * register a user backend * * @param \OCP\UserInterface $backend + * @since 8.0.0 */ public function registerBackend($backend); /** * Get the active backends * @return \OCP\UserInterface[] + * @since 8.0.0 */ public function getBackends(); @@ -55,6 +58,7 @@ interface IUserManager { * remove a user backend * * @param \OCP\UserInterface $backend + * @since 8.0.0 */ public function removeBackend($backend); @@ -68,6 +72,7 @@ interface IUserManager { * * @param string $uid * @return \OCP\IUser|null Either the user or null if the specified user does not exist + * @since 8.0.0 */ public function get($uid); @@ -76,6 +81,7 @@ interface IUserManager { * * @param string $uid * @return bool + * @since 8.0.0 */ public function userExists($uid); @@ -85,6 +91,7 @@ interface IUserManager { * @param string $loginname * @param string $password * @return mixed the User object on success, false otherwise + * @since 8.0.0 */ public function checkPassword($loginname, $password); @@ -95,6 +102,7 @@ interface IUserManager { * @param int $limit * @param int $offset * @return \OCP\IUser[] + * @since 8.0.0 */ public function search($pattern, $limit = null, $offset = null); @@ -105,6 +113,7 @@ interface IUserManager { * @param int $limit * @param int $offset * @return \OCP\IUser[] + * @since 8.0.0 */ public function searchDisplayName($pattern, $limit = null, $offset = null); @@ -113,6 +122,7 @@ interface IUserManager { * @param string $password * @throws \Exception * @return bool|\OCP\IUser the created user of false + * @since 8.0.0 */ public function createUser($uid, $password); @@ -120,6 +130,7 @@ interface IUserManager { * returns how many users per backend exist (if supported by backend) * * @return array an array of backend class as key and count number as value + * @since 8.0.0 */ public function countUsers(); } diff --git a/lib/public/iusersession.php b/lib/public/iusersession.php index ec0978ab8a3..2dde25634d6 100644 --- a/lib/public/iusersession.php +++ b/lib/public/iusersession.php @@ -36,6 +36,7 @@ namespace OCP; /** * User session + * @since 6.0.0 */ interface IUserSession { /** @@ -43,6 +44,7 @@ interface IUserSession { * @param string $user the username * @param string $password the password * @return bool true if successful + * @since 6.0.0 */ public function login($user, $password); @@ -50,6 +52,7 @@ interface IUserSession { * Logs the user out including all the session data * Logout, destroys session * @return void + * @since 6.0.0 */ public function logout(); @@ -57,6 +60,7 @@ interface IUserSession { * set the currently active user * * @param \OCP\IUser|null $user + * @since 8.0.0 */ public function setUser($user); @@ -64,6 +68,7 @@ interface IUserSession { * get the current active user * * @return \OCP\IUser|null Current user, otherwise null + * @since 8.0.0 */ public function getUser(); @@ -71,6 +76,7 @@ interface IUserSession { * Checks whether the user is logged in * * @return bool if logged in + * @since 8.0.0 */ public function isLoggedIn(); } diff --git a/lib/public/json.php b/lib/public/json.php index d07d0014e23..ddb94dffdbe 100644 --- a/lib/public/json.php +++ b/lib/public/json.php @@ -36,14 +36,14 @@ namespace OCP; /** * This class provides convenient functions to generate and send JSON data. Useful for Ajax calls - * @deprecated Use a AppFramework JSONResponse instead + * @deprecated 8.1.0 Use a AppFramework JSONResponse instead */ class JSON { /** * Encode and print $data in JSON format * @param array $data The data to use * @param bool $setContentType the optional content type - * @deprecated Use a AppFramework JSONResponse instead + * @deprecated 8.1.0 Use a AppFramework JSONResponse instead */ public static function encodedPrint( $data, $setContentType=true ) { \OC_JSON::encodedPrint($data, $setContentType); @@ -61,7 +61,7 @@ class JSON { * * Add this call to the start of all ajax method files that requires * an authenticated user. - * @deprecated Use annotation based ACLs from the AppFramework instead + * @deprecated 8.1.0 Use annotation based ACLs from the AppFramework instead */ public static function checkLoggedIn() { \OC_JSON::checkLoggedIn(); @@ -84,7 +84,7 @@ class JSON { * a submittable form, you will need to add the requesttoken first as a * parameter to the ajax call, then assign it to the template and finally * add a hidden input field also named 'requesttoken' containing the value. - * @deprecated Use annotation based CSRF checks from the AppFramework instead + * @deprecated 8.1.0 Use annotation based CSRF checks from the AppFramework instead */ public static function callCheck() { \OC_JSON::callCheck(); @@ -98,7 +98,7 @@ class JSON { * * @param array $data The data to use * @return string json formatted string. - * @deprecated Use a AppFramework JSONResponse instead + * @deprecated 8.1.0 Use a AppFramework JSONResponse instead */ public static function success( $data = array() ) { \OC_JSON::success($data); @@ -121,7 +121,7 @@ class JSON { * * @param array $data The data to use * @return string json formatted error string. - * @deprecated Use a AppFramework JSONResponse instead + * @deprecated 8.1.0 Use a AppFramework JSONResponse instead */ public static function error( $data = array() ) { \OC_JSON::error( $data ); @@ -130,7 +130,7 @@ class JSON { /** * Set Content-Type header to jsonrequest * @param string $type The content type header - * @deprecated Use a AppFramework JSONResponse instead + * @deprecated 8.1.0 Use a AppFramework JSONResponse instead */ public static function setContentTypeHeader( $type='application/json' ) { \OC_JSON::setContentTypeHeader($type); @@ -150,7 +150,7 @@ class JSON { * a specific app to be enabled. * * @param string $app The app to check - * @deprecated Use the AppFramework instead. It will automatically check if the app is enabled. + * @deprecated 8.1.0 Use the AppFramework instead. It will automatically check if the app is enabled. */ public static function checkAppEnabled( $app ) { \OC_JSON::checkAppEnabled($app); @@ -169,7 +169,7 @@ class JSON { * Add this call to the start of all ajax method files that requires * administrative rights. * - * @deprecated Use annotation based ACLs from the AppFramework instead + * @deprecated 8.1.0 Use annotation based ACLs from the AppFramework instead */ public static function checkAdminUser() { \OC_JSON::checkAdminUser(); @@ -179,7 +179,7 @@ class JSON { * Encode JSON * @param array $data * @return string - * @deprecated Use a AppFramework JSONResponse instead + * @deprecated 8.1.0 Use a AppFramework JSONResponse instead */ public static function encode($data) { return \OC_JSON::encode($data); @@ -188,7 +188,7 @@ class JSON { /** * Check is a given user exists - send json error msg if not * @param string $user - * @deprecated Use a AppFramework JSONResponse instead + * @deprecated 8.1.0 Use a AppFramework JSONResponse instead */ public static function checkUserExists($user) { \OC_JSON::checkUserExists($user); diff --git a/lib/public/mail/imailer.php b/lib/public/mail/imailer.php index 806a3d23150..9580104a8bf 100644 --- a/lib/public/mail/imailer.php +++ b/lib/public/mail/imailer.php @@ -39,12 +39,14 @@ use OC\Mail\Message; * This message can then be passed to send() of \OC\Mail\Mailer * * @package OCP\Mail + * @since 8.1.0 */ interface IMailer { /** * Creates a new message object that can be passed to send() * * @return Message + * @since 8.1.0 */ public function createMessage(); @@ -57,6 +59,7 @@ interface IMailer { * therefore should be considered * @throws \Exception In case it was not possible to send the message. (for example if an invalid mail address * has been supplied.) + * @since 8.1.0 */ public function send(Message $message); @@ -65,6 +68,7 @@ interface IMailer { * * @param string $email Email address to be validated * @return bool True if the mail address is valid, false otherwise + * @since 8.1.0 */ public function validateMailAddress($email); } diff --git a/lib/public/preconditionnotmetexception.php b/lib/public/preconditionnotmetexception.php index 4622da80c9b..6f1b683526d 100644 --- a/lib/public/preconditionnotmetexception.php +++ b/lib/public/preconditionnotmetexception.php @@ -25,5 +25,6 @@ namespace OCP; /** * Exception if the precondition of the config update method isn't met + * @since 8.0.0 */ class PreConditionNotMetException extends \Exception {} diff --git a/lib/public/preview/iprovider.php b/lib/public/preview/iprovider.php index e176aa94fca..1a581768ad4 100644 --- a/lib/public/preview/iprovider.php +++ b/lib/public/preview/iprovider.php @@ -20,9 +20,16 @@ */ namespace OCP\Preview; +/** + * Interface IProvider + * + * @package OCP\Preview + * @since 8.1.0 + */ interface IProvider { /** * @return string Regex with the mimetypes that are supported by this provider + * @since 8.1.0 */ public function getMimeType(); @@ -31,6 +38,7 @@ interface IProvider { * * @param \OCP\Files\FileInfo $file * @return bool + * @since 8.1.0 */ public function isAvailable(\OCP\Files\FileInfo $file); @@ -43,6 +51,7 @@ interface IProvider { * @param bool $scalingup Disable/Enable upscaling of previews * @param \OC\Files\View $fileview fileview object of user folder * @return bool|\OCP\IImage false if no preview was generated + * @since 8.1.0 */ public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview); } diff --git a/lib/public/response.php b/lib/public/response.php index d4d32e89ab7..42220e4cf9c 100644 --- a/lib/public/response.php +++ b/lib/public/response.php @@ -36,6 +36,8 @@ namespace OCP; /** * This class provides convenient functions to send the correct http response headers + * @since 4.0.0 + * @deprecated 8.1.0 - Use AppFramework controllers instead and modify the response object */ class Response { /** @@ -44,6 +46,7 @@ class Response { * >0 cache time in seconds * 0 and <0 enable default browser caching * null cache indefinitly + * @since 4.0.0 */ static public function enableCaching( $cache_time = null ) { \OC_Response::enableCaching( $cache_time ); @@ -53,6 +56,7 @@ class Response { * Checks and set Last-Modified header, when the request matches sends a * 'not modified' response * @param string $lastModified time when the reponse was last modified + * @since 4.0.0 */ static public function setLastModifiedHeader( $lastModified ) { \OC_Response::setLastModifiedHeader( $lastModified ); @@ -62,6 +66,7 @@ class Response { * Sets the content disposition header (with possible workarounds) * @param string $filename file name * @param string $type disposition type, either 'attachment' or 'inline' + * @since 7.0.0 */ static public function setContentDispositionHeader( $filename, $type = 'attachment' ) { \OC_Response::setContentDispositionHeader( $filename, $type ); @@ -70,6 +75,7 @@ class Response { /** * Sets the content length header (with possible workarounds) * @param string|int|float $length Length to be sent + * @since 8.1.0 */ static public function setContentLengthHeader($length) { \OC_Response::setContentLengthHeader($length); @@ -78,6 +84,7 @@ class Response { /** * Disable browser caching * @see enableCaching with cache_time = 0 + * @since 4.0.0 */ static public function disableCaching() { \OC_Response::disableCaching(); @@ -87,6 +94,7 @@ class Response { * Checks and set ETag header, when the request matches sends a * 'not modified' response * @param string $etag token to use for modification check + * @since 4.0.0 */ static public function setETagHeader( $etag ) { \OC_Response::setETagHeader( $etag ); @@ -95,6 +103,8 @@ class Response { /** * Send file as response, checking and setting caching headers * @param string $filepath of file to send + * @since 4.0.0 + * @deprecated 8.1.0 - Use \OCP\AppFramework\Http\StreamResponse or another AppFramework controller instead */ static public function sendFile( $filepath ) { \OC_Response::sendFile( $filepath ); @@ -105,6 +115,7 @@ class Response { * @param string|\DateTime $expires date-time when the response expires * string for DateInterval from now * DateTime object when to expire response + * @since 4.0.0 */ static public function setExpiresHeader( $expires ) { \OC_Response::setExpiresHeader( $expires ); @@ -113,6 +124,7 @@ class Response { /** * Send redirect response * @param string $location to redirect to + * @since 4.0.0 */ static public function redirect( $location ) { \OC_Response::redirect( $location ); diff --git a/lib/public/route/iroute.php b/lib/public/route/iroute.php index ec770e9845d..4c9b4ca9b47 100644 --- a/lib/public/route/iroute.php +++ b/lib/public/route/iroute.php @@ -23,10 +23,17 @@ */ namespace OCP\Route; +/** + * Interface IRoute + * + * @package OCP\Route + * @since 7.0.0 + */ interface IRoute { /** * Specify PATCH as the method to use with this route * @return \OCP\Route\IRoute + * @since 7.0.0 */ public function patch(); @@ -35,6 +42,7 @@ interface IRoute { * * @param string $method HTTP method (uppercase) * @return \OCP\Route\IRoute + * @since 7.0.0 */ public function method($method); @@ -44,24 +52,28 @@ interface IRoute { * * @param string $file * @return void + * @since 7.0.0 */ public function actionInclude($file); /** * Specify GET as the method to use with this route * @return \OCP\Route\IRoute + * @since 7.0.0 */ public function get(); /** * Specify POST as the method to use with this route * @return \OCP\Route\IRoute + * @since 7.0.0 */ public function post(); /** * Specify DELETE as the method to use with this route * @return \OCP\Route\IRoute + * @since 7.0.0 */ public function delete(); @@ -74,6 +86,7 @@ interface IRoute { * * This function is called with $class set to a callable or * to the class with $function + * @since 7.0.0 */ public function action($class, $function = null); @@ -82,6 +95,7 @@ interface IRoute { * * @param array $defaults The defaults * @return \OCP\Route\IRoute + * @since 7.0.0 */ public function defaults($defaults); @@ -90,12 +104,14 @@ interface IRoute { * * @param array $requirements The requirements * @return \OCP\Route\IRoute + * @since 7.0.0 */ public function requirements($requirements); /** * Specify PUT as the method to use with this route * @return \OCP\Route\IRoute + * @since 7.0.0 */ public function put(); } diff --git a/lib/public/route/irouter.php b/lib/public/route/irouter.php index fbbcdcbb1af..3f5b58ac416 100644 --- a/lib/public/route/irouter.php +++ b/lib/public/route/irouter.php @@ -24,23 +24,32 @@ namespace OCP\Route; +/** + * Interface IRouter + * + * @package OCP\Route + * @since 7.0.0 + */ interface IRouter { /** * Get the files to load the routes from * * @return string[] + * @since 7.0.0 */ public function getRoutingFiles(); /** * @return string + * @since 7.0.0 */ public function getCacheKey(); /** * loads the api routes * @return void + * @since 7.0.0 */ public function loadRoutes($app = null); @@ -49,6 +58,7 @@ interface IRouter { * * @param string $name Name of the collection to use. * @return void + * @since 7.0.0 */ public function useCollection($name); @@ -56,6 +66,7 @@ interface IRouter { * returns the current collection name in use for adding routes * * @return string the collection name + * @since 8.0.0 */ public function getCurrentCollection(); @@ -67,6 +78,7 @@ interface IRouter { * @param array $defaults An array of default parameter values * @param array $requirements An array of requirements for parameters (regexes) * @return \OCP\Route\IRoute + * @since 7.0.0 */ public function create($name, $pattern, array $defaults = array(), array $requirements = array()); @@ -76,12 +88,14 @@ interface IRouter { * @param string $url The url to find * @throws \Exception * @return void + * @since 7.0.0 */ public function match($url); /** * Get the url generator * + * @since 7.0.0 */ public function getGenerator(); @@ -92,6 +106,7 @@ interface IRouter { * @param array $parameters Parameters for the route * @param bool $absolute * @return string + * @since 7.0.0 */ public function generate($name, $parameters = array(), $absolute = false); diff --git a/lib/public/search/pagedprovider.php b/lib/public/search/pagedprovider.php index 1ba1459604a..7452bbd47bb 100644 --- a/lib/public/search/pagedprovider.php +++ b/lib/public/search/pagedprovider.php @@ -23,18 +23,21 @@ namespace OCP\Search; /** - * Provides a template for search functionality throughout ownCloud; + * Provides a template for search functionality throughout ownCloud; + * @since 8.0.0 */ abstract class PagedProvider extends Provider { /** * show all results + * @since 8.0.0 */ const SIZE_ALL = 0; /** * Constructor * @param array $options + * @since 8.0.0 */ public function __construct($options) { $this->options = $options; @@ -44,6 +47,7 @@ abstract class PagedProvider extends Provider { * Search for $query * @param string $query * @return array An array of OCP\Search\Result's + * @since 8.0.0 */ public function search($query) { // old apps might assume they get all results, so we use SIZE_ALL @@ -56,6 +60,7 @@ abstract class PagedProvider extends Provider { * @param int $page pages start at page 1 * @param int $size, 0 = SIZE_ALL * @return array An array of OCP\Search\Result's + * @since 8.0.0 */ abstract public function searchPaged($query, $page, $size); } diff --git a/lib/public/search/provider.php b/lib/public/search/provider.php index 6746bf14824..2f2cd03eb6a 100644 --- a/lib/public/search/provider.php +++ b/lib/public/search/provider.php @@ -26,21 +26,27 @@ namespace OCP\Search; /** - * Provides a template for search functionality throughout ownCloud; + * Provides a template for search functionality throughout ownCloud; + * @since 7.0.0 */ abstract class Provider { + /** + * @since 8.0.0 + */ const OPTION_APPS = 'apps'; /** * List of options * @var array + * @since 7.0.0 */ protected $options; /** * Constructor * @param array $options as key => value + * @since 7.0.0 - default value for $options was added in 8.0.0 */ public function __construct($options = array()) { $this->options = $options; @@ -50,6 +56,7 @@ abstract class Provider { * get a value from the options array or null * @param string $key * @return mixed + * @since 8.0.0 */ public function getOption($key) { if (is_array($this->options) && isset($this->options[$key])) { @@ -66,6 +73,7 @@ abstract class Provider { * or if the two above arrays have elements in common (intersect) * @param string[] $apps * @return bool + * @since 8.0.0 */ public function providesResultsFor(array $apps = array()) { $forApps = $this->getOption(self::OPTION_APPS); @@ -76,6 +84,7 @@ abstract class Provider { * Search for $query * @param string $query * @return array An array of OCP\Search\Result's + * @since 7.0.0 */ abstract public function search($query); } diff --git a/lib/public/search/result.php b/lib/public/search/result.php index 5004e5679de..71c8b021a8e 100644 --- a/lib/public/search/result.php +++ b/lib/public/search/result.php @@ -26,6 +26,7 @@ namespace OCP\Search; /** * The generic result of a search + * @since 7.0.0 */ class Result { @@ -33,6 +34,7 @@ class Result { * A unique identifier for the result, usually given as the item ID in its * corresponding application. * @var string + * @since 7.0.0 */ public $id; @@ -40,12 +42,14 @@ class Result { * The name of the item returned; this will be displayed in the search * results. * @var string + * @since 7.0.0 */ public $name; /** * URL to the application item. * @var string + * @since 7.0.0 */ public $link; @@ -53,6 +57,7 @@ class Result { * The type of search result returned; for consistency, name this the same * as the class name (e.g. \OC\Search\File -> 'file') in lowercase. * @var string + * @since 7.0.0 */ public $type = 'generic'; @@ -61,6 +66,7 @@ class Result { * @param string $id unique identifier from application: '[app_name]/[item_identifier_in_app]' * @param string $name displayed text of result * @param string $link URL to the result within its app + * @since 7.0.0 */ public function __construct($id = null, $name = null, $link = null) { $this->id = $id; diff --git a/lib/public/security/icrypto.php b/lib/public/security/icrypto.php index 2b1c0bf8e4d..167baab8233 100644 --- a/lib/public/security/icrypto.php +++ b/lib/public/security/icrypto.php @@ -31,6 +31,7 @@ namespace OCP\Security; * $encryptWithCustomPassword = \OC::$server->getCrypto()->encrypt('EncryptedText', 'password'); * * @package OCP\Security + * @since 8.0.0 */ interface ICrypto { @@ -38,6 +39,7 @@ interface ICrypto { * @param string $message The message to authenticate * @param string $password Password to use (defaults to `secret` in config.php) * @return string Calculated HMAC + * @since 8.0.0 */ public function calculateHMAC($message, $password = ''); @@ -46,6 +48,7 @@ interface ICrypto { * @param string $plaintext * @param string $password Password to encrypt, if not specified the secret from config.php will be taken * @return string Authenticated ciphertext + * @since 8.0.0 */ public function encrypt($plaintext, $password = ''); @@ -55,6 +58,7 @@ interface ICrypto { * @param string $password Password to encrypt, if not specified the secret from config.php will be taken * @return string plaintext * @throws \Exception If the HMAC does not match + * @since 8.0.0 */ public function decrypt($authenticatedCiphertext, $password = ''); } diff --git a/lib/public/security/ihasher.php b/lib/public/security/ihasher.php index b06dd236077..14229ba99c1 100644 --- a/lib/public/security/ihasher.php +++ b/lib/public/security/ihasher.php @@ -40,6 +40,7 @@ namespace OCP\Security; * var_dump($newHash); * * @package OCP\Security + * @since 8.0.0 */ interface IHasher { /** @@ -49,6 +50,7 @@ interface IHasher { * * @param string $message Message to generate hash from * @return string Hash of the message with appended version parameter + * @since 8.0.0 */ public function hash($message); @@ -57,6 +59,7 @@ interface IHasher { * @param string $hash Assumed hash of the message * @param null|string &$newHash Reference will contain the updated hash if necessary. Update the existing hash with this one. * @return bool Whether $hash is a valid hash of $message + * @since 8.0.0 */ public function verify($message, $hash, &$newHash = null); } diff --git a/lib/public/security/isecurerandom.php b/lib/public/security/isecurerandom.php index 9a91a2f027a..69e6ec21b13 100644 --- a/lib/public/security/isecurerandom.php +++ b/lib/public/security/isecurerandom.php @@ -31,6 +31,7 @@ namespace OCP\Security; * $randomString = $rng->getMediumStrengthGenerator()->generateString(30); * * @package OCP\Security + * @since 8.0.0 */ interface ISecureRandom { @@ -50,6 +51,7 @@ interface ISecureRandom { * used as keys or salts. They are however useful for one-time use tokens. * * @return $this + * @since 8.0.0 */ public function getLowStrengthGenerator(); @@ -61,6 +63,7 @@ interface ISecureRandom { * take some time and resources to generate, so they should not be over-used * * @return $this + * @since 8.0.0 */ public function getMediumStrengthGenerator(); @@ -71,6 +74,7 @@ interface ISecureRandom { * specified all valid base64 characters are used. * @return string * @throws \Exception If the generator is not initialized. + * @since 8.0.0 */ public function generate($length, $characters = ''); } diff --git a/lib/public/security/stringutils.php b/lib/public/security/stringutils.php index bfe5820c758..4f41fcf8262 100644 --- a/lib/public/security/stringutils.php +++ b/lib/public/security/stringutils.php @@ -23,6 +23,12 @@ namespace OCP\Security; +/** + * Class StringUtils + * + * @package OCP\Security + * @since 8.0.0 + */ class StringUtils { /** * Compares whether two strings are equal. To prevent guessing of the string @@ -32,6 +38,7 @@ class StringUtils { * @param string $expected The expected value * @param string $input The input to compare against * @return bool True if the two strings are equal, otherwise false. + * @since 8.0.0 */ public static function equals($expected, $input) { return \OC\Security\StringUtils::equals($expected, $input); diff --git a/lib/public/share.php b/lib/public/share.php index fcdcc6a6d2c..a96239a5c31 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -45,6 +45,7 @@ namespace OCP; * * It provides the following hooks: * - post_shared + * @since 5.0.0 */ class Share extends \OC\Share\Constants { @@ -55,6 +56,7 @@ class Share extends \OC\Share\Constants { * @param string $collectionOf (optional) Depends on item type * @param array $supportedFileExtensions (optional) List of supported file extensions if this item type depends on files * @return boolean true if backend is registered or false if error + * @since 5.0.0 */ public static function registerBackend($itemType, $class, $collectionOf = null, $supportedFileExtensions = null) { return \OC\Share\Share::registerBackend($itemType, $class, $collectionOf, $supportedFileExtensions); @@ -65,6 +67,7 @@ class Share extends \OC\Share\Constants { * @return boolean true if enabled or false * * The Share API is enabled by default if not configured + * @since 5.0.0 */ public static function isEnabled() { return \OC\Share\Share::isEnabled(); @@ -79,6 +82,7 @@ class Share extends \OC\Share\Constants { * @return array * @note $path needs to be relative to user data dir, e.g. 'file.txt' * not '/admin/data/file.txt' + * @since 5.0.0 */ public static function getUsersSharingFile($path, $ownerUser, $includeOwner = false, $returnUserPaths = false) { return \OC\Share\Share::getUsersSharingFile($path, $ownerUser, $includeOwner, $returnUserPaths); @@ -92,6 +96,7 @@ class Share extends \OC\Share\Constants { * @param int $limit Number of items to return (optional) Returns all by default * @param bool $includeCollections (optional) * @return mixed Return depends on format + * @since 5.0.0 */ public static function getItemsSharedWith($itemType, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, $includeCollections = false) { @@ -108,6 +113,7 @@ class Share extends \OC\Share\Constants { * @param int $limit Number of items to return (optional) Returns all by default * @param bool $includeCollections (optional) * @return mixed Return depends on format + * @since 7.0.0 */ public static function getItemsSharedWithUser($itemType, $user, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, $includeCollections = false) { @@ -123,6 +129,7 @@ class Share extends \OC\Share\Constants { * @param mixed $parameters (optional) * @param bool $includeCollections (optional) * @return mixed Return depends on format + * @since 5.0.0 */ public static function getItemSharedWith($itemType, $itemTarget, $format = self::FORMAT_NONE, $parameters = null, $includeCollections = false) { @@ -137,6 +144,7 @@ class Share extends \OC\Share\Constants { * @param string $user User to whom the item was shared * @param string $owner Owner of the share * @return array Return list of items with file_target, permissions and expiration + * @since 6.0.0 - parameter $owner was added in 8.0.0 */ public static function getItemSharedWithUser($itemType, $itemSource, $user, $owner = null) { return \OC\Share\Share::getItemSharedWithUser($itemType, $itemSource, $user, $owner); @@ -150,6 +158,7 @@ class Share extends \OC\Share\Constants { * @param mixed $parameters * @param bool $includeCollections * @return array + * @since 5.0.0 */ public static function getItemSharedWithBySource($itemType, $itemSource, $format = self::FORMAT_NONE, $parameters = null, $includeCollections = false) { @@ -162,6 +171,7 @@ class Share extends \OC\Share\Constants { * @param string $itemSource * @param string $uidOwner Owner of link * @return Item + * @since 5.0.0 */ public static function getItemSharedWithByLink($itemType, $itemSource, $uidOwner) { return \OC\Share\Share::getItemSharedWithByLink($itemType, $itemSource, $uidOwner); @@ -171,6 +181,7 @@ class Share extends \OC\Share\Constants { * Based on the given token the share information will be returned - password protected shares will be verified * @param string $token * @return array|bool false will be returned in case the token is unknown or unauthorized + * @since 5.0.0 - parameter $checkPasswordProtection was added in 7.0.0 */ public static function getShareByToken($token, $checkPasswordProtection = true) { return \OC\Share\Share::getShareByToken($token, $checkPasswordProtection); @@ -180,6 +191,7 @@ class Share extends \OC\Share\Constants { * resolves reshares down to the last real share * @param array $linkItem * @return array file owner + * @since 6.0.0 */ public static function resolveReShare($linkItem) { return \OC\Share\Share::resolveReShare($linkItem); @@ -194,6 +206,7 @@ class Share extends \OC\Share\Constants { * @param int $limit Number of items to return (optional) Returns all by default * @param bool $includeCollections * @return mixed Return depends on format + * @since 5.0.0 */ public static function getItemsShared($itemType, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, $includeCollections = false) { @@ -209,6 +222,7 @@ class Share extends \OC\Share\Constants { * @param mixed $parameters * @param bool $includeCollections * @return mixed Return depends on format + * @since 5.0.0 */ public static function getItemShared($itemType, $itemSource, $format = self::FORMAT_NONE, $parameters = null, $includeCollections = false) { @@ -224,6 +238,7 @@ class Share extends \OC\Share\Constants { * @param bool $includeCollections * @param bool $checkExpireDate * @return array Return array of users + * @since 5.0.0 - parameter $checkExpireDate was added in 7.0.0 */ public static function getUsersItemShared($itemType, $itemSource, $uidOwner, $includeCollections = false, $checkExpireDate = true) { return \OC\Share\Share::getUsersItemShared($itemType, $itemSource, $uidOwner, $includeCollections, $checkExpireDate); @@ -240,6 +255,7 @@ class Share extends \OC\Share\Constants { * @param \DateTime $expirationDate * @return bool|string Returns true on success or false on failure, Returns token on success for links * @throws \Exception + * @since 5.0.0 - parameter $itemSourceName was added in 6.0.0, parameter $expirationDate was added in 7.0.0 */ public static function shareItem($itemType, $itemSource, $shareType, $shareWith, $permissions, $itemSourceName = null, \DateTime $expirationDate = null) { return \OC\Share\Share::shareItem($itemType, $itemSource, $shareType, $shareWith, $permissions, $itemSourceName, $expirationDate); @@ -253,6 +269,7 @@ class Share extends \OC\Share\Constants { * @param string $shareWith User or group the item is being shared with * @param string $owner owner of the share, if null the current user is used * @return boolean true on success or false on failure + * @since 5.0.0 - parameter $owner was added in 8.0.0 */ public static function unshare($itemType, $itemSource, $shareType, $shareWith, $owner = null) { return \OC\Share\Share::unshare($itemType, $itemSource, $shareType, $shareWith, $owner); @@ -263,6 +280,7 @@ class Share extends \OC\Share\Constants { * @param string $itemType * @param string $itemSource * @return boolean true on success or false on failure + * @since 5.0.0 */ public static function unshareAll($itemType, $itemSource) { return \OC\Share\Share::unshareAll($itemType, $itemSource); @@ -275,6 +293,7 @@ class Share extends \OC\Share\Constants { * @return boolean true on success or false on failure * * Unsharing from self is not allowed for items inside collections + * @since 5.0.0 - parameter $originIsSource was added in 8.0.0 */ public static function unshareFromSelf($itemType, $itemOrigin, $originIsSource = false) { return \OC\Share\Share::unshareFromSelf($itemType, $itemOrigin, $originIsSource); @@ -287,6 +306,7 @@ class Share extends \OC\Share\Constants { * @param int $shareType SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK * @param string $recipient with whom was the item shared * @param bool $status + * @since 6.0.0 - parameter $originIsSource was added in 8.0.0 */ public static function setSendMailStatus($itemType, $itemSource, $shareType, $recipient, $status) { return \OC\Share\Share::setSendMailStatus($itemType, $itemSource, $shareType, $recipient, $status); @@ -300,6 +320,7 @@ class Share extends \OC\Share\Constants { * @param string $shareWith User or group the item is being shared with * @param int $permissions CRUDS permissions * @return boolean true on success or false on failure + * @since 5.0.0 */ public static function setPermissions($itemType, $itemSource, $shareType, $shareWith, $permissions) { return \OC\Share\Share::setPermissions($itemType, $itemSource, $shareType, $shareWith, $permissions); @@ -312,6 +333,7 @@ class Share extends \OC\Share\Constants { * @param string $date expiration date * @param int $shareTime timestamp from when the file was shared * @return boolean + * @since 5.0.0 - parameter $shareTime was added in 8.0.0 */ public static function setExpirationDate($itemType, $itemSource, $date, $shareTime = null) { return \OC\Share\Share::setExpirationDate($itemType, $itemSource, $date, $shareTime); @@ -322,6 +344,7 @@ class Share extends \OC\Share\Constants { * @param int $shareId * @param string $password * @return boolean + * @since 8.1.0 */ public static function setPassword($shareId, $password) { $userSession = \OC::$server->getUserSession(); @@ -335,6 +358,7 @@ class Share extends \OC\Share\Constants { * Get the backend class for the specified item type * @param string $itemType * @return Share_Backend + * @since 5.0.0 */ public static function getBackend($itemType) { return \OC\Share\Share::getBackend($itemType); @@ -342,6 +366,7 @@ class Share extends \OC\Share\Constants { /** * Delete all shares with type SHARE_TYPE_LINK + * @since 6.0.0 */ public static function removeAllLinkShares() { return \OC\Share\Share::removeAllLinkShares(); @@ -352,6 +377,7 @@ class Share extends \OC\Share\Constants { * * @param array $linkItem * @return bool + * @since 7.0.0 */ public static function checkPasswordProtectedShare(array $linkItem) { return \OC\Share\Share::checkPasswordProtectedShare($linkItem); @@ -361,6 +387,7 @@ class Share extends \OC\Share\Constants { * Check if resharing is allowed * * @return boolean true if allowed or false + * @since 5.0.0 */ public static function isResharingAllowed() { return \OC\Share\Share::isResharingAllowed(); diff --git a/lib/public/share_backend.php b/lib/public/share_backend.php index b82f265b383..35ed650b173 100644 --- a/lib/public/share_backend.php +++ b/lib/public/share_backend.php @@ -28,6 +28,7 @@ namespace OCP; /** * Interface that apps must implement to share content. + * @since 5.0.0 */ interface Share_Backend { @@ -38,6 +39,7 @@ interface Share_Backend { * @return boolean|null Source * * Return false if the item does not exist for the user + * @since 5.0.0 */ public function isValidSource($itemSource, $uidOwner); @@ -50,6 +52,7 @@ interface Share_Backend { * * This function needs to verify that the user does not already have an item with this name. * If it does generate a new name e.g. name_# + * @since 5.0.0 */ public function generateTarget($itemSource, $shareWith, $exclude = null); @@ -73,6 +76,7 @@ interface Share_Backend { * * This function allows the backend to control the output of shared items with custom formats. * It is only called through calls to the public getItem(s)Shared(With) functions. + * @since 5.0.0 */ public function formatItems($items, $format, $parameters = null); @@ -85,6 +89,7 @@ interface Share_Backend { * The back-end can enable/disable specific share types. Just return true if * the back-end doesn't provide any specific settings for it and want to allow * all share types defined by the share API + * @since 8.0.0 */ public function isShareTypeAllowed($shareType); diff --git a/lib/public/share_backend_collection.php b/lib/public/share_backend_collection.php index 7317a574a7d..7378fd2a46d 100644 --- a/lib/public/share_backend_collection.php +++ b/lib/public/share_backend_collection.php @@ -27,12 +27,14 @@ namespace OCP; /** * Interface for collections of of items implemented by another share backend. * Extends the Share_Backend interface. + * @since 5.0.0 */ interface Share_Backend_Collection extends Share_Backend { /** * Get the sources of the children of the item * @param string $itemSource * @return array Returns an array of children each inside an array with the keys: source, target, and file_path if applicable + * @since 5.0.0 */ public function getChildren($itemSource); } diff --git a/lib/public/share_backend_file_dependent.php b/lib/public/share_backend_file_dependent.php index b5bde29dfc2..b95e0bd84d2 100644 --- a/lib/public/share_backend_file_dependent.php +++ b/lib/public/share_backend_file_dependent.php @@ -27,6 +27,7 @@ namespace OCP; /** * Interface for share backends that share content that is dependent on files. * Extends the Share_Backend interface. + * @since 5.0.0 */ interface Share_Backend_File_Dependent extends Share_Backend { /** @@ -34,6 +35,7 @@ interface Share_Backend_File_Dependent extends Share_Backend { * @param string $itemSource * @param string $uidOwner User that is the owner of shared item * @return string|false + * @since 5.0.0 */ public function getFilePath($itemSource, $uidOwner); diff --git a/lib/public/template.php b/lib/public/template.php index eee5abfc445..63079c0fc30 100644 --- a/lib/public/template.php +++ b/lib/public/template.php @@ -47,7 +47,7 @@ namespace OCP; * @return string to the image * * @see OC_Helper::imagePath - * @deprecated Use \OCP\Template::image_path() instead + * @deprecated 8.0.0 Use \OCP\Template::image_path() instead */ function image_path( $app, $image ) { return(\image_path( $app, $image )); @@ -58,7 +58,7 @@ function image_path( $app, $image ) { * Make OC_Helper::mimetypeIcon available as a simple function * @param string $mimetype * @return string to the image of this file type. - * @deprecated Use \OCP\Template::mimetype_icon() instead + * @deprecated 8.0.0 Use \OCP\Template::mimetype_icon() instead */ function mimetype_icon( $mimetype ) { return(\mimetype_icon( $mimetype )); @@ -68,7 +68,7 @@ function mimetype_icon( $mimetype ) { * Make preview_icon available as a simple function * @param string $path path to file * @return string to the preview of the image - * @deprecated Use \OCP\Template::preview_icon() instead + * @deprecated 8.0.0 Use \OCP\Template::preview_icon() instead */ function preview_icon( $path ) { return(\preview_icon( $path )); @@ -80,7 +80,7 @@ function preview_icon( $path ) { * @param string $path of file * @param string $token * @return string link to the preview - * @deprecated Use \OCP\Template::publicPreview_icon() instead + * @deprecated 8.0.0 Use \OCP\Template::publicPreview_icon() instead */ function publicPreview_icon ( $path, $token ) { return(\publicPreview_icon( $path, $token )); @@ -91,7 +91,7 @@ function publicPreview_icon ( $path, $token ) { * Example: 2048 to 2 kB. * @param int $bytes in bytes * @return string size as string - * @deprecated Use \OCP\Template::human_file_size() instead + * @deprecated 8.0.0 Use \OCP\Template::human_file_size() instead */ function human_file_size( $bytes ) { return(\human_file_size( $bytes )); @@ -104,7 +104,7 @@ function human_file_size( $bytes ) { * @param boolean $dateOnly * @return \OC_L10N_String human readable interpretation of the timestamp * - * @deprecated Use \OCP\Template::relative_modified_date() instead + * @deprecated 8.0.0 Use \OCP\Template::relative_modified_date() instead */ function relative_modified_date( $timestamp, $dateOnly = false ) { return(\relative_modified_date($timestamp, null, $dateOnly)); @@ -115,7 +115,7 @@ function relative_modified_date( $timestamp, $dateOnly = false ) { * Return a human readable outout for a file size. * @param integer $bytes size of a file in byte * @return string human readable interpretation of a file size - * @deprecated Use \OCP\Template::human_file_size() instead + * @deprecated 8.0.0 Use \OCP\Template::human_file_size() instead */ function simple_file_size($bytes) { return(\human_file_size($bytes)); @@ -128,7 +128,7 @@ function simple_file_size($bytes) { * @param mixed $selected which one is selected? * @param array $params the parameters * @return string html options - * @deprecated Use \OCP\Template::html_select_options() instead + * @deprecated 8.0.0 Use \OCP\Template::html_select_options() instead */ function html_select_options($options, $selected, $params=array()) { return(\html_select_options($options, $selected, $params)); @@ -148,6 +148,7 @@ class Template extends \OC_Template { * @param string $app * @param string $image * @return string to the image + * @since 8.0.0 */ public static function image_path($app, $image) { return \image_path($app, $image); @@ -159,6 +160,7 @@ class Template extends \OC_Template { * * @param string $mimetype * @return string to the image of this file type. + * @since 8.0.0 */ public static function mimetype_icon($mimetype) { return \mimetype_icon($mimetype); @@ -169,6 +171,7 @@ class Template extends \OC_Template { * * @param string $path path to file * @return string to the preview of the image + * @since 8.0.0 */ public static function preview_icon($path) { return \preview_icon($path); @@ -181,6 +184,7 @@ class Template extends \OC_Template { * @param string $path of file * @param string $token * @return string link to the preview + * @since 8.0.0 */ public static function publicPreview_icon($path, $token) { return \publicPreview_icon($path, $token); @@ -192,18 +196,20 @@ class Template extends \OC_Template { * * @param int $bytes in bytes * @return string size as string + * @since 8.0.0 */ public static function human_file_size($bytes) { return \human_file_size($bytes); } /** - * Return the relative date in relation to today. Returns something like "last hour" or "two month ago" - * - * @param int $timestamp unix timestamp - * @param boolean $dateOnly - * @return string human readable interpretation of the timestamp - */ + * Return the relative date in relation to today. Returns something like "last hour" or "two month ago" + * + * @param int $timestamp unix timestamp + * @param boolean $dateOnly + * @return string human readable interpretation of the timestamp + * @since 8.0.0 + */ public static function relative_modified_date($timestamp, $dateOnly = false) { return \relative_modified_date($timestamp, null, $dateOnly); } @@ -215,6 +221,7 @@ class Template extends \OC_Template { * @param mixed $selected which one is selected? * @param array $params the parameters * @return string html options + * @since 8.0.0 */ public static function html_select_options($options, $selected, $params=array()) { return \html_select_options($options, $selected, $params); diff --git a/lib/public/user.php b/lib/public/user.php index f3802220b37..0b5fb9565e4 100644 --- a/lib/public/user.php +++ b/lib/public/user.php @@ -42,12 +42,14 @@ namespace OCP; /** * This class provides access to the user management. You can get information * about the currently logged in user and the permissions for example + * @since 5.0.0 */ class User { /** * Get the user id of the user currently logged in. * @return string uid or false - * @deprecated Use \OC::$server->getUserSession()->getUser()->getUID() + * @deprecated 8.0.0 Use \OC::$server->getUserSession()->getUser()->getUID() + * @since 5.0.0 */ public static function getUser() { return \OC_User::getUser(); @@ -59,6 +61,7 @@ class User { * @param int|null $limit * @param int|null $offset * @return array an array of all uids + * @since 5.0.0 */ public static function getUsers( $search = '', $limit = null, $offset = null ) { return \OC_User::getUsers( $search, $limit, $offset ); @@ -68,6 +71,7 @@ class User { * Get the user display name of the user currently logged in. * @param string|null $user user id or null for current user * @return string display name + * @since 5.0.0 */ public static function getDisplayName( $user = null ) { return \OC_User::getDisplayName( $user ); @@ -79,6 +83,7 @@ class User { * @param int|null $limit * @param int|null $offset * @return array an array of all display names (value) and the correspondig uids (key) + * @since 5.0.0 */ public static function getDisplayNames( $search = '', $limit = null, $offset = null ) { return \OC_User::getDisplayNames( $search, $limit, $offset ); @@ -87,6 +92,7 @@ class User { /** * Check if the user is logged in * @return boolean + * @since 5.0.0 */ public static function isLoggedIn() { return \OC_User::isLoggedIn(); @@ -97,6 +103,7 @@ class User { * @param string $uid the username * @param string $excludingBackend (default none) * @return boolean + * @since 5.0.0 */ public static function userExists( $uid, $excludingBackend = null ) { return \OC_User::userExists( $uid, $excludingBackend ); @@ -104,7 +111,8 @@ class User { /** * Logs the user out including all the session data * Logout, destroys session - * @deprecated Use \OC::$server->getUserSession()->logout(); + * @deprecated 8.0.0 Use \OC::$server->getUserSession()->logout(); + * @since 5.0.0 */ public static function logout() { \OC_User::logout(); @@ -117,23 +125,26 @@ class User { * @return string|false username on success, false otherwise * * Check if the password is correct without logging in the user - * @deprecated Use \OC::$server->getUserManager()->checkPassword(); + * @deprecated 8.0.0 Use \OC::$server->getUserManager()->checkPassword(); + * @since 5.0.0 */ public static function checkPassword( $uid, $password ) { return \OC_User::checkPassword( $uid, $password ); } /** - * Check if the user is a admin, redirects to home if not - */ + * Check if the user is a admin, redirects to home if not + * @since 5.0.0 + */ public static function checkAdminUser() { \OC_Util::checkAdminUser(); } /** - * Check if the user is logged in, redirects to home if not. With - * redirect URL parameter to the request URI. - */ + * Check if the user is logged in, redirects to home if not. With + * redirect URL parameter to the request URI. + * @since 5.0.0 + */ public static function checkLoggedIn() { \OC_Util::checkLoggedIn(); } diff --git a/lib/public/userinterface.php b/lib/public/userinterface.php index 0848139be91..cf91e519813 100644 --- a/lib/public/userinterface.php +++ b/lib/public/userinterface.php @@ -31,4 +31,10 @@ // This means that they should be used by apps instead of the internal ownCloud classes namespace OCP; +/** + * Interface UserInterface + * + * @package OCP + * @since 4.5.0 + */ interface UserInterface extends \OC_User_Interface {} diff --git a/lib/public/util.php b/lib/public/util.php index 721bcaadb62..6eb5c6034c1 100644 --- a/lib/public/util.php +++ b/lib/public/util.php @@ -51,6 +51,7 @@ use DateTimeZone; /** * This class provides different helper functions to make the life of a developer easier + * @since 4.0.0 */ class Util { // consts for Logging @@ -63,6 +64,7 @@ class Util { /** * get the current installed version of ownCloud * @return array + * @since 4.0.0 */ public static function getVersion() { return(\OC_Util::getVersion()); @@ -81,7 +83,8 @@ class Util { * @param string $ccaddress * @param string $ccname * @param string $bcc - * @deprecated Use \OCP\Mail\IMailer instead + * @deprecated 8.1.0 Use \OCP\Mail\IMailer instead + * @since 4.0.0 */ public static function sendMail($toaddress, $toname, $subject, $mailtext, $fromaddress, $fromname, $html = 0, $altbody = '', $ccaddress = '', $ccname = '', $bcc = '') { @@ -122,6 +125,7 @@ class Util { * @param string $app * @param string $message * @param int $level + * @since 4.0.0 */ public static function writeLog( $app, $message, $level ) { // call the internal log class @@ -133,9 +137,11 @@ class Util { * @param string $app app name * @param \Exception $ex exception to log * @param int $level log level, defaults to \OCP\Util::FATAL + * @since ....0.0 - parameter $level was added in 7.0.0 */ public static function logException( $app, \Exception $ex, $level = \OCP\Util::FATAL ) { $exception = array( + 'Exception' => get_class($ex), 'Message' => $ex->getMessage(), 'Code' => $ex->getCode(), 'Trace' => $ex->getTraceAsString(), @@ -149,6 +155,7 @@ class Util { * check if sharing is disabled for the current user * * @return boolean + * @since 7.0.0 */ public static function isSharingDisabledForUser() { return \OC_Util::isSharingDisabledForUser(); @@ -159,6 +166,7 @@ class Util { * @param string $application * @param string|null $language * @return \OC_L10N + * @since 6.0.0 - parameter $language was added in 8.0.0 */ public static function getL10N($application, $language = null) { return \OC::$server->getL10N($application, $language); @@ -168,6 +176,7 @@ class Util { * add a css file * @param string $application * @param string $file + * @since 4.0.0 */ public static function addStyle( $application, $file = null ) { \OC_Util::addStyle( $application, $file ); @@ -177,6 +186,7 @@ class Util { * add a javascript file * @param string $application * @param string $file + * @since 4.0.0 */ public static function addScript( $application, $file = null ) { \OC_Util::addScript( $application, $file ); @@ -186,6 +196,7 @@ class Util { * Add a translation JS file * @param string $application application id * @param string $languageCode language code, defaults to the current locale + * @since 8.0.0 */ public static function addTranslations($application, $languageCode = null) { \OC_Util::addTranslations($application, $languageCode); @@ -198,6 +209,7 @@ class Util { * @param string $tag tag name of the element * @param array $attributes array of attributes for the element * @param string $text the text content for the element + * @since 4.0.0 */ public static function addHeader($tag, $attributes, $text=null) { \OC_Util::addHeader($tag, $attributes, $text); @@ -210,7 +222,8 @@ class Util { * @param DateTimeZone|string $timeZone where the given timestamp shall be converted to * @return string timestamp * - * @deprecated Use \OC::$server->query('DateTimeFormatter') instead + * @deprecated 8.0.0 Use \OC::$server->query('DateTimeFormatter') instead + * @since 4.0.0 */ public static function formatDate($timestamp, $dateOnly=false, $timeZone = null) { return(\OC_Util::formatDate($timestamp, $dateOnly, $timeZone)); @@ -220,7 +233,8 @@ class Util { * check if some encrypted files are stored * @return bool * - * @deprecated No longer required + * @deprecated 8.1.0 No longer required + * @since 6.0.0 */ public static function encryptedFiles() { return false; @@ -233,6 +247,7 @@ class Util { * @param array $args array with param=>value, will be appended to the returned url * The value of $args will be urlencoded * @return string the url + * @since 4.0.0 - parameter $args was added in 4.5.0 */ public static function linkToAbsolute( $app, $file, $args = array() ) { return(\OC_Helper::linkToAbsolute( $app, $file, $args )); @@ -242,6 +257,7 @@ class Util { * Creates an absolute url for remote use. * @param string $service id * @return string the url + * @since 4.0.0 */ public static function linkToRemote( $service ) { return(\OC_Helper::linkToRemote( $service )); @@ -251,6 +267,7 @@ class Util { * Creates an absolute url for public use * @param string $service id * @return string the url + * @since 4.5.0 */ public static function linkToPublic($service) { return \OC_Helper::linkToPublic($service); @@ -262,21 +279,23 @@ class Util { * @param array $parameters * @internal param array $args with param=>value, will be appended to the returned url * @return string the url - * @deprecated Use \OC::$server->getURLGenerator()->linkToRoute($route, $parameters) + * @deprecated 8.1.0 Use \OC::$server->getURLGenerator()->linkToRoute($route, $parameters) + * @since 5.0.0 */ public static function linkToRoute( $route, $parameters = array() ) { return \OC_Helper::linkToRoute($route, $parameters); } /** - * Creates an url to the given app and file - * @param string $app app - * @param string $file file - * @param array $args array with param=>value, will be appended to the returned url - * The value of $args will be urlencoded - * @return string the url - * @deprecated Use \OC::$server->getURLGenerator()->linkTo($app, $file, $args) - */ + * Creates an url to the given app and file + * @param string $app app + * @param string $file file + * @param array $args array with param=>value, will be appended to the returned url + * The value of $args will be urlencoded + * @return string the url + * @deprecated 8.1.0 Use \OC::$server->getURLGenerator()->linkTo($app, $file, $args) + * @since 4.0.0 - parameter $args was added in 4.5.0 + */ public static function linkTo( $app, $file, $args = array() ) { return(\OC_Helper::linkTo( $app, $file, $args )); } @@ -284,7 +303,8 @@ class Util { /** * Returns the server host, even if the website uses one or more reverse proxy * @return string the server host - * @deprecated Use \OCP\IRequest::getServerHost + * @deprecated 8.1.0 Use \OCP\IRequest::getServerHost + * @since 4.0.0 */ public static function getServerHost() { return \OC::$server->getRequest()->getServerHost(); @@ -293,6 +313,7 @@ class Util { /** * Returns the server host name without an eventual port number * @return string the server hostname + * @since 5.0.0 */ public static function getServerHostName() { $host_name = self::getServerHost(); @@ -318,6 +339,7 @@ class Util { * If the configuration value 'mail_from_address' is set in * config.php, this value will override the $user_part that * is passed to this function + * @since 5.0.0 */ public static function getDefaultEmailAddress($user_part) { $user_part = \OC_Config::getValue('mail_from_address', $user_part); @@ -337,7 +359,8 @@ class Util { /** * Returns the server protocol. It respects reverse proxy servers and load balancers * @return string the server protocol - * @deprecated Use \OCP\IRequest::getServerProtocol + * @deprecated 8.1.0 Use \OCP\IRequest::getServerProtocol + * @since 4.5.0 */ public static function getServerProtocol() { return \OC::$server->getRequest()->getServerProtocol(); @@ -346,7 +369,8 @@ class Util { /** * Returns the request uri, even if the website uses one or more reverse proxies * @return string the request uri - * @deprecated Use \OCP\IRequest::getRequestUri + * @deprecated 8.1.0 Use \OCP\IRequest::getRequestUri + * @since 5.0.0 */ public static function getRequestUri() { return \OC::$server->getRequest()->getRequestUri(); @@ -355,7 +379,8 @@ class Util { /** * Returns the script name, even if the website uses one or more reverse proxies * @return string the script name - * @deprecated Use \OCP\IRequest::getScriptName + * @deprecated 8.1.0 Use \OCP\IRequest::getScriptName + * @since 5.0.0 */ public static function getScriptName() { return \OC::$server->getRequest()->getScriptName(); @@ -366,16 +391,18 @@ class Util { * @param string $app app * @param string $image image name * @return string the url - * @deprecated Use \OC::$server->getURLGenerator()->imagePath($app, $image) + * @deprecated 8.1.0 Use \OC::$server->getURLGenerator()->imagePath($app, $image) + * @since 4.0.0 */ public static function imagePath( $app, $image ) { - return(\OC_Helper::imagePath( $app, $image )); + return \OC::$server->getURLGenerator()->imagePath($app, $image); } /** * Make a human file size (2048 to 2 kB) * @param int $bytes file size in bytes * @return string a human readable file size + * @since 4.0.0 */ public static function humanFileSize( $bytes ) { return(\OC_Helper::humanFileSize( $bytes )); @@ -387,6 +414,7 @@ class Util { * @return int a file size in bytes * * Inspired by: http://www.php.net/manual/en/function.filesize.php#92418 + * @since 4.0.0 */ public static function computerFileSize( $str ) { return(\OC_Helper::computerFileSize( $str )); @@ -404,6 +432,7 @@ class Util { * This function makes it very easy to connect to use hooks. * * TODO: write example + * @since 4.0.0 */ static public function connectHook($signalClass, $signalName, $slotClass, $slotName ) { return(\OC_Hook::connect($signalClass, $signalName, $slotClass, $slotName )); @@ -417,6 +446,7 @@ class Util { * @return bool true if slots exists or false if not * * TODO: write example + * @since 4.0.0 */ static public function emitHook( $signalclass, $signalname, $params = array()) { return(\OC_Hook::emit( $signalclass, $signalname, $params )); @@ -425,6 +455,7 @@ class Util { /** * Register an get/post call. This is important to prevent CSRF attacks * TODO: write example + * @since 4.5.0 */ public static function callRegister() { return(\OC_Util::callRegister()); @@ -433,6 +464,7 @@ class Util { /** * Check an ajax get/post call if the request token is valid. exit if not. * Todo: Write howto + * @since 4.5.0 */ public static function callCheck() { \OC_Util::callCheck(); @@ -446,6 +478,7 @@ class Util { * * @param string|array $value * @return string|array an array of sanitized strings or a single sinitized string, depends on the input parameter. + * @since 4.5.0 */ public static function sanitizeHTML( $value ) { return(\OC_Util::sanitizeHTML($value)); @@ -460,6 +493,7 @@ class Util { * * @param string $component part of URI to encode * @return string + * @since 6.0.0 */ public static function encodePath($component) { return(\OC_Util::encodePath($component)); @@ -472,6 +506,7 @@ class Util { * @param int $case Either MB_CASE_UPPER or MB_CASE_LOWER (default) * @param string $encoding The encoding parameter is the character encoding. Defaults to UTF-8 * @return array + * @since 4.5.0 */ public static function mb_array_change_key_case($input, $case = MB_CASE_LOWER, $encoding = 'UTF-8') { return(\OC_Helper::mb_array_change_key_case($input, $case, $encoding)); @@ -486,6 +521,7 @@ class Util { * @param int $length Length of the part to be replaced * @param string $encoding The encoding parameter is the character encoding. Defaults to UTF-8 * @return string + * @since 4.5.0 */ public static function mb_substr_replace($string, $replacement, $start, $length = null, $encoding = 'UTF-8') { return(\OC_Helper::mb_substr_replace($string, $replacement, $start, $length, $encoding)); @@ -500,6 +536,7 @@ class Util { * @param string $encoding The encoding parameter is the character encoding. Defaults to UTF-8 * @param int $count If passed, this will be set to the number of replacements performed. * @return string + * @since 4.5.0 */ public static function mb_str_replace($search, $replace, $subject, $encoding = 'UTF-8', &$count = null) { return(\OC_Helper::mb_str_replace($search, $replace, $subject, $encoding, $count)); @@ -512,6 +549,7 @@ class Util { * @param string $needle the search string * @param int $index optional, only search this key name * @return mixed the key of the matching field, otherwise false + * @since 4.5.0 */ public static function recursiveArraySearch($haystack, $needle, $index = null) { return(\OC_Helper::recursiveArraySearch($haystack, $needle, $index)); @@ -523,6 +561,7 @@ class Util { * @param string $dir the current folder where the user currently operates * @param int $free the number of bytes free on the storage holding $dir, if not set this will be received from the storage directly * @return int number of bytes representing + * @since 5.0.0 */ public static function maxUploadFilesize($dir, $free = null) { return \OC_Helper::maxUploadFilesize($dir, $free); @@ -532,6 +571,7 @@ class Util { * Calculate free space left within user quota * @param string $dir the current folder where the user currently operates * @return int number of bytes representing + * @since 7.0.0 */ public static function freeSpace($dir) { return \OC_Helper::freeSpace($dir); @@ -541,6 +581,7 @@ class Util { * Calculate PHP upload limit * * @return int number of bytes representing + * @since 7.0.0 */ public static function uploadLimit() { return \OC_Helper::uploadLimit(); @@ -550,7 +591,8 @@ class Util { * Returns whether the given file name is valid * @param string $file file name to check * @return bool true if the file name is valid, false otherwise - * @deprecated use \OC\Files\View::verifyPath() + * @deprecated 8.1.0 use \OC\Files\View::verifyPath() + * @since 7.0.0 */ public static function isValidFileName($file) { return \OC_Util::isValidFileName($file); @@ -560,7 +602,8 @@ class Util { * Generates a cryptographic secure pseudo-random string * @param int $length of the random string * @return string - * @deprecated Use \OC::$server->getSecureRandom()->getMediumStrengthGenerator()->generate($length); instead + * @deprecated 8.0.0 Use \OC::$server->getSecureRandom()->getMediumStrengthGenerator()->generate($length); instead + * @since 7.0.0 */ public static function generateRandomBytes($length = 30) { return \OC_Util::generateRandomBytes($length); @@ -572,6 +615,7 @@ class Util { * @param string $b second string to compare * @return -1 if $b comes before $a, 1 if $a comes before $b * or 0 if the strings are identical + * @since 7.0.0 */ public static function naturalSortCompare($a, $b) { return \OC\NaturalSort::getInstance()->compare($a, $b); @@ -580,6 +624,7 @@ class Util { /** * check if a password is required for each public link * @return boolean + * @since 7.0.0 */ public static function isPublicLinkPasswordRequired() { return \OC_Util::isPublicLinkPasswordRequired(); @@ -588,6 +633,7 @@ class Util { /** * check if share API enforces a default expire date * @return boolean + * @since 8.0.0 */ public static function isDefaultExpireDateEnforced() { return \OC_Util::isDefaultExpireDateEnforced(); @@ -598,6 +644,7 @@ class Util { * Checks whether the current version needs upgrade. * * @return bool true if upgrade is needed, false otherwise + * @since 7.0.0 */ public static function needUpgrade() { return \OC_Util::needUpgrade(\OC::$server->getConfig()); diff --git a/lib/repair/repairlegacystorages.php b/lib/repair/repairlegacystorages.php index 7086f2a8d2d..1bc49678f0d 100644 --- a/lib/repair/repairlegacystorages.php +++ b/lib/repair/repairlegacystorages.php @@ -102,7 +102,7 @@ class RepairLegacyStorages extends BasicEmitter { $newNumericId = (int)$newNumericId; // try and resolve the conflict // check which one of "local::" or "home::" needs to be kept - $result = $this->findStorageInCacheStatement->execute(array($oldNumericId, $newNumericId)); + $this->findStorageInCacheStatement->execute(array($oldNumericId, $newNumericId)); $row1 = $this->findStorageInCacheStatement->fetch(); $row2 = $this->findStorageInCacheStatement->fetch(); $this->findStorageInCacheStatement->closeCursor(); diff --git a/ocs/routes.php b/ocs/routes.php index 2a8fe5dc2af..751a16d538e 100644 --- a/ocs/routes.php +++ b/ocs/routes.php @@ -23,109 +23,111 @@ * */ +use OCP\API; + // Config -OC_API::register( +API::register( 'get', '/config', array('OC_OCS_Config', 'apiConfig'), 'core', - OC_API::GUEST_AUTH + API::GUEST_AUTH ); // Person -OC_API::register( +API::register( 'post', '/person/check', array('OC_OCS_Person', 'check'), 'core', - OC_API::GUEST_AUTH + API::GUEST_AUTH ); // Privatedata -OC_API::register( +API::register( 'get', '/privatedata/getattribute', array('OC_OCS_Privatedata', 'get'), 'core', - OC_API::USER_AUTH, + API::USER_AUTH, array('app' => '', 'key' => '') ); -OC_API::register( +API::register( 'get', '/privatedata/getattribute/{app}', array('OC_OCS_Privatedata', 'get'), 'core', - OC_API::USER_AUTH, + API::USER_AUTH, array('key' => '') ); -OC_API::register( +API::register( 'get', '/privatedata/getattribute/{app}/{key}', array('OC_OCS_Privatedata', 'get'), 'core', - OC_API::USER_AUTH + API::USER_AUTH ); -OC_API::register( +API::register( 'post', '/privatedata/setattribute/{app}/{key}', array('OC_OCS_Privatedata', 'set'), 'core', - OC_API::USER_AUTH + API::USER_AUTH ); -OC_API::register( +API::register( 'post', '/privatedata/deleteattribute/{app}/{key}', array('OC_OCS_Privatedata', 'delete'), 'core', - OC_API::USER_AUTH + API::USER_AUTH ); // cloud -OC_API::register( +API::register( 'get', '/cloud/capabilities', array('OC_OCS_Cloud', 'getCapabilities'), 'core', - OC_API::USER_AUTH + API::USER_AUTH ); -OC_API::register( +API::register( 'get', '/cloud/users/{userid}', array('OC_OCS_Cloud', 'getUser'), 'core', - OC_API::USER_AUTH + API::USER_AUTH ); -OC_API::register( +API::register( 'get', '/cloud/user', array('OC_OCS_Cloud', 'getCurrentUser'), 'core', - OC_API::USER_AUTH + API::USER_AUTH ); // Server-to-Server Sharing $s2s = new \OCA\Files_Sharing\API\Server2Server(); -OC_API::register('post', +API::register('post', '/cloud/shares', array($s2s, 'createShare'), 'files_sharing', - OC_API::GUEST_AUTH + API::GUEST_AUTH ); -OC_API::register('post', +API::register('post', '/cloud/shares/{id}/accept', array($s2s, 'acceptShare'), 'files_sharing', - OC_API::GUEST_AUTH + API::GUEST_AUTH ); -OC_API::register('post', +API::register('post', '/cloud/shares/{id}/decline', array($s2s, 'declineShare'), 'files_sharing', - OC_API::GUEST_AUTH + API::GUEST_AUTH ); -OC_API::register('post', +API::register('post', '/cloud/shares/{id}/unshare', array($s2s, 'unshare'), 'files_sharing', - OC_API::GUEST_AUTH + API::GUEST_AUTH ); diff --git a/settings/admin.php b/settings/admin.php index 976d0a5c3f1..94e48aab14e 100644 --- a/settings/admin.php +++ b/settings/admin.php @@ -82,19 +82,24 @@ $excludedGroupsList = $appConfig->getValue('core', 'shareapi_exclude_groups_list $excludedGroupsList = explode(',', $excludedGroupsList); // FIXME: this should be JSON! $template->assign('shareExcludedGroupsList', implode('|', $excludedGroupsList)); $template->assign('encryptionEnabled', \OC::$server->getEncryptionManager()->isEnabled()); +$backends = \OC::$server->getUserManager()->getBackends(); +$externalBackends = (count($backends) > 1) ? true : false; +$template->assign('encryptionReady', \OC::$server->getEncryptionManager()->isReady()); +$template->assign('externalBackendsEnabled', $externalBackends); $encryptionModules = \OC::$server->getEncryptionManager()->getEncryptionModules(); + try { $defaultEncryptionModule = \OC::$server->getEncryptionManager()->getDefaultEncryptionModule(); $defaultEncryptionModuleId = $defaultEncryptionModule->getId(); } catch (Exception $e) { - $defaultEncryptionModule = null; + $defaultEncryptionModuleId = null; } $encModulues = array(); foreach ($encryptionModules as $module) { - $encModulues[$module->getId()]['displayName'] = $module->getDisplayName(); - $encModulues[$module->getId()]['default'] = false; - if ($defaultEncryptionModule && $module->getId() === $defaultEncryptionModuleId) { - $encModulues[$module->getId()]['default'] = true; + $encModulues[$module['id']]['displayName'] = $module['displayName']; + $encModulues[$module['id']]['default'] = false; + if ($module['id'] === $defaultEncryptionModuleId) { + $encModulues[$module['id']]['default'] = true; } } $template->assign('encryptionModules', $encModulues); @@ -185,9 +190,9 @@ $formsMap = array_map(function ($form) { $formsAndMore = array_merge($formsAndMore, $formsMap); // add bottom hardcoded forms from the template -$formsAndMore[] = ['anchor' => 'encryptionAPI', 'section-name' => $l->t('Server Side Encryption')]; +$formsAndMore[] = ['anchor' => 'encryptionAPI', 'section-name' => $l->t('Server-side encryption')]; $formsAndMore[] = ['anchor' => 'backgroundjobs', 'section-name' => $l->t('Cron')]; -$formsAndMore[] = ['anchor' => 'mail_general_settings', 'section-name' => $l->t('Email Server')]; +$formsAndMore[] = ['anchor' => 'mail_general_settings', 'section-name' => $l->t('Email server')]; $formsAndMore[] = ['anchor' => 'log-section', 'section-name' => $l->t('Log')]; $formsAndMore[] = ['anchor' => 'admin-tips', 'section-name' => $l->t('Tips & tricks')]; if ($updaterAppPanel) { diff --git a/settings/ajax/addRootCertificate.php b/settings/ajax/addRootCertificate.php deleted file mode 100644 index 64a55eaede9..00000000000 --- a/settings/ajax/addRootCertificate.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php -/** - * @author Lukas Reschke <lukas@owncloud.com> - * @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/> - * - */ -OCP\JSON::checkLoggedIn(); -OCP\JSON::callCheck(); - -$l = new OC_L10N('core'); - -if (!isset($_FILES['rootcert_import'])) { - OCP\JSON::error(array('error' => 'No certificate uploaded')); - exit; -} - -$data = file_get_contents($_FILES['rootcert_import']['tmp_name']); -$filename = basename($_FILES['rootcert_import']['name']); - -$certificateManager = \OC::$server->getCertificateManager(); - -try { - $cert = $certificateManager->addCertificate($data, $filename); - OCP\JSON::success(array( - 'name' => $cert->getName(), - 'commonName' => $cert->getCommonName(), - 'organization' => $cert->getOrganization(), - 'validFrom' => $cert->getIssueDate()->getTimestamp(), - 'validTill' => $cert->getExpireDate()->getTimestamp(), - 'validFromString' => $l->l('date', $cert->getIssueDate()), - 'validTillString' => $l->l('date', $cert->getExpireDate()), - 'issuer' => $cert->getIssuerName(), - 'issuerOrganization' => $cert->getIssuerOrganization() - )); -} catch(\Exception $e) { - OCP\JSON::error(array('error' => 'Couldn\'t import SSL root certificate, allowed formats: PEM and DER')); -} diff --git a/settings/ajax/removeRootCertificate.php b/settings/ajax/removeRootCertificate.php deleted file mode 100644 index 4ef5fe32aed..00000000000 --- a/settings/ajax/removeRootCertificate.php +++ /dev/null @@ -1,28 +0,0 @@ -<?php -/** - * @author Björn Schießle <schiessle@owncloud.com> - * @author Lukas Reschke <lukas@owncloud.com> - * @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/> - * - */ -OCP\JSON::checkLoggedIn(); -OCP\JSON::callCheck(); - -$name = (string)$_POST['cert']; -$certificateManager = \OC::$server->getCertificateManager(); -$certificateManager->removeCertificate($name); diff --git a/settings/application.php b/settings/application.php index be127da31ac..920d172c93d 100644 --- a/settings/application.php +++ b/settings/application.php @@ -23,8 +23,11 @@ namespace OC\Settings; +use OC\Files\View; use OC\Settings\Controller\AppSettingsController; +use OC\Settings\Controller\CertificateController; use OC\Settings\Controller\CheckSetupController; +use OC\Settings\Controller\EncryptionController; use OC\Settings\Controller\GroupsController; use OC\Settings\Controller\LogSettingsController; use OC\Settings\Controller\MailSettingsController; @@ -65,6 +68,17 @@ class Application extends App { $c->query('DefaultMailAddress') ); }); + $container->registerService('EncryptionController', function(IContainer $c) { + return new EncryptionController( + $c->query('AppName'), + $c->query('Request'), + $c->query('L10N'), + $c->query('Config'), + $c->query('DatabaseConnection'), + $c->query('UserManager'), + new View() + ); + }); $container->registerService('AppSettingsController', function(IContainer $c) { return new AppSettingsController( $c->query('AppName'), @@ -84,6 +98,14 @@ class Application extends App { $c->query('Config') ); }); + $container->registerService('CertificateController', function(IContainer $c) { + return new CertificateController( + $c->query('AppName'), + $c->query('Request'), + $c->query('CertificateManager'), + $c->query('L10N') + ); + }); $container->registerService('GroupsController', function(IContainer $c) { return new GroupsController( $c->query('AppName'), @@ -207,5 +229,11 @@ class Application extends App { $container->registerService('Util', function(IContainer $c) { return new \OC_Util(); }); + $container->registerService('DatabaseConnection', function(IContainer $c) { + return $c->query('ServerContainer')->getDatabaseConnection(); + }); + $container->registerService('CertificateManager', function(IContainer $c){ + return $c->query('ServerContainer')->getCertificateManager(); + }); } } diff --git a/settings/controller/certificatecontroller.php b/settings/controller/certificatecontroller.php new file mode 100644 index 00000000000..d9026cd42af --- /dev/null +++ b/settings/controller/certificatecontroller.php @@ -0,0 +1,93 @@ +<?php +/** + * @author Lukas Reschke <lukas@owncloud.com> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace OC\Settings\Controller; + +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\DataResponse; +use OCP\ICertificateManager; +use OCP\IL10N; +use OCP\IRequest; + +/** + * @package OC\Settings\Controller + */ +class CertificateController extends Controller { + /** @var ICertificateManager */ + private $certificateManager; + /** @var IL10N */ + private $l10n; + + /** + * @param string $appName + * @param IRequest $request + * @param ICertificateManager $certificateManager + * @param IL10N $l10n + */ + public function __construct($appName, + IRequest $request, + ICertificateManager $certificateManager, + IL10N $l10n) { + parent::__construct($appName, $request); + $this->certificateManager = $certificateManager; + $this->l10n = $l10n; + } + + /** + * Add a new personal root certificate to the users' trust store + * @return array + */ + public function addPersonalRootCertificate() { + $file = $this->request->getUploadedFile('rootcert_import'); + if(empty($file)) { + return new DataResponse(['message' => 'No file uploaded'], Http::STATUS_UNPROCESSABLE_ENTITY); + } + + try { + $certificate = $this->certificateManager->addCertificate(file_get_contents($file['tmp_name']), $file['name']); + return new DataResponse([ + 'name' => $certificate->getName(), + 'commonName' => $certificate->getCommonName(), + 'organization' => $certificate->getOrganization(), + 'validFrom' => $certificate->getIssueDate()->getTimestamp(), + 'validTill' => $certificate->getExpireDate()->getTimestamp(), + 'validFromString' => $this->l10n->l('date', $certificate->getIssueDate()), + 'validTillString' => $this->l10n->l('date', $certificate->getExpireDate()), + 'issuer' => $certificate->getIssuerName(), + 'issuerOrganization' => $certificate->getIssuerOrganization(), + ]); + } catch (\Exception $e) { + return new DataResponse('An error occurred.', Http::STATUS_UNPROCESSABLE_ENTITY); + } + } + + /** + * Removes a personal root certificate from the users' trust store + * @param string $certificateIdentifier + * @return DataResponse + */ + public function removePersonalRootCertificate($certificateIdentifier) { + $this->certificateManager->removeCertificate($certificateIdentifier); + return new DataResponse(); + } + +} diff --git a/settings/controller/encryptioncontroller.php b/settings/controller/encryptioncontroller.php new file mode 100644 index 00000000000..800982d1f04 --- /dev/null +++ b/settings/controller/encryptioncontroller.php @@ -0,0 +1,122 @@ +<?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 OC\Settings\Controller; +use OC\Files\View; +use OCA\Encryption\Migration; +use OCP\IL10N; +use OCP\AppFramework\Controller; +use OCP\IRequest; +use OCP\IConfig; +use OC\DB\Connection; +use OCP\IUserManager; + +/** + * @package OC\Settings\Controller + */ +class EncryptionController extends Controller { + + /** @var \OCP\IL10N */ + private $l10n; + + /** @var Connection */ + private $connection; + + /** @var IConfig */ + private $config; + + /** @var IUserManager */ + private $userManager; + + /** @var View */ + private $view; + + /** + * @param string $appName + * @param IRequest $request + * @param \OCP\IL10N $l10n + * @param \OCP\IConfig $config + * @param \OC\DB\Connection $connection + * @param IUserManager $userManager + * @param View $view + */ + public function __construct($appName, + IRequest $request, + IL10N $l10n, + IConfig $config, + Connection $connection, + IUserManager $userManager, + View $view) { + parent::__construct($appName, $request); + $this->l10n = $l10n; + $this->config = $config; + $this->connection = $connection; + $this->view = $view; + $this->userManager = $userManager; + } + + /** + * start migration + * + * @return array + */ + public function startMigration() { + // allow as long execution on the web server as possible + set_time_limit(0); + $migration = new Migration($this->config, $this->view, $this->connection); + $migration->reorganizeSystemFolderStructure(); + $migration->updateDB(); + + try { + + foreach ($this->userManager->getBackends() as $backend) { + + $limit = 500; + $offset = 0; + do { + $users = $backend->getUsers('', $limit, $offset); + foreach ($users as $user) { + $migration->reorganizeFolderStructureForUser($user); + } + $offset += $limit; + } while (count($users) >= $limit); + } + + } catch (\Exception $e) { + return array( + 'data' => array( + 'message' => (string)$this->l10n->t('A problem occurred, please check your log files (Error: %s)', [$e->getMessage()]), + ), + 'status' => 'error', + ); + } + + return array('data' => + array('message' => + (string) $this->l10n->t('Migration Completed') + ), + 'status' => 'success' + ); + + } + +} diff --git a/settings/js/admin.js b/settings/js/admin.js index 1e27c1be7e3..9cdb7f5b0f1 100644 --- a/settings/js/admin.js +++ b/settings/js/admin.js @@ -39,7 +39,7 @@ $(document).ready(function(){ } ); }); - $('#backgroundjobs span.crondate').tipsy({fade: true, gravity: 's', live: true}); + $('#backgroundjobs span.crondate').tipsy({gravity: 's', live: true}); $('#backgroundjobs input').change(function(){ if($(this).attr('checked')){ @@ -55,7 +55,7 @@ $(document).ready(function(){ }); $('#encryptionEnabled').change(function() { - $('#encryptionAPI div#selectEncryptionModules').toggleClass('hidden'); + $('#encryptionAPI div#EncryptionSettingsArea').toggleClass('hidden'); }); $('#encryptionAPI input').change(function() { @@ -70,6 +70,26 @@ $(document).ready(function(){ OC.AppConfig.setValue('core', $(this).attr('name'), value); }); + $('#startmigration').click(function(event){ + $(window).on('beforeunload.encryption', function(e) { + return t('settings', 'Migration in progress. Please wait until the migration is finished'); + }); + event.preventDefault(); + $('#startmigration').prop('disabled', true); + OC.msg.startAction('#startmigration_msg', t('settings', 'Migration started …')); + $.post(OC.generateUrl('/settings/admin/startmigration'), '', function(data){ + OC.msg.finishedAction('#startmigration_msg', data); + if (data['status'] === 'success') { + $('#encryptionAPI div#selectEncryptionModules').toggleClass('hidden'); + $('#encryptionAPI div#migrationWarning').toggleClass('hidden'); + } else { + $('#startmigration').prop('disabled', false); + } + $(window).off('beforeunload.encryption'); + + }); + }); + $('#shareAPI input:not(#excludedGroups)').change(function() { var value = $(this).val(); if ($(this).attr('type') === 'checkbox') { diff --git a/settings/js/personal.js b/settings/js/personal.js index 43f328d2223..165b55bcdae 100644 --- a/settings/js/personal.js +++ b/settings/js/personal.js @@ -297,28 +297,29 @@ $(document).ready(function () { $('#sslCertificate').on('click', 'td.remove > img', function () { var row = $(this).parent().parent(); - $.post(OC.generateUrl('settings/ajax/removeRootCertificate'), { - cert: row.data('name') + $.ajax(OC.generateUrl('settings/personal/certificate/{certificate}', {certificate: row.data('name')}), { + type: 'DELETE' }); row.remove(); return true; }); - $('#sslCertificate tr > td').tipsy({fade: true, gravity: 'n', live: true}); + $('#sslCertificate tr > td').tipsy({gravity: 'n', live: true}); $('#rootcert_import').fileupload({ - done: function (e, data) { - var issueDate = new Date(data.result.validFrom * 1000); - var expireDate = new Date(data.result.validTill * 1000); + success: function (data) { + var issueDate = new Date(data.validFrom * 1000); + var expireDate = new Date(data.validTill * 1000); var now = new Date(); var isExpired = !(issueDate <= now && now <= expireDate); var row = $('<tr/>'); + row.data('name', data.name); row.addClass(isExpired? 'expired': 'valid'); - row.append($('<td/>').attr('title', data.result.organization).text(data.result.commonName)); - row.append($('<td/>').attr('title', t('core,', 'Valid until {date}', {date: data.result.validFromString})) - .text(data.result.validTillString)); - row.append($('<td/>').attr('title', data.result.issuerOrganization).text(data.result.issuer)); + row.append($('<td/>').attr('title', data.organization).text(data.commonName)); + row.append($('<td/>').attr('title', t('core,', 'Valid until {date}', {date: data.validTillString})) + .text(data.validTillString)); + row.append($('<td/>').attr('title', data.issuerOrganization).text(data.issuer)); row.append($('<td/>').addClass('remove').append( $('<img/>').attr({ alt: t('core', 'Delete'), @@ -328,6 +329,9 @@ $(document).ready(function () { )); $('#sslCertificate tbody').append(row); + }, + fail: function (e, data) { + OC.Notification.showTemporary(t('settings', 'An error occured. Please upload an ASCII-encoded PEM certificate.')); } }); diff --git a/settings/js/users/users.js b/settings/js/users/users.js index 4b46bbf898f..5fd4e9d235b 100644 --- a/settings/js/users/users.js +++ b/settings/js/users/users.js @@ -162,7 +162,7 @@ var UserList = { //original title. We use a temporary div to get back the html that we //can pass later. It is also required to initialise tipsy. var tooltip = $('<div>').html($($tdLastLogin.attr('original-title')).text(lastLoginAbs)).html(); - $tdLastLogin.tipsy({gravity:'s', fade:true, html:true}); + $tdLastLogin.tipsy({gravity:'s', html:true}); $tdLastLogin.attr('title', tooltip); /** @@ -643,7 +643,7 @@ $(document).ready(function () { if(isRestoreDisabled) { $tr.addClass('row-warning'); // add tipsy if the password change could cause data loss - no recovery enabled - $input.tipsy({gravity:'s', fade:false}); + $input.tipsy({gravity:'s'}); $input.attr('title', t('settings', 'Changing the password will result in data loss, because data recovery is not available for this user')); } $td.find('img').hide(); diff --git a/settings/l10n/ar.js b/settings/l10n/ar.js index edf299d7d44..ca7f9e32a7f 100644 --- a/settings/l10n/ar.js +++ b/settings/l10n/ar.js @@ -3,7 +3,6 @@ OC.L10N.register( { "Sharing" : "مشاركة", "Cron" : "مجدول", - "Email Server" : "خادم البريد الالكتروني", "Log" : "سجل", "Authentication error" : "لم يتم التأكد من الشخصية بنجاح", "Your full name has been changed." : "اسمك الكامل تم تغييره.", diff --git a/settings/l10n/ar.json b/settings/l10n/ar.json index 32b279576d7..0376c432aa1 100644 --- a/settings/l10n/ar.json +++ b/settings/l10n/ar.json @@ -1,7 +1,6 @@ { "translations": { "Sharing" : "مشاركة", "Cron" : "مجدول", - "Email Server" : "خادم البريد الالكتروني", "Log" : "سجل", "Authentication error" : "لم يتم التأكد من الشخصية بنجاح", "Your full name has been changed." : "اسمك الكامل تم تغييره.", diff --git a/settings/l10n/ast.js b/settings/l10n/ast.js index 03a3fc57aa4..228e0fd2ffd 100644 --- a/settings/l10n/ast.js +++ b/settings/l10n/ast.js @@ -4,7 +4,6 @@ OC.L10N.register( "Sharing" : "Compartiendo", "External Storage" : "Almacenamientu esternu", "Cron" : "Cron", - "Email Server" : "Sirvidor de corréu-e", "Log" : "Rexistru", "Updates" : "Anovamientos", "Authentication error" : "Fallu d'autenticación", diff --git a/settings/l10n/ast.json b/settings/l10n/ast.json index a3bb4a9ea20..1636a558d82 100644 --- a/settings/l10n/ast.json +++ b/settings/l10n/ast.json @@ -2,7 +2,6 @@ "Sharing" : "Compartiendo", "External Storage" : "Almacenamientu esternu", "Cron" : "Cron", - "Email Server" : "Sirvidor de corréu-e", "Log" : "Rexistru", "Updates" : "Anovamientos", "Authentication error" : "Fallu d'autenticación", diff --git a/settings/l10n/az.js b/settings/l10n/az.js index db1b897a848..a088666f52c 100644 --- a/settings/l10n/az.js +++ b/settings/l10n/az.js @@ -4,9 +4,7 @@ OC.L10N.register( "Security & setup warnings" : "Təhlükəsizlik & işə salma xəbərdarlıqları", "Sharing" : "Paylaşılır", "External Storage" : "Kənar depo", - "Server Side Encryption" : "Server tərəf şifrələnmə", "Cron" : "Cron", - "Email Server" : "Email server", "Log" : "Jurnal", "Updates" : "Yenilənmələr", "Authentication error" : "Təyinat metodikası", diff --git a/settings/l10n/az.json b/settings/l10n/az.json index bf741ed9f9b..0a3eb295f44 100644 --- a/settings/l10n/az.json +++ b/settings/l10n/az.json @@ -2,9 +2,7 @@ "Security & setup warnings" : "Təhlükəsizlik & işə salma xəbərdarlıqları", "Sharing" : "Paylaşılır", "External Storage" : "Kənar depo", - "Server Side Encryption" : "Server tərəf şifrələnmə", "Cron" : "Cron", - "Email Server" : "Email server", "Log" : "Jurnal", "Updates" : "Yenilənmələr", "Authentication error" : "Təyinat metodikası", diff --git a/settings/l10n/bg_BG.js b/settings/l10n/bg_BG.js index 93cb0f7bf0e..d1bdea2b333 100644 --- a/settings/l10n/bg_BG.js +++ b/settings/l10n/bg_BG.js @@ -4,9 +4,7 @@ OC.L10N.register( "Security & setup warnings" : "Предупреждения за сигурност и настройки", "Sharing" : "Споделяне", "External Storage" : "Външно Дисково Пространство", - "Server Side Encryption" : "Криптиране от страна на сървъра", "Cron" : "Крон", - "Email Server" : "Имейл Сървър", "Log" : "Лог", "Updates" : "Обновления", "Authentication error" : "Възникна проблем с идентификацията", @@ -127,7 +125,6 @@ OC.L10N.register( "Execute one task with each page loaded" : "Изпълни по едно задание с всяка заредена страница.", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php е регистриран към webcron да се свързва с cron.php всеки 15 минути по http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Изполвай системната cron service, за връзка с cron.php файла всеки 15 минути.", - "Enable Server-Side-Encryption" : "Включи криптиране от страна на сървъра", "This is used for sending out notifications." : "Това се използва за изпращане на уведомления.", "Send mode" : "Режим на изпращане", "Encryption" : "Криптиране", diff --git a/settings/l10n/bg_BG.json b/settings/l10n/bg_BG.json index ddea8771468..0fcbc78187b 100644 --- a/settings/l10n/bg_BG.json +++ b/settings/l10n/bg_BG.json @@ -2,9 +2,7 @@ "Security & setup warnings" : "Предупреждения за сигурност и настройки", "Sharing" : "Споделяне", "External Storage" : "Външно Дисково Пространство", - "Server Side Encryption" : "Криптиране от страна на сървъра", "Cron" : "Крон", - "Email Server" : "Имейл Сървър", "Log" : "Лог", "Updates" : "Обновления", "Authentication error" : "Възникна проблем с идентификацията", @@ -125,7 +123,6 @@ "Execute one task with each page loaded" : "Изпълни по едно задание с всяка заредена страница.", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php е регистриран към webcron да се свързва с cron.php всеки 15 минути по http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Изполвай системната cron service, за връзка с cron.php файла всеки 15 минути.", - "Enable Server-Side-Encryption" : "Включи криптиране от страна на сървъра", "This is used for sending out notifications." : "Това се използва за изпращане на уведомления.", "Send mode" : "Режим на изпращане", "Encryption" : "Криптиране", diff --git a/settings/l10n/bn_BD.js b/settings/l10n/bn_BD.js index a99381bf4f5..1de8c38432d 100644 --- a/settings/l10n/bn_BD.js +++ b/settings/l10n/bn_BD.js @@ -3,7 +3,6 @@ OC.L10N.register( { "Sharing" : "ভাগাভাগিরত", "External Storage" : "বাহ্যিক সংরক্ষণাগার", - "Email Server" : "ইমেইল সার্ভার", "Authentication error" : "অনুমোদন ঘটিত সমস্যা", "Your full name has been changed." : "আপনার পূর্ণ নাম পরিবর্তন করা হয়েছে।", "Couldn't remove app." : "অ্যাপ অপসারণ করা গেলনা", diff --git a/settings/l10n/bn_BD.json b/settings/l10n/bn_BD.json index 036a7cc4826..d71b26b853f 100644 --- a/settings/l10n/bn_BD.json +++ b/settings/l10n/bn_BD.json @@ -1,7 +1,6 @@ { "translations": { "Sharing" : "ভাগাভাগিরত", "External Storage" : "বাহ্যিক সংরক্ষণাগার", - "Email Server" : "ইমেইল সার্ভার", "Authentication error" : "অনুমোদন ঘটিত সমস্যা", "Your full name has been changed." : "আপনার পূর্ণ নাম পরিবর্তন করা হয়েছে।", "Couldn't remove app." : "অ্যাপ অপসারণ করা গেলনা", diff --git a/settings/l10n/bs.js b/settings/l10n/bs.js index 56715ba1902..293aff2cf3a 100644 --- a/settings/l10n/bs.js +++ b/settings/l10n/bs.js @@ -3,7 +3,6 @@ OC.L10N.register( { "Sharing" : "Dijeljenje", "Cron" : "Cron", - "Email Server" : "Server e-pošte", "Log" : "Zapisnik", "Updates" : "Ažuriranja", "Authentication error" : "Grešna autentifikacije", diff --git a/settings/l10n/bs.json b/settings/l10n/bs.json index 9af8f64c061..272158b9e46 100644 --- a/settings/l10n/bs.json +++ b/settings/l10n/bs.json @@ -1,7 +1,6 @@ { "translations": { "Sharing" : "Dijeljenje", "Cron" : "Cron", - "Email Server" : "Server e-pošte", "Log" : "Zapisnik", "Updates" : "Ažuriranja", "Authentication error" : "Grešna autentifikacije", diff --git a/settings/l10n/ca.js b/settings/l10n/ca.js index 81f5a26297e..175b2572c2f 100644 --- a/settings/l10n/ca.js +++ b/settings/l10n/ca.js @@ -4,9 +4,7 @@ OC.L10N.register( "Security & setup warnings" : "Seguretat i configuració de alertes", "Sharing" : "Compartir", "External Storage" : "Emmagatzemament extern", - "Server Side Encryption" : "Xifrat en el servidor", "Cron" : "Cron", - "Email Server" : "Servidor de correu", "Log" : "Registre", "Tips & tricks" : "Consells i trucs", "Updates" : "Actualitzacions", @@ -131,7 +129,6 @@ OC.L10N.register( "Execute one task with each page loaded" : "Executa una tasca per cada paquet carregat", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php està registrat en un servei webcron que fa una crida a cron.php cada 15 minuts a través de http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Fer servir el cron del sistema per cridar el cron.php cada 15 minuts.", - "Enable Server-Side-Encryption" : "Habilitar xifrat en el servidor", "This is used for sending out notifications." : "S'usa per enviar notificacions.", "Send mode" : "Mode d'enviament", "Encryption" : "Xifrat", diff --git a/settings/l10n/ca.json b/settings/l10n/ca.json index 3be9e2fc010..32c0b588b1a 100644 --- a/settings/l10n/ca.json +++ b/settings/l10n/ca.json @@ -2,9 +2,7 @@ "Security & setup warnings" : "Seguretat i configuració de alertes", "Sharing" : "Compartir", "External Storage" : "Emmagatzemament extern", - "Server Side Encryption" : "Xifrat en el servidor", "Cron" : "Cron", - "Email Server" : "Servidor de correu", "Log" : "Registre", "Tips & tricks" : "Consells i trucs", "Updates" : "Actualitzacions", @@ -129,7 +127,6 @@ "Execute one task with each page loaded" : "Executa una tasca per cada paquet carregat", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php està registrat en un servei webcron que fa una crida a cron.php cada 15 minuts a través de http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Fer servir el cron del sistema per cridar el cron.php cada 15 minuts.", - "Enable Server-Side-Encryption" : "Habilitar xifrat en el servidor", "This is used for sending out notifications." : "S'usa per enviar notificacions.", "Send mode" : "Mode d'enviament", "Encryption" : "Xifrat", diff --git a/settings/l10n/cs_CZ.js b/settings/l10n/cs_CZ.js index 400f7df6248..5ffadd910bc 100644 --- a/settings/l10n/cs_CZ.js +++ b/settings/l10n/cs_CZ.js @@ -4,9 +4,9 @@ OC.L10N.register( "Security & setup warnings" : "Upozornění zabezpečení a nastavení", "Sharing" : "Sdílení", "External Storage" : "Externí úložiště", - "Server Side Encryption" : "Šifrování na serveru", + "Server-side encryption" : "Šifrování na serveru", "Cron" : "Cron", - "Email Server" : "Emailový server", + "Email server" : "Emailový server", "Log" : "Záznam", "Tips & tricks" : "Tipy a triky", "Updates" : "Aktualizace", @@ -28,6 +28,8 @@ OC.L10N.register( "Unable to change password" : "Změna hesla se nezdařila", "Enabled" : "Povoleno", "Not enabled" : "Vypnuto", + "A problem occurred, please check your log files (Error: %s)" : "Došlo k chybě, zkontrolujte prosím log (Chyba: %s)", + "Migration Completed" : "Migrace dokončena", "Group already exists." : "Skupina již existuje.", "Unable to add group." : "Nelze přidat skupinu.", "Unable to delete group." : "Nelze smazat skupinu.", @@ -133,7 +135,6 @@ OC.L10N.register( "Execute one task with each page loaded" : "Spustit jednu úlohu s každým načtením stránky", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php je registrován u služby webcron, aby volal cron.php jednou za 15 minut přes http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Použít systémovou službu cron pro volání cron.php každých 15 minut.", - "Enable Server-Side-Encryption" : "Povolit šifrování na straně serveru", "This is used for sending out notifications." : "Toto se používá pro odesílání upozornění.", "Send mode" : "Mód odesílání", "Encryption" : "Šifrování", diff --git a/settings/l10n/cs_CZ.json b/settings/l10n/cs_CZ.json index e253f080157..3cc70bbaf0f 100644 --- a/settings/l10n/cs_CZ.json +++ b/settings/l10n/cs_CZ.json @@ -2,9 +2,9 @@ "Security & setup warnings" : "Upozornění zabezpečení a nastavení", "Sharing" : "Sdílení", "External Storage" : "Externí úložiště", - "Server Side Encryption" : "Šifrování na serveru", + "Server-side encryption" : "Šifrování na serveru", "Cron" : "Cron", - "Email Server" : "Emailový server", + "Email server" : "Emailový server", "Log" : "Záznam", "Tips & tricks" : "Tipy a triky", "Updates" : "Aktualizace", @@ -26,6 +26,8 @@ "Unable to change password" : "Změna hesla se nezdařila", "Enabled" : "Povoleno", "Not enabled" : "Vypnuto", + "A problem occurred, please check your log files (Error: %s)" : "Došlo k chybě, zkontrolujte prosím log (Chyba: %s)", + "Migration Completed" : "Migrace dokončena", "Group already exists." : "Skupina již existuje.", "Unable to add group." : "Nelze přidat skupinu.", "Unable to delete group." : "Nelze smazat skupinu.", @@ -131,7 +133,6 @@ "Execute one task with each page loaded" : "Spustit jednu úlohu s každým načtením stránky", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php je registrován u služby webcron, aby volal cron.php jednou za 15 minut přes http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Použít systémovou službu cron pro volání cron.php každých 15 minut.", - "Enable Server-Side-Encryption" : "Povolit šifrování na straně serveru", "This is used for sending out notifications." : "Toto se používá pro odesílání upozornění.", "Send mode" : "Mód odesílání", "Encryption" : "Šifrování", diff --git a/settings/l10n/da.js b/settings/l10n/da.js index e83069de909..5ddd3f728cb 100644 --- a/settings/l10n/da.js +++ b/settings/l10n/da.js @@ -4,9 +4,7 @@ OC.L10N.register( "Security & setup warnings" : "Advarsler om sikkerhed og opsætning", "Sharing" : "Deling", "External Storage" : "Ekstern opbevaring", - "Server Side Encryption" : "Kryptering på serverdelen", "Cron" : "Cron", - "Email Server" : "E-mailserver", "Log" : "Log", "Tips & tricks" : "Tips & tricks", "Updates" : "Opdateringer", @@ -135,7 +133,6 @@ OC.L10N.register( "Execute one task with each page loaded" : "Udføre en opgave med hver side indlæsning", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php er registreret til at en webcron service skal kalde cron.php hvert 15 minut over http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Brug systemets cron service til at kalde cron.php hver 15. minut", - "Enable Server-Side-Encryption" : "Aktiver kryptering på serverdelen", "This is used for sending out notifications." : "Dette anvendes til udsendelse af notifikationer.", "Send mode" : "Tilstand for afsendelse", "Encryption" : "Kryptering", diff --git a/settings/l10n/da.json b/settings/l10n/da.json index 62642160765..65aed57dea0 100644 --- a/settings/l10n/da.json +++ b/settings/l10n/da.json @@ -2,9 +2,7 @@ "Security & setup warnings" : "Advarsler om sikkerhed og opsætning", "Sharing" : "Deling", "External Storage" : "Ekstern opbevaring", - "Server Side Encryption" : "Kryptering på serverdelen", "Cron" : "Cron", - "Email Server" : "E-mailserver", "Log" : "Log", "Tips & tricks" : "Tips & tricks", "Updates" : "Opdateringer", @@ -133,7 +131,6 @@ "Execute one task with each page loaded" : "Udføre en opgave med hver side indlæsning", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php er registreret til at en webcron service skal kalde cron.php hvert 15 minut over http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Brug systemets cron service til at kalde cron.php hver 15. minut", - "Enable Server-Side-Encryption" : "Aktiver kryptering på serverdelen", "This is used for sending out notifications." : "Dette anvendes til udsendelse af notifikationer.", "Send mode" : "Tilstand for afsendelse", "Encryption" : "Kryptering", diff --git a/settings/l10n/de.js b/settings/l10n/de.js index 5d2c4b83787..08cea0056da 100644 --- a/settings/l10n/de.js +++ b/settings/l10n/de.js @@ -4,9 +4,7 @@ OC.L10N.register( "Security & setup warnings" : "Sicherheits- & Einrichtungswarnungen", "Sharing" : "Teilen", "External Storage" : "Externer Speicher", - "Server Side Encryption" : "Serverseitige Verschlüsselung", "Cron" : "Cron", - "Email Server" : "E-Mail-Server", "Log" : "Log", "Tips & tricks" : "Tipps & Tricks", "Updates" : "Updates", @@ -28,6 +26,8 @@ OC.L10N.register( "Unable to change password" : "Passwort konnte nicht geändert werden", "Enabled" : "Aktiviert", "Not enabled" : "Nicht aktiviert", + "A problem occurred, please check your log files (Error: %s)" : "Ein Problem ist aufgetreten, bitte prüfen sie ihre Log Dateien (Fehler: %s)", + "Migration Completed" : "Migration komplett", "Group already exists." : "Gruppe existiert bereits.", "Unable to add group." : "Gruppe konnte nicht angelegt werden.", "Unable to delete group." : "Gruppe konnte nicht gelöscht werden.", @@ -48,6 +48,8 @@ OC.L10N.register( "Email saved" : "E-Mail-Adresse gespeichert", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Bist Du wirklich sicher, dass Du „{domain}“ als vertrauenswürdige Domain hinzufügen möchtest?", "Add trusted domain" : "Vertrauenswürdige Domain hinzufügen", + "Migration in progress. Please wait until the migration is finished" : "Migration in Arbeit. Bitte warten Sie bis die Migration beendet ist", + "Migration started …" : "Migration gestartet ...", "Sending..." : "Senden…", "All" : "Alle", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Offizielle Apps werden von und innerhalb der ownCloud-Community entwickelt. Sie stellen zentrale Funktionen von ownCloud bereit und sind auf den Produktiveinsatz vorbereitet.", @@ -135,7 +137,7 @@ OC.L10N.register( "Execute one task with each page loaded" : "Führe eine Aufgabe mit jeder geladenen Seite aus", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.", "Use system's cron service to call the cron.php file every 15 minutes." : "Benutze den systemeigenen Cron-Dienst, um die cron.php alle 15 Minuten aufzurufen.", - "Enable Server-Side-Encryption" : "Serverseitige Verschlüsselung aktivieren", + "Start migration" : "Starte die Migration", "This is used for sending out notifications." : "Dies wird zum Senden von Benachrichtigungen verwendet.", "Send mode" : "Sendemodus", "Encryption" : "Verschlüsselung", diff --git a/settings/l10n/de.json b/settings/l10n/de.json index 2f338f5ab48..7b4008d3415 100644 --- a/settings/l10n/de.json +++ b/settings/l10n/de.json @@ -2,9 +2,7 @@ "Security & setup warnings" : "Sicherheits- & Einrichtungswarnungen", "Sharing" : "Teilen", "External Storage" : "Externer Speicher", - "Server Side Encryption" : "Serverseitige Verschlüsselung", "Cron" : "Cron", - "Email Server" : "E-Mail-Server", "Log" : "Log", "Tips & tricks" : "Tipps & Tricks", "Updates" : "Updates", @@ -26,6 +24,8 @@ "Unable to change password" : "Passwort konnte nicht geändert werden", "Enabled" : "Aktiviert", "Not enabled" : "Nicht aktiviert", + "A problem occurred, please check your log files (Error: %s)" : "Ein Problem ist aufgetreten, bitte prüfen sie ihre Log Dateien (Fehler: %s)", + "Migration Completed" : "Migration komplett", "Group already exists." : "Gruppe existiert bereits.", "Unable to add group." : "Gruppe konnte nicht angelegt werden.", "Unable to delete group." : "Gruppe konnte nicht gelöscht werden.", @@ -46,6 +46,8 @@ "Email saved" : "E-Mail-Adresse gespeichert", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Bist Du wirklich sicher, dass Du „{domain}“ als vertrauenswürdige Domain hinzufügen möchtest?", "Add trusted domain" : "Vertrauenswürdige Domain hinzufügen", + "Migration in progress. Please wait until the migration is finished" : "Migration in Arbeit. Bitte warten Sie bis die Migration beendet ist", + "Migration started …" : "Migration gestartet ...", "Sending..." : "Senden…", "All" : "Alle", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Offizielle Apps werden von und innerhalb der ownCloud-Community entwickelt. Sie stellen zentrale Funktionen von ownCloud bereit und sind auf den Produktiveinsatz vorbereitet.", @@ -133,7 +135,7 @@ "Execute one task with each page loaded" : "Führe eine Aufgabe mit jeder geladenen Seite aus", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.", "Use system's cron service to call the cron.php file every 15 minutes." : "Benutze den systemeigenen Cron-Dienst, um die cron.php alle 15 Minuten aufzurufen.", - "Enable Server-Side-Encryption" : "Serverseitige Verschlüsselung aktivieren", + "Start migration" : "Starte die Migration", "This is used for sending out notifications." : "Dies wird zum Senden von Benachrichtigungen verwendet.", "Send mode" : "Sendemodus", "Encryption" : "Verschlüsselung", diff --git a/settings/l10n/de_DE.js b/settings/l10n/de_DE.js index afe28c9dae5..f5bea44f4fb 100644 --- a/settings/l10n/de_DE.js +++ b/settings/l10n/de_DE.js @@ -4,9 +4,7 @@ OC.L10N.register( "Security & setup warnings" : "Sicherheits- & Einrichtungswarnungen", "Sharing" : "Teilen", "External Storage" : "Externer Speicher", - "Server Side Encryption" : "Serverseitige Verschlüsselung", "Cron" : "Cron", - "Email Server" : "E-Mail-Server", "Log" : "Log", "Tips & tricks" : "Tipps & Tricks", "Updates" : "Updates", @@ -28,6 +26,8 @@ OC.L10N.register( "Unable to change password" : "Passwort konnte nicht geändert werden", "Enabled" : "Aktiviert", "Not enabled" : "Nicht aktiviert", + "A problem occurred, please check your log files (Error: %s)" : "Ein Problem ist aufgetreten, bitte prüfen sie ihre Log Dateien (Fehler: %s)", + "Migration Completed" : "Migration komplett", "Group already exists." : "Gruppe existiert bereits.", "Unable to add group." : "Gruppe konnte nicht angelegt werden.", "Unable to delete group." : "Gruppe konnte nicht gelöscht werden.", @@ -48,6 +48,8 @@ OC.L10N.register( "Email saved" : "E-Mail-Adresse gespeichert", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Sind Sie sich wirklich sicher, dass Sie »{domain}« als vertrauenswürdige Domain hinzufügen möchten?", "Add trusted domain" : "Vertrauenswürdige Domain hinzufügen", + "Migration in progress. Please wait until the migration is finished" : "Migration in Arbeit. Bitte warten Sie bis die Migration beendet ist", + "Migration started …" : "Migration gestartet ...", "Sending..." : "Wird gesendet…", "All" : "Alle", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Offizielle Apps werden von und innerhalb der ownCloud-Community entwickelt. Sie stellen zentrale Funktionen von ownCloud bereit und sind auf den Produktiveinsatz vorbereitet.", @@ -135,7 +137,7 @@ OC.L10N.register( "Execute one task with each page loaded" : "Eine Aufgabe bei jedem Laden der Seite ausführen", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.", "Use system's cron service to call the cron.php file every 15 minutes." : "Benutzen Sie den systemeigenen Cron-Dienst, um die cron.php alle 15 Minuten aufzurufen.", - "Enable Server-Side-Encryption" : "Serverseitige Verschlüsselung aktivieren", + "Start migration" : "Starte die Migration", "This is used for sending out notifications." : "Dies wird für das Senden von Benachrichtigungen verwendet.", "Send mode" : "Sendemodus", "Encryption" : "Verschlüsselung", diff --git a/settings/l10n/de_DE.json b/settings/l10n/de_DE.json index cd411726fb4..c8521b6817b 100644 --- a/settings/l10n/de_DE.json +++ b/settings/l10n/de_DE.json @@ -2,9 +2,7 @@ "Security & setup warnings" : "Sicherheits- & Einrichtungswarnungen", "Sharing" : "Teilen", "External Storage" : "Externer Speicher", - "Server Side Encryption" : "Serverseitige Verschlüsselung", "Cron" : "Cron", - "Email Server" : "E-Mail-Server", "Log" : "Log", "Tips & tricks" : "Tipps & Tricks", "Updates" : "Updates", @@ -26,6 +24,8 @@ "Unable to change password" : "Passwort konnte nicht geändert werden", "Enabled" : "Aktiviert", "Not enabled" : "Nicht aktiviert", + "A problem occurred, please check your log files (Error: %s)" : "Ein Problem ist aufgetreten, bitte prüfen sie ihre Log Dateien (Fehler: %s)", + "Migration Completed" : "Migration komplett", "Group already exists." : "Gruppe existiert bereits.", "Unable to add group." : "Gruppe konnte nicht angelegt werden.", "Unable to delete group." : "Gruppe konnte nicht gelöscht werden.", @@ -46,6 +46,8 @@ "Email saved" : "E-Mail-Adresse gespeichert", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Sind Sie sich wirklich sicher, dass Sie »{domain}« als vertrauenswürdige Domain hinzufügen möchten?", "Add trusted domain" : "Vertrauenswürdige Domain hinzufügen", + "Migration in progress. Please wait until the migration is finished" : "Migration in Arbeit. Bitte warten Sie bis die Migration beendet ist", + "Migration started …" : "Migration gestartet ...", "Sending..." : "Wird gesendet…", "All" : "Alle", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Offizielle Apps werden von und innerhalb der ownCloud-Community entwickelt. Sie stellen zentrale Funktionen von ownCloud bereit und sind auf den Produktiveinsatz vorbereitet.", @@ -133,7 +135,7 @@ "Execute one task with each page loaded" : "Eine Aufgabe bei jedem Laden der Seite ausführen", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.", "Use system's cron service to call the cron.php file every 15 minutes." : "Benutzen Sie den systemeigenen Cron-Dienst, um die cron.php alle 15 Minuten aufzurufen.", - "Enable Server-Side-Encryption" : "Serverseitige Verschlüsselung aktivieren", + "Start migration" : "Starte die Migration", "This is used for sending out notifications." : "Dies wird für das Senden von Benachrichtigungen verwendet.", "Send mode" : "Sendemodus", "Encryption" : "Verschlüsselung", diff --git a/settings/l10n/el.js b/settings/l10n/el.js index 3e17e634e3b..c554075686b 100644 --- a/settings/l10n/el.js +++ b/settings/l10n/el.js @@ -4,9 +4,9 @@ OC.L10N.register( "Security & setup warnings" : "Προειδοποιήσεις ασφάλειας & ρυθμίσεων", "Sharing" : "Διαμοιρασμός", "External Storage" : "Εξωτερικό Αποθηκευτικό Μέσο", - "Server Side Encryption" : "Κρυπτογράφηση από τον Διακομιστή", + "Server-side encryption" : "Κρυπτογράφηση από τον Διακομιστή", "Cron" : "Cron", - "Email Server" : "Διακομιστής Email", + "Email server" : "Διακομιστής Email", "Log" : "Καταγραφές", "Tips & tricks" : "Συμβουλές & τεχνάσματα", "Updates" : "Ενημερώσεις", @@ -28,6 +28,8 @@ OC.L10N.register( "Unable to change password" : "Αδυναμία αλλαγής συνθηματικού", "Enabled" : "Ενεργοποιημένο", "Not enabled" : "Μη ενεργοποιημένο", + "A problem occurred, please check your log files (Error: %s)" : "Παρουσιάστηκε πρόβλημα, παρακαλώ ελέγξτε τα αρχεία καταγραφής σας (Σφάλμα: %s)", + "Migration Completed" : "Η μετάβαση ολοκληρώθηκε", "Group already exists." : "Η ομάδα υπάρχει ήδη.", "Unable to add group." : "Αδυναμία προσθήκης ομάδας.", "Unable to delete group." : "Αδυναμία διαγραφής ομάδας.", @@ -48,6 +50,8 @@ OC.L10N.register( "Email saved" : "Το email αποθηκεύτηκε ", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Είστε πραγματικά σίγουροι ότι θέλετε να προσθέσετε το \"{domain}\" σαν αξιόπιστη περιοχή;", "Add trusted domain" : "Προσθέστε αξιόπιστη περιοχή", + "Migration in progress. Please wait until the migration is finished" : "Μετάβαση σε εξέλιξη. Παρακαλούμε περιμένετε μέχρι να ολοκληρωθεί η μετάβαση", + "Migration started …" : "Η μετάβαση ξεκίνησε ...", "Sending..." : "Αποστέλεται...", "All" : "Όλες", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Οι επίσημες εφαρμογές αναπτύσσονται από την κοινότητα ownCloud. Προσφέρουν λειτουργικότητα κοντά στο ownCloud και είναι έτοιμες για χρήση.", @@ -135,7 +139,8 @@ OC.L10N.register( "Execute one task with each page loaded" : "Εκτελεί μια διεργασία κάθε φορά που φορτώνεται μια σελίδα", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "Το cron.php είναι καταχωρημένο σε μια υπηρεσία webcron ώστε να καλεί το cron.php κάθε 15 λεπτά μέσω http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Χρησιμοποιήστε την cron υπηρεσία του συτήματος για να καλέσετε το cron.php αρχείο κάθε 15 λεπτά.", - "Enable Server-Side-Encryption" : "Ενεργοποίηση Κρυπτογράφησης από το Διακομηστή", + "Enable server-side encryption" : "Ενεργοποίηση κρυπτογράφησης από το διακομιστή", + "Start migration" : "Έναρξη μετάβασης", "This is used for sending out notifications." : "Χρησιμοποιείται για αποστολή ειδοποιήσεων.", "Send mode" : "Κατάσταση αποστολής", "Encryption" : "Κρυπτογράφηση", diff --git a/settings/l10n/el.json b/settings/l10n/el.json index 988d9277e75..79574e1ae72 100644 --- a/settings/l10n/el.json +++ b/settings/l10n/el.json @@ -2,9 +2,9 @@ "Security & setup warnings" : "Προειδοποιήσεις ασφάλειας & ρυθμίσεων", "Sharing" : "Διαμοιρασμός", "External Storage" : "Εξωτερικό Αποθηκευτικό Μέσο", - "Server Side Encryption" : "Κρυπτογράφηση από τον Διακομιστή", + "Server-side encryption" : "Κρυπτογράφηση από τον Διακομιστή", "Cron" : "Cron", - "Email Server" : "Διακομιστής Email", + "Email server" : "Διακομιστής Email", "Log" : "Καταγραφές", "Tips & tricks" : "Συμβουλές & τεχνάσματα", "Updates" : "Ενημερώσεις", @@ -26,6 +26,8 @@ "Unable to change password" : "Αδυναμία αλλαγής συνθηματικού", "Enabled" : "Ενεργοποιημένο", "Not enabled" : "Μη ενεργοποιημένο", + "A problem occurred, please check your log files (Error: %s)" : "Παρουσιάστηκε πρόβλημα, παρακαλώ ελέγξτε τα αρχεία καταγραφής σας (Σφάλμα: %s)", + "Migration Completed" : "Η μετάβαση ολοκληρώθηκε", "Group already exists." : "Η ομάδα υπάρχει ήδη.", "Unable to add group." : "Αδυναμία προσθήκης ομάδας.", "Unable to delete group." : "Αδυναμία διαγραφής ομάδας.", @@ -46,6 +48,8 @@ "Email saved" : "Το email αποθηκεύτηκε ", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Είστε πραγματικά σίγουροι ότι θέλετε να προσθέσετε το \"{domain}\" σαν αξιόπιστη περιοχή;", "Add trusted domain" : "Προσθέστε αξιόπιστη περιοχή", + "Migration in progress. Please wait until the migration is finished" : "Μετάβαση σε εξέλιξη. Παρακαλούμε περιμένετε μέχρι να ολοκληρωθεί η μετάβαση", + "Migration started …" : "Η μετάβαση ξεκίνησε ...", "Sending..." : "Αποστέλεται...", "All" : "Όλες", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Οι επίσημες εφαρμογές αναπτύσσονται από την κοινότητα ownCloud. Προσφέρουν λειτουργικότητα κοντά στο ownCloud και είναι έτοιμες για χρήση.", @@ -133,7 +137,8 @@ "Execute one task with each page loaded" : "Εκτελεί μια διεργασία κάθε φορά που φορτώνεται μια σελίδα", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "Το cron.php είναι καταχωρημένο σε μια υπηρεσία webcron ώστε να καλεί το cron.php κάθε 15 λεπτά μέσω http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Χρησιμοποιήστε την cron υπηρεσία του συτήματος για να καλέσετε το cron.php αρχείο κάθε 15 λεπτά.", - "Enable Server-Side-Encryption" : "Ενεργοποίηση Κρυπτογράφησης από το Διακομηστή", + "Enable server-side encryption" : "Ενεργοποίηση κρυπτογράφησης από το διακομιστή", + "Start migration" : "Έναρξη μετάβασης", "This is used for sending out notifications." : "Χρησιμοποιείται για αποστολή ειδοποιήσεων.", "Send mode" : "Κατάσταση αποστολής", "Encryption" : "Κρυπτογράφηση", diff --git a/settings/l10n/en_GB.js b/settings/l10n/en_GB.js index 275e545fbd7..51a134063ca 100644 --- a/settings/l10n/en_GB.js +++ b/settings/l10n/en_GB.js @@ -4,7 +4,6 @@ OC.L10N.register( "Sharing" : "Sharing", "External Storage" : "External Storage", "Cron" : "Cron", - "Email Server" : "Email Server", "Log" : "Log", "Updates" : "Updates", "Authentication error" : "Authentication error", diff --git a/settings/l10n/en_GB.json b/settings/l10n/en_GB.json index f14203d6aff..0de8369e68e 100644 --- a/settings/l10n/en_GB.json +++ b/settings/l10n/en_GB.json @@ -2,7 +2,6 @@ "Sharing" : "Sharing", "External Storage" : "External Storage", "Cron" : "Cron", - "Email Server" : "Email Server", "Log" : "Log", "Updates" : "Updates", "Authentication error" : "Authentication error", diff --git a/settings/l10n/eo.js b/settings/l10n/eo.js index 040615e9d9c..84e3585b70f 100644 --- a/settings/l10n/eo.js +++ b/settings/l10n/eo.js @@ -4,7 +4,6 @@ OC.L10N.register( "Sharing" : "Kunhavigo", "External Storage" : "Malena memorilo", "Cron" : "Cron", - "Email Server" : "Retpoŝtoservilo", "Log" : "Protokolo", "Updates" : "Ĝisdatigoj", "Authentication error" : "Aŭtentiga eraro", diff --git a/settings/l10n/eo.json b/settings/l10n/eo.json index d77c0a38894..40522fc9519 100644 --- a/settings/l10n/eo.json +++ b/settings/l10n/eo.json @@ -2,7 +2,6 @@ "Sharing" : "Kunhavigo", "External Storage" : "Malena memorilo", "Cron" : "Cron", - "Email Server" : "Retpoŝtoservilo", "Log" : "Protokolo", "Updates" : "Ĝisdatigoj", "Authentication error" : "Aŭtentiga eraro", diff --git a/settings/l10n/es.js b/settings/l10n/es.js index 5400666b2b1..dfbbcb0566e 100644 --- a/settings/l10n/es.js +++ b/settings/l10n/es.js @@ -4,9 +4,7 @@ OC.L10N.register( "Security & setup warnings" : "Avisos de seguidad y configuración", "Sharing" : "Compartiendo", "External Storage" : "Almacenamiento externo", - "Server Side Encryption" : "Cifrado en el servidor", "Cron" : "Cron", - "Email Server" : "Servidor de correo electrónico", "Log" : "Registro", "Tips & tricks" : "Sugerencias y trucos", "Updates" : "Actualizaciones", @@ -50,6 +48,9 @@ OC.L10N.register( "Add trusted domain" : "Agregar dominio de confianza", "Sending..." : "Enviando...", "All" : "Todos", + "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Aplicaciones oficiales son desarrolladas por y dentro de la comunidad ownCloud. Estas ofrecen una funcionalidad central con ownCloud y están listas para su uso en producción. ", + "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Las aplicaciones aprobadas son desarrolladas por desarrolladores de confianza y han pasado un control de seguridad superficial. Estas se mantienen activamente en un repositorio de código abierto y sus mantenedores las consideran estables para un uso normal.", + "This app is not checked for security issues and is new or known to be unstable. Install on your own risk." : "Esta aplicación no está verificada por problemas de seguridad, es nueva o conocida por ser inestable. Instálela bajo su propio riesgo.", "Please wait...." : "Espere, por favor....", "Error while disabling app" : "Error mientras se desactivaba la aplicación", "Disable" : "Desactivar", @@ -128,10 +129,10 @@ OC.L10N.register( "Last cron job execution: %s." : "Cron se ejecutó por última vez: %s", "Last cron job execution: %s. Something seems wrong." : "Cron se ejecutó por última vez: %s. Algo va mal.", "Cron was not executed yet!" : "¡Cron aún no ha sido ejecutado!", + "Open documentation" : "Documentación abierta", "Execute one task with each page loaded" : "Ejecutar una tarea con cada página cargada", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php se registra en un servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP.", "Use system's cron service to call the cron.php file every 15 minutes." : "Usar el servicio cron del sistema para llamar al archivo cron.php cada 15 minutos.", - "Enable Server-Side-Encryption" : "Habilitar cifrado en el servidor", "This is used for sending out notifications." : "Esto se usa para enviar notificaciones.", "Send mode" : "Modo de envío", "Encryption" : "Cifrado", @@ -164,6 +165,8 @@ OC.L10N.register( "Version" : "Versión", "More apps" : "Más aplicaciones", "Developer documentation" : "Documentación de desarrollador", + "Experimental applications ahead" : "Aplicaciones experimentales más adelante", + "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Las aplicaciones experimentales no están verificadas por problemas de seguridad, recientes o conocidas por ser inestables y/o bajo un fuerte desarrollo. Instalándolas pueden causar pérdida de datos o violación de seguridades.", "by" : "por", "licensed" : "licenciado", "Documentation:" : "Documentación:", @@ -175,11 +178,17 @@ OC.L10N.register( "Update to %s" : "Actualizar a %s", "Enable only for specific groups" : "Activar solamente para grupos específicos", "Uninstall App" : "Desinstalar aplicación", + "Enable experimental apps" : "Habilitar aplicaciones experimentales", "No apps found for your version" : "No se han encontrado aplicaciones para su versión", "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "¿Qué tal?,<br><br>este mensaje es para hacerle saber que ahora tiene una %s cuenta.<br><br>Su nombre de usuario: %s<br>Acceda en: <a href=\"%s\">%s</a><br><br>", "Cheers!" : "¡Saludos!", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hola, ¿qué tal?,\n\nEste mensaje es para hacerle saber que ahora tiene una cuenta %s.\n\nSu nombre de usuario: %s\nAcceda en: %s\n\n", + "User documentation" : "Documentación de usuario", + "Administrator documentation" : "Documentación del adminsitrador", + "Online documentation" : "Documentación en linea", "Forum" : "Foro", + "Issue tracker" : "Seguidor de problemas:", + "Commercial support" : "Soporte Comercial", "Get the apps to sync your files" : "Obtener las aplicaciones para sincronizar sus archivos", "Desktop client" : "Cliente de escritorio", "Android app" : "Aplicación de Android", diff --git a/settings/l10n/es.json b/settings/l10n/es.json index 7a787fa7937..7cefb5d83c4 100644 --- a/settings/l10n/es.json +++ b/settings/l10n/es.json @@ -2,9 +2,7 @@ "Security & setup warnings" : "Avisos de seguidad y configuración", "Sharing" : "Compartiendo", "External Storage" : "Almacenamiento externo", - "Server Side Encryption" : "Cifrado en el servidor", "Cron" : "Cron", - "Email Server" : "Servidor de correo electrónico", "Log" : "Registro", "Tips & tricks" : "Sugerencias y trucos", "Updates" : "Actualizaciones", @@ -48,6 +46,9 @@ "Add trusted domain" : "Agregar dominio de confianza", "Sending..." : "Enviando...", "All" : "Todos", + "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Aplicaciones oficiales son desarrolladas por y dentro de la comunidad ownCloud. Estas ofrecen una funcionalidad central con ownCloud y están listas para su uso en producción. ", + "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Las aplicaciones aprobadas son desarrolladas por desarrolladores de confianza y han pasado un control de seguridad superficial. Estas se mantienen activamente en un repositorio de código abierto y sus mantenedores las consideran estables para un uso normal.", + "This app is not checked for security issues and is new or known to be unstable. Install on your own risk." : "Esta aplicación no está verificada por problemas de seguridad, es nueva o conocida por ser inestable. Instálela bajo su propio riesgo.", "Please wait...." : "Espere, por favor....", "Error while disabling app" : "Error mientras se desactivaba la aplicación", "Disable" : "Desactivar", @@ -126,10 +127,10 @@ "Last cron job execution: %s." : "Cron se ejecutó por última vez: %s", "Last cron job execution: %s. Something seems wrong." : "Cron se ejecutó por última vez: %s. Algo va mal.", "Cron was not executed yet!" : "¡Cron aún no ha sido ejecutado!", + "Open documentation" : "Documentación abierta", "Execute one task with each page loaded" : "Ejecutar una tarea con cada página cargada", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php se registra en un servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP.", "Use system's cron service to call the cron.php file every 15 minutes." : "Usar el servicio cron del sistema para llamar al archivo cron.php cada 15 minutos.", - "Enable Server-Side-Encryption" : "Habilitar cifrado en el servidor", "This is used for sending out notifications." : "Esto se usa para enviar notificaciones.", "Send mode" : "Modo de envío", "Encryption" : "Cifrado", @@ -162,6 +163,8 @@ "Version" : "Versión", "More apps" : "Más aplicaciones", "Developer documentation" : "Documentación de desarrollador", + "Experimental applications ahead" : "Aplicaciones experimentales más adelante", + "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Las aplicaciones experimentales no están verificadas por problemas de seguridad, recientes o conocidas por ser inestables y/o bajo un fuerte desarrollo. Instalándolas pueden causar pérdida de datos o violación de seguridades.", "by" : "por", "licensed" : "licenciado", "Documentation:" : "Documentación:", @@ -173,11 +176,17 @@ "Update to %s" : "Actualizar a %s", "Enable only for specific groups" : "Activar solamente para grupos específicos", "Uninstall App" : "Desinstalar aplicación", + "Enable experimental apps" : "Habilitar aplicaciones experimentales", "No apps found for your version" : "No se han encontrado aplicaciones para su versión", "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "¿Qué tal?,<br><br>este mensaje es para hacerle saber que ahora tiene una %s cuenta.<br><br>Su nombre de usuario: %s<br>Acceda en: <a href=\"%s\">%s</a><br><br>", "Cheers!" : "¡Saludos!", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hola, ¿qué tal?,\n\nEste mensaje es para hacerle saber que ahora tiene una cuenta %s.\n\nSu nombre de usuario: %s\nAcceda en: %s\n\n", + "User documentation" : "Documentación de usuario", + "Administrator documentation" : "Documentación del adminsitrador", + "Online documentation" : "Documentación en linea", "Forum" : "Foro", + "Issue tracker" : "Seguidor de problemas:", + "Commercial support" : "Soporte Comercial", "Get the apps to sync your files" : "Obtener las aplicaciones para sincronizar sus archivos", "Desktop client" : "Cliente de escritorio", "Android app" : "Aplicación de Android", diff --git a/settings/l10n/es_AR.js b/settings/l10n/es_AR.js index fed0f97de08..abe15748f72 100644 --- a/settings/l10n/es_AR.js +++ b/settings/l10n/es_AR.js @@ -4,7 +4,6 @@ OC.L10N.register( "Sharing" : "Compartiendo", "External Storage" : "Almacenamiento externo", "Cron" : "Cron", - "Email Server" : "Servidor de correo electrónico", "Log" : "Log", "Updates" : "Actualizaciones", "Authentication error" : "Error al autenticar", diff --git a/settings/l10n/es_AR.json b/settings/l10n/es_AR.json index 24ae430aa1c..5e4f087c33b 100644 --- a/settings/l10n/es_AR.json +++ b/settings/l10n/es_AR.json @@ -2,7 +2,6 @@ "Sharing" : "Compartiendo", "External Storage" : "Almacenamiento externo", "Cron" : "Cron", - "Email Server" : "Servidor de correo electrónico", "Log" : "Log", "Updates" : "Actualizaciones", "Authentication error" : "Error al autenticar", diff --git a/settings/l10n/et_EE.js b/settings/l10n/et_EE.js index 3d9e2a942bb..6e0677337dc 100644 --- a/settings/l10n/et_EE.js +++ b/settings/l10n/et_EE.js @@ -4,7 +4,6 @@ OC.L10N.register( "Sharing" : "Jagamine", "External Storage" : "Väline salvestuskoht", "Cron" : "Cron", - "Email Server" : "Postiserver", "Log" : "Logi", "Updates" : "Uuendused", "Authentication error" : "Autentimise viga", diff --git a/settings/l10n/et_EE.json b/settings/l10n/et_EE.json index 9e3051441e8..0edc3d3b916 100644 --- a/settings/l10n/et_EE.json +++ b/settings/l10n/et_EE.json @@ -2,7 +2,6 @@ "Sharing" : "Jagamine", "External Storage" : "Väline salvestuskoht", "Cron" : "Cron", - "Email Server" : "Postiserver", "Log" : "Logi", "Updates" : "Uuendused", "Authentication error" : "Autentimise viga", diff --git a/settings/l10n/eu.js b/settings/l10n/eu.js index cb59604bf98..7f30c91fa52 100644 --- a/settings/l10n/eu.js +++ b/settings/l10n/eu.js @@ -4,7 +4,6 @@ OC.L10N.register( "Sharing" : "Partekatzea", "External Storage" : "Kanpoko biltegiratzea", "Cron" : "Cron", - "Email Server" : "Eposta zerbitzaria", "Log" : "Log", "Updates" : "Eguneraketak", "Authentication error" : "Autentifikazio errorea", diff --git a/settings/l10n/eu.json b/settings/l10n/eu.json index f9b724e36f5..5c9ce4bdf34 100644 --- a/settings/l10n/eu.json +++ b/settings/l10n/eu.json @@ -2,7 +2,6 @@ "Sharing" : "Partekatzea", "External Storage" : "Kanpoko biltegiratzea", "Cron" : "Cron", - "Email Server" : "Eposta zerbitzaria", "Log" : "Log", "Updates" : "Eguneraketak", "Authentication error" : "Autentifikazio errorea", diff --git a/settings/l10n/fa.js b/settings/l10n/fa.js index 4201415d938..ddfa303ede4 100644 --- a/settings/l10n/fa.js +++ b/settings/l10n/fa.js @@ -4,7 +4,6 @@ OC.L10N.register( "Sharing" : "اشتراک گذاری", "External Storage" : "حافظه خارجی", "Cron" : "زمانبند", - "Email Server" : "سرور ایمیل", "Log" : "کارنامه", "Updates" : "به روز رسانی ها", "Authentication error" : "خطا در اعتبار سنجی", diff --git a/settings/l10n/fa.json b/settings/l10n/fa.json index 2deb4af7f16..0a84e5b5889 100644 --- a/settings/l10n/fa.json +++ b/settings/l10n/fa.json @@ -2,7 +2,6 @@ "Sharing" : "اشتراک گذاری", "External Storage" : "حافظه خارجی", "Cron" : "زمانبند", - "Email Server" : "سرور ایمیل", "Log" : "کارنامه", "Updates" : "به روز رسانی ها", "Authentication error" : "خطا در اعتبار سنجی", diff --git a/settings/l10n/fi_FI.js b/settings/l10n/fi_FI.js index add1f61c317..4476213e711 100644 --- a/settings/l10n/fi_FI.js +++ b/settings/l10n/fi_FI.js @@ -4,9 +4,9 @@ OC.L10N.register( "Security & setup warnings" : "Turvallisuus- ja asetusvaroitukset", "Sharing" : "Jakaminen", "External Storage" : "Erillinen tallennusväline", - "Server Side Encryption" : "Palvelinpään salaus", + "Server-side encryption" : "Palvelinpään salaus", "Cron" : "Cron", - "Email Server" : "Sähköpostipalvelin", + "Email server" : "Sähköpostipalvelin", "Log" : "Loki", "Tips & tricks" : "Vinkit", "Updates" : "Päivitykset", @@ -28,6 +28,8 @@ OC.L10N.register( "Unable to change password" : "Salasanan vaihto ei onnistunut", "Enabled" : "Käytössä", "Not enabled" : "Ei käytössä", + "A problem occurred, please check your log files (Error: %s)" : "Tapahtui virhe, tarkista lokitiedostot (Virhe: %s)", + "Migration Completed" : "Migraatio valmistui", "Group already exists." : "Ryhmä on jo olemassa.", "Unable to add group." : "Ryhmän lisääminen ei onnistunut.", "Unable to delete group." : "Ryhmän poistaminen ei onnistunut.", @@ -48,6 +50,8 @@ OC.L10N.register( "Email saved" : "Sähköposti tallennettu", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Haluatko varmasti liittää kohteen \"{domain}\" luotetuksi toimialueeksi?", "Add trusted domain" : "Lisää luotettu toimialue", + "Migration in progress. Please wait until the migration is finished" : "Migraatio on kesken. Odota kunnes migraatio valmistuu", + "Migration started …" : "Migraatio käynnistyi…", "Sending..." : "Lähetetään...", "All" : "Kaikki", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Viralliset sovellukset kehitetään ownCloud-yhteisön toimesta. Sovellukset tarjoavat lisäominaisuuksia ownCloudin keskeisiin toimintoihin liittyen ja ovat valmiita tuotantokäyttöön.", @@ -129,7 +133,8 @@ OC.L10N.register( "Execute one task with each page loaded" : "Suorita yksi tehtävä jokaista ladattua sivua kohden", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php kutsuu webcron-palvelun kautta cron.php:ta 15 minuutin välein http:tä käyttäen.", "Use system's cron service to call the cron.php file every 15 minutes." : "Käytä järjestelmän cron-palvelua cron.php-tiedoston kutsumista varten 15 minuutin välein.", - "Enable Server-Side-Encryption" : "Käytä palvelinpään salausta", + "Enable server-side encryption" : "Käytä palvelinpään salausta", + "Start migration" : "Käynnistä migraatio", "This is used for sending out notifications." : "Tätä käytetään ilmoitusten lähettämiseen.", "Send mode" : "Lähetystila", "Encryption" : "Salaus", @@ -161,6 +166,7 @@ OC.L10N.register( "Version" : "Versio", "More apps" : "Lisää sovelluksia", "Developer documentation" : "Kehittäjädokumentaatio", + "Experimental applications ahead" : "Kokeellisia sovelluksia edessä", "by" : " Kirjoittaja:", "licensed" : "lisensoitu", "Documentation:" : "Ohjeistus:", diff --git a/settings/l10n/fi_FI.json b/settings/l10n/fi_FI.json index a5036d9e2ba..99cae5e8880 100644 --- a/settings/l10n/fi_FI.json +++ b/settings/l10n/fi_FI.json @@ -2,9 +2,9 @@ "Security & setup warnings" : "Turvallisuus- ja asetusvaroitukset", "Sharing" : "Jakaminen", "External Storage" : "Erillinen tallennusväline", - "Server Side Encryption" : "Palvelinpään salaus", + "Server-side encryption" : "Palvelinpään salaus", "Cron" : "Cron", - "Email Server" : "Sähköpostipalvelin", + "Email server" : "Sähköpostipalvelin", "Log" : "Loki", "Tips & tricks" : "Vinkit", "Updates" : "Päivitykset", @@ -26,6 +26,8 @@ "Unable to change password" : "Salasanan vaihto ei onnistunut", "Enabled" : "Käytössä", "Not enabled" : "Ei käytössä", + "A problem occurred, please check your log files (Error: %s)" : "Tapahtui virhe, tarkista lokitiedostot (Virhe: %s)", + "Migration Completed" : "Migraatio valmistui", "Group already exists." : "Ryhmä on jo olemassa.", "Unable to add group." : "Ryhmän lisääminen ei onnistunut.", "Unable to delete group." : "Ryhmän poistaminen ei onnistunut.", @@ -46,6 +48,8 @@ "Email saved" : "Sähköposti tallennettu", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Haluatko varmasti liittää kohteen \"{domain}\" luotetuksi toimialueeksi?", "Add trusted domain" : "Lisää luotettu toimialue", + "Migration in progress. Please wait until the migration is finished" : "Migraatio on kesken. Odota kunnes migraatio valmistuu", + "Migration started …" : "Migraatio käynnistyi…", "Sending..." : "Lähetetään...", "All" : "Kaikki", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Viralliset sovellukset kehitetään ownCloud-yhteisön toimesta. Sovellukset tarjoavat lisäominaisuuksia ownCloudin keskeisiin toimintoihin liittyen ja ovat valmiita tuotantokäyttöön.", @@ -127,7 +131,8 @@ "Execute one task with each page loaded" : "Suorita yksi tehtävä jokaista ladattua sivua kohden", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php kutsuu webcron-palvelun kautta cron.php:ta 15 minuutin välein http:tä käyttäen.", "Use system's cron service to call the cron.php file every 15 minutes." : "Käytä järjestelmän cron-palvelua cron.php-tiedoston kutsumista varten 15 minuutin välein.", - "Enable Server-Side-Encryption" : "Käytä palvelinpään salausta", + "Enable server-side encryption" : "Käytä palvelinpään salausta", + "Start migration" : "Käynnistä migraatio", "This is used for sending out notifications." : "Tätä käytetään ilmoitusten lähettämiseen.", "Send mode" : "Lähetystila", "Encryption" : "Salaus", @@ -159,6 +164,7 @@ "Version" : "Versio", "More apps" : "Lisää sovelluksia", "Developer documentation" : "Kehittäjädokumentaatio", + "Experimental applications ahead" : "Kokeellisia sovelluksia edessä", "by" : " Kirjoittaja:", "licensed" : "lisensoitu", "Documentation:" : "Ohjeistus:", diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js index 2d0b3da5480..4109a602df1 100644 --- a/settings/l10n/fr.js +++ b/settings/l10n/fr.js @@ -4,9 +4,9 @@ OC.L10N.register( "Security & setup warnings" : "Avertissements de sécurité ou de configuration", "Sharing" : "Partage", "External Storage" : "Stockage externe", - "Server Side Encryption" : "Chiffrement côté serveur", + "Server-side encryption" : "Chiffrement côté serveur", "Cron" : "Cron", - "Email Server" : "Serveur mail", + "Email server" : "Serveur mail", "Log" : "Log", "Tips & tricks" : "Trucs et astuces", "Updates" : "Mises à jour", @@ -28,6 +28,8 @@ OC.L10N.register( "Unable to change password" : "Impossible de modifier le mot de passe", "Enabled" : "Activées", "Not enabled" : "Désactivées", + "A problem occurred, please check your log files (Error: %s)" : "Une erreur est survenue, veuillez vérifier vos fichiers de log (Erreur: %s)", + "Migration Completed" : "Migration terminée", "Group already exists." : "Ce groupe existe déjà.", "Unable to add group." : "Impossible d'ajouter le groupe.", "Unable to delete group." : "Impossible de supprimer le groupe.", @@ -36,7 +38,7 @@ OC.L10N.register( "test email settings" : "tester les paramètres d'e-mail", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Une erreur est survenue lors de l'envoi de l'e-mail. Veuillez vérifier vos paramètres. (Erreur: %s)", "Email sent" : "Email envoyé", - "You need to set your user email before being able to send test emails." : "Vous devez configurer votre e-mail d'utilisateur avant de pouvoir envoyer des e-mails de test.", + "You need to set your user email before being able to send test emails." : "Vous devez spécifier votre adresse email dans les paramètres personnels avant de pouvoir envoyer des emails de test.", "Invalid mail address" : "Adresse email non valide", "A user with that name already exists." : "Un utilisateur à ce nom existe déjà.", "Unable to create user." : "Impossible de créer l'utilisateur.", @@ -48,6 +50,8 @@ OC.L10N.register( "Email saved" : "Email sauvegardé", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Êtes-vous vraiment sûr de vouloir ajouter \"{domain}\" comme domaine de confiance ?", "Add trusted domain" : "Ajouter un domaine de confiance", + "Migration in progress. Please wait until the migration is finished" : "Migration en cours. Veuillez attendre que celle-ci se termine", + "Migration started …" : "Migration démarrée...", "Sending..." : "Envoi en cours...", "All" : "Tous", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Les applications officielles sont développées par et avec la communauté ownCloud. Elles offrent ses fonctionnalités principales à ownCloud et sont prêtes pour une utilisation en production. ", @@ -61,7 +65,7 @@ OC.L10N.register( "Updating...." : "Mise à jour...", "Error while updating app" : "Erreur lors de la mise à jour de l'application", "Updated" : "Mise à jour effectuée", - "Uninstalling ...." : "Désintallation...", + "Uninstalling ...." : "Désinstallation...", "Error while uninstalling app" : "Erreur lors de la désinstallation de l'application", "Uninstall" : "Désinstaller", "Select a profile picture" : "Selectionner une photo de profil ", @@ -97,7 +101,7 @@ OC.L10N.register( "Errors and fatal issues" : "Erreurs et erreurs fatales", "Fatal issues only" : "Erreurs fatales uniquement", "None" : "Aucun", - "Login" : "Connexion", + "Login" : "Login", "Plain" : "En clair", "NT LAN Manager" : "Gestionnaire du réseau NT", "SSL" : "SSL", @@ -107,7 +111,7 @@ OC.L10N.register( "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "La raison est probablement l'utilisation d'un cache / accélérateur tel que Zend OPcache ou eAccelerator.", "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Votre serveur fonctionne actuellement sur une plateforme Microsoft Windows. Nous vous recommandons fortement d'utiliser une plateforme Linux pour une expérience utilisateur optimale.", "APCu below version 4.0.6 is installed, for stability and performance reasons we recommend to update to a newer APCu version." : "APCu est installé en version inférieure à 4.0.6. Pour des raisons de stabilité et de performances, nous recommandons de mettre à jour vers une version d'APCu plus récente.", - "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Le module PHP 'fileinfo' est manquant. Il est vivement recommandé de l'activer afin d'obtenir de meilleurs résultats pour la détection des types de fichiers.", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Le module PHP 'fileinfo' est manquant. Il est vivement recommandé de l'activer afin d'obtenir de meilleurs résultats de détection mime-type.", "System locale can not be set to a one which supports UTF-8." : "Les paramètres régionaux ne peuvent pas être configurés avec prise en charge d'UTF-8.", "This means that there might be problems with certain characters in file names." : "Cela signifie qu'il pourrait y avoir des problèmes avec certains caractères dans les noms de fichier.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Nous vous recommandons d'installer sur votre système les paquets requis à la prise en charge de l'un des paramètres régionaux suivants : %s", @@ -131,10 +135,12 @@ OC.L10N.register( "Last cron job execution: %s." : "Dernière tâche cron exécutée : %s.", "Last cron job execution: %s. Something seems wrong." : "Dernière tâche cron exécutée : %s. Quelque chose s'est mal passé.", "Cron was not executed yet!" : "Le cron n'a pas encore été exécuté !", + "Open documentation" : "Voir la documentation", "Execute one task with each page loaded" : "Exécute une tâche à chaque chargement de page", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php est enregistré auprès d'un service webcron qui l'exécutera toutes les 15 minutes via http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Utilisez le service cron du système pour appeler le fichier cron.php toutes les 15 minutes.", - "Enable Server-Side-Encryption" : "Activer le chiffrement côté serveur", + "Enable server-side encryption" : "Activer le chiffrement côté serveur", + "Start migration" : "Démarrer la migration", "This is used for sending out notifications." : "Ceci est utilisé pour l'envoi des notifications.", "Send mode" : "Mode d'envoi", "Encryption" : "Chiffrement", @@ -156,7 +162,7 @@ OC.L10N.register( "Less" : "Moins", "The logfile is bigger than 100 MB. Downloading it may take some time!" : "La taille du fichier journal excède 100 Mo. Le télécharger peut prendre un certain temps!", "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite est actuellement utilisé comme gestionnaire de base de données. Pour des installations plus volumineuses, nous vous conseillons d'utiliser un autre gestionnaire de base de données.", - "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "En particulier si vous utilisez le client de bureau pour synchroniser vos données : l'utilisation de SQLite est alors déconseillée.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "L'utilisation de SQLite est particulièrement déconseillée si vous utilisez le client de bureau pour synchroniser vos données.", "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" href=\"%s\">documentation ↗</a>." : "Pour migrer vers un autre type de base de données, utilisez la ligne de commande : 'occ db:convert-type' ou consultez la <a target=\"_blank\" href=\"%s\">documentation ↗</a>.", "How to do backups" : "Comment faire des sauvegardes", "Advanced monitoring" : "Surveillance avancée", diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json index 87fbe1f8802..0a3902925bc 100644 --- a/settings/l10n/fr.json +++ b/settings/l10n/fr.json @@ -2,9 +2,9 @@ "Security & setup warnings" : "Avertissements de sécurité ou de configuration", "Sharing" : "Partage", "External Storage" : "Stockage externe", - "Server Side Encryption" : "Chiffrement côté serveur", + "Server-side encryption" : "Chiffrement côté serveur", "Cron" : "Cron", - "Email Server" : "Serveur mail", + "Email server" : "Serveur mail", "Log" : "Log", "Tips & tricks" : "Trucs et astuces", "Updates" : "Mises à jour", @@ -26,6 +26,8 @@ "Unable to change password" : "Impossible de modifier le mot de passe", "Enabled" : "Activées", "Not enabled" : "Désactivées", + "A problem occurred, please check your log files (Error: %s)" : "Une erreur est survenue, veuillez vérifier vos fichiers de log (Erreur: %s)", + "Migration Completed" : "Migration terminée", "Group already exists." : "Ce groupe existe déjà.", "Unable to add group." : "Impossible d'ajouter le groupe.", "Unable to delete group." : "Impossible de supprimer le groupe.", @@ -34,7 +36,7 @@ "test email settings" : "tester les paramètres d'e-mail", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Une erreur est survenue lors de l'envoi de l'e-mail. Veuillez vérifier vos paramètres. (Erreur: %s)", "Email sent" : "Email envoyé", - "You need to set your user email before being able to send test emails." : "Vous devez configurer votre e-mail d'utilisateur avant de pouvoir envoyer des e-mails de test.", + "You need to set your user email before being able to send test emails." : "Vous devez spécifier votre adresse email dans les paramètres personnels avant de pouvoir envoyer des emails de test.", "Invalid mail address" : "Adresse email non valide", "A user with that name already exists." : "Un utilisateur à ce nom existe déjà.", "Unable to create user." : "Impossible de créer l'utilisateur.", @@ -46,6 +48,8 @@ "Email saved" : "Email sauvegardé", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Êtes-vous vraiment sûr de vouloir ajouter \"{domain}\" comme domaine de confiance ?", "Add trusted domain" : "Ajouter un domaine de confiance", + "Migration in progress. Please wait until the migration is finished" : "Migration en cours. Veuillez attendre que celle-ci se termine", + "Migration started …" : "Migration démarrée...", "Sending..." : "Envoi en cours...", "All" : "Tous", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Les applications officielles sont développées par et avec la communauté ownCloud. Elles offrent ses fonctionnalités principales à ownCloud et sont prêtes pour une utilisation en production. ", @@ -59,7 +63,7 @@ "Updating...." : "Mise à jour...", "Error while updating app" : "Erreur lors de la mise à jour de l'application", "Updated" : "Mise à jour effectuée", - "Uninstalling ...." : "Désintallation...", + "Uninstalling ...." : "Désinstallation...", "Error while uninstalling app" : "Erreur lors de la désinstallation de l'application", "Uninstall" : "Désinstaller", "Select a profile picture" : "Selectionner une photo de profil ", @@ -95,7 +99,7 @@ "Errors and fatal issues" : "Erreurs et erreurs fatales", "Fatal issues only" : "Erreurs fatales uniquement", "None" : "Aucun", - "Login" : "Connexion", + "Login" : "Login", "Plain" : "En clair", "NT LAN Manager" : "Gestionnaire du réseau NT", "SSL" : "SSL", @@ -105,7 +109,7 @@ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "La raison est probablement l'utilisation d'un cache / accélérateur tel que Zend OPcache ou eAccelerator.", "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Votre serveur fonctionne actuellement sur une plateforme Microsoft Windows. Nous vous recommandons fortement d'utiliser une plateforme Linux pour une expérience utilisateur optimale.", "APCu below version 4.0.6 is installed, for stability and performance reasons we recommend to update to a newer APCu version." : "APCu est installé en version inférieure à 4.0.6. Pour des raisons de stabilité et de performances, nous recommandons de mettre à jour vers une version d'APCu plus récente.", - "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Le module PHP 'fileinfo' est manquant. Il est vivement recommandé de l'activer afin d'obtenir de meilleurs résultats pour la détection des types de fichiers.", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Le module PHP 'fileinfo' est manquant. Il est vivement recommandé de l'activer afin d'obtenir de meilleurs résultats de détection mime-type.", "System locale can not be set to a one which supports UTF-8." : "Les paramètres régionaux ne peuvent pas être configurés avec prise en charge d'UTF-8.", "This means that there might be problems with certain characters in file names." : "Cela signifie qu'il pourrait y avoir des problèmes avec certains caractères dans les noms de fichier.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Nous vous recommandons d'installer sur votre système les paquets requis à la prise en charge de l'un des paramètres régionaux suivants : %s", @@ -129,10 +133,12 @@ "Last cron job execution: %s." : "Dernière tâche cron exécutée : %s.", "Last cron job execution: %s. Something seems wrong." : "Dernière tâche cron exécutée : %s. Quelque chose s'est mal passé.", "Cron was not executed yet!" : "Le cron n'a pas encore été exécuté !", + "Open documentation" : "Voir la documentation", "Execute one task with each page loaded" : "Exécute une tâche à chaque chargement de page", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php est enregistré auprès d'un service webcron qui l'exécutera toutes les 15 minutes via http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Utilisez le service cron du système pour appeler le fichier cron.php toutes les 15 minutes.", - "Enable Server-Side-Encryption" : "Activer le chiffrement côté serveur", + "Enable server-side encryption" : "Activer le chiffrement côté serveur", + "Start migration" : "Démarrer la migration", "This is used for sending out notifications." : "Ceci est utilisé pour l'envoi des notifications.", "Send mode" : "Mode d'envoi", "Encryption" : "Chiffrement", @@ -154,7 +160,7 @@ "Less" : "Moins", "The logfile is bigger than 100 MB. Downloading it may take some time!" : "La taille du fichier journal excède 100 Mo. Le télécharger peut prendre un certain temps!", "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite est actuellement utilisé comme gestionnaire de base de données. Pour des installations plus volumineuses, nous vous conseillons d'utiliser un autre gestionnaire de base de données.", - "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "En particulier si vous utilisez le client de bureau pour synchroniser vos données : l'utilisation de SQLite est alors déconseillée.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "L'utilisation de SQLite est particulièrement déconseillée si vous utilisez le client de bureau pour synchroniser vos données.", "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" href=\"%s\">documentation ↗</a>." : "Pour migrer vers un autre type de base de données, utilisez la ligne de commande : 'occ db:convert-type' ou consultez la <a target=\"_blank\" href=\"%s\">documentation ↗</a>.", "How to do backups" : "Comment faire des sauvegardes", "Advanced monitoring" : "Surveillance avancée", diff --git a/settings/l10n/gl.js b/settings/l10n/gl.js index a5243375817..c681ce9fd0c 100644 --- a/settings/l10n/gl.js +++ b/settings/l10n/gl.js @@ -4,9 +4,9 @@ OC.L10N.register( "Security & setup warnings" : "Avisos de seguridade e configuración", "Sharing" : "Compartindo", "External Storage" : "Almacenamento externo", - "Server Side Encryption" : "Cifrado na parte do servidor", + "Server-side encryption" : "Cifrado na parte do servidor", "Cron" : "Cron", - "Email Server" : "Servidor de correo", + "Email server" : "Servidor de correo", "Log" : "Rexistro", "Tips & tricks" : "Trucos e consellos", "Updates" : "Actualizacións", @@ -28,6 +28,8 @@ OC.L10N.register( "Unable to change password" : "Non é posíbel cambiar o contrasinal", "Enabled" : "Activado", "Not enabled" : "Non activado", + "A problem occurred, please check your log files (Error: %s)" : "Ocorreu un problema revise os ficheiros de rexistro (Erro: %s)", + "Migration Completed" : "Completouse a migración", "Group already exists." : "Xa existe o grupo.", "Unable to add group." : "Non é posíbel engadir o grupo.", "Unable to delete group." : "Non é posíbel eliminar o grupo.", @@ -48,6 +50,8 @@ OC.L10N.register( "Email saved" : "Correo gardado", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Confirma que quere engadir «{domain}» como dominio de confianza?", "Add trusted domain" : "Engadir dominio de confianza", + "Migration in progress. Please wait until the migration is finished" : "A migración está en proceso. Agarde a que remate.", + "Migration started …" : "Iniciada a migración ...", "Sending..." : "Enviando...", "All" : "Todo", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "As aplicacións oficiais son desenvolvidas pola comunidade dentro de ownCloud. Ofrecen una funcionalidade central para ownCloud e están preparadas para o seu uso en produción.", @@ -135,7 +139,8 @@ OC.L10N.register( "Execute one task with each page loaded" : "Executar unha tarefa con cada páxina cargada", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está rexistrado nun servizo de WebCron para chamar a cron.php cada 15 minutos a través de HTTP.", "Use system's cron service to call the cron.php file every 15 minutes." : "Use o servizo «cron» do sistema para chamar ao ficheiro cron.php cada 15 minutos.", - "Enable Server-Side-Encryption" : "Activar o cifrado na parte do servidor", + "Enable server-side encryption" : "Activar o cifrado na parte do servidor", + "Start migration" : "Iniciar a migración", "This is used for sending out notifications." : "Isto utilizase para o envío de notificacións.", "Send mode" : "Modo de envío", "Encryption" : "Cifrado", diff --git a/settings/l10n/gl.json b/settings/l10n/gl.json index c9f940e389e..91c62b05f0a 100644 --- a/settings/l10n/gl.json +++ b/settings/l10n/gl.json @@ -2,9 +2,9 @@ "Security & setup warnings" : "Avisos de seguridade e configuración", "Sharing" : "Compartindo", "External Storage" : "Almacenamento externo", - "Server Side Encryption" : "Cifrado na parte do servidor", + "Server-side encryption" : "Cifrado na parte do servidor", "Cron" : "Cron", - "Email Server" : "Servidor de correo", + "Email server" : "Servidor de correo", "Log" : "Rexistro", "Tips & tricks" : "Trucos e consellos", "Updates" : "Actualizacións", @@ -26,6 +26,8 @@ "Unable to change password" : "Non é posíbel cambiar o contrasinal", "Enabled" : "Activado", "Not enabled" : "Non activado", + "A problem occurred, please check your log files (Error: %s)" : "Ocorreu un problema revise os ficheiros de rexistro (Erro: %s)", + "Migration Completed" : "Completouse a migración", "Group already exists." : "Xa existe o grupo.", "Unable to add group." : "Non é posíbel engadir o grupo.", "Unable to delete group." : "Non é posíbel eliminar o grupo.", @@ -46,6 +48,8 @@ "Email saved" : "Correo gardado", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Confirma que quere engadir «{domain}» como dominio de confianza?", "Add trusted domain" : "Engadir dominio de confianza", + "Migration in progress. Please wait until the migration is finished" : "A migración está en proceso. Agarde a que remate.", + "Migration started …" : "Iniciada a migración ...", "Sending..." : "Enviando...", "All" : "Todo", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "As aplicacións oficiais son desenvolvidas pola comunidade dentro de ownCloud. Ofrecen una funcionalidade central para ownCloud e están preparadas para o seu uso en produción.", @@ -133,7 +137,8 @@ "Execute one task with each page loaded" : "Executar unha tarefa con cada páxina cargada", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está rexistrado nun servizo de WebCron para chamar a cron.php cada 15 minutos a través de HTTP.", "Use system's cron service to call the cron.php file every 15 minutes." : "Use o servizo «cron» do sistema para chamar ao ficheiro cron.php cada 15 minutos.", - "Enable Server-Side-Encryption" : "Activar o cifrado na parte do servidor", + "Enable server-side encryption" : "Activar o cifrado na parte do servidor", + "Start migration" : "Iniciar a migración", "This is used for sending out notifications." : "Isto utilizase para o envío de notificacións.", "Send mode" : "Modo de envío", "Encryption" : "Cifrado", diff --git a/settings/l10n/hr.js b/settings/l10n/hr.js index df3fe9cc7df..fcfd8fa63c1 100644 --- a/settings/l10n/hr.js +++ b/settings/l10n/hr.js @@ -4,7 +4,6 @@ OC.L10N.register( "Sharing" : "Dijeljenje zajedničkih resursa", "External Storage" : "Vanjsko spremište", "Cron" : "Cron", - "Email Server" : "Poslužitelj e-pošte", "Log" : "Zapisnik", "Updates" : "nadogradnje", "Authentication error" : "Pogrešna autentikacija", diff --git a/settings/l10n/hr.json b/settings/l10n/hr.json index 8029837f4ac..682ba270f68 100644 --- a/settings/l10n/hr.json +++ b/settings/l10n/hr.json @@ -2,7 +2,6 @@ "Sharing" : "Dijeljenje zajedničkih resursa", "External Storage" : "Vanjsko spremište", "Cron" : "Cron", - "Email Server" : "Poslužitelj e-pošte", "Log" : "Zapisnik", "Updates" : "nadogradnje", "Authentication error" : "Pogrešna autentikacija", diff --git a/settings/l10n/hu_HU.js b/settings/l10n/hu_HU.js index ab814016112..e408bed23e1 100644 --- a/settings/l10n/hu_HU.js +++ b/settings/l10n/hu_HU.js @@ -4,7 +4,6 @@ OC.L10N.register( "Sharing" : "Megosztás", "External Storage" : "Külső tárolási szolgáltatások becsatolása", "Cron" : "Ütemezett feladatok", - "Email Server" : "E-mail kiszolgáló", "Log" : "Naplózás", "Updates" : "Frissítések", "Authentication error" : "Azonosítási hiba", diff --git a/settings/l10n/hu_HU.json b/settings/l10n/hu_HU.json index cca98b38ae6..0ca93409f2d 100644 --- a/settings/l10n/hu_HU.json +++ b/settings/l10n/hu_HU.json @@ -2,7 +2,6 @@ "Sharing" : "Megosztás", "External Storage" : "Külső tárolási szolgáltatások becsatolása", "Cron" : "Ütemezett feladatok", - "Email Server" : "E-mail kiszolgáló", "Log" : "Naplózás", "Updates" : "Frissítések", "Authentication error" : "Azonosítási hiba", diff --git a/settings/l10n/id.js b/settings/l10n/id.js index bc675cc4627..5719ca22195 100644 --- a/settings/l10n/id.js +++ b/settings/l10n/id.js @@ -4,7 +4,6 @@ OC.L10N.register( "Sharing" : "Berbagi", "External Storage" : "Penyimpanan Eksternal", "Cron" : "Cron", - "Email Server" : "Server Email", "Log" : "Log", "Updates" : "Pembaruan", "Authentication error" : "Terjadi kesalahan saat otentikasi", diff --git a/settings/l10n/id.json b/settings/l10n/id.json index 366ab477779..c4b0c17df75 100644 --- a/settings/l10n/id.json +++ b/settings/l10n/id.json @@ -2,7 +2,6 @@ "Sharing" : "Berbagi", "External Storage" : "Penyimpanan Eksternal", "Cron" : "Cron", - "Email Server" : "Server Email", "Log" : "Log", "Updates" : "Pembaruan", "Authentication error" : "Terjadi kesalahan saat otentikasi", diff --git a/settings/l10n/it.js b/settings/l10n/it.js index 7be28b14222..117be757d98 100644 --- a/settings/l10n/it.js +++ b/settings/l10n/it.js @@ -4,9 +4,9 @@ OC.L10N.register( "Security & setup warnings" : "Avvisi di sicurezza e di configurazione", "Sharing" : "Condivisione", "External Storage" : "Archiviazione esterna", - "Server Side Encryption" : "Cifratura lato server", + "Server-side encryption" : "Cifratura lato server", "Cron" : "Cron", - "Email Server" : "Server di posta", + "Email server" : "Server di posta", "Log" : "Log", "Tips & tricks" : "Suggerimenti e trucchi", "Updates" : "Aggiornamenti", @@ -28,6 +28,8 @@ OC.L10N.register( "Unable to change password" : "Impossibile cambiare la password", "Enabled" : "Abilitata", "Not enabled" : "Non abilitata", + "A problem occurred, please check your log files (Error: %s)" : "Si è verificato un problema, controlla i tuoi file di log (Errore: %s)", + "Migration Completed" : "Migrazione completata", "Group already exists." : "Il gruppo esiste già.", "Unable to add group." : "Impossibile aggiungere il gruppo.", "Unable to delete group." : "Impossibile eliminare il gruppo.", @@ -48,6 +50,8 @@ OC.L10N.register( "Email saved" : "Email salvata", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Sei sicuro di voler aggiungere \"{domain}\" come dominio attendibile?", "Add trusted domain" : "Aggiungi dominio attendibile", + "Migration in progress. Please wait until the migration is finished" : "Migrazione in corso. Attendi fino al completamento della migrazione", + "Migration started …" : "Migrazione avviata...", "Sending..." : "Invio in corso...", "All" : "Tutti", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Le applicazioni ufficiali sono sviluppate da e con la comunità di ownCloud. Offrono le funzioni fondamentali di ownCloud e sono pronte per l'utilizzo in produzione.", @@ -135,7 +139,8 @@ OC.L10N.register( "Execute one task with each page loaded" : "Esegui un'operazione con ogni pagina caricata", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php è registrato su un servizio webcron per invocare cron.php ogni 15 minuti su http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Usa il servizio cron di sistema per invocare il file cron.php ogni 15 minuti.", - "Enable Server-Side-Encryption" : "Abilita cifratura lato server", + "Enable server-side encryption" : "Abilita cifratura lato server", + "Start migration" : "Avvia migrazione", "This is used for sending out notifications." : "Viene utilizzato per inviare le notifiche.", "Send mode" : "Modalità di invio", "Encryption" : "Cifratura", diff --git a/settings/l10n/it.json b/settings/l10n/it.json index 99aed5aefb5..c4844c17ff7 100644 --- a/settings/l10n/it.json +++ b/settings/l10n/it.json @@ -2,9 +2,9 @@ "Security & setup warnings" : "Avvisi di sicurezza e di configurazione", "Sharing" : "Condivisione", "External Storage" : "Archiviazione esterna", - "Server Side Encryption" : "Cifratura lato server", + "Server-side encryption" : "Cifratura lato server", "Cron" : "Cron", - "Email Server" : "Server di posta", + "Email server" : "Server di posta", "Log" : "Log", "Tips & tricks" : "Suggerimenti e trucchi", "Updates" : "Aggiornamenti", @@ -26,6 +26,8 @@ "Unable to change password" : "Impossibile cambiare la password", "Enabled" : "Abilitata", "Not enabled" : "Non abilitata", + "A problem occurred, please check your log files (Error: %s)" : "Si è verificato un problema, controlla i tuoi file di log (Errore: %s)", + "Migration Completed" : "Migrazione completata", "Group already exists." : "Il gruppo esiste già.", "Unable to add group." : "Impossibile aggiungere il gruppo.", "Unable to delete group." : "Impossibile eliminare il gruppo.", @@ -46,6 +48,8 @@ "Email saved" : "Email salvata", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Sei sicuro di voler aggiungere \"{domain}\" come dominio attendibile?", "Add trusted domain" : "Aggiungi dominio attendibile", + "Migration in progress. Please wait until the migration is finished" : "Migrazione in corso. Attendi fino al completamento della migrazione", + "Migration started …" : "Migrazione avviata...", "Sending..." : "Invio in corso...", "All" : "Tutti", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Le applicazioni ufficiali sono sviluppate da e con la comunità di ownCloud. Offrono le funzioni fondamentali di ownCloud e sono pronte per l'utilizzo in produzione.", @@ -133,7 +137,8 @@ "Execute one task with each page loaded" : "Esegui un'operazione con ogni pagina caricata", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php è registrato su un servizio webcron per invocare cron.php ogni 15 minuti su http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Usa il servizio cron di sistema per invocare il file cron.php ogni 15 minuti.", - "Enable Server-Side-Encryption" : "Abilita cifratura lato server", + "Enable server-side encryption" : "Abilita cifratura lato server", + "Start migration" : "Avvia migrazione", "This is used for sending out notifications." : "Viene utilizzato per inviare le notifiche.", "Send mode" : "Modalità di invio", "Encryption" : "Cifratura", diff --git a/settings/l10n/ja.js b/settings/l10n/ja.js index 04ad2ec4ff0..11862e37b66 100644 --- a/settings/l10n/ja.js +++ b/settings/l10n/ja.js @@ -4,9 +4,7 @@ OC.L10N.register( "Security & setup warnings" : "セキュリティ&セットアップ警告", "Sharing" : "共有", "External Storage" : "外部ストレージ", - "Server Side Encryption" : "サーバーサイド暗号化", "Cron" : "Cron", - "Email Server" : "メールサーバー", "Log" : "ログ", "Tips & tricks" : "Tips & tricks", "Updates" : "アップデート", @@ -129,7 +127,6 @@ OC.L10N.register( "Execute one task with each page loaded" : "各ページの読み込み時にタスクを実行します。", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.phpは、HTTP経由で15分ごとにcron.phpを実行するようwebcronサービスに登録されています。", "Use system's cron service to call the cron.php file every 15 minutes." : "システムのcronサービスを利用して、15分間隔でcron.phpファイルを実行する。", - "Enable Server-Side-Encryption" : "サーバーサイド暗号化を有効に", "This is used for sending out notifications." : "通知を送信する際に使用します。", "Send mode" : "送信モード", "Encryption" : "暗号化", diff --git a/settings/l10n/ja.json b/settings/l10n/ja.json index daa013178bd..47243d1c55b 100644 --- a/settings/l10n/ja.json +++ b/settings/l10n/ja.json @@ -2,9 +2,7 @@ "Security & setup warnings" : "セキュリティ&セットアップ警告", "Sharing" : "共有", "External Storage" : "外部ストレージ", - "Server Side Encryption" : "サーバーサイド暗号化", "Cron" : "Cron", - "Email Server" : "メールサーバー", "Log" : "ログ", "Tips & tricks" : "Tips & tricks", "Updates" : "アップデート", @@ -127,7 +125,6 @@ "Execute one task with each page loaded" : "各ページの読み込み時にタスクを実行します。", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.phpは、HTTP経由で15分ごとにcron.phpを実行するようwebcronサービスに登録されています。", "Use system's cron service to call the cron.php file every 15 minutes." : "システムのcronサービスを利用して、15分間隔でcron.phpファイルを実行する。", - "Enable Server-Side-Encryption" : "サーバーサイド暗号化を有効に", "This is used for sending out notifications." : "通知を送信する際に使用します。", "Send mode" : "送信モード", "Encryption" : "暗号化", diff --git a/settings/l10n/km.js b/settings/l10n/km.js index 71c614dcfb8..0798e7ca01c 100644 --- a/settings/l10n/km.js +++ b/settings/l10n/km.js @@ -4,7 +4,6 @@ OC.L10N.register( "Sharing" : "ការចែករំលែក", "External Storage" : "ឃ្លាំងផ្ទុកខាងក្រៅ", "Cron" : "Cron", - "Email Server" : "ម៉ាស៊ីនបម្រើអ៊ីមែល", "Log" : "Log", "Authentication error" : "កំហុសការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ", "Language changed" : "បានប្ដូរភាសា", diff --git a/settings/l10n/km.json b/settings/l10n/km.json index fab32e06e57..f8e193041cc 100644 --- a/settings/l10n/km.json +++ b/settings/l10n/km.json @@ -2,7 +2,6 @@ "Sharing" : "ការចែករំលែក", "External Storage" : "ឃ្លាំងផ្ទុកខាងក្រៅ", "Cron" : "Cron", - "Email Server" : "ម៉ាស៊ីនបម្រើអ៊ីមែល", "Log" : "Log", "Authentication error" : "កំហុសការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ", "Language changed" : "បានប្ដូរភាសា", diff --git a/settings/l10n/kn.js b/settings/l10n/kn.js index 4e739742b48..424d1493fca 100644 --- a/settings/l10n/kn.js +++ b/settings/l10n/kn.js @@ -2,7 +2,6 @@ OC.L10N.register( "settings", { "Sharing" : "ಹಂಚಿಕೆ", - "Email Server" : "ಇ-ಅಂಚೆಯ ಪರಿಚಾರಕ ಗಣಕಯಂತ್ರ", "Log" : "ಹಿನ್ನೆಲೆಯ ದಾಖಲೆ", "Authentication error" : "ದೃಢೀಕರಣ ದೋಷ", "Your full name has been changed." : "ನಿಮ್ಮ ಪೂರ್ಣ ಹೆಸರನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ.", diff --git a/settings/l10n/kn.json b/settings/l10n/kn.json index 9f50b421edf..88cfcc52c59 100644 --- a/settings/l10n/kn.json +++ b/settings/l10n/kn.json @@ -1,6 +1,5 @@ { "translations": { "Sharing" : "ಹಂಚಿಕೆ", - "Email Server" : "ಇ-ಅಂಚೆಯ ಪರಿಚಾರಕ ಗಣಕಯಂತ್ರ", "Log" : "ಹಿನ್ನೆಲೆಯ ದಾಖಲೆ", "Authentication error" : "ದೃಢೀಕರಣ ದೋಷ", "Your full name has been changed." : "ನಿಮ್ಮ ಪೂರ್ಣ ಹೆಸರನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ.", diff --git a/settings/l10n/ko.js b/settings/l10n/ko.js index fb9b25bebdc..853fa76e4b6 100644 --- a/settings/l10n/ko.js +++ b/settings/l10n/ko.js @@ -4,7 +4,6 @@ OC.L10N.register( "Sharing" : "공유", "External Storage" : "외부 저장소", "Cron" : "Cron", - "Email Server" : "전자우편 서버", "Log" : "로그", "Updates" : "업데이트", "Authentication error" : "인증 오류", @@ -115,6 +114,7 @@ OC.L10N.register( "Exclude groups from sharing" : "공유에서 그룹 제외", "These groups will still be able to receive shares, but not to initiate them." : "이 그룹의 사용자들은 다른 사용자가 공유한 파일을 받을 수는 있지만, 자기 파일을 공유할 수는 없습니다.", "Cron was not executed yet!" : "Cron이 실행되지 않았습니다!", + "Open documentation" : "문서 열기", "Execute one task with each page loaded" : "개별 페이지를 불러올 때마다 실행", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php는 webcron 서비스에 등록되어 HTTP로 15분마다 cron.php에 접근합니다.", "Use system's cron service to call the cron.php file every 15 minutes." : "시스템의 cron 서비스를 통하여 15분마다 cron.php 파일을 실행합니다.", diff --git a/settings/l10n/ko.json b/settings/l10n/ko.json index 98c612b116d..536184f0faf 100644 --- a/settings/l10n/ko.json +++ b/settings/l10n/ko.json @@ -2,7 +2,6 @@ "Sharing" : "공유", "External Storage" : "외부 저장소", "Cron" : "Cron", - "Email Server" : "전자우편 서버", "Log" : "로그", "Updates" : "업데이트", "Authentication error" : "인증 오류", @@ -113,6 +112,7 @@ "Exclude groups from sharing" : "공유에서 그룹 제외", "These groups will still be able to receive shares, but not to initiate them." : "이 그룹의 사용자들은 다른 사용자가 공유한 파일을 받을 수는 있지만, 자기 파일을 공유할 수는 없습니다.", "Cron was not executed yet!" : "Cron이 실행되지 않았습니다!", + "Open documentation" : "문서 열기", "Execute one task with each page loaded" : "개별 페이지를 불러올 때마다 실행", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php는 webcron 서비스에 등록되어 HTTP로 15분마다 cron.php에 접근합니다.", "Use system's cron service to call the cron.php file every 15 minutes." : "시스템의 cron 서비스를 통하여 15분마다 cron.php 파일을 실행합니다.", diff --git a/settings/l10n/lo.js b/settings/l10n/lo.js index 3f5ec7a0bce..862f93e195f 100644 --- a/settings/l10n/lo.js +++ b/settings/l10n/lo.js @@ -2,7 +2,6 @@ OC.L10N.register( "settings", { "Sharing" : "ການແບ່ງປັນ", - "Email Server" : "ເຊີເວີອີເມວ", "Log" : "ບັນທຶກ", "Unable to change full name" : "ບໍ່ສາມາດປ່ຽນຊື່ເຕັມໄດ້", "Couldn't remove app." : "ບໍ່ສາມາດລຶບແອັບຯອອກໄດ້" diff --git a/settings/l10n/lo.json b/settings/l10n/lo.json index e92493d0fe1..75515944189 100644 --- a/settings/l10n/lo.json +++ b/settings/l10n/lo.json @@ -1,6 +1,5 @@ { "translations": { "Sharing" : "ການແບ່ງປັນ", - "Email Server" : "ເຊີເວີອີເມວ", "Log" : "ບັນທຶກ", "Unable to change full name" : "ບໍ່ສາມາດປ່ຽນຊື່ເຕັມໄດ້", "Couldn't remove app." : "ບໍ່ສາມາດລຶບແອັບຯອອກໄດ້" diff --git a/settings/l10n/lv.js b/settings/l10n/lv.js index c0683a44fa1..dca43da8cda 100644 --- a/settings/l10n/lv.js +++ b/settings/l10n/lv.js @@ -4,7 +4,6 @@ OC.L10N.register( "Sharing" : "Dalīšanās", "External Storage" : "Ārējā krātuve", "Cron" : "Cron", - "Email Server" : "E-pasta serveris", "Log" : "Žurnāls", "Authentication error" : "Autentifikācijas kļūda", "Your full name has been changed." : "Jūsu pilnais vārds tika mainīts.", diff --git a/settings/l10n/lv.json b/settings/l10n/lv.json index 8b0ed430b9c..1b8afb4d657 100644 --- a/settings/l10n/lv.json +++ b/settings/l10n/lv.json @@ -2,7 +2,6 @@ "Sharing" : "Dalīšanās", "External Storage" : "Ārējā krātuve", "Cron" : "Cron", - "Email Server" : "E-pasta serveris", "Log" : "Žurnāls", "Authentication error" : "Autentifikācijas kļūda", "Your full name has been changed." : "Jūsu pilnais vārds tika mainīts.", diff --git a/settings/l10n/mk.js b/settings/l10n/mk.js index 4119f985b59..1ee7c5e7c1d 100644 --- a/settings/l10n/mk.js +++ b/settings/l10n/mk.js @@ -4,7 +4,6 @@ OC.L10N.register( "Sharing" : "Споделување", "External Storage" : "Надворешно складиште", "Cron" : "Крон", - "Email Server" : "Сервер за електронска пошта", "Log" : "Записник", "Authentication error" : "Грешка во автентикација", "Your full name has been changed." : "Вашето целосно име е променето.", diff --git a/settings/l10n/mk.json b/settings/l10n/mk.json index 40b8b433dea..ab2eff42d5a 100644 --- a/settings/l10n/mk.json +++ b/settings/l10n/mk.json @@ -2,7 +2,6 @@ "Sharing" : "Споделување", "External Storage" : "Надворешно складиште", "Cron" : "Крон", - "Email Server" : "Сервер за електронска пошта", "Log" : "Записник", "Authentication error" : "Грешка во автентикација", "Your full name has been changed." : "Вашето целосно име е променето.", diff --git a/settings/l10n/mn.js b/settings/l10n/mn.js index 099846ae293..30c8a71df7a 100644 --- a/settings/l10n/mn.js +++ b/settings/l10n/mn.js @@ -3,7 +3,6 @@ OC.L10N.register( { "Sharing" : "Түгээлт", "Cron" : "Крон", - "Email Server" : "И-мэйл сервер", "Log" : "Лог бичилт", "Authentication error" : "Нотолгооны алдаа", "Your full name has been changed." : "Таны бүтэн нэр солигдлоо.", diff --git a/settings/l10n/mn.json b/settings/l10n/mn.json index 7ad0993ae09..95400f3893c 100644 --- a/settings/l10n/mn.json +++ b/settings/l10n/mn.json @@ -1,7 +1,6 @@ { "translations": { "Sharing" : "Түгээлт", "Cron" : "Крон", - "Email Server" : "И-мэйл сервер", "Log" : "Лог бичилт", "Authentication error" : "Нотолгооны алдаа", "Your full name has been changed." : "Таны бүтэн нэр солигдлоо.", diff --git a/settings/l10n/nb_NO.js b/settings/l10n/nb_NO.js index 3a5ee411a43..51e7b24564b 100644 --- a/settings/l10n/nb_NO.js +++ b/settings/l10n/nb_NO.js @@ -4,9 +4,7 @@ OC.L10N.register( "Security & setup warnings" : "Advarsler om sikkerhet og oppsett", "Sharing" : "Deling", "External Storage" : "Ekstern lagring", - "Server Side Encryption" : "Serverkryptering", "Cron" : "Cron", - "Email Server" : "E-postserver", "Log" : "Logg", "Tips & tricks" : "Tips og triks", "Updates" : "Oppdateringer", @@ -131,7 +129,6 @@ OC.L10N.register( "Execute one task with each page loaded" : "Utfør en oppgave med hver side som blir lastet", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php er registrert i en webcron-tjeneste for å kalle cron.php hvert 15. minutt over http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Bruk systemets cron-tjeneste til å kalle cron.php hvert 15. minutt.", - "Enable Server-Side-Encryption" : "Slå på serverkryptering", "This is used for sending out notifications." : "Dette brukes for utsending av varsler.", "Send mode" : "Sendemåte", "Encryption" : "Kryptering", diff --git a/settings/l10n/nb_NO.json b/settings/l10n/nb_NO.json index 6e5a29f8cd4..db720d1a9e8 100644 --- a/settings/l10n/nb_NO.json +++ b/settings/l10n/nb_NO.json @@ -2,9 +2,7 @@ "Security & setup warnings" : "Advarsler om sikkerhet og oppsett", "Sharing" : "Deling", "External Storage" : "Ekstern lagring", - "Server Side Encryption" : "Serverkryptering", "Cron" : "Cron", - "Email Server" : "E-postserver", "Log" : "Logg", "Tips & tricks" : "Tips og triks", "Updates" : "Oppdateringer", @@ -129,7 +127,6 @@ "Execute one task with each page loaded" : "Utfør en oppgave med hver side som blir lastet", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php er registrert i en webcron-tjeneste for å kalle cron.php hvert 15. minutt over http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Bruk systemets cron-tjeneste til å kalle cron.php hvert 15. minutt.", - "Enable Server-Side-Encryption" : "Slå på serverkryptering", "This is used for sending out notifications." : "Dette brukes for utsending av varsler.", "Send mode" : "Sendemåte", "Encryption" : "Kryptering", diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js index 80389ed6d80..d4c532575c5 100644 --- a/settings/l10n/nl.js +++ b/settings/l10n/nl.js @@ -4,9 +4,9 @@ OC.L10N.register( "Security & setup warnings" : "Beveiligings- en instellingswaarschuwingen", "Sharing" : "Delen", "External Storage" : "Externe opslag", - "Server Side Encryption" : "Server-side versleuteling", + "Server-side encryption" : "Server-side versleuteling", "Cron" : "Cron", - "Email Server" : "E-mailserver", + "Email server" : "E-mailserver", "Log" : "Log", "Tips & tricks" : "Tips & trucs", "Updates" : "Updates", @@ -28,6 +28,8 @@ OC.L10N.register( "Unable to change password" : "Kan wachtwoord niet wijzigen", "Enabled" : "Geactiveerd", "Not enabled" : "Niet ingeschakeld", + "A problem occurred, please check your log files (Error: %s)" : "Er trad een een probleem op, controleer uw logbestanden (Fout: %s).", + "Migration Completed" : "Migratie gereed", "Group already exists." : "Groep bestaat al.", "Unable to add group." : "Kan groep niet toevoegen.", "Unable to delete group." : "Kan groep niet verwijderen.", @@ -48,6 +50,8 @@ OC.L10N.register( "Email saved" : "E-mail bewaard", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Weet u zeker dat u \"{domain}\" als een vertrouwd domein wilt toevoegen?", "Add trusted domain" : "Vertrouwd domein toevoegen", + "Migration in progress. Please wait until the migration is finished" : "Migratie bezig. Wacht tot het proces klaar is.", + "Migration started …" : "Migratie gestart...", "Sending..." : "Versturen...", "All" : "Alle", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Officiële apps zijn ontwikkeld door en binnen de ownCloud community. Ze bieden functionaliteit binnen ownCloud en zijn klaar voor gebruik in een productie omgeving.", @@ -135,7 +139,8 @@ OC.L10N.register( "Execute one task with each page loaded" : "Bij laden van elke pagina één taak uitvoeren", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php is geregisteerd bij een webcron service om elke 15 minuten cron.php over http aan te roepen.", "Use system's cron service to call the cron.php file every 15 minutes." : "Gebruik de systeem cron service om cron.php elke 15 minuten aan te roepen.", - "Enable Server-Side-Encryption" : "Inschakelen server-side versleuteling", + "Enable server-side encryption" : "Server-side versleuteling inschakelen", + "Start migration" : "Start migratie", "This is used for sending out notifications." : "Dit wordt gebruikt voor het verzenden van meldingen.", "Send mode" : "Verstuurmodus", "Encryption" : "Versleuteling", diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json index 80a6f944a3f..358740613b9 100644 --- a/settings/l10n/nl.json +++ b/settings/l10n/nl.json @@ -2,9 +2,9 @@ "Security & setup warnings" : "Beveiligings- en instellingswaarschuwingen", "Sharing" : "Delen", "External Storage" : "Externe opslag", - "Server Side Encryption" : "Server-side versleuteling", + "Server-side encryption" : "Server-side versleuteling", "Cron" : "Cron", - "Email Server" : "E-mailserver", + "Email server" : "E-mailserver", "Log" : "Log", "Tips & tricks" : "Tips & trucs", "Updates" : "Updates", @@ -26,6 +26,8 @@ "Unable to change password" : "Kan wachtwoord niet wijzigen", "Enabled" : "Geactiveerd", "Not enabled" : "Niet ingeschakeld", + "A problem occurred, please check your log files (Error: %s)" : "Er trad een een probleem op, controleer uw logbestanden (Fout: %s).", + "Migration Completed" : "Migratie gereed", "Group already exists." : "Groep bestaat al.", "Unable to add group." : "Kan groep niet toevoegen.", "Unable to delete group." : "Kan groep niet verwijderen.", @@ -46,6 +48,8 @@ "Email saved" : "E-mail bewaard", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Weet u zeker dat u \"{domain}\" als een vertrouwd domein wilt toevoegen?", "Add trusted domain" : "Vertrouwd domein toevoegen", + "Migration in progress. Please wait until the migration is finished" : "Migratie bezig. Wacht tot het proces klaar is.", + "Migration started …" : "Migratie gestart...", "Sending..." : "Versturen...", "All" : "Alle", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Officiële apps zijn ontwikkeld door en binnen de ownCloud community. Ze bieden functionaliteit binnen ownCloud en zijn klaar voor gebruik in een productie omgeving.", @@ -133,7 +137,8 @@ "Execute one task with each page loaded" : "Bij laden van elke pagina één taak uitvoeren", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php is geregisteerd bij een webcron service om elke 15 minuten cron.php over http aan te roepen.", "Use system's cron service to call the cron.php file every 15 minutes." : "Gebruik de systeem cron service om cron.php elke 15 minuten aan te roepen.", - "Enable Server-Side-Encryption" : "Inschakelen server-side versleuteling", + "Enable server-side encryption" : "Server-side versleuteling inschakelen", + "Start migration" : "Start migratie", "This is used for sending out notifications." : "Dit wordt gebruikt voor het verzenden van meldingen.", "Send mode" : "Verstuurmodus", "Encryption" : "Versleuteling", diff --git a/settings/l10n/pl.js b/settings/l10n/pl.js index 6f484bac110..924856fe64f 100644 --- a/settings/l10n/pl.js +++ b/settings/l10n/pl.js @@ -1,10 +1,10 @@ OC.L10N.register( "settings", { + "Security & setup warnings" : "Ostrzeżenia bezpieczeństwa i konfiguracji", "Sharing" : "Udostępnianie", "External Storage" : "Zewnętrzna zasoby dyskowe", "Cron" : "Cron", - "Email Server" : "Serwer pocztowy", "Log" : "Logi", "Updates" : "Aktualizacje", "Authentication error" : "Błąd uwierzytelniania", @@ -112,6 +112,7 @@ OC.L10N.register( "Exclude groups from sharing" : "Wyklucz grupy z udostępniania", "These groups will still be able to receive shares, but not to initiate them." : "Grupy te nadal będą mogli otrzymywać udostępnione udziały, ale nie do ich inicjowania.", "Cron was not executed yet!" : "Cron nie został jeszcze uruchomiony!", + "Open documentation" : "Otwórz dokumentację", "Execute one task with each page loaded" : "Wykonuj jedno zadanie wraz z każdą wczytaną stroną", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php jest zarejestrowany w serwisie webcron do uruchamiania cron.php raz na 15 minut przez http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Użyj systemowej usługi cron do wywoływania cron.php co 15 minut.", @@ -134,21 +135,31 @@ OC.L10N.register( "Download logfile" : "Pobierz plik log", "More" : "Więcej", "Less" : "Mniej", + "The logfile is bigger than 100 MB. Downloading it may take some time!" : "Plik log jest większy niż 100MB. Ściąganie może trochę potrwać!", "Version" : "Wersja", "More apps" : "Więcej aplikacji", + "Developer documentation" : "Dokumentacja dewelopera", "by" : "przez", "licensed" : "Licencja", "Documentation:" : "Dokumentacja:", "User Documentation" : "Dokumentacja użytkownika", "Admin Documentation" : "Dokumentacja Administratora", + "Show description …" : "Pokaż opis ...", + "Hide description …" : "Ukryj opis ...", "This app cannot be installed because the following dependencies are not fulfilled:" : "Ta aplikacja nie może być zainstalowana, ponieważ nie są spełnione następujące zależności:", "Update to %s" : "Uaktualnij do %s", "Enable only for specific groups" : "Włącz tylko dla określonych grup", "Uninstall App" : "Odinstaluj aplikację", + "Enable experimental apps" : "Włącz eksperymentalne aplikacje", + "No apps found for your version" : "Nie znaleziono aplikacji dla twojej wersji", "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Witaj,<br><br>informujemy, że teraz masz konto na %s .<br><br>Twoja nazwa użytkownika: %s<br>Dostęp pod adresem: <a href=\"%s\">%s</a><br><br>", "Cheers!" : "Pozdrawiam!", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Witaj,\n\ninformujemy, że teraz masz konto na %s .\n\nTwoja nazwa użytkownika:: %s\nDostęp pod adresem: %s\n\n", + "User documentation" : "Dokumentacja użytkownika", + "Administrator documentation" : "Dokumentacja Administratora", + "Online documentation" : "Dokumentacja Online", "Forum" : "Forum", + "Commercial support" : "Wsparcie komercyjne", "Get the apps to sync your files" : "Pobierz aplikacje żeby synchronizować swoje pliki", "Desktop client" : "Klient na komputer", "Android app" : "Aplikacja Android", @@ -160,6 +171,7 @@ OC.L10N.register( "Current password" : "Bieżące hasło", "New password" : "Nowe hasło", "Change password" : "Zmień hasło", + "Full name" : "Pełna nazwa", "No display name set" : "Brak nazwa wyświetlanej", "Email" : "Email", "Your email address" : "Twój adres e-mail", @@ -179,6 +191,7 @@ OC.L10N.register( "Valid until" : "Ważny do", "Issued By" : "Wydany przez", "Valid until %s" : "Ważny do %s", + "Import root certificate" : "Importuj główny certyfikat", "Show storage location" : "Pokaż miejsce przechowywania", "Show last log in" : "Pokaż ostatni login", "Send email to new user" : "Wyślij email do nowego użytkownika", diff --git a/settings/l10n/pl.json b/settings/l10n/pl.json index 7671b69af61..1e4a1054f31 100644 --- a/settings/l10n/pl.json +++ b/settings/l10n/pl.json @@ -1,8 +1,8 @@ { "translations": { + "Security & setup warnings" : "Ostrzeżenia bezpieczeństwa i konfiguracji", "Sharing" : "Udostępnianie", "External Storage" : "Zewnętrzna zasoby dyskowe", "Cron" : "Cron", - "Email Server" : "Serwer pocztowy", "Log" : "Logi", "Updates" : "Aktualizacje", "Authentication error" : "Błąd uwierzytelniania", @@ -110,6 +110,7 @@ "Exclude groups from sharing" : "Wyklucz grupy z udostępniania", "These groups will still be able to receive shares, but not to initiate them." : "Grupy te nadal będą mogli otrzymywać udostępnione udziały, ale nie do ich inicjowania.", "Cron was not executed yet!" : "Cron nie został jeszcze uruchomiony!", + "Open documentation" : "Otwórz dokumentację", "Execute one task with each page loaded" : "Wykonuj jedno zadanie wraz z każdą wczytaną stroną", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php jest zarejestrowany w serwisie webcron do uruchamiania cron.php raz na 15 minut przez http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Użyj systemowej usługi cron do wywoływania cron.php co 15 minut.", @@ -132,21 +133,31 @@ "Download logfile" : "Pobierz plik log", "More" : "Więcej", "Less" : "Mniej", + "The logfile is bigger than 100 MB. Downloading it may take some time!" : "Plik log jest większy niż 100MB. Ściąganie może trochę potrwać!", "Version" : "Wersja", "More apps" : "Więcej aplikacji", + "Developer documentation" : "Dokumentacja dewelopera", "by" : "przez", "licensed" : "Licencja", "Documentation:" : "Dokumentacja:", "User Documentation" : "Dokumentacja użytkownika", "Admin Documentation" : "Dokumentacja Administratora", + "Show description …" : "Pokaż opis ...", + "Hide description …" : "Ukryj opis ...", "This app cannot be installed because the following dependencies are not fulfilled:" : "Ta aplikacja nie może być zainstalowana, ponieważ nie są spełnione następujące zależności:", "Update to %s" : "Uaktualnij do %s", "Enable only for specific groups" : "Włącz tylko dla określonych grup", "Uninstall App" : "Odinstaluj aplikację", + "Enable experimental apps" : "Włącz eksperymentalne aplikacje", + "No apps found for your version" : "Nie znaleziono aplikacji dla twojej wersji", "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Witaj,<br><br>informujemy, że teraz masz konto na %s .<br><br>Twoja nazwa użytkownika: %s<br>Dostęp pod adresem: <a href=\"%s\">%s</a><br><br>", "Cheers!" : "Pozdrawiam!", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Witaj,\n\ninformujemy, że teraz masz konto na %s .\n\nTwoja nazwa użytkownika:: %s\nDostęp pod adresem: %s\n\n", + "User documentation" : "Dokumentacja użytkownika", + "Administrator documentation" : "Dokumentacja Administratora", + "Online documentation" : "Dokumentacja Online", "Forum" : "Forum", + "Commercial support" : "Wsparcie komercyjne", "Get the apps to sync your files" : "Pobierz aplikacje żeby synchronizować swoje pliki", "Desktop client" : "Klient na komputer", "Android app" : "Aplikacja Android", @@ -158,6 +169,7 @@ "Current password" : "Bieżące hasło", "New password" : "Nowe hasło", "Change password" : "Zmień hasło", + "Full name" : "Pełna nazwa", "No display name set" : "Brak nazwa wyświetlanej", "Email" : "Email", "Your email address" : "Twój adres e-mail", @@ -177,6 +189,7 @@ "Valid until" : "Ważny do", "Issued By" : "Wydany przez", "Valid until %s" : "Ważny do %s", + "Import root certificate" : "Importuj główny certyfikat", "Show storage location" : "Pokaż miejsce przechowywania", "Show last log in" : "Pokaż ostatni login", "Send email to new user" : "Wyślij email do nowego użytkownika", diff --git a/settings/l10n/pt_BR.js b/settings/l10n/pt_BR.js index 20e1697930a..aaecb907769 100644 --- a/settings/l10n/pt_BR.js +++ b/settings/l10n/pt_BR.js @@ -4,9 +4,7 @@ OC.L10N.register( "Security & setup warnings" : "Segurança & avisos de configuração", "Sharing" : "Compartilhamento", "External Storage" : "Armazenamento Externo", - "Server Side Encryption" : "Criptografia do Lado do Servidor", "Cron" : "Cron", - "Email Server" : "Servidor de Email", "Log" : "Registro", "Tips & tricks" : "Dicas & Truques", "Updates" : "Atualizações", @@ -28,6 +26,8 @@ OC.L10N.register( "Unable to change password" : "Impossível modificar senha", "Enabled" : "Habilitado", "Not enabled" : "Desabilitado", + "A problem occurred, please check your log files (Error: %s)" : "Ocorreu um problema enquanto verificava seus arquivos de log (Erro: %s)", + "Migration Completed" : "Migração Concluida", "Group already exists." : "O Grupo já existe.", "Unable to add group." : "Não é possível adicionar grupo.", "Unable to delete group." : "Não é possível excluir grupo.", @@ -48,6 +48,8 @@ OC.L10N.register( "Email saved" : "E-mail salvo", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Você tem certeza que você quer adicionar \"{domain}\" como domínio confiável?", "Add trusted domain" : "Adicionar domínio confiável", + "Migration in progress. Please wait until the migration is finished" : "Migração em progresso. Por favor aguarde até que a migração seja finalizada", + "Migration started …" : "Migração iniciada ...", "Sending..." : "Enviando...", "All" : "Todos", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Aplicativos oficiais são desenvolvidos por e dentro da comunidade ownCloud. Eles oferecem funcionalidade central para ownCloud e estão prontos para uso em produção.", @@ -135,7 +137,7 @@ OC.L10N.register( "Execute one task with each page loaded" : "Execute uma tarefa com cada página carregada", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registrado no serviço webcron para chamar cron.php a cada 15 minutos sobre http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Usar o serviço cron do sistema para chamar o arquivo cron.php cada 15 minutos.", - "Enable Server-Side-Encryption" : "Habilitar a Criptografia do Lado do Servidor", + "Start migration" : "Iniciar migração", "This is used for sending out notifications." : "Isto é usado para o envio de notificações.", "Send mode" : "Modo enviar", "Encryption" : "Criptografia", diff --git a/settings/l10n/pt_BR.json b/settings/l10n/pt_BR.json index d76516f2ac0..88132b7b0f5 100644 --- a/settings/l10n/pt_BR.json +++ b/settings/l10n/pt_BR.json @@ -2,9 +2,7 @@ "Security & setup warnings" : "Segurança & avisos de configuração", "Sharing" : "Compartilhamento", "External Storage" : "Armazenamento Externo", - "Server Side Encryption" : "Criptografia do Lado do Servidor", "Cron" : "Cron", - "Email Server" : "Servidor de Email", "Log" : "Registro", "Tips & tricks" : "Dicas & Truques", "Updates" : "Atualizações", @@ -26,6 +24,8 @@ "Unable to change password" : "Impossível modificar senha", "Enabled" : "Habilitado", "Not enabled" : "Desabilitado", + "A problem occurred, please check your log files (Error: %s)" : "Ocorreu um problema enquanto verificava seus arquivos de log (Erro: %s)", + "Migration Completed" : "Migração Concluida", "Group already exists." : "O Grupo já existe.", "Unable to add group." : "Não é possível adicionar grupo.", "Unable to delete group." : "Não é possível excluir grupo.", @@ -46,6 +46,8 @@ "Email saved" : "E-mail salvo", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Você tem certeza que você quer adicionar \"{domain}\" como domínio confiável?", "Add trusted domain" : "Adicionar domínio confiável", + "Migration in progress. Please wait until the migration is finished" : "Migração em progresso. Por favor aguarde até que a migração seja finalizada", + "Migration started …" : "Migração iniciada ...", "Sending..." : "Enviando...", "All" : "Todos", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Aplicativos oficiais são desenvolvidos por e dentro da comunidade ownCloud. Eles oferecem funcionalidade central para ownCloud e estão prontos para uso em produção.", @@ -133,7 +135,7 @@ "Execute one task with each page loaded" : "Execute uma tarefa com cada página carregada", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registrado no serviço webcron para chamar cron.php a cada 15 minutos sobre http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Usar o serviço cron do sistema para chamar o arquivo cron.php cada 15 minutos.", - "Enable Server-Side-Encryption" : "Habilitar a Criptografia do Lado do Servidor", + "Start migration" : "Iniciar migração", "This is used for sending out notifications." : "Isto é usado para o envio de notificações.", "Send mode" : "Modo enviar", "Encryption" : "Criptografia", diff --git a/settings/l10n/pt_PT.js b/settings/l10n/pt_PT.js index 73563e8b35d..44706a6f4df 100644 --- a/settings/l10n/pt_PT.js +++ b/settings/l10n/pt_PT.js @@ -4,9 +4,7 @@ OC.L10N.register( "Security & setup warnings" : "Avisos de configuração e segurança", "Sharing" : "Partilha", "External Storage" : "Armazenamento Externo", - "Server Side Encryption" : "Encriptação do lado do Servidor", "Cron" : "Cron", - "Email Server" : "Servidor de e-mail", "Log" : "Registo", "Tips & tricks" : "Dicas e truqes", "Updates" : "Atualizações", @@ -28,6 +26,8 @@ OC.L10N.register( "Unable to change password" : "Não foi possível alterar a sua palavra-passe ", "Enabled" : "Ativada", "Not enabled" : "Desativada", + "A problem occurred, please check your log files (Error: %s)" : "Ocorreu um problema, por favor, verifique os ficheiros de registo (Erro: %s)", + "Migration Completed" : "Migração Concluída", "Group already exists." : "O grupo já existe.", "Unable to add group." : "Impossível acrescentar o grupo.", "Unable to delete group." : "Impossível apagar grupo.", @@ -48,8 +48,11 @@ OC.L10N.register( "Email saved" : "E-mail guardado", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Você tem certeza que quer adicionar \"{domain}\" como domínio confiável?", "Add trusted domain" : "Adicionar domínio confiável ", + "Migration in progress. Please wait until the migration is finished" : "Migração em progresso. Por favor, aguarde até que a mesma esteja concluída..", + "Migration started …" : "Migração iniciada...", "Sending..." : "A enviar...", "All" : "Todos", + "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "As apps oficiais são desenvolvidas por e na comunidade da ownCloud. Elas oferecem funcionalidade central para a ownCloud e está pronta para uma utilização na produção.", "Please wait...." : "Por favor, aguarde...", "Error while disabling app" : "Ocorreu um erro enquanto desativava a app", "Disable" : "Desativar", @@ -128,10 +131,11 @@ OC.L10N.register( "Last cron job execution: %s." : "Última execução de cron job: %s.", "Last cron job execution: %s. Something seems wrong." : "Última execução de cron job: %s. Algo está errado.", "Cron was not executed yet!" : "Cron ainda não foi executado!", + "Open documentation" : "Abrir documentação", "Execute one task with each page loaded" : "Executar uma tarefa com cada página carregada", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registado num serviço webcron para chamar a página cron.php por http a cada 15 minutos.", "Use system's cron service to call the cron.php file every 15 minutes." : "Usar o serviço sistema cron para ligar o ficheiro cron.php a cada 15 minutos.", - "Enable Server-Side-Encryption" : "Ativar encriptação do lado do servidor", + "Start migration" : "Iniciar migração", "This is used for sending out notifications." : "Isto é utilizado para enviar notificações", "Send mode" : "Modo de Envio", "Encryption" : "Encriptação", @@ -164,6 +168,8 @@ OC.L10N.register( "Version" : "Versão", "More apps" : "Mais aplicações", "Developer documentation" : "Documentação de Programador", + "Experimental applications ahead" : "Aplicações experimentais de futuro", + "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "As apps experimentais não estão selecionadas para problemas de segurança, nova ou conhecida como instável e em forte desenvolvimento. Ao instalá-las pode causar a perda de dados ou quebra de segurança.", "by" : "por", "licensed" : "licenciado", "Documentation:" : "Documentação:", @@ -175,6 +181,7 @@ OC.L10N.register( "Update to %s" : "Actualizar para %s", "Enable only for specific groups" : "Activar só para grupos específicos", "Uninstall App" : "Desinstalar aplicação", + "Enable experimental apps" : "Ativar apps experimentais", "No apps found for your version" : "Nenhuma aplicação encontrada para a sua versão", "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Olá,<br><br>apenas para informar que você tem uma conta %s.<br><br>O seu nome de utilizador: %s<br>Acesse à sua conta: <a href=\"%s\">%s</a><br><br>", "Cheers!" : "Parabéns!", @@ -183,6 +190,7 @@ OC.L10N.register( "Administrator documentation" : "Documentação de Administrador.", "Online documentation" : "Documentação Online", "Forum" : "Fórum", + "Issue tracker" : "Pesquisador de problemad", "Commercial support" : "Suporte Comercial", "Get the apps to sync your files" : "Obtenha as aplicações para sincronizar os seus ficheiros", "Desktop client" : "Cliente Desktop", diff --git a/settings/l10n/pt_PT.json b/settings/l10n/pt_PT.json index 438de6006f0..3b116ebfd38 100644 --- a/settings/l10n/pt_PT.json +++ b/settings/l10n/pt_PT.json @@ -2,9 +2,7 @@ "Security & setup warnings" : "Avisos de configuração e segurança", "Sharing" : "Partilha", "External Storage" : "Armazenamento Externo", - "Server Side Encryption" : "Encriptação do lado do Servidor", "Cron" : "Cron", - "Email Server" : "Servidor de e-mail", "Log" : "Registo", "Tips & tricks" : "Dicas e truqes", "Updates" : "Atualizações", @@ -26,6 +24,8 @@ "Unable to change password" : "Não foi possível alterar a sua palavra-passe ", "Enabled" : "Ativada", "Not enabled" : "Desativada", + "A problem occurred, please check your log files (Error: %s)" : "Ocorreu um problema, por favor, verifique os ficheiros de registo (Erro: %s)", + "Migration Completed" : "Migração Concluída", "Group already exists." : "O grupo já existe.", "Unable to add group." : "Impossível acrescentar o grupo.", "Unable to delete group." : "Impossível apagar grupo.", @@ -46,8 +46,11 @@ "Email saved" : "E-mail guardado", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Você tem certeza que quer adicionar \"{domain}\" como domínio confiável?", "Add trusted domain" : "Adicionar domínio confiável ", + "Migration in progress. Please wait until the migration is finished" : "Migração em progresso. Por favor, aguarde até que a mesma esteja concluída..", + "Migration started …" : "Migração iniciada...", "Sending..." : "A enviar...", "All" : "Todos", + "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "As apps oficiais são desenvolvidas por e na comunidade da ownCloud. Elas oferecem funcionalidade central para a ownCloud e está pronta para uma utilização na produção.", "Please wait...." : "Por favor, aguarde...", "Error while disabling app" : "Ocorreu um erro enquanto desativava a app", "Disable" : "Desativar", @@ -126,10 +129,11 @@ "Last cron job execution: %s." : "Última execução de cron job: %s.", "Last cron job execution: %s. Something seems wrong." : "Última execução de cron job: %s. Algo está errado.", "Cron was not executed yet!" : "Cron ainda não foi executado!", + "Open documentation" : "Abrir documentação", "Execute one task with each page loaded" : "Executar uma tarefa com cada página carregada", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registado num serviço webcron para chamar a página cron.php por http a cada 15 minutos.", "Use system's cron service to call the cron.php file every 15 minutes." : "Usar o serviço sistema cron para ligar o ficheiro cron.php a cada 15 minutos.", - "Enable Server-Side-Encryption" : "Ativar encriptação do lado do servidor", + "Start migration" : "Iniciar migração", "This is used for sending out notifications." : "Isto é utilizado para enviar notificações", "Send mode" : "Modo de Envio", "Encryption" : "Encriptação", @@ -162,6 +166,8 @@ "Version" : "Versão", "More apps" : "Mais aplicações", "Developer documentation" : "Documentação de Programador", + "Experimental applications ahead" : "Aplicações experimentais de futuro", + "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "As apps experimentais não estão selecionadas para problemas de segurança, nova ou conhecida como instável e em forte desenvolvimento. Ao instalá-las pode causar a perda de dados ou quebra de segurança.", "by" : "por", "licensed" : "licenciado", "Documentation:" : "Documentação:", @@ -173,6 +179,7 @@ "Update to %s" : "Actualizar para %s", "Enable only for specific groups" : "Activar só para grupos específicos", "Uninstall App" : "Desinstalar aplicação", + "Enable experimental apps" : "Ativar apps experimentais", "No apps found for your version" : "Nenhuma aplicação encontrada para a sua versão", "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Olá,<br><br>apenas para informar que você tem uma conta %s.<br><br>O seu nome de utilizador: %s<br>Acesse à sua conta: <a href=\"%s\">%s</a><br><br>", "Cheers!" : "Parabéns!", @@ -181,6 +188,7 @@ "Administrator documentation" : "Documentação de Administrador.", "Online documentation" : "Documentação Online", "Forum" : "Fórum", + "Issue tracker" : "Pesquisador de problemad", "Commercial support" : "Suporte Comercial", "Get the apps to sync your files" : "Obtenha as aplicações para sincronizar os seus ficheiros", "Desktop client" : "Cliente Desktop", diff --git a/settings/l10n/ro.js b/settings/l10n/ro.js index 8b7f63c7197..3c51bba6cd3 100644 --- a/settings/l10n/ro.js +++ b/settings/l10n/ro.js @@ -1,10 +1,13 @@ OC.L10N.register( "settings", { + "Security & setup warnings" : "Alerte de securitate & configurare", "Sharing" : "Partajare", "External Storage" : "Stocare externă", "Cron" : "Cron", "Log" : "Jurnal de activitate", + "Tips & tricks" : "Tips & tricks", + "Updates" : "Actualizări", "Authentication error" : "Eroare la autentificare", "Your full name has been changed." : "Numele tău complet a fost schimbat.", "Unable to change full name" : "Nu s-a puput schimba numele complet", @@ -24,6 +27,11 @@ OC.L10N.register( "Saved" : "Salvat", "test email settings" : "verifică setările de e-mail", "Email sent" : "Mesajul a fost expediat", + "Invalid mail address" : "Adresa mail invalidă", + "Unable to create user." : "Imposibil de creat utilizatorul", + "Your %s account was created" : "Contul tău %s a fost creat", + "Unable to delete user." : "Imposibil de șters utilizatorul.", + "Forbidden" : "Interzis", "Invalid user" : "Utilizator nevalid", "Email saved" : "E-mail salvat", "Sending..." : "Se expediază...", @@ -61,6 +69,7 @@ OC.L10N.register( "Allow apps to use the Share API" : "Permite aplicațiilor să folosească API-ul de partajare", "Allow public uploads" : "Permite încărcări publice", "Allow users to send mail notification for shared files" : "Permite utilizatorilor sa expedieze notificări prin e-mail pentru dosarele comune", + "days" : "zile", "Allow resharing" : "Permite repartajarea", "Execute one task with each page loaded" : "Execută o sarcină la fiecare pagină încărcată", "Send mode" : "Modul de expediere", @@ -81,6 +90,9 @@ OC.L10N.register( "User Documentation" : "Documentație utilizator", "Forum" : "Forum", "Get the apps to sync your files" : "Ia acum aplicatia pentru sincronizarea fisierelor ", + "Desktop client" : "Client Desktop", + "Android app" : "Aplicatie Android", + "iOS app" : "Aplicație iOS", "You have used <strong>%s</strong> of the available <strong>%s</strong>" : "Ați utilizat <strong>%s</strong> din <strong>%s</strong> disponibile", "Password" : "Parolă", "Unable to change your password" : "Imposibil de-ați schimbat parola", diff --git a/settings/l10n/ro.json b/settings/l10n/ro.json index cdbe2ed734a..51e5d01f190 100644 --- a/settings/l10n/ro.json +++ b/settings/l10n/ro.json @@ -1,8 +1,11 @@ { "translations": { + "Security & setup warnings" : "Alerte de securitate & configurare", "Sharing" : "Partajare", "External Storage" : "Stocare externă", "Cron" : "Cron", "Log" : "Jurnal de activitate", + "Tips & tricks" : "Tips & tricks", + "Updates" : "Actualizări", "Authentication error" : "Eroare la autentificare", "Your full name has been changed." : "Numele tău complet a fost schimbat.", "Unable to change full name" : "Nu s-a puput schimba numele complet", @@ -22,6 +25,11 @@ "Saved" : "Salvat", "test email settings" : "verifică setările de e-mail", "Email sent" : "Mesajul a fost expediat", + "Invalid mail address" : "Adresa mail invalidă", + "Unable to create user." : "Imposibil de creat utilizatorul", + "Your %s account was created" : "Contul tău %s a fost creat", + "Unable to delete user." : "Imposibil de șters utilizatorul.", + "Forbidden" : "Interzis", "Invalid user" : "Utilizator nevalid", "Email saved" : "E-mail salvat", "Sending..." : "Se expediază...", @@ -59,6 +67,7 @@ "Allow apps to use the Share API" : "Permite aplicațiilor să folosească API-ul de partajare", "Allow public uploads" : "Permite încărcări publice", "Allow users to send mail notification for shared files" : "Permite utilizatorilor sa expedieze notificări prin e-mail pentru dosarele comune", + "days" : "zile", "Allow resharing" : "Permite repartajarea", "Execute one task with each page loaded" : "Execută o sarcină la fiecare pagină încărcată", "Send mode" : "Modul de expediere", @@ -79,6 +88,9 @@ "User Documentation" : "Documentație utilizator", "Forum" : "Forum", "Get the apps to sync your files" : "Ia acum aplicatia pentru sincronizarea fisierelor ", + "Desktop client" : "Client Desktop", + "Android app" : "Aplicatie Android", + "iOS app" : "Aplicație iOS", "You have used <strong>%s</strong> of the available <strong>%s</strong>" : "Ați utilizat <strong>%s</strong> din <strong>%s</strong> disponibile", "Password" : "Parolă", "Unable to change your password" : "Imposibil de-ați schimbat parola", diff --git a/settings/l10n/ru.js b/settings/l10n/ru.js index 6ee0f04e2b3..e63bf95add1 100644 --- a/settings/l10n/ru.js +++ b/settings/l10n/ru.js @@ -4,9 +4,9 @@ OC.L10N.register( "Security & setup warnings" : "Предупреждения безопасности и установки", "Sharing" : "Общий доступ", "External Storage" : "Внешнее хранилище", - "Server Side Encryption" : "Шифрование на стороне сервера", + "Server-side encryption" : "Шифрование на стороне сервера", "Cron" : "Cron (планировщик задач)", - "Email Server" : "Почтовый сервер", + "Email server" : "Почтовый сервер", "Log" : "Журнал", "Tips & tricks" : "Советы и трюки", "Updates" : "Обновления", @@ -28,6 +28,8 @@ OC.L10N.register( "Unable to change password" : "Невозможно изменить пароль", "Enabled" : "Включено", "Not enabled" : "Не включено", + "A problem occurred, please check your log files (Error: %s)" : "Возникла проблема, пожалуйста, проверьте ваши файлы журнала (Ошибка: %s)", + "Migration Completed" : "Миграция завершена", "Group already exists." : "Группа уже существует.", "Unable to add group." : "Невозможно добавить группу.", "Unable to delete group." : "Невозможно удалить группу.", @@ -48,6 +50,8 @@ OC.L10N.register( "Email saved" : "Email сохранен", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Вы действительно хотите добавить домен \"{domain}\" как доверенный?", "Add trusted domain" : "Добавить доверенный домен", + "Migration in progress. Please wait until the migration is finished" : "Миграция в процессе. Пожалуйста, подождите завершения миграции", + "Migration started …" : "Начата миграция ...", "Sending..." : "Отправляется ...", "All" : "Все", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Официальные приложения разработаны силами сообщества ownCloud. Они полностью функциональны и готовы к работе.", @@ -135,7 +139,8 @@ OC.L10N.register( "Execute one task with each page loaded" : "Выполнять одно задание с каждой загруженной страницей", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php зарегистрирован в webcron и будет вызываться каждые 15 минут по http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Использовать системный cron для вызова cron.php каждые 15 минут.", - "Enable Server-Side-Encryption" : "Включить шифрование на стороне сервера", + "Enable server-side encryption" : "Включить шифрование на стороне сервера", + "Start migration" : "Запустить миграцию", "This is used for sending out notifications." : "Используется для отправки уведомлений.", "Send mode" : "Способ отправки", "Encryption" : "Шифрование", diff --git a/settings/l10n/ru.json b/settings/l10n/ru.json index 8d811c7a27e..51f468d4d07 100644 --- a/settings/l10n/ru.json +++ b/settings/l10n/ru.json @@ -2,9 +2,9 @@ "Security & setup warnings" : "Предупреждения безопасности и установки", "Sharing" : "Общий доступ", "External Storage" : "Внешнее хранилище", - "Server Side Encryption" : "Шифрование на стороне сервера", + "Server-side encryption" : "Шифрование на стороне сервера", "Cron" : "Cron (планировщик задач)", - "Email Server" : "Почтовый сервер", + "Email server" : "Почтовый сервер", "Log" : "Журнал", "Tips & tricks" : "Советы и трюки", "Updates" : "Обновления", @@ -26,6 +26,8 @@ "Unable to change password" : "Невозможно изменить пароль", "Enabled" : "Включено", "Not enabled" : "Не включено", + "A problem occurred, please check your log files (Error: %s)" : "Возникла проблема, пожалуйста, проверьте ваши файлы журнала (Ошибка: %s)", + "Migration Completed" : "Миграция завершена", "Group already exists." : "Группа уже существует.", "Unable to add group." : "Невозможно добавить группу.", "Unable to delete group." : "Невозможно удалить группу.", @@ -46,6 +48,8 @@ "Email saved" : "Email сохранен", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Вы действительно хотите добавить домен \"{domain}\" как доверенный?", "Add trusted domain" : "Добавить доверенный домен", + "Migration in progress. Please wait until the migration is finished" : "Миграция в процессе. Пожалуйста, подождите завершения миграции", + "Migration started …" : "Начата миграция ...", "Sending..." : "Отправляется ...", "All" : "Все", "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Официальные приложения разработаны силами сообщества ownCloud. Они полностью функциональны и готовы к работе.", @@ -133,7 +137,8 @@ "Execute one task with each page loaded" : "Выполнять одно задание с каждой загруженной страницей", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php зарегистрирован в webcron и будет вызываться каждые 15 минут по http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Использовать системный cron для вызова cron.php каждые 15 минут.", - "Enable Server-Side-Encryption" : "Включить шифрование на стороне сервера", + "Enable server-side encryption" : "Включить шифрование на стороне сервера", + "Start migration" : "Запустить миграцию", "This is used for sending out notifications." : "Используется для отправки уведомлений.", "Send mode" : "Способ отправки", "Encryption" : "Шифрование", diff --git a/settings/l10n/sk_SK.js b/settings/l10n/sk_SK.js index ebed064f331..e0db3ab18ee 100644 --- a/settings/l10n/sk_SK.js +++ b/settings/l10n/sk_SK.js @@ -4,8 +4,8 @@ OC.L10N.register( "Sharing" : "Zdieľanie", "External Storage" : "Externé úložisko", "Cron" : "Cron", - "Email Server" : "Email server", "Log" : "Záznam", + "Tips & tricks" : "Tipy a triky", "Updates" : "Aktualizácie", "Authentication error" : "Chyba autentifikácie", "Your full name has been changed." : "Vaše meno a priezvisko bolo zmenené.", @@ -80,6 +80,7 @@ OC.L10N.register( "A valid password must be provided" : "Musíte zadať platné heslo", "A valid email must be provided" : "Musíte zadať platnú emailovú adresu", "__language_name__" : "Slovensky", + "Personal info" : "Osobné informácie", "SSL root certificates" : "Koreňové SSL certifikáty", "Everything (fatal issues, errors, warnings, info, debug)" : "Všetko (fatálne problémy, chyby, upozornenia, info, debug)", "Info, warnings, errors and fatal issues" : "Info, upozornenia, chyby a fatálne problémy", @@ -158,6 +159,7 @@ OC.L10N.register( "Cheers!" : "Pekný deň!", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Ahoj,\n\ntoto je oznámenie o novo vytvorenom účte %s.\n\nVaše používateľské meno: %s\nPrihlásiť sa môžete tu: %s\n\n", "Forum" : "Fórum", + "Commercial support" : "Komerčná podpora", "Get the apps to sync your files" : "Získať aplikácie na synchronizáciu vašich súborov", "Desktop client" : "Desktopový klient", "Android app" : "Android aplikácia", @@ -170,6 +172,7 @@ OC.L10N.register( "Current password" : "Aktuálne heslo", "New password" : "Nové heslo", "Change password" : "Zmeniť heslo", + "Full name" : "Meno a priezvisko", "No display name set" : "Zobrazované meno nie je nastavené", "Email" : "Email", "Your email address" : "Vaša emailová adresa", diff --git a/settings/l10n/sk_SK.json b/settings/l10n/sk_SK.json index d38e82e26a8..30e34ac1d6c 100644 --- a/settings/l10n/sk_SK.json +++ b/settings/l10n/sk_SK.json @@ -2,8 +2,8 @@ "Sharing" : "Zdieľanie", "External Storage" : "Externé úložisko", "Cron" : "Cron", - "Email Server" : "Email server", "Log" : "Záznam", + "Tips & tricks" : "Tipy a triky", "Updates" : "Aktualizácie", "Authentication error" : "Chyba autentifikácie", "Your full name has been changed." : "Vaše meno a priezvisko bolo zmenené.", @@ -78,6 +78,7 @@ "A valid password must be provided" : "Musíte zadať platné heslo", "A valid email must be provided" : "Musíte zadať platnú emailovú adresu", "__language_name__" : "Slovensky", + "Personal info" : "Osobné informácie", "SSL root certificates" : "Koreňové SSL certifikáty", "Everything (fatal issues, errors, warnings, info, debug)" : "Všetko (fatálne problémy, chyby, upozornenia, info, debug)", "Info, warnings, errors and fatal issues" : "Info, upozornenia, chyby a fatálne problémy", @@ -156,6 +157,7 @@ "Cheers!" : "Pekný deň!", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Ahoj,\n\ntoto je oznámenie o novo vytvorenom účte %s.\n\nVaše používateľské meno: %s\nPrihlásiť sa môžete tu: %s\n\n", "Forum" : "Fórum", + "Commercial support" : "Komerčná podpora", "Get the apps to sync your files" : "Získať aplikácie na synchronizáciu vašich súborov", "Desktop client" : "Desktopový klient", "Android app" : "Android aplikácia", @@ -168,6 +170,7 @@ "Current password" : "Aktuálne heslo", "New password" : "Nové heslo", "Change password" : "Zmeniť heslo", + "Full name" : "Meno a priezvisko", "No display name set" : "Zobrazované meno nie je nastavené", "Email" : "Email", "Your email address" : "Vaša emailová adresa", diff --git a/settings/l10n/sl.js b/settings/l10n/sl.js index b7d8c8550a7..78af6f4d0aa 100644 --- a/settings/l10n/sl.js +++ b/settings/l10n/sl.js @@ -3,9 +3,7 @@ OC.L10N.register( { "Sharing" : "Souporaba", "External Storage" : "Zunanja podatkovna shramba", - "Server Side Encryption" : "Strežniško šifriranje", "Cron" : "Periodično opravilo", - "Email Server" : "Poštni strežnik", "Log" : "Dnevnik", "Updates" : "Posodobitve", "Authentication error" : "Napaka med overjanjem", diff --git a/settings/l10n/sl.json b/settings/l10n/sl.json index b8ad39d592b..5fc355467bd 100644 --- a/settings/l10n/sl.json +++ b/settings/l10n/sl.json @@ -1,9 +1,7 @@ { "translations": { "Sharing" : "Souporaba", "External Storage" : "Zunanja podatkovna shramba", - "Server Side Encryption" : "Strežniško šifriranje", "Cron" : "Periodično opravilo", - "Email Server" : "Poštni strežnik", "Log" : "Dnevnik", "Updates" : "Posodobitve", "Authentication error" : "Napaka med overjanjem", diff --git a/settings/l10n/sq.js b/settings/l10n/sq.js index 23110ad2006..c8bbca38488 100644 --- a/settings/l10n/sq.js +++ b/settings/l10n/sq.js @@ -3,7 +3,6 @@ OC.L10N.register( { "Sharing" : "Ndarje", "Cron" : "Cron", - "Email Server" : "Serveri Email", "Log" : "Historik aktiviteti", "Authentication error" : "Gabim autentifikimi", "Your full name has been changed." : "Emri juaj i plotë ka ndryshuar.", diff --git a/settings/l10n/sq.json b/settings/l10n/sq.json index 57af50a4bc0..8ffdd975868 100644 --- a/settings/l10n/sq.json +++ b/settings/l10n/sq.json @@ -1,7 +1,6 @@ { "translations": { "Sharing" : "Ndarje", "Cron" : "Cron", - "Email Server" : "Serveri Email", "Log" : "Historik aktiviteti", "Authentication error" : "Gabim autentifikimi", "Your full name has been changed." : "Emri juaj i plotë ka ndryshuar.", diff --git a/settings/l10n/sr.js b/settings/l10n/sr.js index 253069bedff..cc2ed54ea41 100644 --- a/settings/l10n/sr.js +++ b/settings/l10n/sr.js @@ -4,9 +4,9 @@ OC.L10N.register( "Security & setup warnings" : "Безбедносна и упозорења поставе", "Sharing" : "Дељење", "External Storage" : "Спољашње складиште", - "Server Side Encryption" : "Шифровање на страни сервера", + "Server-side encryption" : "Шифровање на страни сервера", "Cron" : "Крон", - "Email Server" : "Сервер е-поште", + "Email server" : "Сервер е-поште", "Log" : "Бележење", "Tips & tricks" : "Савети и трикови", "Updates" : "Ажурирања", @@ -28,6 +28,8 @@ OC.L10N.register( "Unable to change password" : "Не могу да променим лозинку", "Enabled" : "Укључено", "Not enabled" : "Искључено", + "A problem occurred, please check your log files (Error: %s)" : "Појавио се проблем. Проверите записнике (грешка: %s)", + "Migration Completed" : "Пресељење завршено", "Group already exists." : "Група већ постоји.", "Unable to add group." : "Није могуће додати групу.", "Unable to delete group." : "Није могуће обрисати групу.", @@ -48,8 +50,13 @@ OC.L10N.register( "Email saved" : "Е-порука сачувана", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Да ли заиста желите да додате „{domain}“ као поуздан домен?", "Add trusted domain" : "Додај поуздан домен", + "Migration in progress. Please wait until the migration is finished" : "Пресељење је у току. Сачекајте док се не заврши", + "Migration started …" : "Пресељење покренуто...", "Sending..." : "Шаљем...", "All" : "Све", + "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Званичнe апликације су развиjене од стране ownCloud заједнице. Оне нуде функционалност намењену пре свега ownCloud-у и спремне су за функционалну употребу.", + "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Одобрене апликације су развили проверени програмери и апликације су прошле основне безбедносне провере. Оне се активно одржавају у репозиторијуму за апликације отвореног кода и њихови одржаватељи сматрају да су стабилне за уобичајену употребу.", + "This app is not checked for security issues and is new or known to be unstable. Install on your own risk." : "Ова апликација је нова и није проверена по питању безбедности и зна да буде нестабилна. Инсталирате је на сопствену одговорност.", "Please wait...." : "Сачекајте…", "Error while disabling app" : "Грешка при искључивању апликације", "Disable" : "Искључи", @@ -132,7 +139,8 @@ OC.L10N.register( "Execute one task with each page loaded" : "Изврши један задатак са сваком учитаном страницом", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php је регистрован код вебкрон сервиса за позивање cron.php сваких 15 минута преко протокола http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Користите системски крон сервис за позивање cron.php фајла сваких 15 минута.", - "Enable Server-Side-Encryption" : "Укључи шифровање на страни сервера", + "Enable server-side encryption" : "Укључи шифровање на страни сервера", + "Start migration" : "Покрени пресељење", "This is used for sending out notifications." : "Ово се користи за слање обавештења.", "Send mode" : "Режим слања", "Encryption" : "Шифровање", @@ -182,7 +190,7 @@ OC.L10N.register( "No apps found for your version" : "Нема апликација за вашу верзију", "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Поздрав,<br><br>само вас обавештавам да сад имате %s налог.<br><br>Ваше корисничко име: %s<br>Приступите му на: <a href=\"%s\">%s</a><br><br>", "Cheers!" : "Здраво!", - "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Добродошли,\n\nСамо да знате да сада имате %s налог.\n\nВаше корисничко име: %s\nПриступите: %s\n", + "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Поздрав.\n\nСамо да знате да сада имате %s налог.\n\nВаше корисничко име: %s\nПриступите му на: %s\n", "User documentation" : "Корисничка документација", "Administrator documentation" : "Администраторска документација", "Online documentation" : "Документација на мрежи", @@ -223,7 +231,7 @@ OC.L10N.register( "Issued By" : "Издавач", "Valid until %s" : "Важи до %s", "Import root certificate" : "Увоз кореног сертификата", - "Developed by the {communityopen}ownCloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}<abbr title=\"Affero General Public License\">AGPL</abbr>{linkclose}." : "Развијено од {communityopen}заједнице сопственогОблака{linkclose}, {githubopen}изворни код{linkclose} је лиценциран под {licenseopen}<abbr title=\"Affero General Public License\">АГПЛ</abbr>{linkclose}.", + "Developed by the {communityopen}ownCloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}<abbr title=\"Affero General Public License\">AGPL</abbr>{linkclose}." : "Развијено од стране {communityopen}оунКлауд заједнице{linkclose}, {githubopen}изворни код{linkclose} је лиценциран под {licenseopen}<abbr title=\"Аферо општа јавна лиценца\">АОЈЛ (AGPL)</abbr>{linkclose}.", "Show storage location" : "Прикажи локацију складишта", "Show last log in" : "Прикажи последњу пријаву", "Show user backend" : "Прикажи позадину за кориснике", diff --git a/settings/l10n/sr.json b/settings/l10n/sr.json index a063579c2ef..f753ad2199f 100644 --- a/settings/l10n/sr.json +++ b/settings/l10n/sr.json @@ -2,9 +2,9 @@ "Security & setup warnings" : "Безбедносна и упозорења поставе", "Sharing" : "Дељење", "External Storage" : "Спољашње складиште", - "Server Side Encryption" : "Шифровање на страни сервера", + "Server-side encryption" : "Шифровање на страни сервера", "Cron" : "Крон", - "Email Server" : "Сервер е-поште", + "Email server" : "Сервер е-поште", "Log" : "Бележење", "Tips & tricks" : "Савети и трикови", "Updates" : "Ажурирања", @@ -26,6 +26,8 @@ "Unable to change password" : "Не могу да променим лозинку", "Enabled" : "Укључено", "Not enabled" : "Искључено", + "A problem occurred, please check your log files (Error: %s)" : "Појавио се проблем. Проверите записнике (грешка: %s)", + "Migration Completed" : "Пресељење завршено", "Group already exists." : "Група већ постоји.", "Unable to add group." : "Није могуће додати групу.", "Unable to delete group." : "Није могуће обрисати групу.", @@ -46,8 +48,13 @@ "Email saved" : "Е-порука сачувана", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Да ли заиста желите да додате „{domain}“ као поуздан домен?", "Add trusted domain" : "Додај поуздан домен", + "Migration in progress. Please wait until the migration is finished" : "Пресељење је у току. Сачекајте док се не заврши", + "Migration started …" : "Пресељење покренуто...", "Sending..." : "Шаљем...", "All" : "Све", + "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Званичнe апликације су развиjене од стране ownCloud заједнице. Оне нуде функционалност намењену пре свега ownCloud-у и спремне су за функционалну употребу.", + "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Одобрене апликације су развили проверени програмери и апликације су прошле основне безбедносне провере. Оне се активно одржавају у репозиторијуму за апликације отвореног кода и њихови одржаватељи сматрају да су стабилне за уобичајену употребу.", + "This app is not checked for security issues and is new or known to be unstable. Install on your own risk." : "Ова апликација је нова и није проверена по питању безбедности и зна да буде нестабилна. Инсталирате је на сопствену одговорност.", "Please wait...." : "Сачекајте…", "Error while disabling app" : "Грешка при искључивању апликације", "Disable" : "Искључи", @@ -130,7 +137,8 @@ "Execute one task with each page loaded" : "Изврши један задатак са сваком учитаном страницом", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php је регистрован код вебкрон сервиса за позивање cron.php сваких 15 минута преко протокола http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Користите системски крон сервис за позивање cron.php фајла сваких 15 минута.", - "Enable Server-Side-Encryption" : "Укључи шифровање на страни сервера", + "Enable server-side encryption" : "Укључи шифровање на страни сервера", + "Start migration" : "Покрени пресељење", "This is used for sending out notifications." : "Ово се користи за слање обавештења.", "Send mode" : "Режим слања", "Encryption" : "Шифровање", @@ -180,7 +188,7 @@ "No apps found for your version" : "Нема апликација за вашу верзију", "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Поздрав,<br><br>само вас обавештавам да сад имате %s налог.<br><br>Ваше корисничко име: %s<br>Приступите му на: <a href=\"%s\">%s</a><br><br>", "Cheers!" : "Здраво!", - "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Добродошли,\n\nСамо да знате да сада имате %s налог.\n\nВаше корисничко име: %s\nПриступите: %s\n", + "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Поздрав.\n\nСамо да знате да сада имате %s налог.\n\nВаше корисничко име: %s\nПриступите му на: %s\n", "User documentation" : "Корисничка документација", "Administrator documentation" : "Администраторска документација", "Online documentation" : "Документација на мрежи", @@ -221,7 +229,7 @@ "Issued By" : "Издавач", "Valid until %s" : "Важи до %s", "Import root certificate" : "Увоз кореног сертификата", - "Developed by the {communityopen}ownCloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}<abbr title=\"Affero General Public License\">AGPL</abbr>{linkclose}." : "Развијено од {communityopen}заједнице сопственогОблака{linkclose}, {githubopen}изворни код{linkclose} је лиценциран под {licenseopen}<abbr title=\"Affero General Public License\">АГПЛ</abbr>{linkclose}.", + "Developed by the {communityopen}ownCloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}<abbr title=\"Affero General Public License\">AGPL</abbr>{linkclose}." : "Развијено од стране {communityopen}оунКлауд заједнице{linkclose}, {githubopen}изворни код{linkclose} је лиценциран под {licenseopen}<abbr title=\"Аферо општа јавна лиценца\">АОЈЛ (AGPL)</abbr>{linkclose}.", "Show storage location" : "Прикажи локацију складишта", "Show last log in" : "Прикажи последњу пријаву", "Show user backend" : "Прикажи позадину за кориснике", diff --git a/settings/l10n/sv.js b/settings/l10n/sv.js index 3a714b4c626..05b7dcba6c0 100644 --- a/settings/l10n/sv.js +++ b/settings/l10n/sv.js @@ -4,7 +4,6 @@ OC.L10N.register( "Sharing" : "Dela", "External Storage" : "Extern lagring", "Cron" : "Cron", - "Email Server" : "E-postserver", "Log" : "Logg", "Updates" : "Uppdateringar", "Authentication error" : "Fel vid autentisering", diff --git a/settings/l10n/sv.json b/settings/l10n/sv.json index 3c4460fd086..42bd8e5b6f4 100644 --- a/settings/l10n/sv.json +++ b/settings/l10n/sv.json @@ -2,7 +2,6 @@ "Sharing" : "Dela", "External Storage" : "Extern lagring", "Cron" : "Cron", - "Email Server" : "E-postserver", "Log" : "Logg", "Updates" : "Uppdateringar", "Authentication error" : "Fel vid autentisering", diff --git a/settings/l10n/tr.js b/settings/l10n/tr.js index 38d029b037b..7b89faba329 100644 --- a/settings/l10n/tr.js +++ b/settings/l10n/tr.js @@ -4,9 +4,7 @@ OC.L10N.register( "Security & setup warnings" : "Güvenlik ve kurulum uyarıları", "Sharing" : "Paylaşım", "External Storage" : "Harici Depolama", - "Server Side Encryption" : "Sunucu Taraflı Şifreleme", "Cron" : "Cron", - "Email Server" : "E-Posta Sunucusu", "Log" : "Günlük", "Tips & tricks" : "İpuçları ve hileler", "Updates" : "Güncellemeler", @@ -131,7 +129,6 @@ OC.L10N.register( "Execute one task with each page loaded" : "Yüklenen her sayfa ile bir görev çalıştır", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php, http üzerinden her 15 dakikada bir çağrılması için webcron hizmetine kaydedilir.", "Use system's cron service to call the cron.php file every 15 minutes." : "Cron.php dosyasını her 15 dakikada bir çağırmak için sistem cron hizmetini kullan.", - "Enable Server-Side-Encryption" : "Sunucu Taraflı Şifrelemeyi Etkinleştir", "This is used for sending out notifications." : "Bu, bildirimler gönderilirken kullanılır.", "Send mode" : "Gönderme kipi", "Encryption" : "Şifreleme", diff --git a/settings/l10n/tr.json b/settings/l10n/tr.json index 162af10663f..440b67241c0 100644 --- a/settings/l10n/tr.json +++ b/settings/l10n/tr.json @@ -2,9 +2,7 @@ "Security & setup warnings" : "Güvenlik ve kurulum uyarıları", "Sharing" : "Paylaşım", "External Storage" : "Harici Depolama", - "Server Side Encryption" : "Sunucu Taraflı Şifreleme", "Cron" : "Cron", - "Email Server" : "E-Posta Sunucusu", "Log" : "Günlük", "Tips & tricks" : "İpuçları ve hileler", "Updates" : "Güncellemeler", @@ -129,7 +127,6 @@ "Execute one task with each page loaded" : "Yüklenen her sayfa ile bir görev çalıştır", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php, http üzerinden her 15 dakikada bir çağrılması için webcron hizmetine kaydedilir.", "Use system's cron service to call the cron.php file every 15 minutes." : "Cron.php dosyasını her 15 dakikada bir çağırmak için sistem cron hizmetini kullan.", - "Enable Server-Side-Encryption" : "Sunucu Taraflı Şifrelemeyi Etkinleştir", "This is used for sending out notifications." : "Bu, bildirimler gönderilirken kullanılır.", "Send mode" : "Gönderme kipi", "Encryption" : "Şifreleme", diff --git a/settings/l10n/uk.js b/settings/l10n/uk.js index e4d4dedb3f4..cd0a51fc157 100644 --- a/settings/l10n/uk.js +++ b/settings/l10n/uk.js @@ -1,11 +1,14 @@ OC.L10N.register( "settings", { + "Security & setup warnings" : "Попередження безпеки та налаштування", "Sharing" : "Спільний доступ", "External Storage" : "Зовнішні сховища", + "Server-side encryption" : "Серверне шіфрування", "Cron" : "Планувальник Cron", - "Email Server" : "Сервер електронної пошти", + "Email server" : "Сервер електронної пошти", "Log" : "Журнал", + "Tips & tricks" : "Поради і трюки", "Updates" : "Оновлення", "Authentication error" : "Помилка автентифікації", "Your full name has been changed." : "Ваше ім'я було змінене", @@ -13,22 +16,24 @@ OC.L10N.register( "Couldn't remove app." : "Неможливо видалити додаток.", "Language changed" : "Мова змінена", "Invalid request" : "Некоректний запит", - "Admins can't remove themself from the admin group" : "Адміністратор не може видалити себе з групи адмінів", + "Admins can't remove themself from the admin group" : "Адміністратор не може видалити себе з групи адміністраторів", "Unable to add user to group %s" : "Не вдалося додати користувача у групу %s", "Unable to remove user from group %s" : "Не вдалося видалити користувача із групи %s", "Couldn't update app." : "Не вдалося оновити програму. ", "Wrong password" : "Невірний пароль", - "No user supplied" : "Користувач не знайден", + "No user supplied" : "Користувач не знайдений", "Please provide an admin recovery password, otherwise all user data will be lost" : "Будь ласка введіть пароль адміністратора для відновлення, інакше всі дані будуть втрачені", - "Wrong admin recovery password. Please check the password and try again." : "Неправильний пароль адміністратора для відновлення. Перевірте пароль та спробуйте ще раз.", + "Wrong admin recovery password. Please check the password and try again." : "Невірний пароль адміністратора для відновлення. Будь ласка, перевірте пароль та спробуйте ще раз.", "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Використовуваний механізм не підтримує зміну паролів, але користувальницький ключ шифрування був успішно змінено", "Unable to change password" : "Неможливо змінити пароль", "Enabled" : "Увімкнено", "Not enabled" : "Вимкнено", + "A problem occurred, please check your log files (Error: %s)" : "Виникла проблема, будь ласка, перевірте свої журнальні файли (Помилка:%s)", + "Migration Completed" : "Міграцію завершено", "Group already exists." : "Група вже існує.", "Unable to add group." : "Неможливо додати групу.", "Unable to delete group." : "Неможливо видалити групу.", - "log-level out of allowed range" : "Перевищений розмір файлу-логу", + "log-level out of allowed range" : "Перевищений розмір файлу-журналу", "Saved" : "Збереженно", "test email settings" : "перевірити налаштування електронної пошти", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Під час відправки email сталася помилка. Будь ласка перевірте налаштування. (Помилка:%s)", @@ -45,8 +50,13 @@ OC.L10N.register( "Email saved" : "Адресу збережено", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Ви дійсно бажаєте додати \"{domain}\" як довірений домен?", "Add trusted domain" : "Додати довірений домен", + "Migration in progress. Please wait until the migration is finished" : "Міграція триває. Будь ласка, зачекайте доки процес міграції завершиться", + "Migration started …" : "Міграцію розпочато ...", "Sending..." : "Надсилання...", "All" : "Всі", + "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Офіційні застосунки розроблені спільнотою ownCloud. Вони реалізують основні можливості ownCloud і готові до використання в продакшні.", + "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Схвалені застосунки розроблені довіреними розробниками і пройшли незалежну перевірку безпеки. Їх активно супроводжують у репозиторії з відкритим кодом, а їх розробники стежать, щоб вони були стабільні й прийнятні для повсякденного використання.", + "This app is not checked for security issues and is new or known to be unstable. Install on your own risk." : "Ця програма не перевірена на вразливості безпеки і є новою або нестабільною. Встановлюйте її на власний ризик.", "Please wait...." : "Зачекайте, будь ласка...", "Error while disabling app" : "Помилка відключення додатка", "Disable" : "Вимкнути", @@ -82,7 +92,9 @@ OC.L10N.register( "A valid password must be provided" : "Потрібно задати вірний пароль", "A valid email must be provided" : "Вкажіть дійсний e-mail", "__language_name__" : "__language_name__", - "SSL root certificates" : "SSL корневі сертифікати", + "Sync clients" : "Синхронізація клієнтів", + "Personal info" : "Особиста інформація", + "SSL root certificates" : "SSL кореневі сертифікати", "Everything (fatal issues, errors, warnings, info, debug)" : "Усі (критичні проблеми, помилки, попередження, інформаційні, налагодження)", "Info, warnings, errors and fatal issues" : "Інформаційні, попередження, помилки та критичні проблеми", "Warnings, errors and fatal issues" : "Попередження, помилки та критичні проблеми", @@ -103,7 +115,7 @@ OC.L10N.register( "System locale can not be set to a one which supports UTF-8." : "Неможливо встановити системну локаль, яка б підтримувала UTF-8.", "This means that there might be problems with certain characters in file names." : "Це означає, що можуть виникати проблеми з деякими символами в іменах файлів.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Пропонуємо встановити необхідні пакети для вашої системи для підтримки однієї з наступних мов %s.", - "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Якщо ваша копія ownCloud встановлена не в корені домену та використовує систему планування CRON, можливі проблеми з генерацією правильних URL. Щоб уникнути цього, встановіть опцію \"overwrite.cli.url\" файла config.php відповідно до теки розташування установки (Ймовірніше за все, це \"%s\")", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Якщо ваша копія ownCloud встановлена не в корені домену та використовує систему планування CRON, можливі проблеми з генерацією правильних URL. Щоб уникнути цього, встановіть опцію \"overwrite.cli.url\" файлу config.php відповідно до теки розташування установки (Ймовірніше за все, це \"%s\")", "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Не вдалося запустити завдання планувальника через CLI. Відбулися наступні технічні помилки:", "Allow apps to use the Share API" : "Дозволити програмам використовувати API спільного доступу", "Allow users to share via link" : "Дозволити користувачам ділитися через посилання", @@ -122,9 +134,12 @@ OC.L10N.register( "Last cron job execution: %s." : "Останне виконане Cron завдання: %s.", "Last cron job execution: %s. Something seems wrong." : "Останне виконане Cron завдання: %s. Щось здається неправильним.", "Cron was not executed yet!" : "Cron-задачі ще не запускалися!", + "Open documentation" : "Відкрити документацію", "Execute one task with each page loaded" : "Виконати одне завдання для кожної завантаженої сторінки ", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php зареєстрований в службі webcron та буде викликатися кожні 15 хвилин через HTTP.", "Use system's cron service to call the cron.php file every 15 minutes." : "Використовувати системний cron для виклику cron.php кожні 15 хвилин.", + "Enable server-side encryption" : "Увімкнути серверне шіфрування", + "Start migration" : "Розпочати міграцію", "This is used for sending out notifications." : "Використовується для відсилання повідомлень.", "Send mode" : "Надіслати повідомлення", "Encryption" : "Шифрування", @@ -147,9 +162,17 @@ OC.L10N.register( "The logfile is bigger than 100 MB. Downloading it may take some time!" : "Журнал-файл - більше 100 МБ. Його скачування може зайняти деякий час!", "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "В якості бази даних використовується SQLite. Для великих установок ми рекомендуємо переключитися на інший тип серверу баз даних.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Особливо викликає сумнів використання SQLite при синхронізації файлів з використанням клієнта для ПК.", + "How to do backups" : "Як робити резервне копіювання", + "Advanced monitoring" : "Просунутий моніторинг", + "Performance tuning" : "Налаштування продуктивності", + "Improving the config.php" : "Покращення ", + "Theming" : "Оформлення", + "Hardening and security guidance" : "Інструктування з безпеки та захисту", "Version" : "Версія", "More apps" : "Більше додатків", "Developer documentation" : "Документація для розробників", + "Experimental applications ahead" : "Спершу експериментальні застосунки", + "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Експериментальні застосунки не перевірені на наявність проблем безпеки, нові або нестабільні і в процесі активної розробки. Встановлення їх може спричинити втрату даних або дірки в безпеці.", "by" : "по", "licensed" : "Ліцензовано", "Documentation:" : "Документація:", @@ -161,10 +184,17 @@ OC.L10N.register( "Update to %s" : "Оновити до %s", "Enable only for specific groups" : "Включити тільки для конкретних груп", "Uninstall App" : "Видалити додаток", + "Enable experimental apps" : "Увімкнути експериментальні застосунки", + "No apps found for your version" : "Немає застосунків для вашої версії", "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Агов,<br><br>просто щоб ви знали, у вас є аккаунт %s.<br><br>Ваше ім'я користувача: %s<br>Перейдіть сюди: <a href=\"%s\">%s</a><br><br>", "Cheers!" : "Будьмо!", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Агов,\n\nпросто щоб ви знали, у вас є аккаунт %s.\n\nВаше ім'я користувача: %s\nПерейдіть сюди: %s\n\n", + "User documentation" : "Користувацька документація", + "Administrator documentation" : "Документація адміністратора", + "Online documentation" : "Документація онлайн", "Forum" : "Форум", + "Issue tracker" : "Вирішення проблем", + "Commercial support" : "Комерційна підтримка", "Get the apps to sync your files" : "Отримати додатки для синхронізації ваших файлів", "Desktop client" : "Клієнт для ПК", "Android app" : "Android-додаток", @@ -177,8 +207,9 @@ OC.L10N.register( "Current password" : "Поточний пароль", "New password" : "Новий пароль", "Change password" : "Змінити пароль", + "Full name" : "Повне ім'я", "No display name set" : "Коротке ім'я не вказано", - "Email" : "Ел.пошта", + "Email" : "E-mail", "Your email address" : "Ваша адреса електронної пошти", "Fill in an email address to enable password recovery and receive notifications" : "Введіть адресу електронної пошти, щоб ввімкнути відновлення паролю та отримання повідомлень", "No email address set" : "E-mail не вказано", @@ -197,6 +228,7 @@ OC.L10N.register( "Valid until" : "Дійсно до", "Issued By" : "Виданий", "Valid until %s" : "Дійсно до %s", + "Import root certificate" : "Імпортувати кореневий сертифікат", "Developed by the {communityopen}ownCloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}<abbr title=\"Affero General Public License\">AGPL</abbr>{linkclose}." : "Розроблено {communityopen} спільнотою ownCloud {linkclose}, {githubopen} вихідний код {linkclose} ліцензується відповідно до {licenseopen} <abbr title = \"Публічної ліцензії Affero General\"> AGPL </ abbr> {linkclose}.", "Show storage location" : "Показати місцезнаходження сховища", "Show last log in" : "Показати останній вхід в систему", diff --git a/settings/l10n/uk.json b/settings/l10n/uk.json index f36feec3a67..1dceebe4b75 100644 --- a/settings/l10n/uk.json +++ b/settings/l10n/uk.json @@ -1,9 +1,12 @@ { "translations": { + "Security & setup warnings" : "Попередження безпеки та налаштування", "Sharing" : "Спільний доступ", "External Storage" : "Зовнішні сховища", + "Server-side encryption" : "Серверне шіфрування", "Cron" : "Планувальник Cron", - "Email Server" : "Сервер електронної пошти", + "Email server" : "Сервер електронної пошти", "Log" : "Журнал", + "Tips & tricks" : "Поради і трюки", "Updates" : "Оновлення", "Authentication error" : "Помилка автентифікації", "Your full name has been changed." : "Ваше ім'я було змінене", @@ -11,22 +14,24 @@ "Couldn't remove app." : "Неможливо видалити додаток.", "Language changed" : "Мова змінена", "Invalid request" : "Некоректний запит", - "Admins can't remove themself from the admin group" : "Адміністратор не може видалити себе з групи адмінів", + "Admins can't remove themself from the admin group" : "Адміністратор не може видалити себе з групи адміністраторів", "Unable to add user to group %s" : "Не вдалося додати користувача у групу %s", "Unable to remove user from group %s" : "Не вдалося видалити користувача із групи %s", "Couldn't update app." : "Не вдалося оновити програму. ", "Wrong password" : "Невірний пароль", - "No user supplied" : "Користувач не знайден", + "No user supplied" : "Користувач не знайдений", "Please provide an admin recovery password, otherwise all user data will be lost" : "Будь ласка введіть пароль адміністратора для відновлення, інакше всі дані будуть втрачені", - "Wrong admin recovery password. Please check the password and try again." : "Неправильний пароль адміністратора для відновлення. Перевірте пароль та спробуйте ще раз.", + "Wrong admin recovery password. Please check the password and try again." : "Невірний пароль адміністратора для відновлення. Будь ласка, перевірте пароль та спробуйте ще раз.", "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Використовуваний механізм не підтримує зміну паролів, але користувальницький ключ шифрування був успішно змінено", "Unable to change password" : "Неможливо змінити пароль", "Enabled" : "Увімкнено", "Not enabled" : "Вимкнено", + "A problem occurred, please check your log files (Error: %s)" : "Виникла проблема, будь ласка, перевірте свої журнальні файли (Помилка:%s)", + "Migration Completed" : "Міграцію завершено", "Group already exists." : "Група вже існує.", "Unable to add group." : "Неможливо додати групу.", "Unable to delete group." : "Неможливо видалити групу.", - "log-level out of allowed range" : "Перевищений розмір файлу-логу", + "log-level out of allowed range" : "Перевищений розмір файлу-журналу", "Saved" : "Збереженно", "test email settings" : "перевірити налаштування електронної пошти", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Під час відправки email сталася помилка. Будь ласка перевірте налаштування. (Помилка:%s)", @@ -43,8 +48,13 @@ "Email saved" : "Адресу збережено", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Ви дійсно бажаєте додати \"{domain}\" як довірений домен?", "Add trusted domain" : "Додати довірений домен", + "Migration in progress. Please wait until the migration is finished" : "Міграція триває. Будь ласка, зачекайте доки процес міграції завершиться", + "Migration started …" : "Міграцію розпочато ...", "Sending..." : "Надсилання...", "All" : "Всі", + "Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Офіційні застосунки розроблені спільнотою ownCloud. Вони реалізують основні можливості ownCloud і готові до використання в продакшні.", + "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Схвалені застосунки розроблені довіреними розробниками і пройшли незалежну перевірку безпеки. Їх активно супроводжують у репозиторії з відкритим кодом, а їх розробники стежать, щоб вони були стабільні й прийнятні для повсякденного використання.", + "This app is not checked for security issues and is new or known to be unstable. Install on your own risk." : "Ця програма не перевірена на вразливості безпеки і є новою або нестабільною. Встановлюйте її на власний ризик.", "Please wait...." : "Зачекайте, будь ласка...", "Error while disabling app" : "Помилка відключення додатка", "Disable" : "Вимкнути", @@ -80,7 +90,9 @@ "A valid password must be provided" : "Потрібно задати вірний пароль", "A valid email must be provided" : "Вкажіть дійсний e-mail", "__language_name__" : "__language_name__", - "SSL root certificates" : "SSL корневі сертифікати", + "Sync clients" : "Синхронізація клієнтів", + "Personal info" : "Особиста інформація", + "SSL root certificates" : "SSL кореневі сертифікати", "Everything (fatal issues, errors, warnings, info, debug)" : "Усі (критичні проблеми, помилки, попередження, інформаційні, налагодження)", "Info, warnings, errors and fatal issues" : "Інформаційні, попередження, помилки та критичні проблеми", "Warnings, errors and fatal issues" : "Попередження, помилки та критичні проблеми", @@ -101,7 +113,7 @@ "System locale can not be set to a one which supports UTF-8." : "Неможливо встановити системну локаль, яка б підтримувала UTF-8.", "This means that there might be problems with certain characters in file names." : "Це означає, що можуть виникати проблеми з деякими символами в іменах файлів.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Пропонуємо встановити необхідні пакети для вашої системи для підтримки однієї з наступних мов %s.", - "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Якщо ваша копія ownCloud встановлена не в корені домену та використовує систему планування CRON, можливі проблеми з генерацією правильних URL. Щоб уникнути цього, встановіть опцію \"overwrite.cli.url\" файла config.php відповідно до теки розташування установки (Ймовірніше за все, це \"%s\")", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Якщо ваша копія ownCloud встановлена не в корені домену та використовує систему планування CRON, можливі проблеми з генерацією правильних URL. Щоб уникнути цього, встановіть опцію \"overwrite.cli.url\" файлу config.php відповідно до теки розташування установки (Ймовірніше за все, це \"%s\")", "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Не вдалося запустити завдання планувальника через CLI. Відбулися наступні технічні помилки:", "Allow apps to use the Share API" : "Дозволити програмам використовувати API спільного доступу", "Allow users to share via link" : "Дозволити користувачам ділитися через посилання", @@ -120,9 +132,12 @@ "Last cron job execution: %s." : "Останне виконане Cron завдання: %s.", "Last cron job execution: %s. Something seems wrong." : "Останне виконане Cron завдання: %s. Щось здається неправильним.", "Cron was not executed yet!" : "Cron-задачі ще не запускалися!", + "Open documentation" : "Відкрити документацію", "Execute one task with each page loaded" : "Виконати одне завдання для кожної завантаженої сторінки ", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php зареєстрований в службі webcron та буде викликатися кожні 15 хвилин через HTTP.", "Use system's cron service to call the cron.php file every 15 minutes." : "Використовувати системний cron для виклику cron.php кожні 15 хвилин.", + "Enable server-side encryption" : "Увімкнути серверне шіфрування", + "Start migration" : "Розпочати міграцію", "This is used for sending out notifications." : "Використовується для відсилання повідомлень.", "Send mode" : "Надіслати повідомлення", "Encryption" : "Шифрування", @@ -145,9 +160,17 @@ "The logfile is bigger than 100 MB. Downloading it may take some time!" : "Журнал-файл - більше 100 МБ. Його скачування може зайняти деякий час!", "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "В якості бази даних використовується SQLite. Для великих установок ми рекомендуємо переключитися на інший тип серверу баз даних.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Особливо викликає сумнів використання SQLite при синхронізації файлів з використанням клієнта для ПК.", + "How to do backups" : "Як робити резервне копіювання", + "Advanced monitoring" : "Просунутий моніторинг", + "Performance tuning" : "Налаштування продуктивності", + "Improving the config.php" : "Покращення ", + "Theming" : "Оформлення", + "Hardening and security guidance" : "Інструктування з безпеки та захисту", "Version" : "Версія", "More apps" : "Більше додатків", "Developer documentation" : "Документація для розробників", + "Experimental applications ahead" : "Спершу експериментальні застосунки", + "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Експериментальні застосунки не перевірені на наявність проблем безпеки, нові або нестабільні і в процесі активної розробки. Встановлення їх може спричинити втрату даних або дірки в безпеці.", "by" : "по", "licensed" : "Ліцензовано", "Documentation:" : "Документація:", @@ -159,10 +182,17 @@ "Update to %s" : "Оновити до %s", "Enable only for specific groups" : "Включити тільки для конкретних груп", "Uninstall App" : "Видалити додаток", + "Enable experimental apps" : "Увімкнути експериментальні застосунки", + "No apps found for your version" : "Немає застосунків для вашої версії", "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Агов,<br><br>просто щоб ви знали, у вас є аккаунт %s.<br><br>Ваше ім'я користувача: %s<br>Перейдіть сюди: <a href=\"%s\">%s</a><br><br>", "Cheers!" : "Будьмо!", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Агов,\n\nпросто щоб ви знали, у вас є аккаунт %s.\n\nВаше ім'я користувача: %s\nПерейдіть сюди: %s\n\n", + "User documentation" : "Користувацька документація", + "Administrator documentation" : "Документація адміністратора", + "Online documentation" : "Документація онлайн", "Forum" : "Форум", + "Issue tracker" : "Вирішення проблем", + "Commercial support" : "Комерційна підтримка", "Get the apps to sync your files" : "Отримати додатки для синхронізації ваших файлів", "Desktop client" : "Клієнт для ПК", "Android app" : "Android-додаток", @@ -175,8 +205,9 @@ "Current password" : "Поточний пароль", "New password" : "Новий пароль", "Change password" : "Змінити пароль", + "Full name" : "Повне ім'я", "No display name set" : "Коротке ім'я не вказано", - "Email" : "Ел.пошта", + "Email" : "E-mail", "Your email address" : "Ваша адреса електронної пошти", "Fill in an email address to enable password recovery and receive notifications" : "Введіть адресу електронної пошти, щоб ввімкнути відновлення паролю та отримання повідомлень", "No email address set" : "E-mail не вказано", @@ -195,6 +226,7 @@ "Valid until" : "Дійсно до", "Issued By" : "Виданий", "Valid until %s" : "Дійсно до %s", + "Import root certificate" : "Імпортувати кореневий сертифікат", "Developed by the {communityopen}ownCloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}<abbr title=\"Affero General Public License\">AGPL</abbr>{linkclose}." : "Розроблено {communityopen} спільнотою ownCloud {linkclose}, {githubopen} вихідний код {linkclose} ліцензується відповідно до {licenseopen} <abbr title = \"Публічної ліцензії Affero General\"> AGPL </ abbr> {linkclose}.", "Show storage location" : "Показати місцезнаходження сховища", "Show last log in" : "Показати останній вхід в систему", diff --git a/settings/l10n/zh_CN.js b/settings/l10n/zh_CN.js index f8b40607816..242c78eee7a 100644 --- a/settings/l10n/zh_CN.js +++ b/settings/l10n/zh_CN.js @@ -4,7 +4,6 @@ OC.L10N.register( "Sharing" : "共享", "External Storage" : "外部存储", "Cron" : "计划任务", - "Email Server" : "电子邮件服务器", "Log" : "日志", "Updates" : "更新", "Authentication error" : "认证错误", diff --git a/settings/l10n/zh_CN.json b/settings/l10n/zh_CN.json index f6394c2437a..f911248ed41 100644 --- a/settings/l10n/zh_CN.json +++ b/settings/l10n/zh_CN.json @@ -2,7 +2,6 @@ "Sharing" : "共享", "External Storage" : "外部存储", "Cron" : "计划任务", - "Email Server" : "电子邮件服务器", "Log" : "日志", "Updates" : "更新", "Authentication error" : "认证错误", diff --git a/settings/l10n/zh_HK.js b/settings/l10n/zh_HK.js index 3211c4dc26d..6b613fdf4f7 100644 --- a/settings/l10n/zh_HK.js +++ b/settings/l10n/zh_HK.js @@ -2,7 +2,6 @@ OC.L10N.register( "settings", { "Sharing" : "分享", - "Email Server" : "電子郵件伺服器", "Log" : "日誌", "Updates" : "更新", "Wrong password" : "密碼錯誤", diff --git a/settings/l10n/zh_HK.json b/settings/l10n/zh_HK.json index 9b76d35b796..1f562400c05 100644 --- a/settings/l10n/zh_HK.json +++ b/settings/l10n/zh_HK.json @@ -1,6 +1,5 @@ { "translations": { "Sharing" : "分享", - "Email Server" : "電子郵件伺服器", "Log" : "日誌", "Updates" : "更新", "Wrong password" : "密碼錯誤", diff --git a/settings/l10n/zh_TW.js b/settings/l10n/zh_TW.js index 639b6f12617..e946e3b5de2 100644 --- a/settings/l10n/zh_TW.js +++ b/settings/l10n/zh_TW.js @@ -4,7 +4,6 @@ OC.L10N.register( "Sharing" : "分享", "External Storage" : "外部儲存", "Cron" : "工作排程", - "Email Server" : "郵件伺服器", "Log" : "紀錄", "Updates" : "更新", "Authentication error" : "認證錯誤", diff --git a/settings/l10n/zh_TW.json b/settings/l10n/zh_TW.json index a22d8c37518..cb4858f9009 100644 --- a/settings/l10n/zh_TW.json +++ b/settings/l10n/zh_TW.json @@ -2,7 +2,6 @@ "Sharing" : "分享", "External Storage" : "外部儲存", "Cron" : "工作排程", - "Email Server" : "郵件伺服器", "Log" : "紀錄", "Updates" : "更新", "Authentication error" : "認證錯誤", diff --git a/settings/personal.php b/settings/personal.php index 12b320ac001..7bf1110c03e 100644 --- a/settings/personal.php +++ b/settings/personal.php @@ -37,6 +37,7 @@ OC_Util::checkLoggedIn(); $defaults = new OC_Defaults(); // initialize themable default strings and urls $certificateManager = \OC::$server->getCertificateManager(); $config = \OC::$server->getConfig(); +$urlGenerator = \OC::$server->getURLGenerator(); // Highlight navigation entry OC_Util::addScript( 'settings', 'personal' ); @@ -118,6 +119,7 @@ $tmpl->assign('displayName', OC_User::getDisplayName()); $tmpl->assign('enableAvatars', $config->getSystemValue('enable_avatars', true)); $tmpl->assign('avatarChangeSupported', OC_User::canUserChangeAvatar(OC_User::getUser())); $tmpl->assign('certs', $certificateManager->listCertificates()); +$tmpl->assign('urlGenerator', $urlGenerator); // Get array of group ids for this user $groups = \OC::$server->getGroupManager()->getUserIdGroups(OC_User::getUser()); diff --git a/settings/routes.php b/settings/routes.php index 1bb14812145..52b320cbdb5 100644 --- a/settings/routes.php +++ b/settings/routes.php @@ -42,6 +42,7 @@ $application->registerRoutes($this, [ ['name' => 'MailSettings#setMailSettings', 'url' => '/settings/admin/mailsettings', 'verb' => 'POST'], ['name' => 'MailSettings#storeCredentials', 'url' => '/settings/admin/mailsettings/credentials', 'verb' => 'POST'], ['name' => 'MailSettings#sendTestMail', 'url' => '/settings/admin/mailtest', 'verb' => 'POST'], + ['name' => 'Encryption#startMigration', 'url' => '/settings/admin/startmigration', 'verb' => 'POST'], ['name' => 'AppSettings#listCategories', 'url' => '/settings/apps/categories', 'verb' => 'GET'], ['name' => 'AppSettings#viewApps', 'url' => '/settings/apps', 'verb' => 'GET'], ['name' => 'AppSettings#listApps', 'url' => '/settings/apps/list', 'verb' => 'GET'], @@ -52,6 +53,8 @@ $application->registerRoutes($this, [ ['name' => 'LogSettings#getEntries', 'url' => '/settings/admin/log/entries', 'verb' => 'GET'], ['name' => 'LogSettings#download', 'url' => '/settings/admin/log/download', 'verb' => 'GET'], ['name' => 'CheckSetup#check', 'url' => '/settings/ajax/checksetup', 'verb' => 'GET'], + ['name' => 'Certificate#addPersonalRootCertificate', 'url' => '/settings/personal/certificate', 'verb' => 'POST'], + ['name' => 'Certificate#removePersonalRootCertificate', 'url' => '/settings/personal/certificate/{certificateIdentifier}', 'verb' => 'DELETE'], ] ]); @@ -89,10 +92,6 @@ $this->create('settings_personal_changepassword', '/settings/personal/changepass ->action('OC\Settings\ChangePassword\Controller', 'changePersonalPassword'); $this->create('settings_ajax_setlanguage', '/settings/ajax/setlanguage.php') ->actionInclude('settings/ajax/setlanguage.php'); -$this->create('settings_cert_post', '/settings/ajax/addRootCertificate') - ->actionInclude('settings/ajax/addRootCertificate.php'); -$this->create('settings_cert_remove', '/settings/ajax/removeRootCertificate') - ->actionInclude('settings/ajax/removeRootCertificate.php'); // apps $this->create('settings_ajax_enableapp', '/settings/ajax/enableapp.php') ->actionInclude('settings/ajax/enableapp.php'); diff --git a/settings/templates/admin.php b/settings/templates/admin.php index 4bc497df764..4f60f7c16d9 100644 --- a/settings/templates/admin.php +++ b/settings/templates/admin.php @@ -300,32 +300,55 @@ if ($_['cronErrors']) { </div> <div class="section" id='encryptionAPI'> - <h2><?php p($l->t('Server Side Encryption'));?></h2> - <p id="enable"> - <input type="checkbox" name="encryption_enabled" id="encryptionEnabled" - value="1" <?php if ($_['encryptionEnabled']) print_unescaped('checked="checked"'); ?> /> - <label for="encryptionEnabled"><?php p($l->t('Enable Server-Side-Encryption'));?></label><br/> - </p> - <div id='selectEncryptionModules' class="<?php if (!$_['encryptionEnabled']) { p('hidden'); }?>"> - <?php if (empty($_['encryptionModules'])): p('No encryption module loaded, please load a encryption module in the app menu'); - else: ?> + <h2><?php p($l->t('Server-side encryption')); ?> </h2> + + <p id="enable"> + <input type="checkbox" name="encryption_enabled" + id="encryptionEnabled" + value="1" <?php if ($_['encryptionEnabled']) print_unescaped('checked="checked"'); ?> /> + <label + for="encryptionEnabled"><?php p($l->t('Enable server-side encryption')); ?> <span id="startmigration_msg" class="msg"></span> </label><br/> + </p> + + <div id="EncryptionSettingsArea" class="<?php if (!$_['encryptionEnabled']) p('hidden'); ?>"> + <div id='selectEncryptionModules' class="<?php if (!$_['encryptionReady']) p('hidden'); ?>"> + <?php + if (empty($_['encryptionModules'])) { + p('No encryption module loaded, please load a encryption module in the app menu'); + } else { ?> <h3>Select default encryption module:</h3> <fieldset id='encryptionModules'> - <?php foreach ($_['encryptionModules'] as $id => $module): ?> - <input type="radio" id="<?php p($id) ?>" - name="default_encryption_module" - value="<?php p($id) ?>" - <?php if($module['default']) { p('checked'); } ?>> - <label for="<?php p($id) ?>"><?php p($module['displayName']) ?></label><br /> - <?php endforeach;?> + <?php foreach ($_['encryptionModules'] as $id => $module): ?> + <input type="radio" id="<?php p($id) ?>" + name="default_encryption_module" + value="<?php p($id) ?>" + <?php if ($module['default']) { + p('checked'); + } ?>> + <label + for="<?php p($id) ?>"><?php p($module['displayName']) ?></label> + <br/> + <?php endforeach; ?> </fieldset> - <?php endif; ?> + <?php } ?> + </div> + <div id="migrationWarning" class="<?php if ($_['encryptionReady']) p('hidden'); ?>"> + <?php + if ($_['encryptionReady'] === false && $_['externalBackendsEnabled'] === true) { + p('You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. ' + . 'Please enable the "ownCloud Default Encryption Module" and run \'occ encryption:migrate\''); + } elseif ($_['encryptionReady'] === false && $_['externalBackendsEnabled'] === false) { + p('You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one.'); ?> + <input type="submit" name="startmigration" id="startmigration" + value="<?php p($l->t('Start migration')); ?>"/> + <?php } ?> </div> + </div> </div> <div class="section" id="mail_general_settings"> <form id="mail_general_settings_form" class="mail_settings"> - <h2><?php p($l->t('Email Server'));?></h2> + <h2><?php p($l->t('Email server'));?></h2> <p><?php p($l->t('This is used for sending out notifications.')); ?> <span id="mail_settings_msg" class="msg"></span></p> diff --git a/settings/templates/personal.php b/settings/templates/personal.php index dfdc6191805..02ee261cd1d 100644 --- a/settings/templates/personal.php +++ b/settings/templates/personal.php @@ -5,6 +5,7 @@ */ /** @var $_ array */ +/** @var $_['urlGenerator'] */ ?> <div id="app-navigation"> @@ -236,7 +237,7 @@ if($_['passwordChangeSupported']) { <?php endforeach; ?> </tbody> </table> - <form class="uploadButton" method="post" action="<?php p(\OC_Helper::linkToRoute('settings_cert_post')); ?>" target="certUploadFrame"> + <form class="uploadButton" method="post" action="<?php p($_['urlGenerator']->linkToRoute('settings.Certificate.addPersonalRootCertificate')); ?>" target="certUploadFrame"> <input type="file" id="rootcert_import" name="rootcert_import" class="hidden"> <input type="button" id="rootcert_import_button" value="<?php p($l->t('Import root certificate')); ?>"/> </form> diff --git a/tests/lib/db.php b/tests/lib/db.php index 1fb384ca9c6..5c25bfb9a5c 100644 --- a/tests/lib/db.php +++ b/tests/lib/db.php @@ -261,31 +261,33 @@ class Test_DB extends \Test\TestCase { $this->assertSame($expected, $actual); } - public function testDecimal() { + /** + * Insert, select and delete decimal(12,2) values + * @dataProvider decimalData + */ + public function testDecimal($insert, $expect) { $table = "*PREFIX*" . $this->table4; $rowname = 'decimaltest'; - // Insert, select and delete decimal(12,2) values - $inserts = array('1337133713.37', '1234567890'); - $expects = array('1337133713.37', '1234567890.00'); - - for ($i = 0; $i < count($inserts); $i++) { - $insert = $inserts[$i]; - $expect = $expects[$i]; - - $query = OC_DB::prepare('INSERT INTO `' . $table . '` (`' . $rowname . '`) VALUES (?)'); - $result = $query->execute(array($insert)); - $this->assertEquals(1, $result); - $query = OC_DB::prepare('SELECT `' . $rowname . '` FROM `' . $table . '`'); - $result = $query->execute(); - $this->assertTrue((bool)$result); - $row = $result->fetchRow(); - $this->assertArrayHasKey($rowname, $row); - $this->assertEquals($expect, $row[$rowname]); - $query = OC_DB::prepare('DELETE FROM `' . $table . '`'); - $result = $query->execute(); - $this->assertTrue((bool)$result); - } + $query = OC_DB::prepare('INSERT INTO `' . $table . '` (`' . $rowname . '`) VALUES (?)'); + $result = $query->execute(array($insert)); + $this->assertEquals(1, $result); + $query = OC_DB::prepare('SELECT `' . $rowname . '` FROM `' . $table . '`'); + $result = $query->execute(); + $this->assertTrue((bool)$result); + $row = $result->fetchRow(); + $this->assertArrayHasKey($rowname, $row); + $this->assertEquals($expect, $row[$rowname]); + $query = OC_DB::prepare('DELETE FROM `' . $table . '`'); + $result = $query->execute(); + $this->assertTrue((bool)$result); + } + + public function decimalData() { + return [ + ['1337133713.37', '1337133713.37'], + ['1234567890', '1234567890.00'], + ]; } public function testUpdateAffectedRowsNoMatch() { diff --git a/tests/lib/encryption/managertest.php b/tests/lib/encryption/managertest.php index 4fcbc3b9983..13f5d47b083 100644 --- a/tests/lib/encryption/managertest.php +++ b/tests/lib/encryption/managertest.php @@ -7,67 +7,75 @@ use Test\TestCase; class ManagerTest extends TestCase { + /** @var Manager */ + private $manager; + + /** @var \PHPUnit_Framework_MockObject_MockObject */ + private $config; + + /** @var \PHPUnit_Framework_MockObject_MockObject */ + private $logger; + + public function setUp() { + parent::setUp(); + $this->config = $this->getMock('\OCP\IConfig'); + $this->logger = $this->getMock('\OCP\ILogger'); + $this->manager = new Manager($this->config, $this->logger); + + } + public function testManagerIsDisabled() { - $config = $this->getMock('\OCP\IConfig'); - $m = new Manager($config); - $this->assertFalse($m->isEnabled()); + $this->assertFalse($this->manager->isEnabled()); } public function testManagerIsDisabledIfEnabledButNoModules() { - $config = $this->getMock('\OCP\IConfig'); - $config->expects($this->any())->method('getAppValue')->willReturn(true); - $m = new Manager($config); - $this->assertFalse($m->isEnabled()); + $this->config->expects($this->any())->method('getAppValue')->willReturn(true); + $this->assertFalse($this->manager->isEnabled()); } public function testManagerIsDisabledIfDisabledButModules() { - $config = $this->getMock('\OCP\IConfig'); - $config->expects($this->any())->method('getAppValue')->willReturn(false); + $this->config->expects($this->any())->method('getAppValue')->willReturn(false); $em = $this->getMock('\OCP\Encryption\IEncryptionModule'); - $em->expects($this->any())->method('getId')->willReturn(0); + $em->expects($this->any())->method('getId')->willReturn('id'); $em->expects($this->any())->method('getDisplayName')->willReturn('TestDummyModule0'); - $m = new Manager($config); - $m->registerEncryptionModule($em); - $this->assertFalse($m->isEnabled()); + $this->manager->registerEncryptionModule('id', 'TestDummyModule0', function() use ($em) {return $em;}); + $this->assertFalse($this->manager->isEnabled()); } public function testManagerIsEnabled() { - $config = $this->getMock('\OCP\IConfig'); - $config->expects($this->any())->method('getSystemValue')->willReturn(true); - $config->expects($this->any())->method('getAppValue')->willReturn('yes'); - $m = new Manager($config); - $this->assertTrue($m->isEnabled()); + $this->config->expects($this->any())->method('getSystemValue')->willReturn(true); + $this->config->expects($this->any())->method('getAppValue')->willReturn('yes'); + $this->assertTrue($this->manager->isEnabled()); } /** * @expectedException \OC\Encryption\Exceptions\ModuleAlreadyExistsException - * @expectedExceptionMessage Id "0" already used by encryption module "TestDummyModule0" + * @expectedExceptionMessage Id "id" already used by encryption module "TestDummyModule0" */ public function testModuleRegistration() { - $config = $this->getMock('\OCP\IConfig'); - $config->expects($this->any())->method('getAppValue')->willReturn('yes'); + $this->config->expects($this->any())->method('getAppValue')->willReturn('yes'); $em = $this->getMock('\OCP\Encryption\IEncryptionModule'); - $em->expects($this->any())->method('getId')->willReturn(0); + $em->expects($this->any())->method('getId')->willReturn('id'); $em->expects($this->any())->method('getDisplayName')->willReturn('TestDummyModule0'); - $m = new Manager($config); - $m->registerEncryptionModule($em); - $this->assertSame(1, count($m->getEncryptionModules())); - $m->registerEncryptionModule($em); + + $this->manager->registerEncryptionModule('id', 'TestDummyModule0', function () use ($em) { return $em;}); + $this->assertSame(1, count($this->manager->getEncryptionModules())); + $this->manager->registerEncryptionModule('id', 'TestDummyModule0', function () use ($em) { return $em;}); } public function testModuleUnRegistration() { - $config = $this->getMock('\OCP\IConfig'); - $config->expects($this->any())->method('getAppValue')->willReturn(true); + $this->config->expects($this->any())->method('getAppValue')->willReturn(true); $em = $this->getMock('\OCP\Encryption\IEncryptionModule'); - $em->expects($this->any())->method('getId')->willReturn(0); + $em->expects($this->any())->method('getId')->willReturn('id'); $em->expects($this->any())->method('getDisplayName')->willReturn('TestDummyModule0'); - $m = new Manager($config); - $m->registerEncryptionModule($em); + $this->manager->registerEncryptionModule('id', 'TestDummyModule0', function () use ($em) { return $em;}); $this->assertSame(1, - count($m->getEncryptionModules()) + count($this->manager->getEncryptionModules()) ); - $m->unregisterEncryptionModule($em); - $this->assertEmpty($m->getEncryptionModules()); + + $this->manager->unregisterEncryptionModule('id'); + $this->assertEmpty($this->manager->getEncryptionModules()); + } /** @@ -75,41 +83,35 @@ class ManagerTest extends TestCase { * @expectedExceptionMessage Module with id: unknown does not exists. */ public function testGetEncryptionModuleUnknown() { - $config = $this->getMock('\OCP\IConfig'); - $config->expects($this->any())->method('getAppValue')->willReturn(true); + $this->config->expects($this->any())->method('getAppValue')->willReturn(true); $em = $this->getMock('\OCP\Encryption\IEncryptionModule'); - $em->expects($this->any())->method('getId')->willReturn(0); + $em->expects($this->any())->method('getId')->willReturn('id'); $em->expects($this->any())->method('getDisplayName')->willReturn('TestDummyModule0'); - $m = new Manager($config); - $m->registerEncryptionModule($em); - $this->assertSame(1, count($m->getEncryptionModules())); - $m->getEncryptionModule('unknown'); + $this->manager->registerEncryptionModule('id', 'TestDummyModule0', function () use ($em) { return $em;}); + $this->assertSame(1, count($this->manager->getEncryptionModules())); + $this->manager->getEncryptionModule('unknown'); } public function testGetEncryptionModule() { - $config = $this->getMock('\OCP\IConfig'); - $config->expects($this->any())->method('getAppValue')->willReturn(true); + $this->config->expects($this->any())->method('getAppValue')->willReturn(true); $em = $this->getMock('\OCP\Encryption\IEncryptionModule'); - $em->expects($this->any())->method('getId')->willReturn(0); + $em->expects($this->any())->method('getId')->willReturn('id'); $em->expects($this->any())->method('getDisplayName')->willReturn('TestDummyModule0'); - $m = new Manager($config); - $m->registerEncryptionModule($em); - $this->assertSame(1, count($m->getEncryptionModules())); - $en0 = $m->getEncryptionModule(0); - $this->assertEquals(0, $en0->getId()); + $this->manager->registerEncryptionModule('id', 'TestDummyModule0', function () use ($em) { return $em;}); + $this->assertSame(1, count($this->manager->getEncryptionModules())); + $en0 = $this->manager->getEncryptionModule('id'); + $this->assertEquals('id', $en0->getId()); } public function testGetDefaultEncryptionModule() { - $config = $this->getMock('\OCP\IConfig'); - $config->expects($this->any())->method('getAppValue')->willReturn(true); + $this->config->expects($this->any())->method('getAppValue')->willReturn(true); $em = $this->getMock('\OCP\Encryption\IEncryptionModule'); - $em->expects($this->any())->method('getId')->willReturn(0); + $em->expects($this->any())->method('getId')->willReturn('id'); $em->expects($this->any())->method('getDisplayName')->willReturn('TestDummyModule0'); - $m = new Manager($config); - $m->registerEncryptionModule($em); - $this->assertSame(1, count($m->getEncryptionModules())); - $en0 = $m->getEncryptionModule(0); - $this->assertEquals(0, $en0->getId()); + $this->manager->registerEncryptionModule('id', 'TestDummyModule0', function () use ($em) { return $em;}); + $this->assertSame(1, count($this->manager->getEncryptionModules())); + $en0 = $this->manager->getEncryptionModule('id'); + $this->assertEquals('id', $en0->getId()); } // /** diff --git a/tests/lib/encryption/utiltest.php b/tests/lib/encryption/utiltest.php index 03aefe61151..dc6205e16fd 100644 --- a/tests/lib/encryption/utiltest.php +++ b/tests/lib/encryption/utiltest.php @@ -21,8 +21,14 @@ class UtilTest extends TestCase { protected $userManager; /** @var \PHPUnit_Framework_MockObject_MockObject */ + protected $groupManager; + + /** @var \PHPUnit_Framework_MockObject_MockObject */ private $config; + /** @var \OC\Encryption\Util */ + private $util; + public function setUp() { parent::setUp(); $this->view = $this->getMockBuilder('OC\Files\View') @@ -33,18 +39,28 @@ class UtilTest extends TestCase { ->disableOriginalConstructor() ->getMock(); + $this->groupManager = $this->getMockBuilder('OC\Group\Manager') + ->disableOriginalConstructor() + ->getMock(); + $this->config = $this->getMockBuilder('OCP\IConfig') ->disableOriginalConstructor() ->getMock(); + $this->util = new Util( + $this->view, + $this->userManager, + $this->groupManager, + $this->config + ); + } /** * @dataProvider providesHeadersForEncryptionModule */ public function testGetEncryptionModuleId($expected, $header) { - $u = new Util($this->view, $this->userManager, $this->config); - $id = $u->getEncryptionModuleId($header); + $id = $this->util->getEncryptionModuleId($header); $this->assertEquals($expected, $id); } @@ -61,8 +77,7 @@ class UtilTest extends TestCase { */ public function testReadHeader($header, $expected, $moduleId) { $expected['oc_encryption_module'] = $moduleId; - $u = new Util($this->view, $this->userManager, $this->config); - $result = $u->readHeader($header); + $result = $this->util->readHeader($header); $this->assertSameSize($expected, $result); foreach ($expected as $key => $value) { $this->assertArrayHasKey($key, $result); @@ -78,8 +93,7 @@ class UtilTest extends TestCase { $em = $this->getMock('\OCP\Encryption\IEncryptionModule'); $em->expects($this->any())->method('getId')->willReturn($moduleId); - $u = new Util($this->view, $this->userManager, $this->config); - $result = $u->createHeader($header, $em); + $result = $this->util->createHeader($header, $em); $this->assertEquals($expected, $result); } @@ -102,23 +116,20 @@ class UtilTest extends TestCase { $em = $this->getMock('\OCP\Encryption\IEncryptionModule'); $em->expects($this->any())->method('getId')->willReturn('moduleId'); - $u = new Util($this->view, $this->userManager, $this->config); - $u->createHeader($header, $em); + $this->util->createHeader($header, $em); } /** * @dataProvider providePathsForTestIsExcluded */ - public function testIsEcluded($path, $expected) { + public function testIsExcluded($path, $expected) { $this->userManager ->expects($this->any()) ->method('userExists') ->will($this->returnCallback(array($this, 'isExcludedCallback'))); - $u = new Util($this->view, $this->userManager, $this->config); - $this->assertSame($expected, - $u->isExcluded($path) + $this->util->isExcluded($path) ); } diff --git a/tests/lib/files/storage/wrapper/encryption.php b/tests/lib/files/storage/wrapper/encryption.php index ec3770260aa..3256f772df7 100644 --- a/tests/lib/files/storage/wrapper/encryption.php +++ b/tests/lib/files/storage/wrapper/encryption.php @@ -34,8 +34,11 @@ class Encryption extends \Test\Files\Storage\Storage { $config = $this->getMockBuilder('\OCP\IConfig') ->disableOriginalConstructor() ->getMock(); + $groupManager = $this->getMockBuilder('\OC\Group\Manager') + ->disableOriginalConstructor() + ->getMock(); - $util = $this->getMock('\OC\Encryption\Util', ['getUidAndFilename'], [new View(), new \OC\User\Manager(), $config]); + $util = $this->getMock('\OC\Encryption\Util', ['getUidAndFilename'], [new View(), new \OC\User\Manager(), $groupManager, $config]); $util->expects($this->any()) ->method('getUidAndFilename') ->willReturnCallback(function ($path) { diff --git a/tests/lib/files/stream/encryption.php b/tests/lib/files/stream/encryption.php index 6964d203f18..f52fd0e16cc 100644 --- a/tests/lib/files/stream/encryption.php +++ b/tests/lib/files/stream/encryption.php @@ -27,12 +27,15 @@ class Encryption extends \Test\TestCase { $config = $this->getMockBuilder('\OCP\IConfig') ->disableOriginalConstructor() ->getMock(); + $groupManager = $this->getMockBuilder('\OC\Group\Manager') + ->disableOriginalConstructor() + ->getMock(); $file = $this->getMockBuilder('\OC\Encryption\File') ->disableOriginalConstructor() ->setMethods(['getAccessList']) ->getMock(); $file->expects($this->any())->method('getAccessList')->willReturn([]); - $util = $this->getMock('\OC\Encryption\Util', ['getUidAndFilename'], [new View(), new \OC\User\Manager(), $config]); + $util = $this->getMock('\OC\Encryption\Util', ['getUidAndFilename'], [new View(), new \OC\User\Manager(), $groupManager, $config]); $util->expects($this->any()) ->method('getUidAndFilename') ->willReturn(['user1', $internalPath]); diff --git a/tests/lib/geo.php b/tests/lib/geo.php deleted file mode 100644 index 0678297b55a..00000000000 --- a/tests/lib/geo.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php -/** - * Copyright (c) 2012 Lukas Reschke <lukas@statuscode.ch> - * This file is licensed under the Affero General Public License version 3 or - * later. - * See the COPYING-README file. - */ - -class Test_Geo extends \Test\TestCase { - - /** - * @medium - */ - function testTimezone() { - $result = OC_Geo::timezone(3, 3); - $expected = 'Africa/Porto-Novo'; - $this->assertEquals($expected, $result); - - $result = OC_Geo::timezone(-3,-3333); - $expected = 'Pacific/Enderbury'; - $this->assertEquals($expected, $result); - } -} diff --git a/tests/lib/security/certificate.php b/tests/lib/security/certificate.php index 361f2f8c38d..7fc8bbbdf25 100644 --- a/tests/lib/security/certificate.php +++ b/tests/lib/security/certificate.php @@ -1,9 +1,22 @@ <?php /** - * Copyright (c) 2014 Lukas Reschke <lukas@owncloud.com> - * This file is licensed under the Affero General Public License version 3 or - * later. - * See the COPYING-README file. + * @author Lukas Reschke <lukas@owncloud.com> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * */ use \OC\Security\Certificate; @@ -32,33 +45,34 @@ class CertificateTest extends \Test\TestCase { * @expectedException \Exception * @expectedExceptionMessage Certificate could not get parsed. */ - function testBogusData() { - new Certificate('foo', 'bar'); + public function testBogusData() { + $certificate = new Certificate('foo', 'bar'); + $certificate->getIssueDate(); } - function testGetName() { + public function testGetName() { $this->assertSame('GoodCertificate', $this->goodCertificate->getName()); $this->assertSame('BadCertificate', $this->invalidCertificate->getName()); } - function testGetCommonName() { + public function testGetCommonName() { $this->assertSame('security.owncloud.com', $this->goodCertificate->getCommonName()); $this->assertSame(null, $this->invalidCertificate->getCommonName()); } - function testGetOrganization() { + public function testGetOrganization() { $this->assertSame('ownCloud Inc.', $this->goodCertificate->getOrganization()); $this->assertSame('Internet Widgits Pty Ltd', $this->invalidCertificate->getOrganization()); } - function testGetIssueDate() { + public function testGetIssueDate() { $expected = new DateTime('2014-08-27 08:45:52 GMT'); $this->assertEquals($expected->getTimestamp(), $this->goodCertificate->getIssueDate()->getTimestamp()); $expected = new DateTime('2014-08-27 08:48:51 GMT'); $this->assertEquals($expected->getTimestamp(), $this->invalidCertificate->getIssueDate()->getTimestamp()); } - function testGetExpireDate() { + public function testGetExpireDate() { $expected = new DateTime('2015-08-27 08:45:52 GMT'); $this->assertEquals($expected->getTimestamp(), $this->goodCertificate->getExpireDate()->getTimestamp()); $expected = new DateTime('2015-08-27 08:48:51 GMT'); @@ -70,19 +84,19 @@ class CertificateTest extends \Test\TestCase { /** * Obviously the following test case might fail after 2015-08-27, just create a new certificate with longer validity then */ - function testIsExpired() { + public function testIsExpired() { $this->assertSame(false, $this->goodCertificate->isExpired()); $this->assertSame(false, $this->invalidCertificate->isExpired()); $this->assertSame(true, $this->expiredCertificate->isExpired()); } - function testGetIssuerName() { + public function testGetIssuerName() { $this->assertSame('security.owncloud.com', $this->goodCertificate->getIssuerName()); $this->assertSame(null, $this->invalidCertificate->getIssuerName()); $this->assertSame(null, $this->expiredCertificate->getIssuerName()); } - function testGetIssuerOrganization() { + public function testGetIssuerOrganization() { $this->assertSame('ownCloud Inc.', $this->goodCertificate->getIssuerOrganization()); $this->assertSame('Internet Widgits Pty Ltd', $this->invalidCertificate->getIssuerOrganization()); $this->assertSame('Internet Widgits Pty Ltd', $this->expiredCertificate->getIssuerOrganization()); diff --git a/tests/lib/security/certificatemanager.php b/tests/lib/security/certificatemanager.php index 1167fe3d868..fab1c208443 100644 --- a/tests/lib/security/certificatemanager.php +++ b/tests/lib/security/certificatemanager.php @@ -14,8 +14,6 @@ class CertificateManagerTest extends \Test\TestCase { private $certificateManager; /** @var String */ private $username; - /** @var \OC\User\User */ - private $user; protected function setUp() { parent::setUp(); @@ -67,9 +65,25 @@ class CertificateManagerTest extends \Test\TestCase { $this->certificateManager->addCertificate('InvalidCertificate', 'invalidCertificate'); } - function testAddDangerousFile() { - $this->assertFalse($this->certificateManager->addCertificate(file_get_contents(__DIR__.'/../../data/certificates/expiredCertificate.crt'), '.htaccess')); - $this->assertFalse($this->certificateManager->addCertificate(file_get_contents(__DIR__.'/../../data/certificates/expiredCertificate.crt'), '../../foo.txt')); + /** + * @return array + */ + public function dangerousFileProvider() { + return [ + ['.htaccess'], + ['../../foo.txt'], + ['..\..\foo.txt'], + ]; + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage Filename is not valid + * @dataProvider dangerousFileProvider + * @param string $filename + */ + function testAddDangerousFile($filename) { + $this->certificateManager->addCertificate(file_get_contents(__DIR__.'/../../data/certificates/expiredCertificate.crt'), $filename); } function testRemoveDangerousFile() { diff --git a/tests/settings/controller/CertificateControllerTest.php b/tests/settings/controller/CertificateControllerTest.php new file mode 100644 index 00000000000..b6981195034 --- /dev/null +++ b/tests/settings/controller/CertificateControllerTest.php @@ -0,0 +1,174 @@ +<?php +/** + * @author Lukas Reschke <lukas@owncloud.com> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace OC\Settings\Controller; + +use OCP\AppFramework\Http; +use OCP\AppFramework\Http\DataResponse; +use OCP\IRequest; +use OCP\IL10N; +use OCP\ICertificateManager; + +/** + * Class CertificateControllerTest + * + * @package OC\Settings\Controller + */ +class CertificateControllerTest extends \Test\TestCase { + /** @var CertificateController */ + private $certificateController; + /** @var IRequest */ + private $request; + /** @var ICertificateManager */ + private $certificateManager; + /** @var IL10N */ + private $l10n; + + public function setUp() { + parent::setUp(); + + $this->request = $this->getMock('\OCP\IRequest'); + $this->certificateManager = $this->getMock('\OCP\ICertificateManager'); + $this->l10n = $this->getMock('\OCP\IL10N'); + + $this->certificateController = new CertificateController( + 'settings', + $this->request, + $this->certificateManager, + $this->l10n + ); + } + + public function testAddPersonalRootCertificateWithEmptyFile() { + $this->request + ->expects($this->once()) + ->method('getUploadedFile') + ->with('rootcert_import') + ->will($this->returnValue(null)); + + $expected = new DataResponse(['message' => 'No file uploaded'], Http::STATUS_UNPROCESSABLE_ENTITY); + $this->assertEquals($expected, $this->certificateController->addPersonalRootCertificate()); + } + + public function testAddPersonalRootCertificateValidCertificate() { + $uploadedFile = [ + 'tmp_name' => __DIR__ . '/../../data/certificates/goodCertificate.crt', + 'name' => 'goodCertificate.crt', + ]; + + $certificate = $this->getMock('\OCP\ICertificate'); + $certificate + ->expects($this->once()) + ->method('getName') + ->will($this->returnValue('Name')); + $certificate + ->expects($this->once()) + ->method('getCommonName') + ->will($this->returnValue('CommonName')); + $certificate + ->expects($this->once()) + ->method('getOrganization') + ->will($this->returnValue('Organization')); + $certificate + ->expects($this->exactly(2)) + ->method('getIssueDate') + ->will($this->returnValue(new \DateTime('@1429099555'))); + $certificate + ->expects($this->exactly(2)) + ->method('getExpireDate') + ->will($this->returnValue(new \DateTime('@1529099555'))); + $certificate + ->expects($this->once()) + ->method('getIssuerName') + ->will($this->returnValue('Issuer')); + $certificate + ->expects($this->once()) + ->method('getIssuerOrganization') + ->will($this->returnValue('IssuerOrganization')); + + $this->request + ->expects($this->once()) + ->method('getUploadedFile') + ->with('rootcert_import') + ->will($this->returnValue($uploadedFile)); + $this->certificateManager + ->expects($this->once()) + ->method('addCertificate') + ->with(file_get_contents($uploadedFile['tmp_name'], 'goodCertificate.crt')) + ->will($this->returnValue($certificate)); + + $this->l10n + ->expects($this->at(0)) + ->method('l') + ->with('date', new \DateTime('@1429099555')) + ->will($this->returnValue('Valid From as String')); + $this->l10n + ->expects($this->at(1)) + ->method('l') + ->with('date', new \DateTime('@1529099555')) + ->will($this->returnValue('Valid Till as String')); + + + $expected = new DataResponse([ + 'name' => 'Name', + 'commonName' => 'CommonName', + 'organization' => 'Organization', + 'validFrom' => 1429099555, + 'validTill' => 1529099555, + 'validFromString' => 'Valid From as String', + 'validTillString' => 'Valid Till as String', + 'issuer' => 'Issuer', + 'issuerOrganization' => 'IssuerOrganization', + ]); + $this->assertEquals($expected, $this->certificateController->addPersonalRootCertificate()); + } + + public function testAddPersonalRootCertificateInvalidCertificate() { + $uploadedFile = [ + 'tmp_name' => __DIR__ . '/../../data/certificates/badCertificate.crt', + 'name' => 'badCertificate.crt', + ]; + + $this->request + ->expects($this->once()) + ->method('getUploadedFile') + ->with('rootcert_import') + ->will($this->returnValue($uploadedFile)); + $this->certificateManager + ->expects($this->once()) + ->method('addCertificate') + ->with(file_get_contents($uploadedFile['tmp_name'], 'badCertificate.crt')) + ->will($this->throwException(new \Exception())); + + $expected = new DataResponse('An error occurred.', Http::STATUS_UNPROCESSABLE_ENTITY); + $this->assertEquals($expected, $this->certificateController->addPersonalRootCertificate()); + } + + public function testRemoveCertificate() { + $this->certificateManager + ->expects($this->once()) + ->method('removeCertificate') + ->with('CertificateToRemove'); + + $this->assertEquals(new DataResponse(), $this->certificateController->removePersonalRootCertificate('CertificateToRemove')); + } + +} diff --git a/version.php b/version.php index 0872d7c61f2..f5ede61afd9 100644 --- a/version.php +++ b/version.php @@ -23,10 +23,10 @@ // We only can count up. The 4. digit is only for the internal patchlevel to trigger DB upgrades // between betas, final and RCs. This is _not_ the public version number. Reset minor/patchlevel // when updating major/minor version number. -$OC_Version=array(8, 1, 0, 1); +$OC_Version=array(8, 1, 0, 2); // The human readable string -$OC_VersionString='8.1 pre alpha'; +$OC_VersionString='8.1 alpha 1'; // The ownCloud channel $OC_Channel='git'; |