diff options
369 files changed, 6679 insertions, 2999 deletions
diff --git a/.drone.yml b/.drone.yml index 6302736e0d6..e5fda39f4ee 100644 --- a/.drone.yml +++ b/.drone.yml @@ -12,30 +12,14 @@ pipeline: when: matrix: TESTS: jsunit - check-autoloader: + checkers: image: nextcloudci/php7.0:php7.0-7 commands: - bash ./build/autoloaderchecker.sh - when: - matrix: - TESTS: check-autoloader - check-mergejs: - image: nextcloudci/php7.0:php7.0-7 - commands: - bash ./build/mergejschecker.sh - when: - matrix: - TESTS: check-mergejs - translation-check: - image: nextcloudci/php7.0:php7.0-7 - commands: + - php ./build/signed-off-checker.php - php ./build/translation-checker.php - when: - matrix: - TESTS: translation-check - app-check-code: - image: nextcloudci/php7.0:php7.0-7 - commands: + - php ./build/htaccess-checker.php - ./occ app:check-code admin_audit - ./occ app:check-code comments - ./occ app:check-code federation @@ -45,21 +29,7 @@ pipeline: - ./occ app:check-code workflowengine when: matrix: - TESTS: app-check-code - signed-off-check: - image: nextcloudci/php7.0:php7.0-7 - commands: - - php ./build/signed-off-checker.php - when: - matrix: - TESTS: signed-off-check - htaccess-checker: - image: nextcloudci/php7.0:php7.0-7 - commands: - - php ./build/htaccess-checker.php - when: - matrix: - TESTS: htaccess-checker + TESTS: checkers syntax-php5.6: image: nextcloudci/php5.6:php5.6-7 commands: @@ -341,6 +311,15 @@ pipeline: when: matrix: TESTS: integration-sharing-v1-part2 + integration-sharing-v1-part3: + image: nextcloudci/integration-php7.0:integration-php7.0-3 + commands: + - ./occ maintenance:install --admin-pass=admin + - cd build/integration + - ./run.sh features/sharing-v1-part3.feature + when: + matrix: + TESTS: integration-sharing-v1-part3 integration-checksums-v1: image: nextcloudci/integration-php7.0:integration-php7.0-3 commands: @@ -488,21 +467,21 @@ pipeline: acceptance-access-levels: image: nextcloudci/php7.0:php7.0-7 commands: - - tests/acceptance/run-local.sh allow-git-repository-modifications features/access-levels.feature + - tests/acceptance/run-local.sh --timeout-multiplier 10 allow-git-repository-modifications features/access-levels.feature when: matrix: TESTS-ACCEPTANCE: access-levels acceptance-app-files: image: nextcloudci/php7.0:php7.0-7 commands: - - tests/acceptance/run-local.sh allow-git-repository-modifications features/app-files.feature + - tests/acceptance/run-local.sh --timeout-multiplier 10 allow-git-repository-modifications features/app-files.feature when: matrix: TESTS-ACCEPTANCE: app-files acceptance-login: image: nextcloudci/php7.0:php7.0-7 commands: - - tests/acceptance/run-local.sh allow-git-repository-modifications features/login.feature + - tests/acceptance/run-local.sh --timeout-multiplier 10 allow-git-repository-modifications features/login.feature when: matrix: TESTS-ACCEPTANCE: login @@ -549,21 +528,23 @@ pipeline: TEST: memcache-memcached matrix: include: - - TESTS: signed-off-check - - TESTS: translation-check - - TESTS: htaccess-checker + - TESTS: checkers - TESTS: nodb-codecov + ENABLE_REDIS: true - TESTS: db-codecov + ENABLE_REDIS: true - TESTS: integration-capabilities_features - TESTS: integration-federation_features - TESTS: integration-maintenance-mode - TESTS: integration-ratelimiting + ENABLE_REDIS: true - TESTS: integration-auth - TESTS: integration-carddav - TESTS: integration-dav-v2 - TESTS: integration-ocs-v1 - TESTS: integration-sharing-v1 - TESTS: integration-sharing-v1-part2 + - TESTS: integration-sharing-v1-part3 - TESTS: integration-checksums - TESTS: integration-external-storage - TESTS: integration-provisioning-v1 @@ -587,9 +568,6 @@ matrix: - TESTS: acceptance TESTS-ACCEPTANCE: login - TESTS: jsunit - - TESTS: check-autoloader - - TESTS: check-mergejs - - TESTS: app-check-code - TESTS: syntax-php5.6 - TESTS: syntax-php7.0 - TESTS: syntax-php7.1 @@ -605,28 +583,41 @@ matrix: - TESTS: sqlite-php7.0-samba-non-native - TEST: memcache-memcached - TESTS: sqlite-php7.0-webdav-apache + ENABLE_REDIS: true - DB: NODB PHP: 5.6 + ENABLE_REDIS: true - DB: NODB PHP: 7.0 + ENABLE_REDIS: true - DB: NODB PHP: 7.1 + ENABLE_REDIS: true - DB: sqlite PHP: 5.6 + ENABLE_REDIS: true - DB: sqlite PHP: 7.0 + ENABLE_REDIS: true - DB: sqlite PHP: 7.1 + ENABLE_REDIS: true - DB: mysql PHP: 5.6 + ENABLE_REDIS: true - DB: postgres PHP: 5.6 + ENABLE_REDIS: true - DB: mysqlmb4 PHP: 5.6 + ENABLE_REDIS: true services: cache: image: redis + when: + matrix: + ENABLE_REDIS: true postgres: image: postgres environment: diff --git a/apps/dav/appinfo/v1/carddav.php b/apps/dav/appinfo/v1/carddav.php index 04344e83fde..8dea6684742 100644 --- a/apps/dav/appinfo/v1/carddav.php +++ b/apps/dav/appinfo/v1/carddav.php @@ -48,7 +48,7 @@ $principalBackend = new Principal( 'principals/' ); $db = \OC::$server->getDatabaseConnection(); -$cardDavBackend = new CardDavBackend($db, $principalBackend, \OC::$server->getUserManager()); +$cardDavBackend = new CardDavBackend($db, $principalBackend, \OC::$server->getUserManager(), \OC::$server->getEventDispatcher()); $debugging = \OC::$server->getConfig()->getSystemValue('debug', false); @@ -81,7 +81,7 @@ if ($debugging) { $server->addPlugin(new \Sabre\DAV\Sync\Plugin()); $server->addPlugin(new \Sabre\CardDAV\VCFExportPlugin()); -$server->addPlugin(new \OCA\DAV\CardDAV\ImageExportPlugin(\OC::$server->getLogger())); +$server->addPlugin(new \OCA\DAV\CardDAV\ImageExportPlugin(new \OCA\DAV\CardDAV\PhotoCache(\OC::$server->getAppDataDir('dav-photocache')))); $server->addPlugin(new ExceptionLoggerPlugin('carddav', \OC::$server->getLogger())); // And off we go! diff --git a/apps/dav/l10n/pt_BR.js b/apps/dav/l10n/pt_BR.js index 731bc73c782..bafe878a8d7 100644 --- a/apps/dav/l10n/pt_BR.js +++ b/apps/dav/l10n/pt_BR.js @@ -4,7 +4,7 @@ OC.L10N.register( "Calendar" : "Calendário", "Todos" : "Tarefas", "{actor} created calendar {calendar}" : "{actor} criou o calendário {calendar}", - "You created calendar {calendar}" : "Voce criou o calendário {calendar}", + "You created calendar {calendar}" : "Você criou o calendário {calendar}", "{actor} deleted calendar {calendar}" : "{actor} excluiu o calendário {calendar}", "You deleted calendar {calendar}" : "Você excluiu o calendário {calendar}", "{actor} updated calendar {calendar}" : "{actor} atualizou o calendário {calendar}", diff --git a/apps/dav/l10n/pt_BR.json b/apps/dav/l10n/pt_BR.json index 75efd572620..d434ef77752 100644 --- a/apps/dav/l10n/pt_BR.json +++ b/apps/dav/l10n/pt_BR.json @@ -2,7 +2,7 @@ "Calendar" : "Calendário", "Todos" : "Tarefas", "{actor} created calendar {calendar}" : "{actor} criou o calendário {calendar}", - "You created calendar {calendar}" : "Voce criou o calendário {calendar}", + "You created calendar {calendar}" : "Você criou o calendário {calendar}", "{actor} deleted calendar {calendar}" : "{actor} excluiu o calendário {calendar}", "You deleted calendar {calendar}" : "Você excluiu o calendário {calendar}", "{actor} updated calendar {calendar}" : "{actor} atualizou o calendário {calendar}", diff --git a/apps/dav/lib/AppInfo/Application.php b/apps/dav/lib/AppInfo/Application.php index b4f16f3cadf..5d89324d4a9 100644 --- a/apps/dav/lib/AppInfo/Application.php +++ b/apps/dav/lib/AppInfo/Application.php @@ -24,11 +24,13 @@ */ namespace OCA\DAV\AppInfo; +use OC\AppFramework\Utility\SimpleContainer; use OCA\DAV\CalDAV\Activity\Backend; use OCA\DAV\CalDAV\Activity\Provider\Event; use OCA\DAV\CalDAV\BirthdayService; use OCA\DAV\Capabilities; use OCA\DAV\CardDAV\ContactsManager; +use OCA\DAV\CardDAV\PhotoCache; use OCA\DAV\CardDAV\SyncService; use OCA\DAV\HookManager; use \OCP\AppFramework\App; @@ -44,10 +46,19 @@ class Application extends App { public function __construct() { parent::__construct('dav'); + $container = $this->getContainer(); + $server = $container->getServer(); + + $container->registerService(PhotoCache::class, function(SimpleContainer $s) use ($server) { + return new PhotoCache( + $server->getAppDataDir('dav-photocache') + ); + }); + /* * Register capabilities */ - $this->getContainer()->registerCapability(Capabilities::class); + $container->registerCapability(Capabilities::class); } /** @@ -101,6 +112,19 @@ class Application extends App { } }); + $clearPhotoCache = function($event) { + if ($event instanceof GenericEvent) { + /** @var PhotoCache $p */ + $p = $this->getContainer()->query(PhotoCache::class); + $p->delete( + $event->getArgument('addressBookId'), + $event->getArgument('cardUri') + ); + } + }; + $dispatcher->addListener('\OCA\DAV\CardDAV\CardDavBackend::updateCard', $clearPhotoCache); + $dispatcher->addListener('\OCA\DAV\CardDAV\CardDavBackend::deleteCard', $clearPhotoCache); + $dispatcher->addListener('OC\AccountManager::userUpdated', function(GenericEvent $event) { $user = $event->getSubject(); $syncService = $this->getContainer()->query(SyncService::class); diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php index 5deb648fa7f..983220c6ba0 100644 --- a/apps/dav/lib/CardDAV/CardDavBackend.php +++ b/apps/dav/lib/CardDAV/CardDavBackend.php @@ -93,7 +93,7 @@ class CardDavBackend implements BackendInterface, SyncSupport { public function __construct(IDBConnection $db, Principal $principalBackend, IUserManager $userManager, - EventDispatcherInterface $dispatcher = null) { + EventDispatcherInterface $dispatcher) { $this->db = $db; $this->principalBackend = $principalBackend; $this->userManager = $userManager; @@ -612,13 +612,11 @@ class CardDavBackend implements BackendInterface, SyncSupport { $this->addChange($addressBookId, $cardUri, 1); $this->updateProperties($addressBookId, $cardUri, $cardData); - if (!is_null($this->dispatcher)) { - $this->dispatcher->dispatch('\OCA\DAV\CardDAV\CardDavBackend::createCard', - new GenericEvent(null, [ - 'addressBookId' => $addressBookId, - 'cardUri' => $cardUri, - 'cardData' => $cardData])); - } + $this->dispatcher->dispatch('\OCA\DAV\CardDAV\CardDavBackend::createCard', + new GenericEvent(null, [ + 'addressBookId' => $addressBookId, + 'cardUri' => $cardUri, + 'cardData' => $cardData])); return '"' . $etag . '"'; } @@ -664,13 +662,11 @@ class CardDavBackend implements BackendInterface, SyncSupport { $this->addChange($addressBookId, $cardUri, 2); $this->updateProperties($addressBookId, $cardUri, $cardData); - if (!is_null($this->dispatcher)) { - $this->dispatcher->dispatch('\OCA\DAV\CardDAV\CardDavBackend::updateCard', - new GenericEvent(null, [ - 'addressBookId' => $addressBookId, - 'cardUri' => $cardUri, - 'cardData' => $cardData])); - } + $this->dispatcher->dispatch('\OCA\DAV\CardDAV\CardDavBackend::updateCard', + new GenericEvent(null, [ + 'addressBookId' => $addressBookId, + 'cardUri' => $cardUri, + 'cardData' => $cardData])); return '"' . $etag . '"'; } @@ -696,12 +692,10 @@ class CardDavBackend implements BackendInterface, SyncSupport { $this->addChange($addressBookId, $cardUri, 3); - if (!is_null($this->dispatcher)) { - $this->dispatcher->dispatch('\OCA\DAV\CardDAV\CardDavBackend::deleteCard', - new GenericEvent(null, [ - 'addressBookId' => $addressBookId, - 'cardUri' => $cardUri])); - } + $this->dispatcher->dispatch('\OCA\DAV\CardDAV\CardDavBackend::deleteCard', + new GenericEvent(null, [ + 'addressBookId' => $addressBookId, + 'cardUri' => $cardUri])); if ($ret === 1) { if ($cardId !== null) { diff --git a/apps/dav/lib/CardDAV/ImageExportPlugin.php b/apps/dav/lib/CardDAV/ImageExportPlugin.php index e48410d26d6..747c879ecd4 100644 --- a/apps/dav/lib/CardDAV/ImageExportPlugin.php +++ b/apps/dav/lib/CardDAV/ImageExportPlugin.php @@ -22,25 +22,28 @@ namespace OCA\DAV\CardDAV; +use OCP\Files\NotFoundException; use OCP\ILogger; use Sabre\CardDAV\Card; use Sabre\DAV\Server; use Sabre\DAV\ServerPlugin; use Sabre\HTTP\RequestInterface; use Sabre\HTTP\ResponseInterface; -use Sabre\VObject\Parameter; -use Sabre\VObject\Property\Binary; -use Sabre\VObject\Reader; class ImageExportPlugin extends ServerPlugin { /** @var Server */ protected $server; - /** @var ILogger */ - private $logger; + /** @var PhotoCache */ + private $cache; - public function __construct(ILogger $logger) { - $this->logger = $logger; + /** + * ImageExportPlugin constructor. + * + * @param PhotoCache $cache + */ + public function __construct(PhotoCache $cache) { + $this->cache = $cache; } /** @@ -49,8 +52,7 @@ class ImageExportPlugin extends ServerPlugin { * @param Server $server * @return void */ - function initialize(Server $server) { - + public function initialize(Server $server) { $this->server = $server; $this->server->on('method:GET', [$this, 'httpGet'], 90); } @@ -60,9 +62,9 @@ class ImageExportPlugin extends ServerPlugin { * * @param RequestInterface $request * @param ResponseInterface $response - * @return bool|void + * @return bool */ - function httpGet(RequestInterface $request, ResponseInterface $response) { + public function httpGet(RequestInterface $request, ResponseInterface $response) { $queryParams = $request->getQueryParameters(); // TODO: in addition to photo we should also add logo some point in time @@ -70,6 +72,8 @@ class ImageExportPlugin extends ServerPlugin { return true; } + $size = isset($queryParams['size']) ? (int)$queryParams['size'] : -1; + $path = $request->getPath(); $node = $this->server->tree->getNodeForPath($path); @@ -85,85 +89,28 @@ class ImageExportPlugin extends ServerPlugin { $aclPlugin->checkPrivileges($path, '{DAV:}read'); } - if ($result = $this->getPhoto($node)) { - $response->setHeader('Content-Type', $result['Content-Type']); + // Fetch addressbook + $addressbookpath = explode('/', $path); + array_pop($addressbookpath); + $addressbookpath = implode('/', $addressbookpath); + /** @var AddressBook $addressbook */ + $addressbook = $this->server->tree->getNodeForPath($addressbookpath); + + $response->setHeader('Cache-Control', 'private, max-age=3600, must-revalidate'); + $response->setHeader('Etag', $node->getETag() ); + $response->setHeader('Pragma', 'public'); + + try { + $file = $this->cache->get($addressbook->getResourceId(), $node->getName(), $size, $node); + $response->setHeader('Content-Type', $file->getMimeType()); $response->setHeader('Content-Disposition', 'attachment'); $response->setStatus(200); - $response->setBody($result['body']); - - // Returning false to break the event chain - return false; + $response->setBody($file->getContent()); + } catch (NotFoundException $e) { + $response->setStatus(404); } - return true; - } - function getPhoto(Card $node) { - // TODO: this is kind of expensive - load carddav data from database and parse it - // we might want to build up a cache one day - try { - $vObject = $this->readCard($node->get()); - if (!$vObject->PHOTO) { - return false; - } - - $photo = $vObject->PHOTO; - $type = $this->getType($photo); - - $val = $photo->getValue(); - if ($photo->getValueType() === 'URI') { - $parsed = \Sabre\URI\parse($val); - //only allow data:// - if ($parsed['scheme'] !== 'data') { - return false; - } - if (substr_count($parsed['path'], ';') === 1) { - list($type,) = explode(';', $parsed['path']); - } - $val = file_get_contents($val); - } - - $allowedContentTypes = [ - 'image/png', - 'image/jpeg', - 'image/gif', - ]; - - if(!in_array($type, $allowedContentTypes, true)) { - $type = 'application/octet-stream'; - } - - return [ - 'Content-Type' => $type, - 'body' => $val - ]; - } catch(\Exception $ex) { - $this->logger->logException($ex); - } return false; } - - private function readCard($cardData) { - return Reader::read($cardData); - } - - /** - * @param Binary $photo - * @return Parameter - */ - private function getType($photo) { - $params = $photo->parameters(); - if (isset($params['TYPE']) || isset($params['MEDIATYPE'])) { - /** @var Parameter $typeParam */ - $typeParam = isset($params['TYPE']) ? $params['TYPE'] : $params['MEDIATYPE']; - $type = $typeParam->getValue(); - - if (strpos($type, 'image/') === 0) { - return $type; - } else { - return 'image/' . strtolower($type); - } - } - return ''; - } } diff --git a/apps/dav/lib/CardDAV/PhotoCache.php b/apps/dav/lib/CardDAV/PhotoCache.php new file mode 100644 index 00000000000..c9625914263 --- /dev/null +++ b/apps/dav/lib/CardDAV/PhotoCache.php @@ -0,0 +1,246 @@ +<?php + +namespace OCA\DAV\CardDAV; + +use OCP\Files\IAppData; +use OCP\Files\NotFoundException; +use OCP\Files\NotPermittedException; +use OCP\Files\SimpleFS\ISimpleFile; +use OCP\Files\SimpleFS\ISimpleFolder; +use Sabre\CardDAV\Card; +use Sabre\VObject\Property\Binary; +use Sabre\VObject\Reader; + +class PhotoCache { + + /** @var IAppData $appData */ + protected $appData; + + /** + * PhotoCache constructor. + * + * @param IAppData $appData + */ + public function __construct(IAppData $appData) { + $this->appData = $appData; + } + + /** + * @param int $addressBookId + * @param string $cardUri + * @param int $size + * @param Card $card + * + * @return ISimpleFile + * @throws NotFoundException + */ + public function get($addressBookId, $cardUri, $size, Card $card) { + $folder = $this->getFolder($addressBookId, $cardUri); + + if ($this->isEmpty($folder)) { + $this->init($folder, $card); + } + + if (!$this->hasPhoto($folder)) { + throw new NotFoundException(); + } + + if ($size !== -1) { + $size = 2 ** ceil(log($size) / log(2)); + } + + return $this->getFile($folder, $size); + } + + /** + * @param ISimpleFolder $folder + * @return bool + */ + private function isEmpty(ISimpleFolder $folder) { + return $folder->getDirectoryListing() === []; + } + + /** + * @param ISimpleFolder $folder + * @param Card $card + */ + private function init(ISimpleFolder $folder, Card $card) { + $data = $this->getPhoto($card); + + if ($data === false) { + $folder->newFile('nophoto'); + } else { + switch ($data['Content-Type']) { + case 'image/png': + $ext = 'png'; + break; + case 'image/jpeg': + $ext = 'jpg'; + break; + case 'image/gif': + $ext = 'gif'; + break; + } + $file = $folder->newFile('photo.' . $ext); + $file->putContent($data['body']); + } + } + + private function hasPhoto(ISimpleFolder $folder) { + return !$folder->fileExists('nophoto'); + } + + private function getFile(ISimpleFolder $folder, $size) { + $ext = $this->getExtension($folder); + + if ($size === -1) { + $path = 'photo.' . $ext; + } else { + $path = 'photo.' . $size . '.' . $ext; + } + + try { + $file = $folder->getFile($path); + } catch (NotFoundException $e) { + if ($size <= 0) { + throw new NotFoundException; + } + + $photo = new \OC_Image(); + /** @var ISimpleFile $file */ + $file = $folder->getFile('photo.' . $ext); + $photo->loadFromData($file->getContent()); + + $ratio = $photo->width() / $photo->height(); + if ($ratio < 1) { + $ratio = 1/$ratio; + } + $size = (int)($size * $ratio); + + if ($size !== -1) { + $photo->resize($size); + } + try { + $file = $folder->newFile($path); + $file->putContent($photo->data()); + } catch (NotPermittedException $e) { + + } + } + + return $file; + } + + + /** + * @param int $addressBookId + * @param string $cardUri + * @return ISimpleFolder + */ + private function getFolder($addressBookId, $cardUri) { + $hash = md5($addressBookId . ' ' . $cardUri); + try { + return $this->appData->getFolder($hash); + } catch (NotFoundException $e) { + return $this->appData->newFolder($hash); + } + } + + /** + * Get the extension of the avatar. If there is no avatar throw Exception + * + * @param ISimpleFolder $folder + * @return string + * @throws NotFoundException + */ + private function getExtension(ISimpleFolder $folder) { + if ($folder->fileExists('photo.jpg')) { + return 'jpg'; + } elseif ($folder->fileExists('photo.png')) { + return 'png'; + } elseif ($folder->fileExists('photo.gif')) { + return 'gif'; + } + throw new NotFoundException; + } + + private function getPhoto(Card $node) { + try { + $vObject = $this->readCard($node->get()); + if (!$vObject->PHOTO) { + return false; + } + + $photo = $vObject->PHOTO; + $type = $this->getType($photo); + + $val = $photo->getValue(); + if ($photo->getValueType() === 'URI') { + $parsed = \Sabre\URI\parse($val); + //only allow data:// + if ($parsed['scheme'] !== 'data') { + return false; + } + if (substr_count($parsed['path'], ';') === 1) { + list($type,) = explode(';', $parsed['path']); + } + $val = file_get_contents($val); + } + + $allowedContentTypes = [ + 'image/png', + 'image/jpeg', + 'image/gif', + ]; + + if(!in_array($type, $allowedContentTypes, true)) { + $type = 'application/octet-stream'; + } + + return [ + 'Content-Type' => $type, + 'body' => $val + ]; + } catch(\Exception $ex) { + + } + return false; + } + + /** + * @param string $cardData + * @return \Sabre\VObject\Document + */ + private function readCard($cardData) { + return Reader::read($cardData); + } + + /** + * @param Binary $photo + * @return string + */ + private function getType(Binary $photo) { + $params = $photo->parameters(); + if (isset($params['TYPE']) || isset($params['MEDIATYPE'])) { + /** @var Parameter $typeParam */ + $typeParam = isset($params['TYPE']) ? $params['TYPE'] : $params['MEDIATYPE']; + $type = $typeParam->getValue(); + + if (strpos($type, 'image/') === 0) { + return $type; + } else { + return 'image/' . strtolower($type); + } + } + return ''; + } + + /** + * @param int $addressBookId + * @param string $cardUri + */ + public function delete($addressBookId, $cardUri) { + $folder = $this->getFolder($addressBookId, $cardUri); + $folder->delete(); + } +} diff --git a/apps/dav/lib/Connector/PublicAuth.php b/apps/dav/lib/Connector/PublicAuth.php index 94fa370a873..5fca8d5c020 100644 --- a/apps/dav/lib/Connector/PublicAuth.php +++ b/apps/dav/lib/Connector/PublicAuth.php @@ -96,7 +96,7 @@ class PublicAuth extends AbstractBasic { // check if the share is password protected if ($share->getPassword() !== null) { - if ($share->getShareType() === \OCP\Share::SHARE_TYPE_LINK) { + if ($share->getShareType() === \OCP\Share::SHARE_TYPE_LINK || $share->getShareType() === \OCP\Share::SHARE_TYPE_EMAIL) { if ($this->shareManager->checkPassword($share, $password)) { return true; } else if ($this->session->exists('public_link_authenticated') diff --git a/apps/dav/lib/Connector/Sabre/Directory.php b/apps/dav/lib/Connector/Sabre/Directory.php index 435f47ee561..cb5a2ab8123 100644 --- a/apps/dav/lib/Connector/Sabre/Directory.php +++ b/apps/dav/lib/Connector/Sabre/Directory.php @@ -30,9 +30,11 @@ */ namespace OCA\DAV\Connector\Sabre; +use OC\Files\View; use OCA\DAV\Connector\Sabre\Exception\Forbidden; use OCA\DAV\Connector\Sabre\Exception\InvalidPath; use OCA\DAV\Connector\Sabre\Exception\FileLocked; +use OCP\Files\FileInfo; use OCP\Files\ForbiddenException; use OCP\Files\InvalidPathException; use OCP\Files\StorageNotAvailableException; @@ -76,7 +78,7 @@ class Directory extends \OCA\DAV\Connector\Sabre\Node * @param ObjectTree|null $tree * @param \OCP\Share\IManager $shareManager */ - public function __construct($view, $info, $tree = null, $shareManager = null) { + public function __construct(View $view, FileInfo $info, $tree = null, $shareManager = null) { parent::__construct($view, $info, $shareManager); $this->tree = $tree; } diff --git a/apps/dav/lib/Connector/Sabre/FilesPlugin.php b/apps/dav/lib/Connector/Sabre/FilesPlugin.php index 4c426dd1052..30eeaaacf63 100644 --- a/apps/dav/lib/Connector/Sabre/FilesPlugin.php +++ b/apps/dav/lib/Connector/Sabre/FilesPlugin.php @@ -343,6 +343,9 @@ class FilesPlugin extends ServerPlugin { $propFind->handle(self::SIZE_PROPERTYNAME, function() use ($node) { return $node->getSize(); }); + $propFind->handle(self::MOUNT_TYPE_PROPERTYNAME, function () use ($node) { + return $node->getFileInfo()->getMountPoint()->getMountType(); + }); } if ($node instanceof \OCA\DAV\Connector\Sabre\Node) { @@ -383,10 +386,6 @@ class FilesPlugin extends ServerPlugin { return $node->getSize(); }); } - - $propFind->handle(self::MOUNT_TYPE_PROPERTYNAME, function () use ($node) { - return $node->getFileInfo()->getMountPoint()->getMountType(); - }); } /** diff --git a/apps/dav/lib/Connector/Sabre/Node.php b/apps/dav/lib/Connector/Sabre/Node.php index 3e2204cf661..06933f53e76 100644 --- a/apps/dav/lib/Connector/Sabre/Node.php +++ b/apps/dav/lib/Connector/Sabre/Node.php @@ -34,7 +34,9 @@ namespace OCA\DAV\Connector\Sabre; use OC\Files\Mount\MoveableMount; +use OC\Files\View; use OCA\DAV\Connector\Sabre\Exception\InvalidPath; +use OCP\Files\FileInfo; use OCP\Share\Exceptions\ShareNotFound; use OCP\Share\IManager; @@ -77,7 +79,7 @@ abstract class Node implements \Sabre\DAV\INode { * @param \OCP\Files\FileInfo $info * @param IManager $shareManager */ - public function __construct($view, $info, IManager $shareManager = null) { + public function __construct(View $view, FileInfo $info, IManager $shareManager = null) { $this->fileView = $view; $this->path = $this->fileView->getRelativePath($info->getPath()); $this->info = $info; diff --git a/apps/dav/lib/Server.php b/apps/dav/lib/Server.php index 5b0715b0dad..df5b0ea05b6 100644 --- a/apps/dav/lib/Server.php +++ b/apps/dav/lib/Server.php @@ -30,6 +30,7 @@ namespace OCA\DAV; use OCA\DAV\CalDAV\Schedule\IMipPlugin; use OCA\DAV\CardDAV\ImageExportPlugin; +use OCA\DAV\CardDAV\PhotoCache; use OCA\DAV\Comments\CommentsPlugin; use OCA\DAV\Connector\Sabre\Auth; use OCA\DAV\Connector\Sabre\BlockLegacyClientPlugin; @@ -137,7 +138,7 @@ class Server { // addressbook plugins $this->server->addPlugin(new \OCA\DAV\CardDAV\Plugin()); $this->server->addPlugin(new VCFExportPlugin()); - $this->server->addPlugin(new ImageExportPlugin(\OC::$server->getLogger())); + $this->server->addPlugin(new ImageExportPlugin(new PhotoCache(\OC::$server->getAppDataDir('dav-photocache')))); // system tags plugins $this->server->addPlugin(new SystemTagPlugin( diff --git a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php index c108432d65b..f3a271a2db2 100644 --- a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php +++ b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php @@ -34,9 +34,12 @@ use OCA\DAV\Connector\Sabre\Principal; use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\IDBConnection; use OCP\IL10N; +use OCP\IUserManager; use Sabre\DAV\PropPatch; use Sabre\VObject\Component\VCard; use Sabre\VObject\Property\Text; +use Symfony\Component\EventDispatcher\EventDispatcherInterface; +use Symfony\Component\EventDispatcher\GenericEvent; use Test\TestCase; /** @@ -54,9 +57,12 @@ class CardDavBackendTest extends TestCase { /** @var Principal | \PHPUnit_Framework_MockObject_MockObject */ private $principal; - /** @var \OCP\IUserManager|\PHPUnit_Framework_MockObject_MockObject */ + /** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */ private $userManager; + /** @var EventDispatcherInterface|\PHPUnit_Framework_MockObject_MockObject */ + private $dispatcher; + /** @var IDBConnection */ private $db; @@ -73,9 +79,7 @@ class CardDavBackendTest extends TestCase { public function setUp() { parent::setUp(); - $this->userManager = $this->getMockBuilder('OCP\IUserManager') - ->disableOriginalConstructor() - ->getMock(); + $this->userManager = $this->createMock(IUserManager::class); $this->principal = $this->getMockBuilder('OCA\DAV\Connector\Sabre\Principal') ->disableOriginalConstructor() ->setMethods(['getPrincipalByPath', 'getGroupMembership']) @@ -88,11 +92,11 @@ class CardDavBackendTest extends TestCase { $this->principal->method('getGroupMembership') ->withAnyParameters() ->willReturn([self::UNIT_TEST_GROUP]); + $this->dispatcher = $this->createMock(EventDispatcherInterface::class); $this->db = \OC::$server->getDatabaseConnection(); - $this->backend = new CardDavBackend($this->db, $this->principal, $this->userManager, null); - + $this->backend = new CardDavBackend($this->db, $this->principal, $this->userManager, $this->dispatcher); // start every test with a empty cards_properties and cards table $query = $this->db->getQueryBuilder(); $query->delete('cards_properties')->execute(); @@ -172,7 +176,7 @@ class CardDavBackendTest extends TestCase { /** @var CardDavBackend | \PHPUnit_Framework_MockObject_MockObject $backend */ $backend = $this->getMockBuilder(CardDavBackend::class) - ->setConstructorArgs([$this->db, $this->principal, $this->userManager, null]) + ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher]) ->setMethods(['updateProperties', 'purgeProperties'])->getMock(); // create a new address book @@ -185,6 +189,16 @@ class CardDavBackendTest extends TestCase { // updateProperties is expected twice, once for createCard and once for updateCard $backend->expects($this->at(0))->method('updateProperties')->with($bookId, $uri, ''); $backend->expects($this->at(1))->method('updateProperties')->with($bookId, $uri, '***'); + + // Expect event + $this->dispatcher->expects($this->at(0)) + ->method('dispatch') + ->with('\OCA\DAV\CardDAV\CardDavBackend::createCard', $this->callback(function(GenericEvent $e) use ($bookId, $uri) { + return $e->getArgument('addressBookId') === $bookId && + $e->getArgument('cardUri') === $uri && + $e->getArgument('cardData') === ''; + })); + // create a card $backend->createCard($bookId, $uri, ''); @@ -203,11 +217,28 @@ class CardDavBackendTest extends TestCase { $this->assertArrayHasKey('size', $card); $this->assertEquals('', $card['carddata']); + // Expect event + $this->dispatcher->expects($this->at(0)) + ->method('dispatch') + ->with('\OCA\DAV\CardDAV\CardDavBackend::updateCard', $this->callback(function(GenericEvent $e) use ($bookId, $uri) { + return $e->getArgument('addressBookId') === $bookId && + $e->getArgument('cardUri') === $uri && + $e->getArgument('cardData') === '***'; + })); + // update the card $backend->updateCard($bookId, $uri, '***'); $card = $backend->getCard($bookId, $uri); $this->assertEquals('***', $card['carddata']); + // Expect event + $this->dispatcher->expects($this->at(0)) + ->method('dispatch') + ->with('\OCA\DAV\CardDAV\CardDavBackend::deleteCard', $this->callback(function(GenericEvent $e) use ($bookId, $uri) { + return $e->getArgument('addressBookId') === $bookId && + $e->getArgument('cardUri') === $uri; + })); + // delete the card $backend->expects($this->once())->method('purgeProperties')->with($bookId, $card['id']); $backend->deleteCard($bookId, $uri); @@ -218,7 +249,7 @@ class CardDavBackendTest extends TestCase { public function testMultiCard() { $this->backend = $this->getMockBuilder(CardDavBackend::class) - ->setConstructorArgs([$this->db, $this->principal, $this->userManager, null]) + ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher]) ->setMethods(['updateProperties'])->getMock(); // create a new address book @@ -264,7 +295,7 @@ class CardDavBackendTest extends TestCase { public function testDeleteWithoutCard() { $this->backend = $this->getMockBuilder(CardDavBackend::class) - ->setConstructorArgs([$this->db, $this->principal, $this->userManager, null]) + ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher]) ->setMethods([ 'getCardId', 'addChange', @@ -304,7 +335,7 @@ class CardDavBackendTest extends TestCase { public function testSyncSupport() { $this->backend = $this->getMockBuilder(CardDavBackend::class) - ->setConstructorArgs([$this->db, $this->principal, $this->userManager, null]) + ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher]) ->setMethods(['updateProperties'])->getMock(); // create a new address book @@ -363,7 +394,7 @@ class CardDavBackendTest extends TestCase { $cardId = 2; $backend = $this->getMockBuilder(CardDavBackend::class) - ->setConstructorArgs([$this->db, $this->principal, $this->userManager, null]) + ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher]) ->setMethods(['getCardId'])->getMock(); $backend->expects($this->any())->method('getCardId')->willReturn($cardId); diff --git a/apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php b/apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php index fc4be1433fe..e773e41ba5e 100644 --- a/apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php +++ b/apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php @@ -25,9 +25,13 @@ namespace OCA\DAV\Tests\unit\CardDAV; +use OCA\DAV\CardDAV\AddressBook; use OCA\DAV\CardDAV\ImageExportPlugin; -use OCP\ILogger; +use OCA\DAV\CardDAV\PhotoCache; +use OCP\Files\NotFoundException; +use OCP\Files\SimpleFS\ISimpleFile; use Sabre\CardDAV\Card; +use Sabre\DAV\Node; use Sabre\DAV\Server; use Sabre\DAV\Tree; use Sabre\HTTP\RequestInterface; @@ -36,32 +40,32 @@ use Test\TestCase; class ImageExportPluginTest extends TestCase { - /** @var ResponseInterface | \PHPUnit_Framework_MockObject_MockObject */ + /** @var ResponseInterface|\PHPUnit_Framework_MockObject_MockObject */ private $response; - /** @var RequestInterface | \PHPUnit_Framework_MockObject_MockObject */ + /** @var RequestInterface|\PHPUnit_Framework_MockObject_MockObject */ private $request; - /** @var ImageExportPlugin | \PHPUnit_Framework_MockObject_MockObject */ + /** @var ImageExportPlugin|\PHPUnit_Framework_MockObject_MockObject */ private $plugin; /** @var Server */ private $server; - /** @var Tree | \PHPUnit_Framework_MockObject_MockObject */ + /** @var Tree|\PHPUnit_Framework_MockObject_MockObject */ private $tree; - /** @var ILogger | \PHPUnit_Framework_MockObject_MockObject */ - private $logger; + /** @var PhotoCache|\PHPUnit_Framework_MockObject_MockObject */ + private $cache; function setUp() { parent::setUp(); - $this->request = $this->getMockBuilder('Sabre\HTTP\RequestInterface')->getMock(); - $this->response = $this->getMockBuilder('Sabre\HTTP\ResponseInterface')->getMock(); - $this->server = $this->getMockBuilder('Sabre\DAV\Server')->getMock(); - $this->tree = $this->getMockBuilder('Sabre\DAV\Tree')->disableOriginalConstructor()->getMock(); + $this->request = $this->createMock(RequestInterface::class); + $this->response = $this->createMock(ResponseInterface::class); + $this->server = $this->createMock(Server::class); + $this->tree = $this->createMock(Tree::class); $this->server->tree = $this->tree; - $this->logger = $this->getMockBuilder('\OCP\ILogger')->getMock(); + $this->cache = $this->createMock(PhotoCache::class); - $this->plugin = $this->getMockBuilder('OCA\DAV\CardDAV\ImageExportPlugin') + $this->plugin = $this->getMockBuilder(ImageExportPlugin::class) ->setMethods(['getPhoto']) - ->setConstructorArgs([$this->logger]) + ->setConstructorArgs([$this->cache]) ->getMock(); $this->plugin->initialize($this->server); } @@ -84,112 +88,115 @@ class ImageExportPluginTest extends TestCase { ]; } - public function testNotACard() { - $this->request->expects($this->once())->method('getQueryParameters')->willReturn(['photo' => true]); - $this->request->expects($this->once())->method('getPath')->willReturn('/files/welcome.txt'); - $this->tree->expects($this->once())->method('getNodeForPath')->with('/files/welcome.txt')->willReturn(null); - $result = $this->plugin->httpGet($this->request, $this->response); - $this->assertTrue($result); - } - - /** - * @dataProvider providesCardWithOrWithoutPhoto - * @param bool $expected - * @param array $getPhotoResult - */ - public function testCardWithOrWithoutPhoto($expected, $getPhotoResult) { - $this->request->expects($this->once())->method('getQueryParameters')->willReturn(['photo' => true]); - $this->request->expects($this->once())->method('getPath')->willReturn('/files/welcome.txt'); + public function testNoCard() { + $this->request->method('getQueryParameters') + ->willReturn([ + 'photo' + ]); + $this->request->method('getPath') + ->willReturn('user/book/card'); - $card = $this->getMockBuilder('Sabre\CardDAV\Card')->disableOriginalConstructor()->getMock(); - $this->tree->expects($this->once())->method('getNodeForPath')->with('/files/welcome.txt')->willReturn($card); - - $this->plugin->expects($this->once())->method('getPhoto')->willReturn($getPhotoResult); - - if (!$expected) { - $this->response - ->expects($this->at(0)) - ->method('setHeader') - ->with('Content-Type', $getPhotoResult['Content-Type']); - $this->response - ->expects($this->at(1)) - ->method('setHeader') - ->with('Content-Disposition', 'attachment'); - $this->response - ->expects($this->once()) - ->method('setStatus'); - $this->response - ->expects($this->once()) - ->method('setBody'); - } + $node = $this->createMock(Node::class); + $this->tree->method('getNodeForPath') + ->with('user/book/card') + ->willReturn($node); $result = $this->plugin->httpGet($this->request, $this->response); - $this->assertEquals($expected, $result); + $this->assertTrue($result); } - public function providesCardWithOrWithoutPhoto() { + public function dataTestCard() { return [ - [true, null], - [false, ['Content-Type' => 'image/jpeg', 'body' => '1234']], + [null, false], + [null, true], + [32, false], + [32, true], ]; } /** - * @dataProvider providesPhotoData - * @param $expected - * @param $cardData + * @dataProvider dataTestCard + * + * @param $size + * @param bool $photo */ - public function testGetPhoto($expected, $cardData) { - /** @var Card | \PHPUnit_Framework_MockObject_MockObject $card */ - $card = $this->getMockBuilder('Sabre\CardDAV\Card')->disableOriginalConstructor()->getMock(); - $card->expects($this->once())->method('get')->willReturn($cardData); + public function testCard($size, $photo) { + $query = ['photo' => null]; + if ($size !== null) { + $query['size'] = $size; + } - $this->plugin = new ImageExportPlugin($this->logger); - $this->plugin->initialize($this->server); + $this->request->method('getQueryParameters') + ->willReturn($query); + $this->request->method('getPath') + ->willReturn('user/book/card'); + + $card = $this->createMock(Card::class); + $card->method('getETag') + ->willReturn('"myEtag"'); + $card->method('getName') + ->willReturn('card'); + $book = $this->createMock(AddressBook::class); + $book->method('getResourceId') + ->willReturn(1); + + $this->tree->method('getNodeForPath') + ->willReturnCallback(function($path) use ($card, $book) { + if ($path === 'user/book/card') { + return $card; + } else if ($path === 'user/book') { + return $book; + } + $this->fail(); + }); + + $this->response->expects($this->at(0)) + ->method('setHeader') + ->with('Cache-Control', 'private, max-age=3600, must-revalidate'); + $this->response->expects($this->at(1)) + ->method('setHeader') + ->with('Etag', '"myEtag"'); + $this->response->expects($this->at(2)) + ->method('setHeader') + ->with('Pragma', 'public'); + + $size = $size === null ? -1 : $size; + + if ($photo) { + $file = $this->createMock(ISimpleFile::class); + $file->method('getMimeType') + ->willReturn('imgtype'); + $file->method('getContent') + ->willReturn('imgdata'); + + $this->cache->method('get') + ->with(1, 'card', $size, $card) + ->willReturn($file); + + $this->response->expects($this->at(3)) + ->method('setHeader') + ->with('Content-Type', 'imgtype'); + $this->response->expects($this->at(4)) + ->method('setHeader') + ->with('Content-Disposition', 'attachment'); - $result = $this->plugin->getPhoto($card); - $this->assertEquals($expected, $result); - } + $this->response->expects($this->once()) + ->method('setStatus') + ->with(200); + $this->response->expects($this->once()) + ->method('setBody') + ->with('imgdata'); + + } else { + $this->cache->method('get') + ->with(1, 'card', $size, $card) + ->willThrowException(new NotFoundException()); + $this->response->expects($this->once()) + ->method('setStatus') + ->with(404); + } - public function providesPhotoData() { - return [ - 'empty vcard' => [ - false, - '' - ], - 'vcard without PHOTO' => [ - false, - "BEGIN:VCARD\r\nVERSION:3.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.1//EN\r\nUID:12345\r\nFN:12345\r\nN:12345;;;;\r\nEND:VCARD\r\n" - ], - 'vcard 3 with PHOTO' => [ - [ - 'Content-Type' => 'image/jpeg', - 'body' => '12345' - ], - "BEGIN:VCARD\r\nVERSION:3.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.1//EN\r\nUID:12345\r\nFN:12345\r\nN:12345;;;;\r\nPHOTO;ENCODING=b;TYPE=JPEG:MTIzNDU=\r\nEND:VCARD\r\n" - ], - 'vcard 3 with PHOTO URL' => [ - false, - "BEGIN:VCARD\r\nVERSION:3.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.1//EN\r\nUID:12345\r\nFN:12345\r\nN:12345;;;;\r\nPHOTO;TYPE=JPEG;VALUE=URI:http://example.com/photo.jpg\r\nEND:VCARD\r\n" - ], - 'vcard 4 with PHOTO' => [ - [ - 'Content-Type' => 'image/jpeg', - 'body' => '12345' - ], - "BEGIN:VCARD\r\nVERSION:4.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.1//EN\r\nUID:12345\r\nFN:12345\r\nN:12345;;;;\r\nPHOTO:data:image/jpeg;base64,MTIzNDU=\r\nEND:VCARD\r\n" - ], - 'vcard 4 with PHOTO URL' => [ - false, - "BEGIN:VCARD\r\nVERSION:4.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.1//EN\r\nUID:12345\r\nFN:12345\r\nN:12345;;;;\r\nPHOTO;MEDIATYPE=image/jpeg:http://example.org/photo.jpg\r\nEND:VCARD\r\n" - ], - 'vcard 4 with PHOTO AND INVALID MIMEtYPE' => [ - [ - 'Content-Type' => 'application/octet-stream', - 'body' => '12345' - ], - "BEGIN:VCARD\r\nVERSION:4.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.1//EN\r\nUID:12345\r\nFN:12345\r\nN:12345;;;;\r\nPHOTO:data:image/svg;base64,MTIzNDU=\r\nEND:VCARD\r\n" - ], - ]; + $result = $this->plugin->httpGet($this->request, $this->response); + $this->assertFalse($result); } } diff --git a/apps/dav/tests/unit/Connector/PublicAuthTest.php b/apps/dav/tests/unit/Connector/PublicAuthTest.php index 47e1a5be7b8..41cfc0f8ceb 100644 --- a/apps/dav/tests/unit/Connector/PublicAuthTest.php +++ b/apps/dav/tests/unit/Connector/PublicAuthTest.php @@ -33,7 +33,7 @@ use OCP\Share\IManager; * Class PublicAuthTest * * @group DB - * + * * @package OCA\DAV\Tests\unit\Connector */ class PublicAuthTest extends \Test\TestCase { @@ -163,6 +163,28 @@ class PublicAuthTest extends \Test\TestCase { $this->assertTrue($result); } + public function testSharePasswordMailValidPassword() { + $share = $this->getMockBuilder('OCP\Share\IShare') + ->disableOriginalConstructor() + ->getMock(); + $share->method('getPassword')->willReturn('password'); + $share->method('getShareType')->willReturn(\OCP\Share::SHARE_TYPE_EMAIL); + + $this->shareManager->expects($this->once()) + ->method('getShareByToken') + ->willReturn($share); + + $this->shareManager->expects($this->once()) + ->method('checkPassword')->with( + $this->equalTo($share), + $this->equalTo('password') + )->willReturn(true); + + $result = $this->invokePrivate($this->auth, 'validateUserPass', ['username', 'password']); + + $this->assertTrue($result); + } + public function testSharePasswordLinkValidSession() { $share = $this->getMockBuilder('OCP\Share\IShare') ->disableOriginalConstructor() @@ -214,4 +236,32 @@ class PublicAuthTest extends \Test\TestCase { $this->assertFalse($result); } + + + public function testSharePasswordMailInvalidSession() { + $share = $this->getMockBuilder('OCP\Share\IShare') + ->disableOriginalConstructor() + ->getMock(); + $share->method('getPassword')->willReturn('password'); + $share->method('getShareType')->willReturn(\OCP\Share::SHARE_TYPE_EMAIL); + $share->method('getId')->willReturn('42'); + + $this->shareManager->expects($this->once()) + ->method('getShareByToken') + ->willReturn($share); + + $this->shareManager->method('checkPassword') + ->with( + $this->equalTo($share), + $this->equalTo('password') + )->willReturn(false); + + $this->session->method('exists')->with('public_link_authenticated')->willReturn(true); + $this->session->method('get')->with('public_link_authenticated')->willReturn('43'); + + $result = $this->invokePrivate($this->auth, 'validateUserPass', ['username', 'password']); + + $this->assertFalse($result); + } + } diff --git a/apps/encryption/l10n/pt_BR.js b/apps/encryption/l10n/pt_BR.js index e0954a6bc1f..4d768482881 100644 --- a/apps/encryption/l10n/pt_BR.js +++ b/apps/encryption/l10n/pt_BR.js @@ -29,11 +29,11 @@ OC.L10N.register( "Missing Signature" : "Assinatura faltante", "one-time password for server-side-encryption" : "senha de uso único para criptografia do lado do servidor", "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Este arquivo não pode ser descriptografado pois provavelmente é um arquivo compartilhado. Por favor, peça ao dono do arquivo para recompartilhá-lo com você.", - "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não é possível ler este arquivo pois provavelmente é um arquivo compartilhado. Por favor, peça ao dono do arquivo para recompartilhá-lo com você.", - "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Olá,\n\nO administrador habilitou a criptografia do lado do servidor. Os seus arquivos foram criptografados usando a senha '%s'.\n\nPor favor faça o login na interface da Web, vá para a seção 'módulo de criptografia básico' das suas definições pessoais e atualize sua senha de criptografia, inserindo esta senha no campo 'senha antiga de log-in' e sua senha de login atual.\n\n", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não foi possível ler este arquivo pois provavelmente é um arquivo compartilhado. Por favor, peça ao dono do arquivo para recompartilhá-lo com você.", + "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Olá,\n\nO administrador habilitou a criptografia do lado do servidor. Os seus arquivos foram criptografados usando a senha '%s'.\n\nPor favor faça o login na interface web, vá para a seção 'módulo de criptografia básico' das suas definições pessoais e atualize sua senha de criptografia, inserindo esta senha no campo 'senha antiga de log-in' e sua senha de login atual.\n\n", "The share will expire on %s." : "O compartilhamento irá expirar em %s.", "Cheers!" : "Saudações!", - "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Olá,<br><br>o administrador habilitou a criptografia do lado do servidor. Os seus arquivos foram criptografados usando a senha <strong>%s</strong>.<br><br>Por favor, faça o login na interface da Web, vá para a seção 'módulo de criptografia básico' das suas definições pessoais e atualize sua senha de criptografia, inserindo esta senha no campo 'senha antiga de log-in' e sua senha de login atual.<br><br>", + "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Olá,<br><br>o administrador habilitou a criptografia do lado do servidor. Os seus arquivos foram criptografados usando a senha <strong>%s</strong>.<br><br>Por favor, faça o login na interface web, vá para a seção 'módulo de criptografia básico' das suas definições pessoais e atualize sua senha de criptografia, inserindo esta senha no campo 'senha antiga de log-in' e sua senha de login atual.<br><br>", "Default encryption module" : "Módulo de criptografia padrão", "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "O aplicativo de criptografia está habilitado, mas suas chaves não foram inicializadas. Por favor, saia e entre novamente.", "Encrypt the home storage" : "Criptografar a pasta de armazenamento home", diff --git a/apps/encryption/l10n/pt_BR.json b/apps/encryption/l10n/pt_BR.json index 85982d7769d..9cebb7d437e 100644 --- a/apps/encryption/l10n/pt_BR.json +++ b/apps/encryption/l10n/pt_BR.json @@ -27,11 +27,11 @@ "Missing Signature" : "Assinatura faltante", "one-time password for server-side-encryption" : "senha de uso único para criptografia do lado do servidor", "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Este arquivo não pode ser descriptografado pois provavelmente é um arquivo compartilhado. Por favor, peça ao dono do arquivo para recompartilhá-lo com você.", - "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não é possível ler este arquivo pois provavelmente é um arquivo compartilhado. Por favor, peça ao dono do arquivo para recompartilhá-lo com você.", - "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Olá,\n\nO administrador habilitou a criptografia do lado do servidor. Os seus arquivos foram criptografados usando a senha '%s'.\n\nPor favor faça o login na interface da Web, vá para a seção 'módulo de criptografia básico' das suas definições pessoais e atualize sua senha de criptografia, inserindo esta senha no campo 'senha antiga de log-in' e sua senha de login atual.\n\n", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Não foi possível ler este arquivo pois provavelmente é um arquivo compartilhado. Por favor, peça ao dono do arquivo para recompartilhá-lo com você.", + "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Olá,\n\nO administrador habilitou a criptografia do lado do servidor. Os seus arquivos foram criptografados usando a senha '%s'.\n\nPor favor faça o login na interface web, vá para a seção 'módulo de criptografia básico' das suas definições pessoais e atualize sua senha de criptografia, inserindo esta senha no campo 'senha antiga de log-in' e sua senha de login atual.\n\n", "The share will expire on %s." : "O compartilhamento irá expirar em %s.", "Cheers!" : "Saudações!", - "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Olá,<br><br>o administrador habilitou a criptografia do lado do servidor. Os seus arquivos foram criptografados usando a senha <strong>%s</strong>.<br><br>Por favor, faça o login na interface da Web, vá para a seção 'módulo de criptografia básico' das suas definições pessoais e atualize sua senha de criptografia, inserindo esta senha no campo 'senha antiga de log-in' e sua senha de login atual.<br><br>", + "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Olá,<br><br>o administrador habilitou a criptografia do lado do servidor. Os seus arquivos foram criptografados usando a senha <strong>%s</strong>.<br><br>Por favor, faça o login na interface web, vá para a seção 'módulo de criptografia básico' das suas definições pessoais e atualize sua senha de criptografia, inserindo esta senha no campo 'senha antiga de log-in' e sua senha de login atual.<br><br>", "Default encryption module" : "Módulo de criptografia padrão", "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "O aplicativo de criptografia está habilitado, mas suas chaves não foram inicializadas. Por favor, saia e entre novamente.", "Encrypt the home storage" : "Criptografar a pasta de armazenamento home", diff --git a/apps/federatedfilesharing/l10n/cs.js b/apps/federatedfilesharing/l10n/cs.js index 0990c907905..580b8ffac6f 100644 --- a/apps/federatedfilesharing/l10n/cs.js +++ b/apps/federatedfilesharing/l10n/cs.js @@ -39,11 +39,15 @@ OC.L10N.register( "Share with me through my #Nextcloud Federated Cloud ID" : "Sdílej se mnou pomocí mého #Nextcloud sdruženého cloud ID", "Federated Cloud Sharing" : "Propojené cloudové sdílení", "Open documentation" : "Otevřít dokumentaci", + "Adjust how people can share between servers." : "Upravte, jak mohou lidé mezi servery sdílet.", "Allow users on this server to send shares to other servers" : "Povolit uživatelům z tohoto serveru zasílat sdílení na jiné servery", "Allow users on this server to receive shares from other servers" : "Povolit uživatelům na tomto serveru přijímat sdílení z jiných serverů", + "Search global and public address book for users and let local users publish their data" : "Hledat uživatele v globálním a veřejném adresáři a dovolit místním uživatelům publikovat jejich údaje", "Allow users to publish their data to a global and public address book" : "Povolit uživatelům publikování jejich dat do globálního a sdíleného adresáře", "Federated Cloud" : "Sdružený cloud", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Můžete sdílet s kýmkoliv, kdo používá Nextcloud, ownCloud, nebo Pydio! Jen zadejte jejich sdružené cloud ID do dialogu pro sdílení. Vypadá jako person@cloud.example.com", "Your Federated Cloud ID:" : "Vaše sdružené cloud ID:", + "Share it so your friends can share files with you:" : "Nasdílejte to, aby mohli vaši přátelé sdílet soubory s vámi:", "Add to your website" : "Přidat na svou webovou stránku", "Share with me via Nextcloud" : "Sdíleno se mnou přes Nextcloud", "HTML Code:" : "HTML kód:", diff --git a/apps/federatedfilesharing/l10n/cs.json b/apps/federatedfilesharing/l10n/cs.json index a9fdf3405f3..00085eb0d23 100644 --- a/apps/federatedfilesharing/l10n/cs.json +++ b/apps/federatedfilesharing/l10n/cs.json @@ -37,11 +37,15 @@ "Share with me through my #Nextcloud Federated Cloud ID" : "Sdílej se mnou pomocí mého #Nextcloud sdruženého cloud ID", "Federated Cloud Sharing" : "Propojené cloudové sdílení", "Open documentation" : "Otevřít dokumentaci", + "Adjust how people can share between servers." : "Upravte, jak mohou lidé mezi servery sdílet.", "Allow users on this server to send shares to other servers" : "Povolit uživatelům z tohoto serveru zasílat sdílení na jiné servery", "Allow users on this server to receive shares from other servers" : "Povolit uživatelům na tomto serveru přijímat sdílení z jiných serverů", + "Search global and public address book for users and let local users publish their data" : "Hledat uživatele v globálním a veřejném adresáři a dovolit místním uživatelům publikovat jejich údaje", "Allow users to publish their data to a global and public address book" : "Povolit uživatelům publikování jejich dat do globálního a sdíleného adresáře", "Federated Cloud" : "Sdružený cloud", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Můžete sdílet s kýmkoliv, kdo používá Nextcloud, ownCloud, nebo Pydio! Jen zadejte jejich sdružené cloud ID do dialogu pro sdílení. Vypadá jako person@cloud.example.com", "Your Federated Cloud ID:" : "Vaše sdružené cloud ID:", + "Share it so your friends can share files with you:" : "Nasdílejte to, aby mohli vaši přátelé sdílet soubory s vámi:", "Add to your website" : "Přidat na svou webovou stránku", "Share with me via Nextcloud" : "Sdíleno se mnou přes Nextcloud", "HTML Code:" : "HTML kód:", diff --git a/apps/federatedfilesharing/l10n/de.js b/apps/federatedfilesharing/l10n/de.js index 37a9fcb3a47..a7defc5c4a9 100644 --- a/apps/federatedfilesharing/l10n/de.js +++ b/apps/federatedfilesharing/l10n/de.js @@ -43,7 +43,7 @@ OC.L10N.register( "Allow users on this server to send shares to other servers" : "Benutzern auf diesem Server das Senden von Freigaben an andere Server erlauben", "Allow users on this server to receive shares from other servers" : "Benutzern auf diesem Server das Empfangen von Freigaben von anderen Servern erlauben", "Search global and public address book for users and let local users publish their data" : "Globales und öffentliches Adressbuch nach Nutzern durchsuchen und lokale Nutzer ihre Daten veröffentlichen lassen", - "Allow users to publish their data to a global and public address book" : "Erlaube Benutzern ihre Daten an ein globales und öffentliches Adressbuche zu veröffentlichen", + "Allow users to publish their data to a global and public address book" : "Erlaube Benutzern ihre Daten an ein globales und öffentliches Adressbuch zu veröffentlichen", "Federated Cloud" : "Federated Cloud", "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Du kannst mit allen Leuten teilen, welche Nextcloud, ownCloud oder Pydio nutzen! Gebe einfach deren Federated Cloud ID in den Teilen-Dialog ein. Diese sieht wie folgt aus person@cloud.example.com", "Your Federated Cloud ID:" : "Deine Federated-Cloud-ID:", diff --git a/apps/federatedfilesharing/l10n/de.json b/apps/federatedfilesharing/l10n/de.json index 62fb5fc88b6..28d6c932133 100644 --- a/apps/federatedfilesharing/l10n/de.json +++ b/apps/federatedfilesharing/l10n/de.json @@ -41,7 +41,7 @@ "Allow users on this server to send shares to other servers" : "Benutzern auf diesem Server das Senden von Freigaben an andere Server erlauben", "Allow users on this server to receive shares from other servers" : "Benutzern auf diesem Server das Empfangen von Freigaben von anderen Servern erlauben", "Search global and public address book for users and let local users publish their data" : "Globales und öffentliches Adressbuch nach Nutzern durchsuchen und lokale Nutzer ihre Daten veröffentlichen lassen", - "Allow users to publish their data to a global and public address book" : "Erlaube Benutzern ihre Daten an ein globales und öffentliches Adressbuche zu veröffentlichen", + "Allow users to publish their data to a global and public address book" : "Erlaube Benutzern ihre Daten an ein globales und öffentliches Adressbuch zu veröffentlichen", "Federated Cloud" : "Federated Cloud", "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Du kannst mit allen Leuten teilen, welche Nextcloud, ownCloud oder Pydio nutzen! Gebe einfach deren Federated Cloud ID in den Teilen-Dialog ein. Diese sieht wie folgt aus person@cloud.example.com", "Your Federated Cloud ID:" : "Deine Federated-Cloud-ID:", diff --git a/apps/federatedfilesharing/l10n/de_DE.js b/apps/federatedfilesharing/l10n/de_DE.js index 42606db4ee7..8a6da901c51 100644 --- a/apps/federatedfilesharing/l10n/de_DE.js +++ b/apps/federatedfilesharing/l10n/de_DE.js @@ -43,7 +43,7 @@ OC.L10N.register( "Allow users on this server to send shares to other servers" : "Benutzern auf diesem Server das Senden von Freigaben an andere Server erlauben", "Allow users on this server to receive shares from other servers" : "Benutzern auf diesem Server das Empfangen von Freigaben von anderen Servern erlauben", "Search global and public address book for users and let local users publish their data" : "Globales und öffentliches Adressbuch nach Nutzern durchsuchen und lokale Nutzer ihre Daten veröffentlichen lassen", - "Allow users to publish their data to a global and public address book" : "Erlaube Benutzern ihre Daten an ein globales und öffentliches Adressbuche zu veröffentlichen", + "Allow users to publish their data to a global and public address book" : "Erlaube Benutzern ihre Daten an ein globales und öffentliches Adressbuch zu veröffentlichen", "Federated Cloud" : "Federated Cloud", "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Sie können mit allen Leuten teilen, welche Nextcloud, ownCloud oder Pydio nutzen! Geben Sie einfach deren Federated Cloud ID in den Teilen-Dialog ein. Diese sieht wie folgt aus person@cloud.example.com", "Your Federated Cloud ID:" : "Ihre Federated-Cloud-ID:", diff --git a/apps/federatedfilesharing/l10n/de_DE.json b/apps/federatedfilesharing/l10n/de_DE.json index 47763ecd172..58d62ee030d 100644 --- a/apps/federatedfilesharing/l10n/de_DE.json +++ b/apps/federatedfilesharing/l10n/de_DE.json @@ -41,7 +41,7 @@ "Allow users on this server to send shares to other servers" : "Benutzern auf diesem Server das Senden von Freigaben an andere Server erlauben", "Allow users on this server to receive shares from other servers" : "Benutzern auf diesem Server das Empfangen von Freigaben von anderen Servern erlauben", "Search global and public address book for users and let local users publish their data" : "Globales und öffentliches Adressbuch nach Nutzern durchsuchen und lokale Nutzer ihre Daten veröffentlichen lassen", - "Allow users to publish their data to a global and public address book" : "Erlaube Benutzern ihre Daten an ein globales und öffentliches Adressbuche zu veröffentlichen", + "Allow users to publish their data to a global and public address book" : "Erlaube Benutzern ihre Daten an ein globales und öffentliches Adressbuch zu veröffentlichen", "Federated Cloud" : "Federated Cloud", "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Sie können mit allen Leuten teilen, welche Nextcloud, ownCloud oder Pydio nutzen! Geben Sie einfach deren Federated Cloud ID in den Teilen-Dialog ein. Diese sieht wie folgt aus person@cloud.example.com", "Your Federated Cloud ID:" : "Ihre Federated-Cloud-ID:", diff --git a/apps/federatedfilesharing/l10n/es.js b/apps/federatedfilesharing/l10n/es.js index 1cd41e22914..fae8b6380fa 100644 --- a/apps/federatedfilesharing/l10n/es.js +++ b/apps/federatedfilesharing/l10n/es.js @@ -39,12 +39,15 @@ OC.L10N.register( "Share with me through my #Nextcloud Federated Cloud ID" : "Compartirlo conmigo a través de mi ID Nube Federada #Nextcloud", "Federated Cloud Sharing" : "Compartido en Cloud Federado", "Open documentation" : "Documentación abierta", + "Adjust how people can share between servers." : "Ajusta cómo la gente puede compartir entre servidores.", "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", "Search global and public address book for users and let local users publish their data" : "Buscar libreta de direcciones global y pública para usuarios y permitir a los usuarios locales publicar su información", "Allow users to publish their data to a global and public address book" : "Permitir a los usuarios publicar su información en la libreta de direcciones global y pública", "Federated Cloud" : "Nube Federada", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "¡Puedes compartir con cualquiera que use Nextcloud, ownCloud o Pydio! Simplemente, pon su ID de nube federada en el diálogo de compartir. Es algo como person@cloud.example.com", "Your Federated Cloud ID:" : "Su ID Nube Federada:", + "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:", "Add to your website" : "Añadir a su sitio web", "Share with me via Nextcloud" : "Compartirlo conmigo vía Nextcloud", "HTML Code:" : "Código HTML:", diff --git a/apps/federatedfilesharing/l10n/es.json b/apps/federatedfilesharing/l10n/es.json index 36a6206e890..b81409477b5 100644 --- a/apps/federatedfilesharing/l10n/es.json +++ b/apps/federatedfilesharing/l10n/es.json @@ -37,12 +37,15 @@ "Share with me through my #Nextcloud Federated Cloud ID" : "Compartirlo conmigo a través de mi ID Nube Federada #Nextcloud", "Federated Cloud Sharing" : "Compartido en Cloud Federado", "Open documentation" : "Documentación abierta", + "Adjust how people can share between servers." : "Ajusta cómo la gente puede compartir entre servidores.", "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", "Search global and public address book for users and let local users publish their data" : "Buscar libreta de direcciones global y pública para usuarios y permitir a los usuarios locales publicar su información", "Allow users to publish their data to a global and public address book" : "Permitir a los usuarios publicar su información en la libreta de direcciones global y pública", "Federated Cloud" : "Nube Federada", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "¡Puedes compartir con cualquiera que use Nextcloud, ownCloud o Pydio! Simplemente, pon su ID de nube federada en el diálogo de compartir. Es algo como person@cloud.example.com", "Your Federated Cloud ID:" : "Su ID Nube Federada:", + "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:", "Add to your website" : "Añadir a su sitio web", "Share with me via Nextcloud" : "Compartirlo conmigo vía Nextcloud", "HTML Code:" : "Código HTML:", diff --git a/apps/federatedfilesharing/l10n/fr.js b/apps/federatedfilesharing/l10n/fr.js index cb8fd825905..a82c1d28753 100644 --- a/apps/federatedfilesharing/l10n/fr.js +++ b/apps/federatedfilesharing/l10n/fr.js @@ -45,6 +45,7 @@ OC.L10N.register( "Search global and public address book for users and let local users publish their data" : "Rechercher dans le carnet d'adresse global et public pour les utilisateurs et laisser les utilisateurs publier leurs données", "Allow users to publish their data to a global and public address book" : "Autoriser les utilisateurs à publier leurs données dans un carnet d'adresse global et public", "Federated Cloud" : "Federated Cloud", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Vous pouvez partager avec n'importe qui qui utilise Nextcloud, ownCloud ou Pydio ! Renseignez simplement leur Federated Cloud ID dans la boîte de dialogue de partage. Cela ressemble à person@cloud.example.com", "Your Federated Cloud ID:" : "Votre identifiant Federated Cloud :", "Add to your website" : "Ajouter à votre site web", "Share with me via Nextcloud" : "Partagez avec moi via Nextcloud", diff --git a/apps/federatedfilesharing/l10n/fr.json b/apps/federatedfilesharing/l10n/fr.json index f556159c96d..d21d4dc6196 100644 --- a/apps/federatedfilesharing/l10n/fr.json +++ b/apps/federatedfilesharing/l10n/fr.json @@ -43,6 +43,7 @@ "Search global and public address book for users and let local users publish their data" : "Rechercher dans le carnet d'adresse global et public pour les utilisateurs et laisser les utilisateurs publier leurs données", "Allow users to publish their data to a global and public address book" : "Autoriser les utilisateurs à publier leurs données dans un carnet d'adresse global et public", "Federated Cloud" : "Federated Cloud", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Vous pouvez partager avec n'importe qui qui utilise Nextcloud, ownCloud ou Pydio ! Renseignez simplement leur Federated Cloud ID dans la boîte de dialogue de partage. Cela ressemble à person@cloud.example.com", "Your Federated Cloud ID:" : "Votre identifiant Federated Cloud :", "Add to your website" : "Ajouter à votre site web", "Share with me via Nextcloud" : "Partagez avec moi via Nextcloud", diff --git a/apps/federatedfilesharing/l10n/nb.js b/apps/federatedfilesharing/l10n/nb.js index f9b8907b49b..20edbf22fb3 100644 --- a/apps/federatedfilesharing/l10n/nb.js +++ b/apps/federatedfilesharing/l10n/nb.js @@ -39,12 +39,15 @@ OC.L10N.register( "Share with me through my #Nextcloud Federated Cloud ID" : "Del med meg gjennom min #Nextcloud-ID for sammenknyttet sky", "Federated Cloud Sharing" : "Sammenknyttet sky-deling", "Open documentation" : "Åpne dokumentasjonen", + "Adjust how people can share between servers." : "Juster hvordan folk kan dele mellom tjenere.", "Allow users on this server to send shares to other servers" : "Tillat at brukere på denne tjeneren sender delinger til andre tjenere", "Allow users on this server to receive shares from other servers" : "Tillat at brukere på denne tjeneren mottar delinger fra andre tjenere", "Search global and public address book for users and let local users publish their data" : "Søk i verdensomspennende og offentlig adressebok for brukere og la lokale brukere offentliggjøre deres data", "Allow users to publish their data to a global and public address book" : "Tillat brukere å offentliggjøre deres data til en verdensomspennende og offentlig adressebok", "Federated Cloud" : "Sammenknyttet sky", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Du kan dele med alle som bruker Nextcloud, ownCloud eller Pydio! Bare putt deres federerte sky-ID i delingsdialogvinduet. Det ser ut som person.sky.eksempel.no", "Your Federated Cloud ID:" : "Din ID for sammenknyttet sky:", + "Share it so your friends can share files with you:" : "Del den slik at venner kan dele filer med deg:", "Add to your website" : "Legg på nettsiden din", "Share with me via Nextcloud" : "Del med meg via Nextcloud", "HTML Code:" : "HTML-kode:", diff --git a/apps/federatedfilesharing/l10n/nb.json b/apps/federatedfilesharing/l10n/nb.json index 4da7e25bfe7..711905c7d19 100644 --- a/apps/federatedfilesharing/l10n/nb.json +++ b/apps/federatedfilesharing/l10n/nb.json @@ -37,12 +37,15 @@ "Share with me through my #Nextcloud Federated Cloud ID" : "Del med meg gjennom min #Nextcloud-ID for sammenknyttet sky", "Federated Cloud Sharing" : "Sammenknyttet sky-deling", "Open documentation" : "Åpne dokumentasjonen", + "Adjust how people can share between servers." : "Juster hvordan folk kan dele mellom tjenere.", "Allow users on this server to send shares to other servers" : "Tillat at brukere på denne tjeneren sender delinger til andre tjenere", "Allow users on this server to receive shares from other servers" : "Tillat at brukere på denne tjeneren mottar delinger fra andre tjenere", "Search global and public address book for users and let local users publish their data" : "Søk i verdensomspennende og offentlig adressebok for brukere og la lokale brukere offentliggjøre deres data", "Allow users to publish their data to a global and public address book" : "Tillat brukere å offentliggjøre deres data til en verdensomspennende og offentlig adressebok", "Federated Cloud" : "Sammenknyttet sky", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Du kan dele med alle som bruker Nextcloud, ownCloud eller Pydio! Bare putt deres federerte sky-ID i delingsdialogvinduet. Det ser ut som person.sky.eksempel.no", "Your Federated Cloud ID:" : "Din ID for sammenknyttet sky:", + "Share it so your friends can share files with you:" : "Del den slik at venner kan dele filer med deg:", "Add to your website" : "Legg på nettsiden din", "Share with me via Nextcloud" : "Del med meg via Nextcloud", "HTML Code:" : "HTML-kode:", diff --git a/apps/federatedfilesharing/l10n/pl.js b/apps/federatedfilesharing/l10n/pl.js index 019ffba9121..634c72f1895 100644 --- a/apps/federatedfilesharing/l10n/pl.js +++ b/apps/federatedfilesharing/l10n/pl.js @@ -39,12 +39,15 @@ OC.L10N.register( "Share with me through my #Nextcloud Federated Cloud ID" : "Podziel się ze mną przez mój ID #Nextcloud Stowarzyszonej Chmury", "Federated Cloud Sharing" : "Dzielenie się ze Stowarzyszoną Chmurą", "Open documentation" : "Otwórz dokumentację", + "Adjust how people can share between servers." : "Dostosuj ustawienia współdzielenia między serwerami.", "Allow users on this server to send shares to other servers" : "Zezwalaj użytkownikom na tym serwerze wysłać udostępnienia do innych serwerów", "Allow users on this server to receive shares from other servers" : "Zezwalaj użytkownikom na tym serwerze do otrzymania udostępnień z innych serwerów", "Search global and public address book for users and let local users publish their data" : "Szukaj użytkowników w globalnej i publicznej książce adresowej i pozwól lokalnym użytkownikom na publikowanie swoich danych", "Allow users to publish their data to a global and public address book" : "Pozwól użytkownikom na publikację ich danych do globalnej i publicznej książki adresowej", "Federated Cloud" : "Stowarzyszona Chmura", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Możesz współdzielić z każdym kto używa Nextclouda, ownClouda lub Pydio. Wystarczy, że wpiszesz ich ID chmury stowarzyszonej w pole współdzielenia. Wygląda jak osoba@przyklad.chmury.com", "Your Federated Cloud ID:" : "Twoje ID Stowarzyszonej Chmury:", + "Share it so your friends can share files with you:" : "Współdziel to, aby twoi przyjaciele mogli współdzielić pliki z tobą:", "Add to your website" : "Dodaj do swojej strony", "Share with me via Nextcloud" : "Podziel się ze mną poprzez Nextcloud", "HTML Code:" : "Kod HTML:", diff --git a/apps/federatedfilesharing/l10n/pl.json b/apps/federatedfilesharing/l10n/pl.json index af30ede91c5..6178a539f09 100644 --- a/apps/federatedfilesharing/l10n/pl.json +++ b/apps/federatedfilesharing/l10n/pl.json @@ -37,12 +37,15 @@ "Share with me through my #Nextcloud Federated Cloud ID" : "Podziel się ze mną przez mój ID #Nextcloud Stowarzyszonej Chmury", "Federated Cloud Sharing" : "Dzielenie się ze Stowarzyszoną Chmurą", "Open documentation" : "Otwórz dokumentację", + "Adjust how people can share between servers." : "Dostosuj ustawienia współdzielenia między serwerami.", "Allow users on this server to send shares to other servers" : "Zezwalaj użytkownikom na tym serwerze wysłać udostępnienia do innych serwerów", "Allow users on this server to receive shares from other servers" : "Zezwalaj użytkownikom na tym serwerze do otrzymania udostępnień z innych serwerów", "Search global and public address book for users and let local users publish their data" : "Szukaj użytkowników w globalnej i publicznej książce adresowej i pozwól lokalnym użytkownikom na publikowanie swoich danych", "Allow users to publish their data to a global and public address book" : "Pozwól użytkownikom na publikację ich danych do globalnej i publicznej książki adresowej", "Federated Cloud" : "Stowarzyszona Chmura", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Możesz współdzielić z każdym kto używa Nextclouda, ownClouda lub Pydio. Wystarczy, że wpiszesz ich ID chmury stowarzyszonej w pole współdzielenia. Wygląda jak osoba@przyklad.chmury.com", "Your Federated Cloud ID:" : "Twoje ID Stowarzyszonej Chmury:", + "Share it so your friends can share files with you:" : "Współdziel to, aby twoi przyjaciele mogli współdzielić pliki z tobą:", "Add to your website" : "Dodaj do swojej strony", "Share with me via Nextcloud" : "Podziel się ze mną poprzez Nextcloud", "HTML Code:" : "Kod HTML:", diff --git a/apps/federatedfilesharing/l10n/pt_BR.js b/apps/federatedfilesharing/l10n/pt_BR.js index 13d1b1641e3..eb83f18e8a8 100644 --- a/apps/federatedfilesharing/l10n/pt_BR.js +++ b/apps/federatedfilesharing/l10n/pt_BR.js @@ -29,10 +29,10 @@ OC.L10N.register( "File is already shared with %s" : "O arquivo já é compartilhado com %s", "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Compartilhamento %s falhou, não foi possível encontrar %s. Talvez o servidor esteja inacessível ou esteja sendo utilizado um certificado de auto-assinatura", "Could not find share" : "Não foi possível encontrar o compartilhamento", - "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Voce recebeu \"%3$s\" como um compartilhamento remoto de %1$s ( em nome de %2$s )", - "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Voce recebeu {share} como um compartilhamento remoto do {user} (em nome de {behalf})", - "You received \"%3$s\" as a remote share from %1$s" : "Voce recebeu \"%3$s\" como um compartilhamento remoto de %1$s", - "You received {share} as a remote share from {user}" : "Voce recebeu {share} como um compartilhamento remoto de {user}", + "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Você recebeu \"%3$s\" como um compartilhamento remoto de %1$s ( em nome de %2$s )", + "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Você recebeu {share} como um compartilhamento remoto do {user} (em nome de {behalf})", + "You received \"%3$s\" as a remote share from %1$s" : "Você recebeu \"%3$s\" como um compartilhamento remoto de %1$s", + "You received {share} as a remote share from {user}" : "Você recebeu {share} como um compartilhamento remoto de {user}", "Accept" : "Aceitar", "Decline" : "Rejeitar", "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Compartilhe comigo através do meu ID de Nuvem Federada #Nexcloud, veja %s", diff --git a/apps/federatedfilesharing/l10n/pt_BR.json b/apps/federatedfilesharing/l10n/pt_BR.json index 108c8f4fb25..f9e43729086 100644 --- a/apps/federatedfilesharing/l10n/pt_BR.json +++ b/apps/federatedfilesharing/l10n/pt_BR.json @@ -27,10 +27,10 @@ "File is already shared with %s" : "O arquivo já é compartilhado com %s", "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Compartilhamento %s falhou, não foi possível encontrar %s. Talvez o servidor esteja inacessível ou esteja sendo utilizado um certificado de auto-assinatura", "Could not find share" : "Não foi possível encontrar o compartilhamento", - "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Voce recebeu \"%3$s\" como um compartilhamento remoto de %1$s ( em nome de %2$s )", - "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Voce recebeu {share} como um compartilhamento remoto do {user} (em nome de {behalf})", - "You received \"%3$s\" as a remote share from %1$s" : "Voce recebeu \"%3$s\" como um compartilhamento remoto de %1$s", - "You received {share} as a remote share from {user}" : "Voce recebeu {share} como um compartilhamento remoto de {user}", + "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Você recebeu \"%3$s\" como um compartilhamento remoto de %1$s ( em nome de %2$s )", + "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Você recebeu {share} como um compartilhamento remoto do {user} (em nome de {behalf})", + "You received \"%3$s\" as a remote share from %1$s" : "Você recebeu \"%3$s\" como um compartilhamento remoto de %1$s", + "You received {share} as a remote share from {user}" : "Você recebeu {share} como um compartilhamento remoto de {user}", "Accept" : "Aceitar", "Decline" : "Rejeitar", "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Compartilhe comigo através do meu ID de Nuvem Federada #Nexcloud, veja %s", diff --git a/apps/federatedfilesharing/l10n/ru.js b/apps/federatedfilesharing/l10n/ru.js index 4931870f4b1..961a085525a 100644 --- a/apps/federatedfilesharing/l10n/ru.js +++ b/apps/federatedfilesharing/l10n/ru.js @@ -39,12 +39,15 @@ OC.L10N.register( "Share with me through my #Nextcloud Federated Cloud ID" : "Поделитесь со мной через мой #Nextcloud ID в федерации облачных хранилищ", "Federated Cloud Sharing" : "Федерация облачных хранилищ", "Open documentation" : "Открыть документацию", + "Adjust how people can share between servers." : "Настройте общий доступ между серверами.", "Allow users on this server to send shares to other servers" : "Разрешить пользователям делиться с пользователями других серверов", "Allow users on this server to receive shares from other servers" : "Разрешить пользователям использовать общие ресурсы с других серверов", "Search global and public address book for users and let local users publish their data" : "Поиск пользователей в глобальной и общедоступной адресной книге и резрешение публикации своих данных локальным пользователям ", "Allow users to publish their data to a global and public address book" : "Резрешить пользователям публиковать свои данные в глобальной и общедосупной адресной книге", "Federated Cloud" : "Федерация облачных хранилищ", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Можно поделиться с любым пользователем Nextcloud, ownCloud или Pydio! Просто введите его идентификатор федеративного облачного хранилища в диалоге предоставления общего доступа. Идектификатор указывается в виде «person@cloud.example.com».", "Your Federated Cloud ID:" : "Ваш ID в федерации облачных хранилищ:", + "Share it so your friends can share files with you:" : "Сообщите его друзьям, что бы они могли поделиться с вами файлами:", "Add to your website" : "Добавить к себе на сайт", "Share with me via Nextcloud" : "Поделитесь со мной через Nextcloud", "HTML Code:" : "HTML код:", diff --git a/apps/federatedfilesharing/l10n/ru.json b/apps/federatedfilesharing/l10n/ru.json index bfdf89b87f9..750703137ca 100644 --- a/apps/federatedfilesharing/l10n/ru.json +++ b/apps/federatedfilesharing/l10n/ru.json @@ -37,12 +37,15 @@ "Share with me through my #Nextcloud Federated Cloud ID" : "Поделитесь со мной через мой #Nextcloud ID в федерации облачных хранилищ", "Federated Cloud Sharing" : "Федерация облачных хранилищ", "Open documentation" : "Открыть документацию", + "Adjust how people can share between servers." : "Настройте общий доступ между серверами.", "Allow users on this server to send shares to other servers" : "Разрешить пользователям делиться с пользователями других серверов", "Allow users on this server to receive shares from other servers" : "Разрешить пользователям использовать общие ресурсы с других серверов", "Search global and public address book for users and let local users publish their data" : "Поиск пользователей в глобальной и общедоступной адресной книге и резрешение публикации своих данных локальным пользователям ", "Allow users to publish their data to a global and public address book" : "Резрешить пользователям публиковать свои данные в глобальной и общедосупной адресной книге", "Federated Cloud" : "Федерация облачных хранилищ", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Можно поделиться с любым пользователем Nextcloud, ownCloud или Pydio! Просто введите его идентификатор федеративного облачного хранилища в диалоге предоставления общего доступа. Идектификатор указывается в виде «person@cloud.example.com».", "Your Federated Cloud ID:" : "Ваш ID в федерации облачных хранилищ:", + "Share it so your friends can share files with you:" : "Сообщите его друзьям, что бы они могли поделиться с вами файлами:", "Add to your website" : "Добавить к себе на сайт", "Share with me via Nextcloud" : "Поделитесь со мной через Nextcloud", "HTML Code:" : "HTML код:", diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js index 75d9d0ebdfc..1c5758ca50b 100644 --- a/apps/files/js/file-upload.js +++ b/apps/files/js/file-upload.js @@ -1060,7 +1060,7 @@ OC.Uploader.prototype = _.extend({ // dropping a folder in firefox doesn't cause a drop event // this is simulated by simply invoke disabling all classes // once no dragover event isn't noticed anymore - if ($.browser['mozilla']) { + if (/Firefox/i.test(navigator.userAgent)) { disableClassOnFirefox(); } $('#emptycontent .icon-folder').addClass('icon-filetype-folder-drag-accept'); diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index db85caf65fa..187ede8c0bd 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -92,6 +92,12 @@ initialized: false, /** + * Wheater the file list was already shown once + * @type boolean + */ + shown: false, + + /** * Number of files per page * * @return {int} page size @@ -557,7 +563,10 @@ * Event handler when leaving previously hidden state */ _onShow: function(e) { - this.reload(); + if (this.shown) { + this.reload(); + } + this.shown = true; }, /** diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js index 723302f015a..cb5b7b95c33 100644 --- a/apps/files/l10n/es.js +++ b/apps/files/l10n/es.js @@ -121,6 +121,7 @@ OC.L10N.register( "Select all" : "Seleccionar todo", "Upload too large" : "Subida demasido grande", "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que está intentando subir sobrepasan el tamaño máximo permitido en este servidor.", + "No favorites yet" : "Aún no hay favoritos", "Files and folders you mark as favorite will show up here" : "Aquí aparecerán los archivos y carpetas que usted marque como favoritos", "Shared with you" : "Compartido con usted", "Shared with others" : "Compartido con otros", diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json index b66b7f96e45..718a74b08a8 100644 --- a/apps/files/l10n/es.json +++ b/apps/files/l10n/es.json @@ -119,6 +119,7 @@ "Select all" : "Seleccionar todo", "Upload too large" : "Subida demasido grande", "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que está intentando subir sobrepasan el tamaño máximo permitido en este servidor.", + "No favorites yet" : "Aún no hay favoritos", "Files and folders you mark as favorite will show up here" : "Aquí aparecerán los archivos y carpetas que usted marque como favoritos", "Shared with you" : "Compartido con usted", "Shared with others" : "Compartido con otros", diff --git a/apps/files/l10n/es_MX.js b/apps/files/l10n/es_MX.js index 718f1fba0f9..2b241a5e4bf 100644 --- a/apps/files/l10n/es_MX.js +++ b/apps/files/l10n/es_MX.js @@ -52,7 +52,7 @@ OC.L10N.register( "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas"], "_%n file_::_%n files_" : ["%n archivo","%n archivos"], "{dirs} and {files}" : "{dirs} y {files}", - "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n escondidos"], + "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos"], "You don’t have permission to upload or create files here" : "Usted no cuenta con los permisos para cargar o crear archivos aquí", "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos"], "New" : "Nuevo", diff --git a/apps/files/l10n/es_MX.json b/apps/files/l10n/es_MX.json index 9245d75fdd4..b68e2e3f096 100644 --- a/apps/files/l10n/es_MX.json +++ b/apps/files/l10n/es_MX.json @@ -50,7 +50,7 @@ "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas"], "_%n file_::_%n files_" : ["%n archivo","%n archivos"], "{dirs} and {files}" : "{dirs} y {files}", - "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n escondidos"], + "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos"], "You don’t have permission to upload or create files here" : "Usted no cuenta con los permisos para cargar o crear archivos aquí", "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos"], "New" : "Nuevo", diff --git a/apps/files/l10n/hu.js b/apps/files/l10n/hu.js index a4bda4f3149..924a755a491 100644 --- a/apps/files/l10n/hu.js +++ b/apps/files/l10n/hu.js @@ -121,6 +121,7 @@ OC.L10N.register( "Select all" : "Összes kijelölése", "Upload too large" : "A feltöltés túl nagy", "The files you are trying to upload exceed the maximum size for file uploads on this server." : "A feltöltendő fájlok mérete meghaladja a szerveren megengedett maximális méretet.", + "No favorites yet" : "Még nincsenek kedvencek", "Files and folders you mark as favorite will show up here" : "A kedvencnek jelölt fájlokat és mappákat itt találod meg", "Shared with you" : "Megosztva veled", "Shared with others" : "Megosztva másokkal", diff --git a/apps/files/l10n/hu.json b/apps/files/l10n/hu.json index f92d2df8c6a..6d76536ce47 100644 --- a/apps/files/l10n/hu.json +++ b/apps/files/l10n/hu.json @@ -119,6 +119,7 @@ "Select all" : "Összes kijelölése", "Upload too large" : "A feltöltés túl nagy", "The files you are trying to upload exceed the maximum size for file uploads on this server." : "A feltöltendő fájlok mérete meghaladja a szerveren megengedett maximális méretet.", + "No favorites yet" : "Még nincsenek kedvencek", "Files and folders you mark as favorite will show up here" : "A kedvencnek jelölt fájlokat és mappákat itt találod meg", "Shared with you" : "Megosztva veled", "Shared with others" : "Megosztva másokkal", diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js index 4a5a57eccd1..aea171dbf8b 100644 --- a/apps/files/l10n/it.js +++ b/apps/files/l10n/it.js @@ -69,6 +69,7 @@ OC.L10N.register( "_%n byte_::_%n bytes_" : ["%n byte","%n byte"], "Favorited" : "Preferiti", "Favorite" : "Preferito", + "Copy direct link (only works for users who have access to this file/folder)" : "Copia link diretto (funziona solo per utenti che hanno accesso a questo file / cartella)", "Folder" : "Cartella", "New folder" : "Nuova cartella", "Upload" : "Carica", @@ -120,6 +121,7 @@ OC.L10N.register( "Select all" : "Seleziona tutto", "Upload too large" : "Caricamento troppo grande", "The files you are trying to upload exceed the maximum size for file uploads on this server." : "I file che stai provando a caricare superano la dimensione massima consentita su questo server.", + "No favorites yet" : "Nessun preferito ancora", "Files and folders you mark as favorite will show up here" : "I file e le cartelle che marchi come preferiti saranno mostrati qui", "Shared with you" : "Condivisi con te", "Shared with others" : "Condivisi con altri", diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json index 1ee5b76efdf..b328763425d 100644 --- a/apps/files/l10n/it.json +++ b/apps/files/l10n/it.json @@ -67,6 +67,7 @@ "_%n byte_::_%n bytes_" : ["%n byte","%n byte"], "Favorited" : "Preferiti", "Favorite" : "Preferito", + "Copy direct link (only works for users who have access to this file/folder)" : "Copia link diretto (funziona solo per utenti che hanno accesso a questo file / cartella)", "Folder" : "Cartella", "New folder" : "Nuova cartella", "Upload" : "Carica", @@ -118,6 +119,7 @@ "Select all" : "Seleziona tutto", "Upload too large" : "Caricamento troppo grande", "The files you are trying to upload exceed the maximum size for file uploads on this server." : "I file che stai provando a caricare superano la dimensione massima consentita su questo server.", + "No favorites yet" : "Nessun preferito ancora", "Files and folders you mark as favorite will show up here" : "I file e le cartelle che marchi come preferiti saranno mostrati qui", "Shared with you" : "Condivisi con te", "Shared with others" : "Condivisi con altri", diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js index 35b77bfb4c1..893912f7ef8 100644 --- a/apps/files/l10n/ja.js +++ b/apps/files/l10n/ja.js @@ -121,6 +121,7 @@ OC.L10N.register( "Select all" : "すべて選択", "Upload too large" : "アップロードには大きすぎます。", "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。", + "No favorites yet" : "まだお気に入りはありません", "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。", "Shared with you" : "他ユーザーがあなたと共有中", "Shared with others" : "他ユーザーと共有中", diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json index df598add1ac..8dafe735c23 100644 --- a/apps/files/l10n/ja.json +++ b/apps/files/l10n/ja.json @@ -119,6 +119,7 @@ "Select all" : "すべて選択", "Upload too large" : "アップロードには大きすぎます。", "The files you are trying to upload exceed the maximum size for file uploads on this server." : "アップロードしようとしているファイルは、サーバーで規定された最大サイズを超えています。", + "No favorites yet" : "まだお気に入りはありません", "Files and folders you mark as favorite will show up here" : "お気に入りに登録されたファイルやフォルダーは、ここに表示されます。", "Shared with you" : "他ユーザーがあなたと共有中", "Shared with others" : "他ユーザーと共有中", diff --git a/apps/files/l10n/ko.js b/apps/files/l10n/ko.js index 8369e962968..ca86b8ff624 100644 --- a/apps/files/l10n/ko.js +++ b/apps/files/l10n/ko.js @@ -1,7 +1,7 @@ OC.L10N.register( "files", { - "Storage is temporarily not available" : "저장소를 일시적으로 사용할 수 없습니다", + "Storage is temporarily not available" : "저장소를 일시적으로 사용할 수 없음", "Storage invalid" : "저장소가 잘못됨", "Unknown error" : "알 수 없는 오류", "All files" : "모든 파일", @@ -14,10 +14,11 @@ OC.L10N.register( "Upload cancelled." : "업로드가 취소되었습니다.", "Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename}을(를) 업로드할 수 없습니다. 폴더이거나 0 바이트 파일입니다.", "Not enough free space, you are uploading {size1} but only {size2} is left" : "빈 공간이 부족합니다. 업로드할 파일 크기는 {size1}이지만 현재 {size2}만큼 비었습니다", - "Target folder \"{dir}\" does not exist any more" : "대상 폴더 \"{dir}\"가 존재하지 않습니다", + "Target folder \"{dir}\" does not exist any more" : "대상 폴더 \"{dir}\"이(가) 더 이상 존재하지 않습니다", "Not enough free space" : "빈 공간이 부족합니다", "Uploading..." : "업로드 중...", "..." : "...", + "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize}/{totalSize}({bitrate})", "Actions" : "작업", "Download" : "다운로드", "Rename" : "이름 바꾸기", @@ -26,6 +27,7 @@ OC.L10N.register( "Delete" : "삭제", "Disconnect storage" : "저장소 연결 해제", "Unshare" : "공유 해제", + "Could not load info for file \"{file}\"" : "파일 \"{file}\"의 정보를 가져올 수 없음", "Files" : "파일", "Details" : "자세한 정보", "Select" : "선택", @@ -37,12 +39,13 @@ OC.L10N.register( "Could not move \"{file}\"" : "\"{file}\"을(를) 이동할 수 없음", "{newName} already exists" : "{newName}이(가) 이미 존재함", "Could not rename \"{fileName}\", it does not exist any more" : "\"{fileName}\"의 이름을 변경할 수 없음, 더 이상 존재하지 않음", - "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{dir}\" 폴더 내에 \"{targetName}\" 파일이 이미 있습니다. 다른 이름을 사용하십시오.", + "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "폴더 \"{dir}\" 내에 파일 \"{targetName}\"이(가) 이미 있습니다. 다른 이름을 사용하십시오.", "Could not rename \"{fileName}\"" : "\"{fileName}\"의 이름을 바꿀 수 없음", "Could not create file \"{file}\"" : "\"{file}\"을(를) 만들 수 없음", "Could not create file \"{file}\" because it already exists" : "파일이 이미 존재하므로 \"{file}\"을(를) 만들 수 없음", "Could not create folder \"{dir}\" because it already exists" : "폴더가 이미 존재하므로 폴더 \"{dir}\"을(를) 만들 수 없음", "Error deleting file \"{fileName}\"." : "파일 \"{fileName}\"을(를) 삭제할 수 없습니다.", + "No search results in other folders for {tag}{filter}{endtag}" : "다른 폴더에 {tag}{filter}{endtag} 검색 결과가 없음", "Name" : "이름", "Size" : "크기", "Modified" : "수정됨", @@ -55,16 +58,18 @@ OC.L10N.register( "New" : "새로 만들기", "\"{name}\" is an invalid file name." : "\"{name}\"은(는) 잘못된 파일 이름입니다.", "File name cannot be empty." : "파일 이름이 비어 있을 수 없습니다.", + "\"{name}\" is not an allowed filetype" : "\"{name}\"은 허용된 파일 형식이 아님", "Storage of {owner} is full, files can not be updated or synced anymore!" : "{owner}의 저장소가 가득 찼습니다. 파일을 더 이상 업데이트하거나 동기화할 수 없습니다!", "Your storage is full, files can not be updated or synced anymore!" : "저장 공간이 가득 찼습니다. 파일을 업데이트하거나 동기화할 수 없습니다!", "Storage of {owner} is almost full ({usedSpacePercent}%)" : "{owner}의 저장 공간이 거의 가득 찼습니다({usedSpacePercent}%)", "Your storage is almost full ({usedSpacePercent}%)" : "저장 공간이 거의 가득 찼습니다({usedSpacePercent}%)", "_matches '{filter}'_::_match '{filter}'_" : ["'{filter}'와(과) 일치"], - "View in folder" : "폴더보기", + "View in folder" : "폴더에서 보기", "Path" : "경로", - "_%n byte_::_%n bytes_" : ["%n바이트"], - "Favorited" : "책갈피에 추가됨", + "_%n byte_::_%n bytes_" : ["%n 바이트"], + "Favorited" : "즐겨찾기에 추가됨", "Favorite" : "즐겨찾기", + "Copy direct link (only works for users who have access to this file/folder)" : "직접 링크 복사(이 파일/폴더에 접근 권한이 있는 사람만)", "Folder" : "폴더", "New folder" : "새 폴더", "Upload" : "업로드", @@ -73,25 +78,26 @@ OC.L10N.register( "Removed from favorites" : "즐겨찾기에서 삭제됨", "You added {file} to your favorites" : "내가 {file}을(를) 즐겨찾기에 추가함", "You removed {file} from your favorites" : "내가 {file}을(를) 즐겨찾기에서 삭제함", - "Created by {user}" : "{user} 님이 만듬", + "File changes" : "파일 변경", + "Created by {user}" : "{user} 님이 만듦", "Changed by {user}" : "{user} 님이 변경함", "Deleted by {user}" : "{user} 님이 삭제함", "Restored by {user}" : "{user} 님이 복원함", "Renamed by {user}" : "{user} 님이 이름을 변경함", "Moved by {user}" : "{user} 님이 이동함", - "You created {file}" : "내가 {file}을(를) 만듬", - "{user} created {file}" : "{user} 님이 {file}을(를) 만듬", - "{file} was created in a public folder" : "공유 폴더에 {file} 이(가) 생성됨", - "You changed {file}" : "내가 {file} 을(를) 변경함", - "{user} changed {file}" : "{user} 님이 {file} 을(를) 변경함", - "You deleted {file}" : "내가 {file} 을(를) 삭제함", - "{user} deleted {file}" : "{user} 님이 {file} 을(를) 삭제함", - "You restored {file}" : "내가 {file} 을(를) 복원함", - "{user} restored {file}" : "{user} 님이 {file} 을(를) 복원함", - "You renamed {oldfile} to {newfile}" : "내가 {oldfile} 을(를) {newfile} 로 이름을 바꿈", - "{user} renamed {oldfile} to {newfile}" : "{user} 님이 {oldfile} 을(를) {newfile} 로 이름을 바꿈", - "You moved {oldfile} to {newfile}" : "내가 {oldfile} 을(를) {newfile} 로 이동함", - "{user} moved {oldfile} to {newfile}" : "{user} 님이 {oldfile} 을(를) {newfile} 로 이동함", + "You created {file}" : "{file}을(를) 만듦", + "{user} created {file}" : "{user} 님이 {file}을(를) 만듦", + "{file} was created in a public folder" : "공유 폴더에 {file}이(가) 생성됨", + "You changed {file}" : "{file}을(를) 변경함", + "{user} changed {file}" : "{user} 님이 {file}을(를) 변경함", + "You deleted {file}" : "{file}을(를) 삭제함", + "{user} deleted {file}" : "{user} 님이 {file}을(를) 삭제함", + "You restored {file}" : "내가 {file}을(를) 복원함", + "{user} restored {file}" : "{user} 님이 {file}을(를) 복원함", + "You renamed {oldfile} to {newfile}" : "{oldfile}을(를) {newfile}(으)로 이름을 바꿈", + "{user} renamed {oldfile} to {newfile}" : "{user} 님이 {oldfile}을(를) {newfile}(으)로 이름을 바꿈", + "You moved {oldfile} to {newfile}" : "{oldfile}을(를) {newfile}(으)로 이동함", + "{user} moved {oldfile} to {newfile}" : "{user} 님이 {oldfile}을(를) {newfile}(으)로 이동함", "A file has been added to or removed from your <strong>favorites</strong>" : "파일이 <strong>즐겨찾기</strong>에서 추가 또는 삭제됨", "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "파일이나 폴더가 <strong>변경되거나</strong> <strong>이름이 바뀜</strong>", "A new file or folder has been <strong>created</strong>" : "새 파일이나 폴더가 <strong>생성됨</strong>", @@ -106,7 +112,7 @@ OC.L10N.register( "With PHP-FPM it might take 5 minutes for changes to be applied." : "PHP-FPM을 사용 중이면 변경 사항이 적용되는 데 최대 5분 정도 걸릴 수 있습니다.", "Missing permissions to edit from here." : "여기에서 편집할 권한이 없습니다.", "Settings" : "설정", - "Show hidden files" : "숨겨진 파일보기", + "Show hidden files" : "숨김 파일 보이기", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "이 주소를 사용하여 <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">WebDAV를 통해 파일에 접근할 수 있습니다</a>", "No files in here" : "여기에 파일 없음", @@ -115,7 +121,8 @@ OC.L10N.register( "Select all" : "모두 선택", "Upload too large" : "업로드한 파일이 너무 큼", "The files you are trying to upload exceed the maximum size for file uploads on this server." : "이 파일이 서버에서 허용하는 최대 업로드 가능 용량보다 큽니다.", - "Files and folders you mark as favorite will show up here" : "책갈피에 추가한 파일과 폴더가 여기에 나타납니다", + "No favorites yet" : "즐겨찾는 항목 없음", + "Files and folders you mark as favorite will show up here" : "즐겨찾기에 추가한 파일과 폴더가 여기에 나타납니다", "Shared with you" : "나와 공유됨", "Shared with others" : "다른 사람과 공유됨", "Shared by link" : "링크로 공유됨", @@ -123,13 +130,16 @@ OC.L10N.register( "Deleted files" : "삭제된 파일", "Text file" : "텍스트 파일", "New text file.txt" : "새 텍스트 파일.txt", - "{hours}:{minutes}h" : "{hours}:{minutes} 시간", - "{minutes}:{seconds}m" : "{minutes}:{seconds} 분", + "_{hours}:{minutes}:{seconds} hour left_::_{hours}:{minutes}:{seconds} hours left_" : ["{hours}:{minutes}:{seconds}시간 남음"], + "{hours}:{minutes}h" : "{hours}:{minutes}시간", + "_{minutes}:{seconds} minute left_::_{minutes}:{seconds} minutes left_" : ["{minutes}:{seconds}분 남음"], + "{minutes}:{seconds}m" : "{minutes}:{seconds}분", + "_{seconds} second left_::_{seconds} seconds left_" : ["{seconds}초 남음"], "{seconds}s" : "{seconds}초", - "Any moment now..." : "조금 남음", + "Any moment now..." : "조금 남음...", "Soon..." : "곧...", "File upload is in progress. Leaving the page now will cancel the upload." : "파일 업로드가 진행 중입니다. 이 페이지를 벗어나면 업로드가 취소됩니다.", "Copy local link" : "로컬 링크 복사", - "No favorites" : "책갈피 없음" + "No favorites" : "즐겨찾는 항목 없음" }, "nplurals=1; plural=0;"); diff --git a/apps/files/l10n/ko.json b/apps/files/l10n/ko.json index af6ca958063..45c24ecee1b 100644 --- a/apps/files/l10n/ko.json +++ b/apps/files/l10n/ko.json @@ -1,5 +1,5 @@ { "translations": { - "Storage is temporarily not available" : "저장소를 일시적으로 사용할 수 없습니다", + "Storage is temporarily not available" : "저장소를 일시적으로 사용할 수 없음", "Storage invalid" : "저장소가 잘못됨", "Unknown error" : "알 수 없는 오류", "All files" : "모든 파일", @@ -12,10 +12,11 @@ "Upload cancelled." : "업로드가 취소되었습니다.", "Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename}을(를) 업로드할 수 없습니다. 폴더이거나 0 바이트 파일입니다.", "Not enough free space, you are uploading {size1} but only {size2} is left" : "빈 공간이 부족합니다. 업로드할 파일 크기는 {size1}이지만 현재 {size2}만큼 비었습니다", - "Target folder \"{dir}\" does not exist any more" : "대상 폴더 \"{dir}\"가 존재하지 않습니다", + "Target folder \"{dir}\" does not exist any more" : "대상 폴더 \"{dir}\"이(가) 더 이상 존재하지 않습니다", "Not enough free space" : "빈 공간이 부족합니다", "Uploading..." : "업로드 중...", "..." : "...", + "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize}/{totalSize}({bitrate})", "Actions" : "작업", "Download" : "다운로드", "Rename" : "이름 바꾸기", @@ -24,6 +25,7 @@ "Delete" : "삭제", "Disconnect storage" : "저장소 연결 해제", "Unshare" : "공유 해제", + "Could not load info for file \"{file}\"" : "파일 \"{file}\"의 정보를 가져올 수 없음", "Files" : "파일", "Details" : "자세한 정보", "Select" : "선택", @@ -35,12 +37,13 @@ "Could not move \"{file}\"" : "\"{file}\"을(를) 이동할 수 없음", "{newName} already exists" : "{newName}이(가) 이미 존재함", "Could not rename \"{fileName}\", it does not exist any more" : "\"{fileName}\"의 이름을 변경할 수 없음, 더 이상 존재하지 않음", - "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{dir}\" 폴더 내에 \"{targetName}\" 파일이 이미 있습니다. 다른 이름을 사용하십시오.", + "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "폴더 \"{dir}\" 내에 파일 \"{targetName}\"이(가) 이미 있습니다. 다른 이름을 사용하십시오.", "Could not rename \"{fileName}\"" : "\"{fileName}\"의 이름을 바꿀 수 없음", "Could not create file \"{file}\"" : "\"{file}\"을(를) 만들 수 없음", "Could not create file \"{file}\" because it already exists" : "파일이 이미 존재하므로 \"{file}\"을(를) 만들 수 없음", "Could not create folder \"{dir}\" because it already exists" : "폴더가 이미 존재하므로 폴더 \"{dir}\"을(를) 만들 수 없음", "Error deleting file \"{fileName}\"." : "파일 \"{fileName}\"을(를) 삭제할 수 없습니다.", + "No search results in other folders for {tag}{filter}{endtag}" : "다른 폴더에 {tag}{filter}{endtag} 검색 결과가 없음", "Name" : "이름", "Size" : "크기", "Modified" : "수정됨", @@ -53,16 +56,18 @@ "New" : "새로 만들기", "\"{name}\" is an invalid file name." : "\"{name}\"은(는) 잘못된 파일 이름입니다.", "File name cannot be empty." : "파일 이름이 비어 있을 수 없습니다.", + "\"{name}\" is not an allowed filetype" : "\"{name}\"은 허용된 파일 형식이 아님", "Storage of {owner} is full, files can not be updated or synced anymore!" : "{owner}의 저장소가 가득 찼습니다. 파일을 더 이상 업데이트하거나 동기화할 수 없습니다!", "Your storage is full, files can not be updated or synced anymore!" : "저장 공간이 가득 찼습니다. 파일을 업데이트하거나 동기화할 수 없습니다!", "Storage of {owner} is almost full ({usedSpacePercent}%)" : "{owner}의 저장 공간이 거의 가득 찼습니다({usedSpacePercent}%)", "Your storage is almost full ({usedSpacePercent}%)" : "저장 공간이 거의 가득 찼습니다({usedSpacePercent}%)", "_matches '{filter}'_::_match '{filter}'_" : ["'{filter}'와(과) 일치"], - "View in folder" : "폴더보기", + "View in folder" : "폴더에서 보기", "Path" : "경로", - "_%n byte_::_%n bytes_" : ["%n바이트"], - "Favorited" : "책갈피에 추가됨", + "_%n byte_::_%n bytes_" : ["%n 바이트"], + "Favorited" : "즐겨찾기에 추가됨", "Favorite" : "즐겨찾기", + "Copy direct link (only works for users who have access to this file/folder)" : "직접 링크 복사(이 파일/폴더에 접근 권한이 있는 사람만)", "Folder" : "폴더", "New folder" : "새 폴더", "Upload" : "업로드", @@ -71,25 +76,26 @@ "Removed from favorites" : "즐겨찾기에서 삭제됨", "You added {file} to your favorites" : "내가 {file}을(를) 즐겨찾기에 추가함", "You removed {file} from your favorites" : "내가 {file}을(를) 즐겨찾기에서 삭제함", - "Created by {user}" : "{user} 님이 만듬", + "File changes" : "파일 변경", + "Created by {user}" : "{user} 님이 만듦", "Changed by {user}" : "{user} 님이 변경함", "Deleted by {user}" : "{user} 님이 삭제함", "Restored by {user}" : "{user} 님이 복원함", "Renamed by {user}" : "{user} 님이 이름을 변경함", "Moved by {user}" : "{user} 님이 이동함", - "You created {file}" : "내가 {file}을(를) 만듬", - "{user} created {file}" : "{user} 님이 {file}을(를) 만듬", - "{file} was created in a public folder" : "공유 폴더에 {file} 이(가) 생성됨", - "You changed {file}" : "내가 {file} 을(를) 변경함", - "{user} changed {file}" : "{user} 님이 {file} 을(를) 변경함", - "You deleted {file}" : "내가 {file} 을(를) 삭제함", - "{user} deleted {file}" : "{user} 님이 {file} 을(를) 삭제함", - "You restored {file}" : "내가 {file} 을(를) 복원함", - "{user} restored {file}" : "{user} 님이 {file} 을(를) 복원함", - "You renamed {oldfile} to {newfile}" : "내가 {oldfile} 을(를) {newfile} 로 이름을 바꿈", - "{user} renamed {oldfile} to {newfile}" : "{user} 님이 {oldfile} 을(를) {newfile} 로 이름을 바꿈", - "You moved {oldfile} to {newfile}" : "내가 {oldfile} 을(를) {newfile} 로 이동함", - "{user} moved {oldfile} to {newfile}" : "{user} 님이 {oldfile} 을(를) {newfile} 로 이동함", + "You created {file}" : "{file}을(를) 만듦", + "{user} created {file}" : "{user} 님이 {file}을(를) 만듦", + "{file} was created in a public folder" : "공유 폴더에 {file}이(가) 생성됨", + "You changed {file}" : "{file}을(를) 변경함", + "{user} changed {file}" : "{user} 님이 {file}을(를) 변경함", + "You deleted {file}" : "{file}을(를) 삭제함", + "{user} deleted {file}" : "{user} 님이 {file}을(를) 삭제함", + "You restored {file}" : "내가 {file}을(를) 복원함", + "{user} restored {file}" : "{user} 님이 {file}을(를) 복원함", + "You renamed {oldfile} to {newfile}" : "{oldfile}을(를) {newfile}(으)로 이름을 바꿈", + "{user} renamed {oldfile} to {newfile}" : "{user} 님이 {oldfile}을(를) {newfile}(으)로 이름을 바꿈", + "You moved {oldfile} to {newfile}" : "{oldfile}을(를) {newfile}(으)로 이동함", + "{user} moved {oldfile} to {newfile}" : "{user} 님이 {oldfile}을(를) {newfile}(으)로 이동함", "A file has been added to or removed from your <strong>favorites</strong>" : "파일이 <strong>즐겨찾기</strong>에서 추가 또는 삭제됨", "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "파일이나 폴더가 <strong>변경되거나</strong> <strong>이름이 바뀜</strong>", "A new file or folder has been <strong>created</strong>" : "새 파일이나 폴더가 <strong>생성됨</strong>", @@ -104,7 +110,7 @@ "With PHP-FPM it might take 5 minutes for changes to be applied." : "PHP-FPM을 사용 중이면 변경 사항이 적용되는 데 최대 5분 정도 걸릴 수 있습니다.", "Missing permissions to edit from here." : "여기에서 편집할 권한이 없습니다.", "Settings" : "설정", - "Show hidden files" : "숨겨진 파일보기", + "Show hidden files" : "숨김 파일 보이기", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "이 주소를 사용하여 <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">WebDAV를 통해 파일에 접근할 수 있습니다</a>", "No files in here" : "여기에 파일 없음", @@ -113,7 +119,8 @@ "Select all" : "모두 선택", "Upload too large" : "업로드한 파일이 너무 큼", "The files you are trying to upload exceed the maximum size for file uploads on this server." : "이 파일이 서버에서 허용하는 최대 업로드 가능 용량보다 큽니다.", - "Files and folders you mark as favorite will show up here" : "책갈피에 추가한 파일과 폴더가 여기에 나타납니다", + "No favorites yet" : "즐겨찾는 항목 없음", + "Files and folders you mark as favorite will show up here" : "즐겨찾기에 추가한 파일과 폴더가 여기에 나타납니다", "Shared with you" : "나와 공유됨", "Shared with others" : "다른 사람과 공유됨", "Shared by link" : "링크로 공유됨", @@ -121,13 +128,16 @@ "Deleted files" : "삭제된 파일", "Text file" : "텍스트 파일", "New text file.txt" : "새 텍스트 파일.txt", - "{hours}:{minutes}h" : "{hours}:{minutes} 시간", - "{minutes}:{seconds}m" : "{minutes}:{seconds} 분", + "_{hours}:{minutes}:{seconds} hour left_::_{hours}:{minutes}:{seconds} hours left_" : ["{hours}:{minutes}:{seconds}시간 남음"], + "{hours}:{minutes}h" : "{hours}:{minutes}시간", + "_{minutes}:{seconds} minute left_::_{minutes}:{seconds} minutes left_" : ["{minutes}:{seconds}분 남음"], + "{minutes}:{seconds}m" : "{minutes}:{seconds}분", + "_{seconds} second left_::_{seconds} seconds left_" : ["{seconds}초 남음"], "{seconds}s" : "{seconds}초", - "Any moment now..." : "조금 남음", + "Any moment now..." : "조금 남음...", "Soon..." : "곧...", "File upload is in progress. Leaving the page now will cancel the upload." : "파일 업로드가 진행 중입니다. 이 페이지를 벗어나면 업로드가 취소됩니다.", "Copy local link" : "로컬 링크 복사", - "No favorites" : "책갈피 없음" + "No favorites" : "즐겨찾는 항목 없음" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js index 0008e239b4f..9efb56cec1e 100644 --- a/apps/files/l10n/pt_BR.js +++ b/apps/files/l10n/pt_BR.js @@ -12,7 +12,7 @@ OC.L10N.register( "Favorites" : "Favoritos", "Could not create folder \"{dir}\"" : "Não foi possível criar a pasta \"{dir}\"", "Upload cancelled." : "Envio cancelado.", - "Unable to upload {filename} as it is a directory or has 0 bytes" : "Não é possível fazer o envio de {filename}, pois é um diretório ou tem 0 bytes", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Não foi possível fazer o envio de {filename}, pois é um diretório ou tem 0 bytes", "Not enough free space, you are uploading {size1} but only {size2} is left" : "Não há espaço suficiente, você está enviando {size1} mas resta apenas {size2}", "Target folder \"{dir}\" does not exist any more" : "Pasta de destino \"{dir}\" não existe mais", "Not enough free space" : "Espaço livre insuficiente", diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json index 0a288976a10..f185237235c 100644 --- a/apps/files/l10n/pt_BR.json +++ b/apps/files/l10n/pt_BR.json @@ -10,7 +10,7 @@ "Favorites" : "Favoritos", "Could not create folder \"{dir}\"" : "Não foi possível criar a pasta \"{dir}\"", "Upload cancelled." : "Envio cancelado.", - "Unable to upload {filename} as it is a directory or has 0 bytes" : "Não é possível fazer o envio de {filename}, pois é um diretório ou tem 0 bytes", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Não foi possível fazer o envio de {filename}, pois é um diretório ou tem 0 bytes", "Not enough free space, you are uploading {size1} but only {size2} is left" : "Não há espaço suficiente, você está enviando {size1} mas resta apenas {size2}", "Target folder \"{dir}\" does not exist any more" : "Pasta de destino \"{dir}\" não existe mais", "Not enough free space" : "Espaço livre insuficiente", diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js index 934aa054fb6..6b403e7fa85 100644 --- a/apps/files/tests/js/filelistSpec.js +++ b/apps/files/tests/js/filelistSpec.js @@ -1509,6 +1509,12 @@ describe('OCA.Files.FileList tests', function() { }); it('reloads the list when leaving hidden state', function() { var reloadStub = sinon.stub(fileList, 'reload'); + + // First show should not trigger + $('#app-content-files').trigger(new $.Event('show')); + expect(reloadStub.calledOnce).toEqual(false); + + // Second show should! $('#app-content-files').trigger(new $.Event('show')); expect(reloadStub.calledOnce).toEqual(true); reloadStub.restore(); diff --git a/apps/files_external/js/app.js b/apps/files_external/js/app.js index d3ce2010ecd..859a820f14c 100644 --- a/apps/files_external/js/app.js +++ b/apps/files_external/js/app.js @@ -35,7 +35,7 @@ OCA.External.App = { ); this._extendFileList(this.fileList); - this.fileList.appName = t('files_external', 'External storage'); + this.fileList.appName = t('files_external', 'External storages'); return this.fileList; }, @@ -111,4 +111,3 @@ $(document).ready(function() { } /* End Status Manager */ }); - diff --git a/apps/files_external/js/mountsfilelist.js b/apps/files_external/js/mountsfilelist.js index 35aef751fef..3beee6f73b2 100644 --- a/apps/files_external/js/mountsfilelist.js +++ b/apps/files_external/js/mountsfilelist.js @@ -28,7 +28,7 @@ FileList.prototype = _.extend({}, OCA.Files.FileList.prototype, /** @lends OCA.External.FileList.prototype */ { - appName: 'External storage', + appName: 'External storages', /** * @private diff --git a/apps/files_external/l10n/es.js b/apps/files_external/l10n/es.js index 91a0abcf988..97e0c9248a7 100644 --- a/apps/files_external/l10n/es.js +++ b/apps/files_external/l10n/es.js @@ -39,6 +39,7 @@ OC.L10N.register( "Credentials saved" : "Credenciales guardados", "Credentials saving failed" : "Guardado de credenciales fallido", "Credentials required" : "Credenciales requeridos", + "Storage with ID \"%d\" not found" : "No se ha encontrado el almacenamiento con ID \"%d\"", "Invalid backend or authentication mechanism class" : "Sistema o mecanismo de autentificación inválido", "Invalid mount point" : "Punto de montaje no válido", "Objectstore forbidden" : "Objeto de almacenaje prohibido", @@ -49,6 +50,7 @@ OC.L10N.register( "Unsatisfied authentication mechanism parameters" : "Los parámetros del mecanismo de autentificación no son válidos", "Insufficient data: %s" : "Datos insuficientes: %s", "%s" : "%s", + "Storage with ID \"%d\" is not user editable" : "El almacenamiento con ID \"%d\" no se puede editar por el usuario", "Access key" : "Clave de acceso", "Secret key" : "Clave secreta", "Builtin" : "Incorporado", diff --git a/apps/files_external/l10n/es.json b/apps/files_external/l10n/es.json index ce2532a02cc..67024b59979 100644 --- a/apps/files_external/l10n/es.json +++ b/apps/files_external/l10n/es.json @@ -37,6 +37,7 @@ "Credentials saved" : "Credenciales guardados", "Credentials saving failed" : "Guardado de credenciales fallido", "Credentials required" : "Credenciales requeridos", + "Storage with ID \"%d\" not found" : "No se ha encontrado el almacenamiento con ID \"%d\"", "Invalid backend or authentication mechanism class" : "Sistema o mecanismo de autentificación inválido", "Invalid mount point" : "Punto de montaje no válido", "Objectstore forbidden" : "Objeto de almacenaje prohibido", @@ -47,6 +48,7 @@ "Unsatisfied authentication mechanism parameters" : "Los parámetros del mecanismo de autentificación no son válidos", "Insufficient data: %s" : "Datos insuficientes: %s", "%s" : "%s", + "Storage with ID \"%d\" is not user editable" : "El almacenamiento con ID \"%d\" no se puede editar por el usuario", "Access key" : "Clave de acceso", "Secret key" : "Clave secreta", "Builtin" : "Incorporado", diff --git a/apps/files_external/l10n/es_MX.js b/apps/files_external/l10n/es_MX.js index c25448eda80..e16eaae639e 100644 --- a/apps/files_external/l10n/es_MX.js +++ b/apps/files_external/l10n/es_MX.js @@ -112,7 +112,7 @@ OC.L10N.register( "Storage type" : "Tipo de almacenamiento", "Scope" : "Alcance", "Enable encryption" : "Habilitar encripción", - "Enable previews" : "Habilitar previsualizaciones", + "Enable previews" : "Habilitar vistas previas", "Enable sharing" : "Habilitar compartir", "Check for changes" : "Verificar si hay cambios", "Never" : "Nunca", diff --git a/apps/files_external/l10n/es_MX.json b/apps/files_external/l10n/es_MX.json index 9f3a451349e..0d82a5723ce 100644 --- a/apps/files_external/l10n/es_MX.json +++ b/apps/files_external/l10n/es_MX.json @@ -110,7 +110,7 @@ "Storage type" : "Tipo de almacenamiento", "Scope" : "Alcance", "Enable encryption" : "Habilitar encripción", - "Enable previews" : "Habilitar previsualizaciones", + "Enable previews" : "Habilitar vistas previas", "Enable sharing" : "Habilitar compartir", "Check for changes" : "Verificar si hay cambios", "Never" : "Nunca", diff --git a/apps/files_external/l10n/ja.js b/apps/files_external/l10n/ja.js index 0223d60fc64..60c40e2723a 100644 --- a/apps/files_external/l10n/ja.js +++ b/apps/files_external/l10n/ja.js @@ -39,6 +39,7 @@ OC.L10N.register( "Credentials saved" : "資格情報を保存しました", "Credentials saving failed" : "資格情報の保存に失敗しました", "Credentials required" : "資格情報が必要です", + "Storage with ID \"%d\" not found" : "ID \"%d\" のストレージが見つかりません", "Invalid backend or authentication mechanism class" : "バックエンドまたは認証システムクラスが無効", "Invalid mount point" : "無効なマウントポイント", "Objectstore forbidden" : "オブジェクトストアが禁じられています", @@ -49,6 +50,7 @@ OC.L10N.register( "Unsatisfied authentication mechanism parameters" : "認証のためのパラメータが不十分です", "Insufficient data: %s" : "データが不足しています: %s", "%s" : "%s", + "Storage with ID \"%d\" is not user editable" : "ID \"%d\" のストレージはユーザーが編集できません", "Access key" : "アクセスキー", "Secret key" : "シークレットキー", "Builtin" : "ビルトイン", diff --git a/apps/files_external/l10n/ja.json b/apps/files_external/l10n/ja.json index b80c3f3fddc..7b5d9857508 100644 --- a/apps/files_external/l10n/ja.json +++ b/apps/files_external/l10n/ja.json @@ -37,6 +37,7 @@ "Credentials saved" : "資格情報を保存しました", "Credentials saving failed" : "資格情報の保存に失敗しました", "Credentials required" : "資格情報が必要です", + "Storage with ID \"%d\" not found" : "ID \"%d\" のストレージが見つかりません", "Invalid backend or authentication mechanism class" : "バックエンドまたは認証システムクラスが無効", "Invalid mount point" : "無効なマウントポイント", "Objectstore forbidden" : "オブジェクトストアが禁じられています", @@ -47,6 +48,7 @@ "Unsatisfied authentication mechanism parameters" : "認証のためのパラメータが不十分です", "Insufficient data: %s" : "データが不足しています: %s", "%s" : "%s", + "Storage with ID \"%d\" is not user editable" : "ID \"%d\" のストレージはユーザーが編集できません", "Access key" : "アクセスキー", "Secret key" : "シークレットキー", "Builtin" : "ビルトイン", diff --git a/apps/files_external/l10n/ko.js b/apps/files_external/l10n/ko.js index ac0a4dda076..87e8e454aeb 100644 --- a/apps/files_external/l10n/ko.js +++ b/apps/files_external/l10n/ko.js @@ -9,7 +9,7 @@ OC.L10N.register( "External storages" : "외부 저장소", "External storage" : "외부 저장소", "Dropbox App Configuration" : "Dropbox 앱 설정", - "Google Drive App Configuration" : "구글 드라이브 앱 설정", + "Google Drive App Configuration" : "Google 드라이브 앱 설정", "Personal" : "개인", "System" : "시스템", "Grant access" : "접근 권한 부여", @@ -17,13 +17,16 @@ OC.L10N.register( "Error configuring OAuth2" : "OAuth2 설정 오류", "Generate keys" : "키 생성", "Error generating key pair" : "키 쌍을 생성하는 중 오류 발생", - "All users. Type to select user or group." : "모든 사용자입니다. 사용자나 그룹을 선택하려면 입력하십시오", + "All users. Type to select user or group." : "모든 사용자입니다. 사용자나 그룹을 선택하려면 입력하십시오.", "(group)" : "(그룹)", + "Compatibility with Mac NFD encoding (slow)" : "Mac NFD 인코딩 호환성 사용(느림)", "Admin defined" : "관리자 지정", "Saved" : "저장됨", + "Saving..." : "저장 중...", "Save" : "저장", "Empty response from the server" : "서버에서 빈 응답이 돌아옴", "Couldn't access. Please logout and login to activate this mount point" : "접근할 수 없습니다. 이 마운트 지점을 활성화하려면 로그아웃 후 로그인하십시오", + "Couldn't get the information from the remote server: {code} {type}" : "원격 서버에서 정보를 가져올 수 없음: {code} {type}", "Couldn't get the list of external mount points: {type}" : "외부 마운트 지점 목록을 가져올 수 없음: {type}", "There was an error with message: " : "오류 메시지: ", "External mount error" : "외부 마운트 오류", @@ -36,6 +39,7 @@ OC.L10N.register( "Credentials saved" : "인증 정보 저장됨", "Credentials saving failed" : "인증 정보를 저장할 수 없음", "Credentials required" : "인증 정보 필요함", + "Storage with ID \"%d\" not found" : "ID \"%d\"인 공유를 찾을 수 없음", "Invalid backend or authentication mechanism class" : "백엔드나 인증 방식 클래스가 잘못됨", "Invalid mount point" : "잘못된 마운트 지점", "Objectstore forbidden" : "Objectstore에 접근 금지됨", @@ -46,6 +50,7 @@ OC.L10N.register( "Unsatisfied authentication mechanism parameters" : "인증 방식 인자가 부족함", "Insufficient data: %s" : "충분하지 않은 데이터: %s", "%s" : "%s", + "Storage with ID \"%d\" is not user editable" : "저장소 ID \"%d\"을(를) 사용자가 편집할 수 없음", "Access key" : "접근 키", "Secret key" : "비밀 키", "Builtin" : "내장", @@ -98,6 +103,9 @@ OC.L10N.register( "OpenStack Object Storage" : "OpenStack 객체 저장소", "Service name" : "서비스 이름", "Request timeout (seconds)" : "요청 시간 제한(초)", + "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "PHP의 cURL 지원이 비활성화되어 있거나 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.", + "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "PHP의 FTP 지원이 비활성화되어 있거나 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.", + "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\"이(가) 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.", "No external storage configured" : "외부 저장소가 설정되지 않았음", "You can add external storages in the personal settings" : "개인 설정에서 외부 저장소를 추가할 수 있습니다", "Name" : "이름", diff --git a/apps/files_external/l10n/ko.json b/apps/files_external/l10n/ko.json index 6b09b8076f6..c2922cf02b1 100644 --- a/apps/files_external/l10n/ko.json +++ b/apps/files_external/l10n/ko.json @@ -7,7 +7,7 @@ "External storages" : "외부 저장소", "External storage" : "외부 저장소", "Dropbox App Configuration" : "Dropbox 앱 설정", - "Google Drive App Configuration" : "구글 드라이브 앱 설정", + "Google Drive App Configuration" : "Google 드라이브 앱 설정", "Personal" : "개인", "System" : "시스템", "Grant access" : "접근 권한 부여", @@ -15,13 +15,16 @@ "Error configuring OAuth2" : "OAuth2 설정 오류", "Generate keys" : "키 생성", "Error generating key pair" : "키 쌍을 생성하는 중 오류 발생", - "All users. Type to select user or group." : "모든 사용자입니다. 사용자나 그룹을 선택하려면 입력하십시오", + "All users. Type to select user or group." : "모든 사용자입니다. 사용자나 그룹을 선택하려면 입력하십시오.", "(group)" : "(그룹)", + "Compatibility with Mac NFD encoding (slow)" : "Mac NFD 인코딩 호환성 사용(느림)", "Admin defined" : "관리자 지정", "Saved" : "저장됨", + "Saving..." : "저장 중...", "Save" : "저장", "Empty response from the server" : "서버에서 빈 응답이 돌아옴", "Couldn't access. Please logout and login to activate this mount point" : "접근할 수 없습니다. 이 마운트 지점을 활성화하려면 로그아웃 후 로그인하십시오", + "Couldn't get the information from the remote server: {code} {type}" : "원격 서버에서 정보를 가져올 수 없음: {code} {type}", "Couldn't get the list of external mount points: {type}" : "외부 마운트 지점 목록을 가져올 수 없음: {type}", "There was an error with message: " : "오류 메시지: ", "External mount error" : "외부 마운트 오류", @@ -34,6 +37,7 @@ "Credentials saved" : "인증 정보 저장됨", "Credentials saving failed" : "인증 정보를 저장할 수 없음", "Credentials required" : "인증 정보 필요함", + "Storage with ID \"%d\" not found" : "ID \"%d\"인 공유를 찾을 수 없음", "Invalid backend or authentication mechanism class" : "백엔드나 인증 방식 클래스가 잘못됨", "Invalid mount point" : "잘못된 마운트 지점", "Objectstore forbidden" : "Objectstore에 접근 금지됨", @@ -44,6 +48,7 @@ "Unsatisfied authentication mechanism parameters" : "인증 방식 인자가 부족함", "Insufficient data: %s" : "충분하지 않은 데이터: %s", "%s" : "%s", + "Storage with ID \"%d\" is not user editable" : "저장소 ID \"%d\"을(를) 사용자가 편집할 수 없음", "Access key" : "접근 키", "Secret key" : "비밀 키", "Builtin" : "내장", @@ -96,6 +101,9 @@ "OpenStack Object Storage" : "OpenStack 객체 저장소", "Service name" : "서비스 이름", "Request timeout (seconds)" : "요청 시간 제한(초)", + "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "PHP의 cURL 지원이 비활성화되어 있거나 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.", + "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "PHP의 FTP 지원이 비활성화되어 있거나 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.", + "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\"이(가) 설치되어 있지 않습니다. %s을(를) 마운트할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.", "No external storage configured" : "외부 저장소가 설정되지 않았음", "You can add external storages in the personal settings" : "개인 설정에서 외부 저장소를 추가할 수 있습니다", "Name" : "이름", diff --git a/apps/files_external/l10n/pt_BR.js b/apps/files_external/l10n/pt_BR.js index 3f3cc25b6c2..34e488e865d 100644 --- a/apps/files_external/l10n/pt_BR.js +++ b/apps/files_external/l10n/pt_BR.js @@ -40,13 +40,13 @@ OC.L10N.register( "Credentials saving failed" : "A gravação das credenciais falhou", "Credentials required" : "Credenciais são requeridas", "Storage with ID \"%d\" not found" : "A armazenagem com a ID \"%d\" não foi encontrada", - "Invalid backend or authentication mechanism class" : "Backend ou classe de mecanismo de autenticação inválido", + "Invalid backend or authentication mechanism class" : "Plataforma de serviço ou classe de mecanismo de autenticação inválido", "Invalid mount point" : "Ponto de montagem inválido", "Objectstore forbidden" : "Proibido armazenamento de objetos", - "Invalid storage backend \"%s\"" : "Backend de armazenamento \"%s\" inválido", - "Not permitted to use backend \"%s\"" : "Não é permitido o uso de backend \"%s\"", + "Invalid storage backend \"%s\"" : "Plataforma de serviço de armazenamento \"%s\" inválido", + "Not permitted to use backend \"%s\"" : "Não é permitido o uso da plataforma de serviço \"%s\"", "Not permitted to use authentication mechanism \"%s\"" : "Não é permitido usar o mecanismo de autenticação \"%s\"", - "Unsatisfied backend parameters" : "Parâmetros de backend não atendidos", + "Unsatisfied backend parameters" : "Parâmetros da plataforma de serviço não atendidos", "Unsatisfied authentication mechanism parameters" : "Parâmetros de mecanismos de autenticação não satisfeitos", "Insufficient data: %s" : "Dados insuficientes: %s", "%s" : "%s", @@ -103,9 +103,9 @@ OC.L10N.register( "OpenStack Object Storage" : "Armazenamento de Objetos OpenStack", "Service name" : "Nome do serviço", "Request timeout (seconds)" : "Tempo requerido esgotado (segundos)", - "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "O suporte a cURL no PHP não está habilitado ou instalado. A montagem de %s não é possível. Por favor, solicite a instalação ao administrador do sistema.", - "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "O suporte a FTP no PHP não está habilitado ou instalado. A montagem de %s não é possível. Por favor, solicite a instalação ao administrador do sistema.", - "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" não está instalado. A montagem de %s não é possível. Por favor, solicite a instalação ao administrador do sistema.", + "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "O suporte a cURL no PHP não está habilitado ou instalado. A montagem de %s não foi possível. Por favor, solicite a instalação ao administrador do sistema.", + "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "O suporte a FTP no PHP não está habilitado ou instalado. A montagem de %s não foi possível. Por favor, solicite a instalação ao administrador do sistema.", + "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" não está instalado. A montagem de %s não foi possível. Por favor, solicite a instalação ao administrador do sistema.", "No external storage configured" : "Nenhum armazendo externo foi configurado", "You can add external storages in the personal settings" : "Você pode adicionar armazenamentos externos nas configurações pessoais", "Name" : "Nome", diff --git a/apps/files_external/l10n/pt_BR.json b/apps/files_external/l10n/pt_BR.json index 0475feb5d7b..7b8b9f7f14c 100644 --- a/apps/files_external/l10n/pt_BR.json +++ b/apps/files_external/l10n/pt_BR.json @@ -38,13 +38,13 @@ "Credentials saving failed" : "A gravação das credenciais falhou", "Credentials required" : "Credenciais são requeridas", "Storage with ID \"%d\" not found" : "A armazenagem com a ID \"%d\" não foi encontrada", - "Invalid backend or authentication mechanism class" : "Backend ou classe de mecanismo de autenticação inválido", + "Invalid backend or authentication mechanism class" : "Plataforma de serviço ou classe de mecanismo de autenticação inválido", "Invalid mount point" : "Ponto de montagem inválido", "Objectstore forbidden" : "Proibido armazenamento de objetos", - "Invalid storage backend \"%s\"" : "Backend de armazenamento \"%s\" inválido", - "Not permitted to use backend \"%s\"" : "Não é permitido o uso de backend \"%s\"", + "Invalid storage backend \"%s\"" : "Plataforma de serviço de armazenamento \"%s\" inválido", + "Not permitted to use backend \"%s\"" : "Não é permitido o uso da plataforma de serviço \"%s\"", "Not permitted to use authentication mechanism \"%s\"" : "Não é permitido usar o mecanismo de autenticação \"%s\"", - "Unsatisfied backend parameters" : "Parâmetros de backend não atendidos", + "Unsatisfied backend parameters" : "Parâmetros da plataforma de serviço não atendidos", "Unsatisfied authentication mechanism parameters" : "Parâmetros de mecanismos de autenticação não satisfeitos", "Insufficient data: %s" : "Dados insuficientes: %s", "%s" : "%s", @@ -101,9 +101,9 @@ "OpenStack Object Storage" : "Armazenamento de Objetos OpenStack", "Service name" : "Nome do serviço", "Request timeout (seconds)" : "Tempo requerido esgotado (segundos)", - "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "O suporte a cURL no PHP não está habilitado ou instalado. A montagem de %s não é possível. Por favor, solicite a instalação ao administrador do sistema.", - "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "O suporte a FTP no PHP não está habilitado ou instalado. A montagem de %s não é possível. Por favor, solicite a instalação ao administrador do sistema.", - "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" não está instalado. A montagem de %s não é possível. Por favor, solicite a instalação ao administrador do sistema.", + "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "O suporte a cURL no PHP não está habilitado ou instalado. A montagem de %s não foi possível. Por favor, solicite a instalação ao administrador do sistema.", + "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "O suporte a FTP no PHP não está habilitado ou instalado. A montagem de %s não foi possível. Por favor, solicite a instalação ao administrador do sistema.", + "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" não está instalado. A montagem de %s não foi possível. Por favor, solicite a instalação ao administrador do sistema.", "No external storage configured" : "Nenhum armazendo externo foi configurado", "You can add external storages in the personal settings" : "Você pode adicionar armazenamentos externos nas configurações pessoais", "Name" : "Nome", diff --git a/apps/files_external/lib/Lib/Storage/SMB.php b/apps/files_external/lib/Lib/Storage/SMB.php index cc4cd641ce5..7afdb746a98 100644 --- a/apps/files_external/lib/Lib/Storage/SMB.php +++ b/apps/files_external/lib/Lib/Storage/SMB.php @@ -31,6 +31,7 @@ namespace OCA\Files_External\Lib\Storage; +use Icewind\SMB\Exception\AlreadyExistsException; use Icewind\SMB\Exception\ConnectException; use Icewind\SMB\Exception\Exception; use Icewind\SMB\Exception\ForbiddenException; @@ -90,6 +91,7 @@ class SMB extends Common implements INotifyStorage { throw new \Exception('Invalid configuration'); } $this->statCache = new CappedMemoryCache(); + parent::__construct($params); } /** @@ -162,10 +164,42 @@ class SMB extends Common implements INotifyStorage { * @return array */ protected function formatInfo($info) { - return array( + $result = [ 'size' => $info->getSize(), - 'mtime' => $info->getMTime() - ); + 'mtime' => $info->getMTime(), + ]; + if ($info->isDirectory()) { + $result['type'] = 'dir'; + } else { + $result['type'] = 'file'; + } + return $result; + } + + /** + * Rename the files. If the source or the target is the root, the rename won't happen. + * + * @param string $source the old name of the path + * @param string $target the new name of the path + * @return bool true if the rename is successful, false otherwise + */ + public function rename($source, $target) { + if ($this->isRootDir($source) || $this->isRootDir($target)) { + return false; + } + + $absoluteSource = $this->buildPath($source); + $absoluteTarget = $this->buildPath($target); + try { + $result = $this->share->rename($absoluteSource, $absoluteTarget); + } catch (AlreadyExistsException $e) { + $this->remove($target); + $result = $this->share->rename($absoluteSource, $absoluteTarget); + } catch (\Exception $e) { + return false; + } + unset($this->statCache[$absoluteSource], $this->statCache[$absoluteTarget]); + return $result; } /** @@ -220,6 +254,10 @@ class SMB extends Common implements INotifyStorage { * @return bool */ public function unlink($path) { + if ($this->isRootDir($path)) { + return false; + } + try { if ($this->is_dir($path)) { return $this->rmdir($path); @@ -239,26 +277,6 @@ class SMB extends Common implements INotifyStorage { } /** - * @param string $path1 the old name - * @param string $path2 the new name - * @return bool - */ - public function rename($path1, $path2) { - try { - $this->remove($path2); - $path1 = $this->buildPath($path1); - $path2 = $this->buildPath($path2); - return $this->share->rename($path1, $path2); - } catch (NotFoundException $e) { - return false; - } catch (ForbiddenException $e) { - return false; - } catch (ConnectException $e) { - throw new StorageNotAvailableException($e->getMessage(), $e->getCode(), $e); - } - } - - /** * check if a file or folder has been updated since $time * * @param string $path @@ -266,7 +284,7 @@ class SMB extends Common implements INotifyStorage { * @return bool */ public function hasUpdated($path, $time) { - if (!$path and $this->root == '/') { + if (!$path and $this->root === '/') { // mtime doesn't work for shares, but giving the nature of the backend, // doing a full update is still just fast enough return true; @@ -343,6 +361,10 @@ class SMB extends Common implements INotifyStorage { } public function rmdir($path) { + if ($this->isRootDir($path)) { + return false; + } + try { $this->statCache = array(); $content = $this->share->dir($this->buildPath($path)); diff --git a/apps/files_external/templates/settings.php b/apps/files_external/templates/settings.php index bbd79994e39..e463a0d3c37 100644 --- a/apps/files_external/templates/settings.php +++ b/apps/files_external/templates/settings.php @@ -88,7 +88,7 @@ ?> <form data-can-create="<?php echo $canCreateMounts?'true':'false' ?>" id="files_external" class="section" data-encryption-enabled="<?php echo $_['encryptionEnabled']?'true': 'false'; ?>"> - <h2 data-anchor-name="external-storage"><?php p($l->t('External storage')); ?></h2> + <h2 data-anchor-name="external-storage"><?php p($l->t('External storages')); ?></h2> <?php if (isset($_['dependencies']) and ($_['dependencies']<>'') and $canCreateMounts) print_unescaped(''.$_['dependencies'].''); ?> <table id="externalStorage" class="grid" data-admin='<?php print_unescaped(json_encode($_['visibilityType'] === BackendService::VISIBILITY_ADMIN)); ?>'> <thead> diff --git a/apps/files_external/tests/Storage/SmbTest.php b/apps/files_external/tests/Storage/SmbTest.php index 45c01a0c59e..037c4cd4d39 100644 --- a/apps/files_external/tests/Storage/SmbTest.php +++ b/apps/files_external/tests/Storage/SmbTest.php @@ -132,4 +132,23 @@ class SmbTest extends \Test\Files\Storage\Storage { $this->assertEquals(new Change(IChange::ADDED, 'newfile.txt'), $result); } + + public function testRenameRoot() { + // root can't be renamed + $this->assertFalse($this->instance->rename('', 'foo1')); + + $this->instance->mkdir('foo2'); + $this->assertFalse($this->instance->rename('foo2', '')); + $this->instance->rmdir('foo2'); + } + + public function testUnlinkRoot() { + // root can't be deleted + $this->assertFalse($this->instance->unlink('')); + } + + public function testRmdirRoot() { + // root can't be deleted + $this->assertFalse($this->instance->rmdir('')); + } } diff --git a/apps/files_sharing/js/files_drop.js b/apps/files_sharing/js/files_drop.js index ddfcfcd3d8b..f1fc71c6ce2 100644 --- a/apps/files_sharing/js/files_drop.js +++ b/apps/files_sharing/js/files_drop.js @@ -72,34 +72,43 @@ return true; }, + setFileIcon: function (fileName,fileIcon) { + $('#public-upload ul li[data-name="' + fileName + '"]').html(fileIcon); + $('[data-toggle="tooltip"]').tooltip(); + }, + initialize: function () { $(document).bind('drop dragover', function (e) { // Prevent the default browser drop action: e.preventDefault(); }); var output = this.template(); + var fileName = undefined; $('#public-upload').fileupload({ type: 'PUT', dropZone: $('#public-upload'), sequentialUploads: true, add: function(e, data) { Drop.addFileToUpload(e, data); + fileName = escapeHTML(data.files[0].name); //we return true to keep trying to upload next file even //if addFileToUpload did not like the privious one return true; }, done: function(e, data) { // Created - if (data.jqXHR.status === 201) { - var mimeTypeUrl = OC.MimeType.getIconUrl(data.files[0].type); - $('#public-upload ul li[data-name="' + escapeHTML(data.files[0].name) + '"]').html('<img src="' + escapeHTML(mimeTypeUrl) + '"/> ' + escapeHTML(data.files[0].name)); - $('[data-toggle="tooltip"]').tooltip(); - } else { - var name = data.files[0].name; - OC.Notification.showTemporary(OC.L10N.translate('files_sharing', 'Could not upload "{filename}"', {filename: name})); - $('#public-upload ul li[data-name="' + escapeHTML(name) + '"]').html(output({isUploading: false, name: escapeHTML(name)})); - $('[data-toggle="tooltip"]').tooltip(); - } + var mimeTypeUrl = OC.MimeType.getIconUrl(data.files[0].type); + var fileIcon = '<img src="' + escapeHTML(mimeTypeUrl) + '"/> ' + fileName; + Drop.setFileIcon(fileName,fileIcon); + }, + fail: function(e, data, errorThrown) { + OC.Notification.showTemporary(OC.L10N.translate( + 'files_sharing', + 'Could not upload "{filename}"', + {filename: fileName} + )); + var fileIcon = output({isUploading: false, name: fileName}); + Drop.setFileIcon(fileName,fileIcon); }, progressall: function (e, data) { var progress = parseInt(data.loaded / data.total * 100, 10); diff --git a/apps/files_sharing/l10n/ko.js b/apps/files_sharing/l10n/ko.js index 5b5d00b98a4..1b342560312 100644 --- a/apps/files_sharing/l10n/ko.js +++ b/apps/files_sharing/l10n/ko.js @@ -1,13 +1,6 @@ OC.L10N.register( "files_sharing", { - "Server to server sharing is not enabled on this server" : "이 서버에서 서버간 공유를 사용할 수 없음", - "The mountpoint name contains invalid characters." : "마운트 지점 이름에 잘못된 글자가 포함되어 있습니다.", - "Not allowed to create a federated share with the same user server" : "같은 사용자 서버 내에서 연합 공유를 만들 수 없음", - "Invalid or untrusted SSL certificate" : "잘못되었거나 신뢰할 수 없는 SSL 인증서", - "Could not authenticate to remote share, password might be wrong" : "원격 공유에서 인증할 수 없습니다. 암호가 맞지 않을 수 있습니다.", - "Storage not valid" : "저장소가 잘못됨", - "Couldn't add remote share" : "원격 공유를 추가할 수 없음", "Shared with you" : "나와 공유됨", "Shared with others" : "다른 사람과 공유됨", "Shared by link" : "링크로 공유됨", @@ -17,72 +10,105 @@ OC.L10N.register( "Files and folders you share will show up here" : "내가 공유하는 파일과 폴더가 여기에 나타납니다", "No shared links" : "공유된 링크 없음", "Files and folders you share by link will show up here" : "내가 링크로 공유하는 파일과 폴더가 여기에 나타납니다", - "Do you want to add the remote share {name} from {owner}@{remote}?" : "{owner}@{remote}의 원격 공유 {name}을(를) 추가하시겠습니까?", - "Remote share" : "원격 공유", - "Remote share password" : "원격 공유 암호", - "Cancel" : "취소", - "Add remote share" : "원격 공유 추가", "You can upload into this folder" : "이 폴더에 업로드할 수 있습니다", + "No compatible server found at {remote}" : "{remote}에서 호환 서버를 찾을 수 없음", + "Invalid server URL" : "잘못된 서버 URL", + "Failed to add the public link to your Nextcloud" : "Nextcloud에 공개 링크를 추가할 수 없음", + "Share" : "공유", + "No expiration date set" : "만료 날짜가 설정되지 않음", "Shared by" : "공유한 사용자:", "Sharing" : "공유", - "A file or folder has been <strong>shared</strong>" : "파일이나 폴더가 <strong>공유됨</strong>", - "A file or folder was shared from <strong>another server</strong>" : "<strong>다른 서버</strong>에서 파일이나 폴더를 공유함", - "A public shared file or folder was <strong>downloaded</strong>" : "공개 공유된 파일이나 폴더가 <strong>다운로드됨</strong>", - "You received a new remote share %2$s from %1$s" : "%1$s에서 새 원격 공유 %2$s을(를) 받았습니다", - "You received a new remote share from %s" : "%s에서 원격 공유 요청을 받았습니다", - "%1$s accepted remote share %2$s" : "%1$s 님이 원격 공유 %2$s을(를) 수락함", - "%1$s declined remote share %2$s" : "%1$s 님이 원격 공유 %2$s을(를) 거절함", - "%1$s unshared %2$s from you" : "%1$s 님이 %2$s의 공유를 중단함", - "Public shared folder %1$s was downloaded" : "공개 공유 폴더 %1$s이(가) 다운로드됨", - "Public shared file %1$s was downloaded" : "공개 공유 파일 %1$s이(가) 다운로드됨", - "You shared %1$s with %2$s" : "내가 %2$s 님과 %1$s을(를) 공유함", - "%2$s shared %1$s with %3$s" : "%2$s 님이 %1$s을(를) %3$s 님과 공유함", - "You removed the share of %2$s for %1$s" : "%1$s을(를) 위한 %2$s 그룹의 공유를 삭제함", - "%2$s removed the share of %3$s for %1$s" : "%2$s 님이 %1$s을(를) 위한 %3$s 그룹의 공유를 삭제함", - "You shared %1$s with group %2$s" : "내가 %2$s 그룹과 %1$s을(를) 공유함", - "%2$s shared %1$s with group %3$s" : "%2$s 님이 %1$s을(를) %3$s 그룹과 공유함", - "You removed the share of group %2$s for %1$s" : "%1$s 님을 위한 %2$s 그룹 공유를 삭제함", - "%2$s removed the share of group %3$s for %1$s" : "%2$s 님이 %1$s에 대한 %3$s 그룹의 공유를 삭제함", - "%2$s shared %1$s via link" : "%2$s 님이 %1$s을(를) 링크로 공유함", - "You shared %1$s via link" : "내가 %1$s을(를) 링크로 공유함", - "You removed the public link for %1$s" : "%1$s의 공개 링크를 삭제함", - "%2$s removed the public link for %1$s" : "%2$s 님이 %1$s의 공개 링크를 삭제함", - "Your public link for %1$s expired" : "%1$s의 공개 링크가 만료됨", - "The public link of %2$s for %1$s expired" : "%2$s 님의 %1$s 공개 링크가 만료됨", - "%2$s shared %1$s with you" : "%2$s 님이 내게 %1$s을(를) 공유함", - "%2$s removed the share for %1$s" : "%2$s 님이 %1$s 공유를 삭제함", + "File shares" : "파일 공유", "Downloaded via public link" : "공개 링크로 다운로드", - "Shared with %2$s" : "%2$s 님과 공유함", - "Shared with %3$s by %2$s" : "%2$s 님이 %3$s 님과 공유함", - "Removed share for %2$s" : "%2$s 님의 공유를 삭제함", - "%2$s removed share for %3$s" : "%2$s 님이 %3$s 님의 공유를 삭제함", - "Shared with group %2$s" : "%2$s 그룹과 공유함", - "Shared with group %3$s by %2$s" : "%2$s 님이 %3$s 그룹과 공유함", - "Removed share of group %2$s" : "%2$s 그룹의 공유를 삭제함", - "%2$s removed share of group %3$s" : "%2$s 님이 그룹 %3$s의 공유를 삭제함", - "Shared via link by %2$s" : "%2$s 님이 링크로 공유함", - "Shared via public link" : "공개 링크로 공유함", + "Downloaded by {email}" : "{email} 님이 다운로드함", + "{file} downloaded via public link" : "공개 링크로 {file} 다운로드함", + "{email} downloaded {file}" : "{email} 님이 {file}을(를) 다운로드함", + "Shared with group {group}" : "그룹 {group}와(과) 공유함", + "Removed share for group {group}" : "그룹 {group}의 공유를 삭제함", + "{actor} shared with group {group}" : "{actor} 님이 그룹 {group}와(과) 공유함", + "{actor} removed share for group {group}" : "{actor} 님이 그룹 {group}의 공유를 삭제함", + "You shared {file} with group {group}" : "파일 {file}을(를) 그룹 {group}와(과) 공유함", + "You removed group {group} from {file}" : "그룹 {group}을(를) {file}에서 삭제함", + "{actor} shared {file} with group {group}" : "{actor} 님이 {file}을(를) 그룹 {group}와(과) 공유함", + "{actor} removed group {group} from {file}" : "{actor} 님이 그룹 {group}을(를) {file}에서 삭제함", + "Shared as public link" : "공개 링크로 공유함", "Removed public link" : "공개 링크 삭제함", - "%2$s removed public link" : "%2$s 님이 공개 링크 삭제함", "Public link expired" : "공개 링크 만료됨", - "Public link of %2$s expired" : "%2$s 님의 공개 링크 만료됨", - "Shared by %2$s" : "%2$s 님이 공유함", - "Shares" : "공유", + "{actor} shared as public link" : "{actor} 님이 공개 링크로 공유함", + "{actor} removed public link" : "{actor} 님이 공개 링크를 삭제함", + "Public link of {actor} expired" : "{actor} 님의 공개 링크가 만료됨", + "You shared {file} as public link" : "{file}을(를) 공개 링크로 공유함", + "You removed public link for {file}" : "{file}의 공개 링크를 삭제함", + "Public link expired for {file}" : "{file}의 공개 링크가 만료됨", + "{actor} shared {file} as public link" : "{actor} 님이 {file}을(를) 공개 링크로 공유함", + "{actor} removed public link for {file}" : "{actor} 님이 {file}의 공개 링크를 삭제함", + "Public link of {actor} for {file} expired" : "{actor} 님의 {file} 공개 링크가 만료됨", + "{user} accepted the remote share" : "{user} 님이 원격 공유를 수락함", + "{user} declined the remote share" : "{user} 님이 원격 공유를 거절함", + "You received a new remote share {file} from {user}" : "{user} 님으로부터 원격 공유된 {file}을(를) 받음", + "{user} accepted the remote share of {file}" : "{user} 님이 {file}의 원격 공유를 수락함", + "{user} declined the remote share of {file}" : "{user} 님이 {file}의 원격 공유를 거절함", + "{user} unshared {file} from you" : "{user} 님이 {file} 공유를 해제함", + "Shared with {user}" : "{user} 님과 공유됨", + "Removed share for {user}" : "{user} 님의 공유 삭제함", + "{actor} shared with {user}" : "{actor} 님이 {user} 님과 공유함", + "{actor} removed share for {user}" : "{actor} 님이 {user} 님의 공유 삭제함", + "Shared by {actor}" : "{actor} 님이 공유함", + "{actor} removed share" : "{actor} 님이 공유 삭제함", + "You shared {file} with {user}" : "{file}을(를) {user} 님과 공유함", + "You removed {user} from {file}" : "{user} 님을 {file}에서 삭제함", + "{actor} shared {file} with {user}" : "{actor} 님이 {file}을(를) {user} 님과 공유함", + "{actor} removed {user} from {file}" : "{actor} 님이 {user} 님을 {file}에서 삭제함", + "{actor} shared {file} with you" : "{actor} 님이 {file}을 공유함", + "{actor} removed you from {file}" : "{actor} 님이 여러분을 {file}에서 삭제함", + "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "이메일이나 공개 공유로 공유한 파일이 <strong>다운로드됨</strong>", + "A file or folder was shared from <strong>another server</strong>" : "<strong>다른 서버</strong>에서 파일이나 폴더를 공유함", + "A file or folder has been <strong>shared</strong>" : "파일이나 폴더가 <strong>공유됨</strong>", + "Wrong share ID, share doesn't exist" : "잘못된 공유 ID, 공유가 존재하지 않음", + "could not delete share" : "공유를 삭제할 수 없음", + "Could not delete share" : "공유를 삭제할 수 없음", + "Please specify a file or folder path" : "파일이나 폴더 경로를 지정하십시오", + "Wrong path, file/folder doesn't exist" : "잘못된 경로, 파일/폴더가 존재하지 않음", + "Could not create share" : "공유를 만들 수 없음", + "invalid permissions" : "잘못된 권한", + "Please specify a valid user" : "유효한 사용자를 지정하십시오", + "Group sharing is disabled by the administrator" : "그룹 공유는 관리자에 의해 비활성화되어 있음", + "Please specify a valid group" : "유효한 그룹을 지정하십시오", + "Public link sharing is disabled by the administrator" : "공개 링크 공유는 관리자에 의해 비활성화되어 있음", + "Public upload disabled by the administrator" : "공개 업로드는 관리자에 의해 비활성화되어 있음", + "Public upload is only possible for publicly shared folders" : "공개 공유 폴더에만 공개 업로드를 사용할 수 있음", + "Invalid date, date format must be YYYY-MM-DD" : "잘못된 날짜, YYYY-MM-DD 형식이어야 합니다.", + "Sharing %s failed because the back end does not allow shares from type %s" : "%s을(를) 공유할 수 없습니다. 백엔드에서 %s 형식의 공유를 지원하지 않습니다", + "You cannot share to a Circle if the app is not enabled" : "서클 앱이 활성화되어 있지 않으면 서클로 공유할 수 없음", + "Please specify a valid circle" : "올바른 서클을 지정하십시오", + "Unknown share type" : "알 수 없는 공유 유형", + "Not a directory" : "디렉터리가 아님", + "Could not lock path" : "경로를 잠글 수 없음", + "Wrong or no update parameter given" : "업데이트 인자가 잘못되었거나 지정되지 않았음", + "Can't change permissions for public share links" : "공개 공유 링크의 권한을 변경할 수 없음", + "Cannot increase permissions" : "권한을 늘릴 수 없음", + "%s is publicly shared" : "%s이(가) 공개 공유됨", + "Share API is disabled" : "공유 API가 비활성화됨", "This share is password-protected" : "이 공유는 암호로 보호되어 있습니다", "The password is wrong. Try again." : "암호가 잘못되었습니다. 다시 입력해 주십시오.", "Password" : "암호", "No entries found in this folder" : "이 폴더에 항목 없음", "Name" : "이름", "Share time" : "공유 시간", + "Expiration date" : "만료 날짜", "Sorry, this link doesn’t seem to work anymore." : "죄송합니다. 이 링크는 더 이상 작동하지 않습니다.", "Reasons might be:" : "이유는 다음과 같을 수 있습니다:", "the item was removed" : "항목이 삭제됨", "the link expired" : "링크가 만료됨", "sharing is disabled" : "공유가 비활성화됨", "For more info, please ask the person who sent this link." : "자세한 정보는 링크를 보낸 사람에게 문의하십시오.", - "Add to your ownCloud" : "내 ownCloud에 추가하기", + "Add to your Nextcloud" : "내 Nextcloud에 추가", "Download" : "다운로드", "Download %s" : "%s 다운로드", - "Direct link" : "직접 링크" + "Direct link" : "직접 링크", + "Upload files to %s" : "%s에 파일 업로드", + "Select or drop files" : "파일을 선택하거나 끌어다 놓기", + "Uploading files…" : "파일 업로드 중…", + "Uploaded files:" : "업로드한 파일:" }, "nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/ko.json b/apps/files_sharing/l10n/ko.json index 7804a5f49c4..2120e6a8023 100644 --- a/apps/files_sharing/l10n/ko.json +++ b/apps/files_sharing/l10n/ko.json @@ -1,11 +1,4 @@ { "translations": { - "Server to server sharing is not enabled on this server" : "이 서버에서 서버간 공유를 사용할 수 없음", - "The mountpoint name contains invalid characters." : "마운트 지점 이름에 잘못된 글자가 포함되어 있습니다.", - "Not allowed to create a federated share with the same user server" : "같은 사용자 서버 내에서 연합 공유를 만들 수 없음", - "Invalid or untrusted SSL certificate" : "잘못되었거나 신뢰할 수 없는 SSL 인증서", - "Could not authenticate to remote share, password might be wrong" : "원격 공유에서 인증할 수 없습니다. 암호가 맞지 않을 수 있습니다.", - "Storage not valid" : "저장소가 잘못됨", - "Couldn't add remote share" : "원격 공유를 추가할 수 없음", "Shared with you" : "나와 공유됨", "Shared with others" : "다른 사람과 공유됨", "Shared by link" : "링크로 공유됨", @@ -15,72 +8,105 @@ "Files and folders you share will show up here" : "내가 공유하는 파일과 폴더가 여기에 나타납니다", "No shared links" : "공유된 링크 없음", "Files and folders you share by link will show up here" : "내가 링크로 공유하는 파일과 폴더가 여기에 나타납니다", - "Do you want to add the remote share {name} from {owner}@{remote}?" : "{owner}@{remote}의 원격 공유 {name}을(를) 추가하시겠습니까?", - "Remote share" : "원격 공유", - "Remote share password" : "원격 공유 암호", - "Cancel" : "취소", - "Add remote share" : "원격 공유 추가", "You can upload into this folder" : "이 폴더에 업로드할 수 있습니다", + "No compatible server found at {remote}" : "{remote}에서 호환 서버를 찾을 수 없음", + "Invalid server URL" : "잘못된 서버 URL", + "Failed to add the public link to your Nextcloud" : "Nextcloud에 공개 링크를 추가할 수 없음", + "Share" : "공유", + "No expiration date set" : "만료 날짜가 설정되지 않음", "Shared by" : "공유한 사용자:", "Sharing" : "공유", - "A file or folder has been <strong>shared</strong>" : "파일이나 폴더가 <strong>공유됨</strong>", - "A file or folder was shared from <strong>another server</strong>" : "<strong>다른 서버</strong>에서 파일이나 폴더를 공유함", - "A public shared file or folder was <strong>downloaded</strong>" : "공개 공유된 파일이나 폴더가 <strong>다운로드됨</strong>", - "You received a new remote share %2$s from %1$s" : "%1$s에서 새 원격 공유 %2$s을(를) 받았습니다", - "You received a new remote share from %s" : "%s에서 원격 공유 요청을 받았습니다", - "%1$s accepted remote share %2$s" : "%1$s 님이 원격 공유 %2$s을(를) 수락함", - "%1$s declined remote share %2$s" : "%1$s 님이 원격 공유 %2$s을(를) 거절함", - "%1$s unshared %2$s from you" : "%1$s 님이 %2$s의 공유를 중단함", - "Public shared folder %1$s was downloaded" : "공개 공유 폴더 %1$s이(가) 다운로드됨", - "Public shared file %1$s was downloaded" : "공개 공유 파일 %1$s이(가) 다운로드됨", - "You shared %1$s with %2$s" : "내가 %2$s 님과 %1$s을(를) 공유함", - "%2$s shared %1$s with %3$s" : "%2$s 님이 %1$s을(를) %3$s 님과 공유함", - "You removed the share of %2$s for %1$s" : "%1$s을(를) 위한 %2$s 그룹의 공유를 삭제함", - "%2$s removed the share of %3$s for %1$s" : "%2$s 님이 %1$s을(를) 위한 %3$s 그룹의 공유를 삭제함", - "You shared %1$s with group %2$s" : "내가 %2$s 그룹과 %1$s을(를) 공유함", - "%2$s shared %1$s with group %3$s" : "%2$s 님이 %1$s을(를) %3$s 그룹과 공유함", - "You removed the share of group %2$s for %1$s" : "%1$s 님을 위한 %2$s 그룹 공유를 삭제함", - "%2$s removed the share of group %3$s for %1$s" : "%2$s 님이 %1$s에 대한 %3$s 그룹의 공유를 삭제함", - "%2$s shared %1$s via link" : "%2$s 님이 %1$s을(를) 링크로 공유함", - "You shared %1$s via link" : "내가 %1$s을(를) 링크로 공유함", - "You removed the public link for %1$s" : "%1$s의 공개 링크를 삭제함", - "%2$s removed the public link for %1$s" : "%2$s 님이 %1$s의 공개 링크를 삭제함", - "Your public link for %1$s expired" : "%1$s의 공개 링크가 만료됨", - "The public link of %2$s for %1$s expired" : "%2$s 님의 %1$s 공개 링크가 만료됨", - "%2$s shared %1$s with you" : "%2$s 님이 내게 %1$s을(를) 공유함", - "%2$s removed the share for %1$s" : "%2$s 님이 %1$s 공유를 삭제함", + "File shares" : "파일 공유", "Downloaded via public link" : "공개 링크로 다운로드", - "Shared with %2$s" : "%2$s 님과 공유함", - "Shared with %3$s by %2$s" : "%2$s 님이 %3$s 님과 공유함", - "Removed share for %2$s" : "%2$s 님의 공유를 삭제함", - "%2$s removed share for %3$s" : "%2$s 님이 %3$s 님의 공유를 삭제함", - "Shared with group %2$s" : "%2$s 그룹과 공유함", - "Shared with group %3$s by %2$s" : "%2$s 님이 %3$s 그룹과 공유함", - "Removed share of group %2$s" : "%2$s 그룹의 공유를 삭제함", - "%2$s removed share of group %3$s" : "%2$s 님이 그룹 %3$s의 공유를 삭제함", - "Shared via link by %2$s" : "%2$s 님이 링크로 공유함", - "Shared via public link" : "공개 링크로 공유함", + "Downloaded by {email}" : "{email} 님이 다운로드함", + "{file} downloaded via public link" : "공개 링크로 {file} 다운로드함", + "{email} downloaded {file}" : "{email} 님이 {file}을(를) 다운로드함", + "Shared with group {group}" : "그룹 {group}와(과) 공유함", + "Removed share for group {group}" : "그룹 {group}의 공유를 삭제함", + "{actor} shared with group {group}" : "{actor} 님이 그룹 {group}와(과) 공유함", + "{actor} removed share for group {group}" : "{actor} 님이 그룹 {group}의 공유를 삭제함", + "You shared {file} with group {group}" : "파일 {file}을(를) 그룹 {group}와(과) 공유함", + "You removed group {group} from {file}" : "그룹 {group}을(를) {file}에서 삭제함", + "{actor} shared {file} with group {group}" : "{actor} 님이 {file}을(를) 그룹 {group}와(과) 공유함", + "{actor} removed group {group} from {file}" : "{actor} 님이 그룹 {group}을(를) {file}에서 삭제함", + "Shared as public link" : "공개 링크로 공유함", "Removed public link" : "공개 링크 삭제함", - "%2$s removed public link" : "%2$s 님이 공개 링크 삭제함", "Public link expired" : "공개 링크 만료됨", - "Public link of %2$s expired" : "%2$s 님의 공개 링크 만료됨", - "Shared by %2$s" : "%2$s 님이 공유함", - "Shares" : "공유", + "{actor} shared as public link" : "{actor} 님이 공개 링크로 공유함", + "{actor} removed public link" : "{actor} 님이 공개 링크를 삭제함", + "Public link of {actor} expired" : "{actor} 님의 공개 링크가 만료됨", + "You shared {file} as public link" : "{file}을(를) 공개 링크로 공유함", + "You removed public link for {file}" : "{file}의 공개 링크를 삭제함", + "Public link expired for {file}" : "{file}의 공개 링크가 만료됨", + "{actor} shared {file} as public link" : "{actor} 님이 {file}을(를) 공개 링크로 공유함", + "{actor} removed public link for {file}" : "{actor} 님이 {file}의 공개 링크를 삭제함", + "Public link of {actor} for {file} expired" : "{actor} 님의 {file} 공개 링크가 만료됨", + "{user} accepted the remote share" : "{user} 님이 원격 공유를 수락함", + "{user} declined the remote share" : "{user} 님이 원격 공유를 거절함", + "You received a new remote share {file} from {user}" : "{user} 님으로부터 원격 공유된 {file}을(를) 받음", + "{user} accepted the remote share of {file}" : "{user} 님이 {file}의 원격 공유를 수락함", + "{user} declined the remote share of {file}" : "{user} 님이 {file}의 원격 공유를 거절함", + "{user} unshared {file} from you" : "{user} 님이 {file} 공유를 해제함", + "Shared with {user}" : "{user} 님과 공유됨", + "Removed share for {user}" : "{user} 님의 공유 삭제함", + "{actor} shared with {user}" : "{actor} 님이 {user} 님과 공유함", + "{actor} removed share for {user}" : "{actor} 님이 {user} 님의 공유 삭제함", + "Shared by {actor}" : "{actor} 님이 공유함", + "{actor} removed share" : "{actor} 님이 공유 삭제함", + "You shared {file} with {user}" : "{file}을(를) {user} 님과 공유함", + "You removed {user} from {file}" : "{user} 님을 {file}에서 삭제함", + "{actor} shared {file} with {user}" : "{actor} 님이 {file}을(를) {user} 님과 공유함", + "{actor} removed {user} from {file}" : "{actor} 님이 {user} 님을 {file}에서 삭제함", + "{actor} shared {file} with you" : "{actor} 님이 {file}을 공유함", + "{actor} removed you from {file}" : "{actor} 님이 여러분을 {file}에서 삭제함", + "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "이메일이나 공개 공유로 공유한 파일이 <strong>다운로드됨</strong>", + "A file or folder was shared from <strong>another server</strong>" : "<strong>다른 서버</strong>에서 파일이나 폴더를 공유함", + "A file or folder has been <strong>shared</strong>" : "파일이나 폴더가 <strong>공유됨</strong>", + "Wrong share ID, share doesn't exist" : "잘못된 공유 ID, 공유가 존재하지 않음", + "could not delete share" : "공유를 삭제할 수 없음", + "Could not delete share" : "공유를 삭제할 수 없음", + "Please specify a file or folder path" : "파일이나 폴더 경로를 지정하십시오", + "Wrong path, file/folder doesn't exist" : "잘못된 경로, 파일/폴더가 존재하지 않음", + "Could not create share" : "공유를 만들 수 없음", + "invalid permissions" : "잘못된 권한", + "Please specify a valid user" : "유효한 사용자를 지정하십시오", + "Group sharing is disabled by the administrator" : "그룹 공유는 관리자에 의해 비활성화되어 있음", + "Please specify a valid group" : "유효한 그룹을 지정하십시오", + "Public link sharing is disabled by the administrator" : "공개 링크 공유는 관리자에 의해 비활성화되어 있음", + "Public upload disabled by the administrator" : "공개 업로드는 관리자에 의해 비활성화되어 있음", + "Public upload is only possible for publicly shared folders" : "공개 공유 폴더에만 공개 업로드를 사용할 수 있음", + "Invalid date, date format must be YYYY-MM-DD" : "잘못된 날짜, YYYY-MM-DD 형식이어야 합니다.", + "Sharing %s failed because the back end does not allow shares from type %s" : "%s을(를) 공유할 수 없습니다. 백엔드에서 %s 형식의 공유를 지원하지 않습니다", + "You cannot share to a Circle if the app is not enabled" : "서클 앱이 활성화되어 있지 않으면 서클로 공유할 수 없음", + "Please specify a valid circle" : "올바른 서클을 지정하십시오", + "Unknown share type" : "알 수 없는 공유 유형", + "Not a directory" : "디렉터리가 아님", + "Could not lock path" : "경로를 잠글 수 없음", + "Wrong or no update parameter given" : "업데이트 인자가 잘못되었거나 지정되지 않았음", + "Can't change permissions for public share links" : "공개 공유 링크의 권한을 변경할 수 없음", + "Cannot increase permissions" : "권한을 늘릴 수 없음", + "%s is publicly shared" : "%s이(가) 공개 공유됨", + "Share API is disabled" : "공유 API가 비활성화됨", "This share is password-protected" : "이 공유는 암호로 보호되어 있습니다", "The password is wrong. Try again." : "암호가 잘못되었습니다. 다시 입력해 주십시오.", "Password" : "암호", "No entries found in this folder" : "이 폴더에 항목 없음", "Name" : "이름", "Share time" : "공유 시간", + "Expiration date" : "만료 날짜", "Sorry, this link doesn’t seem to work anymore." : "죄송합니다. 이 링크는 더 이상 작동하지 않습니다.", "Reasons might be:" : "이유는 다음과 같을 수 있습니다:", "the item was removed" : "항목이 삭제됨", "the link expired" : "링크가 만료됨", "sharing is disabled" : "공유가 비활성화됨", "For more info, please ask the person who sent this link." : "자세한 정보는 링크를 보낸 사람에게 문의하십시오.", - "Add to your ownCloud" : "내 ownCloud에 추가하기", + "Add to your Nextcloud" : "내 Nextcloud에 추가", "Download" : "다운로드", "Download %s" : "%s 다운로드", - "Direct link" : "직접 링크" + "Direct link" : "직접 링크", + "Upload files to %s" : "%s에 파일 업로드", + "Select or drop files" : "파일을 선택하거나 끌어다 놓기", + "Uploading files…" : "파일 업로드 중…", + "Uploaded files:" : "업로드한 파일:" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/pt_BR.js b/apps/files_sharing/l10n/pt_BR.js index c562b175b25..d81fb64acbb 100644 --- a/apps/files_sharing/l10n/pt_BR.js +++ b/apps/files_sharing/l10n/pt_BR.js @@ -45,7 +45,7 @@ OC.L10N.register( "Public link of {actor} for {file} expired" : "O link público de {actor} para {file} expirou", "{user} accepted the remote share" : "{user} aceitou o compartilhamento remoto", "{user} declined the remote share" : "{user} declinou do compartilhamento remoto", - "You received a new remote share {file} from {user}" : "Voce recebeu um novo compartilhamento remoto {file} de {user}", + "You received a new remote share {file} from {user}" : "Você recebeu um novo compartilhamento remoto {file} de {user}", "{user} accepted the remote share of {file}" : "{user} aceitou o compartilhamento remoto de {file}", "{user} declined the remote share of {file}" : "{user} declinou do compartilhamento remoto de {file}", "{user} unshared {file} from you" : "{user} descompartilhou {file} de você", @@ -56,12 +56,12 @@ OC.L10N.register( "Shared by {actor}" : "Compartilhado por {actor}", "{actor} removed share" : "{actor} compartilhamento removido", "You shared {file} with {user}" : "Você compartilhou {arquivo} com {user}", - "You removed {user} from {file}" : "Voce excluiu {user} de {file}", + "You removed {user} from {file}" : "Você excluiu {user} de {file}", "{actor} shared {file} with {user}" : "{actor} compartilhou {file} com {user}", "{actor} removed {user} from {file}" : "{actor} excluiu {user} de {file}", "{actor} shared {file} with you" : "{actor} compartilhou {file} com você", "{actor} removed you from {file}" : "{actor} excluiu você de {file}", - "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Um arquivo ou pasta compartilhado por email ou por link publico foi <strong>baixado</strong>", + "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Um arquivo ou pasta compartilhado por e-mail ou por link publico foi <strong>baixado</strong>", "A file or folder was shared from <strong>another server</strong>" : "Um arquivo ou pasta foi compartilhado a partir de <strong>outro servidor</strong>", "A file or folder has been <strong>shared</strong>" : "Um arquivo ou pasta foi <strong>compartilhado</strong> ", "Wrong share ID, share doesn't exist" : "ID de compartilhamento errado, o compartilhamento não existe", @@ -78,15 +78,15 @@ OC.L10N.register( "Public upload disabled by the administrator" : "O envio público foi desativado pelo administrador", "Public upload is only possible for publicly shared folders" : "O envio público só é possível para pastas compartilhadas publicamente", "Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser YYYY-MM-DD", - "Sharing %s failed because the back end does not allow shares from type %s" : "O compartilhando %s falhou porque o backend não permite ações de tipo %s", + "Sharing %s failed because the back end does not allow shares from type %s" : "O compartilhando %s falhou porque o serviço não permite ações de tipo %s", "You cannot share to a Circle if the app is not enabled" : "Você não pode compartilhar para um círculo se o aplicativo não está habilitado", "Please specify a valid circle" : "Por favor especifique um círculo válido", "Unknown share type" : "Tipo de compartilhamento desconhecido", "Not a directory" : "Não é um diretório", "Could not lock path" : "Não foi possível bloquear o caminho", "Wrong or no update parameter given" : "O parâmetro da atualização fornecido está errado ou não existe", - "Can't change permissions for public share links" : "Não é possível alterar as permissões para links de compartilhamento público", - "Cannot increase permissions" : "Não é possível aumentar as permissões", + "Can't change permissions for public share links" : "Não foi possível alterar as permissões para links de compartilhamento público", + "Cannot increase permissions" : "Não foi possível aumentar as permissões", "%s is publicly shared" : "%s está compartilhado publicamente", "Share API is disabled" : "O compartilhamento de API está desabilitado.", "This share is password-protected" : "Este compartilhamento é protegido por senha", diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json index 3d3d0ab784b..5fad4a144f8 100644 --- a/apps/files_sharing/l10n/pt_BR.json +++ b/apps/files_sharing/l10n/pt_BR.json @@ -43,7 +43,7 @@ "Public link of {actor} for {file} expired" : "O link público de {actor} para {file} expirou", "{user} accepted the remote share" : "{user} aceitou o compartilhamento remoto", "{user} declined the remote share" : "{user} declinou do compartilhamento remoto", - "You received a new remote share {file} from {user}" : "Voce recebeu um novo compartilhamento remoto {file} de {user}", + "You received a new remote share {file} from {user}" : "Você recebeu um novo compartilhamento remoto {file} de {user}", "{user} accepted the remote share of {file}" : "{user} aceitou o compartilhamento remoto de {file}", "{user} declined the remote share of {file}" : "{user} declinou do compartilhamento remoto de {file}", "{user} unshared {file} from you" : "{user} descompartilhou {file} de você", @@ -54,12 +54,12 @@ "Shared by {actor}" : "Compartilhado por {actor}", "{actor} removed share" : "{actor} compartilhamento removido", "You shared {file} with {user}" : "Você compartilhou {arquivo} com {user}", - "You removed {user} from {file}" : "Voce excluiu {user} de {file}", + "You removed {user} from {file}" : "Você excluiu {user} de {file}", "{actor} shared {file} with {user}" : "{actor} compartilhou {file} com {user}", "{actor} removed {user} from {file}" : "{actor} excluiu {user} de {file}", "{actor} shared {file} with you" : "{actor} compartilhou {file} com você", "{actor} removed you from {file}" : "{actor} excluiu você de {file}", - "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Um arquivo ou pasta compartilhado por email ou por link publico foi <strong>baixado</strong>", + "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Um arquivo ou pasta compartilhado por e-mail ou por link publico foi <strong>baixado</strong>", "A file or folder was shared from <strong>another server</strong>" : "Um arquivo ou pasta foi compartilhado a partir de <strong>outro servidor</strong>", "A file or folder has been <strong>shared</strong>" : "Um arquivo ou pasta foi <strong>compartilhado</strong> ", "Wrong share ID, share doesn't exist" : "ID de compartilhamento errado, o compartilhamento não existe", @@ -76,15 +76,15 @@ "Public upload disabled by the administrator" : "O envio público foi desativado pelo administrador", "Public upload is only possible for publicly shared folders" : "O envio público só é possível para pastas compartilhadas publicamente", "Invalid date, date format must be YYYY-MM-DD" : "Data inválida, o formato da data deve ser YYYY-MM-DD", - "Sharing %s failed because the back end does not allow shares from type %s" : "O compartilhando %s falhou porque o backend não permite ações de tipo %s", + "Sharing %s failed because the back end does not allow shares from type %s" : "O compartilhando %s falhou porque o serviço não permite ações de tipo %s", "You cannot share to a Circle if the app is not enabled" : "Você não pode compartilhar para um círculo se o aplicativo não está habilitado", "Please specify a valid circle" : "Por favor especifique um círculo válido", "Unknown share type" : "Tipo de compartilhamento desconhecido", "Not a directory" : "Não é um diretório", "Could not lock path" : "Não foi possível bloquear o caminho", "Wrong or no update parameter given" : "O parâmetro da atualização fornecido está errado ou não existe", - "Can't change permissions for public share links" : "Não é possível alterar as permissões para links de compartilhamento público", - "Cannot increase permissions" : "Não é possível aumentar as permissões", + "Can't change permissions for public share links" : "Não foi possível alterar as permissões para links de compartilhamento público", + "Cannot increase permissions" : "Não foi possível aumentar as permissões", "%s is publicly shared" : "%s está compartilhado publicamente", "Share API is disabled" : "O compartilhamento de API está desabilitado.", "This share is password-protected" : "Este compartilhamento é protegido por senha", diff --git a/apps/files_sharing/lib/Controller/PublicPreviewController.php b/apps/files_sharing/lib/Controller/PublicPreviewController.php index b91b84c9c34..49e48993f5c 100644 --- a/apps/files_sharing/lib/Controller/PublicPreviewController.php +++ b/apps/files_sharing/lib/Controller/PublicPreviewController.php @@ -97,6 +97,8 @@ class PublicPreviewController extends Controller { return new FileDisplayResponse($f, Http::STATUS_OK, ['Content-Type' => $f->getMimeType()]); } catch (NotFoundException $e) { return new DataResponse([], Http::STATUS_NOT_FOUND); + } catch (\InvalidArgumentException $e) { + return new DataResponse([], Http::STATUS_BAD_REQUEST); } } } diff --git a/apps/files_trashbin/lib/Controller/PreviewController.php b/apps/files_trashbin/lib/Controller/PreviewController.php index c73b1c17c16..ae3a106d627 100644 --- a/apps/files_trashbin/lib/Controller/PreviewController.php +++ b/apps/files_trashbin/lib/Controller/PreviewController.php @@ -114,6 +114,8 @@ class PreviewController extends Controller { return new Http\FileDisplayResponse($f, Http::STATUS_OK, ['Content-Type' => $f->getMimeType()]); } catch (NotFoundException $e) { return new DataResponse([], Http::STATUS_NOT_FOUND); + } catch (\InvalidArgumentException $e) { + return new DataResponse([], Http::STATUS_BAD_REQUEST); } } } diff --git a/apps/files_versions/lib/Controller/PreviewController.php b/apps/files_versions/lib/Controller/PreviewController.php index 8d961f47ee6..7a7c024fb52 100644 --- a/apps/files_versions/lib/Controller/PreviewController.php +++ b/apps/files_versions/lib/Controller/PreviewController.php @@ -94,6 +94,8 @@ class PreviewController extends Controller { return new FileDisplayResponse($f, Http::STATUS_OK, ['Content-Type' => $f->getMimeType()]); } catch (NotFoundException $e) { return new DataResponse([], Http::STATUS_NOT_FOUND); + } catch (\InvalidArgumentException $e) { + return new DataResponse([], Http::STATUS_BAD_REQUEST); } } } diff --git a/apps/sharebymail/l10n/cs.js b/apps/sharebymail/l10n/cs.js index c24f35e3384..1b34e31d3df 100644 --- a/apps/sharebymail/l10n/cs.js +++ b/apps/sharebymail/l10n/cs.js @@ -5,16 +5,42 @@ OC.L10N.register( "Shared with {email}" : "Sdíleno s {email}", "Shared with %1$s by %2$s" : "%2$s sdílí s %1$s", "Shared with {email} by {actor}" : "{actor} sdílí s {email}", + "Password for mail share sent to %1$s" : "Heslo e-mailového sdílení odesláno na %1$s", + "Password for mail share sent to {email}" : "Heslo e-mailového sdílení odesláno na {email}", + "Password for mail share sent to you" : "Heslo e-mailového sdílení vám bylo zasláno", "You shared %1$s with %2$s by mail" : "Sdílel(a) jste %1$s e-mailem s %2$s", "You shared {file} with {email} by mail" : "E-mailem jste s {email} sdíleli {file}", "%3$s shared %1$s with %2$s by mail" : "%3$s s %2$s sdílel e-mailem %1$s", "{actor} shared {file} with {email} by mail" : "{actor} sdílel(a) {file} e-mailem s {email}", + "Password to access %1$s was sent to %2s" : "Heslo pro přístupu k %1$s bylo zasláno na %2s", + "Password to access {file} was sent to {email}" : "Heslo pro přístup k {file} bylo zasláno na {email}", + "Password to access %1$s was sent to you" : "Heslo pro přístup k %1$s vám bylo zasláno", + "Password to access {file} was sent to you" : "Heslo pro přístupu k {file} vám bylo zasláno", "Sharing %s failed, this item is already shared with %s" : "Sdílení %s selhalo, tato položka je již s %s sdílena", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Nemůžeme vám zaslat automaticky vygenerované heslo. Nastavte si v osobním nastavení platnou e-mailovou adresu a zkuste to znovu.", "Failed to send share by E-mail" : "Odeslání sdílení E-mailem se nezdařilo", "%s shared »%s« with you" : "%s s vámi sdílel(a) »%s»", "%s shared »%s« with you on behalf of %s" : "%s s vámi sdílel »%s» místo %s", - "Failed to create the E-mail" : "Vytváření E-mailu se nezdařilo", + "%s shared »%s« with you." : "%s s vámi nasdílel(a) »%s«.", + "%s shared »%s« with you on behalf of %s." : "%s s vámi nasdílel(a) »%s» zastupující %s.", + "Click the button below to open it." : "Pro otevření kliknětena tlačítko níže.", + "Open »%s«" : "Otevřít »%s«", + "%s via %s" : "%s přes %s", + "Password to access »%s« shared to you by %s" : "Heslo pro přístup k »%s« (vám nasdílel(a) %s)", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s s vámi sdílel(a) %s.", + "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s s vámi sdílel(a) »%s«. Již jste měli dostat e-mail s přístupovými údaji.", + "Password to access »%s«" : "Heslo pro přístup k »%s«", + "It is protected with the following password: %s" : "Je chráněn následujícím heslem: %s", + "Password to access »%s« shared with %s" : "Heslo pro přístup k »%s« sdíleno s %s", + "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Právě jste s »%s» nasdílel(a) %s. Sdílení bylo již příjemci zasláno. Kvůli bezpečnostní politice nastavené administrátorem %s musí být každé sdílení chráněno heslem a toto heslo nemůže být příjemci zasláno přímo. Kvůli tomu ho budete muset manuálně přeposlat.", + "This is the password: %s" : "Toto je heslo: %s", + "You can choose a different password at any time in the share dialog." : "V dialogu sdílení můžete kdykoliv vybrat jiné heslo.", "Could not find share" : "Nelze nalézt sdílení", + "Share by mail" : "Sdílet e-mailem", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Dovoluje uživatelům odeslat personalizovaný odkaz na soubor nebo složku po zadání e-mailové adresy.", + "Send password by mail" : "Odeslat heslo e-mailem", + "Enforce password protection" : "Vynutit ochranu hesla", + "Failed to create the E-mail" : "Vytváření E-mailu se nezdařilo", "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Ahoj,\n\n%s s vámi sdílel(a) »%s» na místo %s\n\n%s", "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Ahoj,\n\n\n%s s vámi sdílel »%s».\n\n%s", "Cheers!" : "Mějte se!", diff --git a/apps/sharebymail/l10n/cs.json b/apps/sharebymail/l10n/cs.json index 07a016c80d3..7ffeca9d571 100644 --- a/apps/sharebymail/l10n/cs.json +++ b/apps/sharebymail/l10n/cs.json @@ -3,16 +3,42 @@ "Shared with {email}" : "Sdíleno s {email}", "Shared with %1$s by %2$s" : "%2$s sdílí s %1$s", "Shared with {email} by {actor}" : "{actor} sdílí s {email}", + "Password for mail share sent to %1$s" : "Heslo e-mailového sdílení odesláno na %1$s", + "Password for mail share sent to {email}" : "Heslo e-mailového sdílení odesláno na {email}", + "Password for mail share sent to you" : "Heslo e-mailového sdílení vám bylo zasláno", "You shared %1$s with %2$s by mail" : "Sdílel(a) jste %1$s e-mailem s %2$s", "You shared {file} with {email} by mail" : "E-mailem jste s {email} sdíleli {file}", "%3$s shared %1$s with %2$s by mail" : "%3$s s %2$s sdílel e-mailem %1$s", "{actor} shared {file} with {email} by mail" : "{actor} sdílel(a) {file} e-mailem s {email}", + "Password to access %1$s was sent to %2s" : "Heslo pro přístupu k %1$s bylo zasláno na %2s", + "Password to access {file} was sent to {email}" : "Heslo pro přístup k {file} bylo zasláno na {email}", + "Password to access %1$s was sent to you" : "Heslo pro přístup k %1$s vám bylo zasláno", + "Password to access {file} was sent to you" : "Heslo pro přístupu k {file} vám bylo zasláno", "Sharing %s failed, this item is already shared with %s" : "Sdílení %s selhalo, tato položka je již s %s sdílena", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Nemůžeme vám zaslat automaticky vygenerované heslo. Nastavte si v osobním nastavení platnou e-mailovou adresu a zkuste to znovu.", "Failed to send share by E-mail" : "Odeslání sdílení E-mailem se nezdařilo", "%s shared »%s« with you" : "%s s vámi sdílel(a) »%s»", "%s shared »%s« with you on behalf of %s" : "%s s vámi sdílel »%s» místo %s", - "Failed to create the E-mail" : "Vytváření E-mailu se nezdařilo", + "%s shared »%s« with you." : "%s s vámi nasdílel(a) »%s«.", + "%s shared »%s« with you on behalf of %s." : "%s s vámi nasdílel(a) »%s» zastupující %s.", + "Click the button below to open it." : "Pro otevření kliknětena tlačítko níže.", + "Open »%s«" : "Otevřít »%s«", + "%s via %s" : "%s přes %s", + "Password to access »%s« shared to you by %s" : "Heslo pro přístup k »%s« (vám nasdílel(a) %s)", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s s vámi sdílel(a) %s.", + "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s s vámi sdílel(a) »%s«. Již jste měli dostat e-mail s přístupovými údaji.", + "Password to access »%s«" : "Heslo pro přístup k »%s«", + "It is protected with the following password: %s" : "Je chráněn následujícím heslem: %s", + "Password to access »%s« shared with %s" : "Heslo pro přístup k »%s« sdíleno s %s", + "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Právě jste s »%s» nasdílel(a) %s. Sdílení bylo již příjemci zasláno. Kvůli bezpečnostní politice nastavené administrátorem %s musí být každé sdílení chráněno heslem a toto heslo nemůže být příjemci zasláno přímo. Kvůli tomu ho budete muset manuálně přeposlat.", + "This is the password: %s" : "Toto je heslo: %s", + "You can choose a different password at any time in the share dialog." : "V dialogu sdílení můžete kdykoliv vybrat jiné heslo.", "Could not find share" : "Nelze nalézt sdílení", + "Share by mail" : "Sdílet e-mailem", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Dovoluje uživatelům odeslat personalizovaný odkaz na soubor nebo složku po zadání e-mailové adresy.", + "Send password by mail" : "Odeslat heslo e-mailem", + "Enforce password protection" : "Vynutit ochranu hesla", + "Failed to create the E-mail" : "Vytváření E-mailu se nezdařilo", "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Ahoj,\n\n%s s vámi sdílel(a) »%s» na místo %s\n\n%s", "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Ahoj,\n\n\n%s s vámi sdílel »%s».\n\n%s", "Cheers!" : "Mějte se!", diff --git a/apps/sharebymail/l10n/el.js b/apps/sharebymail/l10n/el.js index bcd7944b8ff..8d016e7b83b 100644 --- a/apps/sharebymail/l10n/el.js +++ b/apps/sharebymail/l10n/el.js @@ -5,6 +5,7 @@ OC.L10N.register( "Shared with {email}" : "Διαμοιράστηκε με {email}", "Shared with %1$s by %2$s" : "Διαμοιράστηκε με %1$s από %2$s", "Shared with {email} by {actor}" : "Διαμοιράστηκε με {email} από {actor}", + "Password for mail share sent to %1$s" : "Το συνθηματικό για το διαμοιρασμό μέσου ηλ. αλληλογραφίας έχει αποσταλλεί %1$s", "You shared %1$s with %2$s by mail" : "Διαμοιραστήκατε το %1$s με %2$s μέσω mail", "You shared {file} with {email} by mail" : "Διαμοιραστήκατε {file} με {email} μέσω mail", "%3$s shared %1$s with %2$s by mail" : "%3$s Διαμοιραστηκε %1$s με %2$s μέσω mail", diff --git a/apps/sharebymail/l10n/el.json b/apps/sharebymail/l10n/el.json index f5f4f5f88e6..7b6e88d93cc 100644 --- a/apps/sharebymail/l10n/el.json +++ b/apps/sharebymail/l10n/el.json @@ -3,6 +3,7 @@ "Shared with {email}" : "Διαμοιράστηκε με {email}", "Shared with %1$s by %2$s" : "Διαμοιράστηκε με %1$s από %2$s", "Shared with {email} by {actor}" : "Διαμοιράστηκε με {email} από {actor}", + "Password for mail share sent to %1$s" : "Το συνθηματικό για το διαμοιρασμό μέσου ηλ. αλληλογραφίας έχει αποσταλλεί %1$s", "You shared %1$s with %2$s by mail" : "Διαμοιραστήκατε το %1$s με %2$s μέσω mail", "You shared {file} with {email} by mail" : "Διαμοιραστήκατε {file} με {email} μέσω mail", "%3$s shared %1$s with %2$s by mail" : "%3$s Διαμοιραστηκε %1$s με %2$s μέσω mail", diff --git a/apps/sharebymail/l10n/es.js b/apps/sharebymail/l10n/es.js index e9ad5ec76ed..c03d4ea441a 100644 --- a/apps/sharebymail/l10n/es.js +++ b/apps/sharebymail/l10n/es.js @@ -5,11 +5,19 @@ OC.L10N.register( "Shared with {email}" : "Compartido con {email}", "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s", "Shared with {email} by {actor}" : "Compartido con {email} por {actor}", + "Password for mail share sent to %1$s" : "Se ha enviado una contraseña para compartir por correo a %1$s", + "Password for mail share sent to {email}" : "Se ha enviado una contraseña para compartir por correo a {email}", + "Password for mail share sent to you" : "Se te ha enviado una contraseña para compartir por correo", "You shared %1$s with %2$s by mail" : "Has compartido %1$s con %2$s por correo", "You shared {file} with {email} by mail" : "Has compartido {file} con {email} por correo", "%3$s shared %1$s with %2$s by mail" : "%3$s compartido %1$s con %2$s por correo", "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo electrónico", + "Password to access %1$s was sent to %2s" : "Se ha enviado a %2s una contraseña para acceder a %1$s ", + "Password to access {file} was sent to {email}" : "Se ha enviado a {email} una contraseña para acceder a {file}", + "Password to access %1$s was sent to you" : "Se te ha enviado una contraseña para acceder a %1$s", + "Password to access {file} was sent to you" : "Se te ha enviado una contraseña para acceder a {file}", "Sharing %s failed, this item is already shared with %s" : "Falló el compartir %s , este ítem ya se encontraba compartido con %s", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No podemos enviarte la contraseña autogenerada. Por favor, indica una dirección de correo electrónico válida en tu configuración personal y vuelve a intentarlo.", "Failed to send share by E-mail" : "Falló enviar recurso compartido por correo electrónico", "%s shared »%s« with you" : "%s compartió »%s« con usted", "%s shared »%s« with you on behalf of %s" : "%s compartió »%s« con usted a nombre de %s", @@ -17,14 +25,20 @@ OC.L10N.register( "%s shared »%s« with you on behalf of %s." : "%s compartió »%s« con usted en nombre de %s.", "Click the button below to open it." : "Haga click en el botón debajo para abrirlo.", "Open »%s«" : "Abrir »%s«", + "%s via %s" : "%s por %s", "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido con usted por %s", - "Password to access »%s«" : "Contraseña para acceder »%s«", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartió »%s« con usted. Debería haber recibido un mensaje de correo separado con un enlace para abrirlo.", + "Password to access »%s«" : "Contraseña para acceder »%s«", "It is protected with the following password: %s" : "Está protegido con la siguiente contraseña: %s", + "Password to access »%s« shared with %s" : "Se ha compartido con %s una contraseña para acceder a »%s«", + "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Usted acaba de compartir »%s« con %s. El recurso compartido ya fue enviado al destinatario. Debido a las reglas de seguridad definadas por el administrador de %s cada recurso compartido necesita ser protegido por una contraseña y no esta permitido que usted mande la contraseña directamente al destinatario. Por eso, usted necesita mandar la contraseña manualmente al destinatario.", + "This is the password: %s" : "Esta es la contraseña: %s", + "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en el diálogo de compartir.", "Could not find share" : "No se pudo encontrar el recurso compartido", "Share by mail" : "Enviado por correo electrónico", - "Send a personalized link to a file or folder by mail." : "Enviar un enlace personalizado a uno de los archivos o carpetas por correo electrónico.", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Permite a los usuarios compartir un enlace personalizado a un archivo o carpeta enviándolo a una dirección de correo electrónico", "Send password by mail" : "Enviar contraseñas por email", + "Enforce password protection" : "Imponer la protección de contraseña", "Failed to create the E-mail" : "Falló crear el correo electrónico", "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "¡Hola!,\n\n%s comapartió »%s« con usted a nombre de %s.\n\n%s\n\n", "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Hola,\n\n%s compartió »%s« con usted.\n\n%s\n\n", diff --git a/apps/sharebymail/l10n/es.json b/apps/sharebymail/l10n/es.json index 4e07a47d0ad..498c718e4d6 100644 --- a/apps/sharebymail/l10n/es.json +++ b/apps/sharebymail/l10n/es.json @@ -3,11 +3,19 @@ "Shared with {email}" : "Compartido con {email}", "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s", "Shared with {email} by {actor}" : "Compartido con {email} por {actor}", + "Password for mail share sent to %1$s" : "Se ha enviado una contraseña para compartir por correo a %1$s", + "Password for mail share sent to {email}" : "Se ha enviado una contraseña para compartir por correo a {email}", + "Password for mail share sent to you" : "Se te ha enviado una contraseña para compartir por correo", "You shared %1$s with %2$s by mail" : "Has compartido %1$s con %2$s por correo", "You shared {file} with {email} by mail" : "Has compartido {file} con {email} por correo", "%3$s shared %1$s with %2$s by mail" : "%3$s compartido %1$s con %2$s por correo", "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo electrónico", + "Password to access %1$s was sent to %2s" : "Se ha enviado a %2s una contraseña para acceder a %1$s ", + "Password to access {file} was sent to {email}" : "Se ha enviado a {email} una contraseña para acceder a {file}", + "Password to access %1$s was sent to you" : "Se te ha enviado una contraseña para acceder a %1$s", + "Password to access {file} was sent to you" : "Se te ha enviado una contraseña para acceder a {file}", "Sharing %s failed, this item is already shared with %s" : "Falló el compartir %s , este ítem ya se encontraba compartido con %s", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No podemos enviarte la contraseña autogenerada. Por favor, indica una dirección de correo electrónico válida en tu configuración personal y vuelve a intentarlo.", "Failed to send share by E-mail" : "Falló enviar recurso compartido por correo electrónico", "%s shared »%s« with you" : "%s compartió »%s« con usted", "%s shared »%s« with you on behalf of %s" : "%s compartió »%s« con usted a nombre de %s", @@ -15,14 +23,20 @@ "%s shared »%s« with you on behalf of %s." : "%s compartió »%s« con usted en nombre de %s.", "Click the button below to open it." : "Haga click en el botón debajo para abrirlo.", "Open »%s«" : "Abrir »%s«", + "%s via %s" : "%s por %s", "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido con usted por %s", - "Password to access »%s«" : "Contraseña para acceder »%s«", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartió »%s« con usted. Debería haber recibido un mensaje de correo separado con un enlace para abrirlo.", + "Password to access »%s«" : "Contraseña para acceder »%s«", "It is protected with the following password: %s" : "Está protegido con la siguiente contraseña: %s", + "Password to access »%s« shared with %s" : "Se ha compartido con %s una contraseña para acceder a »%s«", + "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Usted acaba de compartir »%s« con %s. El recurso compartido ya fue enviado al destinatario. Debido a las reglas de seguridad definadas por el administrador de %s cada recurso compartido necesita ser protegido por una contraseña y no esta permitido que usted mande la contraseña directamente al destinatario. Por eso, usted necesita mandar la contraseña manualmente al destinatario.", + "This is the password: %s" : "Esta es la contraseña: %s", + "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en el diálogo de compartir.", "Could not find share" : "No se pudo encontrar el recurso compartido", "Share by mail" : "Enviado por correo electrónico", - "Send a personalized link to a file or folder by mail." : "Enviar un enlace personalizado a uno de los archivos o carpetas por correo electrónico.", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Permite a los usuarios compartir un enlace personalizado a un archivo o carpeta enviándolo a una dirección de correo electrónico", "Send password by mail" : "Enviar contraseñas por email", + "Enforce password protection" : "Imponer la protección de contraseña", "Failed to create the E-mail" : "Falló crear el correo electrónico", "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "¡Hola!,\n\n%s comapartió »%s« con usted a nombre de %s.\n\n%s\n\n", "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Hola,\n\n%s compartió »%s« con usted.\n\n%s\n\n", diff --git a/apps/sharebymail/l10n/ko.js b/apps/sharebymail/l10n/ko.js new file mode 100644 index 00000000000..5ce14742f03 --- /dev/null +++ b/apps/sharebymail/l10n/ko.js @@ -0,0 +1,50 @@ +OC.L10N.register( + "sharebymail", + { + "Shared with %1$s" : "%1$s 님과 공유함", + "Shared with {email}" : "{email} 님과 공유함", + "Shared with %1$s by %2$s" : "%2$s 님이 %1$s 님과 공유함", + "Shared with {email} by {actor}" : "{actor} 님이 {email} 님과 공유함", + "Password for mail share sent to %1$s" : "이메일 공유 암호를 %1$s(으)로 보냄", + "Password for mail share sent to {email}" : "이메일 공유 암호를 {email}(으)로 보냄", + "Password for mail share sent to you" : "이메일 공유 암호를 내게 보냄", + "You shared %1$s with %2$s by mail" : "%2$s 님과 %1$s을(를) 이메일로 공유함", + "You shared {file} with {email} by mail" : "{email} 님과 {file}을(를) 이메일로 공유함", + "%3$s shared %1$s with %2$s by mail" : "%3$s 님이 %2$s 님과 %1$s을(를) 이메일로 공유함", + "{actor} shared {file} with {email} by mail" : "{actor} 님이 {email} 님과 {file}을(를) 이메일로 공유함", + "Password to access %1$s was sent to %2s" : "%1$s에 접근할 수 있는 암호를 %2$s(으)로 보냄", + "Password to access {file} was sent to {email}" : "{file}에 접근할 수 있는 암호를 {email}(으)로 보냄", + "Password to access %1$s was sent to you" : "%1$s에 접근할 수 있는 암호를 내게 보냄", + "Password to access {file} was sent to you" : "{file}에 접근할 수 있는 암호를 내게 보냄", + "Sharing %s failed, this item is already shared with %s" : "%s을(를) 공유할 수 없음, 이 항목이 이미 %s 님과 공유됨", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "자동 생성된 암호를 이메일로 보낼 수 없습니다. 개인 설정에서 올바른 이메일 주소를 입력한 다음 다시 시도하십시오.", + "Failed to send share by E-mail" : "이메일로 공유를 보낼 수 없음", + "%s shared »%s« with you" : "%s 님이 %s을(를) 공유함", + "%s shared »%s« with you on behalf of %s" : "%s 님이 %s을(를) 공유함(%s 님 대신)", + "%s shared »%s« with you." : "%s 님이 %s을(를) 공유했습니다.", + "%s shared »%s« with you on behalf of %s." : "%s 님이 %s을(를) 공유했습니다(%s 님 대신).", + "Click the button below to open it." : "아래 단추를 눌러서 열 수 있습니다.", + "Open »%s«" : "%s 열기", + "%s via %s" : "%s(%s 경유)", + "Password to access »%s« shared to you by %s" : "%s에 접근할 수 있는 암호를 %s 님이 보냄", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s 님이 %s을(를) 공유했습니다.\n접근할 수 있는 링크가 포함된 별도의 이메일을 같이 전송했습니다.\n", + "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s 님이 %s을(를) 공유했습니다. 접근할 수 있는 링크가 포함된 별도의 이메일을 같이 전송했습니다.", + "Password to access »%s«" : "%s에 접근할 수 있는 암호", + "It is protected with the following password: %s" : "다음 암호로 보호되어 있습니다: %s", + "Password to access »%s« shared with %s" : "%s에 접근할 수 있는 암호를 %s 님과 공유함", + "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "%s을(를) %s 님과 공유했습니다. 공유 정보를 이메일로 전송했습니다. %s 관리자의 보안 정책에 의하여 각각 공유 항목은 암호로 보호되어야 하며, 해당 암호를 직접 이메일로 보낼 수 없습니다. 수신자에게 이 암호를 다른 방법으로 직접 전달하십시오.", + "This is the password: %s" : "다음은 암호입니다: %s", + "You can choose a different password at any time in the share dialog." : "공유 대화 상자에서 언제든지 다른 암호를 선택할 수 있습니다.", + "Could not find share" : "공유를 찾을 수 없음", + "Share by mail" : "이메일로 공유", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "파일이나 폴더를 공유하는 개인화된 링크를 이메일 주소를 통해서 공유합니다.", + "Send password by mail" : "이메일로 암호 보내기", + "Enforce password protection" : "암호 보호 강제", + "Failed to create the E-mail" : "이메일을 생성할 수 없음", + "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "안녕하세요,\n\n%s 님이 여러분과 %s을(를) 공유했습니다(%s 님 대신).\n\n%s\n\n", + "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "안녕하세요,\n\n%s 님이 여러분과 %s을(를) 공유했습니다.\n\n%s\n\n", + "Cheers!" : "감사합니다!", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "안녕하세요,<br><br>%s 님이 여러분과 <a href=\"%s\">%s</a>을(를) 공유했습니다(%s 님 대신).<br><br>", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "안녕하세요,<br><br>%s 님이 여러분과 <a href=\"%s\">%s</a>을(를) 공유했습니다.<br><br>" +}, +"nplurals=1; plural=0;"); diff --git a/apps/sharebymail/l10n/ko.json b/apps/sharebymail/l10n/ko.json new file mode 100644 index 00000000000..72fd3f11722 --- /dev/null +++ b/apps/sharebymail/l10n/ko.json @@ -0,0 +1,48 @@ +{ "translations": { + "Shared with %1$s" : "%1$s 님과 공유함", + "Shared with {email}" : "{email} 님과 공유함", + "Shared with %1$s by %2$s" : "%2$s 님이 %1$s 님과 공유함", + "Shared with {email} by {actor}" : "{actor} 님이 {email} 님과 공유함", + "Password for mail share sent to %1$s" : "이메일 공유 암호를 %1$s(으)로 보냄", + "Password for mail share sent to {email}" : "이메일 공유 암호를 {email}(으)로 보냄", + "Password for mail share sent to you" : "이메일 공유 암호를 내게 보냄", + "You shared %1$s with %2$s by mail" : "%2$s 님과 %1$s을(를) 이메일로 공유함", + "You shared {file} with {email} by mail" : "{email} 님과 {file}을(를) 이메일로 공유함", + "%3$s shared %1$s with %2$s by mail" : "%3$s 님이 %2$s 님과 %1$s을(를) 이메일로 공유함", + "{actor} shared {file} with {email} by mail" : "{actor} 님이 {email} 님과 {file}을(를) 이메일로 공유함", + "Password to access %1$s was sent to %2s" : "%1$s에 접근할 수 있는 암호를 %2$s(으)로 보냄", + "Password to access {file} was sent to {email}" : "{file}에 접근할 수 있는 암호를 {email}(으)로 보냄", + "Password to access %1$s was sent to you" : "%1$s에 접근할 수 있는 암호를 내게 보냄", + "Password to access {file} was sent to you" : "{file}에 접근할 수 있는 암호를 내게 보냄", + "Sharing %s failed, this item is already shared with %s" : "%s을(를) 공유할 수 없음, 이 항목이 이미 %s 님과 공유됨", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "자동 생성된 암호를 이메일로 보낼 수 없습니다. 개인 설정에서 올바른 이메일 주소를 입력한 다음 다시 시도하십시오.", + "Failed to send share by E-mail" : "이메일로 공유를 보낼 수 없음", + "%s shared »%s« with you" : "%s 님이 %s을(를) 공유함", + "%s shared »%s« with you on behalf of %s" : "%s 님이 %s을(를) 공유함(%s 님 대신)", + "%s shared »%s« with you." : "%s 님이 %s을(를) 공유했습니다.", + "%s shared »%s« with you on behalf of %s." : "%s 님이 %s을(를) 공유했습니다(%s 님 대신).", + "Click the button below to open it." : "아래 단추를 눌러서 열 수 있습니다.", + "Open »%s«" : "%s 열기", + "%s via %s" : "%s(%s 경유)", + "Password to access »%s« shared to you by %s" : "%s에 접근할 수 있는 암호를 %s 님이 보냄", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s 님이 %s을(를) 공유했습니다.\n접근할 수 있는 링크가 포함된 별도의 이메일을 같이 전송했습니다.\n", + "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s 님이 %s을(를) 공유했습니다. 접근할 수 있는 링크가 포함된 별도의 이메일을 같이 전송했습니다.", + "Password to access »%s«" : "%s에 접근할 수 있는 암호", + "It is protected with the following password: %s" : "다음 암호로 보호되어 있습니다: %s", + "Password to access »%s« shared with %s" : "%s에 접근할 수 있는 암호를 %s 님과 공유함", + "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "%s을(를) %s 님과 공유했습니다. 공유 정보를 이메일로 전송했습니다. %s 관리자의 보안 정책에 의하여 각각 공유 항목은 암호로 보호되어야 하며, 해당 암호를 직접 이메일로 보낼 수 없습니다. 수신자에게 이 암호를 다른 방법으로 직접 전달하십시오.", + "This is the password: %s" : "다음은 암호입니다: %s", + "You can choose a different password at any time in the share dialog." : "공유 대화 상자에서 언제든지 다른 암호를 선택할 수 있습니다.", + "Could not find share" : "공유를 찾을 수 없음", + "Share by mail" : "이메일로 공유", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "파일이나 폴더를 공유하는 개인화된 링크를 이메일 주소를 통해서 공유합니다.", + "Send password by mail" : "이메일로 암호 보내기", + "Enforce password protection" : "암호 보호 강제", + "Failed to create the E-mail" : "이메일을 생성할 수 없음", + "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "안녕하세요,\n\n%s 님이 여러분과 %s을(를) 공유했습니다(%s 님 대신).\n\n%s\n\n", + "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "안녕하세요,\n\n%s 님이 여러분과 %s을(를) 공유했습니다.\n\n%s\n\n", + "Cheers!" : "감사합니다!", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "안녕하세요,<br><br>%s 님이 여러분과 <a href=\"%s\">%s</a>을(를) 공유했습니다(%s 님 대신).<br><br>", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "안녕하세요,<br><br>%s 님이 여러분과 <a href=\"%s\">%s</a>을(를) 공유했습니다.<br><br>" +},"pluralForm" :"nplurals=1; plural=0;" +}
\ No newline at end of file diff --git a/apps/sharebymail/l10n/nl.js b/apps/sharebymail/l10n/nl.js index e62d1877980..97fb2e2b806 100644 --- a/apps/sharebymail/l10n/nl.js +++ b/apps/sharebymail/l10n/nl.js @@ -37,6 +37,7 @@ OC.L10N.register( "You can choose a different password at any time in the share dialog." : "Je kunt in de Delen-dialoog altijd een ander wachtwoord kiezen.", "Could not find share" : "Kon gedeeld niet vinden", "Share by mail" : "Gedeeld via een E-mail", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Staat gebruikers toe om een gepersonaliseerde link of map te delen door een e-mailadres in te voegen.", "Send password by mail" : "Wachtwoord per E-mail verzenden", "Enforce password protection" : "Afdwingenwachtwoordbeveiliging", "Failed to create the E-mail" : "Opmaken van de e-mail is mislukt", diff --git a/apps/sharebymail/l10n/nl.json b/apps/sharebymail/l10n/nl.json index 429f57e4597..d6c8dffc795 100644 --- a/apps/sharebymail/l10n/nl.json +++ b/apps/sharebymail/l10n/nl.json @@ -35,6 +35,7 @@ "You can choose a different password at any time in the share dialog." : "Je kunt in de Delen-dialoog altijd een ander wachtwoord kiezen.", "Could not find share" : "Kon gedeeld niet vinden", "Share by mail" : "Gedeeld via een E-mail", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Staat gebruikers toe om een gepersonaliseerde link of map te delen door een e-mailadres in te voegen.", "Send password by mail" : "Wachtwoord per E-mail verzenden", "Enforce password protection" : "Afdwingenwachtwoordbeveiliging", "Failed to create the E-mail" : "Opmaken van de e-mail is mislukt", diff --git a/apps/sharebymail/l10n/pl.js b/apps/sharebymail/l10n/pl.js index a5a7d29c1ac..fc3059c5bd5 100644 --- a/apps/sharebymail/l10n/pl.js +++ b/apps/sharebymail/l10n/pl.js @@ -5,11 +5,19 @@ OC.L10N.register( "Shared with {email}" : "Współdzielone z {email}", "Shared with %1$s by %2$s" : "Współdzielone z %1$s przez %2$s", "Shared with {email} by {actor}" : "Współdzielone z {email} przez {actor}", + "Password for mail share sent to %1$s" : "Hasło do współdzielenia przez mail zostało wysłane do %1$s", + "Password for mail share sent to {email}" : "Hasło do współdzielenia przez mail zostało wysłane do {email}", + "Password for mail share sent to you" : "Hasło do współdzielenia przez mail zostało wysłane do Ciebie", "You shared %1$s with %2$s by mail" : "Współdzielisz %1$s z %2$s przez e-maila", "You shared {file} with {email} by mail" : "Współdzielisz {file} z {email} przez e-maila", "%3$s shared %1$s with %2$s by mail" : "%3$s współdzieli %1$s z %2$s przez e-maila", "{actor} shared {file} with {email} by mail" : "{actor} współdzieli {file} z {email} przez e-maila", + "Password to access %1$s was sent to %2s" : "Hasło dostepu do %1$s zostało wysłane do %2s", + "Password to access {file} was sent to {email}" : "Hasło dostępu do {file} zostało wysłane do {email}", + "Password to access %1$s was sent to you" : "Hasło dostępu do %1$s zostało wysłane do ciebie", + "Password to access {file} was sent to you" : "Hasło dostępu do {file} zostało wysłane do ciebie", "Sharing %s failed, this item is already shared with %s" : "Współdzielenie %s nie udało się, ten obiekt już jest współdzielony z %s", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Nie można wysłać automatycznie wygenerowanego hasła. Proszę ustawić prawidłowy adres e-mail w ustawieniach osobistych i spróbować ponownie.", "Failed to send share by E-mail" : "Nie udało się wysłać współdzielenia przez e-maila", "%s shared »%s« with you" : "%s współdzieli »%s« z tobą", "%s shared »%s« with you on behalf of %s" : "%s współdzieli »%s« z tobą w imieniu %s", @@ -17,14 +25,20 @@ OC.L10N.register( "%s shared »%s« with you on behalf of %s." : "%s współdzieli »%s« z tobą w imieniu %s.", "Click the button below to open it." : "Kliknij przycisk poniżej, żeby to otworzyć.", "Open »%s«" : "Otwórz »%s«", + "%s via %s" : "%s przez %s", "Password to access »%s« shared to you by %s" : "Hasło dostępu do »%s« jest udostępnione tobie przez %s", - "Password to access »%s«" : "Hasło do dostępu »%s«", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s współdzieli z Tobą »%s«.\nPowinieneś już otrzymać osobny e-mail zawierający link dostępowy.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s współdzieli »%s« z tobą. Powinieneś już otrzymać osobnego e-maila z linkiem do dostępu.", + "Password to access »%s«" : "Hasło do dostępu »%s«", "It is protected with the following password: %s" : "To jest chronione z nstępującym hasłem: %s", + "Password to access »%s« shared with %s" : "Hasło dostępu do »%s« zostało udostępnione %s", + "This is the password: %s" : "To jest hasło: %s", + "You can choose a different password at any time in the share dialog." : "Możesz zmienić hasło w okienku współdzielenia w dowolnym momencie.", "Could not find share" : "Nie można odnaleźć współdzielonego obiektu", "Share by mail" : "Współdzielone e-mailem", - "Send a personalized link to a file or folder by mail." : "Wyślij spersonalizowany link do pliku lub folderu e-mailem.", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Umożliwia współdzielenie spersonalizowanego linku do pliku lub folderu, umieszczając go w wiadomości e-mail.", "Send password by mail" : "Wyślij hasło e-mailem", + "Enforce password protection" : "Wymuś zabezpieczenie hasłem", "Failed to create the E-mail" : "Nie udało się utworzyć e-maila", "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Hej,\n\n%s współdzieli »%s« z tobą w imieniu %s.\n\n%s\n\n", "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Hej,\n\n%s współdzieli »%s« z tobą.\n\n%s\n\n", diff --git a/apps/sharebymail/l10n/pl.json b/apps/sharebymail/l10n/pl.json index 43768f6413c..9d96dfa1117 100644 --- a/apps/sharebymail/l10n/pl.json +++ b/apps/sharebymail/l10n/pl.json @@ -3,11 +3,19 @@ "Shared with {email}" : "Współdzielone z {email}", "Shared with %1$s by %2$s" : "Współdzielone z %1$s przez %2$s", "Shared with {email} by {actor}" : "Współdzielone z {email} przez {actor}", + "Password for mail share sent to %1$s" : "Hasło do współdzielenia przez mail zostało wysłane do %1$s", + "Password for mail share sent to {email}" : "Hasło do współdzielenia przez mail zostało wysłane do {email}", + "Password for mail share sent to you" : "Hasło do współdzielenia przez mail zostało wysłane do Ciebie", "You shared %1$s with %2$s by mail" : "Współdzielisz %1$s z %2$s przez e-maila", "You shared {file} with {email} by mail" : "Współdzielisz {file} z {email} przez e-maila", "%3$s shared %1$s with %2$s by mail" : "%3$s współdzieli %1$s z %2$s przez e-maila", "{actor} shared {file} with {email} by mail" : "{actor} współdzieli {file} z {email} przez e-maila", + "Password to access %1$s was sent to %2s" : "Hasło dostepu do %1$s zostało wysłane do %2s", + "Password to access {file} was sent to {email}" : "Hasło dostępu do {file} zostało wysłane do {email}", + "Password to access %1$s was sent to you" : "Hasło dostępu do %1$s zostało wysłane do ciebie", + "Password to access {file} was sent to you" : "Hasło dostępu do {file} zostało wysłane do ciebie", "Sharing %s failed, this item is already shared with %s" : "Współdzielenie %s nie udało się, ten obiekt już jest współdzielony z %s", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Nie można wysłać automatycznie wygenerowanego hasła. Proszę ustawić prawidłowy adres e-mail w ustawieniach osobistych i spróbować ponownie.", "Failed to send share by E-mail" : "Nie udało się wysłać współdzielenia przez e-maila", "%s shared »%s« with you" : "%s współdzieli »%s« z tobą", "%s shared »%s« with you on behalf of %s" : "%s współdzieli »%s« z tobą w imieniu %s", @@ -15,14 +23,20 @@ "%s shared »%s« with you on behalf of %s." : "%s współdzieli »%s« z tobą w imieniu %s.", "Click the button below to open it." : "Kliknij przycisk poniżej, żeby to otworzyć.", "Open »%s«" : "Otwórz »%s«", + "%s via %s" : "%s przez %s", "Password to access »%s« shared to you by %s" : "Hasło dostępu do »%s« jest udostępnione tobie przez %s", - "Password to access »%s«" : "Hasło do dostępu »%s«", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s współdzieli z Tobą »%s«.\nPowinieneś już otrzymać osobny e-mail zawierający link dostępowy.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s współdzieli »%s« z tobą. Powinieneś już otrzymać osobnego e-maila z linkiem do dostępu.", + "Password to access »%s«" : "Hasło do dostępu »%s«", "It is protected with the following password: %s" : "To jest chronione z nstępującym hasłem: %s", + "Password to access »%s« shared with %s" : "Hasło dostępu do »%s« zostało udostępnione %s", + "This is the password: %s" : "To jest hasło: %s", + "You can choose a different password at any time in the share dialog." : "Możesz zmienić hasło w okienku współdzielenia w dowolnym momencie.", "Could not find share" : "Nie można odnaleźć współdzielonego obiektu", "Share by mail" : "Współdzielone e-mailem", - "Send a personalized link to a file or folder by mail." : "Wyślij spersonalizowany link do pliku lub folderu e-mailem.", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Umożliwia współdzielenie spersonalizowanego linku do pliku lub folderu, umieszczając go w wiadomości e-mail.", "Send password by mail" : "Wyślij hasło e-mailem", + "Enforce password protection" : "Wymuś zabezpieczenie hasłem", "Failed to create the E-mail" : "Nie udało się utworzyć e-maila", "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Hej,\n\n%s współdzieli »%s« z tobą w imieniu %s.\n\n%s\n\n", "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Hej,\n\n%s współdzieli »%s« z tobą.\n\n%s\n\n", diff --git a/apps/sharebymail/l10n/pt_BR.js b/apps/sharebymail/l10n/pt_BR.js index edc96e08ef2..b7cf2a33e13 100644 --- a/apps/sharebymail/l10n/pt_BR.js +++ b/apps/sharebymail/l10n/pt_BR.js @@ -8,17 +8,17 @@ OC.L10N.register( "Password for mail share sent to %1$s" : "Senha para o correio compartilhado enviado para %1$s", "Password for mail share sent to {email}" : "Senha para o correio compartilhado enviado para {email}", "Password for mail share sent to you" : "Senha para o correio compartilhado enviado para você", - "You shared %1$s with %2$s by mail" : "Você compartilhou %1$s com %2$s por email", - "You shared {file} with {email} by mail" : "Você compartilhou {file} com {email} por email", - "%3$s shared %1$s with %2$s by mail" : "%3$s compartilou %1$s com %2$s por email", - "{actor} shared {file} with {email} by mail" : "{actor} compartilhou {file} com {email} por email", + "You shared %1$s with %2$s by mail" : "Você compartilhou %1$s com %2$s por e-mail", + "You shared {file} with {email} by mail" : "Você compartilhou {file} com {email} por e-mail", + "%3$s shared %1$s with %2$s by mail" : "%3$s compartilou %1$s com %2$s por e-mail", + "{actor} shared {file} with {email} by mail" : "{actor} compartilhou {file} com {email} por e-mail", "Password to access %1$s was sent to %2s" : "A senha para acesso %1$s foi enviada para %2s", "Password to access {file} was sent to {email}" : "A senha para acesso {file} foi enviada para {email}", "Password to access %1$s was sent to you" : "A senha para acesso %1$s foi enviada para você", "Password to access {file} was sent to you" : "A senha para acesso {file} foi enviada para você", "Sharing %s failed, this item is already shared with %s" : "O compartilhamento %s falhou, pois este item já está compartilhado com %s", - "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Não pudemos enviar a você a senha auto-gerada. por favor defina um email válido em sua configuração e tente novamente.", - "Failed to send share by E-mail" : "Falha ao enviar compartilhamento por email", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Não pudemos enviar a você a senha auto-gerada. por favor defina um e-mail válido em sua configuração e tente novamente.", + "Failed to send share by E-mail" : "Falha ao enviar compartilhamento por e-mail", "%s shared »%s« with you" : "%s compartilhou »%s« com você", "%s shared »%s« with you on behalf of %s" : "%s compartilhou »%s« com você em nome de %s", "%s shared »%s« with you." : "%s compartilhou »%s« com você.", @@ -27,8 +27,8 @@ OC.L10N.register( "Open »%s«" : "Abrir »%s«", "%s via %s" : "%s via %s", "Password to access »%s« shared to you by %s" : "Senha para acessar %s compartilhado com você por %s", - "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartilhou »%s« com você.\nVocê já deve ter recebido um email com um link para acessá-lo.\n", - "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartilhou »%s« com você. Você já deve ter recebido um email com um link para acessá-lo.", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartilhou »%s« com você.\nVocê já deve ter recebido um e-mail com um link para acessá-lo.\n", + "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartilhou »%s« com você. Você já deve ter recebido um e-mail com um link para acessá-lo.", "Password to access »%s«" : "Senha para acessar »%s«", "It is protected with the following password: %s" : "Está protegido com a seguinte senha: %s", "Password to access »%s« shared with %s" : "Senha para acessar »%s« compartilhado com %s", @@ -36,11 +36,11 @@ OC.L10N.register( "This is the password: %s" : "Essa é a senha: %s", "You can choose a different password at any time in the share dialog." : "Você pode escolher uma senha diferente a qualquer momento no diálogo compartilhamento.", "Could not find share" : "Não foi possível encontrar o compartilhamento", - "Share by mail" : "Compartilhamento por email", - "Allows users to share a personalized link to a file or folder by putting in an email address." : "Permite que os usuários compartilhem um link personalizado para um arquivo ou pasta, inserindo um endereço de email.", - "Send password by mail" : "Enviar senha por email", + "Share by mail" : "Compartilhamento por e-mail", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Permite que os usuários compartilhem um link personalizado para um arquivo ou pasta, inserindo um endereço de e-mail.", + "Send password by mail" : "Enviar senha por e-mail", "Enforce password protection" : "Reforce a proteção por senha", - "Failed to create the E-mail" : "Falhou ao criar o email", + "Failed to create the E-mail" : "Falhou ao criar o e-mail", "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Olá,\n%s compartilhou »%s« com você em nome de %s.\n%s\n\n", "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Olá,\n%s compartilhou »%s« com você.\n%s\n", "Cheers!" : "Saudações!", diff --git a/apps/sharebymail/l10n/pt_BR.json b/apps/sharebymail/l10n/pt_BR.json index 014f325a457..7b225bc7b11 100644 --- a/apps/sharebymail/l10n/pt_BR.json +++ b/apps/sharebymail/l10n/pt_BR.json @@ -6,17 +6,17 @@ "Password for mail share sent to %1$s" : "Senha para o correio compartilhado enviado para %1$s", "Password for mail share sent to {email}" : "Senha para o correio compartilhado enviado para {email}", "Password for mail share sent to you" : "Senha para o correio compartilhado enviado para você", - "You shared %1$s with %2$s by mail" : "Você compartilhou %1$s com %2$s por email", - "You shared {file} with {email} by mail" : "Você compartilhou {file} com {email} por email", - "%3$s shared %1$s with %2$s by mail" : "%3$s compartilou %1$s com %2$s por email", - "{actor} shared {file} with {email} by mail" : "{actor} compartilhou {file} com {email} por email", + "You shared %1$s with %2$s by mail" : "Você compartilhou %1$s com %2$s por e-mail", + "You shared {file} with {email} by mail" : "Você compartilhou {file} com {email} por e-mail", + "%3$s shared %1$s with %2$s by mail" : "%3$s compartilou %1$s com %2$s por e-mail", + "{actor} shared {file} with {email} by mail" : "{actor} compartilhou {file} com {email} por e-mail", "Password to access %1$s was sent to %2s" : "A senha para acesso %1$s foi enviada para %2s", "Password to access {file} was sent to {email}" : "A senha para acesso {file} foi enviada para {email}", "Password to access %1$s was sent to you" : "A senha para acesso %1$s foi enviada para você", "Password to access {file} was sent to you" : "A senha para acesso {file} foi enviada para você", "Sharing %s failed, this item is already shared with %s" : "O compartilhamento %s falhou, pois este item já está compartilhado com %s", - "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Não pudemos enviar a você a senha auto-gerada. por favor defina um email válido em sua configuração e tente novamente.", - "Failed to send share by E-mail" : "Falha ao enviar compartilhamento por email", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Não pudemos enviar a você a senha auto-gerada. por favor defina um e-mail válido em sua configuração e tente novamente.", + "Failed to send share by E-mail" : "Falha ao enviar compartilhamento por e-mail", "%s shared »%s« with you" : "%s compartilhou »%s« com você", "%s shared »%s« with you on behalf of %s" : "%s compartilhou »%s« com você em nome de %s", "%s shared »%s« with you." : "%s compartilhou »%s« com você.", @@ -25,8 +25,8 @@ "Open »%s«" : "Abrir »%s«", "%s via %s" : "%s via %s", "Password to access »%s« shared to you by %s" : "Senha para acessar %s compartilhado com você por %s", - "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartilhou »%s« com você.\nVocê já deve ter recebido um email com um link para acessá-lo.\n", - "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartilhou »%s« com você. Você já deve ter recebido um email com um link para acessá-lo.", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartilhou »%s« com você.\nVocê já deve ter recebido um e-mail com um link para acessá-lo.\n", + "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartilhou »%s« com você. Você já deve ter recebido um e-mail com um link para acessá-lo.", "Password to access »%s«" : "Senha para acessar »%s«", "It is protected with the following password: %s" : "Está protegido com a seguinte senha: %s", "Password to access »%s« shared with %s" : "Senha para acessar »%s« compartilhado com %s", @@ -34,11 +34,11 @@ "This is the password: %s" : "Essa é a senha: %s", "You can choose a different password at any time in the share dialog." : "Você pode escolher uma senha diferente a qualquer momento no diálogo compartilhamento.", "Could not find share" : "Não foi possível encontrar o compartilhamento", - "Share by mail" : "Compartilhamento por email", - "Allows users to share a personalized link to a file or folder by putting in an email address." : "Permite que os usuários compartilhem um link personalizado para um arquivo ou pasta, inserindo um endereço de email.", - "Send password by mail" : "Enviar senha por email", + "Share by mail" : "Compartilhamento por e-mail", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Permite que os usuários compartilhem um link personalizado para um arquivo ou pasta, inserindo um endereço de e-mail.", + "Send password by mail" : "Enviar senha por e-mail", "Enforce password protection" : "Reforce a proteção por senha", - "Failed to create the E-mail" : "Falhou ao criar o email", + "Failed to create the E-mail" : "Falhou ao criar o e-mail", "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Olá,\n%s compartilhou »%s« com você em nome de %s.\n%s\n\n", "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Olá,\n%s compartilhou »%s« com você.\n%s\n", "Cheers!" : "Saudações!", diff --git a/apps/sharebymail/l10n/ru.js b/apps/sharebymail/l10n/ru.js index c339c8a82a8..79cd6b68781 100644 --- a/apps/sharebymail/l10n/ru.js +++ b/apps/sharebymail/l10n/ru.js @@ -12,6 +12,10 @@ OC.L10N.register( "You shared {file} with {email} by mail" : "Вы предоставили общий доступ к {file} для {email} по email", "%3$s shared %1$s with %2$s by mail" : "%3$s предоставил общий доступ к %1$s для %2$s по email", "{actor} shared {file} with {email} by mail" : "{actor} предоставил общий доступ к {file} для {email} по email", + "Password to access %1$s was sent to %2s" : "Пароль для доступа к %1$s отправлен %2s", + "Password to access {file} was sent to {email}" : "Пароль для доступа к {file} отправлен {email}", + "Password to access %1$s was sent to you" : "Пароль для доступа к %1$s отправлен вам", + "Password to access {file} was sent to you" : "Пароль для доступа к {file} отправлен вам", "Sharing %s failed, this item is already shared with %s" : "Не удалось поделиться %s, к этому элементу уже предоставлен общий доступ для %s", "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Не удаётся отправить вам автоматически созданный пароль. Укажите верный адрес email в своих личных настройках и попробуйте снова.", "Failed to send share by E-mail" : "Не удалось поделиться по e-mail", @@ -33,6 +37,7 @@ OC.L10N.register( "You can choose a different password at any time in the share dialog." : "В любой момент можно выбрать другой паорль в диалоге «Общий доступ».", "Could not find share" : "Не удалось найти общий ресурс", "Share by mail" : "Поделиться по почте", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Позволяет пользователям делиться персонализированной ссылкой на файл или каталог, введя адрес электронной почты.", "Send password by mail" : "Отправить пароль почтой", "Enforce password protection" : "Требовать защиту паролем", "Failed to create the E-mail" : "Не удалось создать e-mail", diff --git a/apps/sharebymail/l10n/ru.json b/apps/sharebymail/l10n/ru.json index 7e49354ab96..b541e33f98c 100644 --- a/apps/sharebymail/l10n/ru.json +++ b/apps/sharebymail/l10n/ru.json @@ -10,6 +10,10 @@ "You shared {file} with {email} by mail" : "Вы предоставили общий доступ к {file} для {email} по email", "%3$s shared %1$s with %2$s by mail" : "%3$s предоставил общий доступ к %1$s для %2$s по email", "{actor} shared {file} with {email} by mail" : "{actor} предоставил общий доступ к {file} для {email} по email", + "Password to access %1$s was sent to %2s" : "Пароль для доступа к %1$s отправлен %2s", + "Password to access {file} was sent to {email}" : "Пароль для доступа к {file} отправлен {email}", + "Password to access %1$s was sent to you" : "Пароль для доступа к %1$s отправлен вам", + "Password to access {file} was sent to you" : "Пароль для доступа к {file} отправлен вам", "Sharing %s failed, this item is already shared with %s" : "Не удалось поделиться %s, к этому элементу уже предоставлен общий доступ для %s", "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Не удаётся отправить вам автоматически созданный пароль. Укажите верный адрес email в своих личных настройках и попробуйте снова.", "Failed to send share by E-mail" : "Не удалось поделиться по e-mail", @@ -31,6 +35,7 @@ "You can choose a different password at any time in the share dialog." : "В любой момент можно выбрать другой паорль в диалоге «Общий доступ».", "Could not find share" : "Не удалось найти общий ресурс", "Share by mail" : "Поделиться по почте", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Позволяет пользователям делиться персонализированной ссылкой на файл или каталог, введя адрес электронной почты.", "Send password by mail" : "Отправить пароль почтой", "Enforce password protection" : "Требовать защиту паролем", "Failed to create the E-mail" : "Не удалось создать e-mail", diff --git a/apps/systemtags/l10n/cs.js b/apps/systemtags/l10n/cs.js index d0f50c593dc..4789010525a 100644 --- a/apps/systemtags/l10n/cs.js +++ b/apps/systemtags/l10n/cs.js @@ -42,6 +42,8 @@ OC.L10N.register( "%s (invisible)" : "%s (neviditelný)", "<strong>System tags</strong> for a file have been modified" : "<strong>Systémové tagy</strong> souboru byly upraveny", "Collaborative tags" : "Značky pro spolupráci", + "Create and edit collaborative tags. These tags affect all users." : "Vytvářejte a upravujte značky pro spolupráci. Tyto značky ovlivní všechny uživatele.", + "Select tag …" : "Vyberte značku …", "Name" : "Název", "Delete" : "Smazat", "Public" : "Veřejné", diff --git a/apps/systemtags/l10n/cs.json b/apps/systemtags/l10n/cs.json index 4f602fd9b7a..dbf7f5be2dd 100644 --- a/apps/systemtags/l10n/cs.json +++ b/apps/systemtags/l10n/cs.json @@ -40,6 +40,8 @@ "%s (invisible)" : "%s (neviditelný)", "<strong>System tags</strong> for a file have been modified" : "<strong>Systémové tagy</strong> souboru byly upraveny", "Collaborative tags" : "Značky pro spolupráci", + "Create and edit collaborative tags. These tags affect all users." : "Vytvářejte a upravujte značky pro spolupráci. Tyto značky ovlivní všechny uživatele.", + "Select tag …" : "Vyberte značku …", "Name" : "Název", "Delete" : "Smazat", "Public" : "Veřejné", diff --git a/apps/systemtags/l10n/es.js b/apps/systemtags/l10n/es.js index b4527b90ee3..d380ab58271 100644 --- a/apps/systemtags/l10n/es.js +++ b/apps/systemtags/l10n/es.js @@ -42,6 +42,8 @@ OC.L10N.register( "%s (invisible)" : "%s (invisible)", "<strong>System tags</strong> for a file have been modified" : "Se han modificado las <strong>etiquetas de sistema</strong> de un archivo", "Collaborative tags" : "Etiquetas colaborativas", + "Create and edit collaborative tags. These tags affect all users." : "Crea y edita etiquetas colaborativas. Estas etiquetas afectan a todos los usuarios.", + "Select tag …" : "Selecciona etiqueta...", "Name" : "Nombre", "Delete" : "Borrar", "Public" : "Público", diff --git a/apps/systemtags/l10n/es.json b/apps/systemtags/l10n/es.json index 486e73ab5c5..51bb3668f6f 100644 --- a/apps/systemtags/l10n/es.json +++ b/apps/systemtags/l10n/es.json @@ -40,6 +40,8 @@ "%s (invisible)" : "%s (invisible)", "<strong>System tags</strong> for a file have been modified" : "Se han modificado las <strong>etiquetas de sistema</strong> de un archivo", "Collaborative tags" : "Etiquetas colaborativas", + "Create and edit collaborative tags. These tags affect all users." : "Crea y edita etiquetas colaborativas. Estas etiquetas afectan a todos los usuarios.", + "Select tag …" : "Selecciona etiqueta...", "Name" : "Nombre", "Delete" : "Borrar", "Public" : "Público", diff --git a/apps/systemtags/l10n/fr.js b/apps/systemtags/l10n/fr.js index b43d0518749..56335c2abf8 100644 --- a/apps/systemtags/l10n/fr.js +++ b/apps/systemtags/l10n/fr.js @@ -42,6 +42,7 @@ OC.L10N.register( "%s (invisible)" : "%s (invisible)", "<strong>System tags</strong> for a file have been modified" : "<strong>Les étiquettes collaboratives</strong> pour un fichier ont été modifiées", "Collaborative tags" : "Étiquettes collaboratives ", + "Create and edit collaborative tags. These tags affect all users." : "Créer et modifier des étiquettes collaboratives. Ces étiquettes vont affecter tous les utilisateurs.", "Select tag …" : "Sélectionner une étiquette…", "Name" : "Nom", "Delete" : "Supprimer", diff --git a/apps/systemtags/l10n/fr.json b/apps/systemtags/l10n/fr.json index f4c52009f1a..2d2396dc785 100644 --- a/apps/systemtags/l10n/fr.json +++ b/apps/systemtags/l10n/fr.json @@ -40,6 +40,7 @@ "%s (invisible)" : "%s (invisible)", "<strong>System tags</strong> for a file have been modified" : "<strong>Les étiquettes collaboratives</strong> pour un fichier ont été modifiées", "Collaborative tags" : "Étiquettes collaboratives ", + "Create and edit collaborative tags. These tags affect all users." : "Créer et modifier des étiquettes collaboratives. Ces étiquettes vont affecter tous les utilisateurs.", "Select tag …" : "Sélectionner une étiquette…", "Name" : "Nom", "Delete" : "Supprimer", diff --git a/apps/systemtags/l10n/ko.js b/apps/systemtags/l10n/ko.js index 10eb1cf229e..ad00ec504b3 100644 --- a/apps/systemtags/l10n/ko.js +++ b/apps/systemtags/l10n/ko.js @@ -2,13 +2,56 @@ OC.L10N.register( "systemtags", { "Tags" : "태그", + "Update" : "업데이트", + "Create" : "만들기", + "Select tag…" : "태그 선택…", "Tagged files" : "태그 된 파일", - "Select tags to filter by" : "필터링 할 태그 선택", - "Please select tags to filter by" : "필터링 할 태그 선택", - "No files found for the selected tags" : "선택한 태그에 대한 파일을 찾을 수 없음", + "Select tags to filter by" : "필터링할 태그 선택", + "No tags found" : "태그를 찾을 수 없음", + "Please select tags to filter by" : "필터링할 태그를 선택하십시오", + "No files found for the selected tags" : "선택한 태그가 붙은 파일을 찾을 수 없음", + "Added system tag %1$s" : "시스템 태그 %1$s을(를) 추가함", + "Added system tag {systemtag}" : "시스템 태그 {systemtag}을(를) 추가함", + "%1$s added system tag %2$s" : "%1$s 님이 시스템 태그 %2$s을(를) 추가함", + "{actor} added system tag {systemtag}" : "{actor} 님이 시스템 태그 {systemtag}을(를) 추가함", + "Removed system tag %1$s" : "시스템 태그 %1$s을(를) 삭제함", + "Removed system tag {systemtag}" : "시스템 태그 {systemtag}을(를) 삭제함", + "%1$s removed system tag %2$s" : "%1$ 님이 시스템 태그 %2$s을(를) 삭제함", + "{actor} removed system tag {systemtag}" : "{actor} 님이 시스템 태그 {systemtag}을(를) 삭제함", + "You created system tag %1$s" : "시스템 태그 %1$s을(를) 생성함", + "You created system tag {systemtag}" : "시스템 태그 {systemtag}을(를) 생성함", + "%1$s created system tag %2$s" : "%1$s 님이 시스템 태그 %2$s을(를) 생성함", + "{actor} created system tag {systemtag}" : "{actor} 님이 시스템 태그 {systemtag}을(를) 생성함", + "You deleted system tag %1$s" : "시스템 태그 %1$s을(를) 삭제함", + "You deleted system tag {systemtag}" : "시스템 태그 {systemtag}을(를) 삭제함", + "%1$s deleted system tag %2$s" : "%1$ 님이 시스템 태그 %2$s을(를) 삭제함", + "{actor} deleted system tag {systemtag}" : "{actor} 님이 시스템 태그 {systemtag}을(를) 삭제함", + "You updated system tag %2$s to %1$s" : "시스템 태그 %2$s을(를) %1$s(으)로 업데이트함", + "You updated system tag {oldsystemtag} to {newsystemtag}" : "시스템 태그 {oldsystemtag}을(를) {newsystemtag}(으)로 업데이트함", + "%1$s updated system tag %3$s to %2$s" : "%1$s 님이 시스템 태그 %3$s을(를) %2$s(으)로 업데이트함", + "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} 님이 시스템 태그 {oldsystemtag}을(를) {newsystemtag}(으)로 업데이트함", + "You added system tag %2$s to %1$s" : "시스템 태그 %2$s을(를) %1$s에 추가함", + "You added system tag {systemtag} to {file}" : "시스템 태그 {systemtag}을(를) {file}에 추가함", + "%1$s added system tag %3$s to %2$s" : "%1$s 님이 시스템 태그 %3$s을(를) %2$s에 추가함", + "{actor} added system tag {systemtag} to {file}" : "{actor} 님이 시스템 태그 {systemtag}을(를) {file}에 추가함", + "You removed system tag %2$s from %1$s" : "시스템 태그 %2$s을(를) %1$s에서 삭제함", + "You removed system tag {systemtag} from {file}" : "시스템 태그 {systemtag}을(를) {file}에서 삭제함", + "%1$s removed system tag %3$s from %2$s" : "%1$s 님이 시스템 태그 %3$s을(를) %2$s에서 삭제함", + "{actor} removed system tag {systemtag} from {file}" : "{actor} 님이 시스템 태그 {systemtag}을(를) {file}에서 삭제함", + "%s (restricted)" : "%s(제한됨)", + "%s (invisible)" : "%s(숨겨짐)", + "<strong>System tags</strong> for a file have been modified" : "파일의 <strong>시스템 태그</strong>가 수정됨", + "Collaborative tags" : "협업 태그", + "Create and edit collaborative tags. These tags affect all users." : "협업 태그를 만들고 수정합니다. 이 태그는 모든 사용자에게 영향을 줍니다.", + "Select tag …" : "태그 선택 …", + "Name" : "이름", + "Delete" : "삭제", + "Public" : "공개", + "Restricted" : "제한됨", + "Invisible" : "숨겨짐", + "Reset" : "재설정", "No files in here" : "여기에 파일 없음", "No entries found in this folder" : "이 폴더에 항목 없음", - "Name" : "이름", "Size" : "크기", "Modified" : "수정됨" }, diff --git a/apps/systemtags/l10n/ko.json b/apps/systemtags/l10n/ko.json index f5a9052168c..8b5b630333c 100644 --- a/apps/systemtags/l10n/ko.json +++ b/apps/systemtags/l10n/ko.json @@ -1,12 +1,55 @@ { "translations": { "Tags" : "태그", + "Update" : "업데이트", + "Create" : "만들기", + "Select tag…" : "태그 선택…", "Tagged files" : "태그 된 파일", - "Select tags to filter by" : "필터링 할 태그 선택", - "Please select tags to filter by" : "필터링 할 태그 선택", - "No files found for the selected tags" : "선택한 태그에 대한 파일을 찾을 수 없음", + "Select tags to filter by" : "필터링할 태그 선택", + "No tags found" : "태그를 찾을 수 없음", + "Please select tags to filter by" : "필터링할 태그를 선택하십시오", + "No files found for the selected tags" : "선택한 태그가 붙은 파일을 찾을 수 없음", + "Added system tag %1$s" : "시스템 태그 %1$s을(를) 추가함", + "Added system tag {systemtag}" : "시스템 태그 {systemtag}을(를) 추가함", + "%1$s added system tag %2$s" : "%1$s 님이 시스템 태그 %2$s을(를) 추가함", + "{actor} added system tag {systemtag}" : "{actor} 님이 시스템 태그 {systemtag}을(를) 추가함", + "Removed system tag %1$s" : "시스템 태그 %1$s을(를) 삭제함", + "Removed system tag {systemtag}" : "시스템 태그 {systemtag}을(를) 삭제함", + "%1$s removed system tag %2$s" : "%1$ 님이 시스템 태그 %2$s을(를) 삭제함", + "{actor} removed system tag {systemtag}" : "{actor} 님이 시스템 태그 {systemtag}을(를) 삭제함", + "You created system tag %1$s" : "시스템 태그 %1$s을(를) 생성함", + "You created system tag {systemtag}" : "시스템 태그 {systemtag}을(를) 생성함", + "%1$s created system tag %2$s" : "%1$s 님이 시스템 태그 %2$s을(를) 생성함", + "{actor} created system tag {systemtag}" : "{actor} 님이 시스템 태그 {systemtag}을(를) 생성함", + "You deleted system tag %1$s" : "시스템 태그 %1$s을(를) 삭제함", + "You deleted system tag {systemtag}" : "시스템 태그 {systemtag}을(를) 삭제함", + "%1$s deleted system tag %2$s" : "%1$ 님이 시스템 태그 %2$s을(를) 삭제함", + "{actor} deleted system tag {systemtag}" : "{actor} 님이 시스템 태그 {systemtag}을(를) 삭제함", + "You updated system tag %2$s to %1$s" : "시스템 태그 %2$s을(를) %1$s(으)로 업데이트함", + "You updated system tag {oldsystemtag} to {newsystemtag}" : "시스템 태그 {oldsystemtag}을(를) {newsystemtag}(으)로 업데이트함", + "%1$s updated system tag %3$s to %2$s" : "%1$s 님이 시스템 태그 %3$s을(를) %2$s(으)로 업데이트함", + "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} 님이 시스템 태그 {oldsystemtag}을(를) {newsystemtag}(으)로 업데이트함", + "You added system tag %2$s to %1$s" : "시스템 태그 %2$s을(를) %1$s에 추가함", + "You added system tag {systemtag} to {file}" : "시스템 태그 {systemtag}을(를) {file}에 추가함", + "%1$s added system tag %3$s to %2$s" : "%1$s 님이 시스템 태그 %3$s을(를) %2$s에 추가함", + "{actor} added system tag {systemtag} to {file}" : "{actor} 님이 시스템 태그 {systemtag}을(를) {file}에 추가함", + "You removed system tag %2$s from %1$s" : "시스템 태그 %2$s을(를) %1$s에서 삭제함", + "You removed system tag {systemtag} from {file}" : "시스템 태그 {systemtag}을(를) {file}에서 삭제함", + "%1$s removed system tag %3$s from %2$s" : "%1$s 님이 시스템 태그 %3$s을(를) %2$s에서 삭제함", + "{actor} removed system tag {systemtag} from {file}" : "{actor} 님이 시스템 태그 {systemtag}을(를) {file}에서 삭제함", + "%s (restricted)" : "%s(제한됨)", + "%s (invisible)" : "%s(숨겨짐)", + "<strong>System tags</strong> for a file have been modified" : "파일의 <strong>시스템 태그</strong>가 수정됨", + "Collaborative tags" : "협업 태그", + "Create and edit collaborative tags. These tags affect all users." : "협업 태그를 만들고 수정합니다. 이 태그는 모든 사용자에게 영향을 줍니다.", + "Select tag …" : "태그 선택 …", + "Name" : "이름", + "Delete" : "삭제", + "Public" : "공개", + "Restricted" : "제한됨", + "Invisible" : "숨겨짐", + "Reset" : "재설정", "No files in here" : "여기에 파일 없음", "No entries found in this folder" : "이 폴더에 항목 없음", - "Name" : "이름", "Size" : "크기", "Modified" : "수정됨" },"pluralForm" :"nplurals=1; plural=0;" diff --git a/apps/systemtags/l10n/pl.js b/apps/systemtags/l10n/pl.js index 8c1ea397f8e..a53057c79b0 100644 --- a/apps/systemtags/l10n/pl.js +++ b/apps/systemtags/l10n/pl.js @@ -42,6 +42,8 @@ OC.L10N.register( "%s (invisible)" : "%s (niewidoczny)", "<strong>System tags</strong> for a file have been modified" : "<strong>Etykieta systemowa</strong> dla pliku została zmieniona", "Collaborative tags" : "Wspólne etykiety", + "Create and edit collaborative tags. These tags affect all users." : "Utwórz i edytuj tagi współpracy. Te tagi mają wpływ na wszystkich użytkowników.", + "Select tag …" : "Wybierz tag ...", "Name" : "Nazwa", "Delete" : "Usuń", "Public" : "Publiczne", diff --git a/apps/systemtags/l10n/pl.json b/apps/systemtags/l10n/pl.json index 57474002e69..b16312a452b 100644 --- a/apps/systemtags/l10n/pl.json +++ b/apps/systemtags/l10n/pl.json @@ -40,6 +40,8 @@ "%s (invisible)" : "%s (niewidoczny)", "<strong>System tags</strong> for a file have been modified" : "<strong>Etykieta systemowa</strong> dla pliku została zmieniona", "Collaborative tags" : "Wspólne etykiety", + "Create and edit collaborative tags. These tags affect all users." : "Utwórz i edytuj tagi współpracy. Te tagi mają wpływ na wszystkich użytkowników.", + "Select tag …" : "Wybierz tag ...", "Name" : "Nazwa", "Delete" : "Usuń", "Public" : "Publiczne", diff --git a/apps/systemtags/l10n/ru.js b/apps/systemtags/l10n/ru.js index d32f7159dc0..f9dc271256d 100644 --- a/apps/systemtags/l10n/ru.js +++ b/apps/systemtags/l10n/ru.js @@ -42,6 +42,8 @@ OC.L10N.register( "%s (invisible)" : "%s (невидимые)", "<strong>System tags</strong> for a file have been modified" : "<strong>Системные метки</strong> файла были изменены", "Collaborative tags" : "Совместные метки", + "Create and edit collaborative tags. These tags affect all users." : "Создание и изменение меток совместной работы. Эти метки влияют на всех пользователей.", + "Select tag …" : "Выберите метку…", "Name" : "Имя", "Delete" : "Удалить", "Public" : "Открытый", diff --git a/apps/systemtags/l10n/ru.json b/apps/systemtags/l10n/ru.json index 84438433c52..47e123f28a6 100644 --- a/apps/systemtags/l10n/ru.json +++ b/apps/systemtags/l10n/ru.json @@ -40,6 +40,8 @@ "%s (invisible)" : "%s (невидимые)", "<strong>System tags</strong> for a file have been modified" : "<strong>Системные метки</strong> файла были изменены", "Collaborative tags" : "Совместные метки", + "Create and edit collaborative tags. These tags affect all users." : "Создание и изменение меток совместной работы. Эти метки влияют на всех пользователей.", + "Select tag …" : "Выберите метку…", "Name" : "Имя", "Delete" : "Удалить", "Public" : "Открытый", diff --git a/apps/theming/css/settings-admin.css b/apps/theming/css/settings-admin.css index 8cc3f0dfe14..e401d77e4b6 100644 --- a/apps/theming/css/settings-admin.css +++ b/apps/theming/css/settings-admin.css @@ -26,10 +26,20 @@ display: inline-block; visibility: hidden; } -#theming form .theme-undo { +form.uploadButton { + width: 356px; +} +#theming form .theme-undo, +#theming .theme-remove-bg { + cursor: pointer; + opacity: .3; + padding: 7px; + vertical-align: top; + display: inline-block; + float: right; position: relative; top: 4px; - left: 158px; + right: 0px; visibility: visible; } #theming input[type='text']:focus + .theme-undo, @@ -54,7 +64,8 @@ margin: 2px 0px; } -#theming .icon-upload { +#theming .icon-upload, +#theming .icon-loading-small { padding: 8px 20px; width: 20px; margin: 2px 0px; diff --git a/apps/theming/css/theming.scss b/apps/theming/css/theming.scss index d2196362d3b..2a5a0e5cd46 100644 --- a/apps/theming/css/theming.scss +++ b/apps/theming/css/theming.scss @@ -45,12 +45,12 @@ #header .logo, #header .logo-icon { background-size: contain; - background-image: url(#{$image-logo}?v=#{$theming-cachebuster}); + background-image: url(#{$image-logo}); } #body-login, #firstrunwizard .firstrunwizard-header { - background-image: url(#{$image-login-background}?v=#{$theming-cachebuster}); + background-image: url(#{$image-login-background}); background-color: $color-primary; } @@ -64,4 +64,50 @@ input.primary { #body-login input.login { background-image: url('../../../core/img/actions/confirm.svg'); } +} + +// plain background color for login page +@if $image-login-plain == 'true' { + #body-login, #firstrunwizard .firstrunwizard-header, #theming-preview { + background-image: none !important; + background-color: $color-primary; + } + #body-login { + + a, label, p { + color: $color-primary-text !important; + } + + @if (lightness($color-primary) > 50) { + #submit { + border-color: nc-darken($color-primary, 20%); + background-color: nc-darken($color-primary, 20%); + } + #submit:hover { + border-color: nc-darken($color-primary, 10%); + background-color: nc-darken($color-primary, 10%); + } + input[type='checkbox'].checkbox--white + label:before { + border-color: nc-darken($color-primary, 40%) !important; + } + input[type='checkbox'].checkbox--white:not(:disabled):not(:checked) + label:hover:before, + input[type='checkbox'].checkbox--white:focus + label:before { + border-color: nc-darken($color-primary, 30%) !important; + } + input[type='checkbox'].checkbox--white:checked + label:before { + border-color: nc-darken($color-primary, 30%) !important; + background-image: url('../../../core/img/actions/checkbox-mark.svg'); + background-color: nc-darken($color-primary, 30%) !important; + } + } @else { + #submit { + border-color: nc-lighten($color-primary, 20%); + background-color: nc-lighten($color-primary, 20%); + } + #submit:hover { + border-color: nc-lighten($color-primary, 10%); + background-color: nc-lighten($color-primary, 10%); + } + } + } }
\ No newline at end of file diff --git a/apps/theming/js/settings-admin.js b/apps/theming/js/settings-admin.js index 802f6e05c07..5d91892c007 100644 --- a/apps/theming/js/settings-admin.js +++ b/apps/theming/js/settings-admin.js @@ -35,6 +35,7 @@ function setThemingValue(setting, value) { OC.msg.finishedSaving('#theming_settings_msg', response); $('#theming_settings_loading').hide(); }); + } function preview(setting, value) { @@ -74,18 +75,13 @@ function preview(setting, value) { previewImageLogo.src = OC.getRootPath() + '/core/img/logo-icon.svg?v' + timestamp; } } - if (setting === 'backgroundMime') { - var previewImage = document.getElementById('theming-preview'); - if (value !== '') { - previewImage.style.backgroundImage = "url('" + OC.generateUrl('/apps/theming/loginbackground') + "?v" + timestamp + "')"; - } else { - previewImage.style.backgroundImage = "url('" + OC.getRootPath() + '/core/img/background.jpg?v' + timestamp + "')"; - } - } if (setting === 'name') { window.document.title = t('core', 'Admin') + " - " + value; } + + hideUndoButton(setting, value); + } function hideUndoButton(setting, value) { @@ -103,6 +99,14 @@ function hideUndoButton(setting, value) { } else { $('.theme-undo[data-setting=' + setting + ']').show(); } + + if(setting === 'backgroundMime' && value !== 'backgroundColor') { + $('.theme-remove-bg').show(); + } + if(setting === 'backgroundMime' && value === 'backgroundColor') { + $('.theme-remove-bg').hide(); + $('.theme-undo[data-setting=backgroundMime]').show(); + } } $(document).ready(function () { @@ -116,6 +120,7 @@ $(document).ready(function () { } hideUndoButton(setting, value); }); + var uploadParamsLogo = { pasteZone: null, dropZone: null, @@ -208,4 +213,16 @@ $(document).ready(function () { preview(setting, response.data.value); }); }); + + $('.theme-remove-bg').click(function() { + startLoading(); + $.post( + OC.generateUrl('/apps/theming/ajax/updateLogo'), {'backgroundColor' : true} + ).done(function(response) { + preview('backgroundMime', 'backgroundColor'); + }).fail(function(response) { + OC.msg.finishedSaving('#theming_settings_msg', response); + }); + }); + }); diff --git a/apps/theming/l10n/cs.js b/apps/theming/l10n/cs.js index 9d5f573e6fa..43484fa6397 100644 --- a/apps/theming/l10n/cs.js +++ b/apps/theming/l10n/cs.js @@ -13,6 +13,7 @@ OC.L10N.register( "Unsupported image type" : "Nepodporovaný typ obrázku", "You are already using a custom theme" : "Již používáte vlastní motiv", "Theming" : "Motivy", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Motivy umožňují jednoduché přizpůsobení vzhledu vaší instance a podporovaných klientů. Uvidí to všichni uživatelé.", "Name" : "Název", "reset to default" : "obnovit výchozí", "Web address" : "Webová adresa", diff --git a/apps/theming/l10n/cs.json b/apps/theming/l10n/cs.json index b4fc64ac37e..963be4b8184 100644 --- a/apps/theming/l10n/cs.json +++ b/apps/theming/l10n/cs.json @@ -11,6 +11,7 @@ "Unsupported image type" : "Nepodporovaný typ obrázku", "You are already using a custom theme" : "Již používáte vlastní motiv", "Theming" : "Motivy", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Motivy umožňují jednoduché přizpůsobení vzhledu vaší instance a podporovaných klientů. Uvidí to všichni uživatelé.", "Name" : "Název", "reset to default" : "obnovit výchozí", "Web address" : "Webová adresa", diff --git a/apps/theming/l10n/el.js b/apps/theming/l10n/el.js index 4bfd9bf3cf7..57f45818b3c 100644 --- a/apps/theming/l10n/el.js +++ b/apps/theming/l10n/el.js @@ -1,6 +1,7 @@ OC.L10N.register( "theming", { + "Loading preview…" : "Φόρτωση προεπισκόπησης ...", "Saved" : "Αποθηκεύτηκαν", "Admin" : "Διαχειριστής", "a safe home for all your data" : "μια ασφαλής τοποθεσία για όλα σας τα δεδομένα", diff --git a/apps/theming/l10n/el.json b/apps/theming/l10n/el.json index 9169c1e4ad3..3fd78ccd8fe 100644 --- a/apps/theming/l10n/el.json +++ b/apps/theming/l10n/el.json @@ -1,4 +1,5 @@ { "translations": { + "Loading preview…" : "Φόρτωση προεπισκόπησης ...", "Saved" : "Αποθηκεύτηκαν", "Admin" : "Διαχειριστής", "a safe home for all your data" : "μια ασφαλής τοποθεσία για όλα σας τα δεδομένα", diff --git a/apps/theming/l10n/en_GB.js b/apps/theming/l10n/en_GB.js new file mode 100644 index 00000000000..ed29a83eca3 --- /dev/null +++ b/apps/theming/l10n/en_GB.js @@ -0,0 +1,29 @@ +OC.L10N.register( + "theming", + { + "Loading preview…" : "Loading preview…", + "Saved" : "Saved", + "Admin" : "Admin", + "a safe home for all your data" : "a safe home for all your data", + "The given name is too long" : "The given name is too long", + "The given web address is too long" : "The given web address is too long", + "The given slogan is too long" : "The given slogan is too long", + "The given color is invalid" : "The given colour is invalid", + "No file uploaded" : "No file uploaded", + "Unsupported image type" : "Unsupported image type", + "You are already using a custom theme" : "You are already using a custom theme", + "Theming" : "Theming", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Theming makes it possible to easily customise the look and feel of your instance and supported clients. This will be visible for all users.", + "Name" : "Name", + "reset to default" : "reset to default", + "Web address" : "Web address", + "Web address https://…" : "Web address https://…", + "Slogan" : "Slogan", + "Color" : "Colour", + "Logo" : "Logo", + "Upload new logo" : "Upload new logo", + "Login image" : "Login image", + "Upload new login background" : "Upload new login background", + "Log in image" : "Log in image" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/theming/l10n/en_GB.json b/apps/theming/l10n/en_GB.json new file mode 100644 index 00000000000..27a4eb827bd --- /dev/null +++ b/apps/theming/l10n/en_GB.json @@ -0,0 +1,27 @@ +{ "translations": { + "Loading preview…" : "Loading preview…", + "Saved" : "Saved", + "Admin" : "Admin", + "a safe home for all your data" : "a safe home for all your data", + "The given name is too long" : "The given name is too long", + "The given web address is too long" : "The given web address is too long", + "The given slogan is too long" : "The given slogan is too long", + "The given color is invalid" : "The given colour is invalid", + "No file uploaded" : "No file uploaded", + "Unsupported image type" : "Unsupported image type", + "You are already using a custom theme" : "You are already using a custom theme", + "Theming" : "Theming", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Theming makes it possible to easily customise the look and feel of your instance and supported clients. This will be visible for all users.", + "Name" : "Name", + "reset to default" : "reset to default", + "Web address" : "Web address", + "Web address https://…" : "Web address https://…", + "Slogan" : "Slogan", + "Color" : "Colour", + "Logo" : "Logo", + "Upload new logo" : "Upload new logo", + "Login image" : "Login image", + "Upload new login background" : "Upload new login background", + "Log in image" : "Log in image" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/theming/l10n/es.js b/apps/theming/l10n/es.js index cb1629de223..0bebcfc70bc 100644 --- a/apps/theming/l10n/es.js +++ b/apps/theming/l10n/es.js @@ -1,6 +1,7 @@ OC.L10N.register( "theming", { + "Loading preview…" : "Cargando previsualización...", "Saved" : "Guardado", "Admin" : "Administración", "a safe home for all your data" : "un hogar seguro para todos tus datos", @@ -12,6 +13,7 @@ OC.L10N.register( "Unsupported image type" : "Tipo de imagen no soportado", "You are already using a custom theme" : "Usted ya usa un tema personalizado", "Theming" : "Tema", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Los temas hacen posible personalizar fácilmente la apariencia de tu instancia y los clientes soportados. Esto será visible para todos los usuarios.", "Name" : "Nombre", "reset to default" : "restaurar a configuración inicial", "Web address" : "Dirección web", diff --git a/apps/theming/l10n/es.json b/apps/theming/l10n/es.json index 4aa3cadcef7..4fac8e86994 100644 --- a/apps/theming/l10n/es.json +++ b/apps/theming/l10n/es.json @@ -1,4 +1,5 @@ { "translations": { + "Loading preview…" : "Cargando previsualización...", "Saved" : "Guardado", "Admin" : "Administración", "a safe home for all your data" : "un hogar seguro para todos tus datos", @@ -10,6 +11,7 @@ "Unsupported image type" : "Tipo de imagen no soportado", "You are already using a custom theme" : "Usted ya usa un tema personalizado", "Theming" : "Tema", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Los temas hacen posible personalizar fácilmente la apariencia de tu instancia y los clientes soportados. Esto será visible para todos los usuarios.", "Name" : "Nombre", "reset to default" : "restaurar a configuración inicial", "Web address" : "Dirección web", diff --git a/apps/theming/l10n/es_MX.js b/apps/theming/l10n/es_MX.js index c5640d03436..95e0e1bccc8 100644 --- a/apps/theming/l10n/es_MX.js +++ b/apps/theming/l10n/es_MX.js @@ -1,6 +1,7 @@ OC.L10N.register( "theming", { + "Loading preview…" : "Cargando vista previa...", "Saved" : "Guardado", "Admin" : "Administración", "a safe home for all your data" : "un lugar seguro para todos sus datos", @@ -12,6 +13,7 @@ OC.L10N.register( "Unsupported image type" : "Tipo de imagen no soportado", "You are already using a custom theme" : "Usted ya se encuentra usando un tema personalizado", "Theming" : "Tematizar", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve su instancia y clientes soportados. Esto será visible para todos los usuarios. ", "Name" : "Nombre", "reset to default" : "restaurar a predeterminado", "Web address" : "Dirección web", diff --git a/apps/theming/l10n/es_MX.json b/apps/theming/l10n/es_MX.json index 12ed64f3f84..1338ac354f1 100644 --- a/apps/theming/l10n/es_MX.json +++ b/apps/theming/l10n/es_MX.json @@ -1,4 +1,5 @@ { "translations": { + "Loading preview…" : "Cargando vista previa...", "Saved" : "Guardado", "Admin" : "Administración", "a safe home for all your data" : "un lugar seguro para todos sus datos", @@ -10,6 +11,7 @@ "Unsupported image type" : "Tipo de imagen no soportado", "You are already using a custom theme" : "Usted ya se encuentra usando un tema personalizado", "Theming" : "Tematizar", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve su instancia y clientes soportados. Esto será visible para todos los usuarios. ", "Name" : "Nombre", "reset to default" : "restaurar a predeterminado", "Web address" : "Dirección web", diff --git a/apps/theming/l10n/id.js b/apps/theming/l10n/id.js new file mode 100644 index 00000000000..fa6086692d6 --- /dev/null +++ b/apps/theming/l10n/id.js @@ -0,0 +1,24 @@ +OC.L10N.register( + "theming", + { + "Loading preview…" : "Memuat pratinjau", + "Saved" : "Disimpan", + "Admin" : "Admin", + "The given name is too long" : "Pemberian nama terlalu panjang", + "The given web address is too long" : "Pemberian alamat web terlalu panjang", + "The given slogan is too long" : "Pemberian slogan terlalu panjang", + "No file uploaded" : "Tidak ada file diunggah", + "Unsupported image type" : "Tipe gambar tidak bisa diterima", + "You are already using a custom theme" : "Anda telah siap menggunakan Tema Kustom", + "Theming" : "Tema", + "Name" : "Nama", + "reset to default" : "Atur ulang ke awal", + "Web address" : "Alamat Web", + "Web address https://…" : "Alamat Web https://...", + "Slogan" : "Slogan", + "Color" : "Warna", + "Logo" : "Logo", + "Upload new logo" : "Unggah Logo baru", + "Login image" : "Gambar ketika masuk" +}, +"nplurals=1; plural=0;"); diff --git a/apps/theming/l10n/id.json b/apps/theming/l10n/id.json new file mode 100644 index 00000000000..65a83d56942 --- /dev/null +++ b/apps/theming/l10n/id.json @@ -0,0 +1,22 @@ +{ "translations": { + "Loading preview…" : "Memuat pratinjau", + "Saved" : "Disimpan", + "Admin" : "Admin", + "The given name is too long" : "Pemberian nama terlalu panjang", + "The given web address is too long" : "Pemberian alamat web terlalu panjang", + "The given slogan is too long" : "Pemberian slogan terlalu panjang", + "No file uploaded" : "Tidak ada file diunggah", + "Unsupported image type" : "Tipe gambar tidak bisa diterima", + "You are already using a custom theme" : "Anda telah siap menggunakan Tema Kustom", + "Theming" : "Tema", + "Name" : "Nama", + "reset to default" : "Atur ulang ke awal", + "Web address" : "Alamat Web", + "Web address https://…" : "Alamat Web https://...", + "Slogan" : "Slogan", + "Color" : "Warna", + "Logo" : "Logo", + "Upload new logo" : "Unggah Logo baru", + "Login image" : "Gambar ketika masuk" +},"pluralForm" :"nplurals=1; plural=0;" +}
\ No newline at end of file diff --git a/apps/theming/l10n/ko.js b/apps/theming/l10n/ko.js new file mode 100644 index 00000000000..6c222b56373 --- /dev/null +++ b/apps/theming/l10n/ko.js @@ -0,0 +1,29 @@ +OC.L10N.register( + "theming", + { + "Loading preview…" : "미리 보기 불러오는 중…", + "Saved" : "저장됨", + "Admin" : "관리자", + "a safe home for all your data" : "내 모든 데이터 안전 저장소", + "The given name is too long" : "입력한 이름이 너무 김", + "The given web address is too long" : "입력한 웹 주소가 너무 김", + "The given slogan is too long" : "입력한 슬로건이 너무 김", + "The given color is invalid" : "입력한 색상이 잘못됨", + "No file uploaded" : "업로드한 파일 없음", + "Unsupported image type" : "지원하지 않는 사진 형식", + "You are already using a custom theme" : "이미 사용자 정의 테마 사용 중", + "Theming" : "테마", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "테마를 사용하여 내 인스턴스와 지원하는 클라이언트의 모습을 변경할 수 있습니다. 테마는 모든 사용자에게 적용됩니다.", + "Name" : "이름", + "reset to default" : "기본값으로 초기화", + "Web address" : "웹 주소", + "Web address https://…" : "웹 주소 https://…", + "Slogan" : "슬로건", + "Color" : "색", + "Logo" : "로고", + "Upload new logo" : "새 로고 업로드", + "Login image" : "로그인 그림", + "Upload new login background" : "새 로그인 배경 업로드", + "Log in image" : "로그인 그림" +}, +"nplurals=1; plural=0;"); diff --git a/apps/theming/l10n/ko.json b/apps/theming/l10n/ko.json new file mode 100644 index 00000000000..74c621d6dcc --- /dev/null +++ b/apps/theming/l10n/ko.json @@ -0,0 +1,27 @@ +{ "translations": { + "Loading preview…" : "미리 보기 불러오는 중…", + "Saved" : "저장됨", + "Admin" : "관리자", + "a safe home for all your data" : "내 모든 데이터 안전 저장소", + "The given name is too long" : "입력한 이름이 너무 김", + "The given web address is too long" : "입력한 웹 주소가 너무 김", + "The given slogan is too long" : "입력한 슬로건이 너무 김", + "The given color is invalid" : "입력한 색상이 잘못됨", + "No file uploaded" : "업로드한 파일 없음", + "Unsupported image type" : "지원하지 않는 사진 형식", + "You are already using a custom theme" : "이미 사용자 정의 테마 사용 중", + "Theming" : "테마", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "테마를 사용하여 내 인스턴스와 지원하는 클라이언트의 모습을 변경할 수 있습니다. 테마는 모든 사용자에게 적용됩니다.", + "Name" : "이름", + "reset to default" : "기본값으로 초기화", + "Web address" : "웹 주소", + "Web address https://…" : "웹 주소 https://…", + "Slogan" : "슬로건", + "Color" : "색", + "Logo" : "로고", + "Upload new logo" : "새 로고 업로드", + "Login image" : "로그인 그림", + "Upload new login background" : "새 로그인 배경 업로드", + "Log in image" : "로그인 그림" +},"pluralForm" :"nplurals=1; plural=0;" +}
\ No newline at end of file diff --git a/apps/theming/l10n/nb.js b/apps/theming/l10n/nb.js index f91176aa79e..eb1791bc07d 100644 --- a/apps/theming/l10n/nb.js +++ b/apps/theming/l10n/nb.js @@ -1,6 +1,7 @@ OC.L10N.register( "theming", { + "Loading preview…" : "Laster forshåndsvisning...", "Saved" : "Lagret", "Admin" : "Admin", "a safe home for all your data" : "et trygt hjem for alle dine data", diff --git a/apps/theming/l10n/nb.json b/apps/theming/l10n/nb.json index 2dfb84f1a15..f8b274f31fd 100644 --- a/apps/theming/l10n/nb.json +++ b/apps/theming/l10n/nb.json @@ -1,4 +1,5 @@ { "translations": { + "Loading preview…" : "Laster forshåndsvisning...", "Saved" : "Lagret", "Admin" : "Admin", "a safe home for all your data" : "et trygt hjem for alle dine data", diff --git a/apps/theming/l10n/nl.js b/apps/theming/l10n/nl.js index b4646d4f993..55db4422623 100644 --- a/apps/theming/l10n/nl.js +++ b/apps/theming/l10n/nl.js @@ -13,6 +13,7 @@ OC.L10N.register( "Unsupported image type" : "Afbeeldingstype wordt niet ondersteund", "You are already using a custom theme" : "Je gebruikt al een maatwerkthema", "Theming" : "Thema's", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Thematiseren maakt het mogelijk om uiterlijk en gevoel van je systeem en ondersteunde clients aan te passen. Dit wordt zichtbaar voor alle gebruikers.", "Name" : "Naam", "reset to default" : "herstellen naar standaard", "Web address" : "Webadres", diff --git a/apps/theming/l10n/nl.json b/apps/theming/l10n/nl.json index 83f500d0d82..7ac43b24ea7 100644 --- a/apps/theming/l10n/nl.json +++ b/apps/theming/l10n/nl.json @@ -11,6 +11,7 @@ "Unsupported image type" : "Afbeeldingstype wordt niet ondersteund", "You are already using a custom theme" : "Je gebruikt al een maatwerkthema", "Theming" : "Thema's", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Thematiseren maakt het mogelijk om uiterlijk en gevoel van je systeem en ondersteunde clients aan te passen. Dit wordt zichtbaar voor alle gebruikers.", "Name" : "Naam", "reset to default" : "herstellen naar standaard", "Web address" : "Webadres", diff --git a/apps/theming/l10n/pl.js b/apps/theming/l10n/pl.js index 9eaa70b2120..85a6708faa9 100644 --- a/apps/theming/l10n/pl.js +++ b/apps/theming/l10n/pl.js @@ -1,6 +1,7 @@ OC.L10N.register( "theming", { + "Loading preview…" : "Ładowanie podglądu...", "Saved" : "Zapisano", "Admin" : "Admin", "a safe home for all your data" : "bezpieczna schowek dla wszystkich twoich danych", @@ -12,6 +13,7 @@ OC.L10N.register( "Unsupported image type" : "Nieobsługiwany typ zdjęcia", "You are already using a custom theme" : "Używasz już motywu niestandarowego", "Theming" : "Motyw", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Motywy pozwalają na łatwą personalizację wyglądu Twojej instancji i wpsieranych klientów. Efekty będą widoczne dla wszystkich użytkowników.", "Name" : "Nazwa", "reset to default" : "przywróć domyślne", "Web address" : "adres internetowy", diff --git a/apps/theming/l10n/pl.json b/apps/theming/l10n/pl.json index b9b05f4a5bd..53fde26ba79 100644 --- a/apps/theming/l10n/pl.json +++ b/apps/theming/l10n/pl.json @@ -1,4 +1,5 @@ { "translations": { + "Loading preview…" : "Ładowanie podglądu...", "Saved" : "Zapisano", "Admin" : "Admin", "a safe home for all your data" : "bezpieczna schowek dla wszystkich twoich danych", @@ -10,6 +11,7 @@ "Unsupported image type" : "Nieobsługiwany typ zdjęcia", "You are already using a custom theme" : "Używasz już motywu niestandarowego", "Theming" : "Motyw", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Motywy pozwalają na łatwą personalizację wyglądu Twojej instancji i wpsieranych klientów. Efekty będą widoczne dla wszystkich użytkowników.", "Name" : "Nazwa", "reset to default" : "przywróć domyślne", "Web address" : "adres internetowy", diff --git a/apps/theming/l10n/pt_BR.js b/apps/theming/l10n/pt_BR.js index 2b56768334b..32091d88542 100644 --- a/apps/theming/l10n/pt_BR.js +++ b/apps/theming/l10n/pt_BR.js @@ -6,7 +6,7 @@ OC.L10N.register( "Admin" : "Administrador", "a safe home for all your data" : "um lugar seguro para seus dados", "The given name is too long" : "O nome é muito longo", - "The given web address is too long" : "O endereço da Web fornecido é muito longo", + "The given web address is too long" : "O endereço web fornecido é muito longo", "The given slogan is too long" : "O slogan dado é muito longo", "The given color is invalid" : "A cor fornecida é inválida", "No file uploaded" : "Nenhum arquivo enviado", @@ -16,8 +16,8 @@ OC.L10N.register( "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Criar e alterar temas torna possível personalizar facilmente o Nextcloud e clientes suportados. Isso será visível a todos os usuários.", "Name" : "Nome", "reset to default" : "restaurar ao padrão", - "Web address" : "Endereço da Web", - "Web address https://…" : "Endereço da Web https://...", + "Web address" : "Endereço web", + "Web address https://…" : "Endereço web https://...", "Slogan" : "Slogan", "Color" : "Cor", "Logo" : "Logotipo", diff --git a/apps/theming/l10n/pt_BR.json b/apps/theming/l10n/pt_BR.json index 4544daa7556..889e609f861 100644 --- a/apps/theming/l10n/pt_BR.json +++ b/apps/theming/l10n/pt_BR.json @@ -4,7 +4,7 @@ "Admin" : "Administrador", "a safe home for all your data" : "um lugar seguro para seus dados", "The given name is too long" : "O nome é muito longo", - "The given web address is too long" : "O endereço da Web fornecido é muito longo", + "The given web address is too long" : "O endereço web fornecido é muito longo", "The given slogan is too long" : "O slogan dado é muito longo", "The given color is invalid" : "A cor fornecida é inválida", "No file uploaded" : "Nenhum arquivo enviado", @@ -14,8 +14,8 @@ "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Criar e alterar temas torna possível personalizar facilmente o Nextcloud e clientes suportados. Isso será visível a todos os usuários.", "Name" : "Nome", "reset to default" : "restaurar ao padrão", - "Web address" : "Endereço da Web", - "Web address https://…" : "Endereço da Web https://...", + "Web address" : "Endereço web", + "Web address https://…" : "Endereço web https://...", "Slogan" : "Slogan", "Color" : "Cor", "Logo" : "Logotipo", diff --git a/apps/theming/l10n/ru.js b/apps/theming/l10n/ru.js index 2169af679f6..c0ea6d47203 100644 --- a/apps/theming/l10n/ru.js +++ b/apps/theming/l10n/ru.js @@ -1,6 +1,7 @@ OC.L10N.register( "theming", { + "Loading preview…" : "Загружается предпросмотр…", "Saved" : "Сохранено", "Admin" : "Администратор", "a safe home for all your data" : "надежный дом для всех ваших данных", @@ -12,6 +13,7 @@ OC.L10N.register( "Unsupported image type" : "Неподдерживаемый тип изображения", "You are already using a custom theme" : "Вы уже используете настраиваемую тему", "Theming" : "Темы оформления", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Темы оформление позволяют легко настроить внешний вид вашего сервера и поддерживаемых клиентов. Это будет доступно для всех пользователей.", "Name" : "Название", "reset to default" : "сброс до настроек по-умолчанию", "Web address" : "Веб адрес", diff --git a/apps/theming/l10n/ru.json b/apps/theming/l10n/ru.json index fe15a6b5670..a054b5e7c14 100644 --- a/apps/theming/l10n/ru.json +++ b/apps/theming/l10n/ru.json @@ -1,4 +1,5 @@ { "translations": { + "Loading preview…" : "Загружается предпросмотр…", "Saved" : "Сохранено", "Admin" : "Администратор", "a safe home for all your data" : "надежный дом для всех ваших данных", @@ -10,6 +11,7 @@ "Unsupported image type" : "Неподдерживаемый тип изображения", "You are already using a custom theme" : "Вы уже используете настраиваемую тему", "Theming" : "Темы оформления", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Темы оформление позволяют легко настроить внешний вид вашего сервера и поддерживаемых клиентов. Это будет доступно для всех пользователей.", "Name" : "Название", "reset to default" : "сброс до настроек по-умолчанию", "Web address" : "Веб адрес", diff --git a/apps/theming/lib/Controller/ThemingController.php b/apps/theming/lib/Controller/ThemingController.php index cffc628e9b9..225673079a3 100644 --- a/apps/theming/lib/Controller/ThemingController.php +++ b/apps/theming/lib/Controller/ThemingController.php @@ -40,6 +40,7 @@ use OCP\AppFramework\Utility\ITimeFactory; use OCP\Files\File; use OCP\Files\IAppData; use OCP\Files\NotFoundException; +use OCP\Files\NotPermittedException; use OCP\IConfig; use OCP\IL10N; use OCP\ILogger; @@ -184,6 +185,20 @@ class ThemingController extends Controller { * @return DataResponse */ public function updateLogo() { + $backgroundColor = $this->request->getParam('backgroundColor', false); + if($backgroundColor) { + $this->themingDefaults->set('backgroundMime', 'backgroundColor'); + return new DataResponse( + [ + 'data' => + [ + 'name' => 'backgroundColor', + 'message' => $this->l10n->t('Saved') + ], + 'status' => 'success' + ] + ); + } $newLogo = $this->request->getUploadedFile('uploadlogo'); $newBackgroundLogo = $this->request->getUploadedFile('upload-login-background'); if (empty($newLogo) && empty($newBackgroundLogo)) { @@ -265,6 +280,24 @@ class ThemingController extends Controller { $value = $this->themingDefaults->undo($setting); // reprocess server scss for preview $cssCached = $this->scssCacher->process(\OC::$SERVERROOT, '/core/css/server.scss', 'core'); + + if($setting === 'logoMime') { + try { + $file = $this->appData->getFolder('images')->getFile('logo'); + $file->delete(); + } catch (NotFoundException $e) { + } catch (NotPermittedException $e) { + } + } + if($setting === 'backgroundMime') { + try { + $file = $this->appData->getFolder('images')->getFile('background'); + $file->delete(); + } catch (NotFoundException $e) { + } catch (NotPermittedException $e) { + } + } + return new DataResponse( [ 'data' => diff --git a/apps/theming/lib/ThemingDefaults.php b/apps/theming/lib/ThemingDefaults.php index 2935355f26d..0824a36ccdc 100644 --- a/apps/theming/lib/ThemingDefaults.php +++ b/apps/theming/lib/ThemingDefaults.php @@ -129,9 +129,10 @@ class ThemingDefaults extends \OC_Defaults { /** * Themed logo url * + * @param bool $useSvg Whether to point to the SVG image or a fallback * @return string */ - public function getLogo() { + public function getLogo($useSvg = true) { $logo = $this->config->getAppValue('theming', 'logoMime', false); $logoExists = true; @@ -144,7 +145,12 @@ class ThemingDefaults extends \OC_Defaults { $cacheBusterCounter = $this->config->getAppValue('theming', 'cachebuster', '0'); if(!$logo || !$logoExists) { - return $this->urlGenerator->imagePath('core','logo.svg') . '?v=' . $cacheBusterCounter; + if($useSvg) { + $logo = $this->urlGenerator->imagePath('core', 'logo.svg'); + } else { + $logo = $this->urlGenerator->imagePath('core', 'logo.png'); + } + return $logo . '?v=' . $cacheBusterCounter; } return $this->urlGenerator->linkToRoute('theming.Theming.getLogo') . '?v=' . $cacheBusterCounter; @@ -165,11 +171,13 @@ class ThemingDefaults extends \OC_Defaults { $backgroundExists = false; } + $cacheBusterCounter = $this->config->getAppValue('theming', 'cachebuster', '0'); + if(!$backgroundLogo || !$backgroundExists) { - return $this->urlGenerator->imagePath('core','background.jpg'); + return $this->urlGenerator->imagePath('core','background.jpg') . '?v=' . $cacheBusterCounter; } - return $this->urlGenerator->linkToRoute('theming.Theming.getLoginBackground'); + return $this->urlGenerator->linkToRoute('theming.Theming.getLoginBackground') . '?v=' . $cacheBusterCounter; } @@ -188,6 +196,7 @@ class ThemingDefaults extends \OC_Defaults { $variables['image-logo'] = "'".$this->urlGenerator->getAbsoluteURL($this->getLogo())."'"; $variables['image-login-background'] = "'".$this->urlGenerator->getAbsoluteURL($this->getBackground())."'"; + $variables['image-login-plain'] = 'false'; if ($this->config->getAppValue('theming', 'color', null) !== null) { if ($this->util->invertTextColor($this->getColorPrimary())) { @@ -198,6 +207,10 @@ class ThemingDefaults extends \OC_Defaults { $variables['color-primary'] = $this->getColorPrimary(); $variables['color-primary-text'] = $colorPrimaryText; } + + if ($this->config->getAppValue('theming', 'backgroundMime', null) === 'backgroundColor') { + $variables['image-login-plain'] = 'true'; + } $cache->set('getScssVariables', $variables); return $variables; } diff --git a/apps/theming/templates/settings-admin.php b/apps/theming/templates/settings-admin.php index 858329eca48..858b916c932 100644 --- a/apps/theming/templates/settings-admin.php +++ b/apps/theming/templates/settings-admin.php @@ -67,7 +67,7 @@ style('theming', 'settings-admin'); </label> </div> <div> - <form class="uploadButton inlineblock" method="post" action="<?php p($_['uploadLogoRoute']) ?>"> + <form class="uploadButton" method="post" action="<?php p($_['uploadLogoRoute']) ?>"> <input type="hidden" id="current-logoMime" name="current-logoMime" value="<?php p($_['logoMime']); ?>" /> <label for="uploadlogo"><span><?php p($l->t('Logo')) ?></span></label> <input id="uploadlogo" class="upload-logo-field" name="uploadlogo" type="file" /> @@ -76,16 +76,16 @@ style('theming', 'settings-admin'); </form> </div> <div> - <form class="uploadButton inlineblock" method="post" action="<?php p($_['uploadLogoRoute']) ?>"> + <form class="uploadButton" method="post" action="<?php p($_['uploadLogoRoute']) ?>"> <input type="hidden" id="current-backgroundMime" name="current-backgroundMime" value="<?php p($_['backgroundMime']); ?>" /> <label for="upload-login-background"><span><?php p($l->t('Login image')) ?></span></label> <input id="upload-login-background" class="upload-logo-field" name="upload-login-background" type="file"> <label for="upload-login-background" class="button icon-upload svg" id="upload-login-background" title="<?php p($l->t("Upload new login background")) ?>"></label> <div data-setting="backgroundMime" data-toggle="tooltip" data-original-title="<?php p($l->t('reset to default')); ?>" class="theme-undo icon icon-history"></div> + <div class="theme-remove-bg icon icon-delete" data-toggle="tooltip" data-original-title="<?php p($l->t('Remove background image')); ?>"></div> </form> </div> - - <div id="theming-preview" style="background-color:<?php p($_['color']);?>; background-image:url(<?php p($_['background']); ?>);"> + <div id="theming-preview"> <img src="<?php p($_['logo']); ?>" id="theming-preview-logo" /> </div> <?php } ?> diff --git a/apps/theming/tests/Controller/ThemingControllerTest.php b/apps/theming/tests/Controller/ThemingControllerTest.php index 0aa9ead3742..cbdb86d0358 100644 --- a/apps/theming/tests/Controller/ThemingControllerTest.php +++ b/apps/theming/tests/Controller/ThemingControllerTest.php @@ -152,11 +152,16 @@ class ThemingControllerTest extends TestCase { public function testUpdateLogoNoData() { $this->request ->expects($this->at(0)) + ->method('getParam') + ->with('backgroundColor') + ->willReturn(false); + $this->request + ->expects($this->at(1)) ->method('getUploadedFile') ->with('uploadlogo') ->willReturn(null); $this->request - ->expects($this->at(1)) + ->expects($this->at(2)) ->method('getUploadedFile') ->with('upload-login-background') ->willReturn(null); @@ -179,6 +184,29 @@ class ThemingControllerTest extends TestCase { $this->assertEquals($expected, $this->themingController->updateLogo()); } + public function testUpdateBackgroundColor() { + $this->request + ->expects($this->at(0)) + ->method('getParam') + ->with('backgroundColor') + ->willReturn(true); + $this->themingDefaults + ->expects($this->once()) + ->method('set') + ->with('backgroundMime', 'backgroundColor'); + $expected = new DataResponse( + [ + 'data' => + [ + 'name' => 'backgroundColor', + 'message' => $this->l10n->t('Saved') + ], + 'status' => 'success' + ] + ); + $this->assertEquals($expected, $this->themingController->updateLogo()); + } + public function dataUpdateImages() { return [ [false], @@ -194,6 +222,11 @@ class ThemingControllerTest extends TestCase { touch($tmpLogo); $this->request ->expects($this->at(0)) + ->method('getParam') + ->with('backgroundColor') + ->willReturn(false); + $this->request + ->expects($this->at(1)) ->method('getUploadedFile') ->with('uploadlogo') ->willReturn([ @@ -202,7 +235,7 @@ class ThemingControllerTest extends TestCase { 'name' => 'logo.svg', ]); $this->request - ->expects($this->at(1)) + ->expects($this->at(2)) ->method('getUploadedFile') ->with('upload-login-background') ->willReturn(null); @@ -259,11 +292,16 @@ class ThemingControllerTest extends TestCase { file_put_contents($tmpLogo, file_get_contents(__DIR__ . '/../../../../tests/data/desktopapp.png')); $this->request ->expects($this->at(0)) + ->method('getParam') + ->with('backgroundColor') + ->willReturn(false); + $this->request + ->expects($this->at(1)) ->method('getUploadedFile') ->with('uploadlogo') ->willReturn(null); $this->request - ->expects($this->at(1)) + ->expects($this->at(2)) ->method('getUploadedFile') ->with('upload-login-background') ->willReturn([ @@ -322,11 +360,16 @@ class ThemingControllerTest extends TestCase { file_put_contents($tmpLogo, file_get_contents(__DIR__ . '/../../../../tests/data/data.zip')); $this->request ->expects($this->at(0)) + ->method('getParam') + ->with('backgroundColor') + ->willReturn(false); + $this->request + ->expects($this->at(1)) ->method('getUploadedFile') ->with('uploadlogo') ->willReturn(null); $this->request - ->expects($this->at(1)) + ->expects($this->at(2)) ->method('getUploadedFile') ->with('upload-login-background') ->willReturn([ @@ -385,6 +428,56 @@ class ThemingControllerTest extends TestCase { $this->assertEquals($expected, $this->themingController->undo('MySetting')); } + public function dataUndoDelete() { + return [ + [ 'backgroundMime', 'background' ], + [ 'logoMime', 'logo' ] + ]; + } + + /** @dataProvider dataUndoDelete */ + public function testUndoDelete($value, $filename) { + $this->l10n + ->expects($this->once()) + ->method('t') + ->with('Saved') + ->willReturn('Saved'); + $this->themingDefaults + ->expects($this->once()) + ->method('undo') + ->with($value) + ->willReturn($value); + $folder = $this->createMock(ISimpleFolder::class); + $file = $this->createMock(ISimpleFile::class); + $this->appData + ->expects($this->once()) + ->method('getFolder') + ->with('images') + ->willReturn($folder); + $folder + ->expects($this->once()) + ->method('getFile') + ->with($filename) + ->willReturn($file); + $file + ->expects($this->once()) + ->method('delete'); + + $expected = new DataResponse( + [ + 'data' => + [ + 'value' => $value, + 'message' => 'Saved', + ], + 'status' => 'success' + ] + ); + $this->assertEquals($expected, $this->themingController->undo($value)); + } + + + public function testGetLogoNotExistent() { $this->appData->method('getFolder') ->with($this->equalTo('images')) diff --git a/apps/theming/tests/ThemingDefaultsTest.php b/apps/theming/tests/ThemingDefaultsTest.php index 736eeb3afc3..a7cb7790aa6 100644 --- a/apps/theming/tests/ThemingDefaultsTest.php +++ b/apps/theming/tests/ThemingDefaultsTest.php @@ -384,10 +384,15 @@ class ThemingDefaultsTest extends TestCase { ->method('getFolder') ->willThrowException(new NotFoundException()); $this->config - ->expects($this->once()) + ->expects($this->at(0)) ->method('getAppValue') ->with('theming', 'backgroundMime') ->willReturn(''); + $this->config + ->expects($this->at(1)) + ->method('getAppValue') + ->with('theming', 'cachebuster', '0') + ->willReturn('0'); $this->appData ->expects($this->once()) ->method('getFolder') @@ -397,7 +402,7 @@ class ThemingDefaultsTest extends TestCase { ->method('imagePath') ->with('core', 'background.jpg') ->willReturn('core-background'); - $this->assertEquals('core-background', $this->template->getBackground()); + $this->assertEquals('core-background?v=0', $this->template->getBackground()); } public function testGetBackgroundCustom() { @@ -410,18 +415,23 @@ class ThemingDefaultsTest extends TestCase { ->method('getFolder') ->willReturn($folder); $this->config - ->expects($this->once()) + ->expects($this->at(0)) ->method('getAppValue') ->with('theming', 'backgroundMime', false) ->willReturn('image/svg+xml'); + $this->config + ->expects($this->at(1)) + ->method('getAppValue') + ->with('theming', 'cachebuster', '0') + ->willReturn('0'); $this->urlGenerator->expects($this->once()) ->method('linkToRoute') ->with('theming.Theming.getLoginBackground') ->willReturn('custom-background'); - $this->assertEquals('custom-background', $this->template->getBackground()); + $this->assertEquals('custom-background?v=0', $this->template->getBackground()); } - public function testGetLogoDefault() { + private function getLogoHelper($withName, $useSvg) { $this->appData->expects($this->once()) ->method('getFolder') ->willThrowException(new NotFoundException()); @@ -442,9 +452,17 @@ class ThemingDefaultsTest extends TestCase { ->willThrowException(new \Exception()); $this->urlGenerator->expects($this->once()) ->method('imagePath') - ->with('core', 'logo.svg') + ->with('core', $withName) ->willReturn('core-logo'); - $this->assertEquals('core-logo' . '?v=0', $this->template->getLogo()); + $this->assertEquals('core-logo?v=0', $this->template->getLogo($useSvg)); + } + + public function testGetLogoDefaultWithSvg() { + $this->getLogoHelper('logo.svg', true); + } + + public function testGetLogoDefaultWithoutSvg() { + $this->getLogoHelper('logo.png', false); } public function testGetLogoCustom() { @@ -483,9 +501,10 @@ class ThemingDefaultsTest extends TestCase { $this->config->expects($this->at(1))->method('getAppValue')->with('theming', 'logoMime', false)->willReturn('jpeg'); $this->config->expects($this->at(2))->method('getAppValue')->with('theming', 'cachebuster', '0')->willReturn('0'); $this->config->expects($this->at(3))->method('getAppValue')->with('theming', 'backgroundMime', false)->willReturn('jpeg'); - $this->config->expects($this->at(4))->method('getAppValue')->with('theming', 'color', null)->willReturn($this->defaults->getColorPrimary()); - $this->config->expects($this->at(5))->method('getAppValue')->with('theming', 'color', $this->defaults->getColorPrimary())->willReturn($this->defaults->getColorPrimary()); + $this->config->expects($this->at(4))->method('getAppValue')->with('theming', 'cachebuster', '0')->willReturn('0'); + $this->config->expects($this->at(5))->method('getAppValue')->with('theming', 'color', null)->willReturn($this->defaults->getColorPrimary()); $this->config->expects($this->at(6))->method('getAppValue')->with('theming', 'color', $this->defaults->getColorPrimary())->willReturn($this->defaults->getColorPrimary()); + $this->config->expects($this->at(7))->method('getAppValue')->with('theming', 'color', $this->defaults->getColorPrimary())->willReturn($this->defaults->getColorPrimary()); $this->util->expects($this->any())->method('invertTextColor')->with($this->defaults->getColorPrimary())->willReturn(false); $this->cache->expects($this->once())->method('get')->with('getScssVariables')->willReturn(null); @@ -512,9 +531,10 @@ class ThemingDefaultsTest extends TestCase { $expected = [ 'theming-cachebuster' => '\'0\'', 'image-logo' => "'absolute-custom-logo?v=0'", - 'image-login-background' => "'absolute-custom-background'", + 'image-login-background' => "'absolute-custom-background?v=0'", 'color-primary' => $this->defaults->getColorPrimary(), - 'color-primary-text' => '#ffffff' + 'color-primary-text' => '#ffffff', + 'image-login-plain' => 'false' ]; $this->assertEquals($expected, $this->template->getScssVariables()); diff --git a/apps/twofactor_backupcodes/l10n/ko.js b/apps/twofactor_backupcodes/l10n/ko.js index 53ea6f37f20..06f4c9b76e0 100644 --- a/apps/twofactor_backupcodes/l10n/ko.js +++ b/apps/twofactor_backupcodes/l10n/ko.js @@ -3,15 +3,19 @@ OC.L10N.register( { "Generate backup codes" : "백업 코드 생성", "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "백업 코드가 생성되었습니다. {{total}}개 중 {{used}}개의 코드가 사용되었습니다.", - "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "이것은 백업 코드입니다. 이 코드는 나중에 다시 확인할 수 없으므로 저장하거나 인쇄하십시오.", + "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "다음은 백업 코드입니다. 이 코드는 나중에 다시 확인할 수 없으므로 저장하거나 인쇄하십시오.", "Save backup codes" : "백업 코드 저장", "Print backup codes" : "백업 코드 인쇄", "Regenerate backup codes" : "백업 코드 다시 생성", "If you regenerate backup codes, you automatically invalidate old codes." : "백업 코드를 다시 생성하면 이전 코드는 자동으로 무효화 됩니다.", "An error occurred while generating your backup codes" : "백업 코드를 생성하는 중 오류가 발생했습니다.", "Nextcloud backup codes" : "Nextcloud 백업 코드", + "Two-factor authentication" : "2단계 인증", + "You successfully logged in using two-factor authentication (%1$s)" : "2단계 인증으로 로그인함(%1$s)", + "A login attempt using two-factor authentication failed (%1$s)" : "2단계 인증 시도가 실패함(%1$s)", + "You created two-factor backup codes for your account" : "내 계정의 2단계 인증 백업 코드를 생성함", "Backup code" : "백업 코드", "Use backup code" : "백업 코드 사용", - "Second-factor backup codes" : "이중 인증 백업 코드" + "Second-factor backup codes" : "2단계 인증 백업 코드" }, "nplurals=1; plural=0;"); diff --git a/apps/twofactor_backupcodes/l10n/ko.json b/apps/twofactor_backupcodes/l10n/ko.json index cce8a5ac0b8..b2817272e4d 100644 --- a/apps/twofactor_backupcodes/l10n/ko.json +++ b/apps/twofactor_backupcodes/l10n/ko.json @@ -1,15 +1,19 @@ { "translations": { "Generate backup codes" : "백업 코드 생성", "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "백업 코드가 생성되었습니다. {{total}}개 중 {{used}}개의 코드가 사용되었습니다.", - "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "이것은 백업 코드입니다. 이 코드는 나중에 다시 확인할 수 없으므로 저장하거나 인쇄하십시오.", + "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "다음은 백업 코드입니다. 이 코드는 나중에 다시 확인할 수 없으므로 저장하거나 인쇄하십시오.", "Save backup codes" : "백업 코드 저장", "Print backup codes" : "백업 코드 인쇄", "Regenerate backup codes" : "백업 코드 다시 생성", "If you regenerate backup codes, you automatically invalidate old codes." : "백업 코드를 다시 생성하면 이전 코드는 자동으로 무효화 됩니다.", "An error occurred while generating your backup codes" : "백업 코드를 생성하는 중 오류가 발생했습니다.", "Nextcloud backup codes" : "Nextcloud 백업 코드", + "Two-factor authentication" : "2단계 인증", + "You successfully logged in using two-factor authentication (%1$s)" : "2단계 인증으로 로그인함(%1$s)", + "A login attempt using two-factor authentication failed (%1$s)" : "2단계 인증 시도가 실패함(%1$s)", + "You created two-factor backup codes for your account" : "내 계정의 2단계 인증 백업 코드를 생성함", "Backup code" : "백업 코드", "Use backup code" : "백업 코드 사용", - "Second-factor backup codes" : "이중 인증 백업 코드" + "Second-factor backup codes" : "2단계 인증 백업 코드" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/twofactor_backupcodes/lib/Provider/BackupCodesProvider.php b/apps/twofactor_backupcodes/lib/Provider/BackupCodesProvider.php index 902f7c783d5..5c5500862e6 100644 --- a/apps/twofactor_backupcodes/lib/Provider/BackupCodesProvider.php +++ b/apps/twofactor_backupcodes/lib/Provider/BackupCodesProvider.php @@ -22,6 +22,7 @@ namespace OCA\TwoFactorBackupCodes\Provider; +use OC\App\AppManager; use OCA\TwoFactorBackupCodes\Service\BackupCodeStorage; use OCP\Authentication\TwoFactorAuth\IProvider; use OCP\IL10N; @@ -30,15 +31,29 @@ use OCP\Template; class BackupCodesProvider implements IProvider { + /** @var string */ + private $appName; + /** @var BackupCodeStorage */ private $storage; /** @var IL10N */ private $l10n; - public function __construct(BackupCodeStorage $storage, IL10N $l10n) { + /** @var AppManager */ + private $appManager; + + /** + * @param string $appName + * @param BackupCodeStorage $storage + * @param IL10N $l10n + * @param AppManager $appManager + */ + public function __construct($appName, BackupCodeStorage $storage, IL10N $l10n, AppManager $appManager) { + $this->appName = $appName; $this->l10n = $l10n; $this->storage = $storage; + $this->appManager = $appManager; } /** @@ -99,4 +114,28 @@ class BackupCodesProvider implements IProvider { return $this->storage->hasBackupCodes($user); } + /** + * Determine whether backup codes should be active or not + * + * Backup codes only make sense if at least one 2FA provider is active, + * hence this method checks all enabled apps on whether they provide 2FA + * functionality or not. If there's at least one app, backup codes are + * enabled on the personal settings page. + * + * @param IUser $user + * @return boolean + */ + public function isActive(IUser $user) { + $appIds = array_filter($this->appManager->getEnabledAppsForUser($user), function($appId) { + return $appId !== $this->appName; + }); + foreach ($appIds as $appId) { + $info = $this->appManager->getAppInfo($appId); + if (isset($info['two-factor-providers']) && count($info['two-factor-providers']) > 0) { + return true; + } + } + return false; + } + } diff --git a/apps/twofactor_backupcodes/settings/personal.php b/apps/twofactor_backupcodes/settings/personal.php index 0a018c0ff28..48c84a3355e 100644 --- a/apps/twofactor_backupcodes/settings/personal.php +++ b/apps/twofactor_backupcodes/settings/personal.php @@ -1,6 +1,19 @@ <?php + +use OCA\TwoFactorBackupCodes\Provider\BackupCodesProvider; +use OCP\Template; + // @codeCoverageIgnoreStart -$tmpl = new \OCP\Template('twofactor_backupcodes', 'personal'); -return $tmpl->fetchPage(); +/* @var $provider BackupCodesProvider */ +$provider = OC::$server->query(BackupCodesProvider::class); +$user = OC::$server->getUserSession()->getUser(); + +if ($provider->isActive($user)) { + $tmpl = new Template('twofactor_backupcodes', 'personal'); + return $tmpl->fetchPage(); +} else { + return ""; +} + // @codeCoverageIgnoreEnd diff --git a/apps/twofactor_backupcodes/tests/Unit/Provider/BackupCodesProviderTest.php b/apps/twofactor_backupcodes/tests/Unit/Provider/BackupCodesProviderTest.php index 5a99cfadd41..cec5b7b2160 100644 --- a/apps/twofactor_backupcodes/tests/Unit/Provider/BackupCodesProviderTest.php +++ b/apps/twofactor_backupcodes/tests/Unit/Provider/BackupCodesProviderTest.php @@ -22,32 +22,41 @@ namespace OCA\TwoFactorBackupCodes\Tests\Unit\Provider; +use OC\App\AppManager; use OCA\TwoFactorBackupCodes\Provider\BackupCodesProvider; use OCA\TwoFactorBackupCodes\Service\BackupCodeStorage; use OCP\IL10N; use OCP\IUser; use OCP\Template; +use PHPUnit_Framework_MockObject_MockObject; use Test\TestCase; class BackupCodesProviderTest extends TestCase { + /** @var string */ + private $appName; + /** @var BackupCodeStorage|PHPUnit_Framework_MockObject_MockObject */ private $storage; /** @var IL10N|PHPUnit_Framework_MockObject_MockObject */ private $l10n; + /** @var AppManager|PHPUnit_Framework_MockObject_MockObject */ + private $appManager; + /** @var BackupCodesProvider */ private $provider; protected function setUp() { parent::setUp(); - $this->storage = $this->getMockBuilder(BackupCodeStorage::class) - ->disableOriginalConstructor() - ->getMock(); - $this->l10n = $this->getMockBuilder(IL10N::class)->getMock(); - $this->provider = new BackupCodesProvider($this->storage, $this->l10n); + $this->appName = "twofactor_backupcodes"; + $this->storage = $this->createMock(BackupCodeStorage::class); + $this->l10n = $this->createMock(IL10N::class); + $this->appManager = $this->createMock(AppManager::class); + + $this->provider = new BackupCodesProvider($this->appName, $this->storage, $this->l10n, $this->appManager); } public function testGetId() { @@ -100,4 +109,46 @@ class BackupCodesProviderTest extends TestCase { $this->assertTrue($this->provider->isTwoFactorAuthEnabledForUser($user)); } + public function testIsActiveNoProviders() { + $user = $this->getMockBuilder(IUser::class)->getMock(); + + $this->appManager->expects($this->once()) + ->method('getEnabledAppsForUser') + ->with($user) + ->willReturn([ + 'twofactor_backupcodes', + 'mail', + ]); + $this->appManager->expects($this->once()) + ->method('getAppInfo') + ->with('mail') + ->willReturn([ + 'two-factor-providers' => [], + ]); + + $this->assertFalse($this->provider->isActive($user)); + } + + public function testIsActiveWithProviders() { + $user = $this->getMockBuilder(IUser::class)->getMock(); + + $this->appManager->expects($this->once()) + ->method('getEnabledAppsForUser') + ->with($user) + ->willReturn([ + 'twofactor_backupcodes', + 'twofactor_u2f', + ]); + $this->appManager->expects($this->once()) + ->method('getAppInfo') + ->with('twofactor_u2f') + ->willReturn([ + 'two-factor-providers' => [ + 'OCA\TwoFactorU2F\Provider\U2FProvider', + ], + ]); + + $this->assertTrue($this->provider->isActive($user)); + } + } diff --git a/apps/updatenotification/l10n/ca.js b/apps/updatenotification/l10n/ca.js index 920f2d68321..20a1fb22fe6 100644 --- a/apps/updatenotification/l10n/ca.js +++ b/apps/updatenotification/l10n/ca.js @@ -2,16 +2,24 @@ OC.L10N.register( "updatenotification", { "Update notifications" : "Notificacions d'actualització", + "Could not start updater, please try the manual update" : "No s'ha pogut iniciar actualitzador, provi l'actualització manual", "{version} is available. Get more information on how to update." : "Hi ha disponible la versió {version}. Obtingueu més informació sobre com actualitzar.", - "Updated channel" : "Canal actualitzat", + "Channel updated" : "Canal actualitzat", + "The update server could not be reached since %d days to check for new updates." : "El servidor d'actualització no es va poder arribar des %d dies per comprovar si hi ha noves actualitzacions.", + "Please check the Nextcloud and server log files for errors." : "Si us plau, comproveu els fitxers de log del servidor i de Nextcloud per detectar errors.", + "Update to %1$s is available." : "Actualització per %1$s està disponible.", "Update for %1$s to version %2$s is available." : "L'actualització per %1$s a la versió %2$s està disponible.", - "Updater" : "Actualitzador", + "Update for {app} to version %s is available." : "Actualització per {app} a la versió %s està disponible.", "A new version is available: %s" : "Una nova versió està disponible: %s", "Open updater" : "Obrir actualitzador", + "Download now" : "Descarrega ara", "Your version is up to date." : "La teva versió està actualitzada.", "Checked on %s" : "Comprovat en %s", "Update channel:" : "Actualitzar canal:", "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Sempre podràs actualitzar a una versió més recent / canal experimental. Però mai es pot fer un \"downgrade\" a un canal més estable.", - "Notify members of the following groups about available updates:" : "Notificar als membres dels següents grups sobre les actualitzacions disponibles:" + "Notify members of the following groups about available updates:" : "Notificar als membres dels següents grups sobre les actualitzacions disponibles:", + "Only notification for app updates are available." : "Només notificació d'actualitzacions d'apps estan disponibles.", + "The selected update channel makes dedicated notifications for the server obsolete." : "El canal d'actualització seleccionat deixa obsoletes les notificacions específiques del servidor.", + "The selected update channel does not support updates of the server." : "El canal d'actualització seleccionat no admet actualitzacions del servidor." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/updatenotification/l10n/ca.json b/apps/updatenotification/l10n/ca.json index 600e1292de3..ec4ccf23b5e 100644 --- a/apps/updatenotification/l10n/ca.json +++ b/apps/updatenotification/l10n/ca.json @@ -1,15 +1,23 @@ { "translations": { "Update notifications" : "Notificacions d'actualització", + "Could not start updater, please try the manual update" : "No s'ha pogut iniciar actualitzador, provi l'actualització manual", "{version} is available. Get more information on how to update." : "Hi ha disponible la versió {version}. Obtingueu més informació sobre com actualitzar.", - "Updated channel" : "Canal actualitzat", + "Channel updated" : "Canal actualitzat", + "The update server could not be reached since %d days to check for new updates." : "El servidor d'actualització no es va poder arribar des %d dies per comprovar si hi ha noves actualitzacions.", + "Please check the Nextcloud and server log files for errors." : "Si us plau, comproveu els fitxers de log del servidor i de Nextcloud per detectar errors.", + "Update to %1$s is available." : "Actualització per %1$s està disponible.", "Update for %1$s to version %2$s is available." : "L'actualització per %1$s a la versió %2$s està disponible.", - "Updater" : "Actualitzador", + "Update for {app} to version %s is available." : "Actualització per {app} a la versió %s està disponible.", "A new version is available: %s" : "Una nova versió està disponible: %s", "Open updater" : "Obrir actualitzador", + "Download now" : "Descarrega ara", "Your version is up to date." : "La teva versió està actualitzada.", "Checked on %s" : "Comprovat en %s", "Update channel:" : "Actualitzar canal:", "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Sempre podràs actualitzar a una versió més recent / canal experimental. Però mai es pot fer un \"downgrade\" a un canal més estable.", - "Notify members of the following groups about available updates:" : "Notificar als membres dels següents grups sobre les actualitzacions disponibles:" + "Notify members of the following groups about available updates:" : "Notificar als membres dels següents grups sobre les actualitzacions disponibles:", + "Only notification for app updates are available." : "Només notificació d'actualitzacions d'apps estan disponibles.", + "The selected update channel makes dedicated notifications for the server obsolete." : "El canal d'actualització seleccionat deixa obsoletes les notificacions específiques del servidor.", + "The selected update channel does not support updates of the server." : "El canal d'actualització seleccionat no admet actualitzacions del servidor." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/updatenotification/l10n/en_GB.js b/apps/updatenotification/l10n/en_GB.js index b26672b438e..cd32df87ae2 100644 --- a/apps/updatenotification/l10n/en_GB.js +++ b/apps/updatenotification/l10n/en_GB.js @@ -2,10 +2,17 @@ OC.L10N.register( "updatenotification", { "Update notifications" : "Update notifications", + "Could not start updater, please try the manual update" : "Could not start updater, please try the manual update", "{version} is available. Get more information on how to update." : "{version} is available. Get more information on how to update.", - "Nextcloud core" : "Nextcloud core", + "Channel updated" : "Channel updated", + "The update server could not be reached since %d days to check for new updates." : "The update server could not be reached since %d days to check for new updates.", + "Please check the Nextcloud and server log files for errors." : "Please check the Nextcloud and server log files for errors.", + "Update to %1$s is available." : "Update to %1$s is available.", "Update for %1$s to version %2$s is available." : "Update for %1$s to version %2$s is available.", + "Update for {app} to version %s is available." : "Update for {app} to version %s is available.", "A new version is available: %s" : "A new version is available: %s", + "Open updater" : "Open updater", + "Download now" : "Download now", "Your version is up to date." : "Your version is up to date.", "Checked on %s" : "Checked on %s", "Update channel:" : "Update channel:", @@ -13,7 +20,6 @@ OC.L10N.register( "Notify members of the following groups about available updates:" : "Notify members of the following groups about available updates:", "Only notification for app updates are available." : "Only notification for app updates are available.", "The selected update channel makes dedicated notifications for the server obsolete." : "The selected update channel makes dedicated notifications for the server obsolete.", - "The selected update channel does not support updates of the server." : "The selected update channel does not support updates of the server.", - "Updater" : "Updater" + "The selected update channel does not support updates of the server." : "The selected update channel does not support updates of the server." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/updatenotification/l10n/en_GB.json b/apps/updatenotification/l10n/en_GB.json index 830650fcce3..f8c435efdb7 100644 --- a/apps/updatenotification/l10n/en_GB.json +++ b/apps/updatenotification/l10n/en_GB.json @@ -1,9 +1,16 @@ { "translations": { "Update notifications" : "Update notifications", + "Could not start updater, please try the manual update" : "Could not start updater, please try the manual update", "{version} is available. Get more information on how to update." : "{version} is available. Get more information on how to update.", - "Nextcloud core" : "Nextcloud core", + "Channel updated" : "Channel updated", + "The update server could not be reached since %d days to check for new updates." : "The update server could not be reached since %d days to check for new updates.", + "Please check the Nextcloud and server log files for errors." : "Please check the Nextcloud and server log files for errors.", + "Update to %1$s is available." : "Update to %1$s is available.", "Update for %1$s to version %2$s is available." : "Update for %1$s to version %2$s is available.", + "Update for {app} to version %s is available." : "Update for {app} to version %s is available.", "A new version is available: %s" : "A new version is available: %s", + "Open updater" : "Open updater", + "Download now" : "Download now", "Your version is up to date." : "Your version is up to date.", "Checked on %s" : "Checked on %s", "Update channel:" : "Update channel:", @@ -11,7 +18,6 @@ "Notify members of the following groups about available updates:" : "Notify members of the following groups about available updates:", "Only notification for app updates are available." : "Only notification for app updates are available.", "The selected update channel makes dedicated notifications for the server obsolete." : "The selected update channel makes dedicated notifications for the server obsolete.", - "The selected update channel does not support updates of the server." : "The selected update channel does not support updates of the server.", - "Updater" : "Updater" + "The selected update channel does not support updates of the server." : "The selected update channel does not support updates of the server." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/updatenotification/l10n/ja.js b/apps/updatenotification/l10n/ja.js index 02a009292f8..289eebe861e 100644 --- a/apps/updatenotification/l10n/ja.js +++ b/apps/updatenotification/l10n/ja.js @@ -6,6 +6,7 @@ OC.L10N.register( "{version} is available. Get more information on how to update." : "{version} が利用可能です。アップデート方法について詳細情報を確認してください。", "Channel updated" : "チャンネルが更新されました", "The update server could not be reached since %d days to check for new updates." : "%d日以降、新しい更新をチェックする更新サーバーにアクセスできませんでした。", + "Please check the Nextcloud and server log files for errors." : "Nextcloudとサーバーログファイルでエラーがないか確認してください。", "Update to %1$s is available." : "%1$s への更新が利用可能です。", "Update for %1$s to version %2$s is available." : "%1$s に対するバージョン %2$s へアップデートが利用可能です。", "Update for {app} to version %s is available." : " {app} に対するバージョン %s へアップデートが利用可能です。", diff --git a/apps/updatenotification/l10n/ja.json b/apps/updatenotification/l10n/ja.json index feb1993dc80..fcead04da5b 100644 --- a/apps/updatenotification/l10n/ja.json +++ b/apps/updatenotification/l10n/ja.json @@ -4,6 +4,7 @@ "{version} is available. Get more information on how to update." : "{version} が利用可能です。アップデート方法について詳細情報を確認してください。", "Channel updated" : "チャンネルが更新されました", "The update server could not be reached since %d days to check for new updates." : "%d日以降、新しい更新をチェックする更新サーバーにアクセスできませんでした。", + "Please check the Nextcloud and server log files for errors." : "Nextcloudとサーバーログファイルでエラーがないか確認してください。", "Update to %1$s is available." : "%1$s への更新が利用可能です。", "Update for %1$s to version %2$s is available." : "%1$s に対するバージョン %2$s へアップデートが利用可能です。", "Update for {app} to version %s is available." : " {app} に対するバージョン %s へアップデートが利用可能です。", diff --git a/apps/updatenotification/l10n/ko.js b/apps/updatenotification/l10n/ko.js index cc225791380..08fbd6e7cb0 100644 --- a/apps/updatenotification/l10n/ko.js +++ b/apps/updatenotification/l10n/ko.js @@ -1,13 +1,25 @@ OC.L10N.register( "updatenotification", { + "Update notifications" : "업데이트 알림", + "Could not start updater, please try the manual update" : "업데이트를 시작할 수 없습니다. 수동 업데이트를 시도하십시오.", "{version} is available. Get more information on how to update." : "{version}을(를) 사용할 수 있습니다. 업데이트하는 방법에 대해서 알아보십시오.", - "Updated channel" : "업데이트 된 채널", - "Updater" : "업데이터", + "Channel updated" : "채널 업데이트됨", + "The update server could not be reached since %d days to check for new updates." : "업데이트 서버에 %d일 동안 접근할 수 없어서 새 업데이트를 확인할 수 없습니다.", + "Please check the Nextcloud and server log files for errors." : "Nextcloud 및 서버 로그에서 오류 정보를 확인하십시오.", + "Update to %1$s is available." : "%1$s(으)로 업데이트할 수 있습니다.", + "Update for %1$s to version %2$s is available." : "%1$s을(를) 버전 %2$s(으)로 업데이트할 수 있습니다.", + "Update for {app} to version %s is available." : "{app}을(를) 버전 %s(으)로 업데이트할 수 있습니다.", "A new version is available: %s" : "새 버전을 사용할 수 있습니다: %s", "Open updater" : "업데이터 열기", + "Download now" : "지금 다운로드", "Your version is up to date." : "최신 버전을 사용하고 있습니다.", + "Checked on %s" : "%s에 확인함", "Update channel:" : "업데이트 채널:", - "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "항상 새로운 버전이나 실험 채널로 업그레이드할 수 있지만, 안정 채널로 다운그레이드할 수는 없습니다." + "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "항상 새로운 버전이나 실험 채널로 업그레이드할 수 있지만, 안정 채널로 다운그레이드할 수는 없습니다.", + "Notify members of the following groups about available updates:" : "다음 그룹 구성원에게 업데이트 알림 전달:", + "Only notification for app updates are available." : "앱 업데이트 알림만 사용할 수 있습니다.", + "The selected update channel makes dedicated notifications for the server obsolete." : "선택한 업데이트 채널은 서버 알림을 사용하지 않습니다.", + "The selected update channel does not support updates of the server." : "선택한 업데이트 채널은 서버 업데이트를 지원하지 않습니다." }, "nplurals=1; plural=0;"); diff --git a/apps/updatenotification/l10n/ko.json b/apps/updatenotification/l10n/ko.json index a2e0474a0e3..8f2014e5c83 100644 --- a/apps/updatenotification/l10n/ko.json +++ b/apps/updatenotification/l10n/ko.json @@ -1,11 +1,23 @@ { "translations": { + "Update notifications" : "업데이트 알림", + "Could not start updater, please try the manual update" : "업데이트를 시작할 수 없습니다. 수동 업데이트를 시도하십시오.", "{version} is available. Get more information on how to update." : "{version}을(를) 사용할 수 있습니다. 업데이트하는 방법에 대해서 알아보십시오.", - "Updated channel" : "업데이트 된 채널", - "Updater" : "업데이터", + "Channel updated" : "채널 업데이트됨", + "The update server could not be reached since %d days to check for new updates." : "업데이트 서버에 %d일 동안 접근할 수 없어서 새 업데이트를 확인할 수 없습니다.", + "Please check the Nextcloud and server log files for errors." : "Nextcloud 및 서버 로그에서 오류 정보를 확인하십시오.", + "Update to %1$s is available." : "%1$s(으)로 업데이트할 수 있습니다.", + "Update for %1$s to version %2$s is available." : "%1$s을(를) 버전 %2$s(으)로 업데이트할 수 있습니다.", + "Update for {app} to version %s is available." : "{app}을(를) 버전 %s(으)로 업데이트할 수 있습니다.", "A new version is available: %s" : "새 버전을 사용할 수 있습니다: %s", "Open updater" : "업데이터 열기", + "Download now" : "지금 다운로드", "Your version is up to date." : "최신 버전을 사용하고 있습니다.", + "Checked on %s" : "%s에 확인함", "Update channel:" : "업데이트 채널:", - "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "항상 새로운 버전이나 실험 채널로 업그레이드할 수 있지만, 안정 채널로 다운그레이드할 수는 없습니다." + "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "항상 새로운 버전이나 실험 채널로 업그레이드할 수 있지만, 안정 채널로 다운그레이드할 수는 없습니다.", + "Notify members of the following groups about available updates:" : "다음 그룹 구성원에게 업데이트 알림 전달:", + "Only notification for app updates are available." : "앱 업데이트 알림만 사용할 수 있습니다.", + "The selected update channel makes dedicated notifications for the server obsolete." : "선택한 업데이트 채널은 서버 알림을 사용하지 않습니다.", + "The selected update channel does not support updates of the server." : "선택한 업데이트 채널은 서버 업데이트를 지원하지 않습니다." },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/updatenotification/l10n/pl.js b/apps/updatenotification/l10n/pl.js index edc80cb3687..9ab4f0a2fee 100644 --- a/apps/updatenotification/l10n/pl.js +++ b/apps/updatenotification/l10n/pl.js @@ -6,6 +6,7 @@ OC.L10N.register( "{version} is available. Get more information on how to update." : "Wersja {version} jest dostępna. Dowiedz się jak zaktualizować.", "Channel updated" : "Zaktualizowany kanał", "The update server could not be reached since %d days to check for new updates." : "Połączenie z serwerem z aktualizacjami w celu sprawdzenia nowych aktualizacji nie powiodło się od %d dni.", + "Please check the Nextcloud and server log files for errors." : "Proszę sprawdzić pliki z logami Nextcloud i serwera w celu poszukiwania błędów.", "Update to %1$s is available." : "Aktualizacja do %1$s jest dostępna.", "Update for %1$s to version %2$s is available." : "Jest dostępna aktualizacja dla %1$s do wersji %2$s", "Update for {app} to version %s is available." : "aktualizacja dla {app} do wersji %s jest dostępna.", diff --git a/apps/updatenotification/l10n/pl.json b/apps/updatenotification/l10n/pl.json index 0e37989ac0a..f38ef3740e6 100644 --- a/apps/updatenotification/l10n/pl.json +++ b/apps/updatenotification/l10n/pl.json @@ -4,6 +4,7 @@ "{version} is available. Get more information on how to update." : "Wersja {version} jest dostępna. Dowiedz się jak zaktualizować.", "Channel updated" : "Zaktualizowany kanał", "The update server could not be reached since %d days to check for new updates." : "Połączenie z serwerem z aktualizacjami w celu sprawdzenia nowych aktualizacji nie powiodło się od %d dni.", + "Please check the Nextcloud and server log files for errors." : "Proszę sprawdzić pliki z logami Nextcloud i serwera w celu poszukiwania błędów.", "Update to %1$s is available." : "Aktualizacja do %1$s jest dostępna.", "Update for %1$s to version %2$s is available." : "Jest dostępna aktualizacja dla %1$s do wersji %2$s", "Update for {app} to version %s is available." : "aktualizacja dla {app} do wersji %s jest dostępna.", diff --git a/apps/user_ldap/appinfo/app.php b/apps/user_ldap/appinfo/app.php index cbdcafc58d6..70e505c18af 100644 --- a/apps/user_ldap/appinfo/app.php +++ b/apps/user_ldap/appinfo/app.php @@ -29,46 +29,26 @@ $helper = new \OCA\User_LDAP\Helper(\OC::$server->getConfig()); $configPrefixes = $helper->getServerConfigurationPrefixes(true); -$ldapWrapper = new OCA\User_LDAP\LDAP(); -$ocConfig = \OC::$server->getConfig(); -$notificationManager = \OC::$server->getNotificationManager(); -$notificationManager->registerNotifier(function() { - return new \OCA\User_LDAP\Notification\Notifier( - \OC::$server->getL10NFactory() - ); -}, function() { +if(count($configPrefixes) > 0) { + $ldapWrapper = new OCA\User_LDAP\LDAP(); + $ocConfig = \OC::$server->getConfig(); + $notificationManager = \OC::$server->getNotificationManager(); + $notificationManager->registerNotifier(function() { + return new \OCA\User_LDAP\Notification\Notifier( + \OC::$server->getL10NFactory() + ); + }, function() { $l = \OC::$server->getL10N('user_ldap'); return [ 'id' => 'user_ldap', 'name' => $l->t('LDAP user and group backend'), ]; -}); -if(count($configPrefixes) === 1) { - $dbc = \OC::$server->getDatabaseConnection(); - $userManager = new OCA\User_LDAP\User\Manager($ocConfig, - new OCA\User_LDAP\FilesystemHelper(), - new OCA\User_LDAP\LogWrapper(), - \OC::$server->getAvatarManager(), - new \OCP\Image(), - $dbc, - \OC::$server->getUserManager(), - $notificationManager - ); - $connector = new OCA\User_LDAP\Connection($ldapWrapper, $configPrefixes[0]); - $ldapAccess = new OCA\User_LDAP\Access($connector, $ldapWrapper, $userManager, $helper); + }); - $ldapAccess->setUserMapper(new OCA\User_LDAP\Mapping\UserMapping($dbc)); - $ldapAccess->setGroupMapper(new OCA\User_LDAP\Mapping\GroupMapping($dbc)); - $userBackend = new OCA\User_LDAP\User_LDAP($ldapAccess, $ocConfig, $notificationManager); - $groupBackend = new \OCA\User_LDAP\Group_LDAP($ldapAccess); -} else if(count($configPrefixes) > 1) { $userBackend = new OCA\User_LDAP\User_Proxy( $configPrefixes, $ldapWrapper, $ocConfig, $notificationManager ); $groupBackend = new OCA\User_LDAP\Group_Proxy($configPrefixes, $ldapWrapper); -} - -if(count($configPrefixes) > 0) { // register user backend OC_User::useBackend($userBackend); \OC::$server->getGroupManager()->addBackend($groupBackend); diff --git a/apps/user_ldap/l10n/cs.js b/apps/user_ldap/l10n/cs.js index 2645072771b..6c4f10cd309 100644 --- a/apps/user_ldap/l10n/cs.js +++ b/apps/user_ldap/l10n/cs.js @@ -12,6 +12,13 @@ OC.L10N.register( "No data specified" : "Neurčena žádná data", " Could not set configuration %s" : "Nelze nastavit konfiguraci %s", "Action does not exist" : "Tato akce neexistuje", + "LDAP user and group backend" : "Backend pro LDAP uživatele a skupiny", + "Renewing …" : "Obnovování …", + "Very weak password" : "Velmi slabé heslo", + "Weak password" : "Slabé heslo", + "So-so password" : "Přijatelné heslo", + "Good password" : "Dobré heslo", + "Strong password" : "Silné heslo", "The Base DN appears to be wrong" : "Base DN nevypadá být v pořádku", "Testing configuration…" : "Testování konfigurace...", "Configuration incorrect" : "Nesprávná konfigurace", @@ -44,9 +51,13 @@ OC.L10N.register( "An unspecified error occurred. Please check the settings and the log." : "Došlo k nespecifikované chybě. Zkontrolujte prosím nastavení a soubor logu.", "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Filtr vyhledávání je neplatný, pravděpodobně z důvodu chybné syntax jako třeba neuzavřené závorky. Ověřte to.", "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Došlo k chybě připojení k LDAP / AD, zkontrolujte prosím host, port a přihlašovací údaje.", + "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Zástupný symbol \"%uid\" chybí. Při dotatzu na LDAP / AD bude nahrazen přihlašovacím jménem.", "Please provide a login name to test against" : "Zadejte prosím přihlašovací jméno pro otestování", "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Skupinové pole bylo vypnuto, protože LDAP / AD server nepodporuje memberOf.", "Password change rejected. Hint: " : "Změna hesla zamítnuta. Nápověda: ", + "Please login with the new password" : "Prosím, přihlaste se pomocí nového hesla", + "Your password will expire tomorrow." : "Vaše heslo zítra vyprší.", + "Your password will expire today." : "Vaše heslo dnes vyprší.", "LDAP / AD integration" : "LDAP / AD propojení", "_%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ů"], @@ -64,8 +75,10 @@ OC.L10N.register( "Edit LDAP Query" : "Upravit LDAP požadavek", "LDAP Filter:" : "LDAP filtr:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filtr určuje, kteří uživatelé LDAP mají mít přístup k instanci %s.", + "Verify settings and count the groups" : "Ověřit nastavení a spočítat skupiny", "When logging in, %s will find the user based on the following attributes:" : "Při přihlašování, %s bude hledat uživatele na základě následujících atributů:", "LDAP / AD Username:" : "LDAP / AD uživatelské jméno:", + "Allows login against the LDAP / AD username, which is either uid or sAMAccountName and will be detected." : "Umožňuje přihlášení LDAP / AD uživatelským jménem, což je uid nebo sAMAccountName a bude detekováno.", "LDAP / AD Email Address:" : "LDAP / AD emailová adresa:", "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Umožňuje přihlášení s atributem emailu. Jsou povoleny Mail a mailPrimaryAddress.", "Other Attributes:" : "Další atributy:", @@ -74,9 +87,11 @@ OC.L10N.register( "Verify settings" : "Ověřit nastavení", "1. Server" : "1. Server", "%s. Server:" : "%s. Server:", + "Add a new configuration" : "Přidat novou konfiguraci", "Copy current configuration into new directory binding" : "Zkopírovat současnou konfiguraci do nového adresářového propojení", "Delete the current configuration" : "Smazat současnou konfiguraci", "Host" : "Počítač", + "You can omit the protocol, unless you require SSL. If so, start with ldaps://" : "Pokud nevyžadujete SSL, můžete protokol vynechat. Pokud ano, začněte ldaps://", "Port" : "Port", "Detect Port" : "Detekovat port", "User DN" : "Uživatelské DN", @@ -96,6 +111,15 @@ OC.L10N.register( "Saving" : "Ukládá se", "Back" : "Zpět", "Continue" : "Pokračovat", + "Please renew your password." : "Prosím, obnovte vaše heslo.", + "An internal error occurred." : "Došlo k interní chybě.", + "Please try again or contact your administrator." : "Zkuste to znovu, nebo kontaktujte vašeho administrátora.", + "Current password" : "Aktuální heslo", + "New password" : "Žádné heslo", + "Renew password" : "Obnovit heslo", + "Wrong password. Reset it?" : "Chybné heslo. Resetovat?", + "Wrong password." : "Chybné heslo.", + "Cancel" : "Zrušit", "LDAP" : "LDAP", "Server" : "Server", "Users" : "Uživatelé", @@ -141,10 +165,15 @@ OC.L10N.register( "Enable LDAP password changes per user" : "Povolit změny LDAP hesla pro každého uživatele", "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "Povolit LDAP uživatelům změnu jejich hesla a povolit Super Administrátorům a skupinovým Administrátorům změnu hesel jejich LDAP uživatelů. Funguje pouze, pokud jsou na LDAP serveru příslušně nakonfigurovány seznamy řízení přístupu. Protože hesla jsou LDAP serveru zasílána v čisté podobě, musí být použito šifrování při transportu a na LDAP serveru by mělo být nakonfigurováno hashování hesel.", "(New password is sent as plain text to LDAP)" : "(Nové heslo je LDAPu zasláno jako prostý text)", + "Default password policy DN" : "DN výchozí politiky hesel", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "DN výchozí politiky hesel, která bude použita ke zpracování vypršení hesel. Funguje pouze pokud jsou povoleny změny hesla uživatelem a používá se OpenLDAP. Ponechte prázdné pro výchozí zpracování vypršení hesel.", "Special Attributes" : "Speciální atributy", "Quota Field" : "Pole pro kvótu", + "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Ponechte prázné pro výchozí uživatelskou kvótu. Jinak uveďte LDAP / AD atribut.", "Quota Default" : "Výchozí kvóta", + "Override default quota for LDAP users who do not have a quota set in the Quota Field." : "Přepsat výchozí kvótu pro LDAP uživatele, kteří nemají kvótu nastavenou v poli kvóty.", "Email Field" : "Pole emailu", + "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Nastavit e-mail uživatele na základě LDAP atributu. Ponechte prázdné pro výchozí chování.", "User Home Folder Naming Rule" : "Pravidlo pojmenování domovského adresáře uživatele", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Ponechte prázdné pro uživatelské jméno (výchozí). Jinak uveďte LDAP/AD parametr.", "Internal Username" : "Interní uživatelské jméno", diff --git a/apps/user_ldap/l10n/cs.json b/apps/user_ldap/l10n/cs.json index c3b2279237a..e8e6553e2d8 100644 --- a/apps/user_ldap/l10n/cs.json +++ b/apps/user_ldap/l10n/cs.json @@ -10,6 +10,13 @@ "No data specified" : "Neurčena žádná data", " Could not set configuration %s" : "Nelze nastavit konfiguraci %s", "Action does not exist" : "Tato akce neexistuje", + "LDAP user and group backend" : "Backend pro LDAP uživatele a skupiny", + "Renewing …" : "Obnovování …", + "Very weak password" : "Velmi slabé heslo", + "Weak password" : "Slabé heslo", + "So-so password" : "Přijatelné heslo", + "Good password" : "Dobré heslo", + "Strong password" : "Silné heslo", "The Base DN appears to be wrong" : "Base DN nevypadá být v pořádku", "Testing configuration…" : "Testování konfigurace...", "Configuration incorrect" : "Nesprávná konfigurace", @@ -42,9 +49,13 @@ "An unspecified error occurred. Please check the settings and the log." : "Došlo k nespecifikované chybě. Zkontrolujte prosím nastavení a soubor logu.", "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Filtr vyhledávání je neplatný, pravděpodobně z důvodu chybné syntax jako třeba neuzavřené závorky. Ověřte to.", "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Došlo k chybě připojení k LDAP / AD, zkontrolujte prosím host, port a přihlašovací údaje.", + "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Zástupný symbol \"%uid\" chybí. Při dotatzu na LDAP / AD bude nahrazen přihlašovacím jménem.", "Please provide a login name to test against" : "Zadejte prosím přihlašovací jméno pro otestování", "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Skupinové pole bylo vypnuto, protože LDAP / AD server nepodporuje memberOf.", "Password change rejected. Hint: " : "Změna hesla zamítnuta. Nápověda: ", + "Please login with the new password" : "Prosím, přihlaste se pomocí nového hesla", + "Your password will expire tomorrow." : "Vaše heslo zítra vyprší.", + "Your password will expire today." : "Vaše heslo dnes vyprší.", "LDAP / AD integration" : "LDAP / AD propojení", "_%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ů"], @@ -62,8 +73,10 @@ "Edit LDAP Query" : "Upravit LDAP požadavek", "LDAP Filter:" : "LDAP filtr:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Filtr určuje, kteří uživatelé LDAP mají mít přístup k instanci %s.", + "Verify settings and count the groups" : "Ověřit nastavení a spočítat skupiny", "When logging in, %s will find the user based on the following attributes:" : "Při přihlašování, %s bude hledat uživatele na základě následujících atributů:", "LDAP / AD Username:" : "LDAP / AD uživatelské jméno:", + "Allows login against the LDAP / AD username, which is either uid or sAMAccountName and will be detected." : "Umožňuje přihlášení LDAP / AD uživatelským jménem, což je uid nebo sAMAccountName a bude detekováno.", "LDAP / AD Email Address:" : "LDAP / AD emailová adresa:", "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Umožňuje přihlášení s atributem emailu. Jsou povoleny Mail a mailPrimaryAddress.", "Other Attributes:" : "Další atributy:", @@ -72,9 +85,11 @@ "Verify settings" : "Ověřit nastavení", "1. Server" : "1. Server", "%s. Server:" : "%s. Server:", + "Add a new configuration" : "Přidat novou konfiguraci", "Copy current configuration into new directory binding" : "Zkopírovat současnou konfiguraci do nového adresářového propojení", "Delete the current configuration" : "Smazat současnou konfiguraci", "Host" : "Počítač", + "You can omit the protocol, unless you require SSL. If so, start with ldaps://" : "Pokud nevyžadujete SSL, můžete protokol vynechat. Pokud ano, začněte ldaps://", "Port" : "Port", "Detect Port" : "Detekovat port", "User DN" : "Uživatelské DN", @@ -94,6 +109,15 @@ "Saving" : "Ukládá se", "Back" : "Zpět", "Continue" : "Pokračovat", + "Please renew your password." : "Prosím, obnovte vaše heslo.", + "An internal error occurred." : "Došlo k interní chybě.", + "Please try again or contact your administrator." : "Zkuste to znovu, nebo kontaktujte vašeho administrátora.", + "Current password" : "Aktuální heslo", + "New password" : "Žádné heslo", + "Renew password" : "Obnovit heslo", + "Wrong password. Reset it?" : "Chybné heslo. Resetovat?", + "Wrong password." : "Chybné heslo.", + "Cancel" : "Zrušit", "LDAP" : "LDAP", "Server" : "Server", "Users" : "Uživatelé", @@ -139,10 +163,15 @@ "Enable LDAP password changes per user" : "Povolit změny LDAP hesla pro každého uživatele", "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "Povolit LDAP uživatelům změnu jejich hesla a povolit Super Administrátorům a skupinovým Administrátorům změnu hesel jejich LDAP uživatelů. Funguje pouze, pokud jsou na LDAP serveru příslušně nakonfigurovány seznamy řízení přístupu. Protože hesla jsou LDAP serveru zasílána v čisté podobě, musí být použito šifrování při transportu a na LDAP serveru by mělo být nakonfigurováno hashování hesel.", "(New password is sent as plain text to LDAP)" : "(Nové heslo je LDAPu zasláno jako prostý text)", + "Default password policy DN" : "DN výchozí politiky hesel", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "DN výchozí politiky hesel, která bude použita ke zpracování vypršení hesel. Funguje pouze pokud jsou povoleny změny hesla uživatelem a používá se OpenLDAP. Ponechte prázdné pro výchozí zpracování vypršení hesel.", "Special Attributes" : "Speciální atributy", "Quota Field" : "Pole pro kvótu", + "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Ponechte prázné pro výchozí uživatelskou kvótu. Jinak uveďte LDAP / AD atribut.", "Quota Default" : "Výchozí kvóta", + "Override default quota for LDAP users who do not have a quota set in the Quota Field." : "Přepsat výchozí kvótu pro LDAP uživatele, kteří nemají kvótu nastavenou v poli kvóty.", "Email Field" : "Pole emailu", + "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Nastavit e-mail uživatele na základě LDAP atributu. Ponechte prázdné pro výchozí chování.", "User Home Folder Naming Rule" : "Pravidlo pojmenování domovského adresáře uživatele", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Ponechte prázdné pro uživatelské jméno (výchozí). Jinak uveďte LDAP/AD parametr.", "Internal Username" : "Interní uživatelské jméno", diff --git a/apps/user_ldap/l10n/el.js b/apps/user_ldap/l10n/el.js index e33d8a0a82e..41924ab5ae6 100644 --- a/apps/user_ldap/l10n/el.js +++ b/apps/user_ldap/l10n/el.js @@ -12,6 +12,8 @@ OC.L10N.register( "No data specified" : "Δεν προσδιορίστηκαν δεδομένα", " Could not set configuration %s" : "Αδυναμία ρύθμισης %s", "Action does not exist" : "Η ενέργεια δεν υπάρχει", + "Renewing …" : "Ανανέωση ...", + "Very weak password" : "Πολύ αδύναμος κωδικός πρόσβασης", "Weak password" : "Ασθενές συνηματικό", "Good password" : "Καλό συνθηματικό", "Strong password" : "Ισχυρό συνθηματικό", @@ -97,6 +99,9 @@ OC.L10N.register( "Continue" : "Συνέχεια", "Current password" : "Τρέχον συνθηματικό", "New password" : "Νέο συνθηματικό", + "Renew password" : "Ανανέωση συνθηματικού", + "Wrong password." : "Εσφαλμένο συνθηματικό.", + "Cancel" : "Ακύρωση", "LDAP" : "LDAP", "Server" : "Διακομιστής", "Users" : "Χρήστες", diff --git a/apps/user_ldap/l10n/el.json b/apps/user_ldap/l10n/el.json index 5e7b7e322be..dbc1da6a951 100644 --- a/apps/user_ldap/l10n/el.json +++ b/apps/user_ldap/l10n/el.json @@ -10,6 +10,8 @@ "No data specified" : "Δεν προσδιορίστηκαν δεδομένα", " Could not set configuration %s" : "Αδυναμία ρύθμισης %s", "Action does not exist" : "Η ενέργεια δεν υπάρχει", + "Renewing …" : "Ανανέωση ...", + "Very weak password" : "Πολύ αδύναμος κωδικός πρόσβασης", "Weak password" : "Ασθενές συνηματικό", "Good password" : "Καλό συνθηματικό", "Strong password" : "Ισχυρό συνθηματικό", @@ -95,6 +97,9 @@ "Continue" : "Συνέχεια", "Current password" : "Τρέχον συνθηματικό", "New password" : "Νέο συνθηματικό", + "Renew password" : "Ανανέωση συνθηματικού", + "Wrong password." : "Εσφαλμένο συνθηματικό.", + "Cancel" : "Ακύρωση", "LDAP" : "LDAP", "Server" : "Διακομιστής", "Users" : "Χρήστες", diff --git a/apps/user_ldap/l10n/es.js b/apps/user_ldap/l10n/es.js index 44bb447ae97..59556732058 100644 --- a/apps/user_ldap/l10n/es.js +++ b/apps/user_ldap/l10n/es.js @@ -12,6 +12,13 @@ OC.L10N.register( "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" : "La acción no existe.", + "LDAP user and group backend" : "Motor de usuarios y grupos LDAP", + "Renewing …" : "Renovando...", + "Very weak password" : "Contraseña muy débil", + "Weak password" : "Contraseña débil", + "So-so password" : "Contraseña pasable", + "Good password" : "Contraseña buena", + "Strong password" : "Contraseña fuerte", "The Base DN appears to be wrong" : "La Base DN parece estar mal", "Testing configuration…" : "Probando configuración", "Configuration incorrect" : "Configuración Incorrecta", @@ -44,9 +51,14 @@ OC.L10N.register( "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." : "Falta el marcador de posición \"%uid\". Será reemplazado por el nombre de registro al consultar 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.", "Password change rejected. Hint: " : "Contraseña rechazada. Pista:", + "Please login with the new password" : "Por favor, entra con la nueva contraseña", + "Your password will expire tomorrow." : "Tu contraseña expirará mañana.", + "Your password will expire today." : "Tu contraseña expirará hoy.", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Tu contraseña expirará dentro de %n día.","Tu contraseña expirará dentro de %n días."], "LDAP / AD integration" : "Integración LDAP / AD", "_%s group found_::_%s groups found_" : ["Grupo %s encontrado","Grupos %s encontrados"], "_%s user found_::_%s users found_" : ["Usuario %s encontrado","Usuarios %s encontrados"], @@ -67,6 +79,7 @@ OC.L10N.register( "Verify settings and count the groups" : "Verifique los ajustes y cuente los 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 identificarse contra el nombre de usuario LDAP / AD, que es o bien uid o bien 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:", @@ -79,6 +92,7 @@ OC.L10N.register( "Copy current configuration into new directory binding" : "Copiar la actual configuración en un nuevo directorio de enlace", "Delete the current configuration" : "Elimina la actual configuración", "Host" : "Servidor", + "You can omit the protocol, unless you require SSL. If so, start with ldaps://" : "Puedes omitir el protocolo, excepto si requieres SSL. En este caso, comienza con ldaps://", "Port" : "Puerto", "Detect Port" : "Detectar puerto", "User DN" : "DN usuario", @@ -98,6 +112,15 @@ OC.L10N.register( "Saving" : "Guardando", "Back" : "Atrás", "Continue" : "Continuar", + "Please renew your password." : "Por favor, renueva tu contraseña.", + "An internal error occurred." : "Ha ocurrido un error interno.", + "Please try again or contact your administrator." : "Por favor, inténtalo de nuevo o contacta con tu administrador.", + "Current password" : "Contraseña actual", + "New password" : "Nueva contraseña", + "Renew password" : "Renovar contraseña", + "Wrong password. Reset it?" : "Contraseña errónea. ¿Resetearla?", + "Wrong password." : "Contraseña errónea.", + "Cancel" : "Cancelar", "LDAP" : "LDAP", "Server" : "Servidor", "Users" : "Usuarios", @@ -143,6 +166,8 @@ OC.L10N.register( "Enable LDAP password changes per user" : "Permitir cambios de contraseñas LDAP por usuario", "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "Permite a usuarios LDAP cambiar su contraseña y permite administradores y administradores de grupos, cambiar la contraseña de sus usuarios LDAP. SOlo funciona cuando las políticas de control de acceso están configuradas de acuerdo a las del servidor LDAP. Como las contraseñas se mandan en texto plano al servidor, LDAP, encripción del transporte debe ser usado y cifrado de las contraseñas debe ser configurado en el servidor LDAP.", "(New password is sent as plain text to LDAP)" : "(La nueva contraseña se envía como texto plano a LDAP)", + "Default password policy DN" : "Política de contraseñas por defecto DN", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "El DN de una política de contraseñas por defecto que será usado para el manejo de la expiración de contraseñas. Solo funciona cuando los cambios por usuario de la contraseña LDAP están habilitados y solo está aceptada por OpenLDAP. Déjala vacía para deshabilitar el manejo de expiración de contraseñas.", "Special Attributes" : "Atributos especiales", "Quota Field" : "Cuota", "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Deje vacío para la couta predeterminada del usuario. De otra manera, específique un atributo LDAP/AD.", diff --git a/apps/user_ldap/l10n/es.json b/apps/user_ldap/l10n/es.json index ed7bdc158ad..d3686ded22a 100644 --- a/apps/user_ldap/l10n/es.json +++ b/apps/user_ldap/l10n/es.json @@ -10,6 +10,13 @@ "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" : "La acción no existe.", + "LDAP user and group backend" : "Motor de usuarios y grupos LDAP", + "Renewing …" : "Renovando...", + "Very weak password" : "Contraseña muy débil", + "Weak password" : "Contraseña débil", + "So-so password" : "Contraseña pasable", + "Good password" : "Contraseña buena", + "Strong password" : "Contraseña fuerte", "The Base DN appears to be wrong" : "La Base DN parece estar mal", "Testing configuration…" : "Probando configuración", "Configuration incorrect" : "Configuración Incorrecta", @@ -42,9 +49,14 @@ "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." : "Falta el marcador de posición \"%uid\". Será reemplazado por el nombre de registro al consultar 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.", "Password change rejected. Hint: " : "Contraseña rechazada. Pista:", + "Please login with the new password" : "Por favor, entra con la nueva contraseña", + "Your password will expire tomorrow." : "Tu contraseña expirará mañana.", + "Your password will expire today." : "Tu contraseña expirará hoy.", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Tu contraseña expirará dentro de %n día.","Tu contraseña expirará dentro de %n días."], "LDAP / AD integration" : "Integración LDAP / AD", "_%s group found_::_%s groups found_" : ["Grupo %s encontrado","Grupos %s encontrados"], "_%s user found_::_%s users found_" : ["Usuario %s encontrado","Usuarios %s encontrados"], @@ -65,6 +77,7 @@ "Verify settings and count the groups" : "Verifique los ajustes y cuente los 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 identificarse contra el nombre de usuario LDAP / AD, que es o bien uid o bien 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:", @@ -77,6 +90,7 @@ "Copy current configuration into new directory binding" : "Copiar la actual configuración en un nuevo directorio de enlace", "Delete the current configuration" : "Elimina la actual configuración", "Host" : "Servidor", + "You can omit the protocol, unless you require SSL. If so, start with ldaps://" : "Puedes omitir el protocolo, excepto si requieres SSL. En este caso, comienza con ldaps://", "Port" : "Puerto", "Detect Port" : "Detectar puerto", "User DN" : "DN usuario", @@ -96,6 +110,15 @@ "Saving" : "Guardando", "Back" : "Atrás", "Continue" : "Continuar", + "Please renew your password." : "Por favor, renueva tu contraseña.", + "An internal error occurred." : "Ha ocurrido un error interno.", + "Please try again or contact your administrator." : "Por favor, inténtalo de nuevo o contacta con tu administrador.", + "Current password" : "Contraseña actual", + "New password" : "Nueva contraseña", + "Renew password" : "Renovar contraseña", + "Wrong password. Reset it?" : "Contraseña errónea. ¿Resetearla?", + "Wrong password." : "Contraseña errónea.", + "Cancel" : "Cancelar", "LDAP" : "LDAP", "Server" : "Servidor", "Users" : "Usuarios", @@ -141,6 +164,8 @@ "Enable LDAP password changes per user" : "Permitir cambios de contraseñas LDAP por usuario", "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "Permite a usuarios LDAP cambiar su contraseña y permite administradores y administradores de grupos, cambiar la contraseña de sus usuarios LDAP. SOlo funciona cuando las políticas de control de acceso están configuradas de acuerdo a las del servidor LDAP. Como las contraseñas se mandan en texto plano al servidor, LDAP, encripción del transporte debe ser usado y cifrado de las contraseñas debe ser configurado en el servidor LDAP.", "(New password is sent as plain text to LDAP)" : "(La nueva contraseña se envía como texto plano a LDAP)", + "Default password policy DN" : "Política de contraseñas por defecto DN", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "El DN de una política de contraseñas por defecto que será usado para el manejo de la expiración de contraseñas. Solo funciona cuando los cambios por usuario de la contraseña LDAP están habilitados y solo está aceptada por OpenLDAP. Déjala vacía para deshabilitar el manejo de expiración de contraseñas.", "Special Attributes" : "Atributos especiales", "Quota Field" : "Cuota", "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Deje vacío para la couta predeterminada del usuario. De otra manera, específique un atributo LDAP/AD.", diff --git a/apps/user_ldap/l10n/ko.js b/apps/user_ldap/l10n/ko.js index 52b000e65b4..51d8d48defd 100644 --- a/apps/user_ldap/l10n/ko.js +++ b/apps/user_ldap/l10n/ko.js @@ -12,8 +12,15 @@ OC.L10N.register( "No data specified" : "데이터가 지정되지 않음", " Could not set configuration %s" : " 설정 %s을(를) 지정할 수 없음", "Action does not exist" : "동작이 존재하지 않음", + "LDAP user and group backend" : "LDAP 사용자 및 그룹 백엔드", + "Renewing …" : "갱신 중 …", + "Very weak password" : "매우 약한 암호", + "Weak password" : "약한 암호", + "So-so password" : "그저 그런 암호", + "Good password" : "좋은 암호", + "Strong password" : "매우 좋은 암호", "The Base DN appears to be wrong" : "기본 DN이 올바르지 않습니다", - "Testing configuration…" : "설정 시험 중...", + "Testing configuration…" : "설정 시험 중…", "Configuration incorrect" : "설정 올바르지 않음", "Configuration incomplete" : "설정 불완전함", "Configuration OK" : "설정 올바름", @@ -35,16 +42,24 @@ OC.L10N.register( "Anonymous bind is not allowed. Please provide a User DN and Password." : "익명 연결은 허용되지 않습니다. 사용자 DN과 암호를 입력하십시오.", "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP 작업 오류입니다. 익명 연결이 비활성화 되었을 수 있습니다.", "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 크기에 따라서 시간이 걸릴 수도 있습니다. 모드를 전환하시겠습니까?", + "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 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 more than 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\" 자리 비움자가 없습니다. LDAP/AD에 조회할 때 로그인 이름으로 대체됩니다.", "Please provide a login name to test against" : "테스트할 로그인 사용자 이름을 입력하십시오", "The group box was disabled, because the LDAP / AD server does not support memberOf." : "LDAP/AD 서버에서 memberOf를 지원하지 않아서 그룹 상자를 비활성화합니다.", + "Password change rejected. Hint: " : "암호 변경이 거부되었습니다. 힌트:", + "Please login with the new password" : "새 암호로 로그인하십시오", + "Your password will expire tomorrow." : "내 암호가 내일 만료됩니다.", + "Your password will expire today." : "내 암호가 오늘 만료됩니다.", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["내 암호가 %n일 후 만료됩니다."], + "LDAP / AD integration" : "LDAP/AD 통합", "_%s group found_::_%s groups found_" : ["그룹 %s개 찾음"], "_%s user found_::_%s users found_" : ["사용자 %s명 찾음"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "사용자 표시 이름을 결정할 수 없습니다. 고급 LDAP 설정에서 직접 입력하십시오.", @@ -58,11 +73,13 @@ OC.L10N.register( "Search groups" : "그룹 검색", "Available groups" : "사용 가능한 그룹", "Selected groups" : "선택한 그룹", - "Edit LDAP Query" : "LDAP 쿼리 편집", + "Edit LDAP Query" : "LDAP 질의 편집", "LDAP Filter:" : "LDAP 필터:", "The filter specifies which LDAP groups shall have access to the %s instance." : "이 필터는 %s에 접근할 수 있는 LDAP 그룹을 설정합니다.", + "Verify settings and count the 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." : "이메일 속성으로 로그인을 허용합니다. Mail 및 mailPrimaryAddress를 허용합니다.", "Other Attributes:" : "기타 속성:", @@ -71,9 +88,11 @@ OC.L10N.register( "Verify settings" : "설정 검사", "1. Server" : "1. 서버", "%s. Server:" : "%s. 서버:", + "Add a new configuration" : "새 설정 추가", "Copy current configuration into new directory binding" : "현재 설정을 새 디렉터리 바인딩으로 복사", "Delete the current configuration" : "현재 설정 삭제", "Host" : "호스트", + "You can omit the protocol, unless you require SSL. If so, start with ldaps://" : "SSL이 필요한 경우가 아니라면 프로토콜을 입력하지 않아도 됩니다. SSL이 필요한 경우 ldaps:// 주소를 입력하십시오", "Port" : "포트", "Detect Port" : "포트 감지", "User DN" : "사용자 DN", @@ -86,12 +105,22 @@ OC.L10N.register( "Test Base DN" : "기본 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 필터 입력(대형 사이트에 추천)", + "Listing and searching for users is constrained by these criteria:" : "다음 조건으로 사용자 조회 및 검색 제한:", "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "일반적인 객체 클래스는 organizationalPerson, person, user, inetOrgPerson입니다. 어떤 객체 클래스를 사용해야 할 지 모르겠으면 디렉터리 서비스 관리자에게 연락하십시오.", "The filter specifies which LDAP users shall have access to the %s instance." : "이 필터는 %s에 접근할 수 있는 LDAP 사용자를 설정합니다.", "Verify settings and count users" : "설정을 확인하고 사용자 수 계산", "Saving" : "저장 중", "Back" : "뒤로", "Continue" : "계속", + "Please renew your password." : "암호를 갱신하십시오.", + "An internal error occurred." : "내부 오류가 발생했습니다.", + "Please try again or contact your administrator." : "다시 시도하거나 관리자에게 연락하십시오.", + "Current password" : "현재 암호", + "New password" : "새 암호", + "Renew password" : "암호 갱신", + "Wrong password. Reset it?" : "암호가 잘못되었습니다. 초기화하시겠습니까?", + "Wrong password." : "암호가 잘못되었습니다.", + "Cancel" : "취소", "LDAP" : "LDAP", "Server" : "서버", "Users" : "사용자", @@ -134,13 +163,22 @@ OC.L10N.register( "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "이 설정을 사용하면 그룹 안의 그룹을 지원합니다.(그룹 구성원 속성이 DN을 포함하는 경우에만 사용 가능)", "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.)" : "사용자와 그룹 목록 가져오기와 같은 다량의 결과를 반환하는 페이지를 지정한 LDAP 검색에 사용할 청크 크기입니다.(0으로 설정하면 이러한 검색을 할 때 페이지를 사용하지 않습니다.)", + "Enable LDAP password changes per user" : "사용자별 LDAP 암호 변경 허용", + "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "LDAP 사용자가 암호를 변경하고 수퍼 관리자 및 그룹 관리자가 LDAP 사용자의 암호를 변경할 수 있도록 허용합니다. LDAP 서버의 접근 제어가 올바르게 설정되어 있어야 작동합니다. LDAP 서버에 평문으로 암호가 전송되기 때문에 전송 계층 암호화가 설정되어 있어야 하며 LDAP 서버에 암호 해시가 설정되어 있어야 합니다.", + "(New password is sent as plain text to LDAP)" : "(새 암호가 LDAP 서버에 평문으로 전송됨)", + "Default password policy DN" : "기본 암호 정책 DN", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "암호 만료 처리에 사용할 기본 암호 정책 DN입니다. 사용자별 LDAP 암호 변경이 활성화되어 있어야 하며 OpenLDAP에서만 동작합니다. 암호 만료 처리를 사용하지 않으려면 비워 두십시오.", "Special Attributes" : "특수 속성", "Quota Field" : "할당량 필드", + "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "사용자의 기본 할당량을 사용하려면 비워 두십시오. 할당량 설정이 필요하면 LDAP/AD 속성을 지정하십시오.", "Quota Default" : "기본 할당량", + "Override default quota for LDAP users who do not have a quota set in the Quota Field." : "할당량 필드에 할당량이 설정되지 않은 LDAP 사용자를 위한 기본 할당량입니다.", "Email Field" : "이메일 필드", + "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "LDAP 속성에서 사용자의 이메일을 설정합니다. 기본 행동을 사용하려면 비워 두십시오.", "User Home Folder Naming Rule" : "사용자 홈 폴더 이름 규칙", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "사용자 이름을 사용하려면 비워 두십시오(기본값). 기타 경우 LDAP/AD 속성을 지정하십시오.", "Internal Username" : "내부 사용자 이름", + "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "기본적으로 내부 사용자 이름은 UUID 속성에서 생성됩니다. 이를 통해서 사용자 이름이 유일하며 문자를 변환할 필요가 없도록 합니다. 내부 사용자 이름에는 다음 글자만 사용할 수 있습니다: [a-zA-Z0-9_.@-] 다른 모든 글자는 ASCII에 해당하는 글자로 대체되거나 생략됩니다. 충돌이 발생할 경우 숫자가 추가로 붙거나 증가합니다. 내부 사용자 이름은 사용자를 내부에서 식별하는 데에도 사용되며, 사용자 홈 폴더의 기본 이름입니다. 모든 *DAV 서비스 등에 사용되는 URL의 일부이기도 합니다. 이 설정을 사용하면 기본 행동을 사용자 정의할 수 있으며, 비워 두면 기본값을 사용합니다. 변경 사항은 새로 매핑 및 추가된 LDAP 사용자에게만 적용됩니다.", "Internal Username Attribute:" : "내부 사용자 이름 속성:", "Override UUID detection" : "UUID 확인 재정의", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "기본적으로 UUID 속성은 자동적으로 감지됩니다. UUID 속성은 LDAP 사용자와 그룹을 정확히 식별하는 데 사용됩니다. 지정하지 않은 경우 내부 사용자 이름은 UUID를 기반으로 생성됩니다. 이 설정을 다시 정의하고 임의의 속성을 지정할 수 있습니다. 사용자와 그룹 모두에게 속성을 적용할 수 있고 중복된 값이 없는지 확인하십시오. 비워 두면 기본 설정을 사용합니다. 새로 추가되거나 매핑된 LDAP 사용자와 그룹에만 적용됩니다.", diff --git a/apps/user_ldap/l10n/ko.json b/apps/user_ldap/l10n/ko.json index 370221ddcff..23dab6f2b93 100644 --- a/apps/user_ldap/l10n/ko.json +++ b/apps/user_ldap/l10n/ko.json @@ -10,8 +10,15 @@ "No data specified" : "데이터가 지정되지 않음", " Could not set configuration %s" : " 설정 %s을(를) 지정할 수 없음", "Action does not exist" : "동작이 존재하지 않음", + "LDAP user and group backend" : "LDAP 사용자 및 그룹 백엔드", + "Renewing …" : "갱신 중 …", + "Very weak password" : "매우 약한 암호", + "Weak password" : "약한 암호", + "So-so password" : "그저 그런 암호", + "Good password" : "좋은 암호", + "Strong password" : "매우 좋은 암호", "The Base DN appears to be wrong" : "기본 DN이 올바르지 않습니다", - "Testing configuration…" : "설정 시험 중...", + "Testing configuration…" : "설정 시험 중…", "Configuration incorrect" : "설정 올바르지 않음", "Configuration incomplete" : "설정 불완전함", "Configuration OK" : "설정 올바름", @@ -33,16 +40,24 @@ "Anonymous bind is not allowed. Please provide a User DN and Password." : "익명 연결은 허용되지 않습니다. 사용자 DN과 암호를 입력하십시오.", "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP 작업 오류입니다. 익명 연결이 비활성화 되었을 수 있습니다.", "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 크기에 따라서 시간이 걸릴 수도 있습니다. 모드를 전환하시겠습니까?", + "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 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 more than 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\" 자리 비움자가 없습니다. LDAP/AD에 조회할 때 로그인 이름으로 대체됩니다.", "Please provide a login name to test against" : "테스트할 로그인 사용자 이름을 입력하십시오", "The group box was disabled, because the LDAP / AD server does not support memberOf." : "LDAP/AD 서버에서 memberOf를 지원하지 않아서 그룹 상자를 비활성화합니다.", + "Password change rejected. Hint: " : "암호 변경이 거부되었습니다. 힌트:", + "Please login with the new password" : "새 암호로 로그인하십시오", + "Your password will expire tomorrow." : "내 암호가 내일 만료됩니다.", + "Your password will expire today." : "내 암호가 오늘 만료됩니다.", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["내 암호가 %n일 후 만료됩니다."], + "LDAP / AD integration" : "LDAP/AD 통합", "_%s group found_::_%s groups found_" : ["그룹 %s개 찾음"], "_%s user found_::_%s users found_" : ["사용자 %s명 찾음"], "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "사용자 표시 이름을 결정할 수 없습니다. 고급 LDAP 설정에서 직접 입력하십시오.", @@ -56,11 +71,13 @@ "Search groups" : "그룹 검색", "Available groups" : "사용 가능한 그룹", "Selected groups" : "선택한 그룹", - "Edit LDAP Query" : "LDAP 쿼리 편집", + "Edit LDAP Query" : "LDAP 질의 편집", "LDAP Filter:" : "LDAP 필터:", "The filter specifies which LDAP groups shall have access to the %s instance." : "이 필터는 %s에 접근할 수 있는 LDAP 그룹을 설정합니다.", + "Verify settings and count the 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." : "이메일 속성으로 로그인을 허용합니다. Mail 및 mailPrimaryAddress를 허용합니다.", "Other Attributes:" : "기타 속성:", @@ -69,9 +86,11 @@ "Verify settings" : "설정 검사", "1. Server" : "1. 서버", "%s. Server:" : "%s. 서버:", + "Add a new configuration" : "새 설정 추가", "Copy current configuration into new directory binding" : "현재 설정을 새 디렉터리 바인딩으로 복사", "Delete the current configuration" : "현재 설정 삭제", "Host" : "호스트", + "You can omit the protocol, unless you require SSL. If so, start with ldaps://" : "SSL이 필요한 경우가 아니라면 프로토콜을 입력하지 않아도 됩니다. SSL이 필요한 경우 ldaps:// 주소를 입력하십시오", "Port" : "포트", "Detect Port" : "포트 감지", "User DN" : "사용자 DN", @@ -84,12 +103,22 @@ "Test Base DN" : "기본 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 필터 입력(대형 사이트에 추천)", + "Listing and searching for users is constrained by these criteria:" : "다음 조건으로 사용자 조회 및 검색 제한:", "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "일반적인 객체 클래스는 organizationalPerson, person, user, inetOrgPerson입니다. 어떤 객체 클래스를 사용해야 할 지 모르겠으면 디렉터리 서비스 관리자에게 연락하십시오.", "The filter specifies which LDAP users shall have access to the %s instance." : "이 필터는 %s에 접근할 수 있는 LDAP 사용자를 설정합니다.", "Verify settings and count users" : "설정을 확인하고 사용자 수 계산", "Saving" : "저장 중", "Back" : "뒤로", "Continue" : "계속", + "Please renew your password." : "암호를 갱신하십시오.", + "An internal error occurred." : "내부 오류가 발생했습니다.", + "Please try again or contact your administrator." : "다시 시도하거나 관리자에게 연락하십시오.", + "Current password" : "현재 암호", + "New password" : "새 암호", + "Renew password" : "암호 갱신", + "Wrong password. Reset it?" : "암호가 잘못되었습니다. 초기화하시겠습니까?", + "Wrong password." : "암호가 잘못되었습니다.", + "Cancel" : "취소", "LDAP" : "LDAP", "Server" : "서버", "Users" : "사용자", @@ -132,13 +161,22 @@ "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "이 설정을 사용하면 그룹 안의 그룹을 지원합니다.(그룹 구성원 속성이 DN을 포함하는 경우에만 사용 가능)", "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.)" : "사용자와 그룹 목록 가져오기와 같은 다량의 결과를 반환하는 페이지를 지정한 LDAP 검색에 사용할 청크 크기입니다.(0으로 설정하면 이러한 검색을 할 때 페이지를 사용하지 않습니다.)", + "Enable LDAP password changes per user" : "사용자별 LDAP 암호 변경 허용", + "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "LDAP 사용자가 암호를 변경하고 수퍼 관리자 및 그룹 관리자가 LDAP 사용자의 암호를 변경할 수 있도록 허용합니다. LDAP 서버의 접근 제어가 올바르게 설정되어 있어야 작동합니다. LDAP 서버에 평문으로 암호가 전송되기 때문에 전송 계층 암호화가 설정되어 있어야 하며 LDAP 서버에 암호 해시가 설정되어 있어야 합니다.", + "(New password is sent as plain text to LDAP)" : "(새 암호가 LDAP 서버에 평문으로 전송됨)", + "Default password policy DN" : "기본 암호 정책 DN", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "암호 만료 처리에 사용할 기본 암호 정책 DN입니다. 사용자별 LDAP 암호 변경이 활성화되어 있어야 하며 OpenLDAP에서만 동작합니다. 암호 만료 처리를 사용하지 않으려면 비워 두십시오.", "Special Attributes" : "특수 속성", "Quota Field" : "할당량 필드", + "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "사용자의 기본 할당량을 사용하려면 비워 두십시오. 할당량 설정이 필요하면 LDAP/AD 속성을 지정하십시오.", "Quota Default" : "기본 할당량", + "Override default quota for LDAP users who do not have a quota set in the Quota Field." : "할당량 필드에 할당량이 설정되지 않은 LDAP 사용자를 위한 기본 할당량입니다.", "Email Field" : "이메일 필드", + "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "LDAP 속성에서 사용자의 이메일을 설정합니다. 기본 행동을 사용하려면 비워 두십시오.", "User Home Folder Naming Rule" : "사용자 홈 폴더 이름 규칙", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "사용자 이름을 사용하려면 비워 두십시오(기본값). 기타 경우 LDAP/AD 속성을 지정하십시오.", "Internal Username" : "내부 사용자 이름", + "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "기본적으로 내부 사용자 이름은 UUID 속성에서 생성됩니다. 이를 통해서 사용자 이름이 유일하며 문자를 변환할 필요가 없도록 합니다. 내부 사용자 이름에는 다음 글자만 사용할 수 있습니다: [a-zA-Z0-9_.@-] 다른 모든 글자는 ASCII에 해당하는 글자로 대체되거나 생략됩니다. 충돌이 발생할 경우 숫자가 추가로 붙거나 증가합니다. 내부 사용자 이름은 사용자를 내부에서 식별하는 데에도 사용되며, 사용자 홈 폴더의 기본 이름입니다. 모든 *DAV 서비스 등에 사용되는 URL의 일부이기도 합니다. 이 설정을 사용하면 기본 행동을 사용자 정의할 수 있으며, 비워 두면 기본값을 사용합니다. 변경 사항은 새로 매핑 및 추가된 LDAP 사용자에게만 적용됩니다.", "Internal Username Attribute:" : "내부 사용자 이름 속성:", "Override UUID detection" : "UUID 확인 재정의", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "기본적으로 UUID 속성은 자동적으로 감지됩니다. UUID 속성은 LDAP 사용자와 그룹을 정확히 식별하는 데 사용됩니다. 지정하지 않은 경우 내부 사용자 이름은 UUID를 기반으로 생성됩니다. 이 설정을 다시 정의하고 임의의 속성을 지정할 수 있습니다. 사용자와 그룹 모두에게 속성을 적용할 수 있고 중복된 값이 없는지 확인하십시오. 비워 두면 기본 설정을 사용합니다. 새로 추가되거나 매핑된 LDAP 사용자와 그룹에만 적용됩니다.", diff --git a/apps/user_ldap/l10n/pl.js b/apps/user_ldap/l10n/pl.js index 4b4bc4a94bc..624216e5775 100644 --- a/apps/user_ldap/l10n/pl.js +++ b/apps/user_ldap/l10n/pl.js @@ -12,6 +12,12 @@ OC.L10N.register( "No data specified" : "Nie określono danych", " Could not set configuration %s" : "Nie można ustawić konfiguracji %s", "Action does not exist" : "Akcja nie istnieje", + "Renewing …" : "Odnawianie ...", + "Very weak password" : "Bardzo słabe hasło", + "Weak password" : "Słabe hasło", + "So-so password" : "Mało skomplikowane hasło", + "Good password" : "Dobre hasło", + "Strong password" : "Silne hasło", "The Base DN appears to be wrong" : "Base DN wygląda na błedne", "Testing configuration…" : "Testowanie konfiguracji...", "Configuration incorrect" : "Konfiguracja niepoprawna", @@ -47,6 +53,10 @@ OC.L10N.register( "Please provide a login name to test against" : "Wprowadź nazwę użytkownika, aby wykonać test ponownie", "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Wpisy dla grup zostały wyłączone, ponieważ LDAP / AD nie wspiera memberOf.", "Password change rejected. Hint: " : "Zmiana hasła odrzucona: Wskazówka:", + "Please login with the new password" : "Proszę się zalogować z nowym hasłem", + "Your password will expire tomorrow." : "Twoje hasło wygasa jutro.", + "Your password will expire today." : "Twoje hasło wygasa dziś.", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Twoje hasło wygaśnie w ciągu %n dnia.","Twoje hasło wygaśnie w ciągu %n dni.","Twoje hasło wygaśnie w ciągu %n dni.","Twoje hasło wygaśnie w ciągu %n dni."], "LDAP / AD integration" : "Integracja z LDAP / AD", "_%s group found_::_%s groups found_" : ["%s znaleziona grupa","%s znalezionych grup","%s znalezionych grup","%s znalezionych grup"], "_%s user found_::_%s users found_" : ["%s znaleziony użytkownik","%s znalezionych użytkowników","%s znalezionych użytkowników","%s znalezionych użytkowników"], @@ -74,9 +84,11 @@ OC.L10N.register( "Verify settings" : "Weryfikuj ustawienia", "1. Server" : "1. Serwer", "%s. Server:" : "%s. Serwer:", + "Add a new configuration" : "Dodaj nową konfigurację", "Copy current configuration into new directory binding" : "Kopiuje aktualną konfigurację do nowej lokalizacji", "Delete the current configuration" : "Usuwa aktualną konfigurację", "Host" : "Host", + "You can omit the protocol, unless you require SSL. If so, start with ldaps://" : "Protokół może zostać pominięty chyba, że wymagany jest protokół SSL. Jeśli tak, zacznij od ldaps://", "Port" : "Port", "Detect Port" : "Wykryj port", "User DN" : "Użytkownik DN", @@ -96,6 +108,15 @@ OC.L10N.register( "Saving" : "Zapisuję", "Back" : "Wróć", "Continue" : "Kontynuuj ", + "Please renew your password." : "Proszę odnowić hasło", + "An internal error occurred." : "Wystąpił wewnętrzny błąd.", + "Please try again or contact your administrator." : "Spróbuj ponownie lub skontaktuj się z administratorem.", + "Current password" : "Bieżące hasło", + "New password" : "Nowe hasło", + "Renew password" : "Odnów hasło", + "Wrong password. Reset it?" : "Nieprawidłowe hasło. Czy chcesz je zresetować?", + "Wrong password." : "Nieprawidłowe hasło", + "Cancel" : "Anuluj", "LDAP" : "LDAP", "Server" : "Serwer", "Users" : "Użytkownicy", @@ -141,6 +162,7 @@ OC.L10N.register( "Enable LDAP password changes per user" : "Włącz zmianę hasła LDAP przez użytkownika", "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "Pozwól użytkownikom LDAP-a na zmianę swoich haseł i pozwól Super Administratorom i Grupom Administratorów na zmianę haseł swoim użytkownikom LDAP-a. Działa tylko wtedy, kiedy polisy kontroli dostępu są prawidłowo skonfigurowane na serwerze LDAP. Jako że do serwera LDAP hasła są wysyłane czystym tekstem, na serwerze LDAP należy skonfigurować protokoł szyfrowania oraz haszowanie haseł.", "(New password is sent as plain text to LDAP)" : "(Nowe hasło jest wysyłane do LDAP-a czystym tekstem)", + "Default password policy DN" : "Domyślna polityka haseł DN", "Special Attributes" : "Specjalne atrybuty", "Quota Field" : "Pole limitu przestrzeni", "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Zostaw puste dla domyślnego limitu przestrzeni dla użytkowników lub określ atrybut LDAP/AD.", diff --git a/apps/user_ldap/l10n/pl.json b/apps/user_ldap/l10n/pl.json index 159b1441666..05e542f4d71 100644 --- a/apps/user_ldap/l10n/pl.json +++ b/apps/user_ldap/l10n/pl.json @@ -10,6 +10,12 @@ "No data specified" : "Nie określono danych", " Could not set configuration %s" : "Nie można ustawić konfiguracji %s", "Action does not exist" : "Akcja nie istnieje", + "Renewing …" : "Odnawianie ...", + "Very weak password" : "Bardzo słabe hasło", + "Weak password" : "Słabe hasło", + "So-so password" : "Mało skomplikowane hasło", + "Good password" : "Dobre hasło", + "Strong password" : "Silne hasło", "The Base DN appears to be wrong" : "Base DN wygląda na błedne", "Testing configuration…" : "Testowanie konfiguracji...", "Configuration incorrect" : "Konfiguracja niepoprawna", @@ -45,6 +51,10 @@ "Please provide a login name to test against" : "Wprowadź nazwę użytkownika, aby wykonać test ponownie", "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Wpisy dla grup zostały wyłączone, ponieważ LDAP / AD nie wspiera memberOf.", "Password change rejected. Hint: " : "Zmiana hasła odrzucona: Wskazówka:", + "Please login with the new password" : "Proszę się zalogować z nowym hasłem", + "Your password will expire tomorrow." : "Twoje hasło wygasa jutro.", + "Your password will expire today." : "Twoje hasło wygasa dziś.", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Twoje hasło wygaśnie w ciągu %n dnia.","Twoje hasło wygaśnie w ciągu %n dni.","Twoje hasło wygaśnie w ciągu %n dni.","Twoje hasło wygaśnie w ciągu %n dni."], "LDAP / AD integration" : "Integracja z LDAP / AD", "_%s group found_::_%s groups found_" : ["%s znaleziona grupa","%s znalezionych grup","%s znalezionych grup","%s znalezionych grup"], "_%s user found_::_%s users found_" : ["%s znaleziony użytkownik","%s znalezionych użytkowników","%s znalezionych użytkowników","%s znalezionych użytkowników"], @@ -72,9 +82,11 @@ "Verify settings" : "Weryfikuj ustawienia", "1. Server" : "1. Serwer", "%s. Server:" : "%s. Serwer:", + "Add a new configuration" : "Dodaj nową konfigurację", "Copy current configuration into new directory binding" : "Kopiuje aktualną konfigurację do nowej lokalizacji", "Delete the current configuration" : "Usuwa aktualną konfigurację", "Host" : "Host", + "You can omit the protocol, unless you require SSL. If so, start with ldaps://" : "Protokół może zostać pominięty chyba, że wymagany jest protokół SSL. Jeśli tak, zacznij od ldaps://", "Port" : "Port", "Detect Port" : "Wykryj port", "User DN" : "Użytkownik DN", @@ -94,6 +106,15 @@ "Saving" : "Zapisuję", "Back" : "Wróć", "Continue" : "Kontynuuj ", + "Please renew your password." : "Proszę odnowić hasło", + "An internal error occurred." : "Wystąpił wewnętrzny błąd.", + "Please try again or contact your administrator." : "Spróbuj ponownie lub skontaktuj się z administratorem.", + "Current password" : "Bieżące hasło", + "New password" : "Nowe hasło", + "Renew password" : "Odnów hasło", + "Wrong password. Reset it?" : "Nieprawidłowe hasło. Czy chcesz je zresetować?", + "Wrong password." : "Nieprawidłowe hasło", + "Cancel" : "Anuluj", "LDAP" : "LDAP", "Server" : "Serwer", "Users" : "Użytkownicy", @@ -139,6 +160,7 @@ "Enable LDAP password changes per user" : "Włącz zmianę hasła LDAP przez użytkownika", "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "Pozwól użytkownikom LDAP-a na zmianę swoich haseł i pozwól Super Administratorom i Grupom Administratorów na zmianę haseł swoim użytkownikom LDAP-a. Działa tylko wtedy, kiedy polisy kontroli dostępu są prawidłowo skonfigurowane na serwerze LDAP. Jako że do serwera LDAP hasła są wysyłane czystym tekstem, na serwerze LDAP należy skonfigurować protokoł szyfrowania oraz haszowanie haseł.", "(New password is sent as plain text to LDAP)" : "(Nowe hasło jest wysyłane do LDAP-a czystym tekstem)", + "Default password policy DN" : "Domyślna polityka haseł DN", "Special Attributes" : "Specjalne atrybuty", "Quota Field" : "Pole limitu przestrzeni", "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Zostaw puste dla domyślnego limitu przestrzeni dla użytkowników lub określ atrybut LDAP/AD.", diff --git a/apps/user_ldap/l10n/pt_BR.js b/apps/user_ldap/l10n/pt_BR.js index 5242b928672..a70709df9d1 100644 --- a/apps/user_ldap/l10n/pt_BR.js +++ b/apps/user_ldap/l10n/pt_BR.js @@ -12,7 +12,7 @@ OC.L10N.register( "No data specified" : "Nenhum dado especificado", " Could not set configuration %s" : "Não foi possível definir a configuração %s", "Action does not exist" : "A ação não existe", - "LDAP user and group backend" : "Backend LDAP de usuário e grupo", + "LDAP user and group backend" : "Plataforma de serviço LDAP de usuário e grupo", "Renewing …" : "Renovando...", "Very weak password" : "Senha muito fraca", "Weak password" : "Senha fraca", @@ -80,8 +80,8 @@ OC.L10N.register( "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." : "Permite login com nome de usuário LDAP / AD, o qual é ou uid ou sAMAccountName e será detectado.", - "LDAP / AD Email Address:" : "Endereço de email LDAP / AD:", - "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Permite o login com um atributo de email. Email e mailPrimaryAddress serão permitidos.", + "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 com um atributo de e-mail. E-mail e mailPrimaryAddress 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" : "Testar Loginname", @@ -129,7 +129,7 @@ OC.L10N.register( "Expert" : "Especialista", "Advanced" : "Avançado", "<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>Aviso:</b> Os aplicativos user_ldap e user_webdavauth são incompatíveis e pode haver um comportamento inesperado. Por favor, peça ao administrador do sistema para desabilitar um deles.", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Aviso:</b> O módulo PHP LDAP não está instalado e o backend não funcionará. Por favor, peça ao administrador do sistema para instalá-lo.", + "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Aviso:</b> O módulo PHP LDAP não está instalado e a plataforma de serviço não funcionará. Por favor, peça ao administrador do sistema para instalá-lo.", "Connection Settings" : "Configurações de conexão", "Configuration Active" : "Configuração em uso", "When unchecked, this configuration will be skipped." : "Quando desmarcada, esta configuração será ignorada.", @@ -173,8 +173,8 @@ OC.L10N.register( "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Deixe vazio para a cota padrão do usuário. Caso contrário, especifique um atributo LDAP/AD", "Quota Default" : "Cota Padrão", "Override default quota for LDAP users who do not have a quota set in the Quota Field." : "Substituir a cota padrão para usuários LDAP que não têm um conjunto de cotas no Campo Cota.", - "Email Field" : "Campo de email", - "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Defina o email do usuário de seu atributo LDAP. Deixe vazio para o comportamento padrão.", + "Email Field" : "Campo de e-mail", + "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Defina o e-mail do usuário de seu atributo LDAP. Deixe vazio para o comportamento padrão.", "User Home Folder Naming Rule" : "Regra de Nome da Pasta Pessoal do Usuário", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Deixe vazio para nome de usuário (padrão). Caso contrário, especifique um atributo LDAP/AD.", "Internal Username" : "Nome de usuário interno", diff --git a/apps/user_ldap/l10n/pt_BR.json b/apps/user_ldap/l10n/pt_BR.json index db0dd00c381..0e523b59143 100644 --- a/apps/user_ldap/l10n/pt_BR.json +++ b/apps/user_ldap/l10n/pt_BR.json @@ -10,7 +10,7 @@ "No data specified" : "Nenhum dado especificado", " Could not set configuration %s" : "Não foi possível definir a configuração %s", "Action does not exist" : "A ação não existe", - "LDAP user and group backend" : "Backend LDAP de usuário e grupo", + "LDAP user and group backend" : "Plataforma de serviço LDAP de usuário e grupo", "Renewing …" : "Renovando...", "Very weak password" : "Senha muito fraca", "Weak password" : "Senha fraca", @@ -78,8 +78,8 @@ "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." : "Permite login com nome de usuário LDAP / AD, o qual é ou uid ou sAMAccountName e será detectado.", - "LDAP / AD Email Address:" : "Endereço de email LDAP / AD:", - "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Permite o login com um atributo de email. Email e mailPrimaryAddress serão permitidos.", + "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 com um atributo de e-mail. E-mail e mailPrimaryAddress 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" : "Testar Loginname", @@ -127,7 +127,7 @@ "Expert" : "Especialista", "Advanced" : "Avançado", "<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>Aviso:</b> Os aplicativos user_ldap e user_webdavauth são incompatíveis e pode haver um comportamento inesperado. Por favor, peça ao administrador do sistema para desabilitar um deles.", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Aviso:</b> O módulo PHP LDAP não está instalado e o backend não funcionará. Por favor, peça ao administrador do sistema para instalá-lo.", + "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Aviso:</b> O módulo PHP LDAP não está instalado e a plataforma de serviço não funcionará. Por favor, peça ao administrador do sistema para instalá-lo.", "Connection Settings" : "Configurações de conexão", "Configuration Active" : "Configuração em uso", "When unchecked, this configuration will be skipped." : "Quando desmarcada, esta configuração será ignorada.", @@ -171,8 +171,8 @@ "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Deixe vazio para a cota padrão do usuário. Caso contrário, especifique um atributo LDAP/AD", "Quota Default" : "Cota Padrão", "Override default quota for LDAP users who do not have a quota set in the Quota Field." : "Substituir a cota padrão para usuários LDAP que não têm um conjunto de cotas no Campo Cota.", - "Email Field" : "Campo de email", - "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Defina o email do usuário de seu atributo LDAP. Deixe vazio para o comportamento padrão.", + "Email Field" : "Campo de e-mail", + "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Defina o e-mail do usuário de seu atributo LDAP. Deixe vazio para o comportamento padrão.", "User Home Folder Naming Rule" : "Regra de Nome da Pasta Pessoal do Usuário", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Deixe vazio para nome de usuário (padrão). Caso contrário, especifique um atributo LDAP/AD.", "Internal Username" : "Nome de usuário interno", diff --git a/apps/user_ldap/l10n/ru.js b/apps/user_ldap/l10n/ru.js index 036f78ea9b3..ff5702c3634 100644 --- a/apps/user_ldap/l10n/ru.js +++ b/apps/user_ldap/l10n/ru.js @@ -56,6 +56,9 @@ OC.L10N.register( "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Настройка групп была отключена, так как сервер LDAP / AD не поддерживает memberOf.", "Password change rejected. Hint: " : "Смена пароля отклонена. Подсказка:", "Please login with the new password" : "Войдите в систему со своим новым паролем", + "Your password will expire tomorrow." : "Завтра истекает срок действия пароля.", + "Your password will expire today." : "Сегодня истекает срок действия пароля.", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Срок действия пароля истекает через %n день.","Срок действия пароля истекает через %n дня.","Срок действия пароля истекает через %n дней.","Срок действия пароля истекает через %n день."], "LDAP / AD integration" : "Интеграция LDAP / AD", "_%s group found_::_%s groups found_" : ["%s группа найдена","%s группы найдены","%s групп найдено","%s групп найдено"], "_%s user found_::_%s users found_" : ["%s пользователь найден","%s пользователя найдено","%s пользователей найдено","%s пользователей найдено"], diff --git a/apps/user_ldap/l10n/ru.json b/apps/user_ldap/l10n/ru.json index 0b61ca441cd..448a36cb396 100644 --- a/apps/user_ldap/l10n/ru.json +++ b/apps/user_ldap/l10n/ru.json @@ -54,6 +54,9 @@ "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Настройка групп была отключена, так как сервер LDAP / AD не поддерживает memberOf.", "Password change rejected. Hint: " : "Смена пароля отклонена. Подсказка:", "Please login with the new password" : "Войдите в систему со своим новым паролем", + "Your password will expire tomorrow." : "Завтра истекает срок действия пароля.", + "Your password will expire today." : "Сегодня истекает срок действия пароля.", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Срок действия пароля истекает через %n день.","Срок действия пароля истекает через %n дня.","Срок действия пароля истекает через %n дней.","Срок действия пароля истекает через %n день."], "LDAP / AD integration" : "Интеграция LDAP / AD", "_%s group found_::_%s groups found_" : ["%s группа найдена","%s группы найдены","%s групп найдено","%s групп найдено"], "_%s user found_::_%s users found_" : ["%s пользователь найден","%s пользователя найдено","%s пользователей найдено","%s пользователей найдено"], diff --git a/apps/workflowengine/l10n/ca.js b/apps/workflowengine/l10n/ca.js new file mode 100644 index 00000000000..c8de2819b34 --- /dev/null +++ b/apps/workflowengine/l10n/ca.js @@ -0,0 +1,73 @@ +OC.L10N.register( + "workflowengine", + { + "Saved" : "Desat", + "Saving failed:" : "Error al desar", + "File MIME type" : "Tipus MIME d\\'arxiu", + "is" : "és", + "is not" : "no és", + "matches" : "coincidències", + "does not match" : "No hi ha coincidències", + "Example: {placeholder}" : "Exemple: {placeholder}", + "File size (upload)" : "Mida d\\'arxiu (pujar)", + "less" : "menys", + "less or equals" : "menor o igual", + "greater or equals" : "major o igual", + "greater" : "superior", + "File system tag" : "Etiqueta del sistema de fitxers", + "is tagged with" : "està estiquetat amb", + "is not tagged with" : "no està etiquetat amb", + "Select tag…" : "Selecciona etiqueta...", + "Request remote address" : "Demanar adreça remota", + "matches IPv4" : "coincidències IPv4", + "does not match IPv4" : "No hi ha coincidencies IPv4", + "matches IPv6" : "Coincidències IPv6", + "does not match IPv6" : "No hi ha coincidències IPv6", + "Request time" : "Temps d'espera", + "between" : "entre", + "not between" : "no entre", + "Start" : "Comença", + "End" : "Finalitza", + "Select timezone…" : "Selecciona zona horaria", + "Request URL" : "URL de la petició", + "Predefined URLs" : "URLs predefinits", + "Files WebDAV" : "Arxius WebDAV", + "Request user agent" : "Agent d\\'usuari de la petició", + "Sync clients" : "Sincronitzar clients", + "Android client" : "Client android", + "iOS client" : "Client iOS", + "Desktop client" : "Client d'escriptori", + "User group membership" : "Pertinença a grup d'usuaris", + "is member of" : "és membre de", + "is not member of" : "no és membre de", + "The given operator is invalid" : "L\\'operador donat no és vàlid", + "The given regular expression is invalid" : "L\\'expresió regular donada no és vàlida", + "The given file size is invalid" : "El tamany de fitxer donat no és vàlid", + "The given tag id is invalid" : "L\\'Id d'etiqueta donat no és vàlid", + "The given IP range is invalid" : "El rang d\\'IPs donat no és vàlid", + "The given IP range is not valid for IPv4" : "El rang d\\'IP donat no és vàlid per IPv4", + "The given IP range is not valid for IPv6" : "El rang d\\'IP donat no és vàlid per IPv6", + "The given time span is invalid" : "El rang de temps donat no és vàlid", + "The given start time is invalid" : "El temps d\\'inici donat no és vàlid", + "The given end time is invalid" : "El temps de finalització donat no és vàlid", + "The given group does not exist" : "El grup donat no existeix", + "Check %s is invalid or does not exist" : "Comprovació %s no és vàlida o no existeix", + "Operation #%s does not exist" : "L\\'operació #%s no existeix", + "Operation %s does not exist" : "L\\'operació %s no existeix", + "Operation %s is invalid" : "L\\'operació %s no és vàlida", + "Check %s does not exist" : "Comprovació %s no existeix", + "Check %s is invalid" : "Comprovació %s no és vàlid", + "Check #%s does not exist" : "Comprovació #%s no existeix", + "Workflow" : "Flux de treball", + "Open documentation" : "Obrir documentació", + "Add rule group" : "Afegeix una regla de grup", + "Short rule description" : "Descripció breu de regla", + "Add rule" : "Afegir regla", + "Reset" : "Resetejar", + "Save" : "Desa", + "Saving…" : "Desant...", + "Loading…" : "Carregant...", + "Successfully saved" : "S\\'ha desat correctament", + "File mime type" : "Tipus mime de l\\'arxiu" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/ca.json b/apps/workflowengine/l10n/ca.json new file mode 100644 index 00000000000..d142823c0bb --- /dev/null +++ b/apps/workflowengine/l10n/ca.json @@ -0,0 +1,71 @@ +{ "translations": { + "Saved" : "Desat", + "Saving failed:" : "Error al desar", + "File MIME type" : "Tipus MIME d\\'arxiu", + "is" : "és", + "is not" : "no és", + "matches" : "coincidències", + "does not match" : "No hi ha coincidències", + "Example: {placeholder}" : "Exemple: {placeholder}", + "File size (upload)" : "Mida d\\'arxiu (pujar)", + "less" : "menys", + "less or equals" : "menor o igual", + "greater or equals" : "major o igual", + "greater" : "superior", + "File system tag" : "Etiqueta del sistema de fitxers", + "is tagged with" : "està estiquetat amb", + "is not tagged with" : "no està etiquetat amb", + "Select tag…" : "Selecciona etiqueta...", + "Request remote address" : "Demanar adreça remota", + "matches IPv4" : "coincidències IPv4", + "does not match IPv4" : "No hi ha coincidencies IPv4", + "matches IPv6" : "Coincidències IPv6", + "does not match IPv6" : "No hi ha coincidències IPv6", + "Request time" : "Temps d'espera", + "between" : "entre", + "not between" : "no entre", + "Start" : "Comença", + "End" : "Finalitza", + "Select timezone…" : "Selecciona zona horaria", + "Request URL" : "URL de la petició", + "Predefined URLs" : "URLs predefinits", + "Files WebDAV" : "Arxius WebDAV", + "Request user agent" : "Agent d\\'usuari de la petició", + "Sync clients" : "Sincronitzar clients", + "Android client" : "Client android", + "iOS client" : "Client iOS", + "Desktop client" : "Client d'escriptori", + "User group membership" : "Pertinença a grup d'usuaris", + "is member of" : "és membre de", + "is not member of" : "no és membre de", + "The given operator is invalid" : "L\\'operador donat no és vàlid", + "The given regular expression is invalid" : "L\\'expresió regular donada no és vàlida", + "The given file size is invalid" : "El tamany de fitxer donat no és vàlid", + "The given tag id is invalid" : "L\\'Id d'etiqueta donat no és vàlid", + "The given IP range is invalid" : "El rang d\\'IPs donat no és vàlid", + "The given IP range is not valid for IPv4" : "El rang d\\'IP donat no és vàlid per IPv4", + "The given IP range is not valid for IPv6" : "El rang d\\'IP donat no és vàlid per IPv6", + "The given time span is invalid" : "El rang de temps donat no és vàlid", + "The given start time is invalid" : "El temps d\\'inici donat no és vàlid", + "The given end time is invalid" : "El temps de finalització donat no és vàlid", + "The given group does not exist" : "El grup donat no existeix", + "Check %s is invalid or does not exist" : "Comprovació %s no és vàlida o no existeix", + "Operation #%s does not exist" : "L\\'operació #%s no existeix", + "Operation %s does not exist" : "L\\'operació %s no existeix", + "Operation %s is invalid" : "L\\'operació %s no és vàlida", + "Check %s does not exist" : "Comprovació %s no existeix", + "Check %s is invalid" : "Comprovació %s no és vàlid", + "Check #%s does not exist" : "Comprovació #%s no existeix", + "Workflow" : "Flux de treball", + "Open documentation" : "Obrir documentació", + "Add rule group" : "Afegeix una regla de grup", + "Short rule description" : "Descripció breu de regla", + "Add rule" : "Afegir regla", + "Reset" : "Resetejar", + "Save" : "Desa", + "Saving…" : "Desant...", + "Loading…" : "Carregant...", + "Successfully saved" : "S\\'ha desat correctament", + "File mime type" : "Tipus mime de l\\'arxiu" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/fr.js b/apps/workflowengine/l10n/fr.js index afe164def4f..5fb2ff3f410 100644 --- a/apps/workflowengine/l10n/fr.js +++ b/apps/workflowengine/l10n/fr.js @@ -26,7 +26,7 @@ OC.L10N.register( "Request time" : "Temps de requête", "between" : "entre", "not between" : "en dehors de", - "Start" : "Commencer", + "Start" : "Démarrer", "End" : "Fin", "Select timezone…" : "Sélectionner le fuseau horaire...", "Request URL" : "Demande d'URL", diff --git a/apps/workflowengine/l10n/fr.json b/apps/workflowengine/l10n/fr.json index 7cee1e0107a..cdf39458889 100644 --- a/apps/workflowengine/l10n/fr.json +++ b/apps/workflowengine/l10n/fr.json @@ -24,7 +24,7 @@ "Request time" : "Temps de requête", "between" : "entre", "not between" : "en dehors de", - "Start" : "Commencer", + "Start" : "Démarrer", "End" : "Fin", "Select timezone…" : "Sélectionner le fuseau horaire...", "Request URL" : "Demande d'URL", diff --git a/apps/workflowengine/l10n/ja.js b/apps/workflowengine/l10n/ja.js index e5c53ffc109..90f7cf1b932 100644 --- a/apps/workflowengine/l10n/ja.js +++ b/apps/workflowengine/l10n/ja.js @@ -1,7 +1,9 @@ OC.L10N.register( "workflowengine", { + "Saved" : "保存されました", "Saving failed:" : "保存に失敗しました:", + "File MIME type" : "ファイルMIMEタイプ", "is" : "は", "is not" : "は異なる", "matches" : "合致", diff --git a/apps/workflowengine/l10n/ja.json b/apps/workflowengine/l10n/ja.json index e04fe1f85dd..7c90834dcee 100644 --- a/apps/workflowengine/l10n/ja.json +++ b/apps/workflowengine/l10n/ja.json @@ -1,5 +1,7 @@ { "translations": { + "Saved" : "保存されました", "Saving failed:" : "保存に失敗しました:", + "File MIME type" : "ファイルMIMEタイプ", "is" : "は", "is not" : "は異なる", "matches" : "合致", diff --git a/apps/workflowengine/l10n/ko.js b/apps/workflowengine/l10n/ko.js new file mode 100644 index 00000000000..ab51b421bc2 --- /dev/null +++ b/apps/workflowengine/l10n/ko.js @@ -0,0 +1,73 @@ +OC.L10N.register( + "workflowengine", + { + "Saved" : "저장됨", + "Saving failed:" : "저장 실패:", + "File MIME type" : "파일 MIME 형식", + "is" : "맞음", + "is not" : "아님", + "matches" : "일치함", + "does not match" : "일치하지 않음", + "Example: {placeholder}" : "예: {placeholder}", + "File size (upload)" : "파일 크기(업로드)", + "less" : "작음", + "less or equals" : "작거나 같음", + "greater or equals" : "크거나 같음", + "greater" : "큼", + "File system tag" : "파일 시스템 태그", + "is tagged with" : "다음으로 태그됨", + "is not tagged with" : "다음으로 태그되지 않음", + "Select tag…" : "태그 선택…", + "Request remote address" : "요청의 원격 주소", + "matches IPv4" : "IPv4와 일치함", + "does not match IPv4" : "IPv4와 일치하지 않음", + "matches IPv6" : "IPv6과 일치함", + "does not match IPv6" : "IPv6과 일치하지 않음", + "Request time" : "요청 시간", + "between" : "사이", + "not between" : "사이에 없음", + "Start" : "시작", + "End" : "끝", + "Select timezone…" : "시간대 선택…", + "Request URL" : "요청 URL", + "Predefined URLs" : "사전 정의된 URL", + "Files WebDAV" : "파일 WebDAV", + "Request user agent" : "요청 사용자 에이전트", + "Sync clients" : "동기화 클라이언트", + "Android client" : "Android 클라이언트", + "iOS client" : "iOS 클라이언트", + "Desktop client" : "데스크톱 클라이언트", + "User group membership" : "사용자 그룹 구성원", + "is member of" : "구성원임", + "is not member of" : "구성원이 아님", + "The given operator is invalid" : "지정한 연산자가 잘못됨", + "The given regular expression is invalid" : "지정한 정규 표현식이 잘못됨", + "The given file size is invalid" : "지정한 파일 크기가 잘못됨", + "The given tag id is invalid" : "지정한 태그 ID가 잘못됨", + "The given IP range is invalid" : "지정한 IP 범위가 잘못됨", + "The given IP range is not valid for IPv4" : "지정한 IP 범위가 올바른 IPv4가 아님", + "The given IP range is not valid for IPv6" : "지정한 IP 범위가 올바른 IPv6이 아님", + "The given time span is invalid" : "지정한 시간 간격이 올바르지 않음", + "The given start time is invalid" : "지정한 시작 시간이 올바르지 않음", + "The given end time is invalid" : "지정한 끝 시간이 올바르지 않음", + "The given group does not exist" : "지정한 그룹이 존재히지 않음", + "Check %s is invalid or does not exist" : "검사 %s이(가) 올바르지 않거나 존재하지 않음", + "Operation #%s does not exist" : "작업 #%s이(가) 존재하지 않음", + "Operation %s does not exist" : "작업 %s이(가) 존재하지 않음", + "Operation %s is invalid" : "작업 %s이(가) 잘못됨", + "Check %s does not exist" : "검사 %s이(가) 존재하지 않음", + "Check %s is invalid" : "검사 %s이(가) 잘못됨", + "Check #%s does not exist" : "검사 #%s이(가) 존재하지 않음", + "Workflow" : "작업 흐름", + "Open documentation" : "문서 열기", + "Add rule group" : "규칙 그룹 추가", + "Short rule description" : "짧은 규칙 설명", + "Add rule" : "규칙 추가", + "Reset" : "초기화", + "Save" : "저장", + "Saving…" : "저장 중…", + "Loading…" : "불러오는 중…", + "Successfully saved" : "성공적으로 저장됨", + "File mime type" : "파일 MIME 형식" +}, +"nplurals=1; plural=0;"); diff --git a/apps/workflowengine/l10n/ko.json b/apps/workflowengine/l10n/ko.json new file mode 100644 index 00000000000..f23a10c0690 --- /dev/null +++ b/apps/workflowengine/l10n/ko.json @@ -0,0 +1,71 @@ +{ "translations": { + "Saved" : "저장됨", + "Saving failed:" : "저장 실패:", + "File MIME type" : "파일 MIME 형식", + "is" : "맞음", + "is not" : "아님", + "matches" : "일치함", + "does not match" : "일치하지 않음", + "Example: {placeholder}" : "예: {placeholder}", + "File size (upload)" : "파일 크기(업로드)", + "less" : "작음", + "less or equals" : "작거나 같음", + "greater or equals" : "크거나 같음", + "greater" : "큼", + "File system tag" : "파일 시스템 태그", + "is tagged with" : "다음으로 태그됨", + "is not tagged with" : "다음으로 태그되지 않음", + "Select tag…" : "태그 선택…", + "Request remote address" : "요청의 원격 주소", + "matches IPv4" : "IPv4와 일치함", + "does not match IPv4" : "IPv4와 일치하지 않음", + "matches IPv6" : "IPv6과 일치함", + "does not match IPv6" : "IPv6과 일치하지 않음", + "Request time" : "요청 시간", + "between" : "사이", + "not between" : "사이에 없음", + "Start" : "시작", + "End" : "끝", + "Select timezone…" : "시간대 선택…", + "Request URL" : "요청 URL", + "Predefined URLs" : "사전 정의된 URL", + "Files WebDAV" : "파일 WebDAV", + "Request user agent" : "요청 사용자 에이전트", + "Sync clients" : "동기화 클라이언트", + "Android client" : "Android 클라이언트", + "iOS client" : "iOS 클라이언트", + "Desktop client" : "데스크톱 클라이언트", + "User group membership" : "사용자 그룹 구성원", + "is member of" : "구성원임", + "is not member of" : "구성원이 아님", + "The given operator is invalid" : "지정한 연산자가 잘못됨", + "The given regular expression is invalid" : "지정한 정규 표현식이 잘못됨", + "The given file size is invalid" : "지정한 파일 크기가 잘못됨", + "The given tag id is invalid" : "지정한 태그 ID가 잘못됨", + "The given IP range is invalid" : "지정한 IP 범위가 잘못됨", + "The given IP range is not valid for IPv4" : "지정한 IP 범위가 올바른 IPv4가 아님", + "The given IP range is not valid for IPv6" : "지정한 IP 범위가 올바른 IPv6이 아님", + "The given time span is invalid" : "지정한 시간 간격이 올바르지 않음", + "The given start time is invalid" : "지정한 시작 시간이 올바르지 않음", + "The given end time is invalid" : "지정한 끝 시간이 올바르지 않음", + "The given group does not exist" : "지정한 그룹이 존재히지 않음", + "Check %s is invalid or does not exist" : "검사 %s이(가) 올바르지 않거나 존재하지 않음", + "Operation #%s does not exist" : "작업 #%s이(가) 존재하지 않음", + "Operation %s does not exist" : "작업 %s이(가) 존재하지 않음", + "Operation %s is invalid" : "작업 %s이(가) 잘못됨", + "Check %s does not exist" : "검사 %s이(가) 존재하지 않음", + "Check %s is invalid" : "검사 %s이(가) 잘못됨", + "Check #%s does not exist" : "검사 #%s이(가) 존재하지 않음", + "Workflow" : "작업 흐름", + "Open documentation" : "문서 열기", + "Add rule group" : "규칙 그룹 추가", + "Short rule description" : "짧은 규칙 설명", + "Add rule" : "규칙 추가", + "Reset" : "초기화", + "Save" : "저장", + "Saving…" : "저장 중…", + "Loading…" : "불러오는 중…", + "Successfully saved" : "성공적으로 저장됨", + "File mime type" : "파일 MIME 형식" +},"pluralForm" :"nplurals=1; plural=0;" +}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/pl.js b/apps/workflowengine/l10n/pl.js index 69ee7a89a1d..d268df7a0b7 100644 --- a/apps/workflowengine/l10n/pl.js +++ b/apps/workflowengine/l10n/pl.js @@ -1,7 +1,9 @@ OC.L10N.register( "workflowengine", { + "Saved" : "Zapisano", "Saving failed:" : "Zapis się nie udał:", + "File MIME type" : "Typy plików MIME", "is" : "jest", "is not" : "nie jest", "matches" : "pasuje", diff --git a/apps/workflowengine/l10n/pl.json b/apps/workflowengine/l10n/pl.json index 3b913fd5306..61160d783cb 100644 --- a/apps/workflowengine/l10n/pl.json +++ b/apps/workflowengine/l10n/pl.json @@ -1,5 +1,7 @@ { "translations": { + "Saved" : "Zapisano", "Saving failed:" : "Zapis się nie udał:", + "File MIME type" : "Typy plików MIME", "is" : "jest", "is not" : "nie jest", "matches" : "pasuje", diff --git a/autotest.sh b/autotest.sh index 584b5dc0bd8..fa15597bd55 100755 --- a/autotest.sh +++ b/autotest.sh @@ -143,6 +143,10 @@ function cleanup_config { if [ -f config/autotest-storage-swift.config.php ]; then rm config/autotest-storage-swift.config.php fi + # Remove autotest redis config + if [ -f config/redis.config.php ]; then + rm config/redis.config.php + fi # Remove mysqlmb4.config.php rm -f config/mysqlmb4.config.php } @@ -178,6 +182,10 @@ function execute_tests { fi cp tests/preseed-config.php config/config.php + if [ "$ENABLE_REDIS" == "true" ] ; then + cp tests/redis.config.php config/redis.config.php + fi + _DB=$DB # drop database diff --git a/build/integration/features/sharing-v1-part2.feature b/build/integration/features/sharing-v1-part2.feature index 48c18a0b948..99cc5a8b98f 100644 --- a/build/integration/features/sharing-v1-part2.feature +++ b/build/integration/features/sharing-v1-part2.feature @@ -357,391 +357,4 @@ Feature: sharing |{http://open-collaboration-services.org/ns}share-permissions | Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "19" - Scenario: Correct webdav share-permissions for received file with edit and reshare permissions - Given user "user0" exists - And user "user1" exists - And User "user0" uploads file with content "foo" to "/tmp.txt" - And file "/tmp.txt" of user "user0" is shared with user "user1" - When as "user1" gets properties of folder "/tmp.txt" with - |{http://open-collaboration-services.org/ns}share-permissions | - Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "19" - - Scenario: Correct webdav share-permissions for received file with edit permissions but no reshare permissions - Given user "user0" exists - And user "user1" exists - And User "user0" uploads file with content "foo" to "/tmp.txt" - And file "tmp.txt" of user "user0" is shared with user "user1" - And As an "user0" - And Updating last share with - | permissions | 3 | - When as "user1" gets properties of folder "/tmp.txt" with - |{http://open-collaboration-services.org/ns}share-permissions | - Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "3" - - Scenario: Correct webdav share-permissions for received file with reshare permissions but no edit permissions - Given user "user0" exists - And user "user1" exists - And User "user0" uploads file with content "foo" to "/tmp.txt" - And file "tmp.txt" of user "user0" is shared with user "user1" - And As an "user0" - And Updating last share with - | permissions | 17 | - When as "user1" gets properties of folder "/tmp.txt" with - |{http://open-collaboration-services.org/ns}share-permissions | - Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "17" - - Scenario: Correct webdav share-permissions for owned folder - Given user "user0" exists - And user "user0" created a folder "/tmp" - When as "user0" gets properties of folder "/" with - |{http://open-collaboration-services.org/ns}share-permissions | - Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "31" - - Scenario: Correct webdav share-permissions for received folder with all permissions - Given user "user0" exists - And user "user1" exists - And user "user0" created a folder "/tmp" - And file "/tmp" of user "user0" is shared with user "user1" - When as "user1" gets properties of folder "/tmp" with - |{http://open-collaboration-services.org/ns}share-permissions | - Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "31" - - Scenario: Correct webdav share-permissions for received folder with all permissions but edit - Given user "user0" exists - And user "user1" exists - And user "user0" created a folder "/tmp" - And file "/tmp" of user "user0" is shared with user "user1" - And As an "user0" - And Updating last share with - | permissions | 29 | - When as "user1" gets properties of folder "/tmp" with - |{http://open-collaboration-services.org/ns}share-permissions | - Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "29" - - Scenario: Correct webdav share-permissions for received folder with all permissions but create - Given user "user0" exists - And user "user1" exists - And user "user0" created a folder "/tmp" - And file "/tmp" of user "user0" is shared with user "user1" - And As an "user0" - And Updating last share with - | permissions | 27 | - When as "user1" gets properties of folder "/tmp" with - |{http://open-collaboration-services.org/ns}share-permissions | - Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "27" - - Scenario: Correct webdav share-permissions for received folder with all permissions but delete - Given user "user0" exists - And user "user1" exists - And user "user0" created a folder "/tmp" - And file "/tmp" of user "user0" is shared with user "user1" - And As an "user0" - And Updating last share with - | permissions | 23 | - When as "user1" gets properties of folder "/tmp" with - |{http://open-collaboration-services.org/ns}share-permissions | - Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "23" - - Scenario: Correct webdav share-permissions for received folder with all permissions but share - Given user "user0" exists - And user "user1" exists - And user "user0" created a folder "/tmp" - And file "/tmp" of user "user0" is shared with user "user1" - And As an "user0" - And Updating last share with - | permissions | 15 | - When as "user1" gets properties of folder "/tmp" with - |{http://open-collaboration-services.org/ns}share-permissions | - Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "15" - - Scenario: unique target names for incoming shares - Given user "user0" exists - And user "user1" exists - And user "user2" exists - And user "user0" created a folder "/foo" - And user "user1" created a folder "/foo" - When file "/foo" of user "user0" is shared with user "user2" - And file "/foo" of user "user1" is shared with user "user2" - Then user "user2" should see following elements - | /foo/ | - | /foo%20(2)/ | - - Scenario: Creating a new share with a disabled user - Given As an "admin" - And user "user0" exists - And user "user1" exists - And assure user "user0" is disabled - And As an "user0" - When sending "POST" to "/apps/files_sharing/api/v1/shares" with - | path | welcome.txt | - | shareWith | user1 | - | shareType | 0 | - Then the OCS status code should be "997" - And the HTTP status code should be "401" - - Scenario: Deleting a group share as user - Given As an "admin" - And user "user0" exists - And user "user1" exists - And group "group1" exists - And user "user1" belongs to group "group1" - And As an "user0" - And creating a share with - | path | welcome.txt | - | shareType | 1 | - | shareWith | group1 | - When As an "user1" - And Deleting last share - Then the OCS status code should be "100" - And the HTTP status code should be "200" - - Scenario: Merging shares for recipient when shared from outside with group and member - Given using old dav path - And As an "admin" - And user "user0" exists - And user "user1" exists - And group "group1" exists - And user "user1" belongs to group "group1" - And user "user0" created a folder "/merge-test-outside" - When folder "/merge-test-outside" of user "user0" is shared with group "group1" - And folder "/merge-test-outside" of user "user0" is shared with user "user1" - Then as "user1" the folder "/merge-test-outside" exists - And as "user1" the folder "/merge-test-outside (2)" does not exist - - Scenario: Merging shares for recipient when shared from outside with group and member with different permissions - Given As an "admin" - And user "user0" exists - And user "user1" exists - And group "group1" exists - And user "user1" belongs to group "group1" - And user "user0" created a folder "/merge-test-outside-perms" - When folder "/merge-test-outside-perms" of user "user0" is shared with group "group1" with permissions 1 - And folder "/merge-test-outside-perms" of user "user0" is shared with user "user1" with permissions 31 - Then as "user1" gets properties of folder "/merge-test-outside-perms" with - |{http://owncloud.org/ns}permissions| - And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK" - And as "user1" the folder "/merge-test-outside-perms (2)" does not exist - - Scenario: Merging shares for recipient when shared from outside with two groups - Given As an "admin" - And user "user0" exists - And user "user1" exists - And group "group1" exists - And group "group2" exists - And user "user1" belongs to group "group1" - And user "user1" belongs to group "group2" - And user "user0" created a folder "/merge-test-outside-twogroups" - When folder "/merge-test-outside-twogroups" of user "user0" is shared with group "group1" - And folder "/merge-test-outside-twogroups" of user "user0" is shared with group "group2" - Then as "user1" the folder "/merge-test-outside-twogroups" exists - And as "user1" the folder "/merge-test-outside-twogroups (2)" does not exist - - Scenario: Merging shares for recipient when shared from outside with two groups with different permissions - Given As an "admin" - And user "user0" exists - And user "user1" exists - And group "group1" exists - And group "group2" exists - And user "user1" belongs to group "group1" - And user "user1" belongs to group "group2" - And user "user0" created a folder "/merge-test-outside-twogroups-perms" - When folder "/merge-test-outside-twogroups-perms" of user "user0" is shared with group "group1" with permissions 1 - And folder "/merge-test-outside-twogroups-perms" of user "user0" is shared with group "group2" with permissions 31 - Then as "user1" gets properties of folder "/merge-test-outside-twogroups-perms" with - |{http://owncloud.org/ns}permissions| - And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK" - And as "user1" the folder "/merge-test-outside-twogroups-perms (2)" does not exist - - Scenario: Merging shares for recipient when shared from outside with two groups and member - Given As an "admin" - And user "user0" exists - And user "user1" exists - And group "group1" exists - And group "group2" exists - And user "user1" belongs to group "group1" - And user "user1" belongs to group "group2" - And user "user0" created a folder "/merge-test-outside-twogroups-member-perms" - When folder "/merge-test-outside-twogroups-member-perms" of user "user0" is shared with group "group1" with permissions 1 - And folder "/merge-test-outside-twogroups-member-perms" of user "user0" is shared with group "group2" with permissions 31 - And folder "/merge-test-outside-twogroups-member-perms" of user "user0" is shared with user "user1" with permissions 1 - Then as "user1" gets properties of folder "/merge-test-outside-twogroups-member-perms" with - |{http://owncloud.org/ns}permissions| - And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK" - And as "user1" the folder "/merge-test-outside-twogroups-member-perms (2)" does not exist - - Scenario: Merging shares for recipient when shared from inside with group - Given As an "admin" - And user "user0" exists - And group "group1" exists - And user "user0" belongs to group "group1" - And user "user0" created a folder "/merge-test-inside-group" - When folder "/merge-test-inside-group" of user "user0" is shared with group "group1" - Then as "user0" the folder "/merge-test-inside-group" exists - And as "user0" the folder "/merge-test-inside-group (2)" does not exist - - Scenario: Merging shares for recipient when shared from inside with two groups - Given As an "admin" - And user "user0" exists - And group "group1" exists - And group "group2" exists - And user "user0" belongs to group "group1" - And user "user0" belongs to group "group2" - And user "user0" created a folder "/merge-test-inside-twogroups" - When folder "/merge-test-inside-twogroups" of user "user0" is shared with group "group1" - And folder "/merge-test-inside-twogroups" of user "user0" is shared with group "group2" - Then as "user0" the folder "/merge-test-inside-twogroups" exists - And as "user0" the folder "/merge-test-inside-twogroups (2)" does not exist - And as "user0" the folder "/merge-test-inside-twogroups (3)" does not exist - - Scenario: Merging shares for recipient when shared from inside with group with less permissions - Given As an "admin" - And user "user0" exists - And group "group1" exists - And group "group2" exists - And user "user0" belongs to group "group1" - And user "user0" belongs to group "group2" - And user "user0" created a folder "/merge-test-inside-twogroups-perms" - When folder "/merge-test-inside-twogroups-perms" of user "user0" is shared with group "group1" - And folder "/merge-test-inside-twogroups-perms" of user "user0" is shared with group "group2" - Then as "user0" gets properties of folder "/merge-test-inside-twogroups-perms" with - |{http://owncloud.org/ns}permissions| - And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "RDNVCK" - And as "user0" the folder "/merge-test-inside-twogroups-perms (2)" does not exist - And as "user0" the folder "/merge-test-inside-twogroups-perms (3)" does not exist - - Scenario: Merging shares for recipient when shared from outside with group then user and recipient renames in between - Given As an "admin" - And user "user0" exists - And user "user1" exists - And group "group1" exists - And user "user1" belongs to group "group1" - And user "user0" created a folder "/merge-test-outside-groups-renamebeforesecondshare" - When folder "/merge-test-outside-groups-renamebeforesecondshare" of user "user0" is shared with group "group1" - And User "user1" moved folder "/merge-test-outside-groups-renamebeforesecondshare" to "/merge-test-outside-groups-renamebeforesecondshare-renamed" - And Sleep for "1" seconds - And folder "/merge-test-outside-groups-renamebeforesecondshare" of user "user0" is shared with user "user1" - Then as "user1" gets properties of folder "/merge-test-outside-groups-renamebeforesecondshare-renamed" with - |{http://owncloud.org/ns}permissions| - And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK" - And as "user1" the folder "/merge-test-outside-groups-renamebeforesecondshare" does not exist - - Scenario: Merging shares for recipient when shared from outside with user then group and recipient renames in between - Given using old dav path - Given As an "admin" - And user "user0" exists - And user "user1" exists - And group "group1" exists - And user "user1" belongs to group "group1" - And user "user0" created a folder "/merge-test-outside-groups-renamebeforesecondshare" - When folder "/merge-test-outside-groups-renamebeforesecondshare" of user "user0" is shared with user "user1" - And User "user1" moved folder "/merge-test-outside-groups-renamebeforesecondshare" to "/merge-test-outside-groups-renamebeforesecondshare-renamed" - And Sleep for "1" seconds - And folder "/merge-test-outside-groups-renamebeforesecondshare" of user "user0" is shared with group "group1" - Then as "user1" gets properties of folder "/merge-test-outside-groups-renamebeforesecondshare-renamed" with - |{http://owncloud.org/ns}permissions| - And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK" - And as "user1" the folder "/merge-test-outside-groups-renamebeforesecondshare" does not exist - - Scenario: Empting trashbin - Given As an "admin" - And user "user0" exists - And User "user0" deletes file "/textfile0.txt" - When User "user0" empties trashbin - Then the HTTP status code should be "200" - - Scenario: orphaned shares - Given As an "admin" - And user "user0" exists - And user "user1" exists - And user "user0" created a folder "/common" - And user "user0" created a folder "/common/sub" - And file "/common/sub" of user "user0" is shared with user "user1" - And User "user0" deletes folder "/common" - When User "user0" empties trashbin - Then as "user1" the folder "/sub" does not exist - - Scenario: sharing again an own file while belonging to a group - Given As an "admin" - Given user "user0" exists - And group "sharing-group" exists - And user "user0" belongs to group "sharing-group" - And file "welcome.txt" of user "user0" is shared with group "sharing-group" - And Deleting last share - When sending "POST" to "/apps/files_sharing/api/v1/shares" with - | path | welcome.txt | - | shareWith | sharing-group | - | shareType | 1 | - Then the OCS status code should be "100" - And the HTTP status code should be "200" - - Scenario: unshare from self - Given As an "admin" - And user "user0" exists - And user "user1" exists - And group "sharing-group" exists - And user "user0" belongs to group "sharing-group" - And user "user1" belongs to group "sharing-group" - And file "/PARENT/parent.txt" of user "user0" is shared with group "sharing-group" - And user "user0" stores etag of element "/PARENT" - And user "user1" stores etag of element "/" - And As an "user1" - When Deleting last share - Then etag of element "/" of user "user1" has changed - And etag of element "/PARENT" of user "user0" has not changed - - Scenario: do not allow to increase link share permissions on reshare - Given As an "admin" - And user "admin" created a folder "/TMP" - And user "user0" exists - And creating a share with - | path | TMP | - | shareType | 0 | - | shareWith | user0 | - | permissions | 17 | - When As an "user0" - And creating a share with - | path | TMP | - | shareType | 3 | - And Updating last share with - | publicUpload | true | - Then the OCS status code should be "404" - And the HTTP status code should be "200" - - Scenario: deleting file out of a share as recipient creates a backup for the owner - Given As an "admin" - And user "user0" exists - And user "user1" exists - And user "user0" created a folder "/shared" - And User "user0" moved file "/textfile0.txt" to "/shared/shared_file.txt" - And folder "/shared" of user "user0" is shared with user "user1" - When User "user1" deletes file "/shared/shared_file.txt" - Then as "user1" the file "/shared/shared_file.txt" does not exist - And as "user0" the file "/shared/shared_file.txt" does not exist - And as "user0" the file "/shared_file.txt" exists in trash - And as "user1" the file "/shared_file.txt" exists in trash - - Scenario: deleting folder out of a share as recipient creates a backup for the owner - Given As an "admin" - And user "user0" exists - And user "user1" exists - And user "user0" created a folder "/shared" - And user "user0" created a folder "/shared/sub" - And User "user0" moved file "/textfile0.txt" to "/shared/sub/shared_file.txt" - And folder "/shared" of user "user0" is shared with user "user1" - When User "user1" deletes folder "/shared/sub" - Then as "user1" the folder "/shared/sub" does not exist - And as "user0" the folder "/shared/sub" does not exist - And as "user0" the folder "/sub" exists in trash - And as "user0" the file "/sub/shared_file.txt" exists in trash - And as "user1" the folder "/sub" exists in trash - And as "user1" the file "/sub/shared_file.txt" exists in trash - - Scenario: moving a file into a share as recipient - Given As an "admin" - And user "user0" exists - And user "user1" exists - And user "user0" created a folder "/shared" - And folder "/shared" of user "user0" is shared with user "user1" - When User "user1" moved file "/textfile0.txt" to "/shared/shared_file.txt" - Then as "user1" the file "/shared/shared_file.txt" exists - And as "user0" the file "/shared/shared_file.txt" exists
\ No newline at end of file +# See sharing-v1-part3.feature diff --git a/build/integration/features/sharing-v1-part3.feature b/build/integration/features/sharing-v1-part3.feature new file mode 100644 index 00000000000..b4b1ae9bf94 --- /dev/null +++ b/build/integration/features/sharing-v1-part3.feature @@ -0,0 +1,395 @@ +Feature: sharing + Background: + Given using api version "1" + Given using old dav path + +# See sharing-v1-part2.feature + + Scenario: Correct webdav share-permissions for received file with edit and reshare permissions + Given user "user0" exists + And user "user1" exists + And User "user0" uploads file with content "foo" to "/tmp.txt" + And file "/tmp.txt" of user "user0" is shared with user "user1" + When as "user1" gets properties of folder "/tmp.txt" with + |{http://open-collaboration-services.org/ns}share-permissions | + Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "19" + + Scenario: Correct webdav share-permissions for received file with edit permissions but no reshare permissions + Given user "user0" exists + And user "user1" exists + And User "user0" uploads file with content "foo" to "/tmp.txt" + And file "tmp.txt" of user "user0" is shared with user "user1" + And As an "user0" + And Updating last share with + | permissions | 3 | + When as "user1" gets properties of folder "/tmp.txt" with + |{http://open-collaboration-services.org/ns}share-permissions | + Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "3" + + Scenario: Correct webdav share-permissions for received file with reshare permissions but no edit permissions + Given user "user0" exists + And user "user1" exists + And User "user0" uploads file with content "foo" to "/tmp.txt" + And file "tmp.txt" of user "user0" is shared with user "user1" + And As an "user0" + And Updating last share with + | permissions | 17 | + When as "user1" gets properties of folder "/tmp.txt" with + |{http://open-collaboration-services.org/ns}share-permissions | + Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "17" + + Scenario: Correct webdav share-permissions for owned folder + Given user "user0" exists + And user "user0" created a folder "/tmp" + When as "user0" gets properties of folder "/" with + |{http://open-collaboration-services.org/ns}share-permissions | + Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "31" + + Scenario: Correct webdav share-permissions for received folder with all permissions + Given user "user0" exists + And user "user1" exists + And user "user0" created a folder "/tmp" + And file "/tmp" of user "user0" is shared with user "user1" + When as "user1" gets properties of folder "/tmp" with + |{http://open-collaboration-services.org/ns}share-permissions | + Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "31" + + Scenario: Correct webdav share-permissions for received folder with all permissions but edit + Given user "user0" exists + And user "user1" exists + And user "user0" created a folder "/tmp" + And file "/tmp" of user "user0" is shared with user "user1" + And As an "user0" + And Updating last share with + | permissions | 29 | + When as "user1" gets properties of folder "/tmp" with + |{http://open-collaboration-services.org/ns}share-permissions | + Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "29" + + Scenario: Correct webdav share-permissions for received folder with all permissions but create + Given user "user0" exists + And user "user1" exists + And user "user0" created a folder "/tmp" + And file "/tmp" of user "user0" is shared with user "user1" + And As an "user0" + And Updating last share with + | permissions | 27 | + When as "user1" gets properties of folder "/tmp" with + |{http://open-collaboration-services.org/ns}share-permissions | + Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "27" + + Scenario: Correct webdav share-permissions for received folder with all permissions but delete + Given user "user0" exists + And user "user1" exists + And user "user0" created a folder "/tmp" + And file "/tmp" of user "user0" is shared with user "user1" + And As an "user0" + And Updating last share with + | permissions | 23 | + When as "user1" gets properties of folder "/tmp" with + |{http://open-collaboration-services.org/ns}share-permissions | + Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "23" + + Scenario: Correct webdav share-permissions for received folder with all permissions but share + Given user "user0" exists + And user "user1" exists + And user "user0" created a folder "/tmp" + And file "/tmp" of user "user0" is shared with user "user1" + And As an "user0" + And Updating last share with + | permissions | 15 | + When as "user1" gets properties of folder "/tmp" with + |{http://open-collaboration-services.org/ns}share-permissions | + Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "15" + + Scenario: unique target names for incoming shares + Given user "user0" exists + And user "user1" exists + And user "user2" exists + And user "user0" created a folder "/foo" + And user "user1" created a folder "/foo" + When file "/foo" of user "user0" is shared with user "user2" + And file "/foo" of user "user1" is shared with user "user2" + Then user "user2" should see following elements + | /foo/ | + | /foo%20(2)/ | + + Scenario: Creating a new share with a disabled user + Given As an "admin" + And user "user0" exists + And user "user1" exists + And assure user "user0" is disabled + And As an "user0" + When sending "POST" to "/apps/files_sharing/api/v1/shares" with + | path | welcome.txt | + | shareWith | user1 | + | shareType | 0 | + Then the OCS status code should be "997" + And the HTTP status code should be "401" + + Scenario: Deleting a group share as user + Given As an "admin" + And user "user0" exists + And user "user1" exists + And group "group1" exists + And user "user1" belongs to group "group1" + And As an "user0" + And creating a share with + | path | welcome.txt | + | shareType | 1 | + | shareWith | group1 | + When As an "user1" + And Deleting last share + Then the OCS status code should be "100" + And the HTTP status code should be "200" + + Scenario: Merging shares for recipient when shared from outside with group and member + Given using old dav path + And As an "admin" + And user "user0" exists + And user "user1" exists + And group "group1" exists + And user "user1" belongs to group "group1" + And user "user0" created a folder "/merge-test-outside" + When folder "/merge-test-outside" of user "user0" is shared with group "group1" + And folder "/merge-test-outside" of user "user0" is shared with user "user1" + Then as "user1" the folder "/merge-test-outside" exists + And as "user1" the folder "/merge-test-outside (2)" does not exist + + Scenario: Merging shares for recipient when shared from outside with group and member with different permissions + Given As an "admin" + And user "user0" exists + And user "user1" exists + And group "group1" exists + And user "user1" belongs to group "group1" + And user "user0" created a folder "/merge-test-outside-perms" + When folder "/merge-test-outside-perms" of user "user0" is shared with group "group1" with permissions 1 + And folder "/merge-test-outside-perms" of user "user0" is shared with user "user1" with permissions 31 + Then as "user1" gets properties of folder "/merge-test-outside-perms" with + |{http://owncloud.org/ns}permissions| + And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK" + And as "user1" the folder "/merge-test-outside-perms (2)" does not exist + + Scenario: Merging shares for recipient when shared from outside with two groups + Given As an "admin" + And user "user0" exists + And user "user1" exists + And group "group1" exists + And group "group2" exists + And user "user1" belongs to group "group1" + And user "user1" belongs to group "group2" + And user "user0" created a folder "/merge-test-outside-twogroups" + When folder "/merge-test-outside-twogroups" of user "user0" is shared with group "group1" + And folder "/merge-test-outside-twogroups" of user "user0" is shared with group "group2" + Then as "user1" the folder "/merge-test-outside-twogroups" exists + And as "user1" the folder "/merge-test-outside-twogroups (2)" does not exist + + Scenario: Merging shares for recipient when shared from outside with two groups with different permissions + Given As an "admin" + And user "user0" exists + And user "user1" exists + And group "group1" exists + And group "group2" exists + And user "user1" belongs to group "group1" + And user "user1" belongs to group "group2" + And user "user0" created a folder "/merge-test-outside-twogroups-perms" + When folder "/merge-test-outside-twogroups-perms" of user "user0" is shared with group "group1" with permissions 1 + And folder "/merge-test-outside-twogroups-perms" of user "user0" is shared with group "group2" with permissions 31 + Then as "user1" gets properties of folder "/merge-test-outside-twogroups-perms" with + |{http://owncloud.org/ns}permissions| + And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK" + And as "user1" the folder "/merge-test-outside-twogroups-perms (2)" does not exist + + Scenario: Merging shares for recipient when shared from outside with two groups and member + Given As an "admin" + And user "user0" exists + And user "user1" exists + And group "group1" exists + And group "group2" exists + And user "user1" belongs to group "group1" + And user "user1" belongs to group "group2" + And user "user0" created a folder "/merge-test-outside-twogroups-member-perms" + When folder "/merge-test-outside-twogroups-member-perms" of user "user0" is shared with group "group1" with permissions 1 + And folder "/merge-test-outside-twogroups-member-perms" of user "user0" is shared with group "group2" with permissions 31 + And folder "/merge-test-outside-twogroups-member-perms" of user "user0" is shared with user "user1" with permissions 1 + Then as "user1" gets properties of folder "/merge-test-outside-twogroups-member-perms" with + |{http://owncloud.org/ns}permissions| + And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK" + And as "user1" the folder "/merge-test-outside-twogroups-member-perms (2)" does not exist + + Scenario: Merging shares for recipient when shared from inside with group + Given As an "admin" + And user "user0" exists + And group "group1" exists + And user "user0" belongs to group "group1" + And user "user0" created a folder "/merge-test-inside-group" + When folder "/merge-test-inside-group" of user "user0" is shared with group "group1" + Then as "user0" the folder "/merge-test-inside-group" exists + And as "user0" the folder "/merge-test-inside-group (2)" does not exist + + Scenario: Merging shares for recipient when shared from inside with two groups + Given As an "admin" + And user "user0" exists + And group "group1" exists + And group "group2" exists + And user "user0" belongs to group "group1" + And user "user0" belongs to group "group2" + And user "user0" created a folder "/merge-test-inside-twogroups" + When folder "/merge-test-inside-twogroups" of user "user0" is shared with group "group1" + And folder "/merge-test-inside-twogroups" of user "user0" is shared with group "group2" + Then as "user0" the folder "/merge-test-inside-twogroups" exists + And as "user0" the folder "/merge-test-inside-twogroups (2)" does not exist + And as "user0" the folder "/merge-test-inside-twogroups (3)" does not exist + + Scenario: Merging shares for recipient when shared from inside with group with less permissions + Given As an "admin" + And user "user0" exists + And group "group1" exists + And group "group2" exists + And user "user0" belongs to group "group1" + And user "user0" belongs to group "group2" + And user "user0" created a folder "/merge-test-inside-twogroups-perms" + When folder "/merge-test-inside-twogroups-perms" of user "user0" is shared with group "group1" + And folder "/merge-test-inside-twogroups-perms" of user "user0" is shared with group "group2" + Then as "user0" gets properties of folder "/merge-test-inside-twogroups-perms" with + |{http://owncloud.org/ns}permissions| + And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "RDNVCK" + And as "user0" the folder "/merge-test-inside-twogroups-perms (2)" does not exist + And as "user0" the folder "/merge-test-inside-twogroups-perms (3)" does not exist + + Scenario: Merging shares for recipient when shared from outside with group then user and recipient renames in between + Given As an "admin" + And user "user0" exists + And user "user1" exists + And group "group1" exists + And user "user1" belongs to group "group1" + And user "user0" created a folder "/merge-test-outside-groups-renamebeforesecondshare" + When folder "/merge-test-outside-groups-renamebeforesecondshare" of user "user0" is shared with group "group1" + And User "user1" moved folder "/merge-test-outside-groups-renamebeforesecondshare" to "/merge-test-outside-groups-renamebeforesecondshare-renamed" + And Sleep for "1" seconds + And folder "/merge-test-outside-groups-renamebeforesecondshare" of user "user0" is shared with user "user1" + Then as "user1" gets properties of folder "/merge-test-outside-groups-renamebeforesecondshare-renamed" with + |{http://owncloud.org/ns}permissions| + And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK" + And as "user1" the folder "/merge-test-outside-groups-renamebeforesecondshare" does not exist + + Scenario: Merging shares for recipient when shared from outside with user then group and recipient renames in between + Given using old dav path + Given As an "admin" + And user "user0" exists + And user "user1" exists + And group "group1" exists + And user "user1" belongs to group "group1" + And user "user0" created a folder "/merge-test-outside-groups-renamebeforesecondshare" + When folder "/merge-test-outside-groups-renamebeforesecondshare" of user "user0" is shared with user "user1" + And User "user1" moved folder "/merge-test-outside-groups-renamebeforesecondshare" to "/merge-test-outside-groups-renamebeforesecondshare-renamed" + And Sleep for "1" seconds + And folder "/merge-test-outside-groups-renamebeforesecondshare" of user "user0" is shared with group "group1" + Then as "user1" gets properties of folder "/merge-test-outside-groups-renamebeforesecondshare-renamed" with + |{http://owncloud.org/ns}permissions| + And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK" + And as "user1" the folder "/merge-test-outside-groups-renamebeforesecondshare" does not exist + + Scenario: Empting trashbin + Given As an "admin" + And user "user0" exists + And User "user0" deletes file "/textfile0.txt" + When User "user0" empties trashbin + Then the HTTP status code should be "200" + + Scenario: orphaned shares + Given As an "admin" + And user "user0" exists + And user "user1" exists + And user "user0" created a folder "/common" + And user "user0" created a folder "/common/sub" + And file "/common/sub" of user "user0" is shared with user "user1" + And User "user0" deletes folder "/common" + When User "user0" empties trashbin + Then as "user1" the folder "/sub" does not exist + + Scenario: sharing again an own file while belonging to a group + Given As an "admin" + Given user "user0" exists + And group "sharing-group" exists + And user "user0" belongs to group "sharing-group" + And file "welcome.txt" of user "user0" is shared with group "sharing-group" + And Deleting last share + When sending "POST" to "/apps/files_sharing/api/v1/shares" with + | path | welcome.txt | + | shareWith | sharing-group | + | shareType | 1 | + Then the OCS status code should be "100" + And the HTTP status code should be "200" + + Scenario: unshare from self + Given As an "admin" + And user "user0" exists + And user "user1" exists + And group "sharing-group" exists + And user "user0" belongs to group "sharing-group" + And user "user1" belongs to group "sharing-group" + And file "/PARENT/parent.txt" of user "user0" is shared with group "sharing-group" + And user "user0" stores etag of element "/PARENT" + And user "user1" stores etag of element "/" + And As an "user1" + When Deleting last share + Then etag of element "/" of user "user1" has changed + And etag of element "/PARENT" of user "user0" has not changed + + Scenario: do not allow to increase link share permissions on reshare + Given As an "admin" + And user "admin" created a folder "/TMP" + And user "user0" exists + And creating a share with + | path | TMP | + | shareType | 0 | + | shareWith | user0 | + | permissions | 17 | + When As an "user0" + And creating a share with + | path | TMP | + | shareType | 3 | + And Updating last share with + | publicUpload | true | + Then the OCS status code should be "404" + And the HTTP status code should be "200" + + Scenario: deleting file out of a share as recipient creates a backup for the owner + Given As an "admin" + And user "user0" exists + And user "user1" exists + And user "user0" created a folder "/shared" + And User "user0" moved file "/textfile0.txt" to "/shared/shared_file.txt" + And folder "/shared" of user "user0" is shared with user "user1" + When User "user1" deletes file "/shared/shared_file.txt" + Then as "user1" the file "/shared/shared_file.txt" does not exist + And as "user0" the file "/shared/shared_file.txt" does not exist + And as "user0" the file "/shared_file.txt" exists in trash + And as "user1" the file "/shared_file.txt" exists in trash + + Scenario: deleting folder out of a share as recipient creates a backup for the owner + Given As an "admin" + And user "user0" exists + And user "user1" exists + And user "user0" created a folder "/shared" + And user "user0" created a folder "/shared/sub" + And User "user0" moved file "/textfile0.txt" to "/shared/sub/shared_file.txt" + And folder "/shared" of user "user0" is shared with user "user1" + When User "user1" deletes folder "/shared/sub" + Then as "user1" the folder "/shared/sub" does not exist + And as "user0" the folder "/shared/sub" does not exist + And as "user0" the folder "/sub" exists in trash + And as "user0" the file "/sub/shared_file.txt" exists in trash + And as "user1" the folder "/sub" exists in trash + And as "user1" the file "/sub/shared_file.txt" exists in trash + + Scenario: moving a file into a share as recipient + Given As an "admin" + And user "user0" exists + And user "user1" exists + And user "user0" created a folder "/shared" + And folder "/shared" of user "user0" is shared with user "user1" + When User "user1" moved file "/textfile0.txt" to "/shared/shared_file.txt" + Then as "user1" the file "/shared/shared_file.txt" exists + And as "user0" the file "/shared/shared_file.txt" exists
\ No newline at end of file diff --git a/config/config.sample.php b/config/config.sample.php index 4646de33082..9f2ede88169 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -1062,7 +1062,8 @@ $CONFIG = array( * Only for use with Redis Clustering, for Sentinel-based setups use the single * server configuration above, and perform HA on the hostname. * - * Redis Cluster support requires the php module phpredis in version 3.0.0 or higher. + * Redis Cluster support requires the php module phpredis in version 3.0.0 or + * higher for PHP 7+ or phpredis in version 2.2.8 for PHP 5.6. * * Available failover modes: * - \RedisCluster::FAILOVER_NONE - only send commands to master nodes (default) @@ -1234,16 +1235,23 @@ $CONFIG = array( 'sqlite.journal_mode' => 'DELETE', /** - * If this setting is set to true MySQL can handle 4 byte characters instead of - * 3 byte characters + * During setup, if requirements are met (see below), this setting is set to true + * and MySQL can handle 4 byte characters instead of 3 byte characters. * + * If you want to convert an existing 3-byte setup into a 4-byte setup please + * set the parameters in MySQL as mentioned below and run the migration command: + * ./occ db:convert-mysql-charset + * The config setting will be set automatically after a successful run. + * + * Consult the documentation for more details. + * * MySQL requires a special setup for longer indexes (> 767 bytes) which are * needed: * * [mysqld] - * innodb_large_prefix=true - * innodb_file_format=barracuda - * innodb_file_per_table=true + * innodb_large_prefix=ON + * innodb_file_format=Barracuda + * innodb_file_per_table=ON * * Tables will be created with * * character set: utf8mb4 @@ -1256,8 +1264,6 @@ $CONFIG = array( * https://mariadb.com/kb/en/mariadb/xtradbinnodb-server-system-variables/#innodb_large_prefix * http://www.tocker.ca/2013/10/31/benchmarking-innodb-page-compression-performance.html * http://mechanics.flite.com/blog/2014/07/29/using-innodb-large-prefix-to-avoid-error-1071/ - * - * WARNING: EXPERIMENTAL */ 'mysql.utf8mb4' => false, diff --git a/core/Command/Db/ConvertMysqlToMB4.php b/core/Command/Db/ConvertMysqlToMB4.php index 286274753ee..38aff8b09d8 100644 --- a/core/Command/Db/ConvertMysqlToMB4.php +++ b/core/Command/Db/ConvertMysqlToMB4.php @@ -22,6 +22,7 @@ namespace OC\Core\Command\Db; use Doctrine\DBAL\Platforms\MySqlPlatform; +use OC\DB\MySqlTools; use OC\Migration\ConsoleOutput; use OC\Repair\Collation; use OCP\IConfig; @@ -71,18 +72,17 @@ class ConvertMysqlToMB4 extends Command { return 1; } - $oldValue = $this->config->getSystemValue('mysql.utf8mb4', false); - // enable charset - $this->config->setSystemValue('mysql.utf8mb4', true); - - if (!$this->connection->supports4ByteText()) { + $tools = new MySqlTools(); + if (!$tools->supports4ByteCharset($this->connection)) { $url = $this->urlGenerator->linkToDocs('admin-mysql-utf8mb4'); $output->writeln("The database is not properly setup to use the charset utf8mb4."); $output->writeln("For more information please read the documentation at $url"); - $this->config->setSystemValue('mysql.utf8mb4', $oldValue); return 1; } + // enable charset + $this->config->setSystemValue('mysql.utf8mb4', true); + // run conversion $coll = new Collation($this->config, $this->logger, $this->connection, false); $coll->run(new ConsoleOutput($output)); diff --git a/core/Controller/ClientFlowLoginController.php b/core/Controller/ClientFlowLoginController.php index ca9c092321a..8c2c121d5b2 100644 --- a/core/Controller/ClientFlowLoginController.php +++ b/core/Controller/ClientFlowLoginController.php @@ -232,7 +232,7 @@ class ClientFlowLoginController extends Controller { IToken::DO_NOT_REMEMBER ); - return new Http\RedirectResponse('nc://' . urlencode($loginName) . ':' . urlencode($token) . '@' . $this->request->getServerHost()); + return new Http\RedirectResponse('nc://login/server:' . $this->request->getServerHost() . '&user:' . urlencode($loginName) . '&password:' . urlencode($token)); } } diff --git a/core/Controller/PreviewController.php b/core/Controller/PreviewController.php index 4b9ba8b60d4..4e2b2f0287a 100644 --- a/core/Controller/PreviewController.php +++ b/core/Controller/PreviewController.php @@ -126,6 +126,8 @@ class PreviewController extends Controller { return $response; } catch (NotFoundException $e) { return new DataResponse([], Http::STATUS_NOT_FOUND); + } catch (\InvalidArgumentException $e) { + return new DataResponse([], Http::STATUS_BAD_REQUEST); } } diff --git a/core/css/guest.css b/core/css/guest.css index e6e194f6417..689eb45d65f 100644 --- a/core/css/guest.css +++ b/core/css/guest.css @@ -70,9 +70,16 @@ h3 { background-size: 175px; background-position: center; width: 252px; - height: 120px; + min-height: 120px; + max-height: 200px; margin: 0 auto; } + +#header .logo img { + opacity: 0; + max-width: 100%; + max-height: 200px; +} .wrapper { min-height: 100%; margin: 0 auto -70px; @@ -637,3 +644,27 @@ footer, height: 1px; overflow: hidden; } + +/* for low-res screens, use Regular font-weight instead of Light */ +@media (-webkit-max-device-pixel-ratio: 1.3), (max-resolution: 124.8dpi) { + @font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: normal; + src: local('Open Sans'), local('OpenSans'), url('../fonts/OpenSans-Regular.woff') format('woff'); + } +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 300; + src: local('Open Sans Light'), local('OpenSans-Light'), url('../fonts/OpenSans-Light.woff') format('woff'); +} + +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url('../fonts/OpenSans-Semibold.woff') format('woff'); +} diff --git a/core/css/share.scss b/core/css/share.scss index 2e1c99b6f41..35d90fb4b88 100644 --- a/core/css/share.scss +++ b/core/css/share.scss @@ -43,6 +43,9 @@ font-weight: 400; white-space: nowrap; } + input[type='radio'].radio + label { + margin-left: -1px; + } input[type='checkbox'] { margin: 0 3px 0 8px; vertical-align: middle; diff --git a/core/css/styles.scss b/core/css/styles.scss index f85ae93ccc8..3468cf6900a 100644 --- a/core/css/styles.scss +++ b/core/css/styles.scss @@ -1072,6 +1072,7 @@ span.ui-icon { /* show ~4.5 entries */ height: 278px; width: 350px; + max-width: 90%; right: 13px; &::after { diff --git a/core/js/contactsmenu.js b/core/js/contactsmenu.js index 9ce27509e8b..3da6ea127cd 100644 --- a/core/js/contactsmenu.js +++ b/core/js/contactsmenu.js @@ -50,7 +50,8 @@ + '</div>'; var CONTACT_TEMPLATE = '' + '{{#if contact.avatar}}' - + '<img src="{{contact.avatar}}" class="avatar">' + + '<img src="{{contact.avatar}}&size=32" class="avatar"' + + 'srcset="{{contact.avatar}}&size=32 1x, {{contact.avatar}}&size=64 2x, {{contact.avatar}}&size=128 4x">' + '{{else}}' + '<div class="avatar"></div>' + '{{/if}}' diff --git a/core/js/files/client.js b/core/js/files/client.js index e8cf5b9bdb4..da8a1205e4b 100644 --- a/core/js/files/client.js +++ b/core/js/files/client.js @@ -725,7 +725,7 @@ }; if (!allowOverwrite) { - headers['Overwrite'] = 'F'; + headers.Overwrite = 'F'; } this._client.request( diff --git a/core/js/files/iedavclient.js b/core/js/files/iedavclient.js index a0185fb3bec..4e2c17abc55 100644 --- a/core/js/files/iedavclient.js +++ b/core/js/files/iedavclient.js @@ -32,7 +32,7 @@ headers = headers || {}; if (this.userName) { - headers['Authorization'] = 'Basic ' + btoa(this.userName + ':' + this.password); + headers.Authorization = 'Basic ' + btoa(this.userName + ':' + this.password); // xhr.open(method, this.resolveUrl(url), true, this.userName, this.password); } xhr.open(method, this.resolveUrl(url), true); diff --git a/core/js/jquery-showpassword.js b/core/js/jquery-showpassword.js index 23ddf947719..5d518c78bcb 100644 --- a/core/js/jquery-showpassword.js +++ b/core/js/jquery-showpassword.js @@ -17,8 +17,8 @@ showPassword: function(c) { // Setup callback object - var callback = {'fn':null,'args':{}} - callback.fn = c; + var callback = {'fn':null,'args':{}}; + callback.fn = c; // Clones passwords and turn the clones into text inputs var cloneElement = function( element ) { @@ -90,7 +90,7 @@ }); $input.bind('keyup', function() { - update( $input, $clone ) + update( $input, $clone ); }); $clone.bind('keyup', function(){ diff --git a/core/js/jquery-ui-fixes.js b/core/js/jquery-ui-fixes.js index 9ccaa38cc47..39f6d7a354e 100644 --- a/core/js/jquery-ui-fixes.js +++ b/core/js/jquery-ui-fixes.js @@ -5,4 +5,4 @@ jQuery.ui.autocomplete.prototype._resizeMenu = function () { var ul = this.menu.element; ul.outerWidth(this.element.outerWidth()); -} +}; diff --git a/core/js/js.js b/core/js/js.js index d601f79033e..0a14acd4b6c 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -150,7 +150,7 @@ var OCP = {}, _.defaults(allOptions, defaultOptions); var _build = function (text, vars) { - var vars = vars || []; + vars = vars || []; return text.replace(/{([^{}]*)}/g, function (a, b) { var r = (vars[b]); @@ -1422,7 +1422,7 @@ function initCore() { } else { // Close navigation when opening app in // a new tab - OC.hideMenus(function(){return false}); + OC.hideMenus(function(){return false;}); } }); @@ -1430,7 +1430,7 @@ function initCore() { if(event.which === 2) { // Close navigation when opening app in // a new tab via middle click - OC.hideMenus(function(){return false}); + OC.hideMenus(function(){return false;}); } }); @@ -1444,7 +1444,7 @@ function initCore() { } else { // Close navigation when opening app in // a new tab - OC.hideMenus(function(){return false}); + OC.hideMenus(function(){return false;}); } }); } @@ -1465,7 +1465,7 @@ function initCore() { } else { // Close navigation when opening menu entry in // a new tab - OC.hideMenus(function(){return false}); + OC.hideMenus(function(){return false;}); } }); @@ -1473,7 +1473,7 @@ function initCore() { if(event.which === 2) { // Close navigation when opening app in // a new tab via middle click - OC.hideMenus(function(){return false}); + OC.hideMenus(function(){return false;}); } }); } @@ -1884,7 +1884,7 @@ OC.Util = { * @return {boolean} true if the browser supports SVG, false otherwise */ hasSVGSupport: function(){ - return true + return true; }, /** * If SVG is not supported, replaces the given icon's extension @@ -2366,10 +2366,10 @@ jQuery.fn.tipsy = function(argument) { options.trigger = argument.trigger; } if(argument.delayIn) { - options.delay["show"] = argument.delayIn; + options.delay.show = argument.delayIn; } if(argument.delayOut) { - options.delay["hide"] = argument.delayOut; + options.delay.hide = argument.delayOut; } if(argument.html) { options.html = true; @@ -2385,4 +2385,4 @@ jQuery.fn.tipsy = function(argument) { jQuery.fn.tooltip.call(this, argument); } return this; -} +}; diff --git a/core/js/login/authpicker.js b/core/js/login/authpicker.js index 6d8a6bb4160..2d4bcc33158 100644 --- a/core/js/login/authpicker.js +++ b/core/js/login/authpicker.js @@ -8,6 +8,9 @@ jQuery(document).ready(function() { $('#submit-app-token-login').click(function(e) { e.preventDefault(); - window.location.href = 'nc://' + encodeURIComponent($('#user').val()) + ':' + encodeURIComponent($('#password').val()) + '@' + encodeURIComponent($('#serverHost').val()); + window.location.href = 'nc://login/server:' + + encodeURIComponent($('#serverHost').val()) + + "&user:" + encodeURIComponent($('#user').val()) + + "&password:" + encodeURIComponent($('#password').val()); }); }); diff --git a/core/js/lostpassword.js b/core/js/lostpassword.js index 4690b86f995..2f96911f162 100644 --- a/core/js/lostpassword.js +++ b/core/js/lostpassword.js @@ -22,8 +22,8 @@ OC.Lostpassword = { if (!$('#user').val().length){ $('#submit').trigger('click'); } else { - if (OC.config['lost_password_link']) { - window.location = OC.config['lost_password_link']; + if (OC.config.lost_password_link) { + window.location = OC.config.lost_password_link; } else { $.post( OC.generateUrl('/lostpassword/email'), diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js index 92f256699af..5fc224e38bf 100644 --- a/core/js/oc-dialogs.js +++ b/core/js/oc-dialogs.js @@ -561,7 +561,7 @@ var OCdialogs = { .prop('checked', true) .prop('disabled', true); $originalDiv.find('.message') - .text(t('core','read-only')) + .text(t('core','read-only')); } }; //var selection = controller.getSelection(data.originalFiles); @@ -813,11 +813,13 @@ var OCdialogs = { $.each(files, function(idx, entry) { entry.icon = OC.MimeType.getIconUrl(entry.mimetype); + var simpleSize, sizeColor; if (typeof(entry.size) !== 'undefined' && entry.size >= 0) { - var simpleSize = humanFileSize(parseInt(entry.size, 10), true); - var sizeColor = Math.round(160 - Math.pow((entry.size / (1024 * 1024)), 2)); + simpleSize = humanFileSize(parseInt(entry.size, 10), true); + sizeColor = Math.round(160 - Math.pow((entry.size / (1024 * 1024)), 2)); } else { simpleSize = t('files', 'Pending'); + sizeColor = 80; } var $row = self.$listTmpl.octemplate({ type: entry.type, diff --git a/core/js/octemplate.js b/core/js/octemplate.js index b24ad95c2b0..659f795982a 100644 --- a/core/js/octemplate.js +++ b/core/js/octemplate.js @@ -94,7 +94,7 @@ }; $.fn.octemplate = function(vars, options) { - var vars = vars ? vars : {}; + vars = vars || {}; if(this.length) { var _template = Object.create(Template); return _template.init(vars, options, this); diff --git a/core/js/placeholder.js b/core/js/placeholder.js index 1b03a28ecca..b8075b5397f 100644 --- a/core/js/placeholder.js +++ b/core/js/placeholder.js @@ -71,7 +71,7 @@ } function rgbToHsl(r, g, b) { - r /= 255, g /= 255, b /= 255; + r /= 255; g /= 255; b /= 255; var max = Math.max(r, g, b), min = Math.min(r, g, b); var h, s, l = (max + min) / 2; if(max === min) { diff --git a/core/js/public/appconfig.js b/core/js/public/appconfig.js index bba39c8b805..7f00f03861e 100644 --- a/core/js/public/appconfig.js +++ b/core/js/public/appconfig.js @@ -79,7 +79,7 @@ OCP.AppConfig = { */ getValue: function(app, key, defaultValue, options) { options = options || {}; - options['data'] = { + options.data = { defaultValue: defaultValue }; @@ -97,7 +97,7 @@ OCP.AppConfig = { */ setValue: function(app, key, value, options) { options = options || {}; - options['data'] = { + options.data = { value: value }; diff --git a/core/js/setup.js b/core/js/setup.js index 3c09bb6da49..b3b2049c447 100644 --- a/core/js/setup.js +++ b/core/js/setup.js @@ -66,7 +66,7 @@ $(document).ready(function() { $('.strengthify-wrapper, .tipsy') .css('-ms-filter', '"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"') .css('filter', 'alpha(opacity=30)') - .css('opacity', .3); + .css('opacity', 0.3); // Create the form var form = $('<form>'); diff --git a/core/js/share.js b/core/js/share.js index 194eba5fbd4..659d719788d 100644 --- a/core/js/share.js +++ b/core/js/share.js @@ -192,7 +192,7 @@ OC.Share = _.extend(OC.Share || {}, { } if (shares) { OC.Share.statuses[itemSource] = OC.Share.statuses[itemSource] || {}; - OC.Share.statuses[itemSource]['link'] = link; + OC.Share.statuses[itemSource].link = link; } else { delete OC.Share.statuses[itemSource]; } @@ -315,93 +315,6 @@ OC.Share = _.extend(OC.Share || {}, { } icon.removeClass('icon-shared icon-public').addClass(iconClass); }, - /** - * - * @param itemType - * @param itemSource - * @param callback - optional. If a callback is given this method works - * asynchronous and the callback will be provided with data when the request - * is done. - * @returns {OC.Share.Types.ShareInfo} - */ - loadItem:function(itemType, itemSource, callback) { - var data = ''; - var checkReshare = true; - var async = !_.isUndefined(callback); - if (typeof OC.Share.statuses[itemSource] === 'undefined') { - // NOTE: Check does not always work and misses some shares, fix later - var checkShares = true; - } else { - var checkShares = true; - } - $.ajax({type: 'GET', url: OC.filePath('core', 'ajax', 'share.php'), data: { fetch: 'getItem', itemType: itemType, itemSource: itemSource, checkReshare: checkReshare, checkShares: checkShares }, async: async, success: function(result) { - if (result && result.status === 'success') { - data = result.data; - } else { - data = false; - } - if(async) { - callback(data); - } - }}); - - return data; - }, - share:function(itemType, itemSource, shareType, shareWith, permissions, itemSourceName, expirationDate, callback, errorCallback) { - // Add a fallback for old share() calls without expirationDate. - // We should remove this in a later version, - // after the Apps have been updated. - if (typeof callback === 'undefined' && - typeof expirationDate === 'function') { - callback = expirationDate; - expirationDate = ''; - console.warn( - "Call to 'OC.Share.share()' with too few arguments. " + - "'expirationDate' was assumed to be 'callback'. " + - "Please revisit the call and fix the list of arguments." - ); - } - - return $.post(OC.filePath('core', 'ajax', 'share.php'), - { - action: 'share', - itemType: itemType, - itemSource: itemSource, - shareType: shareType, - shareWith: shareWith, - permissions: permissions, - itemSourceName: itemSourceName, - expirationDate: expirationDate - }, function (result) { - if (result && result.status === 'success') { - if (callback) { - callback(result.data); - } - } else { - if (_.isUndefined(errorCallback)) { - var msg = t('core', 'Error'); - if (result.data && result.data.message) { - msg = result.data.message; - } - OC.dialogs.alert(msg, t('core', 'Error while sharing')); - } else { - errorCallback(result); - } - } - } - ); - }, - unshare:function(itemType, itemSource, shareType, shareWith, callback) { - $.post(OC.filePath('core', 'ajax', 'share.php'), { action: 'unshare', itemType: itemType, itemSource: itemSource, shareType: shareType, shareWith: shareWith }, function(result) { - if (result && result.status === 'success') { - if (callback) { - callback(); - } - } else { - OC.dialogs.alert(t('core', 'Error while unsharing'), t('core', 'Error')); - } - }); - }, showDropDown:function(itemType, itemSource, appendTo, link, possiblePermissions, filename) { var configModel = new OC.Share.ShareConfigModel(); var attributes = {itemType: itemType, itemSource: itemSource, possiblePermissions: possiblePermissions}; diff --git a/core/js/sharedialoglinkshareview.js b/core/js/sharedialoglinkshareview.js index 9368982d916..54019b02c87 100644 --- a/core/js/sharedialoglinkshareview.js +++ b/core/js/sharedialoglinkshareview.js @@ -35,20 +35,23 @@ '{{{popoverMenu}}}' + '{{/if}}' + '</div>' + - ' {{#if publicUpload}}' + - '<div id="allowPublicUploadWrapper">' + - ' <span class="icon-loading-small hidden"></span>' + - ' <input type="checkbox" value="1" name="allowPublicUpload" id="sharingDialogAllowPublicUpload-{{cid}}" class="checkbox publicUploadCheckbox" {{{publicUploadChecked}}} />' + - '<label for="sharingDialogAllowPublicUpload-{{cid}}">{{publicUploadLabel}}</label>' + - '</div>' + - ' {{#if hideFileList}}' + - '<div id="hideFileListWrapper">' + - ' <span class="icon-loading-small hidden"></span>' + - ' <input type="checkbox" value="1" name="hideFileList" id="sharingDialogHideFileList-{{cid}}" class="checkbox hideFileListCheckbox" {{{hideFileListChecked}}} />' + - '<label for="sharingDialogHideFileList-{{cid}}">{{hideFileListLabel}}</label>' + - '</div>' + - ' {{/if}}' + - ' {{/if}}' + + '{{#if publicUpload}}' + + '<div>' + + '<span class="icon-loading-small hidden"></span>' + + '<input type="radio" name="publicUpload" value="{{publicUploadRValue}}" id="sharingDialogAllowPublicUpload-r-{{cid}}" class="radio publicUploadRadio" {{{publicUploadRChecked}}} />' + + '<label for="sharingDialogAllowPublicUpload-r-{{cid}}">{{publicUploadRLabel}}</label>' + + '</div>' + + '<div>' + + '<span class="icon-loading-small hidden"></span>' + + '<input type="radio" name="publicUpload" value="{{publicUploadRWValue}}" id="sharingDialogAllowPublicUpload-rw-{{cid}}" class="radio publicUploadRadio" {{{publicUploadRWChecked}}} />' + + '<label for="sharingDialogAllowPublicUpload-rw-{{cid}}">{{publicUploadRWLabel}}</label>' + + '</div>' + + '<div>' + + '<span class="icon-loading-small hidden"></span>' + + '<input type="radio" name="publicUpload" value="{{publicUploadWValue}}" id="sharingDialogAllowPublicUpload-w-{{cid}}" class="radio publicUploadRadio" {{{publicUploadWChecked}}} />' + + '<label for="sharingDialogAllowPublicUpload-w-{{cid}}">{{publicUploadWLabel}}</label>' + + '</div>' + + '{{/if}}' + ' {{#if publicEditing}}' + '<div id="allowPublicEditingWrapper">' + ' <span class="icon-loading-small hidden"></span>' + @@ -126,12 +129,11 @@ 'keyup input.linkPassText': 'onPasswordKeyUp', 'click .linkCheckbox': 'onLinkCheckBoxChange', 'click .linkText': 'onLinkTextClick', - 'change .publicUploadCheckbox': 'onAllowPublicUploadChange', 'change .publicEditingCheckbox': 'onAllowPublicEditingChange', - 'change .hideFileListCheckbox': 'onHideFileListChange', 'click .showPasswordCheckbox': 'onShowPasswordClick', 'click .icon-more': 'onToggleMenu', - 'click .pop-up': 'onPopUpClick' + 'click .pop-up': 'onPopUpClick', + 'change .publicUploadRadio': 'onPublicUploadChange' }, initialize: function(options) { @@ -170,16 +172,12 @@ 'onPasswordKeyUp', 'onLinkTextClick', 'onShowPasswordClick', - 'onHideFileListChange', - 'onAllowPublicUploadChange', - 'onAllowPublicEditingChange' + 'onAllowPublicEditingChange', + 'onPublicUploadChange' ); var clipboard = new Clipboard('.clipboardButton'); clipboard.on('success', function(e) { - event.preventDefault(); - event.stopPropagation(); - var $input = $(e.trigger); $input.tooltip('hide') .attr('data-original-title', t('core', 'Copied!')) @@ -321,20 +319,6 @@ }); }, - onAllowPublicUploadChange: function() { - var $checkbox = this.$('.publicUploadCheckbox'); - $checkbox.siblings('.icon-loading-small').removeClass('hidden').addClass('inlineblock'); - - var permissions = OC.PERMISSION_READ; - if($checkbox.is(':checked')) { - permissions = OC.PERMISSION_UPDATE | OC.PERMISSION_CREATE | OC.PERMISSION_READ | OC.PERMISSION_DELETE; - } - - this.model.saveLinkShare({ - permissions: permissions - }); - }, - onAllowPublicEditingChange: function() { var $checkbox = this.$('.publicEditingCheckbox'); $checkbox.siblings('.icon-loading-small').removeClass('hidden').addClass('inlineblock'); @@ -349,15 +333,9 @@ }); }, - onHideFileListChange: function () { - var $checkbox = this.$('.hideFileListCheckbox'); - $checkbox.siblings('.icon-loading-small').removeClass('hidden').addClass('inlineblock'); - - var permissions = OC.PERMISSION_UPDATE | OC.PERMISSION_CREATE | OC.PERMISSION_READ | OC.PERMISSION_DELETE; - if ($checkbox.is(':checked')) { - permissions = OC.PERMISSION_CREATE; - } + onPublicUploadChange: function(e) { + var permissions = e.currentTarget.value; this.model.saveLinkShare({ permissions: permissions }); @@ -385,9 +363,20 @@ && this.model.createPermissionPossible() && this.configModel.isPublicUploadEnabled(); - var publicUploadChecked = ''; - if(this.model.isPublicUploadAllowed()) { - publicUploadChecked = 'checked="checked"'; + var publicUploadRWChecked = ''; + var publicUploadRChecked = ''; + var publicUploadWChecked = ''; + + switch (this.model.linkSharePermissions()) { + case OC.PERMISSION_READ: + publicUploadRChecked = 'checked'; + break; + case OC.PERMISSION_CREATE: + publicUploadWChecked = 'checked'; + break; + case OC.PERMISSION_UPDATE | OC.PERMISSION_CREATE | OC.PERMISSION_READ | OC.PERMISSION_DELETE: + publicUploadRWChecked = 'checked'; + break; } var publicEditingChecked = ''; @@ -395,14 +384,6 @@ publicEditingChecked = 'checked="checked"'; } - - var hideFileList = publicUploadChecked; - - var hideFileListChecked = ''; - if(this.model.isHideFileListSet()) { - hideFileListChecked = 'checked="checked"'; - } - var isLinkShare = this.model.get('linkShare').isLinkShare; var isPasswordSet = !!this.model.get('linkShare').password; var showPasswordCheckBox = isLinkShare @@ -440,7 +421,6 @@ this.$el.html(linkShareTemplate({ cid: this.cid, shareAllowed: true, - hideFileList: hideFileList, isLinkShare: isLinkShare, shareLinkURL: this.model.get('linkShare').link, linkShareLabel: t('core', 'Share link'), @@ -452,17 +432,22 @@ isPasswordSet: isPasswordSet, showPasswordCheckBox: showPasswordCheckBox, publicUpload: publicUpload && isLinkShare, - publicUploadChecked: publicUploadChecked, - hideFileListChecked: hideFileListChecked, - publicUploadLabel: t('core', 'Allow upload and editing'), publicEditing: publicEditable, publicEditingChecked: publicEditingChecked, publicEditingLabel: t('core', 'Allow editing'), - hideFileListLabel: 'Secure drop (' + t('core', 'upload only') + ')', mailPrivatePlaceholder: t('core', 'Email link to person'), mailButtonText: t('core', 'Send'), singleAction: OC.Share.Social.Collection.size() == 0, - popoverMenu: popover + popoverMenu: popover, + publicUploadRWLabel: t('core', 'Allow upload and editing'), + publicUploadRLabel: t('core', 'Read only'), + publicUploadWLabel: t('core', 'Secure drop (upload only)'), + publicUploadRWValue: OC.PERMISSION_UPDATE | OC.PERMISSION_CREATE | OC.PERMISSION_READ | OC.PERMISSION_DELETE, + publicUploadRValue: OC.PERMISSION_READ, + publicUploadWValue: OC.PERMISSION_CREATE, + publicUploadRWChecked: publicUploadRWChecked, + publicUploadRChecked: publicUploadRChecked, + publicUploadWChecked: publicUploadWChecked })); if (OC.Share.Social.Collection.size() == 0) { diff --git a/core/js/sharedialogshareelistview.js b/core/js/sharedialogshareelistview.js index f513eb75848..d51504c3771 100644 --- a/core/js/sharedialogshareelistview.js +++ b/core/js/sharedialogshareelistview.js @@ -369,7 +369,7 @@ var shareType = $this.data('share-type'); $this.find('div.avatar, span.username').contactsMenu(shareWith, shareType, $this); - }) + }); } else { var permissionChangeShareId = parseInt(this._renderPermissionChange, 10); var shareWithIndex = this.model.findShareWithIndex(permissionChangeShareId); diff --git a/core/js/sharedialogview.js b/core/js/sharedialogview.js index 007e13dd366..157887fbb94 100644 --- a/core/js/sharedialogview.js +++ b/core/js/sharedialogview.js @@ -183,15 +183,13 @@ var groups = result.ocs.data.exact.groups.concat(result.ocs.data.groups); var remotes = result.ocs.data.exact.remotes.concat(result.ocs.data.remotes); var lookup = result.ocs.data.lookup; + var emails = [], + circles = []; if (typeof(result.ocs.data.emails) !== 'undefined') { - var emails = result.ocs.data.exact.emails.concat(result.ocs.data.emails); - } else { - var emails = []; + emails = result.ocs.data.exact.emails.concat(result.ocs.data.emails); } if (typeof(result.ocs.data.circles) !== 'undefined') { - var circles = result.ocs.data.exact.circles.concat(result.ocs.data.circles); - } else { - var circles = []; + circles = result.ocs.data.exact.circles.concat(result.ocs.data.circles); } var usersLength; @@ -199,7 +197,6 @@ var remotesLength; var emailsLength; var circlesLength; - var lookupLength; var i, j; diff --git a/core/js/shareitemmodel.js b/core/js/shareitemmodel.js index 4118a8a0188..afe86fa464b 100644 --- a/core/js/shareitemmodel.js +++ b/core/js/shareitemmodel.js @@ -487,6 +487,13 @@ }, /** + * @return {int} + */ + getPermissions: function() { + return this.get('permissions'); + }, + + /** * @returns {boolean} */ sharePermissionPossible: function() { @@ -568,6 +575,17 @@ || this.hasDeletePermission(shareIndex); }, + /** + * @returns {int} + */ + linkSharePermissions: function() { + if (!this.hasLinkShare()) { + return -1; + } else { + return this.get('linkShare').permissions; + } + }, + _getUrl: function(base, params) { params = _.extend({format: 'json'}, params || {}); return OC.linkToOCS('apps/files_sharing/api/v1', 2) + base + '?' + OC.buildQueryString(params); diff --git a/core/js/singleselect.js b/core/js/singleselect.js index 1b2016aabb9..cd0dd52651a 100644 --- a/core/js/singleselect.js +++ b/core/js/singleselect.js @@ -8,7 +8,7 @@ input.attr('title', inputTooltip); } if (typeof gravity === 'undefined') { - gravity = 'n' + gravity = 'n'; } select = $(select); input.css('position', 'absolute'); diff --git a/core/js/systemtags/systemtagsinputfield.js b/core/js/systemtags/systemtagsinputfield.js index 62dae1e0a8f..ba72d486204 100644 --- a/core/js/systemtags/systemtagsinputfield.js +++ b/core/js/systemtags/systemtagsinputfield.js @@ -240,7 +240,11 @@ self.collection.fetch({ success: function(collection) { // find the tag in the collection - var model = collection.where({name: e.object.name.trim(), userVisible: true, userAssignable: true}); + var model = collection.where({ + name: e.object.name.trim(), + userVisible: true, + userAssignable: true + }); if (model.length) { model = model[0]; // the tag already exists or was already assigned, diff --git a/core/js/tags.js b/core/js/tags.js deleted file mode 100644 index b4c2c220df2..00000000000 --- a/core/js/tags.js +++ /dev/null @@ -1,371 +0,0 @@ -OC.Tags= { - edit:function(type, cb) { - if(!type && !this.type) { - throw { - name: 'MissingParameter', - message: t( - 'core', - 'The object type is not specified.' - ) - }; - } - type = type ? type : this.type; - var self = this; - $.when(this._getTemplate()).then(function($tmpl) { - if(self.$dialog) { - self.$dialog.ocdialog('close'); - } - self.$dialog = $tmpl.octemplate({ - addText: t('core', 'Enter new') - }); - $('body').append(self.$dialog); - - self.$dialog.ready(function() { - self.$taglist = self.$dialog.find('.taglist'); - self.$taginput = self.$dialog.find('.addinput'); - self.$taglist.on('change', 'input:checkbox', function(event) { - self._handleChanges(self.$taglist, self.$taginput); - }); - self.$taginput.on('input', function(event) { - self._handleChanges(self.$taglist, self.$taginput); - }); - self.deleteButton = { - text: t('core', 'Delete'), - click: function() { - self._deleteTags( - self, - type, - self._selectedIds() - ); - } - }; - self.addButton = { - text: t('core', 'Add'), - click: function() { - self._addTag( - self, - type, - self.$taginput.val() - ); - } - }; - - self._fillTagList(type, self.$taglist); - }); - - self.$dialog.ocdialog({ - title: t('core', 'Edit tags'), - closeOnEscape: true, - width: 250, - height: 'auto', - modal: true, - //buttons: buttonlist, - close: function(event, ui) { - try { - $(this).ocdialog('destroy').remove(); - } catch(e) {console.warn(e);} - self.$dialog = null; - } - }); - }) - .fail(function(status, error) { - // If the method is called while navigating away - // from the page, it is probably not needed ;) - if(status !== 0) { - alert(t('core', 'Error loading dialog template: {error}', {error: error})); - } - }); - }, - /** - * @param {string} type - * @param {string} tag - * @return jQuery.Promise which resolves with an array of ids - */ - getIdsForTag:function(type, tag) { - if(!type && !this.type) { - throw new Error('The object type is not specified.'); - } - type = type ? type : this.type; - var defer = $.Deferred(), - url = OC.generateUrl('/tags/{type}/ids', {type: type}); - $.getJSON(url, {tag: tag}, function(response) { - if(response.status === 'success') { - defer.resolve(response.ids); - } else { - defer.reject(response); - } - }); - return defer.promise(); - }, - /** - * @param {string} type - * @return {*} jQuery.Promise which resolves with an array of ids - */ - getFavorites:function(type) { - if(!type && !this.type) { - throw new Error('The object type is not specified.'); - } - type = type ? type : this.type; - var defer = $.Deferred(), - url = OC.generateUrl('/tags/{type}/favorites', {type: type}); - $.getJSON(url, function(response) { - if(response.status === 'success') { - defer.resolve(response.ids); - } else { - defer.reject(response); - } - }); - return defer.promise(); - }, - /** - * @param {string} type - * @return {*} jQuery.Promise which resolves with an array of id/name objects - */ - getTags:function(type) { - if(!type && !this.type) { - throw new Error('The object type is not specified.'); - } - type = type ? type : this.type; - var defer = $.Deferred(), - url = OC.generateUrl('/tags/{type}', {type: type}); - $.getJSON(url, function(response) { - if(response.status === 'success') { - defer.resolve(response.tags); - } else { - defer.reject(response); - } - }); - return defer.promise(); - }, - /** - * @param {number} id - * @param {string} tag - * @param {string} type - * @return {*} jQuery.Promise - */ - tagAs:function(id, tag, type) { - if(!type && !this.type) { - throw new Error('The object type is not specified.'); - } - type = type ? type : this.type; - var defer = $.Deferred(), - url = OC.generateUrl('/tags/{type}/tag/{id}/', {type: type, id: id}); - $.post(url, {tag: tag}, function(response) { - if(response.status === 'success') { - defer.resolve(response); - } else { - defer.reject(response); - } - }).fail(function(jqXHR, textStatus, errorThrown) { - defer.reject(jqXHR.status, errorThrown); - }); - return defer.promise(); - }, - /** - * @param {number} id - * @param {string} tag - * @param {string} type - * @return {*} jQuery.Promise - */ - unTag:function(id, tag, type) { - if(!type && !this.type) { - throw new Error('The object type is not specified.'); - } - type = type ? type : this.type; - var defer = $.Deferred(), - self = this, - url = OC.generateUrl('/tags/{type}/untag/{id}/', {type: type, id: id}); - $.post(url, {tag: tag}, function(response) { - if(response.status === 'success') { - defer.resolve(response); - } else { - defer.reject(response); - } - }).fail(function(jqXHR, textStatus, errorThrown) { - defer.reject(jqXHR.status, errorThrown); - }); - return defer.promise(); - }, - /** - * @param {number} id - * @param {string} type - * @return {*} jQuery.Promise - */ - addToFavorites:function(id, type) { - if(!type && !this.type) { - throw new Error('The object type is not specified.'); - } - type = type ? type : this.type; - var defer = $.Deferred(), - url = OC.generateUrl( - '/tags/{type}/favorite/{id}/', - {type: type, id: id} - ); - $.post(url, function(response) { - if(response.status === 'success') { - defer.resolve(response); - } else { - defer.reject(response); - } - }).fail(function(jqXHR, textStatus, errorThrown) { - defer.reject(jqXHR.status, errorThrown); - }); - return defer.promise(); - }, - /** - * @param {number} id - * @param {string} type - * @return {*} jQuery.Promise - */ - removeFromFavorites:function(id, type) { - if(!type && !this.type) { - throw new Error('The object type is not specified.'); - } - type = type ? type : this.type; - var defer = $.Deferred(), - url = OC.generateUrl( - '/tags/{type}/unfavorite/{id}/', - {type: type, id: id} - ); - $.post(url, function(response) { - if(response.status === 'success') { - defer.resolve(); - } else { - defer.reject(response); - } - }).fail(function(jqXHR, textStatus, errorThrown) { - defer.reject(jqXHR.status, errorThrown); - }); - return defer.promise(); - }, - /** - * @param {string} tag - * @param {string} type - * @return {*} jQuery.Promise which resolves with an object with the name and the new id - */ - addTag:function(tag, type) { - if(!type && !this.type) { - throw new Error('The object type is not specified.'); - } - type = type ? type : this.type; - var defer = $.Deferred(), - url = OC.generateUrl('/tags/{type}/add', {type: type}); - $.post(url,{tag:tag}, function(response) { - if(typeof cb == 'function') { - cb(response); - } - if(response.status === 'success') { - defer.resolve({id:response.id, name: tag}); - } else { - defer.reject(response); - } - }).fail(function(jqXHR, textStatus, errorThrown) { - defer.reject(jqXHR.status, errorThrown); - }); - return defer.promise(); - }, - /** - * @param {array} tags - * @param {string} type - * @return {*} jQuery.Promise - */ - deleteTags:function(tags, type) { - if(!type && !this.type) { - throw new Error('The object type is not specified.'); - } - type = type ? type : this.type; - var defer = $.Deferred(), - url = OC.generateUrl('/tags/{type}/delete', {type: type}); - if(!tags || !tags.length) { - throw new Error(t('core', 'No tags selected for deletion.')); - } - $.post(url, {tags:tags}, function(response) { - if(response.status === 'success') { - defer.resolve(response.tags); - } else { - defer.reject(response); - } - }).fail(function(jqXHR, textStatus, errorThrown) { - defer.reject(jqXHR.status, errorThrown); - }); - return defer.promise(); - }, - _update:function(tags, type) { - if(!this.$dialog) { - return; - } - var $taglist = this.$dialog.find('.taglist'), - self = this; - $taglist.empty(); - $.each(tags, function(idx, tag) { - var $item = self.$listTmpl.octemplate({id: tag.id, name: tag.name}); - $item.appendTo($taglist); - }); - $(this).trigger('change', {type: type, tags: tags}); - if(typeof this.changed === 'function') { - this.changed(tags); - } - }, - _getTemplate: function() { - var defer = $.Deferred(); - if(!this.$template) { - var self = this; - $.get(OC.filePath('core', 'templates', 'tags.html'), function(tmpl) { - self.$template = $(tmpl); - self.$listTmpl = self.$template.find('.taglist li:first-child').detach(); - defer.resolve(self.$template); - }) - .fail(function(jqXHR, textStatus, errorThrown) { - defer.reject(jqXHR.status, errorThrown); - }); - } else { - defer.resolve(this.$template); - } - return defer.promise(); - }, - _fillTagList: function(type) { - var self = this; - $.when(this.getTags(type)) - .then(function(tags) { - self._update(tags, type); - }) - .fail(function(response) { - console.warn(response); - }); - }, - _selectedIds: function() { - return $.map(this.$taglist.find('input:checked'), function(b) {return $(b).val();}); - }, - _handleChanges: function($list, $input) { - var ids = this._selectedIds(); - var buttons = []; - if($input.val().length) { - buttons.push(this.addButton); - } - if(ids.length) { - buttons.push(this.deleteButton); - } - this.$dialog.ocdialog('option', 'buttons', buttons); - }, - _deleteTags: function(self, type, ids) { - $.when(self.deleteTags(ids, type)) - .then(function() { - self._fillTagList(type); - self.$dialog.ocdialog('option', 'buttons', []); - }) - .fail(function(response) { - console.warn(response); - }); - }, - _addTag: function(self, type, tag) { - $.when(self.addTag(tag, type)) - .then(function(tag) { - self._fillTagList(type); - self.$taginput.val('').trigger('input'); - }) - .fail(function(response) { - console.warn(response); - }); - } -}; - diff --git a/core/l10n/bg.js b/core/l10n/bg.js index db205a420bc..61a4a3581a8 100644 --- a/core/l10n/bg.js +++ b/core/l10n/bg.js @@ -100,9 +100,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Достъпвате сайта чрез HTTP. Препоръчително е да настроите сървъра да изисква употребата на HTTPS, както е описано в <a href=\"{docUrl}\">съветите за сигурност</a>.", "Shared" : "Споделено", "Shared with {recipients}" : "Споделено с {recipients}", - "Error" : "Грешка", - "Error while sharing" : "Грешка при споделяне", - "Error while unsharing" : "Грешка при премахване на споделянето", "Error setting expiration date" : "Грешка при настройване на датата за изтичане", "The public link will expire no later than {days} days after it is created" : "Общодостъпната връзка ще изтече не по-късно от {days} дни след създаването ѝ.", "Set expiration date" : "Задаване на дата на изтичане", @@ -118,10 +115,10 @@ OC.L10N.register( "Share link" : "Връзка за споделяне", "Link" : "Връзка", "Password protect" : "Защитено с парола", - "Allow upload and editing" : "Позволи обновяване и редактиране", "Allow editing" : "Позволяване на редактиране", "Email link to person" : "Имейл връзка към човек", "Send" : "Изпращане", + "Allow upload and editing" : "Позволи обновяване и редактиране", "Shared with you and the group {group} by {owner}" : "Споделено от {owner} с вас и групата {group}", "Shared with you by {owner}" : "Споделено с вас от {owner}", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} споделен с връзка", @@ -130,6 +127,7 @@ OC.L10N.register( "email" : "имейл", "Unshare" : "Прекратяване на споделяне", "Could not unshare" : "Споделянето не е прекратено", + "Error while sharing" : "Грешка при споделяне", "Share details could not be loaded for this item." : "Данните за споделяне не могат да бъдат заредени", "No users or groups found for {search}" : "Няма потребители или групи за {search}", "No users found for {search}" : "Няма потребители за {search}", @@ -138,6 +136,7 @@ OC.L10N.register( "{sharee} (remote)" : "{sharee} (отдалечен)", "{sharee} (email)" : "{sharee} (email)", "Share" : "Споделяне", + "Error" : "Грешка", "Error removing share" : "Грешка при махане на споделяне", "Non-existing tag #{tag}" : "Не-съществуващ етикет #{tag}", "restricted" : "ограничен", @@ -147,12 +146,6 @@ OC.L10N.register( "Rename" : "Преименуване", "Collaborative tags" : "Съвместни тагове", "No tags found" : "Няма открити етикети", - "The object type is not specified." : "Типът на обекта не е избран.", - "Enter new" : "Въвеждане на нов", - "Add" : "Добавяне", - "Edit tags" : "Промяна на етикетите", - "Error loading dialog template: {error}" : "Грешка при зареждането на шаблон за диалог: {error}.", - "No tags selected for deletion." : "Не са избрани тагове за изтриване.", "unknown text" : "непознат текст", "Hello world!" : "Здравей Свят!", "sunny" : "слънчево", @@ -264,6 +257,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Файловете Ви са криптирани. Ако не сте настроили ключ за възстановяване, няма да можете да възстановите данните си след смяна на паролата.<br />Ако не сте сигурни какво да направите, моля, свържете се с Вашия администратор преди да продължите. <br/>Наистина ли желаете да продължите?", "Ok" : "Добре", "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 файлът не функционира. Силно препоръчваме да настроите уеб сървъра по такъв начин, че директорията за данни да не бъде достъпна или я преместете извън директорията на уеб сървъра.", + "Error while unsharing" : "Грешка при премахване на споделянето", "File drop (upload only)" : "Пускане на файл (качване само)", "can reshare" : "може да споделя", "can edit" : "може да променя", @@ -280,6 +274,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Споделяне с потребители, групи или отдалечени потребители...", "Share with users, groups, remote users or by mail..." : "Споделяне с потребители, групи, отдалечени потребители или чрез имейл...", "Share with users..." : "Споделяне с потребители...", + "The object type is not specified." : "Типът на обекта не е избран.", + "Enter new" : "Въвеждане на нов", + "Add" : "Добавяне", + "Edit tags" : "Промяна на етикетите", + "Error loading dialog template: {error}" : "Грешка при зареждането на шаблон за диалог: {error}.", + "No tags selected for deletion." : "Не са избрани тагове за изтриване.", "The update was successful. Redirecting you to Nextcloud now." : "Обновяването беше успешно. Сега те пренасочваме към Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Здравейте,\n\nсамо да ви уведомяваме, че %s сподели %s с вас.\nРазгледай го: %s\n\n", "The share will expire on %s." : "Споделянето ще изтече на %s.", diff --git a/core/l10n/bg.json b/core/l10n/bg.json index a4fb6f94d28..4483911793c 100644 --- a/core/l10n/bg.json +++ b/core/l10n/bg.json @@ -98,9 +98,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Достъпвате сайта чрез HTTP. Препоръчително е да настроите сървъра да изисква употребата на HTTPS, както е описано в <a href=\"{docUrl}\">съветите за сигурност</a>.", "Shared" : "Споделено", "Shared with {recipients}" : "Споделено с {recipients}", - "Error" : "Грешка", - "Error while sharing" : "Грешка при споделяне", - "Error while unsharing" : "Грешка при премахване на споделянето", "Error setting expiration date" : "Грешка при настройване на датата за изтичане", "The public link will expire no later than {days} days after it is created" : "Общодостъпната връзка ще изтече не по-късно от {days} дни след създаването ѝ.", "Set expiration date" : "Задаване на дата на изтичане", @@ -116,10 +113,10 @@ "Share link" : "Връзка за споделяне", "Link" : "Връзка", "Password protect" : "Защитено с парола", - "Allow upload and editing" : "Позволи обновяване и редактиране", "Allow editing" : "Позволяване на редактиране", "Email link to person" : "Имейл връзка към човек", "Send" : "Изпращане", + "Allow upload and editing" : "Позволи обновяване и редактиране", "Shared with you and the group {group} by {owner}" : "Споделено от {owner} с вас и групата {group}", "Shared with you by {owner}" : "Споделено с вас от {owner}", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} споделен с връзка", @@ -128,6 +125,7 @@ "email" : "имейл", "Unshare" : "Прекратяване на споделяне", "Could not unshare" : "Споделянето не е прекратено", + "Error while sharing" : "Грешка при споделяне", "Share details could not be loaded for this item." : "Данните за споделяне не могат да бъдат заредени", "No users or groups found for {search}" : "Няма потребители или групи за {search}", "No users found for {search}" : "Няма потребители за {search}", @@ -136,6 +134,7 @@ "{sharee} (remote)" : "{sharee} (отдалечен)", "{sharee} (email)" : "{sharee} (email)", "Share" : "Споделяне", + "Error" : "Грешка", "Error removing share" : "Грешка при махане на споделяне", "Non-existing tag #{tag}" : "Не-съществуващ етикет #{tag}", "restricted" : "ограничен", @@ -145,12 +144,6 @@ "Rename" : "Преименуване", "Collaborative tags" : "Съвместни тагове", "No tags found" : "Няма открити етикети", - "The object type is not specified." : "Типът на обекта не е избран.", - "Enter new" : "Въвеждане на нов", - "Add" : "Добавяне", - "Edit tags" : "Промяна на етикетите", - "Error loading dialog template: {error}" : "Грешка при зареждането на шаблон за диалог: {error}.", - "No tags selected for deletion." : "Не са избрани тагове за изтриване.", "unknown text" : "непознат текст", "Hello world!" : "Здравей Свят!", "sunny" : "слънчево", @@ -262,6 +255,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Файловете Ви са криптирани. Ако не сте настроили ключ за възстановяване, няма да можете да възстановите данните си след смяна на паролата.<br />Ако не сте сигурни какво да направите, моля, свържете се с Вашия администратор преди да продължите. <br/>Наистина ли желаете да продължите?", "Ok" : "Добре", "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 файлът не функционира. Силно препоръчваме да настроите уеб сървъра по такъв начин, че директорията за данни да не бъде достъпна или я преместете извън директорията на уеб сървъра.", + "Error while unsharing" : "Грешка при премахване на споделянето", "File drop (upload only)" : "Пускане на файл (качване само)", "can reshare" : "може да споделя", "can edit" : "може да променя", @@ -278,6 +272,12 @@ "Share with users, groups or remote users..." : "Споделяне с потребители, групи или отдалечени потребители...", "Share with users, groups, remote users or by mail..." : "Споделяне с потребители, групи, отдалечени потребители или чрез имейл...", "Share with users..." : "Споделяне с потребители...", + "The object type is not specified." : "Типът на обекта не е избран.", + "Enter new" : "Въвеждане на нов", + "Add" : "Добавяне", + "Edit tags" : "Промяна на етикетите", + "Error loading dialog template: {error}" : "Грешка при зареждането на шаблон за диалог: {error}.", + "No tags selected for deletion." : "Не са избрани тагове за изтриване.", "The update was successful. Redirecting you to Nextcloud now." : "Обновяването беше успешно. Сега те пренасочваме към Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Здравейте,\n\nсамо да ви уведомяваме, че %s сподели %s с вас.\nРазгледай го: %s\n\n", "The share will expire on %s." : "Споделянето ще изтече на %s.", diff --git a/core/l10n/cs.js b/core/l10n/cs.js index e3d02c34271..b29e1f0dd00 100644 --- a/core/l10n/cs.js +++ b/core/l10n/cs.js @@ -14,9 +14,15 @@ OC.L10N.register( "No crop data provided" : "Nebyla poskytnuta data pro oříznutí obrázku", "No valid crop data provided" : "Nebyla poskytnuta platná data pro oříznutí obrázku", "Crop is not square" : "Ořez není čtvercový", + "State token does not match" : "Stavový token neodpovídá", + "Auth flow can only be started unauthenticated." : "Sekvence autentizace může být zahájena pouze jako neautentizovaný.", "Couldn't reset password because the token is invalid" : "Heslo nebylo změněno kvůli neplatnému tokenu", "Couldn't reset password because the token is expired" : "Heslo nebylo změněno z důvodu vypršení tokenu", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nelze odeslat email pro změnu hesla, protože u tohoto uživatelského jména není uvedena emailová adresa. Kontaktujte prosím svého administrátora.", + "Password reset" : "Reset hesla", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Pokud chcete resetovat své heslo, klikněte na tlačítko níže. Pokud jste o resetování hesla nežádali, tento e-mail ignorujte.", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Pokud chcete resetovat vaše heslo, klikněte na následující odkaz. Pokud jste o reset nežádali, tento e-mail ignorujte.", + "Reset your password" : "Resetovat vaše heslo", "%s password reset" : "reset hesla %s", "Couldn't send reset email. Please contact your administrator." : "Nepodařilo se odeslat email pro změnu hesla. Kontaktujte svého správce systému.", "Couldn't send reset email. Please make sure your username is correct." : "Nelze odeslat email pro změnu hesla. Ujistěte se prosím, že zadáváte správné uživatelské jméno.", @@ -45,7 +51,14 @@ OC.L10N.register( "%s (incompatible)" : "%s (nekompatibilní)", "Following apps have been disabled: %s" : "Následující aplikace byly vypnuty: %s", "Already up to date" : "Je již aktuální", + "No contacts found" : "Nebyly nalezeny žádné kontakty", + "Show all contacts …" : "Zobrazit všechny kontakty …", + "There was an error loading your contacts" : "Při načítání vašich kontaktů došlo k chybě", + "Loading your contacts …" : "Načítání vašich kontaktů …", + "Looking for {term} …" : "Hledání {term} …", "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Došlo k problémům při kontrole integrity kódu. Více informací…</a>", + "No action available" : "Není dostupná žádná akce", + "Error fetching contact actions" : "Chyba při získávání akcí kontaktů", "Settings" : "Nastavení", "Connection to server lost" : "Připojení k serveru ztraceno", "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problém s načítáním stránky, obnovení za %n sekundu","Problém s načítáním stránky, obnovení za %n sekundy","Problém s načítáním stránky, obnovení za %n sekund"], @@ -68,6 +81,7 @@ OC.L10N.register( "No files in here" : "Nesou zde žádné soubory", "Choose" : "Vybrat", "Error loading file picker template: {error}" : "Chyba při nahrávání šablony výběru souborů: {error}", + "OK" : "OK", "Error loading message template: {error}" : "Chyba při nahrávání šablony zprávy: {error}", "read-only" : "pouze ke čtení", "_{count} file conflict_::_{count} file conflicts_" : ["{count} souborový konflikt","{count} souborové konflikty","{count} souborových konfliktů"], @@ -98,20 +112,19 @@ OC.L10N.register( "The PHP Opcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend ↗</a> to use following settings in the <code>php.ini</code>:" : "PHP Opcache není správně nakonfigurována. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Pro lepší výkon doporučujeme ↗</a> použít následující nastavení v <code>php.ini</code>:", "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "PHP funkce \"set_time_limit\" není dostupná. To může způsobit ukončení skriptů uprostřed provádění a další problémy s instalací. Doporučujeme tuto funkc povolit.", "Error occurred while checking server setup" : "Při ověřování nastavení serveru došlo k chybě", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended 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." : "Váš datový adresář a vaše soubory jsou pravděpodobně dostupné z internetu. Soubor .htaccess nefunguje. Je velmi doporučeno zajistit, aby tento adresář již nebyl dostupný z internetu, nebo byl přesunut mimo document root webového serveru.", "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 hlavička \"{header}\" není nakonfigurována ve shodě s \"{expected}\". To značí možné ohrožení bezpečnosti a soukromí a je doporučeno toto nastavení upravit.", "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "HTTP hlavička \"Strict-Transport-Security\" není nakonfigurována na minimum \"{seconds}\" sekund. Pro vylepšení bezpečnosti doporučujeme povolit HSTS dle popisu v našich <a href=\"{docUrl}\" rel=\"noreferrer\">bezpečnostních tipech</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Přistupujete na tuto stránku přes protokol HTTP. Důrazně doporučujeme nakonfigurovat server tak, aby vyžadoval použití HTTPS jak je popsáno v našich <a href=\"{docUrl}\">bezpečnostních tipech</a>.", "Shared" : "Sdílené", "Shared with {recipients}" : "Sdíleno s {recipients}", - "Error" : "Chyba", - "Error while sharing" : "Chyba při sdílení", - "Error while unsharing" : "Chyba při rušení sdílení", "Error setting expiration date" : "Chyba při nastavení data vypršení platnosti", "The public link will expire no later than {days} days after it is created" : "Veřejný odkaz vyprší nejpozději {days} dní od svého vytvoření", "Set expiration date" : "Nastavit datum vypršení platnosti", "Expiration" : "Konec platnosti", "Expiration date" : "Datum vypršení platnosti", "Choose a password for the public link" : "Zadej heslo pro tento veřejný odkaz", + "Choose a password for the public link or press \"Enter ↵\"" : "Zvolte si heslo veřejného sdílení nebo stiskněte \"Enter ↵\"", "Copied!" : "Zkopírováno!", "Copy" : "Zkopírovat", "Not supported!" : "Nepodporováno!", @@ -122,18 +135,28 @@ OC.L10N.register( "Share link" : "Sdílet odkaz", "Link" : "Odkaz", "Password protect" : "Chránit heslem", - "Allow upload and editing" : "Povolit nahrávání a úpravy", "Allow editing" : "Povolit úpravy", "Email link to person" : "Odeslat osobě odkaz emailem", "Send" : "Odeslat", + "Allow upload and editing" : "Povolit nahrávání a úpravy", + "Secure drop (upload only)" : "Bezpečné doručení (pouze nahrání)", "Shared with you and the group {group} by {owner}" : "S Vámi a skupinou {group} sdílí {owner}", "Shared with you by {owner}" : "S Vámi sdílí {owner}", + "Choose a password for the mail share" : "Zvolte si heslo e-mailového sdílení", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} sdílí pomocí odkazu", "group" : "skupina", "remote" : "vzdálený", "email" : "email", + "shared by {sharer}" : "Sdílel {sharer}", "Unshare" : "Zrušit sdílení", + "Can reshare" : "Může znovu sdílet", + "Can edit" : "Může upravovat", + "Can create" : "Může vytvářet", + "Can change" : "Může měnit", + "Can delete" : "Může mazat", + "Access control" : "Řízení přístupu", "Could not unshare" : "Nelze zrušit sdílení", + "Error while sharing" : "Chyba při sdílení", "Share details could not be loaded for this item." : "Detaily sdílení pro tuto položku nelze načíst.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Alespoň {count} znak je vyžadován pro automatické doplňování","Alespoň {count} znaky jsou vyžadovány pro automatické doplňování","Alespoň {count} znaků je vyžadováno pro automatické doplňování"], "This list is maybe truncated - please refine your search term to see more results." : "Tento seznam je možná zkrácený - prosím upřesněte vyhledávací výraz pro více výsledků.", @@ -145,6 +168,14 @@ OC.L10N.register( "{sharee} (email)" : "{sharee} (email)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Sdílet", + "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Sdílejte s dalšími lidmi zadáním uživatelského jména, skupiny, federovaného cloud ID, nebo e-mailové adresy.", + "Share with other people by entering a user or group or a federated cloud ID." : "Sdílejte s dalšími lidmi zadáním uživatelského jména, skupiny, nebo sdruženého cloud ID.", + "Share with other people by entering a user or group or an email address." : "Sdílejte s dalšími lidmi zadáním uživatelského jména, jména skupiny, nebo e-mailové adresy.", + "Name or email address..." : "Jméno nebo e-mailová adresa...", + "Name or federated cloud ID..." : "Jméno nebo sdružené cloud ID...", + "Name, federated cloud ID or email address..." : "Jméno, sdružené cloud ID, nebo e-mailová adresa...", + "Name..." : "Jméno...", + "Error" : "Chyba", "Error removing share" : "Chyba při odstraňování sdílení", "Non-existing tag #{tag}" : "Neexistující tag #{tag}", "restricted" : "omezeno", @@ -154,12 +185,6 @@ OC.L10N.register( "Rename" : "Přejmenovat", "Collaborative tags" : "Tagy spolupráce", "No tags found" : "Nebyly nalezeny žádné tagy", - "The object type is not specified." : "Není určen typ objektu.", - "Enter new" : "Zadat nový", - "Add" : "Přidat", - "Edit tags" : "Editovat štítky", - "Error loading dialog template: {error}" : "Chyba při načítání šablony dialogu: {error}", - "No tags selected for deletion." : "Žádné štítky nebyly vybrány ke smazání.", "unknown text" : "neznámý text", "Hello world!" : "Zdravím, světe!", "sunny" : "slunečno", @@ -241,6 +266,10 @@ OC.L10N.register( "Log in" : "Přihlásit", "Stay logged in" : "Neodhlašovat", "Alternative Logins" : "Alternativní přihlášení", + "You are about to grant \"%s\" access to your %s account." : "Chystáte se \"%s\" povolit přístup k vašemu %s účtu.", + "App token" : "Token aplikace", + "Alternative login using app token" : "Alternativní přihlášení pomocí tokenu aplikace", + "Redirecting …" : "Přesměrovávání …", "New password" : "Nové heslo", "New Password" : "Nové heslo", "Reset password" : "Obnovit heslo", @@ -276,6 +305,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Vaše soubory jsou šifrovány. Pokud jste nepovolili klíč pro obnovení, neexistuje způsob jak získat po změně hesla vaše data zpět.<br />Pokud si nejste jisti co dělat, kontaktujte nejprve svého správce systému, než budete pokračovat. <br />Opravdu si přejete pokračovat?", "Ok" : "Ok", "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." : "Váš datový adresář i vaše soubory jsou pravděpodobně přístupné z Internetu. Soubor .htaccess nefunguje. Důrazně doporučujeme nakonfigurovat webový server tak, aby datový adresář nebyl nadále přístupný, nebo přesunout datový adresář mimo prostor zpřístupňovaný webovým serverem.", + "Error while unsharing" : "Chyba při rušení sdílení", "File drop (upload only)" : "Přetažení souboru (pouze nahrání)", "can reshare" : "Může znovu sdílet", "can edit" : "lze upravovat", @@ -292,6 +322,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Sdílet s uživateli, skupinami nebo vzdálenými uživateli...", "Share with users, groups, remote users or by mail..." : "Sdílejte s uživateli, skupinami, vzdálenými uživateli, nebo emailem...", "Share with users..." : "Sdílet s uživateli...", + "The object type is not specified." : "Není určen typ objektu.", + "Enter new" : "Zadat nový", + "Add" : "Přidat", + "Edit tags" : "Editovat štítky", + "Error loading dialog template: {error}" : "Chyba při načítání šablony dialogu: {error}", + "No tags selected for deletion." : "Žádné štítky nebyly vybrány ke smazání.", "The update was successful. Redirecting you to Nextcloud now." : "Aktualizace byla úspěšná. Probíhá přesměrování na Nexcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hej ty tam,\n\njen ti chci dát vědět, že %s sdílel %s s tebou.\nZobraz si to: %s\n\n", "The share will expire on %s." : "Sdílení vyprší %s.", diff --git a/core/l10n/cs.json b/core/l10n/cs.json index 4a8fabaf948..a23b093e1a5 100644 --- a/core/l10n/cs.json +++ b/core/l10n/cs.json @@ -12,9 +12,15 @@ "No crop data provided" : "Nebyla poskytnuta data pro oříznutí obrázku", "No valid crop data provided" : "Nebyla poskytnuta platná data pro oříznutí obrázku", "Crop is not square" : "Ořez není čtvercový", + "State token does not match" : "Stavový token neodpovídá", + "Auth flow can only be started unauthenticated." : "Sekvence autentizace může být zahájena pouze jako neautentizovaný.", "Couldn't reset password because the token is invalid" : "Heslo nebylo změněno kvůli neplatnému tokenu", "Couldn't reset password because the token is expired" : "Heslo nebylo změněno z důvodu vypršení tokenu", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nelze odeslat email pro změnu hesla, protože u tohoto uživatelského jména není uvedena emailová adresa. Kontaktujte prosím svého administrátora.", + "Password reset" : "Reset hesla", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Pokud chcete resetovat své heslo, klikněte na tlačítko níže. Pokud jste o resetování hesla nežádali, tento e-mail ignorujte.", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Pokud chcete resetovat vaše heslo, klikněte na následující odkaz. Pokud jste o reset nežádali, tento e-mail ignorujte.", + "Reset your password" : "Resetovat vaše heslo", "%s password reset" : "reset hesla %s", "Couldn't send reset email. Please contact your administrator." : "Nepodařilo se odeslat email pro změnu hesla. Kontaktujte svého správce systému.", "Couldn't send reset email. Please make sure your username is correct." : "Nelze odeslat email pro změnu hesla. Ujistěte se prosím, že zadáváte správné uživatelské jméno.", @@ -43,7 +49,14 @@ "%s (incompatible)" : "%s (nekompatibilní)", "Following apps have been disabled: %s" : "Následující aplikace byly vypnuty: %s", "Already up to date" : "Je již aktuální", + "No contacts found" : "Nebyly nalezeny žádné kontakty", + "Show all contacts …" : "Zobrazit všechny kontakty …", + "There was an error loading your contacts" : "Při načítání vašich kontaktů došlo k chybě", + "Loading your contacts …" : "Načítání vašich kontaktů …", + "Looking for {term} …" : "Hledání {term} …", "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Došlo k problémům při kontrole integrity kódu. Více informací…</a>", + "No action available" : "Není dostupná žádná akce", + "Error fetching contact actions" : "Chyba při získávání akcí kontaktů", "Settings" : "Nastavení", "Connection to server lost" : "Připojení k serveru ztraceno", "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problém s načítáním stránky, obnovení za %n sekundu","Problém s načítáním stránky, obnovení za %n sekundy","Problém s načítáním stránky, obnovení za %n sekund"], @@ -66,6 +79,7 @@ "No files in here" : "Nesou zde žádné soubory", "Choose" : "Vybrat", "Error loading file picker template: {error}" : "Chyba při nahrávání šablony výběru souborů: {error}", + "OK" : "OK", "Error loading message template: {error}" : "Chyba při nahrávání šablony zprávy: {error}", "read-only" : "pouze ke čtení", "_{count} file conflict_::_{count} file conflicts_" : ["{count} souborový konflikt","{count} souborové konflikty","{count} souborových konfliktů"], @@ -96,20 +110,19 @@ "The PHP Opcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend ↗</a> to use following settings in the <code>php.ini</code>:" : "PHP Opcache není správně nakonfigurována. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Pro lepší výkon doporučujeme ↗</a> použít následující nastavení v <code>php.ini</code>:", "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "PHP funkce \"set_time_limit\" není dostupná. To může způsobit ukončení skriptů uprostřed provádění a další problémy s instalací. Doporučujeme tuto funkc povolit.", "Error occurred while checking server setup" : "Při ověřování nastavení serveru došlo k chybě", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended 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." : "Váš datový adresář a vaše soubory jsou pravděpodobně dostupné z internetu. Soubor .htaccess nefunguje. Je velmi doporučeno zajistit, aby tento adresář již nebyl dostupný z internetu, nebo byl přesunut mimo document root webového serveru.", "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 hlavička \"{header}\" není nakonfigurována ve shodě s \"{expected}\". To značí možné ohrožení bezpečnosti a soukromí a je doporučeno toto nastavení upravit.", "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "HTTP hlavička \"Strict-Transport-Security\" není nakonfigurována na minimum \"{seconds}\" sekund. Pro vylepšení bezpečnosti doporučujeme povolit HSTS dle popisu v našich <a href=\"{docUrl}\" rel=\"noreferrer\">bezpečnostních tipech</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Přistupujete na tuto stránku přes protokol HTTP. Důrazně doporučujeme nakonfigurovat server tak, aby vyžadoval použití HTTPS jak je popsáno v našich <a href=\"{docUrl}\">bezpečnostních tipech</a>.", "Shared" : "Sdílené", "Shared with {recipients}" : "Sdíleno s {recipients}", - "Error" : "Chyba", - "Error while sharing" : "Chyba při sdílení", - "Error while unsharing" : "Chyba při rušení sdílení", "Error setting expiration date" : "Chyba při nastavení data vypršení platnosti", "The public link will expire no later than {days} days after it is created" : "Veřejný odkaz vyprší nejpozději {days} dní od svého vytvoření", "Set expiration date" : "Nastavit datum vypršení platnosti", "Expiration" : "Konec platnosti", "Expiration date" : "Datum vypršení platnosti", "Choose a password for the public link" : "Zadej heslo pro tento veřejný odkaz", + "Choose a password for the public link or press \"Enter ↵\"" : "Zvolte si heslo veřejného sdílení nebo stiskněte \"Enter ↵\"", "Copied!" : "Zkopírováno!", "Copy" : "Zkopírovat", "Not supported!" : "Nepodporováno!", @@ -120,18 +133,28 @@ "Share link" : "Sdílet odkaz", "Link" : "Odkaz", "Password protect" : "Chránit heslem", - "Allow upload and editing" : "Povolit nahrávání a úpravy", "Allow editing" : "Povolit úpravy", "Email link to person" : "Odeslat osobě odkaz emailem", "Send" : "Odeslat", + "Allow upload and editing" : "Povolit nahrávání a úpravy", + "Secure drop (upload only)" : "Bezpečné doručení (pouze nahrání)", "Shared with you and the group {group} by {owner}" : "S Vámi a skupinou {group} sdílí {owner}", "Shared with you by {owner}" : "S Vámi sdílí {owner}", + "Choose a password for the mail share" : "Zvolte si heslo e-mailového sdílení", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} sdílí pomocí odkazu", "group" : "skupina", "remote" : "vzdálený", "email" : "email", + "shared by {sharer}" : "Sdílel {sharer}", "Unshare" : "Zrušit sdílení", + "Can reshare" : "Může znovu sdílet", + "Can edit" : "Může upravovat", + "Can create" : "Může vytvářet", + "Can change" : "Může měnit", + "Can delete" : "Může mazat", + "Access control" : "Řízení přístupu", "Could not unshare" : "Nelze zrušit sdílení", + "Error while sharing" : "Chyba při sdílení", "Share details could not be loaded for this item." : "Detaily sdílení pro tuto položku nelze načíst.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Alespoň {count} znak je vyžadován pro automatické doplňování","Alespoň {count} znaky jsou vyžadovány pro automatické doplňování","Alespoň {count} znaků je vyžadováno pro automatické doplňování"], "This list is maybe truncated - please refine your search term to see more results." : "Tento seznam je možná zkrácený - prosím upřesněte vyhledávací výraz pro více výsledků.", @@ -143,6 +166,14 @@ "{sharee} (email)" : "{sharee} (email)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Sdílet", + "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Sdílejte s dalšími lidmi zadáním uživatelského jména, skupiny, federovaného cloud ID, nebo e-mailové adresy.", + "Share with other people by entering a user or group or a federated cloud ID." : "Sdílejte s dalšími lidmi zadáním uživatelského jména, skupiny, nebo sdruženého cloud ID.", + "Share with other people by entering a user or group or an email address." : "Sdílejte s dalšími lidmi zadáním uživatelského jména, jména skupiny, nebo e-mailové adresy.", + "Name or email address..." : "Jméno nebo e-mailová adresa...", + "Name or federated cloud ID..." : "Jméno nebo sdružené cloud ID...", + "Name, federated cloud ID or email address..." : "Jméno, sdružené cloud ID, nebo e-mailová adresa...", + "Name..." : "Jméno...", + "Error" : "Chyba", "Error removing share" : "Chyba při odstraňování sdílení", "Non-existing tag #{tag}" : "Neexistující tag #{tag}", "restricted" : "omezeno", @@ -152,12 +183,6 @@ "Rename" : "Přejmenovat", "Collaborative tags" : "Tagy spolupráce", "No tags found" : "Nebyly nalezeny žádné tagy", - "The object type is not specified." : "Není určen typ objektu.", - "Enter new" : "Zadat nový", - "Add" : "Přidat", - "Edit tags" : "Editovat štítky", - "Error loading dialog template: {error}" : "Chyba při načítání šablony dialogu: {error}", - "No tags selected for deletion." : "Žádné štítky nebyly vybrány ke smazání.", "unknown text" : "neznámý text", "Hello world!" : "Zdravím, světe!", "sunny" : "slunečno", @@ -239,6 +264,10 @@ "Log in" : "Přihlásit", "Stay logged in" : "Neodhlašovat", "Alternative Logins" : "Alternativní přihlášení", + "You are about to grant \"%s\" access to your %s account." : "Chystáte se \"%s\" povolit přístup k vašemu %s účtu.", + "App token" : "Token aplikace", + "Alternative login using app token" : "Alternativní přihlášení pomocí tokenu aplikace", + "Redirecting …" : "Přesměrovávání …", "New password" : "Nové heslo", "New Password" : "Nové heslo", "Reset password" : "Obnovit heslo", @@ -274,6 +303,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Vaše soubory jsou šifrovány. Pokud jste nepovolili klíč pro obnovení, neexistuje způsob jak získat po změně hesla vaše data zpět.<br />Pokud si nejste jisti co dělat, kontaktujte nejprve svého správce systému, než budete pokračovat. <br />Opravdu si přejete pokračovat?", "Ok" : "Ok", "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." : "Váš datový adresář i vaše soubory jsou pravděpodobně přístupné z Internetu. Soubor .htaccess nefunguje. Důrazně doporučujeme nakonfigurovat webový server tak, aby datový adresář nebyl nadále přístupný, nebo přesunout datový adresář mimo prostor zpřístupňovaný webovým serverem.", + "Error while unsharing" : "Chyba při rušení sdílení", "File drop (upload only)" : "Přetažení souboru (pouze nahrání)", "can reshare" : "Může znovu sdílet", "can edit" : "lze upravovat", @@ -290,6 +320,12 @@ "Share with users, groups or remote users..." : "Sdílet s uživateli, skupinami nebo vzdálenými uživateli...", "Share with users, groups, remote users or by mail..." : "Sdílejte s uživateli, skupinami, vzdálenými uživateli, nebo emailem...", "Share with users..." : "Sdílet s uživateli...", + "The object type is not specified." : "Není určen typ objektu.", + "Enter new" : "Zadat nový", + "Add" : "Přidat", + "Edit tags" : "Editovat štítky", + "Error loading dialog template: {error}" : "Chyba při načítání šablony dialogu: {error}", + "No tags selected for deletion." : "Žádné štítky nebyly vybrány ke smazání.", "The update was successful. Redirecting you to Nextcloud now." : "Aktualizace byla úspěšná. Probíhá přesměrování na Nexcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hej ty tam,\n\njen ti chci dát vědět, že %s sdílel %s s tebou.\nZobraz si to: %s\n\n", "The share will expire on %s." : "Sdílení vyprší %s.", diff --git a/core/l10n/da.js b/core/l10n/da.js index baf63e07278..9c82ac1a9fa 100644 --- a/core/l10n/da.js +++ b/core/l10n/da.js @@ -98,9 +98,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Du tilgår dette sted gennem HTTP. Vi anbefaler kraftigt at du konfigurerer din server, så der kræves brug af HTTPS i stedet for, som foreskrevet i vores <a href=\"{docUrl}\">sikkerhedstips</a>.", "Shared" : "Delt", "Shared with {recipients}" : "Delt med {recipients}", - "Error" : "Fejl", - "Error while sharing" : "Fejl under deling", - "Error while unsharing" : "Fejl under annullering af deling", "Error setting expiration date" : "Fejl under sætning af udløbsdato", "The public link will expire no later than {days} days after it is created" : "Det offentlige link udløber senest {days} dage efter det blev oprettet", "Set expiration date" : "Vælg udløbsdato", @@ -136,6 +133,7 @@ OC.L10N.register( "Can delete" : "Kan slette", "Access control" : "Adgangskontrol", "Could not unshare" : "Kunne ikke ophæve deling", + "Error while sharing" : "Fejl under deling", "Share details could not be loaded for this item." : "Detaljer for deling kunne ikke indlæses for dette element.", "No users or groups found for {search}" : "Ingen brugere eller grupper fundet for {search}", "No users found for {search}" : "Ingen brugere fundet for {search}", @@ -145,6 +143,7 @@ OC.L10N.register( "{sharee} (email)" : "{sharee} (e-mail)", "{sharee} ({type}, {owner})" : "{share} ({type}, {owner})", "Share" : "Del", + "Error" : "Fejl", "Error removing share" : "Fejl ved fjernelse af deling", "Non-existing tag #{tag}" : "Ikke-eksisterende mærke #{tag}", "restricted" : "begrænset", @@ -153,12 +152,6 @@ OC.L10N.register( "Delete" : "Slet", "Rename" : "Omdøb", "No tags found" : "Ingen tags fundet", - "The object type is not specified." : "Objekttypen er ikke angivet.", - "Enter new" : "Indtast nyt", - "Add" : "Tilføj", - "Edit tags" : "Redigér mærker", - "Error loading dialog template: {error}" : "Fejl ved indlæsning dialog skabelon: {error}", - "No tags selected for deletion." : "Ingen mærker markeret til sletning.", "unknown text" : "ukendt tekst", "Hello world!" : "Hej verden!", "sunny" : "solrigt", @@ -264,6 +257,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Dine filer er krypterede. Hvis du ikke har aktiveret gendannelsesnøglen kan du ikke få dine data tilbage efter at du har ændret adgangskode.<br />Hvis du ikke er sikker på, hvad du skal gøre så kontakt din administrator før du fortsætter.<br />Vil du fortsætte?", "Ok" : "OK", "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." : "Din data mappe og dine filer er muligvis tilgængelige fra internettet. Filen .htaccess fungerer ikke. Vi anbefaler på det kraftigste, at du konfigurerer din webserver således at datamappen ikke længere er tilgængelig, eller at du flytter datamappen uden for webserverens dokumentrod. ", + "Error while unsharing" : "Fejl under annullering af deling", "can reshare" : "kan gendele", "can edit" : "kan redigere", "can create" : "kan oprette", @@ -279,6 +273,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Del med brugere, brupper eller eksterne brugere...", "Share with users, groups, remote users or by mail..." : "Del med brugere, grupper, eksterne brugere eller via e-mail...", "Share with users..." : "Del med brugere...", + "The object type is not specified." : "Objekttypen er ikke angivet.", + "Enter new" : "Indtast nyt", + "Add" : "Tilføj", + "Edit tags" : "Redigér mærker", + "Error loading dialog template: {error}" : "Fejl ved indlæsning dialog skabelon: {error}", + "No tags selected for deletion." : "Ingen mærker markeret til sletning.", "The update was successful. Redirecting you to Nextcloud now." : "Opdateringen blev udført korrekt. Du bliver nu viderestillet til Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hej\n\nDette blot for at lade dig vide, at %s har delt %s med dig.\n\nSe det her: %s\n\n", "The share will expire on %s." : "Delingen vil udløbe om %s.", diff --git a/core/l10n/da.json b/core/l10n/da.json index 6ff9fb53d28..163f0e7bcca 100644 --- a/core/l10n/da.json +++ b/core/l10n/da.json @@ -96,9 +96,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Du tilgår dette sted gennem HTTP. Vi anbefaler kraftigt at du konfigurerer din server, så der kræves brug af HTTPS i stedet for, som foreskrevet i vores <a href=\"{docUrl}\">sikkerhedstips</a>.", "Shared" : "Delt", "Shared with {recipients}" : "Delt med {recipients}", - "Error" : "Fejl", - "Error while sharing" : "Fejl under deling", - "Error while unsharing" : "Fejl under annullering af deling", "Error setting expiration date" : "Fejl under sætning af udløbsdato", "The public link will expire no later than {days} days after it is created" : "Det offentlige link udløber senest {days} dage efter det blev oprettet", "Set expiration date" : "Vælg udløbsdato", @@ -134,6 +131,7 @@ "Can delete" : "Kan slette", "Access control" : "Adgangskontrol", "Could not unshare" : "Kunne ikke ophæve deling", + "Error while sharing" : "Fejl under deling", "Share details could not be loaded for this item." : "Detaljer for deling kunne ikke indlæses for dette element.", "No users or groups found for {search}" : "Ingen brugere eller grupper fundet for {search}", "No users found for {search}" : "Ingen brugere fundet for {search}", @@ -143,6 +141,7 @@ "{sharee} (email)" : "{sharee} (e-mail)", "{sharee} ({type}, {owner})" : "{share} ({type}, {owner})", "Share" : "Del", + "Error" : "Fejl", "Error removing share" : "Fejl ved fjernelse af deling", "Non-existing tag #{tag}" : "Ikke-eksisterende mærke #{tag}", "restricted" : "begrænset", @@ -151,12 +150,6 @@ "Delete" : "Slet", "Rename" : "Omdøb", "No tags found" : "Ingen tags fundet", - "The object type is not specified." : "Objekttypen er ikke angivet.", - "Enter new" : "Indtast nyt", - "Add" : "Tilføj", - "Edit tags" : "Redigér mærker", - "Error loading dialog template: {error}" : "Fejl ved indlæsning dialog skabelon: {error}", - "No tags selected for deletion." : "Ingen mærker markeret til sletning.", "unknown text" : "ukendt tekst", "Hello world!" : "Hej verden!", "sunny" : "solrigt", @@ -262,6 +255,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Dine filer er krypterede. Hvis du ikke har aktiveret gendannelsesnøglen kan du ikke få dine data tilbage efter at du har ændret adgangskode.<br />Hvis du ikke er sikker på, hvad du skal gøre så kontakt din administrator før du fortsætter.<br />Vil du fortsætte?", "Ok" : "OK", "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." : "Din data mappe og dine filer er muligvis tilgængelige fra internettet. Filen .htaccess fungerer ikke. Vi anbefaler på det kraftigste, at du konfigurerer din webserver således at datamappen ikke længere er tilgængelig, eller at du flytter datamappen uden for webserverens dokumentrod. ", + "Error while unsharing" : "Fejl under annullering af deling", "can reshare" : "kan gendele", "can edit" : "kan redigere", "can create" : "kan oprette", @@ -277,6 +271,12 @@ "Share with users, groups or remote users..." : "Del med brugere, brupper eller eksterne brugere...", "Share with users, groups, remote users or by mail..." : "Del med brugere, grupper, eksterne brugere eller via e-mail...", "Share with users..." : "Del med brugere...", + "The object type is not specified." : "Objekttypen er ikke angivet.", + "Enter new" : "Indtast nyt", + "Add" : "Tilføj", + "Edit tags" : "Redigér mærker", + "Error loading dialog template: {error}" : "Fejl ved indlæsning dialog skabelon: {error}", + "No tags selected for deletion." : "Ingen mærker markeret til sletning.", "The update was successful. Redirecting you to Nextcloud now." : "Opdateringen blev udført korrekt. Du bliver nu viderestillet til Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hej\n\nDette blot for at lade dig vide, at %s har delt %s med dig.\n\nSe det her: %s\n\n", "The share will expire on %s." : "Delingen vil udløbe om %s.", diff --git a/core/l10n/de.js b/core/l10n/de.js index e0ed6681902..89fae89bb8b 100644 --- a/core/l10n/de.js +++ b/core/l10n/de.js @@ -118,9 +118,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Du greifst auf diese Site über HTTP zu. Wir raten dringend dazu, deinen Server so zu konfigurieren, dass er stattdessen nur HTTPS akzeptiert, wie es in unseren <a href=\"{docUrl}\">Sicherheitshinweisen</a> beschrieben ist.", "Shared" : "Geteilt", "Shared with {recipients}" : "Geteilt mit {recipients}", - "Error" : "Fehler", - "Error while sharing" : "Fehler beim Teilen", - "Error while unsharing" : "Fehler beim Aufheben der Freigabe", "Error setting expiration date" : "Fehler beim Setzen des Ablaufdatums", "The public link will expire no later than {days} days after it is created" : "Der öffentliche Link wird spätestens {days} Tage nach seiner Erstellung ablaufen", "Set expiration date" : "Setze ein Ablaufdatum", @@ -138,11 +135,12 @@ OC.L10N.register( "Share link" : "Link teilen", "Link" : "Link", "Password protect" : "Passwortschutz", - "Allow upload and editing" : "Hochladen und Bearbeiten erlauben", "Allow editing" : "Bearbeitung erlauben", - "upload only" : "Nur Hochladen", "Email link to person" : "Link per E-Mail verschicken", "Send" : "Senden", + "Allow upload and editing" : "Hochladen und Bearbeiten erlauben", + "Read only" : "Schreibgeschützt", + "Secure drop (upload only)" : "Sicheres ablegen (nur Hochladen)", "Shared with you and the group {group} by {owner}" : "{owner} hat dies mit Dir und der Gruppe {group} geteilt", "Shared with you by {owner}" : "{owner} hat dies mit Dir geteilt", "Choose a password for the mail share" : "Wähle ein Passwort für das Teilen via E-Mail", @@ -157,9 +155,9 @@ OC.L10N.register( "Can create" : "kann erstellen", "Can change" : "kann ändern", "Can delete" : "kann löschen", - "Secure drop (upload only)" : "Sicheres ablegen (nur Hochladen)", "Access control" : "Zugriffskontrolle", "Could not unshare" : "Freigabe konnte nicht entfernt werden", + "Error while sharing" : "Fehler beim Teilen", "Share details could not be loaded for this item." : "Details der geteilten Freigabe zu diesem Eintrag konnten nicht geladen werden.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Mindestens {count} Zeichen wird für die Autovervollständigung benötigt","Mindestens {count} Zeichen werden für die Autovervollständigung benötigt"], "This list is maybe truncated - please refine your search term to see more results." : "Die Liste ist unter Umständen gekürzt - Bitte verfeinern Sie Ihre Suche um mehr Ergebnisse zu erhalten.", @@ -178,6 +176,7 @@ OC.L10N.register( "Name or federated cloud ID..." : "Name oder Federated-Cloud-ID...", "Name, federated cloud ID or email address..." : "Name, Federated-Cloud-ID oder E-Mail-Adresse...", "Name..." : "Name...", + "Error" : "Fehler", "Error removing share" : "Fehler beim Entfernen der Freigabe", "Non-existing tag #{tag}" : "Nicht vorhandener Tag #{tag}", "restricted" : "Eingeschränkt", @@ -187,12 +186,6 @@ OC.L10N.register( "Rename" : "Umbenennen", "Collaborative tags" : "Zusammenarbeits-Tags", "No tags found" : "Keine Tags gefunden", - "The object type is not specified." : "Der Objekttyp ist nicht angegeben.", - "Enter new" : "Neuen eingeben", - "Add" : "Hinzufügen", - "Edit tags" : "Tags bearbeiten", - "Error loading dialog template: {error}" : "Fehler beim Laden der Dialogvorlage: {error}", - "No tags selected for deletion." : "Keine Tags zum Löschen ausgewählt.", "unknown text" : "Unbekannter Text", "Hello world!" : "Hallo Welt!", "sunny" : "sonnig", @@ -313,6 +306,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Deine Dateien sind verschlüsselt. Solltest du den Wiederherstellungsschlüssel nicht aktiviert haben, gibt es keine Möglichkeit, deine Daten zurückzuerlangen, nachdem dein Passwort zurückgesetzt wurde.<br />Falls du dir nicht sicher bist, was zu tun ist, kontaktiere bitte deinen Administrator, bevor du fortfährst<br />Möchtest du wirklich fortfahren?", "Ok" : "OK", "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 Dokument-Root-Verzeichnis des Webservers bewegst.", + "Error while unsharing" : "Fehler beim Aufheben der Freigabe", "File drop (upload only)" : "Dateien ablegen (nur Hochladen)", "can reshare" : "kann weiterteilen", "can edit" : "kann bearbeiten", @@ -329,6 +323,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Mit Benutzern, Gruppen oder externen Benutzern teilen…", "Share with users, groups, remote users or by mail..." : "Mit Benutzern, Gruppen, externen Benutzern oder per E-Mail teilen…", "Share with users..." : "Mit Benutzern teilen…", + "The object type is not specified." : "Der Objekttyp ist nicht angegeben.", + "Enter new" : "Neuen eingeben", + "Add" : "Hinzufügen", + "Edit tags" : "Tags bearbeiten", + "Error loading dialog template: {error}" : "Fehler beim Laden der Dialogvorlage: {error}", + "No tags selected for deletion." : "Keine Tags zum Löschen ausgewählt.", "The update was successful. Redirecting you to Nextcloud now." : "Das Update war erfolgreich. Weiterleitung zu Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hallo,\n\nhier nur kurz die Mitteilung, dass %s %s mit Dir geteilt hat.\nZum Anzeigen: %s\n\n", "The share will expire on %s." : "Die Freigabe wird am %s ablaufen.", diff --git a/core/l10n/de.json b/core/l10n/de.json index 3533b1eb96a..2b2a62ff7bc 100644 --- a/core/l10n/de.json +++ b/core/l10n/de.json @@ -116,9 +116,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Du greifst auf diese Site über HTTP zu. Wir raten dringend dazu, deinen Server so zu konfigurieren, dass er stattdessen nur HTTPS akzeptiert, wie es in unseren <a href=\"{docUrl}\">Sicherheitshinweisen</a> beschrieben ist.", "Shared" : "Geteilt", "Shared with {recipients}" : "Geteilt mit {recipients}", - "Error" : "Fehler", - "Error while sharing" : "Fehler beim Teilen", - "Error while unsharing" : "Fehler beim Aufheben der Freigabe", "Error setting expiration date" : "Fehler beim Setzen des Ablaufdatums", "The public link will expire no later than {days} days after it is created" : "Der öffentliche Link wird spätestens {days} Tage nach seiner Erstellung ablaufen", "Set expiration date" : "Setze ein Ablaufdatum", @@ -136,11 +133,12 @@ "Share link" : "Link teilen", "Link" : "Link", "Password protect" : "Passwortschutz", - "Allow upload and editing" : "Hochladen und Bearbeiten erlauben", "Allow editing" : "Bearbeitung erlauben", - "upload only" : "Nur Hochladen", "Email link to person" : "Link per E-Mail verschicken", "Send" : "Senden", + "Allow upload and editing" : "Hochladen und Bearbeiten erlauben", + "Read only" : "Schreibgeschützt", + "Secure drop (upload only)" : "Sicheres ablegen (nur Hochladen)", "Shared with you and the group {group} by {owner}" : "{owner} hat dies mit Dir und der Gruppe {group} geteilt", "Shared with you by {owner}" : "{owner} hat dies mit Dir geteilt", "Choose a password for the mail share" : "Wähle ein Passwort für das Teilen via E-Mail", @@ -155,9 +153,9 @@ "Can create" : "kann erstellen", "Can change" : "kann ändern", "Can delete" : "kann löschen", - "Secure drop (upload only)" : "Sicheres ablegen (nur Hochladen)", "Access control" : "Zugriffskontrolle", "Could not unshare" : "Freigabe konnte nicht entfernt werden", + "Error while sharing" : "Fehler beim Teilen", "Share details could not be loaded for this item." : "Details der geteilten Freigabe zu diesem Eintrag konnten nicht geladen werden.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Mindestens {count} Zeichen wird für die Autovervollständigung benötigt","Mindestens {count} Zeichen werden für die Autovervollständigung benötigt"], "This list is maybe truncated - please refine your search term to see more results." : "Die Liste ist unter Umständen gekürzt - Bitte verfeinern Sie Ihre Suche um mehr Ergebnisse zu erhalten.", @@ -176,6 +174,7 @@ "Name or federated cloud ID..." : "Name oder Federated-Cloud-ID...", "Name, federated cloud ID or email address..." : "Name, Federated-Cloud-ID oder E-Mail-Adresse...", "Name..." : "Name...", + "Error" : "Fehler", "Error removing share" : "Fehler beim Entfernen der Freigabe", "Non-existing tag #{tag}" : "Nicht vorhandener Tag #{tag}", "restricted" : "Eingeschränkt", @@ -185,12 +184,6 @@ "Rename" : "Umbenennen", "Collaborative tags" : "Zusammenarbeits-Tags", "No tags found" : "Keine Tags gefunden", - "The object type is not specified." : "Der Objekttyp ist nicht angegeben.", - "Enter new" : "Neuen eingeben", - "Add" : "Hinzufügen", - "Edit tags" : "Tags bearbeiten", - "Error loading dialog template: {error}" : "Fehler beim Laden der Dialogvorlage: {error}", - "No tags selected for deletion." : "Keine Tags zum Löschen ausgewählt.", "unknown text" : "Unbekannter Text", "Hello world!" : "Hallo Welt!", "sunny" : "sonnig", @@ -311,6 +304,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Deine Dateien sind verschlüsselt. Solltest du den Wiederherstellungsschlüssel nicht aktiviert haben, gibt es keine Möglichkeit, deine Daten zurückzuerlangen, nachdem dein Passwort zurückgesetzt wurde.<br />Falls du dir nicht sicher bist, was zu tun ist, kontaktiere bitte deinen Administrator, bevor du fortfährst<br />Möchtest du wirklich fortfahren?", "Ok" : "OK", "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 Dokument-Root-Verzeichnis des Webservers bewegst.", + "Error while unsharing" : "Fehler beim Aufheben der Freigabe", "File drop (upload only)" : "Dateien ablegen (nur Hochladen)", "can reshare" : "kann weiterteilen", "can edit" : "kann bearbeiten", @@ -327,6 +321,12 @@ "Share with users, groups or remote users..." : "Mit Benutzern, Gruppen oder externen Benutzern teilen…", "Share with users, groups, remote users or by mail..." : "Mit Benutzern, Gruppen, externen Benutzern oder per E-Mail teilen…", "Share with users..." : "Mit Benutzern teilen…", + "The object type is not specified." : "Der Objekttyp ist nicht angegeben.", + "Enter new" : "Neuen eingeben", + "Add" : "Hinzufügen", + "Edit tags" : "Tags bearbeiten", + "Error loading dialog template: {error}" : "Fehler beim Laden der Dialogvorlage: {error}", + "No tags selected for deletion." : "Keine Tags zum Löschen ausgewählt.", "The update was successful. Redirecting you to Nextcloud now." : "Das Update war erfolgreich. Weiterleitung zu Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hallo,\n\nhier nur kurz die Mitteilung, dass %s %s mit Dir geteilt hat.\nZum Anzeigen: %s\n\n", "The share will expire on %s." : "Die Freigabe wird am %s ablaufen.", diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js index 708bd46b6bf..5a79d96372c 100644 --- a/core/l10n/de_DE.js +++ b/core/l10n/de_DE.js @@ -118,9 +118,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Sie greifen auf diese Site über HTTP zu. Wir raten dringend dazu, Ihren Server so zu konfigurieren, dass er stattdessen nur HTTPS akzeptiert, wie es in unseren <a href=\"{docUrl}\">Sicherheitshinweisen</a> beschrieben ist.", "Shared" : "Geteilt", "Shared with {recipients}" : "Geteilt mit {recipients}", - "Error" : "Fehler", - "Error while sharing" : "Fehler beim Teilen", - "Error while unsharing" : "Fehler beim Aufheben der Freigabe", "Error setting expiration date" : "Fehler beim Setzen des Ablaufdatums", "The public link will expire no later than {days} days after it is created" : "Der öffentliche Link wird spätestens {days} Tage nach seiner Erstellung ablaufen", "Set expiration date" : "Ein Ablaufdatum setzen", @@ -138,11 +135,12 @@ OC.L10N.register( "Share link" : "Link teilen", "Link" : "Link", "Password protect" : "Passwortschutz", - "Allow upload and editing" : "Hochladen und Bearbeiten erlauben", "Allow editing" : "Bearbeitung erlauben", - "upload only" : "Nur Hochladen", "Email link to person" : "Link per E-Mail verschicken", "Send" : "Senden", + "Allow upload and editing" : "Hochladen und Bearbeiten erlauben", + "Read only" : "Schreibgeschützt", + "Secure drop (upload only)" : "Sicheres ablegen (nur Hochladen)", "Shared with you and the group {group} by {owner}" : "Von {owner} mit Ihnen und der Gruppe {group} geteilt.", "Shared with you by {owner}" : "Von {owner} mit Ihnen geteilt.", "Choose a password for the mail share" : "Wählen Sie ein Passwort für das Teilen via E-Mail", @@ -157,9 +155,9 @@ OC.L10N.register( "Can create" : "kann erstellen", "Can change" : "kann ändern", "Can delete" : "kann löschen", - "Secure drop (upload only)" : "Sicheres ablegen (nur Hochladen)", "Access control" : "Zugriffskontrolle", "Could not unshare" : "Freigabe konnte nicht aufgehoben werden", + "Error while sharing" : "Fehler beim Teilen", "Share details could not be loaded for this item." : "Die Freigabedetails konnten für dieses Element nicht geladen werden.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Mindestens {count} Zeichen wird für die Autovervollständigung benötigt","Mindestens {count} Zeichen werden für die Autovervollständigung benötigt"], "This list is maybe truncated - please refine your search term to see more results." : "Die Liste ist unter Umständen gekürzt - Bitte verfeinern Sie Ihre Suche um mehr Ergebnisse zu erhalten.", @@ -178,6 +176,7 @@ OC.L10N.register( "Name or federated cloud ID..." : "Name oder Federated-Cloud-ID...", "Name, federated cloud ID or email address..." : "Name, Federated-Cloud-ID oder E-Mail-Adresse...", "Name..." : "Name...", + "Error" : "Fehler", "Error removing share" : "Fehler beim Entfernen der Freigabe", "Non-existing tag #{tag}" : "Nicht existierender Tag #{tag}", "restricted" : "Eingeschränkt", @@ -187,12 +186,6 @@ OC.L10N.register( "Rename" : "Umbenennen", "Collaborative tags" : "Zusammenarbeits-Tags", "No tags found" : "Keine Tags gefunden", - "The object type is not specified." : "Der Objekttyp ist nicht angegeben.", - "Enter new" : "Neuen eingeben", - "Add" : "Hinzufügen", - "Edit tags" : "Schlagwörter bearbeiten", - "Error loading dialog template: {error}" : "Fehler beim Laden der Dialogvorlage: {error}", - "No tags selected for deletion." : "Es wurden keine Schlagwörter zum Löschen ausgewählt.", "unknown text" : "Unbekannter Text", "Hello world!" : "Hallo Welt!", "sunny" : "Sonnig", @@ -313,6 +306,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Ihre Dateien sind verschlüsselt. Wenn Sie den Wiederherstellungsschlüssel nicht aktiviert haben, wird es keine Möglichkeit geben, um Ihre Daten wieder zu erhalten, nachdem Ihr Passwort zurückgesetzt wurde.<br />Wenn Sie sich nicht sicher sind, was Sie tun sollen, wenden Sie sich bitte an Ihren Administrator, bevor Sie fortfahren.<br />Wollen Sie wirklich fortfahren?", "Ok" : "OK", "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.", + "Error while unsharing" : "Fehler beim Aufheben der Freigabe", "File drop (upload only)" : "Dateien ablegen (nur Hochladen)", "can reshare" : "kann weiterteilen", "can edit" : "kann bearbeiten", @@ -329,6 +323,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Mit Benutzern, Gruppen oder externen Benutzern teilen…", "Share with users, groups, remote users or by mail..." : "Mit Benutzern, Gruppen, externen Benutzern oder per E-Mail teilen…", "Share with users..." : "Mit Benutzern teilen…", + "The object type is not specified." : "Der Objekttyp ist nicht angegeben.", + "Enter new" : "Neuen eingeben", + "Add" : "Hinzufügen", + "Edit tags" : "Schlagwörter bearbeiten", + "Error loading dialog template: {error}" : "Fehler beim Laden der Dialogvorlage: {error}", + "No tags selected for deletion." : "Es wurden keine Schlagwörter zum Löschen ausgewählt.", "The update was successful. Redirecting you to Nextcloud now." : "Das Update war erfolgreich. Sie werden nun zu Nextcloud weitergeleitet.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hallo,\n\nhier nur kurz die Mitteilung, dass %s %s mit Ihnen geteilt hat.\nZum Anzeigen: %s\n\n", "The share will expire on %s." : "Die Freigabe wird am %s ablaufen.", diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json index 1825a5c74c4..c298f9004ea 100644 --- a/core/l10n/de_DE.json +++ b/core/l10n/de_DE.json @@ -116,9 +116,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Sie greifen auf diese Site über HTTP zu. Wir raten dringend dazu, Ihren Server so zu konfigurieren, dass er stattdessen nur HTTPS akzeptiert, wie es in unseren <a href=\"{docUrl}\">Sicherheitshinweisen</a> beschrieben ist.", "Shared" : "Geteilt", "Shared with {recipients}" : "Geteilt mit {recipients}", - "Error" : "Fehler", - "Error while sharing" : "Fehler beim Teilen", - "Error while unsharing" : "Fehler beim Aufheben der Freigabe", "Error setting expiration date" : "Fehler beim Setzen des Ablaufdatums", "The public link will expire no later than {days} days after it is created" : "Der öffentliche Link wird spätestens {days} Tage nach seiner Erstellung ablaufen", "Set expiration date" : "Ein Ablaufdatum setzen", @@ -136,11 +133,12 @@ "Share link" : "Link teilen", "Link" : "Link", "Password protect" : "Passwortschutz", - "Allow upload and editing" : "Hochladen und Bearbeiten erlauben", "Allow editing" : "Bearbeitung erlauben", - "upload only" : "Nur Hochladen", "Email link to person" : "Link per E-Mail verschicken", "Send" : "Senden", + "Allow upload and editing" : "Hochladen und Bearbeiten erlauben", + "Read only" : "Schreibgeschützt", + "Secure drop (upload only)" : "Sicheres ablegen (nur Hochladen)", "Shared with you and the group {group} by {owner}" : "Von {owner} mit Ihnen und der Gruppe {group} geteilt.", "Shared with you by {owner}" : "Von {owner} mit Ihnen geteilt.", "Choose a password for the mail share" : "Wählen Sie ein Passwort für das Teilen via E-Mail", @@ -155,9 +153,9 @@ "Can create" : "kann erstellen", "Can change" : "kann ändern", "Can delete" : "kann löschen", - "Secure drop (upload only)" : "Sicheres ablegen (nur Hochladen)", "Access control" : "Zugriffskontrolle", "Could not unshare" : "Freigabe konnte nicht aufgehoben werden", + "Error while sharing" : "Fehler beim Teilen", "Share details could not be loaded for this item." : "Die Freigabedetails konnten für dieses Element nicht geladen werden.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Mindestens {count} Zeichen wird für die Autovervollständigung benötigt","Mindestens {count} Zeichen werden für die Autovervollständigung benötigt"], "This list is maybe truncated - please refine your search term to see more results." : "Die Liste ist unter Umständen gekürzt - Bitte verfeinern Sie Ihre Suche um mehr Ergebnisse zu erhalten.", @@ -176,6 +174,7 @@ "Name or federated cloud ID..." : "Name oder Federated-Cloud-ID...", "Name, federated cloud ID or email address..." : "Name, Federated-Cloud-ID oder E-Mail-Adresse...", "Name..." : "Name...", + "Error" : "Fehler", "Error removing share" : "Fehler beim Entfernen der Freigabe", "Non-existing tag #{tag}" : "Nicht existierender Tag #{tag}", "restricted" : "Eingeschränkt", @@ -185,12 +184,6 @@ "Rename" : "Umbenennen", "Collaborative tags" : "Zusammenarbeits-Tags", "No tags found" : "Keine Tags gefunden", - "The object type is not specified." : "Der Objekttyp ist nicht angegeben.", - "Enter new" : "Neuen eingeben", - "Add" : "Hinzufügen", - "Edit tags" : "Schlagwörter bearbeiten", - "Error loading dialog template: {error}" : "Fehler beim Laden der Dialogvorlage: {error}", - "No tags selected for deletion." : "Es wurden keine Schlagwörter zum Löschen ausgewählt.", "unknown text" : "Unbekannter Text", "Hello world!" : "Hallo Welt!", "sunny" : "Sonnig", @@ -311,6 +304,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Ihre Dateien sind verschlüsselt. Wenn Sie den Wiederherstellungsschlüssel nicht aktiviert haben, wird es keine Möglichkeit geben, um Ihre Daten wieder zu erhalten, nachdem Ihr Passwort zurückgesetzt wurde.<br />Wenn Sie sich nicht sicher sind, was Sie tun sollen, wenden Sie sich bitte an Ihren Administrator, bevor Sie fortfahren.<br />Wollen Sie wirklich fortfahren?", "Ok" : "OK", "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.", + "Error while unsharing" : "Fehler beim Aufheben der Freigabe", "File drop (upload only)" : "Dateien ablegen (nur Hochladen)", "can reshare" : "kann weiterteilen", "can edit" : "kann bearbeiten", @@ -327,6 +321,12 @@ "Share with users, groups or remote users..." : "Mit Benutzern, Gruppen oder externen Benutzern teilen…", "Share with users, groups, remote users or by mail..." : "Mit Benutzern, Gruppen, externen Benutzern oder per E-Mail teilen…", "Share with users..." : "Mit Benutzern teilen…", + "The object type is not specified." : "Der Objekttyp ist nicht angegeben.", + "Enter new" : "Neuen eingeben", + "Add" : "Hinzufügen", + "Edit tags" : "Schlagwörter bearbeiten", + "Error loading dialog template: {error}" : "Fehler beim Laden der Dialogvorlage: {error}", + "No tags selected for deletion." : "Es wurden keine Schlagwörter zum Löschen ausgewählt.", "The update was successful. Redirecting you to Nextcloud now." : "Das Update war erfolgreich. Sie werden nun zu Nextcloud weitergeleitet.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hallo,\n\nhier nur kurz die Mitteilung, dass %s %s mit Ihnen geteilt hat.\nZum Anzeigen: %s\n\n", "The share will expire on %s." : "Die Freigabe wird am %s ablaufen.", diff --git a/core/l10n/el.js b/core/l10n/el.js index 09493bab68d..be436779d44 100644 --- a/core/l10n/el.js +++ b/core/l10n/el.js @@ -14,6 +14,7 @@ OC.L10N.register( "No crop data provided" : "Δεν δόθηκαν δεδομένα περικοπής", "No valid crop data provided" : "Έχουν δοθεί μη έγκυρα δεδομένα περικοπής", "Crop is not square" : "Η περικοπή δεν εχει τετραγωνικό σχήμα", + "State token does not match" : "Το αναγνωριστικό κατάστασης δεν ταιριάζει", "Couldn't reset password because the token is invalid" : "Αδυναμία επαναφοράς συνθηματικού λόγω μη έγκυρου διακριτικού", "Couldn't reset password because the token is expired" : "Αδυναμία επαναφοράς συνθηματικού επειδή το διακριτικό έχει λήξει", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Αδυναμία αποστολής ηλεκτρονικού μηνύματος επαναφοράς διότι δεν υπάρχει διεύθυνση ηλεκτρινικής αλληλογραφίας για αυτόν τον χρήστη. Παρακαλώ επικοινωνήστε με το διαχειριστή.", @@ -49,7 +50,14 @@ OC.L10N.register( "%s (incompatible)" : "%s (ασύμβατη)", "Following apps have been disabled: %s" : "Οι ακόλουθες εφαρμογές έχουν απενεργοποιηθεί: %s", "Already up to date" : "Ήδη ενημερωμένο", + "No contacts found" : "Δεν βρέθηκαν επαφές", + "Show all contacts …" : "Εμφάνιση όλων των επαφών ...", + "There was an error loading your contacts" : "Υπήρξε σφάλμα κατά την φόρτωση των επαφών σας", + "Loading your contacts …" : "Φόρτωση των επαφών σας ...", + "Looking for {term} …" : "Αναζήτηση για {term} …", "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Υπήρξαν προβλήματα κατά τον έλεγχο ακεραιότητας κώδικα. Περισσότερες πληροφορίες…</a>", + "No action available" : "Καμία διαθέσιμη ενέργεια", + "Error fetching contact actions" : "Σφάλμα κατά την λήψη ενεργειών της επαφής", "Settings" : "Ρυθμίσεις", "Connection to server lost" : "Η σύνδεση στον διακομιστή διακόπηκε", "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Πρόβλημα φόρτωσης σελίδας, επαναφόρτωση σε %n δευτερόλεπτα","Πρόβλημα φόρτωσης σελίδας, επαναφόρτωση σε %n δευτερόλεπτα"], @@ -109,9 +117,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Έχετε πρόσβαση σε αυτό τον ιστότοπο μέσω HTTP. Προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας ώστε να απαιτεί τη χρήση HTTPS όπως περιγράφεται στις <a href=\"{docUrl}\">συμβουλές ασφαλείας</a>.", "Shared" : "Κοινόχρηστα", "Shared with {recipients}" : "Διαμοιράστηκε με {recipients}", - "Error" : "Σφάλμα", - "Error while sharing" : "Σφάλμα κατά τον διαμοιρασμό", - "Error while unsharing" : "Σφάλμα κατά την αναίρεση του διαμοιρασμού", "Error setting expiration date" : "Σφάλμα κατά τον ορισμό ημερομηνίας λήξης", "The public link will expire no later than {days} days after it is created" : "Ο δημόσιος σύνδεσμος θα απενεργοποιηθεί το πολύ σε {days} ημέρες μετά την δημιουργία του", "Set expiration date" : "Ορισμός ημερομηνίας λήξης", @@ -129,11 +134,11 @@ OC.L10N.register( "Share link" : "Διαμοιρασμός συνδέσμου", "Link" : "Σύνδεσμος", "Password protect" : "Προστασία συνθηματικού", - "Allow upload and editing" : "Επιτρέπονται η μεταφόρτωση και η επεξεργασία", "Allow editing" : "Επιτρέπεται η επεξεργασία", - "upload only" : "μόνο μεταφόρτωση", "Email link to person" : "Αποστολή συνδέσμου με email", "Send" : "Αποστολή", + "Allow upload and editing" : "Επιτρέπονται η μεταφόρτωση και η επεξεργασία", + "Secure drop (upload only)" : "Ασφαλής απόθεση (μόνο μεταφόρτωση)", "Shared with you and the group {group} by {owner}" : "Διαμοιράστηκε με σας και με την ομάδα {group} του {owner}", "Shared with you by {owner}" : "Διαμοιράστηκε με σας από τον {owner}", "Choose a password for the mail share" : "Επιλογή συνθηματικού για διαμοιρασμό με αλληλογραφία", @@ -148,9 +153,9 @@ OC.L10N.register( "Can create" : "Δυνατότητα δημιουργίας", "Can change" : "Δυνατότητα αλλαγής", "Can delete" : "Δυνατότητα διαγραφής", - "Secure drop (upload only)" : "Ασφαλής απόθεση (μόνο μεταφόρτωση)", "Access control" : "Έλεγχος πρόσβασης", "Could not unshare" : "Δεν μπορεί να γίνει αναίρεση διαμοιρασμού", + "Error while sharing" : "Σφάλμα κατά τον διαμοιρασμό", "Share details could not be loaded for this item." : "Αδυναμία φόρτωσης λεπτομερειών διαμοιρασμού για αυτό το αντικείμενο.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Απαιτείται τουλάχιστο {count} χαρακτήρας για αυτόματη συμπλήρωση","Απαιτούνται τουλάχιστο {count} χαρακτήρες για αυτόματη συμπλήρωση"], "This list is maybe truncated - please refine your search term to see more results." : "Αυτή η λίστα είναι ίσως περικοπεί - παρακαλούμε βελτιώσετε τους όρους αναζήτησης για περισσότερα αποτελέσματα.", @@ -162,7 +167,14 @@ OC.L10N.register( "{sharee} (email)" : "{sharee} (email)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Διαμοιρασμός", + "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Διαμοιραστείτε με άλλους εισάγοντας τον χρήστη ή την ομάδα, το ID του federated cloud ή μια διεύθυνση ηλεκτρονικού ταχυδρομείου.", + "Share with other people by entering a user or group or a federated cloud ID." : "Διαμοιραστείτε με άλλους εισάγοντας τον χρήστη ή την ομάδα ή το ID του federated cloud.", + "Share with other people by entering a user or group or an email address." : "Διαμοιραστείτε με άλλους εισάγοντας τον χρήστη ή την ομάδα ή μια διεύθυνση ηλεκτρονικού ταχυδρομείου.", + "Name or email address..." : "Όνομα ή διεύθυνση ηλεκτρονικού ταχυδρομείου...", + "Name or federated cloud ID..." : "Όνομα ή ID του federated cloud...", + "Name, federated cloud ID or email address..." : "Όνομα, federated cloud ID ή διεύθυνση ηλεκτροικού ταχυδρομείου...", "Name..." : "Όνομα...", + "Error" : "Σφάλμα", "Error removing share" : "Σφάλμα αφαίρεσης κοινόχρηστου", "Non-existing tag #{tag}" : "Μη υπάρχουσα ετικέτα #{tag}", "restricted" : "περιορισμένο", @@ -172,12 +184,6 @@ OC.L10N.register( "Rename" : "Μετονομασία", "Collaborative tags" : "Συνεργατική ετικέτα", "No tags found" : "Δεν βρέθηκαν ετικέτες", - "The object type is not specified." : "Δεν καθορίστηκε ο τύπος του αντικειμένου.", - "Enter new" : "Εισαγωγή νέου", - "Add" : "Προσθήκη", - "Edit tags" : "Επεξεργασία ετικετών", - "Error loading dialog template: {error}" : "Σφάλμα φόρτωσης προτύπου διαλόγων: {error}", - "No tags selected for deletion." : "Δεν επιλέχτηκε καμμία ετικέτα για διαγραφή.", "unknown text" : "άγνωστο κείμενο", "Hello world!" : "Γεια σου κόσμε!", "sunny" : "ηλιόλουστη", @@ -259,6 +265,7 @@ OC.L10N.register( "Log in" : "Είσοδος", "Stay logged in" : "Μείνετε συνδεδεμένος", "Alternative Logins" : "Εναλλακτικές συνδέσεις", + "Redirecting …" : "Γίνεται ανακατεύθυνση ...", "New password" : "Νέο συνθηματικό", "New Password" : "Νέο συνθηματικό", "Reset password" : "Επαναφορά συνθηματικού", @@ -294,6 +301,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Τα αρχεία σας είναι κρυπτογραφημένα. Εάν δεν έχετε ενεργοποιήσει το κλειδί επαναφοράς, δεν θα υπάρχει τρόπος να ανακτήσετε τα δεδομένα σας μετά την επαναφορά του συνθηματικού σας.<br />Εάν δεν είστε σίγουροι για το τι θα θέλατε να κάνετε, παρακαλώ επικοινωνήστε με το διαχειριστή σας πριν συνεχίσετε. <br />Θέλετε να συνεχίσετε;", "Ok" : "Εντάξει", "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 δεν λειτουργεί. Σας προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας με τέτοιο τρόπο ώστε ο κατάλογος δεδομένων να μην είναι πλέον προσβάσιμος ή να μετακινήσετε τον κατάλογο δεδομένων εκτός του ριζικού καταλόγου εγγράφων του διακομιστή.", + "Error while unsharing" : "Σφάλμα κατά την αναίρεση του διαμοιρασμού", "File drop (upload only)" : "Απόθεση αρχείου (μόνο μεταφόρτωση)", "can reshare" : "δυνατότητα να διαμοιραστεί ξανά", "can edit" : "δυνατότητα αλλαγής", @@ -310,6 +318,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Διαμοιρασμός με χρήστες, ομάδες ή απομακρυσμένους χρήστες...", "Share with users, groups, remote users or by mail..." : "Διαμοιρασμός με χρήστες, ομάδες, απομακρυσμένους χρήστες ή με mail...", "Share with users..." : "Διαμοιρασμός με χρήστες...", + "The object type is not specified." : "Δεν καθορίστηκε ο τύπος του αντικειμένου.", + "Enter new" : "Εισαγωγή νέου", + "Add" : "Προσθήκη", + "Edit tags" : "Επεξεργασία ετικετών", + "Error loading dialog template: {error}" : "Σφάλμα φόρτωσης προτύπου διαλόγων: {error}", + "No tags selected for deletion." : "Δεν επιλέχτηκε καμμία ετικέτα για διαγραφή.", "The update was successful. Redirecting you to Nextcloud now." : "Η ενημέρωση ήταν επιτυχής. Θα γίνει ανακατεύθυνση στο Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Γεια χαρά,\n\nαπλά σας ενημερώνω πως ο %s μοιράστηκε το %s με εσάς.\nΔείτε το: %s\n\n", "The share will expire on %s." : "Ο διαμοιρασμός θα λήξει σε %s.", diff --git a/core/l10n/el.json b/core/l10n/el.json index c46676baddd..36f67e5726d 100644 --- a/core/l10n/el.json +++ b/core/l10n/el.json @@ -12,6 +12,7 @@ "No crop data provided" : "Δεν δόθηκαν δεδομένα περικοπής", "No valid crop data provided" : "Έχουν δοθεί μη έγκυρα δεδομένα περικοπής", "Crop is not square" : "Η περικοπή δεν εχει τετραγωνικό σχήμα", + "State token does not match" : "Το αναγνωριστικό κατάστασης δεν ταιριάζει", "Couldn't reset password because the token is invalid" : "Αδυναμία επαναφοράς συνθηματικού λόγω μη έγκυρου διακριτικού", "Couldn't reset password because the token is expired" : "Αδυναμία επαναφοράς συνθηματικού επειδή το διακριτικό έχει λήξει", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Αδυναμία αποστολής ηλεκτρονικού μηνύματος επαναφοράς διότι δεν υπάρχει διεύθυνση ηλεκτρινικής αλληλογραφίας για αυτόν τον χρήστη. Παρακαλώ επικοινωνήστε με το διαχειριστή.", @@ -47,7 +48,14 @@ "%s (incompatible)" : "%s (ασύμβατη)", "Following apps have been disabled: %s" : "Οι ακόλουθες εφαρμογές έχουν απενεργοποιηθεί: %s", "Already up to date" : "Ήδη ενημερωμένο", + "No contacts found" : "Δεν βρέθηκαν επαφές", + "Show all contacts …" : "Εμφάνιση όλων των επαφών ...", + "There was an error loading your contacts" : "Υπήρξε σφάλμα κατά την φόρτωση των επαφών σας", + "Loading your contacts …" : "Φόρτωση των επαφών σας ...", + "Looking for {term} …" : "Αναζήτηση για {term} …", "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Υπήρξαν προβλήματα κατά τον έλεγχο ακεραιότητας κώδικα. Περισσότερες πληροφορίες…</a>", + "No action available" : "Καμία διαθέσιμη ενέργεια", + "Error fetching contact actions" : "Σφάλμα κατά την λήψη ενεργειών της επαφής", "Settings" : "Ρυθμίσεις", "Connection to server lost" : "Η σύνδεση στον διακομιστή διακόπηκε", "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Πρόβλημα φόρτωσης σελίδας, επαναφόρτωση σε %n δευτερόλεπτα","Πρόβλημα φόρτωσης σελίδας, επαναφόρτωση σε %n δευτερόλεπτα"], @@ -107,9 +115,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Έχετε πρόσβαση σε αυτό τον ιστότοπο μέσω HTTP. Προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας ώστε να απαιτεί τη χρήση HTTPS όπως περιγράφεται στις <a href=\"{docUrl}\">συμβουλές ασφαλείας</a>.", "Shared" : "Κοινόχρηστα", "Shared with {recipients}" : "Διαμοιράστηκε με {recipients}", - "Error" : "Σφάλμα", - "Error while sharing" : "Σφάλμα κατά τον διαμοιρασμό", - "Error while unsharing" : "Σφάλμα κατά την αναίρεση του διαμοιρασμού", "Error setting expiration date" : "Σφάλμα κατά τον ορισμό ημερομηνίας λήξης", "The public link will expire no later than {days} days after it is created" : "Ο δημόσιος σύνδεσμος θα απενεργοποιηθεί το πολύ σε {days} ημέρες μετά την δημιουργία του", "Set expiration date" : "Ορισμός ημερομηνίας λήξης", @@ -127,11 +132,11 @@ "Share link" : "Διαμοιρασμός συνδέσμου", "Link" : "Σύνδεσμος", "Password protect" : "Προστασία συνθηματικού", - "Allow upload and editing" : "Επιτρέπονται η μεταφόρτωση και η επεξεργασία", "Allow editing" : "Επιτρέπεται η επεξεργασία", - "upload only" : "μόνο μεταφόρτωση", "Email link to person" : "Αποστολή συνδέσμου με email", "Send" : "Αποστολή", + "Allow upload and editing" : "Επιτρέπονται η μεταφόρτωση και η επεξεργασία", + "Secure drop (upload only)" : "Ασφαλής απόθεση (μόνο μεταφόρτωση)", "Shared with you and the group {group} by {owner}" : "Διαμοιράστηκε με σας και με την ομάδα {group} του {owner}", "Shared with you by {owner}" : "Διαμοιράστηκε με σας από τον {owner}", "Choose a password for the mail share" : "Επιλογή συνθηματικού για διαμοιρασμό με αλληλογραφία", @@ -146,9 +151,9 @@ "Can create" : "Δυνατότητα δημιουργίας", "Can change" : "Δυνατότητα αλλαγής", "Can delete" : "Δυνατότητα διαγραφής", - "Secure drop (upload only)" : "Ασφαλής απόθεση (μόνο μεταφόρτωση)", "Access control" : "Έλεγχος πρόσβασης", "Could not unshare" : "Δεν μπορεί να γίνει αναίρεση διαμοιρασμού", + "Error while sharing" : "Σφάλμα κατά τον διαμοιρασμό", "Share details could not be loaded for this item." : "Αδυναμία φόρτωσης λεπτομερειών διαμοιρασμού για αυτό το αντικείμενο.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Απαιτείται τουλάχιστο {count} χαρακτήρας για αυτόματη συμπλήρωση","Απαιτούνται τουλάχιστο {count} χαρακτήρες για αυτόματη συμπλήρωση"], "This list is maybe truncated - please refine your search term to see more results." : "Αυτή η λίστα είναι ίσως περικοπεί - παρακαλούμε βελτιώσετε τους όρους αναζήτησης για περισσότερα αποτελέσματα.", @@ -160,7 +165,14 @@ "{sharee} (email)" : "{sharee} (email)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Διαμοιρασμός", + "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Διαμοιραστείτε με άλλους εισάγοντας τον χρήστη ή την ομάδα, το ID του federated cloud ή μια διεύθυνση ηλεκτρονικού ταχυδρομείου.", + "Share with other people by entering a user or group or a federated cloud ID." : "Διαμοιραστείτε με άλλους εισάγοντας τον χρήστη ή την ομάδα ή το ID του federated cloud.", + "Share with other people by entering a user or group or an email address." : "Διαμοιραστείτε με άλλους εισάγοντας τον χρήστη ή την ομάδα ή μια διεύθυνση ηλεκτρονικού ταχυδρομείου.", + "Name or email address..." : "Όνομα ή διεύθυνση ηλεκτρονικού ταχυδρομείου...", + "Name or federated cloud ID..." : "Όνομα ή ID του federated cloud...", + "Name, federated cloud ID or email address..." : "Όνομα, federated cloud ID ή διεύθυνση ηλεκτροικού ταχυδρομείου...", "Name..." : "Όνομα...", + "Error" : "Σφάλμα", "Error removing share" : "Σφάλμα αφαίρεσης κοινόχρηστου", "Non-existing tag #{tag}" : "Μη υπάρχουσα ετικέτα #{tag}", "restricted" : "περιορισμένο", @@ -170,12 +182,6 @@ "Rename" : "Μετονομασία", "Collaborative tags" : "Συνεργατική ετικέτα", "No tags found" : "Δεν βρέθηκαν ετικέτες", - "The object type is not specified." : "Δεν καθορίστηκε ο τύπος του αντικειμένου.", - "Enter new" : "Εισαγωγή νέου", - "Add" : "Προσθήκη", - "Edit tags" : "Επεξεργασία ετικετών", - "Error loading dialog template: {error}" : "Σφάλμα φόρτωσης προτύπου διαλόγων: {error}", - "No tags selected for deletion." : "Δεν επιλέχτηκε καμμία ετικέτα για διαγραφή.", "unknown text" : "άγνωστο κείμενο", "Hello world!" : "Γεια σου κόσμε!", "sunny" : "ηλιόλουστη", @@ -257,6 +263,7 @@ "Log in" : "Είσοδος", "Stay logged in" : "Μείνετε συνδεδεμένος", "Alternative Logins" : "Εναλλακτικές συνδέσεις", + "Redirecting …" : "Γίνεται ανακατεύθυνση ...", "New password" : "Νέο συνθηματικό", "New Password" : "Νέο συνθηματικό", "Reset password" : "Επαναφορά συνθηματικού", @@ -292,6 +299,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Τα αρχεία σας είναι κρυπτογραφημένα. Εάν δεν έχετε ενεργοποιήσει το κλειδί επαναφοράς, δεν θα υπάρχει τρόπος να ανακτήσετε τα δεδομένα σας μετά την επαναφορά του συνθηματικού σας.<br />Εάν δεν είστε σίγουροι για το τι θα θέλατε να κάνετε, παρακαλώ επικοινωνήστε με το διαχειριστή σας πριν συνεχίσετε. <br />Θέλετε να συνεχίσετε;", "Ok" : "Εντάξει", "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 δεν λειτουργεί. Σας προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας με τέτοιο τρόπο ώστε ο κατάλογος δεδομένων να μην είναι πλέον προσβάσιμος ή να μετακινήσετε τον κατάλογο δεδομένων εκτός του ριζικού καταλόγου εγγράφων του διακομιστή.", + "Error while unsharing" : "Σφάλμα κατά την αναίρεση του διαμοιρασμού", "File drop (upload only)" : "Απόθεση αρχείου (μόνο μεταφόρτωση)", "can reshare" : "δυνατότητα να διαμοιραστεί ξανά", "can edit" : "δυνατότητα αλλαγής", @@ -308,6 +316,12 @@ "Share with users, groups or remote users..." : "Διαμοιρασμός με χρήστες, ομάδες ή απομακρυσμένους χρήστες...", "Share with users, groups, remote users or by mail..." : "Διαμοιρασμός με χρήστες, ομάδες, απομακρυσμένους χρήστες ή με mail...", "Share with users..." : "Διαμοιρασμός με χρήστες...", + "The object type is not specified." : "Δεν καθορίστηκε ο τύπος του αντικειμένου.", + "Enter new" : "Εισαγωγή νέου", + "Add" : "Προσθήκη", + "Edit tags" : "Επεξεργασία ετικετών", + "Error loading dialog template: {error}" : "Σφάλμα φόρτωσης προτύπου διαλόγων: {error}", + "No tags selected for deletion." : "Δεν επιλέχτηκε καμμία ετικέτα για διαγραφή.", "The update was successful. Redirecting you to Nextcloud now." : "Η ενημέρωση ήταν επιτυχής. Θα γίνει ανακατεύθυνση στο Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Γεια χαρά,\n\nαπλά σας ενημερώνω πως ο %s μοιράστηκε το %s με εσάς.\nΔείτε το: %s\n\n", "The share will expire on %s." : "Ο διαμοιρασμός θα λήξει σε %s.", diff --git a/core/l10n/en_GB.js b/core/l10n/en_GB.js index 4f41dfc9c46..aae14992022 100644 --- a/core/l10n/en_GB.js +++ b/core/l10n/en_GB.js @@ -99,9 +99,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>.", "Shared" : "Shared", "Shared with {recipients}" : "Shared with {recipients}", - "Error" : "Error", - "Error while sharing" : "Error whilst sharing", - "Error while unsharing" : "Error whilst unsharing", "Error setting expiration date" : "Error setting expiration date", "The public link will expire no later than {days} days after it is created" : "The public link will expire no later than {days} days after it is created", "Set expiration date" : "Set expiration date", @@ -122,6 +119,7 @@ OC.L10N.register( "remote" : "remote", "Unshare" : "Unshare", "Could not unshare" : "Could not unshare", + "Error while sharing" : "Error whilst sharing", "Share details could not be loaded for this item." : "Share details could not be loaded for this item.", "No users or groups found for {search}" : "No users or groups found for {search}", "No users found for {search}" : "No users found for {search}", @@ -129,6 +127,7 @@ OC.L10N.register( "{sharee} (group)" : "{sharee} (group)", "{sharee} (remote)" : "{sharee} (remote)", "Share" : "Share", + "Error" : "Error", "Error removing share" : "Error removing share", "Non-existing tag #{tag}" : "Non-existing tag #{tag}", "restricted" : "restricted", @@ -137,12 +136,6 @@ OC.L10N.register( "Delete" : "Delete", "Rename" : "Rename", "Collaborative tags" : "Collaborative tags", - "The object type is not specified." : "The object type is not specified.", - "Enter new" : "Enter new", - "Add" : "Add", - "Edit tags" : "Edit tags", - "Error loading dialog template: {error}" : "Error loading dialog template: {error}", - "No tags selected for deletion." : "No tags selected for deletion.", "unknown text" : "unknown text", "Hello world!" : "Hello world!", "sunny" : "sunny", @@ -244,8 +237,15 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?", "Ok" : "OK", "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." : "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.", + "Error while unsharing" : "Error whilst unsharing", "can edit" : "can edit", "access control" : "access control", + "The object type is not specified." : "The object type is not specified.", + "Enter new" : "Enter new", + "Add" : "Add", + "Edit tags" : "Edit tags", + "Error loading dialog template: {error}" : "Error loading dialog template: {error}", + "No tags selected for deletion." : "No tags selected for deletion.", "The update was successful. Redirecting you to Nextcloud now." : "The update was successful. Redirecting you to Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n", "The share will expire on %s." : "The share will expire on %s.", diff --git a/core/l10n/en_GB.json b/core/l10n/en_GB.json index 4a5d12aaaf0..a44f18dd91e 100644 --- a/core/l10n/en_GB.json +++ b/core/l10n/en_GB.json @@ -97,9 +97,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>.", "Shared" : "Shared", "Shared with {recipients}" : "Shared with {recipients}", - "Error" : "Error", - "Error while sharing" : "Error whilst sharing", - "Error while unsharing" : "Error whilst unsharing", "Error setting expiration date" : "Error setting expiration date", "The public link will expire no later than {days} days after it is created" : "The public link will expire no later than {days} days after it is created", "Set expiration date" : "Set expiration date", @@ -120,6 +117,7 @@ "remote" : "remote", "Unshare" : "Unshare", "Could not unshare" : "Could not unshare", + "Error while sharing" : "Error whilst sharing", "Share details could not be loaded for this item." : "Share details could not be loaded for this item.", "No users or groups found for {search}" : "No users or groups found for {search}", "No users found for {search}" : "No users found for {search}", @@ -127,6 +125,7 @@ "{sharee} (group)" : "{sharee} (group)", "{sharee} (remote)" : "{sharee} (remote)", "Share" : "Share", + "Error" : "Error", "Error removing share" : "Error removing share", "Non-existing tag #{tag}" : "Non-existing tag #{tag}", "restricted" : "restricted", @@ -135,12 +134,6 @@ "Delete" : "Delete", "Rename" : "Rename", "Collaborative tags" : "Collaborative tags", - "The object type is not specified." : "The object type is not specified.", - "Enter new" : "Enter new", - "Add" : "Add", - "Edit tags" : "Edit tags", - "Error loading dialog template: {error}" : "Error loading dialog template: {error}", - "No tags selected for deletion." : "No tags selected for deletion.", "unknown text" : "unknown text", "Hello world!" : "Hello world!", "sunny" : "sunny", @@ -242,8 +235,15 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?", "Ok" : "OK", "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." : "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.", + "Error while unsharing" : "Error whilst unsharing", "can edit" : "can edit", "access control" : "access control", + "The object type is not specified." : "The object type is not specified.", + "Enter new" : "Enter new", + "Add" : "Add", + "Edit tags" : "Edit tags", + "Error loading dialog template: {error}" : "Error loading dialog template: {error}", + "No tags selected for deletion." : "No tags selected for deletion.", "The update was successful. Redirecting you to Nextcloud now." : "The update was successful. Redirecting you to Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n", "The share will expire on %s." : "The share will expire on %s.", diff --git a/core/l10n/es.js b/core/l10n/es.js index 1c49d90124e..5d35a93474f 100644 --- a/core/l10n/es.js +++ b/core/l10n/es.js @@ -14,6 +14,8 @@ OC.L10N.register( "No crop data provided" : "No se proporcionó datos del recorte", "No valid crop data provided" : "Recorte inválido", "Crop is not square" : "El recorte no es cuadrado", + "State token does not match" : "El token dado no coincide", + "Auth flow can only be started unauthenticated." : "El flujo de autorización solo puede comenzar sin estar identificado", "Couldn't reset password because the token is invalid" : "No se puede restablecer la contraseña porque el vale de identificación es inválido.", "Couldn't reset password because the token is expired" : "No se puede restablecer la contraseña porque el vale de identificación ha caducado.", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "No se pudo enviar el correo electrónico de restablecimiento porque no hay una dirección de correo electrónico para este nombre de usuario. Póngase en contacto con un administrador.", @@ -49,7 +51,14 @@ OC.L10N.register( "%s (incompatible)" : "%s (incompatible)", "Following apps have been disabled: %s" : "Las siguientes aplicaciones han sido deshabilitadas: %s", "Already up to date" : "Ya actualizado", + "No contacts found" : "No se han encontrado contactos", + "Show all contacts …" : "Mostrar todos los contactos...", + "There was an error loading your contacts" : "Ha habido un error cargando tus contactos", + "Loading your contacts …" : "Cargando tus contactos...", + "Looking for {term} …" : "Buscando {term}...", "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Ha habido problemas durante la comprobación de la integridad del código. Más información…</a>", + "No action available" : "No hay acciones disponibles", + "Error fetching contact actions" : "Error recuperando las acciones de los contactos", "Settings" : "Ajustes", "Connection to server lost" : "Perdida la conexión al server", "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problema al cargar la página, volverá a cargar en %n segundo","Problema al cagar la página, volverá a cargar en %n segundos"], @@ -103,14 +112,12 @@ OC.L10N.register( "The PHP Opcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend ↗</a> to use following settings in the <code>php.ini</code>:" : "El código Opcache de PHP no esta configurado correctamente. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Para mejor desempeño recomendamos ↗</a> para usar las siguiente opciones en el <code>php.ini</code>:", "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "La función PHP \"set_limit_time\" no esta disponible. Esto podría resultar en el script siendo terminado a la mitad de la ejecución, rompiendo la instalación. Le sugerimos considerablemente que active esta función.", "Error occurred while checking server setup" : "Ha ocurrido un error al revisar la configuración del servidor", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended 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." : "Tu directorio de datos y tus archivos son probablemente accesibles desde internet. El archivo .htaccess no funciona. Se recomienda encarecidamente que configures tu servidor web de tal manera que el directorio de datos no sea accesible o que muevas el directorio de datos fuera de la raíz de documentos del servidor web.", "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 at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "La cabecera HTTP \"Strict-Transport-Security\" no está configurada en al menos \"{segundos}\" segundos. Para una mejor seguridad recomendamos que habilite HSTS como se describe en <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Está ingresando a este sitio de internet vía HTTP. Le sugerimos enérgicamente que configure su servidor que utilice HTTPS como se describe en nuestros <a href=\"{docUrl}\">consejos de seguridad</a>.", "Shared" : "Compartido", "Shared with {recipients}" : "Compartido con {recipients}", - "Error" : "Error", - "Error while sharing" : "Error al compartir", - "Error while unsharing" : "Error al dejar de compartir", "Error setting expiration date" : "Error estableciendo fecha de caducidad", "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ó", "Set expiration date" : "Establecer fecha de caducidad", @@ -128,11 +135,12 @@ OC.L10N.register( "Share link" : "Enlace compartido", "Link" : "Enlace", "Password protect" : "Protección con contraseña", - "Allow upload and editing" : "Permitir la subida y la edición", "Allow editing" : "Permitir edición", - "upload only" : "solo subida", "Email link to person" : "Enviar enlace por correo electrónico a una persona", "Send" : "Enviar", + "Allow upload and editing" : "Permitir la subida y la edición", + "Read only" : "Solo lectura", + "Secure drop (upload only)" : "Gota segura (solo subir)", "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}", "Choose a password for the mail share" : "Elija una contraseña para compartir por correo electrónico", @@ -147,9 +155,9 @@ OC.L10N.register( "Can create" : "Puede crear", "Can change" : "Puede cambiar", "Can delete" : "Puede eliminar", - "Secure drop (upload only)" : "Gota segura (solo subir)", "Access control" : "Control de acceso", "Could not unshare" : "No se puede quitar el comparto", + "Error while sharing" : "Error al compartir", "Share details could not be loaded for this item." : "No se han podido cargar los detalles de compartición para este elemento.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Se necesita al menos {count} carácter para el autocompletado","Se necesitan al menos {count} caracteres para el autocompletado"], "This list is maybe truncated - please refine your search term to see more results." : "Esta lista puede estar acortada. Por favor, refina los términos de búsqueda para ver más resultados.", @@ -161,6 +169,14 @@ OC.L10N.register( "{sharee} (email)" : "{sharee} (email)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Compartir", + "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas introduciendo un usuario, grupo, ID de nube federada o dirección de correo electrónico.", + "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas introduciendo un usuario, grupo o ID de nube federada.", + "Share with other people by entering a user or group or an email address." : "Comparte con otras personas introduciendo un usuario, grupo o una dirección de correo electrónico.", + "Name or email address..." : "Nombre o dirección de correo electrónico...", + "Name or federated cloud ID..." : "Nombre o ID de nube federada...", + "Name, federated cloud ID or email address..." : "Nombre, ID de nube federada o dirección de correo electrónico...", + "Name..." : "Nombre...", + "Error" : "Error", "Error removing share" : "Error quitando el comparto", "Non-existing tag #{tag}" : "Categoría #{tag} no existente", "restricted" : "Restringido", @@ -170,12 +186,6 @@ OC.L10N.register( "Rename" : "Renombrar", "Collaborative tags" : "Etiquetas colaborativas", "No tags found" : "No se encontraron etiquetas", - "The object type is not specified." : "El tipo de objeto no está especificado.", - "Enter new" : "Ingresar nueva", - "Add" : "Agregar", - "Edit tags" : "Editar etiquetas", - "Error loading dialog template: {error}" : "Error al cargar plantilla de diálogo: {error}", - "No tags selected for deletion." : "No hay etiquetas seleccionadas para borrar.", "unknown text" : "texto desconocido", "Hello world!" : "¡Hola mundo!", "sunny" : "soleado", @@ -257,6 +267,10 @@ OC.L10N.register( "Log in" : "Iniciar sesión", "Stay logged in" : "Permanecer autenticado", "Alternative Logins" : "Inicios de sesión alternativos", + "You are about to grant \"%s\" access to your %s account." : "Estás a punto de conceder a \"%s\" acceso a tu cuenta %s", + "App token" : "Token de app", + "Alternative login using app token" : "Login alternativo usando token de app", + "Redirecting …" : "Redireccionando...", "New password" : "Nueva contraseña", "New Password" : "Contraseña nueva", "Reset password" : "Restablecer contraseña", @@ -292,6 +306,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Sus archivos están cifrados. Si no ha activado la clave de recuperación, no habrá manera de recuperar los datos una vez su contraseña sea restablecida.<br /> Si no está seguro de lo que debe hacer, por favor contacte con su administrador antes de continuar.<br />¿Realmente desea continuar?", "Ok" : "Aceptar", "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.", + "Error while unsharing" : "Error al dejar de compartir", "File drop (upload only)" : "Entrega de archivos (solo subida)", "can reshare" : "puede volver a compartir", "can edit" : "puede editar", @@ -308,6 +323,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Compartir con usuarios, grupos o usuarios remotos...", "Share with users, groups, remote users or by mail..." : "Compartir con usuarios, grupos, usuarios remotos o por correo...", "Share with users..." : "Compartir con usuarios...", + "The object type is not specified." : "El tipo de objeto no está especificado.", + "Enter new" : "Ingresar nueva", + "Add" : "Agregar", + "Edit tags" : "Editar etiquetas", + "Error loading dialog template: {error}" : "Error al cargar plantilla de diálogo: {error}", + "No tags selected for deletion." : "No hay etiquetas seleccionadas para borrar.", "The update was successful. Redirecting you to Nextcloud now." : "Actualización completada con éxito. Redirigiendo a Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hola:\n\nTan solo queremos informarte que %s compartió %s contigo.\nMíralo aquí: %s\n\n", "The share will expire on %s." : "El objeto dejará de ser compartido el %s.", diff --git a/core/l10n/es.json b/core/l10n/es.json index af3904bf56a..c4f38f116fd 100644 --- a/core/l10n/es.json +++ b/core/l10n/es.json @@ -12,6 +12,8 @@ "No crop data provided" : "No se proporcionó datos del recorte", "No valid crop data provided" : "Recorte inválido", "Crop is not square" : "El recorte no es cuadrado", + "State token does not match" : "El token dado no coincide", + "Auth flow can only be started unauthenticated." : "El flujo de autorización solo puede comenzar sin estar identificado", "Couldn't reset password because the token is invalid" : "No se puede restablecer la contraseña porque el vale de identificación es inválido.", "Couldn't reset password because the token is expired" : "No se puede restablecer la contraseña porque el vale de identificación ha caducado.", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "No se pudo enviar el correo electrónico de restablecimiento porque no hay una dirección de correo electrónico para este nombre de usuario. Póngase en contacto con un administrador.", @@ -47,7 +49,14 @@ "%s (incompatible)" : "%s (incompatible)", "Following apps have been disabled: %s" : "Las siguientes aplicaciones han sido deshabilitadas: %s", "Already up to date" : "Ya actualizado", + "No contacts found" : "No se han encontrado contactos", + "Show all contacts …" : "Mostrar todos los contactos...", + "There was an error loading your contacts" : "Ha habido un error cargando tus contactos", + "Loading your contacts …" : "Cargando tus contactos...", + "Looking for {term} …" : "Buscando {term}...", "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Ha habido problemas durante la comprobación de la integridad del código. Más información…</a>", + "No action available" : "No hay acciones disponibles", + "Error fetching contact actions" : "Error recuperando las acciones de los contactos", "Settings" : "Ajustes", "Connection to server lost" : "Perdida la conexión al server", "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problema al cargar la página, volverá a cargar en %n segundo","Problema al cagar la página, volverá a cargar en %n segundos"], @@ -101,14 +110,12 @@ "The PHP Opcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend ↗</a> to use following settings in the <code>php.ini</code>:" : "El código Opcache de PHP no esta configurado correctamente. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Para mejor desempeño recomendamos ↗</a> para usar las siguiente opciones en el <code>php.ini</code>:", "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "La función PHP \"set_limit_time\" no esta disponible. Esto podría resultar en el script siendo terminado a la mitad de la ejecución, rompiendo la instalación. Le sugerimos considerablemente que active esta función.", "Error occurred while checking server setup" : "Ha ocurrido un error al revisar la configuración del servidor", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended 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." : "Tu directorio de datos y tus archivos son probablemente accesibles desde internet. El archivo .htaccess no funciona. Se recomienda encarecidamente que configures tu servidor web de tal manera que el directorio de datos no sea accesible o que muevas el directorio de datos fuera de la raíz de documentos del servidor web.", "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 at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "La cabecera HTTP \"Strict-Transport-Security\" no está configurada en al menos \"{segundos}\" segundos. Para una mejor seguridad recomendamos que habilite HSTS como se describe en <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Está ingresando a este sitio de internet vía HTTP. Le sugerimos enérgicamente que configure su servidor que utilice HTTPS como se describe en nuestros <a href=\"{docUrl}\">consejos de seguridad</a>.", "Shared" : "Compartido", "Shared with {recipients}" : "Compartido con {recipients}", - "Error" : "Error", - "Error while sharing" : "Error al compartir", - "Error while unsharing" : "Error al dejar de compartir", "Error setting expiration date" : "Error estableciendo fecha de caducidad", "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ó", "Set expiration date" : "Establecer fecha de caducidad", @@ -126,11 +133,12 @@ "Share link" : "Enlace compartido", "Link" : "Enlace", "Password protect" : "Protección con contraseña", - "Allow upload and editing" : "Permitir la subida y la edición", "Allow editing" : "Permitir edición", - "upload only" : "solo subida", "Email link to person" : "Enviar enlace por correo electrónico a una persona", "Send" : "Enviar", + "Allow upload and editing" : "Permitir la subida y la edición", + "Read only" : "Solo lectura", + "Secure drop (upload only)" : "Gota segura (solo subir)", "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}", "Choose a password for the mail share" : "Elija una contraseña para compartir por correo electrónico", @@ -145,9 +153,9 @@ "Can create" : "Puede crear", "Can change" : "Puede cambiar", "Can delete" : "Puede eliminar", - "Secure drop (upload only)" : "Gota segura (solo subir)", "Access control" : "Control de acceso", "Could not unshare" : "No se puede quitar el comparto", + "Error while sharing" : "Error al compartir", "Share details could not be loaded for this item." : "No se han podido cargar los detalles de compartición para este elemento.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Se necesita al menos {count} carácter para el autocompletado","Se necesitan al menos {count} caracteres para el autocompletado"], "This list is maybe truncated - please refine your search term to see more results." : "Esta lista puede estar acortada. Por favor, refina los términos de búsqueda para ver más resultados.", @@ -159,6 +167,14 @@ "{sharee} (email)" : "{sharee} (email)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Compartir", + "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas introduciendo un usuario, grupo, ID de nube federada o dirección de correo electrónico.", + "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas introduciendo un usuario, grupo o ID de nube federada.", + "Share with other people by entering a user or group or an email address." : "Comparte con otras personas introduciendo un usuario, grupo o una dirección de correo electrónico.", + "Name or email address..." : "Nombre o dirección de correo electrónico...", + "Name or federated cloud ID..." : "Nombre o ID de nube federada...", + "Name, federated cloud ID or email address..." : "Nombre, ID de nube federada o dirección de correo electrónico...", + "Name..." : "Nombre...", + "Error" : "Error", "Error removing share" : "Error quitando el comparto", "Non-existing tag #{tag}" : "Categoría #{tag} no existente", "restricted" : "Restringido", @@ -168,12 +184,6 @@ "Rename" : "Renombrar", "Collaborative tags" : "Etiquetas colaborativas", "No tags found" : "No se encontraron etiquetas", - "The object type is not specified." : "El tipo de objeto no está especificado.", - "Enter new" : "Ingresar nueva", - "Add" : "Agregar", - "Edit tags" : "Editar etiquetas", - "Error loading dialog template: {error}" : "Error al cargar plantilla de diálogo: {error}", - "No tags selected for deletion." : "No hay etiquetas seleccionadas para borrar.", "unknown text" : "texto desconocido", "Hello world!" : "¡Hola mundo!", "sunny" : "soleado", @@ -255,6 +265,10 @@ "Log in" : "Iniciar sesión", "Stay logged in" : "Permanecer autenticado", "Alternative Logins" : "Inicios de sesión alternativos", + "You are about to grant \"%s\" access to your %s account." : "Estás a punto de conceder a \"%s\" acceso a tu cuenta %s", + "App token" : "Token de app", + "Alternative login using app token" : "Login alternativo usando token de app", + "Redirecting …" : "Redireccionando...", "New password" : "Nueva contraseña", "New Password" : "Contraseña nueva", "Reset password" : "Restablecer contraseña", @@ -290,6 +304,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Sus archivos están cifrados. Si no ha activado la clave de recuperación, no habrá manera de recuperar los datos una vez su contraseña sea restablecida.<br /> Si no está seguro de lo que debe hacer, por favor contacte con su administrador antes de continuar.<br />¿Realmente desea continuar?", "Ok" : "Aceptar", "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.", + "Error while unsharing" : "Error al dejar de compartir", "File drop (upload only)" : "Entrega de archivos (solo subida)", "can reshare" : "puede volver a compartir", "can edit" : "puede editar", @@ -306,6 +321,12 @@ "Share with users, groups or remote users..." : "Compartir con usuarios, grupos o usuarios remotos...", "Share with users, groups, remote users or by mail..." : "Compartir con usuarios, grupos, usuarios remotos o por correo...", "Share with users..." : "Compartir con usuarios...", + "The object type is not specified." : "El tipo de objeto no está especificado.", + "Enter new" : "Ingresar nueva", + "Add" : "Agregar", + "Edit tags" : "Editar etiquetas", + "Error loading dialog template: {error}" : "Error al cargar plantilla de diálogo: {error}", + "No tags selected for deletion." : "No hay etiquetas seleccionadas para borrar.", "The update was successful. Redirecting you to Nextcloud now." : "Actualización completada con éxito. Redirigiendo a Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hola:\n\nTan solo queremos informarte que %s compartió %s contigo.\nMíralo aquí: %s\n\n", "The share will expire on %s." : "El objeto dejará de ser compartido el %s.", diff --git a/core/l10n/es_MX.js b/core/l10n/es_MX.js index bf2e584c82d..60946f5a0f8 100644 --- a/core/l10n/es_MX.js +++ b/core/l10n/es_MX.js @@ -118,9 +118,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Usted está accediendo este sitio via HTTP. Le recomendamos ámpliamente que configure su servidor para que en su lugar, el uso de HTTPS sea requerido como está descrito en nuestros <a href=\"{docUrl}\">consejos de seguridad</a>.", "Shared" : "Compartido", "Shared with {recipients}" : "Compartido con {recipients}", - "Error" : "Error", - "Error while sharing" : "Se presentó un error al compartir", - "Error while unsharing" : "Se presentó un error al dejar de compartir", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Establecer la fecha de expiración", @@ -138,11 +135,12 @@ OC.L10N.register( "Share link" : "Compartir liga", "Link" : "Liga", "Password protect" : "Proteger con contraseña", - "Allow upload and editing" : "Permitir cargar y editar", "Allow editing" : "Permitir editar", - "upload only" : "sólo cargar", "Email link to person" : "Enviar la liga por correo electrónico a una persona", "Send" : "Enviar", + "Allow upload and editing" : "Permitir cargar y editar", + "Read only" : "Solo lectura", + "Secure drop (upload only)" : "Depósito seguro (sólo carga de archivos)", "Shared with you and the group {group} by {owner}" : "Compartido con usted y el grupo {group} por {owner}", "Shared with you by {owner}" : "Compartido con usted por {owner}", "Choose a password for the mail share" : "Establecer una contraseña para el elemento compartido por correo", @@ -157,9 +155,9 @@ OC.L10N.register( "Can create" : "Puede crear", "Can change" : "Puede cambiar", "Can delete" : "Puede borrar", - "Secure drop (upload only)" : "Depósito seguro (sólo carga de archivos)", "Access control" : "Control de acceso", "Could not unshare" : "No fue posible dejar de compartir", + "Error while sharing" : "Se presentó un error al compartir", "Share details could not be loaded for this item." : "Los detalles del recurso compartido no se pudieron cargar para este elemento. ", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Se requiere de la menos {count} caracter para el auto completar","Se requieren de la menos {count} caracteres para el auto completar"], "This list is maybe truncated - please refine your search term to see more results." : "Esta lista puede estar truncada - favor de refinar sus términos de búsqueda para poder ver más resultados. ", @@ -178,6 +176,7 @@ OC.L10N.register( "Name or federated cloud ID..." : "Nombre o ID de nube federada...", "Name, federated cloud ID or email address..." : "Nombre, ID de nube federada o dirección de correo electrónico...", "Name..." : "Nombre...", + "Error" : "Error", "Error removing share" : "Se presentó un error al dejar de compartir", "Non-existing tag #{tag}" : "Etiqueta #{tag} no-existente", "restricted" : "restringido", @@ -187,12 +186,6 @@ OC.L10N.register( "Rename" : "Renombrar", "Collaborative tags" : "Etiquetas colaborativas", "No tags found" : "No se encontraron etiquetas", - "The object type is not specified." : "El tipo del objeto no está especificado.", - "Enter new" : "Ingresar nuevo", - "Add" : "Agregar", - "Edit tags" : "Editar etiquetas", - "Error loading dialog template: {error}" : "Se presentó un error al cargar la plantilla de diálogo: {error}", - "No tags selected for deletion." : "No hay etiquetas seleccionadas para borrar.", "unknown text" : "texto desconocido", "Hello world!" : "¡Hola mundo!", "sunny" : "soleado", @@ -313,6 +306,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Sus archivos están encriptados. Si no ha habilitado la llave de recuperación, no habrá manera de que pueda recuperar sus datos una vez que restablezca su contraseña.<br />Si no está seguro de lo que está haciendo, favor de contactar a su adminstrador antes de continuar. <br />¿Realmente desea continuar?", "Ok" : "Ok", "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." : "Posiblemente sus directorios de datos y archivos son accesibles desde Internet. El archivo .htaccess no está funcionando. Le recomendamos ámpliamente que configure su servidor web de tal modo que el directorio de datos no sea accesible o que mueva el directorio de datos fuera de la raíz de documentos del servidor web. ", + "Error while unsharing" : "Se presentó un error al dejar de compartir", "File drop (upload only)" : "Soltar archivo (solo para carga)", "can reshare" : "pruede volver a compartir", "can edit" : "puede editar", @@ -329,6 +323,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Compartir con otros usuarios, otros usuarios remotos o grupos...", "Share with users, groups, remote users or by mail..." : "Compartir con usuarios, grupos, usuarios rempotos o por correo...", "Share with users..." : "Compartir con otros usuarios...", + "The object type is not specified." : "El tipo del objeto no está especificado.", + "Enter new" : "Ingresar nuevo", + "Add" : "Agregar", + "Edit tags" : "Editar etiquetas", + "Error loading dialog template: {error}" : "Se presentó un error al cargar la plantilla de diálogo: {error}", + "No tags selected for deletion." : "No hay etiquetas seleccionadas para borrar.", "The update was successful. Redirecting you to Nextcloud now." : "La actualización fue exitosa. Redirigiendolo a su Nextcloud ahora. ", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hola,\n\nsólo queremos informarle que %s ha compartido %s con usted.\n\nConsúltelo aquí: %s\n\n", "The share will expire on %s." : "El recurso dejará de ser compartido el %s.", diff --git a/core/l10n/es_MX.json b/core/l10n/es_MX.json index 46c1a003bfc..c19324cea6c 100644 --- a/core/l10n/es_MX.json +++ b/core/l10n/es_MX.json @@ -116,9 +116,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Usted está accediendo este sitio via HTTP. Le recomendamos ámpliamente que configure su servidor para que en su lugar, el uso de HTTPS sea requerido como está descrito en nuestros <a href=\"{docUrl}\">consejos de seguridad</a>.", "Shared" : "Compartido", "Shared with {recipients}" : "Compartido con {recipients}", - "Error" : "Error", - "Error while sharing" : "Se presentó un error al compartir", - "Error while unsharing" : "Se presentó un error al dejar de compartir", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Establecer la fecha de expiración", @@ -136,11 +133,12 @@ "Share link" : "Compartir liga", "Link" : "Liga", "Password protect" : "Proteger con contraseña", - "Allow upload and editing" : "Permitir cargar y editar", "Allow editing" : "Permitir editar", - "upload only" : "sólo cargar", "Email link to person" : "Enviar la liga por correo electrónico a una persona", "Send" : "Enviar", + "Allow upload and editing" : "Permitir cargar y editar", + "Read only" : "Solo lectura", + "Secure drop (upload only)" : "Depósito seguro (sólo carga de archivos)", "Shared with you and the group {group} by {owner}" : "Compartido con usted y el grupo {group} por {owner}", "Shared with you by {owner}" : "Compartido con usted por {owner}", "Choose a password for the mail share" : "Establecer una contraseña para el elemento compartido por correo", @@ -155,9 +153,9 @@ "Can create" : "Puede crear", "Can change" : "Puede cambiar", "Can delete" : "Puede borrar", - "Secure drop (upload only)" : "Depósito seguro (sólo carga de archivos)", "Access control" : "Control de acceso", "Could not unshare" : "No fue posible dejar de compartir", + "Error while sharing" : "Se presentó un error al compartir", "Share details could not be loaded for this item." : "Los detalles del recurso compartido no se pudieron cargar para este elemento. ", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Se requiere de la menos {count} caracter para el auto completar","Se requieren de la menos {count} caracteres para el auto completar"], "This list is maybe truncated - please refine your search term to see more results." : "Esta lista puede estar truncada - favor de refinar sus términos de búsqueda para poder ver más resultados. ", @@ -176,6 +174,7 @@ "Name or federated cloud ID..." : "Nombre o ID de nube federada...", "Name, federated cloud ID or email address..." : "Nombre, ID de nube federada o dirección de correo electrónico...", "Name..." : "Nombre...", + "Error" : "Error", "Error removing share" : "Se presentó un error al dejar de compartir", "Non-existing tag #{tag}" : "Etiqueta #{tag} no-existente", "restricted" : "restringido", @@ -185,12 +184,6 @@ "Rename" : "Renombrar", "Collaborative tags" : "Etiquetas colaborativas", "No tags found" : "No se encontraron etiquetas", - "The object type is not specified." : "El tipo del objeto no está especificado.", - "Enter new" : "Ingresar nuevo", - "Add" : "Agregar", - "Edit tags" : "Editar etiquetas", - "Error loading dialog template: {error}" : "Se presentó un error al cargar la plantilla de diálogo: {error}", - "No tags selected for deletion." : "No hay etiquetas seleccionadas para borrar.", "unknown text" : "texto desconocido", "Hello world!" : "¡Hola mundo!", "sunny" : "soleado", @@ -311,6 +304,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Sus archivos están encriptados. Si no ha habilitado la llave de recuperación, no habrá manera de que pueda recuperar sus datos una vez que restablezca su contraseña.<br />Si no está seguro de lo que está haciendo, favor de contactar a su adminstrador antes de continuar. <br />¿Realmente desea continuar?", "Ok" : "Ok", "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." : "Posiblemente sus directorios de datos y archivos son accesibles desde Internet. El archivo .htaccess no está funcionando. Le recomendamos ámpliamente que configure su servidor web de tal modo que el directorio de datos no sea accesible o que mueva el directorio de datos fuera de la raíz de documentos del servidor web. ", + "Error while unsharing" : "Se presentó un error al dejar de compartir", "File drop (upload only)" : "Soltar archivo (solo para carga)", "can reshare" : "pruede volver a compartir", "can edit" : "puede editar", @@ -327,6 +321,12 @@ "Share with users, groups or remote users..." : "Compartir con otros usuarios, otros usuarios remotos o grupos...", "Share with users, groups, remote users or by mail..." : "Compartir con usuarios, grupos, usuarios rempotos o por correo...", "Share with users..." : "Compartir con otros usuarios...", + "The object type is not specified." : "El tipo del objeto no está especificado.", + "Enter new" : "Ingresar nuevo", + "Add" : "Agregar", + "Edit tags" : "Editar etiquetas", + "Error loading dialog template: {error}" : "Se presentó un error al cargar la plantilla de diálogo: {error}", + "No tags selected for deletion." : "No hay etiquetas seleccionadas para borrar.", "The update was successful. Redirecting you to Nextcloud now." : "La actualización fue exitosa. Redirigiendolo a su Nextcloud ahora. ", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hola,\n\nsólo queremos informarle que %s ha compartido %s con usted.\n\nConsúltelo aquí: %s\n\n", "The share will expire on %s." : "El recurso dejará de ser compartido el %s.", diff --git a/core/l10n/eu.js b/core/l10n/eu.js index 86933487ecb..c19aabe6cdf 100644 --- a/core/l10n/eu.js +++ b/core/l10n/eu.js @@ -101,9 +101,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>.", "Shared" : "Elkarbanatuta", "Shared with {recipients}" : "{recipients}-rekin partekatua.", - "Error" : "Errorea", - "Error while sharing" : "Errore bat egon da elkarbanatzean", - "Error while unsharing" : "Errore bat egon da elkarbanaketa desegitean", "Error setting expiration date" : "Errore bat egon da muga data ezartzean", "The public link will expire no later than {days} days after it is created" : "Esteka publikoak iraungi egingo du, askoz jota, sortu eta {days} egunetara.", "Set expiration date" : "Ezarri muga data", @@ -119,10 +116,10 @@ OC.L10N.register( "Share link" : "Elkarbanatu lotura", "Link" : "Esteka", "Password protect" : "Babestu pasahitzarekin", - "Allow upload and editing" : "Onartu igoera eta edizioa", "Allow editing" : "Baimendu editatzea", "Email link to person" : "Postaz bidali lotura ", "Send" : "Bidali", + "Allow upload and editing" : "Onartu igoera eta edizioa", "Shared with you and the group {group} by {owner}" : "{owner}-k zu eta {group} taldearekin elkarbanatuta", "Shared with you by {owner}" : "{owner}-k zurekin elkarbanatuta", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} link bidez partekatuta", @@ -131,6 +128,7 @@ OC.L10N.register( "email" : "posta-elektronikoa", "Unshare" : "Ez elkarbanatu", "Could not unshare" : "Ezin izan despartekatu", + "Error while sharing" : "Errore bat egon da elkarbanatzean", "Share details could not be loaded for this item." : "Partekatze xehetasunak ezin izan dira elementu honentzat kargatu.", "No users or groups found for {search}" : "Ez dira {search} -rentzat erabiltzaile edo talderik aurkitu", "No users found for {search}" : "Ez dira {search} -rentzat erabiltzailerik aurkitu", @@ -139,6 +137,7 @@ OC.L10N.register( "{sharee} (remote)" : "{sharee} (remote)", "{sharee} (email)" : "{sharee} (email)", "Share" : "Elkarbanatu", + "Error" : "Errorea", "Error removing share" : " Akatsa kuota kentzerakoan", "Non-existing tag #{tag}" : "#{tag} ez da existitzen", "restricted" : "mugatua", @@ -148,12 +147,6 @@ OC.L10N.register( "Rename" : "Berrizendatu", "Collaborative tags" : "Elkarlaneko etiketak", "No tags found" : "Ez da etiketarik aurkitu", - "The object type is not specified." : "Objetu mota ez dago zehaztuta.", - "Enter new" : "Sartu berria", - "Add" : "Gehitu", - "Edit tags" : "Editatu etiketak", - "Error loading dialog template: {error}" : "Errorea elkarrizketa txantiloia kargatzean: {errorea}", - "No tags selected for deletion." : "Ez dira ezabatzeko etiketak hautatu.", "unknown text" : "testu ezezaguna", "Hello world!" : "Kaixo Mundua!", "sunny" : "eguzkitsua", @@ -266,6 +259,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Zure fitxategiak enkriptaturik daude. Ez baduzu berreskuratze gakoa gaitzen pasahitza berrabiaraztean ez da zure fitxategiak berreskuratzeko modurik egongo. <br />Zer egin ziur ez bazaude kudeatzailearekin harremanetan ipini jarraitu aurretik.<br /> Ziur zaude aurrera jarraitu nahi duzula?", "Ok" : "Ados", "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." : "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.", + "Error while unsharing" : "Errore bat egon da elkarbanaketa desegitean", "File drop (upload only)" : "Fitxategiak utzi (igo bakarrik)", "can reshare" : "elkarbanatu dezake", "can edit" : "editatu dezake", @@ -282,6 +276,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "erabiltzaile, talde edo urruneko erabiltzaile batzuekin Elkarbanatu ...", "Share with users, groups, remote users or by mail..." : "Erabiltzaile, talde, urruneko erabiltzaile edo postaz elkarbanatu...", "Share with users..." : "Erabiltzaileekin elkarbanatu...", + "The object type is not specified." : "Objetu mota ez dago zehaztuta.", + "Enter new" : "Sartu berria", + "Add" : "Gehitu", + "Edit tags" : "Editatu etiketak", + "Error loading dialog template: {error}" : "Errorea elkarrizketa txantiloia kargatzean: {errorea}", + "No tags selected for deletion." : "Ez dira ezabatzeko etiketak hautatu.", "The update was successful. Redirecting you to Nextcloud now." : "The update was successful. Redirecting you to Nextcloud now.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Kaixo\n\n%s-ek %s zurekin partekatu duela jakin dezazun.\nIkusi ezazu: %s\n\n", "The share will expire on %s." : "Elkarbanaketa %s-n iraungiko da.", diff --git a/core/l10n/eu.json b/core/l10n/eu.json index 32adcf0ff4a..e89b1f8eb68 100644 --- a/core/l10n/eu.json +++ b/core/l10n/eu.json @@ -99,9 +99,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>.", "Shared" : "Elkarbanatuta", "Shared with {recipients}" : "{recipients}-rekin partekatua.", - "Error" : "Errorea", - "Error while sharing" : "Errore bat egon da elkarbanatzean", - "Error while unsharing" : "Errore bat egon da elkarbanaketa desegitean", "Error setting expiration date" : "Errore bat egon da muga data ezartzean", "The public link will expire no later than {days} days after it is created" : "Esteka publikoak iraungi egingo du, askoz jota, sortu eta {days} egunetara.", "Set expiration date" : "Ezarri muga data", @@ -117,10 +114,10 @@ "Share link" : "Elkarbanatu lotura", "Link" : "Esteka", "Password protect" : "Babestu pasahitzarekin", - "Allow upload and editing" : "Onartu igoera eta edizioa", "Allow editing" : "Baimendu editatzea", "Email link to person" : "Postaz bidali lotura ", "Send" : "Bidali", + "Allow upload and editing" : "Onartu igoera eta edizioa", "Shared with you and the group {group} by {owner}" : "{owner}-k zu eta {group} taldearekin elkarbanatuta", "Shared with you by {owner}" : "{owner}-k zurekin elkarbanatuta", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} link bidez partekatuta", @@ -129,6 +126,7 @@ "email" : "posta-elektronikoa", "Unshare" : "Ez elkarbanatu", "Could not unshare" : "Ezin izan despartekatu", + "Error while sharing" : "Errore bat egon da elkarbanatzean", "Share details could not be loaded for this item." : "Partekatze xehetasunak ezin izan dira elementu honentzat kargatu.", "No users or groups found for {search}" : "Ez dira {search} -rentzat erabiltzaile edo talderik aurkitu", "No users found for {search}" : "Ez dira {search} -rentzat erabiltzailerik aurkitu", @@ -137,6 +135,7 @@ "{sharee} (remote)" : "{sharee} (remote)", "{sharee} (email)" : "{sharee} (email)", "Share" : "Elkarbanatu", + "Error" : "Errorea", "Error removing share" : " Akatsa kuota kentzerakoan", "Non-existing tag #{tag}" : "#{tag} ez da existitzen", "restricted" : "mugatua", @@ -146,12 +145,6 @@ "Rename" : "Berrizendatu", "Collaborative tags" : "Elkarlaneko etiketak", "No tags found" : "Ez da etiketarik aurkitu", - "The object type is not specified." : "Objetu mota ez dago zehaztuta.", - "Enter new" : "Sartu berria", - "Add" : "Gehitu", - "Edit tags" : "Editatu etiketak", - "Error loading dialog template: {error}" : "Errorea elkarrizketa txantiloia kargatzean: {errorea}", - "No tags selected for deletion." : "Ez dira ezabatzeko etiketak hautatu.", "unknown text" : "testu ezezaguna", "Hello world!" : "Kaixo Mundua!", "sunny" : "eguzkitsua", @@ -264,6 +257,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Zure fitxategiak enkriptaturik daude. Ez baduzu berreskuratze gakoa gaitzen pasahitza berrabiaraztean ez da zure fitxategiak berreskuratzeko modurik egongo. <br />Zer egin ziur ez bazaude kudeatzailearekin harremanetan ipini jarraitu aurretik.<br /> Ziur zaude aurrera jarraitu nahi duzula?", "Ok" : "Ados", "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." : "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.", + "Error while unsharing" : "Errore bat egon da elkarbanaketa desegitean", "File drop (upload only)" : "Fitxategiak utzi (igo bakarrik)", "can reshare" : "elkarbanatu dezake", "can edit" : "editatu dezake", @@ -280,6 +274,12 @@ "Share with users, groups or remote users..." : "erabiltzaile, talde edo urruneko erabiltzaile batzuekin Elkarbanatu ...", "Share with users, groups, remote users or by mail..." : "Erabiltzaile, talde, urruneko erabiltzaile edo postaz elkarbanatu...", "Share with users..." : "Erabiltzaileekin elkarbanatu...", + "The object type is not specified." : "Objetu mota ez dago zehaztuta.", + "Enter new" : "Sartu berria", + "Add" : "Gehitu", + "Edit tags" : "Editatu etiketak", + "Error loading dialog template: {error}" : "Errorea elkarrizketa txantiloia kargatzean: {errorea}", + "No tags selected for deletion." : "Ez dira ezabatzeko etiketak hautatu.", "The update was successful. Redirecting you to Nextcloud now." : "The update was successful. Redirecting you to Nextcloud now.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Kaixo\n\n%s-ek %s zurekin partekatu duela jakin dezazun.\nIkusi ezazu: %s\n\n", "The share will expire on %s." : "Elkarbanaketa %s-n iraungiko da.", diff --git a/core/l10n/fi.js b/core/l10n/fi.js index 12a26dbc354..5bab688fc59 100644 --- a/core/l10n/fi.js +++ b/core/l10n/fi.js @@ -111,9 +111,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Käytät sivustoa HTTP-yhteydellä. Suosittelemme asettamaan palvelimen vaatimaan HTTPS-yhteyden, kuten <a href=\"{docUrl}\">tietoturvavinkeissämme</a> neuvotaan.", "Shared" : "Jaettu", "Shared with {recipients}" : "Jaettu henkilöiden {recipients} kanssa", - "Error" : "Virhe", - "Error while sharing" : "Virhe jaettaessa", - "Error while unsharing" : "Virhe jakoa peruttaessa", "Error setting expiration date" : "Virhe vanhenemispäivää asetettaessa", "The public link will expire no later than {days} days after it is created" : "Julkinen linkki vanhenee {days} päivän jälkeen sen luomisesta", "Set expiration date" : "Aseta vanhenemispäivä", @@ -131,11 +128,11 @@ OC.L10N.register( "Share link" : "Jaa linkki", "Link" : "Linkki", "Password protect" : "Suojaa salasanalla", - "Allow upload and editing" : "Salli lähetys ja muokkaus", "Allow editing" : "Salli muokkaus", - "upload only" : "vain lähetys", "Email link to person" : "Lähetä linkki sähköpostitse", "Send" : "Lähetä", + "Allow upload and editing" : "Salli lähetys ja muokkaus", + "Secure drop (upload only)" : "Tiedostojen pudotus (vain lähetys)", "Shared with you and the group {group} by {owner}" : "Jaettu sinun ja ryhmän {group} kanssa käyttäjältä {owner}", "Shared with you by {owner}" : "Jaettu kanssasi käyttäjältä {owner}", "Choose a password for the mail share" : "Valitse salasana sähköpostijaolle", @@ -150,9 +147,9 @@ OC.L10N.register( "Can create" : "Voi luoda", "Can change" : "Voi vaihtaa", "Can delete" : "Voi poistaa", - "Secure drop (upload only)" : "Tiedostojen pudotus (vain lähetys)", "Access control" : "Pääsynhallinta", "Could not unshare" : "Jakamisen lopettaminen epäonnistui", + "Error while sharing" : "Virhe jaettaessa", "Share details could not be loaded for this item." : "Tämän kohteen jakamistietoja ei voitu ladata.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Vähintään {count} kirjain vaaditaan automaattiseen täydentämiseen","Vähintään {count} kirjainta vaaditaan automaattiseen täydentämiseen"], "This list is maybe truncated - please refine your search term to see more results." : "Lista on ehkä vajaa - uudelleen määritä hakutermisi nähdäksesi lisää tuloksia.", @@ -171,6 +168,7 @@ OC.L10N.register( "Name or federated cloud ID..." : "Nimi tai federoidun pilven tunniste...", "Name, federated cloud ID or email address..." : "Nimi, federoidun pilven tunniste tai sähköpostiosoite...", "Name..." : "Nimi...", + "Error" : "Virhe", "Error removing share" : "Virhe jakoa poistaessa", "Non-existing tag #{tag}" : "Ei olemassa oleva tunniste #{tag}", "restricted" : "rajoitettu", @@ -180,12 +178,6 @@ OC.L10N.register( "Rename" : "Nimeä uudelleen", "Collaborative tags" : "Yhteistyölliset tunnisteet", "No tags found" : "Tunnisteita ei löytynyt", - "The object type is not specified." : "Objektin tyyppiä ei ole määritelty.", - "Enter new" : "Kirjoita uusi", - "Add" : "Lisää", - "Edit tags" : "Muokkaa tunnisteita", - "Error loading dialog template: {error}" : "Virhe ladatessa lomakepohjaa: {error}", - "No tags selected for deletion." : "Tunnisteita ei valittu poistettavaksi.", "unknown text" : "tuntematon teksti", "Hello world!" : "Hei maailma!", "sunny" : "aurinkoinen", @@ -303,6 +295,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Tiedostosi on salattu. Jos et ole ottanut käyttöön palautusavainta, tietojasi ei ole mahdollista palauttaa salasanan nollaamisen jälkeen.<br />Jos et ole varma mitä tehdä, ota yhteys ylläpitäjään.<br />Haluatko varmasti jatkaa?", "Ok" : "Ok", "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." : "Data-hakemistosi ja tiedostosi ovat luultavasti käytettävissä suoraan Internetistä. .htaccess-tiedosto ei toimi oikein. Suosittelemme määrittämään HTTP-palvelimen asetukset siten, ettei data-hakemisto ole suoraan käytettävissä Internetistä tai siirtämään data-hakemiston HTTP-palvelimen juurihakemiston ulkopuolelle.", + "Error while unsharing" : "Virhe jakoa peruttaessa", "File drop (upload only)" : "Tiedostojen pudotus (Vain lähetys)", "can reshare" : "voi uudelleenjakaa", "can edit" : "voi muokata", @@ -319,6 +312,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Jaa käyttäjille, ryhmille tai etäkäyttäjille...", "Share with users, groups, remote users or by mail..." : "Jaa käyttäjille, ryhmille, etäkäyttäjille tai sähköpostilla...", "Share with users..." : "Jaa käyttäjille...", + "The object type is not specified." : "Objektin tyyppiä ei ole määritelty.", + "Enter new" : "Kirjoita uusi", + "Add" : "Lisää", + "Edit tags" : "Muokkaa tunnisteita", + "Error loading dialog template: {error}" : "Virhe ladatessa lomakepohjaa: {error}", + "No tags selected for deletion." : "Tunnisteita ei valittu poistettavaksi.", "The update was successful. Redirecting you to Nextcloud now." : "Päivitys onnistui. Sinut ohjataan nyt Nextcloudiin.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hei,\n\n%s jakoi kohteen %s kanssasi.\nTutustu siihen: %s\n\n", "The share will expire on %s." : "Jakaminen päättyy %s.", diff --git a/core/l10n/fi.json b/core/l10n/fi.json index f05e0c5b07c..80db8e783f7 100644 --- a/core/l10n/fi.json +++ b/core/l10n/fi.json @@ -109,9 +109,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Käytät sivustoa HTTP-yhteydellä. Suosittelemme asettamaan palvelimen vaatimaan HTTPS-yhteyden, kuten <a href=\"{docUrl}\">tietoturvavinkeissämme</a> neuvotaan.", "Shared" : "Jaettu", "Shared with {recipients}" : "Jaettu henkilöiden {recipients} kanssa", - "Error" : "Virhe", - "Error while sharing" : "Virhe jaettaessa", - "Error while unsharing" : "Virhe jakoa peruttaessa", "Error setting expiration date" : "Virhe vanhenemispäivää asetettaessa", "The public link will expire no later than {days} days after it is created" : "Julkinen linkki vanhenee {days} päivän jälkeen sen luomisesta", "Set expiration date" : "Aseta vanhenemispäivä", @@ -129,11 +126,11 @@ "Share link" : "Jaa linkki", "Link" : "Linkki", "Password protect" : "Suojaa salasanalla", - "Allow upload and editing" : "Salli lähetys ja muokkaus", "Allow editing" : "Salli muokkaus", - "upload only" : "vain lähetys", "Email link to person" : "Lähetä linkki sähköpostitse", "Send" : "Lähetä", + "Allow upload and editing" : "Salli lähetys ja muokkaus", + "Secure drop (upload only)" : "Tiedostojen pudotus (vain lähetys)", "Shared with you and the group {group} by {owner}" : "Jaettu sinun ja ryhmän {group} kanssa käyttäjältä {owner}", "Shared with you by {owner}" : "Jaettu kanssasi käyttäjältä {owner}", "Choose a password for the mail share" : "Valitse salasana sähköpostijaolle", @@ -148,9 +145,9 @@ "Can create" : "Voi luoda", "Can change" : "Voi vaihtaa", "Can delete" : "Voi poistaa", - "Secure drop (upload only)" : "Tiedostojen pudotus (vain lähetys)", "Access control" : "Pääsynhallinta", "Could not unshare" : "Jakamisen lopettaminen epäonnistui", + "Error while sharing" : "Virhe jaettaessa", "Share details could not be loaded for this item." : "Tämän kohteen jakamistietoja ei voitu ladata.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Vähintään {count} kirjain vaaditaan automaattiseen täydentämiseen","Vähintään {count} kirjainta vaaditaan automaattiseen täydentämiseen"], "This list is maybe truncated - please refine your search term to see more results." : "Lista on ehkä vajaa - uudelleen määritä hakutermisi nähdäksesi lisää tuloksia.", @@ -169,6 +166,7 @@ "Name or federated cloud ID..." : "Nimi tai federoidun pilven tunniste...", "Name, federated cloud ID or email address..." : "Nimi, federoidun pilven tunniste tai sähköpostiosoite...", "Name..." : "Nimi...", + "Error" : "Virhe", "Error removing share" : "Virhe jakoa poistaessa", "Non-existing tag #{tag}" : "Ei olemassa oleva tunniste #{tag}", "restricted" : "rajoitettu", @@ -178,12 +176,6 @@ "Rename" : "Nimeä uudelleen", "Collaborative tags" : "Yhteistyölliset tunnisteet", "No tags found" : "Tunnisteita ei löytynyt", - "The object type is not specified." : "Objektin tyyppiä ei ole määritelty.", - "Enter new" : "Kirjoita uusi", - "Add" : "Lisää", - "Edit tags" : "Muokkaa tunnisteita", - "Error loading dialog template: {error}" : "Virhe ladatessa lomakepohjaa: {error}", - "No tags selected for deletion." : "Tunnisteita ei valittu poistettavaksi.", "unknown text" : "tuntematon teksti", "Hello world!" : "Hei maailma!", "sunny" : "aurinkoinen", @@ -301,6 +293,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Tiedostosi on salattu. Jos et ole ottanut käyttöön palautusavainta, tietojasi ei ole mahdollista palauttaa salasanan nollaamisen jälkeen.<br />Jos et ole varma mitä tehdä, ota yhteys ylläpitäjään.<br />Haluatko varmasti jatkaa?", "Ok" : "Ok", "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." : "Data-hakemistosi ja tiedostosi ovat luultavasti käytettävissä suoraan Internetistä. .htaccess-tiedosto ei toimi oikein. Suosittelemme määrittämään HTTP-palvelimen asetukset siten, ettei data-hakemisto ole suoraan käytettävissä Internetistä tai siirtämään data-hakemiston HTTP-palvelimen juurihakemiston ulkopuolelle.", + "Error while unsharing" : "Virhe jakoa peruttaessa", "File drop (upload only)" : "Tiedostojen pudotus (Vain lähetys)", "can reshare" : "voi uudelleenjakaa", "can edit" : "voi muokata", @@ -317,6 +310,12 @@ "Share with users, groups or remote users..." : "Jaa käyttäjille, ryhmille tai etäkäyttäjille...", "Share with users, groups, remote users or by mail..." : "Jaa käyttäjille, ryhmille, etäkäyttäjille tai sähköpostilla...", "Share with users..." : "Jaa käyttäjille...", + "The object type is not specified." : "Objektin tyyppiä ei ole määritelty.", + "Enter new" : "Kirjoita uusi", + "Add" : "Lisää", + "Edit tags" : "Muokkaa tunnisteita", + "Error loading dialog template: {error}" : "Virhe ladatessa lomakepohjaa: {error}", + "No tags selected for deletion." : "Tunnisteita ei valittu poistettavaksi.", "The update was successful. Redirecting you to Nextcloud now." : "Päivitys onnistui. Sinut ohjataan nyt Nextcloudiin.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hei,\n\n%s jakoi kohteen %s kanssasi.\nTutustu siihen: %s\n\n", "The share will expire on %s." : "Jakaminen päättyy %s.", diff --git a/core/l10n/fr.js b/core/l10n/fr.js index edbcce86e91..155daba2eac 100644 --- a/core/l10n/fr.js +++ b/core/l10n/fr.js @@ -115,9 +115,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Vous accédez à ce site via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS, comme expliqué dans nos <a href=\"{docUrl}\">conseils de sécurisation</a>.", "Shared" : "Partagé", "Shared with {recipients}" : "Partagé avec {recipients}", - "Error" : "Erreur", - "Error while sharing" : "Erreur lors de la mise en partage", - "Error while unsharing" : "Erreur lors de l'annulation du partage", "Error setting expiration date" : "Erreur lors de la configuration de la date d'expiration", "The public link will expire no later than {days} days after it is created" : "Ce lien public expirera dans {days} jours après sa création.", "Set expiration date" : "Spécifier une date d'expiration", @@ -135,11 +132,12 @@ OC.L10N.register( "Share link" : "Partager par lien public", "Link" : "Lien", "Password protect" : "Protéger par un mot de passe", - "Allow upload and editing" : "Autoriser l'envoi et l'édition", "Allow editing" : "Permettre la modification", - "upload only" : " Envoyer uniquement", "Email link to person" : "Envoyer le lien par courriel", "Send" : "Envoyer", + "Allow upload and editing" : "Autoriser l'envoi et l'édition", + "Read only" : "Lecture seule", + "Secure drop (upload only)" : "Dépôt sécurisé (téléversement uniquement)", "Shared with you and the group {group} by {owner}" : "Partagé avec vous et le groupe {group} par {owner}", "Shared with you by {owner}" : "Partagé avec vous par {owner}", "Choose a password for the mail share" : "Choisissez un mot de passe pour le partage par email", @@ -154,9 +152,9 @@ OC.L10N.register( "Can create" : "Peut créer", "Can change" : "Peut modifier", "Can delete" : "Peut supprimer", - "Secure drop (upload only)" : "Dépôt sécurisé (téléversement uniquement)", "Access control" : "Contrôle d'accès", "Could not unshare" : "Impossible d'arrêter de partager", + "Error while sharing" : "Erreur lors de la mise en partage", "Share details could not be loaded for this item." : "Les informations de partage n'ont pu être chargées pour cet élément.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Au moins {count} caractère est nécessaire pour l'autocomplétion","Au moins {count} caractères sont nécessaires pour l'autocomplétion"], "This list is maybe truncated - please refine your search term to see more results." : "Des résultats peuvent avoir été omis. Affinez votre recherche pour en voir plus.", @@ -175,6 +173,7 @@ OC.L10N.register( "Name or federated cloud ID..." : "Nom ou ID du cloud fédéré...", "Name, federated cloud ID or email address..." : "Nom, ID du cloud fédéré ou adresse mail...", "Name..." : "Nom...", + "Error" : "Erreur", "Error removing share" : "Erreur lors de l'arrêt du partage", "Non-existing tag #{tag}" : "Étiquette #{tag} inexistante", "restricted" : "Restreint", @@ -184,12 +183,6 @@ OC.L10N.register( "Rename" : "Renommer", "Collaborative tags" : "Étiquettes collaboratives ", "No tags found" : "Aucune étiquette n'a été trouvée", - "The object type is not specified." : "Le type d'objet n'est pas spécifié.", - "Enter new" : "Nouvelle étiquette", - "Add" : "Ajouter", - "Edit tags" : "Modifier les étiquettes", - "Error loading dialog template: {error}" : "Erreur lors du chargement du modèle de dialogue : {error}", - "No tags selected for deletion." : "Aucune étiquette sélectionnée pour la suppression.", "unknown text" : "texte inconnu", "Hello world!" : "Hello world!", "sunny" : "ensoleillé", @@ -272,6 +265,8 @@ OC.L10N.register( "Stay logged in" : "Rester connecté", "Alternative Logins" : "Identifiants alternatifs", "You are about to grant \"%s\" access to your %s account." : "Vous êtes sur le point d'accorder à \"%s\" l'accès à votre compte \"%s\".", + "App token" : "Jeton d'application", + "Alternative login using app token" : "Authentification alternative utilisant un jeton d'application", "Redirecting …" : "Redirection en cours...", "New password" : "Nouveau mot de passe", "New Password" : "Nouveau mot de passe", @@ -308,6 +303,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Vos fichiers sont chiffrés. Si vous n'avez pas activé la clé de récupération, il n'y aura aucun moyen de récupérer vos données une fois le mot de passe réinitialisé.<br />Si vous n'êtes pas sûr de ce que vous faites, veuillez contacter votre administrateur avant de continuer. <br />Voulez-vous vraiment continuer ?", "Ok" : "Ok", "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.", + "Error while unsharing" : "Erreur lors de l'annulation du partage", "File drop (upload only)" : "Dépôt de fichier (téléversement uniquement)", "can reshare" : "peut repartager", "can edit" : "peut modifier", @@ -324,6 +320,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Partager avec des utilisateurs, groupes ou utilisateurs distants...", "Share with users, groups, remote users or by mail..." : "Partager avec des utilisateurs, des groupes, des utilisateurs distants ou par courriel…", "Share with users..." : "Partager avec des utilisateurs...", + "The object type is not specified." : "Le type d'objet n'est pas spécifié.", + "Enter new" : "Nouvelle étiquette", + "Add" : "Ajouter", + "Edit tags" : "Modifier les étiquettes", + "Error loading dialog template: {error}" : "Erreur lors du chargement du modèle de dialogue : {error}", + "No tags selected for deletion." : "Aucune étiquette sélectionnée pour la suppression.", "The update was successful. Redirecting you to Nextcloud now." : "La mise à jour est terminée. Vous allez être redirigé vers Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Bonjour,\n\nNous vous informons que %s a partagé %s avec vous.\nVous pouvez y accéder à l'adresse suivante : %s\n", "The share will expire on %s." : "Le partage expirera le %s.", diff --git a/core/l10n/fr.json b/core/l10n/fr.json index 500063cc7ea..22d4e4f705c 100644 --- a/core/l10n/fr.json +++ b/core/l10n/fr.json @@ -113,9 +113,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Vous accédez à ce site via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS, comme expliqué dans nos <a href=\"{docUrl}\">conseils de sécurisation</a>.", "Shared" : "Partagé", "Shared with {recipients}" : "Partagé avec {recipients}", - "Error" : "Erreur", - "Error while sharing" : "Erreur lors de la mise en partage", - "Error while unsharing" : "Erreur lors de l'annulation du partage", "Error setting expiration date" : "Erreur lors de la configuration de la date d'expiration", "The public link will expire no later than {days} days after it is created" : "Ce lien public expirera dans {days} jours après sa création.", "Set expiration date" : "Spécifier une date d'expiration", @@ -133,11 +130,12 @@ "Share link" : "Partager par lien public", "Link" : "Lien", "Password protect" : "Protéger par un mot de passe", - "Allow upload and editing" : "Autoriser l'envoi et l'édition", "Allow editing" : "Permettre la modification", - "upload only" : " Envoyer uniquement", "Email link to person" : "Envoyer le lien par courriel", "Send" : "Envoyer", + "Allow upload and editing" : "Autoriser l'envoi et l'édition", + "Read only" : "Lecture seule", + "Secure drop (upload only)" : "Dépôt sécurisé (téléversement uniquement)", "Shared with you and the group {group} by {owner}" : "Partagé avec vous et le groupe {group} par {owner}", "Shared with you by {owner}" : "Partagé avec vous par {owner}", "Choose a password for the mail share" : "Choisissez un mot de passe pour le partage par email", @@ -152,9 +150,9 @@ "Can create" : "Peut créer", "Can change" : "Peut modifier", "Can delete" : "Peut supprimer", - "Secure drop (upload only)" : "Dépôt sécurisé (téléversement uniquement)", "Access control" : "Contrôle d'accès", "Could not unshare" : "Impossible d'arrêter de partager", + "Error while sharing" : "Erreur lors de la mise en partage", "Share details could not be loaded for this item." : "Les informations de partage n'ont pu être chargées pour cet élément.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Au moins {count} caractère est nécessaire pour l'autocomplétion","Au moins {count} caractères sont nécessaires pour l'autocomplétion"], "This list is maybe truncated - please refine your search term to see more results." : "Des résultats peuvent avoir été omis. Affinez votre recherche pour en voir plus.", @@ -173,6 +171,7 @@ "Name or federated cloud ID..." : "Nom ou ID du cloud fédéré...", "Name, federated cloud ID or email address..." : "Nom, ID du cloud fédéré ou adresse mail...", "Name..." : "Nom...", + "Error" : "Erreur", "Error removing share" : "Erreur lors de l'arrêt du partage", "Non-existing tag #{tag}" : "Étiquette #{tag} inexistante", "restricted" : "Restreint", @@ -182,12 +181,6 @@ "Rename" : "Renommer", "Collaborative tags" : "Étiquettes collaboratives ", "No tags found" : "Aucune étiquette n'a été trouvée", - "The object type is not specified." : "Le type d'objet n'est pas spécifié.", - "Enter new" : "Nouvelle étiquette", - "Add" : "Ajouter", - "Edit tags" : "Modifier les étiquettes", - "Error loading dialog template: {error}" : "Erreur lors du chargement du modèle de dialogue : {error}", - "No tags selected for deletion." : "Aucune étiquette sélectionnée pour la suppression.", "unknown text" : "texte inconnu", "Hello world!" : "Hello world!", "sunny" : "ensoleillé", @@ -270,6 +263,8 @@ "Stay logged in" : "Rester connecté", "Alternative Logins" : "Identifiants alternatifs", "You are about to grant \"%s\" access to your %s account." : "Vous êtes sur le point d'accorder à \"%s\" l'accès à votre compte \"%s\".", + "App token" : "Jeton d'application", + "Alternative login using app token" : "Authentification alternative utilisant un jeton d'application", "Redirecting …" : "Redirection en cours...", "New password" : "Nouveau mot de passe", "New Password" : "Nouveau mot de passe", @@ -306,6 +301,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Vos fichiers sont chiffrés. Si vous n'avez pas activé la clé de récupération, il n'y aura aucun moyen de récupérer vos données une fois le mot de passe réinitialisé.<br />Si vous n'êtes pas sûr de ce que vous faites, veuillez contacter votre administrateur avant de continuer. <br />Voulez-vous vraiment continuer ?", "Ok" : "Ok", "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.", + "Error while unsharing" : "Erreur lors de l'annulation du partage", "File drop (upload only)" : "Dépôt de fichier (téléversement uniquement)", "can reshare" : "peut repartager", "can edit" : "peut modifier", @@ -322,6 +318,12 @@ "Share with users, groups or remote users..." : "Partager avec des utilisateurs, groupes ou utilisateurs distants...", "Share with users, groups, remote users or by mail..." : "Partager avec des utilisateurs, des groupes, des utilisateurs distants ou par courriel…", "Share with users..." : "Partager avec des utilisateurs...", + "The object type is not specified." : "Le type d'objet n'est pas spécifié.", + "Enter new" : "Nouvelle étiquette", + "Add" : "Ajouter", + "Edit tags" : "Modifier les étiquettes", + "Error loading dialog template: {error}" : "Erreur lors du chargement du modèle de dialogue : {error}", + "No tags selected for deletion." : "Aucune étiquette sélectionnée pour la suppression.", "The update was successful. Redirecting you to Nextcloud now." : "La mise à jour est terminée. Vous allez être redirigé vers Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Bonjour,\n\nNous vous informons que %s a partagé %s avec vous.\nVous pouvez y accéder à l'adresse suivante : %s\n", "The share will expire on %s." : "Le partage expirera le %s.", diff --git a/core/l10n/hu.js b/core/l10n/hu.js index a277fd8855d..097834ea472 100644 --- a/core/l10n/hu.js +++ b/core/l10n/hu.js @@ -100,9 +100,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Jelenleg HTTP-vel éri el a weboldalt. Erősen ajánlott a HTTPS konfiguráció használata ehelyett, ahogyan ezt részleteztük a <a href=\"{docUrl}\">biztonsági tippek</a> dokumentációban", "Shared" : "Megosztott", "Shared with {recipients}" : "Megosztva ővelük: {recipients}", - "Error" : "Hiba", - "Error while sharing" : "Nem sikerült létrehozni a megosztást", - "Error while unsharing" : "Nem sikerült visszavonni a megosztást", "Error setting expiration date" : "Nem sikerült a lejárati időt beállítani", "The public link will expire no later than {days} days after it is created" : "A nyilvános hivatkozás érvényessége legkorábban {days} nappal a létrehozása után jár csak le", "Set expiration date" : "Legyen lejárati idő", @@ -118,11 +115,10 @@ OC.L10N.register( "Share link" : "Megosztás hivatkozással", "Link" : "Hivatkozás", "Password protect" : "Jelszóval védett", - "Allow upload and editing" : "Feltöltés és szerkesztés engedélyezése", "Allow editing" : "Szerkesztés engedélyezése", - "upload only" : "csak feltöltés", "Email link to person" : "Hivatkozás elküldése e-mail címre", "Send" : "Küldés", + "Allow upload and editing" : "Feltöltés és szerkesztés engedélyezése", "Shared with you and the group {group} by {owner}" : "{owner} megosztotta veled és ezzel a csoporttal: {group}", "Shared with you by {owner}" : "{owner} megosztotta veled", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} megosztva hivatkozással", @@ -138,6 +134,7 @@ OC.L10N.register( "Can delete" : "Törölhet", "Access control" : "Jogosultság kezelés", "Could not unshare" : "Nem sikerült visszavonni a megosztást", + "Error while sharing" : "Nem sikerült létrehozni a megosztást", "Share details could not be loaded for this item." : "A megosztás részletei nem lehet betölteni ehhez az elemhez.", "No users or groups found for {search}" : "{search} keresésre nem található felhasználó vagy csoport", "No users found for {search}" : "{search} keresésre nem található felhasználó", @@ -147,6 +144,7 @@ OC.L10N.register( "{sharee} (email)" : "{sharee} (e-mail)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Megosztás", + "Error" : "Hiba", "Error removing share" : "Hiba a megosztás törlésekor", "Non-existing tag #{tag}" : "Nem létező címke #{tag}", "restricted" : "korlátozott", @@ -156,12 +154,6 @@ OC.L10N.register( "Rename" : "Átnevezés", "Collaborative tags" : "Címke hozzárendelése", "No tags found" : "Nem találhatók címkék", - "The object type is not specified." : "Az objektum típusa nincs megadva.", - "Enter new" : "Új beírása", - "Add" : "Hozzáadás", - "Edit tags" : "Címkék szerkesztése", - "Error loading dialog template: {error}" : "Hiba a párbeszédpanel-sablon betöltésekor: {error}", - "No tags selected for deletion." : "Nincs törlésre kijelölt címke.", "unknown text" : "ismeretlen szöveg", "Hello world!" : "Helló világ!", "sunny" : "napos", @@ -276,6 +268,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Az Ön fájljai titkosítva vannak. Ha nem engedélyezte korábban az adatok visszanyeréséhez szükséges kulcs használatát, akkor a jelszó megváltoztatását követően nem fog hozzáférni az adataihoz. Ha nem biztos abban, hogy mit kellene tennie, akkor kérdezze meg a rendszergazdát, mielőtt továbbmenne.<br />Biztos, hogy folytatni kívánja?", "Ok" : "Ok", "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." : "Az adat könyvtár és a fájlok valószínűleg elérhetőek az internetről, mert a .htaccess fájl nem működik. Erősen ajánlott, hogy úgy állítsd be a webszervert, hogy az adatkönyvtár ne legyen elérhető az internetről, vagy helyezd át az adatokat a webszerver gyökérkönyvtárából.", + "Error while unsharing" : "Nem sikerült visszavonni a megosztást", "File drop (upload only)" : "Fájl ejtés (csak feltöltés)", "can reshare" : "újra megoszthatja", "can edit" : "szerkesztheti", @@ -292,6 +285,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Megosztás felhasználókkal, csoportokkal távoli felhasználókkal...", "Share with users, groups, remote users or by mail..." : "Megosztás felhasználókkal, csoportokkal távoli felhasználókkal e-mailben...", "Share with users..." : "Megosztás felhasználókkal...", + "The object type is not specified." : "Az objektum típusa nincs megadva.", + "Enter new" : "Új beírása", + "Add" : "Hozzáadás", + "Edit tags" : "Címkék szerkesztése", + "Error loading dialog template: {error}" : "Hiba a párbeszédpanel-sablon betöltésekor: {error}", + "No tags selected for deletion." : "Nincs törlésre kijelölt címke.", "The update was successful. Redirecting you to Nextcloud now." : "A frissítés sikeres volt. Most átirányítunk a Nextcloudhoz.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Üdv!\n\nÉrtesítünk, hogy %s megosztotta veled a következőt: %s.\nItt nézheted meg: %s\n\n", "The share will expire on %s." : "A megosztás lejár ekkor: %s.", diff --git a/core/l10n/hu.json b/core/l10n/hu.json index 5224277ac24..6462720387e 100644 --- a/core/l10n/hu.json +++ b/core/l10n/hu.json @@ -98,9 +98,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Jelenleg HTTP-vel éri el a weboldalt. Erősen ajánlott a HTTPS konfiguráció használata ehelyett, ahogyan ezt részleteztük a <a href=\"{docUrl}\">biztonsági tippek</a> dokumentációban", "Shared" : "Megosztott", "Shared with {recipients}" : "Megosztva ővelük: {recipients}", - "Error" : "Hiba", - "Error while sharing" : "Nem sikerült létrehozni a megosztást", - "Error while unsharing" : "Nem sikerült visszavonni a megosztást", "Error setting expiration date" : "Nem sikerült a lejárati időt beállítani", "The public link will expire no later than {days} days after it is created" : "A nyilvános hivatkozás érvényessége legkorábban {days} nappal a létrehozása után jár csak le", "Set expiration date" : "Legyen lejárati idő", @@ -116,11 +113,10 @@ "Share link" : "Megosztás hivatkozással", "Link" : "Hivatkozás", "Password protect" : "Jelszóval védett", - "Allow upload and editing" : "Feltöltés és szerkesztés engedélyezése", "Allow editing" : "Szerkesztés engedélyezése", - "upload only" : "csak feltöltés", "Email link to person" : "Hivatkozás elküldése e-mail címre", "Send" : "Küldés", + "Allow upload and editing" : "Feltöltés és szerkesztés engedélyezése", "Shared with you and the group {group} by {owner}" : "{owner} megosztotta veled és ezzel a csoporttal: {group}", "Shared with you by {owner}" : "{owner} megosztotta veled", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} megosztva hivatkozással", @@ -136,6 +132,7 @@ "Can delete" : "Törölhet", "Access control" : "Jogosultság kezelés", "Could not unshare" : "Nem sikerült visszavonni a megosztást", + "Error while sharing" : "Nem sikerült létrehozni a megosztást", "Share details could not be loaded for this item." : "A megosztás részletei nem lehet betölteni ehhez az elemhez.", "No users or groups found for {search}" : "{search} keresésre nem található felhasználó vagy csoport", "No users found for {search}" : "{search} keresésre nem található felhasználó", @@ -145,6 +142,7 @@ "{sharee} (email)" : "{sharee} (e-mail)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Megosztás", + "Error" : "Hiba", "Error removing share" : "Hiba a megosztás törlésekor", "Non-existing tag #{tag}" : "Nem létező címke #{tag}", "restricted" : "korlátozott", @@ -154,12 +152,6 @@ "Rename" : "Átnevezés", "Collaborative tags" : "Címke hozzárendelése", "No tags found" : "Nem találhatók címkék", - "The object type is not specified." : "Az objektum típusa nincs megadva.", - "Enter new" : "Új beírása", - "Add" : "Hozzáadás", - "Edit tags" : "Címkék szerkesztése", - "Error loading dialog template: {error}" : "Hiba a párbeszédpanel-sablon betöltésekor: {error}", - "No tags selected for deletion." : "Nincs törlésre kijelölt címke.", "unknown text" : "ismeretlen szöveg", "Hello world!" : "Helló világ!", "sunny" : "napos", @@ -274,6 +266,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Az Ön fájljai titkosítva vannak. Ha nem engedélyezte korábban az adatok visszanyeréséhez szükséges kulcs használatát, akkor a jelszó megváltoztatását követően nem fog hozzáférni az adataihoz. Ha nem biztos abban, hogy mit kellene tennie, akkor kérdezze meg a rendszergazdát, mielőtt továbbmenne.<br />Biztos, hogy folytatni kívánja?", "Ok" : "Ok", "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." : "Az adat könyvtár és a fájlok valószínűleg elérhetőek az internetről, mert a .htaccess fájl nem működik. Erősen ajánlott, hogy úgy állítsd be a webszervert, hogy az adatkönyvtár ne legyen elérhető az internetről, vagy helyezd át az adatokat a webszerver gyökérkönyvtárából.", + "Error while unsharing" : "Nem sikerült visszavonni a megosztást", "File drop (upload only)" : "Fájl ejtés (csak feltöltés)", "can reshare" : "újra megoszthatja", "can edit" : "szerkesztheti", @@ -290,6 +283,12 @@ "Share with users, groups or remote users..." : "Megosztás felhasználókkal, csoportokkal távoli felhasználókkal...", "Share with users, groups, remote users or by mail..." : "Megosztás felhasználókkal, csoportokkal távoli felhasználókkal e-mailben...", "Share with users..." : "Megosztás felhasználókkal...", + "The object type is not specified." : "Az objektum típusa nincs megadva.", + "Enter new" : "Új beírása", + "Add" : "Hozzáadás", + "Edit tags" : "Címkék szerkesztése", + "Error loading dialog template: {error}" : "Hiba a párbeszédpanel-sablon betöltésekor: {error}", + "No tags selected for deletion." : "Nincs törlésre kijelölt címke.", "The update was successful. Redirecting you to Nextcloud now." : "A frissítés sikeres volt. Most átirányítunk a Nextcloudhoz.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Üdv!\n\nÉrtesítünk, hogy %s megosztotta veled a következőt: %s.\nItt nézheted meg: %s\n\n", "The share will expire on %s." : "A megosztás lejár ekkor: %s.", diff --git a/core/l10n/id.js b/core/l10n/id.js index 8e2f99ef046..fb4852db6f9 100644 --- a/core/l10n/id.js +++ b/core/l10n/id.js @@ -102,9 +102,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Anda mengakses situs ini via HTTP. Kami sangat menyarankan Anda untuk mengatur server Anda menggunakan HTTPS yang dibahas di <a href=\"{docUrl}\">tips keamanan</a> kami.", "Shared" : "Dibagikan", "Shared with {recipients}" : "Dibagikan dengan {recipients}", - "Error" : "Kesalahan", - "Error while sharing" : "Kesalahan saat membagikan", - "Error while unsharing" : "Kesalahan saat membatalkan pembagian", "Error setting expiration date" : "Kesalahan saat mengatur tanggal kedaluwarsa", "The public link will expire no later than {days} days after it is created" : "Tautan publik akan kadaluarsa tidak lebih dari {days} hari setelah ini dibuat", "Set expiration date" : "Atur tanggal kedaluwarsa", @@ -120,10 +117,10 @@ OC.L10N.register( "Share link" : "Bagikan tautan", "Link" : "Tautan", "Password protect" : "Lindungi dengan sandi", - "Allow upload and editing" : "Izinkan pengunggahan dan penyuntingan", "Allow editing" : "Izinkan penyuntingan", "Email link to person" : "Emailkan tautan ini ke orang", "Send" : "Kirim", + "Allow upload and editing" : "Izinkan pengunggahan dan penyuntingan", "Shared with you and the group {group} by {owner}" : "Dibagikan dengan anda dan grup {group} oleh {owner}", "Shared with you by {owner}" : "Dibagikan dengan anda oleh {owner}", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} dibagikan lewat tautan", @@ -132,6 +129,7 @@ OC.L10N.register( "email" : "surel", "Unshare" : "Batalkan berbagi", "Could not unshare" : "Tidak dapat membatalkan pembagian", + "Error while sharing" : "Kesalahan saat membagikan", "Share details could not be loaded for this item." : "Rincian berbagi tidak dapat dimuat untuk item ini.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Sekurangnya {count} karakter dibutuhkan untuk autocompletion"], "This list is maybe truncated - please refine your search term to see more results." : "Daftar ini mungkin terpotong - harap sari kata pencarian anda untuk melihat hasil yang lebih.", @@ -142,6 +140,7 @@ OC.L10N.register( "{sharee} (remote)" : "{sharee} (remote)", "{sharee} (email)" : "{sharee} (surel)", "Share" : "Bagikan", + "Error" : "Kesalahan", "Error removing share" : "Terjadi kesalahan saat menghapus pembagian", "Non-existing tag #{tag}" : "Tag tidak ada #{tag}", "restricted" : "terbatas", @@ -151,12 +150,6 @@ OC.L10N.register( "Rename" : "Ubah nama", "Collaborative tags" : "Tag kolaboratif", "No tags found" : "Tag tidak ditemukan", - "The object type is not specified." : "Tipe objek tidak ditentukan.", - "Enter new" : "Masukkan baru", - "Add" : "Tambah", - "Edit tags" : "Sunting label", - "Error loading dialog template: {error}" : "Kesalahan saat memuat templat dialog: {error}", - "No tags selected for deletion." : "Tidak ada label yang dipilih untuk dihapus.", "unknown text" : "teks tidak diketahui", "Hello world!" : "Halo dunia!", "sunny" : "cerah", @@ -269,6 +262,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Berkas-berkas Anda terenkripsi. Jika Anda tidak mengaktifkan kunci pemulihan, tidak ada cara lain untuk mendapatkan data Anda kembali setelah sandi di setel ulang.<br />Jika Anda tidak yakin dengan apa yang akan Anda dilakukan, mohon hubungi administrator Anda sebelum melanjutkan. <br />Apakah Anda yakin ingin melanjutkan?", "Ok" : "Oke", "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." : "Direktori data dan berkas Anda kemungkinan dapat diakses dari Internet. Berkas .htaccess tidak bekerja. Kami sangat menyarankan Anda untuk mengkonfigurasi server web agar direktori data tidak lagi dapat diakses atau pindahkan direktori data Anda di luar root dokumen server web.", + "Error while unsharing" : "Kesalahan saat membatalkan pembagian", "File drop (upload only)" : "Berkas jatuh (hanya unggah)", "can reshare" : "dapat dibagi ulang", "can edit" : "dapat sunting", @@ -285,6 +279,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Bagikan dengan pengguna, grup atau pengguna jarak jauh...", "Share with users, groups, remote users or by mail..." : "Bagikan dengan pengguna, grup, pengguna jarak jauh atau lewat surel...", "Share with users..." : "Bagikan dengan pengguna...", + "The object type is not specified." : "Tipe objek tidak ditentukan.", + "Enter new" : "Masukkan baru", + "Add" : "Tambah", + "Edit tags" : "Sunting label", + "Error loading dialog template: {error}" : "Kesalahan saat memuat templat dialog: {error}", + "No tags selected for deletion." : "Tidak ada label yang dipilih untuk dihapus.", "The update was successful. Redirecting you to Nextcloud now." : "Pembaruan berhasil. Mengarahkan Anda ke Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hai,\n\nhanya supaya anda tahu bahwa %s membagikan %s dengan anda.\nLihat: %s\n\n", "The share will expire on %s." : "Pembagian akan berakhir pada %s.", diff --git a/core/l10n/id.json b/core/l10n/id.json index aad97bf279d..8639c6b818d 100644 --- a/core/l10n/id.json +++ b/core/l10n/id.json @@ -100,9 +100,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Anda mengakses situs ini via HTTP. Kami sangat menyarankan Anda untuk mengatur server Anda menggunakan HTTPS yang dibahas di <a href=\"{docUrl}\">tips keamanan</a> kami.", "Shared" : "Dibagikan", "Shared with {recipients}" : "Dibagikan dengan {recipients}", - "Error" : "Kesalahan", - "Error while sharing" : "Kesalahan saat membagikan", - "Error while unsharing" : "Kesalahan saat membatalkan pembagian", "Error setting expiration date" : "Kesalahan saat mengatur tanggal kedaluwarsa", "The public link will expire no later than {days} days after it is created" : "Tautan publik akan kadaluarsa tidak lebih dari {days} hari setelah ini dibuat", "Set expiration date" : "Atur tanggal kedaluwarsa", @@ -118,10 +115,10 @@ "Share link" : "Bagikan tautan", "Link" : "Tautan", "Password protect" : "Lindungi dengan sandi", - "Allow upload and editing" : "Izinkan pengunggahan dan penyuntingan", "Allow editing" : "Izinkan penyuntingan", "Email link to person" : "Emailkan tautan ini ke orang", "Send" : "Kirim", + "Allow upload and editing" : "Izinkan pengunggahan dan penyuntingan", "Shared with you and the group {group} by {owner}" : "Dibagikan dengan anda dan grup {group} oleh {owner}", "Shared with you by {owner}" : "Dibagikan dengan anda oleh {owner}", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} dibagikan lewat tautan", @@ -130,6 +127,7 @@ "email" : "surel", "Unshare" : "Batalkan berbagi", "Could not unshare" : "Tidak dapat membatalkan pembagian", + "Error while sharing" : "Kesalahan saat membagikan", "Share details could not be loaded for this item." : "Rincian berbagi tidak dapat dimuat untuk item ini.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Sekurangnya {count} karakter dibutuhkan untuk autocompletion"], "This list is maybe truncated - please refine your search term to see more results." : "Daftar ini mungkin terpotong - harap sari kata pencarian anda untuk melihat hasil yang lebih.", @@ -140,6 +138,7 @@ "{sharee} (remote)" : "{sharee} (remote)", "{sharee} (email)" : "{sharee} (surel)", "Share" : "Bagikan", + "Error" : "Kesalahan", "Error removing share" : "Terjadi kesalahan saat menghapus pembagian", "Non-existing tag #{tag}" : "Tag tidak ada #{tag}", "restricted" : "terbatas", @@ -149,12 +148,6 @@ "Rename" : "Ubah nama", "Collaborative tags" : "Tag kolaboratif", "No tags found" : "Tag tidak ditemukan", - "The object type is not specified." : "Tipe objek tidak ditentukan.", - "Enter new" : "Masukkan baru", - "Add" : "Tambah", - "Edit tags" : "Sunting label", - "Error loading dialog template: {error}" : "Kesalahan saat memuat templat dialog: {error}", - "No tags selected for deletion." : "Tidak ada label yang dipilih untuk dihapus.", "unknown text" : "teks tidak diketahui", "Hello world!" : "Halo dunia!", "sunny" : "cerah", @@ -267,6 +260,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Berkas-berkas Anda terenkripsi. Jika Anda tidak mengaktifkan kunci pemulihan, tidak ada cara lain untuk mendapatkan data Anda kembali setelah sandi di setel ulang.<br />Jika Anda tidak yakin dengan apa yang akan Anda dilakukan, mohon hubungi administrator Anda sebelum melanjutkan. <br />Apakah Anda yakin ingin melanjutkan?", "Ok" : "Oke", "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." : "Direktori data dan berkas Anda kemungkinan dapat diakses dari Internet. Berkas .htaccess tidak bekerja. Kami sangat menyarankan Anda untuk mengkonfigurasi server web agar direktori data tidak lagi dapat diakses atau pindahkan direktori data Anda di luar root dokumen server web.", + "Error while unsharing" : "Kesalahan saat membatalkan pembagian", "File drop (upload only)" : "Berkas jatuh (hanya unggah)", "can reshare" : "dapat dibagi ulang", "can edit" : "dapat sunting", @@ -283,6 +277,12 @@ "Share with users, groups or remote users..." : "Bagikan dengan pengguna, grup atau pengguna jarak jauh...", "Share with users, groups, remote users or by mail..." : "Bagikan dengan pengguna, grup, pengguna jarak jauh atau lewat surel...", "Share with users..." : "Bagikan dengan pengguna...", + "The object type is not specified." : "Tipe objek tidak ditentukan.", + "Enter new" : "Masukkan baru", + "Add" : "Tambah", + "Edit tags" : "Sunting label", + "Error loading dialog template: {error}" : "Kesalahan saat memuat templat dialog: {error}", + "No tags selected for deletion." : "Tidak ada label yang dipilih untuk dihapus.", "The update was successful. Redirecting you to Nextcloud now." : "Pembaruan berhasil. Mengarahkan Anda ke Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hai,\n\nhanya supaya anda tahu bahwa %s membagikan %s dengan anda.\nLihat: %s\n\n", "The share will expire on %s." : "Pembagian akan berakhir pada %s.", diff --git a/core/l10n/is.js b/core/l10n/is.js index 1f5f4676fec..0ed52aa0d0b 100644 --- a/core/l10n/is.js +++ b/core/l10n/is.js @@ -114,9 +114,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : " Þú ert að tengjast þessu vefsvæði með HTTP. Við mælum eindregið með að þú stillir þjóninn á að krefjast HTTPS í staðinn eins og lýst er í <a href=\"{docUrl}\">öryggisleiðbeiningunum</a> okkar.", "Shared" : "Deilt", "Shared with {recipients}" : "Deilt með {recipients}", - "Error" : "Villa", - "Error while sharing" : "Villa við deilingu", - "Error while unsharing" : "Villa við að hætta deilingu", "Error setting expiration date" : "Villa við að setja gildistíma", "The public link will expire no later than {days} days after it is created" : "Almenningstengillinn rennur út eigi síðar en {days} dögum eftir að hann er útbúinn", "Set expiration date" : "Setja gildistíma", @@ -134,11 +131,11 @@ OC.L10N.register( "Share link" : "Deila tengli", "Link" : "Tengill", "Password protect" : "Verja með lykilorði", - "Allow upload and editing" : "Leyfa innsendingu og breytingar", "Allow editing" : "Leyfa breytingar", - "upload only" : "einungis innsending", "Email link to person" : "Senda veftengil í tölvupósti til notanda", "Send" : "Senda", + "Allow upload and editing" : "Leyfa innsendingu og breytingar", + "Secure drop (upload only)" : "Örugg slepping skráa (einungis innsending)", "Shared with you and the group {group} by {owner}" : "Deilt með þér og hópnum {group} af {owner}", "Shared with you by {owner}" : "Deilt með þér af {owner}", "Choose a password for the mail share" : "Veldu lykilorð fyrir póstsameign", @@ -153,9 +150,9 @@ OC.L10N.register( "Can create" : "Getur búið til", "Can change" : "Getur skipt um", "Can delete" : "Getur eytt", - "Secure drop (upload only)" : "Örugg slepping skráa (einungis innsending)", "Access control" : "Aðgangsstýring", "Could not unshare" : "Gat ekki hætt deilingu", + "Error while sharing" : "Villa við deilingu", "Share details could not be loaded for this item." : "Ekki tókst að hlaða inn upplýsingum um sameign varðandi þetta atriði.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Það þarf a.m.k. {count} staf til að sjálfvirk útfylling virki","Það þarf a.m.k. {count} stafi til að sjálfvirk útfylling virki"], "This list is maybe truncated - please refine your search term to see more results." : "Þessi listi gæti verið stytt útgáfa - þrengdu leitarskilyrðin til að sjá fleiri niðurstöður.", @@ -171,6 +168,7 @@ OC.L10N.register( "Name or federated cloud ID..." : "Nafn eða skýjasambandsauðkenni (Federated Cloud ID)...", "Name, federated cloud ID or email address..." : "Nafn, skýjasambandsauðkenni eða tölvupóstfang...", "Name..." : "Nafn...", + "Error" : "Villa", "Error removing share" : "Villa við að fjarlægja sameign", "Non-existing tag #{tag}" : "Merki sem er ekki til #{tag}", "restricted" : "takmarkaður aðgangur", @@ -180,12 +178,6 @@ OC.L10N.register( "Rename" : "Endurnefna", "Collaborative tags" : "Samstarfsmerkingar", "No tags found" : "Engin merki fundust", - "The object type is not specified." : "Tegund hlutar ekki tilgreind", - "Enter new" : "Sláðu inn nýtt", - "Add" : "Bæta við", - "Edit tags" : "Breyta merkjum", - "Error loading dialog template: {error}" : "Villa við að hlaða valmynd sniðmátið: {error}", - "No tags selected for deletion." : "Engin merki valin til að eyða.", "unknown text" : "óþekktur texti", "Hello world!" : "Halló heimur!", "sunny" : "sólríkt", @@ -306,6 +298,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Skrárnar þínar eru dulritaðar. Ef þú hefur ekki virkjað endurheimtingarlykilinn, þá verður engin leið til að fá gögnin þín til baka eftir lykilorðið þitt er endurstillt.<br />Ef þú ert ekki viss hvað eigi að gera, skaltu hafa samband við kerfisstjórann áður en þú heldur áfram. <br />Viltu halda áfram?", "Ok" : "Í lagi", "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." : "Gagnamappan og skrárnar þínar eru líklega aðgengilegar öllum af internetinu vegna þess að .htaccess skrá er ekki virk. Við mælum eindregið með að þú stillir vefþjóninn þinn á þann hátt að gagnamappa er ekki lengur aðgengileg eða þú færir gagnamöppu út fyrir skjalarót vefþjóns.", + "Error while unsharing" : "Villa við að hætta deilingu", "File drop (upload only)" : "Slepping skráa (einungis innsending)", "can reshare" : "getur endurdeilt", "can edit" : "getur breytt", @@ -322,6 +315,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Deila með notendum, hópum eða fjartengdum notendum...", "Share with users, groups, remote users or by mail..." : "Deila með notendum, hópum, fjartengdum notendum eða með tölvupósti...", "Share with users..." : "Deila með notendum...", + "The object type is not specified." : "Tegund hlutar ekki tilgreind", + "Enter new" : "Sláðu inn nýtt", + "Add" : "Bæta við", + "Edit tags" : "Breyta merkjum", + "Error loading dialog template: {error}" : "Villa við að hlaða valmynd sniðmátið: {error}", + "No tags selected for deletion." : "Engin merki valin til að eyða.", "The update was successful. Redirecting you to Nextcloud now." : "Uppfærslan heppnaðist. Beini þér til Nextcloud nú.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Sælir,\n\nbara láta þig vita að %s deildi %s með þér.\n\nSkoðaðu það: %s\n\n", "The share will expire on %s." : "Gildistími sameignar rennur út %s.", diff --git a/core/l10n/is.json b/core/l10n/is.json index 9bd7e96bc46..c84bed42b8a 100644 --- a/core/l10n/is.json +++ b/core/l10n/is.json @@ -112,9 +112,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : " Þú ert að tengjast þessu vefsvæði með HTTP. Við mælum eindregið með að þú stillir þjóninn á að krefjast HTTPS í staðinn eins og lýst er í <a href=\"{docUrl}\">öryggisleiðbeiningunum</a> okkar.", "Shared" : "Deilt", "Shared with {recipients}" : "Deilt með {recipients}", - "Error" : "Villa", - "Error while sharing" : "Villa við deilingu", - "Error while unsharing" : "Villa við að hætta deilingu", "Error setting expiration date" : "Villa við að setja gildistíma", "The public link will expire no later than {days} days after it is created" : "Almenningstengillinn rennur út eigi síðar en {days} dögum eftir að hann er útbúinn", "Set expiration date" : "Setja gildistíma", @@ -132,11 +129,11 @@ "Share link" : "Deila tengli", "Link" : "Tengill", "Password protect" : "Verja með lykilorði", - "Allow upload and editing" : "Leyfa innsendingu og breytingar", "Allow editing" : "Leyfa breytingar", - "upload only" : "einungis innsending", "Email link to person" : "Senda veftengil í tölvupósti til notanda", "Send" : "Senda", + "Allow upload and editing" : "Leyfa innsendingu og breytingar", + "Secure drop (upload only)" : "Örugg slepping skráa (einungis innsending)", "Shared with you and the group {group} by {owner}" : "Deilt með þér og hópnum {group} af {owner}", "Shared with you by {owner}" : "Deilt með þér af {owner}", "Choose a password for the mail share" : "Veldu lykilorð fyrir póstsameign", @@ -151,9 +148,9 @@ "Can create" : "Getur búið til", "Can change" : "Getur skipt um", "Can delete" : "Getur eytt", - "Secure drop (upload only)" : "Örugg slepping skráa (einungis innsending)", "Access control" : "Aðgangsstýring", "Could not unshare" : "Gat ekki hætt deilingu", + "Error while sharing" : "Villa við deilingu", "Share details could not be loaded for this item." : "Ekki tókst að hlaða inn upplýsingum um sameign varðandi þetta atriði.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Það þarf a.m.k. {count} staf til að sjálfvirk útfylling virki","Það þarf a.m.k. {count} stafi til að sjálfvirk útfylling virki"], "This list is maybe truncated - please refine your search term to see more results." : "Þessi listi gæti verið stytt útgáfa - þrengdu leitarskilyrðin til að sjá fleiri niðurstöður.", @@ -169,6 +166,7 @@ "Name or federated cloud ID..." : "Nafn eða skýjasambandsauðkenni (Federated Cloud ID)...", "Name, federated cloud ID or email address..." : "Nafn, skýjasambandsauðkenni eða tölvupóstfang...", "Name..." : "Nafn...", + "Error" : "Villa", "Error removing share" : "Villa við að fjarlægja sameign", "Non-existing tag #{tag}" : "Merki sem er ekki til #{tag}", "restricted" : "takmarkaður aðgangur", @@ -178,12 +176,6 @@ "Rename" : "Endurnefna", "Collaborative tags" : "Samstarfsmerkingar", "No tags found" : "Engin merki fundust", - "The object type is not specified." : "Tegund hlutar ekki tilgreind", - "Enter new" : "Sláðu inn nýtt", - "Add" : "Bæta við", - "Edit tags" : "Breyta merkjum", - "Error loading dialog template: {error}" : "Villa við að hlaða valmynd sniðmátið: {error}", - "No tags selected for deletion." : "Engin merki valin til að eyða.", "unknown text" : "óþekktur texti", "Hello world!" : "Halló heimur!", "sunny" : "sólríkt", @@ -304,6 +296,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Skrárnar þínar eru dulritaðar. Ef þú hefur ekki virkjað endurheimtingarlykilinn, þá verður engin leið til að fá gögnin þín til baka eftir lykilorðið þitt er endurstillt.<br />Ef þú ert ekki viss hvað eigi að gera, skaltu hafa samband við kerfisstjórann áður en þú heldur áfram. <br />Viltu halda áfram?", "Ok" : "Í lagi", "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." : "Gagnamappan og skrárnar þínar eru líklega aðgengilegar öllum af internetinu vegna þess að .htaccess skrá er ekki virk. Við mælum eindregið með að þú stillir vefþjóninn þinn á þann hátt að gagnamappa er ekki lengur aðgengileg eða þú færir gagnamöppu út fyrir skjalarót vefþjóns.", + "Error while unsharing" : "Villa við að hætta deilingu", "File drop (upload only)" : "Slepping skráa (einungis innsending)", "can reshare" : "getur endurdeilt", "can edit" : "getur breytt", @@ -320,6 +313,12 @@ "Share with users, groups or remote users..." : "Deila með notendum, hópum eða fjartengdum notendum...", "Share with users, groups, remote users or by mail..." : "Deila með notendum, hópum, fjartengdum notendum eða með tölvupósti...", "Share with users..." : "Deila með notendum...", + "The object type is not specified." : "Tegund hlutar ekki tilgreind", + "Enter new" : "Sláðu inn nýtt", + "Add" : "Bæta við", + "Edit tags" : "Breyta merkjum", + "Error loading dialog template: {error}" : "Villa við að hlaða valmynd sniðmátið: {error}", + "No tags selected for deletion." : "Engin merki valin til að eyða.", "The update was successful. Redirecting you to Nextcloud now." : "Uppfærslan heppnaðist. Beini þér til Nextcloud nú.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Sælir,\n\nbara láta þig vita að %s deildi %s með þér.\n\nSkoðaðu það: %s\n\n", "The share will expire on %s." : "Gildistími sameignar rennur út %s.", diff --git a/core/l10n/it.js b/core/l10n/it.js index 7da5d7ef0bf..baf6fc6c3bc 100644 --- a/core/l10n/it.js +++ b/core/l10n/it.js @@ -106,9 +106,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Sei connesso a questo sito tramite HTTP. Ti suggeriamo vivamente di configurare il tuo server per richiedere invece l'utilizzo del protocollo HTTPS, come descritto nei nostri <a href=\"{docUrl}\">consigli sulla sicurezza</a>.", "Shared" : "Condiviso", "Shared with {recipients}" : "Condiviso con {recipients}", - "Error" : "Errore", - "Error while sharing" : "Errore durante la condivisione", - "Error while unsharing" : "Errore durante la rimozione della condivisione", "Error setting expiration date" : "Errore durante l'impostazione della data di scadenza", "The public link will expire no later than {days} days after it is created" : "Il collegamento pubblico scadrà non più tardi di {days} giorni dopo la sua creazione", "Set expiration date" : "Imposta data di scadenza", @@ -126,11 +123,10 @@ OC.L10N.register( "Share link" : "Condividi collegamento", "Link" : "Collegamento", "Password protect" : "Proteggi con password", - "Allow upload and editing" : "Consenti il caricamento e la modifica", "Allow editing" : "Consenti la modifica", - "upload only" : "solo caricamento", "Email link to person" : "Invia collegamento via email", "Send" : "Invia", + "Allow upload and editing" : "Consenti il caricamento e la modifica", "Shared with you and the group {group} by {owner}" : "Condiviso con te e con il gruppo {group} da {owner}", "Shared with you by {owner}" : "Condiviso con te da {owner}", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} ha condiviso tramite collegamento", @@ -146,6 +142,7 @@ OC.L10N.register( "Can delete" : "Può eliminare", "Access control" : "Controllo d'accesso", "Could not unshare" : "Impossibile rimuovere la condivisione", + "Error while sharing" : "Errore durante la condivisione", "Share details could not be loaded for this item." : "I dettagli della condivisione non possono essere caricati per questo elemento.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Almeno {count} carattere è richiesto per l'autocompletamento","Almeno {count} caratteri sono richiesti per il completamento automatico"], "This list is maybe truncated - please refine your search term to see more results." : "Questa lista potrebbe essere troncata - correggi i termini di ricerca per molti altri risultati.", @@ -157,6 +154,7 @@ OC.L10N.register( "{sharee} (email)" : "{sharee} (email)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Condividi", + "Error" : "Errore", "Error removing share" : "Errore durante la rimozione della condivisione", "Non-existing tag #{tag}" : "Etichetta #{tag} inesistente", "restricted" : "limitato", @@ -166,12 +164,6 @@ OC.L10N.register( "Rename" : "Rinomina", "Collaborative tags" : "Etichette collaborative", "No tags found" : "Nessuna etichetta trovata", - "The object type is not specified." : "Il tipo di oggetto non è specificato.", - "Enter new" : "Inserisci nuovo", - "Add" : "Aggiungi", - "Edit tags" : "Modifica etichette", - "Error loading dialog template: {error}" : "Errore durante il caricamento del modello di finestra: {error}", - "No tags selected for deletion." : "Nessuna etichetta selezionata per l'eliminazione.", "unknown text" : "testo sconosciuto", "Hello world!" : "Ciao mondo!", "sunny" : "soleggiato", @@ -288,6 +280,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "I tuoi file sono cifrati. Se non hai precedentemente abilitato la chiave di ripristino, non sarà più possibile ritrovare i tuoi dati una volta che la password sarà reimpostata.<br />Se non sei sicuro, contatta l'amministratore prima di proseguire.<br />Vuoi davvero continuare?", "Ok" : "Ok", "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." : "La cartella dei dati e i tuoi file sono probabilmente accessibili da Internet.\nIl file .htaccess non funziona. Ti consigliamo vivamente di configurare il server web in modo che la cartella dei dati non sia più accessibile o di spostare la cartella fuori dalla radice del server web.", + "Error while unsharing" : "Errore durante la rimozione della condivisione", "File drop (upload only)" : "Rilascia file (solo caricamento)", "can reshare" : "può ri-condividere", "can edit" : "può modificare", @@ -304,6 +297,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Condividi con utenti, gruppi o utenti remoti...", "Share with users, groups, remote users or by mail..." : "Condividi con utenti, gruppi, utenti remoti o tramite posta...", "Share with users..." : "Condividi con utenti...", + "The object type is not specified." : "Il tipo di oggetto non è specificato.", + "Enter new" : "Inserisci nuovo", + "Add" : "Aggiungi", + "Edit tags" : "Modifica etichette", + "Error loading dialog template: {error}" : "Errore durante il caricamento del modello di finestra: {error}", + "No tags selected for deletion." : "Nessuna etichetta selezionata per l'eliminazione.", "The update was successful. Redirecting you to Nextcloud now." : "L'aggiornamento è stato effettuato correttamente. Reindirizzamento immediato a Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Ciao,\n\nvolevo informarti che %s ha condiviso %s con te.\nVedi: %s\n\n", "The share will expire on %s." : "La condivisione scadrà il %s.", diff --git a/core/l10n/it.json b/core/l10n/it.json index a26e4ab07cf..8f44d1c2f1e 100644 --- a/core/l10n/it.json +++ b/core/l10n/it.json @@ -104,9 +104,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Sei connesso a questo sito tramite HTTP. Ti suggeriamo vivamente di configurare il tuo server per richiedere invece l'utilizzo del protocollo HTTPS, come descritto nei nostri <a href=\"{docUrl}\">consigli sulla sicurezza</a>.", "Shared" : "Condiviso", "Shared with {recipients}" : "Condiviso con {recipients}", - "Error" : "Errore", - "Error while sharing" : "Errore durante la condivisione", - "Error while unsharing" : "Errore durante la rimozione della condivisione", "Error setting expiration date" : "Errore durante l'impostazione della data di scadenza", "The public link will expire no later than {days} days after it is created" : "Il collegamento pubblico scadrà non più tardi di {days} giorni dopo la sua creazione", "Set expiration date" : "Imposta data di scadenza", @@ -124,11 +121,10 @@ "Share link" : "Condividi collegamento", "Link" : "Collegamento", "Password protect" : "Proteggi con password", - "Allow upload and editing" : "Consenti il caricamento e la modifica", "Allow editing" : "Consenti la modifica", - "upload only" : "solo caricamento", "Email link to person" : "Invia collegamento via email", "Send" : "Invia", + "Allow upload and editing" : "Consenti il caricamento e la modifica", "Shared with you and the group {group} by {owner}" : "Condiviso con te e con il gruppo {group} da {owner}", "Shared with you by {owner}" : "Condiviso con te da {owner}", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} ha condiviso tramite collegamento", @@ -144,6 +140,7 @@ "Can delete" : "Può eliminare", "Access control" : "Controllo d'accesso", "Could not unshare" : "Impossibile rimuovere la condivisione", + "Error while sharing" : "Errore durante la condivisione", "Share details could not be loaded for this item." : "I dettagli della condivisione non possono essere caricati per questo elemento.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Almeno {count} carattere è richiesto per l'autocompletamento","Almeno {count} caratteri sono richiesti per il completamento automatico"], "This list is maybe truncated - please refine your search term to see more results." : "Questa lista potrebbe essere troncata - correggi i termini di ricerca per molti altri risultati.", @@ -155,6 +152,7 @@ "{sharee} (email)" : "{sharee} (email)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Condividi", + "Error" : "Errore", "Error removing share" : "Errore durante la rimozione della condivisione", "Non-existing tag #{tag}" : "Etichetta #{tag} inesistente", "restricted" : "limitato", @@ -164,12 +162,6 @@ "Rename" : "Rinomina", "Collaborative tags" : "Etichette collaborative", "No tags found" : "Nessuna etichetta trovata", - "The object type is not specified." : "Il tipo di oggetto non è specificato.", - "Enter new" : "Inserisci nuovo", - "Add" : "Aggiungi", - "Edit tags" : "Modifica etichette", - "Error loading dialog template: {error}" : "Errore durante il caricamento del modello di finestra: {error}", - "No tags selected for deletion." : "Nessuna etichetta selezionata per l'eliminazione.", "unknown text" : "testo sconosciuto", "Hello world!" : "Ciao mondo!", "sunny" : "soleggiato", @@ -286,6 +278,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "I tuoi file sono cifrati. Se non hai precedentemente abilitato la chiave di ripristino, non sarà più possibile ritrovare i tuoi dati una volta che la password sarà reimpostata.<br />Se non sei sicuro, contatta l'amministratore prima di proseguire.<br />Vuoi davvero continuare?", "Ok" : "Ok", "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." : "La cartella dei dati e i tuoi file sono probabilmente accessibili da Internet.\nIl file .htaccess non funziona. Ti consigliamo vivamente di configurare il server web in modo che la cartella dei dati non sia più accessibile o di spostare la cartella fuori dalla radice del server web.", + "Error while unsharing" : "Errore durante la rimozione della condivisione", "File drop (upload only)" : "Rilascia file (solo caricamento)", "can reshare" : "può ri-condividere", "can edit" : "può modificare", @@ -302,6 +295,12 @@ "Share with users, groups or remote users..." : "Condividi con utenti, gruppi o utenti remoti...", "Share with users, groups, remote users or by mail..." : "Condividi con utenti, gruppi, utenti remoti o tramite posta...", "Share with users..." : "Condividi con utenti...", + "The object type is not specified." : "Il tipo di oggetto non è specificato.", + "Enter new" : "Inserisci nuovo", + "Add" : "Aggiungi", + "Edit tags" : "Modifica etichette", + "Error loading dialog template: {error}" : "Errore durante il caricamento del modello di finestra: {error}", + "No tags selected for deletion." : "Nessuna etichetta selezionata per l'eliminazione.", "The update was successful. Redirecting you to Nextcloud now." : "L'aggiornamento è stato effettuato correttamente. Reindirizzamento immediato a Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Ciao,\n\nvolevo informarti che %s ha condiviso %s con te.\nVedi: %s\n\n", "The share will expire on %s." : "La condivisione scadrà il %s.", diff --git a/core/l10n/ja.js b/core/l10n/ja.js index fa7192c59b6..6bc2f471a4a 100644 --- a/core/l10n/ja.js +++ b/core/l10n/ja.js @@ -107,9 +107,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "HTTP経由でアクセスしています。<a href=\"{docUrl}\">security tips</a>を参照して、代わりにHTTPSを使用するようサーバーを設定することを強くおすすめします。 instead as described in our .", "Shared" : "共有中", "Shared with {recipients}" : "{recipients} と共有", - "Error" : "エラー", - "Error while sharing" : "共有でエラー発生", - "Error while unsharing" : "共有解除でエラー発生", "Error setting expiration date" : "有効期限の設定でエラー発生", "The public link will expire no later than {days} days after it is created" : "URLによる共有は、作成してから {days} 日以内に有効期限切れになります", "Set expiration date" : "有効期限を設定", @@ -126,11 +123,11 @@ OC.L10N.register( "Share link" : "URLで共有", "Link" : "リンク", "Password protect" : "パスワード保護を有効化", - "Allow upload and editing" : "アップロードと編集を許可する", "Allow editing" : "編集を許可", - "upload only" : "アップロードのみ", "Email link to person" : "メールリンク", "Send" : "送信", + "Allow upload and editing" : "アップロードと編集を許可する", + "Secure drop (upload only)" : "セキュアドロップ (アップロードのみ)", "Shared with you and the group {group} by {owner}" : "あなたと {owner} のグループ {group} で共有中", "Shared with you by {owner}" : "{owner} より共有中", "Choose a password for the mail share" : "メール共有のパスワードを選択", @@ -145,9 +142,9 @@ OC.L10N.register( "Can create" : "作成可能", "Can change" : "変更可能", "Can delete" : "削除可能", - "Secure drop (upload only)" : "セキュアドロップ (アップロードのみ)", "Access control" : "アクセス制御", "Could not unshare" : "共有の解除ができませんでした", + "Error while sharing" : "共有でエラー発生", "Share details could not be loaded for this item." : "共有の詳細はこのアイテムによりロードできませんでした。", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["オートコンプリートには{count}文字以上必要です"], "This list is maybe truncated - please refine your search term to see more results." : "このリストは切り捨てられている可能性があります - 検索語句を絞り込んで検索結果を表示してください。", @@ -159,6 +156,7 @@ OC.L10N.register( "{sharee} (email)" : "{sharee} (メール)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "共有", + "Error" : "エラー", "Error removing share" : "共有の削除エラー", "Non-existing tag #{tag}" : "存在しないタグ#{tag}", "restricted" : "制限済", @@ -168,12 +166,6 @@ OC.L10N.register( "Rename" : "名前の変更", "Collaborative tags" : "コラボタグ", "No tags found" : "タグが見つかりません", - "The object type is not specified." : "オブジェクトタイプが指定されていません。", - "Enter new" : "新規に入力", - "Add" : "追加", - "Edit tags" : "タグを編集", - "Error loading dialog template: {error}" : "メッセージテンプレートの読み込みエラー: {error}", - "No tags selected for deletion." : "削除するタグが選択されていません。", "unknown text" : "不明なテキスト", "Hello world!" : "Hello world!", "sunny" : "快晴", @@ -290,6 +282,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "ファイルが暗号化されています。リカバリーキーが有効でない場合は、パスワードをリセットした後にあなたのデータを元に戻す方法はありません。<br />どういうことか分からない場合は、操作を継続する前に管理者に問い合わせてください。<br />続けてよろしいでしょうか?", "Ok" : "OK", "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ファイルが機能していません。データディレクトリがアクセスされないようにWebサーバーを設定するか、Webサーバーのドキュメントルートからデータディレクトリを移動するように強くお勧めします。", + "Error while unsharing" : "共有解除でエラー発生", "File drop (upload only)" : "ファイルドロップ(アップロードのみ)", "can reshare" : "再共有可能", "can edit" : "編集を許可", @@ -306,6 +299,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "ユーザー、グループ、またはリモートユーザーと共有する...", "Share with users, groups, remote users or by mail..." : "ユーザー、グループ、リモートユーザーまたはメールで共有...", "Share with users..." : "ユーザーと共有する...", + "The object type is not specified." : "オブジェクトタイプが指定されていません。", + "Enter new" : "新規に入力", + "Add" : "追加", + "Edit tags" : "タグを編集", + "Error loading dialog template: {error}" : "メッセージテンプレートの読み込みエラー: {error}", + "No tags selected for deletion." : "削除するタグが選択されていません。", "The update was successful. Redirecting you to Nextcloud now." : "アップデート成功。Nextcloud にリダイレクトします。", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "こんにちは、\n\n%s があなたと %s を共有したことをお知らせします。\nそれを表示: %s\n", "The share will expire on %s." : "共有は %s で有効期限が切れます。", diff --git a/core/l10n/ja.json b/core/l10n/ja.json index 91521ff6090..192ea81c69d 100644 --- a/core/l10n/ja.json +++ b/core/l10n/ja.json @@ -105,9 +105,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "HTTP経由でアクセスしています。<a href=\"{docUrl}\">security tips</a>を参照して、代わりにHTTPSを使用するようサーバーを設定することを強くおすすめします。 instead as described in our .", "Shared" : "共有中", "Shared with {recipients}" : "{recipients} と共有", - "Error" : "エラー", - "Error while sharing" : "共有でエラー発生", - "Error while unsharing" : "共有解除でエラー発生", "Error setting expiration date" : "有効期限の設定でエラー発生", "The public link will expire no later than {days} days after it is created" : "URLによる共有は、作成してから {days} 日以内に有効期限切れになります", "Set expiration date" : "有効期限を設定", @@ -124,11 +121,11 @@ "Share link" : "URLで共有", "Link" : "リンク", "Password protect" : "パスワード保護を有効化", - "Allow upload and editing" : "アップロードと編集を許可する", "Allow editing" : "編集を許可", - "upload only" : "アップロードのみ", "Email link to person" : "メールリンク", "Send" : "送信", + "Allow upload and editing" : "アップロードと編集を許可する", + "Secure drop (upload only)" : "セキュアドロップ (アップロードのみ)", "Shared with you and the group {group} by {owner}" : "あなたと {owner} のグループ {group} で共有中", "Shared with you by {owner}" : "{owner} より共有中", "Choose a password for the mail share" : "メール共有のパスワードを選択", @@ -143,9 +140,9 @@ "Can create" : "作成可能", "Can change" : "変更可能", "Can delete" : "削除可能", - "Secure drop (upload only)" : "セキュアドロップ (アップロードのみ)", "Access control" : "アクセス制御", "Could not unshare" : "共有の解除ができませんでした", + "Error while sharing" : "共有でエラー発生", "Share details could not be loaded for this item." : "共有の詳細はこのアイテムによりロードできませんでした。", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["オートコンプリートには{count}文字以上必要です"], "This list is maybe truncated - please refine your search term to see more results." : "このリストは切り捨てられている可能性があります - 検索語句を絞り込んで検索結果を表示してください。", @@ -157,6 +154,7 @@ "{sharee} (email)" : "{sharee} (メール)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "共有", + "Error" : "エラー", "Error removing share" : "共有の削除エラー", "Non-existing tag #{tag}" : "存在しないタグ#{tag}", "restricted" : "制限済", @@ -166,12 +164,6 @@ "Rename" : "名前の変更", "Collaborative tags" : "コラボタグ", "No tags found" : "タグが見つかりません", - "The object type is not specified." : "オブジェクトタイプが指定されていません。", - "Enter new" : "新規に入力", - "Add" : "追加", - "Edit tags" : "タグを編集", - "Error loading dialog template: {error}" : "メッセージテンプレートの読み込みエラー: {error}", - "No tags selected for deletion." : "削除するタグが選択されていません。", "unknown text" : "不明なテキスト", "Hello world!" : "Hello world!", "sunny" : "快晴", @@ -288,6 +280,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "ファイルが暗号化されています。リカバリーキーが有効でない場合は、パスワードをリセットした後にあなたのデータを元に戻す方法はありません。<br />どういうことか分からない場合は、操作を継続する前に管理者に問い合わせてください。<br />続けてよろしいでしょうか?", "Ok" : "OK", "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ファイルが機能していません。データディレクトリがアクセスされないようにWebサーバーを設定するか、Webサーバーのドキュメントルートからデータディレクトリを移動するように強くお勧めします。", + "Error while unsharing" : "共有解除でエラー発生", "File drop (upload only)" : "ファイルドロップ(アップロードのみ)", "can reshare" : "再共有可能", "can edit" : "編集を許可", @@ -304,6 +297,12 @@ "Share with users, groups or remote users..." : "ユーザー、グループ、またはリモートユーザーと共有する...", "Share with users, groups, remote users or by mail..." : "ユーザー、グループ、リモートユーザーまたはメールで共有...", "Share with users..." : "ユーザーと共有する...", + "The object type is not specified." : "オブジェクトタイプが指定されていません。", + "Enter new" : "新規に入力", + "Add" : "追加", + "Edit tags" : "タグを編集", + "Error loading dialog template: {error}" : "メッセージテンプレートの読み込みエラー: {error}", + "No tags selected for deletion." : "削除するタグが選択されていません。", "The update was successful. Redirecting you to Nextcloud now." : "アップデート成功。Nextcloud にリダイレクトします。", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "こんにちは、\n\n%s があなたと %s を共有したことをお知らせします。\nそれを表示: %s\n", "The share will expire on %s." : "共有は %s で有効期限が切れます。", diff --git a/core/l10n/ko.js b/core/l10n/ko.js index 6df13c5f238..f1af50c0c5a 100644 --- a/core/l10n/ko.js +++ b/core/l10n/ko.js @@ -3,8 +3,8 @@ OC.L10N.register( { "Please select a file." : "파일을 선택하십시오.", "File is too big" : "파일이 너무 큼", - "The selected file is not an image." : "선택한 파일은 이미지가 아님", - "The selected file cannot be read." : "선택한 파일을 읽을 수 없음", + "The selected file is not an image." : "선택한 파일은 사진이 아닙니다.", + "The selected file cannot be read." : "선택한 파일을 읽을 수 없습니다.", "Invalid file provided" : "잘못된 파일 지정됨", "No image or file provided" : "사진이나 파일이 없음", "Unknown filetype" : "알려지지 않은 파일 형식", @@ -14,18 +14,24 @@ OC.L10N.register( "No crop data provided" : "선택된 데이터가 없습니다.", "No valid crop data provided" : "올바른 잘라내기 데이터가 지정되지 않음", "Crop is not square" : "잘라내는 영역이 사각형이 아님", + "State token does not match" : "상태 토크인 일치하지 않음", + "Auth flow can only be started unauthenticated." : "인증 과정을 시작하려면 인증되어 있지 않아야 합니다.", "Couldn't reset password because the token is invalid" : "토큰이 잘못되었기 때문에 암호를 초기화할 수 없습니다", "Couldn't reset password because the token is expired" : "토큰이 만료되어 암호를 초기화할 수 없습니다", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "이 사용자 이름과 연결된 이메일 주소가 없어서 초기화 메일을 보낼 수 없습니다. 시스템 관리자에게 연락하십시오.", + "Password reset" : "암호 재설정", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "아래 단추를 눌러서 암호를 재설정할 수 있습니다. 암호 초기화를 요청하지 않으셨다면 이 이메일을 무시하십시오.", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "아래 링크를 눌러서 암호를 재설정할 수 있습니다. 암호 초기화를 요청하지 않으셨다면 이 이메일을 무시하십시오.", + "Reset your password" : "내 암호 재설정", "%s password reset" : "%s 암호 재설정", - "Couldn't send reset email. Please contact your administrator." : "재설정 메일을 보낼수 없습니다. 관리자에게 문의하십시오.", + "Couldn't send reset email. Please contact your administrator." : "재설정 메일을 보낼 수 없습니다. 관리자에게 문의하십시오.", "Couldn't send reset email. Please make sure your username is correct." : "재설정 메일을 보낼 수 없습니다. 사용자 이름이 올바른지 확인하십시오.", "Preparing update" : "업데이트 준비 중", "[%d / %d]: %s" : "[%d / %d]: %s", "Repair warning: " : "수리 경고:", "Repair error: " : "수리 오류:", - "Please use the command line updater because automatic updating is disabled in the config.php." : "자동 업데이트가 config.php를 비활성화하기 때문에 명령 줄 업데이트를 사용하십시오.", - "[%d / %d]: Checking table %s" : "[%d / %d]: %s 테이블 확인", + "Please use the command line updater because automatic updating is disabled in the config.php." : "config.php에서 자동 업데이트가 비활성화되어 있기 때문에 명령줄 업데이트를 사용하십시오.", + "[%d / %d]: Checking table %s" : "[%d / %d]: 테이블 %s 확인 중", "Turned on maintenance mode" : "유지 보수 모드 켜짐", "Turned off maintenance mode" : "유지 보수 모드 꺼짐", "Maintenance mode is kept active" : "유지 보수 모드가 켜져 있음", @@ -45,9 +51,17 @@ OC.L10N.register( "%s (incompatible)" : "%s(호환 불가)", "Following apps have been disabled: %s" : "다음 앱이 비활성화되었습니다: %s", "Already up to date" : "최신 상태임", + "No contacts found" : "연락처를 찾을 수 없음", + "Show all contacts …" : "모든 연락처 보기 …", + "There was an error loading your contacts" : "연락처를 불러오는 중 오류가 발생했습니다", + "Loading your contacts …" : "연락처 불러오는 중 …", + "Looking for {term} …" : "{term} 검색 중 …", "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">코드 무결성 검사 중 오류가 발생했습니다. 더 많은 정보를 보려면 누르십시오…</a>", + "No action available" : "사용할 수 있는 동작 없음", + "Error fetching contact actions" : "연락처 동작을 가져오는 중 오류 발생", "Settings" : "설정", "Connection to server lost" : "서버 연결이 끊어짐", + "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["페이지 불러오기 오류, %n초 후 새로 고침"], "Saving..." : "저장 중...", "Dismiss" : "닫기", "This action requires you to confirm your password" : "이 작업을 수행하려면 암호를 입력해야 합니다", @@ -57,8 +71,9 @@ OC.L10N.register( "Confirm" : "확인", "Failed to authenticate, try again" : "인증할 수 없습니다. 다시 시도하십시오.", "seconds ago" : "초 지남", - "Logging in …" : "로그인 ...", + "Logging in …" : "로그인 중 …", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "암호 재설정 링크를 포함하고 있는 이메일을 보냈습니다. 이메일이 도착하지 않은 경우 스팸함을 확인해 보십시오.<br>스팸함에도 없는 경우 로컬 관리자에게 문의하십시오.", + "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "내 파일이 암호화되어 있습니다. 암호를 초기화하면 데이터를 복구할 수 없습니다.<br />무엇을 해야 할 지 잘 모르겠으면 시스템 관리자에게 연락하십시오.<br />그래도 계속 진행하시겠습니까?", "I know what I'm doing" : "지금 하려는 것을 알고 있습니다", "Password can not be changed. Please contact your administrator." : "암호를 변경할 수 없습니다. 관리자에게 문의하십시오.", "No" : "아니요", @@ -66,6 +81,7 @@ OC.L10N.register( "No files in here" : "여기에 파일이 없음", "Choose" : "선택", "Error loading file picker template: {error}" : "파일 선택 템플릿을 불러오는 중 오류 발생: {error}", + "OK" : "확인", "Error loading message template: {error}" : "메시지 템플릿을 불러오는 중 오류 발생: {error}", "read-only" : "읽기 전용", "_{count} file conflict_::_{count} file conflicts_" : ["파일 {count}개 충돌"], @@ -73,7 +89,7 @@ OC.L10N.register( "New Files" : "새 파일", "Already existing files" : "파일이 이미 존재합니다", "Which files do you want to keep?" : "어느 파일을 유지하시겠습니까?", - "If you select both versions, the copied file will have a number added to its name." : "두 버전을 모두 선택하면, 파일 이름에 번호가 추가될 것입니다.", + "If you select both versions, the copied file will have a number added to its name." : "두 버전을 모두 선택하면, 복사된 파일 이름에 번호가 추가됩니다.", "Continue" : "계속", "(all selected)" : "(모두 선택됨)", "({count} selected)" : "({count}개 선택됨)", @@ -85,54 +101,81 @@ OC.L10N.register( "Good password" : "좋은 암호", "Strong password" : "강력한 암호", "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "WebDAV 서비스가 올바르게 작동하지 않아서 웹 서버에서 파일 동기화를 사용할 수 없습니다.", - "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "웹 서버가 \"{url}\"을 처리할 수 있도록 구성되어있지 않습니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">설명서</a>를 참고하십시오.", + "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "웹 서버가 \"{url}\"을 올바르게 처리할 수 있도록 설정되어 있지 않습니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">문서</a>를 참고하십시오.", "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "서버에서 인터넷 연결을 사용할 수 없습니다. 외부 저장소 마운트, 업데이트 알림, 제 3자 앱 설치 등 기능을 사용할 수 없습니다. 원격에서 파일에 접근하거나, 알림 이메일을 보내지 못할 수도 있습니다. 모든 기능을 사용하려면 인터넷에 연결하는 것을 추천합니다.", - "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "메모리 캐시가 구성되지 않았습니다. 가능한 경우 memcache를 구성하여 성능을 향상시킬 수 있습니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">사용 설명서</a>를 참고하십시오.", - "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "PHP가 안전한 난수 발생기(/dev/urandom)를 사용할 수 없어 보안에 취약합니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">사용 설명서</a>를 참고하십시오.", - "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "역방향 프록시 헤더 설정이 올바르지 않거나 Trusted Proxy를 통해 ownCloud에 접근하고 있을 수 있습니다. 만약 ownCloud를 Trusted Proxy를 통해 접근하고 있지 않다면 이는 보안 문제이며 공격자가 IP 주소를 속이고 있을 수 있습니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">사용 설명서</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 target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "메모리 캐시가 구성되지 않았습니다. 가능한 경우 memcache를 설정하여 성능을 향상시킬 수 있습니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">문서</a>를 참고하십시오.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "PHP가 안전한 난수 발생기(/dev/urandom)를 사용할 수 없어 보안에 취약합니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">문서</a>를 참고하십시오.", + "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "현재 PHP {version}을(를) 사용하고 있습니다. 배포판에서 지원하는 대로 PHP 버전을 업그레이드하여 <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">PHP 그룹에서 제공하는 성능 및 보안 업데이트</a>를 받는 것을 추천합니다.", + "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "역방향 프록시 헤더 설정이 올바르지 않거나 신뢰하는 프록시를 통해 Nextcloud에 접근하고 있을 수 있습니다. 만약 Nextcloud를 신뢰하는 프록시를 통해 접근하고 있지 않다면 이는 보안 문제이며 공격자가 IP 주소를 속이고 있을 수 있습니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">문서</a>를 참고하십시오.", "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached가 분산 캐시로 구성되어 있지만 잘못된 PHP 모듈 \"memcache\"가 설치되어 있습니다. \\OC\\Memcache\\Memcached는 \"memcache\"가 아닌 \"memcached\"만 지원합니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">이 두 모듈에 대한 memcached 위키</a>를 참고하십시오.", - "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "일부 파일에 대한 무결성 검사를 통과하지 않았습니다. 이 문제를 해결하는 방법에 대한 자세한 내용은 우리의 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">문서</a>에서 찾을 수 있습니다. (<a href=\"{codeIntegrityDownloadEndpoint}\">잘못된 파일 목록...</a> / <a href=\"{rescanEndpoint}\">재검색...</a>)", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "일부 파일이 무결성 검사를 통과하지 못습니다. 이 문제를 해결하는 방법은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">문서</a>를 참고하십시오.(<a href=\"{codeIntegrityDownloadEndpoint}\">잘못된 파일 목록…</a> / <a href=\"{rescanEndpoint}\">다시 검색…</a>)", + "The PHP Opcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend ↗</a> to use following settings in the <code>php.ini</code>:" : "PHP Opcache가 제대로 설정되어 있지 않습니다. 더 나은 성능을 위해서 <code>php.ini</code> 파일에 다음 설정을 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">추가하는 것을 권장합니다 ↗</a>:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "PHP 함수 \"set_time_limit\"을(를) 사용할 수 없습니다. 스크립트가 실행 중간에 중지되어 설치를 깨트릴 수도 있습니다. 이 함수를 활성화하는 것을 추천합니다.", "Error occurred while checking server setup" : "서버 설정을 확인하는 중 오류 발생", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended 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 파일을 사용할 수 없습니다. 웹 서버 설정을 변경하여 데이터 디렉터리에 접근할 수 없도록 하거나, 데이터 디렉터리를 웹 서버 문서 디렉터리 밖으로 옮기는 것을 추천합니다.", "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "\"{header}\" HTTP 헤더가 \"{expected}\"와(과) 같이 설정되지 않았습니다. 잠재적인 보안 위협이 될 수 있으므로 설정을 변경하는 것을 추천합니다.", - "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "\"엄격한 - 전송 보안\" HTTP 헤더에 적어도 \"{seconds}\"초로 설정되어 있지 않습니다. <a href=\"{docUrl}\" rel=\"noreferrer\">보안 팁</a>에 언급 된 바와 같이 보안을 강화하기 위해, HSTS를 사용하는 것이 좋습니다.", + "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "\"Strict-Transport-Security\" HTTP 헤더가 \"{seconds}\"초 이상로 설정되어 있지 않습니다. <a href=\"{docUrl}\" rel=\"noreferrer\">보안 팁</a>에서 제안하는 것처럼 HSTS를 활성화하는 것을 추천합니다.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "이 사이트를 HTTP로 접근하고 있습니다. <a href=\"{docUrl}\">보안 팁</a>에 나타난 것처럼 서버 설정을 변경하여 HTTPS를 사용하는 것을 강력히 추천합니다.", "Shared" : "공유됨", "Shared with {recipients}" : "{recipients} 님과 공유됨", - "Error" : "오류", - "Error while sharing" : "공유하는 중 오류 발생", - "Error while unsharing" : "공유 해제하는 중 오류 발생", "Error setting expiration date" : "만료 날짜 설정 오류", "The public link will expire no later than {days} days after it is created" : "공개 링크를 만든 후 최대 {days}일까지 유지됩니다", "Set expiration date" : "만료 날짜 설정", "Expiration" : "만료", "Expiration date" : "만료 날짜", "Choose a password for the public link" : "공개 링크 암호를 입력하십시오", - "Copied!" : "복사됨!", + "Choose a password for the public link or press \"Enter ↵\"" : "공개 림크 암호를 입력하거나 \"Enter ↵\" 키를 누르십시오", + "Copied!" : "복사 성공!", + "Copy" : "복사", "Not supported!" : "지원하지 않음!", - "Press ⌘-C to copy." : "⌘-C 복사", - "Press Ctrl-C to copy." : "Ctrl-C 복사", + "Press ⌘-C to copy." : "복사하려면 ⌘-C 키를 누르십시오.", + "Press Ctrl-C to copy." : "복사하려면 Ctrl-C 키를 누르십시오.", "Resharing is not allowed" : "다시 공유할 수 없습니다", + "Share to {name}" : "{name} 님에게 공유", "Share link" : "링크 공유", "Link" : "링크", "Password protect" : "암호 보호", - "Allow upload and editing" : "업로드 및 편집 허용", "Allow editing" : "편집 허용", "Email link to person" : "이메일 주소", "Send" : "전송", + "Allow upload and editing" : "업로드 및 편집 허용", + "Secure drop (upload only)" : "안전 보관소(업로드만 허용)", "Shared with you and the group {group} by {owner}" : "{owner} 님이 여러분 및 그룹 {group}와(과) 공유 중", "Shared with you by {owner}" : "{owner} 님이 공유 중", - "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} 링크를 통해 공유", + "Choose a password for the mail share" : "이메일 공유 암호 입력", + "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} 님이 링크를 통해 공유", "group" : "그룹", "remote" : "원격", + "email" : "이메일", + "shared by {sharer}" : "{sharer} 님이 공유함", "Unshare" : "공유 해제", + "Can reshare" : "재공유 가능", + "Can edit" : "편집 가능", + "Can create" : "생성 가능", + "Can change" : "변경 가능", + "Can delete" : "삭제 가능", + "Access control" : "접근 제어", "Could not unshare" : "공유 해제할 수 없음", + "Error while sharing" : "공유하는 중 오류 발생", "Share details could not be loaded for this item." : "이 항목의 공유 정보를 불러올 수 없습니다.", - "No users or groups found for {search}" : "{search}에 해당하는 사용자나 그룹을 찾을 수 없음", + "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["자동 완성을 시작하려면 최소 {count}글자를 입력해야 합니다"], + "This list is maybe truncated - please refine your search term to see more results." : "결과 목록이 잘렸을 수도 있습니다. 검색할 단어를 더 정확히 입력해서 더 많은 결과를 보십시오.", + "No users or groups found for {search}" : "{search} 사용자나 그룹을 찾을 수 없음", "No users found for {search}" : "{search} 사용자를 찾을 수 없음", "An error occurred. Please try again" : "오류가 발생했습니다. 다시 시도하십시오.", "{sharee} (group)" : "{sharee}(그룹)", "{sharee} (remote)" : "{sharee}(원격)", + "{sharee} (email)" : "{sharee}(이메일)", + "{sharee} ({type}, {owner})" : "{sharee}({type}, {owner})", "Share" : "공유", + "Share with other people by entering a user or group, a federated cloud ID or an email address." : "사용자나 그룹 이름, 연합 클라우드 ID 및 이메일 주소를 입력해서 다른 사람과 공유하십시오.", + "Share with other people by entering a user or group or a federated cloud ID." : "사용자나 그룹 이름, 연합 클라우드 ID를 입력해서 다른 사람과 공유하십시오.", + "Share with other people by entering a user or group or an email address." : "사용자나 그룹 이름 및 이메일 주소를 입력해서 다른 사람과 공유하십시오.", + "Name or email address..." : "이름이나 이메일 주소...", + "Name or federated cloud ID..." : "이름이나 연합 클라우드 ID...", + "Name, federated cloud ID or email address..." : "이름, 연합 클라우드 ID 및 이메일 주소...", + "Name..." : "이름...", + "Error" : "오류", "Error removing share" : "공유 삭제 중 오류 발생", "Non-existing tag #{tag}" : "존재하지 않는 태그 #{tag}", "restricted" : "제한됨", @@ -141,27 +184,25 @@ OC.L10N.register( "Delete" : "삭제", "Rename" : "이름 바꾸기", "Collaborative tags" : "협동 태그", - "The object type is not specified." : "객체 유형이 지정되지 않았습니다.", - "Enter new" : "새로운 값 입력", - "Add" : "추가", - "Edit tags" : "태그 편집", - "Error loading dialog template: {error}" : "대화 상자 템플릿을 불러오는 중 오류 발생: {error}", - "No tags selected for deletion." : "삭제할 태그를 선택하지 않았습니다.", + "No tags found" : "태그를 찾을 수 없음", "unknown text" : "알 수 없는 텍스트", "Hello world!" : "Hello world!", "sunny" : "맑음", "Hello {name}, the weather is {weather}" : "{name} 님 안녕하세요, 오늘 날씨는 {weather}입니다", "Hello {name}" : "{name} 님 안녕하세요", + "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>검색 결과입니다<script>alert(1)</script></strong>", "new" : "새로운 항목", "_download %n file_::_download %n files_" : ["파일 %n개 다운로드"], "The update is in progress, leaving this page might interrupt the process in some environments." : "업데이트 중입니다. 일부 환경에서 이 페이지를 닫을 경우 작업이 중단될 수 있습니다.", "Update to {version}" : "{version}(으)로 업데이트", "An error occurred." : "오류가 발생했습니다.", "Please reload the page." : "페이지를 새로 고치십시오.", - "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "업데이트에 실패했습니다. 더 많은 정보를 보려면 이 문제를 다루은 <a href=\"{url}\">포럼 글</a>을 참조하십시오.", + "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "업데이트에 실패했습니다. 더 많은 정보를 보려면 이 문제에 대한 <a href=\"{url}\">포럼 글</a>을 참조하십시오.", "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "업데이트가 실패했습니다. 이 문제를 <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud 커뮤니티</a>에 보고하여 주십시오.", - "Continue to Nextcloud" : "Nextcloud 계속", + "Continue to Nextcloud" : "Nextcloud로 계속 진행", + "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["업데이트가 성공했습니다. %n초 후 Nextcloud로 이동합니다."], "Searching other places" : "다른 장소 찾는 중", + "No search results in other folders for {tag}{filter}{endtag}" : "다른 폴더에 {tag}{filter}{endtag} 검색 결과가 없음", "_{count} search result in another folder_::_{count} search results in other folders_" : ["다른 폴더의 검색 결과 {count}개"], "Personal" : "개인", "Users" : "사용자", @@ -186,14 +227,14 @@ OC.L10N.register( "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\" rel=\"noreferrer\">documentation</a>." : "올바르게 서버를 구성하는 방법에 대한 자세한 내용은 <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">설명서</a>를 참조하시기 바랍니다.", + "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\" rel=\"noreferrer\">documentation</a>." : "서버를 올바르게 설정하는 방법에 대해서 더 알아보려면 <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">문서</a>를 참조하십시오.", "Create an <strong>admin account</strong>" : "<strong>관리자 계정</strong> 만들기", "Username" : "사용자 이름", "Storage & database" : "저장소 및 데이터베이스", "Data folder" : "데이터 폴더", "Configure the database" : "데이터베이스 설정", - "Only %s is available." : "%s만 사용 가능합니다.", + "Only %s is available." : "%s만 사용할 수 있습니다.", "Install and activate additional PHP modules to choose other database types." : "다른 데이터베이스 종류를 사용하려면 추가 PHP 모듈을 설치 및 활성화하십시오.", "For more details check out the documentation." : "자세한 정보를 보려면 문서를 참고하십시오.", "Database user" : "데이터베이스 사용자", @@ -201,15 +242,17 @@ OC.L10N.register( "Database name" : "데이터베이스 이름", "Database tablespace" : "데이터베이스 테이블 공간", "Database host" : "데이터베이스 호스트", + "Please specify the port number along with the host name (e.g., localhost:5432)." : "호스트 이름과 함께 포트 번호를 지정하십시오(예: localhost:5432)", "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를 사용하지 않는 것이 좋습니다.", + "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 …" : "완료 중 ...", + "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}한 다음 페이지를 새로 고치십시오.", + "More apps" : "더 많은 앱", "Search" : "검색", "This action requires you to confirm your password:" : "이 작업을 수행하려면 암호를 입력해야 합니다:", "Confirm your password" : "암호를 입력하십시오", @@ -223,19 +266,23 @@ OC.L10N.register( "Log in" : "로그인", "Stay logged in" : "로그인 유지", "Alternative Logins" : "대체 로그인", + "You are about to grant \"%s\" access to your %s account." : "\"%s\"에 접근하기 위해서 %s 계정을 사용하려고 합니다.", + "App token" : "앱 토큰", + "Alternative login using app token" : "앱 토큰을 사용한 대체 로그인", + "Redirecting …" : "전환 중 …", "New password" : "새 암호", "New Password" : "새 암호", "Reset password" : "암호 재설정", "This Nextcloud instance is currently in single user mode." : "Nextcloud 인스턴스가 현재 단일 사용자 모드로 동작 중입니다.", "This means only administrators can use the instance." : "현재 시스템 관리자만 인스턴스를 사용할 수 있습니다.", - "Contact your system administrator if this message persists or appeared unexpectedly." : "이 메시지가 계속 표시되거나, 예상하지 못하였을 때 표시된다면 시스템 관리자에게 연락하십시오", + "Contact your system administrator if this message persists or appeared unexpectedly." : "이 메시지가 계속 표시되거나, 예상하지 못하였을 때 표시된다면 시스템 관리자에게 연락하십시오.", "Thank you for your patience." : "기다려 주셔서 감사합니다.", "Log out" : "로그아웃", - "Two-factor authentication" : "이중 인증", - "Enhanced security is enabled for your account. Please authenticate using a second factor." : "강화 된 보안 계정을 사용할 수 있습니다. 두 번째 인자를 사용하여 인증하시기 바랍니다.", + "Two-factor authentication" : "2단계 인증", + "Enhanced security is enabled for your account. Please authenticate using a second factor." : "현재 계정에 향상된 보안이 켜져 있습니다. 2단계 인증으로 인증하십시오.", "Cancel log in" : "로그인 취소", "Use backup code" : "백업 코드 사용", - "Error while validating your second factor" : "이중 인증을 검증하는 중 오류가 발생했습니다.", + "Error while validating your second factor" : "2단계 인증을 검증하는 중 오류 발생", "You are accessing the server from an untrusted domain." : "신뢰할 수 없는 도메인으로 서버에 접근하고 있습니다.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "시스템 관리자에게 연락하십시오. 만약 이 인스턴스의 관리자라면 config/config.php에서 \"trusted_domains\" 설정을 편집하십시오. config/config.sample.php에 있는 예제 설정을 참고하십시오.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "설정에 따라서 관리자 권한으로 아래 단추를 눌러서 이 도메인을 신뢰하도록 설정할 수 있습니다.", @@ -250,20 +297,40 @@ OC.L10N.register( "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "큰 파일을 설치하는 경우 시간이 초과될 수 있으므로, 설치 디렉터리에서 다음 명령을 실행하셔도 됩니다:", "Detailed logs" : "자세한 로그", "Update needed" : "업데이트 필요", - "Please use the command line updater because you have a big instance." : "당신은 큰 인스턴스를 가지고 있기 때문에 명령 행 업데이트를 사용하십시오.", + "Please use the command line updater because you have a big instance." : "현재 인스턴스 크기가 크기 때문에 명령행 업데이터를 사용하십시오.", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "도움이 필요한 경우 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">문서</a>를 참조하십시오.", "This %s instance is currently in maintenance mode, which may take a while." : "이 %s 인스턴스는 현재 점검 모드입니다. 시간이 걸릴 수도 있습니다.", "This page will refresh itself when the %s instance is available again." : "%s 인스턴스를 다시 사용할 수 있으면 자동으로 새로 고칩니다.", - "Problem loading page, reloading in 5 seconds" : "페이지 로딩에 문제가 있습니다. 5초 후 다시로드 하십시오.", - "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "파일이 암호화되어 있습니다. 복구 키를 활성화하지 않았다면 암호를 초기화한 후 데이터를 복구할 수 없습니다.<br />무엇을 해야 할 지 잘 모르겠으면 계속하기 전에 관리자에게 연락하십시오.<br />그래도 계속 진행하시겠습니까?", + "Problem loading page, reloading in 5 seconds" : "페이지 불러오기 오류, 5초 후 새로 고침", + "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "내 파일이 암호화되어 있습니다. 복구 키를 활성화하지 않았다면 암호를 초기화한 후 데이터를 복구할 수 없습니다.<br />무엇을 해야 할 지 잘 모르겠으면 계속하기 전에 관리자에게 연락하십시오.<br />그래도 계속 진행하시겠습니까?", "Ok" : "확인", "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 파일이 작동하지 않습니다. 웹 서버 설정을 변경하여 데이터 디렉터리에 직접 접근할 수 없도록 하거나, 데이터 디렉터리를 웹 서버 문서 경로 바깥에 두십시오.", + "Error while unsharing" : "공유 해제하는 중 오류 발생", + "File drop (upload only)" : "파일 보관소(업로드만 허용)", "can reshare" : "재공유 가능", "can edit" : "편집 가능", + "can create" : "생성 가능", + "can change" : "변경 가능", + "can delete" : "삭제 가능", "access control" : "접근 제어", - "The update was successful. Redirecting you to Nextcloud now." : "업데이트가 성공했습니다. 지금 Nextcloud로 리디렉션합니다.", + "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "연합 클라우드 ID를 통하여 다른 서버의 사람과 공유 username@example.com/cloud", + "Share with users or by mail..." : "사용자 및 이메일로 공유...", + "Share with users or remote users..." : "사용자 및 원격 사용자와 공유...", + "Share with users, remote users or by mail..." : "사용자, 원격 사용자 및 이메일로 공유...", + "Share with users or groups..." : "사용자 및 그룹과 공유...", + "Share with users, groups or by mail..." : "사용자, 그룹 및 이메일로 공유...", + "Share with users, groups or remote users..." : "사용자, 그룹 및 원격 사용자와 공유...", + "Share with users, groups, remote users or by mail..." : "사용자, 그룹, 원격 사용자나 이메일로 공유...", + "Share with users..." : "사용자와 공유...", + "The object type is not specified." : "객체 유형이 지정되지 않았습니다.", + "Enter new" : "새로운 값 입력", + "Add" : "추가", + "Edit tags" : "태그 편집", + "Error loading dialog template: {error}" : "대화 상자 템플릿을 불러오는 중 오류 발생: {error}", + "No tags selected for deletion." : "삭제할 태그를 선택하지 않았습니다.", + "The update was successful. Redirecting you to Nextcloud now." : "업데이트가 성공했습니다. 지금 Nextcloud로 이동합니다.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "안녕하세요,\n\n%s 님이 %s을(를) 공유하였음을 알려 드립니다.\n보기 링크: %s\n\n", - "The share will expire on %s." : "이 공유는 %s 까지 유지됩니다.", + "The share will expire on %s." : "이 공유는 %s에 만료됩니다.", "Cheers!" : "감사합니다!", "Use the following link to reset your password: {link}" : "다음 링크를 사용하여 암호를 재설정할 수 있습니다: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "안녕하세요,<br><br>%s 님이 <strong>%s</strong>을(를) 공유하였음을 알려 드립니다.<br><a href=\"%s\">보러 가기!</a><br><br>" diff --git a/core/l10n/ko.json b/core/l10n/ko.json index d34b2ab483f..78917f8a9cc 100644 --- a/core/l10n/ko.json +++ b/core/l10n/ko.json @@ -1,8 +1,8 @@ { "translations": { "Please select a file." : "파일을 선택하십시오.", "File is too big" : "파일이 너무 큼", - "The selected file is not an image." : "선택한 파일은 이미지가 아님", - "The selected file cannot be read." : "선택한 파일을 읽을 수 없음", + "The selected file is not an image." : "선택한 파일은 사진이 아닙니다.", + "The selected file cannot be read." : "선택한 파일을 읽을 수 없습니다.", "Invalid file provided" : "잘못된 파일 지정됨", "No image or file provided" : "사진이나 파일이 없음", "Unknown filetype" : "알려지지 않은 파일 형식", @@ -12,18 +12,24 @@ "No crop data provided" : "선택된 데이터가 없습니다.", "No valid crop data provided" : "올바른 잘라내기 데이터가 지정되지 않음", "Crop is not square" : "잘라내는 영역이 사각형이 아님", + "State token does not match" : "상태 토크인 일치하지 않음", + "Auth flow can only be started unauthenticated." : "인증 과정을 시작하려면 인증되어 있지 않아야 합니다.", "Couldn't reset password because the token is invalid" : "토큰이 잘못되었기 때문에 암호를 초기화할 수 없습니다", "Couldn't reset password because the token is expired" : "토큰이 만료되어 암호를 초기화할 수 없습니다", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "이 사용자 이름과 연결된 이메일 주소가 없어서 초기화 메일을 보낼 수 없습니다. 시스템 관리자에게 연락하십시오.", + "Password reset" : "암호 재설정", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "아래 단추를 눌러서 암호를 재설정할 수 있습니다. 암호 초기화를 요청하지 않으셨다면 이 이메일을 무시하십시오.", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "아래 링크를 눌러서 암호를 재설정할 수 있습니다. 암호 초기화를 요청하지 않으셨다면 이 이메일을 무시하십시오.", + "Reset your password" : "내 암호 재설정", "%s password reset" : "%s 암호 재설정", - "Couldn't send reset email. Please contact your administrator." : "재설정 메일을 보낼수 없습니다. 관리자에게 문의하십시오.", + "Couldn't send reset email. Please contact your administrator." : "재설정 메일을 보낼 수 없습니다. 관리자에게 문의하십시오.", "Couldn't send reset email. Please make sure your username is correct." : "재설정 메일을 보낼 수 없습니다. 사용자 이름이 올바른지 확인하십시오.", "Preparing update" : "업데이트 준비 중", "[%d / %d]: %s" : "[%d / %d]: %s", "Repair warning: " : "수리 경고:", "Repair error: " : "수리 오류:", - "Please use the command line updater because automatic updating is disabled in the config.php." : "자동 업데이트가 config.php를 비활성화하기 때문에 명령 줄 업데이트를 사용하십시오.", - "[%d / %d]: Checking table %s" : "[%d / %d]: %s 테이블 확인", + "Please use the command line updater because automatic updating is disabled in the config.php." : "config.php에서 자동 업데이트가 비활성화되어 있기 때문에 명령줄 업데이트를 사용하십시오.", + "[%d / %d]: Checking table %s" : "[%d / %d]: 테이블 %s 확인 중", "Turned on maintenance mode" : "유지 보수 모드 켜짐", "Turned off maintenance mode" : "유지 보수 모드 꺼짐", "Maintenance mode is kept active" : "유지 보수 모드가 켜져 있음", @@ -43,9 +49,17 @@ "%s (incompatible)" : "%s(호환 불가)", "Following apps have been disabled: %s" : "다음 앱이 비활성화되었습니다: %s", "Already up to date" : "최신 상태임", + "No contacts found" : "연락처를 찾을 수 없음", + "Show all contacts …" : "모든 연락처 보기 …", + "There was an error loading your contacts" : "연락처를 불러오는 중 오류가 발생했습니다", + "Loading your contacts …" : "연락처 불러오는 중 …", + "Looking for {term} …" : "{term} 검색 중 …", "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">코드 무결성 검사 중 오류가 발생했습니다. 더 많은 정보를 보려면 누르십시오…</a>", + "No action available" : "사용할 수 있는 동작 없음", + "Error fetching contact actions" : "연락처 동작을 가져오는 중 오류 발생", "Settings" : "설정", "Connection to server lost" : "서버 연결이 끊어짐", + "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["페이지 불러오기 오류, %n초 후 새로 고침"], "Saving..." : "저장 중...", "Dismiss" : "닫기", "This action requires you to confirm your password" : "이 작업을 수행하려면 암호를 입력해야 합니다", @@ -55,8 +69,9 @@ "Confirm" : "확인", "Failed to authenticate, try again" : "인증할 수 없습니다. 다시 시도하십시오.", "seconds ago" : "초 지남", - "Logging in …" : "로그인 ...", + "Logging in …" : "로그인 중 …", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "암호 재설정 링크를 포함하고 있는 이메일을 보냈습니다. 이메일이 도착하지 않은 경우 스팸함을 확인해 보십시오.<br>스팸함에도 없는 경우 로컬 관리자에게 문의하십시오.", + "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "내 파일이 암호화되어 있습니다. 암호를 초기화하면 데이터를 복구할 수 없습니다.<br />무엇을 해야 할 지 잘 모르겠으면 시스템 관리자에게 연락하십시오.<br />그래도 계속 진행하시겠습니까?", "I know what I'm doing" : "지금 하려는 것을 알고 있습니다", "Password can not be changed. Please contact your administrator." : "암호를 변경할 수 없습니다. 관리자에게 문의하십시오.", "No" : "아니요", @@ -64,6 +79,7 @@ "No files in here" : "여기에 파일이 없음", "Choose" : "선택", "Error loading file picker template: {error}" : "파일 선택 템플릿을 불러오는 중 오류 발생: {error}", + "OK" : "확인", "Error loading message template: {error}" : "메시지 템플릿을 불러오는 중 오류 발생: {error}", "read-only" : "읽기 전용", "_{count} file conflict_::_{count} file conflicts_" : ["파일 {count}개 충돌"], @@ -71,7 +87,7 @@ "New Files" : "새 파일", "Already existing files" : "파일이 이미 존재합니다", "Which files do you want to keep?" : "어느 파일을 유지하시겠습니까?", - "If you select both versions, the copied file will have a number added to its name." : "두 버전을 모두 선택하면, 파일 이름에 번호가 추가될 것입니다.", + "If you select both versions, the copied file will have a number added to its name." : "두 버전을 모두 선택하면, 복사된 파일 이름에 번호가 추가됩니다.", "Continue" : "계속", "(all selected)" : "(모두 선택됨)", "({count} selected)" : "({count}개 선택됨)", @@ -83,54 +99,81 @@ "Good password" : "좋은 암호", "Strong password" : "강력한 암호", "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "WebDAV 서비스가 올바르게 작동하지 않아서 웹 서버에서 파일 동기화를 사용할 수 없습니다.", - "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "웹 서버가 \"{url}\"을 처리할 수 있도록 구성되어있지 않습니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">설명서</a>를 참고하십시오.", + "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "웹 서버가 \"{url}\"을 올바르게 처리할 수 있도록 설정되어 있지 않습니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">문서</a>를 참고하십시오.", "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "서버에서 인터넷 연결을 사용할 수 없습니다. 외부 저장소 마운트, 업데이트 알림, 제 3자 앱 설치 등 기능을 사용할 수 없습니다. 원격에서 파일에 접근하거나, 알림 이메일을 보내지 못할 수도 있습니다. 모든 기능을 사용하려면 인터넷에 연결하는 것을 추천합니다.", - "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "메모리 캐시가 구성되지 않았습니다. 가능한 경우 memcache를 구성하여 성능을 향상시킬 수 있습니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">사용 설명서</a>를 참고하십시오.", - "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "PHP가 안전한 난수 발생기(/dev/urandom)를 사용할 수 없어 보안에 취약합니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">사용 설명서</a>를 참고하십시오.", - "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "역방향 프록시 헤더 설정이 올바르지 않거나 Trusted Proxy를 통해 ownCloud에 접근하고 있을 수 있습니다. 만약 ownCloud를 Trusted Proxy를 통해 접근하고 있지 않다면 이는 보안 문제이며 공격자가 IP 주소를 속이고 있을 수 있습니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">사용 설명서</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 target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "메모리 캐시가 구성되지 않았습니다. 가능한 경우 memcache를 설정하여 성능을 향상시킬 수 있습니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">문서</a>를 참고하십시오.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "PHP가 안전한 난수 발생기(/dev/urandom)를 사용할 수 없어 보안에 취약합니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">문서</a>를 참고하십시오.", + "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "현재 PHP {version}을(를) 사용하고 있습니다. 배포판에서 지원하는 대로 PHP 버전을 업그레이드하여 <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">PHP 그룹에서 제공하는 성능 및 보안 업데이트</a>를 받는 것을 추천합니다.", + "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "역방향 프록시 헤더 설정이 올바르지 않거나 신뢰하는 프록시를 통해 Nextcloud에 접근하고 있을 수 있습니다. 만약 Nextcloud를 신뢰하는 프록시를 통해 접근하고 있지 않다면 이는 보안 문제이며 공격자가 IP 주소를 속이고 있을 수 있습니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">문서</a>를 참고하십시오.", "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached가 분산 캐시로 구성되어 있지만 잘못된 PHP 모듈 \"memcache\"가 설치되어 있습니다. \\OC\\Memcache\\Memcached는 \"memcache\"가 아닌 \"memcached\"만 지원합니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">이 두 모듈에 대한 memcached 위키</a>를 참고하십시오.", - "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "일부 파일에 대한 무결성 검사를 통과하지 않았습니다. 이 문제를 해결하는 방법에 대한 자세한 내용은 우리의 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">문서</a>에서 찾을 수 있습니다. (<a href=\"{codeIntegrityDownloadEndpoint}\">잘못된 파일 목록...</a> / <a href=\"{rescanEndpoint}\">재검색...</a>)", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "일부 파일이 무결성 검사를 통과하지 못습니다. 이 문제를 해결하는 방법은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">문서</a>를 참고하십시오.(<a href=\"{codeIntegrityDownloadEndpoint}\">잘못된 파일 목록…</a> / <a href=\"{rescanEndpoint}\">다시 검색…</a>)", + "The PHP Opcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend ↗</a> to use following settings in the <code>php.ini</code>:" : "PHP Opcache가 제대로 설정되어 있지 않습니다. 더 나은 성능을 위해서 <code>php.ini</code> 파일에 다음 설정을 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">추가하는 것을 권장합니다 ↗</a>:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "PHP 함수 \"set_time_limit\"을(를) 사용할 수 없습니다. 스크립트가 실행 중간에 중지되어 설치를 깨트릴 수도 있습니다. 이 함수를 활성화하는 것을 추천합니다.", "Error occurred while checking server setup" : "서버 설정을 확인하는 중 오류 발생", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended 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 파일을 사용할 수 없습니다. 웹 서버 설정을 변경하여 데이터 디렉터리에 접근할 수 없도록 하거나, 데이터 디렉터리를 웹 서버 문서 디렉터리 밖으로 옮기는 것을 추천합니다.", "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "\"{header}\" HTTP 헤더가 \"{expected}\"와(과) 같이 설정되지 않았습니다. 잠재적인 보안 위협이 될 수 있으므로 설정을 변경하는 것을 추천합니다.", - "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "\"엄격한 - 전송 보안\" HTTP 헤더에 적어도 \"{seconds}\"초로 설정되어 있지 않습니다. <a href=\"{docUrl}\" rel=\"noreferrer\">보안 팁</a>에 언급 된 바와 같이 보안을 강화하기 위해, HSTS를 사용하는 것이 좋습니다.", + "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "\"Strict-Transport-Security\" HTTP 헤더가 \"{seconds}\"초 이상로 설정되어 있지 않습니다. <a href=\"{docUrl}\" rel=\"noreferrer\">보안 팁</a>에서 제안하는 것처럼 HSTS를 활성화하는 것을 추천합니다.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "이 사이트를 HTTP로 접근하고 있습니다. <a href=\"{docUrl}\">보안 팁</a>에 나타난 것처럼 서버 설정을 변경하여 HTTPS를 사용하는 것을 강력히 추천합니다.", "Shared" : "공유됨", "Shared with {recipients}" : "{recipients} 님과 공유됨", - "Error" : "오류", - "Error while sharing" : "공유하는 중 오류 발생", - "Error while unsharing" : "공유 해제하는 중 오류 발생", "Error setting expiration date" : "만료 날짜 설정 오류", "The public link will expire no later than {days} days after it is created" : "공개 링크를 만든 후 최대 {days}일까지 유지됩니다", "Set expiration date" : "만료 날짜 설정", "Expiration" : "만료", "Expiration date" : "만료 날짜", "Choose a password for the public link" : "공개 링크 암호를 입력하십시오", - "Copied!" : "복사됨!", + "Choose a password for the public link or press \"Enter ↵\"" : "공개 림크 암호를 입력하거나 \"Enter ↵\" 키를 누르십시오", + "Copied!" : "복사 성공!", + "Copy" : "복사", "Not supported!" : "지원하지 않음!", - "Press ⌘-C to copy." : "⌘-C 복사", - "Press Ctrl-C to copy." : "Ctrl-C 복사", + "Press ⌘-C to copy." : "복사하려면 ⌘-C 키를 누르십시오.", + "Press Ctrl-C to copy." : "복사하려면 Ctrl-C 키를 누르십시오.", "Resharing is not allowed" : "다시 공유할 수 없습니다", + "Share to {name}" : "{name} 님에게 공유", "Share link" : "링크 공유", "Link" : "링크", "Password protect" : "암호 보호", - "Allow upload and editing" : "업로드 및 편집 허용", "Allow editing" : "편집 허용", "Email link to person" : "이메일 주소", "Send" : "전송", + "Allow upload and editing" : "업로드 및 편집 허용", + "Secure drop (upload only)" : "안전 보관소(업로드만 허용)", "Shared with you and the group {group} by {owner}" : "{owner} 님이 여러분 및 그룹 {group}와(과) 공유 중", "Shared with you by {owner}" : "{owner} 님이 공유 중", - "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} 링크를 통해 공유", + "Choose a password for the mail share" : "이메일 공유 암호 입력", + "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} 님이 링크를 통해 공유", "group" : "그룹", "remote" : "원격", + "email" : "이메일", + "shared by {sharer}" : "{sharer} 님이 공유함", "Unshare" : "공유 해제", + "Can reshare" : "재공유 가능", + "Can edit" : "편집 가능", + "Can create" : "생성 가능", + "Can change" : "변경 가능", + "Can delete" : "삭제 가능", + "Access control" : "접근 제어", "Could not unshare" : "공유 해제할 수 없음", + "Error while sharing" : "공유하는 중 오류 발생", "Share details could not be loaded for this item." : "이 항목의 공유 정보를 불러올 수 없습니다.", - "No users or groups found for {search}" : "{search}에 해당하는 사용자나 그룹을 찾을 수 없음", + "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["자동 완성을 시작하려면 최소 {count}글자를 입력해야 합니다"], + "This list is maybe truncated - please refine your search term to see more results." : "결과 목록이 잘렸을 수도 있습니다. 검색할 단어를 더 정확히 입력해서 더 많은 결과를 보십시오.", + "No users or groups found for {search}" : "{search} 사용자나 그룹을 찾을 수 없음", "No users found for {search}" : "{search} 사용자를 찾을 수 없음", "An error occurred. Please try again" : "오류가 발생했습니다. 다시 시도하십시오.", "{sharee} (group)" : "{sharee}(그룹)", "{sharee} (remote)" : "{sharee}(원격)", + "{sharee} (email)" : "{sharee}(이메일)", + "{sharee} ({type}, {owner})" : "{sharee}({type}, {owner})", "Share" : "공유", + "Share with other people by entering a user or group, a federated cloud ID or an email address." : "사용자나 그룹 이름, 연합 클라우드 ID 및 이메일 주소를 입력해서 다른 사람과 공유하십시오.", + "Share with other people by entering a user or group or a federated cloud ID." : "사용자나 그룹 이름, 연합 클라우드 ID를 입력해서 다른 사람과 공유하십시오.", + "Share with other people by entering a user or group or an email address." : "사용자나 그룹 이름 및 이메일 주소를 입력해서 다른 사람과 공유하십시오.", + "Name or email address..." : "이름이나 이메일 주소...", + "Name or federated cloud ID..." : "이름이나 연합 클라우드 ID...", + "Name, federated cloud ID or email address..." : "이름, 연합 클라우드 ID 및 이메일 주소...", + "Name..." : "이름...", + "Error" : "오류", "Error removing share" : "공유 삭제 중 오류 발생", "Non-existing tag #{tag}" : "존재하지 않는 태그 #{tag}", "restricted" : "제한됨", @@ -139,27 +182,25 @@ "Delete" : "삭제", "Rename" : "이름 바꾸기", "Collaborative tags" : "협동 태그", - "The object type is not specified." : "객체 유형이 지정되지 않았습니다.", - "Enter new" : "새로운 값 입력", - "Add" : "추가", - "Edit tags" : "태그 편집", - "Error loading dialog template: {error}" : "대화 상자 템플릿을 불러오는 중 오류 발생: {error}", - "No tags selected for deletion." : "삭제할 태그를 선택하지 않았습니다.", + "No tags found" : "태그를 찾을 수 없음", "unknown text" : "알 수 없는 텍스트", "Hello world!" : "Hello world!", "sunny" : "맑음", "Hello {name}, the weather is {weather}" : "{name} 님 안녕하세요, 오늘 날씨는 {weather}입니다", "Hello {name}" : "{name} 님 안녕하세요", + "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>검색 결과입니다<script>alert(1)</script></strong>", "new" : "새로운 항목", "_download %n file_::_download %n files_" : ["파일 %n개 다운로드"], "The update is in progress, leaving this page might interrupt the process in some environments." : "업데이트 중입니다. 일부 환경에서 이 페이지를 닫을 경우 작업이 중단될 수 있습니다.", "Update to {version}" : "{version}(으)로 업데이트", "An error occurred." : "오류가 발생했습니다.", "Please reload the page." : "페이지를 새로 고치십시오.", - "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "업데이트에 실패했습니다. 더 많은 정보를 보려면 이 문제를 다루은 <a href=\"{url}\">포럼 글</a>을 참조하십시오.", + "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "업데이트에 실패했습니다. 더 많은 정보를 보려면 이 문제에 대한 <a href=\"{url}\">포럼 글</a>을 참조하십시오.", "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "업데이트가 실패했습니다. 이 문제를 <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud 커뮤니티</a>에 보고하여 주십시오.", - "Continue to Nextcloud" : "Nextcloud 계속", + "Continue to Nextcloud" : "Nextcloud로 계속 진행", + "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["업데이트가 성공했습니다. %n초 후 Nextcloud로 이동합니다."], "Searching other places" : "다른 장소 찾는 중", + "No search results in other folders for {tag}{filter}{endtag}" : "다른 폴더에 {tag}{filter}{endtag} 검색 결과가 없음", "_{count} search result in another folder_::_{count} search results in other folders_" : ["다른 폴더의 검색 결과 {count}개"], "Personal" : "개인", "Users" : "사용자", @@ -184,14 +225,14 @@ "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\" rel=\"noreferrer\">documentation</a>." : "올바르게 서버를 구성하는 방법에 대한 자세한 내용은 <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">설명서</a>를 참조하시기 바랍니다.", + "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\" rel=\"noreferrer\">documentation</a>." : "서버를 올바르게 설정하는 방법에 대해서 더 알아보려면 <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">문서</a>를 참조하십시오.", "Create an <strong>admin account</strong>" : "<strong>관리자 계정</strong> 만들기", "Username" : "사용자 이름", "Storage & database" : "저장소 및 데이터베이스", "Data folder" : "데이터 폴더", "Configure the database" : "데이터베이스 설정", - "Only %s is available." : "%s만 사용 가능합니다.", + "Only %s is available." : "%s만 사용할 수 있습니다.", "Install and activate additional PHP modules to choose other database types." : "다른 데이터베이스 종류를 사용하려면 추가 PHP 모듈을 설치 및 활성화하십시오.", "For more details check out the documentation." : "자세한 정보를 보려면 문서를 참고하십시오.", "Database user" : "데이터베이스 사용자", @@ -199,15 +240,17 @@ "Database name" : "데이터베이스 이름", "Database tablespace" : "데이터베이스 테이블 공간", "Database host" : "데이터베이스 호스트", + "Please specify the port number along with the host name (e.g., localhost:5432)." : "호스트 이름과 함께 포트 번호를 지정하십시오(예: localhost:5432)", "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를 사용하지 않는 것이 좋습니다.", + "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 …" : "완료 중 ...", + "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}한 다음 페이지를 새로 고치십시오.", + "More apps" : "더 많은 앱", "Search" : "검색", "This action requires you to confirm your password:" : "이 작업을 수행하려면 암호를 입력해야 합니다:", "Confirm your password" : "암호를 입력하십시오", @@ -221,19 +264,23 @@ "Log in" : "로그인", "Stay logged in" : "로그인 유지", "Alternative Logins" : "대체 로그인", + "You are about to grant \"%s\" access to your %s account." : "\"%s\"에 접근하기 위해서 %s 계정을 사용하려고 합니다.", + "App token" : "앱 토큰", + "Alternative login using app token" : "앱 토큰을 사용한 대체 로그인", + "Redirecting …" : "전환 중 …", "New password" : "새 암호", "New Password" : "새 암호", "Reset password" : "암호 재설정", "This Nextcloud instance is currently in single user mode." : "Nextcloud 인스턴스가 현재 단일 사용자 모드로 동작 중입니다.", "This means only administrators can use the instance." : "현재 시스템 관리자만 인스턴스를 사용할 수 있습니다.", - "Contact your system administrator if this message persists or appeared unexpectedly." : "이 메시지가 계속 표시되거나, 예상하지 못하였을 때 표시된다면 시스템 관리자에게 연락하십시오", + "Contact your system administrator if this message persists or appeared unexpectedly." : "이 메시지가 계속 표시되거나, 예상하지 못하였을 때 표시된다면 시스템 관리자에게 연락하십시오.", "Thank you for your patience." : "기다려 주셔서 감사합니다.", "Log out" : "로그아웃", - "Two-factor authentication" : "이중 인증", - "Enhanced security is enabled for your account. Please authenticate using a second factor." : "강화 된 보안 계정을 사용할 수 있습니다. 두 번째 인자를 사용하여 인증하시기 바랍니다.", + "Two-factor authentication" : "2단계 인증", + "Enhanced security is enabled for your account. Please authenticate using a second factor." : "현재 계정에 향상된 보안이 켜져 있습니다. 2단계 인증으로 인증하십시오.", "Cancel log in" : "로그인 취소", "Use backup code" : "백업 코드 사용", - "Error while validating your second factor" : "이중 인증을 검증하는 중 오류가 발생했습니다.", + "Error while validating your second factor" : "2단계 인증을 검증하는 중 오류 발생", "You are accessing the server from an untrusted domain." : "신뢰할 수 없는 도메인으로 서버에 접근하고 있습니다.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "시스템 관리자에게 연락하십시오. 만약 이 인스턴스의 관리자라면 config/config.php에서 \"trusted_domains\" 설정을 편집하십시오. config/config.sample.php에 있는 예제 설정을 참고하십시오.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "설정에 따라서 관리자 권한으로 아래 단추를 눌러서 이 도메인을 신뢰하도록 설정할 수 있습니다.", @@ -248,20 +295,40 @@ "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "큰 파일을 설치하는 경우 시간이 초과될 수 있으므로, 설치 디렉터리에서 다음 명령을 실행하셔도 됩니다:", "Detailed logs" : "자세한 로그", "Update needed" : "업데이트 필요", - "Please use the command line updater because you have a big instance." : "당신은 큰 인스턴스를 가지고 있기 때문에 명령 행 업데이트를 사용하십시오.", + "Please use the command line updater because you have a big instance." : "현재 인스턴스 크기가 크기 때문에 명령행 업데이터를 사용하십시오.", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "도움이 필요한 경우 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">문서</a>를 참조하십시오.", "This %s instance is currently in maintenance mode, which may take a while." : "이 %s 인스턴스는 현재 점검 모드입니다. 시간이 걸릴 수도 있습니다.", "This page will refresh itself when the %s instance is available again." : "%s 인스턴스를 다시 사용할 수 있으면 자동으로 새로 고칩니다.", - "Problem loading page, reloading in 5 seconds" : "페이지 로딩에 문제가 있습니다. 5초 후 다시로드 하십시오.", - "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "파일이 암호화되어 있습니다. 복구 키를 활성화하지 않았다면 암호를 초기화한 후 데이터를 복구할 수 없습니다.<br />무엇을 해야 할 지 잘 모르겠으면 계속하기 전에 관리자에게 연락하십시오.<br />그래도 계속 진행하시겠습니까?", + "Problem loading page, reloading in 5 seconds" : "페이지 불러오기 오류, 5초 후 새로 고침", + "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "내 파일이 암호화되어 있습니다. 복구 키를 활성화하지 않았다면 암호를 초기화한 후 데이터를 복구할 수 없습니다.<br />무엇을 해야 할 지 잘 모르겠으면 계속하기 전에 관리자에게 연락하십시오.<br />그래도 계속 진행하시겠습니까?", "Ok" : "확인", "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 파일이 작동하지 않습니다. 웹 서버 설정을 변경하여 데이터 디렉터리에 직접 접근할 수 없도록 하거나, 데이터 디렉터리를 웹 서버 문서 경로 바깥에 두십시오.", + "Error while unsharing" : "공유 해제하는 중 오류 발생", + "File drop (upload only)" : "파일 보관소(업로드만 허용)", "can reshare" : "재공유 가능", "can edit" : "편집 가능", + "can create" : "생성 가능", + "can change" : "변경 가능", + "can delete" : "삭제 가능", "access control" : "접근 제어", - "The update was successful. Redirecting you to Nextcloud now." : "업데이트가 성공했습니다. 지금 Nextcloud로 리디렉션합니다.", + "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "연합 클라우드 ID를 통하여 다른 서버의 사람과 공유 username@example.com/cloud", + "Share with users or by mail..." : "사용자 및 이메일로 공유...", + "Share with users or remote users..." : "사용자 및 원격 사용자와 공유...", + "Share with users, remote users or by mail..." : "사용자, 원격 사용자 및 이메일로 공유...", + "Share with users or groups..." : "사용자 및 그룹과 공유...", + "Share with users, groups or by mail..." : "사용자, 그룹 및 이메일로 공유...", + "Share with users, groups or remote users..." : "사용자, 그룹 및 원격 사용자와 공유...", + "Share with users, groups, remote users or by mail..." : "사용자, 그룹, 원격 사용자나 이메일로 공유...", + "Share with users..." : "사용자와 공유...", + "The object type is not specified." : "객체 유형이 지정되지 않았습니다.", + "Enter new" : "새로운 값 입력", + "Add" : "추가", + "Edit tags" : "태그 편집", + "Error loading dialog template: {error}" : "대화 상자 템플릿을 불러오는 중 오류 발생: {error}", + "No tags selected for deletion." : "삭제할 태그를 선택하지 않았습니다.", + "The update was successful. Redirecting you to Nextcloud now." : "업데이트가 성공했습니다. 지금 Nextcloud로 이동합니다.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "안녕하세요,\n\n%s 님이 %s을(를) 공유하였음을 알려 드립니다.\n보기 링크: %s\n\n", - "The share will expire on %s." : "이 공유는 %s 까지 유지됩니다.", + "The share will expire on %s." : "이 공유는 %s에 만료됩니다.", "Cheers!" : "감사합니다!", "Use the following link to reset your password: {link}" : "다음 링크를 사용하여 암호를 재설정할 수 있습니다: {link}", "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "안녕하세요,<br><br>%s 님이 <strong>%s</strong>을(를) 공유하였음을 알려 드립니다.<br><a href=\"%s\">보러 가기!</a><br><br>" diff --git a/core/l10n/nb.js b/core/l10n/nb.js index 16ac5e151db..5e1c092854a 100644 --- a/core/l10n/nb.js +++ b/core/l10n/nb.js @@ -118,9 +118,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Du aksesserer denne nettsiden via HTTP. Vi anbefaler på det sterkeste at du konfigurerer tjeneren til å kreve HTTPS i stedet, som beskrevet i <a href=\"{docUrl}\">sikkerhetstips</a>.", "Shared" : "Delt", "Shared with {recipients}" : "Delt med {recipients}", - "Error" : "Feil", - "Error while sharing" : "Feil under deling", - "Error while unsharing" : "Feil ved oppheving av deling", "Error setting expiration date" : "Kan ikke sette utløpsdato", "The public link will expire no later than {days} days after it is created" : "Den offentlige lenken vil utløpe senest {days} dager etter at den lages", "Set expiration date" : "Sett utløpsdato", @@ -138,11 +135,11 @@ OC.L10N.register( "Share link" : "Del lenke", "Link" : "Lenke", "Password protect" : "Passordbeskyttet", - "Allow upload and editing" : "Tillatt opplasting og redigering", "Allow editing" : "Tillat redigering", - "upload only" : "kun opplasting", "Email link to person" : "Send lenke til person via e-post", "Send" : "Send", + "Allow upload and editing" : "Tillatt opplasting og redigering", + "Secure drop (upload only)" : "Sikret filkasse (bare opplasting)", "Shared with you and the group {group} by {owner}" : "Delt med deg og gruppen {group} av {owner}", "Shared with you by {owner}" : "Delt med deg av {owner}", "Choose a password for the mail share" : "Velg et passord for e-postlageret", @@ -157,9 +154,9 @@ OC.L10N.register( "Can create" : "Kan opprette", "Can change" : "Kan endre", "Can delete" : "Kan slette", - "Secure drop (upload only)" : "Sikret filkasse (bare opplasting)", "Access control" : "Tilgangskontroll", "Could not unshare" : "Kunne ikke avslutte deling", + "Error while sharing" : "Feil under deling", "Share details could not be loaded for this item." : "Klarte ikke å laste inn detaljer om deling for dette elementet.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Minst {count} tegn er nødvendig for autofullføring","Minst {count} antall tegn er nødvendig for autofullføring"], "This list is maybe truncated - please refine your search term to see more results." : "Listen kan bli avkortet - vennligst juster søket ditt for å se flere resultat.", @@ -178,6 +175,7 @@ OC.L10N.register( "Name or federated cloud ID..." : "Navn eller federert sky-ID…", "Name, federated cloud ID or email address..." : "Navn, federert sky-ID eller e-postadresse…", "Name..." : "Navn…", + "Error" : "Feil", "Error removing share" : "Feil ved fjerning av deling", "Non-existing tag #{tag}" : "Ikke-eksisterende merkelapp #{tag}", "restricted" : "begrenset", @@ -187,12 +185,6 @@ OC.L10N.register( "Rename" : "Gi nytt navn", "Collaborative tags" : "Felles merkelapper", "No tags found" : "Ingen emneknagger funnet", - "The object type is not specified." : "Objekttypen er ikke spesifisert.", - "Enter new" : "Oppgi ny", - "Add" : "Legg til", - "Edit tags" : "Rediger merkelapper", - "Error loading dialog template: {error}" : "Feil ved lasting av dialogmal: {error}", - "No tags selected for deletion." : "Ingen merkelapper valgt for sletting.", "unknown text" : "ukjent tekst", "Hello world!" : "Hei, verden!", "sunny" : "solfylt", @@ -313,6 +305,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Filene dine er kryptert. Hvis du ikke har aktivert gjenopprettingsnøkkelen, vil det være helt umulig å få tilbake dataene dine etter at pasordet ditt er tilbakestilt.<br />Hvis du er usikker på hva du skal gjøre, kontakt administratoren din før du fortsetter. <br />Vil du virkelig fortsette?", "Ok" : "OK", "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." : "Datamappen og filene dine er sannsynligvis tilgjengelige fra Internett. .htaccess-filen fungerer ikke. Det anbefales sterkt at du setter opp vev-tjeneren slik at datamappen ikke kan aksesseres eller at du flytter datamappen ut av vev-tjenerens dokumentrot.", + "Error while unsharing" : "Feil ved oppheving av deling", "File drop (upload only)" : "Filkasse (kun opplasting)", "can reshare" : "kan dele videre", "can edit" : "kan endre", @@ -329,6 +322,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Del med brukere, grupper eller eksterne brukere...", "Share with users, groups, remote users or by mail..." : "Del med brukere, grupper eller eksterne brukere på e-post...", "Share with users..." : "Del med brukere...", + "The object type is not specified." : "Objekttypen er ikke spesifisert.", + "Enter new" : "Oppgi ny", + "Add" : "Legg til", + "Edit tags" : "Rediger merkelapper", + "Error loading dialog template: {error}" : "Feil ved lasting av dialogmal: {error}", + "No tags selected for deletion." : "Ingen merkelapper valgt for sletting.", "The update was successful. Redirecting you to Nextcloud now." : "Oppdateringen var vellykket. Videresender deg til Nextcloud nå.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hei,\n\nDette er en beskjed om at %s delte %s med deg.\nVis den: %s\n\n", "The share will expire on %s." : "Delingen vil opphøre %s.", diff --git a/core/l10n/nb.json b/core/l10n/nb.json index f9e5b6616d1..a0bca69f382 100644 --- a/core/l10n/nb.json +++ b/core/l10n/nb.json @@ -116,9 +116,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Du aksesserer denne nettsiden via HTTP. Vi anbefaler på det sterkeste at du konfigurerer tjeneren til å kreve HTTPS i stedet, som beskrevet i <a href=\"{docUrl}\">sikkerhetstips</a>.", "Shared" : "Delt", "Shared with {recipients}" : "Delt med {recipients}", - "Error" : "Feil", - "Error while sharing" : "Feil under deling", - "Error while unsharing" : "Feil ved oppheving av deling", "Error setting expiration date" : "Kan ikke sette utløpsdato", "The public link will expire no later than {days} days after it is created" : "Den offentlige lenken vil utløpe senest {days} dager etter at den lages", "Set expiration date" : "Sett utløpsdato", @@ -136,11 +133,11 @@ "Share link" : "Del lenke", "Link" : "Lenke", "Password protect" : "Passordbeskyttet", - "Allow upload and editing" : "Tillatt opplasting og redigering", "Allow editing" : "Tillat redigering", - "upload only" : "kun opplasting", "Email link to person" : "Send lenke til person via e-post", "Send" : "Send", + "Allow upload and editing" : "Tillatt opplasting og redigering", + "Secure drop (upload only)" : "Sikret filkasse (bare opplasting)", "Shared with you and the group {group} by {owner}" : "Delt med deg og gruppen {group} av {owner}", "Shared with you by {owner}" : "Delt med deg av {owner}", "Choose a password for the mail share" : "Velg et passord for e-postlageret", @@ -155,9 +152,9 @@ "Can create" : "Kan opprette", "Can change" : "Kan endre", "Can delete" : "Kan slette", - "Secure drop (upload only)" : "Sikret filkasse (bare opplasting)", "Access control" : "Tilgangskontroll", "Could not unshare" : "Kunne ikke avslutte deling", + "Error while sharing" : "Feil under deling", "Share details could not be loaded for this item." : "Klarte ikke å laste inn detaljer om deling for dette elementet.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Minst {count} tegn er nødvendig for autofullføring","Minst {count} antall tegn er nødvendig for autofullføring"], "This list is maybe truncated - please refine your search term to see more results." : "Listen kan bli avkortet - vennligst juster søket ditt for å se flere resultat.", @@ -176,6 +173,7 @@ "Name or federated cloud ID..." : "Navn eller federert sky-ID…", "Name, federated cloud ID or email address..." : "Navn, federert sky-ID eller e-postadresse…", "Name..." : "Navn…", + "Error" : "Feil", "Error removing share" : "Feil ved fjerning av deling", "Non-existing tag #{tag}" : "Ikke-eksisterende merkelapp #{tag}", "restricted" : "begrenset", @@ -185,12 +183,6 @@ "Rename" : "Gi nytt navn", "Collaborative tags" : "Felles merkelapper", "No tags found" : "Ingen emneknagger funnet", - "The object type is not specified." : "Objekttypen er ikke spesifisert.", - "Enter new" : "Oppgi ny", - "Add" : "Legg til", - "Edit tags" : "Rediger merkelapper", - "Error loading dialog template: {error}" : "Feil ved lasting av dialogmal: {error}", - "No tags selected for deletion." : "Ingen merkelapper valgt for sletting.", "unknown text" : "ukjent tekst", "Hello world!" : "Hei, verden!", "sunny" : "solfylt", @@ -311,6 +303,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Filene dine er kryptert. Hvis du ikke har aktivert gjenopprettingsnøkkelen, vil det være helt umulig å få tilbake dataene dine etter at pasordet ditt er tilbakestilt.<br />Hvis du er usikker på hva du skal gjøre, kontakt administratoren din før du fortsetter. <br />Vil du virkelig fortsette?", "Ok" : "OK", "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." : "Datamappen og filene dine er sannsynligvis tilgjengelige fra Internett. .htaccess-filen fungerer ikke. Det anbefales sterkt at du setter opp vev-tjeneren slik at datamappen ikke kan aksesseres eller at du flytter datamappen ut av vev-tjenerens dokumentrot.", + "Error while unsharing" : "Feil ved oppheving av deling", "File drop (upload only)" : "Filkasse (kun opplasting)", "can reshare" : "kan dele videre", "can edit" : "kan endre", @@ -327,6 +320,12 @@ "Share with users, groups or remote users..." : "Del med brukere, grupper eller eksterne brukere...", "Share with users, groups, remote users or by mail..." : "Del med brukere, grupper eller eksterne brukere på e-post...", "Share with users..." : "Del med brukere...", + "The object type is not specified." : "Objekttypen er ikke spesifisert.", + "Enter new" : "Oppgi ny", + "Add" : "Legg til", + "Edit tags" : "Rediger merkelapper", + "Error loading dialog template: {error}" : "Feil ved lasting av dialogmal: {error}", + "No tags selected for deletion." : "Ingen merkelapper valgt for sletting.", "The update was successful. Redirecting you to Nextcloud now." : "Oppdateringen var vellykket. Videresender deg til Nextcloud nå.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hei,\n\nDette er en beskjed om at %s delte %s med deg.\nVis den: %s\n\n", "The share will expire on %s." : "Delingen vil opphøre %s.", diff --git a/core/l10n/nl.js b/core/l10n/nl.js index f093534af74..b181bc9f9e2 100644 --- a/core/l10n/nl.js +++ b/core/l10n/nl.js @@ -118,9 +118,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Je bent met deze site verbonden over HTTP. We adviseren je dringend om je server zo te configureren dat HTTPS wordt vereist, zoals beschreven in onze <a href=\"{docUrl}\">security tips</a>.", "Shared" : "Gedeeld", "Shared with {recipients}" : "Gedeeld met {recipients}", - "Error" : "Fout", - "Error while sharing" : "Fout tijdens het delen", - "Error while unsharing" : "Fout tijdens het stoppen met delen", "Error setting expiration date" : "Fout tijdens het instellen van de vervaldatum", "The public link will expire no later than {days} days after it is created" : "De openbare link vervalt niet eerder dan {days} dagen na het aanmaken", "Set expiration date" : "Stel vervaldatum in", @@ -138,11 +135,12 @@ OC.L10N.register( "Share link" : "Deellink", "Link" : "Link", "Password protect" : "Wachtwoord beveiligd", - "Allow upload and editing" : "Toestaan uploaden en bewerken", "Allow editing" : "Bewerken toestaan", - "upload only" : "alleen uploaden", "Email link to person" : "E-mail link naar persoon", "Send" : "Versturen", + "Allow upload and editing" : "Toestaan uploaden en bewerken", + "Read only" : "Alleen lezen", + "Secure drop (upload only)" : "Veilige drop (alleen uploaden)", "Shared with you and the group {group} by {owner}" : "Gedeeld met jou en de groep {group} door {owner}", "Shared with you by {owner}" : "Gedeeld met jou door {owner}", "Choose a password for the mail share" : "Kies een wachtwoord om gedeelde te mailen", @@ -157,9 +155,9 @@ OC.L10N.register( "Can create" : "Kan creëren", "Can change" : "Kan wijzigen", "Can delete" : "Kan verwijderen", - "Secure drop (upload only)" : "Veilige drop (alleen uploaden)", "Access control" : "Toegangscontrole", "Could not unshare" : "Kon delen niet ongedaan maken", + "Error while sharing" : "Fout tijdens het delen", "Share details could not be loaded for this item." : "Deel details van dit object kon niet worden geladen.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Minimaal {count} karakter benodigd voor automatisch aanvullen","Minimaal {count} karakters benodigd voor automatisch aanvullen"], "This list is maybe truncated - please refine your search term to see more results." : "Deze lijst is misschien afgekapt - verfijn de zoekterm om meer resultaten te zien.", @@ -178,6 +176,7 @@ OC.L10N.register( "Name or federated cloud ID..." : "Naam of gefedereerd Cloud ID:", "Name, federated cloud ID or email address..." : "Naam, gefedereed cloud ID of een e-mailadres", "Name..." : "Naam...", + "Error" : "Fout", "Error removing share" : "Fout bij verwijderen gedeelde", "Non-existing tag #{tag}" : "Niet bestaande markering #{tag}", "restricted" : "beperkt", @@ -187,12 +186,6 @@ OC.L10N.register( "Rename" : "Naam wijzigen", "Collaborative tags" : "Samenwerk markeringen", "No tags found" : "Geen tags gevonden", - "The object type is not specified." : "Het object type is niet gespecificeerd.", - "Enter new" : "Opgeven nieuw", - "Add" : "Toevoegen", - "Edit tags" : "Bewerken markeringen", - "Error loading dialog template: {error}" : "Fout bij laden dialoog sjabloon: {error}", - "No tags selected for deletion." : "Geen markeringen geselecteerd voor verwijdering.", "unknown text" : "onbekende tekst", "Hello world!" : "Hallo wereld!", "sunny" : "zonnig", @@ -313,6 +306,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Je bestanden zijn versleuteld. Als je de herstelsleutel niet hebt ingeschakeld, is het niet mogelijk om je gegevens terug te krijgen nadat je wachtwoord is hersteld. <br>Als je niet weet wat je moet doen, neem dan eerst contact op met je beheerder. <br>Wil je echt verder gaan?", "Ok" : "Ok", "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." : "Je data folder en je bestanden zijn waarschijnlijk vanaf het internet bereikbaar. Het .htaccess-bestand werkt niet. We raden ten zeerste aan aan om je webserver zodanig te configureren, dat de datadirectory niet bereikbaar is vanaf het internet of om je datadirectory te verplaatsen naar een locatie buiten de document-root van de webserver.", + "Error while unsharing" : "Fout tijdens het stoppen met delen", "File drop (upload only)" : "File drop (alleen uploaden)", "can reshare" : "kan doordelen", "can edit" : "kan wijzigen", @@ -329,6 +323,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Delen met gebruikers, groepen of externe gebruikers...", "Share with users, groups, remote users or by mail..." : "Delen met groepen, externe gebruikers of per e-mail...", "Share with users..." : "Deel met gebruikers...", + "The object type is not specified." : "Het object type is niet gespecificeerd.", + "Enter new" : "Opgeven nieuw", + "Add" : "Toevoegen", + "Edit tags" : "Bewerken markeringen", + "Error loading dialog template: {error}" : "Fout bij laden dialoog sjabloon: {error}", + "No tags selected for deletion." : "Geen markeringen geselecteerd voor verwijdering.", "The update was successful. Redirecting you to Nextcloud now." : "De update is geslaagd. Je wordt nu doorgeleid naar Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hallo daar,\n\n%s deelt %s met je.\nBekijk het hier: %s\n\n", "The share will expire on %s." : "Het gedeelde vervalt op %s.", diff --git a/core/l10n/nl.json b/core/l10n/nl.json index e206946327b..e2631655212 100644 --- a/core/l10n/nl.json +++ b/core/l10n/nl.json @@ -116,9 +116,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Je bent met deze site verbonden over HTTP. We adviseren je dringend om je server zo te configureren dat HTTPS wordt vereist, zoals beschreven in onze <a href=\"{docUrl}\">security tips</a>.", "Shared" : "Gedeeld", "Shared with {recipients}" : "Gedeeld met {recipients}", - "Error" : "Fout", - "Error while sharing" : "Fout tijdens het delen", - "Error while unsharing" : "Fout tijdens het stoppen met delen", "Error setting expiration date" : "Fout tijdens het instellen van de vervaldatum", "The public link will expire no later than {days} days after it is created" : "De openbare link vervalt niet eerder dan {days} dagen na het aanmaken", "Set expiration date" : "Stel vervaldatum in", @@ -136,11 +133,12 @@ "Share link" : "Deellink", "Link" : "Link", "Password protect" : "Wachtwoord beveiligd", - "Allow upload and editing" : "Toestaan uploaden en bewerken", "Allow editing" : "Bewerken toestaan", - "upload only" : "alleen uploaden", "Email link to person" : "E-mail link naar persoon", "Send" : "Versturen", + "Allow upload and editing" : "Toestaan uploaden en bewerken", + "Read only" : "Alleen lezen", + "Secure drop (upload only)" : "Veilige drop (alleen uploaden)", "Shared with you and the group {group} by {owner}" : "Gedeeld met jou en de groep {group} door {owner}", "Shared with you by {owner}" : "Gedeeld met jou door {owner}", "Choose a password for the mail share" : "Kies een wachtwoord om gedeelde te mailen", @@ -155,9 +153,9 @@ "Can create" : "Kan creëren", "Can change" : "Kan wijzigen", "Can delete" : "Kan verwijderen", - "Secure drop (upload only)" : "Veilige drop (alleen uploaden)", "Access control" : "Toegangscontrole", "Could not unshare" : "Kon delen niet ongedaan maken", + "Error while sharing" : "Fout tijdens het delen", "Share details could not be loaded for this item." : "Deel details van dit object kon niet worden geladen.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Minimaal {count} karakter benodigd voor automatisch aanvullen","Minimaal {count} karakters benodigd voor automatisch aanvullen"], "This list is maybe truncated - please refine your search term to see more results." : "Deze lijst is misschien afgekapt - verfijn de zoekterm om meer resultaten te zien.", @@ -176,6 +174,7 @@ "Name or federated cloud ID..." : "Naam of gefedereerd Cloud ID:", "Name, federated cloud ID or email address..." : "Naam, gefedereed cloud ID of een e-mailadres", "Name..." : "Naam...", + "Error" : "Fout", "Error removing share" : "Fout bij verwijderen gedeelde", "Non-existing tag #{tag}" : "Niet bestaande markering #{tag}", "restricted" : "beperkt", @@ -185,12 +184,6 @@ "Rename" : "Naam wijzigen", "Collaborative tags" : "Samenwerk markeringen", "No tags found" : "Geen tags gevonden", - "The object type is not specified." : "Het object type is niet gespecificeerd.", - "Enter new" : "Opgeven nieuw", - "Add" : "Toevoegen", - "Edit tags" : "Bewerken markeringen", - "Error loading dialog template: {error}" : "Fout bij laden dialoog sjabloon: {error}", - "No tags selected for deletion." : "Geen markeringen geselecteerd voor verwijdering.", "unknown text" : "onbekende tekst", "Hello world!" : "Hallo wereld!", "sunny" : "zonnig", @@ -311,6 +304,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Je bestanden zijn versleuteld. Als je de herstelsleutel niet hebt ingeschakeld, is het niet mogelijk om je gegevens terug te krijgen nadat je wachtwoord is hersteld. <br>Als je niet weet wat je moet doen, neem dan eerst contact op met je beheerder. <br>Wil je echt verder gaan?", "Ok" : "Ok", "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." : "Je data folder en je bestanden zijn waarschijnlijk vanaf het internet bereikbaar. Het .htaccess-bestand werkt niet. We raden ten zeerste aan aan om je webserver zodanig te configureren, dat de datadirectory niet bereikbaar is vanaf het internet of om je datadirectory te verplaatsen naar een locatie buiten de document-root van de webserver.", + "Error while unsharing" : "Fout tijdens het stoppen met delen", "File drop (upload only)" : "File drop (alleen uploaden)", "can reshare" : "kan doordelen", "can edit" : "kan wijzigen", @@ -327,6 +321,12 @@ "Share with users, groups or remote users..." : "Delen met gebruikers, groepen of externe gebruikers...", "Share with users, groups, remote users or by mail..." : "Delen met groepen, externe gebruikers of per e-mail...", "Share with users..." : "Deel met gebruikers...", + "The object type is not specified." : "Het object type is niet gespecificeerd.", + "Enter new" : "Opgeven nieuw", + "Add" : "Toevoegen", + "Edit tags" : "Bewerken markeringen", + "Error loading dialog template: {error}" : "Fout bij laden dialoog sjabloon: {error}", + "No tags selected for deletion." : "Geen markeringen geselecteerd voor verwijdering.", "The update was successful. Redirecting you to Nextcloud now." : "De update is geslaagd. Je wordt nu doorgeleid naar Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hallo daar,\n\n%s deelt %s met je.\nBekijk het hier: %s\n\n", "The share will expire on %s." : "Het gedeelde vervalt op %s.", diff --git a/core/l10n/pl.js b/core/l10n/pl.js index 14e1af9a33b..3d8144f23f2 100644 --- a/core/l10n/pl.js +++ b/core/l10n/pl.js @@ -118,9 +118,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Dostęp do tej strony jest za pośrednictwem protokołu HTTP. Zalecamy skonfigurowanie dostępu do serwera za pomocą protokołu HTTPS zamiast HTTP, jak to opisano w naszych <a href=\"{docUrl}\">wskazówkach bezpieczeństwa</a>.", "Shared" : "Udostępniono", "Shared with {recipients}" : "Współdzielony z {recipients}", - "Error" : "Błąd", - "Error while sharing" : "Błąd podczas udostępniania", - "Error while unsharing" : "Błąd podczas zatrzymywania udostepniania", "Error setting expiration date" : "Błąd podczas ustawiania daty wygaśnięcia", "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", "Set expiration date" : "Ustaw datę wygaśnięcia", @@ -138,11 +135,12 @@ OC.L10N.register( "Share link" : "Udostępnij link", "Link" : "Odnośnik", "Password protect" : "Zabezpiecz hasłem", - "Allow upload and editing" : "Pozwól na przesyłanie i edycję", "Allow editing" : "Pozwól na edycję", - "upload only" : "tylko wysyłanie", "Email link to person" : "Wyślij osobie odnośnik poprzez e-mail", "Send" : "Wyślij", + "Allow upload and editing" : "Pozwól na przesyłanie i edycję", + "Read only" : "Tylko do odczytu", + "Secure drop (upload only)" : "Bezpieczny zrzut (tylko wysyłanie)", "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}", "Choose a password for the mail share" : "Wybierz hasło do współdzielenia e-mailem", @@ -157,9 +155,9 @@ OC.L10N.register( "Can create" : "Może tworzyć", "Can change" : "Może zmieniać", "Can delete" : "Może usuwać", - "Secure drop (upload only)" : "Bezpieczny zrzut (tylko wysyłanie)", "Access control" : "Kontrola dostępu", "Could not unshare" : "Nie udało się usunąć udostępnienia", + "Error while sharing" : "Błąd podczas udostępniania", "Share details could not be loaded for this item." : "Szczegóły udziału nie mogły zostać wczytane dla tego obiektu.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Do automatycznego uzupełnienia potrzebny jest co najmniej {count} znak","Do automatycznego uzupełnienia potrzebnych jest co najmniej {count} znaków","Do automatycznego uzupełnienia potrzebnych jest co najmniej {count} znaków","Do automatycznego uzupełnienia potrzebnych jest co najmniej {count} znaków"], "This list is maybe truncated - please refine your search term to see more results." : "Ta lista może być obcięta - proszę bardziej określić fraze wyszukiwania, aby zobaczyć więcej wyników.", @@ -178,6 +176,7 @@ OC.L10N.register( "Name or federated cloud ID..." : "Nazwa lub ID chmury stowarzyszonej...", "Name, federated cloud ID or email address..." : "Nazwa, ID chmury stowarzyszonej lub adres e-mail...", "Name..." : "Nazwa...", + "Error" : "Błąd", "Error removing share" : "Błąd podczas usuwania współdzielenia", "Non-existing tag #{tag}" : "Znacznik #{tag} nie istnieje", "restricted" : "ograniczone", @@ -187,12 +186,6 @@ OC.L10N.register( "Rename" : "Zmień nazwę", "Collaborative tags" : "Wspólne tagi", "No tags found" : "Nie znaleziono etykiet", - "The object type is not specified." : "Nie określono typu obiektu.", - "Enter new" : "Wpisz nowy", - "Add" : "Dodaj", - "Edit tags" : "Edytuj tagi", - "Error loading dialog template: {error}" : "Błąd podczas ładowania szablonu dialogu: {error}", - "No tags selected for deletion." : "Nie zaznaczono tagów do usunięcia.", "unknown text" : "nieznany tekst", "Hello world!" : "Witaj świecie!", "sunny" : "słoneczna", @@ -313,6 +306,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Twoje pliki są zaszyfrowane. Jeśli nie włączyłeś klucza odzyskiwania, nie będzie możliwości odszyfrowania tych plików po zresetowaniu hasła.<br>Jeśli nie jesteś pewien co zrobić, skontaktuj się ze swoim administratorem, zanim bedziesz kontynuował. <br/> Czy chcesz kontynuować?\n ", "Ok" : "OK", "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." : "Twój katalog z danymi i twoje pliki są prawdopodobnie dostępne przez Internet. Plik .htaccess nie działa. Silnie rekomendujemy, żebyś skonfigurował serwer webowy, żeby katalog z danymi nie był dalej dostępny lub przenieś katalog z danymi poza katalog \"document root\" serwera web.", + "Error while unsharing" : "Błąd podczas zatrzymywania udostepniania", "File drop (upload only)" : "Tylko przesyłanie", "can reshare" : "mogą udostępniać dalej", "can edit" : "może edytować", @@ -329,6 +323,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Współdziel z użytkownikami, grupami lub zdalnymi użytkownikami...", "Share with users, groups, remote users or by mail..." : "Współdziel z użytkownikami, grupami, zdalnymi użytkownikami lub poprzez mail...", "Share with users..." : "Współdziel z użytkownikami...", + "The object type is not specified." : "Nie określono typu obiektu.", + "Enter new" : "Wpisz nowy", + "Add" : "Dodaj", + "Edit tags" : "Edytuj tagi", + "Error loading dialog template: {error}" : "Błąd podczas ładowania szablonu dialogu: {error}", + "No tags selected for deletion." : "Nie zaznaczono tagów do usunięcia.", "The update was successful. Redirecting you to Nextcloud now." : "Aktualizacja przebiegła pomyślnie. Trwa przekierowywanie do Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Witaj,\n\ntylko informuję, że %s współdzieli z Tobą %s.\nZobacz tutaj: %s\n\n", "The share will expire on %s." : "Ten zasób wygaśnie %s", diff --git a/core/l10n/pl.json b/core/l10n/pl.json index 95589c8997b..069d335940c 100644 --- a/core/l10n/pl.json +++ b/core/l10n/pl.json @@ -116,9 +116,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Dostęp do tej strony jest za pośrednictwem protokołu HTTP. Zalecamy skonfigurowanie dostępu do serwera za pomocą protokołu HTTPS zamiast HTTP, jak to opisano w naszych <a href=\"{docUrl}\">wskazówkach bezpieczeństwa</a>.", "Shared" : "Udostępniono", "Shared with {recipients}" : "Współdzielony z {recipients}", - "Error" : "Błąd", - "Error while sharing" : "Błąd podczas udostępniania", - "Error while unsharing" : "Błąd podczas zatrzymywania udostepniania", "Error setting expiration date" : "Błąd podczas ustawiania daty wygaśnięcia", "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", "Set expiration date" : "Ustaw datę wygaśnięcia", @@ -136,11 +133,12 @@ "Share link" : "Udostępnij link", "Link" : "Odnośnik", "Password protect" : "Zabezpiecz hasłem", - "Allow upload and editing" : "Pozwól na przesyłanie i edycję", "Allow editing" : "Pozwól na edycję", - "upload only" : "tylko wysyłanie", "Email link to person" : "Wyślij osobie odnośnik poprzez e-mail", "Send" : "Wyślij", + "Allow upload and editing" : "Pozwól na przesyłanie i edycję", + "Read only" : "Tylko do odczytu", + "Secure drop (upload only)" : "Bezpieczny zrzut (tylko wysyłanie)", "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}", "Choose a password for the mail share" : "Wybierz hasło do współdzielenia e-mailem", @@ -155,9 +153,9 @@ "Can create" : "Może tworzyć", "Can change" : "Może zmieniać", "Can delete" : "Może usuwać", - "Secure drop (upload only)" : "Bezpieczny zrzut (tylko wysyłanie)", "Access control" : "Kontrola dostępu", "Could not unshare" : "Nie udało się usunąć udostępnienia", + "Error while sharing" : "Błąd podczas udostępniania", "Share details could not be loaded for this item." : "Szczegóły udziału nie mogły zostać wczytane dla tego obiektu.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Do automatycznego uzupełnienia potrzebny jest co najmniej {count} znak","Do automatycznego uzupełnienia potrzebnych jest co najmniej {count} znaków","Do automatycznego uzupełnienia potrzebnych jest co najmniej {count} znaków","Do automatycznego uzupełnienia potrzebnych jest co najmniej {count} znaków"], "This list is maybe truncated - please refine your search term to see more results." : "Ta lista może być obcięta - proszę bardziej określić fraze wyszukiwania, aby zobaczyć więcej wyników.", @@ -176,6 +174,7 @@ "Name or federated cloud ID..." : "Nazwa lub ID chmury stowarzyszonej...", "Name, federated cloud ID or email address..." : "Nazwa, ID chmury stowarzyszonej lub adres e-mail...", "Name..." : "Nazwa...", + "Error" : "Błąd", "Error removing share" : "Błąd podczas usuwania współdzielenia", "Non-existing tag #{tag}" : "Znacznik #{tag} nie istnieje", "restricted" : "ograniczone", @@ -185,12 +184,6 @@ "Rename" : "Zmień nazwę", "Collaborative tags" : "Wspólne tagi", "No tags found" : "Nie znaleziono etykiet", - "The object type is not specified." : "Nie określono typu obiektu.", - "Enter new" : "Wpisz nowy", - "Add" : "Dodaj", - "Edit tags" : "Edytuj tagi", - "Error loading dialog template: {error}" : "Błąd podczas ładowania szablonu dialogu: {error}", - "No tags selected for deletion." : "Nie zaznaczono tagów do usunięcia.", "unknown text" : "nieznany tekst", "Hello world!" : "Witaj świecie!", "sunny" : "słoneczna", @@ -311,6 +304,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Twoje pliki są zaszyfrowane. Jeśli nie włączyłeś klucza odzyskiwania, nie będzie możliwości odszyfrowania tych plików po zresetowaniu hasła.<br>Jeśli nie jesteś pewien co zrobić, skontaktuj się ze swoim administratorem, zanim bedziesz kontynuował. <br/> Czy chcesz kontynuować?\n ", "Ok" : "OK", "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." : "Twój katalog z danymi i twoje pliki są prawdopodobnie dostępne przez Internet. Plik .htaccess nie działa. Silnie rekomendujemy, żebyś skonfigurował serwer webowy, żeby katalog z danymi nie był dalej dostępny lub przenieś katalog z danymi poza katalog \"document root\" serwera web.", + "Error while unsharing" : "Błąd podczas zatrzymywania udostepniania", "File drop (upload only)" : "Tylko przesyłanie", "can reshare" : "mogą udostępniać dalej", "can edit" : "może edytować", @@ -327,6 +321,12 @@ "Share with users, groups or remote users..." : "Współdziel z użytkownikami, grupami lub zdalnymi użytkownikami...", "Share with users, groups, remote users or by mail..." : "Współdziel z użytkownikami, grupami, zdalnymi użytkownikami lub poprzez mail...", "Share with users..." : "Współdziel z użytkownikami...", + "The object type is not specified." : "Nie określono typu obiektu.", + "Enter new" : "Wpisz nowy", + "Add" : "Dodaj", + "Edit tags" : "Edytuj tagi", + "Error loading dialog template: {error}" : "Błąd podczas ładowania szablonu dialogu: {error}", + "No tags selected for deletion." : "Nie zaznaczono tagów do usunięcia.", "The update was successful. Redirecting you to Nextcloud now." : "Aktualizacja przebiegła pomyślnie. Trwa przekierowywanie do Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Witaj,\n\ntylko informuję, że %s współdzieli z Tobą %s.\nZobacz tutaj: %s\n\n", "The share will expire on %s." : "Ten zasób wygaśnie %s", diff --git a/core/l10n/pt_BR.js b/core/l10n/pt_BR.js index dc6e0f5bd27..f099c5a82c7 100644 --- a/core/l10n/pt_BR.js +++ b/core/l10n/pt_BR.js @@ -18,14 +18,14 @@ OC.L10N.register( "Auth flow can only be started unauthenticated." : "O fluxo de autenticação só pode ser iniciado como não autenticado.", "Couldn't reset password because the token is invalid" : "Não foi possível redefinir a senha porque o token é inválido", "Couldn't reset password because the token is expired" : "Não foi possível redefinir a senha porque o token expirou", - "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Não foi possível enviar email de redefinição porque não há nenhum endereço de email para este nome de usuário. Entre em contato com o administrador.", + "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Não foi possível enviar e-mail de redefinição porque não há nenhum endereço de e-mail para este nome de usuário. Entre em contato com o administrador.", "Password reset" : "Redefinir a senha", - "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Clique no botão abaixo para redefinir sua senha. Se você não solicitou isso, ignore este email.", - "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Clique no link abaixo para redefinir sua senha. Se você não solicitou isso, ignore este email.", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Clique no botão abaixo para redefinir sua senha. Se você não solicitou isso, ignore este e-mail.", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Clique no link abaixo para redefinir sua senha. Se você não solicitou isso, ignore este e-mail.", "Reset your password" : "Redefinir sua senha", "%s password reset" : "%s redefinir senha", - "Couldn't send reset email. Please contact your administrator." : "Não foi possível enviar o email de redefinição. Por favor, contate o administrador.", - "Couldn't send reset email. Please make sure your username is correct." : "Não foi possível enviar o email de redefinição. Verifique se o seu nome de usuário está correto.", + "Couldn't send reset email. Please contact your administrator." : "Não foi possível enviar o e-mail de redefinição. Por favor, contate o administrador.", + "Couldn't send reset email. Please make sure your username is correct." : "Não foi possível enviar o e-mail de redefinição. Verifique se o seu nome de usuário está correto.", "Preparing update" : "Preparando a atualização", "[%d / %d]: %s" : "[%d / %d]: %s", "Repair warning: " : "Aviso da reparação:", @@ -72,7 +72,7 @@ OC.L10N.register( "Failed to authenticate, try again" : "Falha na autenticação, tente novamente", "seconds ago" : "segundos atrás", "Logging in …" : "Entrando...", - "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "O link para redefinir sua senha foi enviado para seu email. Se você não recebê-lo dentro de um período razoável de tempo, verifique suas pastas de spam/lixo.<br> Se ele não estiver lá, pergunte ao administrador local.", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "O link para redefinir sua senha foi enviado para seu e-mail. Se você não recebê-lo dentro de um período razoável de tempo, verifique suas pastas de spam/lixo.<br> Se ele não estiver lá, pergunte ao administrador local.", "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Seus arquivos são criptografados. Não existe nenhuma maneira de ter seus dados de volta depois que sua senha seja redefinida.<br /> Se você não tem certeza do que fazer, por favor contate seu administrador antes de continuar.<br />Você realmente deseja continuar?", "I know what I'm doing" : "Eu sei o que estou fazendo", "Password can not be changed. Please contact your administrator." : "A senha não pôde ser alterada. Por favor, contate o administrador.", @@ -102,11 +102,11 @@ OC.L10N.register( "Strong password" : "Senha forte", "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Seu servidor web ainda não está configurado corretamente para permitir a sincronização de arquivos, pois a interface WebDAV parece ser desconfigurada.", "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Seu servidor web não está configurado corretamente para resolver \"{url}\". Mais informação pode ser encontrada na nossa <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentação</a>.", - "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Este servidor não tem nenhuma conexão com a Internet: Várias terminações finais podem não ser encontradas. Isso significa que alguns dos recursos como montagem de armazenamento externo, notificações sobre atualizações ou instalação de aplicativos de terceiros podem não funcionar. Acesso a arquivos remotos e envio de emails de notificação podem não funcionar também. Sugerimos habilitar a conexão com a Internet para este servidor, se você quer ter todas as funcionalidades.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Este servidor não tem nenhuma conexão com a Internet: Várias terminações finais podem não ser encontradas. Isso significa que alguns dos recursos como montagem de armazenamento externo, notificações sobre atualizações ou instalação de aplicativos de terceiros podem não funcionar. Acesso a arquivos remotos e envio de e-mails de notificação podem não funcionar também. Sugerimos habilitar a conexão com a Internet para este servidor, se você quer ter todas as funcionalidades.", "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Nenhum cache de memória foi configurado. Para melhorar o desempenho, por favor configure um memcached se disponível. Mais informação pode ser encontrada na nossa <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentação</a>.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "/dev/urandom não pode ser lido pelo PHP e é altamente desencorajado por razões de segurança. Mais informação pode ser encontrada na nossa <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentação</a>.", "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "Você está atualmente executando PHP {version}. Nós o incentivamos a atualizar sua versão do PHP para aproveitar as<a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">atualizações de segurança e desempenho proporcionados pelo Grupo PHP</a> assim que sua distribuição suportar.", - "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "O cabeçalho do proxy reverso está incorreto, ou você está acessando a partir de um proxy confiável. Se voce não está usando um proxy confiável, há uma falha de segurança que pode permitir um ataque. Mais informação pode ser encontrada na nossa <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentação</a>.", + "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "O cabeçalho do proxy reverso está incorreto, ou você está acessando a partir de um proxy confiável. Se você não está usando um proxy confiável, há uma falha de segurança que pode permitir um ataque. Mais informação pode ser encontrada na nossa <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentação</a>.", "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached está configurado como cache distribuído, mas o módulo PHP errado \"memcache\" está instalado. \\OC\\Memcache\\Memcached suporta apenas \"memcached\" e não \"memcache\". Veja a <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">wiki memcached sobre ambos os módulos </a>.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Alguns arquivos não passaram na verificação de integridade. Mais informações sobre como resolver este problema pode ser encontrado em nossa <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentação</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">Lista de arquivos inválidos…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)", "The PHP Opcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend ↗</a> to use following settings in the <code>php.ini</code>:" : "O Opcache do PHP não está configurado corretamente. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Para um melhor desempenho recomendamos ↗</a> usar as seguintes configurações no <code>php.ini</code>:", @@ -118,9 +118,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Você está acessando este site via HTTP. Sugerimos fortemente que você configure o servidor para exigir o uso de HTTPS como descrito em nossas <a href=\"{docUrl}\">dicas de segurança</a>.", "Shared" : "Compartilhado", "Shared with {recipients}" : "Compartilhado com {recipients}", - "Error" : "Erro", - "Error while sharing" : "Erro ao compartilhar", - "Error while unsharing" : "Erro ao descompartilhar", "Error setting expiration date" : "Erro ao definir data de expiração", "The public link will expire no later than {days} days after it is created" : "O link público irá expirar não antes de {days} depois de criado", "Set expiration date" : "Definir data de expiração", @@ -138,18 +135,19 @@ OC.L10N.register( "Share link" : "Compartilhar link", "Link" : "Link", "Password protect" : "Proteger com senha", - "Allow upload and editing" : "Permitir envio e edição", "Allow editing" : "Permitir edição", - "upload only" : "somente envio", - "Email link to person" : "Enviar link por email", + "Email link to person" : "Enviar link por e-mail", "Send" : "Enviar", + "Allow upload and editing" : "Permitir envio e edição", + "Read only" : "Somente leitura", + "Secure drop (upload only)" : "Drop seguro (apenas envio)", "Shared with you and the group {group} by {owner}" : "Compartilhado com você e com o grupo {group} por {owner}", "Shared with you by {owner}" : "Compartilhado com você por {owner}", - "Choose a password for the mail share" : "Escolha uma senha para o compartilhamento de email", + "Choose a password for the mail share" : "Escolha uma senha para o compartilhamento de e-mail", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatiorDisplayName}} compartilhou via link", "group" : "grupo", "remote" : "remoto", - "email" : "email", + "email" : "e-mail", "shared by {sharer}" : "compartilhado por {sharer}", "Unshare" : "Descompartilhar", "Can reshare" : "Pode compartilhar novamente", @@ -157,9 +155,9 @@ OC.L10N.register( "Can create" : "Pode criar", "Can change" : "Pode modificar", "Can delete" : "Pode excluir", - "Secure drop (upload only)" : "Drop seguro (apenas envio)", "Access control" : "Controle de acesso", "Could not unshare" : "Não foi possível descompartilhar", + "Error while sharing" : "Erro ao compartilhar", "Share details could not be loaded for this item." : "Detalhes de compartilhamento não puderam ser carregados para este item.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Pelo menos {count} caractere é necessário para completar automaticamente","Pelo menos {count} caracteres são necessários para completar automaticamente"], "This list is maybe truncated - please refine your search term to see more results." : "Esta lista pode estar truncada - por favor refina seus termos de pesquisa para ver mais resultados", @@ -171,13 +169,14 @@ OC.L10N.register( "{sharee} (email)" : "{sharee} (email)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Compartilhar", - "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Compartilhe com outras pessoas entrando um usuário, grupo, ID de cloud federada ou um email.", + "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Compartilhe com outras pessoas entrando um usuário, grupo, ID de cloud federada ou um e-mail.", "Share with other people by entering a user or group or a federated cloud ID." : "Compartilhe com outras pessoas entrando um usuário, grupo ou ID de cloud federada.", - "Share with other people by entering a user or group or an email address." : "Compartilhe com outras pessoas entrando um usuário, grupo ou um email.", - "Name or email address..." : "Nome ou email...", + "Share with other people by entering a user or group or an email address." : "Compartilhe com outras pessoas entrando um usuário, grupo ou um e-mail.", + "Name or email address..." : "Nome ou e-mail...", "Name or federated cloud ID..." : "Nome ou ID de cloud federada...", - "Name, federated cloud ID or email address..." : "Nome, ID de cloud federada ou email...", + "Name, federated cloud ID or email address..." : "Nome, ID de cloud federada ou e-mail...", "Name..." : "Nome...", + "Error" : "Erro", "Error removing share" : "Erro na exclusão do compartilhamento", "Non-existing tag #{tag}" : "Etiqueta inexistente #{tag}", "restricted" : "restrito", @@ -187,12 +186,6 @@ OC.L10N.register( "Rename" : "Renomear", "Collaborative tags" : "Etiquetas colaborativas", "No tags found" : "Nenhuma etiqueta encontrada", - "The object type is not specified." : "O tipo de objeto não foi especificado.", - "Enter new" : "Entre nova", - "Add" : "Adicionar", - "Edit tags" : "Editar etiqueta", - "Error loading dialog template: {error}" : "Erro carregando o modelo de diálogo: {error}", - "No tags selected for deletion." : "Nenhuma etiqueta selecionada para exclusão.", "unknown text" : "texto desconhecido", "Hello world!" : "Olá mundo!", "sunny" : "ensolarado", @@ -253,7 +246,7 @@ OC.L10N.register( "Please specify the port number along with the host name (e.g., localhost:5432)." : "Por favor especifique o nome do host e o número de porta (ex., localhost:5432).", "Performance warning" : "Alerta de performance", "SQLite will be used as database." : "SQLite será usado como banco de dados", - "For larger installations we recommend to choose a different database backend." : "Para instalações maiores é recomendável escolher um backend de banco de dados diferente.", + "For larger installations we recommend to choose a different database backend." : "Para instalações maiores é recomendável escolher uma plataforma de serviço de banco de dados diferente.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "O uso de SQLite é desencorajado especialmente quando se utiliza o cliente de desktop para sincronização de arquivos.", "Finish setup" : "Concluir configuração", "Finishing …" : "Finalizando...", @@ -268,7 +261,7 @@ OC.L10N.register( "Please contact your administrator." : "Por favor, contacte o administrador.", "An internal error occurred." : "Ocorreu um erro interno.", "Please try again or contact your administrator." : "Por favor tente novamente ou contacte o administrador.", - "Username or email" : "Nome de usuário ou email", + "Username or email" : "Nome de usuário ou e-mail", "Wrong password. Reset it?" : "Senha incorreta. Redefini-la?", "Wrong password." : "Senha errada", "Log in" : "Entrar", @@ -313,6 +306,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Seus arquivos estão criptografados. Se você não ativou a chave de recuperação, não haverá maneira de obter seus dados de volta após a sua senha ser redefinida.<br/>Se não tiver certeza do que deve fazer, contate o administrador antes de continuar. <br/>Deseja realmente continuar?", "Ok" : "Ok", "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." : "O seu diretório de dados e os arquivos provavelmente estão acessíveis a partir da Internet. O arquivo .htaccess não está funcionando. Sugerimos que você configure o servidor web de maneira que o diretório de dados não seja acessível ou mova o diretório de dados para fora do diretório raiz de documentos do servidor web.", + "Error while unsharing" : "Erro ao descompartilhar", "File drop (upload only)" : "Zona de arquivos (somente upload)", "can reshare" : "pode recompartilhar", "can edit" : "pode editar", @@ -321,14 +315,20 @@ OC.L10N.register( "can delete" : "pode excluir", "access control" : "controle de acesso", "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Compartilhe com pessoas de outros servidores usando o ID de nuvem federada username@example.com/nextcloud", - "Share with users or by mail..." : "Compartilhe com usuários internos ou email...", + "Share with users or by mail..." : "Compartilhe com usuários internos ou e-mail...", "Share with users or remote users..." : "Compartilhe com usuários internos ou remotos...", - "Share with users, remote users or by mail..." : "Compartilhe com usuários internos, remotos ou email...", + "Share with users, remote users or by mail..." : "Compartilhe com usuários internos, remotos ou e-mail...", "Share with users or groups..." : "Compartilhe com usuários internos ou grupos...", - "Share with users, groups or by mail..." : "Compartilhe com usuários internos, grupos ou email...", + "Share with users, groups or by mail..." : "Compartilhe com usuários internos, grupos ou e-mail...", "Share with users, groups or remote users..." : "Compartilhe com usuários internos, remotos ou grupos...", - "Share with users, groups, remote users or by mail..." : "Compartilhe com usuários internos, remotos, grupos ou email...", + "Share with users, groups, remote users or by mail..." : "Compartilhe com usuários internos, remotos, grupos ou e-mail...", "Share with users..." : "Compartilhe com usuários internos...", + "The object type is not specified." : "O tipo de objeto não foi especificado.", + "Enter new" : "Entre nova", + "Add" : "Adicionar", + "Edit tags" : "Editar etiqueta", + "Error loading dialog template: {error}" : "Erro carregando o modelo de diálogo: {error}", + "No tags selected for deletion." : "Nenhuma etiqueta selecionada para exclusão.", "The update was successful. Redirecting you to Nextcloud now." : "A atualização terminou com sucesso. Redirecionando para Nextcloud agora.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Olá,\n\napenas para avisar que %s compartilhou %s com você.\nVeja isto: %s\n\n", "The share will expire on %s." : "O compartilhamento irá expirar em %s.", diff --git a/core/l10n/pt_BR.json b/core/l10n/pt_BR.json index 3e12d124d0f..d981f5c5ebe 100644 --- a/core/l10n/pt_BR.json +++ b/core/l10n/pt_BR.json @@ -16,14 +16,14 @@ "Auth flow can only be started unauthenticated." : "O fluxo de autenticação só pode ser iniciado como não autenticado.", "Couldn't reset password because the token is invalid" : "Não foi possível redefinir a senha porque o token é inválido", "Couldn't reset password because the token is expired" : "Não foi possível redefinir a senha porque o token expirou", - "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Não foi possível enviar email de redefinição porque não há nenhum endereço de email para este nome de usuário. Entre em contato com o administrador.", + "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Não foi possível enviar e-mail de redefinição porque não há nenhum endereço de e-mail para este nome de usuário. Entre em contato com o administrador.", "Password reset" : "Redefinir a senha", - "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Clique no botão abaixo para redefinir sua senha. Se você não solicitou isso, ignore este email.", - "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Clique no link abaixo para redefinir sua senha. Se você não solicitou isso, ignore este email.", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Clique no botão abaixo para redefinir sua senha. Se você não solicitou isso, ignore este e-mail.", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Clique no link abaixo para redefinir sua senha. Se você não solicitou isso, ignore este e-mail.", "Reset your password" : "Redefinir sua senha", "%s password reset" : "%s redefinir senha", - "Couldn't send reset email. Please contact your administrator." : "Não foi possível enviar o email de redefinição. Por favor, contate o administrador.", - "Couldn't send reset email. Please make sure your username is correct." : "Não foi possível enviar o email de redefinição. Verifique se o seu nome de usuário está correto.", + "Couldn't send reset email. Please contact your administrator." : "Não foi possível enviar o e-mail de redefinição. Por favor, contate o administrador.", + "Couldn't send reset email. Please make sure your username is correct." : "Não foi possível enviar o e-mail de redefinição. Verifique se o seu nome de usuário está correto.", "Preparing update" : "Preparando a atualização", "[%d / %d]: %s" : "[%d / %d]: %s", "Repair warning: " : "Aviso da reparação:", @@ -70,7 +70,7 @@ "Failed to authenticate, try again" : "Falha na autenticação, tente novamente", "seconds ago" : "segundos atrás", "Logging in …" : "Entrando...", - "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "O link para redefinir sua senha foi enviado para seu email. Se você não recebê-lo dentro de um período razoável de tempo, verifique suas pastas de spam/lixo.<br> Se ele não estiver lá, pergunte ao administrador local.", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "O link para redefinir sua senha foi enviado para seu e-mail. Se você não recebê-lo dentro de um período razoável de tempo, verifique suas pastas de spam/lixo.<br> Se ele não estiver lá, pergunte ao administrador local.", "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Seus arquivos são criptografados. Não existe nenhuma maneira de ter seus dados de volta depois que sua senha seja redefinida.<br /> Se você não tem certeza do que fazer, por favor contate seu administrador antes de continuar.<br />Você realmente deseja continuar?", "I know what I'm doing" : "Eu sei o que estou fazendo", "Password can not be changed. Please contact your administrator." : "A senha não pôde ser alterada. Por favor, contate o administrador.", @@ -100,11 +100,11 @@ "Strong password" : "Senha forte", "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Seu servidor web ainda não está configurado corretamente para permitir a sincronização de arquivos, pois a interface WebDAV parece ser desconfigurada.", "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Seu servidor web não está configurado corretamente para resolver \"{url}\". Mais informação pode ser encontrada na nossa <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentação</a>.", - "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Este servidor não tem nenhuma conexão com a Internet: Várias terminações finais podem não ser encontradas. Isso significa que alguns dos recursos como montagem de armazenamento externo, notificações sobre atualizações ou instalação de aplicativos de terceiros podem não funcionar. Acesso a arquivos remotos e envio de emails de notificação podem não funcionar também. Sugerimos habilitar a conexão com a Internet para este servidor, se você quer ter todas as funcionalidades.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Este servidor não tem nenhuma conexão com a Internet: Várias terminações finais podem não ser encontradas. Isso significa que alguns dos recursos como montagem de armazenamento externo, notificações sobre atualizações ou instalação de aplicativos de terceiros podem não funcionar. Acesso a arquivos remotos e envio de e-mails de notificação podem não funcionar também. Sugerimos habilitar a conexão com a Internet para este servidor, se você quer ter todas as funcionalidades.", "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Nenhum cache de memória foi configurado. Para melhorar o desempenho, por favor configure um memcached se disponível. Mais informação pode ser encontrada na nossa <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentação</a>.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "/dev/urandom não pode ser lido pelo PHP e é altamente desencorajado por razões de segurança. Mais informação pode ser encontrada na nossa <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentação</a>.", "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "Você está atualmente executando PHP {version}. Nós o incentivamos a atualizar sua versão do PHP para aproveitar as<a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">atualizações de segurança e desempenho proporcionados pelo Grupo PHP</a> assim que sua distribuição suportar.", - "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "O cabeçalho do proxy reverso está incorreto, ou você está acessando a partir de um proxy confiável. Se voce não está usando um proxy confiável, há uma falha de segurança que pode permitir um ataque. Mais informação pode ser encontrada na nossa <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentação</a>.", + "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "O cabeçalho do proxy reverso está incorreto, ou você está acessando a partir de um proxy confiável. Se você não está usando um proxy confiável, há uma falha de segurança que pode permitir um ataque. Mais informação pode ser encontrada na nossa <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentação</a>.", "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached está configurado como cache distribuído, mas o módulo PHP errado \"memcache\" está instalado. \\OC\\Memcache\\Memcached suporta apenas \"memcached\" e não \"memcache\". Veja a <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">wiki memcached sobre ambos os módulos </a>.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Alguns arquivos não passaram na verificação de integridade. Mais informações sobre como resolver este problema pode ser encontrado em nossa <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentação</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">Lista de arquivos inválidos…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)", "The PHP Opcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend ↗</a> to use following settings in the <code>php.ini</code>:" : "O Opcache do PHP não está configurado corretamente. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Para um melhor desempenho recomendamos ↗</a> usar as seguintes configurações no <code>php.ini</code>:", @@ -116,9 +116,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Você está acessando este site via HTTP. Sugerimos fortemente que você configure o servidor para exigir o uso de HTTPS como descrito em nossas <a href=\"{docUrl}\">dicas de segurança</a>.", "Shared" : "Compartilhado", "Shared with {recipients}" : "Compartilhado com {recipients}", - "Error" : "Erro", - "Error while sharing" : "Erro ao compartilhar", - "Error while unsharing" : "Erro ao descompartilhar", "Error setting expiration date" : "Erro ao definir data de expiração", "The public link will expire no later than {days} days after it is created" : "O link público irá expirar não antes de {days} depois de criado", "Set expiration date" : "Definir data de expiração", @@ -136,18 +133,19 @@ "Share link" : "Compartilhar link", "Link" : "Link", "Password protect" : "Proteger com senha", - "Allow upload and editing" : "Permitir envio e edição", "Allow editing" : "Permitir edição", - "upload only" : "somente envio", - "Email link to person" : "Enviar link por email", + "Email link to person" : "Enviar link por e-mail", "Send" : "Enviar", + "Allow upload and editing" : "Permitir envio e edição", + "Read only" : "Somente leitura", + "Secure drop (upload only)" : "Drop seguro (apenas envio)", "Shared with you and the group {group} by {owner}" : "Compartilhado com você e com o grupo {group} por {owner}", "Shared with you by {owner}" : "Compartilhado com você por {owner}", - "Choose a password for the mail share" : "Escolha uma senha para o compartilhamento de email", + "Choose a password for the mail share" : "Escolha uma senha para o compartilhamento de e-mail", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatiorDisplayName}} compartilhou via link", "group" : "grupo", "remote" : "remoto", - "email" : "email", + "email" : "e-mail", "shared by {sharer}" : "compartilhado por {sharer}", "Unshare" : "Descompartilhar", "Can reshare" : "Pode compartilhar novamente", @@ -155,9 +153,9 @@ "Can create" : "Pode criar", "Can change" : "Pode modificar", "Can delete" : "Pode excluir", - "Secure drop (upload only)" : "Drop seguro (apenas envio)", "Access control" : "Controle de acesso", "Could not unshare" : "Não foi possível descompartilhar", + "Error while sharing" : "Erro ao compartilhar", "Share details could not be loaded for this item." : "Detalhes de compartilhamento não puderam ser carregados para este item.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Pelo menos {count} caractere é necessário para completar automaticamente","Pelo menos {count} caracteres são necessários para completar automaticamente"], "This list is maybe truncated - please refine your search term to see more results." : "Esta lista pode estar truncada - por favor refina seus termos de pesquisa para ver mais resultados", @@ -169,13 +167,14 @@ "{sharee} (email)" : "{sharee} (email)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Compartilhar", - "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Compartilhe com outras pessoas entrando um usuário, grupo, ID de cloud federada ou um email.", + "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Compartilhe com outras pessoas entrando um usuário, grupo, ID de cloud federada ou um e-mail.", "Share with other people by entering a user or group or a federated cloud ID." : "Compartilhe com outras pessoas entrando um usuário, grupo ou ID de cloud federada.", - "Share with other people by entering a user or group or an email address." : "Compartilhe com outras pessoas entrando um usuário, grupo ou um email.", - "Name or email address..." : "Nome ou email...", + "Share with other people by entering a user or group or an email address." : "Compartilhe com outras pessoas entrando um usuário, grupo ou um e-mail.", + "Name or email address..." : "Nome ou e-mail...", "Name or federated cloud ID..." : "Nome ou ID de cloud federada...", - "Name, federated cloud ID or email address..." : "Nome, ID de cloud federada ou email...", + "Name, federated cloud ID or email address..." : "Nome, ID de cloud federada ou e-mail...", "Name..." : "Nome...", + "Error" : "Erro", "Error removing share" : "Erro na exclusão do compartilhamento", "Non-existing tag #{tag}" : "Etiqueta inexistente #{tag}", "restricted" : "restrito", @@ -185,12 +184,6 @@ "Rename" : "Renomear", "Collaborative tags" : "Etiquetas colaborativas", "No tags found" : "Nenhuma etiqueta encontrada", - "The object type is not specified." : "O tipo de objeto não foi especificado.", - "Enter new" : "Entre nova", - "Add" : "Adicionar", - "Edit tags" : "Editar etiqueta", - "Error loading dialog template: {error}" : "Erro carregando o modelo de diálogo: {error}", - "No tags selected for deletion." : "Nenhuma etiqueta selecionada para exclusão.", "unknown text" : "texto desconhecido", "Hello world!" : "Olá mundo!", "sunny" : "ensolarado", @@ -251,7 +244,7 @@ "Please specify the port number along with the host name (e.g., localhost:5432)." : "Por favor especifique o nome do host e o número de porta (ex., localhost:5432).", "Performance warning" : "Alerta de performance", "SQLite will be used as database." : "SQLite será usado como banco de dados", - "For larger installations we recommend to choose a different database backend." : "Para instalações maiores é recomendável escolher um backend de banco de dados diferente.", + "For larger installations we recommend to choose a different database backend." : "Para instalações maiores é recomendável escolher uma plataforma de serviço de banco de dados diferente.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "O uso de SQLite é desencorajado especialmente quando se utiliza o cliente de desktop para sincronização de arquivos.", "Finish setup" : "Concluir configuração", "Finishing …" : "Finalizando...", @@ -266,7 +259,7 @@ "Please contact your administrator." : "Por favor, contacte o administrador.", "An internal error occurred." : "Ocorreu um erro interno.", "Please try again or contact your administrator." : "Por favor tente novamente ou contacte o administrador.", - "Username or email" : "Nome de usuário ou email", + "Username or email" : "Nome de usuário ou e-mail", "Wrong password. Reset it?" : "Senha incorreta. Redefini-la?", "Wrong password." : "Senha errada", "Log in" : "Entrar", @@ -311,6 +304,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Seus arquivos estão criptografados. Se você não ativou a chave de recuperação, não haverá maneira de obter seus dados de volta após a sua senha ser redefinida.<br/>Se não tiver certeza do que deve fazer, contate o administrador antes de continuar. <br/>Deseja realmente continuar?", "Ok" : "Ok", "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." : "O seu diretório de dados e os arquivos provavelmente estão acessíveis a partir da Internet. O arquivo .htaccess não está funcionando. Sugerimos que você configure o servidor web de maneira que o diretório de dados não seja acessível ou mova o diretório de dados para fora do diretório raiz de documentos do servidor web.", + "Error while unsharing" : "Erro ao descompartilhar", "File drop (upload only)" : "Zona de arquivos (somente upload)", "can reshare" : "pode recompartilhar", "can edit" : "pode editar", @@ -319,14 +313,20 @@ "can delete" : "pode excluir", "access control" : "controle de acesso", "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Compartilhe com pessoas de outros servidores usando o ID de nuvem federada username@example.com/nextcloud", - "Share with users or by mail..." : "Compartilhe com usuários internos ou email...", + "Share with users or by mail..." : "Compartilhe com usuários internos ou e-mail...", "Share with users or remote users..." : "Compartilhe com usuários internos ou remotos...", - "Share with users, remote users or by mail..." : "Compartilhe com usuários internos, remotos ou email...", + "Share with users, remote users or by mail..." : "Compartilhe com usuários internos, remotos ou e-mail...", "Share with users or groups..." : "Compartilhe com usuários internos ou grupos...", - "Share with users, groups or by mail..." : "Compartilhe com usuários internos, grupos ou email...", + "Share with users, groups or by mail..." : "Compartilhe com usuários internos, grupos ou e-mail...", "Share with users, groups or remote users..." : "Compartilhe com usuários internos, remotos ou grupos...", - "Share with users, groups, remote users or by mail..." : "Compartilhe com usuários internos, remotos, grupos ou email...", + "Share with users, groups, remote users or by mail..." : "Compartilhe com usuários internos, remotos, grupos ou e-mail...", "Share with users..." : "Compartilhe com usuários internos...", + "The object type is not specified." : "O tipo de objeto não foi especificado.", + "Enter new" : "Entre nova", + "Add" : "Adicionar", + "Edit tags" : "Editar etiqueta", + "Error loading dialog template: {error}" : "Erro carregando o modelo de diálogo: {error}", + "No tags selected for deletion." : "Nenhuma etiqueta selecionada para exclusão.", "The update was successful. Redirecting you to Nextcloud now." : "A atualização terminou com sucesso. Redirecionando para Nextcloud agora.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Olá,\n\napenas para avisar que %s compartilhou %s com você.\nVeja isto: %s\n\n", "The share will expire on %s." : "O compartilhamento irá expirar em %s.", diff --git a/core/l10n/pt_PT.js b/core/l10n/pt_PT.js index 1ce65d9a179..ce8531522c5 100644 --- a/core/l10n/pt_PT.js +++ b/core/l10n/pt_PT.js @@ -103,9 +103,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Está a aceder a este site via HTTP. Nós recomendamos vivamente que configure o seu servidor para requerer a utilização de HTTPS, em vez do que está descrito nas nossas <a href=\"{docUrl}\">dicas de segurança</a>.", "Shared" : "Partilhado", "Shared with {recipients}" : "Partilhado com {recipients}", - "Error" : "Erro", - "Error while sharing" : "Erro ao partilhar", - "Error while unsharing" : "Erro ao remover a partilha", "Error setting expiration date" : "Erro ao definir a data de expiração", "The public link will expire no later than {days} days after it is created" : "A hiperligação pública irá expirar, o mais tardar {days} dias depois da sua criação", "Set expiration date" : "Definir a data de expiração", @@ -122,11 +119,11 @@ OC.L10N.register( "Share link" : "Partilhar hiperligação", "Link" : "Hiperligação", "Password protect" : "Proteger com palavra-passe", - "Allow upload and editing" : "Permitir enviar e editar", "Allow editing" : "Permitir edição", - "upload only" : "envio apenas", "Email link to person" : "Enviar hiperligação por mensagem para a pessoa", "Send" : "Enviar", + "Allow upload and editing" : "Permitir enviar e editar", + "Secure drop (upload only)" : "Arrastar seguro (apenas envio)", "Shared with you and the group {group} by {owner}" : "Partilhado consigo e com o grupo {group} por {owner}", "Shared with you by {owner}" : "Partilhado consigo por {owner}", "Choose a password for the mail share" : "Escolher password para a partilha de email", @@ -140,9 +137,9 @@ OC.L10N.register( "Can create" : "Pode criar", "Can change" : "Pode alterar", "Can delete" : "Pode apagar", - "Secure drop (upload only)" : "Arrastar seguro (apenas envio)", "Access control" : "Controlo de acesso", "Could not unshare" : "Não foi possível cancelar a partilha", + "Error while sharing" : "Erro ao partilhar", "Share details could not be loaded for this item." : "Não foi possível carregar os detalhes de partilha para este item.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Pelo menos {count} caracteres para conclusão automática","At least {count} characters are needed for autocompletion"], "This list is maybe truncated - please refine your search term to see more results." : "Esta lista pode estar talvez truncada - por favor refine o termo de pesquisa para ver mais resultados.", @@ -154,6 +151,7 @@ OC.L10N.register( "{sharee} (email)" : "{sharee} (email)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Partilhar", + "Error" : "Erro", "Error removing share" : "Erro ao remover partilha", "Non-existing tag #{tag}" : "Etiqueta não existente #{tag}", "restricted" : "limitado", @@ -163,12 +161,6 @@ OC.L10N.register( "Rename" : "Renomear", "Collaborative tags" : "Etiquetas colaborativas", "No tags found" : "Etiquetas não encontradas", - "The object type is not specified." : "O tipo de objeto não está especificado.", - "Enter new" : "Introduza novo", - "Add" : "Adicionar", - "Edit tags" : "Editar etiquetas", - "Error loading dialog template: {error}" : "Ocorreu um erro ao carregar o modelo de janela: {error}", - "No tags selected for deletion." : "Não foram selecionadas etiquetas para eliminação.", "unknown text" : "texto desconhecido", "Hello world!" : "Olá, mundo!", "sunny" : "soalheiro", @@ -285,6 +277,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Os seus ficheiros estão encriptados. Se não ativou a chave de recuperação, não terá nenhum modo para voltar obter os seus dados depois de reiniciar a sua senha. <br />Se não tem a certeza do que fazer, por favor, contacte o seu administrador antes de continuar.<br /> Tem a certeza que quer continuar?", "Ok" : "CONFIRMAR", "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." : "A sua pasta com os dados e os seus ficheiros estão provavelmente acessíveis a partir da Internet. O ficheiro .htaccess não está a funcionar correctamente. Sugerimos veementemente que configure o seu servidor web de maneira a que a pasta com os dados deixe de ficar acessível, ou mova a pasta com os dados para fora da raiz de documentos do servidor web.", + "Error while unsharing" : "Erro ao remover a partilha", "File drop (upload only)" : "Arrastar ficheiro (apenas envio)", "can reshare" : "pode voltar a partilhar", "can edit" : "pode editar", @@ -301,6 +294,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Partilhar com utilizadores, grupos ou utilizadores remotos...", "Share with users, groups, remote users or by mail..." : "Partilhar com utilizadores, grupos, utilizadores remotos oupor email...", "Share with users..." : "Partilhar com utilizadores...", + "The object type is not specified." : "O tipo de objeto não está especificado.", + "Enter new" : "Introduza novo", + "Add" : "Adicionar", + "Edit tags" : "Editar etiquetas", + "Error loading dialog template: {error}" : "Ocorreu um erro ao carregar o modelo de janela: {error}", + "No tags selected for deletion." : "Não foram selecionadas etiquetas para eliminação.", "The update was successful. Redirecting you to Nextcloud now." : "A actualização foi bem sucedida. A redireccionar para Nextcloud agora.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Olá,\n\napenas para informar que %s partilhou »%s« consigo.\nConsulte aqui: %s\n", "The share will expire on %s." : "Esta partilha irá expirar em %s.", diff --git a/core/l10n/pt_PT.json b/core/l10n/pt_PT.json index cb06b1b4b39..c1e584d1630 100644 --- a/core/l10n/pt_PT.json +++ b/core/l10n/pt_PT.json @@ -101,9 +101,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Está a aceder a este site via HTTP. Nós recomendamos vivamente que configure o seu servidor para requerer a utilização de HTTPS, em vez do que está descrito nas nossas <a href=\"{docUrl}\">dicas de segurança</a>.", "Shared" : "Partilhado", "Shared with {recipients}" : "Partilhado com {recipients}", - "Error" : "Erro", - "Error while sharing" : "Erro ao partilhar", - "Error while unsharing" : "Erro ao remover a partilha", "Error setting expiration date" : "Erro ao definir a data de expiração", "The public link will expire no later than {days} days after it is created" : "A hiperligação pública irá expirar, o mais tardar {days} dias depois da sua criação", "Set expiration date" : "Definir a data de expiração", @@ -120,11 +117,11 @@ "Share link" : "Partilhar hiperligação", "Link" : "Hiperligação", "Password protect" : "Proteger com palavra-passe", - "Allow upload and editing" : "Permitir enviar e editar", "Allow editing" : "Permitir edição", - "upload only" : "envio apenas", "Email link to person" : "Enviar hiperligação por mensagem para a pessoa", "Send" : "Enviar", + "Allow upload and editing" : "Permitir enviar e editar", + "Secure drop (upload only)" : "Arrastar seguro (apenas envio)", "Shared with you and the group {group} by {owner}" : "Partilhado consigo e com o grupo {group} por {owner}", "Shared with you by {owner}" : "Partilhado consigo por {owner}", "Choose a password for the mail share" : "Escolher password para a partilha de email", @@ -138,9 +135,9 @@ "Can create" : "Pode criar", "Can change" : "Pode alterar", "Can delete" : "Pode apagar", - "Secure drop (upload only)" : "Arrastar seguro (apenas envio)", "Access control" : "Controlo de acesso", "Could not unshare" : "Não foi possível cancelar a partilha", + "Error while sharing" : "Erro ao partilhar", "Share details could not be loaded for this item." : "Não foi possível carregar os detalhes de partilha para este item.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Pelo menos {count} caracteres para conclusão automática","At least {count} characters are needed for autocompletion"], "This list is maybe truncated - please refine your search term to see more results." : "Esta lista pode estar talvez truncada - por favor refine o termo de pesquisa para ver mais resultados.", @@ -152,6 +149,7 @@ "{sharee} (email)" : "{sharee} (email)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Partilhar", + "Error" : "Erro", "Error removing share" : "Erro ao remover partilha", "Non-existing tag #{tag}" : "Etiqueta não existente #{tag}", "restricted" : "limitado", @@ -161,12 +159,6 @@ "Rename" : "Renomear", "Collaborative tags" : "Etiquetas colaborativas", "No tags found" : "Etiquetas não encontradas", - "The object type is not specified." : "O tipo de objeto não está especificado.", - "Enter new" : "Introduza novo", - "Add" : "Adicionar", - "Edit tags" : "Editar etiquetas", - "Error loading dialog template: {error}" : "Ocorreu um erro ao carregar o modelo de janela: {error}", - "No tags selected for deletion." : "Não foram selecionadas etiquetas para eliminação.", "unknown text" : "texto desconhecido", "Hello world!" : "Olá, mundo!", "sunny" : "soalheiro", @@ -283,6 +275,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Os seus ficheiros estão encriptados. Se não ativou a chave de recuperação, não terá nenhum modo para voltar obter os seus dados depois de reiniciar a sua senha. <br />Se não tem a certeza do que fazer, por favor, contacte o seu administrador antes de continuar.<br /> Tem a certeza que quer continuar?", "Ok" : "CONFIRMAR", "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." : "A sua pasta com os dados e os seus ficheiros estão provavelmente acessíveis a partir da Internet. O ficheiro .htaccess não está a funcionar correctamente. Sugerimos veementemente que configure o seu servidor web de maneira a que a pasta com os dados deixe de ficar acessível, ou mova a pasta com os dados para fora da raiz de documentos do servidor web.", + "Error while unsharing" : "Erro ao remover a partilha", "File drop (upload only)" : "Arrastar ficheiro (apenas envio)", "can reshare" : "pode voltar a partilhar", "can edit" : "pode editar", @@ -299,6 +292,12 @@ "Share with users, groups or remote users..." : "Partilhar com utilizadores, grupos ou utilizadores remotos...", "Share with users, groups, remote users or by mail..." : "Partilhar com utilizadores, grupos, utilizadores remotos oupor email...", "Share with users..." : "Partilhar com utilizadores...", + "The object type is not specified." : "O tipo de objeto não está especificado.", + "Enter new" : "Introduza novo", + "Add" : "Adicionar", + "Edit tags" : "Editar etiquetas", + "Error loading dialog template: {error}" : "Ocorreu um erro ao carregar o modelo de janela: {error}", + "No tags selected for deletion." : "Não foram selecionadas etiquetas para eliminação.", "The update was successful. Redirecting you to Nextcloud now." : "A actualização foi bem sucedida. A redireccionar para Nextcloud agora.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Olá,\n\napenas para informar que %s partilhou »%s« consigo.\nConsulte aqui: %s\n", "The share will expire on %s." : "Esta partilha irá expirar em %s.", diff --git a/core/l10n/ro.js b/core/l10n/ro.js index 68a81f1f081..55092a78b35 100644 --- a/core/l10n/ro.js +++ b/core/l10n/ro.js @@ -102,9 +102,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Accesezi acest site prin HTTP. Îți sugerăm cu tărie să configurezi serverul tău să foloseasca HTTPS, așa cum este descris în <a href=\"{docUrl}\" rel=\"noreferrer\">sfaturile de securitate</a>.", "Shared" : "Partajat", "Shared with {recipients}" : "Partajat cu {recipients}", - "Error" : "Eroare", - "Error while sharing" : "Eroare la partajare", - "Error while unsharing" : "Eroare la anularea partajării", "Error setting expiration date" : "Eroare la specificarea datei de expirare", "The public link will expire no later than {days} days after it is created" : "Legătura publică va expira nu mai târziu de {days} zile de la ziua creării", "Set expiration date" : "Specifică data expirării", @@ -120,10 +117,10 @@ OC.L10N.register( "Share link" : "Împărtășește link-ul", "Link" : "Legătură", "Password protect" : "Protejare cu parolă", - "Allow upload and editing" : "Permite încărcarea și editarea", "Allow editing" : "Permite editarea", "Email link to person" : "Expediază legătura prin poșta electronică", "Send" : "Trimite", + "Allow upload and editing" : "Permite încărcarea și editarea", "Shared with you and the group {group} by {owner}" : "Distribuie cu tine si grupul {group} de {owner}", "Shared with you by {owner}" : "Distribuie cu tine de {owner}", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} partajat prin legătura", @@ -132,6 +129,7 @@ OC.L10N.register( "email" : "email", "Unshare" : "Anulare partajare", "Could not unshare" : "Nu s-a putut elimina partajarea", + "Error while sharing" : "Eroare la partajare", "Share details could not be loaded for this item." : "Nu s-au putut încărca detaliile de partajare pentru acest element.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Este necesar cel puțin un caracter pentru autocompletare","Sunt necesare cel puțin {count} caractere pentru autocompletare","Sunt necesare cel puțin {count} caractere pentru autocompletare"], "This list is maybe truncated - please refine your search term to see more results." : "Această listă este probabil trunchiată - te rugăm să revizuiești termenii de căutare pentru a obține mai multe rezultate.", @@ -142,6 +140,7 @@ OC.L10N.register( "{sharee} (remote)" : "{sharee} (distanță)", "{sharee} (email)" : "{sharee} (email)", "Share" : "Partajează", + "Error" : "Eroare", "Error removing share" : "Eroare la înlăturarea elementului partajat", "Non-existing tag #{tag}" : "Etichetă inexistentă #{tag}", "restricted" : "restricționat", @@ -151,12 +150,6 @@ OC.L10N.register( "Rename" : "Redenumește", "Collaborative tags" : "Etichete colaborative", "No tags found" : "Nu au fost găsite etichete", - "The object type is not specified." : "Tipul obiectului nu este specificat.", - "Enter new" : "Introducere nou", - "Add" : "Adaugă", - "Edit tags" : "Editează etichete", - "Error loading dialog template: {error}" : "Eroare la încărcarea șablonului de dialog: {error}", - "No tags selected for deletion." : "Nu au fost selectate etichete pentru ștergere.", "unknown text" : "text necunoscut", "Hello world!" : "Hello world!", "sunny" : "însorit", @@ -269,6 +262,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Fișierele tale sunt criptate. Dacă nu ai activat o cheie de restabilire, e posibil să nu mai poți accesa informațiile tale după o resetare a parolei.<br />Dacă nu ești sigur ce trebuie să faci, contactează administratorul înainte de a continua. <br /> Sigur vrei să continui?", "Ok" : "Ok", "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." : "Directorul de date și fișierele tale sunt probabil accesibile de pe Internet. Fișierul .htaccess nu funcționează. Îți recomandăm cu tărie să configurezi serverul web astfel încât folderul de date să nu mai fie accesibil, sau să muți folderul în afara rădăcinii de documente a serverului web.", + "Error while unsharing" : "Eroare la anularea partajării", "File drop (upload only)" : "Aruncă fișierul (numai încărcare)", "can reshare" : "poate partaja mai departe", "can edit" : "poate edita", @@ -285,6 +279,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Partajează cu alți utilizatori, grupuri sau utilizatori la distanță...", "Share with users, groups, remote users or by mail..." : "Partajează cu alți utilizatori, grupuri, utilizatori la distanță sau prin mail...", "Share with users..." : "Partajează cu alți utilizatori...", + "The object type is not specified." : "Tipul obiectului nu este specificat.", + "Enter new" : "Introducere nou", + "Add" : "Adaugă", + "Edit tags" : "Editează etichete", + "Error loading dialog template: {error}" : "Eroare la încărcarea șablonului de dialog: {error}", + "No tags selected for deletion." : "Nu au fost selectate etichete pentru ștergere.", "The update was successful. Redirecting you to Nextcloud now." : "Actualizarea a reușit. Te redirecționăm acum la Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Salutare,\n\nvrem să te anunțăm că %s a partajat %s cu tine.\nPoți vedea aici: %s\n\n", "The share will expire on %s." : "Partajarea va expira în data de %s.", diff --git a/core/l10n/ro.json b/core/l10n/ro.json index cf98c9dfc2e..c035873c17e 100644 --- a/core/l10n/ro.json +++ b/core/l10n/ro.json @@ -100,9 +100,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Accesezi acest site prin HTTP. Îți sugerăm cu tărie să configurezi serverul tău să foloseasca HTTPS, așa cum este descris în <a href=\"{docUrl}\" rel=\"noreferrer\">sfaturile de securitate</a>.", "Shared" : "Partajat", "Shared with {recipients}" : "Partajat cu {recipients}", - "Error" : "Eroare", - "Error while sharing" : "Eroare la partajare", - "Error while unsharing" : "Eroare la anularea partajării", "Error setting expiration date" : "Eroare la specificarea datei de expirare", "The public link will expire no later than {days} days after it is created" : "Legătura publică va expira nu mai târziu de {days} zile de la ziua creării", "Set expiration date" : "Specifică data expirării", @@ -118,10 +115,10 @@ "Share link" : "Împărtășește link-ul", "Link" : "Legătură", "Password protect" : "Protejare cu parolă", - "Allow upload and editing" : "Permite încărcarea și editarea", "Allow editing" : "Permite editarea", "Email link to person" : "Expediază legătura prin poșta electronică", "Send" : "Trimite", + "Allow upload and editing" : "Permite încărcarea și editarea", "Shared with you and the group {group} by {owner}" : "Distribuie cu tine si grupul {group} de {owner}", "Shared with you by {owner}" : "Distribuie cu tine de {owner}", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} partajat prin legătura", @@ -130,6 +127,7 @@ "email" : "email", "Unshare" : "Anulare partajare", "Could not unshare" : "Nu s-a putut elimina partajarea", + "Error while sharing" : "Eroare la partajare", "Share details could not be loaded for this item." : "Nu s-au putut încărca detaliile de partajare pentru acest element.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Este necesar cel puțin un caracter pentru autocompletare","Sunt necesare cel puțin {count} caractere pentru autocompletare","Sunt necesare cel puțin {count} caractere pentru autocompletare"], "This list is maybe truncated - please refine your search term to see more results." : "Această listă este probabil trunchiată - te rugăm să revizuiești termenii de căutare pentru a obține mai multe rezultate.", @@ -140,6 +138,7 @@ "{sharee} (remote)" : "{sharee} (distanță)", "{sharee} (email)" : "{sharee} (email)", "Share" : "Partajează", + "Error" : "Eroare", "Error removing share" : "Eroare la înlăturarea elementului partajat", "Non-existing tag #{tag}" : "Etichetă inexistentă #{tag}", "restricted" : "restricționat", @@ -149,12 +148,6 @@ "Rename" : "Redenumește", "Collaborative tags" : "Etichete colaborative", "No tags found" : "Nu au fost găsite etichete", - "The object type is not specified." : "Tipul obiectului nu este specificat.", - "Enter new" : "Introducere nou", - "Add" : "Adaugă", - "Edit tags" : "Editează etichete", - "Error loading dialog template: {error}" : "Eroare la încărcarea șablonului de dialog: {error}", - "No tags selected for deletion." : "Nu au fost selectate etichete pentru ștergere.", "unknown text" : "text necunoscut", "Hello world!" : "Hello world!", "sunny" : "însorit", @@ -267,6 +260,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Fișierele tale sunt criptate. Dacă nu ai activat o cheie de restabilire, e posibil să nu mai poți accesa informațiile tale după o resetare a parolei.<br />Dacă nu ești sigur ce trebuie să faci, contactează administratorul înainte de a continua. <br /> Sigur vrei să continui?", "Ok" : "Ok", "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." : "Directorul de date și fișierele tale sunt probabil accesibile de pe Internet. Fișierul .htaccess nu funcționează. Îți recomandăm cu tărie să configurezi serverul web astfel încât folderul de date să nu mai fie accesibil, sau să muți folderul în afara rădăcinii de documente a serverului web.", + "Error while unsharing" : "Eroare la anularea partajării", "File drop (upload only)" : "Aruncă fișierul (numai încărcare)", "can reshare" : "poate partaja mai departe", "can edit" : "poate edita", @@ -283,6 +277,12 @@ "Share with users, groups or remote users..." : "Partajează cu alți utilizatori, grupuri sau utilizatori la distanță...", "Share with users, groups, remote users or by mail..." : "Partajează cu alți utilizatori, grupuri, utilizatori la distanță sau prin mail...", "Share with users..." : "Partajează cu alți utilizatori...", + "The object type is not specified." : "Tipul obiectului nu este specificat.", + "Enter new" : "Introducere nou", + "Add" : "Adaugă", + "Edit tags" : "Editează etichete", + "Error loading dialog template: {error}" : "Eroare la încărcarea șablonului de dialog: {error}", + "No tags selected for deletion." : "Nu au fost selectate etichete pentru ștergere.", "The update was successful. Redirecting you to Nextcloud now." : "Actualizarea a reușit. Te redirecționăm acum la Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Salutare,\n\nvrem să te anunțăm că %s a partajat %s cu tine.\nPoți vedea aici: %s\n\n", "The share will expire on %s." : "Partajarea va expira în data de %s.", diff --git a/core/l10n/ru.js b/core/l10n/ru.js index eb26ec997ec..995bc3ffed2 100644 --- a/core/l10n/ru.js +++ b/core/l10n/ru.js @@ -57,6 +57,8 @@ OC.L10N.register( "Loading your contacts …" : "Загрузка контактов…", "Looking for {term} …" : "Поиск {term}…", "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\"> Были обнаружены проблемы с проверкой целостности кода. Подробнее ...", + "No action available" : "Нет доступных действий", + "Error fetching contact actions" : "Ошибка получения действий контакта", "Settings" : "Настройки", "Connection to server lost" : "Подключение к серверу потеряно", "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Возникла проблема при загрузке страницы, повторная попытка через %n секунду","Возникла проблема при загрузке страницы, повторная попытка через %n секунды","Возникла проблема при загрузке страницы, повторная попытка через %n секунд","Возникла проблема при загрузке страницы, повторная попытка через %n секунд"], @@ -116,9 +118,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Вы зашли на этот сайт через HTTP. Мы настоятельно рекомендуем настроить ваш сервер на использование HTTPS согласно нашим <a href=\"{docUrl}\">подсказкам по безопасности</a>.", "Shared" : "Общий доступ", "Shared with {recipients}" : "Вы поделились с {recipients}", - "Error" : "Ошибка", - "Error while sharing" : "При попытке поделиться произошла ошибка", - "Error while unsharing" : "При закрытии доступа произошла ошибка", "Error setting expiration date" : "Ошибка при установке срока доступа", "The public link will expire no later than {days} days after it is created" : "Срок действия общедоступной ссылки истекает не позже чем через {days} дней после её создания", "Set expiration date" : "Установить срок действия", @@ -136,11 +135,12 @@ OC.L10N.register( "Share link" : "Поделиться ссылкой", "Link" : "Ссылка", "Password protect" : "Защитить паролем", - "Allow upload and editing" : "Разрешить загрузку и редактирование", "Allow editing" : "Разрешить редактирование", - "upload only" : "только загружать", "Email link to person" : "Отправить ссылку по электронной почте", "Send" : "Отправить", + "Allow upload and editing" : "Разрешить загрузку и редактирование", + "Read only" : "Только чтение", + "Secure drop (upload only)" : "Безопасное хранилище (только для приема файлов)", "Shared with you and the group {group} by {owner}" : "{owner} поделился с вами и группой {group} ", "Shared with you by {owner}" : "С вами поделился {owner} ", "Choose a password for the mail share" : "Укажите пароль для ссылки по почте", @@ -155,9 +155,9 @@ OC.L10N.register( "Can create" : "Можно создавать", "Can change" : "Можно изменять", "Can delete" : "Можно удалять", - "Secure drop (upload only)" : "Безопасное хранилище (только для приема файлов)", "Access control" : "Контроль доступа", "Could not unshare" : "Не удалось отменить доступ", + "Error while sharing" : "При попытке поделиться произошла ошибка", "Share details could not be loaded for this item." : "Не удалось загрузить информацию об общем доступе для этого элемента.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Для автозавершения требуется как минимум {count} символ.","Для автозавершения требуется как минимум {count} символа.","Для автозавершения требуется как минимум {count} символов.","Для автозавершения требуется как минимум {count} символа."], "This list is maybe truncated - please refine your search term to see more results." : "Этот список может быть показан не полностью - уточните запрос что бы просмотреть больше результатов.", @@ -176,6 +176,7 @@ OC.L10N.register( "Name or federated cloud ID..." : "Имя или ID федеративного облачного хранилища…", "Name, federated cloud ID or email address..." : "Имя. ID федеративного облачного хранилища или адрес email…", "Name..." : "Имя…", + "Error" : "Ошибка", "Error removing share" : "Ошибка удаления общего доступа", "Non-existing tag #{tag}" : "Несуществующий тег #{tag}", "restricted" : "ограниченный", @@ -185,12 +186,6 @@ OC.L10N.register( "Rename" : "Переименовать", "Collaborative tags" : "Совместные теги", "No tags found" : "Метки не найдены", - "The object type is not specified." : "Тип объекта не указан", - "Enter new" : "Ввести новое", - "Add" : "Добавить", - "Edit tags" : "Изменить метки", - "Error loading dialog template: {error}" : "Ошибка загрузки шаблона диалога: {error}", - "No tags selected for deletion." : "Не выбраны метки для удаления.", "unknown text" : "неизвестный текст", "Hello world!" : "Привет мир!", "sunny" : "солнечно", @@ -311,6 +306,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Ваши файлы зашифрованы. Если вы не включили ключ восстановления, то ваши данные будут недоступны после сброса пароля.<br />Если вы не уверены что делать дальше - обратитесь к вашему администратору.<br />Вы действительно хотите продолжить?", "Ok" : "Ок", "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 не работает. Мы настоятельно рекомендуем Вам настроить веб сервер таким образом, чтобы каталог данных не был больше доступен или переместить каталог данных за пределы корня веб сервера.", + "Error while unsharing" : "При закрытии доступа произошла ошибка", "File drop (upload only)" : "Хранилище (только для приема файлов)", "can reshare" : "можно опубликовать", "can edit" : "можно редактировать", @@ -327,6 +323,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Поделиться с пользователями, группами или удаленными пользователями...", "Share with users, groups, remote users or by mail..." : "Поделиться с пользователями, группами, удалёнными пользователями или по почте...", "Share with users..." : "Поделиться с пользователями...", + "The object type is not specified." : "Тип объекта не указан", + "Enter new" : "Ввести новое", + "Add" : "Добавить", + "Edit tags" : "Изменить метки", + "Error loading dialog template: {error}" : "Ошибка загрузки шаблона диалога: {error}", + "No tags selected for deletion." : "Не выбраны метки для удаления.", "The update was successful. Redirecting you to Nextcloud now." : "Обновление прошло успешно. Перенаправляем вас на Nextcloud прямо сейчас.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Здравствуйте,\n\n%s поделился %s с вами.\nПосмотреть: %s\n", "The share will expire on %s." : "Доступ будет закрыт %s", diff --git a/core/l10n/ru.json b/core/l10n/ru.json index 774f4477ab3..f9a58afe9a3 100644 --- a/core/l10n/ru.json +++ b/core/l10n/ru.json @@ -55,6 +55,8 @@ "Loading your contacts …" : "Загрузка контактов…", "Looking for {term} …" : "Поиск {term}…", "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\"> Были обнаружены проблемы с проверкой целостности кода. Подробнее ...", + "No action available" : "Нет доступных действий", + "Error fetching contact actions" : "Ошибка получения действий контакта", "Settings" : "Настройки", "Connection to server lost" : "Подключение к серверу потеряно", "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Возникла проблема при загрузке страницы, повторная попытка через %n секунду","Возникла проблема при загрузке страницы, повторная попытка через %n секунды","Возникла проблема при загрузке страницы, повторная попытка через %n секунд","Возникла проблема при загрузке страницы, повторная попытка через %n секунд"], @@ -114,9 +116,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Вы зашли на этот сайт через HTTP. Мы настоятельно рекомендуем настроить ваш сервер на использование HTTPS согласно нашим <a href=\"{docUrl}\">подсказкам по безопасности</a>.", "Shared" : "Общий доступ", "Shared with {recipients}" : "Вы поделились с {recipients}", - "Error" : "Ошибка", - "Error while sharing" : "При попытке поделиться произошла ошибка", - "Error while unsharing" : "При закрытии доступа произошла ошибка", "Error setting expiration date" : "Ошибка при установке срока доступа", "The public link will expire no later than {days} days after it is created" : "Срок действия общедоступной ссылки истекает не позже чем через {days} дней после её создания", "Set expiration date" : "Установить срок действия", @@ -134,11 +133,12 @@ "Share link" : "Поделиться ссылкой", "Link" : "Ссылка", "Password protect" : "Защитить паролем", - "Allow upload and editing" : "Разрешить загрузку и редактирование", "Allow editing" : "Разрешить редактирование", - "upload only" : "только загружать", "Email link to person" : "Отправить ссылку по электронной почте", "Send" : "Отправить", + "Allow upload and editing" : "Разрешить загрузку и редактирование", + "Read only" : "Только чтение", + "Secure drop (upload only)" : "Безопасное хранилище (только для приема файлов)", "Shared with you and the group {group} by {owner}" : "{owner} поделился с вами и группой {group} ", "Shared with you by {owner}" : "С вами поделился {owner} ", "Choose a password for the mail share" : "Укажите пароль для ссылки по почте", @@ -153,9 +153,9 @@ "Can create" : "Можно создавать", "Can change" : "Можно изменять", "Can delete" : "Можно удалять", - "Secure drop (upload only)" : "Безопасное хранилище (только для приема файлов)", "Access control" : "Контроль доступа", "Could not unshare" : "Не удалось отменить доступ", + "Error while sharing" : "При попытке поделиться произошла ошибка", "Share details could not be loaded for this item." : "Не удалось загрузить информацию об общем доступе для этого элемента.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Для автозавершения требуется как минимум {count} символ.","Для автозавершения требуется как минимум {count} символа.","Для автозавершения требуется как минимум {count} символов.","Для автозавершения требуется как минимум {count} символа."], "This list is maybe truncated - please refine your search term to see more results." : "Этот список может быть показан не полностью - уточните запрос что бы просмотреть больше результатов.", @@ -174,6 +174,7 @@ "Name or federated cloud ID..." : "Имя или ID федеративного облачного хранилища…", "Name, federated cloud ID or email address..." : "Имя. ID федеративного облачного хранилища или адрес email…", "Name..." : "Имя…", + "Error" : "Ошибка", "Error removing share" : "Ошибка удаления общего доступа", "Non-existing tag #{tag}" : "Несуществующий тег #{tag}", "restricted" : "ограниченный", @@ -183,12 +184,6 @@ "Rename" : "Переименовать", "Collaborative tags" : "Совместные теги", "No tags found" : "Метки не найдены", - "The object type is not specified." : "Тип объекта не указан", - "Enter new" : "Ввести новое", - "Add" : "Добавить", - "Edit tags" : "Изменить метки", - "Error loading dialog template: {error}" : "Ошибка загрузки шаблона диалога: {error}", - "No tags selected for deletion." : "Не выбраны метки для удаления.", "unknown text" : "неизвестный текст", "Hello world!" : "Привет мир!", "sunny" : "солнечно", @@ -309,6 +304,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Ваши файлы зашифрованы. Если вы не включили ключ восстановления, то ваши данные будут недоступны после сброса пароля.<br />Если вы не уверены что делать дальше - обратитесь к вашему администратору.<br />Вы действительно хотите продолжить?", "Ok" : "Ок", "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 не работает. Мы настоятельно рекомендуем Вам настроить веб сервер таким образом, чтобы каталог данных не был больше доступен или переместить каталог данных за пределы корня веб сервера.", + "Error while unsharing" : "При закрытии доступа произошла ошибка", "File drop (upload only)" : "Хранилище (только для приема файлов)", "can reshare" : "можно опубликовать", "can edit" : "можно редактировать", @@ -325,6 +321,12 @@ "Share with users, groups or remote users..." : "Поделиться с пользователями, группами или удаленными пользователями...", "Share with users, groups, remote users or by mail..." : "Поделиться с пользователями, группами, удалёнными пользователями или по почте...", "Share with users..." : "Поделиться с пользователями...", + "The object type is not specified." : "Тип объекта не указан", + "Enter new" : "Ввести новое", + "Add" : "Добавить", + "Edit tags" : "Изменить метки", + "Error loading dialog template: {error}" : "Ошибка загрузки шаблона диалога: {error}", + "No tags selected for deletion." : "Не выбраны метки для удаления.", "The update was successful. Redirecting you to Nextcloud now." : "Обновление прошло успешно. Перенаправляем вас на Nextcloud прямо сейчас.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Здравствуйте,\n\n%s поделился %s с вами.\nПосмотреть: %s\n", "The share will expire on %s." : "Доступ будет закрыт %s", diff --git a/core/l10n/sk.js b/core/l10n/sk.js index 9521e6d2f54..5d19503431d 100644 --- a/core/l10n/sk.js +++ b/core/l10n/sk.js @@ -92,9 +92,6 @@ OC.L10N.register( "Error occurred while checking server setup" : "Počas kontroly nastavenia serveru sa stala chyba", "Shared" : "Sprístupnené", "Shared with {recipients}" : "Sprístupnené {recipients}", - "Error" : "Chyba", - "Error while sharing" : "Chyba počas sprístupňovania", - "Error while unsharing" : "Chyba počas odobratia sprístupnenia", "Error setting expiration date" : "Chyba pri nastavení dátumu expirácie", "The public link will expire no later than {days} days after it is created" : "Verejný odkaz nevyprší skôr než za {days} dní po vytvorení", "Set expiration date" : "Nastaviť dátum expirácie", @@ -111,11 +108,10 @@ OC.L10N.register( "Share link" : "Sprístupniť odkaz", "Link" : "Odkaz", "Password protect" : "Chrániť heslom", - "Allow upload and editing" : "Povoliť nahratie a úpravy", "Allow editing" : "Povoliť úpravy", - "upload only" : "len odoslať", "Email link to person" : "Odoslať odkaz emailom", "Send" : "Odoslať", + "Allow upload and editing" : "Povoliť nahratie a úpravy", "Shared with you and the group {group} by {owner}" : "Sprístupnené vám a skupine {group} používateľom {owner}", "Shared with you by {owner}" : "Sprístupnené vám používateľom {owner}", "Choose a password for the mail share" : "Zvoľte heslo pre zdieľanie pošty", @@ -130,6 +126,7 @@ OC.L10N.register( "Can change" : "Môže meniť", "Can delete" : "Môže odstraňovať", "Could not unshare" : "Nepodarilo sa zrušiť sprístupnenie", + "Error while sharing" : "Chyba počas sprístupňovania", "Share details could not be loaded for this item." : "Nebolo možné načítať údaje o sprístupnení tejto položky.", "No users or groups found for {search}" : "Výrazu {search} nezodpovedá žiadny používateľ ani skupina", "No users found for {search}" : "Výrazu {search} nezodpovedá žiadny používateľ", @@ -139,6 +136,7 @@ OC.L10N.register( "{sharee} (email)" : "{sharee} (pošta)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Sprístupniť", + "Error" : "Chyba", "Error removing share" : "Chyba pri rušení sprístupnenia", "Non-existing tag #{tag}" : "Neexistujúca značka #{tag}", "restricted" : "obmedzený", @@ -147,12 +145,6 @@ OC.L10N.register( "Delete" : "Zmazať", "Rename" : "Premenovať", "No tags found" : "Štítky sa nenašli", - "The object type is not specified." : "Nešpecifikovaný typ objektu.", - "Enter new" : "Zadať nový", - "Add" : "Pridať", - "Edit tags" : "Upraviť štítky", - "Error loading dialog template: {error}" : "Chyba pri načítaní šablóny dialógu: {error}", - "No tags selected for deletion." : "Nie sú vybraté štítky na zmazanie.", "unknown text" : "neznámy text", "Hello world!" : "Ahoj svet!", "sunny" : "slnečno", @@ -251,6 +243,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Súbory sú zašifrované. Ak ste nepovolili kľúč pre obnovenie, neexistuje žiadny spôsob, ako obnoviť vaše dáta po obnovení vášho hesla. <br /> Ak si nie ste istí čo urobiť, prosím skôr než budete pokračovať, obráťte sa na administrátora. <br /> Naozaj chcete pokračovať?", "Ok" : "Ok", "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." : "Váš priečinok s dátami aj vaše súbory sú pravdepodobne prístupné z internetu. Súbor .htaccess nefunguje. Dôrazne odporúčame nakonfigurovať webový server tak, aby priečinok s dátami nebol naďalej prístupný alebo presunúť priečinok s dátami mimo priestoru, ktorý webový server sprístupňuje.", + "Error while unsharing" : "Chyba počas odobratia sprístupnenia", "can edit" : "môže upraviť", "can create" : "môže vytvoriť", "can change" : "môže zmeniť", @@ -264,6 +257,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Sprístupniť používateľom, skupinám alebo vzdialeným používateľom...", "Share with users, groups, remote users or by mail..." : "Zdieľať s používateľmi, skupinami, vzdialenými používateľmi alebo prostredníctvom pošty..", "Share with users..." : "Sprístupniť používateľom...", + "The object type is not specified." : "Nešpecifikovaný typ objektu.", + "Enter new" : "Zadať nový", + "Add" : "Pridať", + "Edit tags" : "Upraviť štítky", + "Error loading dialog template: {error}" : "Chyba pri načítaní šablóny dialógu: {error}", + "No tags selected for deletion." : "Nie sú vybraté štítky na zmazanie.", "The update was successful. Redirecting you to Nextcloud now." : "Aktualizácia bola úspešná. Presmerovávam na Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Dobrý deň,\n\npoužívateľ %s Vám sprístupnil položku s názvom %s.\nPre zobrazenie kliknite na odkaz: %s\n", "The share will expire on %s." : "Sprístupnenie vyprší %s.", diff --git a/core/l10n/sk.json b/core/l10n/sk.json index 6ccc0a5bca8..9b6dd1c04b1 100644 --- a/core/l10n/sk.json +++ b/core/l10n/sk.json @@ -90,9 +90,6 @@ "Error occurred while checking server setup" : "Počas kontroly nastavenia serveru sa stala chyba", "Shared" : "Sprístupnené", "Shared with {recipients}" : "Sprístupnené {recipients}", - "Error" : "Chyba", - "Error while sharing" : "Chyba počas sprístupňovania", - "Error while unsharing" : "Chyba počas odobratia sprístupnenia", "Error setting expiration date" : "Chyba pri nastavení dátumu expirácie", "The public link will expire no later than {days} days after it is created" : "Verejný odkaz nevyprší skôr než za {days} dní po vytvorení", "Set expiration date" : "Nastaviť dátum expirácie", @@ -109,11 +106,10 @@ "Share link" : "Sprístupniť odkaz", "Link" : "Odkaz", "Password protect" : "Chrániť heslom", - "Allow upload and editing" : "Povoliť nahratie a úpravy", "Allow editing" : "Povoliť úpravy", - "upload only" : "len odoslať", "Email link to person" : "Odoslať odkaz emailom", "Send" : "Odoslať", + "Allow upload and editing" : "Povoliť nahratie a úpravy", "Shared with you and the group {group} by {owner}" : "Sprístupnené vám a skupine {group} používateľom {owner}", "Shared with you by {owner}" : "Sprístupnené vám používateľom {owner}", "Choose a password for the mail share" : "Zvoľte heslo pre zdieľanie pošty", @@ -128,6 +124,7 @@ "Can change" : "Môže meniť", "Can delete" : "Môže odstraňovať", "Could not unshare" : "Nepodarilo sa zrušiť sprístupnenie", + "Error while sharing" : "Chyba počas sprístupňovania", "Share details could not be loaded for this item." : "Nebolo možné načítať údaje o sprístupnení tejto položky.", "No users or groups found for {search}" : "Výrazu {search} nezodpovedá žiadny používateľ ani skupina", "No users found for {search}" : "Výrazu {search} nezodpovedá žiadny používateľ", @@ -137,6 +134,7 @@ "{sharee} (email)" : "{sharee} (pošta)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Sprístupniť", + "Error" : "Chyba", "Error removing share" : "Chyba pri rušení sprístupnenia", "Non-existing tag #{tag}" : "Neexistujúca značka #{tag}", "restricted" : "obmedzený", @@ -145,12 +143,6 @@ "Delete" : "Zmazať", "Rename" : "Premenovať", "No tags found" : "Štítky sa nenašli", - "The object type is not specified." : "Nešpecifikovaný typ objektu.", - "Enter new" : "Zadať nový", - "Add" : "Pridať", - "Edit tags" : "Upraviť štítky", - "Error loading dialog template: {error}" : "Chyba pri načítaní šablóny dialógu: {error}", - "No tags selected for deletion." : "Nie sú vybraté štítky na zmazanie.", "unknown text" : "neznámy text", "Hello world!" : "Ahoj svet!", "sunny" : "slnečno", @@ -249,6 +241,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Súbory sú zašifrované. Ak ste nepovolili kľúč pre obnovenie, neexistuje žiadny spôsob, ako obnoviť vaše dáta po obnovení vášho hesla. <br /> Ak si nie ste istí čo urobiť, prosím skôr než budete pokračovať, obráťte sa na administrátora. <br /> Naozaj chcete pokračovať?", "Ok" : "Ok", "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." : "Váš priečinok s dátami aj vaše súbory sú pravdepodobne prístupné z internetu. Súbor .htaccess nefunguje. Dôrazne odporúčame nakonfigurovať webový server tak, aby priečinok s dátami nebol naďalej prístupný alebo presunúť priečinok s dátami mimo priestoru, ktorý webový server sprístupňuje.", + "Error while unsharing" : "Chyba počas odobratia sprístupnenia", "can edit" : "môže upraviť", "can create" : "môže vytvoriť", "can change" : "môže zmeniť", @@ -262,6 +255,12 @@ "Share with users, groups or remote users..." : "Sprístupniť používateľom, skupinám alebo vzdialeným používateľom...", "Share with users, groups, remote users or by mail..." : "Zdieľať s používateľmi, skupinami, vzdialenými používateľmi alebo prostredníctvom pošty..", "Share with users..." : "Sprístupniť používateľom...", + "The object type is not specified." : "Nešpecifikovaný typ objektu.", + "Enter new" : "Zadať nový", + "Add" : "Pridať", + "Edit tags" : "Upraviť štítky", + "Error loading dialog template: {error}" : "Chyba pri načítaní šablóny dialógu: {error}", + "No tags selected for deletion." : "Nie sú vybraté štítky na zmazanie.", "The update was successful. Redirecting you to Nextcloud now." : "Aktualizácia bola úspešná. Presmerovávam na Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Dobrý deň,\n\npoužívateľ %s Vám sprístupnil položku s názvom %s.\nPre zobrazenie kliknite na odkaz: %s\n", "The share will expire on %s." : "Sprístupnenie vyprší %s.", diff --git a/core/l10n/sl.js b/core/l10n/sl.js index f526762d79a..f1a6d26f2d7 100644 --- a/core/l10n/sl.js +++ b/core/l10n/sl.js @@ -88,9 +88,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Do spletišča je omogočen dostop prek protokola HTTP. Priporočljivo je omogočiti podporo za varni protokol HTTPS. Več podrobnosti je zapisanih med <a href=\"{docUrl}\">varnostnimi namigi</a>.", "Shared" : "V souporabi", "Shared with {recipients}" : "V souporabi z {recipients}", - "Error" : "Napaka", - "Error while sharing" : "Napaka med souporabo", - "Error while unsharing" : "Napaka med odstranjevanjem souporabe", "Error setting expiration date" : "Napaka nastavljanja datuma preteka", "The public link will expire no later than {days} days after it is created" : "Javna povezava bo potekla {days} dni po ustvarjanju.", "Set expiration date" : "Nastavi datum preteka", @@ -105,16 +102,17 @@ OC.L10N.register( "Share link" : "Povezava za prejem", "Link" : "Povezava", "Password protect" : "Zaščiti z geslom", - "Allow upload and editing" : "Dovoli nalaganje in urejanje", "Allow editing" : "Dovoli urejanje", "Email link to person" : "Posreduj povezavo po elektronski pošti", "Send" : "Pošlji", + "Allow upload and editing" : "Dovoli nalaganje in urejanje", "Shared with you and the group {group} by {owner}" : "V souporabi z vami in skupino {group}. Lastnik je {owner}.", "Shared with you by {owner}" : "V souporabi z vami. Lastnik je {owner}.", "group" : "skupina", "remote" : "oddaljeno", "Unshare" : "Prekliči souporabo", "Could not unshare" : "Ni mogoče prekiniti souporabe", + "Error while sharing" : "Napaka med souporabo", "Share details could not be loaded for this item." : "Podrobnosti souporabe za te predmet ni mogoče naložiti.", "No users or groups found for {search}" : "Ni najdenih uporabnikov ali skupin za {search}", "No users found for {search}" : "Ni uporabnikov, skladnih z iskalnim nizom {search}", @@ -122,6 +120,7 @@ OC.L10N.register( "{sharee} (group)" : "{sharee} (skupina)", "{sharee} (remote)" : "{sharee} (oddaljeno)", "Share" : "Souporaba", + "Error" : "Napaka", "Error removing share" : "Napaka odstranjevanja souporabe", "Non-existing tag #{tag}" : "Neobstoječa oznaka #{tag}", "restricted" : "omejeno", @@ -130,12 +129,6 @@ OC.L10N.register( "Delete" : "Izbriši", "Rename" : "Preimenuj", "Collaborative tags" : "Oznake sodelovanja", - "The object type is not specified." : "Vrsta predmeta ni podana.", - "Enter new" : "Vnesite novo", - "Add" : "Dodaj", - "Edit tags" : "Uredi oznake", - "Error loading dialog template: {error}" : "Napaka nalaganja predloge pogovornega okna: {error}", - "No tags selected for deletion." : "Ni izbranih oznak za izbris.", "unknown text" : "neznano besedilo", "Hello world!" : "Pozdravljen svet!", "sunny" : "sončno", @@ -244,8 +237,15 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Datoteke so šifrirane. Če niste omogočili obnovitvenega ključa, po ponastavitvi gesla ne bo mogoč dostop do datotek.<br />V primeru, da niste prepričani, kaj storiti, stopite v stik s skrbnikom sistema.<br />Ali ste prepričani, da želite nadaljevati?", "Ok" : "V redu", "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." : "Podatkovna mapa in datoteke so najverjetneje dostopni prek Interneta, ker datoteka .htaccess ni ustrezno nastavljena. Priporočljivo je nastaviti spletni strežnik tako, da dostop prek zunanjega omrežja ni mogoč, ali pa tako, da podatkovna mapa ni znotraj korenske mape strežnika.", + "Error while unsharing" : "Napaka med odstranjevanjem souporabe", "can edit" : "lahko ureja", "access control" : "nadzor dostopa", + "The object type is not specified." : "Vrsta predmeta ni podana.", + "Enter new" : "Vnesite novo", + "Add" : "Dodaj", + "Edit tags" : "Uredi oznake", + "Error loading dialog template: {error}" : "Napaka nalaganja predloge pogovornega okna: {error}", + "No tags selected for deletion." : "Ni izbranih oznak za izbris.", "The update was successful. Redirecting you to Nextcloud now." : "Posodobitev je bila uspešna. Stran bo preusmerjena na NextCloud", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Pozdravljeni,\n\noseba %s vam je omogočila souporabo %s.\nVir si lahko ogledate: %s\n\n", "The share will expire on %s." : "Povezava souporabe bo potekla %s.", diff --git a/core/l10n/sl.json b/core/l10n/sl.json index 1d4e23c025d..c7533d95f1c 100644 --- a/core/l10n/sl.json +++ b/core/l10n/sl.json @@ -86,9 +86,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Do spletišča je omogočen dostop prek protokola HTTP. Priporočljivo je omogočiti podporo za varni protokol HTTPS. Več podrobnosti je zapisanih med <a href=\"{docUrl}\">varnostnimi namigi</a>.", "Shared" : "V souporabi", "Shared with {recipients}" : "V souporabi z {recipients}", - "Error" : "Napaka", - "Error while sharing" : "Napaka med souporabo", - "Error while unsharing" : "Napaka med odstranjevanjem souporabe", "Error setting expiration date" : "Napaka nastavljanja datuma preteka", "The public link will expire no later than {days} days after it is created" : "Javna povezava bo potekla {days} dni po ustvarjanju.", "Set expiration date" : "Nastavi datum preteka", @@ -103,16 +100,17 @@ "Share link" : "Povezava za prejem", "Link" : "Povezava", "Password protect" : "Zaščiti z geslom", - "Allow upload and editing" : "Dovoli nalaganje in urejanje", "Allow editing" : "Dovoli urejanje", "Email link to person" : "Posreduj povezavo po elektronski pošti", "Send" : "Pošlji", + "Allow upload and editing" : "Dovoli nalaganje in urejanje", "Shared with you and the group {group} by {owner}" : "V souporabi z vami in skupino {group}. Lastnik je {owner}.", "Shared with you by {owner}" : "V souporabi z vami. Lastnik je {owner}.", "group" : "skupina", "remote" : "oddaljeno", "Unshare" : "Prekliči souporabo", "Could not unshare" : "Ni mogoče prekiniti souporabe", + "Error while sharing" : "Napaka med souporabo", "Share details could not be loaded for this item." : "Podrobnosti souporabe za te predmet ni mogoče naložiti.", "No users or groups found for {search}" : "Ni najdenih uporabnikov ali skupin za {search}", "No users found for {search}" : "Ni uporabnikov, skladnih z iskalnim nizom {search}", @@ -120,6 +118,7 @@ "{sharee} (group)" : "{sharee} (skupina)", "{sharee} (remote)" : "{sharee} (oddaljeno)", "Share" : "Souporaba", + "Error" : "Napaka", "Error removing share" : "Napaka odstranjevanja souporabe", "Non-existing tag #{tag}" : "Neobstoječa oznaka #{tag}", "restricted" : "omejeno", @@ -128,12 +127,6 @@ "Delete" : "Izbriši", "Rename" : "Preimenuj", "Collaborative tags" : "Oznake sodelovanja", - "The object type is not specified." : "Vrsta predmeta ni podana.", - "Enter new" : "Vnesite novo", - "Add" : "Dodaj", - "Edit tags" : "Uredi oznake", - "Error loading dialog template: {error}" : "Napaka nalaganja predloge pogovornega okna: {error}", - "No tags selected for deletion." : "Ni izbranih oznak za izbris.", "unknown text" : "neznano besedilo", "Hello world!" : "Pozdravljen svet!", "sunny" : "sončno", @@ -242,8 +235,15 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Datoteke so šifrirane. Če niste omogočili obnovitvenega ključa, po ponastavitvi gesla ne bo mogoč dostop do datotek.<br />V primeru, da niste prepričani, kaj storiti, stopite v stik s skrbnikom sistema.<br />Ali ste prepričani, da želite nadaljevati?", "Ok" : "V redu", "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." : "Podatkovna mapa in datoteke so najverjetneje dostopni prek Interneta, ker datoteka .htaccess ni ustrezno nastavljena. Priporočljivo je nastaviti spletni strežnik tako, da dostop prek zunanjega omrežja ni mogoč, ali pa tako, da podatkovna mapa ni znotraj korenske mape strežnika.", + "Error while unsharing" : "Napaka med odstranjevanjem souporabe", "can edit" : "lahko ureja", "access control" : "nadzor dostopa", + "The object type is not specified." : "Vrsta predmeta ni podana.", + "Enter new" : "Vnesite novo", + "Add" : "Dodaj", + "Edit tags" : "Uredi oznake", + "Error loading dialog template: {error}" : "Napaka nalaganja predloge pogovornega okna: {error}", + "No tags selected for deletion." : "Ni izbranih oznak za izbris.", "The update was successful. Redirecting you to Nextcloud now." : "Posodobitev je bila uspešna. Stran bo preusmerjena na NextCloud", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Pozdravljeni,\n\noseba %s vam je omogočila souporabo %s.\nVir si lahko ogledate: %s\n\n", "The share will expire on %s." : "Povezava souporabe bo potekla %s.", diff --git a/core/l10n/sq.js b/core/l10n/sq.js index fc547cac6fb..2191b413f65 100644 --- a/core/l10n/sq.js +++ b/core/l10n/sq.js @@ -100,9 +100,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Po e përdorni këtë sajt përmes HTTP-je. Këshillojmë me forcë ta formësoni shërbyesin tuaj të kërkojë medoemos përdorimin e HTTPS-së, siç përshkruhet te <a href=\"{docUrl}\">këshillat tona mbi sigurinë</a>.", "Shared" : "Ndarë", "Shared with {recipients}" : "Ndarë me {recipients}", - "Error" : "Gabim", - "Error while sharing" : "Gabim gjatë ndarjes", - "Error while unsharing" : "Gabim gjatë heqjes së ndarjes", "Error setting expiration date" : "Gabim në caktimin e datës së skadimit", "The public link will expire no later than {days} days after it is created" : "Lidhja publike do të skadojë jo më vonë se {days} ditë pas krijimit të saj", "Set expiration date" : "Caktoni datë skadimi", @@ -118,10 +115,10 @@ OC.L10N.register( "Share link" : "Lidhje ndarjeje", "Link" : "Lidhje", "Password protect" : "Mbroje me fjalëkalim", - "Allow upload and editing" : "Lejo ngarkim dhe editim", "Allow editing" : "Lejo përpunim", "Email link to person" : "Dërgoja personit lidhjen me email", "Send" : "Dërgoje", + "Allow upload and editing" : "Lejo ngarkim dhe editim", "Shared with you and the group {group} by {owner}" : "Ndarë me ju dhe me grupin {group} nga {owner}", "Shared with you by {owner}" : "Ndarë me ju nga {owner}", "{{shareInitiatorDisplayName}} shared via link" : "{{shpërndaEmrinEShfaqurTëNismëtarit}} shpërnda nëpërmjet linkut", @@ -130,6 +127,7 @@ OC.L10N.register( "email" : "postë elektronike", "Unshare" : "Hiqe ndarjen", "Could not unshare" : "S’e shndau dot", + "Error while sharing" : "Gabim gjatë ndarjes", "Share details could not be loaded for this item." : "Për këtë objekt s’u ngarkuan dot hollësi ndarjeje.", "No users or groups found for {search}" : "S’u gjetën përdorues ose grupe për {search}", "No users found for {search}" : "S’u gjet përdorues për {search}", @@ -138,6 +136,7 @@ OC.L10N.register( "{sharee} (remote)" : "{sharee} (i largët)", "{sharee} (email)" : "{shpërnda} (postë elektronike)", "Share" : "Ndaje", + "Error" : "Gabim", "Error removing share" : "Gabim në heqjen e ndarjes", "Non-existing tag #{tag}" : "Etiketë #{tag} që s’ekziston", "restricted" : "e kufizuar", @@ -147,12 +146,6 @@ OC.L10N.register( "Rename" : "Riemërtoje", "Collaborative tags" : "Etiketa bashkëpunimi", "No tags found" : "Jo etiketime të gjetura", - "The object type is not specified." : "S’është specifikuar lloji i objektit.", - "Enter new" : "Jep të ri", - "Add" : "Shtoni", - "Edit tags" : "Përpunoni etiketa", - "Error loading dialog template: {error}" : "Gabim gjatë ngarkimit të gjedhes së dialogut: {error}", - "No tags selected for deletion." : "S’u përzgjodhën etiketa fshirje.", "unknown text" : "tekst i panjohur", "Hello world!" : "Hello world!", "sunny" : "me diell", @@ -265,6 +258,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Kartelat tuaja janë të fshehtëzuara. Nëse s’keni aktivizuar kyçin e rimarrjeve, nuk do të ketë ndonjë rrugë për të marrë sërish të dhënat tuaja pasi të jetë ricaktuar fjalëkalimi juaj.<br />Nëse s’jeni i sigurt se ç’duhet bërë, ju lutemi, përpara se të vazhdoni, lidhuni me përgjegjësin tuaj. <br />Doni vërtet të vazhdoni?", "Ok" : "Në rregull", "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." : "Drejtoria juaj e të dhënave dhe kartelat tuaja ka shumë mundësi të jenë të arritshme që nga interneti. Kartela .htaccess s’funksionon. Këshillojmë me forcë që ta formësoni shërbyesin tuaj web në një mënyrë që drejtoria e të dhënave të mos lejojë më hyrje, ose ta zhvendosni drejtorinë e të dhënave jashtë rrënjës së dokumenteve të shërbyesit web.", + "Error while unsharing" : "Gabim gjatë heqjes së ndarjes", "File drop (upload only)" : "Lësho skedar (vetëm ngarkim)", "can reshare" : "mund të rishpërndahet", "can edit" : "mund të përpunojnë", @@ -281,6 +275,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Shpërnda me përdoruesit, grupet ose përdoruesit në distancë...", "Share with users, groups, remote users or by mail..." : "Shpërnda me përdoruesit, grupet, përdoruesit në distancë ose nga posta elektronike...", "Share with users..." : "Shpërnda me përdoruesit...", + "The object type is not specified." : "S’është specifikuar lloji i objektit.", + "Enter new" : "Jep të ri", + "Add" : "Shtoni", + "Edit tags" : "Përpunoni etiketa", + "Error loading dialog template: {error}" : "Gabim gjatë ngarkimit të gjedhes së dialogut: {error}", + "No tags selected for deletion." : "S’u përzgjodhën etiketa fshirje.", "The update was successful. Redirecting you to Nextcloud now." : "Përditësimi ishte i suksesshëm. Ju ridrejtojmë në Nextcloud tani.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Njatjeta,\n\nthjesht po ju bëjmë të ditur që %s ndau me ju %s.\nShiheni: %s\n\n", "The share will expire on %s." : "Ndarja do të skadojë më %s.", diff --git a/core/l10n/sq.json b/core/l10n/sq.json index eb6bba08ef1..d8c9e26087d 100644 --- a/core/l10n/sq.json +++ b/core/l10n/sq.json @@ -98,9 +98,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Po e përdorni këtë sajt përmes HTTP-je. Këshillojmë me forcë ta formësoni shërbyesin tuaj të kërkojë medoemos përdorimin e HTTPS-së, siç përshkruhet te <a href=\"{docUrl}\">këshillat tona mbi sigurinë</a>.", "Shared" : "Ndarë", "Shared with {recipients}" : "Ndarë me {recipients}", - "Error" : "Gabim", - "Error while sharing" : "Gabim gjatë ndarjes", - "Error while unsharing" : "Gabim gjatë heqjes së ndarjes", "Error setting expiration date" : "Gabim në caktimin e datës së skadimit", "The public link will expire no later than {days} days after it is created" : "Lidhja publike do të skadojë jo më vonë se {days} ditë pas krijimit të saj", "Set expiration date" : "Caktoni datë skadimi", @@ -116,10 +113,10 @@ "Share link" : "Lidhje ndarjeje", "Link" : "Lidhje", "Password protect" : "Mbroje me fjalëkalim", - "Allow upload and editing" : "Lejo ngarkim dhe editim", "Allow editing" : "Lejo përpunim", "Email link to person" : "Dërgoja personit lidhjen me email", "Send" : "Dërgoje", + "Allow upload and editing" : "Lejo ngarkim dhe editim", "Shared with you and the group {group} by {owner}" : "Ndarë me ju dhe me grupin {group} nga {owner}", "Shared with you by {owner}" : "Ndarë me ju nga {owner}", "{{shareInitiatorDisplayName}} shared via link" : "{{shpërndaEmrinEShfaqurTëNismëtarit}} shpërnda nëpërmjet linkut", @@ -128,6 +125,7 @@ "email" : "postë elektronike", "Unshare" : "Hiqe ndarjen", "Could not unshare" : "S’e shndau dot", + "Error while sharing" : "Gabim gjatë ndarjes", "Share details could not be loaded for this item." : "Për këtë objekt s’u ngarkuan dot hollësi ndarjeje.", "No users or groups found for {search}" : "S’u gjetën përdorues ose grupe për {search}", "No users found for {search}" : "S’u gjet përdorues për {search}", @@ -136,6 +134,7 @@ "{sharee} (remote)" : "{sharee} (i largët)", "{sharee} (email)" : "{shpërnda} (postë elektronike)", "Share" : "Ndaje", + "Error" : "Gabim", "Error removing share" : "Gabim në heqjen e ndarjes", "Non-existing tag #{tag}" : "Etiketë #{tag} që s’ekziston", "restricted" : "e kufizuar", @@ -145,12 +144,6 @@ "Rename" : "Riemërtoje", "Collaborative tags" : "Etiketa bashkëpunimi", "No tags found" : "Jo etiketime të gjetura", - "The object type is not specified." : "S’është specifikuar lloji i objektit.", - "Enter new" : "Jep të ri", - "Add" : "Shtoni", - "Edit tags" : "Përpunoni etiketa", - "Error loading dialog template: {error}" : "Gabim gjatë ngarkimit të gjedhes së dialogut: {error}", - "No tags selected for deletion." : "S’u përzgjodhën etiketa fshirje.", "unknown text" : "tekst i panjohur", "Hello world!" : "Hello world!", "sunny" : "me diell", @@ -263,6 +256,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Kartelat tuaja janë të fshehtëzuara. Nëse s’keni aktivizuar kyçin e rimarrjeve, nuk do të ketë ndonjë rrugë për të marrë sërish të dhënat tuaja pasi të jetë ricaktuar fjalëkalimi juaj.<br />Nëse s’jeni i sigurt se ç’duhet bërë, ju lutemi, përpara se të vazhdoni, lidhuni me përgjegjësin tuaj. <br />Doni vërtet të vazhdoni?", "Ok" : "Në rregull", "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." : "Drejtoria juaj e të dhënave dhe kartelat tuaja ka shumë mundësi të jenë të arritshme që nga interneti. Kartela .htaccess s’funksionon. Këshillojmë me forcë që ta formësoni shërbyesin tuaj web në një mënyrë që drejtoria e të dhënave të mos lejojë më hyrje, ose ta zhvendosni drejtorinë e të dhënave jashtë rrënjës së dokumenteve të shërbyesit web.", + "Error while unsharing" : "Gabim gjatë heqjes së ndarjes", "File drop (upload only)" : "Lësho skedar (vetëm ngarkim)", "can reshare" : "mund të rishpërndahet", "can edit" : "mund të përpunojnë", @@ -279,6 +273,12 @@ "Share with users, groups or remote users..." : "Shpërnda me përdoruesit, grupet ose përdoruesit në distancë...", "Share with users, groups, remote users or by mail..." : "Shpërnda me përdoruesit, grupet, përdoruesit në distancë ose nga posta elektronike...", "Share with users..." : "Shpërnda me përdoruesit...", + "The object type is not specified." : "S’është specifikuar lloji i objektit.", + "Enter new" : "Jep të ri", + "Add" : "Shtoni", + "Edit tags" : "Përpunoni etiketa", + "Error loading dialog template: {error}" : "Gabim gjatë ngarkimit të gjedhes së dialogut: {error}", + "No tags selected for deletion." : "S’u përzgjodhën etiketa fshirje.", "The update was successful. Redirecting you to Nextcloud now." : "Përditësimi ishte i suksesshëm. Ju ridrejtojmë në Nextcloud tani.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Njatjeta,\n\nthjesht po ju bëjmë të ditur që %s ndau me ju %s.\nShiheni: %s\n\n", "The share will expire on %s." : "Ndarja do të skadojë më %s.", diff --git a/core/l10n/sv.js b/core/l10n/sv.js index 27364ee10f5..ae2e6558cf8 100644 --- a/core/l10n/sv.js +++ b/core/l10n/sv.js @@ -112,9 +112,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Du har begärt denna sidan över HTTP. Vi föreslår starkt att du konfigurerar din webbserver att kräva använding utav HTTPS istället, som beskrivs i våra <a href=\"{docUrl}\">säkerhetstips</a>.", "Shared" : "Delad", "Shared with {recipients}" : "Delad med {recipients}", - "Error" : "Fel", - "Error while sharing" : "Fel vid delning", - "Error while unsharing" : "Fel när delning skulle avslutas", "Error setting expiration date" : "Fel vid val av utgångsdatum", "The public link will expire no later than {days} days after it is created" : "Den offentliga länken kommer sluta gälla inte senare än {days} dagar efter att den skapades", "Set expiration date" : "Välj utgångsdatum", @@ -132,11 +129,11 @@ OC.L10N.register( "Share link" : "Dela länk", "Link" : "Länk", "Password protect" : "Lösenordsskydda", - "Allow upload and editing" : "Tillåt uppladdning och redigering", "Allow editing" : "Tillåt redigering", - "upload only" : "endast uppladdning", "Email link to person" : "Skicka länken som e-postmeddelande", "Send" : "Skicka", + "Allow upload and editing" : "Tillåt uppladdning och redigering", + "Secure drop (upload only)" : "Säkert släpp (endast uppladdning)", "Shared with you and the group {group} by {owner}" : "Delad med dig och gruppen {group} av {owner}", "Shared with you by {owner}" : "Delad med dig av {owner}", "Choose a password for the mail share" : "Välj ett lösenord för delning via e-post", @@ -151,9 +148,9 @@ OC.L10N.register( "Can create" : "Kan skapa", "Can change" : "Kan ändra", "Can delete" : "Kan radera", - "Secure drop (upload only)" : "Säkert släpp (endast uppladdning)", "Access control" : "Åtkomstkontroll", "Could not unshare" : "Kunde inte ta bort delning", + "Error while sharing" : "Fel vid delning", "Share details could not be loaded for this item." : "Delningsdetaljer kunde inte laddas för detta objekt.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Minst {count} tecken krävs för automatisk ifyllning","Minst {count} tecken krävs för automatisk ifyllning"], "No users or groups found for {search}" : "Inga användare eller grupper funna för {search}", @@ -168,6 +165,7 @@ OC.L10N.register( "Name or federated cloud ID..." : "Namn eller federerat cloud-ID", "Name, federated cloud ID or email address..." : "Namn, federerat cloud-ID eller e-postadress...", "Name..." : "Namn...", + "Error" : "Fel", "Error removing share" : "Fel uppstod när delning försökte tas bort", "Non-existing tag #{tag}" : "Icke-existerande tag #{tag}", "restricted" : "begränsad", @@ -177,12 +175,6 @@ OC.L10N.register( "Rename" : "Byt namn", "Collaborative tags" : "Samverkanstaggar", "No tags found" : "Hittade inga taggar", - "The object type is not specified." : "Objekttypen är inte specificerad.", - "Enter new" : "Skriv nytt", - "Add" : "Lägg till", - "Edit tags" : "Redigera taggar", - "Error loading dialog template: {error}" : "Fel vid inläsning av dialogmall: {error}", - "No tags selected for deletion." : "Inga taggar valda för borttagning.", "unknown text" : "okänd text", "Hello world!" : "Hej världen!", "sunny" : "soligt", @@ -300,6 +292,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Dina filer är krypterade. Om du inte angett någon återställningsnyckel, kommer det att vara omöjligt att få tillbaka dina data efter att lösenordet är återställt..<br />Om du är osäker på vad du ska göra, vänligen kontakta din administratör innan du fortsätter.<br />Är du verkligen helt säker på att du vill fortsätta?", "Ok" : "Ok", "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." : "Din datakatalog och dina filer är sannolikt tillgängliga för vem som helst på internet. .htaccess filen fungerar inte korrekt. Vi rekommenderar starkt att du konfigurerar din webbserver på ett sätt som gör din datakatalog otillgänglig för vem som helst på internet eller att du flyttar ut hela datakatalogen ifrån webbserverns webbrot.", + "Error while unsharing" : "Fel när delning skulle avslutas", "File drop (upload only)" : "Göm fillista (endast uppladdning)", "can reshare" : "kan dela vidare", "can edit" : "kan redigera", @@ -316,6 +309,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Dela med användare, grupper eller externanvändare...", "Share with users, groups, remote users or by mail..." : "Dela med användare, grupper, externanvändare eller via e-post...", "Share with users..." : "Dela med användare...", + "The object type is not specified." : "Objekttypen är inte specificerad.", + "Enter new" : "Skriv nytt", + "Add" : "Lägg till", + "Edit tags" : "Redigera taggar", + "Error loading dialog template: {error}" : "Fel vid inläsning av dialogmall: {error}", + "No tags selected for deletion." : "Inga taggar valda för borttagning.", "The update was successful. Redirecting you to Nextcloud now." : "Uppdateringen lyckades. Omdirigerar nu till Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hej där,\n\nVi vill bara meddela att %s delade %s med dig.\nTitta på den här: %s\n\n", "The share will expire on %s." : "Delningen kommer att upphöra %s.", diff --git a/core/l10n/sv.json b/core/l10n/sv.json index 2583b380e09..9a02191d2b0 100644 --- a/core/l10n/sv.json +++ b/core/l10n/sv.json @@ -110,9 +110,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Du har begärt denna sidan över HTTP. Vi föreslår starkt att du konfigurerar din webbserver att kräva använding utav HTTPS istället, som beskrivs i våra <a href=\"{docUrl}\">säkerhetstips</a>.", "Shared" : "Delad", "Shared with {recipients}" : "Delad med {recipients}", - "Error" : "Fel", - "Error while sharing" : "Fel vid delning", - "Error while unsharing" : "Fel när delning skulle avslutas", "Error setting expiration date" : "Fel vid val av utgångsdatum", "The public link will expire no later than {days} days after it is created" : "Den offentliga länken kommer sluta gälla inte senare än {days} dagar efter att den skapades", "Set expiration date" : "Välj utgångsdatum", @@ -130,11 +127,11 @@ "Share link" : "Dela länk", "Link" : "Länk", "Password protect" : "Lösenordsskydda", - "Allow upload and editing" : "Tillåt uppladdning och redigering", "Allow editing" : "Tillåt redigering", - "upload only" : "endast uppladdning", "Email link to person" : "Skicka länken som e-postmeddelande", "Send" : "Skicka", + "Allow upload and editing" : "Tillåt uppladdning och redigering", + "Secure drop (upload only)" : "Säkert släpp (endast uppladdning)", "Shared with you and the group {group} by {owner}" : "Delad med dig och gruppen {group} av {owner}", "Shared with you by {owner}" : "Delad med dig av {owner}", "Choose a password for the mail share" : "Välj ett lösenord för delning via e-post", @@ -149,9 +146,9 @@ "Can create" : "Kan skapa", "Can change" : "Kan ändra", "Can delete" : "Kan radera", - "Secure drop (upload only)" : "Säkert släpp (endast uppladdning)", "Access control" : "Åtkomstkontroll", "Could not unshare" : "Kunde inte ta bort delning", + "Error while sharing" : "Fel vid delning", "Share details could not be loaded for this item." : "Delningsdetaljer kunde inte laddas för detta objekt.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Minst {count} tecken krävs för automatisk ifyllning","Minst {count} tecken krävs för automatisk ifyllning"], "No users or groups found for {search}" : "Inga användare eller grupper funna för {search}", @@ -166,6 +163,7 @@ "Name or federated cloud ID..." : "Namn eller federerat cloud-ID", "Name, federated cloud ID or email address..." : "Namn, federerat cloud-ID eller e-postadress...", "Name..." : "Namn...", + "Error" : "Fel", "Error removing share" : "Fel uppstod när delning försökte tas bort", "Non-existing tag #{tag}" : "Icke-existerande tag #{tag}", "restricted" : "begränsad", @@ -175,12 +173,6 @@ "Rename" : "Byt namn", "Collaborative tags" : "Samverkanstaggar", "No tags found" : "Hittade inga taggar", - "The object type is not specified." : "Objekttypen är inte specificerad.", - "Enter new" : "Skriv nytt", - "Add" : "Lägg till", - "Edit tags" : "Redigera taggar", - "Error loading dialog template: {error}" : "Fel vid inläsning av dialogmall: {error}", - "No tags selected for deletion." : "Inga taggar valda för borttagning.", "unknown text" : "okänd text", "Hello world!" : "Hej världen!", "sunny" : "soligt", @@ -298,6 +290,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Dina filer är krypterade. Om du inte angett någon återställningsnyckel, kommer det att vara omöjligt att få tillbaka dina data efter att lösenordet är återställt..<br />Om du är osäker på vad du ska göra, vänligen kontakta din administratör innan du fortsätter.<br />Är du verkligen helt säker på att du vill fortsätta?", "Ok" : "Ok", "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." : "Din datakatalog och dina filer är sannolikt tillgängliga för vem som helst på internet. .htaccess filen fungerar inte korrekt. Vi rekommenderar starkt att du konfigurerar din webbserver på ett sätt som gör din datakatalog otillgänglig för vem som helst på internet eller att du flyttar ut hela datakatalogen ifrån webbserverns webbrot.", + "Error while unsharing" : "Fel när delning skulle avslutas", "File drop (upload only)" : "Göm fillista (endast uppladdning)", "can reshare" : "kan dela vidare", "can edit" : "kan redigera", @@ -314,6 +307,12 @@ "Share with users, groups or remote users..." : "Dela med användare, grupper eller externanvändare...", "Share with users, groups, remote users or by mail..." : "Dela med användare, grupper, externanvändare eller via e-post...", "Share with users..." : "Dela med användare...", + "The object type is not specified." : "Objekttypen är inte specificerad.", + "Enter new" : "Skriv nytt", + "Add" : "Lägg till", + "Edit tags" : "Redigera taggar", + "Error loading dialog template: {error}" : "Fel vid inläsning av dialogmall: {error}", + "No tags selected for deletion." : "Inga taggar valda för borttagning.", "The update was successful. Redirecting you to Nextcloud now." : "Uppdateringen lyckades. Omdirigerar nu till Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hej där,\n\nVi vill bara meddela att %s delade %s med dig.\nTitta på den här: %s\n\n", "The share will expire on %s." : "Delningen kommer att upphöra %s.", diff --git a/core/l10n/tr.js b/core/l10n/tr.js index 0fa3793cb77..ee4814e98ba 100644 --- a/core/l10n/tr.js +++ b/core/l10n/tr.js @@ -118,9 +118,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Bu siteye HTTP üzerinde erişiyorsunuz. Sunucunuzu <a href=\"{docUrl}\">güvenlik ipuçlarında</a> anlatıldığı şekilde HTTPS kullanımını zorlayacak şekilde yapılandırmanız önemle önerilir.", "Shared" : "Paylaşılmış", "Shared with {recipients}" : "{recipients} ile paylaşılmış", - "Error" : "Hata", - "Error while sharing" : "Paylaşılırken sorun çıktı", - "Error while unsharing" : "Paylaşımdan kaldırılırken sorun çıktı", "Error setting expiration date" : "Son kullanma tarihi ayarlanırken sorun çıktı", "The public link will expire no later than {days} days after it is created" : "Herkese açık bağlantı, oluşturulduktan {days} gün sonra kullanımdan kaldırılacak", "Set expiration date" : "Son kullanma tarihini ayarla", @@ -138,11 +135,12 @@ OC.L10N.register( "Share link" : "Paylaşma bağlantısı", "Link" : "Bağlantı", "Password protect" : "Parola koruması", - "Allow upload and editing" : "Yükleme ve düzenleme yapılabilsin", "Allow editing" : "Düzenleme yapılabilsin", - "upload only" : "yalnız yükleme", "Email link to person" : "Bağlantıyı e-posta ile gönder", "Send" : "Gönder", + "Allow upload and editing" : "Yükleme ve düzenleme yapılabilsin", + "Read only" : "Salt okunur", + "Secure drop (upload only)" : "Güvenli bırakma (yalnız yükleme)", "Shared with you and the group {group} by {owner}" : "{owner} tarafından sizinle ve {group} ile paylaşılmış", "Shared with you by {owner}" : "{owner} tarafından sizinle paylaşılmış", "Choose a password for the mail share" : "E-posta ile paylaşmak için bir parola seçin", @@ -157,9 +155,9 @@ OC.L10N.register( "Can create" : "Ekleyebilir", "Can change" : "Değiştirebilir", "Can delete" : "Silebilir", - "Secure drop (upload only)" : "Güvenli bırakma (yalnız yükleme)", "Access control" : "Erişim denetimi", "Could not unshare" : "Paylaşım kaldırılamadı", + "Error while sharing" : "Paylaşılırken sorun çıktı", "Share details could not be loaded for this item." : "Bu öge için paylaşma ayrıntıları yüklenemedi.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Otomatik tamamlama için en az {count} karakter gereklidir","Otomatik tamamlama için en az {count} karakter gereklidir"], "This list is maybe truncated - please refine your search term to see more results." : "Bu liste budanmış olabilir. Lütfen daha fazla sonuç görmek için arama ifadenizi daraltın.", @@ -178,6 +176,7 @@ OC.L10N.register( "Name or federated cloud ID..." : "Ad ya da birleşmiş bulut kodu...", "Name, federated cloud ID or email address..." : "Ad, birleşmiş bulut kodu ya da e-posta adresi...", "Name..." : "Ad...", + "Error" : "Hata", "Error removing share" : "Paylaşımdan kaldırılırken sorun çıktı", "Non-existing tag #{tag}" : "#{tag} etiketi bulunamadı", "restricted" : "kısıtlı", @@ -187,12 +186,6 @@ OC.L10N.register( "Rename" : "Yeniden Adlandır", "Collaborative tags" : "İşbirliği etiketleri", "No tags found" : "Herhangi bir etiket bulunamadı", - "The object type is not specified." : "Nesne türü belirtilmemiş.", - "Enter new" : "Yeni ekle", - "Add" : "Ekle", - "Edit tags" : "Etiketleri düzenle", - "Error loading dialog template: {error}" : "İletişim kalıbı yüklenirken sorun çıktı: {error}", - "No tags selected for deletion." : "Silinecek bir etiket seçilmemiş.", "unknown text" : "bilinmeyen metin", "Hello world!" : "Merhaba dünya!", "sunny" : "güneşli", @@ -313,6 +306,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Dosyalarınız şifrelenmiş. Kurtarma anahtarını etkinleştirmediyseniz, parola sıfırlama işleminden sonra verilerinize erişemeyeceksiniz.<br />Ne yapacağınızdan emin değilseniz, ilerlemeden önce sistem yöneticiniz ile görüşün.<br />Gerçekten devam etmek istiyor musunuz?", "Ok" : "Tamam", "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." : "Veri klasörünüz ve dosyalarınız İnternet üzerinden erişime açık olabilir. .htaccess dosyası çalışmıyor. Web sunucunuzu yapılandırarak veri klasörüne erişimi engellemeniz ya da veri klasörünü web sunucu kök klasörü dışına taşımanız önemle önerilir.", + "Error while unsharing" : "Paylaşımdan kaldırılırken sorun çıktı", "File drop (upload only)" : "Dosya bırakma (yalnız yükleme)", "can reshare" : "yeniden paylaşabilir", "can edit" : "düzenleyebilir", @@ -329,6 +323,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "Kullanıcılar, gruplar ya da uzak kullanıcılar ile paylaş...", "Share with users, groups, remote users or by mail..." : "Kullanıcılar, gruplar, uzak kullanıcılar ya da e-posta ile paylaş...", "Share with users..." : "Kullanıcılar ile paylaş...", + "The object type is not specified." : "Nesne türü belirtilmemiş.", + "Enter new" : "Yeni ekle", + "Add" : "Ekle", + "Edit tags" : "Etiketleri düzenle", + "Error loading dialog template: {error}" : "İletişim kalıbı yüklenirken sorun çıktı: {error}", + "No tags selected for deletion." : "Silinecek bir etiket seçilmemiş.", "The update was successful. Redirecting you to Nextcloud now." : "Uygulama güncellendi. Nextcloud kullanmaya yönlendiriliyorsunuz.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Merhaba,\n\n%s kullanıcısının sizinle %s paylaşımında bulunduğunu bildirmek istedik.\nPaylaşımı şuradan görebilirsiniz: %s\n\n", "The share will expire on %s." : "Bu paylaşım %s tarihinde sona erecek.", diff --git a/core/l10n/tr.json b/core/l10n/tr.json index e21e3c25728..f61c8da34d5 100644 --- a/core/l10n/tr.json +++ b/core/l10n/tr.json @@ -116,9 +116,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Bu siteye HTTP üzerinde erişiyorsunuz. Sunucunuzu <a href=\"{docUrl}\">güvenlik ipuçlarında</a> anlatıldığı şekilde HTTPS kullanımını zorlayacak şekilde yapılandırmanız önemle önerilir.", "Shared" : "Paylaşılmış", "Shared with {recipients}" : "{recipients} ile paylaşılmış", - "Error" : "Hata", - "Error while sharing" : "Paylaşılırken sorun çıktı", - "Error while unsharing" : "Paylaşımdan kaldırılırken sorun çıktı", "Error setting expiration date" : "Son kullanma tarihi ayarlanırken sorun çıktı", "The public link will expire no later than {days} days after it is created" : "Herkese açık bağlantı, oluşturulduktan {days} gün sonra kullanımdan kaldırılacak", "Set expiration date" : "Son kullanma tarihini ayarla", @@ -136,11 +133,12 @@ "Share link" : "Paylaşma bağlantısı", "Link" : "Bağlantı", "Password protect" : "Parola koruması", - "Allow upload and editing" : "Yükleme ve düzenleme yapılabilsin", "Allow editing" : "Düzenleme yapılabilsin", - "upload only" : "yalnız yükleme", "Email link to person" : "Bağlantıyı e-posta ile gönder", "Send" : "Gönder", + "Allow upload and editing" : "Yükleme ve düzenleme yapılabilsin", + "Read only" : "Salt okunur", + "Secure drop (upload only)" : "Güvenli bırakma (yalnız yükleme)", "Shared with you and the group {group} by {owner}" : "{owner} tarafından sizinle ve {group} ile paylaşılmış", "Shared with you by {owner}" : "{owner} tarafından sizinle paylaşılmış", "Choose a password for the mail share" : "E-posta ile paylaşmak için bir parola seçin", @@ -155,9 +153,9 @@ "Can create" : "Ekleyebilir", "Can change" : "Değiştirebilir", "Can delete" : "Silebilir", - "Secure drop (upload only)" : "Güvenli bırakma (yalnız yükleme)", "Access control" : "Erişim denetimi", "Could not unshare" : "Paylaşım kaldırılamadı", + "Error while sharing" : "Paylaşılırken sorun çıktı", "Share details could not be loaded for this item." : "Bu öge için paylaşma ayrıntıları yüklenemedi.", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Otomatik tamamlama için en az {count} karakter gereklidir","Otomatik tamamlama için en az {count} karakter gereklidir"], "This list is maybe truncated - please refine your search term to see more results." : "Bu liste budanmış olabilir. Lütfen daha fazla sonuç görmek için arama ifadenizi daraltın.", @@ -176,6 +174,7 @@ "Name or federated cloud ID..." : "Ad ya da birleşmiş bulut kodu...", "Name, federated cloud ID or email address..." : "Ad, birleşmiş bulut kodu ya da e-posta adresi...", "Name..." : "Ad...", + "Error" : "Hata", "Error removing share" : "Paylaşımdan kaldırılırken sorun çıktı", "Non-existing tag #{tag}" : "#{tag} etiketi bulunamadı", "restricted" : "kısıtlı", @@ -185,12 +184,6 @@ "Rename" : "Yeniden Adlandır", "Collaborative tags" : "İşbirliği etiketleri", "No tags found" : "Herhangi bir etiket bulunamadı", - "The object type is not specified." : "Nesne türü belirtilmemiş.", - "Enter new" : "Yeni ekle", - "Add" : "Ekle", - "Edit tags" : "Etiketleri düzenle", - "Error loading dialog template: {error}" : "İletişim kalıbı yüklenirken sorun çıktı: {error}", - "No tags selected for deletion." : "Silinecek bir etiket seçilmemiş.", "unknown text" : "bilinmeyen metin", "Hello world!" : "Merhaba dünya!", "sunny" : "güneşli", @@ -311,6 +304,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Dosyalarınız şifrelenmiş. Kurtarma anahtarını etkinleştirmediyseniz, parola sıfırlama işleminden sonra verilerinize erişemeyeceksiniz.<br />Ne yapacağınızdan emin değilseniz, ilerlemeden önce sistem yöneticiniz ile görüşün.<br />Gerçekten devam etmek istiyor musunuz?", "Ok" : "Tamam", "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." : "Veri klasörünüz ve dosyalarınız İnternet üzerinden erişime açık olabilir. .htaccess dosyası çalışmıyor. Web sunucunuzu yapılandırarak veri klasörüne erişimi engellemeniz ya da veri klasörünü web sunucu kök klasörü dışına taşımanız önemle önerilir.", + "Error while unsharing" : "Paylaşımdan kaldırılırken sorun çıktı", "File drop (upload only)" : "Dosya bırakma (yalnız yükleme)", "can reshare" : "yeniden paylaşabilir", "can edit" : "düzenleyebilir", @@ -327,6 +321,12 @@ "Share with users, groups or remote users..." : "Kullanıcılar, gruplar ya da uzak kullanıcılar ile paylaş...", "Share with users, groups, remote users or by mail..." : "Kullanıcılar, gruplar, uzak kullanıcılar ya da e-posta ile paylaş...", "Share with users..." : "Kullanıcılar ile paylaş...", + "The object type is not specified." : "Nesne türü belirtilmemiş.", + "Enter new" : "Yeni ekle", + "Add" : "Ekle", + "Edit tags" : "Etiketleri düzenle", + "Error loading dialog template: {error}" : "İletişim kalıbı yüklenirken sorun çıktı: {error}", + "No tags selected for deletion." : "Silinecek bir etiket seçilmemiş.", "The update was successful. Redirecting you to Nextcloud now." : "Uygulama güncellendi. Nextcloud kullanmaya yönlendiriliyorsunuz.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Merhaba,\n\n%s kullanıcısının sizinle %s paylaşımında bulunduğunu bildirmek istedik.\nPaylaşımı şuradan görebilirsiniz: %s\n\n", "The share will expire on %s." : "Bu paylaşım %s tarihinde sona erecek.", diff --git a/core/l10n/zh_CN.js b/core/l10n/zh_CN.js index ac94ef05305..8ffcc997c8e 100644 --- a/core/l10n/zh_CN.js +++ b/core/l10n/zh_CN.js @@ -116,9 +116,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "您正在通过 HTTP 访问该站点, 我们强烈建议您按照<a href=\"{docUrl}\">安全提示</a>中的说明配置服务器强制使用 HTTPS.", "Shared" : "已共享", "Shared with {recipients}" : "由 {recipients} 分享", - "Error" : "错误", - "Error while sharing" : "共享时出错", - "Error while unsharing" : "取消共享时出错", "Error setting expiration date" : "设置过期日期时出错", "The public link will expire no later than {days} days after it is created" : "该共享链接将在创建后 {days} 天失效", "Set expiration date" : "设置过期日期", @@ -136,11 +133,10 @@ OC.L10N.register( "Share link" : "分享链接", "Link" : "链接", "Password protect" : "密码保护", - "Allow upload and editing" : "允许上传和编辑", "Allow editing" : "允许编辑", - "upload only" : "仅上传", "Email link to person" : "发送链接到个人", "Send" : "发送", + "Allow upload and editing" : "允许上传和编辑", "Shared with you and the group {group} by {owner}" : "{owner} 分享给您及 {group} 分组", "Shared with you by {owner}" : "{owner} 分享给您", "Choose a password for the mail share" : "为电子邮件分享选择一个密码", @@ -157,6 +153,7 @@ OC.L10N.register( "Can delete" : "可以删除", "Access control" : "访问控制", "Could not unshare" : "无法共享", + "Error while sharing" : "共享时出错", "Share details could not be loaded for this item." : "无法加载这个项目的分享详情", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["{count}字符需要自动完成"], "This list is maybe truncated - please refine your search term to see more results." : "此列表可能会被截断 - 请缩短您的搜索词以查看更多结果", @@ -172,6 +169,7 @@ OC.L10N.register( "Name or federated cloud ID..." : "姓名或联合云 ID", "Name, federated cloud ID or email address..." : "姓名, 联合云 ID 或电子邮件地址...", "Name..." : "名称...", + "Error" : "错误", "Error removing share" : "移除分享时出错", "Non-existing tag #{tag}" : "标签 #{tag} 不存在", "restricted" : "受限", @@ -181,12 +179,6 @@ OC.L10N.register( "Rename" : "重命名", "Collaborative tags" : "协作标签", "No tags found" : "标签未找到", - "The object type is not specified." : "未指定对象类型.", - "Enter new" : "输入新...", - "Add" : "增加", - "Edit tags" : "编辑标签", - "Error loading dialog template: {error}" : "加载对话框模板出错: {error}", - "No tags selected for deletion." : "没有选择删除的标签", "unknown text" : "未知文字", "Hello world!" : "Hello world!", "sunny" : "晴", @@ -305,6 +297,7 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "您的文件已经加密. 如果您没有启用恢复密钥, 当您的密码重置后没有任何方式能恢复您的数据. <br />如果您不确定, 请在继续前联系您的管理员.<br/>您是否真的要继续?", "Ok" : "确定", "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 文件没有工作. 我们强烈建议您在 Web 服务器上配置不可以访问数据目录, 或者将数据目录移动到 Web 服务器根目录之外.", + "Error while unsharing" : "取消共享时出错", "File drop (upload only)" : "文件拖拽 (仅上传)", "can reshare" : "允许重新分享", "can edit" : "允许修改", @@ -321,6 +314,12 @@ OC.L10N.register( "Share with users, groups or remote users..." : "分享给其他用户, 分组或外部用户...", "Share with users, groups, remote users or by mail..." : "通过邮件分享给其他用户, 分组或外部用户...", "Share with users..." : "分享给其他用户...", + "The object type is not specified." : "未指定对象类型.", + "Enter new" : "输入新...", + "Add" : "增加", + "Edit tags" : "编辑标签", + "Error loading dialog template: {error}" : "加载对话框模板出错: {error}", + "No tags selected for deletion." : "没有选择删除的标签", "The update was successful. Redirecting you to Nextcloud now." : "升级成功. 正在重新访问 Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "嗨、你好,\n\n只想让你知道 %s 分享了 %s 给你。\n现在查看: %s\n", "The share will expire on %s." : "此分享将在 %s 过期.", diff --git a/core/l10n/zh_CN.json b/core/l10n/zh_CN.json index 31f0615379c..ceb105d8a7c 100644 --- a/core/l10n/zh_CN.json +++ b/core/l10n/zh_CN.json @@ -114,9 +114,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "您正在通过 HTTP 访问该站点, 我们强烈建议您按照<a href=\"{docUrl}\">安全提示</a>中的说明配置服务器强制使用 HTTPS.", "Shared" : "已共享", "Shared with {recipients}" : "由 {recipients} 分享", - "Error" : "错误", - "Error while sharing" : "共享时出错", - "Error while unsharing" : "取消共享时出错", "Error setting expiration date" : "设置过期日期时出错", "The public link will expire no later than {days} days after it is created" : "该共享链接将在创建后 {days} 天失效", "Set expiration date" : "设置过期日期", @@ -134,11 +131,10 @@ "Share link" : "分享链接", "Link" : "链接", "Password protect" : "密码保护", - "Allow upload and editing" : "允许上传和编辑", "Allow editing" : "允许编辑", - "upload only" : "仅上传", "Email link to person" : "发送链接到个人", "Send" : "发送", + "Allow upload and editing" : "允许上传和编辑", "Shared with you and the group {group} by {owner}" : "{owner} 分享给您及 {group} 分组", "Shared with you by {owner}" : "{owner} 分享给您", "Choose a password for the mail share" : "为电子邮件分享选择一个密码", @@ -155,6 +151,7 @@ "Can delete" : "可以删除", "Access control" : "访问控制", "Could not unshare" : "无法共享", + "Error while sharing" : "共享时出错", "Share details could not be loaded for this item." : "无法加载这个项目的分享详情", "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["{count}字符需要自动完成"], "This list is maybe truncated - please refine your search term to see more results." : "此列表可能会被截断 - 请缩短您的搜索词以查看更多结果", @@ -170,6 +167,7 @@ "Name or federated cloud ID..." : "姓名或联合云 ID", "Name, federated cloud ID or email address..." : "姓名, 联合云 ID 或电子邮件地址...", "Name..." : "名称...", + "Error" : "错误", "Error removing share" : "移除分享时出错", "Non-existing tag #{tag}" : "标签 #{tag} 不存在", "restricted" : "受限", @@ -179,12 +177,6 @@ "Rename" : "重命名", "Collaborative tags" : "协作标签", "No tags found" : "标签未找到", - "The object type is not specified." : "未指定对象类型.", - "Enter new" : "输入新...", - "Add" : "增加", - "Edit tags" : "编辑标签", - "Error loading dialog template: {error}" : "加载对话框模板出错: {error}", - "No tags selected for deletion." : "没有选择删除的标签", "unknown text" : "未知文字", "Hello world!" : "Hello world!", "sunny" : "晴", @@ -303,6 +295,7 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "您的文件已经加密. 如果您没有启用恢复密钥, 当您的密码重置后没有任何方式能恢复您的数据. <br />如果您不确定, 请在继续前联系您的管理员.<br/>您是否真的要继续?", "Ok" : "确定", "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 文件没有工作. 我们强烈建议您在 Web 服务器上配置不可以访问数据目录, 或者将数据目录移动到 Web 服务器根目录之外.", + "Error while unsharing" : "取消共享时出错", "File drop (upload only)" : "文件拖拽 (仅上传)", "can reshare" : "允许重新分享", "can edit" : "允许修改", @@ -319,6 +312,12 @@ "Share with users, groups or remote users..." : "分享给其他用户, 分组或外部用户...", "Share with users, groups, remote users or by mail..." : "通过邮件分享给其他用户, 分组或外部用户...", "Share with users..." : "分享给其他用户...", + "The object type is not specified." : "未指定对象类型.", + "Enter new" : "输入新...", + "Add" : "增加", + "Edit tags" : "编辑标签", + "Error loading dialog template: {error}" : "加载对话框模板出错: {error}", + "No tags selected for deletion." : "没有选择删除的标签", "The update was successful. Redirecting you to Nextcloud now." : "升级成功. 正在重新访问 Nextcloud.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "嗨、你好,\n\n只想让你知道 %s 分享了 %s 给你。\n现在查看: %s\n", "The share will expire on %s." : "此分享将在 %s 过期.", diff --git a/core/l10n/zh_TW.js b/core/l10n/zh_TW.js index ee829bef045..f99f9f8e7ee 100644 --- a/core/l10n/zh_TW.js +++ b/core/l10n/zh_TW.js @@ -90,9 +90,6 @@ OC.L10N.register( "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "您正在藉由 HTTP 訪問此網站,如我們的<a href=\"{docUrl}\">安全性提示</a>所述,我們強烈建議設定您的伺服器須要求使用 HTTPS", "Shared" : "已分享", "Shared with {recipients}" : "與 {recipients} 分享", - "Error" : "錯誤", - "Error while sharing" : "分享時發生錯誤", - "Error while unsharing" : "取消分享時發生錯誤", "Error setting expiration date" : "設定到期日發生錯誤", "The public link will expire no later than {days} days after it is created" : "這個公開連結會在 {days} 天內失效", "Set expiration date" : "指定到期日", @@ -107,10 +104,10 @@ OC.L10N.register( "Share link" : "分享連結", "Link" : "連結", "Password protect" : "密碼保護", - "Allow upload and editing" : "允許上傳及編輯", "Allow editing" : "允許編輯", "Email link to person" : "將連結 email 給別人", "Send" : "寄出", + "Allow upload and editing" : "允許上傳及編輯", "Shared with you and the group {group} by {owner}" : "由 {owner} 分享給您和 {group}", "Shared with you by {owner}" : "{owner} 已經和您分享", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} 分享了連結", @@ -118,6 +115,7 @@ OC.L10N.register( "remote" : "遠端", "Unshare" : "取消分享", "Could not unshare" : "無法取消分享", + "Error while sharing" : "分享時發生錯誤", "Share details could not be loaded for this item." : "無法載入分享細節", "No users or groups found for {search}" : "沒有群組或使用者符合 {search}", "No users found for {search}" : "沒有使用者符合 {search}", @@ -125,6 +123,7 @@ OC.L10N.register( "{sharee} (group)" : "{sharee} (群組)", "{sharee} (remote)" : "{sharee} (遠端)", "Share" : "分享", + "Error" : "錯誤", "Error removing share" : "移除分享時發生錯誤", "Non-existing tag #{tag}" : "不存在的標籤 #{tag}", "restricted" : "受限", @@ -133,12 +132,6 @@ OC.L10N.register( "Delete" : "刪除", "Rename" : "重新命名", "Collaborative tags" : "標籤", - "The object type is not specified." : "未指定物件類型", - "Enter new" : "輸入新的", - "Add" : "增加", - "Edit tags" : "編輯標籤", - "Error loading dialog template: {error}" : "載入對話樣板出錯:{error}", - "No tags selected for deletion." : "沒有選擇要刪除的標籤", "unknown text" : "未知的文字", "Hello world!" : "哈囉 世界!", "sunny" : "晴朗的", @@ -244,9 +237,16 @@ OC.L10N.register( "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "您的檔案是加密的,如果您沒有啟用救援金鑰,當您重設密碼之後將無法存取您的資料。<br/>如果不確定該怎麼做,請聯絡您的系統管理員。<br/>您確定要繼續嗎?", "Ok" : "好", "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 檔案並未生效,我們強烈建議您設定您的網頁伺服器,拒絕資料目錄的公開存取,或者將您的資料目錄移出網頁伺服器根目錄。", + "Error while unsharing" : "取消分享時發生錯誤", "can reshare" : "允許轉分享", "can edit" : "可編輯", "access control" : "存取控制", + "The object type is not specified." : "未指定物件類型", + "Enter new" : "輸入新的", + "Add" : "增加", + "Edit tags" : "編輯標籤", + "Error loading dialog template: {error}" : "載入對話樣板出錯:{error}", + "No tags selected for deletion." : "沒有選擇要刪除的標籤", "The update was successful. Redirecting you to Nextcloud now." : "更新成功,即將重導向至 Nextcloud", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "嗨,\n\n%s 和你分享了 %s ,到這裡看它:%s\n", "The share will expire on %s." : "這個分享將會於 %s 過期", diff --git a/core/l10n/zh_TW.json b/core/l10n/zh_TW.json index 5963fa4dd1b..ac4a81b52cd 100644 --- a/core/l10n/zh_TW.json +++ b/core/l10n/zh_TW.json @@ -88,9 +88,6 @@ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "您正在藉由 HTTP 訪問此網站,如我們的<a href=\"{docUrl}\">安全性提示</a>所述,我們強烈建議設定您的伺服器須要求使用 HTTPS", "Shared" : "已分享", "Shared with {recipients}" : "與 {recipients} 分享", - "Error" : "錯誤", - "Error while sharing" : "分享時發生錯誤", - "Error while unsharing" : "取消分享時發生錯誤", "Error setting expiration date" : "設定到期日發生錯誤", "The public link will expire no later than {days} days after it is created" : "這個公開連結會在 {days} 天內失效", "Set expiration date" : "指定到期日", @@ -105,10 +102,10 @@ "Share link" : "分享連結", "Link" : "連結", "Password protect" : "密碼保護", - "Allow upload and editing" : "允許上傳及編輯", "Allow editing" : "允許編輯", "Email link to person" : "將連結 email 給別人", "Send" : "寄出", + "Allow upload and editing" : "允許上傳及編輯", "Shared with you and the group {group} by {owner}" : "由 {owner} 分享給您和 {group}", "Shared with you by {owner}" : "{owner} 已經和您分享", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} 分享了連結", @@ -116,6 +113,7 @@ "remote" : "遠端", "Unshare" : "取消分享", "Could not unshare" : "無法取消分享", + "Error while sharing" : "分享時發生錯誤", "Share details could not be loaded for this item." : "無法載入分享細節", "No users or groups found for {search}" : "沒有群組或使用者符合 {search}", "No users found for {search}" : "沒有使用者符合 {search}", @@ -123,6 +121,7 @@ "{sharee} (group)" : "{sharee} (群組)", "{sharee} (remote)" : "{sharee} (遠端)", "Share" : "分享", + "Error" : "錯誤", "Error removing share" : "移除分享時發生錯誤", "Non-existing tag #{tag}" : "不存在的標籤 #{tag}", "restricted" : "受限", @@ -131,12 +130,6 @@ "Delete" : "刪除", "Rename" : "重新命名", "Collaborative tags" : "標籤", - "The object type is not specified." : "未指定物件類型", - "Enter new" : "輸入新的", - "Add" : "增加", - "Edit tags" : "編輯標籤", - "Error loading dialog template: {error}" : "載入對話樣板出錯:{error}", - "No tags selected for deletion." : "沒有選擇要刪除的標籤", "unknown text" : "未知的文字", "Hello world!" : "哈囉 世界!", "sunny" : "晴朗的", @@ -242,9 +235,16 @@ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "您的檔案是加密的,如果您沒有啟用救援金鑰,當您重設密碼之後將無法存取您的資料。<br/>如果不確定該怎麼做,請聯絡您的系統管理員。<br/>您確定要繼續嗎?", "Ok" : "好", "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 檔案並未生效,我們強烈建議您設定您的網頁伺服器,拒絕資料目錄的公開存取,或者將您的資料目錄移出網頁伺服器根目錄。", + "Error while unsharing" : "取消分享時發生錯誤", "can reshare" : "允許轉分享", "can edit" : "可編輯", "access control" : "存取控制", + "The object type is not specified." : "未指定物件類型", + "Enter new" : "輸入新的", + "Add" : "增加", + "Edit tags" : "編輯標籤", + "Error loading dialog template: {error}" : "載入對話樣板出錯:{error}", + "No tags selected for deletion." : "沒有選擇要刪除的標籤", "The update was successful. Redirecting you to Nextcloud now." : "更新成功,即將重導向至 Nextcloud", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "嗨,\n\n%s 和你分享了 %s ,到這裡看它:%s\n", "The share will expire on %s." : "這個分享將會於 %s 過期", diff --git a/core/shipped.json b/core/shipped.json index 679e1c7f706..d064cbb5c37 100644 --- a/core/shipped.json +++ b/core/shipped.json @@ -2,19 +2,14 @@ "shippedApps": [ "activity", "admin_audit", - "bruteforcesettings", "comments", "dav", "encryption", - "external", "federatedfilesharing", "federation", "files", - "files_accesscontrol", - "files_automatedtagging", "files_external", "files_pdfviewer", - "files_retention", "files_sharing", "files_texteditor", "files_trashbin", diff --git a/core/templates/layout.guest.php b/core/templates/layout.guest.php index 1e2559d6960..2c2373d53aa 100644 --- a/core/templates/layout.guest.php +++ b/core/templates/layout.guest.php @@ -40,6 +40,10 @@ <h1 class="hidden-visually"> <?php p($theme->getName()); ?> </h1> + <?php if(\OC::$server->getConfig()->getSystemValue('installed', false) + && \OC::$server->getConfig()->getAppValue('theming', 'logoMime', false)): ?> + <img src="<?php p($theme->getLogo()); ?>"/> + <?php endif; ?> </div> <div id="logo-claim" style="display:none;"><?php p($theme->getLogoClaim()); ?></div> </div> diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index 426ed4b1125..978534b869c 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -85,7 +85,7 @@ </ul> <nav role="navigation"> - <div id="navigation"> + <div id="navigation" style="display: none;"> <div id="apps"> <ul> <?php foreach($_['navigation'] as $entry): ?> @@ -134,7 +134,7 @@ </div> <div id="expandDisplayName" class="icon-settings-white"></div> </div> - <div id="expanddiv"> + <div id="expanddiv" style="display:none;"> <ul> <?php foreach($_['settingsnavigation'] as $entry):?> <li> diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index 2151aeff33b..703d624397c 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -488,6 +488,7 @@ return array( 'OC\\DB\\MigrationException' => $baseDir . '/lib/private/DB/MigrationException.php', 'OC\\DB\\Migrator' => $baseDir . '/lib/private/DB/Migrator.php', 'OC\\DB\\MySQLMigrator' => $baseDir . '/lib/private/DB/MySQLMigrator.php', + 'OC\\DB\\MySqlTools' => $baseDir . '/lib/private/DB/MySqlTools.php', 'OC\\DB\\NoCheckMigrator' => $baseDir . '/lib/private/DB/NoCheckMigrator.php', 'OC\\DB\\OCSqlitePlatform' => $baseDir . '/lib/private/DB/OCSqlitePlatform.php', 'OC\\DB\\OracleConnection' => $baseDir . '/lib/private/DB/OracleConnection.php', diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index ec5190bc71d..ff7118e5bb1 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -518,6 +518,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\DB\\MigrationException' => __DIR__ . '/../../..' . '/lib/private/DB/MigrationException.php', 'OC\\DB\\Migrator' => __DIR__ . '/../../..' . '/lib/private/DB/Migrator.php', 'OC\\DB\\MySQLMigrator' => __DIR__ . '/../../..' . '/lib/private/DB/MySQLMigrator.php', + 'OC\\DB\\MySqlTools' => __DIR__ . '/../../..' . '/lib/private/DB/MySqlTools.php', 'OC\\DB\\NoCheckMigrator' => __DIR__ . '/../../..' . '/lib/private/DB/NoCheckMigrator.php', 'OC\\DB\\OCSqlitePlatform' => __DIR__ . '/../../..' . '/lib/private/DB/OCSqlitePlatform.php', 'OC\\DB\\OracleConnection' => __DIR__ . '/../../..' . '/lib/private/DB/OracleConnection.php', diff --git a/lib/l10n/cs.js b/lib/l10n/cs.js index cda0cb78540..05f0618de90 100644 --- a/lib/l10n/cs.js +++ b/lib/l10n/cs.js @@ -203,6 +203,7 @@ OC.L10N.register( "Please upgrade your database version" : "Aktualizujte prosím verzi své databáze", "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Změňte prosím práva na 0770, aby adresář nemohl být otevřen ostatními uživateli.", "Your data directory is readable by other users" : "Váš datový adresář mohou číst ostatní užovatelé", + "Your data directory must be an absolute path" : "Váš datový adresář musí být absolutní cesta", "Check the value of \"datadirectory\" in your configuration" : "Ověřte hodnotu \"datadirectory\" ve své konfiguraci", "Your data directory is invalid" : "Váš datový adresář je neplatný", "Please check that the data directory contains a file \".ocdata\" in its root." : "Ověřte prosím, že kořenový adresář s daty obsahuje soubor \".ocdata\".", diff --git a/lib/l10n/cs.json b/lib/l10n/cs.json index 6aaede647c8..0383e0803f6 100644 --- a/lib/l10n/cs.json +++ b/lib/l10n/cs.json @@ -201,6 +201,7 @@ "Please upgrade your database version" : "Aktualizujte prosím verzi své databáze", "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Změňte prosím práva na 0770, aby adresář nemohl být otevřen ostatními uživateli.", "Your data directory is readable by other users" : "Váš datový adresář mohou číst ostatní užovatelé", + "Your data directory must be an absolute path" : "Váš datový adresář musí být absolutní cesta", "Check the value of \"datadirectory\" in your configuration" : "Ověřte hodnotu \"datadirectory\" ve své konfiguraci", "Your data directory is invalid" : "Váš datový adresář je neplatný", "Please check that the data directory contains a file \".ocdata\" in its root." : "Ověřte prosím, že kořenový adresář s daty obsahuje soubor \".ocdata\".", diff --git a/lib/l10n/el.js b/lib/l10n/el.js index 546e3b38386..9f4faf09873 100644 --- a/lib/l10n/el.js +++ b/lib/l10n/el.js @@ -11,6 +11,8 @@ OC.L10N.register( "%1$s, %2$s and %3$s" : "%1$s, %2$s και %3$s", "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s και %4$s", "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s και %5$s", + "Enterprise bundle" : "Πακέτο επιχειρήσεων", + "Groupware bundle" : "Ομάδα δέσμης", "PHP %s or higher is required." : "PHP %s ή νεώτερη απαιτείται.", "PHP with a version lower than %s is required." : "Απαιτείται PHP παλαιότερη από την έκδοση %s.", "%sbit or higher PHP required." : "%sbit απαιτείται νεώτερη έκδοση PHP.", @@ -141,6 +143,7 @@ OC.L10N.register( "A valid username must be provided" : "Πρέπει να δοθεί έγκυρο όνομα χρήστη", "A valid password must be provided" : "Πρέπει να δοθεί έγκυρο συνθηματικό", "The username is already being used" : "Το όνομα χρήστη είναι κατειλημμένο", + "Login canceled by app" : "Η είσοδος ακυρώθηκε από την εφαρμογή", "No app name specified" : "Δεν προδιορίστηκε όνομα εφαρμογής", "App '%s' could not be installed!" : "Δεν μπορεί να εγκατασταθεί η εφαρμογή '%s'!", "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "Αυτή η εφαρμογή %s δεν μπορεί να εγκατασταθεί διότι δεν πληρούνται οι ακόλουθες εξαρτήσεις: %s", diff --git a/lib/l10n/el.json b/lib/l10n/el.json index b632b33b7d8..569845c8249 100644 --- a/lib/l10n/el.json +++ b/lib/l10n/el.json @@ -9,6 +9,8 @@ "%1$s, %2$s and %3$s" : "%1$s, %2$s και %3$s", "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s και %4$s", "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s και %5$s", + "Enterprise bundle" : "Πακέτο επιχειρήσεων", + "Groupware bundle" : "Ομάδα δέσμης", "PHP %s or higher is required." : "PHP %s ή νεώτερη απαιτείται.", "PHP with a version lower than %s is required." : "Απαιτείται PHP παλαιότερη από την έκδοση %s.", "%sbit or higher PHP required." : "%sbit απαιτείται νεώτερη έκδοση PHP.", @@ -139,6 +141,7 @@ "A valid username must be provided" : "Πρέπει να δοθεί έγκυρο όνομα χρήστη", "A valid password must be provided" : "Πρέπει να δοθεί έγκυρο συνθηματικό", "The username is already being used" : "Το όνομα χρήστη είναι κατειλημμένο", + "Login canceled by app" : "Η είσοδος ακυρώθηκε από την εφαρμογή", "No app name specified" : "Δεν προδιορίστηκε όνομα εφαρμογής", "App '%s' could not be installed!" : "Δεν μπορεί να εγκατασταθεί η εφαρμογή '%s'!", "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "Αυτή η εφαρμογή %s δεν μπορεί να εγκατασταθεί διότι δεν πληρούνται οι ακόλουθες εξαρτήσεις: %s", diff --git a/lib/l10n/es.js b/lib/l10n/es.js index 7bc6a320947..f6d75043c44 100644 --- a/lib/l10n/es.js +++ b/lib/l10n/es.js @@ -12,6 +12,9 @@ OC.L10N.register( "%1$s, %2$s and %3$s" : "%1$s, %2$s y %3$s", "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s, y %4$s", "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s y %5$s", + "Enterprise bundle" : "Conjunto para empresas", + "Groupware bundle" : "Conjunto de groupware", + "Social sharing bundle" : "Conjunto para compartir en redes", "PHP %s or higher is required." : "Se requiere PHP %s o superior.", "PHP with a version lower than %s is required." : "PHP con una versión inferior que %s la requerida.", "%sbit or higher PHP required." : "Se requiere PHP %sbit o superior.", @@ -36,6 +39,7 @@ OC.L10N.register( "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"], "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"], "seconds ago" : "hace segundos", + "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "El módulo con ID %s no existe. Por favor, actívalo en la configuración de apps o contacta con tu administrador.", "File name is a reserved word" : "El nombre de archivo es una palabra reservada", "File name contains at least one invalid character" : "El nombre del archivo contiene al menos un carácter inválido", "File name is too long" : "El nombre del archivo es demasiado largo", @@ -50,6 +54,7 @@ OC.L10N.register( "Admin" : "Administración", "APCu" : "APCu", "Redis" : "Redis", + "Basic settings" : "Ajustes Basicas", "Sharing" : "Compartir", "Security" : "Seguridad", "Encryption" : "Cifrado", @@ -156,6 +161,7 @@ OC.L10N.register( "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "Solo los siguientes caracteres están permitidos en un nombre de usuario: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"", "A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido", "Username contains whitespace at the beginning or at the end" : "El nombre de usuario contiene espacios en blanco al principio o al final", + "Username must not consist of dots only" : "El nombre de usuario no debe consistir solo de puntos", "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", "User disabled" : "Usuario deshabilitado", diff --git a/lib/l10n/es.json b/lib/l10n/es.json index 37aa8d43219..6de910eef58 100644 --- a/lib/l10n/es.json +++ b/lib/l10n/es.json @@ -10,6 +10,9 @@ "%1$s, %2$s and %3$s" : "%1$s, %2$s y %3$s", "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s, y %4$s", "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s y %5$s", + "Enterprise bundle" : "Conjunto para empresas", + "Groupware bundle" : "Conjunto de groupware", + "Social sharing bundle" : "Conjunto para compartir en redes", "PHP %s or higher is required." : "Se requiere PHP %s o superior.", "PHP with a version lower than %s is required." : "PHP con una versión inferior que %s la requerida.", "%sbit or higher PHP required." : "Se requiere PHP %sbit o superior.", @@ -34,6 +37,7 @@ "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"], "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"], "seconds ago" : "hace segundos", + "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "El módulo con ID %s no existe. Por favor, actívalo en la configuración de apps o contacta con tu administrador.", "File name is a reserved word" : "El nombre de archivo es una palabra reservada", "File name contains at least one invalid character" : "El nombre del archivo contiene al menos un carácter inválido", "File name is too long" : "El nombre del archivo es demasiado largo", @@ -48,6 +52,7 @@ "Admin" : "Administración", "APCu" : "APCu", "Redis" : "Redis", + "Basic settings" : "Ajustes Basicas", "Sharing" : "Compartir", "Security" : "Seguridad", "Encryption" : "Cifrado", @@ -154,6 +159,7 @@ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "Solo los siguientes caracteres están permitidos en un nombre de usuario: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"", "A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido", "Username contains whitespace at the beginning or at the end" : "El nombre de usuario contiene espacios en blanco al principio o al final", + "Username must not consist of dots only" : "El nombre de usuario no debe consistir solo de puntos", "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", "User disabled" : "Usuario deshabilitado", diff --git a/lib/l10n/es_MX.js b/lib/l10n/es_MX.js index f509015ea46..5fd1ce54184 100644 --- a/lib/l10n/es_MX.js +++ b/lib/l10n/es_MX.js @@ -54,6 +54,7 @@ OC.L10N.register( "Admin" : "Administración", "APCu" : "APCu", "Redis" : "Redis", + "Basic settings" : "Ajustes básicos", "Sharing" : "Compartiendo", "Security" : "Seguridad", "Encryption" : "Encripción", diff --git a/lib/l10n/es_MX.json b/lib/l10n/es_MX.json index d32baedd841..7c4db901384 100644 --- a/lib/l10n/es_MX.json +++ b/lib/l10n/es_MX.json @@ -52,6 +52,7 @@ "Admin" : "Administración", "APCu" : "APCu", "Redis" : "Redis", + "Basic settings" : "Ajustes básicos", "Sharing" : "Compartiendo", "Security" : "Seguridad", "Encryption" : "Encripción", diff --git a/lib/l10n/ko.js b/lib/l10n/ko.js new file mode 100644 index 00000000000..082d9ab656f --- /dev/null +++ b/lib/l10n/ko.js @@ -0,0 +1,226 @@ +OC.L10N.register( + "lib", + { + "Cannot write into \"config\" directory!" : "\"config\" 디렉터리에 기록할 수 없습니다!", + "This can usually be fixed by giving the webserver write access to the config directory" : "config 디렉터리에 웹 서버 쓰기 권한을 주면 해결됩니다", + "See %s" : "%s 보기", + "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "%sconfig 디렉터리에 웹 서버 쓰기 권한%s을 주면 해결됩니다.", + "The files of the app %$1s were not replaced correctly. Make sure it is a version compatible with the server." : "앱 %1$s의 파일이 올바르게 교체되지 않았습니다. 서버와 호환되는 버전인지 확인하십시오.", + "Sample configuration detected" : "예제 설정 감지됨", + "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "예제 설정이 복사된 것 같습니다. 올바르게 작동하지 않을 수도 있기 때문에 지원되지 않습니다. config.php를 변경하기 전 문서를 읽어 보십시오", + "%1$s and %2$s" : "%1$s 및 %2$s", + "%1$s, %2$s and %3$s" : "%1$s, %2$s 및 %3$s", + "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s 및 %4$s", + "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s 및 %5$s", + "Enterprise bundle" : "엔터프라이즈 번들", + "Groupware bundle" : "그룹웨어 번들", + "Social sharing bundle" : "소셜 공유 번들", + "PHP %s or higher is required." : "PHP 버전 %s 이상이 필요합니다.", + "PHP with a version lower than %s is required." : "PHP 버전 %s 미만이 필요합니다.", + "%sbit or higher PHP required." : "%s비트 이상의 PHP가 필요합니다.", + "Following databases are supported: %s" : "다음 데이터베이스를 지원합니다: %s", + "The command line tool %s could not be found" : "명령행 도구 %s을(를) 찾을 수 없습니다", + "The library %s is not available." : "%s 라이브러리를 사용할 수 없습니다.", + "Library %s with a version higher than %s is required - available version %s." : "%s 라이브러리의 버전 %s 이상이 필요합니다. 사용 가능한 버전은 %s입니다.", + "Library %s with a version lower than %s is required - available version %s." : "%s 라이브러리의 버전 %s 미만이 필요합니다. 사용 가능한 버전은 %s입니다.", + "Following platforms are supported: %s" : "다음 플랫폼을 지원합니다: %s", + "Server version %s or higher is required." : "서버 버전 %s 이상이 필요합니다.", + "Server version %s or lower is required." : "서버 버전 %s 미만이 필요합니다.", + "Unknown filetype" : "알 수 없는 파일 형식", + "Invalid image" : "잘못된 사진", + "Avatar image is not square" : "아바타 사진이 정사각형이 아님", + "today" : "오늘", + "yesterday" : "어제", + "_%n day ago_::_%n days ago_" : ["%n일 전"], + "last month" : "지난 달", + "_%n month ago_::_%n months ago_" : ["%n달 전 "], + "last year" : "작년", + "_%n year ago_::_%n years ago_" : ["%n년 전"], + "_%n hour ago_::_%n hours ago_" : ["%n시간 전"], + "_%n minute ago_::_%n minutes ago_" : ["%n분 전"], + "seconds ago" : "초 전", + "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "ID: %s인 모듈이 존재하지 않습니다. 앱 설정에서 확인하거나 시스템 관리자에게 연락하십시오.", + "File name is a reserved word" : "파일 이름이 예약된 단어임", + "File name contains at least one invalid character" : "파일 이름에 잘못된 글자가 한 자 이상 있음", + "File name is too long" : "파일 이름이 너무 김", + "Dot files are not allowed" : "점으로 시작하는 파일은 허용되지 않음", + "Empty filename is not allowed" : "파일 이름을 비워 둘 수 없음", + "This is an automatically sent email, please do not reply." : "자동으로 전송한 이메일입니다. 답장하지 마십시오.", + "Help" : "도움말", + "Apps" : "앱", + "Personal" : "개인", + "Log out" : "로그아웃", + "Users" : "사용자", + "Admin" : "관리자", + "APCu" : "APCu", + "Redis" : "Redis", + "Basic settings" : "기본 설정", + "Sharing" : "공유", + "Security" : "보안", + "Encryption" : "암호화", + "Additional settings" : "고급 설정", + "Tips & tricks" : "팁과 추가 정보", + "%s enter the database username and name." : "%s 데이터베이스 사용자 이름과 이름을 입력해 주십시오.", + "%s enter the database username." : "%s 데이터베이스 사용자 이름을 입력해 주십시오.", + "%s enter the database name." : "%s 데이터베이스 이름을 입력하십시오.", + "%s you may not use dots in the database name" : "%s 데이터베이스 이름에는 마침표를 사용할 수 없습니다", + "Oracle connection could not be established" : "Oracle 연결을 수립할 수 없습니다.", + "Oracle username and/or password not valid" : "Oracle 사용자 이름이나 암호가 잘못되었습니다.", + "DB Error: \"%s\"" : "DB 오류: \"%s\"", + "Offending command was: \"%s\"" : "잘못된 명령: \"%s\"", + "You need to enter details of an existing account." : "존재하는 계정 정보를 입력해야 합니다.", + "Offending command was: \"%s\", name: %s, password: %s" : "잘못된 명령: \"%s\", 이름: %s, 암호: %s", + "PostgreSQL username and/or password not valid" : "PostgreSQL 사용자 이름 또는 암호가 잘못되었습니다", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X은 지원하지 않으며 %s이(가) 이 플랫폼에서 올바르게 작동하지 않을 수도 있습니다. 본인 책임으로 사용하십시오! ", + "For the best results, please consider using a GNU/Linux server instead." : "더 좋은 결과를 얻으려면 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." : "%s 인스턴스가 32비트 PHP 환경에서 실행 중이고 php.ini에 open_basedir이 설정되어 있습니다. 4GB 이상의 파일 처리에 문제가 생길 수 있으므로 추천하지 않습니다.", + "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "php.ini의 open_basedir 설정을 삭제하거나 64비트 PHP로 전환하십시오.", + "Set an admin username." : "관리자의 사용자 이름을 설정합니다.", + "Set an admin password." : "관리자의 암호를 설정합니다.", + "Can't create or write into the data directory %s" : "데이터 디렉터리 %s을(를) 만들거나 기록할 수 없음", + "Invalid Federated Cloud ID" : "잘못된 연합 클라우드 ID", + "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을(를) 공유할 수 있는 권한이 없습니다", + "Sharing %s failed, because you can not share with yourself" : "%s을(를) 공유할 수 없습니다. 자기 자신과 공유할 수 없습니다", + "Sharing %s failed, because the user %s does not exist" : "%s을(를) 공유할 수 없습니다. 사용자 %s이(가) 존재하지 않습니다", + "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "%s을(를) 공유할 수 없습니다. 사용자 %s 님은 %s 님이 회원인 어떠한 그룹에도 속해 있지 않습니다", + "Sharing %s failed, because this item is already shared with %s" : "%s을(를) 공유할 수 없습니다. 이미 %s 님과 공유되어 있습니다", + "Sharing %s failed, because this item is already shared with user %s" : "%s을(를) 공유할 수 없습니다. 이 항목을 이미 %s 님과 공유하고 있습니다", + "Sharing %s failed, because the group %s does not exist" : "%s을(를) 공유할 수 없습니다. 그룹 %s이(가) 존재하지 않습니다", + "Sharing %s failed, because %s is not a member of the group %s" : "%s을(를) 공유할 수 없습니다. %s 님이 그룹 %s의 구성원이 아닙니다", + "You need to provide a password to create a public link, only protected links are allowed" : "공개 링크를 만들려면 암호를 입력해야 합니다. 보호된 링크만 사용 가능합니다", + "Sharing %s failed, because sharing with links is not allowed" : "%s을(를) 공유할 수 없습니다. 링크 공유가 허용되지 않았습니다", + "Not allowed to create a federated share with the same user" : "같은 사용자와 연합 공유를 만들 수 없음", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "%s을(를) 공유할 수 없습니다. %s을(를) 찾을 수 없습니다. 서버에 접근하지 못할 수도 있습니다.", + "Share type %s is not valid for %s" : "공유 형식 %s을(를) %s에 대해서 사용할 수 없음", + "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "%s의 권한을 설정할 수 없습니다. %s 님에게 허용된 것 이상의 권한을 필요로 합니다", + "Setting permissions for %s failed, because the item was not found" : "%s의 권한을 설정할 수 없습니다. 항목을 찾을 수 없습니다", + "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "만료 날짜를 설정할 수 없습니다. 최대 공유 허용 기한이 %s입니다.", + "Cannot set expiration date. Expiration date is in the past" : "만료 날짜를 설정할 수 없습니다. 만료 날짜가 과거입니다", + "Cannot clear expiration date. Shares are required to have an expiration date." : "만료 날짜를 비워 둘 수 없습니다. 공유되는 항목에는 만료 날짜가 필요합니다.", + "Sharing backend %s must implement the interface OCP\\Share_Backend" : "공유 백엔드 %s에서 OCP\\Share_Backend 인터페이스를 구현해야 함", + "Sharing backend %s not found" : "공유 백엔드 %s을(를) 찾을 수 없음", + "Sharing backend for %s not found" : "%s의 공유 백엔드를 찾을 수 없음", + "Sharing failed, because the user %s is the original sharer" : "공유할 수 없습니다. 사용자 %s이(가) 원 공유자입니다", + "Sharing %s failed, because the permissions exceed permissions granted to %s" : "%s을(를) 공유할 수 없습니다. %s 님에게 허용된 것 이상의 권한을 필요로 합니다", + "Sharing %s failed, because resharing is not allowed" : "%s을(를) 공유할 수 없습니다. 다시 공유할 수 없습니다", + "Sharing %s failed, because the sharing backend for %s could not find its source" : "%s을(를) 공유할 수 없습니다. %s의 공유 백엔드에서 원본 파일을 찾을 수 없습니다", + "Sharing %s failed, because the file could not be found in the file cache" : "%s을(를) 공유할 수 없습니다. 파일 캐시에서 찾을 수 없습니다", + "Cannot increase permissions of %s" : "%s의 권한을 늘릴 수 없습니다", + "Files can't be shared with delete permissions" : "파일을 삭제 권한으로 공유할 수 없습니다", + "Files can't be shared with create permissions" : "파일을 생성 권한으로 공유할 수 없습니다", + "Expiration date is in the past" : "만료 날짜가 과거입니다", + "Cannot set expiration date more than %s days in the future" : "만료 날짜를 %s일 이상 이후로 설정할 수 없습니다", + "Could not find category \"%s\"" : "분류 \"%s\"을(를) 찾을 수 없습니다", + "Sunday" : "일요일", + "Monday" : "월요일", + "Tuesday" : "화요일", + "Wednesday" : "수요일", + "Thursday" : "목요일", + "Friday" : "금요일", + "Saturday" : "토요일", + "Sun." : "일", + "Mon." : "월", + "Tue." : "화", + "Wed." : "수", + "Thu." : "목", + "Fri." : "금", + "Sat." : "토", + "Su" : "일", + "Mo" : "월", + "Tu" : "화", + "We" : "수", + "Th" : "목", + "Fr" : "금", + "Sa" : "토", + "January" : "1월", + "February" : "2월", + "March" : "3월", + "April" : "4월", + "May" : "5월", + "June" : "6월", + "July" : "7월", + "August" : "8월", + "September" : "9월", + "October" : "10월", + "November" : "11월", + "December" : "12월", + "Jan." : "1월", + "Feb." : "2월", + "Mar." : "3월", + "Apr." : "4월", + "May." : "5월", + "Jun." : "6월", + "Jul." : "7월", + "Aug." : "8월", + "Sep." : "9월", + "Oct." : "10월", + "Nov." : "11월", + "Dec." : "12월", + "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "다음 문자만 이름에 사용할 수 있습니다: \"a-z\", \"A-Z\", \"0-9\", 및 \"_.@-'\"", + "A valid username must be provided" : "올바른 사용자 이름을 입력해야 합니다", + "Username contains whitespace at the beginning or at the end" : "사용자 이름의 시작이나 끝에 공백이 있습니다", + "Username must not consist of dots only" : "사용자 이름에 마침표만 있으면 안 됩니다", + "A valid password must be provided" : "올바른 암호를 입력해야 합니다", + "The username is already being used" : "사용자 이름이 이미 존재합니다", + "User disabled" : "사용자 비활성화", + "Login canceled by app" : "앱 로그인 취소", + "App \"%s\" cannot be installed because appinfo file cannot be read." : "appinfo 파일을 읽을 수 없어서 앱 \"%s\"을(를) 설치할 수 없습니다.", + "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "이 서버 버전과 호환되지 않아서 앱 \"%s\"을(를) 설치할 수 없습니다", + "No app name specified" : "앱 이름이 지정되지 않았음", + "App '%s' could not be installed!" : "앱 '%s'을(를) 설치할 수 없습니다!", + "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "앱 \"%s\"의 다음 의존성을 만족하지 못하므로 설치할 수 없습니다: %s", + "a safe home for all your data" : "내 모든 데이터의 안전한 저장소", + "File is currently busy, please try again later" : "파일이 현재 사용 중, 나중에 다시 시도하십시오", + "Can't read file" : "파일을 읽을 수 없음", + "Application is not enabled" : "앱이 활성화되지 않았습니다", + "Authentication error" : "인증 오류", + "Token expired. Please reload page." : "토큰이 만료되었습니다. 페이지를 새로 고치십시오.", + "Unknown user" : "알려지지 않은 사용자", + "No database drivers (sqlite, mysql, or postgresql) installed." : "데이터베이스 드라이버(sqlite, mysql, postgresql)가 설치되지 않았습니다.", + "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." : "%sapps 디렉터리에 웹 서버 쓰기 권한%s을 주거나 설정 파일에서 앱 스토어를 비활성화하면 해결됩니다.", + "Cannot create \"data\" directory" : "\"data\" 디렉터리를 만들 수 없음", + "This can usually be fixed by <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">giving the webserver write access to the root directory</a>." : "<a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">루트 디렉터리에 웹 서버 쓰기 권한</a>을 주면 해결됩니다.", + "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "%s루트 디렉터리에 웹 서버 쓰기 권한%s을 주면 해결됩니다.", + "Setting locale to %s failed" : "로캘을 %s(으)로 설정할 수 없음", + "Please install one of these locales on your system and restart your webserver." : "다음 중 하나 이상의 로캘을 시스템에 설치하고 웹 서버를 다시 시작하십시오.", + "Please ask your server administrator to install the module." : "서버 관리자에게 모듈 설치를 요청하십시오.", + "PHP module %s not installed." : "PHP 모듈 %s이(가) 설치되지 않았습니다.", + "PHP setting \"%s\" is not set to \"%s\"." : "PHP 설정 \"%s\"이(가) \"%s\"(으)로 설정되어 있지 않습니다.", + "Adjusting this setting in php.ini will make Nextcloud run again" : "php.ini 파일에서 설정을 변경하면 Nextcloud가 다시 실행됩니다", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload 값이 \"%s\"(으)로 설정되어 있으나 \"0\"으로 설정해야 함", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "이 문제를 해결하려면 php.ini에서 <code>mbstring.func_overload</code> 값을 <code>0</code>으로 설정하십시오", + "libxml2 2.7.0 is at least required. Currently %s is installed." : "libxml2 2.7.0 이상이 필요합니다. 현재 버전은 %s입니다.", + "To fix this issue update your libxml2 version and restart your web server." : "이 문제를 해결하려면 libxml2 버전을 업데이트하고 웹 서버를 다시 시작하십시오.", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP에서 인라인 문서 블록을 삭제하도록 설정되어 있습니다. 일부 코어 앱을 사용하지 못할 수도 있습니다.", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Zend OPcache, eAccelerator 같은 캐시/가속기 문제일 수도 있습니다.", + "PHP modules have been installed, but they are still listed as missing?" : "PHP 모듈이 설치되었지만 여전히 없는 것으로 나타납니까?", + "Please ask your server administrator to restart the web server." : "서버 관리자에게 웹 서버 재시작을 요청하십시오.", + "PostgreSQL >= 9 required" : "PostgreSQL 버전 9 이상이 필요합니다", + "Please upgrade your database version" : "데이터베이스 버전을 업그레이드 하십시오", + "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "권한을 0770으로 변경하여 다른 사용자가 읽을 수 없도록 하십시오.", + "Your data directory is readable by other users" : "내 데이터 디렉터리를 다른 사용자가 읽을 수 있음", + "Your data directory must be an absolute path" : "내 데이터 디렉터리는 절대 경로여야 함", + "Check the value of \"datadirectory\" in your configuration" : "설정 중 \"datadirectory\" 값을 확인하십시오", + "Your data directory is invalid" : "내 데이터 디렉터리가 잘못됨", + "Please check that the data directory contains a file \".ocdata\" in its root." : "데이터 디렉터리의 최상위 경로에 \".ocdata\" 파일이 있는지 확인하십시오.", + "Could not obtain lock type %d on \"%s\"." : "잠금 형식 %d을(를) \"%s\"에 대해 얻을 수 없습니다.", + "Storage unauthorized. %s" : "저장소가 인증되지 않았습니다. %s", + "Storage incomplete configuration. %s" : "저장소 설정이 완전하지 않습니다. %s", + "Storage connection error. %s" : "저장소 연결 오류. %s", + "Storage is temporarily not available" : "저장소를 임시로 사용할 수 없음", + "Storage connection timeout. %s" : "저장소 연결 시간 초과. %s", + "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "ID: %s인 모듈이 존재하지 않습니다. 앱 설정에서 활성화하거나 관리자에게 연락하십시오.", + "Server settings" : "서버 설정", + "You need to enter either an existing account or the administrator." : "기존 계정이나 administrator(관리자)를 입력해야 합니다.", + "%s shared »%s« with you" : "%s 님이 %s을(를) 공유했습니다", + "%s via %s" : "%s(%s 경유)", + "Cannot create \"data\" directory (%s)" : "\"data\" 디렉터리를 만들 수 없음(%s)", + "Data directory (%s) is readable by other users" : "데이터 디렉터리(%s)를 다른 사용자가 읽을 수 있음", + "Data directory (%s) must be an absolute path" : "데이터 디렉터리(%s)는 반드시 절대 경로여야 함", + "Data directory (%s) is invalid" : "데이터 디렉터리(%s)가 잘못됨" +}, +"nplurals=1; plural=0;"); diff --git a/lib/l10n/ko.json b/lib/l10n/ko.json new file mode 100644 index 00000000000..afb52119f2f --- /dev/null +++ b/lib/l10n/ko.json @@ -0,0 +1,224 @@ +{ "translations": { + "Cannot write into \"config\" directory!" : "\"config\" 디렉터리에 기록할 수 없습니다!", + "This can usually be fixed by giving the webserver write access to the config directory" : "config 디렉터리에 웹 서버 쓰기 권한을 주면 해결됩니다", + "See %s" : "%s 보기", + "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "%sconfig 디렉터리에 웹 서버 쓰기 권한%s을 주면 해결됩니다.", + "The files of the app %$1s were not replaced correctly. Make sure it is a version compatible with the server." : "앱 %1$s의 파일이 올바르게 교체되지 않았습니다. 서버와 호환되는 버전인지 확인하십시오.", + "Sample configuration detected" : "예제 설정 감지됨", + "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "예제 설정이 복사된 것 같습니다. 올바르게 작동하지 않을 수도 있기 때문에 지원되지 않습니다. config.php를 변경하기 전 문서를 읽어 보십시오", + "%1$s and %2$s" : "%1$s 및 %2$s", + "%1$s, %2$s and %3$s" : "%1$s, %2$s 및 %3$s", + "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s 및 %4$s", + "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s 및 %5$s", + "Enterprise bundle" : "엔터프라이즈 번들", + "Groupware bundle" : "그룹웨어 번들", + "Social sharing bundle" : "소셜 공유 번들", + "PHP %s or higher is required." : "PHP 버전 %s 이상이 필요합니다.", + "PHP with a version lower than %s is required." : "PHP 버전 %s 미만이 필요합니다.", + "%sbit or higher PHP required." : "%s비트 이상의 PHP가 필요합니다.", + "Following databases are supported: %s" : "다음 데이터베이스를 지원합니다: %s", + "The command line tool %s could not be found" : "명령행 도구 %s을(를) 찾을 수 없습니다", + "The library %s is not available." : "%s 라이브러리를 사용할 수 없습니다.", + "Library %s with a version higher than %s is required - available version %s." : "%s 라이브러리의 버전 %s 이상이 필요합니다. 사용 가능한 버전은 %s입니다.", + "Library %s with a version lower than %s is required - available version %s." : "%s 라이브러리의 버전 %s 미만이 필요합니다. 사용 가능한 버전은 %s입니다.", + "Following platforms are supported: %s" : "다음 플랫폼을 지원합니다: %s", + "Server version %s or higher is required." : "서버 버전 %s 이상이 필요합니다.", + "Server version %s or lower is required." : "서버 버전 %s 미만이 필요합니다.", + "Unknown filetype" : "알 수 없는 파일 형식", + "Invalid image" : "잘못된 사진", + "Avatar image is not square" : "아바타 사진이 정사각형이 아님", + "today" : "오늘", + "yesterday" : "어제", + "_%n day ago_::_%n days ago_" : ["%n일 전"], + "last month" : "지난 달", + "_%n month ago_::_%n months ago_" : ["%n달 전 "], + "last year" : "작년", + "_%n year ago_::_%n years ago_" : ["%n년 전"], + "_%n hour ago_::_%n hours ago_" : ["%n시간 전"], + "_%n minute ago_::_%n minutes ago_" : ["%n분 전"], + "seconds ago" : "초 전", + "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "ID: %s인 모듈이 존재하지 않습니다. 앱 설정에서 확인하거나 시스템 관리자에게 연락하십시오.", + "File name is a reserved word" : "파일 이름이 예약된 단어임", + "File name contains at least one invalid character" : "파일 이름에 잘못된 글자가 한 자 이상 있음", + "File name is too long" : "파일 이름이 너무 김", + "Dot files are not allowed" : "점으로 시작하는 파일은 허용되지 않음", + "Empty filename is not allowed" : "파일 이름을 비워 둘 수 없음", + "This is an automatically sent email, please do not reply." : "자동으로 전송한 이메일입니다. 답장하지 마십시오.", + "Help" : "도움말", + "Apps" : "앱", + "Personal" : "개인", + "Log out" : "로그아웃", + "Users" : "사용자", + "Admin" : "관리자", + "APCu" : "APCu", + "Redis" : "Redis", + "Basic settings" : "기본 설정", + "Sharing" : "공유", + "Security" : "보안", + "Encryption" : "암호화", + "Additional settings" : "고급 설정", + "Tips & tricks" : "팁과 추가 정보", + "%s enter the database username and name." : "%s 데이터베이스 사용자 이름과 이름을 입력해 주십시오.", + "%s enter the database username." : "%s 데이터베이스 사용자 이름을 입력해 주십시오.", + "%s enter the database name." : "%s 데이터베이스 이름을 입력하십시오.", + "%s you may not use dots in the database name" : "%s 데이터베이스 이름에는 마침표를 사용할 수 없습니다", + "Oracle connection could not be established" : "Oracle 연결을 수립할 수 없습니다.", + "Oracle username and/or password not valid" : "Oracle 사용자 이름이나 암호가 잘못되었습니다.", + "DB Error: \"%s\"" : "DB 오류: \"%s\"", + "Offending command was: \"%s\"" : "잘못된 명령: \"%s\"", + "You need to enter details of an existing account." : "존재하는 계정 정보를 입력해야 합니다.", + "Offending command was: \"%s\", name: %s, password: %s" : "잘못된 명령: \"%s\", 이름: %s, 암호: %s", + "PostgreSQL username and/or password not valid" : "PostgreSQL 사용자 이름 또는 암호가 잘못되었습니다", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X은 지원하지 않으며 %s이(가) 이 플랫폼에서 올바르게 작동하지 않을 수도 있습니다. 본인 책임으로 사용하십시오! ", + "For the best results, please consider using a GNU/Linux server instead." : "더 좋은 결과를 얻으려면 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." : "%s 인스턴스가 32비트 PHP 환경에서 실행 중이고 php.ini에 open_basedir이 설정되어 있습니다. 4GB 이상의 파일 처리에 문제가 생길 수 있으므로 추천하지 않습니다.", + "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "php.ini의 open_basedir 설정을 삭제하거나 64비트 PHP로 전환하십시오.", + "Set an admin username." : "관리자의 사용자 이름을 설정합니다.", + "Set an admin password." : "관리자의 암호를 설정합니다.", + "Can't create or write into the data directory %s" : "데이터 디렉터리 %s을(를) 만들거나 기록할 수 없음", + "Invalid Federated Cloud ID" : "잘못된 연합 클라우드 ID", + "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을(를) 공유할 수 있는 권한이 없습니다", + "Sharing %s failed, because you can not share with yourself" : "%s을(를) 공유할 수 없습니다. 자기 자신과 공유할 수 없습니다", + "Sharing %s failed, because the user %s does not exist" : "%s을(를) 공유할 수 없습니다. 사용자 %s이(가) 존재하지 않습니다", + "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "%s을(를) 공유할 수 없습니다. 사용자 %s 님은 %s 님이 회원인 어떠한 그룹에도 속해 있지 않습니다", + "Sharing %s failed, because this item is already shared with %s" : "%s을(를) 공유할 수 없습니다. 이미 %s 님과 공유되어 있습니다", + "Sharing %s failed, because this item is already shared with user %s" : "%s을(를) 공유할 수 없습니다. 이 항목을 이미 %s 님과 공유하고 있습니다", + "Sharing %s failed, because the group %s does not exist" : "%s을(를) 공유할 수 없습니다. 그룹 %s이(가) 존재하지 않습니다", + "Sharing %s failed, because %s is not a member of the group %s" : "%s을(를) 공유할 수 없습니다. %s 님이 그룹 %s의 구성원이 아닙니다", + "You need to provide a password to create a public link, only protected links are allowed" : "공개 링크를 만들려면 암호를 입력해야 합니다. 보호된 링크만 사용 가능합니다", + "Sharing %s failed, because sharing with links is not allowed" : "%s을(를) 공유할 수 없습니다. 링크 공유가 허용되지 않았습니다", + "Not allowed to create a federated share with the same user" : "같은 사용자와 연합 공유를 만들 수 없음", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "%s을(를) 공유할 수 없습니다. %s을(를) 찾을 수 없습니다. 서버에 접근하지 못할 수도 있습니다.", + "Share type %s is not valid for %s" : "공유 형식 %s을(를) %s에 대해서 사용할 수 없음", + "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "%s의 권한을 설정할 수 없습니다. %s 님에게 허용된 것 이상의 권한을 필요로 합니다", + "Setting permissions for %s failed, because the item was not found" : "%s의 권한을 설정할 수 없습니다. 항목을 찾을 수 없습니다", + "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "만료 날짜를 설정할 수 없습니다. 최대 공유 허용 기한이 %s입니다.", + "Cannot set expiration date. Expiration date is in the past" : "만료 날짜를 설정할 수 없습니다. 만료 날짜가 과거입니다", + "Cannot clear expiration date. Shares are required to have an expiration date." : "만료 날짜를 비워 둘 수 없습니다. 공유되는 항목에는 만료 날짜가 필요합니다.", + "Sharing backend %s must implement the interface OCP\\Share_Backend" : "공유 백엔드 %s에서 OCP\\Share_Backend 인터페이스를 구현해야 함", + "Sharing backend %s not found" : "공유 백엔드 %s을(를) 찾을 수 없음", + "Sharing backend for %s not found" : "%s의 공유 백엔드를 찾을 수 없음", + "Sharing failed, because the user %s is the original sharer" : "공유할 수 없습니다. 사용자 %s이(가) 원 공유자입니다", + "Sharing %s failed, because the permissions exceed permissions granted to %s" : "%s을(를) 공유할 수 없습니다. %s 님에게 허용된 것 이상의 권한을 필요로 합니다", + "Sharing %s failed, because resharing is not allowed" : "%s을(를) 공유할 수 없습니다. 다시 공유할 수 없습니다", + "Sharing %s failed, because the sharing backend for %s could not find its source" : "%s을(를) 공유할 수 없습니다. %s의 공유 백엔드에서 원본 파일을 찾을 수 없습니다", + "Sharing %s failed, because the file could not be found in the file cache" : "%s을(를) 공유할 수 없습니다. 파일 캐시에서 찾을 수 없습니다", + "Cannot increase permissions of %s" : "%s의 권한을 늘릴 수 없습니다", + "Files can't be shared with delete permissions" : "파일을 삭제 권한으로 공유할 수 없습니다", + "Files can't be shared with create permissions" : "파일을 생성 권한으로 공유할 수 없습니다", + "Expiration date is in the past" : "만료 날짜가 과거입니다", + "Cannot set expiration date more than %s days in the future" : "만료 날짜를 %s일 이상 이후로 설정할 수 없습니다", + "Could not find category \"%s\"" : "분류 \"%s\"을(를) 찾을 수 없습니다", + "Sunday" : "일요일", + "Monday" : "월요일", + "Tuesday" : "화요일", + "Wednesday" : "수요일", + "Thursday" : "목요일", + "Friday" : "금요일", + "Saturday" : "토요일", + "Sun." : "일", + "Mon." : "월", + "Tue." : "화", + "Wed." : "수", + "Thu." : "목", + "Fri." : "금", + "Sat." : "토", + "Su" : "일", + "Mo" : "월", + "Tu" : "화", + "We" : "수", + "Th" : "목", + "Fr" : "금", + "Sa" : "토", + "January" : "1월", + "February" : "2월", + "March" : "3월", + "April" : "4월", + "May" : "5월", + "June" : "6월", + "July" : "7월", + "August" : "8월", + "September" : "9월", + "October" : "10월", + "November" : "11월", + "December" : "12월", + "Jan." : "1월", + "Feb." : "2월", + "Mar." : "3월", + "Apr." : "4월", + "May." : "5월", + "Jun." : "6월", + "Jul." : "7월", + "Aug." : "8월", + "Sep." : "9월", + "Oct." : "10월", + "Nov." : "11월", + "Dec." : "12월", + "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "다음 문자만 이름에 사용할 수 있습니다: \"a-z\", \"A-Z\", \"0-9\", 및 \"_.@-'\"", + "A valid username must be provided" : "올바른 사용자 이름을 입력해야 합니다", + "Username contains whitespace at the beginning or at the end" : "사용자 이름의 시작이나 끝에 공백이 있습니다", + "Username must not consist of dots only" : "사용자 이름에 마침표만 있으면 안 됩니다", + "A valid password must be provided" : "올바른 암호를 입력해야 합니다", + "The username is already being used" : "사용자 이름이 이미 존재합니다", + "User disabled" : "사용자 비활성화", + "Login canceled by app" : "앱 로그인 취소", + "App \"%s\" cannot be installed because appinfo file cannot be read." : "appinfo 파일을 읽을 수 없어서 앱 \"%s\"을(를) 설치할 수 없습니다.", + "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "이 서버 버전과 호환되지 않아서 앱 \"%s\"을(를) 설치할 수 없습니다", + "No app name specified" : "앱 이름이 지정되지 않았음", + "App '%s' could not be installed!" : "앱 '%s'을(를) 설치할 수 없습니다!", + "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "앱 \"%s\"의 다음 의존성을 만족하지 못하므로 설치할 수 없습니다: %s", + "a safe home for all your data" : "내 모든 데이터의 안전한 저장소", + "File is currently busy, please try again later" : "파일이 현재 사용 중, 나중에 다시 시도하십시오", + "Can't read file" : "파일을 읽을 수 없음", + "Application is not enabled" : "앱이 활성화되지 않았습니다", + "Authentication error" : "인증 오류", + "Token expired. Please reload page." : "토큰이 만료되었습니다. 페이지를 새로 고치십시오.", + "Unknown user" : "알려지지 않은 사용자", + "No database drivers (sqlite, mysql, or postgresql) installed." : "데이터베이스 드라이버(sqlite, mysql, postgresql)가 설치되지 않았습니다.", + "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." : "%sapps 디렉터리에 웹 서버 쓰기 권한%s을 주거나 설정 파일에서 앱 스토어를 비활성화하면 해결됩니다.", + "Cannot create \"data\" directory" : "\"data\" 디렉터리를 만들 수 없음", + "This can usually be fixed by <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">giving the webserver write access to the root directory</a>." : "<a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">루트 디렉터리에 웹 서버 쓰기 권한</a>을 주면 해결됩니다.", + "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "%s루트 디렉터리에 웹 서버 쓰기 권한%s을 주면 해결됩니다.", + "Setting locale to %s failed" : "로캘을 %s(으)로 설정할 수 없음", + "Please install one of these locales on your system and restart your webserver." : "다음 중 하나 이상의 로캘을 시스템에 설치하고 웹 서버를 다시 시작하십시오.", + "Please ask your server administrator to install the module." : "서버 관리자에게 모듈 설치를 요청하십시오.", + "PHP module %s not installed." : "PHP 모듈 %s이(가) 설치되지 않았습니다.", + "PHP setting \"%s\" is not set to \"%s\"." : "PHP 설정 \"%s\"이(가) \"%s\"(으)로 설정되어 있지 않습니다.", + "Adjusting this setting in php.ini will make Nextcloud run again" : "php.ini 파일에서 설정을 변경하면 Nextcloud가 다시 실행됩니다", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload 값이 \"%s\"(으)로 설정되어 있으나 \"0\"으로 설정해야 함", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "이 문제를 해결하려면 php.ini에서 <code>mbstring.func_overload</code> 값을 <code>0</code>으로 설정하십시오", + "libxml2 2.7.0 is at least required. Currently %s is installed." : "libxml2 2.7.0 이상이 필요합니다. 현재 버전은 %s입니다.", + "To fix this issue update your libxml2 version and restart your web server." : "이 문제를 해결하려면 libxml2 버전을 업데이트하고 웹 서버를 다시 시작하십시오.", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP에서 인라인 문서 블록을 삭제하도록 설정되어 있습니다. 일부 코어 앱을 사용하지 못할 수도 있습니다.", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Zend OPcache, eAccelerator 같은 캐시/가속기 문제일 수도 있습니다.", + "PHP modules have been installed, but they are still listed as missing?" : "PHP 모듈이 설치되었지만 여전히 없는 것으로 나타납니까?", + "Please ask your server administrator to restart the web server." : "서버 관리자에게 웹 서버 재시작을 요청하십시오.", + "PostgreSQL >= 9 required" : "PostgreSQL 버전 9 이상이 필요합니다", + "Please upgrade your database version" : "데이터베이스 버전을 업그레이드 하십시오", + "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "권한을 0770으로 변경하여 다른 사용자가 읽을 수 없도록 하십시오.", + "Your data directory is readable by other users" : "내 데이터 디렉터리를 다른 사용자가 읽을 수 있음", + "Your data directory must be an absolute path" : "내 데이터 디렉터리는 절대 경로여야 함", + "Check the value of \"datadirectory\" in your configuration" : "설정 중 \"datadirectory\" 값을 확인하십시오", + "Your data directory is invalid" : "내 데이터 디렉터리가 잘못됨", + "Please check that the data directory contains a file \".ocdata\" in its root." : "데이터 디렉터리의 최상위 경로에 \".ocdata\" 파일이 있는지 확인하십시오.", + "Could not obtain lock type %d on \"%s\"." : "잠금 형식 %d을(를) \"%s\"에 대해 얻을 수 없습니다.", + "Storage unauthorized. %s" : "저장소가 인증되지 않았습니다. %s", + "Storage incomplete configuration. %s" : "저장소 설정이 완전하지 않습니다. %s", + "Storage connection error. %s" : "저장소 연결 오류. %s", + "Storage is temporarily not available" : "저장소를 임시로 사용할 수 없음", + "Storage connection timeout. %s" : "저장소 연결 시간 초과. %s", + "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "ID: %s인 모듈이 존재하지 않습니다. 앱 설정에서 활성화하거나 관리자에게 연락하십시오.", + "Server settings" : "서버 설정", + "You need to enter either an existing account or the administrator." : "기존 계정이나 administrator(관리자)를 입력해야 합니다.", + "%s shared »%s« with you" : "%s 님이 %s을(를) 공유했습니다", + "%s via %s" : "%s(%s 경유)", + "Cannot create \"data\" directory (%s)" : "\"data\" 디렉터리를 만들 수 없음(%s)", + "Data directory (%s) is readable by other users" : "데이터 디렉터리(%s)를 다른 사용자가 읽을 수 있음", + "Data directory (%s) must be an absolute path" : "데이터 디렉터리(%s)는 반드시 절대 경로여야 함", + "Data directory (%s) is invalid" : "데이터 디렉터리(%s)가 잘못됨" +},"pluralForm" :"nplurals=1; plural=0;" +}
\ No newline at end of file diff --git a/lib/l10n/pl.js b/lib/l10n/pl.js index 4b94c10e3ca..e324bd670f9 100644 --- a/lib/l10n/pl.js +++ b/lib/l10n/pl.js @@ -54,6 +54,7 @@ OC.L10N.register( "Admin" : "Administracja", "APCu" : "APCu", "Redis" : "Redis", + "Basic settings" : "Ustawienia podstawowe", "Sharing" : "Udostępnianie", "Security" : "Bepieczeństwo", "Encryption" : "Szyfrowanie", diff --git a/lib/l10n/pl.json b/lib/l10n/pl.json index f335d2bfa62..b4a4d5d00a7 100644 --- a/lib/l10n/pl.json +++ b/lib/l10n/pl.json @@ -52,6 +52,7 @@ "Admin" : "Administracja", "APCu" : "APCu", "Redis" : "Redis", + "Basic settings" : "Ustawienia podstawowe", "Sharing" : "Udostępnianie", "Security" : "Bepieczeństwo", "Encryption" : "Szyfrowanie", diff --git a/lib/l10n/pt_BR.js b/lib/l10n/pt_BR.js index 72b734afcff..16419544ee2 100644 --- a/lib/l10n/pt_BR.js +++ b/lib/l10n/pt_BR.js @@ -1,7 +1,7 @@ OC.L10N.register( "lib", { - "Cannot write into \"config\" directory!" : "Não é possível gravar no diretório \"config\"!", + "Cannot write into \"config\" directory!" : "Não foi possível gravar no diretório \"config\"!", "This can usually be fixed by giving the webserver write access to the config directory" : "Isso geralmente pode ser corrigido dando o acesso de gravação ao webserver para o diretório de configuração", "See %s" : "Ver %s", "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Isso geralmente pode ser corrigido por %s dar a permissão de gravação ao servidor web para o diretório de configuração %s.", @@ -45,7 +45,7 @@ OC.L10N.register( "File name is too long" : "O nome do arquivo é muito longo", "Dot files are not allowed" : "Arquivos Dot não são permitidos", "Empty filename is not allowed" : "Nome vazio para arquivo não é permitido.", - "This is an automatically sent email, please do not reply." : "Este é um email enviado automaticamente. Por favor, não responda.", + "This is an automatically sent email, please do not reply." : "Este é um e-mail enviado automaticamente. Por favor, não responda.", "Help" : "Ajuda", "Apps" : "Aplicativos", "Personal" : "Pessoal", @@ -77,9 +77,9 @@ OC.L10N.register( "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Por favor, remova a configuração de open_basedir de seu php.ini ou altere o PHP para 64bit.", "Set an admin username." : "Defina um nome do usuário administrador.", "Set an admin password." : "Defina uma senha para o administrador.", - "Can't create or write into the data directory %s" : "Não é possível criar ou gravar no diretório de dados %s", + "Can't create or write into the data directory %s" : "Não foi possível criar ou gravar no diretório de dados %s", "Invalid Federated Cloud ID" : "ID inválida de Nuvem Federada", - "Sharing %s failed, because the backend does not allow shares from type %i" : "O compartilhamento %s falhou pois o processo interno não permite ações de tipo %i", + "Sharing %s failed, because the backend does not allow shares from type %i" : "O compartilhamento %s falhou pois a plataforma de serviço não permite ações de tipo %i", "Sharing %s failed, because the file does not exist" : "Compartilhamento %s falhou pois o arquivo não existe", "You are not allowed to share %s" : "Você não tem permissão para compartilhar %s", "Sharing %s failed, because you can not share with yourself" : "O compartilhamento %s falhou pois você não pode compartilhar com você mesmo", @@ -96,22 +96,22 @@ OC.L10N.register( "Share type %s is not valid for %s" : "O tipo de compartilhamento %s não é válido para %s", "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "A definição de permissões para %s falhou pois as permissões excedem as permissões concedidas a %s", "Setting permissions for %s failed, because the item was not found" : "A definição de permissões para %s falhou pois o item não foi encontrado", - "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Não é possível definir a data de expiração. Os compartilhamentos não podem expirar mais tarde que %s depois de terem sido compartilhados", - "Cannot set expiration date. Expiration date is in the past" : "Não é possível definir a data de expiração pois ela está no passado", - "Cannot clear expiration date. Shares are required to have an expiration date." : "Não é possível eliminar a data de expiração. Compartilhamentos devem ter uma data de expiração.", - "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Compartilhamento backend %s deve implementar a interface OCP\\Share_Backend", - "Sharing backend %s not found" : "Compartilhamento backend %s não encontrado", - "Sharing backend for %s not found" : "Compartilhamento backend para %s não foi encontrado", + "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Não foi possível definir a data de expiração. Os compartilhamentos não podem expirar mais tarde que %s depois de terem sido compartilhados", + "Cannot set expiration date. Expiration date is in the past" : "Não foi possível definir a data de expiração pois ela está no passado", + "Cannot clear expiration date. Shares are required to have an expiration date." : "Não foi possível eliminar a data de expiração. Compartilhamentos devem ter uma data de expiração.", + "Sharing backend %s must implement the interface OCP\\Share_Backend" : "A plataforma de serviço de compartilhamento %s deve implementar a interface OCP\\Share_Backend", + "Sharing backend %s not found" : "Plataforma de serviço de compartilhamento %s não encontrada", + "Sharing backend for %s not found" : "Plataforma de serviço de compartilhamento para %s não foi encontrada", "Sharing failed, because the user %s is the original sharer" : "O compartilhamento falhou pois o usuário %s é o compartilhador original", "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Compartilhamento %s falhou pois as permissões excedem as permissões concedidas a %s", "Sharing %s failed, because resharing is not allowed" : "O compartilhamento %s falhou pois recompartilhamentos não são permitidos", - "Sharing %s failed, because the sharing backend for %s could not find its source" : "O compartilhamento %s falhou, pois a infraestrutura de compartilhamento para %s não conseguiu encontrar a sua fonte", + "Sharing %s failed, because the sharing backend for %s could not find its source" : "O compartilhamento %s falhou pois a plataforma de serviço de compartilhamento para %s não conseguiu encontrar a sua fonte", "Sharing %s failed, because the file could not be found in the file cache" : "O compartilhamento %s falhou pois o arquivo não pôde ser encontrado no cache de arquivos", - "Cannot increase permissions of %s" : "Não é possível aumentar as permissões de %s", + "Cannot increase permissions of %s" : "Não foi possível aumentar as permissões de %s", "Files can't be shared with delete permissions" : "Os arquivos não podem ser compartilhadas com permissões de exclusão", "Files can't be shared with create permissions" : "Os arquivos não podem ser compartilhados com permissões de criação", "Expiration date is in the past" : "Data de expiração está no passado", - "Cannot set expiration date more than %s days in the future" : "Não é possível definir a data de expiração para mais que %s dias no futuro", + "Cannot set expiration date more than %s days in the future" : "Não foi possível definir a data de expiração para mais que %s dias no futuro", "Could not find category \"%s\"" : "Impossível localizar a categoria \"%s\"", "Sunday" : "Domingo", "Monday" : "Segunda-feira", @@ -173,14 +173,14 @@ OC.L10N.register( "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "O aplicativo \"%s\" não pode ser instalado pois as seguintes dependências não foram cumpridas: %s", "a safe home for all your data" : "um local seguro para todos os seus dados", "File is currently busy, please try again later" : "O arquivo está ocupado, tente novamente mais tarde", - "Can't read file" : "Não é possível ler arquivo", + "Can't read file" : "Não foi possível ler arquivo", "Application is not enabled" : "O aplicativo não está habilitado", "Authentication error" : "Erro de autenticação", "Token expired. Please reload page." : "O token expirou. Por favor recarregue a página.", "Unknown user" : "Usuário desconhecido", "No database drivers (sqlite, mysql, or postgresql) installed." : "Nenhum driver de banco de dados (sqlite, mysql ou postgresql) instalado.", - "Cannot write into \"config\" directory" : "Não é possível gravar no diretório \"config\"", - "Cannot write into \"apps\" directory" : "Não é possível gravar no diretório \"apps\"", + "Cannot write into \"config\" directory" : "Não foi possível gravar no diretório \"config\"", + "Cannot write into \"apps\" directory" : "Não foi possível gravar no diretório \"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." : "Isto pode ser corrigido por %sdando ao servidor web permissão de escrita para o diretório app%s ou desabilitando o appstore no arquivo de configuração.", "Cannot create \"data\" directory" : "Não foi possível criar o diretório de dados", "This can usually be fixed by <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">giving the webserver write access to the root directory</a>." : "Isto geralmente pode ser corrigido ao <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dar permissão de gravação no diretório raiz</a>.", diff --git a/lib/l10n/pt_BR.json b/lib/l10n/pt_BR.json index 939681966ee..133b7ae3ec2 100644 --- a/lib/l10n/pt_BR.json +++ b/lib/l10n/pt_BR.json @@ -1,5 +1,5 @@ { "translations": { - "Cannot write into \"config\" directory!" : "Não é possível gravar no diretório \"config\"!", + "Cannot write into \"config\" directory!" : "Não foi possível gravar no diretório \"config\"!", "This can usually be fixed by giving the webserver write access to the config directory" : "Isso geralmente pode ser corrigido dando o acesso de gravação ao webserver para o diretório de configuração", "See %s" : "Ver %s", "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Isso geralmente pode ser corrigido por %s dar a permissão de gravação ao servidor web para o diretório de configuração %s.", @@ -43,7 +43,7 @@ "File name is too long" : "O nome do arquivo é muito longo", "Dot files are not allowed" : "Arquivos Dot não são permitidos", "Empty filename is not allowed" : "Nome vazio para arquivo não é permitido.", - "This is an automatically sent email, please do not reply." : "Este é um email enviado automaticamente. Por favor, não responda.", + "This is an automatically sent email, please do not reply." : "Este é um e-mail enviado automaticamente. Por favor, não responda.", "Help" : "Ajuda", "Apps" : "Aplicativos", "Personal" : "Pessoal", @@ -75,9 +75,9 @@ "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Por favor, remova a configuração de open_basedir de seu php.ini ou altere o PHP para 64bit.", "Set an admin username." : "Defina um nome do usuário administrador.", "Set an admin password." : "Defina uma senha para o administrador.", - "Can't create or write into the data directory %s" : "Não é possível criar ou gravar no diretório de dados %s", + "Can't create or write into the data directory %s" : "Não foi possível criar ou gravar no diretório de dados %s", "Invalid Federated Cloud ID" : "ID inválida de Nuvem Federada", - "Sharing %s failed, because the backend does not allow shares from type %i" : "O compartilhamento %s falhou pois o processo interno não permite ações de tipo %i", + "Sharing %s failed, because the backend does not allow shares from type %i" : "O compartilhamento %s falhou pois a plataforma de serviço não permite ações de tipo %i", "Sharing %s failed, because the file does not exist" : "Compartilhamento %s falhou pois o arquivo não existe", "You are not allowed to share %s" : "Você não tem permissão para compartilhar %s", "Sharing %s failed, because you can not share with yourself" : "O compartilhamento %s falhou pois você não pode compartilhar com você mesmo", @@ -94,22 +94,22 @@ "Share type %s is not valid for %s" : "O tipo de compartilhamento %s não é válido para %s", "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "A definição de permissões para %s falhou pois as permissões excedem as permissões concedidas a %s", "Setting permissions for %s failed, because the item was not found" : "A definição de permissões para %s falhou pois o item não foi encontrado", - "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Não é possível definir a data de expiração. Os compartilhamentos não podem expirar mais tarde que %s depois de terem sido compartilhados", - "Cannot set expiration date. Expiration date is in the past" : "Não é possível definir a data de expiração pois ela está no passado", - "Cannot clear expiration date. Shares are required to have an expiration date." : "Não é possível eliminar a data de expiração. Compartilhamentos devem ter uma data de expiração.", - "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Compartilhamento backend %s deve implementar a interface OCP\\Share_Backend", - "Sharing backend %s not found" : "Compartilhamento backend %s não encontrado", - "Sharing backend for %s not found" : "Compartilhamento backend para %s não foi encontrado", + "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Não foi possível definir a data de expiração. Os compartilhamentos não podem expirar mais tarde que %s depois de terem sido compartilhados", + "Cannot set expiration date. Expiration date is in the past" : "Não foi possível definir a data de expiração pois ela está no passado", + "Cannot clear expiration date. Shares are required to have an expiration date." : "Não foi possível eliminar a data de expiração. Compartilhamentos devem ter uma data de expiração.", + "Sharing backend %s must implement the interface OCP\\Share_Backend" : "A plataforma de serviço de compartilhamento %s deve implementar a interface OCP\\Share_Backend", + "Sharing backend %s not found" : "Plataforma de serviço de compartilhamento %s não encontrada", + "Sharing backend for %s not found" : "Plataforma de serviço de compartilhamento para %s não foi encontrada", "Sharing failed, because the user %s is the original sharer" : "O compartilhamento falhou pois o usuário %s é o compartilhador original", "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Compartilhamento %s falhou pois as permissões excedem as permissões concedidas a %s", "Sharing %s failed, because resharing is not allowed" : "O compartilhamento %s falhou pois recompartilhamentos não são permitidos", - "Sharing %s failed, because the sharing backend for %s could not find its source" : "O compartilhamento %s falhou, pois a infraestrutura de compartilhamento para %s não conseguiu encontrar a sua fonte", + "Sharing %s failed, because the sharing backend for %s could not find its source" : "O compartilhamento %s falhou pois a plataforma de serviço de compartilhamento para %s não conseguiu encontrar a sua fonte", "Sharing %s failed, because the file could not be found in the file cache" : "O compartilhamento %s falhou pois o arquivo não pôde ser encontrado no cache de arquivos", - "Cannot increase permissions of %s" : "Não é possível aumentar as permissões de %s", + "Cannot increase permissions of %s" : "Não foi possível aumentar as permissões de %s", "Files can't be shared with delete permissions" : "Os arquivos não podem ser compartilhadas com permissões de exclusão", "Files can't be shared with create permissions" : "Os arquivos não podem ser compartilhados com permissões de criação", "Expiration date is in the past" : "Data de expiração está no passado", - "Cannot set expiration date more than %s days in the future" : "Não é possível definir a data de expiração para mais que %s dias no futuro", + "Cannot set expiration date more than %s days in the future" : "Não foi possível definir a data de expiração para mais que %s dias no futuro", "Could not find category \"%s\"" : "Impossível localizar a categoria \"%s\"", "Sunday" : "Domingo", "Monday" : "Segunda-feira", @@ -171,14 +171,14 @@ "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "O aplicativo \"%s\" não pode ser instalado pois as seguintes dependências não foram cumpridas: %s", "a safe home for all your data" : "um local seguro para todos os seus dados", "File is currently busy, please try again later" : "O arquivo está ocupado, tente novamente mais tarde", - "Can't read file" : "Não é possível ler arquivo", + "Can't read file" : "Não foi possível ler arquivo", "Application is not enabled" : "O aplicativo não está habilitado", "Authentication error" : "Erro de autenticação", "Token expired. Please reload page." : "O token expirou. Por favor recarregue a página.", "Unknown user" : "Usuário desconhecido", "No database drivers (sqlite, mysql, or postgresql) installed." : "Nenhum driver de banco de dados (sqlite, mysql ou postgresql) instalado.", - "Cannot write into \"config\" directory" : "Não é possível gravar no diretório \"config\"", - "Cannot write into \"apps\" directory" : "Não é possível gravar no diretório \"apps\"", + "Cannot write into \"config\" directory" : "Não foi possível gravar no diretório \"config\"", + "Cannot write into \"apps\" directory" : "Não foi possível gravar no diretório \"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." : "Isto pode ser corrigido por %sdando ao servidor web permissão de escrita para o diretório app%s ou desabilitando o appstore no arquivo de configuração.", "Cannot create \"data\" directory" : "Não foi possível criar o diretório de dados", "This can usually be fixed by <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">giving the webserver write access to the root directory</a>." : "Isto geralmente pode ser corrigido ao <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dar permissão de gravação no diretório raiz</a>.", diff --git a/lib/l10n/ru.js b/lib/l10n/ru.js index 9a590769892..bb9f9b9ae84 100644 --- a/lib/l10n/ru.js +++ b/lib/l10n/ru.js @@ -12,6 +12,9 @@ OC.L10N.register( "%1$s, %2$s and %3$s" : "%1$s, %2$s и %3$s", "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s и %4$s", "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s и %5$s", + "Enterprise bundle" : "Корпоративный пакет", + "Groupware bundle" : "Пакет для групп", + "Social sharing bundle" : "Пакет для соц. сетей", "PHP %s or higher is required." : "Требуется PHP %s или выше", "PHP with a version lower than %s is required." : "Требуется версия PHP ниже %s.", "%sbit or higher PHP required." : "Требуется PHP с разрядностью %s бит или более.", @@ -51,6 +54,7 @@ OC.L10N.register( "Admin" : "Администрирование", "APCu" : "APCu", "Redis" : "Redis", + "Basic settings" : "Основные настройки", "Sharing" : "Общий доступ", "Security" : "Безопасность", "Encryption" : "Шифрование", diff --git a/lib/l10n/ru.json b/lib/l10n/ru.json index 8aefa0e5250..10e1b49fdb1 100644 --- a/lib/l10n/ru.json +++ b/lib/l10n/ru.json @@ -10,6 +10,9 @@ "%1$s, %2$s and %3$s" : "%1$s, %2$s и %3$s", "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s и %4$s", "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s и %5$s", + "Enterprise bundle" : "Корпоративный пакет", + "Groupware bundle" : "Пакет для групп", + "Social sharing bundle" : "Пакет для соц. сетей", "PHP %s or higher is required." : "Требуется PHP %s или выше", "PHP with a version lower than %s is required." : "Требуется версия PHP ниже %s.", "%sbit or higher PHP required." : "Требуется PHP с разрядностью %s бит или более.", @@ -49,6 +52,7 @@ "Admin" : "Администрирование", "APCu" : "APCu", "Redis" : "Redis", + "Basic settings" : "Основные настройки", "Sharing" : "Общий доступ", "Security" : "Безопасность", "Encryption" : "Шифрование", diff --git a/lib/private/App/AppStore/Fetcher/AppFetcher.php b/lib/private/App/AppStore/Fetcher/AppFetcher.php index 7c5efafc92f..e020390988e 100644 --- a/lib/private/App/AppStore/Fetcher/AppFetcher.php +++ b/lib/private/App/AppStore/Fetcher/AppFetcher.php @@ -46,14 +46,7 @@ class AppFetcher extends Fetcher { ); $this->fileName = 'apps.json'; - - $versionArray = explode('.', $this->config->getSystemValue('version')); - $this->endpointUrl = sprintf( - 'https://apps.nextcloud.com/api/v1/platform/%d.%d.%d/apps.json', - $versionArray[0], - $versionArray[1], - $versionArray[2] - ); + $this->setEndpoint(); } /** @@ -68,7 +61,7 @@ class AppFetcher extends Fetcher { /** @var mixed[] $response */ $response = parent::fetch($ETag, $content); - $ncVersion = $this->config->getSystemValue('version'); + $ncVersion = $this->getVersion(); $ncMajorVersion = explode('.', $ncVersion)[0]; foreach($response['data'] as $dataKey => $app) { $releases = []; @@ -118,4 +111,22 @@ class AppFetcher extends Fetcher { $response['data'] = array_values($response['data']); return $response; } + + private function setEndpoint() { + $versionArray = explode('.', $this->getVersion()); + $this->endpointUrl = sprintf( + 'https://apps.nextcloud.com/api/v1/platform/%d.%d.%d/apps.json', + $versionArray[0], + $versionArray[1], + $versionArray[2] + ); + } + + /** + * @param string $version + */ + public function setVersion($version) { + parent::setVersion($version); + $this->setEndpoint(); + } } diff --git a/lib/private/App/AppStore/Fetcher/Fetcher.php b/lib/private/App/AppStore/Fetcher/Fetcher.php index ab0e299f0a2..5354d334eb1 100644 --- a/lib/private/App/AppStore/Fetcher/Fetcher.php +++ b/lib/private/App/AppStore/Fetcher/Fetcher.php @@ -43,6 +43,8 @@ abstract class Fetcher { protected $fileName; /** @var string */ protected $endpointUrl; + /** @var string */ + protected $version; /** * @param IAppData $appData @@ -95,7 +97,7 @@ abstract class Fetcher { } $responseJson['timestamp'] = $this->timeFactory->getTime(); - $responseJson['ncversion'] = $this->config->getSystemValue('version'); + $responseJson['ncversion'] = $this->getVersion(); if ($ETag !== '') { $responseJson['ETag'] = $ETag; } @@ -125,19 +127,19 @@ abstract class Fetcher { $file = $rootFolder->getFile($this->fileName); $jsonBlob = json_decode($file->getContent(), true); if (is_array($jsonBlob)) { - /* - * If the timestamp is older than 300 seconds request the files new - * If the version changed (update!) also refresh - */ - if ((int)$jsonBlob['timestamp'] > ($this->timeFactory->getTime() - self::INVALIDATE_AFTER_SECONDS) && - isset($jsonBlob['ncversion']) && $jsonBlob['ncversion'] === $this->config->getSystemValue('version', '0.0.0') - ) { - return $jsonBlob['data']; - } - if (isset($jsonBlob['ETag'])) { - $ETag = $jsonBlob['ETag']; - $content = json_encode($jsonBlob['data']); + // No caching when the version has been updated + if (isset($jsonBlob['ncversion']) && $jsonBlob['ncversion'] === $this->getVersion()) { + + // If the timestamp is older than 300 seconds request the files new + if ((int)$jsonBlob['timestamp'] > ($this->timeFactory->getTime() - self::INVALIDATE_AFTER_SECONDS)) { + return $jsonBlob['data']; + } + + if (isset($jsonBlob['ETag'])) { + $ETag = $jsonBlob['ETag']; + $content = json_encode($jsonBlob['data']); + } } } } catch (NotFoundException $e) { @@ -154,4 +156,23 @@ abstract class Fetcher { return []; } } + + /** + * Get the currently Nextcloud version + * @return string + */ + protected function getVersion() { + if ($this->version === null) { + $this->version = $this->config->getSystemValue('version', '0.0.0'); + } + return $this->version; + } + + /** + * Set the current Nextcloud version + * @param string $version + */ + public function setVersion($version) { + $this->version = $version; + } } diff --git a/lib/private/Contacts/ContactsMenu/Providers/EMailProvider.php b/lib/private/Contacts/ContactsMenu/Providers/EMailProvider.php index d5630e6420d..242fbd06a22 100644 --- a/lib/private/Contacts/ContactsMenu/Providers/EMailProvider.php +++ b/lib/private/Contacts/ContactsMenu/Providers/EMailProvider.php @@ -52,6 +52,10 @@ class EMailProvider implements IProvider { public function process(IEntry $entry) { $iconUrl = $this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/mail.svg')); foreach ($entry->getEMailAddresses() as $address) { + if (empty($address)) { + // Skip + continue; + } $action = $this->actionFactory->newEMailAction($iconUrl, $address, $address); $entry->addAction($action); } diff --git a/lib/private/DB/MySqlTools.php b/lib/private/DB/MySqlTools.php new file mode 100644 index 00000000000..32f1de887c3 --- /dev/null +++ b/lib/private/DB/MySqlTools.php @@ -0,0 +1,49 @@ +<?php +/** + * @author Thomas Müller <thomas.mueller@tmit.eu> + * + * @copyright Copyright (c) 2017, ownCloud GmbH + * @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\DB; + +use OCP\IDBConnection; + +/** +* Various MySQL specific helper functions. +*/ +class MySqlTools { + + /** + * @param Connection $connection + * @return bool + */ + public function supports4ByteCharset(IDBConnection $connection) { + foreach (['innodb_file_format' => 'Barracuda', 'innodb_large_prefix' => 'ON', 'innodb_file_per_table' => 'ON'] as $var => $val) { + $result = $connection->executeQuery("SHOW VARIABLES LIKE '$var'"); + $rows = $result->fetch(); + $result->closeCursor(); + if ($rows === false) { + return false; + } + if (strcasecmp($rows['Value'], $val) !== 0) { + return false; + } + } + return true; + } +} diff --git a/lib/private/Mail/EMailTemplate.php b/lib/private/Mail/EMailTemplate.php index 3442e8e9430..0ae79345e4c 100644 --- a/lib/private/Mail/EMailTemplate.php +++ b/lib/private/Mail/EMailTemplate.php @@ -357,7 +357,7 @@ EOF; } $this->headerAdded = true; - $logoUrl = $this->urlGenerator->getAbsoluteURL($this->themingDefaults->getLogo()); + $logoUrl = $this->urlGenerator->getAbsoluteURL($this->themingDefaults->getLogo(false)); $this->htmlBody .= vsprintf($this->header, [$this->themingDefaults->getColorPrimary(), $logoUrl, $this->themingDefaults->getName()]); } diff --git a/lib/private/Memcache/Redis.php b/lib/private/Memcache/Redis.php index d423b134f95..a154d08deca 100644 --- a/lib/private/Memcache/Redis.php +++ b/lib/private/Memcache/Redis.php @@ -70,7 +70,7 @@ class Redis extends Cache implements IMemcacheTTL { } public function remove($key) { - if (self::$cache->delete($this->getNameSpace() . $key)) { + if (self::$cache->del($this->getNameSpace() . $key)) { return true; } else { return false; @@ -82,7 +82,7 @@ class Redis extends Cache implements IMemcacheTTL { $it = null; self::$cache->setOption(\Redis::OPT_SCAN, \Redis::SCAN_RETRY); while ($keys = self::$cache->scan($it, $prefix)) { - self::$cache->delete($keys); + self::$cache->del($keys); } return true; } diff --git a/lib/private/Preview/Generator.php b/lib/private/Preview/Generator.php index fd75e51b638..5a264c2bbd5 100644 --- a/lib/private/Preview/Generator.php +++ b/lib/private/Preview/Generator.php @@ -84,6 +84,7 @@ class Generator { * @param string $mimeType * @return ISimpleFile * @throws NotFoundException + * @throws \InvalidArgumentException if the preview would be invalid (in case the original image is invalid) */ public function getPreview(File $file, $width = -1, $height = -1, $crop = false, $mode = IPreview::MODE_FILL, $mimeType = null) { $this->eventDispatcher->dispatch( @@ -299,10 +300,15 @@ class Generator { * @param int $maxHeight * @return ISimpleFile * @throws NotFoundException + * @throws \InvalidArgumentException if the preview would be invalid (in case the original image is invalid) */ private function generatePreview(ISimpleFolder $previewFolder, ISimpleFile $maxPreview, $width, $height, $crop, $maxWidth, $maxHeight) { $preview = $this->helper->getImage($maxPreview); + if (!$preview->valid()) { + throw new \InvalidArgumentException('Failed to generate preview, failed to load image'); + } + if ($crop) { if ($height !== $preview->height() && $width !== $preview->width()) { //Resize @@ -325,6 +331,7 @@ class Generator { $preview->resize(max($width, $height)); } + $path = $this->generatePath($width, $height, $crop); try { $file = $previewFolder->newFile($path); diff --git a/lib/private/PreviewManager.php b/lib/private/PreviewManager.php index 8c5a7ad29f1..12fcc292c63 100644 --- a/lib/private/PreviewManager.php +++ b/lib/private/PreviewManager.php @@ -182,7 +182,8 @@ class PreviewManager implements IPreview { * @param string $mimeType * @return ISimpleFile * @throws NotFoundException - * @since 11.0.0 + * @throws \InvalidArgumentException if the preview would be invalid (in case the original image is invalid) + * @since 11.0.0 - \InvalidArgumentException was added in 12.0.0 */ public function getPreview(File $file, $width = -1, $height = -1, $crop = false, $mode = IPreview::MODE_FILL, $mimeType = null) { if ($this->generator === null) { diff --git a/lib/private/Security/Bruteforce/Throttler.php b/lib/private/Security/Bruteforce/Throttler.php index b2524b63c63..ee02bc5a1c4 100644 --- a/lib/private/Security/Bruteforce/Throttler.php +++ b/lib/private/Security/Bruteforce/Throttler.php @@ -133,6 +133,10 @@ class Throttler { * @return bool */ private function isIPWhitelisted($ip) { + if($this->config->getSystemValue('auth.bruteforce.protection.enabled', true) === false) { + return true; + } + $keys = $this->config->getAppKeys('bruteForce'); $keys = array_filter($keys, function($key) { $regex = '/^whitelist_/S'; diff --git a/lib/private/Server.php b/lib/private/Server.php index 6bc9a1429cd..07e449ee4a9 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -420,7 +420,7 @@ class Server extends ServerContainer implements IServerContainer { $this->registerService('AppHelper', function ($c) { return new \OC\AppHelper(); }); - $this->registerService('AppFetcher', function ($c) { + $this->registerService(AppFetcher::class, function ($c) { return new AppFetcher( $this->getAppDataDir('appstore'), $this->getHTTPClientService(), @@ -428,6 +428,8 @@ class Server extends ServerContainer implements IServerContainer { $this->getConfig() ); }); + $this->registerAlias('AppFetcher', AppFetcher::class); + $this->registerService('CategoryFetcher', function ($c) { return new CategoryFetcher( $this->getAppDataDir('appstore'), @@ -821,9 +823,6 @@ class Server extends ServerContainer implements IServerContainer { $this->registerService(BundleFetcher::class, function () { return new BundleFetcher($this->getL10N('lib')); }); - $this->registerService(AppFetcher::class, function() { - return $this->getAppFetcher(); - }); $this->registerService(\OCP\Notification\IManager::class, function (Server $c) { return new Manager( $c->query(IValidator::class) diff --git a/lib/private/Setup/MySQL.php b/lib/private/Setup/MySQL.php index 9998ca401d9..8290d675500 100644 --- a/lib/private/Setup/MySQL.php +++ b/lib/private/Setup/MySQL.php @@ -27,6 +27,7 @@ */ namespace OC\Setup; +use OC\DB\MySqlTools; use OCP\IDBConnection; class MySQL extends AbstractDatabase { @@ -36,6 +37,13 @@ class MySQL extends AbstractDatabase { //check if the database user has admin right $connection = $this->connect(['dbname' => null]); + // detect mb4 + $tools = new MySqlTools(); + if ($tools->supports4ByteCharset($connection)) { + $this->config->setValue('mysql.utf8mb4', true); + $connection = $this->connect(); + } + $this->createSpecificUser($username, $connection); //create the database diff --git a/lib/private/Updater.php b/lib/private/Updater.php index c080ee0eb43..5c4a7725a1b 100644 --- a/lib/private/Updater.php +++ b/lib/private/Updater.php @@ -32,6 +32,7 @@ namespace OC; +use OC\App\AppStore\Fetcher\AppFetcher; use OC\Hooks\BasicEmitter; use OC\IntegrityCheck\Checker; use OC_App; @@ -246,6 +247,9 @@ class Updater extends BasicEmitter { $this->checkAppsRequirements(); $this->doAppUpgrade(); + // Update the appfetchers version so it downloads the correct list from the appstore + \OC::$server->getAppFetcher()->setVersion($currentVersion); + // upgrade appstore apps $this->upgradeAppStoreApps(\OC::$server->getAppManager()->getInstalledApps()); diff --git a/lib/private/User/Session.php b/lib/private/User/Session.php index efa11348efe..ac0150ff611 100644 --- a/lib/private/User/Session.php +++ b/lib/private/User/Session.php @@ -46,6 +46,7 @@ use OC_User; use OC_Util; use OCA\DAV\Connector\Sabre\Auth; use OCP\AppFramework\Utility\ITimeFactory; +use OCP\Files\NotPermittedException; use OCP\IConfig; use OCP\IRequest; use OCP\ISession; @@ -480,8 +481,12 @@ class Session implements IUserSession, Emitter { //trigger creation of user home and /files folder $userFolder = \OC::$server->getUserFolder($user); - // copy skeleton - \OC_Util::copySkeleton($user, $userFolder); + try { + // copy skeleton + \OC_Util::copySkeleton($user, $userFolder); + } catch (NotPermittedException $ex) { + // read only uses + } // trigger any other initialization \OC::$server->getEventDispatcher()->dispatch(IUser::class . '::firstLogin', new GenericEvent($this->getUser())); diff --git a/lib/private/legacy/defaults.php b/lib/private/legacy/defaults.php index 7835707b19d..f6d72d9776d 100644 --- a/lib/private/legacy/defaults.php +++ b/lib/private/legacy/defaults.php @@ -47,9 +47,8 @@ class OC_Defaults { private $defaultSlogan; private $defaultLogoClaim; private $defaultColorPrimary; - private $defaultLogoUrl; - function __construct() { + public function __construct() { $this->l = \OC::$server->getL10N('lib'); $this->defaultEntity = 'Nextcloud'; /* e.g. company name, used for footers and copyright notices */ @@ -61,12 +60,10 @@ class OC_Defaults { $this->defaultiTunesAppId = '1125420102'; $this->defaultAndroidClientUrl = 'https://play.google.com/store/apps/details?id=com.nextcloud.client'; $this->defaultDocBaseUrl = 'https://docs.nextcloud.com'; - $this->defaultDocVersion = '11'; // used to generate doc links + $this->defaultDocVersion = '12'; // used to generate doc links $this->defaultSlogan = $this->l->t('a safe home for all your data'); $this->defaultLogoClaim = ''; $this->defaultColorPrimary = '#0082c9'; - $this->defaultLogoUrl = \OC::$server->getURLGenerator()->imagePath('core','logo.svg'); - $this->defaultLogoUrl .= '?v=' . hash('sha1', implode('.', \OCP\Util::getVersion())); $themePath = OC::$SERVERROOT . '/themes/' . OC_Util::getTheme() . '/defaults.php'; if (file_exists($themePath)) { @@ -307,13 +304,19 @@ class OC_Defaults { /** * Themed logo url * + * @param bool $useSvg Whether to point to the SVG image or a fallback * @return string */ - public function getLogo() { + public function getLogo($useSvg = true) { if ($this->themeExist('getLogo')) { - return $this->theme->getLogo(); + return $this->theme->getLogo($useSvg); } - return $this->defaultLogoUrl; + if($useSvg) { + $logo = \OC::$server->getURLGenerator()->imagePath('core', 'logo.svg'); + } else { + $logo = \OC::$server->getURLGenerator()->imagePath('core', 'logo.png'); + } + return $logo . '?v=' . hash('sha1', implode('.', \OCP\Util::getVersion())); } } diff --git a/lib/private/legacy/image.php b/lib/private/legacy/image.php index e26148bdf15..120b19d1cff 100644 --- a/lib/private/legacy/image.php +++ b/lib/private/legacy/image.php @@ -563,7 +563,7 @@ class OC_Image implements \OCP\IImage { case IMAGETYPE_JPEG: if (imagetypes() & IMG_JPG) { if (getimagesize($imagePath) !== false) { - $this->resource = imagecreatefromjpeg($imagePath); + $this->resource = @imagecreatefromjpeg($imagePath); } else { $this->logger->debug('OC_Image->loadFromFile, JPG image not valid: ' . $imagePath, array('app' => 'core')); } @@ -573,7 +573,7 @@ class OC_Image implements \OCP\IImage { break; case IMAGETYPE_PNG: if (imagetypes() & IMG_PNG) { - $this->resource = imagecreatefrompng($imagePath); + $this->resource = @imagecreatefrompng($imagePath); // Preserve transparency imagealphablending($this->resource, true); imagesavealpha($this->resource, true); @@ -583,14 +583,14 @@ class OC_Image implements \OCP\IImage { break; case IMAGETYPE_XBM: if (imagetypes() & IMG_XPM) { - $this->resource = imagecreatefromxbm($imagePath); + $this->resource = @imagecreatefromxbm($imagePath); } else { $this->logger->debug('OC_Image->loadFromFile, XBM/XPM images not supported: ' . $imagePath, array('app' => 'core')); } break; case IMAGETYPE_WBMP: if (imagetypes() & IMG_WBMP) { - $this->resource = imagecreatefromwbmp($imagePath); + $this->resource = @imagecreatefromwbmp($imagePath); } else { $this->logger->debug('OC_Image->loadFromFile, WBMP images not supported: ' . $imagePath, array('app' => 'core')); } diff --git a/lib/private/legacy/template.php b/lib/private/legacy/template.php index 9a919ff12f2..b4c69327438 100644 --- a/lib/private/legacy/template.php +++ b/lib/private/legacy/template.php @@ -292,6 +292,11 @@ class OC_Template extends \OC\Template\Base { * @param string $hint An optional hint message - needs to be properly escaped */ public static function printErrorPage( $error_msg, $hint = '' ) { + if (\OC_App::isEnabled('theming') && !\OC_App::isAppLoaded('theming')) { + \OC_App::loadApp('theming'); + } + + if ($error_msg === $hint) { // If the hint is the same as the message there is no need to display it twice. $hint = ''; diff --git a/lib/public/Defaults.php b/lib/public/Defaults.php index dbde78bce68..543657694c5 100644 --- a/lib/public/Defaults.php +++ b/lib/public/Defaults.php @@ -178,11 +178,12 @@ class Defaults { /** * Themed logo url * + * @param bool $useSvg Whether to point to the SVG image or a fallback * @return string * @since 12.0.0 */ - public function getLogo() { - return $this->defaults->getLogo(); + public function getLogo($useSvg = true) { + return $this->defaults->getLogo($useSvg); } /** diff --git a/lib/public/IGroup.php b/lib/public/IGroup.php index 0cc62e9a8ed..aa51e51046c 100644 --- a/lib/public/IGroup.php +++ b/lib/public/IGroup.php @@ -41,7 +41,7 @@ interface IGroup { * Returns the group display name * * @return string - * @since 9.2 + * @since 12.0.0 */ public function getDisplayName(); diff --git a/lib/public/IPreview.php b/lib/public/IPreview.php index 207539b1170..7705df61a17 100644 --- a/lib/public/IPreview.php +++ b/lib/public/IPreview.php @@ -104,7 +104,8 @@ interface IPreview { * @param string $mimeType To force a given mimetype for the file (files_versions needs this) * @return ISimpleFile * @throws NotFoundException - * @since 11.0.0 + * @throws \InvalidArgumentException if the preview would be invalid (in case the original image is invalid) + * @since 11.0.0 - \InvalidArgumentException was added in 12.0.0 */ public function getPreview(File $file, $width = -1, $height = -1, $crop = false, $mode = IPreview::MODE_FILL, $mimeType = null); diff --git a/lib/public/Security/ISecureRandom.php b/lib/public/Security/ISecureRandom.php index c60529ef803..14190639f44 100644 --- a/lib/public/Security/ISecureRandom.php +++ b/lib/public/Security/ISecureRandom.php @@ -45,6 +45,13 @@ interface ISecureRandom { const CHAR_SYMBOLS = '!\"#$%&\\\'()* +,-./:;<=>?@[\]^_`{|}~'; /** + * Characters that can be used for <code>generate($length, $characters)</code>, to + * generate human readable random strings. Lower- and upper-case characters and digits + * are included. Characters which are ambiguous are excluded, such as I, l, and 1 and so on. + */ + const CHAR_HUMAN_READABLE = "abcdefgijkmnopqrstwxyzABCDEFGHJKLMNPQRSTWXYZ23456789"; + + /** * Convenience method to get a low strength random number generator. * * Low Strength should be used anywhere that random strings are needed diff --git a/settings/BackgroundJobs/VerifyUserData.php b/settings/BackgroundJobs/VerifyUserData.php index 4a32398f6c4..8c02ae1727c 100644 --- a/settings/BackgroundJobs/VerifyUserData.php +++ b/settings/BackgroundJobs/VerifyUserData.php @@ -96,6 +96,8 @@ class VerifyUserData extends Job { $jobList->remove($this, $this->argument); if ($this->retainJob) { $this->reAddJob($jobList, $this->argument); + } else { + $this->resetVerificationState(); } } @@ -270,4 +272,17 @@ class VerifyUserData extends Job { return ((time() - $lastRun) > $this->interval); } + + /** + * reset verification state after max tries are reached + */ + protected function resetVerificationState() { + $user = $this->userManager->get($this->argument['uid']); + if ($user !== null) { + $accountData = $this->accountManager->getUser($user); + $accountData[$this->argument['type']]['verified'] = AccountManager::NOT_VERIFIED; + $this->accountManager->updateUser($user, $accountData); + } + } + } diff --git a/settings/Controller/AuthSettingsController.php b/settings/Controller/AuthSettingsController.php index 57192e119a9..7bb8a6654e6 100644 --- a/settings/Controller/AuthSettingsController.php +++ b/settings/Controller/AuthSettingsController.php @@ -154,16 +154,16 @@ class AuthSettingsController extends Controller { } /** - * Return a 20 digit device password + * Return a 25 digit device password * - * Example: ABCDE-FGHIJ-KLMNO-PQRST + * Example: AbCdE-fGhIj-KlMnO-pQrSt-12345 * * @return string */ private function generateRandomDeviceToken() { $groups = []; - for ($i = 0; $i < 4; $i++) { - $groups[] = $this->random->generate(5, implode('', range('A', 'Z'))); + for ($i = 0; $i < 5; $i++) { + $groups[] = $this->random->generate(5, ISecureRandom::CHAR_HUMAN_READABLE); } return implode('-', $groups); } diff --git a/settings/css/settings.css b/settings/css/settings.css index 0777f7e4cf4..fb71e5ece23 100644 --- a/settings/css/settings.css +++ b/settings/css/settings.css @@ -2,8 +2,13 @@ This file is licensed under the Affero General Public License version 3 or later. See the COPYING-README file. */ -select#languageinput, select#timezone { width:15em; } -input#openid, input#webdav { width:20em; } +select#languageinput, select#timezone { + width: 15em; +} + +input#openid, input#webdav { + width: 20em; +} /* PERSONAL */ @@ -11,21 +16,27 @@ input#openid, input#webdav { width:20em; } .nav-icon-personal-settings { background-image: url('../img/personal.svg?v=1'); } + .nav-icon-sessions { background-image: url('../img/toggle-filelist.svg?v=1'); } + .nav-icon-apppasswords { background-image: url('../img/password.svg?v=1'); } + .nav-icon-clientsbox { background-image: url('../img/change.svg?v=1'); } + .nav-icon-federated-cloud { background-image: url('../img/share.svg?v=1'); } + .nav-icon-second-factor-backup-codes { background-image: url('../img/password.svg?v=1'); } + .nav-icon-ssl-root-certificate { background-image: url('../img/password.svg?v=1'); } @@ -34,15 +45,19 @@ input#openid, input#webdav { width:20em; } min-width: 145px; padding-right: 0; } + #avatarform .avatardiv { margin-bottom: 10px; } + #avatarform .warning { width: 100%; } + #displayavatar { text-align: center; } + #displayavatar p { text-align: left; } @@ -53,9 +68,11 @@ input#openid, input#webdav { width:20em; } width: 33px; height: 33px; } + .jcrop-holder { z-index: 500; } + #cropper { float: left; z-index: 500; @@ -68,6 +85,7 @@ input#openid, input#webdav { width:20em; } width: 100%; height: calc(100% - 45px); } + #cropper .inner-container { z-index: 2001; /* above the top bar if needed */ position: absolute; @@ -84,9 +102,11 @@ input#openid, input#webdav { width:20em; } #cropper .inner-container .jcrop-holder { box-shadow: 0 0 7px #888; } + #cropper .inner-container .button { margin-top: 15px; } + #cropper .inner-container .primary { float: right; } @@ -94,6 +114,7 @@ input#openid, input#webdav { width:20em; } #personal-settings-avatar-container { float: left; } + #personal-settings-container { position: relative; float: left; @@ -101,22 +122,27 @@ input#openid, input#webdav { width:20em; } max-width: 700px; width: calc(100% - 200px); } + #personal-settings-container:after { clear: both; } + #personal-settings-container > div { float: left; height: 100px; min-width: 300px; } + #personal-settings-container.no-edit > div { height: 20px; min-width: 200px; } + #avatarform > h2, #personal-settings-container > div h2 { position: relative; } + #personal-settings-container > div h2 span[class^="icon-"], #personal-settings-avatar-container h2 span[class^="icon-"] { display: inline-block; @@ -127,11 +153,13 @@ input#openid, input#webdav { width:20em; } opacity: .3; cursor: pointer; } + .personal-settings-setting-box input[type="text"], .personal-settings-setting-box input[type="email"], .personal-settings-setting-box input[type="tel"] { width: 17em; } + #personal-settings-container > div > form span[class^="icon-checkmark"] { position: absolute; left: 228px; @@ -145,22 +173,27 @@ input#openid, input#webdav { width:20em; } right: 14px; top: 70px; } + #personal-settings-container .verify img { padding: 12px 7px 6px; } + /* only show pointer cursor when popup will be there */ #personal-settings-container .verify-action { cursor: pointer; } + .verification-dialog { display: none; right: -9px; top: 40px; width: 275px; } + .verification-dialog p { padding: 10px; } + .verification-dialog .verificationCode { font-family: monospace; display: block; @@ -171,16 +204,19 @@ input#openid, input#webdav { width:20em; } top: 44px; margin: -5px 0px 0; } + .federationScopeMenu.bubble::after { right: 50%; transform: translate(50%, 0); } + .federationScopeMenu.popovermenu a.menuitem, .federationScopeMenu.popovermenu label.menuitem, .federationScopeMenu.popovermenu .menuitem { font-size: 12.8px; line-height: 1.6em; } + .federationScopeMenu.popovermenu .menuitem .menuitem-text-detail { opacity: .75; } @@ -194,11 +230,13 @@ input#openid, input#webdav { width:20em; } padding-right: 0; min-width: 60%; } + #avatarform, #passwordform { margin-bottom: 0; padding-bottom: 0; } + #groups { overflow-wrap: break-word; max-width: 75%; @@ -213,17 +251,19 @@ input#openid, input#webdav { width:20em; } #sslCertificate tr.expired { background-color: rgba(255, 0, 0, 0.5); } + #sslCertificate td { padding: 5px; } - #displaynameerror { display: none; } + #displaynamechanged { display: none; } + input#identity { width: 20em; } @@ -237,6 +277,7 @@ input#identity { background-color: #47a447; padding: 3px; } + .msg.error { color: #fff; background-color: #d2322d; @@ -247,8 +288,13 @@ input#identity { display: inline-block; } -table.nostyle label { margin-right: 2em; } -table.nostyle td { padding: 0.2em 0; } +table.nostyle label { + margin-right: 2em; +} + +table.nostyle td { + padding: 0.2em 0; +} #sessions table, #apppasswords table { @@ -257,10 +303,12 @@ table.nostyle td { padding: 0.2em 0; } padding-top: 5px; max-width: 580px; } + #sessions table th, #apppasswords table th { opacity: .5; } + #sessions table th, #sessions table td, #apppasswords table th, @@ -286,10 +334,11 @@ table.nostyle td { padding: 0.2em 0; } position: relative; } -#sessions tr>*:nth-child(2), -#apppasswords tr>*:nth-child(2) { +#sessions tr > *:nth-child(2), +#apppasswords tr > *:nth-child(2) { text-align: right; } + #sessions .token-list td > a.icon, #apppasswords .token-list td > a.icon { opacity: 0; @@ -305,7 +354,7 @@ table.nostyle td { padding: 0.2em 0; } #sessions .token-list tr:hover td > a.icon, #apppasswords .token-list tr:hover td > a.icon, #sessions .token-list tr.active td > a.icon, -#apppasswords .token-list tr.active td > a.icon{ +#apppasswords .token-list tr.active td > a.icon { opacity: 0.6; } @@ -329,7 +378,7 @@ table.nostyle td { padding: 0.2em 0; } } #sessions .token-list tr.active div.configure > *, -#apppasswords .token-list tr.active div.configure > *{ +#apppasswords .token-list tr.active div.configure > * { margin-top: 5px; margin-bottom: 5px; display: inline-block; @@ -343,10 +392,11 @@ table.nostyle td { padding: 0.2em 0; } #new-app-login-name, #new-app-password { - width: 186px; + width: 245px; font-family: monospace; background-color: lightyellow; } + .app-password-row { display: table-row; } @@ -369,21 +419,29 @@ table.nostyle td { padding: 0.2em 0; } padding-left: 0 !important; margin-left: -10px } + .social-button img { padding: 10px; } - /* USERS */ -#newgroup-init a span { margin-left: 20px; } +#newgroup-init a span { + margin-left: 20px; +} + #newgroup-init a span:before { - position: absolute; left: 12px; top:-2px; - content: '+'; font-weight: bold; font-size: 150%; + position: absolute; + left: 12px; + top: -2px; + content: '+'; + font-weight: bold; + font-size: 150%; } #newgroup-form { height: 44px; } + #newgroupname { margin: 0; width: 100%; @@ -394,6 +452,7 @@ table.nostyle td { padding: 0.2em 0; } border-bottom: 1px solid #eee; border-radius: 0; } + #newgroup-form .button { position: absolute; right: 0; @@ -410,36 +469,70 @@ table.nostyle td { padding: 0.2em 0; } overflow: hidden; text-overflow: ellipsis; } + .isgroup.active .groupname { width: 65%; } -.usercount { float: left; margin: 5px; } +.usercount { + float: left; + margin: 5px; +} + li.active span.utils .delete { - float: left; position: relative; opacity: 0.5; - top: -7px; left: 7px; width: 44px; height: 44px; + float: left; + position: relative; + opacity: 0.5; + top: -7px; + left: 7px; + width: 44px; + height: 44px; } + li.active .rename { padding: 8px 14px 20px 14px; - top: 0px; position: absolute; width: 16px; height: 16px; + top: 0px; + position: absolute; + width: 16px; + height: 16px; opacity: 0.5; display: inline-block !important; } -li.active span.utils .delete img { margin: 14px; } -li.active .rename { opacity: 0.5; } -li.active span.utils .delete:hover, li.active .rename:hover { opacity: 1; } -span.utils .delete, .rename { display: none; } + +li.active span.utils .delete img { + margin: 14px; +} + +li.active .rename { + opacity: 0.5; +} + +li.active span.utils .delete:hover, li.active .rename:hover { + opacity: 1; +} + +span.utils .delete, .rename { + display: none; +} + #app-navigation ul li.active > span.utils .delete, -#app-navigation ul li.active > span.utils .rename { display: block; } +#app-navigation ul li.active > span.utils .rename { + display: block; +} + #usersearchform { position: absolute; top: 2px; right: 0; } + #usersearchform input { width: 150px; } -#usersearchform label { font-weight: 700; } + +#usersearchform label { + font-weight: 700; +} /* display table at full width */ table.grid { @@ -450,6 +543,7 @@ table.grid th { height: 2em; color: #999; } + table.grid th, table.grid td { border-bottom: 1px solid #eee; padding: 0 .5em; @@ -457,11 +551,28 @@ table.grid th, table.grid td { text-align: left; font-weight: normal; } -td.name, td.password { padding-left:.8em; } -td.password>img,td.displayName>img, td.quota>img { visibility:hidden; } -td.password, td.quota, td.displayName { width:12em; cursor:pointer; } -td.password>span, td.quota>span { margin-right: 1.2em; color: #C7C7C7; } -span.usersLastLoginTooltip { white-space: nowrap; } + +td.name, td.password { + padding-left: .8em; +} + +td.password > img, td.displayName > img, td.quota > img { + visibility: hidden; +} + +td.password, td.quota, td.displayName { + width: 12em; + cursor: pointer; +} + +td.password > span, td.quota > span { + margin-right: 1.2em; + color: #C7C7C7; +} + +span.usersLastLoginTooltip { + white-space: nowrap; +} /* dropdowns will be relative to this element */ #userlist { @@ -472,7 +583,7 @@ span.usersLastLoginTooltip { white-space: nowrap; } #userlist .storageLocation, #userlist .userBackend, #userlist .lastLogin { - display : none; + display: none; } /* because of accessibility the name cell is <th> - therefore we enforce the black color */ @@ -503,10 +614,11 @@ span.usersLastLoginTooltip { white-space: nowrap; } } .bubble { - z-index:1; + z-index: 1; right: -6px; top: auto; } + .bubble:after { right: 5px; } @@ -521,63 +633,111 @@ span.usersLastLoginTooltip { white-space: nowrap; } #userlist .popovermenu { margin-top: 4px; border-top-right-radius: 3px; + right: 3px; + opacity: 0; + display: block; + visibility: hidden; + transition: opacity 0.1s, visibility 0.1s; +} + +#userlist tr.active .popovermenu { + opacity: 1; + visibility: visible; +} + +#userlist .popovermenu > ul.userActionsMenu { + right: 15px; } -#userlist .popovermenu>ul.userActionsMenu { - right: 10px; +#userlist .popovermenu > ul.userActionsMenu a { + margin: 5px 0; } -#userlist .popovermenu>ul.userActionsMenu a span { +#userlist .popovermenu > ul.userActionsMenu a span:last-child { margin-left: 5px; } -#userlist .popovermenu { - display:none; +tr:hover > td.password > span, tr:hover > td.displayName > span { + margin: 0; + cursor: pointer; +} + +tr:hover > td.password > img, tr:hover > td.displayName > img, tr:hover > td.quota > img { + visibility: visible; + cursor: pointer; } -tr:hover>td.password>span, tr:hover>td.displayName>span { margin:0; cursor:pointer; } -tr:hover>td.password>img,tr:hover>td.displayName>img, tr:hover>td.quota>img { visibility:visible; cursor:pointer; } td.userActions { width: 25px; text-align: center; } + td.userActions .action { position: relative; top: 3px; } + +tr.active td.userActions .action { + opacity: 1; +} + td.userActions .action:hover { cursor: pointer; } -div.recoveryPassword { left:50em; display:block; position:absolute; top:-1px; } -input#recoveryPassword {width:15em;} +div.recoveryPassword { + left: 50em; + display: block; + position: absolute; + top: -1px; +} + +input#recoveryPassword { + width: 15em; +} + #controls select.quota { margin: 3px; margin-right: 10px; height: 37px; } -select.quota-user { position:relative; left:0; top:0; width:10em; } -select.quota.active { background: #fff; } -input.userFilter {width: 200px;} +select.quota-user { + position: relative; + left: 0; + top: 0; + width: 10em; +} + +select.quota.active { + background: #fff; +} + +input.userFilter { + width: 200px; +} /* positioning fixes */ #newuser { padding-left: 3px; } + #newuser .multiselect { min-width: 150px !important; } + #newuser .multiselect, #newusergroups + input[type='submit'] { position: relative; top: -1px; } + #headerGroups, #headerSubAdmins, #headerQuota { padding-left: 18px; } + #headerAvatar { width: 32px; } @@ -587,7 +747,6 @@ input.userFilter {width: 200px;} background-color: #FDD; } - /* APPS */ /* Bundle header */ @@ -595,21 +754,25 @@ input.userFilter {width: 200px;} display: table-row; position: relative; } + #apps-list .apps-header div { display: table-cell; height: 70px; } + #apps-list .apps-header h2 { display: table-cell; position: absolute; padding-left: 6px; padding-top: 15px; } + #apps-list .apps-header h2 .enable { position: relative; top: -1px; margin-left: 12px; } + #apps-list .apps-header h2 + .section { margin-top: 50px; } @@ -624,10 +787,14 @@ input.userFilter {width: 200px;} margin-bottom: 20px; } -.appinfo { margin: 1em 40px; } +.appinfo { + margin: 1em 40px; +} + #app-navigation .appwarning { background: #fcc; } + #app-navigation.appwarning:hover { background: #fbb; } @@ -640,12 +807,13 @@ span.version { #app-navigation .app-external, .app-version { - color: rgba(85,85,85,.5); + color: rgba(85, 85, 85, .5); } .app-level { margin-top: 8px; } + .app-level span { color: #555; background-color: transparent; @@ -653,10 +821,12 @@ span.version { border-radius: 3px; padding: 3px 6px; } + .app-level a { padding: 10px; white-space: nowrap; } + .app-level .official { border-color: #37ce02; background-position: left center; @@ -677,6 +847,7 @@ span.version { flex-wrap: wrap; align-content: flex-start; } + #apps-list.hidden { display: none; } @@ -686,6 +857,7 @@ span.version { flex: 0 0 auto; margin-left: 20px; } + #apps-list .section.apps-experimental { flex-basis: 90%; } @@ -693,16 +865,20 @@ span.version { #apps-list .app-description p { margin: 10px 0; } + #apps-list .app-description ul { list-style: disc; } + #apps-list .app-description ol { list-style: decimal; } + #apps-list .app-description > ul, #apps-list .app-description > ol { margin-left: 19px; } + #apps-list .app-description ol ol, #apps-list .app-description ol ul, #apps-list .app-description ul ol, @@ -715,6 +891,7 @@ span.version { width: 22%; box-sizing: border-box; } + #apps-list .section:nth-child(4n) { margin-right: 20px; } @@ -725,6 +902,7 @@ span.version { width: 30%; box-sizing: border-box; } + #apps-list .section:nth-child(3n) { margin-right: 20px; } @@ -735,6 +913,7 @@ span.version { width: 40%; box-sizing: border-box; } + #apps-list .section:nth-child(2n) { margin-right: 20px; } @@ -747,6 +926,7 @@ span.version { display: none !important; } } + @media only screen and (max-width: 700px) { #apps-list.installed .app-groups { display: none !important; @@ -757,9 +937,11 @@ span.version { display: block; margin: 8px 0; } + form.section { position: relative; } + .followupsection { display: block; padding: 0 30px 30px 30px; @@ -768,12 +950,14 @@ form.section { margin-top: -30px; position: relative; } + .app-image { position: relative; height: 150px; opacity: 1; overflow: hidden; } + .app-name, .app-version, .app-score, @@ -789,6 +973,7 @@ form.section { -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; opacity: .5; } + .app-description-container { clear: both; position: relative; @@ -806,6 +991,7 @@ form.section { #app-category-1 { margin-bottom: 18px; } + /* capitalize "Other" category */ #app-category-925 { text-transform: capitalize; @@ -822,10 +1008,19 @@ form.section { } /* Transition to complete width! */ -.app:hover, .app:active { max-width: inherit; } +.app:hover, .app:active { + max-width: inherit; +} -.appslink { text-decoration: underline; } -.score { color:#666; font-weight:bold; font-size:0.8em; } +.appslink { + text-decoration: underline; +} + +.score { + color: #666; + font-weight: bold; + font-size: 0.8em; +} .appinfo .documentation { margin-top: 1em; @@ -845,7 +1040,7 @@ form.section { margin: 0; } -#apps-list.installed .section > *{ +#apps-list.installed .section > * { display: table-cell; height: initial; vertical-align: middle; @@ -884,20 +1079,25 @@ form.section { } #apps-list.installed .groups-enable label { - margin-right: 3px; + margin-right: 3px; } /* LOG */ #log { - white-space:normal; + white-space: normal; margin-bottom: 14px; } -#lessLog { display:none; } -table.grid td.date{ + +#lessLog { + display: none; +} + +table.grid td.date { white-space: nowrap; } + #log-section p { - margin-top:20px; + margin-top: 20px; } /* ADMIN */ @@ -908,6 +1108,7 @@ table.grid td.date{ margin-right: 6px; width: 16px; } + #app-navigation li span.no-icon { padding-left: 32px; } @@ -916,20 +1117,29 @@ table.grid td.date{ list-style: initial; margin: 10px 0; } + #security-warning-state span { padding-left: 25px; background-position: 5px center; margin-left: -5px; } -#shareAPI p { padding-bottom: 0.8em; } -#shareAPI input#shareapiExpireAfterNDays {width: 25px;} +#shareAPI p { + padding-bottom: 0.8em; +} + +#shareAPI input#shareapiExpireAfterNDays { + width: 25px; +} + #shareAPI .indent { padding-left: 28px; } + #shareAPI .double-indent { padding-left: 56px; } + #fileSharingSettings h3 { display: inline-block; } @@ -947,6 +1157,7 @@ table.grid td.date{ padding: 11px 20px; vertical-align: text-bottom; } + #shareAPI h2, #encryptionAPI h2, #mail_general_settings h2 { @@ -964,9 +1175,11 @@ table.grid td.date{ width: 300px; text-align: right; } + .mail_settings p select:nth-child(2) { width: 143px; } + #mail_smtpport { width: 40px; } @@ -974,12 +1187,14 @@ table.grid td.date{ .cronlog { margin-left: 10px; } + .status { display: inline-block; height: 16px; width: 16px; vertical-align: text-bottom; } + .status.success { border-radius: 50%; } @@ -1002,9 +1217,11 @@ span.success { background: #37ce02; border-radius: 3px; } + span.error { background: #ce3702; } + span.indeterminate { background: #e6db00; border-radius: 40% 0; @@ -1032,7 +1249,6 @@ doesnotexist:-o-prefocus, .strengthify-wrapper { font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; } - /* HELP */ .help-includes { @@ -1062,6 +1278,7 @@ doesnotexist:-o-prefocus, .strengthify-wrapper { #admin-tips li { list-style: initial; } + #admin-tips li a { display: inline-block; padding: 3px 0; diff --git a/settings/js/users/users.js b/settings/js/users/users.js index 387709cd64c..dccbcc0ce1e 100644 --- a/settings/js/users/users.js +++ b/settings/js/users/users.js @@ -908,21 +908,24 @@ $(document).ready(function () { event.stopPropagation(); var $td = $(this).closest('td'); var $tr = $($td).closest('tr'); - var menudiv = $td.find('.popovermenu'); + var menudiv = $tr.find('.popovermenu'); - if(menudiv.is(':visible')) { - menudiv.fadeOut(100); + if($tr.is('.active')) { + $tr.removeClass('active'); return; } + $('#userlist tr.active').removeClass('active'); menudiv.find('.action-togglestate').empty(); if($tr.data('userEnabled')) { $('.action-togglestate', $td).html('<span class="icon icon-close"></span><span>'+t('settings', 'Disable')+'</span>'); } else { $('.action-togglestate', $td).html('<span class="icon icon-add"></span><span>'+t('settings', 'Enable')+'</span>'); } - menudiv.click(function() { menudiv.fadeOut(100); }); - menudiv.hover('', function() { menudiv.fadeOut(100); }); - menudiv.fadeIn(100); + $tr.addClass('active'); + }); + + $(document.body).click(function() { + $('#userlist tr.active').removeClass('active'); }); $userListBody.on('click', '.action-togglestate', function (event) { diff --git a/settings/l10n/ar.js b/settings/l10n/ar.js index 93b437e42b8..1671737eaa2 100644 --- a/settings/l10n/ar.js +++ b/settings/l10n/ar.js @@ -41,6 +41,7 @@ OC.L10N.register( "Authentication method" : "أسلوب التطابق", "Server address" : "عنوان الخادم", "Port" : "المنفذ", + "Test email settings" : "فحص إعدادات البريد الإلكتروني", "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." : "هذا يعني انه من الممكن ان يكون هناك مشكلة في بعض الاحرف في اسم الملف.", "Cron" : "مجدول", @@ -73,6 +74,7 @@ OC.L10N.register( "Show First Run Wizard again" : "ابدأ خطوات بداية التشغيل من جديد", "Name" : "الاسم", "Username" : "إسم المستخدم", + "Settings" : "الإعدادات", "E-Mail" : "بريد إلكتروني", "Create" : "انشئ", "Admin Recovery Password" : "استعادة كلمة المرور للمسؤول", @@ -86,7 +88,7 @@ OC.L10N.register( "Default" : "افتراضي", "Enabled" : "مفعلة", "Please provide an admin recovery password, otherwise all user data will be lost" : "يرجى توفير كلمة مرور المسؤول المستردة, وإلا سيتم فقد جميع بيانات المستخدم ", - "test email settings" : "إعدادات البريد التجريبي", + "test email settings" : "فحص إعدادات البريد الإلكتروني", "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", diff --git a/settings/l10n/ar.json b/settings/l10n/ar.json index 49b37a3f763..04e2dbd47a7 100644 --- a/settings/l10n/ar.json +++ b/settings/l10n/ar.json @@ -39,6 +39,7 @@ "Authentication method" : "أسلوب التطابق", "Server address" : "عنوان الخادم", "Port" : "المنفذ", + "Test email settings" : "فحص إعدادات البريد الإلكتروني", "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." : "هذا يعني انه من الممكن ان يكون هناك مشكلة في بعض الاحرف في اسم الملف.", "Cron" : "مجدول", @@ -71,6 +72,7 @@ "Show First Run Wizard again" : "ابدأ خطوات بداية التشغيل من جديد", "Name" : "الاسم", "Username" : "إسم المستخدم", + "Settings" : "الإعدادات", "E-Mail" : "بريد إلكتروني", "Create" : "انشئ", "Admin Recovery Password" : "استعادة كلمة المرور للمسؤول", @@ -84,7 +86,7 @@ "Default" : "افتراضي", "Enabled" : "مفعلة", "Please provide an admin recovery password, otherwise all user data will be lost" : "يرجى توفير كلمة مرور المسؤول المستردة, وإلا سيتم فقد جميع بيانات المستخدم ", - "test email settings" : "إعدادات البريد التجريبي", + "test email settings" : "فحص إعدادات البريد الإلكتروني", "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", diff --git a/settings/l10n/ca.js b/settings/l10n/ca.js index aabd227bb64..4ff1676ec91 100644 --- a/settings/l10n/ca.js +++ b/settings/l10n/ca.js @@ -1,11 +1,23 @@ OC.L10N.register( "settings", { + "{actor} changed your password" : "{actor} va canviar la contrasenya", + "You changed your password" : "Has canviat la teva contrasenya", + "Your password was reset by an administrator" : "La seva contrasenya s'ha restablert per un administrador", + "{actor} changed your email address" : "{actor} va canviar la seva adreça d\\'email", + "You changed your email address" : "Has canviat el teu email", + "Your email address was changed by an administrator" : "La seva adreça d'email s\\'ha canviat per un administrador", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "La teva <strong>contrasenya</strong> o <strong>email</strong> s'ha modificat", + "Your apps" : "Les teves apps", + "Enabled apps" : "Apps activades", + "Disabled apps" : "Apps desactivades", + "App bundles" : "Paquets d'apps", "Wrong password" : "Contrasenya incorrecta", "Saved" : "Desat", "No user supplied" : "No heu proporcionat cap usuari", "Unable to change password" : "No es pot canviar la contrasenya", "Authentication error" : "Error d'autenticació", + "Please provide an admin recovery password; otherwise, all user data will be lost." : "Si us plau, proporcioni una contrasenya d'administrador de recuperació; en cas contrari, es perdran totes les dades d'usuari.", "Wrong admin recovery password. Please check the password and try again." : "La contrasenya de recuperació d'administrador és incorrecta. Comproveu-la i torneu-ho a intentar.", "Federated Cloud Sharing" : "Compartició federada de núvol", "A problem occurred, please check your log files (Error: %s)" : "S'ha produït un problema, si us plau revisi els arxius de registre (Error: %s)", @@ -13,6 +25,8 @@ OC.L10N.register( "Group already exists." : "El grup ja existeix.", "Unable to add group." : "No es pot agregar el grup.", "Unable to delete group." : "No es pot esborrar el grup.", + "Invalid SMTP password." : "Contrasenya SMTP no vàlida.", + "Well done, %s!" : "Ben fet, %s!", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Hi ha hagut un problema en enviar el correu. Revisi la seva configuració. (Error: %s)", "You need to set your user email before being able to send test emails." : "Heu d'establir un nom d'usuari abans de poder enviar correus de prova.", "Invalid request" : "Sol·licitud no vàlida", @@ -21,6 +35,8 @@ OC.L10N.register( "A user with that name already exists." : "Ja existeix un usuari amb est nom.", "Unable to create user." : "No es pot crear el usuari.", "Unable to delete user." : "No es pot eliminar l'usuari", + "Error while enabling user." : "Error activant usuari.", + "Error while disabling user." : "Error desactivant usuari.", "Settings saved" : "Paràmetres desats", "Unable to change full name" : "No s'ha pogut canviar el nom complet", "Unable to change email address" : "No es pot canviar l'adreça de correu", @@ -29,18 +45,41 @@ OC.L10N.register( "Invalid user" : "Usuari no vàlid", "Unable to change mail address" : "No es pot canviar l'adreça de correu electrònic", "Email saved" : "S'ha desat el correu electrònic", + "%1$s changed your password on %2$s." : "%1$s va canviar la teva contrasenya a %2$s.", + "Your password on %s was changed." : "La teva contrasenya a %s es va canviar.", + "Your password on %s was reset by an administrator." : "La teva contrasenya a %s va ser restablerta per un administrador.", + "Password changed for %s" : "Contrasenya canviada per %s", + "If you did not request this, please contact an administrator." : "Si vostè no l'ha sol·licitat, si us plau, poseu-vos en contacte amb un administrador.", + "Password for %1$s changed on %2$s" : "Contrasenya per %1$s canviada a %2$s", + "%1$s changed your email address on %2$s." : "%1$s va canviar el teu email a %2$s.", + "Your email address on %s was changed." : "El teu email a %s es va canviar.", + "Your email address on %s was changed by an administrator." : "El teu email a %s es va canviar per un administrador.", + "Email address changed for %s" : "Adreça d'email canviada per %s", + "The new email address is %s" : "La teva adreça d'email és %s", + "Email address for %1$s changed on %2$s" : "Adreça d'email per %1$s canviada a %2$s", + "Welcome aboard" : "Benvingut a bord", + "Welcome aboard %s" : "Benvingut a bord %s", + "You have now an %s account, you can add, protect, and share your data." : "Ara tens un compte %s, pot afegir, protegir i compartir les teves dades.", + "Your username is: %s" : "El teu usuari és: %s", + "Set your password" : "Establir la contrasenya", + "Go to %s" : "Anar a %s", + "Install Client" : "Instal·lar Client", "Your %s account was created" : "S'ha creat el seu compte %s", + "Password confirmation is required" : "Cal una confirmació de la contrasenya", "Couldn't remove app." : "No s'ha pogut eliminar l'aplicació", "Couldn't update app." : "No s'ha pogut actualitzar l'aplicació.", + "Are you really sure you want add {domain} as trusted domain?" : "Estàs segur que vols afegir {domini} com a domini de confiança?", "Add trusted domain" : "Afegir domini de confiança", "Migration in progress. Please wait until the migration is finished" : "Migració en progrés. Si us plau, espereu fins que finalitzi la migració", "Migration started …" : "Migració iniciada ...", "Not saved" : "No desat", + "Sending…" : "Enviant…", "Email sent" : "El correu electrónic s'ha enviat", "Official" : "Oficial", "All" : "Tots", "Update to %s" : "Actualitzar a %s", "No apps found for your version" : "No s'han trobat aplicacions per la seva versió", + "The app will be downloaded from the app store" : "L'app es descarregarà des de la botiga d'apps", "Error while disabling app" : "Error en desactivar l'aplicació", "Disable" : "Desactiva", "Enable" : "Habilita", @@ -49,10 +88,15 @@ OC.L10N.register( "Updating...." : "Actualitzant...", "Error while updating app" : "Error en actualitzar l'aplicació", "Updated" : "Actualitzada", + "Removing …" : "Treient ...", + "Error while removing app" : "Error treient app", + "Remove" : "Treure", "App update" : "Actualització de la App", "Approved" : "Aprovat", "Experimental" : "Experimental", + "Enable all" : "Permetre tots", "Disconnect" : "Desconnecta", + "Revoke" : "Revocar", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -63,12 +107,14 @@ OC.L10N.register( "iPad iOS" : "iPad iOS", "iOS Client" : "iOS Client", "Android Client" : "Client Android", + "Sync client - {os}" : "Client de sincronització - {os}", "This session" : "Aquesta sessió", "Copy" : "Copia", "Copied!" : "Copiat!", "Not supported!" : "No soportat!", "Press ⌘-C to copy." : "Prem ⌘-C per copiar.", "Press Ctrl-C to copy." : "Prem Ctrl-C per copiar.", + "Error while loading browser sessions and device tokens" : "Error durant la càrrega de les sessions del navegador i testimonis de dispositius", "Valid until {date}" : "Vàlid fins {date}", "Delete" : "Esborra", "Local" : "Local", @@ -77,6 +123,8 @@ OC.L10N.register( "Only visible to you" : "Només visible per tu", "Contacts" : "Contactes", "Public" : "Públic", + "Verify" : "Verificar", + "Verifying …" : "Verificant ...", "Select a profile picture" : "Seleccioneu una imatge de perfil", "Very weak password" : "Contrasenya massa feble", "Weak password" : "Contrasenya feble", @@ -85,27 +133,35 @@ OC.L10N.register( "Strong password" : "Contrasenya forta", "Groups" : "Grups", "Unable to delete {objName}" : "No es pot eliminar {objName}", + "Error creating group: {message}" : "Error creant grup: {message}", "A valid group name must be provided" : "Heu de facilitar un nom de grup vàlid", "deleted {groupName}" : "eliminat {groupName}", "undo" : "desfés", "never" : "mai", "deleted {userName}" : "eliminat {userName}", + "Unable to add user to group {group}" : "No es pot afegir l'usuari al grup {group}", + "Unable to remove user from group {group}" : "No es pot eliminar l'usuari del grup {group}", "Add group" : "Afegeix grup", "no group" : "sense grup", + "Password successfully changed" : "Contrasenya canviada correctament", "Changing the password will result in data loss, because data recovery is not available for this user" : "Canviar la contrasenya provocarà pèrdua de dades, perquè la recuperació de dades no està disponible per a aquest usuari", + "Could not change the users email" : "No s'ha pogut canviar el correu electrònic dels usuaris", "A valid username must be provided" : "Heu de facilitar un nom d'usuari vàlid", "A valid password must be provided" : "Heu de facilitar una contrasenya vàlida", "A valid email must be provided" : "S'ha de subministrar una adreça de correu electrònic vàlida", "__language_name__" : "Català", "Unlimited" : "Il·limitat", + "Verifying" : "Verificant", "Personal info" : "Informació personal", "Sessions" : "Sessions", - "App passwords" : "Contrasenyes de l'Apliació", + "App passwords" : "Contrasenyes de l'Aplicació", "Sync clients" : "Sincronitzar clients", "None" : "Cap", "Login" : "Inici de sessió", "Plain" : "Pla", "NT LAN Manager" : "Gestor NT LAN", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", "Email server" : "Servidor de correu electrònic", "Open documentation" : "Obre la documentació", "Send mode" : "Mode d'enviament", @@ -148,16 +204,19 @@ OC.L10N.register( "Allow apps to use the Share API" : "Permet que les aplicacions utilitzin l'API de compartir", "Allow users to share via link" : "Permet als usuaris compartir a través d'enllaços", "Allow public uploads" : "Permet pujada pública", + "Always ask for a password" : "Sempre demanar una contrasenya", "Enforce password protection" : "Reforça la protecció amb contrasenya", "Set default expiration date" : "Estableix la data de venciment", "Expire after " : "Venciment després de", "days" : "dies", "Enforce expiration date" : "Força la data de venciment", "Allow resharing" : "Permet compartir de nou", + "Allow sharing with groups" : "Permetre compartir amb grups", "Restrict users to only share with users in their groups" : "Permet als usuaris compartir només amb usuaris del seu grup", "Exclude groups from sharing" : "Exclou grups de compartició", "These groups will still be able to receive shares, but not to initiate them." : "Aquests fitxers encara podran rebre compartits, però no podran iniciar-los.", "Tips & tricks" : "Consells i trucs", + "This is particularly recommended when using the desktop client for file synchronisation." : "Això es recomana especialment quan s'utilitza el client d'escriptori per a sincronització d'arxius.", "How to do backups" : "Com fer còpies de seguretat", "Advanced monitoring" : "Supervisió avançada", "Performance tuning" : "Ajust del rendiment", @@ -165,6 +224,8 @@ OC.L10N.register( "Theming" : "Tematització", "Hardening and security guidance" : "Guia de protecció i seguretat", "Developer documentation" : "Documentació para desenvolupadors", + "Limit to groups" : "Limitar per grups", + "This app has an update available." : "Aquesta aplicació té una actualització disponible.", "by %s" : "per %s", "Documentation:" : "Documentació:", "User documentation" : "Documentació d'usuari", @@ -174,6 +235,7 @@ OC.L10N.register( "Hide description …" : "Amagar descripció...", "This app cannot be installed because the following dependencies are not fulfilled:" : "Aquesta aplicació no es pot instal·lar perquè les següents dependències no es compleixen:", "Enable only for specific groups" : "Activa només per grups específics", + "SSL Root Certificates" : "Certificats arrel SSL", "Common Name" : "Nom comú", "Valid until" : "Valid fins", "Issued By" : "Emès Per", @@ -186,8 +248,10 @@ OC.L10N.register( "Commercial support" : "Suport comercial", "Profile picture" : "Foto de perfil", "Upload new" : "Puja'n una de nova", + "Select from Files" : "Seleccioneu d'Arxius", "Remove image" : "Elimina imatge", "png or jpg, max. 20 MB" : "png or jpg, max. 20 MB", + "Picture provided by original account" : "Imatge proveïda per compte original", "Cancel" : "Cancel·la", "Choose as profile picture" : "Elegeix una imatge de perfil", "Full name" : "Nom complet", @@ -195,11 +259,13 @@ OC.L10N.register( "Email" : "Correu electrònic", "Your email address" : "Correu electrònic", "No email address set" : "No s'ha establert cap adreça de correu", + "For password reset and notifications" : "Per restablir la contrasenya i notificacions", "Phone number" : "Número de telèfon", "Your phone number" : "El teu número de telèfon", "Address" : "Adreça", "Your postal address" : "La teva adreça postal", "Website" : "Lloc web", + "It can take up to 24 hours before the account is displayed as verified." : "Pot prendre fins a 24 hores abans que aparegui el compte com a verificat.", "Twitter" : "Twitter", "You are member of the following groups:" : "Vostè és membre dels següents grups:", "Password" : "Contrasenya", @@ -213,15 +279,19 @@ OC.L10N.register( "Android app" : "aplicació para Android", "iOS app" : "aplicació para iOS", "Show First Run Wizard again" : "Torna a mostrar l'assistent de primera execució", + "Web, desktop and mobile clients currently logged in to your account." : "Clients Web, d'escriptori i mòbils connectats actualment al seu compte", "Device" : "Dispositiu", "Last activity" : "Última activitat", "Name" : "Nom", "App name" : "Nom de l'aplicació", "Create new app password" : "Crea una nova contrasenya de l'aplicació", + "For security reasons this password will only be shown once." : "Per raons de seguretat aquesta contrasenya només es mostrarà una vegada.", "Username" : "Nom d'usuari", "Done" : "Fet", + "Settings" : "Preferències", "Show storage location" : "Mostra la ubicació del magatzem", "Show user backend" : "Mostrar backend d'usuari", + "Show last login" : "Mostra darrera entrada", "Show email address" : "Mostrar l'adreça de correu electrònic", "Send email to new user" : "Enviar correu electrònic al nou usuari", "E-Mail" : "E-mail", @@ -231,8 +301,11 @@ OC.L10N.register( "Group name" : "Nom del grup", "Everyone" : "Tothom", "Admins" : "Administradors", + "Disabled" : "Desactivat", + "Default quota" : "Quota per defecte", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Escriviu la quota d'emmagatzemament (per ex.: \"512 MB\" o \"12 GB\")", "Other" : "Un altre", + "Group admin for" : "Administrador de grup per", "Quota" : "Quota", "Storage location" : "Ubicació de l'emmagatzemament", "Last login" : "Últim accés", @@ -256,6 +329,8 @@ OC.L10N.register( "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "El mòdul de PHP 'fileinfo' no s'ha trobat. Us recomanem que habiliteu aquest mòdul per obtenir millors resultats amb la detecció mime-type.", "Uninstall app" : "Desinstala la app", "Cheers!" : "Salut!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hola,\n\nsimplement que sàpigas que ja tens un compte %s.\n\nEl teu nom d'usuari: %s\nAccedir-hi: %s\n", + "For password recovery and notifications" : "Per a la recuperació de la contrasenya i notificacions", "Your website" : "El teu lloc web", "Show last log in" : "Mostrar l'últim accés" }, diff --git a/settings/l10n/ca.json b/settings/l10n/ca.json index ef1d3c37822..2be02259108 100644 --- a/settings/l10n/ca.json +++ b/settings/l10n/ca.json @@ -1,9 +1,21 @@ { "translations": { + "{actor} changed your password" : "{actor} va canviar la contrasenya", + "You changed your password" : "Has canviat la teva contrasenya", + "Your password was reset by an administrator" : "La seva contrasenya s'ha restablert per un administrador", + "{actor} changed your email address" : "{actor} va canviar la seva adreça d\\'email", + "You changed your email address" : "Has canviat el teu email", + "Your email address was changed by an administrator" : "La seva adreça d'email s\\'ha canviat per un administrador", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "La teva <strong>contrasenya</strong> o <strong>email</strong> s'ha modificat", + "Your apps" : "Les teves apps", + "Enabled apps" : "Apps activades", + "Disabled apps" : "Apps desactivades", + "App bundles" : "Paquets d'apps", "Wrong password" : "Contrasenya incorrecta", "Saved" : "Desat", "No user supplied" : "No heu proporcionat cap usuari", "Unable to change password" : "No es pot canviar la contrasenya", "Authentication error" : "Error d'autenticació", + "Please provide an admin recovery password; otherwise, all user data will be lost." : "Si us plau, proporcioni una contrasenya d'administrador de recuperació; en cas contrari, es perdran totes les dades d'usuari.", "Wrong admin recovery password. Please check the password and try again." : "La contrasenya de recuperació d'administrador és incorrecta. Comproveu-la i torneu-ho a intentar.", "Federated Cloud Sharing" : "Compartició federada de núvol", "A problem occurred, please check your log files (Error: %s)" : "S'ha produït un problema, si us plau revisi els arxius de registre (Error: %s)", @@ -11,6 +23,8 @@ "Group already exists." : "El grup ja existeix.", "Unable to add group." : "No es pot agregar el grup.", "Unable to delete group." : "No es pot esborrar el grup.", + "Invalid SMTP password." : "Contrasenya SMTP no vàlida.", + "Well done, %s!" : "Ben fet, %s!", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Hi ha hagut un problema en enviar el correu. Revisi la seva configuració. (Error: %s)", "You need to set your user email before being able to send test emails." : "Heu d'establir un nom d'usuari abans de poder enviar correus de prova.", "Invalid request" : "Sol·licitud no vàlida", @@ -19,6 +33,8 @@ "A user with that name already exists." : "Ja existeix un usuari amb est nom.", "Unable to create user." : "No es pot crear el usuari.", "Unable to delete user." : "No es pot eliminar l'usuari", + "Error while enabling user." : "Error activant usuari.", + "Error while disabling user." : "Error desactivant usuari.", "Settings saved" : "Paràmetres desats", "Unable to change full name" : "No s'ha pogut canviar el nom complet", "Unable to change email address" : "No es pot canviar l'adreça de correu", @@ -27,18 +43,41 @@ "Invalid user" : "Usuari no vàlid", "Unable to change mail address" : "No es pot canviar l'adreça de correu electrònic", "Email saved" : "S'ha desat el correu electrònic", + "%1$s changed your password on %2$s." : "%1$s va canviar la teva contrasenya a %2$s.", + "Your password on %s was changed." : "La teva contrasenya a %s es va canviar.", + "Your password on %s was reset by an administrator." : "La teva contrasenya a %s va ser restablerta per un administrador.", + "Password changed for %s" : "Contrasenya canviada per %s", + "If you did not request this, please contact an administrator." : "Si vostè no l'ha sol·licitat, si us plau, poseu-vos en contacte amb un administrador.", + "Password for %1$s changed on %2$s" : "Contrasenya per %1$s canviada a %2$s", + "%1$s changed your email address on %2$s." : "%1$s va canviar el teu email a %2$s.", + "Your email address on %s was changed." : "El teu email a %s es va canviar.", + "Your email address on %s was changed by an administrator." : "El teu email a %s es va canviar per un administrador.", + "Email address changed for %s" : "Adreça d'email canviada per %s", + "The new email address is %s" : "La teva adreça d'email és %s", + "Email address for %1$s changed on %2$s" : "Adreça d'email per %1$s canviada a %2$s", + "Welcome aboard" : "Benvingut a bord", + "Welcome aboard %s" : "Benvingut a bord %s", + "You have now an %s account, you can add, protect, and share your data." : "Ara tens un compte %s, pot afegir, protegir i compartir les teves dades.", + "Your username is: %s" : "El teu usuari és: %s", + "Set your password" : "Establir la contrasenya", + "Go to %s" : "Anar a %s", + "Install Client" : "Instal·lar Client", "Your %s account was created" : "S'ha creat el seu compte %s", + "Password confirmation is required" : "Cal una confirmació de la contrasenya", "Couldn't remove app." : "No s'ha pogut eliminar l'aplicació", "Couldn't update app." : "No s'ha pogut actualitzar l'aplicació.", + "Are you really sure you want add {domain} as trusted domain?" : "Estàs segur que vols afegir {domini} com a domini de confiança?", "Add trusted domain" : "Afegir domini de confiança", "Migration in progress. Please wait until the migration is finished" : "Migració en progrés. Si us plau, espereu fins que finalitzi la migració", "Migration started …" : "Migració iniciada ...", "Not saved" : "No desat", + "Sending…" : "Enviant…", "Email sent" : "El correu electrónic s'ha enviat", "Official" : "Oficial", "All" : "Tots", "Update to %s" : "Actualitzar a %s", "No apps found for your version" : "No s'han trobat aplicacions per la seva versió", + "The app will be downloaded from the app store" : "L'app es descarregarà des de la botiga d'apps", "Error while disabling app" : "Error en desactivar l'aplicació", "Disable" : "Desactiva", "Enable" : "Habilita", @@ -47,10 +86,15 @@ "Updating...." : "Actualitzant...", "Error while updating app" : "Error en actualitzar l'aplicació", "Updated" : "Actualitzada", + "Removing …" : "Treient ...", + "Error while removing app" : "Error treient app", + "Remove" : "Treure", "App update" : "Actualització de la App", "Approved" : "Aprovat", "Experimental" : "Experimental", + "Enable all" : "Permetre tots", "Disconnect" : "Desconnecta", + "Revoke" : "Revocar", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -61,12 +105,14 @@ "iPad iOS" : "iPad iOS", "iOS Client" : "iOS Client", "Android Client" : "Client Android", + "Sync client - {os}" : "Client de sincronització - {os}", "This session" : "Aquesta sessió", "Copy" : "Copia", "Copied!" : "Copiat!", "Not supported!" : "No soportat!", "Press ⌘-C to copy." : "Prem ⌘-C per copiar.", "Press Ctrl-C to copy." : "Prem Ctrl-C per copiar.", + "Error while loading browser sessions and device tokens" : "Error durant la càrrega de les sessions del navegador i testimonis de dispositius", "Valid until {date}" : "Vàlid fins {date}", "Delete" : "Esborra", "Local" : "Local", @@ -75,6 +121,8 @@ "Only visible to you" : "Només visible per tu", "Contacts" : "Contactes", "Public" : "Públic", + "Verify" : "Verificar", + "Verifying …" : "Verificant ...", "Select a profile picture" : "Seleccioneu una imatge de perfil", "Very weak password" : "Contrasenya massa feble", "Weak password" : "Contrasenya feble", @@ -83,27 +131,35 @@ "Strong password" : "Contrasenya forta", "Groups" : "Grups", "Unable to delete {objName}" : "No es pot eliminar {objName}", + "Error creating group: {message}" : "Error creant grup: {message}", "A valid group name must be provided" : "Heu de facilitar un nom de grup vàlid", "deleted {groupName}" : "eliminat {groupName}", "undo" : "desfés", "never" : "mai", "deleted {userName}" : "eliminat {userName}", + "Unable to add user to group {group}" : "No es pot afegir l'usuari al grup {group}", + "Unable to remove user from group {group}" : "No es pot eliminar l'usuari del grup {group}", "Add group" : "Afegeix grup", "no group" : "sense grup", + "Password successfully changed" : "Contrasenya canviada correctament", "Changing the password will result in data loss, because data recovery is not available for this user" : "Canviar la contrasenya provocarà pèrdua de dades, perquè la recuperació de dades no està disponible per a aquest usuari", + "Could not change the users email" : "No s'ha pogut canviar el correu electrònic dels usuaris", "A valid username must be provided" : "Heu de facilitar un nom d'usuari vàlid", "A valid password must be provided" : "Heu de facilitar una contrasenya vàlida", "A valid email must be provided" : "S'ha de subministrar una adreça de correu electrònic vàlida", "__language_name__" : "Català", "Unlimited" : "Il·limitat", + "Verifying" : "Verificant", "Personal info" : "Informació personal", "Sessions" : "Sessions", - "App passwords" : "Contrasenyes de l'Apliació", + "App passwords" : "Contrasenyes de l'Aplicació", "Sync clients" : "Sincronitzar clients", "None" : "Cap", "Login" : "Inici de sessió", "Plain" : "Pla", "NT LAN Manager" : "Gestor NT LAN", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", "Email server" : "Servidor de correu electrònic", "Open documentation" : "Obre la documentació", "Send mode" : "Mode d'enviament", @@ -146,16 +202,19 @@ "Allow apps to use the Share API" : "Permet que les aplicacions utilitzin l'API de compartir", "Allow users to share via link" : "Permet als usuaris compartir a través d'enllaços", "Allow public uploads" : "Permet pujada pública", + "Always ask for a password" : "Sempre demanar una contrasenya", "Enforce password protection" : "Reforça la protecció amb contrasenya", "Set default expiration date" : "Estableix la data de venciment", "Expire after " : "Venciment després de", "days" : "dies", "Enforce expiration date" : "Força la data de venciment", "Allow resharing" : "Permet compartir de nou", + "Allow sharing with groups" : "Permetre compartir amb grups", "Restrict users to only share with users in their groups" : "Permet als usuaris compartir només amb usuaris del seu grup", "Exclude groups from sharing" : "Exclou grups de compartició", "These groups will still be able to receive shares, but not to initiate them." : "Aquests fitxers encara podran rebre compartits, però no podran iniciar-los.", "Tips & tricks" : "Consells i trucs", + "This is particularly recommended when using the desktop client for file synchronisation." : "Això es recomana especialment quan s'utilitza el client d'escriptori per a sincronització d'arxius.", "How to do backups" : "Com fer còpies de seguretat", "Advanced monitoring" : "Supervisió avançada", "Performance tuning" : "Ajust del rendiment", @@ -163,6 +222,8 @@ "Theming" : "Tematització", "Hardening and security guidance" : "Guia de protecció i seguretat", "Developer documentation" : "Documentació para desenvolupadors", + "Limit to groups" : "Limitar per grups", + "This app has an update available." : "Aquesta aplicació té una actualització disponible.", "by %s" : "per %s", "Documentation:" : "Documentació:", "User documentation" : "Documentació d'usuari", @@ -172,6 +233,7 @@ "Hide description …" : "Amagar descripció...", "This app cannot be installed because the following dependencies are not fulfilled:" : "Aquesta aplicació no es pot instal·lar perquè les següents dependències no es compleixen:", "Enable only for specific groups" : "Activa només per grups específics", + "SSL Root Certificates" : "Certificats arrel SSL", "Common Name" : "Nom comú", "Valid until" : "Valid fins", "Issued By" : "Emès Per", @@ -184,8 +246,10 @@ "Commercial support" : "Suport comercial", "Profile picture" : "Foto de perfil", "Upload new" : "Puja'n una de nova", + "Select from Files" : "Seleccioneu d'Arxius", "Remove image" : "Elimina imatge", "png or jpg, max. 20 MB" : "png or jpg, max. 20 MB", + "Picture provided by original account" : "Imatge proveïda per compte original", "Cancel" : "Cancel·la", "Choose as profile picture" : "Elegeix una imatge de perfil", "Full name" : "Nom complet", @@ -193,11 +257,13 @@ "Email" : "Correu electrònic", "Your email address" : "Correu electrònic", "No email address set" : "No s'ha establert cap adreça de correu", + "For password reset and notifications" : "Per restablir la contrasenya i notificacions", "Phone number" : "Número de telèfon", "Your phone number" : "El teu número de telèfon", "Address" : "Adreça", "Your postal address" : "La teva adreça postal", "Website" : "Lloc web", + "It can take up to 24 hours before the account is displayed as verified." : "Pot prendre fins a 24 hores abans que aparegui el compte com a verificat.", "Twitter" : "Twitter", "You are member of the following groups:" : "Vostè és membre dels següents grups:", "Password" : "Contrasenya", @@ -211,15 +277,19 @@ "Android app" : "aplicació para Android", "iOS app" : "aplicació para iOS", "Show First Run Wizard again" : "Torna a mostrar l'assistent de primera execució", + "Web, desktop and mobile clients currently logged in to your account." : "Clients Web, d'escriptori i mòbils connectats actualment al seu compte", "Device" : "Dispositiu", "Last activity" : "Última activitat", "Name" : "Nom", "App name" : "Nom de l'aplicació", "Create new app password" : "Crea una nova contrasenya de l'aplicació", + "For security reasons this password will only be shown once." : "Per raons de seguretat aquesta contrasenya només es mostrarà una vegada.", "Username" : "Nom d'usuari", "Done" : "Fet", + "Settings" : "Preferències", "Show storage location" : "Mostra la ubicació del magatzem", "Show user backend" : "Mostrar backend d'usuari", + "Show last login" : "Mostra darrera entrada", "Show email address" : "Mostrar l'adreça de correu electrònic", "Send email to new user" : "Enviar correu electrònic al nou usuari", "E-Mail" : "E-mail", @@ -229,8 +299,11 @@ "Group name" : "Nom del grup", "Everyone" : "Tothom", "Admins" : "Administradors", + "Disabled" : "Desactivat", + "Default quota" : "Quota per defecte", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Escriviu la quota d'emmagatzemament (per ex.: \"512 MB\" o \"12 GB\")", "Other" : "Un altre", + "Group admin for" : "Administrador de grup per", "Quota" : "Quota", "Storage location" : "Ubicació de l'emmagatzemament", "Last login" : "Últim accés", @@ -254,6 +327,8 @@ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "El mòdul de PHP 'fileinfo' no s'ha trobat. Us recomanem que habiliteu aquest mòdul per obtenir millors resultats amb la detecció mime-type.", "Uninstall app" : "Desinstala la app", "Cheers!" : "Salut!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hola,\n\nsimplement que sàpigas que ja tens un compte %s.\n\nEl teu nom d'usuari: %s\nAccedir-hi: %s\n", + "For password recovery and notifications" : "Per a la recuperació de la contrasenya i notificacions", "Your website" : "El teu lloc web", "Show last log in" : "Mostrar l'últim accés" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/settings/l10n/cs.js b/settings/l10n/cs.js index 229d1095255..41dcb827b24 100644 --- a/settings/l10n/cs.js +++ b/settings/l10n/cs.js @@ -1,8 +1,16 @@ OC.L10N.register( "settings", { + "{actor} changed your password" : "{actor} změnil(a) vaše heslo", + "You changed your password" : "Změnil(a) jste vaše heslo", + "Your password was reset by an administrator" : "Vaše heslo bylo resetováno administrátorem", + "{actor} changed your email address" : "{actor} změnil(a) vaši e-mailovou adresu", + "You changed your email address" : "Změnil(a) jste vaši e-mailovou adresu", + "Your email address was changed by an administrator" : "Vaše e-mailová adresa byla změněna administrátorem", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "Vaše <strong>heslo</strong> nebo <strong>e-mail</strong> bylo změněno", "Your apps" : "Vaše aplikace", "Enabled apps" : "Povolené aplikace", + "Disabled apps" : "Zakázané aplikace", "App bundles" : "Balíčky aplikací", "Wrong password" : "Nesprávné heslo", "Saved" : "Uloženo", @@ -11,6 +19,7 @@ OC.L10N.register( "Authentication error" : "Chyba přihlášení", "Please provide an admin recovery password; otherwise, all user data will be lost." : "Zadejte prosím administrátorské heslo pro obnovu, jinak budou všechna uživatelská data ztracena.", "Wrong admin recovery password. Please check the password and try again." : "Chybné administrátorské heslo pro obnovu. Překontrolujte správnost hesla a zkuste to znovu.", + "Backend doesn't support password change, but the user's encryption key was updated." : "Backend nepodporuje změnu hesla, ale uživatelův šifrovací klíč byl aktualizován.", "installing and updating apps via the app store or Federated Cloud Sharing" : "Instalovat a aktualizovat aplikace pomocí obchodu nebo Sdíleného Cloudového Úložiště", "Federated Cloud Sharing" : "Propojené cloudové sdílení", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL používá zastaralou %s verzi (%s). Aktualizujte prosím svůj operační systém, jinak funkce jako %s nemusí spolehlivě pracovat.", @@ -19,8 +28,11 @@ OC.L10N.register( "Group already exists." : "Skupina již existuje.", "Unable to add group." : "Nelze přidat skupinu.", "Unable to delete group." : "Nelze smazat skupinu.", + "Invalid SMTP password." : "Neplatné heslo SMTP.", "Well done, %s!" : "Dobře, %s.", "If you received this email, the email configuration seems to be correct." : "Pokud jste obdržel(a) tento e-mail, nastavení e-mailů bude asi správné.", + "Email setting test" : "Zkouška nastavení e-mailu", + "Email could not be sent. Check your mail server log" : "E-mail se nepodařilo odeslat. Zkontrolujte protokol vašeho e-mailového serveru.", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Při odesílání emailu nastala chyba. Překontrolujte prosím svá nastavení. (Error: %s)", "You need to set your user email before being able to send test emails." : "Pro možnost odeslání zkušebních emailů musíte nejprve nastavit svou emailovou adresu.", "Invalid request" : "Neplatný požadavek", @@ -30,6 +42,9 @@ OC.L10N.register( "To send a password link to the user an email address is required." : "Pro zaslání odkazu na heslo uživateli je nutná e-mailová adresa.", "Unable to create user." : "Nelze vytvořit uživatele.", "Unable to delete user." : "Nelze smazat uživatele.", + "Error while enabling user." : "Chyba při povolování uživatele.", + "Error while disabling user." : "Chyba při zakazování uživatele.", + "In order to verify your Twitter account post following tweet on Twitter (please make sure to post it without any line breaks):" : "Pokud chcete ověřit váš Twitter účet, napište následující tweet (ujistěte se, že ho zasíláte bez odřádků):", "Settings saved" : "Nastavení uloženo", "Unable to change full name" : "Nelze změnit celé jméno", "Unable to change email address" : "Nepodařilo se změnit e-mailovou adresu", @@ -38,8 +53,25 @@ OC.L10N.register( "Invalid user" : "Neplatný uživatel", "Unable to change mail address" : "Nelze změnit emailovou adresu", "Email saved" : "Email uložen", + "%1$s changed your password on %2$s." : "%1$s změnil(a) vaše heslo na %2$s.", + "Your password on %s was changed." : "Vaše heslo na %s bylo změněno.", + "Your password on %s was reset by an administrator." : "Vaše heslo na %s bylo resetováno administrátorem.", + "Password changed for %s" : "Změna hesla pro %s", + "If you did not request this, please contact an administrator." : "Pokud jste o toto nežádali, prosím, kontaktujte administrátora.", + "Password for %1$s changed on %2$s" : "Heslo pro %1$s na %2$s změněno ", + "%1$s changed your email address on %2$s." : "%1$s změnil(a) vaši e-mailovou adresu na %2s.", + "Your email address on %s was changed." : "Vaše e-mailová adresa na %s byla změněna.", + "Your email address on %s was changed by an administrator." : "Vaše e-mailová adresa na %s byla změněna administrátorem.", + "Email address changed for %s" : "E-mailová adresa pro %s byla změněna", + "The new email address is %s" : "Nová e-mailová adresa je %s", + "Email address for %1$s changed on %2$s" : "E-mailová adresa pro %1$s se na %2$s změnila", + "Welcome aboard" : "Vítejte na palubě", "Welcome aboard %s" : "Vítej na palubě, %s", + "You have now an %s account, you can add, protect, and share your data." : "Nyní máte %s účet, můžete přidat, ochránit a sdílet svá data.", + "Your username is: %s" : "Vaše uživatelské jméno je: %s", "Set your password" : "Nastavte vaše heslo", + "Go to %s" : "Jít na %s", + "Install Client" : "Nainstalovat klienta", "Your %s account was created" : "Účet %s byl vytvořen", "Password confirmation is required" : "Je vyžadováno potvrzení hesla", "Couldn't remove app." : "Nepodařilo se odebrat aplikaci.", @@ -49,6 +81,7 @@ OC.L10N.register( "Migration in progress. Please wait until the migration is finished" : "Migrace probíhá. Počkejte prosím než bude dokončena", "Migration started …" : "Migrace spuštěna ...", "Not saved" : "Neuloženo", + "Sending…" : "Odesílání…", "Email sent" : "Email odeslán", "Official" : "Oficiální", "All" : "Vše", @@ -73,11 +106,13 @@ OC.L10N.register( "Updated" : "Aktualizováno", "Removing …" : "Odstraňování …", "Error while removing app" : "Chyba při odstraňování aplikace", + "Remove" : "Odstranit", "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikace byla povolena ale je třeba ji aktualizovat. Za 5 sekund budete přesměrování na stránku pro aktualizaci.", "App update" : "Aktualizace aplikace", "Approved" : "Potvrzeno", "Experimental" : "Experimentální", "No apps found for {query}" : "Nebyly nalezeny žádné aplikace pro {query}", + "Enable all" : "Povolit vše", "Allow filesystem access" : "Povolit přístup k souborovému systému", "Disconnect" : "Odpojit", "Revoke" : "Odvolat", @@ -112,6 +147,7 @@ OC.L10N.register( "Visible to local users and to trusted servers" : "Viditelné pro místní uživatele a důvěryhodné servery", "Public" : "Veřejný", "Will be synced to a global and public address book" : "Bude synchronizováno do globálního a veřejného adresáře", + "Verifying …" : "Ověřování …", "Select a profile picture" : "Vyberte profilový obrázek", "Very weak password" : "Velmi slabé heslo", "Weak password" : "Slabé heslo", @@ -135,12 +171,14 @@ OC.L10N.register( "Password successfully changed" : "Heslo úspěšně změněno", "Changing the password will result in data loss, because data recovery is not available for this user" : "Změna hesla bude mít za následek ztrátu dat, protože jejich obnova není pro tohoto uživatele dostupná.", "Could not change the users email" : "Nelze změnit email uživatele", + "Error while changing status of {user}" : "Chyba při změně stavu {user}", "A valid username must be provided" : "Musíte zadat platné uživatelské jméno", "Error creating user: {message}" : "Chyba vytvoření uživatele: {message}", "A valid password must be provided" : "Musíte zadat platné heslo", "A valid email must be provided" : "Musíte zadat platný email", "__language_name__" : "Česky", "Unlimited" : "Neomezeně", + "Verifying" : "Ověřování", "Personal info" : "Osobní informace", "Sessions" : "Sezení", "App passwords" : "Hesla aplikací", @@ -153,6 +191,7 @@ OC.L10N.register( "STARTTLS" : "STARTTLS", "Email server" : "Emailový server", "Open documentation" : "Otevřít dokumentaci", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Je důležité tento server nastavit, aby mohly být odesílány e-maily, jako jsou např. resety hesla a upozornění.", "Send mode" : "Mód odesílání", "Encryption" : "Šifrování", "From address" : "Adresa odesílatele", @@ -168,6 +207,7 @@ OC.L10N.register( "Test email settings" : "Test nastavení emailu", "Send email" : "Odeslat email", "Server-side encryption" : "Šifrování na serveru", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Šifrování na straně serveru umožňuje zašifrovat soubory, které jsou na tento server nahrávány. To přináší omezení jako třeba výkonnostní omezení, takže to povolte jen pokud je třeba.", "Enable server-side encryption" : "Povolit šifrování na straně serveru", "Please read carefully before activating server-side encryption: " : "Pročtěte prosím důkladně před aktivací šifrování dat na serveru:", "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Poté co je zapnuto šifrování, jsou od toho bodu všechny nahrávané soubory šifrovány serverem. Vypnout šifrování bude možné pouze později, až bude šifrovací modul tuto možnost podporovat a po splnění všech nutných podmínek (tzn. nastavení klíčů pro obnovení).", @@ -189,6 +229,7 @@ OC.L10N.register( "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Toto je pravděpodobně způsobeno aplikacemi pro urychlení načítání jako jsou Zend OPcache nebo eAccelerator.", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Vaše databáze neběží s úrovní izolace transakcí \"READ COMMITTED\". Toto může způsobit problémy při paralelním spouštění více akcí současně.", "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "Je nainstalován %1$s nižší verze než %2$s, z důvodu lepší stability a výkonu doporučujeme aktualizovat na novější verzi %1$s.", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "PHP modul 'fileinfo' chybí. Velmi ho kvůli lepším výsledkům detekce MIME typu souburu doporučujeme povolit.", "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "Transakční uzamykání souborů je vypnuto, což může vést k problémům s \"race\" podmínkami. Pro zabránění těmto problémům povolte 'filelocking.enabled' v souboru config.php. Více informací lze nalézt v <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dokumentaci ↗</a>.", "System locale can not be set to a one which supports UTF-8." : "Není možné nastavit znakovou sadu, která podporuje UTF-8.", "This means that there might be problems with certain characters in file names." : "To znamená, že se mohou vyskytnout problémy s určitými znaky v názvech souborů.", @@ -208,6 +249,7 @@ OC.L10N.register( "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Pro spuštění je potřeba PHP posix rozšíření. Více informací lze nalézt v {linkstart}PHP dokumentaci{linkend}.", "Version" : "Verze", "Sharing" : "Sdílení", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Jako administrátor můžete upravit chování sdílení. Více informací naleznete v dokumentaci.", "Allow apps to use the Share API" : "Povolit aplikacím používat API sdílení", "Allow users to share via link" : "Povolit uživatelům sdílení pomocí odkazů", "Allow public uploads" : "Povolit veřejné nahrávání souborů", @@ -226,6 +268,7 @@ OC.L10N.register( "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Zobrazit text upozornění na stránce pro nahrání veřejného odkazu. (Zobrazit pouze pokud je seznam souborů skrytý.)", "This text will be shown on the public link upload page when the file list is hidden." : "Tento text bude zobrazen on stránce pro nahrání veřejného odkazu, pokud bude seznam souborů skrytý.", "Tips & tricks" : "Tipy a triky", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existuje mnoho možností, jak si přizpůsobit vaši instanci Nextcloudu. Zde je pro vaši informaci pár tipů, kde začít.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite se aktuálně používá jako databáze na backendu. U větších instalací doporučujeme přechod na jinou databázi.", "This is particularly recommended when using the desktop client for file synchronisation." : "To je obzvlášť vhodné, pokud se používá k synchronizaci desktopový klient.", "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "Pro migraci na jinou databázi použijte v příkazovém řádku nástroj: 'occ db:convert-type' nebo nahlédněte do <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dokumentace ↗</a>.", @@ -237,6 +280,8 @@ OC.L10N.register( "Check the security of your Nextcloud over our security scan" : "Zkontrolujte bezpečnost vašeho Nextcloudu pomocí našeho bezpečnostního skenu", "Hardening and security guidance" : "Průvodce vylepšením bezpečnosti", "Developer documentation" : "Vývojářská dokumentace", + "View in store" : "Zobrazit v obchodě", + "Limit to groups" : "Omezit na skupiny", "This app has an update available." : "Pro tuto aplikaci je dostupná aktualizace.", "by %s" : "%s", "%s-licensed" : "%s-licencováno", @@ -283,7 +328,10 @@ OC.L10N.register( "Address" : "Adresa", "Your postal address" : "Vlastní poštovní adresa", "Website" : "Webová stránka", + "It can take up to 24 hours before the account is displayed as verified." : "Může trvat až 24 hodin, než se účet zobrazí jako ověřený.", + "Link https://…" : "Odkaz https://…", "Twitter" : "Twitter", + "Twitter handle @…" : "Přezdívka na Twitteru @…", "You are member of the following groups:" : "Patříte do následujících skupin:", "Password" : "Heslo", "Current password" : "Současné heslo", @@ -300,6 +348,7 @@ OC.L10N.register( "Web, desktop and mobile clients currently logged in to your account." : "Weboví, desktopoví a mobilní klienti aktuálně přihlášeni k vašemu účtu.", "Device" : "Přístroj", "Last activity" : "Poslední aktivita", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Zde můžete vytvořit hesla pro jednotlivé aplikace, takže nemusíte sdělovat vaše heslo. Také je zde můžete kdykoliv zneplatnit.", "Name" : "Název", "App name" : "Jméno aplikace", "Create new app password" : "Vytvořit nové heslo aplikace", @@ -308,14 +357,18 @@ OC.L10N.register( "Username" : "Uživatelské jméno", "Done" : "Dokončeno", "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Vyvíjeno {communityopen}Nextcloud komunitou{linkclose}, {githubopen}zdrojový kód{linkclose} je licencován pod {licenseopen}AGPL{linkclose}.", + "Follow us on Google+!" : "Sledujte nás na Google+!", "Like our facebook page!" : "Označte naši facebookovou stránku jako \"To se mi líbí\"!", "Follow us on Twitter!" : "Sledujte nás na Twitteru!", "Check out our blog!" : "Podívejte se na náš blog!", "Subscribe to our newsletter!" : "Odebírejte náš newsletter!", + "Settings" : "Nastavení", "Show storage location" : "Cesta k datům", "Show user backend" : "Zobrazit vedení uživatelů", + "Show last login" : "Zobrazit poslední přihlášení", "Show email address" : "Zobrazit emailové adresy", "Send email to new user" : "Poslat email novému uživateli", + "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Pokud je heslo nového uživatele prázdné, je mu odeslán aktivační e-mail s odkazem, kde si ho může nastavit.", "E-Mail" : "Email", "Create" : "Vytvořit", "Admin Recovery Password" : "Heslo obnovy správce", @@ -323,6 +376,7 @@ OC.L10N.register( "Group name" : "Jméno skupiny", "Everyone" : "Všichni", "Admins" : "Administrátoři", + "Disabled" : "Zakázaní", "Default quota" : "Výchozí kvóta", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Zvolte prosím kvótu pro úložiště (např. \"512 MB\" nebo \"12 GB\")", "Other" : "Jiný", diff --git a/settings/l10n/cs.json b/settings/l10n/cs.json index 0b290e325ec..56ebb525361 100644 --- a/settings/l10n/cs.json +++ b/settings/l10n/cs.json @@ -1,6 +1,14 @@ { "translations": { + "{actor} changed your password" : "{actor} změnil(a) vaše heslo", + "You changed your password" : "Změnil(a) jste vaše heslo", + "Your password was reset by an administrator" : "Vaše heslo bylo resetováno administrátorem", + "{actor} changed your email address" : "{actor} změnil(a) vaši e-mailovou adresu", + "You changed your email address" : "Změnil(a) jste vaši e-mailovou adresu", + "Your email address was changed by an administrator" : "Vaše e-mailová adresa byla změněna administrátorem", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "Vaše <strong>heslo</strong> nebo <strong>e-mail</strong> bylo změněno", "Your apps" : "Vaše aplikace", "Enabled apps" : "Povolené aplikace", + "Disabled apps" : "Zakázané aplikace", "App bundles" : "Balíčky aplikací", "Wrong password" : "Nesprávné heslo", "Saved" : "Uloženo", @@ -9,6 +17,7 @@ "Authentication error" : "Chyba přihlášení", "Please provide an admin recovery password; otherwise, all user data will be lost." : "Zadejte prosím administrátorské heslo pro obnovu, jinak budou všechna uživatelská data ztracena.", "Wrong admin recovery password. Please check the password and try again." : "Chybné administrátorské heslo pro obnovu. Překontrolujte správnost hesla a zkuste to znovu.", + "Backend doesn't support password change, but the user's encryption key was updated." : "Backend nepodporuje změnu hesla, ale uživatelův šifrovací klíč byl aktualizován.", "installing and updating apps via the app store or Federated Cloud Sharing" : "Instalovat a aktualizovat aplikace pomocí obchodu nebo Sdíleného Cloudového Úložiště", "Federated Cloud Sharing" : "Propojené cloudové sdílení", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL používá zastaralou %s verzi (%s). Aktualizujte prosím svůj operační systém, jinak funkce jako %s nemusí spolehlivě pracovat.", @@ -17,8 +26,11 @@ "Group already exists." : "Skupina již existuje.", "Unable to add group." : "Nelze přidat skupinu.", "Unable to delete group." : "Nelze smazat skupinu.", + "Invalid SMTP password." : "Neplatné heslo SMTP.", "Well done, %s!" : "Dobře, %s.", "If you received this email, the email configuration seems to be correct." : "Pokud jste obdržel(a) tento e-mail, nastavení e-mailů bude asi správné.", + "Email setting test" : "Zkouška nastavení e-mailu", + "Email could not be sent. Check your mail server log" : "E-mail se nepodařilo odeslat. Zkontrolujte protokol vašeho e-mailového serveru.", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Při odesílání emailu nastala chyba. Překontrolujte prosím svá nastavení. (Error: %s)", "You need to set your user email before being able to send test emails." : "Pro možnost odeslání zkušebních emailů musíte nejprve nastavit svou emailovou adresu.", "Invalid request" : "Neplatný požadavek", @@ -28,6 +40,9 @@ "To send a password link to the user an email address is required." : "Pro zaslání odkazu na heslo uživateli je nutná e-mailová adresa.", "Unable to create user." : "Nelze vytvořit uživatele.", "Unable to delete user." : "Nelze smazat uživatele.", + "Error while enabling user." : "Chyba při povolování uživatele.", + "Error while disabling user." : "Chyba při zakazování uživatele.", + "In order to verify your Twitter account post following tweet on Twitter (please make sure to post it without any line breaks):" : "Pokud chcete ověřit váš Twitter účet, napište následující tweet (ujistěte se, že ho zasíláte bez odřádků):", "Settings saved" : "Nastavení uloženo", "Unable to change full name" : "Nelze změnit celé jméno", "Unable to change email address" : "Nepodařilo se změnit e-mailovou adresu", @@ -36,8 +51,25 @@ "Invalid user" : "Neplatný uživatel", "Unable to change mail address" : "Nelze změnit emailovou adresu", "Email saved" : "Email uložen", + "%1$s changed your password on %2$s." : "%1$s změnil(a) vaše heslo na %2$s.", + "Your password on %s was changed." : "Vaše heslo na %s bylo změněno.", + "Your password on %s was reset by an administrator." : "Vaše heslo na %s bylo resetováno administrátorem.", + "Password changed for %s" : "Změna hesla pro %s", + "If you did not request this, please contact an administrator." : "Pokud jste o toto nežádali, prosím, kontaktujte administrátora.", + "Password for %1$s changed on %2$s" : "Heslo pro %1$s na %2$s změněno ", + "%1$s changed your email address on %2$s." : "%1$s změnil(a) vaši e-mailovou adresu na %2s.", + "Your email address on %s was changed." : "Vaše e-mailová adresa na %s byla změněna.", + "Your email address on %s was changed by an administrator." : "Vaše e-mailová adresa na %s byla změněna administrátorem.", + "Email address changed for %s" : "E-mailová adresa pro %s byla změněna", + "The new email address is %s" : "Nová e-mailová adresa je %s", + "Email address for %1$s changed on %2$s" : "E-mailová adresa pro %1$s se na %2$s změnila", + "Welcome aboard" : "Vítejte na palubě", "Welcome aboard %s" : "Vítej na palubě, %s", + "You have now an %s account, you can add, protect, and share your data." : "Nyní máte %s účet, můžete přidat, ochránit a sdílet svá data.", + "Your username is: %s" : "Vaše uživatelské jméno je: %s", "Set your password" : "Nastavte vaše heslo", + "Go to %s" : "Jít na %s", + "Install Client" : "Nainstalovat klienta", "Your %s account was created" : "Účet %s byl vytvořen", "Password confirmation is required" : "Je vyžadováno potvrzení hesla", "Couldn't remove app." : "Nepodařilo se odebrat aplikaci.", @@ -47,6 +79,7 @@ "Migration in progress. Please wait until the migration is finished" : "Migrace probíhá. Počkejte prosím než bude dokončena", "Migration started …" : "Migrace spuštěna ...", "Not saved" : "Neuloženo", + "Sending…" : "Odesílání…", "Email sent" : "Email odeslán", "Official" : "Oficiální", "All" : "Vše", @@ -71,11 +104,13 @@ "Updated" : "Aktualizováno", "Removing …" : "Odstraňování …", "Error while removing app" : "Chyba při odstraňování aplikace", + "Remove" : "Odstranit", "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikace byla povolena ale je třeba ji aktualizovat. Za 5 sekund budete přesměrování na stránku pro aktualizaci.", "App update" : "Aktualizace aplikace", "Approved" : "Potvrzeno", "Experimental" : "Experimentální", "No apps found for {query}" : "Nebyly nalezeny žádné aplikace pro {query}", + "Enable all" : "Povolit vše", "Allow filesystem access" : "Povolit přístup k souborovému systému", "Disconnect" : "Odpojit", "Revoke" : "Odvolat", @@ -110,6 +145,7 @@ "Visible to local users and to trusted servers" : "Viditelné pro místní uživatele a důvěryhodné servery", "Public" : "Veřejný", "Will be synced to a global and public address book" : "Bude synchronizováno do globálního a veřejného adresáře", + "Verifying …" : "Ověřování …", "Select a profile picture" : "Vyberte profilový obrázek", "Very weak password" : "Velmi slabé heslo", "Weak password" : "Slabé heslo", @@ -133,12 +169,14 @@ "Password successfully changed" : "Heslo úspěšně změněno", "Changing the password will result in data loss, because data recovery is not available for this user" : "Změna hesla bude mít za následek ztrátu dat, protože jejich obnova není pro tohoto uživatele dostupná.", "Could not change the users email" : "Nelze změnit email uživatele", + "Error while changing status of {user}" : "Chyba při změně stavu {user}", "A valid username must be provided" : "Musíte zadat platné uživatelské jméno", "Error creating user: {message}" : "Chyba vytvoření uživatele: {message}", "A valid password must be provided" : "Musíte zadat platné heslo", "A valid email must be provided" : "Musíte zadat platný email", "__language_name__" : "Česky", "Unlimited" : "Neomezeně", + "Verifying" : "Ověřování", "Personal info" : "Osobní informace", "Sessions" : "Sezení", "App passwords" : "Hesla aplikací", @@ -151,6 +189,7 @@ "STARTTLS" : "STARTTLS", "Email server" : "Emailový server", "Open documentation" : "Otevřít dokumentaci", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Je důležité tento server nastavit, aby mohly být odesílány e-maily, jako jsou např. resety hesla a upozornění.", "Send mode" : "Mód odesílání", "Encryption" : "Šifrování", "From address" : "Adresa odesílatele", @@ -166,6 +205,7 @@ "Test email settings" : "Test nastavení emailu", "Send email" : "Odeslat email", "Server-side encryption" : "Šifrování na serveru", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Šifrování na straně serveru umožňuje zašifrovat soubory, které jsou na tento server nahrávány. To přináší omezení jako třeba výkonnostní omezení, takže to povolte jen pokud je třeba.", "Enable server-side encryption" : "Povolit šifrování na straně serveru", "Please read carefully before activating server-side encryption: " : "Pročtěte prosím důkladně před aktivací šifrování dat na serveru:", "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Poté co je zapnuto šifrování, jsou od toho bodu všechny nahrávané soubory šifrovány serverem. Vypnout šifrování bude možné pouze později, až bude šifrovací modul tuto možnost podporovat a po splnění všech nutných podmínek (tzn. nastavení klíčů pro obnovení).", @@ -187,6 +227,7 @@ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Toto je pravděpodobně způsobeno aplikacemi pro urychlení načítání jako jsou Zend OPcache nebo eAccelerator.", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Vaše databáze neběží s úrovní izolace transakcí \"READ COMMITTED\". Toto může způsobit problémy při paralelním spouštění více akcí současně.", "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "Je nainstalován %1$s nižší verze než %2$s, z důvodu lepší stability a výkonu doporučujeme aktualizovat na novější verzi %1$s.", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "PHP modul 'fileinfo' chybí. Velmi ho kvůli lepším výsledkům detekce MIME typu souburu doporučujeme povolit.", "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "Transakční uzamykání souborů je vypnuto, což může vést k problémům s \"race\" podmínkami. Pro zabránění těmto problémům povolte 'filelocking.enabled' v souboru config.php. Více informací lze nalézt v <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dokumentaci ↗</a>.", "System locale can not be set to a one which supports UTF-8." : "Není možné nastavit znakovou sadu, která podporuje UTF-8.", "This means that there might be problems with certain characters in file names." : "To znamená, že se mohou vyskytnout problémy s určitými znaky v názvech souborů.", @@ -206,6 +247,7 @@ "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Pro spuštění je potřeba PHP posix rozšíření. Více informací lze nalézt v {linkstart}PHP dokumentaci{linkend}.", "Version" : "Verze", "Sharing" : "Sdílení", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Jako administrátor můžete upravit chování sdílení. Více informací naleznete v dokumentaci.", "Allow apps to use the Share API" : "Povolit aplikacím používat API sdílení", "Allow users to share via link" : "Povolit uživatelům sdílení pomocí odkazů", "Allow public uploads" : "Povolit veřejné nahrávání souborů", @@ -224,6 +266,7 @@ "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Zobrazit text upozornění na stránce pro nahrání veřejného odkazu. (Zobrazit pouze pokud je seznam souborů skrytý.)", "This text will be shown on the public link upload page when the file list is hidden." : "Tento text bude zobrazen on stránce pro nahrání veřejného odkazu, pokud bude seznam souborů skrytý.", "Tips & tricks" : "Tipy a triky", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existuje mnoho možností, jak si přizpůsobit vaši instanci Nextcloudu. Zde je pro vaši informaci pár tipů, kde začít.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite se aktuálně používá jako databáze na backendu. U větších instalací doporučujeme přechod na jinou databázi.", "This is particularly recommended when using the desktop client for file synchronisation." : "To je obzvlášť vhodné, pokud se používá k synchronizaci desktopový klient.", "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "Pro migraci na jinou databázi použijte v příkazovém řádku nástroj: 'occ db:convert-type' nebo nahlédněte do <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dokumentace ↗</a>.", @@ -235,6 +278,8 @@ "Check the security of your Nextcloud over our security scan" : "Zkontrolujte bezpečnost vašeho Nextcloudu pomocí našeho bezpečnostního skenu", "Hardening and security guidance" : "Průvodce vylepšením bezpečnosti", "Developer documentation" : "Vývojářská dokumentace", + "View in store" : "Zobrazit v obchodě", + "Limit to groups" : "Omezit na skupiny", "This app has an update available." : "Pro tuto aplikaci je dostupná aktualizace.", "by %s" : "%s", "%s-licensed" : "%s-licencováno", @@ -281,7 +326,10 @@ "Address" : "Adresa", "Your postal address" : "Vlastní poštovní adresa", "Website" : "Webová stránka", + "It can take up to 24 hours before the account is displayed as verified." : "Může trvat až 24 hodin, než se účet zobrazí jako ověřený.", + "Link https://…" : "Odkaz https://…", "Twitter" : "Twitter", + "Twitter handle @…" : "Přezdívka na Twitteru @…", "You are member of the following groups:" : "Patříte do následujících skupin:", "Password" : "Heslo", "Current password" : "Současné heslo", @@ -298,6 +346,7 @@ "Web, desktop and mobile clients currently logged in to your account." : "Weboví, desktopoví a mobilní klienti aktuálně přihlášeni k vašemu účtu.", "Device" : "Přístroj", "Last activity" : "Poslední aktivita", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Zde můžete vytvořit hesla pro jednotlivé aplikace, takže nemusíte sdělovat vaše heslo. Také je zde můžete kdykoliv zneplatnit.", "Name" : "Název", "App name" : "Jméno aplikace", "Create new app password" : "Vytvořit nové heslo aplikace", @@ -306,14 +355,18 @@ "Username" : "Uživatelské jméno", "Done" : "Dokončeno", "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Vyvíjeno {communityopen}Nextcloud komunitou{linkclose}, {githubopen}zdrojový kód{linkclose} je licencován pod {licenseopen}AGPL{linkclose}.", + "Follow us on Google+!" : "Sledujte nás na Google+!", "Like our facebook page!" : "Označte naši facebookovou stránku jako \"To se mi líbí\"!", "Follow us on Twitter!" : "Sledujte nás na Twitteru!", "Check out our blog!" : "Podívejte se na náš blog!", "Subscribe to our newsletter!" : "Odebírejte náš newsletter!", + "Settings" : "Nastavení", "Show storage location" : "Cesta k datům", "Show user backend" : "Zobrazit vedení uživatelů", + "Show last login" : "Zobrazit poslední přihlášení", "Show email address" : "Zobrazit emailové adresy", "Send email to new user" : "Poslat email novému uživateli", + "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Pokud je heslo nového uživatele prázdné, je mu odeslán aktivační e-mail s odkazem, kde si ho může nastavit.", "E-Mail" : "Email", "Create" : "Vytvořit", "Admin Recovery Password" : "Heslo obnovy správce", @@ -321,6 +374,7 @@ "Group name" : "Jméno skupiny", "Everyone" : "Všichni", "Admins" : "Administrátoři", + "Disabled" : "Zakázaní", "Default quota" : "Výchozí kvóta", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Zvolte prosím kvótu pro úložiště (např. \"512 MB\" nebo \"12 GB\")", "Other" : "Jiný", diff --git a/settings/l10n/el.js b/settings/l10n/el.js index a705059df6f..a61a07909f1 100644 --- a/settings/l10n/el.js +++ b/settings/l10n/el.js @@ -1,10 +1,14 @@ OC.L10N.register( "settings", { + "{actor} changed your password" : "{actor} το συθηματικό σας άλλαξε", "You changed your password" : "Αλλάξατε το συνθηματικό σας", "Your password was reset by an administrator" : "Έχει γίνει επαναφορά του συνθηματικού σας από τον διαχειριστή", + "You changed your email address" : "Έχετε αλλάξει τη διεύθυνση ηλεκτρονικού ταχυδρομείου σας", "Your apps" : "Οι εφαρμογές σας", "Enabled apps" : "Ενεργοποιημένες εφαρμογές", + "Disabled apps" : "Απενεργοποιημένες εφαρμογές", + "App bundles" : "Πακέτα εφαρμογών", "Wrong password" : "Εσφαλμένο συνθηματικό", "Saved" : "Αποθηκεύτηκαν", "No user supplied" : "Δεν εισήχθη χρήστης", @@ -67,6 +71,7 @@ OC.L10N.register( "Approved" : "Εγκεκριμένο", "Experimental" : "Πειραματικό", "No apps found for {query}" : "Δεν βρέθηκαν εφαρμογές για {query}", + "Enable all" : "Ενεργοποίηση όλων", "Disconnect" : "Αποσύνδεση", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", @@ -205,7 +210,9 @@ OC.L10N.register( "Theming" : "Θέματα", "Hardening and security guidance" : "Οδηγίες ασφάλειας και θωράκισης", "Developer documentation" : "Τεκμηρίωση προγραμματιστή", + "Limit to groups" : "Όριο στις ομάδες", "This app has an update available." : "Αυτή η εφαρμογή έχει διαθέσιμη ενημέρωση.", + "by %s" : "από %s", "Documentation:" : "Τεκμηρίωση:", "User documentation" : "Τεκμηρίωση Χρήστη", "Admin documentation" : "Τεκμηρίωση Διαχειριστή", @@ -245,6 +252,7 @@ OC.L10N.register( "Address" : "Διεύθυνση", "Your postal address" : "Ο ταχυδρομικός σας κώδικας", "Website" : "Ιστοσελίδα", + "Link https://…" : "Σύνδεσμος https://…", "Twitter" : "Twitter", "You are member of the following groups:" : "Είστε μέλος των ακόλουθων ομάδων:", "Password" : "Συνθηματικό", @@ -266,7 +274,10 @@ OC.L10N.register( "For security reasons this password will only be shown once." : "Για λόγους ασφαλείας αυτό το συνθηματικό θα εμφανιστεί μόνο μια φορά.", "Username" : "Όνομα χρήστη", "Done" : "Ολοκληρώθηκε", + "Follow us on Google+!" : "Ακολουθήστε μας στο Google+!", "Like our facebook page!" : "Ακολουθήστε μας στην σελίδα μας στο facebook!", + "Follow us on Twitter!" : "Ακολουθήστε μας στο Twitter!", + "Check out our blog!" : "Επισκεφθείτε το ιστολόγιό μας!", "Settings" : "Ρυθμίσεις", "Show storage location" : "Εμφάνιση τοποθεσίας αποθήκευσης", "Show user backend" : "Εμφάνιση χρήστη συστήματος υποστήριξης", @@ -280,6 +291,7 @@ OC.L10N.register( "Group name" : "Όνομα ομάδας", "Everyone" : "Όλοι", "Admins" : "Διαχειριστές", + "Disabled" : "Απενεργοποιημένο", "Default quota" : "Προεπιλέγμενη χωρητικότητα", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Παρακαλώ εισάγετε επιτρεπόμενα μερίδια αποθηκευτικού χώρου (π.χ. \"512 MB\" ή \"12 GB\")", "Other" : "Άλλο", diff --git a/settings/l10n/el.json b/settings/l10n/el.json index b21a5e90682..5617064e25c 100644 --- a/settings/l10n/el.json +++ b/settings/l10n/el.json @@ -1,8 +1,12 @@ { "translations": { + "{actor} changed your password" : "{actor} το συθηματικό σας άλλαξε", "You changed your password" : "Αλλάξατε το συνθηματικό σας", "Your password was reset by an administrator" : "Έχει γίνει επαναφορά του συνθηματικού σας από τον διαχειριστή", + "You changed your email address" : "Έχετε αλλάξει τη διεύθυνση ηλεκτρονικού ταχυδρομείου σας", "Your apps" : "Οι εφαρμογές σας", "Enabled apps" : "Ενεργοποιημένες εφαρμογές", + "Disabled apps" : "Απενεργοποιημένες εφαρμογές", + "App bundles" : "Πακέτα εφαρμογών", "Wrong password" : "Εσφαλμένο συνθηματικό", "Saved" : "Αποθηκεύτηκαν", "No user supplied" : "Δεν εισήχθη χρήστης", @@ -65,6 +69,7 @@ "Approved" : "Εγκεκριμένο", "Experimental" : "Πειραματικό", "No apps found for {query}" : "Δεν βρέθηκαν εφαρμογές για {query}", + "Enable all" : "Ενεργοποίηση όλων", "Disconnect" : "Αποσύνδεση", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", @@ -203,7 +208,9 @@ "Theming" : "Θέματα", "Hardening and security guidance" : "Οδηγίες ασφάλειας και θωράκισης", "Developer documentation" : "Τεκμηρίωση προγραμματιστή", + "Limit to groups" : "Όριο στις ομάδες", "This app has an update available." : "Αυτή η εφαρμογή έχει διαθέσιμη ενημέρωση.", + "by %s" : "από %s", "Documentation:" : "Τεκμηρίωση:", "User documentation" : "Τεκμηρίωση Χρήστη", "Admin documentation" : "Τεκμηρίωση Διαχειριστή", @@ -243,6 +250,7 @@ "Address" : "Διεύθυνση", "Your postal address" : "Ο ταχυδρομικός σας κώδικας", "Website" : "Ιστοσελίδα", + "Link https://…" : "Σύνδεσμος https://…", "Twitter" : "Twitter", "You are member of the following groups:" : "Είστε μέλος των ακόλουθων ομάδων:", "Password" : "Συνθηματικό", @@ -264,7 +272,10 @@ "For security reasons this password will only be shown once." : "Για λόγους ασφαλείας αυτό το συνθηματικό θα εμφανιστεί μόνο μια φορά.", "Username" : "Όνομα χρήστη", "Done" : "Ολοκληρώθηκε", + "Follow us on Google+!" : "Ακολουθήστε μας στο Google+!", "Like our facebook page!" : "Ακολουθήστε μας στην σελίδα μας στο facebook!", + "Follow us on Twitter!" : "Ακολουθήστε μας στο Twitter!", + "Check out our blog!" : "Επισκεφθείτε το ιστολόγιό μας!", "Settings" : "Ρυθμίσεις", "Show storage location" : "Εμφάνιση τοποθεσίας αποθήκευσης", "Show user backend" : "Εμφάνιση χρήστη συστήματος υποστήριξης", @@ -278,6 +289,7 @@ "Group name" : "Όνομα ομάδας", "Everyone" : "Όλοι", "Admins" : "Διαχειριστές", + "Disabled" : "Απενεργοποιημένο", "Default quota" : "Προεπιλέγμενη χωρητικότητα", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Παρακαλώ εισάγετε επιτρεπόμενα μερίδια αποθηκευτικού χώρου (π.χ. \"512 MB\" ή \"12 GB\")", "Other" : "Άλλο", diff --git a/settings/l10n/es.js b/settings/l10n/es.js index 681f41bc5b4..e418d7d3a1a 100644 --- a/settings/l10n/es.js +++ b/settings/l10n/es.js @@ -8,6 +8,10 @@ OC.L10N.register( "You changed your email address" : "Ha cambiado su cuenta de correo", "Your email address was changed by an administrator" : "Su cuenta de correo ha sido cambiada por un administrador", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Su <strong>contraseña</strong> o <strong>dirección de correo electrónico</strong> fue modificado", + "Your apps" : "Tus apps", + "Enabled apps" : "Apps habilitadas", + "Disabled apps" : "Apps inhabilitadas", + "App bundles" : "Lotes de apps", "Wrong password" : "Contraseña incorrecta", "Saved" : "Guardado", "No user supplied" : "No se especificó un usuario", @@ -15,6 +19,7 @@ OC.L10N.register( "Authentication error" : "Error de autenticación", "Please provide an admin recovery password; otherwise, all user data will be lost." : "Por favor provea una contraseña de administración para recuperación; de otra forma toda la información de los usuarios será perdida.", "Wrong admin recovery password. Please check the password and try again." : "Contraseña de recuperación de administrador incorrecta. Por favor compruebe la contraseña e inténtelo de nuevo.", + "Backend doesn't support password change, but the user's encryption key was updated." : "El backend no permite cambiar la contraseña, pero la clava de cifrado ha sido actualizada.", "installing and updating apps via the app store or Federated Cloud Sharing" : "instalando y actualizando aplicaciones vía app store o Nube compartida Federada", "Federated Cloud Sharing" : "Compartido en Cloud Federado", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL está usando una versión desactualizada %s (%s). Por favor, actualice su sistema operativo o funciones tales como %s no funcionará de forma fiable.", @@ -27,6 +32,7 @@ OC.L10N.register( "Well done, %s!" : "Bien hecho, %s!", "If you received this email, the email configuration seems to be correct." : "Si recibe este correo, la configuración de correo parece ser correcta.", "Email setting test" : "Prueba de configuración de correo", + "Email could not be sent. Check your mail server log" : "No se ha podido enviar el correo. Comprueba el registro del servidor de correo", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ocurrió un problema al enviar el mensaje de correo electrónico. Revise su configuración. (Error: %s)", "You need to set your user email before being able to send test emails." : "Tiene que configurar su dirección de correo electrónico antes de poder enviar mensajes de prueba.", "Invalid request" : "Petición no válida", @@ -36,6 +42,10 @@ OC.L10N.register( "To send a password link to the user an email address is required." : "Para enviar un enlace de contraseña al usuario, se requiere una dirección de correo electrónico.", "Unable to create user." : "No se pudo crear el usuario.", "Unable to delete user." : "No se pudo eliminar el usuario.", + "Error while enabling user." : "Error al habilitar usuario.", + "Error while disabling user." : "Error al deshabilitar usuario.", + "In order to verify your Twitter account post following tweet on Twitter (please make sure to post it without any line breaks):" : "Para verificar tu cuenta de Twitter escribe en ella el siguiente tuit (por favor, asegúrate de escribirlo sin saltos de línea):", + "In order to verify your Website store following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Para verificar tu sutio web, guarda e lsiguiente contenido en la raíz de la web en '.well-known/CloudIdVerificationCode.txt' (por favor, asegúrate de que el texto completo aparece en una línea):", "Settings saved" : "Ajustes guardados", "Unable to change full name" : "No se puede cambiar el nombre completo", "Unable to change email address" : "No se pudo cambiar la dirección de correo", @@ -95,11 +105,15 @@ OC.L10N.register( "Updating...." : "Actualizando...", "Error while updating app" : "Error mientras se actualizaba la aplicación", "Updated" : "Actualizado", + "Removing …" : "Eliminando...", + "Error while removing app" : "Error al eliminar la app", + "Remove" : "Eliminar", "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación ha sido activada pero necesita ser actualizada. Seras redirigido a la pagina de actualizariones en 5 segundos.", "App update" : "Actualización de aplicación", "Approved" : "Aprobado", "Experimental" : "Experimental", "No apps found for {query}" : "No se han encontrado apps para {query}", + "Enable all" : "Activar todas", "Allow filesystem access" : "Permitir acceso al sistema de archivos", "Disconnect" : "Desconectar", "Revoke" : "Revocar", @@ -134,6 +148,8 @@ OC.L10N.register( "Visible to local users and to trusted servers" : "Visible a usuarios locales y servidores de confianza", "Public" : "Público", "Will be synced to a global and public address book" : "Se sincronizará a una libreta de direcciones pública y global", + "Verify" : "Verificar", + "Verifying …" : "Verificando...", "Select a profile picture" : "Seleccionar una imagen de perfil", "Very weak password" : "Contraseña muy débil", "Weak password" : "Contraseña débil", @@ -157,15 +173,17 @@ OC.L10N.register( "Password successfully changed" : "Contraseña ha sido correctamente cambiada", "Changing the password will result in data loss, because data recovery is not available for this user" : "Cambiar la contraseña provocará pérdida de datos porque la recuperación de datos no está disponible para este usuario", "Could not change the users email" : "No se pudo cambiar el correo de usuario", + "Error while changing status of {user}" : "Error al cambiar el estado de {user}", "A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido", "Error creating user: {message}" : "Error creando el usuario: {message}", "A valid password must be provided" : "Se debe proporcionar una contraseña válida", "A valid email must be provided" : "Se debe brindar una dirección de correo electrónico válida ", "__language_name__" : "Castellano", "Unlimited" : "Ilimitado", + "Verifying" : "Verificando", "Personal info" : "Información personal", "Sessions" : "Sesiones", - "App passwords" : "Contraseñas de la app", + "App passwords" : "Contraseñas de aplicaciones", "Sync clients" : "Clientes de sincronización", "None" : "Ninguno", "Login" : "Iniciar sesión", @@ -175,6 +193,7 @@ OC.L10N.register( "STARTTLS" : "STARTTLS", "Email server" : "Servidor de correo electrónico", "Open documentation" : "Abrir Documentación", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Es importante configurar este servidor para que pueda enviar correos, por ejemplo para cambios de contraseñas y notificaciones.", "Send mode" : "Modo de envío", "Encryption" : "Cifrado", "From address" : "Desde la dirección", @@ -190,6 +209,7 @@ OC.L10N.register( "Test email settings" : "Probar configuración de correo electrónico", "Send email" : "Enviar mensaje", "Server-side encryption" : "Cifrado en el servidor", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "El cifrado en el lado del servidor hace posible cifrar archivos que se suben a este servidor. Esto trae consigo limitaciones como una ralentización en su funcionamiento, así que activa esto solo si es necesario.", "Enable server-side encryption" : "Habilitar cifrado en el servidor", "Please read carefully before activating server-side encryption: " : "Por favor lea cuidadosamente antes de activar el cifrado del lado del servidor.", "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Una vez que el cifrado está habilitado, todos los archivos subidos al servidor desde ese punto en adelante se cifrarán en reposo en el servidor. Sólo será posible desactivar el cifrado en una fecha posterior si el módulo de cifrado activado soporta esa función, y todas las condiciones previas (por ejemplo, el establecimiento de una clave de recuperación) se cumplan.", @@ -204,6 +224,7 @@ OC.L10N.register( "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Se necesita migrar las claves de cifrado del antiguo sistema (ownCloud <= 8.0) al nuevo sistema.", "Start migration" : "Iniciar migración", "Security & setup warnings" : "Avisos de seguridad y configuración", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Es importante para la seguridad y buen funcionamiento de tu instancia que todo esté configurado correctamente. Para ayudarte con esto, vamos a hacer algunas comprobaciones automáticas. Por favor, comprueba la sección 'Sugerencias y trucos' y la documentación para más información.", "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php parece que no está configurado correctamente para solicitar las variables de entorno del sistema. La prueba con getenv(\"PATH\") sólo retorna una respuesta vacía.", "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Por favor revisa la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación de instalación ↗</a> para notas de configuración PHP y la configuración PHP de tu servidor, especialmente cuando se está usando php-fpm", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Se ha habilitado la configuración de sólo lectura. Esto evita tener que ajustar algunas configuraciones a través de la interfaz web. Además, el archivo debe hacerse modificable manualmente para cada actualización.", @@ -211,6 +232,7 @@ OC.L10N.register( "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Probablemente esto venga a causa de la caché o un acelerador, tales como Zend OPcache o eAccelerator.", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Su base de datos no se ejecuta con el nivel de aislamiento de transacción \"READ COMMITTED\" . Ésto puede causar problemas cuando múltiples acciones se ejecutan en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s una versión inferior %2$s está instalada, por razones de estabilidad y rendimiento, se recomienda actualizar a la versión %1$s más reciente .", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "Falta el módulo PHP 'fileinfo'. Recomendamos encarecidamente activar este módulo para conseguir mejores resultados en la detección de los tipos MIME.", "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "El bloqueo de archivos transaccional está desactivado, esto podría conducir a problemas con 'race conditions'. Activa 'filelocking.enabled' en 'config.php' para solucionar esos problemas. Mira la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación ↗</a> para más información.", "System locale can not be set to a one which supports UTF-8." : "No se puede escoger una configuración regional que soporte UTF-8.", "This means that there might be problems with certain characters in file names." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de los archivos.", @@ -223,6 +245,7 @@ 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!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "Para un desempeño óptimo es imoprtante configurar correctamente los trabajos en segundo plano. Para instancias más grandes, 'cron' es la configuración recomendada. Por favor, lee la documentación para más información.", "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.", @@ -230,6 +253,7 @@ OC.L10N.register( "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Para ejecutar esto se necesita la extensión posix de PHP. Ver la {linkstart}documentación de PHP{linkend} para más detellas.", "Version" : "Versión", "Sharing" : "Compartiendo", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador puedes ajustar el comportameiento al compartir. Por favor, lee la documentación para más información.", "Allow apps to use the Share API" : "Permitir a las aplicaciones utilizar la API de Compartición", "Allow users to share via link" : "Permite a los usuarios compartir por medio de enlaces", "Allow public uploads" : "Permitir subidas públicas", @@ -248,6 +272,7 @@ OC.L10N.register( "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Mostrar texto de renuncia de responsabilidad en la páigina de subida de enlace público. (Solo se muestra cuando se la lista de archivos está oculta.)", "This text will be shown on the public link upload page when the file list is hidden." : "Este texto se mostrará en la pagina de subida de enlace público cuando la lista de archivos está oculta.", "Tips & tricks" : "Sugerencias y trucos", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Hay muchas características y cambios de configuración disponibles para personalizar y usar esta instancia. Aquí hay alugnas indicaciones para más información.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Se está usando actualmente SQLite como motor de base de datos. Para instalaciones más grandes recomendamos cambiar a un motor de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto está especialmente recomendado cuando se utiliza el cliente de escritorio para la sincronización de archivos.", "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "Para migrar a otra base de datos usa la herramienta de línea de comandos 'occ db:convert-type' o mira la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación ↗</a>.", @@ -259,6 +284,8 @@ OC.L10N.register( "Check the security of your Nextcloud over our security scan" : "Comprueba la seguridad de tu Nextcloud mediante nuestro escaneo de seguridad", "Hardening and security guidance" : "Guía de protección y seguridad", "Developer documentation" : "Documentación de desarrollador", + "View in store" : "Ver en la tienda", + "Limit to groups" : "Límite para grupos", "This app has an update available." : "Está app tiene una actualización pendiente.", "by %s" : "por %s", "%s-licensed" : "Licencia %s", @@ -305,7 +332,10 @@ OC.L10N.register( "Address" : "Dirección", "Your postal address" : "Su dirección física", "Website" : "Sitio web", + "It can take up to 24 hours before the account is displayed as verified." : "Puede tardar hasta 24 horas que la cuenta aparezca como verificada.", + "Link https://…" : "Enlace https://...", "Twitter" : "Twitter", + "Twitter handle @…" : "Usuario de Twitter @...", "You are member of the following groups:" : "Es miembro de los siguientes grupos:", "Password" : "Contraseña", "Current password" : "Contraseña actual", @@ -322,6 +352,7 @@ OC.L10N.register( "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, móviles y de escritorio actualmente conectados a tu cuenta.", "Device" : "Dispositivo", "Last activity" : "Última actividad", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Aquí puedes generar contraseñas individuales para apps para que no tengas que dar tu propia contraseña. También puedes revocarlas individualmente.", "Name" : "Nombre", "App name" : "Nombre de la app", "Create new app password" : "Crear nueva contraseña de app", @@ -330,7 +361,10 @@ OC.L10N.register( "Username" : "Nombre de usuario", "Done" : "Hecho", "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud{linkclose}, el {githubopen}código fuente{linkclose} está licenciado bajo la {licenseopen}AGPL{linkclose}.", + "Follow us on Google+!" : "¡Síguenos en Google+!", "Like our facebook page!" : "¡Da a Me gusta en nuestra página de Facebook!", + "Follow us on Twitter!" : "¡Síguenos en Twitter", + "Check out our blog!" : "¡Lee nuestro blog!", "Subscribe to our newsletter!" : "¡Suscríbete a nuestro boletín!", "Settings" : "Configuración", "Show storage location" : "Mostrar la ubicación del almacenamiento", @@ -346,6 +380,7 @@ OC.L10N.register( "Group name" : "Nombre del grupo", "Everyone" : "Todos", "Admins" : "Administradores", + "Disabled" : "Deshabilitado", "Default quota" : "Cuota predeterminada", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Por favor indique la cúota de almacenamiento (ej: \"512 MB\" o \"12 GB\")", "Other" : "Otro", diff --git a/settings/l10n/es.json b/settings/l10n/es.json index a974b91b0a4..7532e4d8ce5 100644 --- a/settings/l10n/es.json +++ b/settings/l10n/es.json @@ -6,6 +6,10 @@ "You changed your email address" : "Ha cambiado su cuenta de correo", "Your email address was changed by an administrator" : "Su cuenta de correo ha sido cambiada por un administrador", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Su <strong>contraseña</strong> o <strong>dirección de correo electrónico</strong> fue modificado", + "Your apps" : "Tus apps", + "Enabled apps" : "Apps habilitadas", + "Disabled apps" : "Apps inhabilitadas", + "App bundles" : "Lotes de apps", "Wrong password" : "Contraseña incorrecta", "Saved" : "Guardado", "No user supplied" : "No se especificó un usuario", @@ -13,6 +17,7 @@ "Authentication error" : "Error de autenticación", "Please provide an admin recovery password; otherwise, all user data will be lost." : "Por favor provea una contraseña de administración para recuperación; de otra forma toda la información de los usuarios será perdida.", "Wrong admin recovery password. Please check the password and try again." : "Contraseña de recuperación de administrador incorrecta. Por favor compruebe la contraseña e inténtelo de nuevo.", + "Backend doesn't support password change, but the user's encryption key was updated." : "El backend no permite cambiar la contraseña, pero la clava de cifrado ha sido actualizada.", "installing and updating apps via the app store or Federated Cloud Sharing" : "instalando y actualizando aplicaciones vía app store o Nube compartida Federada", "Federated Cloud Sharing" : "Compartido en Cloud Federado", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL está usando una versión desactualizada %s (%s). Por favor, actualice su sistema operativo o funciones tales como %s no funcionará de forma fiable.", @@ -25,6 +30,7 @@ "Well done, %s!" : "Bien hecho, %s!", "If you received this email, the email configuration seems to be correct." : "Si recibe este correo, la configuración de correo parece ser correcta.", "Email setting test" : "Prueba de configuración de correo", + "Email could not be sent. Check your mail server log" : "No se ha podido enviar el correo. Comprueba el registro del servidor de correo", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ocurrió un problema al enviar el mensaje de correo electrónico. Revise su configuración. (Error: %s)", "You need to set your user email before being able to send test emails." : "Tiene que configurar su dirección de correo electrónico antes de poder enviar mensajes de prueba.", "Invalid request" : "Petición no válida", @@ -34,6 +40,10 @@ "To send a password link to the user an email address is required." : "Para enviar un enlace de contraseña al usuario, se requiere una dirección de correo electrónico.", "Unable to create user." : "No se pudo crear el usuario.", "Unable to delete user." : "No se pudo eliminar el usuario.", + "Error while enabling user." : "Error al habilitar usuario.", + "Error while disabling user." : "Error al deshabilitar usuario.", + "In order to verify your Twitter account post following tweet on Twitter (please make sure to post it without any line breaks):" : "Para verificar tu cuenta de Twitter escribe en ella el siguiente tuit (por favor, asegúrate de escribirlo sin saltos de línea):", + "In order to verify your Website store following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Para verificar tu sutio web, guarda e lsiguiente contenido en la raíz de la web en '.well-known/CloudIdVerificationCode.txt' (por favor, asegúrate de que el texto completo aparece en una línea):", "Settings saved" : "Ajustes guardados", "Unable to change full name" : "No se puede cambiar el nombre completo", "Unable to change email address" : "No se pudo cambiar la dirección de correo", @@ -93,11 +103,15 @@ "Updating...." : "Actualizando...", "Error while updating app" : "Error mientras se actualizaba la aplicación", "Updated" : "Actualizado", + "Removing …" : "Eliminando...", + "Error while removing app" : "Error al eliminar la app", + "Remove" : "Eliminar", "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación ha sido activada pero necesita ser actualizada. Seras redirigido a la pagina de actualizariones en 5 segundos.", "App update" : "Actualización de aplicación", "Approved" : "Aprobado", "Experimental" : "Experimental", "No apps found for {query}" : "No se han encontrado apps para {query}", + "Enable all" : "Activar todas", "Allow filesystem access" : "Permitir acceso al sistema de archivos", "Disconnect" : "Desconectar", "Revoke" : "Revocar", @@ -132,6 +146,8 @@ "Visible to local users and to trusted servers" : "Visible a usuarios locales y servidores de confianza", "Public" : "Público", "Will be synced to a global and public address book" : "Se sincronizará a una libreta de direcciones pública y global", + "Verify" : "Verificar", + "Verifying …" : "Verificando...", "Select a profile picture" : "Seleccionar una imagen de perfil", "Very weak password" : "Contraseña muy débil", "Weak password" : "Contraseña débil", @@ -155,15 +171,17 @@ "Password successfully changed" : "Contraseña ha sido correctamente cambiada", "Changing the password will result in data loss, because data recovery is not available for this user" : "Cambiar la contraseña provocará pérdida de datos porque la recuperación de datos no está disponible para este usuario", "Could not change the users email" : "No se pudo cambiar el correo de usuario", + "Error while changing status of {user}" : "Error al cambiar el estado de {user}", "A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido", "Error creating user: {message}" : "Error creando el usuario: {message}", "A valid password must be provided" : "Se debe proporcionar una contraseña válida", "A valid email must be provided" : "Se debe brindar una dirección de correo electrónico válida ", "__language_name__" : "Castellano", "Unlimited" : "Ilimitado", + "Verifying" : "Verificando", "Personal info" : "Información personal", "Sessions" : "Sesiones", - "App passwords" : "Contraseñas de la app", + "App passwords" : "Contraseñas de aplicaciones", "Sync clients" : "Clientes de sincronización", "None" : "Ninguno", "Login" : "Iniciar sesión", @@ -173,6 +191,7 @@ "STARTTLS" : "STARTTLS", "Email server" : "Servidor de correo electrónico", "Open documentation" : "Abrir Documentación", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Es importante configurar este servidor para que pueda enviar correos, por ejemplo para cambios de contraseñas y notificaciones.", "Send mode" : "Modo de envío", "Encryption" : "Cifrado", "From address" : "Desde la dirección", @@ -188,6 +207,7 @@ "Test email settings" : "Probar configuración de correo electrónico", "Send email" : "Enviar mensaje", "Server-side encryption" : "Cifrado en el servidor", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "El cifrado en el lado del servidor hace posible cifrar archivos que se suben a este servidor. Esto trae consigo limitaciones como una ralentización en su funcionamiento, así que activa esto solo si es necesario.", "Enable server-side encryption" : "Habilitar cifrado en el servidor", "Please read carefully before activating server-side encryption: " : "Por favor lea cuidadosamente antes de activar el cifrado del lado del servidor.", "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Una vez que el cifrado está habilitado, todos los archivos subidos al servidor desde ese punto en adelante se cifrarán en reposo en el servidor. Sólo será posible desactivar el cifrado en una fecha posterior si el módulo de cifrado activado soporta esa función, y todas las condiciones previas (por ejemplo, el establecimiento de una clave de recuperación) se cumplan.", @@ -202,6 +222,7 @@ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Se necesita migrar las claves de cifrado del antiguo sistema (ownCloud <= 8.0) al nuevo sistema.", "Start migration" : "Iniciar migración", "Security & setup warnings" : "Avisos de seguridad y configuración", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Es importante para la seguridad y buen funcionamiento de tu instancia que todo esté configurado correctamente. Para ayudarte con esto, vamos a hacer algunas comprobaciones automáticas. Por favor, comprueba la sección 'Sugerencias y trucos' y la documentación para más información.", "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php parece que no está configurado correctamente para solicitar las variables de entorno del sistema. La prueba con getenv(\"PATH\") sólo retorna una respuesta vacía.", "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Por favor revisa la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación de instalación ↗</a> para notas de configuración PHP y la configuración PHP de tu servidor, especialmente cuando se está usando php-fpm", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Se ha habilitado la configuración de sólo lectura. Esto evita tener que ajustar algunas configuraciones a través de la interfaz web. Además, el archivo debe hacerse modificable manualmente para cada actualización.", @@ -209,6 +230,7 @@ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Probablemente esto venga a causa de la caché o un acelerador, tales como Zend OPcache o eAccelerator.", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Su base de datos no se ejecuta con el nivel de aislamiento de transacción \"READ COMMITTED\" . Ésto puede causar problemas cuando múltiples acciones se ejecutan en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s una versión inferior %2$s está instalada, por razones de estabilidad y rendimiento, se recomienda actualizar a la versión %1$s más reciente .", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "Falta el módulo PHP 'fileinfo'. Recomendamos encarecidamente activar este módulo para conseguir mejores resultados en la detección de los tipos MIME.", "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "El bloqueo de archivos transaccional está desactivado, esto podría conducir a problemas con 'race conditions'. Activa 'filelocking.enabled' en 'config.php' para solucionar esos problemas. Mira la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación ↗</a> para más información.", "System locale can not be set to a one which supports UTF-8." : "No se puede escoger una configuración regional que soporte UTF-8.", "This means that there might be problems with certain characters in file names." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de los archivos.", @@ -221,6 +243,7 @@ "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!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "Para un desempeño óptimo es imoprtante configurar correctamente los trabajos en segundo plano. Para instancias más grandes, 'cron' es la configuración recomendada. Por favor, lee la documentación para más información.", "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.", @@ -228,6 +251,7 @@ "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Para ejecutar esto se necesita la extensión posix de PHP. Ver la {linkstart}documentación de PHP{linkend} para más detellas.", "Version" : "Versión", "Sharing" : "Compartiendo", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador puedes ajustar el comportameiento al compartir. Por favor, lee la documentación para más información.", "Allow apps to use the Share API" : "Permitir a las aplicaciones utilizar la API de Compartición", "Allow users to share via link" : "Permite a los usuarios compartir por medio de enlaces", "Allow public uploads" : "Permitir subidas públicas", @@ -246,6 +270,7 @@ "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Mostrar texto de renuncia de responsabilidad en la páigina de subida de enlace público. (Solo se muestra cuando se la lista de archivos está oculta.)", "This text will be shown on the public link upload page when the file list is hidden." : "Este texto se mostrará en la pagina de subida de enlace público cuando la lista de archivos está oculta.", "Tips & tricks" : "Sugerencias y trucos", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Hay muchas características y cambios de configuración disponibles para personalizar y usar esta instancia. Aquí hay alugnas indicaciones para más información.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Se está usando actualmente SQLite como motor de base de datos. Para instalaciones más grandes recomendamos cambiar a un motor de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto está especialmente recomendado cuando se utiliza el cliente de escritorio para la sincronización de archivos.", "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "Para migrar a otra base de datos usa la herramienta de línea de comandos 'occ db:convert-type' o mira la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación ↗</a>.", @@ -257,6 +282,8 @@ "Check the security of your Nextcloud over our security scan" : "Comprueba la seguridad de tu Nextcloud mediante nuestro escaneo de seguridad", "Hardening and security guidance" : "Guía de protección y seguridad", "Developer documentation" : "Documentación de desarrollador", + "View in store" : "Ver en la tienda", + "Limit to groups" : "Límite para grupos", "This app has an update available." : "Está app tiene una actualización pendiente.", "by %s" : "por %s", "%s-licensed" : "Licencia %s", @@ -303,7 +330,10 @@ "Address" : "Dirección", "Your postal address" : "Su dirección física", "Website" : "Sitio web", + "It can take up to 24 hours before the account is displayed as verified." : "Puede tardar hasta 24 horas que la cuenta aparezca como verificada.", + "Link https://…" : "Enlace https://...", "Twitter" : "Twitter", + "Twitter handle @…" : "Usuario de Twitter @...", "You are member of the following groups:" : "Es miembro de los siguientes grupos:", "Password" : "Contraseña", "Current password" : "Contraseña actual", @@ -320,6 +350,7 @@ "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, móviles y de escritorio actualmente conectados a tu cuenta.", "Device" : "Dispositivo", "Last activity" : "Última actividad", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Aquí puedes generar contraseñas individuales para apps para que no tengas que dar tu propia contraseña. También puedes revocarlas individualmente.", "Name" : "Nombre", "App name" : "Nombre de la app", "Create new app password" : "Crear nueva contraseña de app", @@ -328,7 +359,10 @@ "Username" : "Nombre de usuario", "Done" : "Hecho", "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud{linkclose}, el {githubopen}código fuente{linkclose} está licenciado bajo la {licenseopen}AGPL{linkclose}.", + "Follow us on Google+!" : "¡Síguenos en Google+!", "Like our facebook page!" : "¡Da a Me gusta en nuestra página de Facebook!", + "Follow us on Twitter!" : "¡Síguenos en Twitter", + "Check out our blog!" : "¡Lee nuestro blog!", "Subscribe to our newsletter!" : "¡Suscríbete a nuestro boletín!", "Settings" : "Configuración", "Show storage location" : "Mostrar la ubicación del almacenamiento", @@ -344,6 +378,7 @@ "Group name" : "Nombre del grupo", "Everyone" : "Todos", "Admins" : "Administradores", + "Disabled" : "Deshabilitado", "Default quota" : "Cuota predeterminada", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Por favor indique la cúota de almacenamiento (ej: \"512 MB\" o \"12 GB\")", "Other" : "Otro", diff --git a/settings/l10n/es_MX.js b/settings/l10n/es_MX.js index bb000a6fd03..a2121aa0590 100644 --- a/settings/l10n/es_MX.js +++ b/settings/l10n/es_MX.js @@ -42,6 +42,10 @@ OC.L10N.register( "To send a password link to the user an email address is required." : "Para enviar la liga a una contraseña al usuario, se requiere de una dirección de correo electrónico.", "Unable to create user." : "No fue posible crear el usuario. ", "Unable to delete user." : "No fue posible eliminar el usuario.", + "Error while enabling user." : "Se presentó un error al habilitar el usuario. ", + "Error while disabling user." : "Se presentó un error al deshabilitar el usuario.", + "In order to verify your Twitter account post following tweet on Twitter (please make sure to post it without any line breaks):" : "Para poder verficar su cuenta de Twitter publique el siguiente tweet en su Twitter (favor de asegurarse de publicarlo sin lineas en blanco):", + "In order to verify your Website store following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Para poder verficar la tienda de su sitio web", "Settings saved" : "Se han guardado los ajustes", "Unable to change full name" : "No fue posible cambiar el nombre completo", "Unable to change email address" : "No fue posible cambiar la dirección de correo electrónico", @@ -144,6 +148,8 @@ OC.L10N.register( "Visible to local users and to trusted servers" : "Visible para usuarios locales y para servidores de confianza", "Public" : "Público", "Will be synced to a global and public address book" : "Será sincronizado a una libreta de direcciones global y pública", + "Verify" : "Verificar", + "Verifying …" : "Verificando ...", "Select a profile picture" : "Seleccionar una imagen de perfil", "Very weak password" : "Contraseña muy débil", "Weak password" : "Contraseña débil", @@ -167,12 +173,14 @@ OC.L10N.register( "Password successfully changed" : "La contraseña fue cambiada exitosamente", "Changing the password will result in data loss, because data recovery is not available for this user" : "El cambiar la contraseña puede generar pérdida de datos, porque la recuperación de datos no está disponible para este usuario", "Could not change the users email" : "No fue posible cambiar el correo electrónico del usuario. ", + "Error while changing status of {user}" : "Se presentó un error al cambiar el estatus del usuario {user}", "A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido", "Error creating user: {message}" : "Se presentó un error al crear el usuario: {message}", "A valid password must be provided" : "Se debe proporcionar una contraseña válida", "A valid email must be provided" : "Se debe proporcionar un correo electrónico válido", "__language_name__" : "Español (México)", "Unlimited" : "Ilimitado", + "Verifying" : "Verificando", "Personal info" : "Información personal", "Sessions" : "Sesiones", "App passwords" : "Contraseñas de aplicación", @@ -324,7 +332,10 @@ OC.L10N.register( "Address" : "Dirección", "Your postal address" : "Su dirección postal", "Website" : "Sitio web", + "It can take up to 24 hours before the account is displayed as verified." : "Puede tomar hasta 24 horas antes de que la cuenta se muestre como verificada. ", + "Link https://…" : "Liga https:// ...", "Twitter" : "Twitter", + "Twitter handle @…" : "Cuenta de twitter @...", "You are member of the following groups:" : "Usted es un miembro de los siguientes grupos:", "Password" : "Contraseña", "Current password" : "Contraseña actual", @@ -369,6 +380,7 @@ OC.L10N.register( "Group name" : "Nombre del grupo", "Everyone" : "Todos", "Admins" : "Administradores", + "Disabled" : "Deshabilitado", "Default quota" : "Cuota predeterminada", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Favor de indicar la cuota de almacenamiento (ejem: \"512 MB\" ó \"12 GB\")", "Other" : "Otro", diff --git a/settings/l10n/es_MX.json b/settings/l10n/es_MX.json index 805ad39a579..1552ac8219a 100644 --- a/settings/l10n/es_MX.json +++ b/settings/l10n/es_MX.json @@ -40,6 +40,10 @@ "To send a password link to the user an email address is required." : "Para enviar la liga a una contraseña al usuario, se requiere de una dirección de correo electrónico.", "Unable to create user." : "No fue posible crear el usuario. ", "Unable to delete user." : "No fue posible eliminar el usuario.", + "Error while enabling user." : "Se presentó un error al habilitar el usuario. ", + "Error while disabling user." : "Se presentó un error al deshabilitar el usuario.", + "In order to verify your Twitter account post following tweet on Twitter (please make sure to post it without any line breaks):" : "Para poder verficar su cuenta de Twitter publique el siguiente tweet en su Twitter (favor de asegurarse de publicarlo sin lineas en blanco):", + "In order to verify your Website store following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Para poder verficar la tienda de su sitio web", "Settings saved" : "Se han guardado los ajustes", "Unable to change full name" : "No fue posible cambiar el nombre completo", "Unable to change email address" : "No fue posible cambiar la dirección de correo electrónico", @@ -142,6 +146,8 @@ "Visible to local users and to trusted servers" : "Visible para usuarios locales y para servidores de confianza", "Public" : "Público", "Will be synced to a global and public address book" : "Será sincronizado a una libreta de direcciones global y pública", + "Verify" : "Verificar", + "Verifying …" : "Verificando ...", "Select a profile picture" : "Seleccionar una imagen de perfil", "Very weak password" : "Contraseña muy débil", "Weak password" : "Contraseña débil", @@ -165,12 +171,14 @@ "Password successfully changed" : "La contraseña fue cambiada exitosamente", "Changing the password will result in data loss, because data recovery is not available for this user" : "El cambiar la contraseña puede generar pérdida de datos, porque la recuperación de datos no está disponible para este usuario", "Could not change the users email" : "No fue posible cambiar el correo electrónico del usuario. ", + "Error while changing status of {user}" : "Se presentó un error al cambiar el estatus del usuario {user}", "A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido", "Error creating user: {message}" : "Se presentó un error al crear el usuario: {message}", "A valid password must be provided" : "Se debe proporcionar una contraseña válida", "A valid email must be provided" : "Se debe proporcionar un correo electrónico válido", "__language_name__" : "Español (México)", "Unlimited" : "Ilimitado", + "Verifying" : "Verificando", "Personal info" : "Información personal", "Sessions" : "Sesiones", "App passwords" : "Contraseñas de aplicación", @@ -322,7 +330,10 @@ "Address" : "Dirección", "Your postal address" : "Su dirección postal", "Website" : "Sitio web", + "It can take up to 24 hours before the account is displayed as verified." : "Puede tomar hasta 24 horas antes de que la cuenta se muestre como verificada. ", + "Link https://…" : "Liga https:// ...", "Twitter" : "Twitter", + "Twitter handle @…" : "Cuenta de twitter @...", "You are member of the following groups:" : "Usted es un miembro de los siguientes grupos:", "Password" : "Contraseña", "Current password" : "Contraseña actual", @@ -367,6 +378,7 @@ "Group name" : "Nombre del grupo", "Everyone" : "Todos", "Admins" : "Administradores", + "Disabled" : "Deshabilitado", "Default quota" : "Cuota predeterminada", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Favor de indicar la cuota de almacenamiento (ejem: \"512 MB\" ó \"12 GB\")", "Other" : "Otro", diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js index dae56ce5f49..a3b757750f6 100644 --- a/settings/l10n/fr.js +++ b/settings/l10n/fr.js @@ -43,6 +43,8 @@ OC.L10N.register( "Unable to delete user." : "Impossible de supprimer l'utilisateur.", "Error while enabling user." : "Erreur lors de l'activation de l'utilisateur.", "Error while disabling user." : "Erreur lors de la désactivation de l'utilisateur.", + "In order to verify your Twitter account post following tweet on Twitter (please make sure to post it without any line breaks):" : "Pour vérifier votre compte Twitter, poster le tweet suivant sur Twitter (veuillez vérifier de le poster sans saut de ligne) :", + "In order to verify your Website store following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Pour vérifier votre site web, placer le contenu suivant à la racine de votre site à '.well-known/CloudIdVerificationCode.txt' (veuillez vérifier que le texte complet est en une seule ligne) :", "Settings saved" : "Paramètres sauvegardés", "Unable to change full name" : "Impossible de modifier le nom complet", "Unable to change email address" : "Impossible de modifier l'adresse e-mail", @@ -169,6 +171,7 @@ OC.L10N.register( "Password successfully changed" : "Mot de passe changé avec succès", "Changing the password will result in data loss, because data recovery is not available for this user" : "La modification du mot de passe entrainera la perte des données car la restauration de données n'est pas disponible pour cet utilisateur", "Could not change the users email" : "Impossible de modifier l'adresse e-mail des utilisateurs", + "Error while changing status of {user}" : "Erreur lors du changement de statut de {user}", "A valid username must be provided" : "Un nom d'utilisateur valide doit être saisi", "Error creating user: {message}" : "Erreur a la création d'un utilisateur : {message}", "A valid password must be provided" : "Un mot de passe valide doit être saisi", @@ -203,6 +206,7 @@ OC.L10N.register( "Test email settings" : "Tester les paramètres e-mail", "Send email" : "Envoyer un e-mail", "Server-side encryption" : "Chiffrement côté serveur", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Le chiffrement côté serveur permet de chiffrer les fichiers qui sont téléversés sur ce serveur. Cela implique des limitations comme une performance moindre, donc activez-le seulement si nécessaire.", "Enable server-side encryption" : "Activer le chiffrement côté serveur", "Please read carefully before activating server-side encryption: " : "Veuillez lire ceci avec attention avant d'activer le chiffrement :", "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Une fois le chiffrement activé, les fichiers téléversés sur le serveur à partir de ce moment seront stockés sous forme chiffrée. Il n'est possible de désactiver le chiffrement que si le module utilisé le permet spécifiquement, et que toutes les conditions préalables sont réunies pour ce faire (par exemple la création d'une clef de récupération).", @@ -217,6 +221,7 @@ OC.L10N.register( "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Vous devez migrer vos clés de chiffrement de l'ancienne version (ownCloud <= 8.0) vers la nouvelle.", "Start migration" : "Démarrer la migration", "Security & setup warnings" : "Avertissements de sécurité & configuration", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "C'est important pour la sécurité et la performance de votre instance que tout soit configuré correctement. Pour vous aider, nous effectuons quelques vérifications automatiques. Veuillez consulter la section Trucs & Astuces et la documentation pour plus d'informations.", "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php ne semble pas être configuré de manière à récupérer les valeurs des variables d’environnement. Le test de la commande getenv(\"PATH\") retourne seulement une réponse vide. ", "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Veuillez consulter <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">la documentation d'installation ↗</a> pour savoir comment configurer php sur votre serveur, en particulier en cas d'utilisation de php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuration est en mode lecture seule. Ceci empêche la modification de certaines configurations via l'interface web. De plus, le fichier doit être passé manuellement en lecture-écriture avant chaque mise à jour.", @@ -237,6 +242,7 @@ 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é !", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "Pour une performance optimale, il est important de configurer correctement lex travaux en arrière-plan. Pour les plus grosses instances, 'Cron' est le paramètre recommandé. Veuillez consulter la documentation pour plus d'informations.", "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." : "Utilisez un service webcron pour exécuter cron.php toutes les 15 minutes par 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.", @@ -244,6 +250,7 @@ OC.L10N.register( "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Pour l'exécuter, vous devez avoir l'extension PHP posix. Regarder la {linkstart}documentation PHP{linkend} pour plus de détails.", "Version" : "Version", "Sharing" : "Partage", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "En tant qu'administrateur, vous pouvez affiner le comportement de partage. Veuillez consulter la documentation pour plus d'informations.", "Allow apps to use the Share API" : "Autoriser les applications à utiliser l'API de partage", "Allow users to share via link" : "Autoriser les utilisateurs à partager par lien", "Allow public uploads" : "Autoriser les téléversements publics", @@ -321,8 +328,10 @@ OC.L10N.register( "Address" : "Adresse", "Your postal address" : "Votre adresse postale", "Website" : "Site web", + "It can take up to 24 hours before the account is displayed as verified." : "Cela peut prendre jusqu'à 24 heures avant que le compte soit affiché comme vérifié.", "Link https://…" : "Lien https://…", "Twitter" : "Twitter", + "Twitter handle @…" : "Pseudo Twitter @...", "You are member of the following groups:" : "Vous êtes membre des groupes suivants :", "Password" : "Mot de passe", "Current password" : "Mot de passe actuel", @@ -339,6 +348,7 @@ OC.L10N.register( "Web, desktop and mobile clients currently logged in to your account." : "Clients web, desktop et mobiles actuellement connectés sur votre compte.", "Device" : "Appareil", "Last activity" : "Dernière activité", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Ici vous pouvez générer des mots de passe individuels pour les applications pour éviter de communiquer votre mot de passe. Vous pouvez aussi les révoquer individuellement.", "Name" : "Nom", "App name" : "Nom de l'application", "Create new app password" : "Créer un nouveau mot de passe d'application", @@ -387,7 +397,7 @@ OC.L10N.register( "Admins can't remove themself from the admin group" : "Les administrateurs ne peuvent pas se retirer eux-mêmes du groupe admin", "Unable to add user to group %s" : "Impossible d'ajouter l'utilisateur au groupe %s", "Unable to remove user from group %s" : "Impossible de supprimer l'utilisateur du groupe %s", - "Sending..." : "Envoi en cours...", + "Sending..." : "Envoi en cours…", "Uninstalling ...." : "Désinstallation...", "Error while uninstalling app" : "Erreur lors de la désinstallation de l'application", "Uninstall" : "Désinstaller", diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json index 67455d44d77..2cc96b346d6 100644 --- a/settings/l10n/fr.json +++ b/settings/l10n/fr.json @@ -41,6 +41,8 @@ "Unable to delete user." : "Impossible de supprimer l'utilisateur.", "Error while enabling user." : "Erreur lors de l'activation de l'utilisateur.", "Error while disabling user." : "Erreur lors de la désactivation de l'utilisateur.", + "In order to verify your Twitter account post following tweet on Twitter (please make sure to post it without any line breaks):" : "Pour vérifier votre compte Twitter, poster le tweet suivant sur Twitter (veuillez vérifier de le poster sans saut de ligne) :", + "In order to verify your Website store following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Pour vérifier votre site web, placer le contenu suivant à la racine de votre site à '.well-known/CloudIdVerificationCode.txt' (veuillez vérifier que le texte complet est en une seule ligne) :", "Settings saved" : "Paramètres sauvegardés", "Unable to change full name" : "Impossible de modifier le nom complet", "Unable to change email address" : "Impossible de modifier l'adresse e-mail", @@ -167,6 +169,7 @@ "Password successfully changed" : "Mot de passe changé avec succès", "Changing the password will result in data loss, because data recovery is not available for this user" : "La modification du mot de passe entrainera la perte des données car la restauration de données n'est pas disponible pour cet utilisateur", "Could not change the users email" : "Impossible de modifier l'adresse e-mail des utilisateurs", + "Error while changing status of {user}" : "Erreur lors du changement de statut de {user}", "A valid username must be provided" : "Un nom d'utilisateur valide doit être saisi", "Error creating user: {message}" : "Erreur a la création d'un utilisateur : {message}", "A valid password must be provided" : "Un mot de passe valide doit être saisi", @@ -201,6 +204,7 @@ "Test email settings" : "Tester les paramètres e-mail", "Send email" : "Envoyer un e-mail", "Server-side encryption" : "Chiffrement côté serveur", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Le chiffrement côté serveur permet de chiffrer les fichiers qui sont téléversés sur ce serveur. Cela implique des limitations comme une performance moindre, donc activez-le seulement si nécessaire.", "Enable server-side encryption" : "Activer le chiffrement côté serveur", "Please read carefully before activating server-side encryption: " : "Veuillez lire ceci avec attention avant d'activer le chiffrement :", "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Une fois le chiffrement activé, les fichiers téléversés sur le serveur à partir de ce moment seront stockés sous forme chiffrée. Il n'est possible de désactiver le chiffrement que si le module utilisé le permet spécifiquement, et que toutes les conditions préalables sont réunies pour ce faire (par exemple la création d'une clef de récupération).", @@ -215,6 +219,7 @@ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Vous devez migrer vos clés de chiffrement de l'ancienne version (ownCloud <= 8.0) vers la nouvelle.", "Start migration" : "Démarrer la migration", "Security & setup warnings" : "Avertissements de sécurité & configuration", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "C'est important pour la sécurité et la performance de votre instance que tout soit configuré correctement. Pour vous aider, nous effectuons quelques vérifications automatiques. Veuillez consulter la section Trucs & Astuces et la documentation pour plus d'informations.", "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php ne semble pas être configuré de manière à récupérer les valeurs des variables d’environnement. Le test de la commande getenv(\"PATH\") retourne seulement une réponse vide. ", "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Veuillez consulter <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">la documentation d'installation ↗</a> pour savoir comment configurer php sur votre serveur, en particulier en cas d'utilisation de php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuration est en mode lecture seule. Ceci empêche la modification de certaines configurations via l'interface web. De plus, le fichier doit être passé manuellement en lecture-écriture avant chaque mise à jour.", @@ -235,6 +240,7 @@ "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é !", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "Pour une performance optimale, il est important de configurer correctement lex travaux en arrière-plan. Pour les plus grosses instances, 'Cron' est le paramètre recommandé. Veuillez consulter la documentation pour plus d'informations.", "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." : "Utilisez un service webcron pour exécuter cron.php toutes les 15 minutes par 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.", @@ -242,6 +248,7 @@ "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Pour l'exécuter, vous devez avoir l'extension PHP posix. Regarder la {linkstart}documentation PHP{linkend} pour plus de détails.", "Version" : "Version", "Sharing" : "Partage", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "En tant qu'administrateur, vous pouvez affiner le comportement de partage. Veuillez consulter la documentation pour plus d'informations.", "Allow apps to use the Share API" : "Autoriser les applications à utiliser l'API de partage", "Allow users to share via link" : "Autoriser les utilisateurs à partager par lien", "Allow public uploads" : "Autoriser les téléversements publics", @@ -319,8 +326,10 @@ "Address" : "Adresse", "Your postal address" : "Votre adresse postale", "Website" : "Site web", + "It can take up to 24 hours before the account is displayed as verified." : "Cela peut prendre jusqu'à 24 heures avant que le compte soit affiché comme vérifié.", "Link https://…" : "Lien https://…", "Twitter" : "Twitter", + "Twitter handle @…" : "Pseudo Twitter @...", "You are member of the following groups:" : "Vous êtes membre des groupes suivants :", "Password" : "Mot de passe", "Current password" : "Mot de passe actuel", @@ -337,6 +346,7 @@ "Web, desktop and mobile clients currently logged in to your account." : "Clients web, desktop et mobiles actuellement connectés sur votre compte.", "Device" : "Appareil", "Last activity" : "Dernière activité", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Ici vous pouvez générer des mots de passe individuels pour les applications pour éviter de communiquer votre mot de passe. Vous pouvez aussi les révoquer individuellement.", "Name" : "Nom", "App name" : "Nom de l'application", "Create new app password" : "Créer un nouveau mot de passe d'application", @@ -385,7 +395,7 @@ "Admins can't remove themself from the admin group" : "Les administrateurs ne peuvent pas se retirer eux-mêmes du groupe admin", "Unable to add user to group %s" : "Impossible d'ajouter l'utilisateur au groupe %s", "Unable to remove user from group %s" : "Impossible de supprimer l'utilisateur du groupe %s", - "Sending..." : "Envoi en cours...", + "Sending..." : "Envoi en cours…", "Uninstalling ...." : "Désinstallation...", "Error while uninstalling app" : "Erreur lors de la désinstallation de l'application", "Uninstall" : "Désinstaller", diff --git a/settings/l10n/id.js b/settings/l10n/id.js index 4ec6c7eb7d8..31cf04f21dc 100644 --- a/settings/l10n/id.js +++ b/settings/l10n/id.js @@ -1,6 +1,13 @@ OC.L10N.register( "settings", { + "{actor} changed your password" : "{actor} ganti kata sandi anda", + "You changed your password" : "Anda mengganti kata sandi", + "Your password was reset by an administrator" : "Kata sandi anda telah diatur ulang oleh administrator", + "{actor} changed your email address" : "{actor} merubah alamat email anda", + "Your apps" : "Aplikasi anda", + "Enabled apps" : "Aktifkan Aplikasi", + "Disabled apps" : "Matikan Aplikasi", "Wrong password" : "Sandi salah", "Saved" : "Disimpan", "No user supplied" : "Tidak ada pengguna yang diberikan", @@ -15,6 +22,7 @@ OC.L10N.register( "Group already exists." : "Grup sudah ada.", "Unable to add group." : "Tidak dapat menambah grup.", "Unable to delete group." : "Tidak dapat menghapus grup.", + "Invalid SMTP password." : "Kata sandi SMTP tidak cocok", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Terjadi masalah saat mengirim email. Mohon periksa kembali pengaturan Anda. (Kesalahan: %s)", "You need to set your user email before being able to send test emails." : "Anda perlu menetapkan email pengguna Anda sebelum dapat mengirim email percobaan.", "Invalid request" : "Permintaan tidak valid", @@ -34,6 +42,7 @@ OC.L10N.register( "Add trusted domain" : "Tambah domain terpercaya", "Migration in progress. Please wait until the migration is finished" : "Migrasi sedang dalam proses. Mohon tunggu sampai migrasi selesai.", "Migration started …" : "Migrasi dimulai ...", + "Sending…" : "Mengirim...", "Email sent" : "Email terkirim", "Official" : "Resmi", "All" : "Semua", @@ -54,6 +63,7 @@ OC.L10N.register( "Updating...." : "Memperbarui....", "Error while updating app" : "Terjadi kesalahan saat memperbarui aplikasi", "Updated" : "Diperbarui", + "Remove" : "Hapus", "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikasi sudah diaktifkan tetapi perlu diperbarui. Anda akan dialihkan ke halaman pembaruan dalam 5 detik.", "App update" : "Pembaruan Aplikasi", "Approved" : "Disetujui", @@ -70,6 +80,7 @@ OC.L10N.register( "Android Client" : "Klien Android", "Sync client - {os}" : "Klien sync - {os}", "This session" : "Sesi ini", + "Copy" : "Salin", "Copied!" : "Tersalin!", "Not supported!" : "Tidak didukung!", "Press ⌘-C to copy." : "Tekan ⌘-C untuk menyalin.", @@ -80,6 +91,12 @@ OC.L10N.register( "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Terjadi kesalahan. Mohon unggah sertifikat PEM terenkode-ASCII.", "Valid until {date}" : "Berlaku sampai {date}", "Delete" : "Hapus", + "Local" : "Lokal", + "Private" : "Pribadi", + "Contacts" : "Kontak", + "Public" : "Publik", + "Verify" : "Verifikasi", + "Verifying …" : "Sedang memferivikasi...", "Select a profile picture" : "Pilih foto profil", "Very weak password" : "Sandi sangat lemah", "Weak password" : "Sandi lemah", diff --git a/settings/l10n/id.json b/settings/l10n/id.json index 7ae7c8cc66d..fe93e61d42a 100644 --- a/settings/l10n/id.json +++ b/settings/l10n/id.json @@ -1,4 +1,11 @@ { "translations": { + "{actor} changed your password" : "{actor} ganti kata sandi anda", + "You changed your password" : "Anda mengganti kata sandi", + "Your password was reset by an administrator" : "Kata sandi anda telah diatur ulang oleh administrator", + "{actor} changed your email address" : "{actor} merubah alamat email anda", + "Your apps" : "Aplikasi anda", + "Enabled apps" : "Aktifkan Aplikasi", + "Disabled apps" : "Matikan Aplikasi", "Wrong password" : "Sandi salah", "Saved" : "Disimpan", "No user supplied" : "Tidak ada pengguna yang diberikan", @@ -13,6 +20,7 @@ "Group already exists." : "Grup sudah ada.", "Unable to add group." : "Tidak dapat menambah grup.", "Unable to delete group." : "Tidak dapat menghapus grup.", + "Invalid SMTP password." : "Kata sandi SMTP tidak cocok", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Terjadi masalah saat mengirim email. Mohon periksa kembali pengaturan Anda. (Kesalahan: %s)", "You need to set your user email before being able to send test emails." : "Anda perlu menetapkan email pengguna Anda sebelum dapat mengirim email percobaan.", "Invalid request" : "Permintaan tidak valid", @@ -32,6 +40,7 @@ "Add trusted domain" : "Tambah domain terpercaya", "Migration in progress. Please wait until the migration is finished" : "Migrasi sedang dalam proses. Mohon tunggu sampai migrasi selesai.", "Migration started …" : "Migrasi dimulai ...", + "Sending…" : "Mengirim...", "Email sent" : "Email terkirim", "Official" : "Resmi", "All" : "Semua", @@ -52,6 +61,7 @@ "Updating...." : "Memperbarui....", "Error while updating app" : "Terjadi kesalahan saat memperbarui aplikasi", "Updated" : "Diperbarui", + "Remove" : "Hapus", "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikasi sudah diaktifkan tetapi perlu diperbarui. Anda akan dialihkan ke halaman pembaruan dalam 5 detik.", "App update" : "Pembaruan Aplikasi", "Approved" : "Disetujui", @@ -68,6 +78,7 @@ "Android Client" : "Klien Android", "Sync client - {os}" : "Klien sync - {os}", "This session" : "Sesi ini", + "Copy" : "Salin", "Copied!" : "Tersalin!", "Not supported!" : "Tidak didukung!", "Press ⌘-C to copy." : "Tekan ⌘-C untuk menyalin.", @@ -78,6 +89,12 @@ "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Terjadi kesalahan. Mohon unggah sertifikat PEM terenkode-ASCII.", "Valid until {date}" : "Berlaku sampai {date}", "Delete" : "Hapus", + "Local" : "Lokal", + "Private" : "Pribadi", + "Contacts" : "Kontak", + "Public" : "Publik", + "Verify" : "Verifikasi", + "Verifying …" : "Sedang memferivikasi...", "Select a profile picture" : "Pilih foto profil", "Very weak password" : "Sandi sangat lemah", "Weak password" : "Sandi lemah", diff --git a/settings/l10n/ko.js b/settings/l10n/ko.js index c4d6c6ba727..041e576a5ef 100644 --- a/settings/l10n/ko.js +++ b/settings/l10n/ko.js @@ -1,12 +1,25 @@ OC.L10N.register( "settings", { + "{actor} changed your password" : "{actor} 님이 내 암호를 변경함", + "You changed your password" : "내 암호를 변경함", + "Your password was reset by an administrator" : "관리자가 내 암호를 초기화함", + "{actor} changed your email address" : "{actor} 님이 내 이메일 주소를 변경함", + "You changed your email address" : "내 이메일 주소를 변경함", + "Your email address was changed by an administrator" : "관리자가 내 이메일 주소를 변경함", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "내 <strong>암호</strong> 및 <strong>이메일</strong>이 변경됨", + "Your apps" : "내 앱", + "Enabled apps" : "활성화된 앱", + "Disabled apps" : "비활성화된 앱", + "App bundles" : "앱 번들", "Wrong password" : "잘못된 암호", "Saved" : "저장됨", "No user supplied" : "사용자가 지정되지 않음", "Unable to change password" : "암호를 변경할 수 없음", "Authentication error" : "인증 오류", + "Please provide an admin recovery password; otherwise, all user data will be lost." : "관리자 복구 암호를 입력하십시오. 그렇지 않으면 모든 사용자 데이이터가 초기화됩니다다.", "Wrong admin recovery password. Please check the password and try again." : "관리자 복구 암호가 잘못되었습니다. 암호를 다시 확인하십시오.", + "Backend doesn't support password change, but the user's encryption key was updated." : "백엔드에서 암호 변경을 지원하지 않지만 사용자의 암호화 키는 업데이트되었습니다.", "installing and updating apps via the app store or Federated Cloud Sharing" : "앱 스토어 및 연합 클라우드 공유로 앱 설치 및 업데이트", "Federated Cloud Sharing" : "클라우드 연합 공유", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL이 오래된 %s 버전을 사용하고 있습니다(%s). 운영 체제나 기능을 업데이트하지 않으면 %s 등을 안정적으로 사용할 수 없습니다.", @@ -15,13 +28,24 @@ OC.L10N.register( "Group already exists." : "그룹이 이미 존재합니다.", "Unable to add group." : "그룹을 추가할 수 없습니다.", "Unable to delete group." : "그룹을 삭제할 수 없습니다.", + "Invalid SMTP password." : "SMTP 암호가 잘못되었습니다.", + "Well done, %s!" : "%s 님, 잘 하셨습니다!", + "If you received this email, the email configuration seems to be correct." : "이 이메일을 받으셨다면 이메일 설정이 올바릅니다.", + "Email setting test" : "이메일 설정 시험", + "Email could not be sent. Check your mail server log" : "이메일을 보낼 수 없습니다. 메일 서버 로그를 확인하십시오.", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "이메일을 보내는 중 오류가 발생했습니다. 설정을 확인하십시오.(오류: %s)", "You need to set your user email before being able to send test emails." : "테스트 이메일을 보내기 전 내 주소를 설정해야 합니다.", "Invalid request" : "잘못된 요청", "Invalid mail address" : "잘못된 이메일 주소", + "No valid group selected" : "올바른 그룹을 선택하지 않았음", "A user with that name already exists." : "같은 이름의 사용자가 이미 존재합니다.", + "To send a password link to the user an email address is required." : "사용자에게 암호 링크를 보내려면 이메일 주소가 필요합니다.", "Unable to create user." : "사용자를 만들 수 없습니다.", "Unable to delete user." : "사용자를 삭제할 수 없습니다.", + "Error while enabling user." : "사용자를 활성화할 수 없습니다.", + "Error while disabling user." : "사용자를 비활성화할 수 없습니다.", + "In order to verify your Twitter account post following tweet on Twitter (please make sure to post it without any line breaks):" : "내 트위터 계정을 확인하려면 다음 트윗을 트위터에 올리십시오 (빈 줄이 있으면 안 됩니다):", + "In order to verify your Website store following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "내 웹 사이트를 확인하려면 웹 사이트 루트의 '.well-known/CloudIdVerificationCode.txt' 파일에 다음 내용을 올리십시오(전체 텍스트가 한 줄에 있어야 합니다):", "Settings saved" : "설정 저장됨", "Unable to change full name" : "전체 이름을 변경할 수 없음", "Unable to change email address" : "이메일 주소를 변경할 수 없음", @@ -30,6 +54,25 @@ OC.L10N.register( "Invalid user" : "잘못된 사용자", "Unable to change mail address" : "이메일 주소를 변경할 수 없음", "Email saved" : "이메일 저장됨", + "%1$s changed your password on %2$s." : "%1$s 님이 내 암호를 %2$s에 변경했습니다.", + "Your password on %s was changed." : "내 %s 암호를 변경했습니다.", + "Your password on %s was reset by an administrator." : "관리자가 내 %s 암호를 초기화했습니다.", + "Password changed for %s" : "%s의 암호 변경됨", + "If you did not request this, please contact an administrator." : "요청하지 않았다면 관리자에게 연락하십시오.", + "Password for %1$s changed on %2$s" : "%1$s의 암호를 %2$s에 변경함", + "%1$s changed your email address on %2$s." : "%1$s 님이 내 이메일 주소를 %2$s에 변경했습니다.", + "Your email address on %s was changed." : "내 %s 이메일 주소를 변경했습니다.", + "Your email address on %s was changed by an administrator." : "관리자가 내 %s 이메일 주소를 변경했습니다.", + "Email address changed for %s" : "%s의 이메일 주소 변경됨", + "The new email address is %s" : "새 이메일 주소는 %s입니다", + "Email address for %1$s changed on %2$s" : "%1$s의 이메일 주소를 %2$s에 변경함", + "Welcome aboard" : "환영합니다", + "Welcome aboard %s" : "%s 님, 환영합니다", + "You have now an %s account, you can add, protect, and share your data." : "새 %s 계정을 통해서 내 데이터를 추가, 보호, 공유할 수 있습니다.", + "Your username is: %s" : "사용자 이름: %s", + "Set your password" : "내 암호 설정하기", + "Go to %s" : "%s(으)로 이동", + "Install Client" : "클라이언트 설치", "Your %s account was created" : "%s 계정을 등록했습니다", "Password confirmation is required" : "암호 확인이 필요합니다", "Couldn't remove app." : "앱을 삭제할 수 없습니다.", @@ -39,19 +82,22 @@ OC.L10N.register( "Migration in progress. Please wait until the migration is finished" : "이전 작업 중입니다. 작업이 완료될 때까지 기다려 주십시오", "Migration started …" : "이전 시작됨...", "Not saved" : "저장하지 않음", - "Email sent" : "이메일 발송됨", + "Sending…" : "보내는 중…", + "Email sent" : "이메일 보냄", "Official" : "공식", "All" : "모두", "Update to %s" : "%s(으)로 업데이트", "_You have %n app update pending_::_You have %n app updates pending_" : ["앱 %n개 업데이트 대기 중"], "No apps found for your version" : "설치된 버전에 대한 앱 없음", - "The app will be downloaded from the app store" : "이 앱은 앱 스토어에서 다운로드 할 것", + "The app will be downloaded from the app store" : "이 앱을 앱 스토어에서 다운로드합니다", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "커뮤니티가 개발한 공식 앱입니다. 이 앱은 Nextcloud의 핵심 기능이며 프로덕션 환경에서 사용할 수 있습니다.", "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 at your own risk." : "이 앱의 보안 문제가 점검되지 않았고, 출시된 지 얼마 지나지 않았거나 아직 불안정합니다. 본인 책임 하에 설치하십시오.", + "Disabling app …" : "앱 비활성화 중 …", "Error while disabling app" : "앱을 비활성화하는 중 오류 발생", "Disable" : "사용 안함", "Enable" : "사용함", + "Enabling app …" : "앱 활성화 중 …", "Error while enabling app" : "앱을 활성화하는 중 오류 발생", "Error: this app cannot be enabled because it makes the server unstable" : "오류: 이 앱은 서버를 불안정하게 만들 수 있어서 활성화할 수 없습니다", "Error: could not disable broken app" : "오류: 망가진 앱을 비활성화할 수 없음", @@ -59,31 +105,35 @@ OC.L10N.register( "Updating...." : "업데이트 중....", "Error while updating app" : "앱을 업데이트하는 중 오류 발생", "Updated" : "업데이트됨", + "Removing …" : "삭제 중 …", + "Error while removing app" : "앱을 삭제하는 중 오류 발생", + "Remove" : "삭제", "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "앱이 활성화되었지만, 앱을 업데이트해야 합니다. 5초 후 앱 업데이트 페이지로 넘어갑니다.", "App update" : "앱 업데이트", "Approved" : "승인됨", "Experimental" : "실험적", - "No apps found for {query}" : "{query}에 대한 앱을 찾을 수 없습니다", + "No apps found for {query}" : "{query} 앱을 찾을 수 없음", + "Enable all" : "모두 활성화", "Allow filesystem access" : "파일시스템 접근 허용", "Disconnect" : "연결 해제", "Revoke" : "취소", - "Internet Explorer" : "인터넷 익스플로러", - "Edge" : "엣지", - "Firefox" : "파이어 폭스", - "Google Chrome" : "구글 크롬", - "Safari" : "사파리", - "Google Chrome for Android" : "안드로이드 용 구글 크롬", + "Internet Explorer" : "Internet Explorer", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google 크롬", + "Safari" : "Safari", + "Google Chrome for Android" : "Android용 Google 크롬", "iPhone iOS" : "iPhone iOS", "iPad iOS" : "iPad iOS", - "iOS Client" : "아이폰 OS 클라이언트", - "Android Client" : "안드로이드 클라이언트", + "iOS Client" : "iOS 클라이언트", + "Android Client" : "Android 클라이언트", "Sync client - {os}" : "동기화 클라이언트 - {os}", "This session" : "이 세션", "Copy" : "복사", - "Copied!" : "복사됨!", + "Copied!" : "복사 성공!", "Not supported!" : "지원하지 않음!", - "Press ⌘-C to copy." : "⌘-C 복사", - "Press Ctrl-C to copy." : "Ctrl-C 복사", + "Press ⌘-C to copy." : "복사하려면 ⌘-C 키를 누르십시오.", + "Press Ctrl-C to copy." : "복사하려면 Ctrl-C 키를 누르십시오.", "Error while loading browser sessions and device tokens" : "웹 브라우저 세션과 장치 토큰을 불러오는 중 오류가 발생했습니다", "Error while creating device token" : "장치 토큰을 만드는 중 오류가 발생했습니다", "Error while deleting the token" : "토큰을 삭제하는 중 오류가 발생했습니다", @@ -97,6 +147,9 @@ OC.L10N.register( "Contacts" : "연락처", "Visible to local users and to trusted servers" : "로컬 사용자와 신뢰된 서버에게 보이기", "Public" : "공개", + "Will be synced to a global and public address book" : "공개 및 전역 주소록으로 동기화됨", + "Verify" : "확인", + "Verifying …" : "확인 중 …", "Select a profile picture" : "프로필 사진 선택", "Very weak password" : "매우 약한 암호", "Weak password" : "약한 암호", @@ -111,18 +164,23 @@ OC.L10N.register( "undo" : "실행 취소", "never" : "없음", "deleted {userName}" : "{userName} 삭제됨", + "No user found for <strong>{pattern}</strong>" : "<strong>{pattern}</strong> 사용자를 찾을 수 없음", + "Unable to add user to group {group}" : "사용자를 그룹 {group}에 추가할 수 없음", + "Unable to remove user from group {group}" : "사용자를 그룹 {group}에서 삭제할 수 없음", "Add group" : "그룹 추가", "Invalid quota value \"{val}\"" : "잘못된 할당량 값 \"{val}\"", "no group" : "그룹 없음", - "Password successfully changed" : "암호가 성공적으로 변경되었습니다", - "Changing the password will result in data loss, because data recovery is not available for this user" : "이 사용자에 대해 데이터 복구를 사용할 수 없기 때문에, 암호를 변경하면 데이터를 잃게 됩니다.", - "Could not change the users email" : "사용자 이메일을 변경할 수 없습니다", + "Password successfully changed" : "암호를 성공적으로 변경함", + "Changing the password will result in data loss, because data recovery is not available for this user" : "이 사용자의 데이터를 복구할 수 없기 때문에, 암호를 변경하면 데이터가 손실됨", + "Could not change the users email" : "사용자 이메일을 변경할 수 없음", + "Error while changing status of {user}" : "{user}의 상태를 변경할 수 없음", "A valid username must be provided" : "올바른 사용자 이름을 입력해야 함", "Error creating user: {message}" : "사용자 생성 오류: {message}", "A valid password must be provided" : "올바른 암호를 입력해야 함", "A valid email must be provided" : "올바른 이메일 주소를 입력해야 함", "__language_name__" : "한국어", "Unlimited" : "무제한", + "Verifying" : "확인 중", "Personal info" : "개인 정보", "Sessions" : "세션", "App passwords" : "앱 암호", @@ -135,6 +193,7 @@ OC.L10N.register( "STARTTLS" : "STARTTLS", "Email server" : "이메일 서버", "Open documentation" : "문서 열기", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "암호 초기화 및 알림 이메일을 보내려면 이메일 서버를 설정해야 합니다.", "Send mode" : "보내기 모드", "Encryption" : "암호화", "From address" : "보낸 사람 주소", @@ -150,6 +209,7 @@ OC.L10N.register( "Test email settings" : "이메일 설정 시험", "Send email" : "이메일 보내기", "Server-side encryption" : "서버 측 암호화", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "서버 측 암호화를 사용하면 이 서버에 업로드되는 파일을 암호화할 수 있습니다. 성능 감소 등 제약 사항이 있으므로 필요한 경우에만 사용하십시오.", "Enable server-side encryption" : "서버 측 암호화 사용", "Please read carefully before activating server-side encryption: " : "서버 측 암호화를 활성화하기 전에 읽어 보십시오:", "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "암호화를 사용하면, 사용하기 시작한 시간 이후에 서버에 업로드된 모든 파일이 암호화됩니다. 나중에 암호화를 사용하지 않으려면 사용하고 있는 암호화 모듈에서 비활성화를 지원해야 하고 모든 사전 조건(예: 복구 키 설정)을 만족해야 합니다.", @@ -164,35 +224,40 @@ OC.L10N.register( "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "ownCloud 8.0 이하에서 사용한 이전 암호화 키를 새 키로 이전해야 합니다.", "Start migration" : "이전 시작", "Security & setup warnings" : "보안 및 설치 경고", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "내 인스턴스가 올바르게 설정되어 있어야 시스템 보안과 성능을 보장할 수 있습니다. 설정 확인을 돕기 위해서 일부 항목을 자동으로 확인합니다. 더 많은 정보를 보려면 문서의 팁과 추가 정보 장을 참조하십시오.", "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php가 시스템 환경 변수를 올바르게 조회할 수 있도록 설정되지 않았습니다. getenv(\"PATH\")의 값이 비어 있습니다.", - "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "서버 PHP 설정(특히 php-fpm 사용시)에 관한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">설치 가이드 ↗</a>를 참고하십시오.", + "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "서버 PHP 설정(특히 php-fpm 사용 시)에 관한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">설치 가이드 ↗</a>를 참고하십시오.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "읽기 전용 설정이 활성화되었습니다. 이 상태에서는 웹 인터페이스를 통하여 일부 설정을 변경할 수 없습니다. 또한 매 업데이트마다 파일을 쓸 수 있는 상태로 변경해야 합니다.", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP에서 인라인 doc 블록을 삭제하도록 설정되어 있습니다. 일부 코어 앱에 접근할 수 없을 수도 있습니다.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Zend OPcache, eAccelerator 같은 캐시/가속기 문제일 수도 있습니다.", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "데이터베이스가 \"READ COMMITTED\" 트랜잭션 격리 수준에서 실행되고 있지 않습니다. 여러 작업이 동시에 실행될 때 문제가 발생할 수 있습니다.", - "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s 버전보다 낮은 %2$s 버전이 설치되어있습니다. 안정성과 성능을 위해 %1$s 버전으로 업데이트하시기를 권장합니다.", - "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "트랜잭션 파일 잠금이 비활성화되어있어 동시 접근시 문제가 발생할 수 있습니다. config.php에서 'filelocking.enabled'를 활성화하여 이 문제를 해결할 수 있습니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">사용 설명서 ↗</a>를 참고하십시오.", - "System locale can not be set to a one which supports UTF-8." : "UTF-8을 지원하는 시스템 로케일을 사용할 수 없습니다.", + "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s의 버전 %2$s 미만이 설치되어 있습니다. 안정성과 성능을 위해 %1$s의 새로운 버전으로 업데이트하는 것을 권장합니다.", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "PHP의 'fileinfo' 모듈이 없습니다. 올바른 MIME 형식 감지를 위해서 이 모듈을 활성화하는 것을 추천합니다.", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "트랜잭션 파일 잠금이 비활성화되어있어 동시 접근 시 문제가 발생할 수 있습니다. config.php에서 'filelocking.enabled'를 활성화하여 이 문제를 해결할 수 있습니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">사용 설명서 ↗</a>를 참고하십시오.", + "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.", + "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\")" : "도메인의 루트 디렉터리 아래에 설치되어 있지 않고 시스템 cron을 사용한다면 URL 생성에 문제가 발생할 수도 있습니다. 이 문제를 해결하려면 설치본의 웹 루트 경로에 있는 config.php 파일의 \"overwrite.cli.url\" 옵션을 변경하십시오(제안: \"%s\")", "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "CLI로 cronjob을 실행할 수 없었습니다. 다음 기술적 오류가 발생했습니다:", - "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "<a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">설치 가이드 ↗</a>를 확인하고 <a href=\"%s\">로그</a>에 오류 또는 경고를 확인하시기 바랍니다.", + "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "<a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">설치 가이드 ↗</a>를 확인하고 <a href=\"%s\">로그</a>의 오류 또는 경고를 확인하십시오.", "All checks passed." : "모든 검사를 통과했습니다.", "Cron" : "Cron", "Last cron job execution: %s." : "마지막 cron 작업 실행: %s.", "Last cron job execution: %s. Something seems wrong." : "마지막 cron 작업 실행: %s. 문제가 발생한 것 같습니다.", "Cron was not executed yet!" : "Cron이 실행되지 않았습니다!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "최적 성능을 위해서 백그라운드 작업을 올바르게 설정하는 것을 추천합니다. 큰 인스턴스에서는 'Cron'을 사용하는 것을 추천합니다. 더 많은 정보를 보려면 문서를 참조하십시오.", "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 파일을 실행합니다.", - "The cron.php needs to be executed by the system user \"%s\"." : "cron.php는 시스템 사용자 \"%s\"가 실행해야합니다.", + "The cron.php needs to be executed by the system user \"%s\"." : "시스템 사용자 \"%s\"(으)로 cron.php를 실행해야 합니다.", "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "실행하려면 PHP POSIX 확장이 필요합니다. 자세한 내용은 {linkstart}PHP 사용 설명서{linkend}를 참고하십시오.", "Version" : "버전", "Sharing" : "공유", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "관리자로 공유 행동을 미세 조정할 수 있습니다. 더 많은 정보를 보려면 문서를 참조하십시오.", "Allow apps to use the Share API" : "앱에서 공유 API를 사용할 수 있도록 허용", "Allow users to share via link" : "사용자별 링크 공유 허용", "Allow public uploads" : "공개 업로드 허용", + "Always ask for a password" : "항상 암호 묻기", "Enforce password protection" : "암호 보호 강제", "Set default expiration date" : "기본 만료 날짜 설정", "Expire after " : "다음 날짜 후 만료", @@ -204,30 +269,35 @@ OC.L10N.register( "Exclude groups from sharing" : "공유에서 그룹 제외", "These groups will still be able to receive shares, but not to initiate them." : "이 그룹의 사용자들은 다른 사용자가 공유한 파일을 받을 수는 있지만, 자기 파일을 공유할 수는 없습니다.", "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "공유 대화 상자에서 사용자 이름 자동 완성을 사용합니다. 이 설정을 사용하지 않으면 전체 사용자 이름을 입력해야 합니다.", - "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "공개 링크 업로드 페이지에 고지 사항 텍스트를 표시합니다. (파일리스트가 숨겨져있는 경우에만 표시)", + "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "공개 링크 업로드 페이지에 고지 사항 텍스트를 표시합니다.(파일 목록이 숨겨져 있는 경우에만 표시합니다.)", "This text will be shown on the public link upload page when the file list is hidden." : "파일 목록이 숨겨져 있으면 이 텍스트는 공개 링크 업로드 페이지에 표시됩니다.", "Tips & tricks" : "팁과 추가 정보", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "이 인스턴스를 최적화하고 사용할 수 있는 여러 기능과 설정을 변경할 수 있습니다. 더 많은 정보를 보려면 여기에서 시작하십시오.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "현재 백엔드 데이터베이스로 SQLite를 사용하고 있습니다. 대규모의 파일을 관리하려고 한다면 다른 데이터베이스 백엔드로 전환할 것을 권장합니다.", "This is particularly recommended when using the desktop client for file synchronisation." : "특히 파일 동기화를 위해 데스크톱 클라이언트를 사용할 예정인 경우 권장됩니다.", - "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "다른 데이터베이스로 마이그레이션하려면 'occ db:convert-type' 명령행 도구를 사용하거나 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">사용 설명서 ↗</a>를 참고하시기 바랍니다.", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "다른 데이터베이스로 마이그레이션하려면 'occ db:convert-type' 명령행 도구를 사용하거나 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">사용 설명서 ↗</a>를 참고하십시오.", "How to do backups" : "백업 방법", "Advanced monitoring" : "고급 모니터링", "Performance tuning" : "성능 튜닝", "Improving the config.php" : "config.php 개선", "Theming" : "테마 꾸미기", + "Check the security of your Nextcloud over our security scan" : "Nextcloud의 보안 상태 검사하기", "Hardening and security guidance" : "보안 강화 지침", "Developer documentation" : "개발자 문서", + "View in store" : "스토어에서 보기", + "Limit to groups" : "그룹으로 제한", "This app has an update available." : "이 앱을 업데이트할 수 있습니다.", - "%s-licensed" : "%s-라이선스", + "by %s" : "%s 개발", + "%s-licensed" : "%s 라이선스", "Documentation:" : "문서:", "User documentation" : "사용자 문서", "Admin documentation" : "관리 문서", "Visit website" : "웹 사이트 방문", "Report a bug" : "버그 신고", - "Show description …" : "설명 보기...", - "Hide description …" : "설명 숨기기...", - "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "이 앱은 Nextcloud 최소 버전을 지정하지 않았습니다. Nextcloud 11 이후에는 오류로 처리됩니다.", - "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "이 앱은 Nextcloud 최대 버전을 지정하지 않았습니다. Nextcloud 11 이후에는 오류로 처리됩니다.", + "Show description …" : "설명 보기 …", + "Hide description …" : "설명 숨기기 …", + "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "이 앱은 Nextcloud 최소 버전을 지정하지 않았습니다. 차후 버전에서는 오류로 처리됩니다.", + "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "이 앱은 Nextcloud 최대 버전을 지정하지 않았습니다. 차후 버전에서는 오류로 처리됩니다.", "This app cannot be installed because the following dependencies are not fulfilled:" : "다음 의존성을 만족할 수 없기 때문에 이 앱을 설치할 수 없습니다:", "Enable only for specific groups" : "특정 그룹에만 허용", "SSL Root Certificates" : "SSL 루트 인증서", @@ -241,7 +311,8 @@ OC.L10N.register( "Forum" : "포럼", "Getting help" : "도움 얻기", "Commercial support" : "상용 지원", - "You are using <strong>%s</strong> of <strong>%s</strong>" : "현재 <strong>%s</strong> / <strong>%s</strong>을(를) 사용중입니다.", + "You are using <strong>%s</strong> of <strong>%s</strong>" : "현재 <strong>%s</strong>/<strong>%s</strong>을(를) 사용하고 있습니다", + "You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "현재 <strong>%s</strong>/<strong>%s</strong>(<strong>%s%%</strong>)를 사용하고 있습니다", "Profile picture" : "프로필 사진", "Upload new" : "새로 업로드", "Select from Files" : "파일에서 선택", @@ -255,12 +326,16 @@ OC.L10N.register( "Email" : "이메일", "Your email address" : "이메일 주소", "No email address set" : "이메일 주소가 설정되지 않음", + "For password reset and notifications" : "암호 초기화 및 알림에 사용", "Phone number" : "휴대폰 번호", "Your phone number" : "내 휴대폰 번호", "Address" : "주소", - "Your postal address" : "내 우편 번호", - "Website" : "웹 사이트", + "Your postal address" : "내 우편 주소", + "Website" : "웹사이트", + "It can take up to 24 hours before the account is displayed as verified." : "계정이 확인된 것으로 표시될 때까지 최대 24시간이 걸릴 수 있습니다", + "Link https://…" : "링크 https://…", "Twitter" : "트위터", + "Twitter handle @…" : "트위터 핸들 @…", "You are member of the following groups:" : "다음 그룹의 구성원입니다:", "Password" : "암호", "Current password" : "현재 암호", @@ -272,11 +347,12 @@ OC.L10N.register( "Desktop client" : "데스크톱 클라이언트", "Android app" : "Android 앱", "iOS app" : "iOS 앱", - "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "이 프로젝트를 지원하려면 {contributeopen}개발에 참여{linkclose}하거나 {contributeopen}주변에 알려주세요{linkclose}!", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "이 프로젝트를 지원하려면 {contributeopen}개발에 참여{linkclose}하거나 {contributeopen}주변에 알려 주세요{linkclose}!", "Show First Run Wizard again" : "첫 실행 마법사 다시 보이기", "Web, desktop and mobile clients currently logged in to your account." : "사용자 계정으로 로그인된 웹, 데스크톱, 모바일 클라이언트 목록입니다.", "Device" : "장치", "Last activity" : "최근 활동", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "앱 암호를 생성하여 내 암호를 공개하지 않아도 됩니다. 이 암호는 개별적으로 폐기할 수도 있습니다.", "Name" : "이름", "App name" : "앱 이름", "Create new app password" : "새로운 앱 암호 만들기", @@ -285,12 +361,18 @@ OC.L10N.register( "Username" : "사용자 이름", "Done" : "완료", "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "{communityopen}Nextcloud 커뮤니티{linkclose}에서 개발, {githubopen}소스 코드{linkclose}는 {licenseopen}<abbr title=\"Affero General Public License\">AGPL</abbr>{linkclose} 라이선스를 따릅니다.", - "Like our facebook page!" : "Facebook 페이지에서 좋아요를 눌러주세요!", - "Subscribe to our newsletter!" : "뉴스 레터를 구독하세요!", + "Follow us on Google+!" : "Google+에서 저희를 팔로하세요!", + "Like our facebook page!" : "Facebook 페이지에서 좋아요를 눌러 주세요!", + "Follow us on Twitter!" : "트위터에서 저희를 팔로하세요!", + "Check out our blog!" : "블로그를 확인해 보세요!", + "Subscribe to our newsletter!" : "뉴스레터를 구독하세요!", + "Settings" : "설정", "Show storage location" : "저장소 위치 보이기", "Show user backend" : "사용자 백엔드 보이기", + "Show last login" : "마지막 로그인 보이기", "Show email address" : "이메일 주소 보이기", "Send email to new user" : "새 사용자에게 이메일 보내기", + "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "새 사용자의 암호가 비어 있으면 암호를 설정하는 링크가 포함된 활성화 이메일을 보냅니다다.", "E-Mail" : "이메일", "Create" : "만들기", "Admin Recovery Password" : "관리자 복구 암호", @@ -298,6 +380,7 @@ OC.L10N.register( "Group name" : "그룹 이름", "Everyone" : "모두", "Admins" : "관리자", + "Disabled" : "비활성화됨", "Default quota" : "기본 할당량", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "저장소 할당량을 입력하십시오 (예: \"512 MB\", \"12 GB\")", "Other" : "기타", @@ -319,11 +402,12 @@ OC.L10N.register( "Unable to add user to group %s" : "그룹 %s에 사용자를 추가할 수 없음", "Unable to remove user from group %s" : "그룹 %s에서 사용자를 삭제할 수 없음", "Sending..." : "보내는 중...", - "Uninstalling ...." : "제거 하는 중 ....", + "Uninstalling ...." : "제거하는 중 ....", "Error while uninstalling app" : "앱을 제거하는 중 오류 발생", "Uninstall" : "제거", - "This is used for sending out notifications." : "알림을 보낼 때 사용됩니다.", - "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP 모듈 'fileinfo'가 존재하지 않습니다. MIME 형식 감지 결과를 향상시키기 위하여 이 모듈을 활성화하는 것을 추천합니다.", + "This is used for sending out notifications." : "알림을 보낼 때 사용합니다.", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP의 'fileinfo' 모듈이 없습니다. 올바른 MIME 형식 감지를 위해서 이 모듈을 활성화하는 것을 추천합니다.", + "Uninstall app" : "앱 삭제", "Hey there,<br><br>just letting you know that you now have a %s account.<br><br>Your username: <strong>%s</strong><br>Access it: <strong><a href=\"%s\">%s</a></strong><br><br>" : "안녕하세요.<br><br>%s 계정을 사용할 수 있음을 알려 드립니다.<br><br>사용자 이름: <strong>%s</strong><br>접근 링크: <strong><a href=\"%s\">%s</a></strong><br><br>", "Cheers!" : "감사합니다!", "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "안녕하세요.\n\n%s 계정을 사용할 수 있음을 알려 드립니다.\n\n사용자 이름: %s\n접근 링크: %s\n\n", diff --git a/settings/l10n/ko.json b/settings/l10n/ko.json index 1f3c39c8c50..f9828ccd1ca 100644 --- a/settings/l10n/ko.json +++ b/settings/l10n/ko.json @@ -1,10 +1,23 @@ { "translations": { + "{actor} changed your password" : "{actor} 님이 내 암호를 변경함", + "You changed your password" : "내 암호를 변경함", + "Your password was reset by an administrator" : "관리자가 내 암호를 초기화함", + "{actor} changed your email address" : "{actor} 님이 내 이메일 주소를 변경함", + "You changed your email address" : "내 이메일 주소를 변경함", + "Your email address was changed by an administrator" : "관리자가 내 이메일 주소를 변경함", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "내 <strong>암호</strong> 및 <strong>이메일</strong>이 변경됨", + "Your apps" : "내 앱", + "Enabled apps" : "활성화된 앱", + "Disabled apps" : "비활성화된 앱", + "App bundles" : "앱 번들", "Wrong password" : "잘못된 암호", "Saved" : "저장됨", "No user supplied" : "사용자가 지정되지 않음", "Unable to change password" : "암호를 변경할 수 없음", "Authentication error" : "인증 오류", + "Please provide an admin recovery password; otherwise, all user data will be lost." : "관리자 복구 암호를 입력하십시오. 그렇지 않으면 모든 사용자 데이이터가 초기화됩니다다.", "Wrong admin recovery password. Please check the password and try again." : "관리자 복구 암호가 잘못되었습니다. 암호를 다시 확인하십시오.", + "Backend doesn't support password change, but the user's encryption key was updated." : "백엔드에서 암호 변경을 지원하지 않지만 사용자의 암호화 키는 업데이트되었습니다.", "installing and updating apps via the app store or Federated Cloud Sharing" : "앱 스토어 및 연합 클라우드 공유로 앱 설치 및 업데이트", "Federated Cloud Sharing" : "클라우드 연합 공유", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL이 오래된 %s 버전을 사용하고 있습니다(%s). 운영 체제나 기능을 업데이트하지 않으면 %s 등을 안정적으로 사용할 수 없습니다.", @@ -13,13 +26,24 @@ "Group already exists." : "그룹이 이미 존재합니다.", "Unable to add group." : "그룹을 추가할 수 없습니다.", "Unable to delete group." : "그룹을 삭제할 수 없습니다.", + "Invalid SMTP password." : "SMTP 암호가 잘못되었습니다.", + "Well done, %s!" : "%s 님, 잘 하셨습니다!", + "If you received this email, the email configuration seems to be correct." : "이 이메일을 받으셨다면 이메일 설정이 올바릅니다.", + "Email setting test" : "이메일 설정 시험", + "Email could not be sent. Check your mail server log" : "이메일을 보낼 수 없습니다. 메일 서버 로그를 확인하십시오.", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "이메일을 보내는 중 오류가 발생했습니다. 설정을 확인하십시오.(오류: %s)", "You need to set your user email before being able to send test emails." : "테스트 이메일을 보내기 전 내 주소를 설정해야 합니다.", "Invalid request" : "잘못된 요청", "Invalid mail address" : "잘못된 이메일 주소", + "No valid group selected" : "올바른 그룹을 선택하지 않았음", "A user with that name already exists." : "같은 이름의 사용자가 이미 존재합니다.", + "To send a password link to the user an email address is required." : "사용자에게 암호 링크를 보내려면 이메일 주소가 필요합니다.", "Unable to create user." : "사용자를 만들 수 없습니다.", "Unable to delete user." : "사용자를 삭제할 수 없습니다.", + "Error while enabling user." : "사용자를 활성화할 수 없습니다.", + "Error while disabling user." : "사용자를 비활성화할 수 없습니다.", + "In order to verify your Twitter account post following tweet on Twitter (please make sure to post it without any line breaks):" : "내 트위터 계정을 확인하려면 다음 트윗을 트위터에 올리십시오 (빈 줄이 있으면 안 됩니다):", + "In order to verify your Website store following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "내 웹 사이트를 확인하려면 웹 사이트 루트의 '.well-known/CloudIdVerificationCode.txt' 파일에 다음 내용을 올리십시오(전체 텍스트가 한 줄에 있어야 합니다):", "Settings saved" : "설정 저장됨", "Unable to change full name" : "전체 이름을 변경할 수 없음", "Unable to change email address" : "이메일 주소를 변경할 수 없음", @@ -28,6 +52,25 @@ "Invalid user" : "잘못된 사용자", "Unable to change mail address" : "이메일 주소를 변경할 수 없음", "Email saved" : "이메일 저장됨", + "%1$s changed your password on %2$s." : "%1$s 님이 내 암호를 %2$s에 변경했습니다.", + "Your password on %s was changed." : "내 %s 암호를 변경했습니다.", + "Your password on %s was reset by an administrator." : "관리자가 내 %s 암호를 초기화했습니다.", + "Password changed for %s" : "%s의 암호 변경됨", + "If you did not request this, please contact an administrator." : "요청하지 않았다면 관리자에게 연락하십시오.", + "Password for %1$s changed on %2$s" : "%1$s의 암호를 %2$s에 변경함", + "%1$s changed your email address on %2$s." : "%1$s 님이 내 이메일 주소를 %2$s에 변경했습니다.", + "Your email address on %s was changed." : "내 %s 이메일 주소를 변경했습니다.", + "Your email address on %s was changed by an administrator." : "관리자가 내 %s 이메일 주소를 변경했습니다.", + "Email address changed for %s" : "%s의 이메일 주소 변경됨", + "The new email address is %s" : "새 이메일 주소는 %s입니다", + "Email address for %1$s changed on %2$s" : "%1$s의 이메일 주소를 %2$s에 변경함", + "Welcome aboard" : "환영합니다", + "Welcome aboard %s" : "%s 님, 환영합니다", + "You have now an %s account, you can add, protect, and share your data." : "새 %s 계정을 통해서 내 데이터를 추가, 보호, 공유할 수 있습니다.", + "Your username is: %s" : "사용자 이름: %s", + "Set your password" : "내 암호 설정하기", + "Go to %s" : "%s(으)로 이동", + "Install Client" : "클라이언트 설치", "Your %s account was created" : "%s 계정을 등록했습니다", "Password confirmation is required" : "암호 확인이 필요합니다", "Couldn't remove app." : "앱을 삭제할 수 없습니다.", @@ -37,19 +80,22 @@ "Migration in progress. Please wait until the migration is finished" : "이전 작업 중입니다. 작업이 완료될 때까지 기다려 주십시오", "Migration started …" : "이전 시작됨...", "Not saved" : "저장하지 않음", - "Email sent" : "이메일 발송됨", + "Sending…" : "보내는 중…", + "Email sent" : "이메일 보냄", "Official" : "공식", "All" : "모두", "Update to %s" : "%s(으)로 업데이트", "_You have %n app update pending_::_You have %n app updates pending_" : ["앱 %n개 업데이트 대기 중"], "No apps found for your version" : "설치된 버전에 대한 앱 없음", - "The app will be downloaded from the app store" : "이 앱은 앱 스토어에서 다운로드 할 것", + "The app will be downloaded from the app store" : "이 앱을 앱 스토어에서 다운로드합니다", "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "커뮤니티가 개발한 공식 앱입니다. 이 앱은 Nextcloud의 핵심 기능이며 프로덕션 환경에서 사용할 수 있습니다.", "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 at your own risk." : "이 앱의 보안 문제가 점검되지 않았고, 출시된 지 얼마 지나지 않았거나 아직 불안정합니다. 본인 책임 하에 설치하십시오.", + "Disabling app …" : "앱 비활성화 중 …", "Error while disabling app" : "앱을 비활성화하는 중 오류 발생", "Disable" : "사용 안함", "Enable" : "사용함", + "Enabling app …" : "앱 활성화 중 …", "Error while enabling app" : "앱을 활성화하는 중 오류 발생", "Error: this app cannot be enabled because it makes the server unstable" : "오류: 이 앱은 서버를 불안정하게 만들 수 있어서 활성화할 수 없습니다", "Error: could not disable broken app" : "오류: 망가진 앱을 비활성화할 수 없음", @@ -57,31 +103,35 @@ "Updating...." : "업데이트 중....", "Error while updating app" : "앱을 업데이트하는 중 오류 발생", "Updated" : "업데이트됨", + "Removing …" : "삭제 중 …", + "Error while removing app" : "앱을 삭제하는 중 오류 발생", + "Remove" : "삭제", "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "앱이 활성화되었지만, 앱을 업데이트해야 합니다. 5초 후 앱 업데이트 페이지로 넘어갑니다.", "App update" : "앱 업데이트", "Approved" : "승인됨", "Experimental" : "실험적", - "No apps found for {query}" : "{query}에 대한 앱을 찾을 수 없습니다", + "No apps found for {query}" : "{query} 앱을 찾을 수 없음", + "Enable all" : "모두 활성화", "Allow filesystem access" : "파일시스템 접근 허용", "Disconnect" : "연결 해제", "Revoke" : "취소", - "Internet Explorer" : "인터넷 익스플로러", - "Edge" : "엣지", - "Firefox" : "파이어 폭스", - "Google Chrome" : "구글 크롬", - "Safari" : "사파리", - "Google Chrome for Android" : "안드로이드 용 구글 크롬", + "Internet Explorer" : "Internet Explorer", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google 크롬", + "Safari" : "Safari", + "Google Chrome for Android" : "Android용 Google 크롬", "iPhone iOS" : "iPhone iOS", "iPad iOS" : "iPad iOS", - "iOS Client" : "아이폰 OS 클라이언트", - "Android Client" : "안드로이드 클라이언트", + "iOS Client" : "iOS 클라이언트", + "Android Client" : "Android 클라이언트", "Sync client - {os}" : "동기화 클라이언트 - {os}", "This session" : "이 세션", "Copy" : "복사", - "Copied!" : "복사됨!", + "Copied!" : "복사 성공!", "Not supported!" : "지원하지 않음!", - "Press ⌘-C to copy." : "⌘-C 복사", - "Press Ctrl-C to copy." : "Ctrl-C 복사", + "Press ⌘-C to copy." : "복사하려면 ⌘-C 키를 누르십시오.", + "Press Ctrl-C to copy." : "복사하려면 Ctrl-C 키를 누르십시오.", "Error while loading browser sessions and device tokens" : "웹 브라우저 세션과 장치 토큰을 불러오는 중 오류가 발생했습니다", "Error while creating device token" : "장치 토큰을 만드는 중 오류가 발생했습니다", "Error while deleting the token" : "토큰을 삭제하는 중 오류가 발생했습니다", @@ -95,6 +145,9 @@ "Contacts" : "연락처", "Visible to local users and to trusted servers" : "로컬 사용자와 신뢰된 서버에게 보이기", "Public" : "공개", + "Will be synced to a global and public address book" : "공개 및 전역 주소록으로 동기화됨", + "Verify" : "확인", + "Verifying …" : "확인 중 …", "Select a profile picture" : "프로필 사진 선택", "Very weak password" : "매우 약한 암호", "Weak password" : "약한 암호", @@ -109,18 +162,23 @@ "undo" : "실행 취소", "never" : "없음", "deleted {userName}" : "{userName} 삭제됨", + "No user found for <strong>{pattern}</strong>" : "<strong>{pattern}</strong> 사용자를 찾을 수 없음", + "Unable to add user to group {group}" : "사용자를 그룹 {group}에 추가할 수 없음", + "Unable to remove user from group {group}" : "사용자를 그룹 {group}에서 삭제할 수 없음", "Add group" : "그룹 추가", "Invalid quota value \"{val}\"" : "잘못된 할당량 값 \"{val}\"", "no group" : "그룹 없음", - "Password successfully changed" : "암호가 성공적으로 변경되었습니다", - "Changing the password will result in data loss, because data recovery is not available for this user" : "이 사용자에 대해 데이터 복구를 사용할 수 없기 때문에, 암호를 변경하면 데이터를 잃게 됩니다.", - "Could not change the users email" : "사용자 이메일을 변경할 수 없습니다", + "Password successfully changed" : "암호를 성공적으로 변경함", + "Changing the password will result in data loss, because data recovery is not available for this user" : "이 사용자의 데이터를 복구할 수 없기 때문에, 암호를 변경하면 데이터가 손실됨", + "Could not change the users email" : "사용자 이메일을 변경할 수 없음", + "Error while changing status of {user}" : "{user}의 상태를 변경할 수 없음", "A valid username must be provided" : "올바른 사용자 이름을 입력해야 함", "Error creating user: {message}" : "사용자 생성 오류: {message}", "A valid password must be provided" : "올바른 암호를 입력해야 함", "A valid email must be provided" : "올바른 이메일 주소를 입력해야 함", "__language_name__" : "한국어", "Unlimited" : "무제한", + "Verifying" : "확인 중", "Personal info" : "개인 정보", "Sessions" : "세션", "App passwords" : "앱 암호", @@ -133,6 +191,7 @@ "STARTTLS" : "STARTTLS", "Email server" : "이메일 서버", "Open documentation" : "문서 열기", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "암호 초기화 및 알림 이메일을 보내려면 이메일 서버를 설정해야 합니다.", "Send mode" : "보내기 모드", "Encryption" : "암호화", "From address" : "보낸 사람 주소", @@ -148,6 +207,7 @@ "Test email settings" : "이메일 설정 시험", "Send email" : "이메일 보내기", "Server-side encryption" : "서버 측 암호화", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "서버 측 암호화를 사용하면 이 서버에 업로드되는 파일을 암호화할 수 있습니다. 성능 감소 등 제약 사항이 있으므로 필요한 경우에만 사용하십시오.", "Enable server-side encryption" : "서버 측 암호화 사용", "Please read carefully before activating server-side encryption: " : "서버 측 암호화를 활성화하기 전에 읽어 보십시오:", "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "암호화를 사용하면, 사용하기 시작한 시간 이후에 서버에 업로드된 모든 파일이 암호화됩니다. 나중에 암호화를 사용하지 않으려면 사용하고 있는 암호화 모듈에서 비활성화를 지원해야 하고 모든 사전 조건(예: 복구 키 설정)을 만족해야 합니다.", @@ -162,35 +222,40 @@ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "ownCloud 8.0 이하에서 사용한 이전 암호화 키를 새 키로 이전해야 합니다.", "Start migration" : "이전 시작", "Security & setup warnings" : "보안 및 설치 경고", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "내 인스턴스가 올바르게 설정되어 있어야 시스템 보안과 성능을 보장할 수 있습니다. 설정 확인을 돕기 위해서 일부 항목을 자동으로 확인합니다. 더 많은 정보를 보려면 문서의 팁과 추가 정보 장을 참조하십시오.", "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php가 시스템 환경 변수를 올바르게 조회할 수 있도록 설정되지 않았습니다. getenv(\"PATH\")의 값이 비어 있습니다.", - "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "서버 PHP 설정(특히 php-fpm 사용시)에 관한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">설치 가이드 ↗</a>를 참고하십시오.", + "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "서버 PHP 설정(특히 php-fpm 사용 시)에 관한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">설치 가이드 ↗</a>를 참고하십시오.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "읽기 전용 설정이 활성화되었습니다. 이 상태에서는 웹 인터페이스를 통하여 일부 설정을 변경할 수 없습니다. 또한 매 업데이트마다 파일을 쓸 수 있는 상태로 변경해야 합니다.", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP에서 인라인 doc 블록을 삭제하도록 설정되어 있습니다. 일부 코어 앱에 접근할 수 없을 수도 있습니다.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Zend OPcache, eAccelerator 같은 캐시/가속기 문제일 수도 있습니다.", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "데이터베이스가 \"READ COMMITTED\" 트랜잭션 격리 수준에서 실행되고 있지 않습니다. 여러 작업이 동시에 실행될 때 문제가 발생할 수 있습니다.", - "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s 버전보다 낮은 %2$s 버전이 설치되어있습니다. 안정성과 성능을 위해 %1$s 버전으로 업데이트하시기를 권장합니다.", - "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "트랜잭션 파일 잠금이 비활성화되어있어 동시 접근시 문제가 발생할 수 있습니다. config.php에서 'filelocking.enabled'를 활성화하여 이 문제를 해결할 수 있습니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">사용 설명서 ↗</a>를 참고하십시오.", - "System locale can not be set to a one which supports UTF-8." : "UTF-8을 지원하는 시스템 로케일을 사용할 수 없습니다.", + "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s의 버전 %2$s 미만이 설치되어 있습니다. 안정성과 성능을 위해 %1$s의 새로운 버전으로 업데이트하는 것을 권장합니다.", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "PHP의 'fileinfo' 모듈이 없습니다. 올바른 MIME 형식 감지를 위해서 이 모듈을 활성화하는 것을 추천합니다.", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "트랜잭션 파일 잠금이 비활성화되어있어 동시 접근 시 문제가 발생할 수 있습니다. config.php에서 'filelocking.enabled'를 활성화하여 이 문제를 해결할 수 있습니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">사용 설명서 ↗</a>를 참고하십시오.", + "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.", + "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\")" : "도메인의 루트 디렉터리 아래에 설치되어 있지 않고 시스템 cron을 사용한다면 URL 생성에 문제가 발생할 수도 있습니다. 이 문제를 해결하려면 설치본의 웹 루트 경로에 있는 config.php 파일의 \"overwrite.cli.url\" 옵션을 변경하십시오(제안: \"%s\")", "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "CLI로 cronjob을 실행할 수 없었습니다. 다음 기술적 오류가 발생했습니다:", - "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "<a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">설치 가이드 ↗</a>를 확인하고 <a href=\"%s\">로그</a>에 오류 또는 경고를 확인하시기 바랍니다.", + "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "<a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">설치 가이드 ↗</a>를 확인하고 <a href=\"%s\">로그</a>의 오류 또는 경고를 확인하십시오.", "All checks passed." : "모든 검사를 통과했습니다.", "Cron" : "Cron", "Last cron job execution: %s." : "마지막 cron 작업 실행: %s.", "Last cron job execution: %s. Something seems wrong." : "마지막 cron 작업 실행: %s. 문제가 발생한 것 같습니다.", "Cron was not executed yet!" : "Cron이 실행되지 않았습니다!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "최적 성능을 위해서 백그라운드 작업을 올바르게 설정하는 것을 추천합니다. 큰 인스턴스에서는 'Cron'을 사용하는 것을 추천합니다. 더 많은 정보를 보려면 문서를 참조하십시오.", "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 파일을 실행합니다.", - "The cron.php needs to be executed by the system user \"%s\"." : "cron.php는 시스템 사용자 \"%s\"가 실행해야합니다.", + "The cron.php needs to be executed by the system user \"%s\"." : "시스템 사용자 \"%s\"(으)로 cron.php를 실행해야 합니다.", "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "실행하려면 PHP POSIX 확장이 필요합니다. 자세한 내용은 {linkstart}PHP 사용 설명서{linkend}를 참고하십시오.", "Version" : "버전", "Sharing" : "공유", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "관리자로 공유 행동을 미세 조정할 수 있습니다. 더 많은 정보를 보려면 문서를 참조하십시오.", "Allow apps to use the Share API" : "앱에서 공유 API를 사용할 수 있도록 허용", "Allow users to share via link" : "사용자별 링크 공유 허용", "Allow public uploads" : "공개 업로드 허용", + "Always ask for a password" : "항상 암호 묻기", "Enforce password protection" : "암호 보호 강제", "Set default expiration date" : "기본 만료 날짜 설정", "Expire after " : "다음 날짜 후 만료", @@ -202,30 +267,35 @@ "Exclude groups from sharing" : "공유에서 그룹 제외", "These groups will still be able to receive shares, but not to initiate them." : "이 그룹의 사용자들은 다른 사용자가 공유한 파일을 받을 수는 있지만, 자기 파일을 공유할 수는 없습니다.", "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "공유 대화 상자에서 사용자 이름 자동 완성을 사용합니다. 이 설정을 사용하지 않으면 전체 사용자 이름을 입력해야 합니다.", - "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "공개 링크 업로드 페이지에 고지 사항 텍스트를 표시합니다. (파일리스트가 숨겨져있는 경우에만 표시)", + "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "공개 링크 업로드 페이지에 고지 사항 텍스트를 표시합니다.(파일 목록이 숨겨져 있는 경우에만 표시합니다.)", "This text will be shown on the public link upload page when the file list is hidden." : "파일 목록이 숨겨져 있으면 이 텍스트는 공개 링크 업로드 페이지에 표시됩니다.", "Tips & tricks" : "팁과 추가 정보", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "이 인스턴스를 최적화하고 사용할 수 있는 여러 기능과 설정을 변경할 수 있습니다. 더 많은 정보를 보려면 여기에서 시작하십시오.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "현재 백엔드 데이터베이스로 SQLite를 사용하고 있습니다. 대규모의 파일을 관리하려고 한다면 다른 데이터베이스 백엔드로 전환할 것을 권장합니다.", "This is particularly recommended when using the desktop client for file synchronisation." : "특히 파일 동기화를 위해 데스크톱 클라이언트를 사용할 예정인 경우 권장됩니다.", - "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "다른 데이터베이스로 마이그레이션하려면 'occ db:convert-type' 명령행 도구를 사용하거나 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">사용 설명서 ↗</a>를 참고하시기 바랍니다.", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "다른 데이터베이스로 마이그레이션하려면 'occ db:convert-type' 명령행 도구를 사용하거나 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">사용 설명서 ↗</a>를 참고하십시오.", "How to do backups" : "백업 방법", "Advanced monitoring" : "고급 모니터링", "Performance tuning" : "성능 튜닝", "Improving the config.php" : "config.php 개선", "Theming" : "테마 꾸미기", + "Check the security of your Nextcloud over our security scan" : "Nextcloud의 보안 상태 검사하기", "Hardening and security guidance" : "보안 강화 지침", "Developer documentation" : "개발자 문서", + "View in store" : "스토어에서 보기", + "Limit to groups" : "그룹으로 제한", "This app has an update available." : "이 앱을 업데이트할 수 있습니다.", - "%s-licensed" : "%s-라이선스", + "by %s" : "%s 개발", + "%s-licensed" : "%s 라이선스", "Documentation:" : "문서:", "User documentation" : "사용자 문서", "Admin documentation" : "관리 문서", "Visit website" : "웹 사이트 방문", "Report a bug" : "버그 신고", - "Show description …" : "설명 보기...", - "Hide description …" : "설명 숨기기...", - "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "이 앱은 Nextcloud 최소 버전을 지정하지 않았습니다. Nextcloud 11 이후에는 오류로 처리됩니다.", - "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "이 앱은 Nextcloud 최대 버전을 지정하지 않았습니다. Nextcloud 11 이후에는 오류로 처리됩니다.", + "Show description …" : "설명 보기 …", + "Hide description …" : "설명 숨기기 …", + "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "이 앱은 Nextcloud 최소 버전을 지정하지 않았습니다. 차후 버전에서는 오류로 처리됩니다.", + "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "이 앱은 Nextcloud 최대 버전을 지정하지 않았습니다. 차후 버전에서는 오류로 처리됩니다.", "This app cannot be installed because the following dependencies are not fulfilled:" : "다음 의존성을 만족할 수 없기 때문에 이 앱을 설치할 수 없습니다:", "Enable only for specific groups" : "특정 그룹에만 허용", "SSL Root Certificates" : "SSL 루트 인증서", @@ -239,7 +309,8 @@ "Forum" : "포럼", "Getting help" : "도움 얻기", "Commercial support" : "상용 지원", - "You are using <strong>%s</strong> of <strong>%s</strong>" : "현재 <strong>%s</strong> / <strong>%s</strong>을(를) 사용중입니다.", + "You are using <strong>%s</strong> of <strong>%s</strong>" : "현재 <strong>%s</strong>/<strong>%s</strong>을(를) 사용하고 있습니다", + "You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "현재 <strong>%s</strong>/<strong>%s</strong>(<strong>%s%%</strong>)를 사용하고 있습니다", "Profile picture" : "프로필 사진", "Upload new" : "새로 업로드", "Select from Files" : "파일에서 선택", @@ -253,12 +324,16 @@ "Email" : "이메일", "Your email address" : "이메일 주소", "No email address set" : "이메일 주소가 설정되지 않음", + "For password reset and notifications" : "암호 초기화 및 알림에 사용", "Phone number" : "휴대폰 번호", "Your phone number" : "내 휴대폰 번호", "Address" : "주소", - "Your postal address" : "내 우편 번호", - "Website" : "웹 사이트", + "Your postal address" : "내 우편 주소", + "Website" : "웹사이트", + "It can take up to 24 hours before the account is displayed as verified." : "계정이 확인된 것으로 표시될 때까지 최대 24시간이 걸릴 수 있습니다", + "Link https://…" : "링크 https://…", "Twitter" : "트위터", + "Twitter handle @…" : "트위터 핸들 @…", "You are member of the following groups:" : "다음 그룹의 구성원입니다:", "Password" : "암호", "Current password" : "현재 암호", @@ -270,11 +345,12 @@ "Desktop client" : "데스크톱 클라이언트", "Android app" : "Android 앱", "iOS app" : "iOS 앱", - "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "이 프로젝트를 지원하려면 {contributeopen}개발에 참여{linkclose}하거나 {contributeopen}주변에 알려주세요{linkclose}!", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "이 프로젝트를 지원하려면 {contributeopen}개발에 참여{linkclose}하거나 {contributeopen}주변에 알려 주세요{linkclose}!", "Show First Run Wizard again" : "첫 실행 마법사 다시 보이기", "Web, desktop and mobile clients currently logged in to your account." : "사용자 계정으로 로그인된 웹, 데스크톱, 모바일 클라이언트 목록입니다.", "Device" : "장치", "Last activity" : "최근 활동", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "앱 암호를 생성하여 내 암호를 공개하지 않아도 됩니다. 이 암호는 개별적으로 폐기할 수도 있습니다.", "Name" : "이름", "App name" : "앱 이름", "Create new app password" : "새로운 앱 암호 만들기", @@ -283,12 +359,18 @@ "Username" : "사용자 이름", "Done" : "완료", "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "{communityopen}Nextcloud 커뮤니티{linkclose}에서 개발, {githubopen}소스 코드{linkclose}는 {licenseopen}<abbr title=\"Affero General Public License\">AGPL</abbr>{linkclose} 라이선스를 따릅니다.", - "Like our facebook page!" : "Facebook 페이지에서 좋아요를 눌러주세요!", - "Subscribe to our newsletter!" : "뉴스 레터를 구독하세요!", + "Follow us on Google+!" : "Google+에서 저희를 팔로하세요!", + "Like our facebook page!" : "Facebook 페이지에서 좋아요를 눌러 주세요!", + "Follow us on Twitter!" : "트위터에서 저희를 팔로하세요!", + "Check out our blog!" : "블로그를 확인해 보세요!", + "Subscribe to our newsletter!" : "뉴스레터를 구독하세요!", + "Settings" : "설정", "Show storage location" : "저장소 위치 보이기", "Show user backend" : "사용자 백엔드 보이기", + "Show last login" : "마지막 로그인 보이기", "Show email address" : "이메일 주소 보이기", "Send email to new user" : "새 사용자에게 이메일 보내기", + "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "새 사용자의 암호가 비어 있으면 암호를 설정하는 링크가 포함된 활성화 이메일을 보냅니다다.", "E-Mail" : "이메일", "Create" : "만들기", "Admin Recovery Password" : "관리자 복구 암호", @@ -296,6 +378,7 @@ "Group name" : "그룹 이름", "Everyone" : "모두", "Admins" : "관리자", + "Disabled" : "비활성화됨", "Default quota" : "기본 할당량", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "저장소 할당량을 입력하십시오 (예: \"512 MB\", \"12 GB\")", "Other" : "기타", @@ -317,11 +400,12 @@ "Unable to add user to group %s" : "그룹 %s에 사용자를 추가할 수 없음", "Unable to remove user from group %s" : "그룹 %s에서 사용자를 삭제할 수 없음", "Sending..." : "보내는 중...", - "Uninstalling ...." : "제거 하는 중 ....", + "Uninstalling ...." : "제거하는 중 ....", "Error while uninstalling app" : "앱을 제거하는 중 오류 발생", "Uninstall" : "제거", - "This is used for sending out notifications." : "알림을 보낼 때 사용됩니다.", - "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP 모듈 'fileinfo'가 존재하지 않습니다. MIME 형식 감지 결과를 향상시키기 위하여 이 모듈을 활성화하는 것을 추천합니다.", + "This is used for sending out notifications." : "알림을 보낼 때 사용합니다.", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP의 'fileinfo' 모듈이 없습니다. 올바른 MIME 형식 감지를 위해서 이 모듈을 활성화하는 것을 추천합니다.", + "Uninstall app" : "앱 삭제", "Hey there,<br><br>just letting you know that you now have a %s account.<br><br>Your username: <strong>%s</strong><br>Access it: <strong><a href=\"%s\">%s</a></strong><br><br>" : "안녕하세요.<br><br>%s 계정을 사용할 수 있음을 알려 드립니다.<br><br>사용자 이름: <strong>%s</strong><br>접근 링크: <strong><a href=\"%s\">%s</a></strong><br><br>", "Cheers!" : "감사합니다!", "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "안녕하세요.\n\n%s 계정을 사용할 수 있음을 알려 드립니다.\n\n사용자 이름: %s\n접근 링크: %s\n\n", diff --git a/settings/l10n/nb.js b/settings/l10n/nb.js index 9952f42b043..43dce267992 100644 --- a/settings/l10n/nb.js +++ b/settings/l10n/nb.js @@ -42,6 +42,10 @@ OC.L10N.register( "To send a password link to the user an email address is required." : "Krever epost for å sende link til bruker.", "Unable to create user." : "Kan ikke opprette bruker.", "Unable to delete user." : "Kan ikke slette bruker.", + "Error while enabling user." : "Feil ved påslag av brukerkonto.", + "Error while disabling user." : "Feil ved avslag av brukerkonto.", + "In order to verify your Twitter account post following tweet on Twitter (please make sure to post it without any line breaks):" : "For å bekrefte din Twitter-konto, post følgende tweet på Twitter (husk å ikke få med noen linjeskift):", + "In order to verify your Website store following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "For å bekrefte din nettside, lagre følgende innhold på roten av din nettjener på '.well-known/CloudIdVerificationCode.txt' (forsikre deg om at hele teksten er på ei linje):", "Settings saved" : "Innstillinger lagret", "Unable to change full name" : "Klarte ikke å endre fullt navn", "Unable to change email address" : "Klarer ikke å endre epostadresse", @@ -144,6 +148,8 @@ OC.L10N.register( "Visible to local users and to trusted servers" : "Synlig for lokale brukere og klarerte tjenere", "Public" : "Offentlig", "Will be synced to a global and public address book" : "Vil blir synkronisert til global og offentlig addressbok", + "Verify" : "Bekreft", + "Verifying …" : "Bekrefter…", "Select a profile picture" : "Velg et profilbilde", "Very weak password" : "Veldig svakt passord", "Weak password" : "Svakt passord", @@ -167,12 +173,14 @@ OC.L10N.register( "Password successfully changed" : "Passordet ble endret.", "Changing the password will result in data loss, because data recovery is not available for this user" : "Forandring av passordet vil føre til tap av data, fordi datagjennoppretting er utilgjengelig for denne brukeren", "Could not change the users email" : "Kunne ikke endre brukerens epostadresse", + "Error while changing status of {user}" : "Feil ved endring av status for {user}", "A valid username must be provided" : "Oppgi et gyldig brukernavn", "Error creating user: {message}" : "Feil ved oppretting av bruker: {message}", "A valid password must be provided" : "Oppgi et gyldig passord", "A valid email must be provided" : "En gyldig e-postadresse må oppgis", "__language_name__" : "Norsk bokmål", "Unlimited" : "Ubegrenset", + "Verifying" : "Bekrefter", "Personal info" : "Personlig informasjon", "Sessions" : "Økt", "App passwords" : "App passord", @@ -324,7 +332,10 @@ OC.L10N.register( "Address" : "Adresse", "Your postal address" : "Din postadresse", "Website" : "Nettside", + "It can take up to 24 hours before the account is displayed as verified." : "Det kan ta opptil et døgn før kontoen vises som bekreftet.", + "Link https://…" : "Lenk http://..", "Twitter" : "Twitter", + "Twitter handle @…" : "Twitter-konto @…", "You are member of the following groups:" : "Du er medlem av følgende grupper:", "Password" : "Passord", "Current password" : "Nåværende passord", @@ -369,6 +380,7 @@ OC.L10N.register( "Group name" : "Gruppenavn", "Everyone" : "Alle", "Admins" : "Administratorer", + "Disabled" : "Avskrudd", "Default quota" : "Standard kvote", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Legg inn lagringskvote (f.eks. \"512 MB\" eller \"12 GB\")", "Other" : "Annet", @@ -401,10 +413,10 @@ OC.L10N.register( "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hei,\n\nvil bare opplyse deg omat du har en %s konto.\n\nDitt brukernavn: %s\nGå dit: %s\n\n", "For password recovery and notifications" : "For passord-gjenoppretting og varsler", "Your website" : "Din nettside", - "Your Twitter handle" : "Din Twitter nøkkel", + "Your Twitter handle" : "Din Twitter-konto", "Passcodes that give an app or device permissions to access your account." : "Passordet som gi en app eller enhet tilgang til din konto.", "Follow us on Google Plus!" : "Følg oss på Google Plus!", - "Subscribe to our twitter channel!" : "Abonner på vår twitter kanal!", + "Subscribe to our twitter channel!" : "Abonner på vår Twitter kanal!", "Subscribe to our news feed!" : "Abonner på vår nyhetsstrøm!", "Show last log in" : "Vis siste innlogging" }, diff --git a/settings/l10n/nb.json b/settings/l10n/nb.json index 4e27eba8ff3..af55342821d 100644 --- a/settings/l10n/nb.json +++ b/settings/l10n/nb.json @@ -40,6 +40,10 @@ "To send a password link to the user an email address is required." : "Krever epost for å sende link til bruker.", "Unable to create user." : "Kan ikke opprette bruker.", "Unable to delete user." : "Kan ikke slette bruker.", + "Error while enabling user." : "Feil ved påslag av brukerkonto.", + "Error while disabling user." : "Feil ved avslag av brukerkonto.", + "In order to verify your Twitter account post following tweet on Twitter (please make sure to post it without any line breaks):" : "For å bekrefte din Twitter-konto, post følgende tweet på Twitter (husk å ikke få med noen linjeskift):", + "In order to verify your Website store following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "For å bekrefte din nettside, lagre følgende innhold på roten av din nettjener på '.well-known/CloudIdVerificationCode.txt' (forsikre deg om at hele teksten er på ei linje):", "Settings saved" : "Innstillinger lagret", "Unable to change full name" : "Klarte ikke å endre fullt navn", "Unable to change email address" : "Klarer ikke å endre epostadresse", @@ -142,6 +146,8 @@ "Visible to local users and to trusted servers" : "Synlig for lokale brukere og klarerte tjenere", "Public" : "Offentlig", "Will be synced to a global and public address book" : "Vil blir synkronisert til global og offentlig addressbok", + "Verify" : "Bekreft", + "Verifying …" : "Bekrefter…", "Select a profile picture" : "Velg et profilbilde", "Very weak password" : "Veldig svakt passord", "Weak password" : "Svakt passord", @@ -165,12 +171,14 @@ "Password successfully changed" : "Passordet ble endret.", "Changing the password will result in data loss, because data recovery is not available for this user" : "Forandring av passordet vil føre til tap av data, fordi datagjennoppretting er utilgjengelig for denne brukeren", "Could not change the users email" : "Kunne ikke endre brukerens epostadresse", + "Error while changing status of {user}" : "Feil ved endring av status for {user}", "A valid username must be provided" : "Oppgi et gyldig brukernavn", "Error creating user: {message}" : "Feil ved oppretting av bruker: {message}", "A valid password must be provided" : "Oppgi et gyldig passord", "A valid email must be provided" : "En gyldig e-postadresse må oppgis", "__language_name__" : "Norsk bokmål", "Unlimited" : "Ubegrenset", + "Verifying" : "Bekrefter", "Personal info" : "Personlig informasjon", "Sessions" : "Økt", "App passwords" : "App passord", @@ -322,7 +330,10 @@ "Address" : "Adresse", "Your postal address" : "Din postadresse", "Website" : "Nettside", + "It can take up to 24 hours before the account is displayed as verified." : "Det kan ta opptil et døgn før kontoen vises som bekreftet.", + "Link https://…" : "Lenk http://..", "Twitter" : "Twitter", + "Twitter handle @…" : "Twitter-konto @…", "You are member of the following groups:" : "Du er medlem av følgende grupper:", "Password" : "Passord", "Current password" : "Nåværende passord", @@ -367,6 +378,7 @@ "Group name" : "Gruppenavn", "Everyone" : "Alle", "Admins" : "Administratorer", + "Disabled" : "Avskrudd", "Default quota" : "Standard kvote", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Legg inn lagringskvote (f.eks. \"512 MB\" eller \"12 GB\")", "Other" : "Annet", @@ -399,10 +411,10 @@ "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hei,\n\nvil bare opplyse deg omat du har en %s konto.\n\nDitt brukernavn: %s\nGå dit: %s\n\n", "For password recovery and notifications" : "For passord-gjenoppretting og varsler", "Your website" : "Din nettside", - "Your Twitter handle" : "Din Twitter nøkkel", + "Your Twitter handle" : "Din Twitter-konto", "Passcodes that give an app or device permissions to access your account." : "Passordet som gi en app eller enhet tilgang til din konto.", "Follow us on Google Plus!" : "Følg oss på Google Plus!", - "Subscribe to our twitter channel!" : "Abonner på vår twitter kanal!", + "Subscribe to our twitter channel!" : "Abonner på vår Twitter kanal!", "Subscribe to our news feed!" : "Abonner på vår nyhetsstrøm!", "Show last log in" : "Vis siste innlogging" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js index e122f632b8f..297bedefbce 100644 --- a/settings/l10n/nl.js +++ b/settings/l10n/nl.js @@ -44,6 +44,8 @@ OC.L10N.register( "Unable to delete user." : "Kan de gebruiker niet verwijderen.", "Error while enabling user." : "Fout bij inschakelen gebruiker.", "Error while disabling user." : "Fout bij uitschakelen gebruiker.", + "In order to verify your Twitter account post following tweet on Twitter (please make sure to post it without any line breaks):" : "Om je Twitter-account te verifiëren moet je de volgende tweet op Twitter plaatsen (let erop dat het plaatst zonder regelafbreking):", + "In order to verify your Website store following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Om je website te verifiëren moet je de volgende inhoud binnen de web-root van je server in '.well-known/CloudIdVerificationCode.txt' plaatsen (let erop dat de complete tekst op één regel staat):", "Settings saved" : "Instellingen opgeslagen", "Unable to change full name" : "Kan de volledige naam niet wijzigen", "Unable to change email address" : "Kan e-mailadres niet wijzigen", @@ -171,6 +173,7 @@ OC.L10N.register( "Password successfully changed" : "Wachtwoord succesvol gewijzigd.", "Changing the password will result in data loss, because data recovery is not available for this user" : "Wijzigen van het wachtwoord leidt tot gegevensverlies, omdat gegevensherstel voor deze gebruiker niet beschikbaar is", "Could not change the users email" : "Kon het gebruikers e-mailadres niet wijzigen", + "Error while changing status of {user}" : "Fout bij wijzigen status van {user}", "A valid username must be provided" : "Er moet een geldige gebruikersnaam worden opgegeven", "Error creating user: {message}" : "Fout bij aanmaken gebruiker: {message}", "A valid password must be provided" : "Er moet een geldig wachtwoord worden opgegeven", @@ -206,6 +209,7 @@ OC.L10N.register( "Test email settings" : "Test e-mailinstellingen", "Send email" : "Versturen e-mail", "Server-side encryption" : "Server-side versleuteling", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Server-side versleuteling maakt het mogelijk om bestanden te versleutelen die worden geüploaded. Dit betekent wel enig prestatieverlies, dus schakel het alleen in als het nodig is.", "Enable server-side encryption" : "Server-side versleuteling inschakelen", "Please read carefully before activating server-side encryption: " : "Lees dit goed, voordat u de serverside versleuteling activeert:", "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Als versleuteling is ingeschakeld, worden alle geüploade bestanden vanaf dat moment versleuteld opgeslagen op de server. Het is alleen mogelijk om de versleuteling later uit te schakelen als de actieve versleutelingsmodule dit ondersteunt en aan alle pré-condities (mn de ingestelde herstelsleutel) wordt voldaan.", @@ -220,6 +224,7 @@ OC.L10N.register( "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Je moet je cryptosleutels van de oude versleuteling (ownCloud <= 8.0) migreren naar de nieuwe.", "Start migration" : "Start migratie", "Security & setup warnings" : "Beveiligings- en instellingswaarschuwingen", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Voor beveiliging en prestaties van je server is het belangrijk dat alles goed is geconfigureerd. Om je hierbij te helpen doen we paar automatische controles. Bekijk de Tips & Trucs sectie en de ocumentatie voor meer informatie.", "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php lijkt niet goed te zijn ingesteld om systeemomgevingsvariabelen te bevragen. De test met getenv(\"PATH\") gaf een leeg resultaat.", "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Lees de <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installatiedocumentatie ↗</a> voor php configuratienotities en de php configuratie van je server, zeker bij gebruik van php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "De Alleen-lezen config is ingeschakeld. Dit voorkomt het via de webinterface wijzigen van verschillende instellingen. Bovendien moet het bestand voor elke aanpassing handmatig op beschrijfbaar worden ingesteld.", @@ -240,6 +245,7 @@ OC.L10N.register( "Last cron job execution: %s." : "Laatst uitgevoerde cronjob: %s.", "Last cron job execution: %s. Something seems wrong." : "Laatst uitgevoerde cronjob: %s. Er lijkt iets fout gegaan.", "Cron was not executed yet!" : "Cron is nog niet uitgevoerd!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "Voor optimale prestaties is het belangrijk om de achtergrondtaken goed te configureren. Voor grotere installaties is \"Cron' de aanbevolen instelling. Bekijk de documentatie voor meer informatie.", "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.", @@ -247,6 +253,7 @@ OC.L10N.register( "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Om dit te draaien, is de PHP posix extensie vereist. Bekijk {linkstart}PHP documentatie{linkend} voor meer informatie.", "Version" : "Versie", "Sharing" : "Delen", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Als beheerder kun je het deel-gedrag optimaliseren. Bekijk de documentatie voor meer informatie.", "Allow apps to use the Share API" : "Apps toestaan de Share API te gebruiken", "Allow users to share via link" : "Sta gebruikers toe om te delen via een link", "Allow public uploads" : "Sta publieke uploads toe", @@ -265,6 +272,7 @@ OC.L10N.register( "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Tonen disclaimer op de openbare link uploadpagina (alleen tonen als het bestandsoverzicht verborgen is).", "This text will be shown on the public link upload page when the file list is hidden." : "Deze tekst wordt getoond op de openbare link uploadpagina als het bestandsoverzicht is verborgen.", "Tips & tricks" : "Tips & trucs", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Er zijn veel mogelijkheden en instellingsschakelaars beschikbaar om je installatie te optimaliseren. Hier zijn wat aanwijzigen.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite wordt momenteel gebruikt als backend database. Voor grotere installaties adviseren we dat je omschakelt naar een andere database backend.", "This is particularly recommended when using the desktop client for file synchronisation." : "Dit wordt vooral aanbevolen als de desktop client wordt gebruikt voor bestandssynchronisatie.", "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "Om te migreren naar een andere database moet u de commandoregel tool gebruiken: 'occ db:convert-type', lees de <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentatie ↗</a>.", @@ -324,7 +332,10 @@ OC.L10N.register( "Address" : "Adres", "Your postal address" : "Je postadres", "Website" : "Website", + "It can take up to 24 hours before the account is displayed as verified." : "Het kan tot 24 uur duren voordat het account als geverifieerd wordt weergegeven.", + "Link https://…" : "Link https://…", "Twitter" : "Twitter", + "Twitter handle @…" : "Twitter naam @…", "You are member of the following groups:" : "U bent lid van de volgende groepen:", "Password" : "Wachtwoord", "Current password" : "Huidig wachtwoord", @@ -341,6 +352,7 @@ OC.L10N.register( "Web, desktop and mobile clients currently logged in to your account." : "Web, desktop en mobiele clients zijn nu ingelogd op je account.", "Device" : "Apparaat", "Last activity" : "Laatste activiteit", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Hier kun je individuele wachtwoorden voor apps genereren, zodat je geen wachtwoorden hoeft uit te geven. Je kunt ze ook weer individueel intrekken.", "Name" : "Naam", "App name" : "Appnaam", "Create new app password" : "Creëer een nieuw app wachtwoord", @@ -368,6 +380,7 @@ OC.L10N.register( "Group name" : "Groepsnaam", "Everyone" : "Iedereen", "Admins" : "Beheerders", + "Disabled" : "Uitgeschakeld", "Default quota" : "Standaard quota", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Geef de opslagquotering op (bijv. \"512 MB\" of \"12 GB\")", "Other" : "Anders", diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json index 0aa02237ecb..fb8a77b2d1c 100644 --- a/settings/l10n/nl.json +++ b/settings/l10n/nl.json @@ -42,6 +42,8 @@ "Unable to delete user." : "Kan de gebruiker niet verwijderen.", "Error while enabling user." : "Fout bij inschakelen gebruiker.", "Error while disabling user." : "Fout bij uitschakelen gebruiker.", + "In order to verify your Twitter account post following tweet on Twitter (please make sure to post it without any line breaks):" : "Om je Twitter-account te verifiëren moet je de volgende tweet op Twitter plaatsen (let erop dat het plaatst zonder regelafbreking):", + "In order to verify your Website store following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Om je website te verifiëren moet je de volgende inhoud binnen de web-root van je server in '.well-known/CloudIdVerificationCode.txt' plaatsen (let erop dat de complete tekst op één regel staat):", "Settings saved" : "Instellingen opgeslagen", "Unable to change full name" : "Kan de volledige naam niet wijzigen", "Unable to change email address" : "Kan e-mailadres niet wijzigen", @@ -169,6 +171,7 @@ "Password successfully changed" : "Wachtwoord succesvol gewijzigd.", "Changing the password will result in data loss, because data recovery is not available for this user" : "Wijzigen van het wachtwoord leidt tot gegevensverlies, omdat gegevensherstel voor deze gebruiker niet beschikbaar is", "Could not change the users email" : "Kon het gebruikers e-mailadres niet wijzigen", + "Error while changing status of {user}" : "Fout bij wijzigen status van {user}", "A valid username must be provided" : "Er moet een geldige gebruikersnaam worden opgegeven", "Error creating user: {message}" : "Fout bij aanmaken gebruiker: {message}", "A valid password must be provided" : "Er moet een geldig wachtwoord worden opgegeven", @@ -204,6 +207,7 @@ "Test email settings" : "Test e-mailinstellingen", "Send email" : "Versturen e-mail", "Server-side encryption" : "Server-side versleuteling", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Server-side versleuteling maakt het mogelijk om bestanden te versleutelen die worden geüploaded. Dit betekent wel enig prestatieverlies, dus schakel het alleen in als het nodig is.", "Enable server-side encryption" : "Server-side versleuteling inschakelen", "Please read carefully before activating server-side encryption: " : "Lees dit goed, voordat u de serverside versleuteling activeert:", "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Als versleuteling is ingeschakeld, worden alle geüploade bestanden vanaf dat moment versleuteld opgeslagen op de server. Het is alleen mogelijk om de versleuteling later uit te schakelen als de actieve versleutelingsmodule dit ondersteunt en aan alle pré-condities (mn de ingestelde herstelsleutel) wordt voldaan.", @@ -218,6 +222,7 @@ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Je moet je cryptosleutels van de oude versleuteling (ownCloud <= 8.0) migreren naar de nieuwe.", "Start migration" : "Start migratie", "Security & setup warnings" : "Beveiligings- en instellingswaarschuwingen", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Voor beveiliging en prestaties van je server is het belangrijk dat alles goed is geconfigureerd. Om je hierbij te helpen doen we paar automatische controles. Bekijk de Tips & Trucs sectie en de ocumentatie voor meer informatie.", "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php lijkt niet goed te zijn ingesteld om systeemomgevingsvariabelen te bevragen. De test met getenv(\"PATH\") gaf een leeg resultaat.", "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Lees de <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installatiedocumentatie ↗</a> voor php configuratienotities en de php configuratie van je server, zeker bij gebruik van php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "De Alleen-lezen config is ingeschakeld. Dit voorkomt het via de webinterface wijzigen van verschillende instellingen. Bovendien moet het bestand voor elke aanpassing handmatig op beschrijfbaar worden ingesteld.", @@ -238,6 +243,7 @@ "Last cron job execution: %s." : "Laatst uitgevoerde cronjob: %s.", "Last cron job execution: %s. Something seems wrong." : "Laatst uitgevoerde cronjob: %s. Er lijkt iets fout gegaan.", "Cron was not executed yet!" : "Cron is nog niet uitgevoerd!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "Voor optimale prestaties is het belangrijk om de achtergrondtaken goed te configureren. Voor grotere installaties is \"Cron' de aanbevolen instelling. Bekijk de documentatie voor meer informatie.", "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.", @@ -245,6 +251,7 @@ "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Om dit te draaien, is de PHP posix extensie vereist. Bekijk {linkstart}PHP documentatie{linkend} voor meer informatie.", "Version" : "Versie", "Sharing" : "Delen", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Als beheerder kun je het deel-gedrag optimaliseren. Bekijk de documentatie voor meer informatie.", "Allow apps to use the Share API" : "Apps toestaan de Share API te gebruiken", "Allow users to share via link" : "Sta gebruikers toe om te delen via een link", "Allow public uploads" : "Sta publieke uploads toe", @@ -263,6 +270,7 @@ "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Tonen disclaimer op de openbare link uploadpagina (alleen tonen als het bestandsoverzicht verborgen is).", "This text will be shown on the public link upload page when the file list is hidden." : "Deze tekst wordt getoond op de openbare link uploadpagina als het bestandsoverzicht is verborgen.", "Tips & tricks" : "Tips & trucs", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Er zijn veel mogelijkheden en instellingsschakelaars beschikbaar om je installatie te optimaliseren. Hier zijn wat aanwijzigen.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite wordt momenteel gebruikt als backend database. Voor grotere installaties adviseren we dat je omschakelt naar een andere database backend.", "This is particularly recommended when using the desktop client for file synchronisation." : "Dit wordt vooral aanbevolen als de desktop client wordt gebruikt voor bestandssynchronisatie.", "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "Om te migreren naar een andere database moet u de commandoregel tool gebruiken: 'occ db:convert-type', lees de <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentatie ↗</a>.", @@ -322,7 +330,10 @@ "Address" : "Adres", "Your postal address" : "Je postadres", "Website" : "Website", + "It can take up to 24 hours before the account is displayed as verified." : "Het kan tot 24 uur duren voordat het account als geverifieerd wordt weergegeven.", + "Link https://…" : "Link https://…", "Twitter" : "Twitter", + "Twitter handle @…" : "Twitter naam @…", "You are member of the following groups:" : "U bent lid van de volgende groepen:", "Password" : "Wachtwoord", "Current password" : "Huidig wachtwoord", @@ -339,6 +350,7 @@ "Web, desktop and mobile clients currently logged in to your account." : "Web, desktop en mobiele clients zijn nu ingelogd op je account.", "Device" : "Apparaat", "Last activity" : "Laatste activiteit", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Hier kun je individuele wachtwoorden voor apps genereren, zodat je geen wachtwoorden hoeft uit te geven. Je kunt ze ook weer individueel intrekken.", "Name" : "Naam", "App name" : "Appnaam", "Create new app password" : "Creëer een nieuw app wachtwoord", @@ -366,6 +378,7 @@ "Group name" : "Groepsnaam", "Everyone" : "Iedereen", "Admins" : "Beheerders", + "Disabled" : "Uitgeschakeld", "Default quota" : "Standaard quota", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Geef de opslagquotering op (bijv. \"512 MB\" of \"12 GB\")", "Other" : "Anders", diff --git a/settings/l10n/pl.js b/settings/l10n/pl.js index ca08c669536..ab82999c6d6 100644 --- a/settings/l10n/pl.js +++ b/settings/l10n/pl.js @@ -8,6 +8,9 @@ OC.L10N.register( "You changed your email address" : "Zmieniłeś/-aś swój adres e-mail", "Your email address was changed by an administrator" : "Twój adres e-mail został zmieniony przez administratora", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Twoje <strong>hasło</strong> lub <strong>e-mail</strong> zostal zmieniony", + "Your apps" : "Twoje aplikacje", + "Enabled apps" : "Włączone aplikacje", + "Disabled apps" : "Wyłączone aplikacje", "Wrong password" : "Złe hasło", "Saved" : "Zapisano", "No user supplied" : "Niedostarczony użytkownik", @@ -28,6 +31,7 @@ OC.L10N.register( "Well done, %s!" : "Dobra robota, %s!", "If you received this email, the email configuration seems to be correct." : "Jeśli otrzymałeś/-aś tego e-maila to wydaje się, że konfiguracja e-maili jest prawidłowa.", "Email setting test" : "Testuj ustawienia e-maili", + "Email could not be sent. Check your mail server log" : "E-mail nie mógł zostać wysłany. Sprawdź logi swojego serwera poczty", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Wystąpił błąd podczas wysyłania wiadomości e-mail. Proszę zmienić swoje ustawienia. (Error: %s)", "You need to set your user email before being able to send test emails." : "Musisz najpierw ustawić użytkownika e-mail, aby móc wysyłać wiadomości testowe.", "Invalid request" : "Nieprawidłowe żądanie", @@ -37,6 +41,8 @@ OC.L10N.register( "To send a password link to the user an email address is required." : "Aby wysłać link z hasłem innemu użytkownikowi wymagany jest adres e-mail.", "Unable to create user." : "Nie można utworzyć użytkownika.", "Unable to delete user." : "Nie można usunąć użytkownika.", + "Error while enabling user." : "Błąd podczas włączania użytkownika", + "Error while disabling user." : "Błąd podczas wyłączania użytkownika", "Settings saved" : "Ustawienia zachowane", "Unable to change full name" : "Nie można zmienić pełnej nazwy", "Unable to change email address" : "Nie można zmienić adresu e-mail", @@ -96,11 +102,15 @@ OC.L10N.register( "Updating...." : "Aktualizacja w toku...", "Error while updating app" : "Błąd podczas aktualizacji aplikacji", "Updated" : "Zaktualizowano", + "Removing …" : "Usuwanie ...", + "Error while removing app" : "Błąd podczas usuwania aplikacji", + "Remove" : "Usuń", "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikacja została włączona i musi być aktualizowana. Zostaniesz przekierowany na stronę aktualizacji za 5 sekund.", "App update" : "Aktualizacja aplikacji", "Approved" : "Zatwierdzony", "Experimental" : "Eksperymentalny", "No apps found for {query}" : "Nie znaleziono aplikacji dla {query}", + "Enable all" : "Włącz wszystko", "Allow filesystem access" : "Zezwalaj na dostęp do systemu plików", "Disconnect" : "Odłącz", "Revoke" : "Cofnij", @@ -135,6 +145,8 @@ OC.L10N.register( "Visible to local users and to trusted servers" : "Widoczne dla lokalnych użytkowników i zaufanych serwerów", "Public" : "Publiczny", "Will be synced to a global and public address book" : "Będą zsynchronizowane z globalną i publiczną książką adresową", + "Verify" : "Sprawdź", + "Verifying …" : "Sprawdzanie ...", "Select a profile picture" : "Wybierz zdjęcie profilu", "Very weak password" : "Bardzo słabe hasło", "Weak password" : "Słabe hasło", @@ -158,12 +170,14 @@ OC.L10N.register( "Password successfully changed" : "Zmiana hasła udana.", "Changing the password will result in data loss, because data recovery is not available for this user" : "Zmiana hasła spowoduje utratę danych, ponieważ odzyskiwanie danych nie jest włączone dla tego użytkownika", "Could not change the users email" : "Nie można zmienić adresu e-mail użytkowników", + "Error while changing status of {user}" : "Błąd podczas zmiany statusu użytkownika {user}", "A valid username must be provided" : "Należy podać prawidłową nazwę użytkownika", "Error creating user: {message}" : "Błąd podczas tworzenia użytkownika: {message}", "A valid password must be provided" : "Należy podać prawidłowe hasło", "A valid email must be provided" : "Podaj poprawny adres email", "__language_name__" : "polski", "Unlimited" : "Bez limitu", + "Verifying" : "Sprawdzanie", "Personal info" : "Informacje osobiste", "Sessions" : "Sesje", "App passwords" : "Hasła aplikacji", @@ -176,6 +190,7 @@ OC.L10N.register( "STARTTLS" : "STARTTLS", "Email server" : "Serwer pocztowy", "Open documentation" : "Otwórz dokumentację", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Należy skonfigurować ten serwer, aby umożliwić wysyłanie wiadomości e-mail zawierających powiadomienia oraz informacje do resetowania haseł.", "Send mode" : "Tryb wysyłki", "Encryption" : "Szyfrowanie", "From address" : "Z adresu", @@ -191,6 +206,7 @@ OC.L10N.register( "Test email settings" : "Ustawienia testowej wiadomości", "Send email" : "Wyślij email", "Server-side encryption" : "Szyfrowanie po stronie serwera", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Szyfrowanie po stronie serwera umożliwia szyfrowanie wysyłanych na niego plików. Ta opcja wprowadza ograniczenia takie, jak ograniczenie wydajności. Włącz tylko wtedy, gdy potrzebne.", "Enable server-side encryption" : "Włącz szyfrowanie po stronie serwera", "Please read carefully before activating server-side encryption: " : "Proszę przeczytać uważnie przed aktywowaniem szyfrowania po stronie serwera:", "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Jak tylko szyfrowanie zostanie włączone, wszystkie pliki wysłane na serwer będą od tej chwili szyfrowane na serwerze. Wyłączenie szyfrowania będzie możliwe jedynie później jeśli aktyny moduł szyfrowania wspiera taką funkcjonalność i wszystkie przedinstalacyjne warunki zostały spełnione (np. klucz odzyskiwania).", @@ -205,6 +221,7 @@ OC.L10N.register( "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Musisz zmigrować swoje klucze szyfrujące ze starego szyfrowania (ownCloud <= 8.0) do nowego.", "Start migration" : "Rozpocznij migrację", "Security & setup warnings" : "Ostrzeżenia bezpieczeństwa i konfiguracji", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Poprawna konfiguracja jest ważna dla bezpieczeństwa i wydajności Twojej instancji. W celach pomocniczych przeprowadzane są automatyczne kontrole. Więcej informacji można znaleźć w dziale Wskazówki i Porady oraz w dokumentacji.", "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Wydaje się, że PHP nie jest prawidłowo ustawione, aby odpytać system o zmienne środowiskowe. Test getenv(\"PATH\") zwraca tylko puste odpowiedzi.", "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Prosze sprawdzić w <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dokumentacji instalacji ↗</a> wpisy dotyczące konfiguracji PHP i konfiguracji PHP, kiedy używane jest php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Została włączona konfiguracja Read-Only. Zapobiegnie to ustawieniu niektórych konfiguracji poprzez interfejs web. Ponadto plikowi muszą zostać nadane prawa zapisu ręcznie dla każdej aktualizacji.", @@ -225,6 +242,7 @@ OC.L10N.register( "Last cron job execution: %s." : "Ostatnie wykonanie zadania przez cron: %s.", "Last cron job execution: %s. Something seems wrong." : "Ostatnie wykonanie zadania przez cron: %s. Wydaje się, że coś jest błędne.", "Cron was not executed yet!" : "Cron nie został jeszcze uruchomiony!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "Dla optymalnej wydajności należy poprawnie skonfigurować zadania w tle. Dla większych instancji zalecane jest użycie usługi 'Cron'. Więcej informacji można znaleźć w dokumentacji.", "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 usłudze 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.", @@ -232,6 +250,7 @@ OC.L10N.register( "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Aby to uruchomić potrzebujesz rozszerzenia posix do PHP. Po więcej informacji sprawdź {linkstart}dokumentację PHP{linkend}.", "Version" : "Wersja", "Sharing" : "Udostępnianie", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Jako administrator możesz zoptymalizować ustawienia współdzelenia. Szczegółowe informacje znajdziesz w dokumentacji.", "Allow apps to use the Share API" : "Zezwalaj aplikacjom na korzystanie z API udostępniania", "Allow users to share via link" : "Pozwól użytkownikom współdzielić przez link", "Allow public uploads" : "Pozwól na publiczne wczytywanie", @@ -250,6 +269,7 @@ OC.L10N.register( "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Pokaż tekst wyłączeń odpowiedzialności (disclaimer) na stronie wysyłania z publicznego linku. (Będzie dostępny tylko kiedy lista plików będzie ukryta).", "This text will be shown on the public link upload page when the file list is hidden." : "Ten tekst będzie widoczny na stronie wysyłania z publicznego linka kiedy lista plików będzie ukryta.", "Tips & tricks" : "Porady i wskazówki", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Dostępnych jest wiele funkcji i ustawień pozwalających na optymalne skonfigurowanie i używanie tej instancji. Tutaj uzyskasz więcej informacji.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite jest aktualnie używany jako baza danych. Dla większych instalacji zalecamy przełączenie na inną bazę danych.", "This is particularly recommended when using the desktop client for file synchronisation." : "Jest to szczególnie zalecane w przypadku korzystania z desktopowego klienta do synchronizacji plików.", "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "Aby zmigrować do innej bazy danych użyj narzędzia z terminala: \"occ db:convert-type\" albo sprawdź <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dokumentację ↗</a>.", @@ -261,6 +281,8 @@ OC.L10N.register( "Check the security of your Nextcloud over our security scan" : "Sprawdź bezpieczeństwo swojego Nextclouda przez nasz skan zabezpieczeń", "Hardening and security guidance" : "Kierowanie i wzmacnianie bezpieczeństwa", "Developer documentation" : "Dokumentacja dewelopera", + "View in store" : "Zobacz w sklepie", + "Limit to groups" : "Ogranicz do group", "This app has an update available." : "Ta aplikacja ma dostępną aktualizację.", "by %s" : "autorstwa %s", "%s-licensed" : "%s-licencjonowany", @@ -307,7 +329,10 @@ OC.L10N.register( "Address" : "Adres", "Your postal address" : "Twój kod pocztowy", "Website" : "Strona WWW", + "It can take up to 24 hours before the account is displayed as verified." : "24 godziny mogą minąć zanim konto będzie widoczne jako zweryfikowane.", + "Link https://…" : "Odnośnik https://...", "Twitter" : "Twitter", + "Twitter handle @…" : "Twitter @…", "You are member of the following groups:" : "Jesteś członkiem następujących grup:", "Password" : "Hasło", "Current password" : "Bieżące hasło", @@ -324,6 +349,7 @@ OC.L10N.register( "Web, desktop and mobile clients currently logged in to your account." : "Aktualnie zalogowany na swoim koncie z Web, komputerów i mobilnych urządzeń.", "Device" : "Urządzenie", "Last activity" : "Ostatnia aktywność", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Tutaj możesz wygenerować lub unieważnić hasła dla poszczególnych aplikacji tak, aby nie było potrzeby podawania Twojego hasła. ", "Name" : "Nazwa", "App name" : "Nazwa aplikacji", "Create new app password" : "Utwórz nowe hasło do aplikacji", @@ -332,7 +358,10 @@ OC.L10N.register( "Username" : "Nazwa użytkownika", "Done" : "Ukończono", "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Wytworzone przez {communityopen}społeczność Nextclouda{linkclose}. {githubopen}Kod źródłowy{linkclose} jest udostępniony pod licencją {licenseopen}AGPL{linkclose}.", + "Follow us on Google+!" : "Śledź nas na Google+!", "Like our facebook page!" : "Polub naszą stronę na Facebook!", + "Follow us on Twitter!" : "Śledź nas na Twitterze!", + "Check out our blog!" : "Sprawdź nasz blog!", "Subscribe to our newsletter!" : "Zapisz się do naszego newslettera!", "Settings" : "Ustawienia", "Show storage location" : "Pokaż miejsce przechowywania", @@ -348,6 +377,7 @@ OC.L10N.register( "Group name" : "Nazwa grupy", "Everyone" : "Wszyscy", "Admins" : "Administratorzy", + "Disabled" : "Wyłączone", "Default quota" : "Domyślny udział", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Proszę ustawić ograniczenie zasobów (np. \"512 MB\" albo \"12 GB\")", "Other" : "Inne", diff --git a/settings/l10n/pl.json b/settings/l10n/pl.json index 05cdb80ee7e..1aa3cc9fbe8 100644 --- a/settings/l10n/pl.json +++ b/settings/l10n/pl.json @@ -6,6 +6,9 @@ "You changed your email address" : "Zmieniłeś/-aś swój adres e-mail", "Your email address was changed by an administrator" : "Twój adres e-mail został zmieniony przez administratora", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Twoje <strong>hasło</strong> lub <strong>e-mail</strong> zostal zmieniony", + "Your apps" : "Twoje aplikacje", + "Enabled apps" : "Włączone aplikacje", + "Disabled apps" : "Wyłączone aplikacje", "Wrong password" : "Złe hasło", "Saved" : "Zapisano", "No user supplied" : "Niedostarczony użytkownik", @@ -26,6 +29,7 @@ "Well done, %s!" : "Dobra robota, %s!", "If you received this email, the email configuration seems to be correct." : "Jeśli otrzymałeś/-aś tego e-maila to wydaje się, że konfiguracja e-maili jest prawidłowa.", "Email setting test" : "Testuj ustawienia e-maili", + "Email could not be sent. Check your mail server log" : "E-mail nie mógł zostać wysłany. Sprawdź logi swojego serwera poczty", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Wystąpił błąd podczas wysyłania wiadomości e-mail. Proszę zmienić swoje ustawienia. (Error: %s)", "You need to set your user email before being able to send test emails." : "Musisz najpierw ustawić użytkownika e-mail, aby móc wysyłać wiadomości testowe.", "Invalid request" : "Nieprawidłowe żądanie", @@ -35,6 +39,8 @@ "To send a password link to the user an email address is required." : "Aby wysłać link z hasłem innemu użytkownikowi wymagany jest adres e-mail.", "Unable to create user." : "Nie można utworzyć użytkownika.", "Unable to delete user." : "Nie można usunąć użytkownika.", + "Error while enabling user." : "Błąd podczas włączania użytkownika", + "Error while disabling user." : "Błąd podczas wyłączania użytkownika", "Settings saved" : "Ustawienia zachowane", "Unable to change full name" : "Nie można zmienić pełnej nazwy", "Unable to change email address" : "Nie można zmienić adresu e-mail", @@ -94,11 +100,15 @@ "Updating...." : "Aktualizacja w toku...", "Error while updating app" : "Błąd podczas aktualizacji aplikacji", "Updated" : "Zaktualizowano", + "Removing …" : "Usuwanie ...", + "Error while removing app" : "Błąd podczas usuwania aplikacji", + "Remove" : "Usuń", "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikacja została włączona i musi być aktualizowana. Zostaniesz przekierowany na stronę aktualizacji za 5 sekund.", "App update" : "Aktualizacja aplikacji", "Approved" : "Zatwierdzony", "Experimental" : "Eksperymentalny", "No apps found for {query}" : "Nie znaleziono aplikacji dla {query}", + "Enable all" : "Włącz wszystko", "Allow filesystem access" : "Zezwalaj na dostęp do systemu plików", "Disconnect" : "Odłącz", "Revoke" : "Cofnij", @@ -133,6 +143,8 @@ "Visible to local users and to trusted servers" : "Widoczne dla lokalnych użytkowników i zaufanych serwerów", "Public" : "Publiczny", "Will be synced to a global and public address book" : "Będą zsynchronizowane z globalną i publiczną książką adresową", + "Verify" : "Sprawdź", + "Verifying …" : "Sprawdzanie ...", "Select a profile picture" : "Wybierz zdjęcie profilu", "Very weak password" : "Bardzo słabe hasło", "Weak password" : "Słabe hasło", @@ -156,12 +168,14 @@ "Password successfully changed" : "Zmiana hasła udana.", "Changing the password will result in data loss, because data recovery is not available for this user" : "Zmiana hasła spowoduje utratę danych, ponieważ odzyskiwanie danych nie jest włączone dla tego użytkownika", "Could not change the users email" : "Nie można zmienić adresu e-mail użytkowników", + "Error while changing status of {user}" : "Błąd podczas zmiany statusu użytkownika {user}", "A valid username must be provided" : "Należy podać prawidłową nazwę użytkownika", "Error creating user: {message}" : "Błąd podczas tworzenia użytkownika: {message}", "A valid password must be provided" : "Należy podać prawidłowe hasło", "A valid email must be provided" : "Podaj poprawny adres email", "__language_name__" : "polski", "Unlimited" : "Bez limitu", + "Verifying" : "Sprawdzanie", "Personal info" : "Informacje osobiste", "Sessions" : "Sesje", "App passwords" : "Hasła aplikacji", @@ -174,6 +188,7 @@ "STARTTLS" : "STARTTLS", "Email server" : "Serwer pocztowy", "Open documentation" : "Otwórz dokumentację", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Należy skonfigurować ten serwer, aby umożliwić wysyłanie wiadomości e-mail zawierających powiadomienia oraz informacje do resetowania haseł.", "Send mode" : "Tryb wysyłki", "Encryption" : "Szyfrowanie", "From address" : "Z adresu", @@ -189,6 +204,7 @@ "Test email settings" : "Ustawienia testowej wiadomości", "Send email" : "Wyślij email", "Server-side encryption" : "Szyfrowanie po stronie serwera", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Szyfrowanie po stronie serwera umożliwia szyfrowanie wysyłanych na niego plików. Ta opcja wprowadza ograniczenia takie, jak ograniczenie wydajności. Włącz tylko wtedy, gdy potrzebne.", "Enable server-side encryption" : "Włącz szyfrowanie po stronie serwera", "Please read carefully before activating server-side encryption: " : "Proszę przeczytać uważnie przed aktywowaniem szyfrowania po stronie serwera:", "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Jak tylko szyfrowanie zostanie włączone, wszystkie pliki wysłane na serwer będą od tej chwili szyfrowane na serwerze. Wyłączenie szyfrowania będzie możliwe jedynie później jeśli aktyny moduł szyfrowania wspiera taką funkcjonalność i wszystkie przedinstalacyjne warunki zostały spełnione (np. klucz odzyskiwania).", @@ -203,6 +219,7 @@ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Musisz zmigrować swoje klucze szyfrujące ze starego szyfrowania (ownCloud <= 8.0) do nowego.", "Start migration" : "Rozpocznij migrację", "Security & setup warnings" : "Ostrzeżenia bezpieczeństwa i konfiguracji", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Poprawna konfiguracja jest ważna dla bezpieczeństwa i wydajności Twojej instancji. W celach pomocniczych przeprowadzane są automatyczne kontrole. Więcej informacji można znaleźć w dziale Wskazówki i Porady oraz w dokumentacji.", "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Wydaje się, że PHP nie jest prawidłowo ustawione, aby odpytać system o zmienne środowiskowe. Test getenv(\"PATH\") zwraca tylko puste odpowiedzi.", "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Prosze sprawdzić w <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dokumentacji instalacji ↗</a> wpisy dotyczące konfiguracji PHP i konfiguracji PHP, kiedy używane jest php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Została włączona konfiguracja Read-Only. Zapobiegnie to ustawieniu niektórych konfiguracji poprzez interfejs web. Ponadto plikowi muszą zostać nadane prawa zapisu ręcznie dla każdej aktualizacji.", @@ -223,6 +240,7 @@ "Last cron job execution: %s." : "Ostatnie wykonanie zadania przez cron: %s.", "Last cron job execution: %s. Something seems wrong." : "Ostatnie wykonanie zadania przez cron: %s. Wydaje się, że coś jest błędne.", "Cron was not executed yet!" : "Cron nie został jeszcze uruchomiony!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "Dla optymalnej wydajności należy poprawnie skonfigurować zadania w tle. Dla większych instancji zalecane jest użycie usługi 'Cron'. Więcej informacji można znaleźć w dokumentacji.", "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 usłudze 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.", @@ -230,6 +248,7 @@ "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Aby to uruchomić potrzebujesz rozszerzenia posix do PHP. Po więcej informacji sprawdź {linkstart}dokumentację PHP{linkend}.", "Version" : "Wersja", "Sharing" : "Udostępnianie", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Jako administrator możesz zoptymalizować ustawienia współdzelenia. Szczegółowe informacje znajdziesz w dokumentacji.", "Allow apps to use the Share API" : "Zezwalaj aplikacjom na korzystanie z API udostępniania", "Allow users to share via link" : "Pozwól użytkownikom współdzielić przez link", "Allow public uploads" : "Pozwól na publiczne wczytywanie", @@ -248,6 +267,7 @@ "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Pokaż tekst wyłączeń odpowiedzialności (disclaimer) na stronie wysyłania z publicznego linku. (Będzie dostępny tylko kiedy lista plików będzie ukryta).", "This text will be shown on the public link upload page when the file list is hidden." : "Ten tekst będzie widoczny na stronie wysyłania z publicznego linka kiedy lista plików będzie ukryta.", "Tips & tricks" : "Porady i wskazówki", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Dostępnych jest wiele funkcji i ustawień pozwalających na optymalne skonfigurowanie i używanie tej instancji. Tutaj uzyskasz więcej informacji.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite jest aktualnie używany jako baza danych. Dla większych instalacji zalecamy przełączenie na inną bazę danych.", "This is particularly recommended when using the desktop client for file synchronisation." : "Jest to szczególnie zalecane w przypadku korzystania z desktopowego klienta do synchronizacji plików.", "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "Aby zmigrować do innej bazy danych użyj narzędzia z terminala: \"occ db:convert-type\" albo sprawdź <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dokumentację ↗</a>.", @@ -259,6 +279,8 @@ "Check the security of your Nextcloud over our security scan" : "Sprawdź bezpieczeństwo swojego Nextclouda przez nasz skan zabezpieczeń", "Hardening and security guidance" : "Kierowanie i wzmacnianie bezpieczeństwa", "Developer documentation" : "Dokumentacja dewelopera", + "View in store" : "Zobacz w sklepie", + "Limit to groups" : "Ogranicz do group", "This app has an update available." : "Ta aplikacja ma dostępną aktualizację.", "by %s" : "autorstwa %s", "%s-licensed" : "%s-licencjonowany", @@ -305,7 +327,10 @@ "Address" : "Adres", "Your postal address" : "Twój kod pocztowy", "Website" : "Strona WWW", + "It can take up to 24 hours before the account is displayed as verified." : "24 godziny mogą minąć zanim konto będzie widoczne jako zweryfikowane.", + "Link https://…" : "Odnośnik https://...", "Twitter" : "Twitter", + "Twitter handle @…" : "Twitter @…", "You are member of the following groups:" : "Jesteś członkiem następujących grup:", "Password" : "Hasło", "Current password" : "Bieżące hasło", @@ -322,6 +347,7 @@ "Web, desktop and mobile clients currently logged in to your account." : "Aktualnie zalogowany na swoim koncie z Web, komputerów i mobilnych urządzeń.", "Device" : "Urządzenie", "Last activity" : "Ostatnia aktywność", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Tutaj możesz wygenerować lub unieważnić hasła dla poszczególnych aplikacji tak, aby nie było potrzeby podawania Twojego hasła. ", "Name" : "Nazwa", "App name" : "Nazwa aplikacji", "Create new app password" : "Utwórz nowe hasło do aplikacji", @@ -330,7 +356,10 @@ "Username" : "Nazwa użytkownika", "Done" : "Ukończono", "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Wytworzone przez {communityopen}społeczność Nextclouda{linkclose}. {githubopen}Kod źródłowy{linkclose} jest udostępniony pod licencją {licenseopen}AGPL{linkclose}.", + "Follow us on Google+!" : "Śledź nas na Google+!", "Like our facebook page!" : "Polub naszą stronę na Facebook!", + "Follow us on Twitter!" : "Śledź nas na Twitterze!", + "Check out our blog!" : "Sprawdź nasz blog!", "Subscribe to our newsletter!" : "Zapisz się do naszego newslettera!", "Settings" : "Ustawienia", "Show storage location" : "Pokaż miejsce przechowywania", @@ -346,6 +375,7 @@ "Group name" : "Nazwa grupy", "Everyone" : "Wszyscy", "Admins" : "Administratorzy", + "Disabled" : "Wyłączone", "Default quota" : "Domyślny udział", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Proszę ustawić ograniczenie zasobów (np. \"512 MB\" albo \"12 GB\")", "Other" : "Inne", diff --git a/settings/l10n/pt_BR.js b/settings/l10n/pt_BR.js index c8ee932b071..898adf19178 100644 --- a/settings/l10n/pt_BR.js +++ b/settings/l10n/pt_BR.js @@ -4,10 +4,10 @@ OC.L10N.register( "{actor} changed your password" : "{actor} alterou sua senha", "You changed your password" : "Você alterou sua senha", "Your password was reset by an administrator" : "Sua senha foi redefinida pelo administrador", - "{actor} changed your email address" : "{actor} alterou seu email", - "You changed your email address" : "Você alterou seu email", - "Your email address was changed by an administrator" : "Seu email foi alterado pelo administrador", - "Your <strong>password</strong> or <strong>email</strong> was modified" : "Sua <strong>senha</strong> ou <strong>email</strong> foram alterados", + "{actor} changed your email address" : "{actor} alterou seu e-mail", + "You changed your email address" : "Você alterou seu e-mail", + "Your email address was changed by an administrator" : "Seu e-mail foi alterado pelo administrador", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "Sua <strong>senha</strong> ou <strong>e-mail</strong> foram alterados", "Your apps" : "Seus aplicativos", "Enabled apps" : "Aplicativos habilitados", "Disabled apps" : "Aplicativos desabilitados", @@ -15,57 +15,57 @@ OC.L10N.register( "Wrong password" : "Senha incorreta", "Saved" : "Salvo", "No user supplied" : "Nenhum usuário fornecido", - "Unable to change password" : "Não é possível alterar a senha", + "Unable to change password" : "Não foi possível alterar a senha", "Authentication error" : "Erro de autenticação", "Please provide an admin recovery password; otherwise, all user data will be lost." : "Por favor, forneça uma senha de recuperação do administrador, caso contrário todos os dados serão perdidos.", "Wrong admin recovery password. Please check the password and try again." : "Senha de recuperação do administrador incorreta. Por favor, verifique a senha e tente novamente.", - "Backend doesn't support password change, but the user's encryption key was updated." : "O backend não suporte alteração de senha mas a chave de criptografia do usuário foi alterada.", + "Backend doesn't support password change, but the user's encryption key was updated." : "A plataforma de serviço não suporta alteração de senha mas a chave de criptografia do usuário foi alterada.", "installing and updating apps via the app store or Federated Cloud Sharing" : "instalando e atualizando aplicativos via loja de aplicativos ou Nuvem Compartilhada Federada", "Federated Cloud Sharing" : "Compartilhamento de Nuvem Federada", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL está usando uma versão %s desatualizada (%s). Por favor, atualize seu sistema operacional ou recursos como %s não funcionarão de forma confiável.", "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 concluída", "Group already exists." : "O grupo já existe.", - "Unable to add group." : "Não é possível adicionar o grupo.", - "Unable to delete group." : "Não é possível excluir o grupo.", + "Unable to add group." : "Não foi possível adicionar o grupo.", + "Unable to delete group." : "Não foi possível excluir o grupo.", "Invalid SMTP password." : "Senha SMTP incorreta.", "Well done, %s!" : "Bom trabalho, %s!", - "If you received this email, the email configuration seems to be correct." : "Se você recebeu este email, é sinal que a configuração do email está correta.", - "Email setting test" : "Teste da configuração de email", - "Email could not be sent. Check your mail server log" : "O email não pôde ser enviado. Verifique o log do servidor de email", - "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ocorreu um problema ao enviar o email. Por favor, revise suas configurações. (Erro: %s)", - "You need to set your user email before being able to send test emails." : "Você precisa configurar seu email de usuário antes de ser capaz de enviar emails de teste.", + "If you received this email, the email configuration seems to be correct." : "Se você recebeu este e-mail, é sinal que a configuração do e-mail está correta.", + "Email setting test" : "Teste da configuração de e-mail", + "Email could not be sent. Check your mail server log" : "O e-mail não pôde ser enviado. Verifique o log do servidor de e-mail", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ocorreu um problema ao enviar o e-mail. Por favor, revise suas configurações. (Erro: %s)", + "You need to set your user email before being able to send test emails." : "Você precisa configurar seu e-mail de usuário antes de ser capaz de enviar e-mails de teste.", "Invalid request" : "Solicitação inválida", - "Invalid mail address" : "Endereço de email inválido", + "Invalid mail address" : "Endereço de e-mail inválido", "No valid group selected" : "Nenhum grupo válido foi selecionado", "A user with that name already exists." : "Um usuário com esse nome já existe.", - "To send a password link to the user an email address is required." : "Para envio da senha ao usuário é necessário um endereço de email.", - "Unable to create user." : "Não é possível criar usuário.", - "Unable to delete user." : "Não é possível excluir o usuário.", + "To send a password link to the user an email address is required." : "Para envio da senha ao usuário é necessário um endereço de e-mail.", + "Unable to create user." : "Não foi possível criar usuário.", + "Unable to delete user." : "Não foi possível excluir o usuário.", "Error while enabling user." : "Erro ao habilitar usuário.", "Error while disabling user." : "Erro ao desabilitar usuário.", "In order to verify your Twitter account post following tweet on Twitter (please make sure to post it without any line breaks):" : "A fim de verificar sua conta no Twitter, poste isso no Twitter (por favor, certifique-se de postar sem quebras de linha):", "In order to verify your Website store following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "A fim de verificar seu site, coloque o seguinte conteúdo no raiz do site: '.well-known/CloudIdVerificationCode.txt' (por favor certifique-se que o texto completo esteja em uma linha):", "Settings saved" : "Configurações salvas", - "Unable to change full name" : "Não é possível alterar o nome completo", - "Unable to change email address" : "Não foi possível alterar o endereço de email", + "Unable to change full name" : "Não foi possível alterar o nome completo", + "Unable to change email address" : "Não foi possível alterar o endereço de e-mail", "Your full name has been changed." : "Seu nome completo foi alterado.", "Forbidden" : "Proibido", "Invalid user" : "Usuário inválido", - "Unable to change mail address" : "Não é possível alterar o endereço de email", - "Email saved" : "Email salvo", + "Unable to change mail address" : "Não foi possível alterar o endereço de e-mail", + "Email saved" : "E-mail salvo", "%1$s changed your password on %2$s." : "%1$s mudou sua senha em %2$s.", "Your password on %s was changed." : "Sua senha em %s foi alterada.", "Your password on %s was reset by an administrator." : "Sua senha em %s foi redefinida por um administrador.", "Password changed for %s" : "Senha alterada para %s", "If you did not request this, please contact an administrator." : "Se você não solicitou isso, por favor contacte o administrador.", "Password for %1$s changed on %2$s" : "Senha para %1$s alterada em %2$s", - "%1$s changed your email address on %2$s." : "%1$s alterou seu email em %2$s.", - "Your email address on %s was changed." : "Seu email em %s foi alterado.", - "Your email address on %s was changed by an administrator." : "Seu email em %s foi alterado pelo administrador.", - "Email address changed for %s" : "Email alterado para %s", - "The new email address is %s" : "O novo email é %s", - "Email address for %1$s changed on %2$s" : "Email para %1$s foi alterado em %2$s", + "%1$s changed your email address on %2$s." : "%1$s alterou seu e-mail em %2$s.", + "Your email address on %s was changed." : "Seu e-mail em %s foi alterado.", + "Your email address on %s was changed by an administrator." : "Seu e-mail em %s foi alterado pelo administrador.", + "Email address changed for %s" : "E-mail alterado para %s", + "The new email address is %s" : "O novo e-mail é %s", + "Email address for %1$s changed on %2$s" : "E-mail para %1$s foi alterado em %2$s", "Welcome aboard" : "Bem-vindo a bordo", "Welcome aboard %s" : "%s, bem-vindo a bordo", "You have now an %s account, you can add, protect, and share your data." : "Agora que você tem uma conta %s, pode adicionar, proteger e compartilhar seus dados.", @@ -83,7 +83,7 @@ OC.L10N.register( "Migration started …" : "Migração iniciada...", "Not saved" : "Não salvo", "Sending…" : "Enviando...", - "Email sent" : "Email enviado", + "Email sent" : "E-mail enviado", "Official" : "Oficial", "All" : "Todos", "Update to %s" : "Atualizado para %s", @@ -157,7 +157,7 @@ OC.L10N.register( "Good password" : "Boa senha", "Strong password" : "Senha forte", "Groups" : "Grupos", - "Unable to delete {objName}" : "Não é possível excluir {objName}", + "Unable to delete {objName}" : "Não foi possível excluir {objName}", "Error creating group: {message}" : "Erro criando o grupo: {message}", "A valid group name must be provided" : "Um nome de grupo válido deve ser fornecido", "deleted {groupName}" : "{groupName} excluído", @@ -165,19 +165,19 @@ OC.L10N.register( "never" : "nunca", "deleted {userName}" : "{userName} excluído", "No user found for <strong>{pattern}</strong>" : "Nenhum usuário encontrado para <strong>{pattern}</strong>", - "Unable to add user to group {group}" : "Não é possível adicionar usuário ao grupo {group}", - "Unable to remove user from group {group}" : "Não é possível excluir usuário do grupo {group}", + "Unable to add user to group {group}" : "Não foi possível adicionar usuário ao grupo {group}", + "Unable to remove user from group {group}" : "Não foi possível excluir usuário do grupo {group}", "Add group" : "Adicionar grupo", "Invalid quota value \"{val}\"" : "Valor inválido para a cota \"{val}\"", "no group" : "nenhum grupo", "Password successfully changed" : "Senha alterada com sucesso", "Changing the password will result in data loss, because data recovery is not available for this user" : "Alterar a senha irá resultar em perda de dados pois a recuperação de dados não está disponível para este usuário", - "Could not change the users email" : "Não foi possível alterar o email dos usuários", + "Could not change the users email" : "Não foi possível alterar o e-mail dos usuários", "Error while changing status of {user}" : "Erro ao mudar o status de {user}", "A valid username must be provided" : "Forneça um nome de usuário válido", "Error creating user: {message}" : "Erro criando o usuário: {message}", "A valid password must be provided" : "Forneça uma senha válida", - "A valid email must be provided" : "Um email válido deve ser fornecido", + "A valid email must be provided" : "Um e-mail válido deve ser fornecido", "__language_name__" : "Português Brasileiro", "Unlimited" : "Ilimitado", "Verifying" : "Verificando", @@ -191,13 +191,13 @@ OC.L10N.register( "NT LAN Manager" : "Gerenciador NT LAN", "SSL/TLS" : "SSL/TLS", "STARTTLS" : "STARTTLS", - "Email server" : "Servidor de email", + "Email server" : "Servidor de e-mail", "Open documentation" : "Abrir documentação", - "It is important to set up this server to be able to send emails, like for password reset and notifications." : "É importante configurar este servidor para poder enviar emails, assim como para redefinir a senha e notificações.", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "É importante configurar este servidor para poder enviar e-mails, assim como para redefinir a senha e notificações.", "Send mode" : "Modo de envio", "Encryption" : "Criptografia", "From address" : "Endereço \"From\"", - "mail" : "email", + "mail" : "e-mail", "Authentication method" : "Método de autenticação", "Authentication required" : "Autenticação é requerida", "Server address" : "Endereço do servidor", @@ -206,8 +206,8 @@ OC.L10N.register( "SMTP Username" : "Nome do Usuário SMTP", "SMTP Password" : "Senha SMTP", "Store credentials" : "Armazenar credenciais", - "Test email settings" : "Configurações do email de teste", - "Send email" : "Enviar email", + "Test email settings" : "Configurações do e-mail de teste", + "Send email" : "Enviar e-mail", "Server-side encryption" : "Criptografia do lado do servidor", "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "A criptografia do lado do servidor torna possível criptografar arquivos que são carregados para este servidor. Isso vem com limitações como uma diminuição de desempenho, portanto, habilite isso apenas se necessário.", "Enable server-side encryption" : "Habilitar a criptografia do lado do servidor", @@ -273,7 +273,7 @@ OC.L10N.register( "This text will be shown on the public link upload page when the file list is hidden." : "Este texto será mostrado na página de envio do link público quando a lista de arquivos está oculta.", "Tips & tricks" : "Dicas & Truques", "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Há muitos recursos e opções de configuração disponíveis para otimizar e usar essa instância. Aqui estão algumas indicações para obter mais informações.", - "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite é usando atualmente como backend de banco de dados. Para instalações maiores recomendamos que voce use um outro banco de dados", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite é usando atualmente como Plataforma de serviço de banco de dados. Para instalações maiores recomendamos que você use uma outra plataforma de serviço de banco de dados", "This is particularly recommended when using the desktop client for file synchronisation." : "Isso é particulamente recomendado quando se utiliza um cliente para sincronização.", "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "Para migrar para outro banco de dados use a ferramenta de linha de comando: 'occ db:convert-type', ou consulte a <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentação ↗</a>.", "How to do backups" : "Como fazer backups", @@ -323,9 +323,9 @@ OC.L10N.register( "Choose as profile picture" : "Escolha como imagem de perfil", "Full name" : "Nome completo", "No display name set" : "Nenhum nome de exibição definido", - "Email" : "Email", - "Your email address" : "Seu endereço de email", - "No email address set" : "Nenhum endereço de email foi configurado", + "Email" : "E-mail", + "Your email address" : "Seu endereço de e-mail", + "No email address set" : "Nenhum endereço de e-mail foi configurado", "For password reset and notifications" : "Para redefinição de senha e notificações", "Phone number" : "Número de telefone", "Your phone number" : "Seu número de telefone", @@ -347,9 +347,9 @@ OC.L10N.register( "Desktop client" : "Cliente desktop", "Android app" : "Aplicativo Android", "iOS app" : "Aplicativo iOS", - "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Se voce quiser ajudar o projeto, {contributeopen}junte-se ao desenvolvimento{linkclose} ou {contributeopen}divulgue nossos conceitos{linkclose}!", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Se você quiser ajudar o projeto, {contributeopen}junte-se ao desenvolvimento{linkclose} ou {contributeopen}divulgue nossos conceitos{linkclose}!", "Show First Run Wizard again" : "Mostrar Assistente de Primeira Execução novamente", - "Web, desktop and mobile clients currently logged in to your account." : "Clientes Web, desktop e móvel que estão conectados à sua conta.", + "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, desktop e móvel que estão conectados à sua conta.", "Device" : "Dispositivo", "Last activity" : "Última atividade", "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Aqui você pode gerar senhas individuais para aplicativos. Assim você não tem que dar sua senha. Você pode revogá-los individualmente também.", @@ -368,12 +368,12 @@ OC.L10N.register( "Subscribe to our newsletter!" : "Inscreva-se para receber nosso boletim informativo!", "Settings" : "Configurações", "Show storage location" : "Mostrar localização do armazenamento", - "Show user backend" : "Mostrar backend do usuário", + "Show user backend" : "Mostrar plataforma de serviço de usuário", "Show last login" : "Mostrar último login", - "Show email address" : "Mostrar o endereço de email", - "Send email to new user" : "Enviar um email para o novo usuário", - "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Quando a senha de um novo usuário é deixada em branco, um email de ativação com um link para definir a senha é enviado.", - "E-Mail" : "Email", + "Show email address" : "Mostrar o endereço de e-mail", + "Send email to new user" : "Enviar um e-mail para o novo usuário", + "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Quando a senha de um novo usuário é deixada em branco, um e-mail de ativação com um link para definir a senha é enviado.", + "E-Mail" : "E-mail", "Create" : "Criar", "Admin Recovery Password" : "Recuperação da Senha do Administrador", "Enter the recovery password in order to recover the users files during password change" : "Digite a senha de recuperação para recuperar os arquivos dos usuários durante a mudança de senha.", @@ -387,17 +387,17 @@ OC.L10N.register( "Group admin for" : "Grupo administrativo para", "Quota" : "Cota", "Storage location" : "Local do armazenamento", - "User backend" : "Backend do usuário", + "User backend" : "Plataforma de serviço de usuário", "Last login" : "Último acesso", "change full name" : "alterar nome completo", "set new password" : "definir uma senha nova", - "change email address" : "Alterar o endereço de email", + "change email address" : "Alterar o endereço de e-mail", "Default" : "Padrão", "Enabled" : "Habilitado", "Not enabled" : "Desabilitado", "Please provide an admin recovery password, otherwise all user data will be lost" : "Por favor, forneça uma senha de recuperação de administrador, caso contrário todos os dados do usuário serão perdidos", - "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Backend não suporta alteração de senha, mas a chave de criptografia do usuário foi atualizada.", - "test email settings" : "testar configurações de email", + "Backend doesn't support password change, but the user's encryption key was successfully updated." : "A plataforma de serviço não suporta alteração de senha, mas a chave de criptografia do usuário foi atualizada.", + "test email settings" : "testar configurações de e-mail", "Admins can't remove themself from the admin group" : "Administradores não podem remover a si do grupo de administração", "Unable to add user to group %s" : "Não foi possível adicionar o usuário ao grupo %s", "Unable to remove user from group %s" : "Não foi possível excluir o usuário do grupo %s", diff --git a/settings/l10n/pt_BR.json b/settings/l10n/pt_BR.json index 56f90ece24c..69c654cb48e 100644 --- a/settings/l10n/pt_BR.json +++ b/settings/l10n/pt_BR.json @@ -2,10 +2,10 @@ "{actor} changed your password" : "{actor} alterou sua senha", "You changed your password" : "Você alterou sua senha", "Your password was reset by an administrator" : "Sua senha foi redefinida pelo administrador", - "{actor} changed your email address" : "{actor} alterou seu email", - "You changed your email address" : "Você alterou seu email", - "Your email address was changed by an administrator" : "Seu email foi alterado pelo administrador", - "Your <strong>password</strong> or <strong>email</strong> was modified" : "Sua <strong>senha</strong> ou <strong>email</strong> foram alterados", + "{actor} changed your email address" : "{actor} alterou seu e-mail", + "You changed your email address" : "Você alterou seu e-mail", + "Your email address was changed by an administrator" : "Seu e-mail foi alterado pelo administrador", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "Sua <strong>senha</strong> ou <strong>e-mail</strong> foram alterados", "Your apps" : "Seus aplicativos", "Enabled apps" : "Aplicativos habilitados", "Disabled apps" : "Aplicativos desabilitados", @@ -13,57 +13,57 @@ "Wrong password" : "Senha incorreta", "Saved" : "Salvo", "No user supplied" : "Nenhum usuário fornecido", - "Unable to change password" : "Não é possível alterar a senha", + "Unable to change password" : "Não foi possível alterar a senha", "Authentication error" : "Erro de autenticação", "Please provide an admin recovery password; otherwise, all user data will be lost." : "Por favor, forneça uma senha de recuperação do administrador, caso contrário todos os dados serão perdidos.", "Wrong admin recovery password. Please check the password and try again." : "Senha de recuperação do administrador incorreta. Por favor, verifique a senha e tente novamente.", - "Backend doesn't support password change, but the user's encryption key was updated." : "O backend não suporte alteração de senha mas a chave de criptografia do usuário foi alterada.", + "Backend doesn't support password change, but the user's encryption key was updated." : "A plataforma de serviço não suporta alteração de senha mas a chave de criptografia do usuário foi alterada.", "installing and updating apps via the app store or Federated Cloud Sharing" : "instalando e atualizando aplicativos via loja de aplicativos ou Nuvem Compartilhada Federada", "Federated Cloud Sharing" : "Compartilhamento de Nuvem Federada", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL está usando uma versão %s desatualizada (%s). Por favor, atualize seu sistema operacional ou recursos como %s não funcionarão de forma confiável.", "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 concluída", "Group already exists." : "O grupo já existe.", - "Unable to add group." : "Não é possível adicionar o grupo.", - "Unable to delete group." : "Não é possível excluir o grupo.", + "Unable to add group." : "Não foi possível adicionar o grupo.", + "Unable to delete group." : "Não foi possível excluir o grupo.", "Invalid SMTP password." : "Senha SMTP incorreta.", "Well done, %s!" : "Bom trabalho, %s!", - "If you received this email, the email configuration seems to be correct." : "Se você recebeu este email, é sinal que a configuração do email está correta.", - "Email setting test" : "Teste da configuração de email", - "Email could not be sent. Check your mail server log" : "O email não pôde ser enviado. Verifique o log do servidor de email", - "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ocorreu um problema ao enviar o email. Por favor, revise suas configurações. (Erro: %s)", - "You need to set your user email before being able to send test emails." : "Você precisa configurar seu email de usuário antes de ser capaz de enviar emails de teste.", + "If you received this email, the email configuration seems to be correct." : "Se você recebeu este e-mail, é sinal que a configuração do e-mail está correta.", + "Email setting test" : "Teste da configuração de e-mail", + "Email could not be sent. Check your mail server log" : "O e-mail não pôde ser enviado. Verifique o log do servidor de e-mail", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ocorreu um problema ao enviar o e-mail. Por favor, revise suas configurações. (Erro: %s)", + "You need to set your user email before being able to send test emails." : "Você precisa configurar seu e-mail de usuário antes de ser capaz de enviar e-mails de teste.", "Invalid request" : "Solicitação inválida", - "Invalid mail address" : "Endereço de email inválido", + "Invalid mail address" : "Endereço de e-mail inválido", "No valid group selected" : "Nenhum grupo válido foi selecionado", "A user with that name already exists." : "Um usuário com esse nome já existe.", - "To send a password link to the user an email address is required." : "Para envio da senha ao usuário é necessário um endereço de email.", - "Unable to create user." : "Não é possível criar usuário.", - "Unable to delete user." : "Não é possível excluir o usuário.", + "To send a password link to the user an email address is required." : "Para envio da senha ao usuário é necessário um endereço de e-mail.", + "Unable to create user." : "Não foi possível criar usuário.", + "Unable to delete user." : "Não foi possível excluir o usuário.", "Error while enabling user." : "Erro ao habilitar usuário.", "Error while disabling user." : "Erro ao desabilitar usuário.", "In order to verify your Twitter account post following tweet on Twitter (please make sure to post it without any line breaks):" : "A fim de verificar sua conta no Twitter, poste isso no Twitter (por favor, certifique-se de postar sem quebras de linha):", "In order to verify your Website store following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "A fim de verificar seu site, coloque o seguinte conteúdo no raiz do site: '.well-known/CloudIdVerificationCode.txt' (por favor certifique-se que o texto completo esteja em uma linha):", "Settings saved" : "Configurações salvas", - "Unable to change full name" : "Não é possível alterar o nome completo", - "Unable to change email address" : "Não foi possível alterar o endereço de email", + "Unable to change full name" : "Não foi possível alterar o nome completo", + "Unable to change email address" : "Não foi possível alterar o endereço de e-mail", "Your full name has been changed." : "Seu nome completo foi alterado.", "Forbidden" : "Proibido", "Invalid user" : "Usuário inválido", - "Unable to change mail address" : "Não é possível alterar o endereço de email", - "Email saved" : "Email salvo", + "Unable to change mail address" : "Não foi possível alterar o endereço de e-mail", + "Email saved" : "E-mail salvo", "%1$s changed your password on %2$s." : "%1$s mudou sua senha em %2$s.", "Your password on %s was changed." : "Sua senha em %s foi alterada.", "Your password on %s was reset by an administrator." : "Sua senha em %s foi redefinida por um administrador.", "Password changed for %s" : "Senha alterada para %s", "If you did not request this, please contact an administrator." : "Se você não solicitou isso, por favor contacte o administrador.", "Password for %1$s changed on %2$s" : "Senha para %1$s alterada em %2$s", - "%1$s changed your email address on %2$s." : "%1$s alterou seu email em %2$s.", - "Your email address on %s was changed." : "Seu email em %s foi alterado.", - "Your email address on %s was changed by an administrator." : "Seu email em %s foi alterado pelo administrador.", - "Email address changed for %s" : "Email alterado para %s", - "The new email address is %s" : "O novo email é %s", - "Email address for %1$s changed on %2$s" : "Email para %1$s foi alterado em %2$s", + "%1$s changed your email address on %2$s." : "%1$s alterou seu e-mail em %2$s.", + "Your email address on %s was changed." : "Seu e-mail em %s foi alterado.", + "Your email address on %s was changed by an administrator." : "Seu e-mail em %s foi alterado pelo administrador.", + "Email address changed for %s" : "E-mail alterado para %s", + "The new email address is %s" : "O novo e-mail é %s", + "Email address for %1$s changed on %2$s" : "E-mail para %1$s foi alterado em %2$s", "Welcome aboard" : "Bem-vindo a bordo", "Welcome aboard %s" : "%s, bem-vindo a bordo", "You have now an %s account, you can add, protect, and share your data." : "Agora que você tem uma conta %s, pode adicionar, proteger e compartilhar seus dados.", @@ -81,7 +81,7 @@ "Migration started …" : "Migração iniciada...", "Not saved" : "Não salvo", "Sending…" : "Enviando...", - "Email sent" : "Email enviado", + "Email sent" : "E-mail enviado", "Official" : "Oficial", "All" : "Todos", "Update to %s" : "Atualizado para %s", @@ -155,7 +155,7 @@ "Good password" : "Boa senha", "Strong password" : "Senha forte", "Groups" : "Grupos", - "Unable to delete {objName}" : "Não é possível excluir {objName}", + "Unable to delete {objName}" : "Não foi possível excluir {objName}", "Error creating group: {message}" : "Erro criando o grupo: {message}", "A valid group name must be provided" : "Um nome de grupo válido deve ser fornecido", "deleted {groupName}" : "{groupName} excluído", @@ -163,19 +163,19 @@ "never" : "nunca", "deleted {userName}" : "{userName} excluído", "No user found for <strong>{pattern}</strong>" : "Nenhum usuário encontrado para <strong>{pattern}</strong>", - "Unable to add user to group {group}" : "Não é possível adicionar usuário ao grupo {group}", - "Unable to remove user from group {group}" : "Não é possível excluir usuário do grupo {group}", + "Unable to add user to group {group}" : "Não foi possível adicionar usuário ao grupo {group}", + "Unable to remove user from group {group}" : "Não foi possível excluir usuário do grupo {group}", "Add group" : "Adicionar grupo", "Invalid quota value \"{val}\"" : "Valor inválido para a cota \"{val}\"", "no group" : "nenhum grupo", "Password successfully changed" : "Senha alterada com sucesso", "Changing the password will result in data loss, because data recovery is not available for this user" : "Alterar a senha irá resultar em perda de dados pois a recuperação de dados não está disponível para este usuário", - "Could not change the users email" : "Não foi possível alterar o email dos usuários", + "Could not change the users email" : "Não foi possível alterar o e-mail dos usuários", "Error while changing status of {user}" : "Erro ao mudar o status de {user}", "A valid username must be provided" : "Forneça um nome de usuário válido", "Error creating user: {message}" : "Erro criando o usuário: {message}", "A valid password must be provided" : "Forneça uma senha válida", - "A valid email must be provided" : "Um email válido deve ser fornecido", + "A valid email must be provided" : "Um e-mail válido deve ser fornecido", "__language_name__" : "Português Brasileiro", "Unlimited" : "Ilimitado", "Verifying" : "Verificando", @@ -189,13 +189,13 @@ "NT LAN Manager" : "Gerenciador NT LAN", "SSL/TLS" : "SSL/TLS", "STARTTLS" : "STARTTLS", - "Email server" : "Servidor de email", + "Email server" : "Servidor de e-mail", "Open documentation" : "Abrir documentação", - "It is important to set up this server to be able to send emails, like for password reset and notifications." : "É importante configurar este servidor para poder enviar emails, assim como para redefinir a senha e notificações.", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "É importante configurar este servidor para poder enviar e-mails, assim como para redefinir a senha e notificações.", "Send mode" : "Modo de envio", "Encryption" : "Criptografia", "From address" : "Endereço \"From\"", - "mail" : "email", + "mail" : "e-mail", "Authentication method" : "Método de autenticação", "Authentication required" : "Autenticação é requerida", "Server address" : "Endereço do servidor", @@ -204,8 +204,8 @@ "SMTP Username" : "Nome do Usuário SMTP", "SMTP Password" : "Senha SMTP", "Store credentials" : "Armazenar credenciais", - "Test email settings" : "Configurações do email de teste", - "Send email" : "Enviar email", + "Test email settings" : "Configurações do e-mail de teste", + "Send email" : "Enviar e-mail", "Server-side encryption" : "Criptografia do lado do servidor", "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "A criptografia do lado do servidor torna possível criptografar arquivos que são carregados para este servidor. Isso vem com limitações como uma diminuição de desempenho, portanto, habilite isso apenas se necessário.", "Enable server-side encryption" : "Habilitar a criptografia do lado do servidor", @@ -271,7 +271,7 @@ "This text will be shown on the public link upload page when the file list is hidden." : "Este texto será mostrado na página de envio do link público quando a lista de arquivos está oculta.", "Tips & tricks" : "Dicas & Truques", "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Há muitos recursos e opções de configuração disponíveis para otimizar e usar essa instância. Aqui estão algumas indicações para obter mais informações.", - "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite é usando atualmente como backend de banco de dados. Para instalações maiores recomendamos que voce use um outro banco de dados", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite é usando atualmente como Plataforma de serviço de banco de dados. Para instalações maiores recomendamos que você use uma outra plataforma de serviço de banco de dados", "This is particularly recommended when using the desktop client for file synchronisation." : "Isso é particulamente recomendado quando se utiliza um cliente para sincronização.", "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "Para migrar para outro banco de dados use a ferramenta de linha de comando: 'occ db:convert-type', ou consulte a <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentação ↗</a>.", "How to do backups" : "Como fazer backups", @@ -321,9 +321,9 @@ "Choose as profile picture" : "Escolha como imagem de perfil", "Full name" : "Nome completo", "No display name set" : "Nenhum nome de exibição definido", - "Email" : "Email", - "Your email address" : "Seu endereço de email", - "No email address set" : "Nenhum endereço de email foi configurado", + "Email" : "E-mail", + "Your email address" : "Seu endereço de e-mail", + "No email address set" : "Nenhum endereço de e-mail foi configurado", "For password reset and notifications" : "Para redefinição de senha e notificações", "Phone number" : "Número de telefone", "Your phone number" : "Seu número de telefone", @@ -345,9 +345,9 @@ "Desktop client" : "Cliente desktop", "Android app" : "Aplicativo Android", "iOS app" : "Aplicativo iOS", - "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Se voce quiser ajudar o projeto, {contributeopen}junte-se ao desenvolvimento{linkclose} ou {contributeopen}divulgue nossos conceitos{linkclose}!", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Se você quiser ajudar o projeto, {contributeopen}junte-se ao desenvolvimento{linkclose} ou {contributeopen}divulgue nossos conceitos{linkclose}!", "Show First Run Wizard again" : "Mostrar Assistente de Primeira Execução novamente", - "Web, desktop and mobile clients currently logged in to your account." : "Clientes Web, desktop e móvel que estão conectados à sua conta.", + "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, desktop e móvel que estão conectados à sua conta.", "Device" : "Dispositivo", "Last activity" : "Última atividade", "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Aqui você pode gerar senhas individuais para aplicativos. Assim você não tem que dar sua senha. Você pode revogá-los individualmente também.", @@ -366,12 +366,12 @@ "Subscribe to our newsletter!" : "Inscreva-se para receber nosso boletim informativo!", "Settings" : "Configurações", "Show storage location" : "Mostrar localização do armazenamento", - "Show user backend" : "Mostrar backend do usuário", + "Show user backend" : "Mostrar plataforma de serviço de usuário", "Show last login" : "Mostrar último login", - "Show email address" : "Mostrar o endereço de email", - "Send email to new user" : "Enviar um email para o novo usuário", - "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Quando a senha de um novo usuário é deixada em branco, um email de ativação com um link para definir a senha é enviado.", - "E-Mail" : "Email", + "Show email address" : "Mostrar o endereço de e-mail", + "Send email to new user" : "Enviar um e-mail para o novo usuário", + "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Quando a senha de um novo usuário é deixada em branco, um e-mail de ativação com um link para definir a senha é enviado.", + "E-Mail" : "E-mail", "Create" : "Criar", "Admin Recovery Password" : "Recuperação da Senha do Administrador", "Enter the recovery password in order to recover the users files during password change" : "Digite a senha de recuperação para recuperar os arquivos dos usuários durante a mudança de senha.", @@ -385,17 +385,17 @@ "Group admin for" : "Grupo administrativo para", "Quota" : "Cota", "Storage location" : "Local do armazenamento", - "User backend" : "Backend do usuário", + "User backend" : "Plataforma de serviço de usuário", "Last login" : "Último acesso", "change full name" : "alterar nome completo", "set new password" : "definir uma senha nova", - "change email address" : "Alterar o endereço de email", + "change email address" : "Alterar o endereço de e-mail", "Default" : "Padrão", "Enabled" : "Habilitado", "Not enabled" : "Desabilitado", "Please provide an admin recovery password, otherwise all user data will be lost" : "Por favor, forneça uma senha de recuperação de administrador, caso contrário todos os dados do usuário serão perdidos", - "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Backend não suporta alteração de senha, mas a chave de criptografia do usuário foi atualizada.", - "test email settings" : "testar configurações de email", + "Backend doesn't support password change, but the user's encryption key was successfully updated." : "A plataforma de serviço não suporta alteração de senha, mas a chave de criptografia do usuário foi atualizada.", + "test email settings" : "testar configurações de e-mail", "Admins can't remove themself from the admin group" : "Administradores não podem remover a si do grupo de administração", "Unable to add user to group %s" : "Não foi possível adicionar o usuário ao grupo %s", "Unable to remove user from group %s" : "Não foi possível excluir o usuário do grupo %s", diff --git a/settings/l10n/ru.js b/settings/l10n/ru.js index d9f630de32e..4ab1c924b84 100644 --- a/settings/l10n/ru.js +++ b/settings/l10n/ru.js @@ -11,6 +11,7 @@ OC.L10N.register( "Your apps" : "Ваши приложения", "Enabled apps" : "Активные приложения", "Disabled apps" : "Отключённые приложения", + "App bundles" : "Пакеты приложений", "Wrong password" : "Неправильный пароль", "Saved" : "Сохранено", "No user supplied" : "Пользователь не задан", @@ -31,6 +32,7 @@ OC.L10N.register( "Well done, %s!" : "Отлично, %s!", "If you received this email, the email configuration seems to be correct." : "Если вы получили это сообщение, значит электронная почта настроена правильно.", "Email setting test" : "Проверка настроек электронной почты", + "Email could not be sent. Check your mail server log" : "Не удалось отправить email. Проверьте журнал почтового сервера", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Во время отправки письма произошла ошибка. Пожалуйста проверьте настройки. (Ошибка: %s)", "You need to set your user email before being able to send test emails." : "Вы должны настроить ваш собственный адрес электронной почты прежде чем отправлять тестовые сообщения.", "Invalid request" : "Неправильный запрос", @@ -40,6 +42,10 @@ OC.L10N.register( "To send a password link to the user an email address is required." : "Для отправки пользователю запароленный ссылки требуется указать адрес эл.почты.", "Unable to create user." : "Невозможно создать пользователя.", "Unable to delete user." : "Невозможно удалить пользователя.", + "Error while enabling user." : "Ошибка разблокировки пользователя ", + "Error while disabling user." : "Ошибка блокировки пользователя", + "In order to verify your Twitter account post following tweet on Twitter (please make sure to post it without any line breaks):" : "Для подтверждения владения аккаунтом Twitter, опубликуйте следующий твит (убедитесь, что разместили его без разрыва стироки):", + "In order to verify your Website store following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Для подтверждения владения сайтом поместите в корневом каталоге по пути «.well-known/CloudIdVerificationCode.txt» следующее содержимое (весь текст в одну строку): ", "Settings saved" : "Настройки сохранены", "Unable to change full name" : "Невозможно изменить полное имя", "Unable to change email address" : "Невозможно изменить адрес электронной почты", @@ -107,6 +113,7 @@ OC.L10N.register( "Approved" : "Подтвержденное", "Experimental" : "Экспериментальное", "No apps found for {query}" : "Приложения не найдены по {query}", + "Enable all" : "Включить все", "Allow filesystem access" : "Разрешить доступ к файловой системе", "Disconnect" : "Отключить", "Revoke" : "Отменить", @@ -141,6 +148,8 @@ OC.L10N.register( "Visible to local users and to trusted servers" : "Виден локальным пользователям и доверенным серверам", "Public" : "Открытый", "Will be synced to a global and public address book" : "Будет синхронизирован с глобальной и открытой адресной книгой", + "Verify" : "Проверить", + "Verifying …" : "Производится проверка…", "Select a profile picture" : "Выберите аватар", "Very weak password" : "Очень слабый пароль", "Weak password" : "Слабый пароль", @@ -164,12 +173,14 @@ OC.L10N.register( "Password successfully changed" : "Пароль успешно изменен.", "Changing the password will result in data loss, because data recovery is not available for this user" : "Изменение пароля приведёт к потере данных, так как восстановление данных не доступно для этого пользователя", "Could not change the users email" : "Невозможно изменить электронный адрес пользователя", + "Error while changing status of {user}" : "Ошибка изменения статуса пользователя {user}", "A valid username must be provided" : "Укажите правильное имя пользователя", "Error creating user: {message}" : "Ошибка создания пользователя: {message}", "A valid password must be provided" : "Должен быть указан правильный пароль", "A valid email must be provided" : "Должен быть указан корректный адрес электронной почты", "__language_name__" : "Русский", "Unlimited" : "Неограничено", + "Verifying" : "Производится проверка", "Personal info" : "Личная информация", "Sessions" : "Сессии", "App passwords" : "Пароль приложения", @@ -182,6 +193,7 @@ OC.L10N.register( "STARTTLS" : "STARTTLS", "Email server" : "Почтовый сервер", "Open documentation" : "Открыть документацию", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Важно предоставить этому серверу возможность отправлять электронные письма, например, для сброса пароля и уведомлений.", "Send mode" : "Способ отправки", "Encryption" : "Шифрование", "From address" : "Адрес отправителя", @@ -197,6 +209,7 @@ OC.L10N.register( "Test email settings" : "Проверка настроек email", "Send email" : "Отправить email", "Server-side encryption" : "Шифрование на стороне сервера", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Шифрование на стороне сервера позволяет шифровать файлы, которые загружаются на этот сервер. Это связано с ограничениями, такими как снижение производительности, поэтому включите его только в случае необходимости.", "Enable server-side encryption" : "Включить шифрование на стороне сервера", "Please read carefully before activating server-side encryption: " : "Пожалуйста прочтите внимательно прежде чем включать шифрование на стороне сервера:", "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Когда вы включите шифрование, все файлы, загруженные с этого момента на сервер, будут храниться в зашифрованном виде. Отключить шифрование в более позднее время возможно только в случае, если выбранный модуль шифрования поддерживает эту функцию, и все дополнительные условия соблюдены (например настроен ключ восстановления).", @@ -211,6 +224,7 @@ OC.L10N.register( "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Вам необходимо произвести конвертацию ключей шифрования из старого формата (ownCloud <= 8.0) в новый.", "Start migration" : "Запустить миграцию", "Security & setup warnings" : "Предупреждения безопасности и установки", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Для обеспечения безопасности и производительности важно, чтобы всё было настроено правильно. Чтобы помочь вам в этом, мы проводим некоторые автоматические проверки. Дополнительную информацию см. В разделе «Советы и рекомендации» и в документации.", "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP был установлен неверно. Запрос getenv(\"PATH\") возвращает пустые результаты.", "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Пожалуйста обратитесь к <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">документации по установке ↗</a> для получения информации по настройке php на вашем сервере, особенно это касается php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Конфигурационный файл в режиме только для чтения. В связи с этим некоторые настройки веб-интерфейса невозможно изменить. Учтите, что для установки обновлений, вам потребуется самостоятельно разрешить запись в конфигурационный файл.", @@ -231,6 +245,7 @@ OC.L10N.register( "Last cron job execution: %s." : "Последнее выполненное задание планировщика: %s.", "Last cron job execution: %s. Something seems wrong." : "Последнее выполненное задание планировщика: %s. Похоже, что-то не в порядке.", "Cron was not executed yet!" : "Задачи cron ещё не запускались!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "Для оптимальной производительности важно правильно настроить выполнение задач в фоновом режиме. Для больших экземпляров рекомендуется использовать параметр «Cron». Дополнительную информацию см. в документации.", "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 минут.", @@ -238,6 +253,7 @@ OC.L10N.register( "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Для запуска вам необходимо расширение PHP posix. Для более подробной информации смотрите {linkstart}PHP документацию{linkend}", "Version" : "Версия", "Sharing" : "Общий доступ", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Вы, как администратор, можете тонко настроить поведение механизма предоставления общего доступа. Дополнительную информацию см. в документации.", "Allow apps to use the Share API" : "Позволить приложениям использовать API общего доступа", "Allow users to share via link" : "Разрешить пользователям публикации через ссылки", "Allow public uploads" : "Разрешить открытые/публичные загрузки", @@ -256,6 +272,7 @@ OC.L10N.register( "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Показать текст об отказе на странице загрузки публичной ссылки (Показывать только когда список файлов скрыт)", "This text will be shown on the public link upload page when the file list is hidden." : "Этот текст будет показан при переходе по публичной ссылке на загрузку при скрытом списке файлов", "Tips & tricks" : "Советы и трюки", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Для оптимальной настройки и использования доступно множество возможностей и параметров конфигурации. Вот несколько указателей для получения дополнительной информации.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "В качестве базы данных используется SQLite. Для больших установок мы рекомендуем переключиться на другую серверную базу данных.", "This is particularly recommended when using the desktop client for file synchronisation." : "Рекомендуется при синхронизации файлов с использованием клиента для ПК.", "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "Для миграции на другую базу данных используйте команду: 'occ db:convert-type' или обратитесь к a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">документации ↗</a>.", @@ -315,7 +332,10 @@ OC.L10N.register( "Address" : "Адрес", "Your postal address" : "Ваш почтовый адрес", "Website" : "Сайт", + "It can take up to 24 hours before the account is displayed as verified." : "До момента подтверждения аккаунта может пройти до 24 часов.", + "Link https://…" : "Ссылка https://…", "Twitter" : "Twitter", + "Twitter handle @…" : "Имя в Twitter @…", "You are member of the following groups:" : "Вы являетесь членом следующих групп:", "Password" : "Пароль", "Current password" : "Текущий пароль", @@ -332,6 +352,7 @@ OC.L10N.register( "Web, desktop and mobile clients currently logged in to your account." : "Веб, настольные и мобильные клиенты, которые в настоящий момент авторизованы вашей учётной записью.", "Device" : "Устройство", "Last activity" : "Последние действия", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Тут можно для каждого из приложений создать индивидуальные пароли, поэтому не требуется передавать ваш пароль. Такие пароли могут также отзываться по отдельности.", "Name" : "Название", "App name" : "Название приложения", "Create new app password" : "Создать новый пароль для приложения", @@ -340,7 +361,10 @@ OC.L10N.register( "Username" : "Имя пользователя", "Done" : "Выполнено", "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Разработано {communityopen}сообществом Nextcloud{linkclose}, {githubopen}исходный код{linkclose} лицензируется в соответствии с {licenseopen}AGPL{linkclose}.", + "Follow us on Google+!" : "Следите за нашими новостями в Google+!", "Like our facebook page!" : "Посмотрите нашу страницу на facebook!", + "Follow us on Twitter!" : "Следите за нашими новостями в Twitter!", + "Check out our blog!" : "Просмотрите наш блог!", "Subscribe to our newsletter!" : "Подписывайтесь на нашу новостную рассылку!", "Settings" : "Настройки", "Show storage location" : "Показать местонахождение хранилища", @@ -356,6 +380,7 @@ OC.L10N.register( "Group name" : "Название группы", "Everyone" : "Все", "Admins" : "Администраторы", + "Disabled" : "Отключено", "Default quota" : "Квота по умолчанию", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Пожалуйста, введите квоту на хранилище (например: \"512 MB\" или \"12 GB\")", "Other" : "Другая", diff --git a/settings/l10n/ru.json b/settings/l10n/ru.json index ab2a70678ca..7d70b23d785 100644 --- a/settings/l10n/ru.json +++ b/settings/l10n/ru.json @@ -9,6 +9,7 @@ "Your apps" : "Ваши приложения", "Enabled apps" : "Активные приложения", "Disabled apps" : "Отключённые приложения", + "App bundles" : "Пакеты приложений", "Wrong password" : "Неправильный пароль", "Saved" : "Сохранено", "No user supplied" : "Пользователь не задан", @@ -29,6 +30,7 @@ "Well done, %s!" : "Отлично, %s!", "If you received this email, the email configuration seems to be correct." : "Если вы получили это сообщение, значит электронная почта настроена правильно.", "Email setting test" : "Проверка настроек электронной почты", + "Email could not be sent. Check your mail server log" : "Не удалось отправить email. Проверьте журнал почтового сервера", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Во время отправки письма произошла ошибка. Пожалуйста проверьте настройки. (Ошибка: %s)", "You need to set your user email before being able to send test emails." : "Вы должны настроить ваш собственный адрес электронной почты прежде чем отправлять тестовые сообщения.", "Invalid request" : "Неправильный запрос", @@ -38,6 +40,10 @@ "To send a password link to the user an email address is required." : "Для отправки пользователю запароленный ссылки требуется указать адрес эл.почты.", "Unable to create user." : "Невозможно создать пользователя.", "Unable to delete user." : "Невозможно удалить пользователя.", + "Error while enabling user." : "Ошибка разблокировки пользователя ", + "Error while disabling user." : "Ошибка блокировки пользователя", + "In order to verify your Twitter account post following tweet on Twitter (please make sure to post it without any line breaks):" : "Для подтверждения владения аккаунтом Twitter, опубликуйте следующий твит (убедитесь, что разместили его без разрыва стироки):", + "In order to verify your Website store following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Для подтверждения владения сайтом поместите в корневом каталоге по пути «.well-known/CloudIdVerificationCode.txt» следующее содержимое (весь текст в одну строку): ", "Settings saved" : "Настройки сохранены", "Unable to change full name" : "Невозможно изменить полное имя", "Unable to change email address" : "Невозможно изменить адрес электронной почты", @@ -105,6 +111,7 @@ "Approved" : "Подтвержденное", "Experimental" : "Экспериментальное", "No apps found for {query}" : "Приложения не найдены по {query}", + "Enable all" : "Включить все", "Allow filesystem access" : "Разрешить доступ к файловой системе", "Disconnect" : "Отключить", "Revoke" : "Отменить", @@ -139,6 +146,8 @@ "Visible to local users and to trusted servers" : "Виден локальным пользователям и доверенным серверам", "Public" : "Открытый", "Will be synced to a global and public address book" : "Будет синхронизирован с глобальной и открытой адресной книгой", + "Verify" : "Проверить", + "Verifying …" : "Производится проверка…", "Select a profile picture" : "Выберите аватар", "Very weak password" : "Очень слабый пароль", "Weak password" : "Слабый пароль", @@ -162,12 +171,14 @@ "Password successfully changed" : "Пароль успешно изменен.", "Changing the password will result in data loss, because data recovery is not available for this user" : "Изменение пароля приведёт к потере данных, так как восстановление данных не доступно для этого пользователя", "Could not change the users email" : "Невозможно изменить электронный адрес пользователя", + "Error while changing status of {user}" : "Ошибка изменения статуса пользователя {user}", "A valid username must be provided" : "Укажите правильное имя пользователя", "Error creating user: {message}" : "Ошибка создания пользователя: {message}", "A valid password must be provided" : "Должен быть указан правильный пароль", "A valid email must be provided" : "Должен быть указан корректный адрес электронной почты", "__language_name__" : "Русский", "Unlimited" : "Неограничено", + "Verifying" : "Производится проверка", "Personal info" : "Личная информация", "Sessions" : "Сессии", "App passwords" : "Пароль приложения", @@ -180,6 +191,7 @@ "STARTTLS" : "STARTTLS", "Email server" : "Почтовый сервер", "Open documentation" : "Открыть документацию", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Важно предоставить этому серверу возможность отправлять электронные письма, например, для сброса пароля и уведомлений.", "Send mode" : "Способ отправки", "Encryption" : "Шифрование", "From address" : "Адрес отправителя", @@ -195,6 +207,7 @@ "Test email settings" : "Проверка настроек email", "Send email" : "Отправить email", "Server-side encryption" : "Шифрование на стороне сервера", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Шифрование на стороне сервера позволяет шифровать файлы, которые загружаются на этот сервер. Это связано с ограничениями, такими как снижение производительности, поэтому включите его только в случае необходимости.", "Enable server-side encryption" : "Включить шифрование на стороне сервера", "Please read carefully before activating server-side encryption: " : "Пожалуйста прочтите внимательно прежде чем включать шифрование на стороне сервера:", "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Когда вы включите шифрование, все файлы, загруженные с этого момента на сервер, будут храниться в зашифрованном виде. Отключить шифрование в более позднее время возможно только в случае, если выбранный модуль шифрования поддерживает эту функцию, и все дополнительные условия соблюдены (например настроен ключ восстановления).", @@ -209,6 +222,7 @@ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Вам необходимо произвести конвертацию ключей шифрования из старого формата (ownCloud <= 8.0) в новый.", "Start migration" : "Запустить миграцию", "Security & setup warnings" : "Предупреждения безопасности и установки", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Для обеспечения безопасности и производительности важно, чтобы всё было настроено правильно. Чтобы помочь вам в этом, мы проводим некоторые автоматические проверки. Дополнительную информацию см. В разделе «Советы и рекомендации» и в документации.", "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP был установлен неверно. Запрос getenv(\"PATH\") возвращает пустые результаты.", "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Пожалуйста обратитесь к <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">документации по установке ↗</a> для получения информации по настройке php на вашем сервере, особенно это касается php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Конфигурационный файл в режиме только для чтения. В связи с этим некоторые настройки веб-интерфейса невозможно изменить. Учтите, что для установки обновлений, вам потребуется самостоятельно разрешить запись в конфигурационный файл.", @@ -229,6 +243,7 @@ "Last cron job execution: %s." : "Последнее выполненное задание планировщика: %s.", "Last cron job execution: %s. Something seems wrong." : "Последнее выполненное задание планировщика: %s. Похоже, что-то не в порядке.", "Cron was not executed yet!" : "Задачи cron ещё не запускались!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "Для оптимальной производительности важно правильно настроить выполнение задач в фоновом режиме. Для больших экземпляров рекомендуется использовать параметр «Cron». Дополнительную информацию см. в документации.", "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 минут.", @@ -236,6 +251,7 @@ "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Для запуска вам необходимо расширение PHP posix. Для более подробной информации смотрите {linkstart}PHP документацию{linkend}", "Version" : "Версия", "Sharing" : "Общий доступ", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Вы, как администратор, можете тонко настроить поведение механизма предоставления общего доступа. Дополнительную информацию см. в документации.", "Allow apps to use the Share API" : "Позволить приложениям использовать API общего доступа", "Allow users to share via link" : "Разрешить пользователям публикации через ссылки", "Allow public uploads" : "Разрешить открытые/публичные загрузки", @@ -254,6 +270,7 @@ "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Показать текст об отказе на странице загрузки публичной ссылки (Показывать только когда список файлов скрыт)", "This text will be shown on the public link upload page when the file list is hidden." : "Этот текст будет показан при переходе по публичной ссылке на загрузку при скрытом списке файлов", "Tips & tricks" : "Советы и трюки", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Для оптимальной настройки и использования доступно множество возможностей и параметров конфигурации. Вот несколько указателей для получения дополнительной информации.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "В качестве базы данных используется SQLite. Для больших установок мы рекомендуем переключиться на другую серверную базу данных.", "This is particularly recommended when using the desktop client for file synchronisation." : "Рекомендуется при синхронизации файлов с использованием клиента для ПК.", "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "Для миграции на другую базу данных используйте команду: 'occ db:convert-type' или обратитесь к a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">документации ↗</a>.", @@ -313,7 +330,10 @@ "Address" : "Адрес", "Your postal address" : "Ваш почтовый адрес", "Website" : "Сайт", + "It can take up to 24 hours before the account is displayed as verified." : "До момента подтверждения аккаунта может пройти до 24 часов.", + "Link https://…" : "Ссылка https://…", "Twitter" : "Twitter", + "Twitter handle @…" : "Имя в Twitter @…", "You are member of the following groups:" : "Вы являетесь членом следующих групп:", "Password" : "Пароль", "Current password" : "Текущий пароль", @@ -330,6 +350,7 @@ "Web, desktop and mobile clients currently logged in to your account." : "Веб, настольные и мобильные клиенты, которые в настоящий момент авторизованы вашей учётной записью.", "Device" : "Устройство", "Last activity" : "Последние действия", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Тут можно для каждого из приложений создать индивидуальные пароли, поэтому не требуется передавать ваш пароль. Такие пароли могут также отзываться по отдельности.", "Name" : "Название", "App name" : "Название приложения", "Create new app password" : "Создать новый пароль для приложения", @@ -338,7 +359,10 @@ "Username" : "Имя пользователя", "Done" : "Выполнено", "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Разработано {communityopen}сообществом Nextcloud{linkclose}, {githubopen}исходный код{linkclose} лицензируется в соответствии с {licenseopen}AGPL{linkclose}.", + "Follow us on Google+!" : "Следите за нашими новостями в Google+!", "Like our facebook page!" : "Посмотрите нашу страницу на facebook!", + "Follow us on Twitter!" : "Следите за нашими новостями в Twitter!", + "Check out our blog!" : "Просмотрите наш блог!", "Subscribe to our newsletter!" : "Подписывайтесь на нашу новостную рассылку!", "Settings" : "Настройки", "Show storage location" : "Показать местонахождение хранилища", @@ -354,6 +378,7 @@ "Group name" : "Название группы", "Everyone" : "Все", "Admins" : "Администраторы", + "Disabled" : "Отключено", "Default quota" : "Квота по умолчанию", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Пожалуйста, введите квоту на хранилище (например: \"512 MB\" или \"12 GB\")", "Other" : "Другая", diff --git a/settings/l10n/tr.js b/settings/l10n/tr.js index 8833e1cc7dc..2c19506d45d 100644 --- a/settings/l10n/tr.js +++ b/settings/l10n/tr.js @@ -44,6 +44,8 @@ OC.L10N.register( "Unable to delete user." : "Kullanıcı silinemedi.", "Error while enabling user." : "Kullanıcı etkinleştirilirken sorun çıktı", "Error while disabling user." : "Kullanıcı devre dışı bırakılırken sorun çıktı", + "In order to verify your Twitter account post following tweet on Twitter (please make sure to post it without any line breaks):" : "Twitter hesabı iletinizi doğrulamak için şu iletiyi Twitter üzerine gönderin (satır sonu olmadan gönderdiğinizden emin olun):", + "In order to verify your Website store following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Web sitesi depolamınızı doğrulamak için şu içeriği web sitenizin kök klasörüne '.well-known/CloudIdVerificationCode.txt' dosyası içine ekleyin (tüm içeriğin tek bir satır olarak eklendiğinden emin olun):", "Settings saved" : "Ayarlar kaydedildi", "Unable to change full name" : "Tam adınız değiştirilemedi", "Unable to change email address" : "E-posta adresi değiştirilemedi", @@ -146,6 +148,8 @@ OC.L10N.register( "Visible to local users and to trusted servers" : "Yerel kullanıcı ve güvenilen sunucular görebilir", "Public" : "Herkese açık", "Will be synced to a global and public address book" : "Genel ve herkese açık bir adres defteri ile eşitlenir", + "Verify" : "Doğrula", + "Verifying …" : "Doğrulanıyor...", "Select a profile picture" : "Bir profil fotoğrafı seçin", "Very weak password" : "Parola çok zayıf", "Weak password" : "Parola zayıf", @@ -169,12 +173,14 @@ OC.L10N.register( "Password successfully changed" : "Parola değiştirildi", "Changing the password will result in data loss, because data recovery is not available for this user" : "Bu kullanıcı için veri kurtarması olmadığından, parolanın değiştirilmesi veri kaybına neden olur", "Could not change the users email" : "Kullanıcının e-posta adresi değiştirilemedi", + "Error while changing status of {user}" : "{user} durumu değiştirilirken sorun çıktı", "A valid username must be provided" : "Geçerli bir kullanıcı adı yazmalısınız", "Error creating user: {message}" : "Kullanıcı eklenirken sorun çıktı: {message}", "A valid password must be provided" : "Geçerli bir parola yazmalısınız", "A valid email must be provided" : "Geçerli bir e-posta adresi yazmalısınız", "__language_name__" : "Türkçe", "Unlimited" : "Sınırsız", + "Verifying" : "Doğrulanıyor", "Personal info" : "Kişisel Bilgiler", "Sessions" : "Oturumlar", "App passwords" : "Uygulama parolaları", @@ -326,7 +332,10 @@ OC.L10N.register( "Address" : "Adres", "Your postal address" : "Posta adresiniz", "Website" : "Web sitesi", + "It can take up to 24 hours before the account is displayed as verified." : "Hesabın doğrulanması ve görüntülenmesi 24 saate kadar zaman alabilir.", + "Link https://…" : "Bağlantı https://…", "Twitter" : "Twitter", + "Twitter handle @…" : "Twitter kodu @…", "You are member of the following groups:" : "Şu gruplara üyesiniz:", "Password" : "Parola", "Current password" : "Geçerli parola", @@ -343,6 +352,7 @@ OC.L10N.register( "Web, desktop and mobile clients currently logged in to your account." : "Şu anda hesabınıza web, masaüstü ve mobil istemciler oturum açmış.", "Device" : "Aygıt", "Last activity" : "Son işlem", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Bu bölümden uygulamalara özel parolalar üretebilirsiniz. Böylece kendi parolanızı vermeniz gerekmez. Daha sonra bu parolaları ayrı ayrı geçersiz kılabilirsiniz.", "Name" : "Ad", "App name" : "Uygulama adı", "Create new app password" : "Yeni uygulama parolası oluştur", @@ -370,6 +380,7 @@ OC.L10N.register( "Group name" : "Grup adı", "Everyone" : "Herkes", "Admins" : "Yöneticiler", + "Disabled" : "Devre Dışı", "Default quota" : "Varsayılan kota", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Lütfen depolama kotasını yazın (örnek: \"512MB\" ya da \"12 GB\")", "Other" : "Diğer", diff --git a/settings/l10n/tr.json b/settings/l10n/tr.json index 48f40bd5b70..88d2fff4ecc 100644 --- a/settings/l10n/tr.json +++ b/settings/l10n/tr.json @@ -42,6 +42,8 @@ "Unable to delete user." : "Kullanıcı silinemedi.", "Error while enabling user." : "Kullanıcı etkinleştirilirken sorun çıktı", "Error while disabling user." : "Kullanıcı devre dışı bırakılırken sorun çıktı", + "In order to verify your Twitter account post following tweet on Twitter (please make sure to post it without any line breaks):" : "Twitter hesabı iletinizi doğrulamak için şu iletiyi Twitter üzerine gönderin (satır sonu olmadan gönderdiğinizden emin olun):", + "In order to verify your Website store following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Web sitesi depolamınızı doğrulamak için şu içeriği web sitenizin kök klasörüne '.well-known/CloudIdVerificationCode.txt' dosyası içine ekleyin (tüm içeriğin tek bir satır olarak eklendiğinden emin olun):", "Settings saved" : "Ayarlar kaydedildi", "Unable to change full name" : "Tam adınız değiştirilemedi", "Unable to change email address" : "E-posta adresi değiştirilemedi", @@ -144,6 +146,8 @@ "Visible to local users and to trusted servers" : "Yerel kullanıcı ve güvenilen sunucular görebilir", "Public" : "Herkese açık", "Will be synced to a global and public address book" : "Genel ve herkese açık bir adres defteri ile eşitlenir", + "Verify" : "Doğrula", + "Verifying …" : "Doğrulanıyor...", "Select a profile picture" : "Bir profil fotoğrafı seçin", "Very weak password" : "Parola çok zayıf", "Weak password" : "Parola zayıf", @@ -167,12 +171,14 @@ "Password successfully changed" : "Parola değiştirildi", "Changing the password will result in data loss, because data recovery is not available for this user" : "Bu kullanıcı için veri kurtarması olmadığından, parolanın değiştirilmesi veri kaybına neden olur", "Could not change the users email" : "Kullanıcının e-posta adresi değiştirilemedi", + "Error while changing status of {user}" : "{user} durumu değiştirilirken sorun çıktı", "A valid username must be provided" : "Geçerli bir kullanıcı adı yazmalısınız", "Error creating user: {message}" : "Kullanıcı eklenirken sorun çıktı: {message}", "A valid password must be provided" : "Geçerli bir parola yazmalısınız", "A valid email must be provided" : "Geçerli bir e-posta adresi yazmalısınız", "__language_name__" : "Türkçe", "Unlimited" : "Sınırsız", + "Verifying" : "Doğrulanıyor", "Personal info" : "Kişisel Bilgiler", "Sessions" : "Oturumlar", "App passwords" : "Uygulama parolaları", @@ -324,7 +330,10 @@ "Address" : "Adres", "Your postal address" : "Posta adresiniz", "Website" : "Web sitesi", + "It can take up to 24 hours before the account is displayed as verified." : "Hesabın doğrulanması ve görüntülenmesi 24 saate kadar zaman alabilir.", + "Link https://…" : "Bağlantı https://…", "Twitter" : "Twitter", + "Twitter handle @…" : "Twitter kodu @…", "You are member of the following groups:" : "Şu gruplara üyesiniz:", "Password" : "Parola", "Current password" : "Geçerli parola", @@ -341,6 +350,7 @@ "Web, desktop and mobile clients currently logged in to your account." : "Şu anda hesabınıza web, masaüstü ve mobil istemciler oturum açmış.", "Device" : "Aygıt", "Last activity" : "Son işlem", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Bu bölümden uygulamalara özel parolalar üretebilirsiniz. Böylece kendi parolanızı vermeniz gerekmez. Daha sonra bu parolaları ayrı ayrı geçersiz kılabilirsiniz.", "Name" : "Ad", "App name" : "Uygulama adı", "Create new app password" : "Yeni uygulama parolası oluştur", @@ -368,6 +378,7 @@ "Group name" : "Grup adı", "Everyone" : "Herkes", "Admins" : "Yöneticiler", + "Disabled" : "Devre Dışı", "Default quota" : "Varsayılan kota", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Lütfen depolama kotasını yazın (örnek: \"512MB\" ya da \"12 GB\")", "Other" : "Diğer", diff --git a/settings/templates/admin/additional-mail.php b/settings/templates/admin/additional-mail.php index 249252dc694..bce7e5adeee 100644 --- a/settings/templates/admin/additional-mail.php +++ b/settings/templates/admin/additional-mail.php @@ -61,7 +61,7 @@ if ($_['mail_smtpmode'] === 'qmail') { <p> <label for="mail_smtpmode"><?php p($l->t('Send mode')); ?></label> - <select name="mail_smtpmode" id="mail_smtpmode'> + <select name="mail_smtpmode" id="mail_smtpmode"> <?php foreach ($mail_smtpmode as $smtpmode): $selected = ''; if ($smtpmode[0] == $_['mail_smtpmode']): diff --git a/tests/Core/Controller/ClientFlowLoginControllerTest.php b/tests/Core/Controller/ClientFlowLoginControllerTest.php index 7c525b53210..7a98e5c26c6 100644 --- a/tests/Core/Controller/ClientFlowLoginControllerTest.php +++ b/tests/Core/Controller/ClientFlowLoginControllerTest.php @@ -338,7 +338,7 @@ class ClientFlowLoginControllerTest extends TestCase { ->method('getServerHost') ->willReturn('example.com'); - $expected = new Http\RedirectResponse('nc://MyLoginName:MyGeneratedToken@example.com'); + $expected = new Http\RedirectResponse('nc://login/server:example.com&user:MyLoginName&password:MyGeneratedToken'); $this->assertEquals($expected, $this->clientFlowLoginController->generateAppPassword('MyStateToken')); } @@ -402,7 +402,7 @@ class ClientFlowLoginControllerTest extends TestCase { ->method('getServerHost') ->willReturn('example.com'); - $expected = new Http\RedirectResponse('nc://MyLoginName:MyGeneratedToken@example.com'); + $expected = new Http\RedirectResponse('nc://login/server:example.com&user:MyLoginName&password:MyGeneratedToken'); $this->assertEquals($expected, $this->clientFlowLoginController->generateAppPassword('MyStateToken')); } } diff --git a/tests/Settings/Controller/AuthSettingsControllerTest.php b/tests/Settings/Controller/AuthSettingsControllerTest.php index 7f4277acd73..5c1280ff4b0 100644 --- a/tests/Settings/Controller/AuthSettingsControllerTest.php +++ b/tests/Settings/Controller/AuthSettingsControllerTest.php @@ -133,11 +133,11 @@ class AuthSettingsControllerTest extends TestCase { ->method('getLoginName') ->will($this->returnValue('User13')); - $this->secureRandom->expects($this->exactly(4)) + $this->secureRandom->expects($this->exactly(5)) ->method('generate') - ->with(5, implode('', range('A', 'Z'))) + ->with(5, ISecureRandom::CHAR_HUMAN_READABLE) ->will($this->returnValue('XXXXX')); - $newToken = 'XXXXX-XXXXX-XXXXX-XXXXX'; + $newToken = 'XXXXX-XXXXX-XXXXX-XXXXX-XXXXX'; $this->tokenProvider->expects($this->once()) ->method('generateToken') diff --git a/tests/acceptance/features/bootstrap/FilesAppContext.php b/tests/acceptance/features/bootstrap/FilesAppContext.php index bc926fbe52f..e769820c9ee 100644 --- a/tests/acceptance/features/bootstrap/FilesAppContext.php +++ b/tests/acceptance/features/bootstrap/FilesAppContext.php @@ -106,7 +106,11 @@ class FilesAppContext implements Context, ActorAwareInterface { * @return Locator */ public static function shareLinkCheckbox() { - return Locator::forThe()->content("Share link")->descendantOf(self::currentSectionDetailsView())-> + // forThe()->checkbox("Share link") can not be used here; that would + // return the checkbox itself, but the element that the user interacts + // with is the label. + return Locator::forThe()->xpath("//label[normalize-space() = 'Share link']")-> + descendantOf(self::currentSectionDetailsView())-> describedAs("Share link checkbox in the details view in Files app"); } @@ -122,7 +126,11 @@ class FilesAppContext implements Context, ActorAwareInterface { * @return Locator */ public static function passwordProtectCheckbox() { - return Locator::forThe()->content("Password protect")->descendantOf(self::currentSectionDetailsView())-> + // forThe()->checkbox("Password protect") can not be used here; that + // would return the checkbox itself, but the element that the user + // interacts with is the label. + return Locator::forThe()->xpath("//label[normalize-space() = 'Password protect']")-> + descendantOf(self::currentSectionDetailsView())-> describedAs("Password protect checkbox in the details view in Files app"); } @@ -163,7 +171,7 @@ class FilesAppContext implements Context, ActorAwareInterface { * @return Locator */ public static function favoritedStateIconForFile($fileName) { - return Locator::forThe()->content("Favorited")->descendantOf(self::favoriteActionForFile($fileName))-> + return Locator::forThe()->css(".icon-starred")->descendantOf(self::favoriteActionForFile($fileName))-> describedAs("Favorited state icon for file $fileName in Files app"); } @@ -210,7 +218,8 @@ class FilesAppContext implements Context, ActorAwareInterface { * @return Locator */ private static function fileActionsMenuItemFor($itemText) { - return Locator::forThe()->content($itemText)->descendantOf(self::fileActionsMenu())-> + return Locator::forThe()->xpath("//a[normalize-space() = '$itemText']")-> + descendantOf(self::fileActionsMenu())-> describedAs($itemText . " item in file actions menu in Files app"); } diff --git a/tests/acceptance/features/bootstrap/FilesSharingAppContext.php b/tests/acceptance/features/bootstrap/FilesSharingAppContext.php index d9d5eca7359..88c1180c753 100644 --- a/tests/acceptance/features/bootstrap/FilesSharingAppContext.php +++ b/tests/acceptance/features/bootstrap/FilesSharingAppContext.php @@ -47,7 +47,7 @@ class FilesSharingAppContext implements Context, ActorAwareInterface { * @return Locator */ public static function wrongPasswordMessage() { - return Locator::forThe()->content("The password is wrong. Try again.")-> + return Locator::forThe()->xpath("//*[@class = 'warning' and normalize-space() = 'The password is wrong. Try again.']")-> describedAs("Wrong password message in Authenticate page"); } diff --git a/tests/acceptance/features/bootstrap/LoginPageContext.php b/tests/acceptance/features/bootstrap/LoginPageContext.php index 4b0672f652c..61f12f54be6 100644 --- a/tests/acceptance/features/bootstrap/LoginPageContext.php +++ b/tests/acceptance/features/bootstrap/LoginPageContext.php @@ -66,7 +66,7 @@ class LoginPageContext implements Context, ActorAwareInterface { * @return Locator */ public static function wrongPasswordMessage() { - return Locator::forThe()->content("Wrong password. Reset it?")-> + return Locator::forThe()->xpath("//*[@class = 'warning' and normalize-space() = 'Wrong password. Reset it?']")-> describedAs("Wrong password message in Login page"); } diff --git a/tests/acceptance/features/bootstrap/NotificationContext.php b/tests/acceptance/features/bootstrap/NotificationContext.php index f8b784e2465..ac9838562e1 100644 --- a/tests/acceptance/features/bootstrap/NotificationContext.php +++ b/tests/acceptance/features/bootstrap/NotificationContext.php @@ -31,7 +31,8 @@ class NotificationContext implements Context, ActorAwareInterface { * @return Locator */ public static function notificationMessage($message) { - return Locator::forThe()->content($message)->descendantOf(self::notificationContainer())-> + return Locator::forThe()->xpath("//*[@class = 'row' and normalize-space() = '$message']")-> + descendantOf(self::notificationContainer())-> describedAs("$message notification"); } diff --git a/tests/acceptance/features/bootstrap/SettingsMenuContext.php b/tests/acceptance/features/bootstrap/SettingsMenuContext.php index 9ce8df4caef..1ff5d94e98f 100644 --- a/tests/acceptance/features/bootstrap/SettingsMenuContext.php +++ b/tests/acceptance/features/bootstrap/SettingsMenuContext.php @@ -61,7 +61,8 @@ class SettingsMenuContext implements Context, ActorAwareInterface { * @return Locator */ private static function menuItemFor($itemText) { - return Locator::forThe()->content($itemText)->descendantOf(self::settingsMenu())-> + return Locator::forThe()->xpath("//a[normalize-space() = '$itemText']")-> + descendantOf(self::settingsMenu())-> describedAs($itemText . " item in Settings menu"); } diff --git a/tests/acceptance/features/core/Actor.php b/tests/acceptance/features/core/Actor.php index 0c23b5f7a40..3a57b7e6054 100644 --- a/tests/acceptance/features/core/Actor.php +++ b/tests/acceptance/features/core/Actor.php @@ -165,6 +165,18 @@ class Actor { public function find($elementLocator, $timeout = 0, $timeoutStep = 0.5) { $timeout = $timeout * $this->findTimeoutMultiplier; + return $this->findInternal($elementLocator, $timeout, $timeoutStep); + } + + /** + * Finds an element in the Mink Session of this Actor. + * + * The timeout is not affected by the multiplier set using + * setFindTimeoutMultiplier(). + * + * @see find($elementLocator, $timeout, $timeoutStep) + */ + private function findInternal($elementLocator, $timeout, $timeoutStep) { $element = null; $selector = $elementLocator->getSelector(); $locator = $elementLocator->getLocator(); @@ -211,7 +223,7 @@ class Actor { $ancestorElement = $elementLocator->getAncestor(); if ($ancestorElement instanceof Locator) { try { - $ancestorElement = $this->find($ancestorElement, $timeout, $timeoutStep); + $ancestorElement = $this->findInternal($ancestorElement, $timeout, $timeoutStep); } catch (NoSuchElementException $exception) { // Little hack to show the stack of ancestor elements that could // not be found, as Behat only shows the message of the last diff --git a/tests/acceptance/features/core/ActorContext.php b/tests/acceptance/features/core/ActorContext.php index 86fe3832f66..d6fb63694ec 100644 --- a/tests/acceptance/features/core/ActorContext.php +++ b/tests/acceptance/features/core/ActorContext.php @@ -39,8 +39,9 @@ use Behat\MinkExtension\Context\RawMinkContext; * propagates its inherited "base_url" Mink parameter to the Actors as needed. * * By default no multiplier for the find timeout is set in the Actors. However, - * it can be customized using the "actorFindTimeoutMultiplier" parameter of the - * ActorContext in "behat.yml". + * it can be customized using the "actorTimeoutMultiplier" parameter of the + * ActorContext in "behat.yml". This parameter also affects the overall timeout + * to start a session for an Actor before giving up. * * Every actor used in the scenarios must have a corresponding Mink session * declared in "behat.yml" with the same name as the actor. All used sessions @@ -66,16 +67,16 @@ class ActorContext extends RawMinkContext { /** * @var float */ - private $actorFindTimeoutMultiplier; + private $actorTimeoutMultiplier; /** * Creates a new ActorContext. * - * @param float $actorFindTimeoutMultiplier the find timeout multiplier to - * set in the Actors. + * @param float $actorTimeoutMultiplier the timeout multiplier for Actor + * related timeouts. */ - public function __construct($actorFindTimeoutMultiplier = 1) { - $this->actorFindTimeoutMultiplier = $actorFindTimeoutMultiplier; + public function __construct($actorTimeoutMultiplier = 1) { + $this->actorTimeoutMultiplier = $actorTimeoutMultiplier; } /** @@ -98,6 +99,31 @@ class ActorContext extends RawMinkContext { } /** + * Returns the session with the given name. + * + * If the session is not started it is started before returning it; if the + * session fails to start (typically due to a timeout connecting with the + * web browser) it will be tried again up to $actorTimeoutMultiplier times + * in total (rounded up to the next integer) before giving up. + * + * @param string|null $sname the name of the session to get, or null for the + * default session. + * @return \Behat\Mink\Session the session. + */ + public function getSession($name = null) { + for ($i = 0; $i < ($this->actorTimeoutMultiplier - 1); $i++) { + try { + return parent::getSession($name); + } catch (\Behat\Mink\Exception\DriverException $exception) { + echo "Exception when getting " . ($name == null? "default session": "session '$name'") . ": " . $exception->getMessage() . "\n"; + echo "Trying again\n"; + } + } + + return parent::getSession($name); + } + + /** * @BeforeScenario * * Initializes the Actors for the new Scenario with the default Actor. @@ -110,7 +136,7 @@ class ActorContext extends RawMinkContext { $this->sharedNotebook = array(); $this->actors["default"] = new Actor($this->getSession(), $this->getMinkParameter("base_url"), $this->sharedNotebook); - $this->actors["default"]->setFindTimeoutMultiplier($this->actorFindTimeoutMultiplier); + $this->actors["default"]->setFindTimeoutMultiplier($this->actorTimeoutMultiplier); $this->currentActor = $this->actors["default"]; } @@ -134,7 +160,7 @@ class ActorContext extends RawMinkContext { public function iActAs($actorName) { if (!array_key_exists($actorName, $this->actors)) { $this->actors[$actorName] = new Actor($this->getSession($actorName), $this->getMinkParameter("base_url"), $this->sharedNotebook); - $this->actors[$actorName]->setFindTimeoutMultiplier($this->actorFindTimeoutMultiplier); + $this->actors[$actorName]->setFindTimeoutMultiplier($this->actorTimeoutMultiplier); } $this->currentActor = $this->actors[$actorName]; diff --git a/tests/acceptance/features/core/Locator.php b/tests/acceptance/features/core/Locator.php index 0ebae9b8fb1..e670a5b8065 100644 --- a/tests/acceptance/features/core/Locator.php +++ b/tests/acceptance/features/core/Locator.php @@ -134,7 +134,7 @@ class LocatorBuilder { * @return LocatorBuilderSecondStep */ public function id($value) { - return $this->customSelector("named", array("id", $value)); + return $this->customSelector("named_exact", array("id", $value)); } /** @@ -142,7 +142,7 @@ class LocatorBuilder { * @return LocatorBuilderSecondStep */ public function idOrName($value) { - return $this->customSelector("named", array("id_or_name", $value)); + return $this->customSelector("named_exact", array("id_or_name", $value)); } /** @@ -150,7 +150,7 @@ class LocatorBuilder { * @return LocatorBuilderSecondStep */ public function link($value) { - return $this->customSelector("named", array("link", $value)); + return $this->customSelector("named_exact", array("link", $value)); } /** @@ -158,7 +158,7 @@ class LocatorBuilder { * @return LocatorBuilderSecondStep */ public function button($value) { - return $this->customSelector("named", array("button", $value)); + return $this->customSelector("named_exact", array("button", $value)); } /** @@ -166,15 +166,7 @@ class LocatorBuilder { * @return LocatorBuilderSecondStep */ public function linkOrButton($value) { - return $this->customSelector("named", array("link_or_button", $value)); - } - - /** - * @param string $value - * @return LocatorBuilderSecondStep - */ - public function content($value) { - return $this->customSelector("named", array("content", $value)); + return $this->customSelector("named_exact", array("link_or_button", $value)); } /** @@ -182,7 +174,7 @@ class LocatorBuilder { * @return LocatorBuilderSecondStep */ public function field($value) { - return $this->customSelector("named", array("field", $value)); + return $this->customSelector("named_exact", array("field", $value)); } /** @@ -190,7 +182,7 @@ class LocatorBuilder { * @return LocatorBuilderSecondStep */ public function selectField($value) { - return $this->customSelector("named", array("select", $value)); + return $this->customSelector("named_exact", array("select", $value)); } /** @@ -198,7 +190,7 @@ class LocatorBuilder { * @return LocatorBuilderSecondStep */ public function checkbox($value) { - return $this->customSelector("named", array("checkbox", $value)); + return $this->customSelector("named_exact", array("checkbox", $value)); } /** @@ -206,7 +198,7 @@ class LocatorBuilder { * @return LocatorBuilderSecondStep */ public function radioButton($value) { - return $this->customSelector("named", array("radio", $value)); + return $this->customSelector("named_exact", array("radio", $value)); } /** @@ -214,7 +206,7 @@ class LocatorBuilder { * @return LocatorBuilderSecondStep */ public function fileInput($value) { - return $this->customSelector("named", array("file", $value)); + return $this->customSelector("named_exact", array("file", $value)); } /** @@ -222,7 +214,7 @@ class LocatorBuilder { * @return LocatorBuilderSecondStep */ public function optionGroup($value) { - return $this->customSelector("named", array("optgroup", $value)); + return $this->customSelector("named_exact", array("optgroup", $value)); } /** @@ -230,7 +222,7 @@ class LocatorBuilder { * @return LocatorBuilderSecondStep */ public function option($value) { - return $this->customSelector("named", array("option", $value)); + return $this->customSelector("named_exact", array("option", $value)); } /** @@ -238,7 +230,7 @@ class LocatorBuilder { * @return LocatorBuilderSecondStep */ public function fieldSet($value) { - return $this->customSelector("named", array("fieldset", $value)); + return $this->customSelector("named_exact", array("fieldset", $value)); } /** @@ -246,7 +238,7 @@ class LocatorBuilder { * @return LocatorBuilderSecondStep */ public function table($value) { - return $this->customSelector("named", array("table", $value)); + return $this->customSelector("named_exact", array("table", $value)); } } diff --git a/tests/acceptance/run-local.sh b/tests/acceptance/run-local.sh index ee7a4e6455c..93c11e810f8 100755 --- a/tests/acceptance/run-local.sh +++ b/tests/acceptance/run-local.sh @@ -39,6 +39,21 @@ set -o errexit # Behat through Composer or running Behat) expect that. cd "$(dirname $0)" +# "--timeout-multiplier N" option can be provided before any other parameter to +# set the timeout multiplier to be used in ActorContext. +TIMEOUT_MULTIPLIER="" +if [ "$1" = "--timeout-multiplier" ]; then + if [[ ! "$2" =~ ^[0-9]+$ ]]; then + echo "--timeout-multiplier must be followed by a positive integer" + + exit 1 + fi + + TIMEOUT_MULTIPLIER=$2 + + shift 2 +fi + # Safety parameter to prevent executing this script by mistake and messing with # the Git repository. if [ "$1" != "allow-git-repository-modifications" ]; then @@ -49,6 +64,22 @@ fi SCENARIO_TO_RUN=$2 +if [ "$TIMEOUT_MULTIPLIER" != "" ]; then + # Although Behat documentation states that using the BEHAT_PARAMS + # environment variable "You can set any value for any option that is + # available in a behat.yml file" this is currently not true for the + # constructor parameters of contexts (see + # https://github.com/Behat/Behat/issues/983). Thus, the default "behat.yml" + # configuration file has to be adjusted to provide the appropriate + # parameters for ActorContext. + ORIGINAL="\ + - ActorContext" + REPLACEMENT="\ + - ActorContext:\n\ + actorTimeoutMultiplier: $TIMEOUT_MULTIPLIER" + sed --in-place "s/$ORIGINAL/$REPLACEMENT/" config/behat.yml +fi + composer install cd ../../ diff --git a/tests/acceptance/run.sh b/tests/acceptance/run.sh index 42a718d46e2..1b68f8655ae 100755 --- a/tests/acceptance/run.sh +++ b/tests/acceptance/run.sh @@ -197,6 +197,22 @@ trap cleanUp EXIT # the Git working directory to the container) expect that. cd "$(dirname $0)" +# "--timeout-multiplier N" option can be provided before the specific scenario +# to run, if any, to set the timeout multiplier to be used in the acceptance +# tests. +TIMEOUT_MULTIPLIER_OPTION="" +if [ "$1" = "--timeout-multiplier" ]; then + if [[ ! "$2" =~ ^[0-9]+$ ]]; then + echo "--timeout-multiplier must be followed by a positive integer" + + exit 1 + fi + + TIMEOUT_MULTIPLIER_OPTION="--timeout-multiplier $2" + + shift 2 +fi + # If no parameter is provided to this script all the acceptance tests are run. SCENARIO_TO_RUN=$1 @@ -206,4 +222,4 @@ prepareSelenium prepareDocker echo "Running tests" -docker exec $NEXTCLOUD_LOCAL_CONTAINER bash -c "cd nextcloud && tests/acceptance/run-local.sh allow-git-repository-modifications $SCENARIO_TO_RUN" +docker exec $NEXTCLOUD_LOCAL_CONTAINER bash -c "cd nextcloud && tests/acceptance/run-local.sh $TIMEOUT_MULTIPLIER_OPTION allow-git-repository-modifications $SCENARIO_TO_RUN" diff --git a/tests/lib/App/AppStore/Fetcher/AppFetcherTest.php b/tests/lib/App/AppStore/Fetcher/AppFetcherTest.php index 4a5222fa915..6c0d079a204 100644 --- a/tests/lib/App/AppStore/Fetcher/AppFetcherTest.php +++ b/tests/lib/App/AppStore/Fetcher/AppFetcherTest.php @@ -72,26 +72,16 @@ EOD; } public function testGetWithFilter() { - $this->config - ->expects($this->at(0)) - ->method('getSystemValue') - ->with('appstoreenabled', true) - ->willReturn(true); - $this->config - ->expects($this->at(1)) - ->method('getSystemValue') - ->with('appstoreenabled', true) - ->willReturn(true); - $this->config - ->expects($this->at(2)) - ->method('getSystemValue') - ->with('version') - ->willReturn('11.0.0.2'); - $this->config - ->expects($this->at(3)) - ->method('getSystemValue') - ->with('version') - ->willReturn('11.0.0.2'); + $this->config->method('getSystemValue') + ->willReturnCallback(function($key, $default) { + if ($key === 'appstoreenabled') { + return true; + } else if ($key === 'version') { + return '11.0.0.2'; + } else { + return $default; + } + }); $file = $this->createMock(ISimpleFile::class); $folder = $this->createMock(ISimpleFolder::class); diff --git a/tests/lib/App/AppStore/Fetcher/FetcherBase.php b/tests/lib/App/AppStore/Fetcher/FetcherBase.php index 1cec5270000..96e4f3ae81a 100644 --- a/tests/lib/App/AppStore/Fetcher/FetcherBase.php +++ b/tests/lib/App/AppStore/Fetcher/FetcherBase.php @@ -181,23 +181,16 @@ abstract class FetcherBase extends TestCase { } public function testGetWithAlreadyExistingFileAndOutdatedTimestamp() { - $this->config - ->expects($this->at(0)) - ->method('getSystemValue') - ->with('appstoreenabled', true) - ->willReturn(true); - $this->config - ->expects($this->at(1)) - ->method('getSystemValue') - ->with('appstoreenabled', true) - ->willReturn(true); - $this->config - ->expects($this->at(2)) - ->method('getSystemValue') - ->with( - $this->equalTo('version'), - $this->anything() - )->willReturn('11.0.0.2'); + $this->config->method('getSystemValue') + ->willReturnCallback(function($key, $default) { + if ($key === 'appstoreenabled') { + return true; + } else if ($key === 'version') { + return '11.0.0.2'; + } else { + return $default; + } + }); $folder = $this->createMock(ISimpleFolder::class); $file = $this->createMock(ISimpleFile::class); @@ -421,16 +414,14 @@ abstract class FetcherBase extends TestCase { } public function testGetWithExceptionInClient() { - $this->config - ->expects($this->at(0)) - ->method('getSystemValue') - ->with('appstoreenabled', true) - ->willReturn(true); - $this->config - ->expects($this->at(1)) - ->method('getSystemValue') - ->with('appstoreenabled', true) - ->willReturn(true); + $this->config->method('getSystemValue') + ->willReturnCallback(function($key, $default) { + if ($key === 'appstoreenabled') { + return true; + } else { + return $default; + } + }); $folder = $this->createMock(ISimpleFolder::class); $file = $this->createMock(ISimpleFile::class); @@ -448,10 +439,6 @@ abstract class FetcherBase extends TestCase { ->expects($this->at(0)) ->method('getContent') ->willReturn('{"timestamp":1200,"data":{"MyApp":{"id":"MyApp"}}}'); - $this->timeFactory - ->expects($this->at(0)) - ->method('getTime') - ->willReturn(1501); $client = $this->createMock(IClient::class); $this->clientService ->expects($this->once()) @@ -467,23 +454,16 @@ abstract class FetcherBase extends TestCase { } public function testGetMatchingETag() { - $this->config - ->expects($this->at(0)) - ->method('getSystemValue') - ->with('appstoreenabled', true) - ->willReturn(true); - $this->config - ->expects($this->at(1)) - ->method('getSystemValue') - ->with('appstoreenabled', true) - ->willReturn(true); - $this->config - ->expects($this->at(2)) - ->method('getSystemValue') - ->with( - $this->equalTo('version'), - $this->anything() - )->willReturn('11.0.0.2'); + $this->config->method('getSystemValue') + ->willReturnCallback(function($key, $default) { + if ($key === 'appstoreenabled') { + return true; + } else if ($key === 'version') { + return '11.0.0.2'; + } else { + return $default; + } + }); $folder = $this->createMock(ISimpleFolder::class); $file = $this->createMock(ISimpleFile::class); @@ -554,23 +534,16 @@ abstract class FetcherBase extends TestCase { } public function testGetNoMatchingETag() { - $this->config - ->expects($this->at(0)) - ->method('getSystemValue') - ->with('appstoreenabled', true) - ->willReturn(true); - $this->config - ->expects($this->at(1)) - ->method('getSystemValue') - ->with('appstoreenabled', true) - ->willReturn(true); - $this->config - ->expects($this->at(2)) - ->method('getSystemValue') - ->with( - $this->equalTo('version'), - $this->anything() - )->willReturn('11.0.0.2'); + $this->config->method('getSystemValue') + ->willReturnCallback(function($key, $default) { + if ($key === 'appstoreenabled') { + return true; + } else if ($key === 'version') { + return '11.0.0.2'; + } else { + return $default; + } + }); $folder = $this->createMock(ISimpleFolder::class); $file = $this->createMock(ISimpleFile::class); @@ -644,4 +617,82 @@ abstract class FetcherBase extends TestCase { ]; $this->assertSame($expected, $this->fetcher->get()); } + + + public function testFetchAfterUpgradeNoETag() { + $this->config->method('getSystemValue') + ->willReturnCallback(function($key, $default) { + if ($key === 'appstoreenabled') { + return true; + } else if ($key === 'version') { + return '11.0.0.3'; + } else { + return $default; + } + }); + + $folder = $this->createMock(ISimpleFolder::class); + $file = $this->createMock(ISimpleFile::class); + $this->appData + ->expects($this->once()) + ->method('getFolder') + ->with('/') + ->willReturn($folder); + $folder + ->expects($this->at(0)) + ->method('getFile') + ->with($this->fileName) + ->willReturn($file); + $file + ->expects($this->at(0)) + ->method('getContent') + ->willReturn('{"data":[{"id":"MyOldApp","abc":"def"}],"timestamp":1200,"ncversion":"11.0.0.2","ETag":"\"myETag\""}'); + $client = $this->createMock(IClient::class); + $this->clientService + ->expects($this->once()) + ->method('newClient') + ->willReturn($client); + $response = $this->createMock(IResponse::class); + $client + ->expects($this->once()) + ->method('get') + ->with( + $this->equalTo($this->endpoint), + $this->equalTo([]) + ) + ->willReturn($response); + $response->method('getStatusCode') + ->willReturn(200); + $response + ->expects($this->once()) + ->method('getBody') + ->willReturn('[{"id":"MyNewApp","foo":"foo"},{"id":"bar"}]'); + $response->method('getHeader') + ->with($this->equalTo('ETag')) + ->willReturn('"newETag"'); + $fileData = '{"data":[{"id":"MyNewApp","foo":"foo"},{"id":"bar"}],"timestamp":1501,"ncversion":"11.0.0.3","ETag":"\"newETag\""}'; + $file + ->expects($this->at(1)) + ->method('putContent') + ->with($fileData); + $file + ->expects($this->at(2)) + ->method('getContent') + ->willReturn($fileData); + $this->timeFactory + ->expects($this->once()) + ->method('getTime') + ->willReturn(1501); + + $expected = [ + [ + 'id' => 'MyNewApp', + 'foo' => 'foo', + ], + [ + 'id' => 'bar', + ], + ]; + $this->assertSame($expected, $this->fetcher->get()); + } } diff --git a/tests/lib/Cache/TestCache.php b/tests/lib/Cache/TestCache.php index 75ff65207ee..2642c014a78 100644 --- a/tests/lib/Cache/TestCache.php +++ b/tests/lib/Cache/TestCache.php @@ -53,21 +53,48 @@ abstract class TestCache extends \Test\TestCase { function testClear() { $value='ipsum lorum'; - $this->instance->set('1_value1', $value); - $this->instance->set('1_value2', $value); - $this->instance->set('2_value1', $value); - $this->instance->set('3_value1', $value); + $this->instance->set('1_value1', $value . '1'); + $this->instance->set('1_value2', $value . '2'); + $this->instance->set('2_value1', $value . '3'); + $this->instance->set('3_value1', $value . '4'); + $this->assertEquals([ + '1_value1' => 'ipsum lorum1', + '1_value2' => 'ipsum lorum2', + '2_value1' => 'ipsum lorum3', + '3_value1' => 'ipsum lorum4', + ], [ + '1_value1' => $this->instance->get('1_value1'), + '1_value2' => $this->instance->get('1_value2'), + '2_value1' => $this->instance->get('2_value1'), + '3_value1' => $this->instance->get('3_value1'), + ]); $this->assertTrue($this->instance->clear('1_')); - $this->assertFalse($this->instance->hasKey('1_value1')); - $this->assertFalse($this->instance->hasKey('1_value2')); - $this->assertTrue($this->instance->hasKey('2_value1')); - $this->assertTrue($this->instance->hasKey('3_value1')); + + $this->assertEquals([ + '1_value1' => null, + '1_value2' => null, + '2_value1' => 'ipsum lorum3', + '3_value1' => 'ipsum lorum4', + ], [ + '1_value1' => $this->instance->get('1_value1'), + '1_value2' => $this->instance->get('1_value2'), + '2_value1' => $this->instance->get('2_value1'), + '3_value1' => $this->instance->get('3_value1'), + ]); $this->assertTrue($this->instance->clear()); - $this->assertFalse($this->instance->hasKey('1_value1')); - $this->assertFalse($this->instance->hasKey('1_value2')); - $this->assertFalse($this->instance->hasKey('2_value1')); - $this->assertFalse($this->instance->hasKey('3_value1')); + + $this->assertEquals([ + '1_value1' => null, + '1_value2' => null, + '2_value1' => null, + '3_value1' => null, + ], [ + '1_value1' => $this->instance->get('1_value1'), + '1_value2' => $this->instance->get('1_value2'), + '2_value1' => $this->instance->get('2_value1'), + '3_value1' => $this->instance->get('3_value1'), + ]); } } diff --git a/tests/lib/Contacts/ContactsMenu/Providers/EMailproviderTest.php b/tests/lib/Contacts/ContactsMenu/Providers/EMailproviderTest.php index 2d82fa5d68e..353c8d6f58f 100644 --- a/tests/lib/Contacts/ContactsMenu/Providers/EMailproviderTest.php +++ b/tests/lib/Contacts/ContactsMenu/Providers/EMailproviderTest.php @@ -79,4 +79,28 @@ class EMailproviderTest extends TestCase { $this->provider->process($entry); } + public function testProcessEmptyAddress() { + $entry = $this->createMock(IEntry::class); + $action = $this->createMock(ILinkAction::class); + $iconUrl = 'https://example.com/img/actions/icon.svg'; + $this->urlGenerator->expects($this->once()) + ->method('imagePath') + ->willReturn('img/actions/icon.svg'); + $this->urlGenerator->expects($this->once()) + ->method('getAbsoluteURL') + ->with('img/actions/icon.svg') + ->willReturn($iconUrl); + $entry->expects($this->once()) + ->method('getEMailAddresses') + ->willReturn([ + '', + ]); + $this->actionFactory->expects($this->never()) + ->method('newEMailAction'); + $entry->expects($this->never()) + ->method('addAction'); + + $this->provider->process($entry); + } + } diff --git a/tests/lib/Memcache/RedisTest.php b/tests/lib/Memcache/RedisTest.php index e707f30fb5b..6a0a82f6aa7 100644 --- a/tests/lib/Memcache/RedisTest.php +++ b/tests/lib/Memcache/RedisTest.php @@ -24,6 +24,7 @@ class RedisTest extends Cache { }, E_WARNING ); + $instance = null; try { $instance = new \OC\Memcache\Redis(self::getUniqueID()); } catch (\RuntimeException $e) { @@ -34,6 +35,10 @@ class RedisTest extends Cache { self::markTestSkipped($errorOccurred); } + if ($instance === null) { + throw new \Exception('redis server is not reachable'); + } + if ($instance->set(self::getUniqueID(), self::getUniqueID()) === false) { self::markTestSkipped('redis server seems to be down.'); } diff --git a/tests/lib/Preview/GeneratorTest.php b/tests/lib/Preview/GeneratorTest.php index 50d46ae932d..f1383b0691b 100644 --- a/tests/lib/Preview/GeneratorTest.php +++ b/tests/lib/Preview/GeneratorTest.php @@ -169,6 +169,7 @@ class GeneratorTest extends \Test\TestCase { $image = $this->createMock(IImage::class); $image->method('width')->willReturn(2048); $image->method('height')->willReturn(2048); + $image->method('valid')->willReturn(true); $this->helper->method('getThumbnail') ->will($this->returnCallback(function ($provider, $file, $x, $y) use ($invalidProvider, $validProvider, $image) { @@ -217,6 +218,7 @@ class GeneratorTest extends \Test\TestCase { ->with(128); $image->method('data') ->willReturn('my resized data'); + $image->method('valid')->willReturn(true); $previewFile->expects($this->once()) ->method('putContent') @@ -379,6 +381,7 @@ class GeneratorTest extends \Test\TestCase { ->willReturn($image); $image->method('height')->willReturn($maxY); $image->method('width')->willReturn($maxX); + $image->method('valid')->willReturn(true); $preview = $this->createMock(ISimpleFile::class); $previewFolder->method('newFile') diff --git a/tests/lib/Security/Bruteforce/ThrottlerTest.php b/tests/lib/Security/Bruteforce/ThrottlerTest.php index 9679d0c1759..dac12a00dcd 100644 --- a/tests/lib/Security/Bruteforce/ThrottlerTest.php +++ b/tests/lib/Security/Bruteforce/ThrottlerTest.php @@ -54,19 +54,19 @@ class ThrottlerTest extends TestCase { $this->logger, $this->config ); - return parent::setUp(); + parent::setUp(); } public function testCutoff() { // precisely 31 second shy of 12 hours - $cutoff = $this->invokePrivate($this->throttler, 'getCutoff', [43169]); + $cutoff = self::invokePrivate($this->throttler, 'getCutoff', [43169]); $this->assertSame(0, $cutoff->y); $this->assertSame(0, $cutoff->m); $this->assertSame(0, $cutoff->d); $this->assertSame(11, $cutoff->h); $this->assertSame(59, $cutoff->i); $this->assertSame(29, $cutoff->s); - $cutoff = $this->invokePrivate($this->throttler, 'getCutoff', [86401]); + $cutoff = self::invokePrivate($this->throttler, 'getCutoff', [86401]); $this->assertSame(0, $cutoff->y); $this->assertSame(0, $cutoff->m); $this->assertSame(1, $cutoff->d); @@ -136,16 +136,23 @@ class ThrottlerTest extends TestCase { } /** - * @dataProvider dataIsIPWhitelisted - * * @param string $ip * @param string[] $whitelists * @param bool $isWhiteListed + * @param bool $enabled */ - public function testIsIPWhitelisted($ip, $whitelists, $isWhiteListed) { + private function isIpWhiteListedHelper($ip, + $whitelists, + $isWhiteListed, + $enabled) { $this->config->method('getAppKeys') ->with($this->equalTo('bruteForce')) ->willReturn(array_keys($whitelists)); + $this->config + ->expects($this->once()) + ->method('getSystemValue') + ->with('auth.bruteforce.protection.enabled', true) + ->willReturn($enabled); $this->config->method('getAppValue') ->will($this->returnCallback(function($app, $key, $default) use ($whitelists) { @@ -159,8 +166,44 @@ class ThrottlerTest extends TestCase { })); $this->assertSame( + ($enabled === false) ? true : $isWhiteListed, + self::invokePrivate($this->throttler, 'isIPWhitelisted', [$ip]) + ); + } + + /** + * @dataProvider dataIsIPWhitelisted + * + * @param string $ip + * @param string[] $whitelists + * @param bool $isWhiteListed + */ + public function testIsIpWhiteListedWithEnabledProtection($ip, + $whitelists, + $isWhiteListed) { + $this->isIpWhiteListedHelper( + $ip, + $whitelists, + $isWhiteListed, + true + ); + } + + /** + * @dataProvider dataIsIPWhitelisted + * + * @param string $ip + * @param string[] $whitelists + * @param bool $isWhiteListed + */ + public function testIsIpWhiteListedWithDisabledProtection($ip, + $whitelists, + $isWhiteListed) { + $this->isIpWhiteListedHelper( + $ip, + $whitelists, $isWhiteListed, - $this->invokePrivate($this->throttler, 'isIPWhitelisted', [$ip]) + false ); } } diff --git a/tests/redis.config.php b/tests/redis.config.php new file mode 100644 index 00000000000..2ff46ec6728 --- /dev/null +++ b/tests/redis.config.php @@ -0,0 +1,12 @@ +<?php + +$CONFIG = [ + 'memcache.local' => '\\OC\\Memcache\\Redis', + 'memcache.distributed' => '\\OC\\Memcache\\Redis', + 'memcache.locking' => '\\OC\\Memcache\\Redis', + 'redis' => [ + 'host' => 'localhost', + 'port' => 6379, + 'timeout' => 0, + ], +]; diff --git a/themes/example/defaults.php b/themes/example/defaults.php index 6e0364a3dca..27d0cccaf60 100644 --- a/themes/example/defaults.php +++ b/themes/example/defaults.php @@ -121,7 +121,7 @@ class OC_Theme { * @return string short footer */ public function getShortFooter() { - $footer = '© 2016 <a href="'.$this->getBaseUrl().'" target="_blank\">'.$this->getEntity().'</a>'. + $footer = '© 2017 <a href="'.$this->getBaseUrl().'" target="_blank\">'.$this->getEntity().'</a>'. '<br/>' . $this->getSlogan(); return $footer; @@ -132,14 +132,14 @@ class OC_Theme { * @return string long footer */ public function getLongFooter() { - $footer = '© 2016 <a href="'.$this->getBaseUrl().'" target="_blank\">'.$this->getEntity().'</a>'. + $footer = '© 2017 <a href="'.$this->getBaseUrl().'" target="_blank\">'.$this->getEntity().'</a>'. '<br/>' . $this->getSlogan(); return $footer; } public function buildDocLinkToKey($key) { - return $this->getDocBaseUrl() . '/server/11/go.php?to=' . $key; + return $this->getDocBaseUrl() . '/server/12/go.php?to=' . $key; } diff --git a/version.php b/version.php index 1e44a19368e..4f428c128aa 100644 --- a/version.php +++ b/version.php @@ -26,10 +26,10 @@ // between betas, final and RCs. This is _not_ the public version number. Reset minor/patchlevel // when updating major/minor version number. -$OC_Version = array(12, 0, 0, 15); +$OC_Version = array(12, 0, 0, 18); // The human readable string -$OC_VersionString = '12.0 alpha'; +$OC_VersionString = '12.0 beta 2'; $OC_VersionCanBeUpgradedFrom = [ 'nextcloud' => [ |