diff options
Diffstat (limited to 'apps')
221 files changed, 2928 insertions, 217 deletions
diff --git a/apps/dav/composer/composer/autoload_classmap.php b/apps/dav/composer/composer/autoload_classmap.php index 764f94ef665..b9708ea5589 100644 --- a/apps/dav/composer/composer/autoload_classmap.php +++ b/apps/dav/composer/composer/autoload_classmap.php @@ -216,6 +216,7 @@ return array( 'OCA\\DAV\\Connector\\Sabre\\Node' => $baseDir . '/../lib/Connector/Sabre/Node.php', 'OCA\\DAV\\Connector\\Sabre\\ObjectTree' => $baseDir . '/../lib/Connector/Sabre/ObjectTree.php', 'OCA\\DAV\\Connector\\Sabre\\Principal' => $baseDir . '/../lib/Connector/Sabre/Principal.php', + 'OCA\\DAV\\Connector\\Sabre\\PropFindMonitorPlugin' => $baseDir . '/../lib/Connector/Sabre/PropFindMonitorPlugin.php', 'OCA\\DAV\\Connector\\Sabre\\PropfindCompressionPlugin' => $baseDir . '/../lib/Connector/Sabre/PropfindCompressionPlugin.php', 'OCA\\DAV\\Connector\\Sabre\\PublicAuth' => $baseDir . '/../lib/Connector/Sabre/PublicAuth.php', 'OCA\\DAV\\Connector\\Sabre\\QuotaPlugin' => $baseDir . '/../lib/Connector/Sabre/QuotaPlugin.php', diff --git a/apps/dav/composer/composer/autoload_static.php b/apps/dav/composer/composer/autoload_static.php index f3d1eacfcd0..75ac3350160 100644 --- a/apps/dav/composer/composer/autoload_static.php +++ b/apps/dav/composer/composer/autoload_static.php @@ -231,6 +231,7 @@ class ComposerStaticInitDAV 'OCA\\DAV\\Connector\\Sabre\\Node' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Node.php', 'OCA\\DAV\\Connector\\Sabre\\ObjectTree' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ObjectTree.php', 'OCA\\DAV\\Connector\\Sabre\\Principal' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Principal.php', + 'OCA\\DAV\\Connector\\Sabre\\PropFindMonitorPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/PropFindMonitorPlugin.php', 'OCA\\DAV\\Connector\\Sabre\\PropfindCompressionPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/PropfindCompressionPlugin.php', 'OCA\\DAV\\Connector\\Sabre\\PublicAuth' => __DIR__ . '/..' . '/../lib/Connector/Sabre/PublicAuth.php', 'OCA\\DAV\\Connector\\Sabre\\QuotaPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/QuotaPlugin.php', diff --git a/apps/dav/lib/Connector/Sabre/PropFindMonitorPlugin.php b/apps/dav/lib/Connector/Sabre/PropFindMonitorPlugin.php new file mode 100644 index 00000000000..130d4562146 --- /dev/null +++ b/apps/dav/lib/Connector/Sabre/PropFindMonitorPlugin.php @@ -0,0 +1,78 @@ +<?php + +declare(strict_types = 1); + +/** + * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +namespace OCA\DAV\Connector\Sabre; + +use Sabre\DAV\Server as SabreServer; +use Sabre\DAV\ServerPlugin; +use Sabre\HTTP\RequestInterface; +use Sabre\HTTP\ResponseInterface; + +/** + * This plugin runs after requests and logs an error if a plugin is detected + * to be doing too many SQL requests. + */ +class PropFindMonitorPlugin extends ServerPlugin { + + /** + * A Plugin can scan up to this amount of nodes without an error being + * reported. + */ + public const THRESHOLD_NODES = 50; + + /** + * A plugin can use up to this amount of queries per node. + */ + public const THRESHOLD_QUERY_FACTOR = 1; + + private SabreServer $server; + + public function initialize(SabreServer $server): void { + $this->server = $server; + $this->server->on('afterResponse', [$this, 'afterResponse']); + } + + public function afterResponse( + RequestInterface $request, + ResponseInterface $response): void { + if (!$this->server instanceof Server) { + return; + } + + $pluginQueries = $this->server->getPluginQueries(); + if (empty($pluginQueries)) { + return; + } + $maxDepth = max(0, ...array_keys($pluginQueries)); + // entries at the top are usually not interesting + unset($pluginQueries[$maxDepth]); + + $logger = $this->server->getLogger(); + foreach ($pluginQueries as $depth => $propFinds) { + foreach ($propFinds as $pluginName => $propFind) { + [ + 'queries' => $queries, + 'nodes' => $nodes + ] = $propFind; + if ($queries === 0 || $nodes > $queries || $nodes < self::THRESHOLD_NODES + || $queries < $nodes * self::THRESHOLD_QUERY_FACTOR) { + continue; + } + $logger->error( + '{name} scanned {scans} nodes with {count} queries in depth {depth}/{maxDepth}. This is bad for performance, please report to the plugin developer!', [ + 'name' => $pluginName, + 'scans' => $nodes, + 'count' => $queries, + 'depth' => $depth, + 'maxDepth' => $maxDepth, + ] + ); + } + } + } +} diff --git a/apps/dav/lib/Connector/Sabre/Server.php b/apps/dav/lib/Connector/Sabre/Server.php index f3bfac1d6e0..dda9c29b763 100644 --- a/apps/dav/lib/Connector/Sabre/Server.php +++ b/apps/dav/lib/Connector/Sabre/Server.php @@ -7,7 +7,11 @@ */ namespace OCA\DAV\Connector\Sabre; +use OC\DB\Connection; +use Override; use Sabre\DAV\Exception; +use Sabre\DAV\INode; +use Sabre\DAV\PropFind; use Sabre\DAV\Version; use TypeError; @@ -22,6 +26,14 @@ class Server extends \Sabre\DAV\Server { /** @var CachingTree $tree */ /** + * Tracks queries done by plugins. + * @var array<int, array<string, array{nodes:int, queries:int}>> + */ + private array $pluginQueries = []; + + public bool $debugEnabled = false; + + /** * @see \Sabre\DAV\Server */ public function __construct($treeOrNode = null) { @@ -30,6 +42,97 @@ class Server extends \Sabre\DAV\Server { $this->enablePropfindDepthInfinity = true; } + #[Override] + public function once( + string $eventName, + callable $callBack, + int $priority = 100, + ): void { + $this->debugEnabled ? $this->monitorPropfindQueries( + parent::once(...), + ...func_get_args(), + ) : parent::once(...func_get_args()); + } + + #[Override] + public function on( + string $eventName, + callable $callBack, + int $priority = 100, + ): void { + $this->debugEnabled ? $this->monitorPropfindQueries( + parent::on(...), + ...func_get_args(), + ) : parent::on(...func_get_args()); + } + + /** + * Wraps the handler $callBack into a query-monitoring function and calls + * $parentFn to register it. + */ + private function monitorPropfindQueries( + callable $parentFn, + string $eventName, + callable $callBack, + int $priority = 100, + ): void { + if ($eventName !== 'propFind') { + $parentFn($eventName, $callBack, $priority); + return; + } + + $pluginName = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 3)[2]['class'] ?? 'unknown'; + $callback = $this->getMonitoredCallback($callBack, $pluginName); + + $parentFn($eventName, $callback, $priority); + } + + /** + * Returns a callable that wraps $callBack with code that monitors and + * records queries per plugin. + */ + private function getMonitoredCallback( + callable $callBack, + string $pluginName, + ): callable { + return function (PropFind $propFind, INode $node) use ( + $callBack, + $pluginName, + ) { + $connection = \OCP\Server::get(Connection::class); + $queriesBefore = $connection->getStats()['executed']; + $result = $callBack($propFind, $node); + $queriesAfter = $connection->getStats()['executed']; + $this->trackPluginQueries( + $pluginName, + $queriesAfter - $queriesBefore, + $propFind->getDepth() + ); + + return $result; + }; + } + + /** + * Tracks the queries executed by a specific plugin. + */ + private function trackPluginQueries( + string $pluginName, + int $queriesExecuted, + int $depth, + ): void { + // report only nodes which cause queries to the DB + if ($queriesExecuted === 0) { + return; + } + + $this->pluginQueries[$depth][$pluginName]['nodes'] + = ($this->pluginQueries[$depth][$pluginName]['nodes'] ?? 0) + 1; + + $this->pluginQueries[$depth][$pluginName]['queries'] + = ($this->pluginQueries[$depth][$pluginName]['queries'] ?? 0) + $queriesExecuted; + } + /** * * @return void @@ -115,4 +218,13 @@ class Server extends \Sabre\DAV\Server { $this->sapi->sendResponse($this->httpResponse); } } + + /** + * Returns queries executed by registered plugins. + * + * @return array<int, array<string, array{nodes:int, queries:int}>> + */ + public function getPluginQueries(): array { + return $this->pluginQueries; + } } diff --git a/apps/dav/lib/Connector/Sabre/ServerFactory.php b/apps/dav/lib/Connector/Sabre/ServerFactory.php index 3749b506d16..a6a27057177 100644 --- a/apps/dav/lib/Connector/Sabre/ServerFactory.php +++ b/apps/dav/lib/Connector/Sabre/ServerFactory.php @@ -68,6 +68,7 @@ class ServerFactory { Plugin $authPlugin, callable $viewCallBack, ): Server { + $debugEnabled = $this->config->getSystemValue('debug', false); // Fire up server if ($isPublicShare) { $rootCollection = new SimpleCollection('root'); @@ -89,6 +90,10 @@ class ServerFactory { )); $server->addPlugin(new AnonymousOptionsPlugin()); $server->addPlugin($authPlugin); + if ($debugEnabled) { + $server->debugEnabled = $debugEnabled; + $server->addPlugin(new PropFindMonitorPlugin()); + } // FIXME: The following line is a workaround for legacy components relying on being able to send a GET to / $server->addPlugin(new DummyGetResponsePlugin()); $server->addPlugin(new ExceptionLoggerPlugin('webdav', $this->logger)); @@ -117,7 +122,8 @@ class ServerFactory { } // wait with registering these until auth is handled and the filesystem is setup - $server->on('beforeMethod:*', function () use ($server, $tree, $viewCallBack, $isPublicShare, $rootCollection): void { + $server->on('beforeMethod:*', function () use ($server, $tree, + $viewCallBack, $isPublicShare, $rootCollection, $debugEnabled): void { // ensure the skeleton is copied $userFolder = \OC::$server->getUserFolder(); @@ -181,7 +187,7 @@ class ServerFactory { \OCP\Server::get(IFilenameValidator::class), \OCP\Server::get(IAccountManager::class), false, - !$this->config->getSystemValue('debug', false) + !$debugEnabled ) ); $server->addPlugin(new QuotaPlugin($view)); diff --git a/apps/dav/lib/DAV/CustomPropertiesBackend.php b/apps/dav/lib/DAV/CustomPropertiesBackend.php index f3fff11b3da..f9a4f8ee986 100644 --- a/apps/dav/lib/DAV/CustomPropertiesBackend.php +++ b/apps/dav/lib/DAV/CustomPropertiesBackend.php @@ -10,9 +10,9 @@ namespace OCA\DAV\DAV; use Exception; use OCA\DAV\CalDAV\Calendar; +use OCA\DAV\CalDAV\CalendarObject; use OCA\DAV\CalDAV\DefaultCalendarValidator; use OCA\DAV\Connector\Sabre\Directory; -use OCA\DAV\Connector\Sabre\FilesPlugin; use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\IDBConnection; use OCP\IUser; @@ -66,38 +66,16 @@ class CustomPropertiesBackend implements BackendInterface { '{DAV:}getetag', '{DAV:}quota-used-bytes', '{DAV:}quota-available-bytes', - '{http://owncloud.org/ns}permissions', - '{http://owncloud.org/ns}downloadURL', - '{http://owncloud.org/ns}dDC', - '{http://owncloud.org/ns}size', - '{http://nextcloud.org/ns}is-encrypted', - - // Currently, returning null from any propfind handler would still trigger the backend, - // so we add all known Nextcloud custom properties in here to avoid that - - // text app - '{http://nextcloud.org/ns}rich-workspace', - '{http://nextcloud.org/ns}rich-workspace-file', - // groupfolders - '{http://nextcloud.org/ns}acl-enabled', - '{http://nextcloud.org/ns}acl-can-manage', - '{http://nextcloud.org/ns}acl-list', - '{http://nextcloud.org/ns}inherited-acl-list', - '{http://nextcloud.org/ns}group-folder-id', - // files_lock - '{http://nextcloud.org/ns}lock', - '{http://nextcloud.org/ns}lock-owner-type', - '{http://nextcloud.org/ns}lock-owner', - '{http://nextcloud.org/ns}lock-owner-displayname', - '{http://nextcloud.org/ns}lock-owner-editor', - '{http://nextcloud.org/ns}lock-time', - '{http://nextcloud.org/ns}lock-timeout', - '{http://nextcloud.org/ns}lock-token', - // photos - '{http://nextcloud.org/ns}realpath', - '{http://nextcloud.org/ns}nbItems', - '{http://nextcloud.org/ns}face-detections', - '{http://nextcloud.org/ns}face-preview-image', + ]; + + /** + * Allowed properties for the oc/nc namespace, all other properties in the namespace are ignored + * + * @var string[] + */ + private const ALLOWED_NC_PROPERTIES = [ + '{http://owncloud.org/ns}calendar-enabled', + '{http://owncloud.org/ns}enabled', ]; /** @@ -155,14 +133,9 @@ class CustomPropertiesBackend implements BackendInterface { public function propFind($path, PropFind $propFind) { $requestedProps = $propFind->get404Properties(); - // these might appear - $requestedProps = array_diff( - $requestedProps, - self::IGNORED_PROPERTIES, - ); $requestedProps = array_filter( $requestedProps, - fn ($prop) => !str_starts_with($prop, FilesPlugin::FILE_METADATA_PREFIX), + $this->isPropertyAllowed(...), ); // substr of calendars/ => path is inside the CalDAV component @@ -224,6 +197,11 @@ class CustomPropertiesBackend implements BackendInterface { $this->cacheDirectory($path, $node); } + if ($node instanceof CalendarObject) { + // No custom properties supported on individual events + return; + } + // First fetch the published properties (set by another user), then get the ones set by // the current user. If both are set then the latter as priority. foreach ($this->getPublishedProperties($path, $requestedProps) as $propName => $propValue) { @@ -244,6 +222,16 @@ class CustomPropertiesBackend implements BackendInterface { } } + private function isPropertyAllowed(string $property): bool { + if (in_array($property, self::IGNORED_PROPERTIES)) { + return false; + } + if (str_starts_with($property, '{http://owncloud.org/ns}') || str_starts_with($property, '{http://nextcloud.org/ns}')) { + return in_array($property, self::ALLOWED_NC_PROPERTIES); + } + return true; + } + /** * Updates properties for a path * diff --git a/apps/dav/lib/Server.php b/apps/dav/lib/Server.php index f81c7fa6f29..a92e162f1b0 100644 --- a/apps/dav/lib/Server.php +++ b/apps/dav/lib/Server.php @@ -45,6 +45,7 @@ use OCA\DAV\Connector\Sabre\FilesReportPlugin; use OCA\DAV\Connector\Sabre\LockPlugin; use OCA\DAV\Connector\Sabre\MaintenancePlugin; use OCA\DAV\Connector\Sabre\PropfindCompressionPlugin; +use OCA\DAV\Connector\Sabre\PropFindMonitorPlugin; use OCA\DAV\Connector\Sabre\QuotaPlugin; use OCA\DAV\Connector\Sabre\RequestIdHeaderPlugin; use OCA\DAV\Connector\Sabre\SharesPlugin; @@ -108,6 +109,7 @@ class Server { private IRequest $request, private string $baseUri, ) { + $debugEnabled = \OCP\Server::get(IConfig::class)->getSystemValue('debug', false); $this->profiler = \OCP\Server::get(IProfiler::class); if ($this->profiler->isEnabled()) { /** @var IEventLogger $eventLogger */ @@ -120,6 +122,7 @@ class Server { $root = new RootCollection(); $this->server = new \OCA\DAV\Connector\Sabre\Server(new CachingTree($root)); + $this->server->setLogger($logger); // Add maintenance plugin $this->server->addPlugin(new MaintenancePlugin(\OCP\Server::get(IConfig::class), \OC::$server->getL10N('dav'))); @@ -167,7 +170,9 @@ class Server { $authPlugin->addBackend($authBackend); // debugging - if (\OCP\Server::get(IConfig::class)->getSystemValue('debug', false)) { + if ($debugEnabled) { + $this->server->debugEnabled = true; + $this->server->addPlugin(new PropFindMonitorPlugin()); $this->server->addPlugin(new \Sabre\DAV\Browser\Plugin()); } else { $this->server->addPlugin(new DummyGetResponsePlugin()); diff --git a/apps/dav/tests/unit/Connector/Sabre/PropFindMonitorPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/PropFindMonitorPluginTest.php new file mode 100644 index 00000000000..b528c3d731c --- /dev/null +++ b/apps/dav/tests/unit/Connector/Sabre/PropFindMonitorPluginTest.php @@ -0,0 +1,123 @@ +<?php + +/** + * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +namespace unit\Connector\Sabre; + +use OCA\DAV\Connector\Sabre\PropFindMonitorPlugin; +use OCA\DAV\Connector\Sabre\Server; +use PHPUnit\Framework\MockObject\MockObject; +use Psr\Log\LoggerInterface; +use Sabre\HTTP\Request; +use Sabre\HTTP\Response; +use Test\TestCase; + +class PropFindMonitorPluginTest extends TestCase { + + private PropFindMonitorPlugin $plugin; + private Server&MockObject $server; + private LoggerInterface&MockObject $logger; + private Request&MockObject $request; + private Response&MockObject $response; + + public static function dataTest(): array { + $minQueriesTrigger = PropFindMonitorPlugin::THRESHOLD_QUERY_FACTOR + * PropFindMonitorPlugin::THRESHOLD_NODES; + return [ + 'No queries logged' => [[], 0], + 'Plugins with queries in less than threshold nodes should not be logged' => [ + [ + [ + 'PluginName' => ['queries' => 100, 'nodes' + => PropFindMonitorPlugin::THRESHOLD_NODES - 1] + ], + [], + ], + 0 + ], + 'Plugins with query-to-node ratio less than threshold should not be logged' => [ + [ + [ + 'PluginName' => [ + 'queries' => $minQueriesTrigger - 1, + 'nodes' => PropFindMonitorPlugin::THRESHOLD_NODES ], + ], + [], + ], + 0 + ], + 'Plugins with more nodes scanned than queries executed should not be logged' => [ + [ + [ + 'PluginName' => [ + 'queries' => $minQueriesTrigger, + 'nodes' => PropFindMonitorPlugin::THRESHOLD_NODES * 2], + ], + [], + ], + 0 + ], + 'Plugins with queries only in highest depth level should not be logged' => [ + [ + [ + 'PluginName' => [ + 'queries' => $minQueriesTrigger, + 'nodes' => PropFindMonitorPlugin::THRESHOLD_NODES - 1 + ] + ], + [ + 'PluginName' => [ + 'queries' => $minQueriesTrigger * 2, + 'nodes' => PropFindMonitorPlugin::THRESHOLD_NODES + ] + ] + ], + 0 + ], + 'Plugins with too many queries should be logged' => [ + [ + [ + 'FirstPlugin' => [ + 'queries' => $minQueriesTrigger, + 'nodes' => PropFindMonitorPlugin::THRESHOLD_NODES, + ], + 'SecondPlugin' => [ + 'queries' => $minQueriesTrigger, + 'nodes' => PropFindMonitorPlugin::THRESHOLD_NODES, + ] + ], + [] + ], + 2 + ] + ]; + } + + /** + * @dataProvider dataTest + */ + public function test(array $queries, $expectedLogCalls): void { + $this->plugin->initialize($this->server); + $this->server->expects($this->once())->method('getPluginQueries') + ->willReturn($queries); + + $this->server->expects(empty($queries) ? $this->never() : $this->once()) + ->method('getLogger') + ->willReturn($this->logger); + + $this->logger->expects($this->exactly($expectedLogCalls))->method('error'); + $this->plugin->afterResponse($this->request, $this->response); + } + + protected function setUp(): void { + parent::setUp(); + + $this->plugin = new PropFindMonitorPlugin(); + $this->server = $this->createMock(Server::class); + $this->logger = $this->createMock(LoggerInterface::class); + $this->request = $this->createMock(Request::class); + $this->response = $this->createMock(Response::class); + } +} diff --git a/apps/federatedfilesharing/l10n/de.js b/apps/federatedfilesharing/l10n/de.js index a2a39fc7d09..c3af93170d2 100644 --- a/apps/federatedfilesharing/l10n/de.js +++ b/apps/federatedfilesharing/l10n/de.js @@ -47,6 +47,7 @@ OC.L10N.register( "Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Teile mit mir über meine #Nextcloud Federated-Cloud-ID, siehe {url}", "Share with me through my #Nextcloud Federated Cloud ID" : "Teile mit mir über meine #Nextcloud Federated-Cloud-ID", "Share with me via Nextcloud" : "Teile mit mir über Nextcloud", + "Cloud ID copied" : "Cloud-ID kopiert", "Copy" : "Kopieren", "Clipboard not available. Please copy the cloud ID manually." : "Zwischenablage nicht verfügbar. Bitte die Cloud-ID manuell kopieren.", "Copied!" : "Kopiert!", diff --git a/apps/federatedfilesharing/l10n/de.json b/apps/federatedfilesharing/l10n/de.json index 61487b3a151..9fe515ca47a 100644 --- a/apps/federatedfilesharing/l10n/de.json +++ b/apps/federatedfilesharing/l10n/de.json @@ -45,6 +45,7 @@ "Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Teile mit mir über meine #Nextcloud Federated-Cloud-ID, siehe {url}", "Share with me through my #Nextcloud Federated Cloud ID" : "Teile mit mir über meine #Nextcloud Federated-Cloud-ID", "Share with me via Nextcloud" : "Teile mit mir über Nextcloud", + "Cloud ID copied" : "Cloud-ID kopiert", "Copy" : "Kopieren", "Clipboard not available. Please copy the cloud ID manually." : "Zwischenablage nicht verfügbar. Bitte die Cloud-ID manuell kopieren.", "Copied!" : "Kopiert!", diff --git a/apps/federatedfilesharing/l10n/de_DE.js b/apps/federatedfilesharing/l10n/de_DE.js index fdbd16fd8a1..015b5242d3c 100644 --- a/apps/federatedfilesharing/l10n/de_DE.js +++ b/apps/federatedfilesharing/l10n/de_DE.js @@ -47,6 +47,7 @@ OC.L10N.register( "Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Teilen Sie mit mir über meine #Nextcloud Federated-Cloud-ID, siehe {url}", "Share with me through my #Nextcloud Federated Cloud ID" : "Teilen Sie mit mir über meine #Nextcloud Federated-Cloud-ID", "Share with me via Nextcloud" : "Teilen Sie mit mir über Nextcloud", + "Cloud ID copied" : "Cloud-ID kopiert", "Copy" : "Kopieren", "Clipboard not available. Please copy the cloud ID manually." : "Zwischenablage nicht verfügbar. Bitte die Cloud-ID manuell kopieren.", "Copied!" : "Kopiert!", diff --git a/apps/federatedfilesharing/l10n/de_DE.json b/apps/federatedfilesharing/l10n/de_DE.json index 2b24bf50a75..6153178dbe0 100644 --- a/apps/federatedfilesharing/l10n/de_DE.json +++ b/apps/federatedfilesharing/l10n/de_DE.json @@ -45,6 +45,7 @@ "Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Teilen Sie mit mir über meine #Nextcloud Federated-Cloud-ID, siehe {url}", "Share with me through my #Nextcloud Federated Cloud ID" : "Teilen Sie mit mir über meine #Nextcloud Federated-Cloud-ID", "Share with me via Nextcloud" : "Teilen Sie mit mir über Nextcloud", + "Cloud ID copied" : "Cloud-ID kopiert", "Copy" : "Kopieren", "Clipboard not available. Please copy the cloud ID manually." : "Zwischenablage nicht verfügbar. Bitte die Cloud-ID manuell kopieren.", "Copied!" : "Kopiert!", diff --git a/apps/federatedfilesharing/l10n/en_GB.js b/apps/federatedfilesharing/l10n/en_GB.js index e59b836557d..37fd934c619 100644 --- a/apps/federatedfilesharing/l10n/en_GB.js +++ b/apps/federatedfilesharing/l10n/en_GB.js @@ -47,6 +47,7 @@ OC.L10N.register( "Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Share with me through my #Nextcloud Federated Cloud ID, see {url}", "Share with me through my #Nextcloud Federated Cloud ID" : "Share with me through my #Nextcloud Federated Cloud ID", "Share with me via Nextcloud" : "Share with me via Nextcloud", + "Cloud ID copied" : "Cloud ID copied", "Copy" : "Copy", "Clipboard not available. Please copy the cloud ID manually." : "Clipboard not available. Please copy the cloud ID manually.", "Copied!" : "Copied!", diff --git a/apps/federatedfilesharing/l10n/en_GB.json b/apps/federatedfilesharing/l10n/en_GB.json index 2c8ae8ec58d..8da84456650 100644 --- a/apps/federatedfilesharing/l10n/en_GB.json +++ b/apps/federatedfilesharing/l10n/en_GB.json @@ -45,6 +45,7 @@ "Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Share with me through my #Nextcloud Federated Cloud ID, see {url}", "Share with me through my #Nextcloud Federated Cloud ID" : "Share with me through my #Nextcloud Federated Cloud ID", "Share with me via Nextcloud" : "Share with me via Nextcloud", + "Cloud ID copied" : "Cloud ID copied", "Copy" : "Copy", "Clipboard not available. Please copy the cloud ID manually." : "Clipboard not available. Please copy the cloud ID manually.", "Copied!" : "Copied!", diff --git a/apps/federatedfilesharing/l10n/it.js b/apps/federatedfilesharing/l10n/it.js index 2c5b24bf2e9..9ae5434a148 100644 --- a/apps/federatedfilesharing/l10n/it.js +++ b/apps/federatedfilesharing/l10n/it.js @@ -29,6 +29,8 @@ OC.L10N.register( "When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book." : "Se abilitata, l'input di ricerca durante la creazione delle condivisioni verrà inviato a un sistema esterno che fornisce una rubrica pubblica e globale.", "This is used to retrieve the federated cloud ID to make federated sharing easier." : "Serve a recuperare l'ID cloud federato per semplificare la condivisione federata.", "Moreover, email addresses of users might be sent to that system in order to verify them." : "Inoltre, gli indirizzi email degli utenti potrebbero essere inviati a tale sistema per verificarli.", + "Disable querying" : "Disabilita le query", + "Enable querying" : "Abilita query", "Unable to update federated files sharing config" : "Impossibile aggiornare la configurazione della condivisione federata dei file", "Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing." : "Regola come le persone possono condividere tra i server. Ciò include anche le condivisioni tra persone in questo server se usano la condivisione federata.", "Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)" : "Consenti alle persone su questo server di inviare condivisioni ad altri server (questa opzione consente anche l'accesso WebDAV alle condivisioni pubbliche)", @@ -42,6 +44,7 @@ OC.L10N.register( "Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Condividi con me attraverso il mio ID di cloud federato #Nextcloud, vedi {url}", "Share with me through my #Nextcloud Federated Cloud ID" : "Condividi con me attraverso il mio ID di cloud federata #Nextcloud", "Share with me via Nextcloud" : "Condividi con me tramite Nextcloud", + "Cloud ID copied" : "ID cloud copiato", "Copy" : "Copia", "Clipboard not available. Please copy the cloud ID manually." : "Appunti non disponibili. Copia manualmente l'ID cloud.", "Copied!" : "Copiato!", diff --git a/apps/federatedfilesharing/l10n/it.json b/apps/federatedfilesharing/l10n/it.json index 7ce34d9eb29..bbd87e22be5 100644 --- a/apps/federatedfilesharing/l10n/it.json +++ b/apps/federatedfilesharing/l10n/it.json @@ -27,6 +27,8 @@ "When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book." : "Se abilitata, l'input di ricerca durante la creazione delle condivisioni verrà inviato a un sistema esterno che fornisce una rubrica pubblica e globale.", "This is used to retrieve the federated cloud ID to make federated sharing easier." : "Serve a recuperare l'ID cloud federato per semplificare la condivisione federata.", "Moreover, email addresses of users might be sent to that system in order to verify them." : "Inoltre, gli indirizzi email degli utenti potrebbero essere inviati a tale sistema per verificarli.", + "Disable querying" : "Disabilita le query", + "Enable querying" : "Abilita query", "Unable to update federated files sharing config" : "Impossibile aggiornare la configurazione della condivisione federata dei file", "Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing." : "Regola come le persone possono condividere tra i server. Ciò include anche le condivisioni tra persone in questo server se usano la condivisione federata.", "Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)" : "Consenti alle persone su questo server di inviare condivisioni ad altri server (questa opzione consente anche l'accesso WebDAV alle condivisioni pubbliche)", @@ -40,6 +42,7 @@ "Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Condividi con me attraverso il mio ID di cloud federato #Nextcloud, vedi {url}", "Share with me through my #Nextcloud Federated Cloud ID" : "Condividi con me attraverso il mio ID di cloud federata #Nextcloud", "Share with me via Nextcloud" : "Condividi con me tramite Nextcloud", + "Cloud ID copied" : "ID cloud copiato", "Copy" : "Copia", "Clipboard not available. Please copy the cloud ID manually." : "Appunti non disponibili. Copia manualmente l'ID cloud.", "Copied!" : "Copiato!", diff --git a/apps/federatedfilesharing/l10n/pl.js b/apps/federatedfilesharing/l10n/pl.js index 6b3624cb642..dbf8f4be643 100644 --- a/apps/federatedfilesharing/l10n/pl.js +++ b/apps/federatedfilesharing/l10n/pl.js @@ -47,6 +47,7 @@ OC.L10N.register( "Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Udostępnij mi poprzez mój ID #Nextcloud Chmury Federacyjnej, zobacz {url}", "Share with me through my #Nextcloud Federated Cloud ID" : "Udostępnij mi poprzez mój ID #Nextcloud Chmury Federacyjnej", "Share with me via Nextcloud" : "Udostępnij mi za pomocą Nextcloud", + "Cloud ID copied" : "Identyfikator Chmury skopiowany", "Copy" : "Skopiuj", "Clipboard not available. Please copy the cloud ID manually." : "Schowek niedostępny. Skopiuj identyfikator chmury ręcznie.", "Copied!" : "Skopiowano!", diff --git a/apps/federatedfilesharing/l10n/pl.json b/apps/federatedfilesharing/l10n/pl.json index 9b167353ecf..1e82bbba62b 100644 --- a/apps/federatedfilesharing/l10n/pl.json +++ b/apps/federatedfilesharing/l10n/pl.json @@ -45,6 +45,7 @@ "Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Udostępnij mi poprzez mój ID #Nextcloud Chmury Federacyjnej, zobacz {url}", "Share with me through my #Nextcloud Federated Cloud ID" : "Udostępnij mi poprzez mój ID #Nextcloud Chmury Federacyjnej", "Share with me via Nextcloud" : "Udostępnij mi za pomocą Nextcloud", + "Cloud ID copied" : "Identyfikator Chmury skopiowany", "Copy" : "Skopiuj", "Clipboard not available. Please copy the cloud ID manually." : "Schowek niedostępny. Skopiuj identyfikator chmury ręcznie.", "Copied!" : "Skopiowano!", diff --git a/apps/federatedfilesharing/l10n/uk.js b/apps/federatedfilesharing/l10n/uk.js index 892ce689baa..adc8acdb367 100644 --- a/apps/federatedfilesharing/l10n/uk.js +++ b/apps/federatedfilesharing/l10n/uk.js @@ -47,6 +47,7 @@ OC.L10N.register( "Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Поділіться зі мною через мій #Nextcloud Federated Cloud ID, див. {url}", "Share with me through my #Nextcloud Federated Cloud ID" : "Поділіться зі мною через мій #Nextcloud Federated Cloud ID", "Share with me via Nextcloud" : "Поділися зі мною через Nextcloud", + "Cloud ID copied" : "Хмарний ідентифікатор скопійовано", "Copy" : "Копіювати", "Clipboard not available. Please copy the cloud ID manually." : "Буфер обміну недоступний. Будь ласка, скопіюйте ідентифікатор хмари вручну.", "Copied!" : "Скопійовано!", diff --git a/apps/federatedfilesharing/l10n/uk.json b/apps/federatedfilesharing/l10n/uk.json index 23cbabf6ed8..7a35ac59682 100644 --- a/apps/federatedfilesharing/l10n/uk.json +++ b/apps/federatedfilesharing/l10n/uk.json @@ -45,6 +45,7 @@ "Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "Поділіться зі мною через мій #Nextcloud Federated Cloud ID, див. {url}", "Share with me through my #Nextcloud Federated Cloud ID" : "Поділіться зі мною через мій #Nextcloud Federated Cloud ID", "Share with me via Nextcloud" : "Поділися зі мною через Nextcloud", + "Cloud ID copied" : "Хмарний ідентифікатор скопійовано", "Copy" : "Копіювати", "Clipboard not available. Please copy the cloud ID manually." : "Буфер обміну недоступний. Будь ласка, скопіюйте ідентифікатор хмари вручну.", "Copied!" : "Скопійовано!", diff --git a/apps/federatedfilesharing/l10n/zh_HK.js b/apps/federatedfilesharing/l10n/zh_HK.js index 0ec34859f85..f49055e14e7 100644 --- a/apps/federatedfilesharing/l10n/zh_HK.js +++ b/apps/federatedfilesharing/l10n/zh_HK.js @@ -47,6 +47,7 @@ OC.L10N.register( "Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "可透過我的 #Nextcloud 聯盟雲端 ID 與我分享,請見 {url}", "Share with me through my #Nextcloud Federated Cloud ID" : "可透過我的 #Nextcloud 聯盟雲端 ID 與我分享", "Share with me via Nextcloud" : "透過 Nextcloud 與我分享", + "Cloud ID copied" : "已複製雲端 ID", "Copy" : "複製", "Clipboard not available. Please copy the cloud ID manually." : "剪貼板不可用。請人手複製 cloud ID。", "Copied!" : "已複製!", diff --git a/apps/federatedfilesharing/l10n/zh_HK.json b/apps/federatedfilesharing/l10n/zh_HK.json index 7dbf8141f0c..0ca2f7b57e6 100644 --- a/apps/federatedfilesharing/l10n/zh_HK.json +++ b/apps/federatedfilesharing/l10n/zh_HK.json @@ -45,6 +45,7 @@ "Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "可透過我的 #Nextcloud 聯盟雲端 ID 與我分享,請見 {url}", "Share with me through my #Nextcloud Federated Cloud ID" : "可透過我的 #Nextcloud 聯盟雲端 ID 與我分享", "Share with me via Nextcloud" : "透過 Nextcloud 與我分享", + "Cloud ID copied" : "已複製雲端 ID", "Copy" : "複製", "Clipboard not available. Please copy the cloud ID manually." : "剪貼板不可用。請人手複製 cloud ID。", "Copied!" : "已複製!", diff --git a/apps/federatedfilesharing/l10n/zh_TW.js b/apps/federatedfilesharing/l10n/zh_TW.js index 5d41ebb1d66..aecf63158f4 100644 --- a/apps/federatedfilesharing/l10n/zh_TW.js +++ b/apps/federatedfilesharing/l10n/zh_TW.js @@ -47,6 +47,7 @@ OC.L10N.register( "Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "透過我的 #Nextcloud 聯邦雲端 ID 與我分享,請見 {url}", "Share with me through my #Nextcloud Federated Cloud ID" : "透過我的 #Nextcloud 聯邦雲端 ID 與我分享", "Share with me via Nextcloud" : "透過 Nextcloud 與我分享", + "Cloud ID copied" : "已複製雲端 ID", "Copy" : "複製", "Clipboard not available. Please copy the cloud ID manually." : "無法使用剪貼簿。請手動複製雲端 ID。", "Copied!" : "已複製!", diff --git a/apps/federatedfilesharing/l10n/zh_TW.json b/apps/federatedfilesharing/l10n/zh_TW.json index a6d5c678b20..4c0f03e15fd 100644 --- a/apps/federatedfilesharing/l10n/zh_TW.json +++ b/apps/federatedfilesharing/l10n/zh_TW.json @@ -45,6 +45,7 @@ "Share with me through my #Nextcloud Federated Cloud ID, see {url}" : "透過我的 #Nextcloud 聯邦雲端 ID 與我分享,請見 {url}", "Share with me through my #Nextcloud Federated Cloud ID" : "透過我的 #Nextcloud 聯邦雲端 ID 與我分享", "Share with me via Nextcloud" : "透過 Nextcloud 與我分享", + "Cloud ID copied" : "已複製雲端 ID", "Copy" : "複製", "Clipboard not available. Please copy the cloud ID manually." : "無法使用剪貼簿。請手動複製雲端 ID。", "Copied!" : "已複製!", diff --git a/apps/files/appinfo/info.xml b/apps/files/appinfo/info.xml index aedcd5b7ed5..fb53cef79b8 100644 --- a/apps/files/appinfo/info.xml +++ b/apps/files/appinfo/info.xml @@ -53,6 +53,8 @@ <command>OCA\Files\Command\Object\Info</command> <command>OCA\Files\Command\Object\ListObject</command> <command>OCA\Files\Command\Object\Orphans</command> + <command>OCA\Files\Command\Object\Multi\Users</command> + <command>OCA\Files\Command\Object\Multi\Rename</command> <command>OCA\Files\Command\WindowsCompatibleFilenames</command> </commands> diff --git a/apps/files/composer/composer/autoload_classmap.php b/apps/files/composer/composer/autoload_classmap.php index 070cb46de38..0c0f734251f 100644 --- a/apps/files/composer/composer/autoload_classmap.php +++ b/apps/files/composer/composer/autoload_classmap.php @@ -37,6 +37,8 @@ return array( 'OCA\\Files\\Command\\Object\\Get' => $baseDir . '/../lib/Command/Object/Get.php', 'OCA\\Files\\Command\\Object\\Info' => $baseDir . '/../lib/Command/Object/Info.php', 'OCA\\Files\\Command\\Object\\ListObject' => $baseDir . '/../lib/Command/Object/ListObject.php', + 'OCA\\Files\\Command\\Object\\Multi\\Rename' => $baseDir . '/../lib/Command/Object/Multi/Rename.php', + 'OCA\\Files\\Command\\Object\\Multi\\Users' => $baseDir . '/../lib/Command/Object/Multi/Users.php', 'OCA\\Files\\Command\\Object\\ObjectUtil' => $baseDir . '/../lib/Command/Object/ObjectUtil.php', 'OCA\\Files\\Command\\Object\\Orphans' => $baseDir . '/../lib/Command/Object/Orphans.php', 'OCA\\Files\\Command\\Object\\Put' => $baseDir . '/../lib/Command/Object/Put.php', diff --git a/apps/files/composer/composer/autoload_static.php b/apps/files/composer/composer/autoload_static.php index ce79d370e7c..19310ed4e92 100644 --- a/apps/files/composer/composer/autoload_static.php +++ b/apps/files/composer/composer/autoload_static.php @@ -52,6 +52,8 @@ class ComposerStaticInitFiles 'OCA\\Files\\Command\\Object\\Get' => __DIR__ . '/..' . '/../lib/Command/Object/Get.php', 'OCA\\Files\\Command\\Object\\Info' => __DIR__ . '/..' . '/../lib/Command/Object/Info.php', 'OCA\\Files\\Command\\Object\\ListObject' => __DIR__ . '/..' . '/../lib/Command/Object/ListObject.php', + 'OCA\\Files\\Command\\Object\\Multi\\Rename' => __DIR__ . '/..' . '/../lib/Command/Object/Multi/Rename.php', + 'OCA\\Files\\Command\\Object\\Multi\\Users' => __DIR__ . '/..' . '/../lib/Command/Object/Multi/Users.php', 'OCA\\Files\\Command\\Object\\ObjectUtil' => __DIR__ . '/..' . '/../lib/Command/Object/ObjectUtil.php', 'OCA\\Files\\Command\\Object\\Orphans' => __DIR__ . '/..' . '/../lib/Command/Object/Orphans.php', 'OCA\\Files\\Command\\Object\\Put' => __DIR__ . '/..' . '/../lib/Command/Object/Put.php', diff --git a/apps/files/l10n/be.js b/apps/files/l10n/be.js new file mode 100644 index 00000000000..1c72fa29839 --- /dev/null +++ b/apps/files/l10n/be.js @@ -0,0 +1,258 @@ +OC.L10N.register( + "files", + { + "Added to favorites" : "Дададзены ў абранае", + "Removed from favorites" : "Выдалены з абранага", + "You added {file} to your favorites" : "Вы дадалі {file} у абранае", + "You removed {file} from your favorites" : "Вы выдалілі {file} з абранага", + "Favorites" : "Абранае", + "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}", + "\"remote account\"" : "\"аддалены ўліковы запіс\"", + "You created {file}" : "Вы стварылі {file}", + "You created an encrypted file in {file}" : "Вы стварылі зашыфраваны файл у {file}", + "{user} created {file}" : "{user} стварыў(-ла) {file}", + "{user} created an encrypted file in {file}" : "{user} стварыў(-ла) зашыфраваны файл у {file}", + "You changed {file}" : "Вы змянілі {file}", + "You changed an encrypted file in {file}" : "Вы змянілі зашыфраваны файл у {file}", + "{user} changed {file}" : "{user} змяніў(-ла) {file}", + "{user} changed an encrypted file in {file}" : "{user} змяніў(-ла) зашыфраваны файл у {file}", + "You deleted {file}" : "Вы выдалілі {file}", + "You deleted an encrypted file in {file}" : "Вы выдалілі зашыфраваны файл у {file}", + "{user} deleted {file}" : "{user} выдаліў(-ла) {file}", + "{user} deleted an encrypted file in {file}" : "{user} выдаліў(-ла) зашыфраваны файл у {file}", + "You restored {file}" : "Вы аднавілі {file}", + "{user} restored {file}" : "{user} аднавіў(-ла) {file}", + "You renamed {oldfile} (hidden) to {newfile} (hidden)" : "Вы перайменавалі {oldfile} (схаваны) у {newfile} (схаваны)", + "You renamed {oldfile} (hidden) to {newfile}" : "Вы перайменавалі {oldfile} (схаваны) у {newfile}", + "You renamed {oldfile} to {newfile} (hidden)" : "Вы перайменавалі {oldfile} у {newfile} (схаваны)", + "You renamed {oldfile} to {newfile}" : "Вы перайменавалі {oldfile} у {newfile}", + "{user} renamed {oldfile} (hidden) to {newfile} (hidden)" : "{user} перайменаваў(-ла) {oldfile} (схаваны) у {newfile} (схаваны)", + "{user} renamed {oldfile} (hidden) to {newfile}" : "{user} перайменаваў(-ла) {oldfile} (схаваны) ў {newfile}", + "{user} renamed {oldfile} to {newfile} (hidden)" : "{user} перайменаваў(-ла) {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>", + "Files" : "Файлы", + "Folder not found" : "Папка не знойдзена", + "The file cannot be found" : "Файл не знойдзены", + "The destination path does not exist: %1$s" : "Шлях прызначэння не існуе: %1$s", + "Favorite files" : "Абраныя файлы", + "No favorites" : "Няма абраных", + "More favorites" : "Больш абраных", + "Accept" : "Прыняць", + "Reject" : "Адхіліць", + "in %s" : "у %s", + "Files compatibility" : "Сумяшчальнасць файлаў", + "File Management" : "Кіраванне файламі", + "Home" : "Дадому", + "Target folder does not exist any more" : "Мэтавая папка больш не існуе", + "Reload current directory" : "Перазагрузіць бягучы каталог", + "Go to the \"{dir}\" directory" : "Перайсці да каталога \"{dir}\"", + "Drag and drop files here to upload" : "Перацягніце файлы сюды, каб запампаваць іх", + "Favorite" : "Абранае", + "Back" : "Назад", + "File is loading" : "Файл загружаецца", + "Folder is loading" : "Папка загружаецца", + "Filename" : "Назва файла", + "Folder name" : "Назва папкі", + "Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" перайменаваны ў \"{newName}\"", + "Rename file" : "Перайменаваць файл", + "Folder" : "Папка", + "Unknown file type" : "Невядомы тып файла", + "{ext} image" : "Відарыс {ext}", + "{ext} video" : "Відэа {ext}", + "{ext} audio" : "Аўдыя {ext} ", + "{ext} text" : "Тэкст {ext}", + "Pending" : "У чаканні", + "Unknown date" : "Невядомая дата", + "Clear filter" : "Ачысціць фільтр", + "Modified" : "Зменены", + "Type" : "Тып", + "Active filters" : "Актыўныя фільтры", + "Remove filter" : "Выдаліць фільтр", + "Name" : "Назва", + "File type" : "Тып файла", + "Size" : "Памер", + "Actions" : "Дзеянні", + "List of files and folders." : "Спіс файлаў і папак.", + "File not found" : "Файл не знойдзены", + "{usedQuotaByte} used" : "Выкарыстана {usedQuotaByte}", + "{used} of {quota} used" : "Выкарыстана {used} з {quota}", + "{relative}% used" : "Выкарыстана {relative}%", + "New folder" : "Новая папка", + "Create new folder" : "Стварыць новую папку", + "This name is already in use." : "Гэта назва ўжо выкарыстоўваецца.", + "Create" : "Стварыць", + "Fill template fields" : "Запоўніце палі шаблону", + "Unknown error" : "Невядомая памылка", + "Change" : "Змяніць", + "New owner" : "Новы ўладальнік", + "Share" : "Абагуліць", + "Upload was cancelled by user" : "Карыстальнік скасаваў запампоўванне", + "Go back" : "Назад", + "Your files" : "Вашы файлы", + "File cannot be accessed" : "Немагчыма атрымаць доступ да файла", + "The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Файл не знойдзены, або ў вас няма правоў на яго прагляд. Папрасіце адпраўніка абагуліць яго.", + "No search results for “{query}”" : "Няма вынікаў пошуку па запыце \"{query}\"", + "Search for files" : "Пошук файлаў", + "Clipboard is not available" : "Буфер абмену недаступны", + "WebDAV URL copied" : "URL-адрас WebDAV скапіяваны", + "General" : "Агульныя", + "All files" : "Усе файлы", + "Personal files" : "Асабістыя файлы", + "Appearance" : "Знешні выгляд", + "Show file extensions" : "Паказваць пашырэнні файлаў", + "WebDAV" : "WebDAV", + "WebDAV URL" : "URL-адрас WebDAV", + "Copy" : "Капіяваць", + "Warnings" : "Папярэджанні", + "Keyboard shortcuts" : "Спалучэнні клавіш", + "File actions" : "Дзеянні з файламі", + "Rename" : "Перайменаваць", + "Delete" : "Выдаліць", + "Manage tags" : "Кіраванне тэгамі", + "Select all files" : "Выбраць усе файлы", + "Navigation" : "Навігацыя", + "You" : "Вы", + "Error while loading the file data" : "Памылка пры загрузцы даных файла", + "Owner" : "Уладальнік", + "Remove from favorites" : "Выдаліць з абранага", + "Add to favorites" : "У абранае", + "Tags" : "Тэгі", + "Unable to create new file from template" : "Немагчыма стварыць новы файл з шаблона", + "Pick a template for {name}" : "Выберыце шаблон для {name}", + "Create a new file with the selected template" : "Стварыць файл на падставе выбранага шаблона", + "Creating file" : "Стварэнне файла", + "Save as {displayName}" : "Захаваць як {displayName}", + "Save as …" : "Захаваць як …", + "Converting files …" : "Канвертацыя файлаў …", + "Converting file …" : "Канвертацыя файла …", + "File successfully converted" : "Файл паспяхова сканвертаваны", + "Delete permanently" : "Выдаліць назаўжды", + "Delete file" : "Выдаліць файл", + "Delete files" : "Выдаліць файлы", + "Delete folder" : "Выдаліць папку", + "Delete folders" : "Выдаліць папкі", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["Вы збіраецеся назаўжды выдаліць {count} элемент","Вы збіраецеся назаўжды выдаліць {count} элементы","Вы збіраецеся назаўжды выдаліць {count} элементаў","Вы збіраецеся назаўжды выдаліць {count} элементаў"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Вы збіраецеся выдаліць {count} элемент","Вы збіраецеся выдаліць {count} элементы","Вы збіраецеся выдаліць {count} элементаў","Вы збіраецеся выдаліць {count} элементаў"], + "Confirm deletion" : "Пацвердзіць выдаленне", + "Cancel" : "Скасаваць", + "Download" : "Спампаваць", + "Moving \"{source}\" to \"{destination}\" …" : "Перамяшчэнне \"{source}\" у \"{destination}\" …", + "Copying \"{source}\" to \"{destination}\" …" : "Капіяванне \"{source}\" у \"{destination}\" …", + "This file/folder is already in that directory" : "Гэты файл/папка ўжо знаходзіцца ў гэтым каталогу", + "(copy)" : "(копія)", + "(copy %n)" : "(копія %n)", + "A file or folder with that name already exists in this folder" : "Файл або папка з такой назвай ужо існуе ў гэтай папцы", + "The files are locked" : "Файлы заблакіраваны", + "The file does not exist anymore" : "Файл больш не існуе", + "Choose destination" : "Выберыце прызначэнне", + "Copy to {target}" : "Капіяваць у {target}", + "Move to {target}" : "Перамясціць у {target}", + "Move" : "Перамясціць", + "Move or copy" : "Перамясціць або капіяваць", + "Open folder {displayName}" : "Адкрыць папку {displayName}", + "Open locally" : "Адкрыць лакальна", + "Open file locally" : "Адкрыць файл лакальна", + "Today" : "Сёння", + "Last 7 days" : "Апошнія 7 дзён", + "Last 30 days" : "Апошнія 30 дзён", + "This year ({year})" : "Гэты год ({year})", + "Last year ({year})" : "Мінулы год ({year})", + "Documents" : "Дакументы", + "Spreadsheets" : "Табліцы", + "Presentations" : "Прэзентацыі", + "PDFs" : "PDF-файлы", + "Folders" : "Папкі", + "Audio" : "Аўдыя", + "Images" : "Відарысы", + "Videos" : "Відэа", + "Created new folder \"{name}\"" : "Створана новая папка \"{name}\"", + "Unable to initialize the templates directory" : "Немагчыма ініцыялізаваць каталог шаблонаў", + "Create templates folder" : "Стварыць папку шаблонаў", + "Templates" : "Шаблоны", + "New template folder" : "Новая папка шаблонаў", + "In folder" : "У папцы", + "One of the dropped files could not be processed" : "Адзін з перацягнутых файлаў не ўдалося апрацаваць", + "Your browser does not support the Filesystem API. Directories will not be uploaded" : "Ваш браўзер не падтрымлівае Filesystem API. Каталогі не будуць запампаваныя", + "No files to upload" : "Няма файлаў для запампоўвання", + "Unable to create the directory {directory}" : "Немагчыма стварыць папку {directory}", + "Some files could not be uploaded" : "Некаторыя файлы не ўдалося запампаваць", + "Files uploaded successfully" : "Файлы паспяхова запампаваныя", + "No files to process" : "Няма файлаў для апрацоўкі", + "Some files could not be copied" : "Некаторыя файлы не ўдалося скапіяваць", + "Some files could not be moved" : "Некаторыя файлы не ўдалося перамясціць", + "Files copied successfully" : "Файлы паспяхова скапіяваны", + "Files moved successfully" : "Файлы паспяхова перамешчаны", + "Conflicts resolution skipped" : "Рашэнне канфліктаў прапушчана", + "Upload cancelled" : "Запампоўванне скасавана", + "Could not rename \"{oldName}\"" : "Не атрымалася перайменаваць \"{oldName}\"", + "Unexpected error: {error}" : "Нечаканая памылка: {error}", + "_%n file_::_%n files_" : ["%n файл","%n файлы","%n файлаў","%n файлаў"], + "_%n folder_::_%n folders_" : ["%n папка","%n папкі","%n папак","%n папак"], + "_%n hidden_::_%n hidden_" : ["%n схаваны","%n схаваныя","%n схаваных","%n схаваных"], + "Filename must not be empty." : "Назва файла не можа быць пустой.", + "No favorites yet" : "Пакуль няма абраных", + "List of your files and folders." : "Спіс вашых файлаў і папак.", + "List of your files and folders that are not shared." : "Спіс вашых неабагуленых файлаў і папак.", + "No personal files found" : "Асабістых файлаў не знойдзена", + "Files that are not shared will show up here." : "Тут будуць адлюстроўвацца неабагуленыя файлы.", + "Recent" : "Нядаўнія", + "List of recently modified files and folders." : "Спіс нядаўна змененых файлаў і папак.", + "No recently modified files" : "Няма нядаўна змененых файлаў", + "Files and folders you recently modified will show up here." : "Тут будуць адлюстроўвацца нядаўна змененыя вамі файлы і папкі.", + "Search" : "Пошук", + "File could not be found" : "Файл не знойдзены", + "Close" : "Закрыць", + "Could not create folder \"{dir}\"" : "Не ўдалося стварыць папку \"{dir}\"", + "This will stop your current uploads." : "Гэта спыніць вашы бягучыя запампоўкі.", + "Upload cancelled." : "Запампоўванне скасавана.", + "Processing files …" : "Апрацоўка файлаў …", + "…" : "…", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Немагчыма запампаваць {filename}, бо гэта каталог або ён мае памер 0 байтаў", + "An unknown error has occurred" : "Узнікла невядомая памылка", + "File could not be uploaded" : "Не ўдалося запампаваць файл", + "Uploading …" : "Запампоўванне …", + "{remainingTime} ({currentNumber}/{total})" : "{remainingTime} ({currentNumber}/{total})", + "Uploading … ({currentNumber}/{total})" : "Запампоўванне … ({currentNumber}/{total})", + "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} з {totalSize} ({bitrate})", + "Set reminder" : "Задаць напамін", + "Edit locally" : "Рэдагаваць лакальна", + "Open" : "Адкрыць", + "Unable to determine date" : "Немагчыма вызначыць дату", + "copy" : "копія", + "{newName} already exists" : "{newName} ужо існуе", + "{dirs} and {files}" : "{dirs} і {files}", + "_Uploading %n file_::_Uploading %n files_" : ["Запампоўванне %n файла","Запампоўванне %n файлаў","Запампоўванне %n файлаў","Запампоўванне %n файлаў"], + "New" : "Новы", + "{used}%" : "{used}%", + "{used} used" : "Выкарыстана {used}", + "Path" : "Шлях", + "Upload file" : "Запампаваць файл", + "WebDAV URL copied to clipboard" : "URL-адрас WebDAV скапіяваны ў буфер абмену", + "Copy to clipboard" : "Капіяваць у буфер абмену", + "Deletion cancelled" : "Выдаленне скасавана", + "Move cancelled" : "Перамяшчэнне скасавана", + "Photos and images" : "Фота і відарысы", + "New folder creation cancelled" : "Стварэнне новай папкі скасавана", + "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} папка","{folderCount} папкі","{folderCount} папак","{folderCount} папак"], + "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} файл","{fileCount} файлы","{fileCount} файлаў","{fileCount} файлаў"], + "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 файл і {folderCount} папка","1 файл і {folderCount} папкі","1 файл і {folderCount} папак","1 файл і {folderCount} папак"], + "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} файл і 1 папка","{fileCount} файлы і 1 папка","{fileCount} файлаў і 1 папка","{fileCount} файлаў і 1 папка"], + "All folders" : "Усе папкі", + "Personal Files" : "Асабістыя файлы", + "Text file" : "Тэкставы файл", + "%1$s (renamed)" : "%1$s (перайменаваны)", + "Rename a file" : "Перайменаваць файл", + "Delete a file" : "Выдаліць файл", + "Deselect all files" : "Скасаваць выбар усіх файлаў", + "Select a range of files" : "Выберыце дыяпазон файлаў" +}, +"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); diff --git a/apps/files/l10n/be.json b/apps/files/l10n/be.json new file mode 100644 index 00000000000..7cc4d30cdac --- /dev/null +++ b/apps/files/l10n/be.json @@ -0,0 +1,256 @@ +{ "translations": { + "Added to favorites" : "Дададзены ў абранае", + "Removed from favorites" : "Выдалены з абранага", + "You added {file} to your favorites" : "Вы дадалі {file} у абранае", + "You removed {file} from your favorites" : "Вы выдалілі {file} з абранага", + "Favorites" : "Абранае", + "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}", + "\"remote account\"" : "\"аддалены ўліковы запіс\"", + "You created {file}" : "Вы стварылі {file}", + "You created an encrypted file in {file}" : "Вы стварылі зашыфраваны файл у {file}", + "{user} created {file}" : "{user} стварыў(-ла) {file}", + "{user} created an encrypted file in {file}" : "{user} стварыў(-ла) зашыфраваны файл у {file}", + "You changed {file}" : "Вы змянілі {file}", + "You changed an encrypted file in {file}" : "Вы змянілі зашыфраваны файл у {file}", + "{user} changed {file}" : "{user} змяніў(-ла) {file}", + "{user} changed an encrypted file in {file}" : "{user} змяніў(-ла) зашыфраваны файл у {file}", + "You deleted {file}" : "Вы выдалілі {file}", + "You deleted an encrypted file in {file}" : "Вы выдалілі зашыфраваны файл у {file}", + "{user} deleted {file}" : "{user} выдаліў(-ла) {file}", + "{user} deleted an encrypted file in {file}" : "{user} выдаліў(-ла) зашыфраваны файл у {file}", + "You restored {file}" : "Вы аднавілі {file}", + "{user} restored {file}" : "{user} аднавіў(-ла) {file}", + "You renamed {oldfile} (hidden) to {newfile} (hidden)" : "Вы перайменавалі {oldfile} (схаваны) у {newfile} (схаваны)", + "You renamed {oldfile} (hidden) to {newfile}" : "Вы перайменавалі {oldfile} (схаваны) у {newfile}", + "You renamed {oldfile} to {newfile} (hidden)" : "Вы перайменавалі {oldfile} у {newfile} (схаваны)", + "You renamed {oldfile} to {newfile}" : "Вы перайменавалі {oldfile} у {newfile}", + "{user} renamed {oldfile} (hidden) to {newfile} (hidden)" : "{user} перайменаваў(-ла) {oldfile} (схаваны) у {newfile} (схаваны)", + "{user} renamed {oldfile} (hidden) to {newfile}" : "{user} перайменаваў(-ла) {oldfile} (схаваны) ў {newfile}", + "{user} renamed {oldfile} to {newfile} (hidden)" : "{user} перайменаваў(-ла) {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>", + "Files" : "Файлы", + "Folder not found" : "Папка не знойдзена", + "The file cannot be found" : "Файл не знойдзены", + "The destination path does not exist: %1$s" : "Шлях прызначэння не існуе: %1$s", + "Favorite files" : "Абраныя файлы", + "No favorites" : "Няма абраных", + "More favorites" : "Больш абраных", + "Accept" : "Прыняць", + "Reject" : "Адхіліць", + "in %s" : "у %s", + "Files compatibility" : "Сумяшчальнасць файлаў", + "File Management" : "Кіраванне файламі", + "Home" : "Дадому", + "Target folder does not exist any more" : "Мэтавая папка больш не існуе", + "Reload current directory" : "Перазагрузіць бягучы каталог", + "Go to the \"{dir}\" directory" : "Перайсці да каталога \"{dir}\"", + "Drag and drop files here to upload" : "Перацягніце файлы сюды, каб запампаваць іх", + "Favorite" : "Абранае", + "Back" : "Назад", + "File is loading" : "Файл загружаецца", + "Folder is loading" : "Папка загружаецца", + "Filename" : "Назва файла", + "Folder name" : "Назва папкі", + "Renamed \"{oldName}\" to \"{newName}\"" : "\"{oldName}\" перайменаваны ў \"{newName}\"", + "Rename file" : "Перайменаваць файл", + "Folder" : "Папка", + "Unknown file type" : "Невядомы тып файла", + "{ext} image" : "Відарыс {ext}", + "{ext} video" : "Відэа {ext}", + "{ext} audio" : "Аўдыя {ext} ", + "{ext} text" : "Тэкст {ext}", + "Pending" : "У чаканні", + "Unknown date" : "Невядомая дата", + "Clear filter" : "Ачысціць фільтр", + "Modified" : "Зменены", + "Type" : "Тып", + "Active filters" : "Актыўныя фільтры", + "Remove filter" : "Выдаліць фільтр", + "Name" : "Назва", + "File type" : "Тып файла", + "Size" : "Памер", + "Actions" : "Дзеянні", + "List of files and folders." : "Спіс файлаў і папак.", + "File not found" : "Файл не знойдзены", + "{usedQuotaByte} used" : "Выкарыстана {usedQuotaByte}", + "{used} of {quota} used" : "Выкарыстана {used} з {quota}", + "{relative}% used" : "Выкарыстана {relative}%", + "New folder" : "Новая папка", + "Create new folder" : "Стварыць новую папку", + "This name is already in use." : "Гэта назва ўжо выкарыстоўваецца.", + "Create" : "Стварыць", + "Fill template fields" : "Запоўніце палі шаблону", + "Unknown error" : "Невядомая памылка", + "Change" : "Змяніць", + "New owner" : "Новы ўладальнік", + "Share" : "Абагуліць", + "Upload was cancelled by user" : "Карыстальнік скасаваў запампоўванне", + "Go back" : "Назад", + "Your files" : "Вашы файлы", + "File cannot be accessed" : "Немагчыма атрымаць доступ да файла", + "The file could not be found or you do not have permissions to view it. Ask the sender to share it." : "Файл не знойдзены, або ў вас няма правоў на яго прагляд. Папрасіце адпраўніка абагуліць яго.", + "No search results for “{query}”" : "Няма вынікаў пошуку па запыце \"{query}\"", + "Search for files" : "Пошук файлаў", + "Clipboard is not available" : "Буфер абмену недаступны", + "WebDAV URL copied" : "URL-адрас WebDAV скапіяваны", + "General" : "Агульныя", + "All files" : "Усе файлы", + "Personal files" : "Асабістыя файлы", + "Appearance" : "Знешні выгляд", + "Show file extensions" : "Паказваць пашырэнні файлаў", + "WebDAV" : "WebDAV", + "WebDAV URL" : "URL-адрас WebDAV", + "Copy" : "Капіяваць", + "Warnings" : "Папярэджанні", + "Keyboard shortcuts" : "Спалучэнні клавіш", + "File actions" : "Дзеянні з файламі", + "Rename" : "Перайменаваць", + "Delete" : "Выдаліць", + "Manage tags" : "Кіраванне тэгамі", + "Select all files" : "Выбраць усе файлы", + "Navigation" : "Навігацыя", + "You" : "Вы", + "Error while loading the file data" : "Памылка пры загрузцы даных файла", + "Owner" : "Уладальнік", + "Remove from favorites" : "Выдаліць з абранага", + "Add to favorites" : "У абранае", + "Tags" : "Тэгі", + "Unable to create new file from template" : "Немагчыма стварыць новы файл з шаблона", + "Pick a template for {name}" : "Выберыце шаблон для {name}", + "Create a new file with the selected template" : "Стварыць файл на падставе выбранага шаблона", + "Creating file" : "Стварэнне файла", + "Save as {displayName}" : "Захаваць як {displayName}", + "Save as …" : "Захаваць як …", + "Converting files …" : "Канвертацыя файлаў …", + "Converting file …" : "Канвертацыя файла …", + "File successfully converted" : "Файл паспяхова сканвертаваны", + "Delete permanently" : "Выдаліць назаўжды", + "Delete file" : "Выдаліць файл", + "Delete files" : "Выдаліць файлы", + "Delete folder" : "Выдаліць папку", + "Delete folders" : "Выдаліць папкі", + "_You are about to permanently delete {count} item_::_You are about to permanently delete {count} items_" : ["Вы збіраецеся назаўжды выдаліць {count} элемент","Вы збіраецеся назаўжды выдаліць {count} элементы","Вы збіраецеся назаўжды выдаліць {count} элементаў","Вы збіраецеся назаўжды выдаліць {count} элементаў"], + "_You are about to delete {count} item_::_You are about to delete {count} items_" : ["Вы збіраецеся выдаліць {count} элемент","Вы збіраецеся выдаліць {count} элементы","Вы збіраецеся выдаліць {count} элементаў","Вы збіраецеся выдаліць {count} элементаў"], + "Confirm deletion" : "Пацвердзіць выдаленне", + "Cancel" : "Скасаваць", + "Download" : "Спампаваць", + "Moving \"{source}\" to \"{destination}\" …" : "Перамяшчэнне \"{source}\" у \"{destination}\" …", + "Copying \"{source}\" to \"{destination}\" …" : "Капіяванне \"{source}\" у \"{destination}\" …", + "This file/folder is already in that directory" : "Гэты файл/папка ўжо знаходзіцца ў гэтым каталогу", + "(copy)" : "(копія)", + "(copy %n)" : "(копія %n)", + "A file or folder with that name already exists in this folder" : "Файл або папка з такой назвай ужо існуе ў гэтай папцы", + "The files are locked" : "Файлы заблакіраваны", + "The file does not exist anymore" : "Файл больш не існуе", + "Choose destination" : "Выберыце прызначэнне", + "Copy to {target}" : "Капіяваць у {target}", + "Move to {target}" : "Перамясціць у {target}", + "Move" : "Перамясціць", + "Move or copy" : "Перамясціць або капіяваць", + "Open folder {displayName}" : "Адкрыць папку {displayName}", + "Open locally" : "Адкрыць лакальна", + "Open file locally" : "Адкрыць файл лакальна", + "Today" : "Сёння", + "Last 7 days" : "Апошнія 7 дзён", + "Last 30 days" : "Апошнія 30 дзён", + "This year ({year})" : "Гэты год ({year})", + "Last year ({year})" : "Мінулы год ({year})", + "Documents" : "Дакументы", + "Spreadsheets" : "Табліцы", + "Presentations" : "Прэзентацыі", + "PDFs" : "PDF-файлы", + "Folders" : "Папкі", + "Audio" : "Аўдыя", + "Images" : "Відарысы", + "Videos" : "Відэа", + "Created new folder \"{name}\"" : "Створана новая папка \"{name}\"", + "Unable to initialize the templates directory" : "Немагчыма ініцыялізаваць каталог шаблонаў", + "Create templates folder" : "Стварыць папку шаблонаў", + "Templates" : "Шаблоны", + "New template folder" : "Новая папка шаблонаў", + "In folder" : "У папцы", + "One of the dropped files could not be processed" : "Адзін з перацягнутых файлаў не ўдалося апрацаваць", + "Your browser does not support the Filesystem API. Directories will not be uploaded" : "Ваш браўзер не падтрымлівае Filesystem API. Каталогі не будуць запампаваныя", + "No files to upload" : "Няма файлаў для запампоўвання", + "Unable to create the directory {directory}" : "Немагчыма стварыць папку {directory}", + "Some files could not be uploaded" : "Некаторыя файлы не ўдалося запампаваць", + "Files uploaded successfully" : "Файлы паспяхова запампаваныя", + "No files to process" : "Няма файлаў для апрацоўкі", + "Some files could not be copied" : "Некаторыя файлы не ўдалося скапіяваць", + "Some files could not be moved" : "Некаторыя файлы не ўдалося перамясціць", + "Files copied successfully" : "Файлы паспяхова скапіяваны", + "Files moved successfully" : "Файлы паспяхова перамешчаны", + "Conflicts resolution skipped" : "Рашэнне канфліктаў прапушчана", + "Upload cancelled" : "Запампоўванне скасавана", + "Could not rename \"{oldName}\"" : "Не атрымалася перайменаваць \"{oldName}\"", + "Unexpected error: {error}" : "Нечаканая памылка: {error}", + "_%n file_::_%n files_" : ["%n файл","%n файлы","%n файлаў","%n файлаў"], + "_%n folder_::_%n folders_" : ["%n папка","%n папкі","%n папак","%n папак"], + "_%n hidden_::_%n hidden_" : ["%n схаваны","%n схаваныя","%n схаваных","%n схаваных"], + "Filename must not be empty." : "Назва файла не можа быць пустой.", + "No favorites yet" : "Пакуль няма абраных", + "List of your files and folders." : "Спіс вашых файлаў і папак.", + "List of your files and folders that are not shared." : "Спіс вашых неабагуленых файлаў і папак.", + "No personal files found" : "Асабістых файлаў не знойдзена", + "Files that are not shared will show up here." : "Тут будуць адлюстроўвацца неабагуленыя файлы.", + "Recent" : "Нядаўнія", + "List of recently modified files and folders." : "Спіс нядаўна змененых файлаў і папак.", + "No recently modified files" : "Няма нядаўна змененых файлаў", + "Files and folders you recently modified will show up here." : "Тут будуць адлюстроўвацца нядаўна змененыя вамі файлы і папкі.", + "Search" : "Пошук", + "File could not be found" : "Файл не знойдзены", + "Close" : "Закрыць", + "Could not create folder \"{dir}\"" : "Не ўдалося стварыць папку \"{dir}\"", + "This will stop your current uploads." : "Гэта спыніць вашы бягучыя запампоўкі.", + "Upload cancelled." : "Запампоўванне скасавана.", + "Processing files …" : "Апрацоўка файлаў …", + "…" : "…", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Немагчыма запампаваць {filename}, бо гэта каталог або ён мае памер 0 байтаў", + "An unknown error has occurred" : "Узнікла невядомая памылка", + "File could not be uploaded" : "Не ўдалося запампаваць файл", + "Uploading …" : "Запампоўванне …", + "{remainingTime} ({currentNumber}/{total})" : "{remainingTime} ({currentNumber}/{total})", + "Uploading … ({currentNumber}/{total})" : "Запампоўванне … ({currentNumber}/{total})", + "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} з {totalSize} ({bitrate})", + "Set reminder" : "Задаць напамін", + "Edit locally" : "Рэдагаваць лакальна", + "Open" : "Адкрыць", + "Unable to determine date" : "Немагчыма вызначыць дату", + "copy" : "копія", + "{newName} already exists" : "{newName} ужо існуе", + "{dirs} and {files}" : "{dirs} і {files}", + "_Uploading %n file_::_Uploading %n files_" : ["Запампоўванне %n файла","Запампоўванне %n файлаў","Запампоўванне %n файлаў","Запампоўванне %n файлаў"], + "New" : "Новы", + "{used}%" : "{used}%", + "{used} used" : "Выкарыстана {used}", + "Path" : "Шлях", + "Upload file" : "Запампаваць файл", + "WebDAV URL copied to clipboard" : "URL-адрас WebDAV скапіяваны ў буфер абмену", + "Copy to clipboard" : "Капіяваць у буфер абмену", + "Deletion cancelled" : "Выдаленне скасавана", + "Move cancelled" : "Перамяшчэнне скасавана", + "Photos and images" : "Фота і відарысы", + "New folder creation cancelled" : "Стварэнне новай папкі скасавана", + "_{folderCount} folder_::_{folderCount} folders_" : ["{folderCount} папка","{folderCount} папкі","{folderCount} папак","{folderCount} папак"], + "_{fileCount} file_::_{fileCount} files_" : ["{fileCount} файл","{fileCount} файлы","{fileCount} файлаў","{fileCount} файлаў"], + "_1 file and {folderCount} folder_::_1 file and {folderCount} folders_" : ["1 файл і {folderCount} папка","1 файл і {folderCount} папкі","1 файл і {folderCount} папак","1 файл і {folderCount} папак"], + "_{fileCount} file and 1 folder_::_{fileCount} files and 1 folder_" : ["{fileCount} файл і 1 папка","{fileCount} файлы і 1 папка","{fileCount} файлаў і 1 папка","{fileCount} файлаў і 1 папка"], + "All folders" : "Усе папкі", + "Personal Files" : "Асабістыя файлы", + "Text file" : "Тэкставы файл", + "%1$s (renamed)" : "%1$s (перайменаваны)", + "Rename a file" : "Перайменаваць файл", + "Delete a file" : "Выдаліць файл", + "Deselect all files" : "Скасаваць выбар усіх файлаў", + "Select a range of files" : "Выберыце дыяпазон файлаў" +},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" +}
\ No newline at end of file diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js index 600605f7867..a8ddd02495c 100644 --- a/apps/files/l10n/de.js +++ b/apps/files/l10n/de.js @@ -115,6 +115,9 @@ OC.L10N.register( "Name" : "Name", "File type" : "Dateityp", "Size" : "Größe", + "{displayName}: failed on some elements" : "{displayName}: Ist bei einigen Elementen fehlgeschlagen", + "{displayName}: done" : "{displayName}: Abgeschlossen", + "{displayName}: failed" : "{displayName}: Fehlgeschlagen", "Actions" : "Aktionen", "(selected)" : "(ausgewählt)", "List of files and folders." : "Liste der Dateien und Ordner", @@ -123,7 +126,10 @@ OC.L10N.register( "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Diese Liste wird aus Performance-Gründen nicht vollständig angezeigt. Die Dateien werden angezeigt, wenn du durch die Liste navigierst.", "File not found" : "Datei nicht gefunden", "_{count} selected_::_{count} selected_" : ["{count} ausgewählt","{count} ausgewählt"], + "Search everywhere …" : "Überall suchen …", + "Search here …" : "Hier suchen …", "Search scope options" : "Suchbereichsoptionen", + "Search here" : "Hier suchen", "{usedQuotaByte} used" : "{usedQuotaByte} verwendet", "{used} of {quota} used" : "{used} von {quota} verwendet", "{relative}% used" : "{relative} % verwendet", @@ -187,6 +193,7 @@ OC.L10N.register( "No search results for “{query}”" : "Keine Suchergebnisse für \"{query}\"", "Search for files" : "Nach Dateien suchen", "Clipboard is not available" : "Zwischenablage ist nicht verfügbar", + "WebDAV URL copied" : "WebDAV-URL kopiert", "General" : "Allgemein", "Default view" : "Standardansicht", "All files" : "Alle Dateien", @@ -197,24 +204,37 @@ OC.L10N.register( "Appearance" : "Aussehen", "Show hidden files" : "Versteckte Dateien anzeigen", "Show file type column" : "Dateityp-Spalte anzeigen", + "Show file extensions" : "Dateierweiterungen anzeigen", "Crop image previews" : "Bildvorschauen zuschneiden", "Additional settings" : "Zusätzliche Einstellungen", "WebDAV" : "WebDAV", "WebDAV URL" : "WebDAV-URL", "Copy" : "Kopieren", + "How to access files using WebDAV" : "So greifst du mit WebDAV auf Dateien zu", "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "Für dein Konto ist die Zwei-Faktor-Authentifizierung aktiviert. Zur Verbindung eines externen WebDAV-Clients ist daher die Verwendung eines App-Passwortes erforderlich.", "Warnings" : "Warnungen", + "Warn before changing a file extension" : "Vor der Änderung einer Dateierweiterung warnen", + "Warn before deleting files" : "Vor dem Löschen von Dateien warnen", "Keyboard shortcuts" : "Tastaturkürzel", "File actions" : "Dateiaktionen", "Rename" : "Umbenennen", "Delete" : "Löschen", + "Add or remove favorite" : "Favorit hinzufügen oder entfernen", "Manage tags" : "Schlagworte verwalten", "Selection" : "Auswahl", "Select all files" : "Alle Dateien auswählen", "Deselect all" : "Auswahl aufheben", + "Select or deselect" : "Aus- oder Abwählen", + "Select a range" : "Einen Bereich auswählen", "Navigation" : "Navigation", + "Go to parent folder" : "Zum übergeordneten Ordner wechseln", + "Go to file above" : "Zur Datei darüber wechseln", + "Go to file below" : "Zur Datei darunter wechseln", + "Go left in grid" : "Im Raster nach links gehen", + "Go right in grid" : "Im Raster nach rechts gehen", "View" : "Ansehen", "Toggle grid view" : "Rasteransicht umschalten", + "Open file sidebar" : "Datei-Seitenleiste öffnen", "Show those shortcuts" : "Diese Tastaturkürzel anzeigen", "You" : "Du", "Shared multiple times with different people" : "Mehrmals mit verschiedenen Personen geteilt", @@ -322,6 +342,7 @@ OC.L10N.register( "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name \"{newName}“ wird bereits im Ordner \"{dir}“ verwendet. Bitte wähle einen anderen Namen.", "Could not rename \"{oldName}\"" : "\"{oldName}\" konnte nicht umbenannt werden.", "This operation is forbidden" : "Diese Operation ist nicht erlaubt", + "This folder is unavailable, please try again later or contact the administration" : "Dieser Ordner ist nicht verfügbar. Bitte später erneut versuchen oder an die Administration wenden", "Storage is temporarily not available" : "Speicher ist vorübergehend nicht verfügbar", "Unexpected error: {error}" : "Unerwarteter Fehler: {error}", "_%n file_::_%n files_" : ["%n Datei","%n Dateien"], diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json index 680f03fc860..254f405cd12 100644 --- a/apps/files/l10n/de.json +++ b/apps/files/l10n/de.json @@ -113,6 +113,9 @@ "Name" : "Name", "File type" : "Dateityp", "Size" : "Größe", + "{displayName}: failed on some elements" : "{displayName}: Ist bei einigen Elementen fehlgeschlagen", + "{displayName}: done" : "{displayName}: Abgeschlossen", + "{displayName}: failed" : "{displayName}: Fehlgeschlagen", "Actions" : "Aktionen", "(selected)" : "(ausgewählt)", "List of files and folders." : "Liste der Dateien und Ordner", @@ -121,7 +124,10 @@ "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Diese Liste wird aus Performance-Gründen nicht vollständig angezeigt. Die Dateien werden angezeigt, wenn du durch die Liste navigierst.", "File not found" : "Datei nicht gefunden", "_{count} selected_::_{count} selected_" : ["{count} ausgewählt","{count} ausgewählt"], + "Search everywhere …" : "Überall suchen …", + "Search here …" : "Hier suchen …", "Search scope options" : "Suchbereichsoptionen", + "Search here" : "Hier suchen", "{usedQuotaByte} used" : "{usedQuotaByte} verwendet", "{used} of {quota} used" : "{used} von {quota} verwendet", "{relative}% used" : "{relative} % verwendet", @@ -185,6 +191,7 @@ "No search results for “{query}”" : "Keine Suchergebnisse für \"{query}\"", "Search for files" : "Nach Dateien suchen", "Clipboard is not available" : "Zwischenablage ist nicht verfügbar", + "WebDAV URL copied" : "WebDAV-URL kopiert", "General" : "Allgemein", "Default view" : "Standardansicht", "All files" : "Alle Dateien", @@ -195,24 +202,37 @@ "Appearance" : "Aussehen", "Show hidden files" : "Versteckte Dateien anzeigen", "Show file type column" : "Dateityp-Spalte anzeigen", + "Show file extensions" : "Dateierweiterungen anzeigen", "Crop image previews" : "Bildvorschauen zuschneiden", "Additional settings" : "Zusätzliche Einstellungen", "WebDAV" : "WebDAV", "WebDAV URL" : "WebDAV-URL", "Copy" : "Kopieren", + "How to access files using WebDAV" : "So greifst du mit WebDAV auf Dateien zu", "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "Für dein Konto ist die Zwei-Faktor-Authentifizierung aktiviert. Zur Verbindung eines externen WebDAV-Clients ist daher die Verwendung eines App-Passwortes erforderlich.", "Warnings" : "Warnungen", + "Warn before changing a file extension" : "Vor der Änderung einer Dateierweiterung warnen", + "Warn before deleting files" : "Vor dem Löschen von Dateien warnen", "Keyboard shortcuts" : "Tastaturkürzel", "File actions" : "Dateiaktionen", "Rename" : "Umbenennen", "Delete" : "Löschen", + "Add or remove favorite" : "Favorit hinzufügen oder entfernen", "Manage tags" : "Schlagworte verwalten", "Selection" : "Auswahl", "Select all files" : "Alle Dateien auswählen", "Deselect all" : "Auswahl aufheben", + "Select or deselect" : "Aus- oder Abwählen", + "Select a range" : "Einen Bereich auswählen", "Navigation" : "Navigation", + "Go to parent folder" : "Zum übergeordneten Ordner wechseln", + "Go to file above" : "Zur Datei darüber wechseln", + "Go to file below" : "Zur Datei darunter wechseln", + "Go left in grid" : "Im Raster nach links gehen", + "Go right in grid" : "Im Raster nach rechts gehen", "View" : "Ansehen", "Toggle grid view" : "Rasteransicht umschalten", + "Open file sidebar" : "Datei-Seitenleiste öffnen", "Show those shortcuts" : "Diese Tastaturkürzel anzeigen", "You" : "Du", "Shared multiple times with different people" : "Mehrmals mit verschiedenen Personen geteilt", @@ -320,6 +340,7 @@ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name \"{newName}“ wird bereits im Ordner \"{dir}“ verwendet. Bitte wähle einen anderen Namen.", "Could not rename \"{oldName}\"" : "\"{oldName}\" konnte nicht umbenannt werden.", "This operation is forbidden" : "Diese Operation ist nicht erlaubt", + "This folder is unavailable, please try again later or contact the administration" : "Dieser Ordner ist nicht verfügbar. Bitte später erneut versuchen oder an die Administration wenden", "Storage is temporarily not available" : "Speicher ist vorübergehend nicht verfügbar", "Unexpected error: {error}" : "Unerwarteter Fehler: {error}", "_%n file_::_%n files_" : ["%n Datei","%n Dateien"], diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js index 24ae6c43a00..4b897553f31 100644 --- a/apps/files/l10n/de_DE.js +++ b/apps/files/l10n/de_DE.js @@ -115,6 +115,9 @@ OC.L10N.register( "Name" : "Name", "File type" : "Dateityp", "Size" : "Größe", + "{displayName}: failed on some elements" : "{displayName}: Ist bei einigen Elementen fehlgeschlagen", + "{displayName}: done" : "{displayName}: Abgeschlossen", + "{displayName}: failed" : "{displayName}: Fehlgeschlagen", "Actions" : "Aktionen", "(selected)" : "(ausgewählt)", "List of files and folders." : "Liste der Dateien und Ordner.", @@ -123,7 +126,10 @@ OC.L10N.register( "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Diese Liste ist aus Performance-Gründen nicht vollständig gerendert. Die Dateien werden gerendert, wenn Sie durch die Liste navigieren.", "File not found" : "Datei nicht gefunden", "_{count} selected_::_{count} selected_" : ["{count} ausgewählt","{count} ausgewählt"], + "Search everywhere …" : "Überall suchen …", + "Search here …" : "Hier suchen …", "Search scope options" : "Suchbereichsoptionen", + "Search here" : "Hier suchen", "{usedQuotaByte} used" : "{usedQuotaByte} verwendet", "{used} of {quota} used" : "{used} von {quota} verwendet", "{relative}% used" : "{relative} % verwendet", @@ -187,6 +193,7 @@ OC.L10N.register( "No search results for “{query}”" : "Keine Suchergebnisse für \"{query}\"", "Search for files" : "Nach Dateien suchen", "Clipboard is not available" : "Zwischenablage ist nicht verfügbar", + "WebDAV URL copied" : "WebDAV-URL kopiert", "General" : "Allgemein", "Default view" : "Standardansicht", "All files" : "Alle Dateien", @@ -197,24 +204,37 @@ OC.L10N.register( "Appearance" : "Aussehen", "Show hidden files" : "Versteckte Dateien anzeigen", "Show file type column" : "Dateityp-Spalte anzeigen", + "Show file extensions" : "Dateierweiterungen anzeigen", "Crop image previews" : "Bildvorschauen zuschneiden", "Additional settings" : "Zusätzliche Einstellungen", "WebDAV" : "WebDAV", "WebDAV URL" : "WebDAV-URL", "Copy" : "Kopieren", + "How to access files using WebDAV" : "So greifen Sie mit WebDAV auf Dateien zu", "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "Für Ihr Konto ist die Zwei-Faktor-Authentifizierung aktiviert. Zur Verbindung eines externen WebDAV-Clients ist daher die Verwendung eines App-Passwortes erforderlich.", "Warnings" : "Warnungen", + "Warn before changing a file extension" : "Vor der Änderung einer Dateierweiterung warnen", + "Warn before deleting files" : "Vor dem Löschen von Dateien warnen", "Keyboard shortcuts" : "Tastaturkürzel", "File actions" : "Dateiaktionen", "Rename" : "Umbenennen", "Delete" : "Löschen", + "Add or remove favorite" : "Favorit hinzufügen oder entfernen", "Manage tags" : "Schlagworte verwalten", "Selection" : "Auswahl", "Select all files" : "Alle Dateien auswählen", "Deselect all" : "Auswahl aufheben", + "Select or deselect" : "Aus- oder Abwählen", + "Select a range" : "Einen Bereich auswählen", "Navigation" : "Navigation", + "Go to parent folder" : "Zum übergeordneten Ordner wechseln", + "Go to file above" : "Zur Datei darüber wechseln", + "Go to file below" : "Zur Datei darunter wechseln", + "Go left in grid" : "Im Raster nach links gehen", + "Go right in grid" : "Im Raster nach rechts gehen", "View" : "Ansicht", "Toggle grid view" : "Kachelansicht umschalten", + "Open file sidebar" : "Datei-Seitenleiste öffnen", "Show those shortcuts" : "Diese Tastaturkürzel anzeigen", "You" : "Sie", "Shared multiple times with different people" : "Mehrmals mit verschiedenen Personen geteilt", @@ -322,6 +342,7 @@ OC.L10N.register( "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name \"{newName}“ wird bereits im Ordner \"{dir}“ verwendet. Bitte einen anderen Namen wählen.", "Could not rename \"{oldName}\"" : "\"{oldName}\" konnte nicht umbenannt werden", "This operation is forbidden" : "Diese Operation ist nicht erlaubt", + "This folder is unavailable, please try again later or contact the administration" : "Dieser Ordner ist nicht verfügbar. Bitte später erneut versuchen oder an die Administration wenden", "Storage is temporarily not available" : "Speicher ist vorübergehend nicht verfügbar", "Unexpected error: {error}" : "Unerwarteter Fehler: {error}", "_%n file_::_%n files_" : ["%n Datei","%n Dateien"], diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json index 15c9e149d97..26b5abdbd75 100644 --- a/apps/files/l10n/de_DE.json +++ b/apps/files/l10n/de_DE.json @@ -113,6 +113,9 @@ "Name" : "Name", "File type" : "Dateityp", "Size" : "Größe", + "{displayName}: failed on some elements" : "{displayName}: Ist bei einigen Elementen fehlgeschlagen", + "{displayName}: done" : "{displayName}: Abgeschlossen", + "{displayName}: failed" : "{displayName}: Fehlgeschlagen", "Actions" : "Aktionen", "(selected)" : "(ausgewählt)", "List of files and folders." : "Liste der Dateien und Ordner.", @@ -121,7 +124,10 @@ "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Diese Liste ist aus Performance-Gründen nicht vollständig gerendert. Die Dateien werden gerendert, wenn Sie durch die Liste navigieren.", "File not found" : "Datei nicht gefunden", "_{count} selected_::_{count} selected_" : ["{count} ausgewählt","{count} ausgewählt"], + "Search everywhere …" : "Überall suchen …", + "Search here …" : "Hier suchen …", "Search scope options" : "Suchbereichsoptionen", + "Search here" : "Hier suchen", "{usedQuotaByte} used" : "{usedQuotaByte} verwendet", "{used} of {quota} used" : "{used} von {quota} verwendet", "{relative}% used" : "{relative} % verwendet", @@ -185,6 +191,7 @@ "No search results for “{query}”" : "Keine Suchergebnisse für \"{query}\"", "Search for files" : "Nach Dateien suchen", "Clipboard is not available" : "Zwischenablage ist nicht verfügbar", + "WebDAV URL copied" : "WebDAV-URL kopiert", "General" : "Allgemein", "Default view" : "Standardansicht", "All files" : "Alle Dateien", @@ -195,24 +202,37 @@ "Appearance" : "Aussehen", "Show hidden files" : "Versteckte Dateien anzeigen", "Show file type column" : "Dateityp-Spalte anzeigen", + "Show file extensions" : "Dateierweiterungen anzeigen", "Crop image previews" : "Bildvorschauen zuschneiden", "Additional settings" : "Zusätzliche Einstellungen", "WebDAV" : "WebDAV", "WebDAV URL" : "WebDAV-URL", "Copy" : "Kopieren", + "How to access files using WebDAV" : "So greifen Sie mit WebDAV auf Dateien zu", "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "Für Ihr Konto ist die Zwei-Faktor-Authentifizierung aktiviert. Zur Verbindung eines externen WebDAV-Clients ist daher die Verwendung eines App-Passwortes erforderlich.", "Warnings" : "Warnungen", + "Warn before changing a file extension" : "Vor der Änderung einer Dateierweiterung warnen", + "Warn before deleting files" : "Vor dem Löschen von Dateien warnen", "Keyboard shortcuts" : "Tastaturkürzel", "File actions" : "Dateiaktionen", "Rename" : "Umbenennen", "Delete" : "Löschen", + "Add or remove favorite" : "Favorit hinzufügen oder entfernen", "Manage tags" : "Schlagworte verwalten", "Selection" : "Auswahl", "Select all files" : "Alle Dateien auswählen", "Deselect all" : "Auswahl aufheben", + "Select or deselect" : "Aus- oder Abwählen", + "Select a range" : "Einen Bereich auswählen", "Navigation" : "Navigation", + "Go to parent folder" : "Zum übergeordneten Ordner wechseln", + "Go to file above" : "Zur Datei darüber wechseln", + "Go to file below" : "Zur Datei darunter wechseln", + "Go left in grid" : "Im Raster nach links gehen", + "Go right in grid" : "Im Raster nach rechts gehen", "View" : "Ansicht", "Toggle grid view" : "Kachelansicht umschalten", + "Open file sidebar" : "Datei-Seitenleiste öffnen", "Show those shortcuts" : "Diese Tastaturkürzel anzeigen", "You" : "Sie", "Shared multiple times with different people" : "Mehrmals mit verschiedenen Personen geteilt", @@ -320,6 +340,7 @@ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Der Name \"{newName}“ wird bereits im Ordner \"{dir}“ verwendet. Bitte einen anderen Namen wählen.", "Could not rename \"{oldName}\"" : "\"{oldName}\" konnte nicht umbenannt werden", "This operation is forbidden" : "Diese Operation ist nicht erlaubt", + "This folder is unavailable, please try again later or contact the administration" : "Dieser Ordner ist nicht verfügbar. Bitte später erneut versuchen oder an die Administration wenden", "Storage is temporarily not available" : "Speicher ist vorübergehend nicht verfügbar", "Unexpected error: {error}" : "Unerwarteter Fehler: {error}", "_%n file_::_%n files_" : ["%n Datei","%n Dateien"], diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js index 3c853f24332..a325eb6bec7 100644 --- a/apps/files/l10n/en_GB.js +++ b/apps/files/l10n/en_GB.js @@ -115,6 +115,9 @@ OC.L10N.register( "Name" : "Name", "File type" : "File type", "Size" : "Size", + "{displayName}: failed on some elements" : "{displayName}: failed on some elements", + "{displayName}: done" : "{displayName}: done", + "{displayName}: failed" : "{displayName}: failed", "Actions" : "Actions", "(selected)" : "(selected)", "List of files and folders." : "List of files and folders.", @@ -123,7 +126,10 @@ OC.L10N.register( "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list.", "File not found" : "File not found", "_{count} selected_::_{count} selected_" : ["{count} selected","{count} selected"], + "Search everywhere …" : "Search everywhere …", + "Search here …" : "Search here …", "Search scope options" : "Search scope options", + "Search here" : "Search here", "{usedQuotaByte} used" : "{usedQuotaByte} used", "{used} of {quota} used" : "{used} of {quota} used", "{relative}% used" : "{relative}% used", @@ -187,6 +193,7 @@ OC.L10N.register( "No search results for “{query}”" : "No search results for “{query}”", "Search for files" : "Search for files", "Clipboard is not available" : "Clipboard is not available", + "WebDAV URL copied" : "WebDAV URL copied", "General" : "General", "Default view" : "Default view", "All files" : "All files", @@ -197,24 +204,37 @@ OC.L10N.register( "Appearance" : "Appearance", "Show hidden files" : "Show hidden files", "Show file type column" : "Show file type column", + "Show file extensions" : "Show file extensions", "Crop image previews" : "Crop image previews", "Additional settings" : "Additional settings", "WebDAV" : "WebDAV", "WebDAV URL" : "WebDAV URL", "Copy" : "Copy", + "How to access files using WebDAV" : "How to access files using WebDAV", "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client.", "Warnings" : "Warnings", + "Warn before changing a file extension" : "Warn before changing a file extension", + "Warn before deleting files" : "Warn before deleting files", "Keyboard shortcuts" : "Keyboard shortcuts", "File actions" : "File actions", "Rename" : "Rename", "Delete" : "Delete", + "Add or remove favorite" : "Add or remove favorite", "Manage tags" : "Manage tags", "Selection" : "Selection", "Select all files" : "Select all files", "Deselect all" : "Deselect all", + "Select or deselect" : "Select or deselect", + "Select a range" : "Select a range", "Navigation" : "Navigation", + "Go to parent folder" : "Go to parent folder", + "Go to file above" : "Go to file above", + "Go to file below" : "Go to file below", + "Go left in grid" : "Go left in grid", + "Go right in grid" : "Go right in grid", "View" : "View", "Toggle grid view" : "Toggle grid view", + "Open file sidebar" : "Open file sidebar", "Show those shortcuts" : "Show those shortcuts", "You" : "You", "Shared multiple times with different people" : "Shared multiple times with different people", @@ -322,6 +342,7 @@ OC.L10N.register( "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name.", "Could not rename \"{oldName}\"" : "Could not rename \"{oldName}\"", "This operation is forbidden" : "This operation is forbidden", + "This folder is unavailable, please try again later or contact the administration" : "This folder is unavailable, please try again later or contact the administration", "Storage is temporarily not available" : "Storage is temporarily not available", "Unexpected error: {error}" : "Unexpected error: {error}", "_%n file_::_%n files_" : ["%n file","%n files"], diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json index 1d718009852..2284ec11b26 100644 --- a/apps/files/l10n/en_GB.json +++ b/apps/files/l10n/en_GB.json @@ -113,6 +113,9 @@ "Name" : "Name", "File type" : "File type", "Size" : "Size", + "{displayName}: failed on some elements" : "{displayName}: failed on some elements", + "{displayName}: done" : "{displayName}: done", + "{displayName}: failed" : "{displayName}: failed", "Actions" : "Actions", "(selected)" : "(selected)", "List of files and folders." : "List of files and folders.", @@ -121,7 +124,10 @@ "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list.", "File not found" : "File not found", "_{count} selected_::_{count} selected_" : ["{count} selected","{count} selected"], + "Search everywhere …" : "Search everywhere …", + "Search here …" : "Search here …", "Search scope options" : "Search scope options", + "Search here" : "Search here", "{usedQuotaByte} used" : "{usedQuotaByte} used", "{used} of {quota} used" : "{used} of {quota} used", "{relative}% used" : "{relative}% used", @@ -185,6 +191,7 @@ "No search results for “{query}”" : "No search results for “{query}”", "Search for files" : "Search for files", "Clipboard is not available" : "Clipboard is not available", + "WebDAV URL copied" : "WebDAV URL copied", "General" : "General", "Default view" : "Default view", "All files" : "All files", @@ -195,24 +202,37 @@ "Appearance" : "Appearance", "Show hidden files" : "Show hidden files", "Show file type column" : "Show file type column", + "Show file extensions" : "Show file extensions", "Crop image previews" : "Crop image previews", "Additional settings" : "Additional settings", "WebDAV" : "WebDAV", "WebDAV URL" : "WebDAV URL", "Copy" : "Copy", + "How to access files using WebDAV" : "How to access files using WebDAV", "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client.", "Warnings" : "Warnings", + "Warn before changing a file extension" : "Warn before changing a file extension", + "Warn before deleting files" : "Warn before deleting files", "Keyboard shortcuts" : "Keyboard shortcuts", "File actions" : "File actions", "Rename" : "Rename", "Delete" : "Delete", + "Add or remove favorite" : "Add or remove favorite", "Manage tags" : "Manage tags", "Selection" : "Selection", "Select all files" : "Select all files", "Deselect all" : "Deselect all", + "Select or deselect" : "Select or deselect", + "Select a range" : "Select a range", "Navigation" : "Navigation", + "Go to parent folder" : "Go to parent folder", + "Go to file above" : "Go to file above", + "Go to file below" : "Go to file below", + "Go left in grid" : "Go left in grid", + "Go right in grid" : "Go right in grid", "View" : "View", "Toggle grid view" : "Toggle grid view", + "Open file sidebar" : "Open file sidebar", "Show those shortcuts" : "Show those shortcuts", "You" : "You", "Shared multiple times with different people" : "Shared multiple times with different people", @@ -320,6 +340,7 @@ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name.", "Could not rename \"{oldName}\"" : "Could not rename \"{oldName}\"", "This operation is forbidden" : "This operation is forbidden", + "This folder is unavailable, please try again later or contact the administration" : "This folder is unavailable, please try again later or contact the administration", "Storage is temporarily not available" : "Storage is temporarily not available", "Unexpected error: {error}" : "Unexpected error: {error}", "_%n file_::_%n files_" : ["%n file","%n files"], diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js index 72e8396de5a..9601f32db31 100644 --- a/apps/files/l10n/es.js +++ b/apps/files/l10n/es.js @@ -115,6 +115,9 @@ OC.L10N.register( "Name" : "Nombre", "File type" : "Tipo de archivo", "Size" : "Tamaño", + "{displayName}: failed on some elements" : "{displayName}: falló en algunos elementos", + "{displayName}: done" : "{displayName}: listo", + "{displayName}: failed" : "{displayName}: falló", "Actions" : "Acciones", "(selected)" : "(seleccionado)", "List of files and folders." : "Lista de archivos y carpetas.", @@ -123,7 +126,10 @@ OC.L10N.register( "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta lista no se muestra completamente por motivos de rendimiento. Los archivos se mostrarán a medida que navega por la lista.", "File not found" : "No se ha encontrado el archivo", "_{count} selected_::_{count} selected_" : ["{count} seleccionado","{count} seleccionados","{count} seleccionados"], + "Search everywhere …" : "Buscar en todas partes …", + "Search here …" : "Buscar aquí …", "Search scope options" : "Opciones de alcance de la búsqueda", + "Search here" : "Buscar aquí", "{usedQuotaByte} used" : "{usedQuotaByte} utilizados", "{used} of {quota} used" : "{used} usados de {quota}", "{relative}% used" : "{relative}% utilizado", @@ -135,7 +141,7 @@ OC.L10N.register( "Create new folder" : "Crear carpeta nueva", "This name is already in use." : "Este nombre ya está en uso.", "Create" : "Crear", - "Files starting with a dot are hidden by default" : "Los archivos que comienzan con un punto son ocultados por defecto", + "Files starting with a dot are hidden by default" : "Los archivos que comienzan con un punto se ocultan de manera predeterminada", "Fill template fields" : "Rellenar los campos de la plantilla", "Submitting fields …" : "Enviando campos …", "Submit" : "Enviar", @@ -187,6 +193,7 @@ OC.L10N.register( "No search results for “{query}”" : "No hay resultados para “{query}”", "Search for files" : "Buscar archivos", "Clipboard is not available" : "El portapapeles no está disponible", + "WebDAV URL copied" : "URL de WebDAV copiado", "General" : "General", "Default view" : "Vista predeterminada", "All files" : "Todos los archivos", @@ -197,24 +204,37 @@ OC.L10N.register( "Appearance" : "Apariencia", "Show hidden files" : "Mostrar archivos ocultos", "Show file type column" : "Mostrar la columna de tipo de archivo", + "Show file extensions" : "Mostrar extensiones de archivos", "Crop image previews" : "Recortar la previsualización de las imágenes", "Additional settings" : "Ajustes adicionales", "WebDAV" : "WebDAV", "WebDAV URL" : "URL de WebDAV", "Copy" : "Copiar", - "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "La autenticación en dos pasos está habilitada para su cuenta y, por lo tanto, debe usar una contraseña de aplicación para conectarse a un cliente WebDAV externo.", + "How to access files using WebDAV" : "Como acceder a los archivos usando WebDAV", + "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "La autenticación en dos factores está habilitada para su cuenta y, por lo tanto, debe usar una contraseña de aplicación para conectar un cliente WebDAV externo.", "Warnings" : "Advertencias", + "Warn before changing a file extension" : "Advertir antes de cambiar la extensión de un archivo.", + "Warn before deleting files" : "Advertir antes de eliminar archivos", "Keyboard shortcuts" : "Atajos de teclado", "File actions" : "Acciones de archivo", "Rename" : "Renombrar", "Delete" : "Eliminar", + "Add or remove favorite" : "Añadir o quitar favorito", "Manage tags" : "Gestionar etiquetas", "Selection" : "Selección", "Select all files" : "Seleccionar todos los archivos", "Deselect all" : "Deseleccionar todos", + "Select or deselect" : "Seleccionar o deseleccionar", + "Select a range" : "Seleccionar rango", "Navigation" : "Navegación", + "Go to parent folder" : "Ir a carpeta superior", + "Go to file above" : "Ir al archivo anterior", + "Go to file below" : "Ir al archivo siguiente", + "Go left in grid" : "Desplazarse a la izquierda en la cuadrícula", + "Go right in grid" : "Desplazarse a la derecha en la cuadrícula", "View" : "Vista", "Toggle grid view" : "Alternar vista de cuadrícula", + "Open file sidebar" : "Abrir la barra lateral de archivo", "Show those shortcuts" : "Mostrar estos atajos", "You" : "Tú", "Shared multiple times with different people" : "Compartido múltiples veces con diferentes personas", @@ -322,6 +342,7 @@ OC.L10N.register( "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{newName}\" ya está en uso en la carpeta \"{dir}\". Por favor, escoja un nombre diferente.", "Could not rename \"{oldName}\"" : "No se ha podido renombrar \"{oldName}\"", "This operation is forbidden" : "Esta operación está prohibida", + "This folder is unavailable, please try again later or contact the administration" : "Esta carpeta no está disponible, por favor, intente de nuevo más tarde o contacte a la administración", "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente", "Unexpected error: {error}" : "Error inesperado: {error}", "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"], diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json index 3e4282a3464..935df9c3971 100644 --- a/apps/files/l10n/es.json +++ b/apps/files/l10n/es.json @@ -113,6 +113,9 @@ "Name" : "Nombre", "File type" : "Tipo de archivo", "Size" : "Tamaño", + "{displayName}: failed on some elements" : "{displayName}: falló en algunos elementos", + "{displayName}: done" : "{displayName}: listo", + "{displayName}: failed" : "{displayName}: falló", "Actions" : "Acciones", "(selected)" : "(seleccionado)", "List of files and folders." : "Lista de archivos y carpetas.", @@ -121,7 +124,10 @@ "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Esta lista no se muestra completamente por motivos de rendimiento. Los archivos se mostrarán a medida que navega por la lista.", "File not found" : "No se ha encontrado el archivo", "_{count} selected_::_{count} selected_" : ["{count} seleccionado","{count} seleccionados","{count} seleccionados"], + "Search everywhere …" : "Buscar en todas partes …", + "Search here …" : "Buscar aquí …", "Search scope options" : "Opciones de alcance de la búsqueda", + "Search here" : "Buscar aquí", "{usedQuotaByte} used" : "{usedQuotaByte} utilizados", "{used} of {quota} used" : "{used} usados de {quota}", "{relative}% used" : "{relative}% utilizado", @@ -133,7 +139,7 @@ "Create new folder" : "Crear carpeta nueva", "This name is already in use." : "Este nombre ya está en uso.", "Create" : "Crear", - "Files starting with a dot are hidden by default" : "Los archivos que comienzan con un punto son ocultados por defecto", + "Files starting with a dot are hidden by default" : "Los archivos que comienzan con un punto se ocultan de manera predeterminada", "Fill template fields" : "Rellenar los campos de la plantilla", "Submitting fields …" : "Enviando campos …", "Submit" : "Enviar", @@ -185,6 +191,7 @@ "No search results for “{query}”" : "No hay resultados para “{query}”", "Search for files" : "Buscar archivos", "Clipboard is not available" : "El portapapeles no está disponible", + "WebDAV URL copied" : "URL de WebDAV copiado", "General" : "General", "Default view" : "Vista predeterminada", "All files" : "Todos los archivos", @@ -195,24 +202,37 @@ "Appearance" : "Apariencia", "Show hidden files" : "Mostrar archivos ocultos", "Show file type column" : "Mostrar la columna de tipo de archivo", + "Show file extensions" : "Mostrar extensiones de archivos", "Crop image previews" : "Recortar la previsualización de las imágenes", "Additional settings" : "Ajustes adicionales", "WebDAV" : "WebDAV", "WebDAV URL" : "URL de WebDAV", "Copy" : "Copiar", - "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "La autenticación en dos pasos está habilitada para su cuenta y, por lo tanto, debe usar una contraseña de aplicación para conectarse a un cliente WebDAV externo.", + "How to access files using WebDAV" : "Como acceder a los archivos usando WebDAV", + "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "La autenticación en dos factores está habilitada para su cuenta y, por lo tanto, debe usar una contraseña de aplicación para conectar un cliente WebDAV externo.", "Warnings" : "Advertencias", + "Warn before changing a file extension" : "Advertir antes de cambiar la extensión de un archivo.", + "Warn before deleting files" : "Advertir antes de eliminar archivos", "Keyboard shortcuts" : "Atajos de teclado", "File actions" : "Acciones de archivo", "Rename" : "Renombrar", "Delete" : "Eliminar", + "Add or remove favorite" : "Añadir o quitar favorito", "Manage tags" : "Gestionar etiquetas", "Selection" : "Selección", "Select all files" : "Seleccionar todos los archivos", "Deselect all" : "Deseleccionar todos", + "Select or deselect" : "Seleccionar o deseleccionar", + "Select a range" : "Seleccionar rango", "Navigation" : "Navegación", + "Go to parent folder" : "Ir a carpeta superior", + "Go to file above" : "Ir al archivo anterior", + "Go to file below" : "Ir al archivo siguiente", + "Go left in grid" : "Desplazarse a la izquierda en la cuadrícula", + "Go right in grid" : "Desplazarse a la derecha en la cuadrícula", "View" : "Vista", "Toggle grid view" : "Alternar vista de cuadrícula", + "Open file sidebar" : "Abrir la barra lateral de archivo", "Show those shortcuts" : "Mostrar estos atajos", "You" : "Tú", "Shared multiple times with different people" : "Compartido múltiples veces con diferentes personas", @@ -320,6 +340,7 @@ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{newName}\" ya está en uso en la carpeta \"{dir}\". Por favor, escoja un nombre diferente.", "Could not rename \"{oldName}\"" : "No se ha podido renombrar \"{oldName}\"", "This operation is forbidden" : "Esta operación está prohibida", + "This folder is unavailable, please try again later or contact the administration" : "Esta carpeta no está disponible, por favor, intente de nuevo más tarde o contacte a la administración", "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente", "Unexpected error: {error}" : "Error inesperado: {error}", "_%n file_::_%n files_" : ["%n archivo","%n archivos","%n archivos"], diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js index c4bebba319c..703cc336b2b 100644 --- a/apps/files/l10n/it.js +++ b/apps/files/l10n/it.js @@ -115,6 +115,9 @@ OC.L10N.register( "Name" : "Nome", "File type" : "Tipo di file", "Size" : "Dimensione", + "{displayName}: failed on some elements" : "{displayName}: non riuscito su alcuni elementi", + "{displayName}: done" : "{displayName}: fatto", + "{displayName}: failed" : "{displayName}: non riuscito", "Actions" : "Azioni", "(selected)" : "(selezionato)", "List of files and folders." : "Lista di file e cartelle.", @@ -123,7 +126,10 @@ OC.L10N.register( "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Questa lista non è stata mostrata completamente per ragioni di prestazioni. I file verranno mostrati durante la navigazione della lista.", "File not found" : "File non trovato", "_{count} selected_::_{count} selected_" : ["{count} selezionato","{count} selezionati","{count} selezionati"], + "Search everywhere …" : "Cerca ovunque…", + "Search here …" : "Cerca qui…", "Search scope options" : "Opzioni nell'ambito di ricerca", + "Search here" : "Cerca qui", "{usedQuotaByte} used" : "{usedQuotaByte} usato", "{used} of {quota} used" : "{used} di {quota} utilizzati", "{relative}% used" : "{relative}% usato", @@ -187,6 +193,7 @@ OC.L10N.register( "No search results for “{query}”" : "Nessun risultato di ricerca per “{query}”", "Search for files" : "Cerca file", "Clipboard is not available" : "Appunti non disponibili", + "WebDAV URL copied" : "URL WebDAV copiato", "General" : "Generale", "Default view" : "Vista predefinita", "All files" : "Tutti i file", @@ -197,23 +204,37 @@ OC.L10N.register( "Appearance" : "Aspetto", "Show hidden files" : "Mostra i file nascosti", "Show file type column" : "Mostra colonna tipo di file", + "Show file extensions" : "Mostra estensioni di file", "Crop image previews" : "Ritaglia le anteprime delle immagini", "Additional settings" : "Impostazioni aggiuntive", "WebDAV" : "WebDAV", "WebDAV URL" : "URL WebDAV", "Copy" : "Copia", + "How to access files using WebDAV" : "Come accedere ai file tramite WebDAV", "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "Per il tuo account è abilitata l'autenticazione a due fattori, pertanto devi utilizzare una password dell'app per connetterti a un client WebDAV esterno.", "Warnings" : "Avvertenze", + "Warn before changing a file extension" : "Avvisa prima di modificare l'estensione di un file", + "Warn before deleting files" : "Avvisa prima di eliminare i file", "Keyboard shortcuts" : "Scorciatoie da tastiera", + "File actions" : "Azioni sui file", "Rename" : "Rinomina", "Delete" : "Elimina", + "Add or remove favorite" : "Aggiungi o rimuovi preferito", "Manage tags" : "Gestisci etichette", "Selection" : "Selezione", "Select all files" : "Seleziona tutti i file", "Deselect all" : "Deseleziona tutto", + "Select or deselect" : "Seleziona o deseleziona", + "Select a range" : "Seleziona un intervallo", "Navigation" : "Navigazione", + "Go to parent folder" : "Vai alla cartella padre", + "Go to file above" : "Vai al file sopra", + "Go to file below" : "Vai al file sotto", + "Go left in grid" : "Vai a sinistra nella griglia", + "Go right in grid" : "Vai a destra nella griglia", "View" : "Visualizza", "Toggle grid view" : "Commuta la vista a griglia", + "Open file sidebar" : "Apri la barra laterale del file", "Show those shortcuts" : "Mostra quelle scorciatoie", "You" : "Tu", "Shared multiple times with different people" : "Condiviso più volte con diverse persone", @@ -321,6 +342,7 @@ OC.L10N.register( "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Il nome \"{newName}\" è attualmente in uso nella cartella \"{dir}\". Scegli un nome diverso.", "Could not rename \"{oldName}\"" : "Impossibile rinominare \"{oldName}\"", "This operation is forbidden" : "Questa operazione è vietata", + "This folder is unavailable, please try again later or contact the administration" : "Questa cartella non è disponibile, riprova più tardi o contatta l'amministrazione", "Storage is temporarily not available" : "L'archiviazione è temporaneamente non disponibile", "Unexpected error: {error}" : "Errore imprevisto: {error}", "_%n file_::_%n files_" : ["%n file","%n file","%n file"], diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json index ec2a60a01ef..da6f6a596c7 100644 --- a/apps/files/l10n/it.json +++ b/apps/files/l10n/it.json @@ -113,6 +113,9 @@ "Name" : "Nome", "File type" : "Tipo di file", "Size" : "Dimensione", + "{displayName}: failed on some elements" : "{displayName}: non riuscito su alcuni elementi", + "{displayName}: done" : "{displayName}: fatto", + "{displayName}: failed" : "{displayName}: non riuscito", "Actions" : "Azioni", "(selected)" : "(selezionato)", "List of files and folders." : "Lista di file e cartelle.", @@ -121,7 +124,10 @@ "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Questa lista non è stata mostrata completamente per ragioni di prestazioni. I file verranno mostrati durante la navigazione della lista.", "File not found" : "File non trovato", "_{count} selected_::_{count} selected_" : ["{count} selezionato","{count} selezionati","{count} selezionati"], + "Search everywhere …" : "Cerca ovunque…", + "Search here …" : "Cerca qui…", "Search scope options" : "Opzioni nell'ambito di ricerca", + "Search here" : "Cerca qui", "{usedQuotaByte} used" : "{usedQuotaByte} usato", "{used} of {quota} used" : "{used} di {quota} utilizzati", "{relative}% used" : "{relative}% usato", @@ -185,6 +191,7 @@ "No search results for “{query}”" : "Nessun risultato di ricerca per “{query}”", "Search for files" : "Cerca file", "Clipboard is not available" : "Appunti non disponibili", + "WebDAV URL copied" : "URL WebDAV copiato", "General" : "Generale", "Default view" : "Vista predefinita", "All files" : "Tutti i file", @@ -195,23 +202,37 @@ "Appearance" : "Aspetto", "Show hidden files" : "Mostra i file nascosti", "Show file type column" : "Mostra colonna tipo di file", + "Show file extensions" : "Mostra estensioni di file", "Crop image previews" : "Ritaglia le anteprime delle immagini", "Additional settings" : "Impostazioni aggiuntive", "WebDAV" : "WebDAV", "WebDAV URL" : "URL WebDAV", "Copy" : "Copia", + "How to access files using WebDAV" : "Come accedere ai file tramite WebDAV", "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "Per il tuo account è abilitata l'autenticazione a due fattori, pertanto devi utilizzare una password dell'app per connetterti a un client WebDAV esterno.", "Warnings" : "Avvertenze", + "Warn before changing a file extension" : "Avvisa prima di modificare l'estensione di un file", + "Warn before deleting files" : "Avvisa prima di eliminare i file", "Keyboard shortcuts" : "Scorciatoie da tastiera", + "File actions" : "Azioni sui file", "Rename" : "Rinomina", "Delete" : "Elimina", + "Add or remove favorite" : "Aggiungi o rimuovi preferito", "Manage tags" : "Gestisci etichette", "Selection" : "Selezione", "Select all files" : "Seleziona tutti i file", "Deselect all" : "Deseleziona tutto", + "Select or deselect" : "Seleziona o deseleziona", + "Select a range" : "Seleziona un intervallo", "Navigation" : "Navigazione", + "Go to parent folder" : "Vai alla cartella padre", + "Go to file above" : "Vai al file sopra", + "Go to file below" : "Vai al file sotto", + "Go left in grid" : "Vai a sinistra nella griglia", + "Go right in grid" : "Vai a destra nella griglia", "View" : "Visualizza", "Toggle grid view" : "Commuta la vista a griglia", + "Open file sidebar" : "Apri la barra laterale del file", "Show those shortcuts" : "Mostra quelle scorciatoie", "You" : "Tu", "Shared multiple times with different people" : "Condiviso più volte con diverse persone", @@ -319,6 +340,7 @@ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Il nome \"{newName}\" è attualmente in uso nella cartella \"{dir}\". Scegli un nome diverso.", "Could not rename \"{oldName}\"" : "Impossibile rinominare \"{oldName}\"", "This operation is forbidden" : "Questa operazione è vietata", + "This folder is unavailable, please try again later or contact the administration" : "Questa cartella non è disponibile, riprova più tardi o contatta l'amministrazione", "Storage is temporarily not available" : "L'archiviazione è temporaneamente non disponibile", "Unexpected error: {error}" : "Errore imprevisto: {error}", "_%n file_::_%n files_" : ["%n file","%n file","%n file"], diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js index 8e0e5a545a0..b3130241bf1 100644 --- a/apps/files/l10n/pl.js +++ b/apps/files/l10n/pl.js @@ -115,6 +115,9 @@ OC.L10N.register( "Name" : "Nazwa", "File type" : "Typ pliku", "Size" : "Rozmiar", + "{displayName}: failed on some elements" : "{displayName}: niepowodzenie w przypadku niektórych elementów", + "{displayName}: done" : "{displayName}: zakończono", + "{displayName}: failed" : "{displayName}: niepowodzenie", "Actions" : "Akcje", "(selected)" : "(wybrany)", "List of files and folders." : "Lista plików i katalogów.", @@ -123,7 +126,10 @@ OC.L10N.register( "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Ta lista nie jest w pełni renderowana ze względu na wydajność. Pliki będą renderowane podczas poruszania się po liście.", "File not found" : "Nie odnaleziono pliku", "_{count} selected_::_{count} selected_" : ["wybrano {count}","wybrano {count}","wybrano {count}","wybrano {count}"], + "Search everywhere …" : "Szukaj wszędzie…", + "Search here …" : "Szukaj tutaj…", "Search scope options" : "Opcje zakresu wyszukiwania", + "Search here" : "Szukaj tutaj", "{usedQuotaByte} used" : "Wykorzystano {usedQuotaByte}", "{used} of {quota} used" : "Wykorzystane {used} z {quota}", "{relative}% used" : "Wykorzystano {relative}%", @@ -187,6 +193,7 @@ OC.L10N.register( "No search results for “{query}”" : "Brak wyników wyszukiwania dla \"{query}\"", "Search for files" : "Szukaj plików", "Clipboard is not available" : "Schowek jest niedostępny", + "WebDAV URL copied" : "Adres URL WebDAV skopiowany", "General" : "Ogólne", "Default view" : "Widok domyślny", "All files" : "Wszystkie pliki", @@ -197,24 +204,37 @@ OC.L10N.register( "Appearance" : "Wygląd", "Show hidden files" : "Pokaż ukryte pliki", "Show file type column" : "Pokaż kolumnę typu pliku", + "Show file extensions" : "Pokaż rozszerzenia plików", "Crop image previews" : "Przytnij podglądy obrazów", "Additional settings" : "Ustawienia dodatkowe", "WebDAV" : "WebDAV", "WebDAV URL" : "URL WebDAV", "Copy" : "Kopiuj", + "How to access files using WebDAV" : "Jak uzyskać dostęp do plików przez WebDAV", "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "Uwierzytelnianie dwuskładnikowe jest włączone dla Twojego konta, dlatego musisz użyć hasła aplikacji, aby połączyć zewnętrznego klienta WebDAV.", "Warnings" : "Ostrzeżenie", + "Warn before changing a file extension" : "Ostrzegaj przed zmianą rozszerzenia pliku", + "Warn before deleting files" : "Ostrzegaj przed usunięciem plików", "Keyboard shortcuts" : "Skróty klawiaturowe", "File actions" : "Akcje na plikach", "Rename" : "Zmień nazwę", "Delete" : "Usuń", + "Add or remove favorite" : "Dodaj lub usuń z ulubionych", "Manage tags" : "Zarządzaj etykietami", "Selection" : "Wybór", "Select all files" : "Wybierz wszystkie pliki", "Deselect all" : "Odznacz wszystkie", + "Select or deselect" : "Zaznacz lub odznacz", + "Select a range" : "Wybierz zakres", "Navigation" : "Nawigacja", + "Go to parent folder" : "Przejdź do folderu nadrzędnego", + "Go to file above" : "Przejdź do pliku powyżej", + "Go to file below" : "Przejdź do pliku poniżej", + "Go left in grid" : "Przejdź w lewo w siatce", + "Go right in grid" : "Przejdź w prawo w siatce", "View" : "Podgląd", "Toggle grid view" : "Przełącz widok siatki", + "Open file sidebar" : "Otwórz panel boczny pliku", "Show those shortcuts" : "Pokaż te skróty", "You" : "Ty", "Shared multiple times with different people" : "Udostępniony wiele razy różnym osobom", @@ -322,6 +342,7 @@ OC.L10N.register( "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nazwa \"{newName}\" jest już używana w katalogu \"{dir}\". Wybierz inną nazwę.", "Could not rename \"{oldName}\"" : "Nie można zmienić nazwy \"{oldName}\"", "This operation is forbidden" : "Ta operacja jest niedozwolona", + "This folder is unavailable, please try again later or contact the administration" : "Ten folder jest niedostępny, spróbuj ponownie później lub skontaktuj się z administracją", "Storage is temporarily not available" : "Magazyn jest tymczasowo niedostępny", "Unexpected error: {error}" : "Nieoczekiwany błąd: {error}", "_%n file_::_%n files_" : ["%n plik","%n pliki","%n plików","%n plików"], diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json index e9695a06569..eba17ba16a9 100644 --- a/apps/files/l10n/pl.json +++ b/apps/files/l10n/pl.json @@ -113,6 +113,9 @@ "Name" : "Nazwa", "File type" : "Typ pliku", "Size" : "Rozmiar", + "{displayName}: failed on some elements" : "{displayName}: niepowodzenie w przypadku niektórych elementów", + "{displayName}: done" : "{displayName}: zakończono", + "{displayName}: failed" : "{displayName}: niepowodzenie", "Actions" : "Akcje", "(selected)" : "(wybrany)", "List of files and folders." : "Lista plików i katalogów.", @@ -121,7 +124,10 @@ "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Ta lista nie jest w pełni renderowana ze względu na wydajność. Pliki będą renderowane podczas poruszania się po liście.", "File not found" : "Nie odnaleziono pliku", "_{count} selected_::_{count} selected_" : ["wybrano {count}","wybrano {count}","wybrano {count}","wybrano {count}"], + "Search everywhere …" : "Szukaj wszędzie…", + "Search here …" : "Szukaj tutaj…", "Search scope options" : "Opcje zakresu wyszukiwania", + "Search here" : "Szukaj tutaj", "{usedQuotaByte} used" : "Wykorzystano {usedQuotaByte}", "{used} of {quota} used" : "Wykorzystane {used} z {quota}", "{relative}% used" : "Wykorzystano {relative}%", @@ -185,6 +191,7 @@ "No search results for “{query}”" : "Brak wyników wyszukiwania dla \"{query}\"", "Search for files" : "Szukaj plików", "Clipboard is not available" : "Schowek jest niedostępny", + "WebDAV URL copied" : "Adres URL WebDAV skopiowany", "General" : "Ogólne", "Default view" : "Widok domyślny", "All files" : "Wszystkie pliki", @@ -195,24 +202,37 @@ "Appearance" : "Wygląd", "Show hidden files" : "Pokaż ukryte pliki", "Show file type column" : "Pokaż kolumnę typu pliku", + "Show file extensions" : "Pokaż rozszerzenia plików", "Crop image previews" : "Przytnij podglądy obrazów", "Additional settings" : "Ustawienia dodatkowe", "WebDAV" : "WebDAV", "WebDAV URL" : "URL WebDAV", "Copy" : "Kopiuj", + "How to access files using WebDAV" : "Jak uzyskać dostęp do plików przez WebDAV", "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "Uwierzytelnianie dwuskładnikowe jest włączone dla Twojego konta, dlatego musisz użyć hasła aplikacji, aby połączyć zewnętrznego klienta WebDAV.", "Warnings" : "Ostrzeżenie", + "Warn before changing a file extension" : "Ostrzegaj przed zmianą rozszerzenia pliku", + "Warn before deleting files" : "Ostrzegaj przed usunięciem plików", "Keyboard shortcuts" : "Skróty klawiaturowe", "File actions" : "Akcje na plikach", "Rename" : "Zmień nazwę", "Delete" : "Usuń", + "Add or remove favorite" : "Dodaj lub usuń z ulubionych", "Manage tags" : "Zarządzaj etykietami", "Selection" : "Wybór", "Select all files" : "Wybierz wszystkie pliki", "Deselect all" : "Odznacz wszystkie", + "Select or deselect" : "Zaznacz lub odznacz", + "Select a range" : "Wybierz zakres", "Navigation" : "Nawigacja", + "Go to parent folder" : "Przejdź do folderu nadrzędnego", + "Go to file above" : "Przejdź do pliku powyżej", + "Go to file below" : "Przejdź do pliku poniżej", + "Go left in grid" : "Przejdź w lewo w siatce", + "Go right in grid" : "Przejdź w prawo w siatce", "View" : "Podgląd", "Toggle grid view" : "Przełącz widok siatki", + "Open file sidebar" : "Otwórz panel boczny pliku", "Show those shortcuts" : "Pokaż te skróty", "You" : "Ty", "Shared multiple times with different people" : "Udostępniony wiele razy różnym osobom", @@ -320,6 +340,7 @@ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nazwa \"{newName}\" jest już używana w katalogu \"{dir}\". Wybierz inną nazwę.", "Could not rename \"{oldName}\"" : "Nie można zmienić nazwy \"{oldName}\"", "This operation is forbidden" : "Ta operacja jest niedozwolona", + "This folder is unavailable, please try again later or contact the administration" : "Ten folder jest niedostępny, spróbuj ponownie później lub skontaktuj się z administracją", "Storage is temporarily not available" : "Magazyn jest tymczasowo niedostępny", "Unexpected error: {error}" : "Nieoczekiwany błąd: {error}", "_%n file_::_%n files_" : ["%n plik","%n pliki","%n plików","%n plików"], diff --git a/apps/files/l10n/uk.js b/apps/files/l10n/uk.js index 1760126cf13..806bf1ed94d 100644 --- a/apps/files/l10n/uk.js +++ b/apps/files/l10n/uk.js @@ -115,6 +115,9 @@ OC.L10N.register( "Name" : "Ім'я", "File type" : "Тип файлу", "Size" : "Розмір", + "{displayName}: failed on some elements" : "{displayName}: не вдалося виконати деякі елементи", + "{displayName}: done" : "{displayName}: готово", + "{displayName}: failed" : "{displayName}: не вдалося", "Actions" : "Дії", "(selected)" : "(вибрано)", "List of files and folders." : "Список файлів та каталогів", @@ -123,7 +126,10 @@ OC.L10N.register( "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Список не подається повністю з міркувань обчислювальних потужностей. Файли показуватимуться під час прокручування списку.", "File not found" : "Файл не знайдено", "_{count} selected_::_{count} selected_" : ["Вибрано {count}","Вибрано {count}","Вибрано {count} ","Вибрано {count} "], + "Search everywhere …" : "Шукати всюди ...", + "Search here …" : "Шукати тут …", "Search scope options" : "Визначити місце пошуку", + "Search here" : "Шукати тут", "{usedQuotaByte} used" : "{usedQuotaByte} використано", "{used} of {quota} used" : "Використано {used} із {quota}", "{relative}% used" : "{relative}% використано", @@ -187,6 +193,7 @@ OC.L10N.register( "No search results for “{query}”" : "Відсутні результати для \"{query}\"", "Search for files" : "Шукати файли", "Clipboard is not available" : "Буфер обміну недоступний", + "WebDAV URL copied" : "URL-адреса WebDAV скопійована", "General" : "Загальне", "Default view" : "Типовий вигляд", "All files" : "Усі файли", @@ -197,24 +204,37 @@ OC.L10N.register( "Appearance" : "Вигляд", "Show hidden files" : "Показувати приховані файли", "Show file type column" : "Показувати стовпець з типом файлу", + "Show file extensions" : "Show file extensions", "Crop image previews" : "Попередній перегляд перед кадруванням", "Additional settings" : "Додатково", "WebDAV" : "WebDAV", "WebDAV URL" : "URL-адреса WebDAV", "Copy" : "Копіювати", + "How to access files using WebDAV" : "Як отримати доступ до файлів за допомогою WebDAV", "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "Для вашого облікового запису увімкнено двофакторну авторизацію, таким чином вам потрібно буде використовувати пароль для застосунку для з'єднання із зовнішнім клієнтом WebDAV.", "Warnings" : "Застереження", + "Warn before changing a file extension" : "Попереджати перед зміною розширення файлу", + "Warn before deleting files" : "Попереджати перед видаленням файлів", "Keyboard shortcuts" : "Скорочення", "File actions" : "Дії з файлами", "Rename" : "Перейменувати", "Delete" : "Вилучити", + "Add or remove favorite" : "Додати або видалити з улюблених", "Manage tags" : "Керування мітками", "Selection" : "Вибір", "Select all files" : "Вибрати всі файли", "Deselect all" : "Зняти всі мітки", + "Select or deselect" : "Вибрати або скасувати вибір", + "Select a range" : "Виберіть діапазон", "Navigation" : "Навігація", + "Go to parent folder" : "Перейти до батьківської папки", + "Go to file above" : "Перейти до файлу вище", + "Go to file below" : "Перейти до файлу нижче", + "Go left in grid" : "Перейти ліворуч у сітці", + "Go right in grid" : "Перейти праворуч у сітці", "View" : "Подання", "Toggle grid view" : "Перемкнути подання сіткою", + "Open file sidebar" : "Відкрити бічну панель файлів", "Show those shortcuts" : "Показувати ці скорочення", "You" : "Ви", "Shared multiple times with different people" : "Поділилися кілька разів з різними людьми", @@ -322,6 +342,7 @@ OC.L10N.register( "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Ім'я \"{newName}\" вже використовується у каталозі \"{dir}\". Виберіть інше ім'я.", "Could not rename \"{oldName}\"" : "Не вдалося перейменувати \"{oldName}\"", "This operation is forbidden" : "Операцію заборонено", + "This folder is unavailable, please try again later or contact the administration" : "Ця папка недоступна, спробуйте пізніше або зверніться до адміністрації.", "Storage is temporarily not available" : "Сховище тимчасово недоступне", "Unexpected error: {error}" : "Неочікувана помилка: {error}", "_%n file_::_%n files_" : ["%n файл","%n файли","%n файлів","%n файлів"], diff --git a/apps/files/l10n/uk.json b/apps/files/l10n/uk.json index a7fb00b8cb4..6033dfe979d 100644 --- a/apps/files/l10n/uk.json +++ b/apps/files/l10n/uk.json @@ -113,6 +113,9 @@ "Name" : "Ім'я", "File type" : "Тип файлу", "Size" : "Розмір", + "{displayName}: failed on some elements" : "{displayName}: не вдалося виконати деякі елементи", + "{displayName}: done" : "{displayName}: готово", + "{displayName}: failed" : "{displayName}: не вдалося", "Actions" : "Дії", "(selected)" : "(вибрано)", "List of files and folders." : "Список файлів та каталогів", @@ -121,7 +124,10 @@ "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Список не подається повністю з міркувань обчислювальних потужностей. Файли показуватимуться під час прокручування списку.", "File not found" : "Файл не знайдено", "_{count} selected_::_{count} selected_" : ["Вибрано {count}","Вибрано {count}","Вибрано {count} ","Вибрано {count} "], + "Search everywhere …" : "Шукати всюди ...", + "Search here …" : "Шукати тут …", "Search scope options" : "Визначити місце пошуку", + "Search here" : "Шукати тут", "{usedQuotaByte} used" : "{usedQuotaByte} використано", "{used} of {quota} used" : "Використано {used} із {quota}", "{relative}% used" : "{relative}% використано", @@ -185,6 +191,7 @@ "No search results for “{query}”" : "Відсутні результати для \"{query}\"", "Search for files" : "Шукати файли", "Clipboard is not available" : "Буфер обміну недоступний", + "WebDAV URL copied" : "URL-адреса WebDAV скопійована", "General" : "Загальне", "Default view" : "Типовий вигляд", "All files" : "Усі файли", @@ -195,24 +202,37 @@ "Appearance" : "Вигляд", "Show hidden files" : "Показувати приховані файли", "Show file type column" : "Показувати стовпець з типом файлу", + "Show file extensions" : "Show file extensions", "Crop image previews" : "Попередній перегляд перед кадруванням", "Additional settings" : "Додатково", "WebDAV" : "WebDAV", "WebDAV URL" : "URL-адреса WebDAV", "Copy" : "Копіювати", + "How to access files using WebDAV" : "Як отримати доступ до файлів за допомогою WebDAV", "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "Для вашого облікового запису увімкнено двофакторну авторизацію, таким чином вам потрібно буде використовувати пароль для застосунку для з'єднання із зовнішнім клієнтом WebDAV.", "Warnings" : "Застереження", + "Warn before changing a file extension" : "Попереджати перед зміною розширення файлу", + "Warn before deleting files" : "Попереджати перед видаленням файлів", "Keyboard shortcuts" : "Скорочення", "File actions" : "Дії з файлами", "Rename" : "Перейменувати", "Delete" : "Вилучити", + "Add or remove favorite" : "Додати або видалити з улюблених", "Manage tags" : "Керування мітками", "Selection" : "Вибір", "Select all files" : "Вибрати всі файли", "Deselect all" : "Зняти всі мітки", + "Select or deselect" : "Вибрати або скасувати вибір", + "Select a range" : "Виберіть діапазон", "Navigation" : "Навігація", + "Go to parent folder" : "Перейти до батьківської папки", + "Go to file above" : "Перейти до файлу вище", + "Go to file below" : "Перейти до файлу нижче", + "Go left in grid" : "Перейти ліворуч у сітці", + "Go right in grid" : "Перейти праворуч у сітці", "View" : "Подання", "Toggle grid view" : "Перемкнути подання сіткою", + "Open file sidebar" : "Відкрити бічну панель файлів", "Show those shortcuts" : "Показувати ці скорочення", "You" : "Ви", "Shared multiple times with different people" : "Поділилися кілька разів з різними людьми", @@ -320,6 +340,7 @@ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Ім'я \"{newName}\" вже використовується у каталозі \"{dir}\". Виберіть інше ім'я.", "Could not rename \"{oldName}\"" : "Не вдалося перейменувати \"{oldName}\"", "This operation is forbidden" : "Операцію заборонено", + "This folder is unavailable, please try again later or contact the administration" : "Ця папка недоступна, спробуйте пізніше або зверніться до адміністрації.", "Storage is temporarily not available" : "Сховище тимчасово недоступне", "Unexpected error: {error}" : "Неочікувана помилка: {error}", "_%n file_::_%n files_" : ["%n файл","%n файли","%n файлів","%n файлів"], diff --git a/apps/files/l10n/vi.js b/apps/files/l10n/vi.js index 41031411c10..5517e324d05 100644 --- a/apps/files/l10n/vi.js +++ b/apps/files/l10n/vi.js @@ -170,7 +170,6 @@ OC.L10N.register( "Deselect all" : "Bỏ chọn tất cả", "Navigation" : "Điều hướng", "View" : "Xem", - "Toggle grid view" : "Chuyển đổi dạng xem lưới", "You" : "Bạn", "Shared multiple times with different people" : "Được chia sẻ nhiều lần với những người khác nhau", "Error while loading the file data" : "Lỗi xảy ra trong khi tải dữ liệu tệp", diff --git a/apps/files/l10n/vi.json b/apps/files/l10n/vi.json index fd6de8bd146..b31dea59879 100644 --- a/apps/files/l10n/vi.json +++ b/apps/files/l10n/vi.json @@ -168,7 +168,6 @@ "Deselect all" : "Bỏ chọn tất cả", "Navigation" : "Điều hướng", "View" : "Xem", - "Toggle grid view" : "Chuyển đổi dạng xem lưới", "You" : "Bạn", "Shared multiple times with different people" : "Được chia sẻ nhiều lần với những người khác nhau", "Error while loading the file data" : "Lỗi xảy ra trong khi tải dữ liệu tệp", diff --git a/apps/files/l10n/zh_HK.js b/apps/files/l10n/zh_HK.js index 7d3b29ff715..395318ef440 100644 --- a/apps/files/l10n/zh_HK.js +++ b/apps/files/l10n/zh_HK.js @@ -115,6 +115,9 @@ OC.L10N.register( "Name" : "名稱", "File type" : "檔案類型", "Size" : "大小", + "{displayName}: failed on some elements" : "{displayName}:在部份元素上失敗", + "{displayName}: done" : "{displayName}:完成", + "{displayName}: failed" : "{displayName}:失敗", "Actions" : "操作", "(selected)" : "(已選擇)", "List of files and folders." : "檔案與資料夾清單。", @@ -123,7 +126,10 @@ OC.L10N.register( "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "出於性能考慮,此清單未完全呈現。檔案將在您瀏覽清單時呈現。", "File not found" : "找不到檔案", "_{count} selected_::_{count} selected_" : ["已選擇 {count} 項"], + "Search everywhere …" : "搜尋各處 …", + "Search here …" : "搜尋此處 …", "Search scope options" : "搜尋範圍選項", + "Search here" : "搜尋此處", "{usedQuotaByte} used" : "已使用 {usedQuotaByte} ", "{used} of {quota} used" : "已使用 {quota} 當中的 {used}", "{relative}% used" : "已使用 {relative}%", @@ -187,7 +193,8 @@ OC.L10N.register( "No search results for “{query}”" : "沒有結果符合「{query}」", "Search for files" : "搜尋檔案", "Clipboard is not available" : "剪貼板不可用", - "General" : "常規", + "WebDAV URL copied" : "已複製 WebDAV URL", + "General" : "一般", "Default view" : "默認檢視", "All files" : "所有檔案", "Personal files" : "個人檔案", @@ -197,24 +204,37 @@ OC.L10N.register( "Appearance" : "外觀", "Show hidden files" : "顯示隱藏檔案", "Show file type column" : "顯示檔案類型縱列", + "Show file extensions" : "顯示副檔名", "Crop image previews" : "圖片裁剪預覽", "Additional settings" : "其他設定", "WebDAV" : "WebDAV", "WebDAV URL" : "WebDAV URL", "Copy" : "複製", + "How to access files using WebDAV" : "如何使用 WebDAV 存取檔案", "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "您的帳號已啟用兩階段驗證,因此您必須使用應用程式密碼才能連結外部 WebDAV 帳號。", "Warnings" : "警告", + "Warn before changing a file extension" : "變更副檔名前警告", + "Warn before deleting files" : "刪除檔案前警告", "Keyboard shortcuts" : "鍵盤快捷鍵", "File actions" : "檔案操作", "Rename" : "重新命名", "Delete" : "刪除", + "Add or remove favorite" : "新增或移除最愛", "Manage tags" : "管理標籤", "Selection" : "選擇", "Select all files" : "選擇所有檔案", "Deselect all" : "取消全選", + "Select or deselect" : "選取或取消選取", + "Select a range" : "選取範圍", "Navigation" : "導覽列", + "Go to parent folder" : "前往上層資料夾", + "Go to file above" : "前往以上檔案", + "Go to file below" : "前往以下檔案", + "Go left in grid" : "在網格中向左", + "Go right in grid" : "在網格中向右", "View" : "檢視", "Toggle grid view" : "切換網格檢視", + "Open file sidebar" : "開啟檔案側邊欄", "Show those shortcuts" : "顯示這些快捷鍵", "You" : "您", "Shared multiple times with different people" : "與不同的人多次分享", @@ -322,6 +342,7 @@ OC.L10N.register( "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "此名稱「{newName}」在這資料夾「{dir}」已經被使用。請選擇其他名稱。", "Could not rename \"{oldName}\"" : "無法重新命名「{oldName}」", "This operation is forbidden" : "此操作被禁止", + "This folder is unavailable, please try again later or contact the administration" : "此資料夾無法使用,請稍後再試或聯絡管理員", "Storage is temporarily not available" : "儲存空間暫時無法使用", "Unexpected error: {error}" : "意外錯誤:{error}", "_%n file_::_%n files_" : ["%n 個檔案"], diff --git a/apps/files/l10n/zh_HK.json b/apps/files/l10n/zh_HK.json index 608ce59e5bc..c05a040a426 100644 --- a/apps/files/l10n/zh_HK.json +++ b/apps/files/l10n/zh_HK.json @@ -113,6 +113,9 @@ "Name" : "名稱", "File type" : "檔案類型", "Size" : "大小", + "{displayName}: failed on some elements" : "{displayName}:在部份元素上失敗", + "{displayName}: done" : "{displayName}:完成", + "{displayName}: failed" : "{displayName}:失敗", "Actions" : "操作", "(selected)" : "(已選擇)", "List of files and folders." : "檔案與資料夾清單。", @@ -121,7 +124,10 @@ "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "出於性能考慮,此清單未完全呈現。檔案將在您瀏覽清單時呈現。", "File not found" : "找不到檔案", "_{count} selected_::_{count} selected_" : ["已選擇 {count} 項"], + "Search everywhere …" : "搜尋各處 …", + "Search here …" : "搜尋此處 …", "Search scope options" : "搜尋範圍選項", + "Search here" : "搜尋此處", "{usedQuotaByte} used" : "已使用 {usedQuotaByte} ", "{used} of {quota} used" : "已使用 {quota} 當中的 {used}", "{relative}% used" : "已使用 {relative}%", @@ -185,7 +191,8 @@ "No search results for “{query}”" : "沒有結果符合「{query}」", "Search for files" : "搜尋檔案", "Clipboard is not available" : "剪貼板不可用", - "General" : "常規", + "WebDAV URL copied" : "已複製 WebDAV URL", + "General" : "一般", "Default view" : "默認檢視", "All files" : "所有檔案", "Personal files" : "個人檔案", @@ -195,24 +202,37 @@ "Appearance" : "外觀", "Show hidden files" : "顯示隱藏檔案", "Show file type column" : "顯示檔案類型縱列", + "Show file extensions" : "顯示副檔名", "Crop image previews" : "圖片裁剪預覽", "Additional settings" : "其他設定", "WebDAV" : "WebDAV", "WebDAV URL" : "WebDAV URL", "Copy" : "複製", + "How to access files using WebDAV" : "如何使用 WebDAV 存取檔案", "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "您的帳號已啟用兩階段驗證,因此您必須使用應用程式密碼才能連結外部 WebDAV 帳號。", "Warnings" : "警告", + "Warn before changing a file extension" : "變更副檔名前警告", + "Warn before deleting files" : "刪除檔案前警告", "Keyboard shortcuts" : "鍵盤快捷鍵", "File actions" : "檔案操作", "Rename" : "重新命名", "Delete" : "刪除", + "Add or remove favorite" : "新增或移除最愛", "Manage tags" : "管理標籤", "Selection" : "選擇", "Select all files" : "選擇所有檔案", "Deselect all" : "取消全選", + "Select or deselect" : "選取或取消選取", + "Select a range" : "選取範圍", "Navigation" : "導覽列", + "Go to parent folder" : "前往上層資料夾", + "Go to file above" : "前往以上檔案", + "Go to file below" : "前往以下檔案", + "Go left in grid" : "在網格中向左", + "Go right in grid" : "在網格中向右", "View" : "檢視", "Toggle grid view" : "切換網格檢視", + "Open file sidebar" : "開啟檔案側邊欄", "Show those shortcuts" : "顯示這些快捷鍵", "You" : "您", "Shared multiple times with different people" : "與不同的人多次分享", @@ -320,6 +340,7 @@ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "此名稱「{newName}」在這資料夾「{dir}」已經被使用。請選擇其他名稱。", "Could not rename \"{oldName}\"" : "無法重新命名「{oldName}」", "This operation is forbidden" : "此操作被禁止", + "This folder is unavailable, please try again later or contact the administration" : "此資料夾無法使用,請稍後再試或聯絡管理員", "Storage is temporarily not available" : "儲存空間暫時無法使用", "Unexpected error: {error}" : "意外錯誤:{error}", "_%n file_::_%n files_" : ["%n 個檔案"], diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js index 77218bccda9..d895fbc5c68 100644 --- a/apps/files/l10n/zh_TW.js +++ b/apps/files/l10n/zh_TW.js @@ -115,6 +115,9 @@ OC.L10N.register( "Name" : "名稱", "File type" : "檔案類型", "Size" : "大小", + "{displayName}: failed on some elements" : "{displayName}:在部份元素上失敗", + "{displayName}: done" : "{displayName}:完成", + "{displayName}: failed" : "{displayName}:失敗", "Actions" : "動作", "(selected)" : "(已選取)", "List of files and folders." : "檔案與資料夾清單。", @@ -123,7 +126,10 @@ OC.L10N.register( "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "出於效能考量,此清單未完全呈現。檔案將在您瀏覽清單時呈現。", "File not found" : "找不到檔案", "_{count} selected_::_{count} selected_" : ["已選取 {count} 個"], + "Search everywhere …" : "搜尋各處……", + "Search here …" : "搜尋此處……", "Search scope options" : "搜尋範圍選項", + "Search here" : "搜尋此處", "{usedQuotaByte} used" : "已使用 {usedQuotaByte}", "{used} of {quota} used" : "已使用 {used},共 {quota}", "{relative}% used" : "已使用 {relative}%", @@ -187,6 +193,7 @@ OC.L10N.register( "No search results for “{query}”" : "沒有結果符合「{query}」", "Search for files" : "搜尋檔案", "Clipboard is not available" : "剪貼簿無法使用", + "WebDAV URL copied" : "已複製 WebDAV URL", "General" : "一般", "Default view" : "預設檢視", "All files" : "所有檔案", @@ -197,24 +204,37 @@ OC.L10N.register( "Appearance" : "外觀", "Show hidden files" : "顯示隱藏檔", "Show file type column" : "顯示檔案類型欄位", + "Show file extensions" : "顯示副檔名", "Crop image previews" : "圖片裁剪預覽", "Additional settings" : "其他設定", "WebDAV" : "WebDAV", "WebDAV URL" : "WebDAV URL", "Copy" : "複製", + "How to access files using WebDAV" : "如何使用 WebDAV 存取檔案", "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "您的帳號已啟用兩階段驗證,因此您必須使用應用程式密碼才能連結外部 WebDAV 帳號。", "Warnings" : "警告", + "Warn before changing a file extension" : "變更副檔名前警告", + "Warn before deleting files" : "刪除檔案前警告", "Keyboard shortcuts" : "鍵盤快速鍵", "File actions" : "檔案動作", "Rename" : "重新命名", "Delete" : "刪除", + "Add or remove favorite" : "新增或移除最愛", "Manage tags" : "管理標籤", "Selection" : "選取", "Select all files" : "選取所有檔案", "Deselect all" : "取消全選", + "Select or deselect" : "選取或取消選取", + "Select a range" : "選取範圍", "Navigation" : "導覽列", + "Go to parent folder" : "前往上層資料夾", + "Go to file above" : "前往以上檔案", + "Go to file below" : "前往以下檔案", + "Go left in grid" : "在網格中向左", + "Go right in grid" : "在網格中向右", "View" : "檢視", "Toggle grid view" : "切換網格檢視", + "Open file sidebar" : "開啟檔案側邊欄", "Show those shortcuts" : "顯示這些快捷鍵", "You" : "您", "Shared multiple times with different people" : "與不同的人多次分享", @@ -322,6 +342,7 @@ OC.L10N.register( "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "此名稱「{newName}」在資料夾「{dir}」中已被使用。請改用其他名稱。", "Could not rename \"{oldName}\"" : "無法重新命名「{oldName}」", "This operation is forbidden" : "此操作被禁止", + "This folder is unavailable, please try again later or contact the administration" : "此資料夾無法使用,請稍後再試或聯絡管理員", "Storage is temporarily not available" : "儲存空間暫時無法使用", "Unexpected error: {error}" : "意外錯誤:{error}", "_%n file_::_%n files_" : ["%n 個檔案"], diff --git a/apps/files/l10n/zh_TW.json b/apps/files/l10n/zh_TW.json index de74157e3f2..379c89a9ba0 100644 --- a/apps/files/l10n/zh_TW.json +++ b/apps/files/l10n/zh_TW.json @@ -113,6 +113,9 @@ "Name" : "名稱", "File type" : "檔案類型", "Size" : "大小", + "{displayName}: failed on some elements" : "{displayName}:在部份元素上失敗", + "{displayName}: done" : "{displayName}:完成", + "{displayName}: failed" : "{displayName}:失敗", "Actions" : "動作", "(selected)" : "(已選取)", "List of files and folders." : "檔案與資料夾清單。", @@ -121,7 +124,10 @@ "This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "出於效能考量,此清單未完全呈現。檔案將在您瀏覽清單時呈現。", "File not found" : "找不到檔案", "_{count} selected_::_{count} selected_" : ["已選取 {count} 個"], + "Search everywhere …" : "搜尋各處……", + "Search here …" : "搜尋此處……", "Search scope options" : "搜尋範圍選項", + "Search here" : "搜尋此處", "{usedQuotaByte} used" : "已使用 {usedQuotaByte}", "{used} of {quota} used" : "已使用 {used},共 {quota}", "{relative}% used" : "已使用 {relative}%", @@ -185,6 +191,7 @@ "No search results for “{query}”" : "沒有結果符合「{query}」", "Search for files" : "搜尋檔案", "Clipboard is not available" : "剪貼簿無法使用", + "WebDAV URL copied" : "已複製 WebDAV URL", "General" : "一般", "Default view" : "預設檢視", "All files" : "所有檔案", @@ -195,24 +202,37 @@ "Appearance" : "外觀", "Show hidden files" : "顯示隱藏檔", "Show file type column" : "顯示檔案類型欄位", + "Show file extensions" : "顯示副檔名", "Crop image previews" : "圖片裁剪預覽", "Additional settings" : "其他設定", "WebDAV" : "WebDAV", "WebDAV URL" : "WebDAV URL", "Copy" : "複製", + "How to access files using WebDAV" : "如何使用 WebDAV 存取檔案", "Two-Factor Authentication is enabled for your account, and therefore you need to use an app password to connect an external WebDAV client." : "您的帳號已啟用兩階段驗證,因此您必須使用應用程式密碼才能連結外部 WebDAV 帳號。", "Warnings" : "警告", + "Warn before changing a file extension" : "變更副檔名前警告", + "Warn before deleting files" : "刪除檔案前警告", "Keyboard shortcuts" : "鍵盤快速鍵", "File actions" : "檔案動作", "Rename" : "重新命名", "Delete" : "刪除", + "Add or remove favorite" : "新增或移除最愛", "Manage tags" : "管理標籤", "Selection" : "選取", "Select all files" : "選取所有檔案", "Deselect all" : "取消全選", + "Select or deselect" : "選取或取消選取", + "Select a range" : "選取範圍", "Navigation" : "導覽列", + "Go to parent folder" : "前往上層資料夾", + "Go to file above" : "前往以上檔案", + "Go to file below" : "前往以下檔案", + "Go left in grid" : "在網格中向左", + "Go right in grid" : "在網格中向右", "View" : "檢視", "Toggle grid view" : "切換網格檢視", + "Open file sidebar" : "開啟檔案側邊欄", "Show those shortcuts" : "顯示這些快捷鍵", "You" : "您", "Shared multiple times with different people" : "與不同的人多次分享", @@ -320,6 +340,7 @@ "The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name." : "此名稱「{newName}」在資料夾「{dir}」中已被使用。請改用其他名稱。", "Could not rename \"{oldName}\"" : "無法重新命名「{oldName}」", "This operation is forbidden" : "此操作被禁止", + "This folder is unavailable, please try again later or contact the administration" : "此資料夾無法使用,請稍後再試或聯絡管理員", "Storage is temporarily not available" : "儲存空間暫時無法使用", "Unexpected error: {error}" : "意外錯誤:{error}", "_%n file_::_%n files_" : ["%n 個檔案"], diff --git a/apps/files/lib/Command/Object/Multi/Rename.php b/apps/files/lib/Command/Object/Multi/Rename.php new file mode 100644 index 00000000000..562c68eb07f --- /dev/null +++ b/apps/files/lib/Command/Object/Multi/Rename.php @@ -0,0 +1,108 @@ +<?php + +declare(strict_types=1); +/** + * SPDX-FileCopyrightText: 2025 Robin Appelman <robin@icewind.nl> + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +namespace OCA\Files\Command\Object\Multi; + +use OC\Core\Command\Base; +use OC\Files\ObjectStore\PrimaryObjectStoreConfig; +use OCP\IConfig; +use OCP\IDBConnection; +use Symfony\Component\Console\Helper\QuestionHelper; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Console\Question\ConfirmationQuestion; + +class Rename extends Base { + public function __construct( + private readonly IDBConnection $connection, + private readonly PrimaryObjectStoreConfig $objectStoreConfig, + private readonly IConfig $config, + ) { + parent::__construct(); + } + + protected function configure(): void { + parent::configure(); + $this + ->setName('files:object:multi:rename-config') + ->setDescription('Rename an object store configuration and move all users over to the new configuration,') + ->addArgument('source', InputArgument::REQUIRED, 'Object store configuration to rename') + ->addArgument('target', InputArgument::REQUIRED, 'New name for the object store configuration'); + } + + public function execute(InputInterface $input, OutputInterface $output): int { + $source = $input->getArgument('source'); + $target = $input->getArgument('target'); + + $configs = $this->objectStoreConfig->getObjectStoreConfigs(); + if (!isset($configs[$source])) { + $output->writeln('<error>Unknown object store configuration: ' . $source . '</error>'); + return 1; + } + + if ($source === 'root') { + $output->writeln('<error>Renaming the root configuration is not supported.</error>'); + return 1; + } + + if ($source === 'default') { + $output->writeln('<error>Renaming the default configuration is not supported.</error>'); + return 1; + } + + if (!isset($configs[$target])) { + $output->writeln('<comment>Target object store configuration ' . $target . ' doesn\'t exist yet.</comment>'); + $output->writeln('The target configuration can be created automatically.'); + $output->writeln('However, as this depends on modifying the config.php, this only works as long as the instance runs on a single node or all nodes in a clustered setup have a shared config file (such as from a shared network mount).'); + $output->writeln('If the different nodes have a separate copy of the config.php file, the automatic object store configuration creation will lead to the configuration going out of sync.'); + $output->writeln('If these requirements are not met, you can manually create the target object store configuration in each node\'s configuration before running the command.'); + $output->writeln(''); + $output->writeln('<error>Failure to check these requirements will lead to data loss for users.</error>'); + + /** @var QuestionHelper $helper */ + $helper = $this->getHelper('question'); + $question = new ConfirmationQuestion('Automatically create target object store configuration? [y/N] ', false); + if ($helper->ask($input, $output, $question)) { + $configs[$target] = $configs[$source]; + + // update all aliases + foreach ($configs as &$config) { + if ($config === $source) { + $config = $target; + } + } + $this->config->setSystemValue('objectstore', $configs); + } else { + return 0; + } + } elseif (($configs[$source] !== $configs[$target]) || $configs[$source] !== $target) { + $output->writeln('<error>Source and target configuration differ.</error>'); + $output->writeln(''); + $output->writeln('To ensure proper migration of users, the source and target configuration must be the same to ensure that the objects for the moved users exist on the target configuration.'); + $output->writeln('The usual migration process consists of creating a clone of the old configuration, moving the users from the old configuration to the new one, and then adjust the old configuration that is longer used.'); + return 1; + } + + $query = $this->connection->getQueryBuilder(); + $query->update('preferences') + ->set('configvalue', $query->createNamedParameter($target)) + ->where($query->expr()->eq('appid', $query->createNamedParameter('homeobjectstore'))) + ->andWhere($query->expr()->eq('configkey', $query->createNamedParameter('objectstore'))) + ->andWhere($query->expr()->eq('configvalue', $query->createNamedParameter($source))); + $count = $query->executeStatement(); + + if ($count > 0) { + $output->writeln('Moved <info>' . $count . '</info> users'); + } else { + $output->writeln('No users moved'); + } + + return 0; + } +} diff --git a/apps/files/lib/Command/Object/Multi/Users.php b/apps/files/lib/Command/Object/Multi/Users.php new file mode 100644 index 00000000000..e8f7d012641 --- /dev/null +++ b/apps/files/lib/Command/Object/Multi/Users.php @@ -0,0 +1,98 @@ +<?php + +declare(strict_types=1); +/** + * SPDX-FileCopyrightText: 2025 Robin Appelman <robin@icewind.nl> + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +namespace OCA\Files\Command\Object\Multi; + +use OC\Core\Command\Base; +use OC\Files\ObjectStore\PrimaryObjectStoreConfig; +use OCP\IConfig; +use OCP\IUser; +use OCP\IUserManager; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; + +class Users extends Base { + public function __construct( + private readonly IUserManager $userManager, + private readonly PrimaryObjectStoreConfig $objectStoreConfig, + private readonly IConfig $config, + ) { + parent::__construct(); + } + + protected function configure(): void { + parent::configure(); + $this + ->setName('files:object:multi:users') + ->setDescription('Get the mapping between users and object store buckets') + ->addOption('bucket', 'b', InputOption::VALUE_REQUIRED, 'Only list users using the specified bucket') + ->addOption('object-store', 'o', InputOption::VALUE_REQUIRED, 'Only list users using the specified object store configuration') + ->addOption('user', 'u', InputOption::VALUE_REQUIRED, 'Only show the mapping for the specified user, ignores all other options'); + } + + public function execute(InputInterface $input, OutputInterface $output): int { + if ($userId = $input->getOption('user')) { + $user = $this->userManager->get($userId); + if (!$user) { + $output->writeln("<error>User $userId not found</error>"); + return 1; + } + $users = new \ArrayIterator([$user]); + } else { + $bucket = (string)$input->getOption('bucket'); + $objectStore = (string)$input->getOption('object-store'); + if ($bucket !== '' && $objectStore === '') { + $users = $this->getUsers($this->config->getUsersForUserValue('homeobjectstore', 'bucket', $bucket)); + } elseif ($bucket === '' && $objectStore !== '') { + $users = $this->getUsers($this->config->getUsersForUserValue('homeobjectstore', 'objectstore', $objectStore)); + } elseif ($bucket) { + $users = $this->getUsers(array_intersect( + $this->config->getUsersForUserValue('homeobjectstore', 'bucket', $bucket), + $this->config->getUsersForUserValue('homeobjectstore', 'objectstore', $objectStore) + )); + } else { + $users = $this->userManager->getSeenUsers(); + } + } + + $this->writeStreamingTableInOutputFormat($input, $output, $this->infoForUsers($users), 100); + return 0; + } + + /** + * @param string[] $userIds + * @return \Iterator<IUser> + */ + private function getUsers(array $userIds): \Iterator { + foreach ($userIds as $userId) { + $user = $this->userManager->get($userId); + if ($user) { + yield $user; + } + } + } + + /** + * @param \Iterator<IUser> $users + * @return \Iterator<array> + */ + private function infoForUsers(\Iterator $users): \Iterator { + foreach ($users as $user) { + yield $this->infoForUser($user); + } + } + + private function infoForUser(IUser $user): array { + return [ + 'user' => $user->getUID(), + 'object-store' => $this->objectStoreConfig->getObjectStoreForUser($user), + 'bucket' => $this->objectStoreConfig->getSetBucketForUser($user) ?? 'unset', + ]; + } +} diff --git a/apps/files/lib/Service/OwnershipTransferService.php b/apps/files/lib/Service/OwnershipTransferService.php index 84c99f32109..afef5d2093d 100644 --- a/apps/files/lib/Service/OwnershipTransferService.php +++ b/apps/files/lib/Service/OwnershipTransferService.php @@ -333,15 +333,10 @@ class OwnershipTransferService { if ($path !== "$sourceUid/files") { $sharePage = array_filter($sharePage, function (IShare $share) use ($view, $normalizedPath) { try { - $relativePath = $view->getPath($share->getNodeId()); - $singleFileTranfer = $view->is_file($normalizedPath); - if ($singleFileTranfer) { - return Filesystem::normalizePath($relativePath) === $normalizedPath; - } + $sourceNode = $share->getNode(); + $relativePath = $view->getRelativePath($sourceNode->getPath()); - return mb_strpos( - Filesystem::normalizePath($relativePath . '/', false), - $normalizedPath . '/') === 0; + return str_starts_with($relativePath . '/', $normalizedPath . '/'); } catch (Exception $e) { return false; } @@ -357,7 +352,7 @@ class OwnershipTransferService { return array_values(array_filter(array_map(function (IShare $share) use ($view, $normalizedPath, $output, $sourceUid) { try { - $nodePath = $view->getPath($share->getNodeId()); + $nodePath = $view->getRelativePath($share->getNode()->getPath()); } catch (NotFoundException $e) { $output->writeln("<error>Failed to find path for shared file {$share->getNodeId()} for user $sourceUid, skipping</error>"); return null; diff --git a/apps/files_reminders/l10n/de.js b/apps/files_reminders/l10n/de.js index 5f0e6c6652e..d46b079f3fe 100644 --- a/apps/files_reminders/l10n/de.js +++ b/apps/files_reminders/l10n/de.js @@ -11,6 +11,7 @@ OC.L10N.register( "Set file reminders" : "Dateierinnerungen setzen", "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 Dateierinnerungen**\n\nDateierinnerungen festlegen.\n\nHinweis: Um die App ``Dateierinnerungen` zu verwenden, stelle sicher, dass die App `Benachrichtigungen` installiert und aktiviert ist. Die App `Benachrichtigungen` bietet die erforderlichen APIs, damit die App `Dateierinnerungen`ordnungsgemäß funktioniert.", "Set reminder for \"{fileName}\"" : "Erinnerung für \"{fileName}\" setzen", + "Reminder at custom date & time" : "Erinnerung zu benutzerdefiniertem Zeitpunkt und Tag", "Clear reminder" : "Erinnerung löschen", "Please choose a valid date & time" : "Bitte gültiges Datum und Uhrzeit wählen", "Reminder set for \"{fileName}\"" : "Erinnerung für \"{fileName}\" gesetzt", @@ -21,6 +22,7 @@ OC.L10N.register( "Cancel" : "Abbrechen", "Set reminder" : "Erinnerung erstellen", "Reminder set" : "Erinnerung gesetzt", + "Custom reminder" : "Benutzerdefinierte Erinnerung", "Later today" : "Später heute", "Set reminder for later today" : "Erinnerung für nachher erstellen", "Tomorrow" : "Morgen", diff --git a/apps/files_reminders/l10n/de.json b/apps/files_reminders/l10n/de.json index 8a2cf1f38e4..2b82a91d296 100644 --- a/apps/files_reminders/l10n/de.json +++ b/apps/files_reminders/l10n/de.json @@ -9,6 +9,7 @@ "Set file reminders" : "Dateierinnerungen setzen", "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 Dateierinnerungen**\n\nDateierinnerungen festlegen.\n\nHinweis: Um die App ``Dateierinnerungen` zu verwenden, stelle sicher, dass die App `Benachrichtigungen` installiert und aktiviert ist. Die App `Benachrichtigungen` bietet die erforderlichen APIs, damit die App `Dateierinnerungen`ordnungsgemäß funktioniert.", "Set reminder for \"{fileName}\"" : "Erinnerung für \"{fileName}\" setzen", + "Reminder at custom date & time" : "Erinnerung zu benutzerdefiniertem Zeitpunkt und Tag", "Clear reminder" : "Erinnerung löschen", "Please choose a valid date & time" : "Bitte gültiges Datum und Uhrzeit wählen", "Reminder set for \"{fileName}\"" : "Erinnerung für \"{fileName}\" gesetzt", @@ -19,6 +20,7 @@ "Cancel" : "Abbrechen", "Set reminder" : "Erinnerung erstellen", "Reminder set" : "Erinnerung gesetzt", + "Custom reminder" : "Benutzerdefinierte Erinnerung", "Later today" : "Später heute", "Set reminder for later today" : "Erinnerung für nachher erstellen", "Tomorrow" : "Morgen", diff --git a/apps/files_reminders/l10n/de_DE.js b/apps/files_reminders/l10n/de_DE.js index 80b94610202..2cd6103db1e 100644 --- a/apps/files_reminders/l10n/de_DE.js +++ b/apps/files_reminders/l10n/de_DE.js @@ -11,6 +11,7 @@ OC.L10N.register( "Set file reminders" : "Dateierinnerungen setzen", "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 Dateierinnerungen**\n\nDateierinnerungen festlegen.\n\nHinweis: Um die App ``Dateierinnerungen` zu verwenden, stellen Sie sicher, dass die App `Benachrichtigungen` installiert und aktiviert ist. Die App `Benachrichtigungen` bietet die erforderlichen APIs, damit die App `Dateierinnerungen` ordnungsgemäß funktioniert.", "Set reminder for \"{fileName}\"" : "Erinnerung für \"{fileName}\" setzen", + "Reminder at custom date & time" : "Erinnerung zu benutzerdefiniertem Zeitpunkt und Tag", "Clear reminder" : "Erinnerung löschen", "Please choose a valid date & time" : "Bitte gültiges Datum und Uhrzeit wählen", "Reminder set for \"{fileName}\"" : "Erinnerung für \"{fileName}\" gesetzt", @@ -21,6 +22,7 @@ OC.L10N.register( "Cancel" : "Abbrechen", "Set reminder" : "Erinnerung erstellen", "Reminder set" : "Erinnerung gesetzt", + "Custom reminder" : "Benutzerdefinierte Erinnerung", "Later today" : "Später heute", "Set reminder for later today" : "Erinnerung für später heute erstellen", "Tomorrow" : "Morgen", diff --git a/apps/files_reminders/l10n/de_DE.json b/apps/files_reminders/l10n/de_DE.json index 8651869d258..98d256c97bb 100644 --- a/apps/files_reminders/l10n/de_DE.json +++ b/apps/files_reminders/l10n/de_DE.json @@ -9,6 +9,7 @@ "Set file reminders" : "Dateierinnerungen setzen", "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 Dateierinnerungen**\n\nDateierinnerungen festlegen.\n\nHinweis: Um die App ``Dateierinnerungen` zu verwenden, stellen Sie sicher, dass die App `Benachrichtigungen` installiert und aktiviert ist. Die App `Benachrichtigungen` bietet die erforderlichen APIs, damit die App `Dateierinnerungen` ordnungsgemäß funktioniert.", "Set reminder for \"{fileName}\"" : "Erinnerung für \"{fileName}\" setzen", + "Reminder at custom date & time" : "Erinnerung zu benutzerdefiniertem Zeitpunkt und Tag", "Clear reminder" : "Erinnerung löschen", "Please choose a valid date & time" : "Bitte gültiges Datum und Uhrzeit wählen", "Reminder set for \"{fileName}\"" : "Erinnerung für \"{fileName}\" gesetzt", @@ -19,6 +20,7 @@ "Cancel" : "Abbrechen", "Set reminder" : "Erinnerung erstellen", "Reminder set" : "Erinnerung gesetzt", + "Custom reminder" : "Benutzerdefinierte Erinnerung", "Later today" : "Später heute", "Set reminder for later today" : "Erinnerung für später heute erstellen", "Tomorrow" : "Morgen", diff --git a/apps/files_reminders/l10n/en_GB.js b/apps/files_reminders/l10n/en_GB.js index bd85a401a1b..dff76ce098e 100644 --- a/apps/files_reminders/l10n/en_GB.js +++ b/apps/files_reminders/l10n/en_GB.js @@ -11,6 +11,7 @@ OC.L10N.register( "Set file reminders" : "Set file reminders", "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly.", "Set reminder for \"{fileName}\"" : "Set reminder for \"{fileName}\"", + "Reminder at custom date & time" : "Reminder at custom date & time", "Clear reminder" : "Clear reminder", "Please choose a valid date & time" : "Please choose a valid date & time", "Reminder set for \"{fileName}\"" : "Reminder set for \"{fileName}\"", @@ -21,6 +22,7 @@ OC.L10N.register( "Cancel" : "Cancel", "Set reminder" : "Set reminder", "Reminder set" : "Reminder set", + "Custom reminder" : "Custom reminder", "Later today" : "Later today", "Set reminder for later today" : "Set reminder for later today", "Tomorrow" : "Tomorrow", diff --git a/apps/files_reminders/l10n/en_GB.json b/apps/files_reminders/l10n/en_GB.json index 5491320a914..1991fb3799a 100644 --- a/apps/files_reminders/l10n/en_GB.json +++ b/apps/files_reminders/l10n/en_GB.json @@ -9,6 +9,7 @@ "Set file reminders" : "Set file reminders", "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly.", "Set reminder for \"{fileName}\"" : "Set reminder for \"{fileName}\"", + "Reminder at custom date & time" : "Reminder at custom date & time", "Clear reminder" : "Clear reminder", "Please choose a valid date & time" : "Please choose a valid date & time", "Reminder set for \"{fileName}\"" : "Reminder set for \"{fileName}\"", @@ -19,6 +20,7 @@ "Cancel" : "Cancel", "Set reminder" : "Set reminder", "Reminder set" : "Reminder set", + "Custom reminder" : "Custom reminder", "Later today" : "Later today", "Set reminder for later today" : "Set reminder for later today", "Tomorrow" : "Tomorrow", diff --git a/apps/files_reminders/l10n/es.js b/apps/files_reminders/l10n/es.js index 7d1d3b04b0f..3161133516a 100644 --- a/apps/files_reminders/l10n/es.js +++ b/apps/files_reminders/l10n/es.js @@ -5,27 +5,35 @@ OC.L10N.register( "Reminder for {name}" : "Recordatorio para {name}", "View file" : "Ver archivo", "View folder" : "Ver carpeta", + "Files reminder" : "Recordatorios de archivo", + "The \"files_reminders\" app can work properly." : "La app \"files_reminders\" puede trabajar de forma apropiada.", + "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "La app \"files_reminders\" requiere la app de notificaciones para trabajar de forma apropiada. Debería o bien habilitar las notificaciones o deshabilitar files_reminder.", "Set file reminders" : "Establecer recordatorios de archivo", + "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 Recordatorios de archivo**\n\nEstablecer recordatorios de archivo.\n\nNota: para usar la app de `Recordatorios de archivo`, asegúrese de que la app de `Notificaciones` está instalada y habilitada. La app de `Notificaciones` provee las APIs necesarias para que la app de `Recordatorios de archivo` funcione correctamente.", "Set reminder for \"{fileName}\"" : "Establecer recordatorio para \"{fileName}\"", + "Reminder at custom date & time" : "Recordatorio en una fecha y hora personalizada", "Clear reminder" : "Borrar recordatorio", "Please choose a valid date & time" : "Por favor, escoja una fecha y hora válidas", "Reminder set for \"{fileName}\"" : "Se estableció recordatorio para \"{fileName}\"", - "Failed to set reminder" : "No se pudo configurar el recordatorio", + "Failed to set reminder" : "No se pudo establecer el recordatorio", "Reminder cleared for \"{fileName}\"" : "Se limpió el recordatorio para \"{fileName}\"", - "Failed to clear reminder" : "Fallo al quitar el recordatorio", + "Failed to clear reminder" : "Fallo al borrar el recordatorio", "We will remind you of this file" : "Le recordaremos de este archivo", "Cancel" : "Cancelar", - "Set reminder" : "Enviar recordatorio", + "Set reminder" : "Establecer recordatorio", "Reminder set" : "Recordatorio establecido", + "Custom reminder" : "Recordatorio personalizado", "Later today" : "Más tarde hoy", - "Set reminder for later today" : "Configurar recordatorio para hoy, más tarde", + "Set reminder for later today" : "Establecer recordatorio para hoy, más tarde", "Tomorrow" : "Mañana", - "Set reminder for tomorrow" : "Configurar recordatorio para mañana", + "Set reminder for tomorrow" : "Establecer recordatorio para mañana", "This weekend" : "Este fin de semana", - "Set reminder for this weekend" : "Configurar recordatorio para este fin de semana", - "Next week" : "Semana siguiente", - "Set reminder for next week" : "Configurar recordatorio para la semana que viene", + "Set reminder for this weekend" : "Establecer recordatorio para este fin de semana", + "Next week" : "Próxima semana", + "Set reminder for next week" : "Establecer recordatorio para la próxima semana", + "This files_reminder can work properly." : "Este files_reminder puede trabajar de forma apropiada.", + "The files_reminder app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "La app \"files_reminders\" requiere la app de notificaciones para trabajar de forma apropiada. Debería o bien habilitar las notificaciones o deshabilitar files_reminder.", "Set reminder at custom date & time" : "Establecer recordatorio a una fecha y hora personalizada", - "Set custom reminder" : "Configurar recordatorio personalizado" + "Set custom reminder" : "Establecer recordatorio personalizado" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/files_reminders/l10n/es.json b/apps/files_reminders/l10n/es.json index 509b50ff424..ca3bc8ce1cd 100644 --- a/apps/files_reminders/l10n/es.json +++ b/apps/files_reminders/l10n/es.json @@ -3,27 +3,35 @@ "Reminder for {name}" : "Recordatorio para {name}", "View file" : "Ver archivo", "View folder" : "Ver carpeta", + "Files reminder" : "Recordatorios de archivo", + "The \"files_reminders\" app can work properly." : "La app \"files_reminders\" puede trabajar de forma apropiada.", + "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "La app \"files_reminders\" requiere la app de notificaciones para trabajar de forma apropiada. Debería o bien habilitar las notificaciones o deshabilitar files_reminder.", "Set file reminders" : "Establecer recordatorios de archivo", + "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 Recordatorios de archivo**\n\nEstablecer recordatorios de archivo.\n\nNota: para usar la app de `Recordatorios de archivo`, asegúrese de que la app de `Notificaciones` está instalada y habilitada. La app de `Notificaciones` provee las APIs necesarias para que la app de `Recordatorios de archivo` funcione correctamente.", "Set reminder for \"{fileName}\"" : "Establecer recordatorio para \"{fileName}\"", + "Reminder at custom date & time" : "Recordatorio en una fecha y hora personalizada", "Clear reminder" : "Borrar recordatorio", "Please choose a valid date & time" : "Por favor, escoja una fecha y hora válidas", "Reminder set for \"{fileName}\"" : "Se estableció recordatorio para \"{fileName}\"", - "Failed to set reminder" : "No se pudo configurar el recordatorio", + "Failed to set reminder" : "No se pudo establecer el recordatorio", "Reminder cleared for \"{fileName}\"" : "Se limpió el recordatorio para \"{fileName}\"", - "Failed to clear reminder" : "Fallo al quitar el recordatorio", + "Failed to clear reminder" : "Fallo al borrar el recordatorio", "We will remind you of this file" : "Le recordaremos de este archivo", "Cancel" : "Cancelar", - "Set reminder" : "Enviar recordatorio", + "Set reminder" : "Establecer recordatorio", "Reminder set" : "Recordatorio establecido", + "Custom reminder" : "Recordatorio personalizado", "Later today" : "Más tarde hoy", - "Set reminder for later today" : "Configurar recordatorio para hoy, más tarde", + "Set reminder for later today" : "Establecer recordatorio para hoy, más tarde", "Tomorrow" : "Mañana", - "Set reminder for tomorrow" : "Configurar recordatorio para mañana", + "Set reminder for tomorrow" : "Establecer recordatorio para mañana", "This weekend" : "Este fin de semana", - "Set reminder for this weekend" : "Configurar recordatorio para este fin de semana", - "Next week" : "Semana siguiente", - "Set reminder for next week" : "Configurar recordatorio para la semana que viene", + "Set reminder for this weekend" : "Establecer recordatorio para este fin de semana", + "Next week" : "Próxima semana", + "Set reminder for next week" : "Establecer recordatorio para la próxima semana", + "This files_reminder can work properly." : "Este files_reminder puede trabajar de forma apropiada.", + "The files_reminder app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "La app \"files_reminders\" requiere la app de notificaciones para trabajar de forma apropiada. Debería o bien habilitar las notificaciones o deshabilitar files_reminder.", "Set reminder at custom date & time" : "Establecer recordatorio a una fecha y hora personalizada", - "Set custom reminder" : "Configurar recordatorio personalizado" + "Set custom reminder" : "Establecer recordatorio personalizado" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/files_reminders/l10n/it.js b/apps/files_reminders/l10n/it.js index e028b70292e..c9c3a08142d 100644 --- a/apps/files_reminders/l10n/it.js +++ b/apps/files_reminders/l10n/it.js @@ -6,9 +6,12 @@ OC.L10N.register( "View file" : "Visualizza file", "View folder" : "Visualizza cartella", "Files reminder" : "Files reminder", + "The \"files_reminders\" app can work properly." : "L'app \"files_reminders\" può funzionare correttamente.", + "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "L'app \"files_reminders\" necessita dell'app di notifica per funzionare correttamente. È necessario abilitare le notifiche o disabilitare files_reminder.", "Set file reminders" : "Imposta promemoria per i file", "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 File reminders**I\n\nImposta promemoria file.\n\nNota: per usare l'app `Promemoria file`, assicurati che l'app `Notifiche` sia installata e abilitata. L'app `Notifiche` fornisce le API necessarie per il corretto funzionamento dell'app `File reminders`.", "Set reminder for \"{fileName}\"" : "Imposta promemoria per \"{fileName}\"", + "Reminder at custom date & time" : "Promemoria a data e ora personalizzate", "Clear reminder" : "Elimina promemoria", "Please choose a valid date & time" : "Si prega di scegliere una data valida & ora", "Reminder set for \"{fileName}\"" : "Promemoria impostato per \"{fileName}\"", @@ -19,6 +22,7 @@ OC.L10N.register( "Cancel" : "Annulla", "Set reminder" : "Imposta promemoria", "Reminder set" : "Promemoria impostato", + "Custom reminder" : "Promemoria personalizzato", "Later today" : "Più tardi oggi", "Set reminder for later today" : "Imposta promemoria per più tardi oggi", "Tomorrow" : "Domani", @@ -27,6 +31,8 @@ OC.L10N.register( "Set reminder for this weekend" : "Imposta promemoria per questo fine settimana", "Next week" : "Settimana successiva", "Set reminder for next week" : "Imposta promemoria per la prossima settimana", + "This files_reminder can work properly." : "Questo file_promemoria può funzionare correttamente.", + "The files_reminder app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "L'app files_reminder necessita dell'app notifiche per funzionare correttamente. È necessario abilitare le notifiche o disabilitare files_reminder.", "Set reminder at custom date & time" : "Imposta promemoria per data personalizzata & ora", "Set custom reminder" : "Imposta promemoria personalizzato" }, diff --git a/apps/files_reminders/l10n/it.json b/apps/files_reminders/l10n/it.json index c3c1564bb6c..193ff9393db 100644 --- a/apps/files_reminders/l10n/it.json +++ b/apps/files_reminders/l10n/it.json @@ -4,9 +4,12 @@ "View file" : "Visualizza file", "View folder" : "Visualizza cartella", "Files reminder" : "Files reminder", + "The \"files_reminders\" app can work properly." : "L'app \"files_reminders\" può funzionare correttamente.", + "The \"files_reminders\" app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "L'app \"files_reminders\" necessita dell'app di notifica per funzionare correttamente. È necessario abilitare le notifiche o disabilitare files_reminder.", "Set file reminders" : "Imposta promemoria per i file", "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 File reminders**I\n\nImposta promemoria file.\n\nNota: per usare l'app `Promemoria file`, assicurati che l'app `Notifiche` sia installata e abilitata. L'app `Notifiche` fornisce le API necessarie per il corretto funzionamento dell'app `File reminders`.", "Set reminder for \"{fileName}\"" : "Imposta promemoria per \"{fileName}\"", + "Reminder at custom date & time" : "Promemoria a data e ora personalizzate", "Clear reminder" : "Elimina promemoria", "Please choose a valid date & time" : "Si prega di scegliere una data valida & ora", "Reminder set for \"{fileName}\"" : "Promemoria impostato per \"{fileName}\"", @@ -17,6 +20,7 @@ "Cancel" : "Annulla", "Set reminder" : "Imposta promemoria", "Reminder set" : "Promemoria impostato", + "Custom reminder" : "Promemoria personalizzato", "Later today" : "Più tardi oggi", "Set reminder for later today" : "Imposta promemoria per più tardi oggi", "Tomorrow" : "Domani", @@ -25,6 +29,8 @@ "Set reminder for this weekend" : "Imposta promemoria per questo fine settimana", "Next week" : "Settimana successiva", "Set reminder for next week" : "Imposta promemoria per la prossima settimana", + "This files_reminder can work properly." : "Questo file_promemoria può funzionare correttamente.", + "The files_reminder app needs the notification app to work properly. You should either enable notifications or disable files_reminder." : "L'app files_reminder necessita dell'app notifiche per funzionare correttamente. È necessario abilitare le notifiche o disabilitare files_reminder.", "Set reminder at custom date & time" : "Imposta promemoria per data personalizzata & ora", "Set custom reminder" : "Imposta promemoria personalizzato" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" diff --git a/apps/files_reminders/l10n/uk.js b/apps/files_reminders/l10n/uk.js index d7acd399417..c66399959d3 100644 --- a/apps/files_reminders/l10n/uk.js +++ b/apps/files_reminders/l10n/uk.js @@ -11,6 +11,7 @@ OC.L10N.register( "Set file reminders" : "Встановити нагадування для файлу", "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 Нагадування про файли**\n\nВстановіть нагадування про файли.\n\nПримітка: щоб використовувати додаток «Нагадування про файли», переконайтеся, що додаток «Повідомлення» встановлено та увімкнено. Додаток «Повідомлення» надає необхідні API для коректної роботи додатка «Нагадування про файли».", "Set reminder for \"{fileName}\"" : "Встановити нагадування для \"{fileName}\"", + "Reminder at custom date & time" : "Нагадування в задану дату та час", "Clear reminder" : "Зняти нагадування", "Please choose a valid date & time" : "Виберіть дійсні дату та час", "Reminder set for \"{fileName}\"" : "Встановлено нагадування для \"{fileName}\"", @@ -21,6 +22,7 @@ OC.L10N.register( "Cancel" : "Скасувати", "Set reminder" : "Встановити нагадування", "Reminder set" : "Нагадування встановлено", + "Custom reminder" : "Індивідуальне нагадування", "Later today" : "Пізніше сьогодні", "Set reminder for later today" : "Встановити нагадування на сьогодні пізніше", "Tomorrow" : "Завтра", diff --git a/apps/files_reminders/l10n/uk.json b/apps/files_reminders/l10n/uk.json index 3cc6ba9a0c8..d29c14318da 100644 --- a/apps/files_reminders/l10n/uk.json +++ b/apps/files_reminders/l10n/uk.json @@ -9,6 +9,7 @@ "Set file reminders" : "Встановити нагадування для файлу", "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 Нагадування про файли**\n\nВстановіть нагадування про файли.\n\nПримітка: щоб використовувати додаток «Нагадування про файли», переконайтеся, що додаток «Повідомлення» встановлено та увімкнено. Додаток «Повідомлення» надає необхідні API для коректної роботи додатка «Нагадування про файли».", "Set reminder for \"{fileName}\"" : "Встановити нагадування для \"{fileName}\"", + "Reminder at custom date & time" : "Нагадування в задану дату та час", "Clear reminder" : "Зняти нагадування", "Please choose a valid date & time" : "Виберіть дійсні дату та час", "Reminder set for \"{fileName}\"" : "Встановлено нагадування для \"{fileName}\"", @@ -19,6 +20,7 @@ "Cancel" : "Скасувати", "Set reminder" : "Встановити нагадування", "Reminder set" : "Нагадування встановлено", + "Custom reminder" : "Індивідуальне нагадування", "Later today" : "Пізніше сьогодні", "Set reminder for later today" : "Встановити нагадування на сьогодні пізніше", "Tomorrow" : "Завтра", diff --git a/apps/files_reminders/l10n/zh_HK.js b/apps/files_reminders/l10n/zh_HK.js index c6dd20faf7e..c72fb6cde89 100644 --- a/apps/files_reminders/l10n/zh_HK.js +++ b/apps/files_reminders/l10n/zh_HK.js @@ -11,6 +11,7 @@ OC.L10N.register( "Set file reminders" : "設定檔案提醒", "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 檔案提醒**\n\n設定檔案提醒。\n\n注意:要使用「檔案提醒」應用程式,請確定已安裝並啟用「通知」應用程式。「通知」應用程式提供必要的 API,讓「檔案提醒」應用程式能正常運作。", "Set reminder for \"{fileName}\"" : "設定「{fileName}」的提醒", + "Reminder at custom date & time" : "自訂日期與時間的提醒", "Clear reminder" : "清除提醒", "Please choose a valid date & time" : "請選擇有效的日期與時間", "Reminder set for \"{fileName}\"" : "「{fileName}」的提醒設定", @@ -21,6 +22,7 @@ OC.L10N.register( "Cancel" : "取消", "Set reminder" : "設定提醒", "Reminder set" : "提醒設定", + "Custom reminder" : "自訂提醒", "Later today" : "今日稍後", "Set reminder for later today" : "設定今天稍後的提醒", "Tomorrow" : "明日", diff --git a/apps/files_reminders/l10n/zh_HK.json b/apps/files_reminders/l10n/zh_HK.json index fdd9e57c17a..339e0cd8cf7 100644 --- a/apps/files_reminders/l10n/zh_HK.json +++ b/apps/files_reminders/l10n/zh_HK.json @@ -9,6 +9,7 @@ "Set file reminders" : "設定檔案提醒", "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 檔案提醒**\n\n設定檔案提醒。\n\n注意:要使用「檔案提醒」應用程式,請確定已安裝並啟用「通知」應用程式。「通知」應用程式提供必要的 API,讓「檔案提醒」應用程式能正常運作。", "Set reminder for \"{fileName}\"" : "設定「{fileName}」的提醒", + "Reminder at custom date & time" : "自訂日期與時間的提醒", "Clear reminder" : "清除提醒", "Please choose a valid date & time" : "請選擇有效的日期與時間", "Reminder set for \"{fileName}\"" : "「{fileName}」的提醒設定", @@ -19,6 +20,7 @@ "Cancel" : "取消", "Set reminder" : "設定提醒", "Reminder set" : "提醒設定", + "Custom reminder" : "自訂提醒", "Later today" : "今日稍後", "Set reminder for later today" : "設定今天稍後的提醒", "Tomorrow" : "明日", diff --git a/apps/files_reminders/l10n/zh_TW.js b/apps/files_reminders/l10n/zh_TW.js index 50a8cc68aa6..c19c4a803a2 100644 --- a/apps/files_reminders/l10n/zh_TW.js +++ b/apps/files_reminders/l10n/zh_TW.js @@ -11,6 +11,7 @@ OC.L10N.register( "Set file reminders" : "設定檔案提醒", "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 檔案提醒**\n\n設定檔案提醒。\n\n注意:要使用「檔案提醒」應用程式,請確定已安裝並啟用「通知」應用程式。「通知」應用程式提供必要的 API,讓「檔案提醒」應用程式能正常運作。", "Set reminder for \"{fileName}\"" : "設定「{fileName}」的提醒", + "Reminder at custom date & time" : "自訂日期與時間的提醒", "Clear reminder" : "清除提醒", "Please choose a valid date & time" : "請選擇有效的日期與時間", "Reminder set for \"{fileName}\"" : "「{fileName}」的提醒設定", @@ -21,6 +22,7 @@ OC.L10N.register( "Cancel" : "取消", "Set reminder" : "設定提醒", "Reminder set" : "提醒設定", + "Custom reminder" : "自訂提醒", "Later today" : "今天稍後", "Set reminder for later today" : "設定今天稍後的提醒", "Tomorrow" : "明天", diff --git a/apps/files_reminders/l10n/zh_TW.json b/apps/files_reminders/l10n/zh_TW.json index d4d877bb091..5035fc1d66b 100644 --- a/apps/files_reminders/l10n/zh_TW.json +++ b/apps/files_reminders/l10n/zh_TW.json @@ -9,6 +9,7 @@ "Set file reminders" : "設定檔案提醒", "**📣 File reminders**\n\nSet file reminders.\n\nNote: to use the `File reminders` app, ensure that the `Notifications` app is installed and enabled. The `Notifications` app provides the necessary APIs for the `File reminders` app to work correctly." : "**📣 檔案提醒**\n\n設定檔案提醒。\n\n注意:要使用「檔案提醒」應用程式,請確定已安裝並啟用「通知」應用程式。「通知」應用程式提供必要的 API,讓「檔案提醒」應用程式能正常運作。", "Set reminder for \"{fileName}\"" : "設定「{fileName}」的提醒", + "Reminder at custom date & time" : "自訂日期與時間的提醒", "Clear reminder" : "清除提醒", "Please choose a valid date & time" : "請選擇有效的日期與時間", "Reminder set for \"{fileName}\"" : "「{fileName}」的提醒設定", @@ -19,6 +20,7 @@ "Cancel" : "取消", "Set reminder" : "設定提醒", "Reminder set" : "提醒設定", + "Custom reminder" : "自訂提醒", "Later today" : "今天稍後", "Set reminder for later today" : "設定今天稍後的提醒", "Tomorrow" : "明天", diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js index 489c860c0cf..79ec648162d 100644 --- a/apps/files_sharing/l10n/de.js +++ b/apps/files_sharing/l10n/de.js @@ -202,6 +202,7 @@ OC.L10N.register( "Unshare" : "Freigabe aufheben", "Cannot copy, please copy the link manually" : "Kopieren fehlgeschlagen. Bitte den Link manuell kopieren.", "Copy internal link" : "Internen Link kopieren", + "For people who already have access" : "Für Personen, die bereits Zugriff haben", "Internal link" : "Interner Link", "{shareWith} by {initiator}" : "{shareWith} von {initiator}", "Shared via link by {initiator}" : "Geteilt mittels Link von {initiator}", @@ -212,6 +213,7 @@ OC.L10N.register( "Share link ({index})" : "Externer Link ({index})", "Create public link" : "Öffentlichen Link erstellen", "Actions for \"{title}\"" : "Aktionen für \"{title}\"", + "Copy public link of \"{title}\"" : "Öffentlichen Link von \"{title}\" kopieren", "Error, please enter proper password and/or expiration date" : "Fehler. Bitte gib das richtige Passwort und/oder Ablaufdatum ein.", "Link share created" : "Link-Freigabe erstellt", "Error while creating the share" : "Fehler beim Erstellen der Freigabe", @@ -301,6 +303,14 @@ OC.L10N.register( "Unable to fetch inherited shares" : "Vererbte Freigaben konnten nicht geladen werden", "Link shares" : "Freigaben teilen", "Shares" : "Freigaben", + "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Dateien innerhalb Ihrer Organisation teilen. Auch Empfänger, die auf die Datei bereits zugreifen können, können diesen Link für einen einfachen Zugriff nutzen.", + "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Dateien über öffentliche Links und E-Mail-Adressen mit anderen außerhalb Ihrer Organisation teilen. Du kannst Nextcloud-Konten auch auf anderen Instanzen mithilfe der föderierten Cloud-ID teilen.", + "Shares from apps or other sources which are not included in internal or external shares." : "Freigaben aus Apps oder anderen Quellen, die nicht in internen oder externen Freigaben enthalten sind.", + "Type names, teams, federated cloud IDs" : "Namen, Teams oder Federierte Cloud-IDs eingeben", + "Type names or teams" : "Namen oder Federierte Cloud-IDs eingeben", + "Type a federated cloud ID" : "Eine Federierte Cloud-ID eingeben", + "Type an email" : "Eine E-Mailadresse eingeben", + "Type an email or federated cloud ID" : "Eine E-Mailadresse oder eine Federierte Cloud-ID eingeben", "Unable to load the shares list" : "Liste der Freigaben konnte nicht geladen werden", "Expires {relativetime}" : "Läuft {relativetime} ab", "this share just expired." : "Diese Freigabe ist gerade abgelaufen.", diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json index 42afb1d2957..79e463107ea 100644 --- a/apps/files_sharing/l10n/de.json +++ b/apps/files_sharing/l10n/de.json @@ -200,6 +200,7 @@ "Unshare" : "Freigabe aufheben", "Cannot copy, please copy the link manually" : "Kopieren fehlgeschlagen. Bitte den Link manuell kopieren.", "Copy internal link" : "Internen Link kopieren", + "For people who already have access" : "Für Personen, die bereits Zugriff haben", "Internal link" : "Interner Link", "{shareWith} by {initiator}" : "{shareWith} von {initiator}", "Shared via link by {initiator}" : "Geteilt mittels Link von {initiator}", @@ -210,6 +211,7 @@ "Share link ({index})" : "Externer Link ({index})", "Create public link" : "Öffentlichen Link erstellen", "Actions for \"{title}\"" : "Aktionen für \"{title}\"", + "Copy public link of \"{title}\"" : "Öffentlichen Link von \"{title}\" kopieren", "Error, please enter proper password and/or expiration date" : "Fehler. Bitte gib das richtige Passwort und/oder Ablaufdatum ein.", "Link share created" : "Link-Freigabe erstellt", "Error while creating the share" : "Fehler beim Erstellen der Freigabe", @@ -299,6 +301,14 @@ "Unable to fetch inherited shares" : "Vererbte Freigaben konnten nicht geladen werden", "Link shares" : "Freigaben teilen", "Shares" : "Freigaben", + "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Dateien innerhalb Ihrer Organisation teilen. Auch Empfänger, die auf die Datei bereits zugreifen können, können diesen Link für einen einfachen Zugriff nutzen.", + "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Dateien über öffentliche Links und E-Mail-Adressen mit anderen außerhalb Ihrer Organisation teilen. Du kannst Nextcloud-Konten auch auf anderen Instanzen mithilfe der föderierten Cloud-ID teilen.", + "Shares from apps or other sources which are not included in internal or external shares." : "Freigaben aus Apps oder anderen Quellen, die nicht in internen oder externen Freigaben enthalten sind.", + "Type names, teams, federated cloud IDs" : "Namen, Teams oder Federierte Cloud-IDs eingeben", + "Type names or teams" : "Namen oder Federierte Cloud-IDs eingeben", + "Type a federated cloud ID" : "Eine Federierte Cloud-ID eingeben", + "Type an email" : "Eine E-Mailadresse eingeben", + "Type an email or federated cloud ID" : "Eine E-Mailadresse oder eine Federierte Cloud-ID eingeben", "Unable to load the shares list" : "Liste der Freigaben konnte nicht geladen werden", "Expires {relativetime}" : "Läuft {relativetime} ab", "this share just expired." : "Diese Freigabe ist gerade abgelaufen.", diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js index 0a727530dea..a3507239899 100644 --- a/apps/files_sharing/l10n/de_DE.js +++ b/apps/files_sharing/l10n/de_DE.js @@ -202,6 +202,7 @@ OC.L10N.register( "Unshare" : "Freigabe aufheben", "Cannot copy, please copy the link manually" : "Kopieren fehlgeschlagen. Bitte kopieren Sie den Link manuell", "Copy internal link" : "Internen Link kopieren", + "For people who already have access" : "Für Personen, die bereits Zugriff haben", "Internal link" : "Interner Link", "{shareWith} by {initiator}" : "{shareWith} von {initiator}", "Shared via link by {initiator}" : "Geteilt mittels Link von {initiator}", @@ -212,6 +213,7 @@ OC.L10N.register( "Share link ({index})" : "Externer Link ({index})", "Create public link" : "Öffentlichen Link erstellen", "Actions for \"{title}\"" : "Aktionen für \"{title}\"", + "Copy public link of \"{title}\"" : "Öffentlichen Link von \"{title}\" kopieren", "Error, please enter proper password and/or expiration date" : "Fehler. Bitte gebe das richtige Passwort und/oder Ablaufdatum ein", "Link share created" : "Link-Freigabe erstellt", "Error while creating the share" : "Fehler beim Erstellen der Freigabe", @@ -301,6 +303,14 @@ OC.L10N.register( "Unable to fetch inherited shares" : "Laden der vererbten Freigaben fehlgeschlagen", "Link shares" : "Freigaben teilen", "Shares" : "Freigaben", + "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Dateien innerhalb Ihrer Organisation teilen. Auch Empfänger, die auf die Datei bereits zugreifen können, können diesen Link für einen einfachen Zugriff nutzen.", + "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Dateien über öffentliche Links und E-Mail-Adressen mit anderen außerhalb Ihrer Organisation teilen. Sie können Nextcloud-Konten auch auf anderen Instanzen mithilfe ihrer föderierten Cloud-ID teilen.", + "Shares from apps or other sources which are not included in internal or external shares." : "Freigaben aus Apps oder anderen Quellen, die nicht in internen oder externen Freigaben enthalten sind.", + "Type names, teams, federated cloud IDs" : "Namen, Teams oder Federierte Cloud-IDs eingeben", + "Type names or teams" : "Namen oder Federierte Cloud-IDs eingeben", + "Type a federated cloud ID" : "Eine Federierte Cloud-ID eingeben", + "Type an email" : "Eine E-Mailadresse eingeben", + "Type an email or federated cloud ID" : "Eine E-Mailadresse oder eine Federierte Cloud-ID eingeben", "Unable to load the shares list" : "Liste der Freigaben kann nicht geladen werden", "Expires {relativetime}" : "Läuft {relativetime} ab", "this share just expired." : "Diese Freigabe ist gerade abgelaufen.", diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json index 164d85c4ca8..41d191e8166 100644 --- a/apps/files_sharing/l10n/de_DE.json +++ b/apps/files_sharing/l10n/de_DE.json @@ -200,6 +200,7 @@ "Unshare" : "Freigabe aufheben", "Cannot copy, please copy the link manually" : "Kopieren fehlgeschlagen. Bitte kopieren Sie den Link manuell", "Copy internal link" : "Internen Link kopieren", + "For people who already have access" : "Für Personen, die bereits Zugriff haben", "Internal link" : "Interner Link", "{shareWith} by {initiator}" : "{shareWith} von {initiator}", "Shared via link by {initiator}" : "Geteilt mittels Link von {initiator}", @@ -210,6 +211,7 @@ "Share link ({index})" : "Externer Link ({index})", "Create public link" : "Öffentlichen Link erstellen", "Actions for \"{title}\"" : "Aktionen für \"{title}\"", + "Copy public link of \"{title}\"" : "Öffentlichen Link von \"{title}\" kopieren", "Error, please enter proper password and/or expiration date" : "Fehler. Bitte gebe das richtige Passwort und/oder Ablaufdatum ein", "Link share created" : "Link-Freigabe erstellt", "Error while creating the share" : "Fehler beim Erstellen der Freigabe", @@ -299,6 +301,14 @@ "Unable to fetch inherited shares" : "Laden der vererbten Freigaben fehlgeschlagen", "Link shares" : "Freigaben teilen", "Shares" : "Freigaben", + "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Dateien innerhalb Ihrer Organisation teilen. Auch Empfänger, die auf die Datei bereits zugreifen können, können diesen Link für einen einfachen Zugriff nutzen.", + "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Dateien über öffentliche Links und E-Mail-Adressen mit anderen außerhalb Ihrer Organisation teilen. Sie können Nextcloud-Konten auch auf anderen Instanzen mithilfe ihrer föderierten Cloud-ID teilen.", + "Shares from apps or other sources which are not included in internal or external shares." : "Freigaben aus Apps oder anderen Quellen, die nicht in internen oder externen Freigaben enthalten sind.", + "Type names, teams, federated cloud IDs" : "Namen, Teams oder Federierte Cloud-IDs eingeben", + "Type names or teams" : "Namen oder Federierte Cloud-IDs eingeben", + "Type a federated cloud ID" : "Eine Federierte Cloud-ID eingeben", + "Type an email" : "Eine E-Mailadresse eingeben", + "Type an email or federated cloud ID" : "Eine E-Mailadresse oder eine Federierte Cloud-ID eingeben", "Unable to load the shares list" : "Liste der Freigaben kann nicht geladen werden", "Expires {relativetime}" : "Läuft {relativetime} ab", "this share just expired." : "Diese Freigabe ist gerade abgelaufen.", diff --git a/apps/files_sharing/l10n/en_GB.js b/apps/files_sharing/l10n/en_GB.js index 26070558948..90d518c1854 100644 --- a/apps/files_sharing/l10n/en_GB.js +++ b/apps/files_sharing/l10n/en_GB.js @@ -202,6 +202,7 @@ OC.L10N.register( "Unshare" : "Unshare", "Cannot copy, please copy the link manually" : "Cannot copy, please copy the link manually", "Copy internal link" : "Copy internal link", + "For people who already have access" : "For people who already have access", "Internal link" : "Internal link", "{shareWith} by {initiator}" : "{shareWith} by {initiator}", "Shared via link by {initiator}" : "Shared via link by {initiator}", @@ -212,6 +213,7 @@ OC.L10N.register( "Share link ({index})" : "Share link ({index})", "Create public link" : "Create public link", "Actions for \"{title}\"" : "Actions for \"{title}\"", + "Copy public link of \"{title}\"" : "Copy public link of \"{title}\"", "Error, please enter proper password and/or expiration date" : "Error, please enter proper password and/or expiration date", "Link share created" : "Link share created", "Error while creating the share" : "Error while creating the share", @@ -301,6 +303,14 @@ OC.L10N.register( "Unable to fetch inherited shares" : "Unable to fetch inherited shares", "Link shares" : "Link shares", "Shares" : "Shares", + "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Share files within your organization. Recipients who can already view the file can also use this link for easy access.", + "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID.", + "Shares from apps or other sources which are not included in internal or external shares." : "Shares from apps or other sources which are not included in internal or external shares.", + "Type names, teams, federated cloud IDs" : "Type names, teams, federated cloud IDs", + "Type names or teams" : "Type names or teams", + "Type a federated cloud ID" : "Type a federated cloud ID", + "Type an email" : "Type an email", + "Type an email or federated cloud ID" : "Type an email or federated cloud ID", "Unable to load the shares list" : "Unable to load the shares list", "Expires {relativetime}" : "Expires {relativetime}", "this share just expired." : "this share just expired.", diff --git a/apps/files_sharing/l10n/en_GB.json b/apps/files_sharing/l10n/en_GB.json index ef423f1fd4e..72eea217340 100644 --- a/apps/files_sharing/l10n/en_GB.json +++ b/apps/files_sharing/l10n/en_GB.json @@ -200,6 +200,7 @@ "Unshare" : "Unshare", "Cannot copy, please copy the link manually" : "Cannot copy, please copy the link manually", "Copy internal link" : "Copy internal link", + "For people who already have access" : "For people who already have access", "Internal link" : "Internal link", "{shareWith} by {initiator}" : "{shareWith} by {initiator}", "Shared via link by {initiator}" : "Shared via link by {initiator}", @@ -210,6 +211,7 @@ "Share link ({index})" : "Share link ({index})", "Create public link" : "Create public link", "Actions for \"{title}\"" : "Actions for \"{title}\"", + "Copy public link of \"{title}\"" : "Copy public link of \"{title}\"", "Error, please enter proper password and/or expiration date" : "Error, please enter proper password and/or expiration date", "Link share created" : "Link share created", "Error while creating the share" : "Error while creating the share", @@ -299,6 +301,14 @@ "Unable to fetch inherited shares" : "Unable to fetch inherited shares", "Link shares" : "Link shares", "Shares" : "Shares", + "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Share files within your organization. Recipients who can already view the file can also use this link for easy access.", + "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID.", + "Shares from apps or other sources which are not included in internal or external shares." : "Shares from apps or other sources which are not included in internal or external shares.", + "Type names, teams, federated cloud IDs" : "Type names, teams, federated cloud IDs", + "Type names or teams" : "Type names or teams", + "Type a federated cloud ID" : "Type a federated cloud ID", + "Type an email" : "Type an email", + "Type an email or federated cloud ID" : "Type an email or federated cloud ID", "Unable to load the shares list" : "Unable to load the shares list", "Expires {relativetime}" : "Expires {relativetime}", "this share just expired." : "this share just expired.", diff --git a/apps/files_sharing/l10n/es.js b/apps/files_sharing/l10n/es.js index e7a79213f47..bac32f0113b 100644 --- a/apps/files_sharing/l10n/es.js +++ b/apps/files_sharing/l10n/es.js @@ -65,7 +65,7 @@ OC.L10N.register( "Please specify a file or folder path" : "Por favor, especifica la ubicación de un archivo o carpeta", "Wrong path, file/folder does not exist" : "Ubicación incorrecta, el archivo/carpeta no existe", "Could not create share" : "No se ha podido compartir", - "Please specify a valid account to share with" : "Por favor, especifique una cuenta válida con la que compartirla", + "Please specify a valid account to share with" : "Por favor, especifique una cuenta válida con la que compartir", "Group sharing is disabled by the administrator" : "Compartir en grupo está deshabilitado por el administrador", "Please specify a valid group" : "Por favor, especifica un grupo válido", "Public link sharing is disabled by the administrator" : "Compartir enlaces de forma pública está deshabilitado por el administrador", @@ -90,8 +90,8 @@ OC.L10N.register( "You are not allowed to edit incoming shares" : "No tiene permitido editar los recursos compartidos entrantes", "Wrong or no update parameter given" : "No se ha suministrado un parametro correcto", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"El envío de la contraseña por Nextcloud Talk\" para compartir un archivo o carpeta falló porque Nextcloud Talk no está habilitado.", - "Custom share link tokens have been disabled by the administrator" : "Los enlaces compartidos personalizados con tokens han sido deshabilitados por el administrador", - "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Los tokens deben contener al menos un caracter y solo deben contener letras, números y guiones", + "Custom share link tokens have been disabled by the administrator" : "Los tokens para enlaces de recursos compartidos personalizados han sido deshabilitados por el administrador", + "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Los tokens deben contener al menos un carácter y solo deben contener letras, números o un guion", "Invalid date. Format must be YYYY-MM-DD" : "Fecha inválida. El formato debe ser AAAA-MM-DD", "No sharing rights on this item" : "Sin permisos para compartir este elemento", "Invalid share attributes provided: \"%s\"" : "Se proporcionaron atributos inválidos para el recurso compartido: \"%s\"", @@ -116,7 +116,7 @@ OC.L10N.register( "Remember to upload the files to %s" : "Recuerde subir los archivos a %s", "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Queremos recordarle amablemente que Ud. todavía no ha subido archivos a la carpeta compartida.", "Open \"%s\"" : "Abrir \"%s\"", - "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permite a los usuarios compartir archivos dentro de Nextcloud. Si se activa, el administrador puede elegir qué grupos pueden compartir archivos. Los usuarios aplicables pueden entonces compartir archivos y carpetas con otros usuarios y grupos dentro de Nextcloud. Además, si el administrador activa la característica de enlace compartido, se puede usar un enlace externo para compartir archivos con otros usuarios fuera de Nextcloud. Los administradores pueden obligar a usar contraseñas o fechas de caducidad y activar el compartir de servidor a servidor vía enlaces compartidos, así como compartir desde dispositivos móviles.\nQuitar esta característica elimina los archivos compartidos y las carpetas en el servidor, para todos los receptores, y también los clientes de sincronización y móviles. Más información disponible en la Documentación de Nextcloud.", + "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permite a las personas compartir archivos dentro de Nextcloud. Si se activa, el administrador puede elegir qué grupos pueden compartir archivos. Los usuarios aplicables pueden entonces compartir archivos y carpetas con otros usuarios y grupos dentro de Nextcloud. Además, si el administrador activa la característica de enlaces de recurso compartido, se puede usar un enlace externo para compartir archivos con otros usuarios fuera de Nextcloud. Los administradores pueden obligar a usar contraseñas o fechas de caducidad y activar el compartir de servidor a servidor vía enlaces de recursos compartidos, así como compartir desde dispositivos móviles.\nSi se apaga esta característica, se quitarán los recursos compartidos de archivos y carpetas en el servidor para todos los receptores, y también los clientes de sincronización y móviles. Hay más información disponible en la Documentación de Nextcloud.", "People" : "Personas", "Filter accounts" : "Filtrar cuentas", "The request will expire on {date} at midnight and will be password protected." : "La solicitud caducará el {date} a la medianoche y estará protegida por contraseña.", @@ -128,7 +128,7 @@ OC.L10N.register( "Select a date" : "Seleccione una fecha", "Your administrator has enforced a {count} days expiration policy." : "Su administrador ha impuesto una política de caducidad de {count} días.", "What password should be used for the request?" : "¿Qué contraseña debería usarse para la solicitud?", - "Set a password" : "Configura una contraseña", + "Set a password" : "Configure una contraseña", "Password" : "Contraseña", "Enter a valid password" : "Ingrese una contraseña válida", "Generate a new password" : "Generar una nueva contraseña", @@ -137,13 +137,13 @@ OC.L10N.register( "Link copied" : "Enlace copiado", "Email already added" : "El correo electrónico ya fue añadido", "Invalid email address" : "Dirección de correo electrónico inválida", - "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["La siguiente dirección de correo no es válida: {emails}","Las siguientes direcciones de correo no son válidas: {emails}","Las siguientes direcciones de correo no son válidas: {emails}"], + "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["La siguiente dirección de correo electrónico no es válida: {emails}","Las siguientes direcciones de correo electrónicas no son válidas: {emails}","Las siguientes direcciones de correo electrónicas no son válidas: {emails}"], "_{count} email address already added_::_{count} email addresses already added_" : ["Ya se añadió {count} dirección de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico"], "_{count} email address added_::_{count} email addresses added_" : ["Se añadió {count}dirección de correo electrónico","Se añadieron {count} direcciones de correo electrónico","Se añadieron {count} direcciones de correo electrónico"], "You can now share the link below to allow people to upload files to your directory." : "Ahora puede compartir el enlace de abajo para permitir a otros que carguen archivos a su directorio.", "Share link" : "Compartir enlace", "Copy" : "Copiar", - "Send link via email" : "Enviar el link por email", + "Send link via email" : "Enviar el link via correo electrónico", "Enter an email address or paste a list" : "Ingrese una dirección de correo electrónico o pegue una lista", "Remove email" : "Quitar correo electrónico", "Select a destination" : "Seleccionar un destino", @@ -178,7 +178,7 @@ OC.L10N.register( "Close without sending emails" : "Cerrar sin enviar los correos electrónicos", "Continue" : "Continuar", "Error while toggling options" : "Error cambiar las opciones", - "Accept shares from other accounts and groups by default" : "Aceptar recursos compartidos de otras cuentas y grupos por defecto", + "Accept shares from other accounts and groups by default" : "Aceptar recursos compartidos de otras cuentas y grupos de manera predeterminada", "Choose a default folder for accepted shares" : "Elije la carpeta por defecto para los recursos compartidos aceptados", "Invalid path selected" : "Ruta seleccionada no válida.", "Unknown error" : "Error desconocido", @@ -202,27 +202,29 @@ OC.L10N.register( "Unshare" : "No compartir", "Cannot copy, please copy the link manually" : "No se ha podido copiar, por favor, copia el enlace manualmente", "Copy internal link" : "Copiar enlace interno", + "For people who already have access" : "Para las personas que ya tienen acceso", "Internal link" : "Enlace interno", "{shareWith} by {initiator}" : "{shareWith} por {initiator}", "Shared via link by {initiator}" : "Compartido vía enlace por {initiator}", "File request ({label})" : "Solicitud de archivo ({label})", "Mail share ({label})" : "Compartir correo ({label})", "Share link ({label})" : "Compartir enlace ({label})", - "Mail share" : "Compartido por correo", - "Share link ({index})" : "Compartir enlace ({index})", + "Mail share" : "Recurso compartido de correo", + "Share link ({index})" : "Enlace de recurso compartido ({index})", "Create public link" : "Crear un enlace público", "Actions for \"{title}\"" : "Acciones para \"{title}\"", + "Copy public link of \"{title}\"" : "Copiar enlace público de \"{title}\"", "Error, please enter proper password and/or expiration date" : "Error, por favor, introduce la contraseña y/o fecha de caducidad adecuada", - "Link share created" : "Se creó el enlace de compartición", + "Link share created" : "Se creó el enlace del recurso compartido", "Error while creating the share" : "Error mientras se creaba el recurso compartido", "Please enter the following required information before creating the share" : "Por favor, escriba la información necesaria antes de crear el recurso compartido", "Password protection (enforced)" : "Protección con contraseña (impuesta)", "Password protection" : "Protección por contraseña", "Enter a password" : "Introduzca una contraseña", - "Enable link expiration (enforced)" : "Activar la caducidad del enlace (exigida)", + "Enable link expiration (enforced)" : "Activar la caducidad del enlace (obligatoria)", "Enable link expiration" : "Activar la caducidad del enlace", - "Enter expiration date (enforced)" : "Introduce la fecha de caducidad (exigida)", - "Enter expiration date" : "Introduce la fecha de caducidad", + "Enter expiration date (enforced)" : "Introduzca la fecha de caducidad (obligatoria)", + "Enter expiration date" : "Introduzca la fecha de caducidad", "Create share" : "Crear un recurso compartido", "Customize link" : "Personalizar enlace", "Generate QR code" : "Generar código QR", @@ -251,8 +253,8 @@ OC.L10N.register( "Note from" : "Nota de", "Note:" : "Nota:", "File drop" : "Entrega de archivos", - "Upload files to {foldername}." : "Cargar archivos a {foldername}.", - "By uploading files, you agree to the terms of service." : "Al subir archivos, aceptas los términos del servicio", + "Upload files to {foldername}." : "Subir archivos a {foldername}.", + "By uploading files, you agree to the terms of service." : "Al subir archivos, acepta los términos del servicio.", "Successfully uploaded files" : "Se cargaron los archivos de manera exitosa", "View terms of service" : "Ver los términos del servicio", "Terms of service" : "Términos del servicio", @@ -272,17 +274,17 @@ OC.L10N.register( "Delete" : "Eliminar", "Password field cannot be empty" : "El campo de contraseña no puede estar vacío", "Replace current password" : "Reemplazar la contraseña actual", - "Failed to generate a new token" : "Error al generar un nuevo token", + "Failed to generate a new token" : "Fallo al generar un nuevo token", "Allow upload and editing" : "Permitir la subida y la edición", "Allow editing" : "Permitir edición", "Upload only" : "Sólo subir", - "Advanced settings" : "Configuración avanzada", + "Advanced settings" : "Ajustes avanzados", "Share label" : "Compartir etiqueta", "Share link token" : "Compartir el token del enlace", - "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Escribe un token de enlace público compartido que sea fácil de recordar, o genera un nuevo token. No recomendamos el uso de tokens fácilmente adivinables para recursos compartidos que contengan información sensible.", - "Generating…" : "Generando...", + "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Establezca el token del enlace público del recurso compartido a algo fácil de recordar, o, genere un token nuevo. No recomendamos el uso de tokens fáciles de deducir para recursos compartidos que contengan información sensible.", + "Generating…" : "Generando…", "Generate new token" : "Generar nuevo token", - "Set password" : "Crear contraseña", + "Set password" : "Establecer contraseña", "Password expires {passwordExpirationTime}" : "La contraseña caduca el {passwordExpirationTime}", "Password expired" : "Contraseña caducada", "Video verification" : "Verificación por vídeo", @@ -293,24 +295,32 @@ OC.L10N.register( "Note to recipient" : "Nota para el destinatario", "Enter a note for the share recipient" : "Escriba una nota para el recurso compartido del destinatario", "Show files in grid view" : "Mostrar archivos en vista de cuadrícula", - "Delete share" : "Borrar recurso compartido", + "Delete share" : "Eliminar recurso compartido", "Others with access" : "Otros con acceso", "No other accounts with access found" : "No se encontraron otras cuentas con acceso", "Toggle list of others with access to this directory" : "Pasar la lista de otros con acceso a este carpeta", "Toggle list of others with access to this file" : "Pasar la lista de otros con acceso a este archivo", "Unable to fetch inherited shares" : "No se ha podido recoger los recursos compartidos heredados", - "Link shares" : "Enlaces compartido", + "Link shares" : "Enlaces del recurso compartido", "Shares" : "Compartidos", + "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Comparta archivos con su organización. Los destinatarios que ya pueden ver el archivo también pueden utilizar este enlace para un acceso fácil.", + "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Comparta archivos con otros fuera de su organización vía enlaces públicos y direcciones de correo electrónico. Ud. puede también compartir con cuentas de Nextcloud en otras instancias utilizando su ID de nube federada.", + "Shares from apps or other sources which are not included in internal or external shares." : "Los recursos compartidos desde las apps o de otras fuentes que no están incluidos en recursos compartidos internos o externos.", + "Type names, teams, federated cloud IDs" : "Escriba nombres, equipos, IDs de nubes federadas", + "Type names or teams" : "Escriba nombres o equipos", + "Type a federated cloud ID" : "Escriba un ID de nube federada", + "Type an email" : "Escriba una dirección de correo electrónico", + "Type an email or federated cloud ID" : "Escriba una dirección de correo electrónico o un ID de nube federada", "Unable to load the shares list" : "No se pudo cargar la lista de recursos compartidos", "Expires {relativetime}" : "Caduca en {relativetime}", "this share just expired." : "este recurso compartido acaba de caducar.", "Shared with you by {owner}" : "Compartido contigo por {owner}", - "Internal shares" : "Compartir internamente", - "Internal shares explanation" : "Compartir internamente explicado", - "External shares" : "Compartir con el exterior", - "External shares explanation" : "Compartir con el exterior explicado", - "Additional shares" : "Otras formas de compartir", - "Additional shares explanation" : "Otras formas de compartir explicadas", + "Internal shares" : "Recursos compartidos internamente", + "Internal shares explanation" : "Explicación de los recursos compartidos externos", + "External shares" : "Recursos compartidos externos", + "External shares explanation" : "Explicación de los recursos compartidos externos", + "Additional shares" : "Recursos compartidos adicionales", + "Additional shares explanation" : "Explicación de los recursos compartidos adicionales", "Link to a file" : "Enlace al archivo", "_Accept share_::_Accept shares_" : ["Aceptar recurso compartido","Aceptar recursos compartidos","Aceptar recursos compartidos"], "Open in Files" : "Abrir en Archivos", @@ -322,23 +332,23 @@ OC.L10N.register( "Sharing options" : "Opciones de compartir", "Shared with others" : "Compartido con otros", "Create file request" : "Crear solicitud de archivo", - "Upload files to {foldername}" : "Cargar archivos a {foldername}", - "Public file share" : "Archivo compartido en público", - "Publicly shared file." : "Archivo compartido públicamente", + "Upload files to {foldername}" : "Subir archivos a {foldername}", + "Public file share" : "Recurso compartido público de archivo", + "Publicly shared file." : "Archivo compartido públicamente.", "No file" : "Sin archivo", - "The file shared with you will show up here" : "Los archivos compartidos contigo aparecerán aquí", - "Public share" : "Compartido públicamente", + "The file shared with you will show up here" : "El archivo compartido con Ud. aparecerá aquí", + "Public share" : "Recurso compartido público", "Publicly shared files." : "Archivos compartidos públicamente.", "No files" : "Sin archivos", - "Files and folders shared with you will show up here" : "Los archivos y carpetas compartidos contigo aparecerán aquí", - "Overview of shared files." : "Vista previa de los recursos compartidos", + "Files and folders shared with you will show up here" : "Los archivos y carpetas compartidos con Ud. aparecerán aquí", + "Overview of shared files." : "Resumen de archivos compartidos.", "No shares" : "No compartidos", - "Files and folders you shared or have been shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que has compartido o que se han compartido con ud", + "Files and folders you shared or have been shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que ha compartido o que se han compartido con Ud.", "Shared with you" : "Compartido conmigo", - "List of files that are shared with you." : "Lista de archivos que se han compartido contigo.", + "List of files that are shared with you." : "Lista de archivos que se han compartido con Ud.", "Nothing shared with you yet" : "Aún no hay nada compartido contigo", - "Files and folders others shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que otros han compartido con ud", - "List of files that you shared with others." : "Lista de archivos que has compartido con otros.", + "Files and folders others shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que otros han compartido con Ud.", + "List of files that you shared with others." : "Lista de archivos que ha compartido con otros.", "Nothing shared yet" : "Aún no hay nada compartido", "Files and folders you shared will show up here" : "Aquí aparecerán los archivos y carpetas que ha compartido", "Shared by link" : "Compartido por enlace", @@ -346,17 +356,17 @@ OC.L10N.register( "No shared links" : "No hay enlaces compartidos", "Files and folders you shared by link will show up here" : "Aquí aparecerán los archivos y carpetas que ha compartido mediante enlace", "File requests" : "Solicitudes de archivos", - "List of file requests." : "Lista de solicitudes de archivos", + "List of file requests." : "Lista de solicitudes de archivos.", "No file requests" : "Sin solicitudes de archivos", - "File requests you have created will show up here" : "Las solicitudes de archivos que hayas creado aparecerán aquí", + "File requests you have created will show up here" : "Las solicitudes de archivos que haya creado aparecerán aquí", "Deleted shares" : "Recursos compartidos eliminados", - "List of shares you left." : "Lista de compartidos que abandonó.", + "List of shares you left." : "Lista de recursos compartidos que abandonó.", "No deleted shares" : "No hay recursos compartidos eliminados", - "Shares you have left will show up here" : "Aquí aparecerán los compartidos que ha abandonado", + "Shares you have left will show up here" : "Aquí aparecerán los recursos compartidos que ha abandonado", "Pending shares" : "Recursos compartidos pendientes", - "List of unapproved shares." : "Lista de recursos compartidos no aprobados", + "List of unapproved shares." : "Lista de recursos compartidos no aprobados.", "No pending shares" : "No hay recursos compartidos pendientes", - "Shares you have received but not approved will show up here" : "Aquí aparecerán los compartidos que ha recibido pero que no ha aprobado", + "Shares you have received but not approved will show up here" : "Aquí aparecerán los recursos compartidos que ha recibido pero que no ha aprobado", "Error deleting the share: {errorMessage}" : "Error al eliminar el recurso compartido: {errorMessage}", "Error deleting the share" : "Error borrando el recurso compartido", "Error updating the share: {errorMessage}" : "Error al actualizar el recurso compartido: {errorMessage}", @@ -366,15 +376,15 @@ OC.L10N.register( "Could not update share" : "No se ha podido actualizar el recurso compartido", "Share saved" : "Recurso compartido guardado", "Share expiry date saved" : "Fecha de caducidad del recurso compartido guardada", - "Share hide-download state saved" : "Ocultar la decarga del recurso compartido guardado", + "Share hide-download state saved" : "Estado de prevención de descargas para el recurso compartido guardado", "Share label saved" : "Se ha guardado la etiqueta del recurso compartido", "Share note for recipient saved" : "Nota para el destinatario del recurso compartido guardada", "Share password saved" : "Se ha guardado la contraseña del recurso compartido", "Share permissions saved" : "Permisos del recurso compartido guardados", "To upload files to {folder}, you need to provide your name first." : "Para cargar archivos a {folder}, necesita proporcionar primero su nombre.", - "Upload files to {folder}" : "Cargar archivos a {folder}", + "Upload files to {folder}" : "Subir archivos a {folder}", "Please confirm your name to upload files to {folder}" : "Por favor, confirme su nombre para cargar archivos a {folder}", - "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha compartido una carpeta contigo.", + "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha compartido una carpeta con Ud.", "Names must not be empty." : "Los nombres no deben estar vacíos.", "Names must not start with a dot." : "Los nombres no deben comenzar con un punto.", "\"{char}\" is not allowed inside a name." : "\"{char}\" no está permitido dentro de un nombre.", @@ -408,32 +418,32 @@ OC.L10N.register( "Download all files" : "Descargar todos los archivos", "Link copied to clipboard" : "Enlace copiado al portapapeles", "_1 email address already added_::_{count} email addresses already added_" : ["Ya se ha añadido 1 dirección de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico"], - "_1 email address added_::_{count} email addresses added_" : ["Se ha añadido una dirección de correo","Se han añadido {count} direcciones de correo","Se han añadido {count} direcciones de correo"], + "_1 email address added_::_{count} email addresses added_" : ["Se ha añadido 1 dirección de correo","Se han añadido {count} direcciones de correo","Se han añadido {count} direcciones de correo"], "Copy to clipboard" : "Copiar al portapapeles", "Copy internal link to clipboard" : "Copiar enlace interno al portapapeles", "Only works for people with access to this folder" : "Sólo funciona para personas con acceso a esta carpeta", "Only works for people with access to this file" : "Sólo funciona para personas con acceso a este archivo", "Copy public link of \"{title}\" to clipboard" : "Copiar enlace público de \"{title}\" al portapapeles", "Search globally" : "Buscar globalmente", - "Search for share recipients" : "Buscar destinatarios del compartido", + "Search for share recipients" : "Buscar destinatarios para el recurso compartido", "No recommendations. Start typing." : "No hay recomendaciones. Comience a escribir.", - "To upload files, you need to provide your name first." : "Para cargar archivos, primero debes indicar tu nombre.", + "To upload files, you need to provide your name first." : "Para subir archivos, primero debe indicar su nombre.", "Enter your name" : "Escriba su nombre", "Submit name" : "Enviar nombre", "Share with {userName}" : "Compartir con {userName}", "Show sharing options" : "Mostrar opciones de compartir", "Share note" : "Compartir nota", "Upload files to %s" : "Subir archivos a %s", - "%s shared a folder with you." : "%s ha compartido una carpeta contigo.", + "%s shared a folder with you." : "%s ha compartido una carpeta con Ud.", "Note" : "Nota", "Select or drop files" : "Seleccione o arrastre y suelte archivos", "Uploading files" : "Subiendo archivos", "Uploaded files:" : "Archivos subidos:", "By uploading files, you agree to the %1$sterms of service%2$s." : "Al subir archivos, aceptas los %1$stérminos del servicio%2$s.", "Name" : "Nombre", - "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utiliza este método para compartir archivos con individuos o equipos dentro de tu organización. Si el destinatario ya tiene acceso pero no puede encontrarlos, puedes enviarle este enlace interno para facilitarle el acceso.", - "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Usa este método para compartir archivos con individuos u organizaciones externas a tu organización. Los archivos y carpetas pueden ser compartidos mediante enlaces públicos y por correo. También puedes compartir con otras cuentas de Nextcloud alojadas en otras instancias utilizando su ID de nube federada.", - "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Recursos compartidos que no son internos o externos. Pueden estar compartidos desde aplicaciones u otras fuentes.", + "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utilice este método para compartir archivos con individuos o equipos dentro de su organización. Si el destinatario ya tiene acceso pero no puede encontrarlos, puede enviarle este enlace interno para facilitarle el acceso.", + "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Use este método para compartir archivos con individuos u organizaciones fuera de su organización. Los archivos y carpetas pueden ser compartidos mediante enlaces públicos y por correo electrónico. También puede compartir con otras cuentas de Nextcloud alojadas en otras instancias utilizando su ID de nube federada.", + "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Recursos compartidos que no son internos o externos. Estos pueden ser recursos compartidos de apps u otras fuentes.", "Share with accounts, teams, federated cloud id" : "Comparta con cuentas, equipos, id de nube federada", "Share with accounts and teams" : "Compartir con cuentas y equipos", "Federated cloud ID" : "ID de nube federada", diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json index 56dd5bf49cc..535f8b8e98b 100644 --- a/apps/files_sharing/l10n/es.json +++ b/apps/files_sharing/l10n/es.json @@ -63,7 +63,7 @@ "Please specify a file or folder path" : "Por favor, especifica la ubicación de un archivo o carpeta", "Wrong path, file/folder does not exist" : "Ubicación incorrecta, el archivo/carpeta no existe", "Could not create share" : "No se ha podido compartir", - "Please specify a valid account to share with" : "Por favor, especifique una cuenta válida con la que compartirla", + "Please specify a valid account to share with" : "Por favor, especifique una cuenta válida con la que compartir", "Group sharing is disabled by the administrator" : "Compartir en grupo está deshabilitado por el administrador", "Please specify a valid group" : "Por favor, especifica un grupo válido", "Public link sharing is disabled by the administrator" : "Compartir enlaces de forma pública está deshabilitado por el administrador", @@ -88,8 +88,8 @@ "You are not allowed to edit incoming shares" : "No tiene permitido editar los recursos compartidos entrantes", "Wrong or no update parameter given" : "No se ha suministrado un parametro correcto", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"El envío de la contraseña por Nextcloud Talk\" para compartir un archivo o carpeta falló porque Nextcloud Talk no está habilitado.", - "Custom share link tokens have been disabled by the administrator" : "Los enlaces compartidos personalizados con tokens han sido deshabilitados por el administrador", - "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Los tokens deben contener al menos un caracter y solo deben contener letras, números y guiones", + "Custom share link tokens have been disabled by the administrator" : "Los tokens para enlaces de recursos compartidos personalizados han sido deshabilitados por el administrador", + "Tokens must contain at least 1 character and may only contain letters, numbers, or a hyphen" : "Los tokens deben contener al menos un carácter y solo deben contener letras, números o un guion", "Invalid date. Format must be YYYY-MM-DD" : "Fecha inválida. El formato debe ser AAAA-MM-DD", "No sharing rights on this item" : "Sin permisos para compartir este elemento", "Invalid share attributes provided: \"%s\"" : "Se proporcionaron atributos inválidos para el recurso compartido: \"%s\"", @@ -114,7 +114,7 @@ "Remember to upload the files to %s" : "Recuerde subir los archivos a %s", "We would like to kindly remind you that you have not yet uploaded any files to the shared folder." : "Queremos recordarle amablemente que Ud. todavía no ha subido archivos a la carpeta compartida.", "Open \"%s\"" : "Abrir \"%s\"", - "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permite a los usuarios compartir archivos dentro de Nextcloud. Si se activa, el administrador puede elegir qué grupos pueden compartir archivos. Los usuarios aplicables pueden entonces compartir archivos y carpetas con otros usuarios y grupos dentro de Nextcloud. Además, si el administrador activa la característica de enlace compartido, se puede usar un enlace externo para compartir archivos con otros usuarios fuera de Nextcloud. Los administradores pueden obligar a usar contraseñas o fechas de caducidad y activar el compartir de servidor a servidor vía enlaces compartidos, así como compartir desde dispositivos móviles.\nQuitar esta característica elimina los archivos compartidos y las carpetas en el servidor, para todos los receptores, y también los clientes de sincronización y móviles. Más información disponible en la Documentación de Nextcloud.", + "This application enables people to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable people can then share files and folders with other accounts and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other people outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Esta aplicación permite a las personas compartir archivos dentro de Nextcloud. Si se activa, el administrador puede elegir qué grupos pueden compartir archivos. Los usuarios aplicables pueden entonces compartir archivos y carpetas con otros usuarios y grupos dentro de Nextcloud. Además, si el administrador activa la característica de enlaces de recurso compartido, se puede usar un enlace externo para compartir archivos con otros usuarios fuera de Nextcloud. Los administradores pueden obligar a usar contraseñas o fechas de caducidad y activar el compartir de servidor a servidor vía enlaces de recursos compartidos, así como compartir desde dispositivos móviles.\nSi se apaga esta característica, se quitarán los recursos compartidos de archivos y carpetas en el servidor para todos los receptores, y también los clientes de sincronización y móviles. Hay más información disponible en la Documentación de Nextcloud.", "People" : "Personas", "Filter accounts" : "Filtrar cuentas", "The request will expire on {date} at midnight and will be password protected." : "La solicitud caducará el {date} a la medianoche y estará protegida por contraseña.", @@ -126,7 +126,7 @@ "Select a date" : "Seleccione una fecha", "Your administrator has enforced a {count} days expiration policy." : "Su administrador ha impuesto una política de caducidad de {count} días.", "What password should be used for the request?" : "¿Qué contraseña debería usarse para la solicitud?", - "Set a password" : "Configura una contraseña", + "Set a password" : "Configure una contraseña", "Password" : "Contraseña", "Enter a valid password" : "Ingrese una contraseña válida", "Generate a new password" : "Generar una nueva contraseña", @@ -135,13 +135,13 @@ "Link copied" : "Enlace copiado", "Email already added" : "El correo electrónico ya fue añadido", "Invalid email address" : "Dirección de correo electrónico inválida", - "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["La siguiente dirección de correo no es válida: {emails}","Las siguientes direcciones de correo no son válidas: {emails}","Las siguientes direcciones de correo no son válidas: {emails}"], + "_The following email address is not valid: {emails}_::_The following email addresses are not valid: {emails}_" : ["La siguiente dirección de correo electrónico no es válida: {emails}","Las siguientes direcciones de correo electrónicas no son válidas: {emails}","Las siguientes direcciones de correo electrónicas no son válidas: {emails}"], "_{count} email address already added_::_{count} email addresses already added_" : ["Ya se añadió {count} dirección de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico"], "_{count} email address added_::_{count} email addresses added_" : ["Se añadió {count}dirección de correo electrónico","Se añadieron {count} direcciones de correo electrónico","Se añadieron {count} direcciones de correo electrónico"], "You can now share the link below to allow people to upload files to your directory." : "Ahora puede compartir el enlace de abajo para permitir a otros que carguen archivos a su directorio.", "Share link" : "Compartir enlace", "Copy" : "Copiar", - "Send link via email" : "Enviar el link por email", + "Send link via email" : "Enviar el link via correo electrónico", "Enter an email address or paste a list" : "Ingrese una dirección de correo electrónico o pegue una lista", "Remove email" : "Quitar correo electrónico", "Select a destination" : "Seleccionar un destino", @@ -176,7 +176,7 @@ "Close without sending emails" : "Cerrar sin enviar los correos electrónicos", "Continue" : "Continuar", "Error while toggling options" : "Error cambiar las opciones", - "Accept shares from other accounts and groups by default" : "Aceptar recursos compartidos de otras cuentas y grupos por defecto", + "Accept shares from other accounts and groups by default" : "Aceptar recursos compartidos de otras cuentas y grupos de manera predeterminada", "Choose a default folder for accepted shares" : "Elije la carpeta por defecto para los recursos compartidos aceptados", "Invalid path selected" : "Ruta seleccionada no válida.", "Unknown error" : "Error desconocido", @@ -200,27 +200,29 @@ "Unshare" : "No compartir", "Cannot copy, please copy the link manually" : "No se ha podido copiar, por favor, copia el enlace manualmente", "Copy internal link" : "Copiar enlace interno", + "For people who already have access" : "Para las personas que ya tienen acceso", "Internal link" : "Enlace interno", "{shareWith} by {initiator}" : "{shareWith} por {initiator}", "Shared via link by {initiator}" : "Compartido vía enlace por {initiator}", "File request ({label})" : "Solicitud de archivo ({label})", "Mail share ({label})" : "Compartir correo ({label})", "Share link ({label})" : "Compartir enlace ({label})", - "Mail share" : "Compartido por correo", - "Share link ({index})" : "Compartir enlace ({index})", + "Mail share" : "Recurso compartido de correo", + "Share link ({index})" : "Enlace de recurso compartido ({index})", "Create public link" : "Crear un enlace público", "Actions for \"{title}\"" : "Acciones para \"{title}\"", + "Copy public link of \"{title}\"" : "Copiar enlace público de \"{title}\"", "Error, please enter proper password and/or expiration date" : "Error, por favor, introduce la contraseña y/o fecha de caducidad adecuada", - "Link share created" : "Se creó el enlace de compartición", + "Link share created" : "Se creó el enlace del recurso compartido", "Error while creating the share" : "Error mientras se creaba el recurso compartido", "Please enter the following required information before creating the share" : "Por favor, escriba la información necesaria antes de crear el recurso compartido", "Password protection (enforced)" : "Protección con contraseña (impuesta)", "Password protection" : "Protección por contraseña", "Enter a password" : "Introduzca una contraseña", - "Enable link expiration (enforced)" : "Activar la caducidad del enlace (exigida)", + "Enable link expiration (enforced)" : "Activar la caducidad del enlace (obligatoria)", "Enable link expiration" : "Activar la caducidad del enlace", - "Enter expiration date (enforced)" : "Introduce la fecha de caducidad (exigida)", - "Enter expiration date" : "Introduce la fecha de caducidad", + "Enter expiration date (enforced)" : "Introduzca la fecha de caducidad (obligatoria)", + "Enter expiration date" : "Introduzca la fecha de caducidad", "Create share" : "Crear un recurso compartido", "Customize link" : "Personalizar enlace", "Generate QR code" : "Generar código QR", @@ -249,8 +251,8 @@ "Note from" : "Nota de", "Note:" : "Nota:", "File drop" : "Entrega de archivos", - "Upload files to {foldername}." : "Cargar archivos a {foldername}.", - "By uploading files, you agree to the terms of service." : "Al subir archivos, aceptas los términos del servicio", + "Upload files to {foldername}." : "Subir archivos a {foldername}.", + "By uploading files, you agree to the terms of service." : "Al subir archivos, acepta los términos del servicio.", "Successfully uploaded files" : "Se cargaron los archivos de manera exitosa", "View terms of service" : "Ver los términos del servicio", "Terms of service" : "Términos del servicio", @@ -270,17 +272,17 @@ "Delete" : "Eliminar", "Password field cannot be empty" : "El campo de contraseña no puede estar vacío", "Replace current password" : "Reemplazar la contraseña actual", - "Failed to generate a new token" : "Error al generar un nuevo token", + "Failed to generate a new token" : "Fallo al generar un nuevo token", "Allow upload and editing" : "Permitir la subida y la edición", "Allow editing" : "Permitir edición", "Upload only" : "Sólo subir", - "Advanced settings" : "Configuración avanzada", + "Advanced settings" : "Ajustes avanzados", "Share label" : "Compartir etiqueta", "Share link token" : "Compartir el token del enlace", - "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Escribe un token de enlace público compartido que sea fácil de recordar, o genera un nuevo token. No recomendamos el uso de tokens fácilmente adivinables para recursos compartidos que contengan información sensible.", - "Generating…" : "Generando...", + "Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Establezca el token del enlace público del recurso compartido a algo fácil de recordar, o, genere un token nuevo. No recomendamos el uso de tokens fáciles de deducir para recursos compartidos que contengan información sensible.", + "Generating…" : "Generando…", "Generate new token" : "Generar nuevo token", - "Set password" : "Crear contraseña", + "Set password" : "Establecer contraseña", "Password expires {passwordExpirationTime}" : "La contraseña caduca el {passwordExpirationTime}", "Password expired" : "Contraseña caducada", "Video verification" : "Verificación por vídeo", @@ -291,24 +293,32 @@ "Note to recipient" : "Nota para el destinatario", "Enter a note for the share recipient" : "Escriba una nota para el recurso compartido del destinatario", "Show files in grid view" : "Mostrar archivos en vista de cuadrícula", - "Delete share" : "Borrar recurso compartido", + "Delete share" : "Eliminar recurso compartido", "Others with access" : "Otros con acceso", "No other accounts with access found" : "No se encontraron otras cuentas con acceso", "Toggle list of others with access to this directory" : "Pasar la lista de otros con acceso a este carpeta", "Toggle list of others with access to this file" : "Pasar la lista de otros con acceso a este archivo", "Unable to fetch inherited shares" : "No se ha podido recoger los recursos compartidos heredados", - "Link shares" : "Enlaces compartido", + "Link shares" : "Enlaces del recurso compartido", "Shares" : "Compartidos", + "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Comparta archivos con su organización. Los destinatarios que ya pueden ver el archivo también pueden utilizar este enlace para un acceso fácil.", + "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Comparta archivos con otros fuera de su organización vía enlaces públicos y direcciones de correo electrónico. Ud. puede también compartir con cuentas de Nextcloud en otras instancias utilizando su ID de nube federada.", + "Shares from apps or other sources which are not included in internal or external shares." : "Los recursos compartidos desde las apps o de otras fuentes que no están incluidos en recursos compartidos internos o externos.", + "Type names, teams, federated cloud IDs" : "Escriba nombres, equipos, IDs de nubes federadas", + "Type names or teams" : "Escriba nombres o equipos", + "Type a federated cloud ID" : "Escriba un ID de nube federada", + "Type an email" : "Escriba una dirección de correo electrónico", + "Type an email or federated cloud ID" : "Escriba una dirección de correo electrónico o un ID de nube federada", "Unable to load the shares list" : "No se pudo cargar la lista de recursos compartidos", "Expires {relativetime}" : "Caduca en {relativetime}", "this share just expired." : "este recurso compartido acaba de caducar.", "Shared with you by {owner}" : "Compartido contigo por {owner}", - "Internal shares" : "Compartir internamente", - "Internal shares explanation" : "Compartir internamente explicado", - "External shares" : "Compartir con el exterior", - "External shares explanation" : "Compartir con el exterior explicado", - "Additional shares" : "Otras formas de compartir", - "Additional shares explanation" : "Otras formas de compartir explicadas", + "Internal shares" : "Recursos compartidos internamente", + "Internal shares explanation" : "Explicación de los recursos compartidos externos", + "External shares" : "Recursos compartidos externos", + "External shares explanation" : "Explicación de los recursos compartidos externos", + "Additional shares" : "Recursos compartidos adicionales", + "Additional shares explanation" : "Explicación de los recursos compartidos adicionales", "Link to a file" : "Enlace al archivo", "_Accept share_::_Accept shares_" : ["Aceptar recurso compartido","Aceptar recursos compartidos","Aceptar recursos compartidos"], "Open in Files" : "Abrir en Archivos", @@ -320,23 +330,23 @@ "Sharing options" : "Opciones de compartir", "Shared with others" : "Compartido con otros", "Create file request" : "Crear solicitud de archivo", - "Upload files to {foldername}" : "Cargar archivos a {foldername}", - "Public file share" : "Archivo compartido en público", - "Publicly shared file." : "Archivo compartido públicamente", + "Upload files to {foldername}" : "Subir archivos a {foldername}", + "Public file share" : "Recurso compartido público de archivo", + "Publicly shared file." : "Archivo compartido públicamente.", "No file" : "Sin archivo", - "The file shared with you will show up here" : "Los archivos compartidos contigo aparecerán aquí", - "Public share" : "Compartido públicamente", + "The file shared with you will show up here" : "El archivo compartido con Ud. aparecerá aquí", + "Public share" : "Recurso compartido público", "Publicly shared files." : "Archivos compartidos públicamente.", "No files" : "Sin archivos", - "Files and folders shared with you will show up here" : "Los archivos y carpetas compartidos contigo aparecerán aquí", - "Overview of shared files." : "Vista previa de los recursos compartidos", + "Files and folders shared with you will show up here" : "Los archivos y carpetas compartidos con Ud. aparecerán aquí", + "Overview of shared files." : "Resumen de archivos compartidos.", "No shares" : "No compartidos", - "Files and folders you shared or have been shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que has compartido o que se han compartido con ud", + "Files and folders you shared or have been shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que ha compartido o que se han compartido con Ud.", "Shared with you" : "Compartido conmigo", - "List of files that are shared with you." : "Lista de archivos que se han compartido contigo.", + "List of files that are shared with you." : "Lista de archivos que se han compartido con Ud.", "Nothing shared with you yet" : "Aún no hay nada compartido contigo", - "Files and folders others shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que otros han compartido con ud", - "List of files that you shared with others." : "Lista de archivos que has compartido con otros.", + "Files and folders others shared with you will show up here" : "Aquí aparecerán los archivos y carpetas que otros han compartido con Ud.", + "List of files that you shared with others." : "Lista de archivos que ha compartido con otros.", "Nothing shared yet" : "Aún no hay nada compartido", "Files and folders you shared will show up here" : "Aquí aparecerán los archivos y carpetas que ha compartido", "Shared by link" : "Compartido por enlace", @@ -344,17 +354,17 @@ "No shared links" : "No hay enlaces compartidos", "Files and folders you shared by link will show up here" : "Aquí aparecerán los archivos y carpetas que ha compartido mediante enlace", "File requests" : "Solicitudes de archivos", - "List of file requests." : "Lista de solicitudes de archivos", + "List of file requests." : "Lista de solicitudes de archivos.", "No file requests" : "Sin solicitudes de archivos", - "File requests you have created will show up here" : "Las solicitudes de archivos que hayas creado aparecerán aquí", + "File requests you have created will show up here" : "Las solicitudes de archivos que haya creado aparecerán aquí", "Deleted shares" : "Recursos compartidos eliminados", - "List of shares you left." : "Lista de compartidos que abandonó.", + "List of shares you left." : "Lista de recursos compartidos que abandonó.", "No deleted shares" : "No hay recursos compartidos eliminados", - "Shares you have left will show up here" : "Aquí aparecerán los compartidos que ha abandonado", + "Shares you have left will show up here" : "Aquí aparecerán los recursos compartidos que ha abandonado", "Pending shares" : "Recursos compartidos pendientes", - "List of unapproved shares." : "Lista de recursos compartidos no aprobados", + "List of unapproved shares." : "Lista de recursos compartidos no aprobados.", "No pending shares" : "No hay recursos compartidos pendientes", - "Shares you have received but not approved will show up here" : "Aquí aparecerán los compartidos que ha recibido pero que no ha aprobado", + "Shares you have received but not approved will show up here" : "Aquí aparecerán los recursos compartidos que ha recibido pero que no ha aprobado", "Error deleting the share: {errorMessage}" : "Error al eliminar el recurso compartido: {errorMessage}", "Error deleting the share" : "Error borrando el recurso compartido", "Error updating the share: {errorMessage}" : "Error al actualizar el recurso compartido: {errorMessage}", @@ -364,15 +374,15 @@ "Could not update share" : "No se ha podido actualizar el recurso compartido", "Share saved" : "Recurso compartido guardado", "Share expiry date saved" : "Fecha de caducidad del recurso compartido guardada", - "Share hide-download state saved" : "Ocultar la decarga del recurso compartido guardado", + "Share hide-download state saved" : "Estado de prevención de descargas para el recurso compartido guardado", "Share label saved" : "Se ha guardado la etiqueta del recurso compartido", "Share note for recipient saved" : "Nota para el destinatario del recurso compartido guardada", "Share password saved" : "Se ha guardado la contraseña del recurso compartido", "Share permissions saved" : "Permisos del recurso compartido guardados", "To upload files to {folder}, you need to provide your name first." : "Para cargar archivos a {folder}, necesita proporcionar primero su nombre.", - "Upload files to {folder}" : "Cargar archivos a {folder}", + "Upload files to {folder}" : "Subir archivos a {folder}", "Please confirm your name to upload files to {folder}" : "Por favor, confirme su nombre para cargar archivos a {folder}", - "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha compartido una carpeta contigo.", + "{ownerDisplayName} shared a folder with you." : "{ownerDisplayName} ha compartido una carpeta con Ud.", "Names must not be empty." : "Los nombres no deben estar vacíos.", "Names must not start with a dot." : "Los nombres no deben comenzar con un punto.", "\"{char}\" is not allowed inside a name." : "\"{char}\" no está permitido dentro de un nombre.", @@ -406,32 +416,32 @@ "Download all files" : "Descargar todos los archivos", "Link copied to clipboard" : "Enlace copiado al portapapeles", "_1 email address already added_::_{count} email addresses already added_" : ["Ya se ha añadido 1 dirección de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico","Ya se han añadido {count} direcciones de correo electrónico"], - "_1 email address added_::_{count} email addresses added_" : ["Se ha añadido una dirección de correo","Se han añadido {count} direcciones de correo","Se han añadido {count} direcciones de correo"], + "_1 email address added_::_{count} email addresses added_" : ["Se ha añadido 1 dirección de correo","Se han añadido {count} direcciones de correo","Se han añadido {count} direcciones de correo"], "Copy to clipboard" : "Copiar al portapapeles", "Copy internal link to clipboard" : "Copiar enlace interno al portapapeles", "Only works for people with access to this folder" : "Sólo funciona para personas con acceso a esta carpeta", "Only works for people with access to this file" : "Sólo funciona para personas con acceso a este archivo", "Copy public link of \"{title}\" to clipboard" : "Copiar enlace público de \"{title}\" al portapapeles", "Search globally" : "Buscar globalmente", - "Search for share recipients" : "Buscar destinatarios del compartido", + "Search for share recipients" : "Buscar destinatarios para el recurso compartido", "No recommendations. Start typing." : "No hay recomendaciones. Comience a escribir.", - "To upload files, you need to provide your name first." : "Para cargar archivos, primero debes indicar tu nombre.", + "To upload files, you need to provide your name first." : "Para subir archivos, primero debe indicar su nombre.", "Enter your name" : "Escriba su nombre", "Submit name" : "Enviar nombre", "Share with {userName}" : "Compartir con {userName}", "Show sharing options" : "Mostrar opciones de compartir", "Share note" : "Compartir nota", "Upload files to %s" : "Subir archivos a %s", - "%s shared a folder with you." : "%s ha compartido una carpeta contigo.", + "%s shared a folder with you." : "%s ha compartido una carpeta con Ud.", "Note" : "Nota", "Select or drop files" : "Seleccione o arrastre y suelte archivos", "Uploading files" : "Subiendo archivos", "Uploaded files:" : "Archivos subidos:", "By uploading files, you agree to the %1$sterms of service%2$s." : "Al subir archivos, aceptas los %1$stérminos del servicio%2$s.", "Name" : "Nombre", - "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utiliza este método para compartir archivos con individuos o equipos dentro de tu organización. Si el destinatario ya tiene acceso pero no puede encontrarlos, puedes enviarle este enlace interno para facilitarle el acceso.", - "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Usa este método para compartir archivos con individuos u organizaciones externas a tu organización. Los archivos y carpetas pueden ser compartidos mediante enlaces públicos y por correo. También puedes compartir con otras cuentas de Nextcloud alojadas en otras instancias utilizando su ID de nube federada.", - "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Recursos compartidos que no son internos o externos. Pueden estar compartidos desde aplicaciones u otras fuentes.", + "Use this method to share files with individuals or teams within your organization. If the recipient already has access to the share but cannot locate it, you can send them the internal share link for easy access." : "Utilice este método para compartir archivos con individuos o equipos dentro de su organización. Si el destinatario ya tiene acceso pero no puede encontrarlos, puede enviarle este enlace interno para facilitarle el acceso.", + "Use this method to share files with individuals or organizations outside your organization. Files and folders can be shared via public share links and email addresses. You can also share to other Nextcloud accounts hosted on different instances using their federated cloud ID." : "Use este método para compartir archivos con individuos u organizaciones fuera de su organización. Los archivos y carpetas pueden ser compartidos mediante enlaces públicos y por correo electrónico. También puede compartir con otras cuentas de Nextcloud alojadas en otras instancias utilizando su ID de nube federada.", + "Shares that are not part of the internal or external shares. This can be shares from apps or other sources." : "Recursos compartidos que no son internos o externos. Estos pueden ser recursos compartidos de apps u otras fuentes.", "Share with accounts, teams, federated cloud id" : "Comparta con cuentas, equipos, id de nube federada", "Share with accounts and teams" : "Compartir con cuentas y equipos", "Federated cloud ID" : "ID de nube federada", diff --git a/apps/files_sharing/l10n/fa.js b/apps/files_sharing/l10n/fa.js new file mode 100644 index 00000000000..d30c0a00bf4 --- /dev/null +++ b/apps/files_sharing/l10n/fa.js @@ -0,0 +1,229 @@ +OC.L10N.register( + "files_sharing", + { + "File shares" : "اشتراک گذاری های فایل", + "Downloaded 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} به اشتراک گذاشت", + "Shared as public link" : "اشتراک گذاشته شده به عنوان ادرس عمومی", + "Removed public link" : "حذف ادرس عمومی", + "Public link expired" : "ادرس عمومی منقضی شد", + "You removed yourself" : "شما خدتان را حذف کردید", + "Share for {user} expired" : "اشتراک برای {user} منقضی شده است", + "Share expired" : "اشتراک منقضی شد", + "{actor} shared {file} with you" : "{actor} {file} را با شما به اشتراک گذاشت", + "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "یک پرونده یا پوشه به اشتراک گذاشته شده از طریق پست یا از طریق لینک عمومی بارگیری شد", + "A file or folder was shared from <strong>another server</strong>" : "یک پرونده یا پوشه از سرور دیگر به اشتراک گذاشته شد", + "Sharing" : "اشتراک گذاری", + "A file or folder has been <strong>shared</strong>" : "فایل یا پوشه ای به <strong>اشتراک</strong> گذاشته شد", + "Shared link" : "پیوند به اشتراک گذاری شده", + "Wrong share ID, share does not exist" : "Wrong share ID, share does not exist", + "Could not delete share" : "اشتراک گذاری حذف نشد", + "Please specify a file or folder path" : "لطفاً مسیر فایل یا پوشه را مشخص کنید", + "Wrong path, file/folder does not exist" : "Wrong path, file/folder does not exist", + "Could not create share" : "امکان ایجاد اشتراک گذاری وجود ندارد", + "Group sharing is disabled by the administrator" : "اشتراک گروه توسط مدیر غیرفعال شده است.", + "Please specify a valid group" : "لطفا یک گروه معتبر انتخاب کنید", + "Public link sharing is disabled by the administrator" : "اشتراک پیوندهای عمومی توسط مدیر غیرفعال شده است", + "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : ".اشتراک%s ارسال رمز عبور توسط Nextcloud Talk به دلیل فعال نشدن Nextcloud Talk انجام نشد.", + "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "%2$sاشتراک گذاری%1$s انجام نشد زیرا بک اِند اجازه نمی دهد نوع از سهام استفاده شود", + "Please specify a valid federated group ID" : "Please specify a valid federated group ID", + "Sharing %s failed because the back end does not support room shares" : "اشتراک گذاری %sانجام نشد زیرا قسمت پشتی سهام اتاق را پشتیبانی نمی کند", + "Sharing %s failed because the back end does not support ScienceMesh shares" : "Sharing %s failed because the back end does not support ScienceMesh shares", + "Unknown share type" : "نوع اشتراک ناشناخته", + "Not a directory" : "این یک پوشه نیست", + "Could not lock node" : "گره را نمی توان قفل کرد", + "Public upload is only possible for publicly shared folders" : "بارگذاری عمومی فقط برای پوشه هایی که به طور عمومی به اشتراک گذاشته می شوند ممکن است", + "Share must at least have READ or CREATE permissions" : "Share must at least have READ or CREATE permissions", + "Share must have READ permission if UPDATE or DELETE permission is set" : "Share must have READ permission if UPDATE or DELETE permission is set", + "Public upload disabled by the administrator" : "آپلود عمومی توسط سرپرست غیرفعال شده است", + "Could not lock path" : "امکان قفل کردن مسیر وجود ندارد.", + "Wrong or no update parameter given" : "اشتباهی و یا پارامتر بروزرسانی داده نشد", + "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled.", + "Wrong password" : "کلمه عبور اشتباه", + "shared by %s" : "اشتراک گذاری شده به میزان %s", + "Download" : "دانلود", + "Add to your %s" : "Add to your %s", + "Direct link" : "لینک مستقیم", + "Share API is disabled" : "اشتراک API غیرفعال شده است", + "File sharing" : "اشتراک گذاری پرونده", + "Share will expire tomorrow" : "اشتراک فردا منقضی می شود", + "Accept" : "پذیرفتن", + "Decline" : "کاهش می یابد", + "People" : "مردم", + "Filter accounts" : "پالایش حسابها", + "Expiration date" : "تاریخ انقضا", + "Set a password" : "رمزعبور تنظیم کنید", + "Password" : "گذرواژه", + "Link copied" : "پیوند کپی شد", + "Share link" : "Share link", + "Copy" : "کپی", + "Select" : "گزینش<br>", + "Close" : "بسته", + "Error creating the share: {errorMessage}" : "Error creating the share: {errorMessage}", + "Error creating the share" : "خطایی در ایجاد اشتراک", + "Cancel" : "لغو", + "Continue" : "ادامه", + "Error while toggling options" : "Error while toggling options", + "Choose a default folder for accepted shares" : "انتخاب پوشه پیشفرض برای به اشتراک گذاشته های تایید شده", + "Invalid path selected" : "مسیر انتخاب شده نامعتبر است", + "Unknown error" : "خطای ناشناخته", + "Set default folder for accepted shares" : "انتخاب پوشه ی پیش فرض برای اشتراک گذاری های پذیرفته شده", + "Reset" : "بازنشاندن", + "Reset folder to system default" : "بازنشاندن پوشه به حالت پیشفرض سیستم", + "group" : "گروه", + "conversation" : "گفتگو", + "remote" : "از راه دور", + "remote group" : "گروه از راه دور", + "guest" : "میهمان", + "Shared with {user} by {owner}" : "مشترک با {user} توسط {owner}", + "Added by {initiator}" : "اضافه شده توسط {initiator}", + "Via “{folder}”" : "Via “{folder}”", + "Unshare" : "لغو اشتراک", + "Cannot copy, please copy the link manually" : "کپی کردن امکان پذیر نیست ، لطفا پیوند را به صورت دستی کپی کنید", + "Copy internal link" : "کپی کردن پیوند داخلی", + "Internal link" : "پیوند داخلی", + "{shareWith} by {initiator}" : "{shareWith} by {initiator}", + "Mail share ({label})" : "Mail share ({label})", + "Share link ({label})" : "Share link ({label})", + "Share link ({index})" : "Share link ({index})", + "Create public link" : "ایجاد پیوند عمومی", + "Actions for \"{title}\"" : "Actions for \"{title}\"", + "Error, please enter proper password and/or expiration date" : "خطا ، لطفاً رمز عبور مناسب و یا تاریخ انقضا را وارد کنید", + "Link share created" : "Link share created", + "Error while creating the share" : "Error while creating the share", + "Please enter the following required information before creating the share" : "لطفا قبل از ایجاد اشتراک ، اطلاعات لازم را وارد کنید", + "Password protection (enforced)" : "محافظت از رمز عبور (اجباری)", + "Password protection" : "Password protection", + "Enter a password" : "یک گذرواژه وارد کنید", + "Create share" : "ساختن اشتراک", + "Add another link" : "پیوند دیگری اضافه کنید", + "Create a new share link" : "پیوند اشتراک گذاری جدیدی ایجاد کنید", + "View only" : "تنها مشاهده", + "Can edit" : "توانایی ویرایش", + "Custom permissions" : "Custom permissions", + "Resharing is not allowed" : "اشتراک گذاری مجدد مجاز نمی باشد", + "Name or email …" : "Name or email …", + "Name, email, or Federated Cloud ID …" : "Name, email, or Federated Cloud ID …", + "Searching …" : "جستجوکردن …", + "No elements found." : "عنصری یافت نشد", + "Search everywhere" : "جستجو در هر کجا.", + "Guest" : "مهمان", + "Group" : "گروه", + "Email" : "رایانامه", + "Team" : "تیم", + "Talk conversation" : "Talk conversation", + "Deck board" : "تخته deck", + "ScienceMesh" : "ScienceMesh", + "on {server}" : "روی{server}", + "File drop" : "انداختن پرونده", + "Terms of service" : "شرایط و قوانین", + "Update share" : "بهروزرسانی همرسانی", + "Read" : "خواندن", + "Create" : "ایجاد", + "Edit" : "ویرایش", + "Share" : "همرسانی", + "Delete" : "حذف", + "Allow upload and editing" : "اجازه آپلود و ویرایش", + "Allow editing" : "اجازهی ویرایش", + "Advanced settings" : "تنظیمات پیشرفته", + "Share label" : "Share label", + "Set password" : "تنظیم گذرواژه", + "Password expires {passwordExpirationTime}" : "Password expires {passwordExpirationTime}", + "Password expired" : "Password expired", + "Video verification" : "تأیید صحت ویدیو", + "Expiration date (enforced)" : "تاریخ انقضا (اجباری)", + "Set expiration date" : "تنظیم تاریخ انقضا", + "Hide download" : "پنهان کردن بارگیری", + "Note to recipient" : "یادداشت برای گیرنده", + "Enter a note for the share recipient" : "برای دریافت کننده اشتراک یک یادداشت وارد کنید", + "Others with access" : "دیگران با دسترسی", + "Toggle list of others with access to this directory" : "لیست دسترسی دیگران به این فهرست را تغییر دهید", + "Toggle list of others with access to this file" : "لیست سایرین را با دسترسی به این پرونده تغییر دهید", + "Unable to fetch inherited shares" : "واگذاری سهام ارثی امکان پذیر نیست", + "Shares" : "اشتراک گذاری ها", + "Unable to load the shares list" : "لیست سهام بارگیری نمی شود", + "Expires {relativetime}" : "منقضی در {relativetime}", + "this share just expired." : "این اشتراک تازه منقضی شد", + "Shared with you by {owner}" : "به اشتراک گذاشته شده با شما توسط {owner}", + "Link to a file" : "پیوند به یک پرونده", + "_Accept share_::_Accept shares_" : ["Accept share","Accept shares"], + "Open in Files" : "در فایل باز کنید", + "_Reject share_::_Reject shares_" : ["Reject share","Reject shares"], + "_Restore share_::_Restore shares_" : ["Restore share","Restore shares"], + "Shared" : "به اشتراک گذاشته شده ", + "Shared multiple times with different people" : "Shared multiple times with different people", + "Shared with others" : "موارد به اشتراک گذاشته شده با دیگران", + "Public file share" : "اشتراک عمومی پرونده", + "Publicly shared file." : "پرونده بصورت عمومی به اشتراک گذاشته شده است", + "No file" : "بدون پرونده", + "Public share" : "سهم عمومی", + "Publicly shared files." : "پرونده ها بصورت عمومی به اشتراک گذاشته شده اند", + "Overview of shared files." : "نمای کلی پرونده های به اشتراک گذاشته شده", + "No shares" : "اشتراک گذاری وجود ندارد", + "Files and folders you shared or have been shared with you will show up here" : "Files and folders you shared or have been shared with you will show up here", + "Shared with you" : "موارد به اشتراک گذاشته شده با شما", + "List of files that are shared with you." : "لیست پرونده هایی که با شما به اشتراک گذاشته شده است.", + "Nothing shared with you yet" : "هیچ موردی با شما به اشتراک گذاشته نشده است", + "Files and folders others shared with you will show up here" : "Files and folders others shared with you will show up here", + "List of files that you shared with others." : "لیست پرونده هایی که شما با دیگران به اشتراک گذاشته اید.", + "Nothing shared yet" : "هیچ موردی تاکنون به اشتراک گذاشته نشده است", + "Files and folders you shared will show up here" : "Files and folders you shared will show up here", + "Shared by link" : "اشتراک گذاشته شده از طریق لینک", + "List of files that are shared by link." : "List of files that are shared by link.", + "No shared links" : "هیچ لینک اشتراکگذاری وجود ندارد", + "Files and folders you shared by link will show up here" : "Files and folders you shared by link will show up here", + "File requests" : "درخواست پرونده", + "Deleted shares" : "اشتراک گذاری های حذف شده", + "List of shares you left." : "List of shares you left.", + "No deleted shares" : "اشتراک گذاری های حذف نشده", + "Shares you have left will show up here" : "Shares you have left will show up here", + "Pending shares" : "اشتراک در حال انتظار ", + "List of unapproved shares." : "List of unapproved shares.", + "No pending shares" : "بدون اشتراک در حال انتظار", + "Shares you have received but not approved will show up here" : "Shares you have received but not approved will show up here", + "Error updating the share: {errorMessage}" : "Error updating the share: {errorMessage}", + "Error updating the share" : "خطایی در به روزرسانی اشتراک", + "File \"{path}\" has been unshared" : "File \"{path}\" has been unshared", + "Folder \"{path}\" has been unshared" : "Folder \"{path}\" has been unshared", + "Shared by" : "اشتراک گذاشته شده به وسیله", + "Shared with" : "مشترک با", + "Password created successfully" : "Password created successfully", + "Error generating password from password policy" : "Error generating password from password policy", + "Share not found" : "اشتراک گذاری یافت نشد", + "Back to %s" : "Back to %s", + "Add to your Nextcloud" : "به نکستکلود خود اضافه کنید", + "Waiting…" : "منتظر باشید ...", + "error" : "خطا", + "finished" : "تمام شد", + "This will stop your current uploads." : "با این کار آپلودهای فعلی شما متوقف خواهد شد.", + "Move or copy" : "انتقال یا کپی", + "You can upload into this folder" : "میتوانید در این پوشه آپلود کنید", + "Show list view" : "نمایش فهرستی", + "Show grid view" : "نمایش شبکهای", + "Invalid server URL" : "ادرس سرور نامعتبر", + "Failed to add the public link to your Nextcloud" : "خطا در افزودن ادرس عمومی به نکس کلود شما", + "Download all files" : "دانلود همه فایل ها", + "Link copied to clipboard" : "پیوند در حافظه موقت کپی شده", + "Copy to clipboard" : "کپی به کلیپ بورد", + "Copy internal link to clipboard" : "Copy internal link to clipboard", + "Copy public link of \"{title}\" to clipboard" : "Copy public link of \"{title}\" to clipboard", + "Search globally" : "در سطح جهان جستجو کنید", + "Search for share recipients" : "Search for share recipients", + "No recommendations. Start typing." : "هیچ توصیه ای نیست شروع به تایپ کنید.", + "Enter your name" : "اسمت را وارد کن", + "Share note" : "یادداشت اشتراک گذاری", + "Upload files to %s" : "بارگیری پرونده ها به%s", + "Note" : "یادداشت", + "Select or drop files" : "پرونده ها را انتخاب یا رها کنید", + "Uploading files" : "پرونده های در حال بارگذاری", + "Uploaded files:" : "پرونده های بارگذاری شده:", + "By uploading files, you agree to the %1$sterms of service%2$s." : "%2$sبا بارگذاری پرونده ها ، شما با %1$sشرایط خدمات موافقت می کنید", + "Name" : "نام", + "Filename must not be empty." : "Filename must not be empty." +}, +"nplurals=2; plural=(n > 1);"); diff --git a/apps/files_sharing/l10n/fa.json b/apps/files_sharing/l10n/fa.json new file mode 100644 index 00000000000..36ae4898f5c --- /dev/null +++ b/apps/files_sharing/l10n/fa.json @@ -0,0 +1,227 @@ +{ "translations": { + "File shares" : "اشتراک گذاری های فایل", + "Downloaded 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} به اشتراک گذاشت", + "Shared as public link" : "اشتراک گذاشته شده به عنوان ادرس عمومی", + "Removed public link" : "حذف ادرس عمومی", + "Public link expired" : "ادرس عمومی منقضی شد", + "You removed yourself" : "شما خدتان را حذف کردید", + "Share for {user} expired" : "اشتراک برای {user} منقضی شده است", + "Share expired" : "اشتراک منقضی شد", + "{actor} shared {file} with you" : "{actor} {file} را با شما به اشتراک گذاشت", + "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "یک پرونده یا پوشه به اشتراک گذاشته شده از طریق پست یا از طریق لینک عمومی بارگیری شد", + "A file or folder was shared from <strong>another server</strong>" : "یک پرونده یا پوشه از سرور دیگر به اشتراک گذاشته شد", + "Sharing" : "اشتراک گذاری", + "A file or folder has been <strong>shared</strong>" : "فایل یا پوشه ای به <strong>اشتراک</strong> گذاشته شد", + "Shared link" : "پیوند به اشتراک گذاری شده", + "Wrong share ID, share does not exist" : "Wrong share ID, share does not exist", + "Could not delete share" : "اشتراک گذاری حذف نشد", + "Please specify a file or folder path" : "لطفاً مسیر فایل یا پوشه را مشخص کنید", + "Wrong path, file/folder does not exist" : "Wrong path, file/folder does not exist", + "Could not create share" : "امکان ایجاد اشتراک گذاری وجود ندارد", + "Group sharing is disabled by the administrator" : "اشتراک گروه توسط مدیر غیرفعال شده است.", + "Please specify a valid group" : "لطفا یک گروه معتبر انتخاب کنید", + "Public link sharing is disabled by the administrator" : "اشتراک پیوندهای عمومی توسط مدیر غیرفعال شده است", + "Sharing %s sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : ".اشتراک%s ارسال رمز عبور توسط Nextcloud Talk به دلیل فعال نشدن Nextcloud Talk انجام نشد.", + "Sharing %1$s failed because the back end does not allow shares from type %2$s" : "%2$sاشتراک گذاری%1$s انجام نشد زیرا بک اِند اجازه نمی دهد نوع از سهام استفاده شود", + "Please specify a valid federated group ID" : "Please specify a valid federated group ID", + "Sharing %s failed because the back end does not support room shares" : "اشتراک گذاری %sانجام نشد زیرا قسمت پشتی سهام اتاق را پشتیبانی نمی کند", + "Sharing %s failed because the back end does not support ScienceMesh shares" : "Sharing %s failed because the back end does not support ScienceMesh shares", + "Unknown share type" : "نوع اشتراک ناشناخته", + "Not a directory" : "این یک پوشه نیست", + "Could not lock node" : "گره را نمی توان قفل کرد", + "Public upload is only possible for publicly shared folders" : "بارگذاری عمومی فقط برای پوشه هایی که به طور عمومی به اشتراک گذاشته می شوند ممکن است", + "Share must at least have READ or CREATE permissions" : "Share must at least have READ or CREATE permissions", + "Share must have READ permission if UPDATE or DELETE permission is set" : "Share must have READ permission if UPDATE or DELETE permission is set", + "Public upload disabled by the administrator" : "آپلود عمومی توسط سرپرست غیرفعال شده است", + "Could not lock path" : "امکان قفل کردن مسیر وجود ندارد.", + "Wrong or no update parameter given" : "اشتباهی و یا پارامتر بروزرسانی داده نشد", + "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled.", + "Wrong password" : "کلمه عبور اشتباه", + "shared by %s" : "اشتراک گذاری شده به میزان %s", + "Download" : "دانلود", + "Add to your %s" : "Add to your %s", + "Direct link" : "لینک مستقیم", + "Share API is disabled" : "اشتراک API غیرفعال شده است", + "File sharing" : "اشتراک گذاری پرونده", + "Share will expire tomorrow" : "اشتراک فردا منقضی می شود", + "Accept" : "پذیرفتن", + "Decline" : "کاهش می یابد", + "People" : "مردم", + "Filter accounts" : "پالایش حسابها", + "Expiration date" : "تاریخ انقضا", + "Set a password" : "رمزعبور تنظیم کنید", + "Password" : "گذرواژه", + "Link copied" : "پیوند کپی شد", + "Share link" : "Share link", + "Copy" : "کپی", + "Select" : "گزینش<br>", + "Close" : "بسته", + "Error creating the share: {errorMessage}" : "Error creating the share: {errorMessage}", + "Error creating the share" : "خطایی در ایجاد اشتراک", + "Cancel" : "لغو", + "Continue" : "ادامه", + "Error while toggling options" : "Error while toggling options", + "Choose a default folder for accepted shares" : "انتخاب پوشه پیشفرض برای به اشتراک گذاشته های تایید شده", + "Invalid path selected" : "مسیر انتخاب شده نامعتبر است", + "Unknown error" : "خطای ناشناخته", + "Set default folder for accepted shares" : "انتخاب پوشه ی پیش فرض برای اشتراک گذاری های پذیرفته شده", + "Reset" : "بازنشاندن", + "Reset folder to system default" : "بازنشاندن پوشه به حالت پیشفرض سیستم", + "group" : "گروه", + "conversation" : "گفتگو", + "remote" : "از راه دور", + "remote group" : "گروه از راه دور", + "guest" : "میهمان", + "Shared with {user} by {owner}" : "مشترک با {user} توسط {owner}", + "Added by {initiator}" : "اضافه شده توسط {initiator}", + "Via “{folder}”" : "Via “{folder}”", + "Unshare" : "لغو اشتراک", + "Cannot copy, please copy the link manually" : "کپی کردن امکان پذیر نیست ، لطفا پیوند را به صورت دستی کپی کنید", + "Copy internal link" : "کپی کردن پیوند داخلی", + "Internal link" : "پیوند داخلی", + "{shareWith} by {initiator}" : "{shareWith} by {initiator}", + "Mail share ({label})" : "Mail share ({label})", + "Share link ({label})" : "Share link ({label})", + "Share link ({index})" : "Share link ({index})", + "Create public link" : "ایجاد پیوند عمومی", + "Actions for \"{title}\"" : "Actions for \"{title}\"", + "Error, please enter proper password and/or expiration date" : "خطا ، لطفاً رمز عبور مناسب و یا تاریخ انقضا را وارد کنید", + "Link share created" : "Link share created", + "Error while creating the share" : "Error while creating the share", + "Please enter the following required information before creating the share" : "لطفا قبل از ایجاد اشتراک ، اطلاعات لازم را وارد کنید", + "Password protection (enforced)" : "محافظت از رمز عبور (اجباری)", + "Password protection" : "Password protection", + "Enter a password" : "یک گذرواژه وارد کنید", + "Create share" : "ساختن اشتراک", + "Add another link" : "پیوند دیگری اضافه کنید", + "Create a new share link" : "پیوند اشتراک گذاری جدیدی ایجاد کنید", + "View only" : "تنها مشاهده", + "Can edit" : "توانایی ویرایش", + "Custom permissions" : "Custom permissions", + "Resharing is not allowed" : "اشتراک گذاری مجدد مجاز نمی باشد", + "Name or email …" : "Name or email …", + "Name, email, or Federated Cloud ID …" : "Name, email, or Federated Cloud ID …", + "Searching …" : "جستجوکردن …", + "No elements found." : "عنصری یافت نشد", + "Search everywhere" : "جستجو در هر کجا.", + "Guest" : "مهمان", + "Group" : "گروه", + "Email" : "رایانامه", + "Team" : "تیم", + "Talk conversation" : "Talk conversation", + "Deck board" : "تخته deck", + "ScienceMesh" : "ScienceMesh", + "on {server}" : "روی{server}", + "File drop" : "انداختن پرونده", + "Terms of service" : "شرایط و قوانین", + "Update share" : "بهروزرسانی همرسانی", + "Read" : "خواندن", + "Create" : "ایجاد", + "Edit" : "ویرایش", + "Share" : "همرسانی", + "Delete" : "حذف", + "Allow upload and editing" : "اجازه آپلود و ویرایش", + "Allow editing" : "اجازهی ویرایش", + "Advanced settings" : "تنظیمات پیشرفته", + "Share label" : "Share label", + "Set password" : "تنظیم گذرواژه", + "Password expires {passwordExpirationTime}" : "Password expires {passwordExpirationTime}", + "Password expired" : "Password expired", + "Video verification" : "تأیید صحت ویدیو", + "Expiration date (enforced)" : "تاریخ انقضا (اجباری)", + "Set expiration date" : "تنظیم تاریخ انقضا", + "Hide download" : "پنهان کردن بارگیری", + "Note to recipient" : "یادداشت برای گیرنده", + "Enter a note for the share recipient" : "برای دریافت کننده اشتراک یک یادداشت وارد کنید", + "Others with access" : "دیگران با دسترسی", + "Toggle list of others with access to this directory" : "لیست دسترسی دیگران به این فهرست را تغییر دهید", + "Toggle list of others with access to this file" : "لیست سایرین را با دسترسی به این پرونده تغییر دهید", + "Unable to fetch inherited shares" : "واگذاری سهام ارثی امکان پذیر نیست", + "Shares" : "اشتراک گذاری ها", + "Unable to load the shares list" : "لیست سهام بارگیری نمی شود", + "Expires {relativetime}" : "منقضی در {relativetime}", + "this share just expired." : "این اشتراک تازه منقضی شد", + "Shared with you by {owner}" : "به اشتراک گذاشته شده با شما توسط {owner}", + "Link to a file" : "پیوند به یک پرونده", + "_Accept share_::_Accept shares_" : ["Accept share","Accept shares"], + "Open in Files" : "در فایل باز کنید", + "_Reject share_::_Reject shares_" : ["Reject share","Reject shares"], + "_Restore share_::_Restore shares_" : ["Restore share","Restore shares"], + "Shared" : "به اشتراک گذاشته شده ", + "Shared multiple times with different people" : "Shared multiple times with different people", + "Shared with others" : "موارد به اشتراک گذاشته شده با دیگران", + "Public file share" : "اشتراک عمومی پرونده", + "Publicly shared file." : "پرونده بصورت عمومی به اشتراک گذاشته شده است", + "No file" : "بدون پرونده", + "Public share" : "سهم عمومی", + "Publicly shared files." : "پرونده ها بصورت عمومی به اشتراک گذاشته شده اند", + "Overview of shared files." : "نمای کلی پرونده های به اشتراک گذاشته شده", + "No shares" : "اشتراک گذاری وجود ندارد", + "Files and folders you shared or have been shared with you will show up here" : "Files and folders you shared or have been shared with you will show up here", + "Shared with you" : "موارد به اشتراک گذاشته شده با شما", + "List of files that are shared with you." : "لیست پرونده هایی که با شما به اشتراک گذاشته شده است.", + "Nothing shared with you yet" : "هیچ موردی با شما به اشتراک گذاشته نشده است", + "Files and folders others shared with you will show up here" : "Files and folders others shared with you will show up here", + "List of files that you shared with others." : "لیست پرونده هایی که شما با دیگران به اشتراک گذاشته اید.", + "Nothing shared yet" : "هیچ موردی تاکنون به اشتراک گذاشته نشده است", + "Files and folders you shared will show up here" : "Files and folders you shared will show up here", + "Shared by link" : "اشتراک گذاشته شده از طریق لینک", + "List of files that are shared by link." : "List of files that are shared by link.", + "No shared links" : "هیچ لینک اشتراکگذاری وجود ندارد", + "Files and folders you shared by link will show up here" : "Files and folders you shared by link will show up here", + "File requests" : "درخواست پرونده", + "Deleted shares" : "اشتراک گذاری های حذف شده", + "List of shares you left." : "List of shares you left.", + "No deleted shares" : "اشتراک گذاری های حذف نشده", + "Shares you have left will show up here" : "Shares you have left will show up here", + "Pending shares" : "اشتراک در حال انتظار ", + "List of unapproved shares." : "List of unapproved shares.", + "No pending shares" : "بدون اشتراک در حال انتظار", + "Shares you have received but not approved will show up here" : "Shares you have received but not approved will show up here", + "Error updating the share: {errorMessage}" : "Error updating the share: {errorMessage}", + "Error updating the share" : "خطایی در به روزرسانی اشتراک", + "File \"{path}\" has been unshared" : "File \"{path}\" has been unshared", + "Folder \"{path}\" has been unshared" : "Folder \"{path}\" has been unshared", + "Shared by" : "اشتراک گذاشته شده به وسیله", + "Shared with" : "مشترک با", + "Password created successfully" : "Password created successfully", + "Error generating password from password policy" : "Error generating password from password policy", + "Share not found" : "اشتراک گذاری یافت نشد", + "Back to %s" : "Back to %s", + "Add to your Nextcloud" : "به نکستکلود خود اضافه کنید", + "Waiting…" : "منتظر باشید ...", + "error" : "خطا", + "finished" : "تمام شد", + "This will stop your current uploads." : "با این کار آپلودهای فعلی شما متوقف خواهد شد.", + "Move or copy" : "انتقال یا کپی", + "You can upload into this folder" : "میتوانید در این پوشه آپلود کنید", + "Show list view" : "نمایش فهرستی", + "Show grid view" : "نمایش شبکهای", + "Invalid server URL" : "ادرس سرور نامعتبر", + "Failed to add the public link to your Nextcloud" : "خطا در افزودن ادرس عمومی به نکس کلود شما", + "Download all files" : "دانلود همه فایل ها", + "Link copied to clipboard" : "پیوند در حافظه موقت کپی شده", + "Copy to clipboard" : "کپی به کلیپ بورد", + "Copy internal link to clipboard" : "Copy internal link to clipboard", + "Copy public link of \"{title}\" to clipboard" : "Copy public link of \"{title}\" to clipboard", + "Search globally" : "در سطح جهان جستجو کنید", + "Search for share recipients" : "Search for share recipients", + "No recommendations. Start typing." : "هیچ توصیه ای نیست شروع به تایپ کنید.", + "Enter your name" : "اسمت را وارد کن", + "Share note" : "یادداشت اشتراک گذاری", + "Upload files to %s" : "بارگیری پرونده ها به%s", + "Note" : "یادداشت", + "Select or drop files" : "پرونده ها را انتخاب یا رها کنید", + "Uploading files" : "پرونده های در حال بارگذاری", + "Uploaded files:" : "پرونده های بارگذاری شده:", + "By uploading files, you agree to the %1$sterms of service%2$s." : "%2$sبا بارگذاری پرونده ها ، شما با %1$sشرایط خدمات موافقت می کنید", + "Name" : "نام", + "Filename must not be empty." : "Filename must not be empty." +},"pluralForm" :"nplurals=2; plural=(n > 1);" +}
\ No newline at end of file diff --git a/apps/files_sharing/l10n/it.js b/apps/files_sharing/l10n/it.js index 2a5dca27524..f10bd3a4e8e 100644 --- a/apps/files_sharing/l10n/it.js +++ b/apps/files_sharing/l10n/it.js @@ -202,6 +202,7 @@ OC.L10N.register( "Unshare" : "Rimuovi condivisione", "Cannot copy, please copy the link manually" : "Impossibile copiare, copia il collegamento manualmente", "Copy internal link" : "Copia collegamento interno", + "For people who already have access" : "Per le persone che hanno già accesso", "Internal link" : "Collegamento interno", "{shareWith} by {initiator}" : "{shareWith} da {initiator}", "Shared via link by {initiator}" : "Condiviso tramite collegamento da {initiator}", @@ -212,6 +213,7 @@ OC.L10N.register( "Share link ({index})" : "Condividi collegamento ({index})", "Create public link" : "Crea collegamento pubblico", "Actions for \"{title}\"" : "Azioni per \"{title}\"", + "Copy public link of \"{title}\"" : "Copia il link pubblico di \"{title}\"", "Error, please enter proper password and/or expiration date" : "Errore, digita la password corretta e/o la data di scadenza", "Link share created" : "Collegamento alla condivisione creato ", "Error while creating the share" : "Errore durante la creazione della condivisione", @@ -301,6 +303,14 @@ OC.L10N.register( "Unable to fetch inherited shares" : "Impossibile recuperare le condivisioni ereditate", "Link shares" : "Condivisioni dei link", "Shares" : "Condivisioni", + "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Condividi i file all'interno della tua organizzazione. Anche i destinatari che possono già visualizzare il file possono utilizzare questo link per accedervi facilmente.", + "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Condividi file con altri utenti esterni alla tua organizzazione tramite link pubblici e indirizzi email. Puoi anche condividere file con account Nextcloud su altre istanze utilizzando il loro ID cloud federato.", + "Shares from apps or other sources which are not included in internal or external shares." : "Condivisioni da app o altre fonti non incluse nelle condivisioni interne o esterne.", + "Type names, teams, federated cloud IDs" : "Digita nomi, team, ID cloud federati", + "Type names or teams" : "Digita nomi o team", + "Type a federated cloud ID" : "Digita un ID cloud federato", + "Type an email" : "Digita un'email", + "Type an email or federated cloud ID" : "Digita un indirizzo email o un ID cloud federato", "Unable to load the shares list" : "Impossibile caricare l'elenco delle condivisioni", "Expires {relativetime}" : "Scade il {relativetime}", "this share just expired." : "questa condivisione è appena scaduta.", @@ -319,6 +329,7 @@ OC.L10N.register( "Shared" : "Condiviso", "Shared by {ownerDisplayName}" : "Condiviso da {ownerDisplayName}", "Shared multiple times with different people" : "Condiviso più volte con diverse persone", + "Sharing options" : "Opzioni di condivisione", "Shared with others" : "Condivisi con altri", "Create file request" : "Crea richiesta di file", "Upload files to {foldername}" : "Carica i file su {foldername}", diff --git a/apps/files_sharing/l10n/it.json b/apps/files_sharing/l10n/it.json index 32cd96b28db..a4086431a3b 100644 --- a/apps/files_sharing/l10n/it.json +++ b/apps/files_sharing/l10n/it.json @@ -200,6 +200,7 @@ "Unshare" : "Rimuovi condivisione", "Cannot copy, please copy the link manually" : "Impossibile copiare, copia il collegamento manualmente", "Copy internal link" : "Copia collegamento interno", + "For people who already have access" : "Per le persone che hanno già accesso", "Internal link" : "Collegamento interno", "{shareWith} by {initiator}" : "{shareWith} da {initiator}", "Shared via link by {initiator}" : "Condiviso tramite collegamento da {initiator}", @@ -210,6 +211,7 @@ "Share link ({index})" : "Condividi collegamento ({index})", "Create public link" : "Crea collegamento pubblico", "Actions for \"{title}\"" : "Azioni per \"{title}\"", + "Copy public link of \"{title}\"" : "Copia il link pubblico di \"{title}\"", "Error, please enter proper password and/or expiration date" : "Errore, digita la password corretta e/o la data di scadenza", "Link share created" : "Collegamento alla condivisione creato ", "Error while creating the share" : "Errore durante la creazione della condivisione", @@ -299,6 +301,14 @@ "Unable to fetch inherited shares" : "Impossibile recuperare le condivisioni ereditate", "Link shares" : "Condivisioni dei link", "Shares" : "Condivisioni", + "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Condividi i file all'interno della tua organizzazione. Anche i destinatari che possono già visualizzare il file possono utilizzare questo link per accedervi facilmente.", + "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Condividi file con altri utenti esterni alla tua organizzazione tramite link pubblici e indirizzi email. Puoi anche condividere file con account Nextcloud su altre istanze utilizzando il loro ID cloud federato.", + "Shares from apps or other sources which are not included in internal or external shares." : "Condivisioni da app o altre fonti non incluse nelle condivisioni interne o esterne.", + "Type names, teams, federated cloud IDs" : "Digita nomi, team, ID cloud federati", + "Type names or teams" : "Digita nomi o team", + "Type a federated cloud ID" : "Digita un ID cloud federato", + "Type an email" : "Digita un'email", + "Type an email or federated cloud ID" : "Digita un indirizzo email o un ID cloud federato", "Unable to load the shares list" : "Impossibile caricare l'elenco delle condivisioni", "Expires {relativetime}" : "Scade il {relativetime}", "this share just expired." : "questa condivisione è appena scaduta.", @@ -317,6 +327,7 @@ "Shared" : "Condiviso", "Shared by {ownerDisplayName}" : "Condiviso da {ownerDisplayName}", "Shared multiple times with different people" : "Condiviso più volte con diverse persone", + "Sharing options" : "Opzioni di condivisione", "Shared with others" : "Condivisi con altri", "Create file request" : "Crea richiesta di file", "Upload files to {foldername}" : "Carica i file su {foldername}", diff --git a/apps/files_sharing/l10n/pl.js b/apps/files_sharing/l10n/pl.js index 0193148a3c4..0bca4bd37e5 100644 --- a/apps/files_sharing/l10n/pl.js +++ b/apps/files_sharing/l10n/pl.js @@ -202,6 +202,7 @@ OC.L10N.register( "Unshare" : "Zatrzymaj udostępnianie", "Cannot copy, please copy the link manually" : "Nie można skopiować, spróbuj skopiować link ręcznie", "Copy internal link" : "Kopiuj link wewnętrzny", + "For people who already have access" : "Dla osób, które już mają dostęp", "Internal link" : "Link wewnętrzny", "{shareWith} by {initiator}" : "{shareWith} przez {initiator}", "Shared via link by {initiator}" : "Udostępnione przez link od {initiator}", @@ -212,6 +213,7 @@ OC.L10N.register( "Share link ({index})" : "Udostępnij link ({index})", "Create public link" : "Utwórz link publiczny", "Actions for \"{title}\"" : "Akcje dla \"{title}\"", + "Copy public link of \"{title}\"" : "Kopiuj publiczny link do \"{title}\"", "Error, please enter proper password and/or expiration date" : "Błąd, wprowadź prawidłowe hasło i/lub datę ważności", "Link share created" : "Utworzony link udostępniania", "Error while creating the share" : "Błąd podczas tworzenia udostępniania", @@ -256,6 +258,7 @@ OC.L10N.register( "Successfully uploaded files" : "Pomyślnie przesłano pliki", "View terms of service" : "Zobacz warunki korzystania z usługi", "Terms of service" : "Warunki usługi", + "Share with {user}" : "Udostępnij {user}", "Share with email {email}" : "Udostępnij na e-mail {email}", "Share with group" : "Udostępnij grupie", "Share in conversation" : "Udostępnij w rozmowie", @@ -300,6 +303,14 @@ OC.L10N.register( "Unable to fetch inherited shares" : "Nie można pobrać odziedziczonych udostępnień", "Link shares" : "Udostępnianie linków", "Shares" : "Udostępnienia", + "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Udostępniaj pliki w swojej organizacji. Odbiorcy, którzy już mogą wyświetlać plik, mogą także użyć tego linku dla łatwiejszego dostępu.", + "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Udostępniaj pliki osobom spoza organizacji poprzez publiczne linki i adresy e-mail. Możesz także udostępniać na konta Nextcloud w innych instancjach, używając ich federacyjnego identyfikatora chmury.", + "Shares from apps or other sources which are not included in internal or external shares." : "Udostępnienia z aplikacji lub innych źródeł, które nie są uwzględnione w udostępnieniach wewnętrznych lub zewnętrznych.", + "Type names, teams, federated cloud IDs" : "Wpisz nazwy, zespoły, identyfikatory federacyjnej chmury", + "Type names or teams" : "Wpisz nazwy lub zespoły", + "Type a federated cloud ID" : "Wpisz identyfikator federacyjnej chmury", + "Type an email" : "Wpisz adres e-mail", + "Type an email or federated cloud ID" : "Wpisz adres e-mail lub identyfikator federacyjnej chmury", "Unable to load the shares list" : "Nie można pobrać listy udostępnień", "Expires {relativetime}" : "Wygasa {relativetime}", "this share just expired." : "te udostępnienie właśnie wygasło.", diff --git a/apps/files_sharing/l10n/pl.json b/apps/files_sharing/l10n/pl.json index 8910e0cc14d..9094487ffe2 100644 --- a/apps/files_sharing/l10n/pl.json +++ b/apps/files_sharing/l10n/pl.json @@ -200,6 +200,7 @@ "Unshare" : "Zatrzymaj udostępnianie", "Cannot copy, please copy the link manually" : "Nie można skopiować, spróbuj skopiować link ręcznie", "Copy internal link" : "Kopiuj link wewnętrzny", + "For people who already have access" : "Dla osób, które już mają dostęp", "Internal link" : "Link wewnętrzny", "{shareWith} by {initiator}" : "{shareWith} przez {initiator}", "Shared via link by {initiator}" : "Udostępnione przez link od {initiator}", @@ -210,6 +211,7 @@ "Share link ({index})" : "Udostępnij link ({index})", "Create public link" : "Utwórz link publiczny", "Actions for \"{title}\"" : "Akcje dla \"{title}\"", + "Copy public link of \"{title}\"" : "Kopiuj publiczny link do \"{title}\"", "Error, please enter proper password and/or expiration date" : "Błąd, wprowadź prawidłowe hasło i/lub datę ważności", "Link share created" : "Utworzony link udostępniania", "Error while creating the share" : "Błąd podczas tworzenia udostępniania", @@ -254,6 +256,7 @@ "Successfully uploaded files" : "Pomyślnie przesłano pliki", "View terms of service" : "Zobacz warunki korzystania z usługi", "Terms of service" : "Warunki usługi", + "Share with {user}" : "Udostępnij {user}", "Share with email {email}" : "Udostępnij na e-mail {email}", "Share with group" : "Udostępnij grupie", "Share in conversation" : "Udostępnij w rozmowie", @@ -298,6 +301,14 @@ "Unable to fetch inherited shares" : "Nie można pobrać odziedziczonych udostępnień", "Link shares" : "Udostępnianie linków", "Shares" : "Udostępnienia", + "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Udostępniaj pliki w swojej organizacji. Odbiorcy, którzy już mogą wyświetlać plik, mogą także użyć tego linku dla łatwiejszego dostępu.", + "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Udostępniaj pliki osobom spoza organizacji poprzez publiczne linki i adresy e-mail. Możesz także udostępniać na konta Nextcloud w innych instancjach, używając ich federacyjnego identyfikatora chmury.", + "Shares from apps or other sources which are not included in internal or external shares." : "Udostępnienia z aplikacji lub innych źródeł, które nie są uwzględnione w udostępnieniach wewnętrznych lub zewnętrznych.", + "Type names, teams, federated cloud IDs" : "Wpisz nazwy, zespoły, identyfikatory federacyjnej chmury", + "Type names or teams" : "Wpisz nazwy lub zespoły", + "Type a federated cloud ID" : "Wpisz identyfikator federacyjnej chmury", + "Type an email" : "Wpisz adres e-mail", + "Type an email or federated cloud ID" : "Wpisz adres e-mail lub identyfikator federacyjnej chmury", "Unable to load the shares list" : "Nie można pobrać listy udostępnień", "Expires {relativetime}" : "Wygasa {relativetime}", "this share just expired." : "te udostępnienie właśnie wygasło.", diff --git a/apps/files_sharing/l10n/uk.js b/apps/files_sharing/l10n/uk.js index 2063e55d298..9b3f841b980 100644 --- a/apps/files_sharing/l10n/uk.js +++ b/apps/files_sharing/l10n/uk.js @@ -202,6 +202,7 @@ OC.L10N.register( "Unshare" : "Закрити доступ", "Cannot copy, please copy the link manually" : "Неможливо скопіювати, скопіюйте посилання вручну", "Copy internal link" : "Копіювати посилання", + "For people who already have access" : "Для людей, які вже мають доступ", "Internal link" : "Внутрішнє посилання", "{shareWith} by {initiator}" : "{shareWith} від {initiator}", "Shared via link by {initiator}" : "Спільний доступ через посилання від {initiator}", @@ -212,6 +213,7 @@ OC.L10N.register( "Share link ({index})" : "Поділитися посиланням ({index})", "Create public link" : "Створити публічне посилання", "Actions for \"{title}\"" : "Дія для \"{title}\"", + "Copy public link of \"{title}\"" : "Скопіювати публічне посилання на «{title}»", "Error, please enter proper password and/or expiration date" : "Помилка. Будь ласка, зазначте правильний пароль та/або термін дії", "Link share created" : "Створено посилання на спільний ресурс", "Error while creating the share" : "Помилка під час створення спільного ресурсу", @@ -256,6 +258,7 @@ OC.L10N.register( "Successfully uploaded files" : "Успішно завантажено файли", "View terms of service" : "Переглянути умови користування.", "Terms of service" : "Умови використання", + "Share with {user}" : "Поділитися з {user}", "Share with email {email}" : "Поділитися через ел.пошту {email}", "Share with group" : "Поділитися з групою", "Share in conversation" : "Поширити в розмові ", @@ -300,6 +303,14 @@ OC.L10N.register( "Unable to fetch inherited shares" : "Неможливо отримати успадковані спільні ресурси", "Link shares" : "Посилання на спільні ресурси", "Shares" : "Спільні", + "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Діліться файлами всередині своєї організації. Одержувачі, які вже мають доступ до файлу, також можуть скористатися цим посиланням для зручного доступу.", + "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Діліться файлами з іншими користувачами поза вашою організацією за допомогою публічних посилань та електронних адрес. Ви також можете ділитися файлами з обліковими записами Nextcloud на інших серверах, використовуючи їх федеративний хмарний ідентифікатор.", + "Shares from apps or other sources which are not included in internal or external shares." : "Акції з додатків або інших джерел, які не включені до внутрішніх або зовнішніх акцій.", + "Type names, teams, federated cloud IDs" : "Назви типів, команди, ідентифікатори федеративної хмари", + "Type names or teams" : "Назви типів або команд", + "Type a federated cloud ID" : "Введіть ідентифікатор федеративної хмари", + "Type an email" : "Введіть адресу електронної пошти", + "Type an email or federated cloud ID" : "Введіть адресу електронної пошти або ідентифікатор федеративної хмари", "Unable to load the shares list" : "Не вдалося завантажити список спільних ресурсів", "Expires {relativetime}" : "Термін дії закінчується {relativetime}", "this share just expired." : "термін дії спільного доступу вичерпано.", @@ -318,6 +329,7 @@ OC.L10N.register( "Shared" : "Спільні", "Shared by {ownerDisplayName}" : "{ownerDisplayName} надав(-ла) доступ", "Shared multiple times with different people" : "Поділилися кілька разів з різними людьми", + "Sharing options" : "Параметри спільного доступу", "Shared with others" : "Ви поділилися", "Create file request" : "Створити запит на файл", "Upload files to {foldername}" : "Завантажити файли до {foldername}", diff --git a/apps/files_sharing/l10n/uk.json b/apps/files_sharing/l10n/uk.json index 0b889d06837..0e51b0f7716 100644 --- a/apps/files_sharing/l10n/uk.json +++ b/apps/files_sharing/l10n/uk.json @@ -200,6 +200,7 @@ "Unshare" : "Закрити доступ", "Cannot copy, please copy the link manually" : "Неможливо скопіювати, скопіюйте посилання вручну", "Copy internal link" : "Копіювати посилання", + "For people who already have access" : "Для людей, які вже мають доступ", "Internal link" : "Внутрішнє посилання", "{shareWith} by {initiator}" : "{shareWith} від {initiator}", "Shared via link by {initiator}" : "Спільний доступ через посилання від {initiator}", @@ -210,6 +211,7 @@ "Share link ({index})" : "Поділитися посиланням ({index})", "Create public link" : "Створити публічне посилання", "Actions for \"{title}\"" : "Дія для \"{title}\"", + "Copy public link of \"{title}\"" : "Скопіювати публічне посилання на «{title}»", "Error, please enter proper password and/or expiration date" : "Помилка. Будь ласка, зазначте правильний пароль та/або термін дії", "Link share created" : "Створено посилання на спільний ресурс", "Error while creating the share" : "Помилка під час створення спільного ресурсу", @@ -254,6 +256,7 @@ "Successfully uploaded files" : "Успішно завантажено файли", "View terms of service" : "Переглянути умови користування.", "Terms of service" : "Умови використання", + "Share with {user}" : "Поділитися з {user}", "Share with email {email}" : "Поділитися через ел.пошту {email}", "Share with group" : "Поділитися з групою", "Share in conversation" : "Поширити в розмові ", @@ -298,6 +301,14 @@ "Unable to fetch inherited shares" : "Неможливо отримати успадковані спільні ресурси", "Link shares" : "Посилання на спільні ресурси", "Shares" : "Спільні", + "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "Діліться файлами всередині своєї організації. Одержувачі, які вже мають доступ до файлу, також можуть скористатися цим посиланням для зручного доступу.", + "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "Діліться файлами з іншими користувачами поза вашою організацією за допомогою публічних посилань та електронних адрес. Ви також можете ділитися файлами з обліковими записами Nextcloud на інших серверах, використовуючи їх федеративний хмарний ідентифікатор.", + "Shares from apps or other sources which are not included in internal or external shares." : "Акції з додатків або інших джерел, які не включені до внутрішніх або зовнішніх акцій.", + "Type names, teams, federated cloud IDs" : "Назви типів, команди, ідентифікатори федеративної хмари", + "Type names or teams" : "Назви типів або команд", + "Type a federated cloud ID" : "Введіть ідентифікатор федеративної хмари", + "Type an email" : "Введіть адресу електронної пошти", + "Type an email or federated cloud ID" : "Введіть адресу електронної пошти або ідентифікатор федеративної хмари", "Unable to load the shares list" : "Не вдалося завантажити список спільних ресурсів", "Expires {relativetime}" : "Термін дії закінчується {relativetime}", "this share just expired." : "термін дії спільного доступу вичерпано.", @@ -316,6 +327,7 @@ "Shared" : "Спільні", "Shared by {ownerDisplayName}" : "{ownerDisplayName} надав(-ла) доступ", "Shared multiple times with different people" : "Поділилися кілька разів з різними людьми", + "Sharing options" : "Параметри спільного доступу", "Shared with others" : "Ви поділилися", "Create file request" : "Створити запит на файл", "Upload files to {foldername}" : "Завантажити файли до {foldername}", diff --git a/apps/files_sharing/l10n/zh_HK.js b/apps/files_sharing/l10n/zh_HK.js index ed6f9317368..78b0875a2bc 100644 --- a/apps/files_sharing/l10n/zh_HK.js +++ b/apps/files_sharing/l10n/zh_HK.js @@ -202,6 +202,7 @@ OC.L10N.register( "Unshare" : "撤回分享", "Cannot copy, please copy the link manually" : "無法複製,請手動複製連結", "Copy internal link" : "複製內部連結", + "For people who already have access" : "對於已有存取權限的人", "Internal link" : "內部連結", "{shareWith} by {initiator}" : "{initiator} 分享了 {shareWith}", "Shared via link by {initiator}" : "由 {initiator} 透過連結分享", @@ -212,6 +213,7 @@ OC.L10N.register( "Share link ({index})" : "分享連結({index})", "Create public link" : "建立公共連結", "Actions for \"{title}\"" : "“{title}” 的操作", + "Copy public link of \"{title}\"" : "複製「{title}」的公開連結", "Error, please enter proper password and/or expiration date" : "錯誤,請輸入正確的密碼和/或有效期", "Link share created" : "創建了連結分享", "Error while creating the share" : "創建分享出錯", @@ -301,6 +303,14 @@ OC.L10N.register( "Unable to fetch inherited shares" : "無法獲取繼承的分享", "Link shares" : "連結分享", "Shares" : "分享", + "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "在您的組織內部分享檔案。已經可以檢視檔案的收件者也可以使用此連結以方便存取。", + "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "透過公開連結與電子郵件地址與組織外的其他人分享檔案。您也可以使用其他站台上的聯邦雲端 ID 將檔案分享至 Nextcloud 帳號。", + "Shares from apps or other sources which are not included in internal or external shares." : "來自應用程式或其他來源的分享,不包括在內部或外部分享中。", + "Type names, teams, federated cloud IDs" : "輸入名稱、團隊、聯邦雲端 ID", + "Type names or teams" : "輸入名稱或團隊", + "Type a federated cloud ID" : "輸入聯邦雲端 ID", + "Type an email" : "輸入電郵地址", + "Type an email or federated cloud ID" : "輸入電郵地址或聯邦雲端 ID", "Unable to load the shares list" : "無法載入分享清單", "Expires {relativetime}" : "有效期至 {relativetime}", "this share just expired." : "此分享剛過期。", diff --git a/apps/files_sharing/l10n/zh_HK.json b/apps/files_sharing/l10n/zh_HK.json index e2ecf320a03..9e280ba8256 100644 --- a/apps/files_sharing/l10n/zh_HK.json +++ b/apps/files_sharing/l10n/zh_HK.json @@ -200,6 +200,7 @@ "Unshare" : "撤回分享", "Cannot copy, please copy the link manually" : "無法複製,請手動複製連結", "Copy internal link" : "複製內部連結", + "For people who already have access" : "對於已有存取權限的人", "Internal link" : "內部連結", "{shareWith} by {initiator}" : "{initiator} 分享了 {shareWith}", "Shared via link by {initiator}" : "由 {initiator} 透過連結分享", @@ -210,6 +211,7 @@ "Share link ({index})" : "分享連結({index})", "Create public link" : "建立公共連結", "Actions for \"{title}\"" : "“{title}” 的操作", + "Copy public link of \"{title}\"" : "複製「{title}」的公開連結", "Error, please enter proper password and/or expiration date" : "錯誤,請輸入正確的密碼和/或有效期", "Link share created" : "創建了連結分享", "Error while creating the share" : "創建分享出錯", @@ -299,6 +301,14 @@ "Unable to fetch inherited shares" : "無法獲取繼承的分享", "Link shares" : "連結分享", "Shares" : "分享", + "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "在您的組織內部分享檔案。已經可以檢視檔案的收件者也可以使用此連結以方便存取。", + "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "透過公開連結與電子郵件地址與組織外的其他人分享檔案。您也可以使用其他站台上的聯邦雲端 ID 將檔案分享至 Nextcloud 帳號。", + "Shares from apps or other sources which are not included in internal or external shares." : "來自應用程式或其他來源的分享,不包括在內部或外部分享中。", + "Type names, teams, federated cloud IDs" : "輸入名稱、團隊、聯邦雲端 ID", + "Type names or teams" : "輸入名稱或團隊", + "Type a federated cloud ID" : "輸入聯邦雲端 ID", + "Type an email" : "輸入電郵地址", + "Type an email or federated cloud ID" : "輸入電郵地址或聯邦雲端 ID", "Unable to load the shares list" : "無法載入分享清單", "Expires {relativetime}" : "有效期至 {relativetime}", "this share just expired." : "此分享剛過期。", diff --git a/apps/files_sharing/l10n/zh_TW.js b/apps/files_sharing/l10n/zh_TW.js index 3d4ea0dd7b8..a4490796ddf 100644 --- a/apps/files_sharing/l10n/zh_TW.js +++ b/apps/files_sharing/l10n/zh_TW.js @@ -202,6 +202,7 @@ OC.L10N.register( "Unshare" : "取消分享", "Cannot copy, please copy the link manually" : "無法複製,請手動複製連結", "Copy internal link" : "複製內部連結", + "For people who already have access" : "對於已有存取權限的人", "Internal link" : "內部連結", "{shareWith} by {initiator}" : "{initiator} {shareWith}", "Shared via link by {initiator}" : "{initiator} 透過連結分享", @@ -212,6 +213,7 @@ OC.L10N.register( "Share link ({index})" : "分享連結 ({index})", "Create public link" : "建立公開連結", "Actions for \"{title}\"" : "「{title}」的動作", + "Copy public link of \"{title}\"" : "複製「{title}」的公開連結", "Error, please enter proper password and/or expiration date" : "錯誤,請輸入適當的密碼及/或到期日", "Link share created" : "建立了連結分享", "Error while creating the share" : "建立分享時發生錯誤", @@ -301,6 +303,14 @@ OC.L10N.register( "Unable to fetch inherited shares" : "無法擷取繼承的分享", "Link shares" : "連結分享", "Shares" : "分享", + "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "在您的組織內部分享檔案。已經可以檢視檔案的收件者也可以使用此連結以方便存取。", + "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "透過公開連結與電子郵件地址與組織外的其他人分享檔案。您也可以使用其他站台上的聯邦雲端 ID 將檔案分享至 Nextcloud 帳號。", + "Shares from apps or other sources which are not included in internal or external shares." : "來自應用程式或其他來源的分享,不包括在內部或外部分享中。", + "Type names, teams, federated cloud IDs" : "輸入名稱、團隊、聯邦雲端 ID", + "Type names or teams" : "輸入名稱或團隊", + "Type a federated cloud ID" : "輸入聯邦雲端 ID", + "Type an email" : "輸入電子郵件", + "Type an email or federated cloud ID" : "輸入電子郵件或聯邦雲端 ID", "Unable to load the shares list" : "無法載入分享列表", "Expires {relativetime}" : "過期於 {relativetime}", "this share just expired." : "此分享剛過期。", @@ -319,6 +329,7 @@ OC.L10N.register( "Shared" : "已分享", "Shared by {ownerDisplayName}" : "{ownerDisplayName} 分享", "Shared multiple times with different people" : "與不同的人多次分享", + "Sharing options" : "分享選項", "Shared with others" : "與其他人分享", "Create file request" : "建立檔案請求", "Upload files to {foldername}" : "上傳檔案至 {foldername}", diff --git a/apps/files_sharing/l10n/zh_TW.json b/apps/files_sharing/l10n/zh_TW.json index 93bfc1e7c98..883ff45d597 100644 --- a/apps/files_sharing/l10n/zh_TW.json +++ b/apps/files_sharing/l10n/zh_TW.json @@ -200,6 +200,7 @@ "Unshare" : "取消分享", "Cannot copy, please copy the link manually" : "無法複製,請手動複製連結", "Copy internal link" : "複製內部連結", + "For people who already have access" : "對於已有存取權限的人", "Internal link" : "內部連結", "{shareWith} by {initiator}" : "{initiator} {shareWith}", "Shared via link by {initiator}" : "{initiator} 透過連結分享", @@ -210,6 +211,7 @@ "Share link ({index})" : "分享連結 ({index})", "Create public link" : "建立公開連結", "Actions for \"{title}\"" : "「{title}」的動作", + "Copy public link of \"{title}\"" : "複製「{title}」的公開連結", "Error, please enter proper password and/or expiration date" : "錯誤,請輸入適當的密碼及/或到期日", "Link share created" : "建立了連結分享", "Error while creating the share" : "建立分享時發生錯誤", @@ -299,6 +301,14 @@ "Unable to fetch inherited shares" : "無法擷取繼承的分享", "Link shares" : "連結分享", "Shares" : "分享", + "Share files within your organization. Recipients who can already view the file can also use this link for easy access." : "在您的組織內部分享檔案。已經可以檢視檔案的收件者也可以使用此連結以方便存取。", + "Share files with others outside your organization via public links and email addresses. You can also share to Nextcloud accounts on other instances using their federated cloud ID." : "透過公開連結與電子郵件地址與組織外的其他人分享檔案。您也可以使用其他站台上的聯邦雲端 ID 將檔案分享至 Nextcloud 帳號。", + "Shares from apps or other sources which are not included in internal or external shares." : "來自應用程式或其他來源的分享,不包括在內部或外部分享中。", + "Type names, teams, federated cloud IDs" : "輸入名稱、團隊、聯邦雲端 ID", + "Type names or teams" : "輸入名稱或團隊", + "Type a federated cloud ID" : "輸入聯邦雲端 ID", + "Type an email" : "輸入電子郵件", + "Type an email or federated cloud ID" : "輸入電子郵件或聯邦雲端 ID", "Unable to load the shares list" : "無法載入分享列表", "Expires {relativetime}" : "過期於 {relativetime}", "this share just expired." : "此分享剛過期。", @@ -317,6 +327,7 @@ "Shared" : "已分享", "Shared by {ownerDisplayName}" : "{ownerDisplayName} 分享", "Shared multiple times with different people" : "與不同的人多次分享", + "Sharing options" : "分享選項", "Shared with others" : "與其他人分享", "Create file request" : "建立檔案請求", "Upload files to {foldername}" : "上傳檔案至 {foldername}", diff --git a/apps/files_sharing/lib/Capabilities.php b/apps/files_sharing/lib/Capabilities.php index cbb9b5cd2f2..06aa1271c8f 100644 --- a/apps/files_sharing/lib/Capabilities.php +++ b/apps/files_sharing/lib/Capabilities.php @@ -7,9 +7,11 @@ */ namespace OCA\Files_Sharing; +use OC\Core\AppInfo\ConfigLexicon; use OCP\App\IAppManager; use OCP\Capabilities\ICapability; use OCP\Constants; +use OCP\IAppConfig; use OCP\IConfig; use OCP\Share\IManager; @@ -21,6 +23,7 @@ use OCP\Share\IManager; class Capabilities implements ICapability { public function __construct( private IConfig $config, + private readonly IAppConfig $appConfig, private IManager $shareManager, private IAppManager $appManager, ) { @@ -111,7 +114,7 @@ class Capabilities implements ICapability { if ($public['password']['enforced']) { $public['password']['askForOptionalPassword'] = false; } else { - $public['password']['askForOptionalPassword'] = ($this->config->getAppValue('core', 'shareapi_enable_link_password_by_default', 'no') === 'yes'); + $public['password']['askForOptionalPassword'] = $this->appConfig->getValueBool('core', ConfigLexicon::SHARE_LINK_PASSWORD_DEFAULT); } $public['expire_date'] = []; diff --git a/apps/files_sharing/src/services/TabSections.js b/apps/files_sharing/src/services/TabSections.js index 8578f8f08d5..ab1237e7044 100644 --- a/apps/files_sharing/src/services/TabSections.js +++ b/apps/files_sharing/src/services/TabSections.js @@ -3,6 +3,14 @@ * SPDX-License-Identifier: AGPL-3.0-or-later */ +/** + * Callback to render a section in the sharing tab. + * + * @callback registerSectionCallback + * @param {undefined} el - Deprecated and will always be undefined (formerly the root element) + * @param {object} fileInfo - File info object + */ + export default class TabSections { _sections diff --git a/apps/files_sharing/src/views/SharingTab.vue b/apps/files_sharing/src/views/SharingTab.vue index bba8f0b2edb..2ed44a4b5ad 100644 --- a/apps/files_sharing/src/views/SharingTab.vue +++ b/apps/files_sharing/src/views/SharingTab.vue @@ -127,11 +127,10 @@ </NcPopover> </div> <!-- additional entries, use it with cautious --> - <div v-for="(section, index) in sections" - :ref="'section-' + index" + <div v-for="(component, index) in sectionComponents" :key="index" class="sharingTab__additionalContent"> - <component :is="section($refs['section-'+index], fileInfo)" :file-info="fileInfo" /> + <component :is="component" :file-info="fileInfo" /> </div> <!-- projects (deprecated as of NC25 (replaced by related_resources) - see instance config "projects.enabled" ; ignore this / remove it / move into own section) --> @@ -286,6 +285,10 @@ export default { // TRANSLATORS: Type as in with a keyboard : t('files_sharing', 'Type an email or federated cloud ID') }, + + sectionComponents() { + return this.sections.map((section) => section(undefined, this.fileInfo)) + }, }, methods: { /** diff --git a/apps/files_sharing/tests/CapabilitiesTest.php b/apps/files_sharing/tests/CapabilitiesTest.php index 2fe221703a5..9a076d7a171 100644 --- a/apps/files_sharing/tests/CapabilitiesTest.php +++ b/apps/files_sharing/tests/CapabilitiesTest.php @@ -56,11 +56,30 @@ class CapabilitiesTest extends \Test\TestCase { * @param (string[])[] $map Map of arguments to return types for the getAppValue function in the mock * @return string[] */ - private function getResults(array $map, bool $federationEnabled = true) { + private function getResults(array $map, array $typedMap = [], bool $federationEnabled = true) { $config = $this->getMockBuilder(IConfig::class)->disableOriginalConstructor()->getMock(); $appManager = $this->getMockBuilder(IAppManager::class)->disableOriginalConstructor()->getMock(); $config->method('getAppValue')->willReturnMap($map); $appManager->method('isEnabledForAnyone')->with('federation')->willReturn($federationEnabled); + + if (empty($typedMap)) { + $appConfig = $this->createMock(IAppConfig::class); + } else { + // hack to help transition from old IConfig to new IAppConfig + $appConfig = $this->getMockBuilder(IAppConfig::class)->disableOriginalConstructor()->getMock(); + $appConfig->expects($this->any())->method('getValueBool')->willReturnCallback(function (...$args) use ($typedMap): bool { + foreach ($typedMap as $entry) { + if ($entry[0] !== $args[0] || $entry[1] !== $args[1]) { + continue; + } + + return $entry[2]; + } + + return false; + }); + } + $shareManager = new Manager( $this->createMock(LoggerInterface::class), $config, @@ -80,9 +99,10 @@ class CapabilitiesTest extends \Test\TestCase { $this->createMock(KnownUserService::class), $this->createMock(ShareDisableChecker::class), $this->createMock(IDateTimeZone::class), - $this->createMock(IAppConfig::class), + $appConfig, ); - $cap = new Capabilities($config, $shareManager, $appManager); + + $cap = new Capabilities($config, $appConfig, $shareManager, $appManager); $result = $this->getFilesSharingPart($cap->getCapabilities()); return $result; } @@ -135,9 +155,11 @@ class CapabilitiesTest extends \Test\TestCase { ['core', 'shareapi_enabled', 'yes', 'yes'], ['core', 'shareapi_allow_links', 'yes', 'yes'], ['core', 'shareapi_enforce_links_password_excluded_groups', '', ''], - ['core', 'shareapi_enforce_links_password', 'no', 'yes'], ]; - $result = $this->getResults($map); + $typedMap = [ + ['core', 'shareapi_enforce_links_password', true], + ]; + $result = $this->getResults($map, $typedMap); $this->assertArrayHasKey('password', $result['public']); $this->assertArrayHasKey('enforced', $result['public']['password']); $this->assertTrue($result['public']['password']['enforced']); @@ -328,7 +350,7 @@ class CapabilitiesTest extends \Test\TestCase { } public function testFederatedSharingDisabled(): void { - $result = $this->getResults([], false); + $result = $this->getResults([], federationEnabled: false); $this->assertArrayHasKey('federation', $result); $this->assertFalse($result['federation']['incoming']); $this->assertFalse($result['federation']['outgoing']); diff --git a/apps/settings/l10n/ar.js b/apps/settings/l10n/ar.js index 2a282cc2633..cfbb4ccf8ef 100644 --- a/apps/settings/l10n/ar.js +++ b/apps/settings/l10n/ar.js @@ -409,6 +409,10 @@ OC.L10N.register( "Excluded groups" : "المجموعات المُستثناة", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "عندما يتم تحديد أو استبعاد المجموعات، فإنها تستخدم المنطق التالي لتحديد ما إذا كان الحساب قد تم فرض المصادقة الثنائية عليه: إذا لم يتم تحديد أي مجموعات، فسيتم تمكين المصادقة الثنائية للجميع باستثناء أعضاء المجموعات المستبعدة. إذا تم تحديد المجموعات، فسيتم تمكين المصادقة الثنائية 2FA لجميع أعضاء هذه المجموعات. إذا كان الحساب موجودًا في مجموعة محددة ومستبعدة، فستكون الأولوية للحساب المحدد و سيتم فرض المصادقة الثنائية.", "Save changes" : "حفظ التعديلات", + "Default" : "التلقائي", + "Registered Deploy daemons list" : "قائمة برامج النشر الخفية المسجلة", + "No Deploy daemons configured" : "لم تتم تهيئة أي برامج نشر خفية", + "Register a custom one or setup from available templates" : "قُم بتسجيل واحدة مخصصة أو قم بتجهيز واحدة باستعمال القوالب المتاحة", "Show details for {appName} app" : "عرض تفاصيل التطبيق {appName} ", "Update to {update}" : "التحديث إلى {update}", "Remove" : "حذف", diff --git a/apps/settings/l10n/ar.json b/apps/settings/l10n/ar.json index 47afaa0ad29..4d84eb0054b 100644 --- a/apps/settings/l10n/ar.json +++ b/apps/settings/l10n/ar.json @@ -407,6 +407,10 @@ "Excluded groups" : "المجموعات المُستثناة", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "عندما يتم تحديد أو استبعاد المجموعات، فإنها تستخدم المنطق التالي لتحديد ما إذا كان الحساب قد تم فرض المصادقة الثنائية عليه: إذا لم يتم تحديد أي مجموعات، فسيتم تمكين المصادقة الثنائية للجميع باستثناء أعضاء المجموعات المستبعدة. إذا تم تحديد المجموعات، فسيتم تمكين المصادقة الثنائية 2FA لجميع أعضاء هذه المجموعات. إذا كان الحساب موجودًا في مجموعة محددة ومستبعدة، فستكون الأولوية للحساب المحدد و سيتم فرض المصادقة الثنائية.", "Save changes" : "حفظ التعديلات", + "Default" : "التلقائي", + "Registered Deploy daemons list" : "قائمة برامج النشر الخفية المسجلة", + "No Deploy daemons configured" : "لم تتم تهيئة أي برامج نشر خفية", + "Register a custom one or setup from available templates" : "قُم بتسجيل واحدة مخصصة أو قم بتجهيز واحدة باستعمال القوالب المتاحة", "Show details for {appName} app" : "عرض تفاصيل التطبيق {appName} ", "Update to {update}" : "التحديث إلى {update}", "Remove" : "حذف", diff --git a/apps/settings/l10n/ast.js b/apps/settings/l10n/ast.js index cb957a8ce65..fc77b0d4a7e 100644 --- a/apps/settings/l10n/ast.js +++ b/apps/settings/l10n/ast.js @@ -220,6 +220,7 @@ OC.L10N.register( "Two-factor authentication is not enforced for members of the following groups." : "L'autenticación en dos pasos nun ye obligatoria pa los miembros de los grupos siguientes.", "Excluded groups" : "Grupos escluyíos", "Save changes" : "Guardar los cambeos", + "Default" : "Por defeutu", "Remove" : "Quitar", "Featured" : "Destacada", "Disable all" : "Desactivar too", diff --git a/apps/settings/l10n/ast.json b/apps/settings/l10n/ast.json index fcf2f77974a..aa5850dde17 100644 --- a/apps/settings/l10n/ast.json +++ b/apps/settings/l10n/ast.json @@ -218,6 +218,7 @@ "Two-factor authentication is not enforced for members of the following groups." : "L'autenticación en dos pasos nun ye obligatoria pa los miembros de los grupos siguientes.", "Excluded groups" : "Grupos escluyíos", "Save changes" : "Guardar los cambeos", + "Default" : "Por defeutu", "Remove" : "Quitar", "Featured" : "Destacada", "Disable all" : "Desactivar too", diff --git a/apps/settings/l10n/bg.js b/apps/settings/l10n/bg.js index acab0d4a5c9..e6a9abf895c 100644 --- a/apps/settings/l10n/bg.js +++ b/apps/settings/l10n/bg.js @@ -167,6 +167,7 @@ OC.L10N.register( "Two-factor authentication is not enforced for members of the following groups." : "Двустепенно удостоверяване не се прилага за членове на следните групи.", "Excluded groups" : "Изключени групи", "Save changes" : "Запиши промените", + "Default" : "По подразбиране", "Update to {update}" : "Актуализирай до {update}", "Remove" : "Премахване", "Featured" : "Препоръчани", diff --git a/apps/settings/l10n/bg.json b/apps/settings/l10n/bg.json index 63adacb540e..7dced04dee8 100644 --- a/apps/settings/l10n/bg.json +++ b/apps/settings/l10n/bg.json @@ -165,6 +165,7 @@ "Two-factor authentication is not enforced for members of the following groups." : "Двустепенно удостоверяване не се прилага за членове на следните групи.", "Excluded groups" : "Изключени групи", "Save changes" : "Запиши промените", + "Default" : "По подразбиране", "Update to {update}" : "Актуализирай до {update}", "Remove" : "Премахване", "Featured" : "Препоръчани", diff --git a/apps/settings/l10n/ca.js b/apps/settings/l10n/ca.js index 00a70f84877..419c3525723 100644 --- a/apps/settings/l10n/ca.js +++ b/apps/settings/l10n/ca.js @@ -407,6 +407,10 @@ OC.L10N.register( "Excluded groups" : "Grups exclosos", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Quan se seleccionen/exclouen grups, utilitzen la lògica següent per determinar si un compte té 2FA aplicat: Si no se selecciona cap grup, 2FA s'habilita per a tothom excepte per als membres dels grups exclosos. Si se seleccionen grups, s'habilita 2FA per a tots els membres d'aquests. Si un compte es troba tant en un grup seleccionat com en un grup exclòs, el seleccionat té prioritat i s'aplica la 2FA.", "Save changes" : "Desa els canvis", + "Default" : "Per defecte", + "Registered Deploy daemons list" : "Llista de dimonis de desplegament registrats", + "No Deploy daemons configured" : "No s'ha configurat cap dimoni de desplegament", + "Register a custom one or setup from available templates" : "Registreu-ne un personalitzat o configureu-ne a partir de les plantilles disponibles", "Show details for {appName} app" : "Mostra els detalls de l'aplicació {appName}", "Update to {update}" : "Actualitza a {update}", "Remove" : "Suprimeix", diff --git a/apps/settings/l10n/ca.json b/apps/settings/l10n/ca.json index 65c3dcb9e2a..89c397c4530 100644 --- a/apps/settings/l10n/ca.json +++ b/apps/settings/l10n/ca.json @@ -405,6 +405,10 @@ "Excluded groups" : "Grups exclosos", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Quan se seleccionen/exclouen grups, utilitzen la lògica següent per determinar si un compte té 2FA aplicat: Si no se selecciona cap grup, 2FA s'habilita per a tothom excepte per als membres dels grups exclosos. Si se seleccionen grups, s'habilita 2FA per a tots els membres d'aquests. Si un compte es troba tant en un grup seleccionat com en un grup exclòs, el seleccionat té prioritat i s'aplica la 2FA.", "Save changes" : "Desa els canvis", + "Default" : "Per defecte", + "Registered Deploy daemons list" : "Llista de dimonis de desplegament registrats", + "No Deploy daemons configured" : "No s'ha configurat cap dimoni de desplegament", + "Register a custom one or setup from available templates" : "Registreu-ne un personalitzat o configureu-ne a partir de les plantilles disponibles", "Show details for {appName} app" : "Mostra els detalls de l'aplicació {appName}", "Update to {update}" : "Actualitza a {update}", "Remove" : "Suprimeix", diff --git a/apps/settings/l10n/cs.js b/apps/settings/l10n/cs.js index 048a4b61c40..38f5233e1ed 100644 --- a/apps/settings/l10n/cs.js +++ b/apps/settings/l10n/cs.js @@ -418,6 +418,10 @@ OC.L10N.register( "Excluded groups" : "Vynechané skupiny", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Když jsou skupiny vybrány/vynechány, je pro zjišťování zda je účtu vynuceno dvoufázové (2FA) ověřování použita následující logika: Pokud nejsou vybrány žádné skupiny, je 2FA zapnuto pro všechny kromě členů vynechaných skupin. Pokud jsou nějaké skupiny vybrány, je 2FA zapnuto pro všechny jejich členy. Pokud je účet členem jak vybrané, tak vynechané skupiny, pak má ta vybraná přednost a 2FA je vynuceno.", "Save changes" : "Uložit změny", + "Default" : "Výchozí", + "Registered Deploy daemons list" : "Seznam zaregistrovaných procesů nasazování", + "No Deploy daemons configured" : "Nejsou nastavené žádné procesy služby nasazování", + "Register a custom one or setup from available templates" : "Zaregistrujte uživatelsky určené nebo nastavte z dostupných šablon", "Show details for {appName} app" : "Zobrazit podrobnosti o aplikaci {appName}", "Update to {update}" : "Aktualizovat na {update}", "Remove" : "Odstranit", diff --git a/apps/settings/l10n/cs.json b/apps/settings/l10n/cs.json index 7bf480438b9..2df57ae35e3 100644 --- a/apps/settings/l10n/cs.json +++ b/apps/settings/l10n/cs.json @@ -416,6 +416,10 @@ "Excluded groups" : "Vynechané skupiny", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Když jsou skupiny vybrány/vynechány, je pro zjišťování zda je účtu vynuceno dvoufázové (2FA) ověřování použita následující logika: Pokud nejsou vybrány žádné skupiny, je 2FA zapnuto pro všechny kromě členů vynechaných skupin. Pokud jsou nějaké skupiny vybrány, je 2FA zapnuto pro všechny jejich členy. Pokud je účet členem jak vybrané, tak vynechané skupiny, pak má ta vybraná přednost a 2FA je vynuceno.", "Save changes" : "Uložit změny", + "Default" : "Výchozí", + "Registered Deploy daemons list" : "Seznam zaregistrovaných procesů nasazování", + "No Deploy daemons configured" : "Nejsou nastavené žádné procesy služby nasazování", + "Register a custom one or setup from available templates" : "Zaregistrujte uživatelsky určené nebo nastavte z dostupných šablon", "Show details for {appName} app" : "Zobrazit podrobnosti o aplikaci {appName}", "Update to {update}" : "Aktualizovat na {update}", "Remove" : "Odstranit", diff --git a/apps/settings/l10n/da.js b/apps/settings/l10n/da.js index 919547bb98f..b400ed23fce 100644 --- a/apps/settings/l10n/da.js +++ b/apps/settings/l10n/da.js @@ -409,6 +409,10 @@ OC.L10N.register( "Excluded groups" : "Ekskluderede grupper", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Når grupper er valgt/ekskluderet, så anvender de følgende logik til at bestemme, om en konto har 2FA håndhævet: Hvis ingen grupper er valgt, så er 2FA aktiveret for alle, undtagen medlemmer af de ekskluderede grupper. Hvis grupper er valgt, så er 2FA aktiveret for alle medlemmer af disse. Hvis en konto er både i en valgt og ekskluderet gruppe, så har den valgte forrang, og 2FA håndhæves.", "Save changes" : "Gem ændringer", + "Default" : "Standard", + "Registered Deploy daemons list" : "Liste over registrerede udgivelses daemoner", + "No Deploy daemons configured" : "Ingen udgivelses daemoner konfigureret", + "Register a custom one or setup from available templates" : "Registrer en brugerdefineret en eller opsæt fra tilgængelige skabeloner", "Show details for {appName} app" : "Vis detaljer for {appName} app", "Update to {update}" : "Opdater til {update}", "Remove" : "Fjern", diff --git a/apps/settings/l10n/da.json b/apps/settings/l10n/da.json index 079a731e357..1449c871cd5 100644 --- a/apps/settings/l10n/da.json +++ b/apps/settings/l10n/da.json @@ -407,6 +407,10 @@ "Excluded groups" : "Ekskluderede grupper", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Når grupper er valgt/ekskluderet, så anvender de følgende logik til at bestemme, om en konto har 2FA håndhævet: Hvis ingen grupper er valgt, så er 2FA aktiveret for alle, undtagen medlemmer af de ekskluderede grupper. Hvis grupper er valgt, så er 2FA aktiveret for alle medlemmer af disse. Hvis en konto er både i en valgt og ekskluderet gruppe, så har den valgte forrang, og 2FA håndhæves.", "Save changes" : "Gem ændringer", + "Default" : "Standard", + "Registered Deploy daemons list" : "Liste over registrerede udgivelses daemoner", + "No Deploy daemons configured" : "Ingen udgivelses daemoner konfigureret", + "Register a custom one or setup from available templates" : "Registrer en brugerdefineret en eller opsæt fra tilgængelige skabeloner", "Show details for {appName} app" : "Vis detaljer for {appName} app", "Update to {update}" : "Opdater til {update}", "Remove" : "Fjern", diff --git a/apps/settings/l10n/de.js b/apps/settings/l10n/de.js index 6d41611ef32..0f6c53e01fc 100644 --- a/apps/settings/l10n/de.js +++ b/apps/settings/l10n/de.js @@ -420,6 +420,10 @@ OC.L10N.register( "Excluded groups" : "Ausgeschlossene Gruppen", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Bei der Auswahl/Abwahl von Gruppen wird folgende Logik verwendet, um festzustellen, ob ein Konto 2FA verwenden muss: Wenn keine Gruppe ausgewählt ist, dann wird 2FA für alle Konten aktiviert, außer für solche der ausgenommenen Gruppen. Sind Gruppen ausgewählt, so wird 2FA für alle Kontendieser Gruppen aktiviert. Ist ein Konto sowohl in einer ausgewählten als auch in einer ausgenommenen Gruppe, so hat die Auswahl Vorrang und 2FA wird aktiviert.", "Save changes" : "Änderungen speichern", + "Default" : "Standard", + "Registered Deploy daemons list" : "Liste von registrierten Bereitstellungsdaemons", + "No Deploy daemons configured" : "Keine Bereitstellungsdämonen konfiguriert", + "Register a custom one or setup from available templates" : "Registriere eine benutzerdefinierte Vorlage oder richte sie aus verfügbaren Vorlagen ein", "Show details for {appName} app" : "Details der App {appName} anzeigen", "Update to {update}" : "Aktualisieren auf {update}", "Remove" : "Entfernen", diff --git a/apps/settings/l10n/de.json b/apps/settings/l10n/de.json index dd4f4b6722a..81fe3298433 100644 --- a/apps/settings/l10n/de.json +++ b/apps/settings/l10n/de.json @@ -418,6 +418,10 @@ "Excluded groups" : "Ausgeschlossene Gruppen", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Bei der Auswahl/Abwahl von Gruppen wird folgende Logik verwendet, um festzustellen, ob ein Konto 2FA verwenden muss: Wenn keine Gruppe ausgewählt ist, dann wird 2FA für alle Konten aktiviert, außer für solche der ausgenommenen Gruppen. Sind Gruppen ausgewählt, so wird 2FA für alle Kontendieser Gruppen aktiviert. Ist ein Konto sowohl in einer ausgewählten als auch in einer ausgenommenen Gruppe, so hat die Auswahl Vorrang und 2FA wird aktiviert.", "Save changes" : "Änderungen speichern", + "Default" : "Standard", + "Registered Deploy daemons list" : "Liste von registrierten Bereitstellungsdaemons", + "No Deploy daemons configured" : "Keine Bereitstellungsdämonen konfiguriert", + "Register a custom one or setup from available templates" : "Registriere eine benutzerdefinierte Vorlage oder richte sie aus verfügbaren Vorlagen ein", "Show details for {appName} app" : "Details der App {appName} anzeigen", "Update to {update}" : "Aktualisieren auf {update}", "Remove" : "Entfernen", diff --git a/apps/settings/l10n/de_DE.js b/apps/settings/l10n/de_DE.js index 803ebfbce50..8372aec845d 100644 --- a/apps/settings/l10n/de_DE.js +++ b/apps/settings/l10n/de_DE.js @@ -420,6 +420,10 @@ OC.L10N.register( "Excluded groups" : "Ausgeschlossene Gruppen", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Bei der Auswahl/Abwahl von Gruppen wird folgende Logik verwendet, um festzustellen, ob ein Konto 2FA verwenden muss: Wenn keine Gruppe ausgewählt ist, dann wird 2FA für alle Konten aktiviert, außer für Konten der ausgenommenen Gruppen. Sind Gruppen ausgewählt, so wird 2FA für alle Konten dieser Gruppen aktiviert. Ist ein Konto sowohl in einer ausgewählten als auch in einer ausgenommenen Gruppe, so hat die Auswahl Vorrang und 2FA wird aktiviert.", "Save changes" : "Änderungen speichern ", + "Default" : "Standard", + "Registered Deploy daemons list" : "Liste von registrierten Bereitstellungsdaemons", + "No Deploy daemons configured" : "Keine Bereitstellungsdämonen konfiguriert", + "Register a custom one or setup from available templates" : "Registrieren Sie eine benutzerdefinierte Vorlage oder richten Sie sie aus verfügbaren Vorlagen ein", "Show details for {appName} app" : "Details für die App {appName} anzeigen", "Update to {update}" : "Aktualisieren auf {update}", "Remove" : "Entfernen", diff --git a/apps/settings/l10n/de_DE.json b/apps/settings/l10n/de_DE.json index 79a06321a54..3a9fd905c36 100644 --- a/apps/settings/l10n/de_DE.json +++ b/apps/settings/l10n/de_DE.json @@ -418,6 +418,10 @@ "Excluded groups" : "Ausgeschlossene Gruppen", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Bei der Auswahl/Abwahl von Gruppen wird folgende Logik verwendet, um festzustellen, ob ein Konto 2FA verwenden muss: Wenn keine Gruppe ausgewählt ist, dann wird 2FA für alle Konten aktiviert, außer für Konten der ausgenommenen Gruppen. Sind Gruppen ausgewählt, so wird 2FA für alle Konten dieser Gruppen aktiviert. Ist ein Konto sowohl in einer ausgewählten als auch in einer ausgenommenen Gruppe, so hat die Auswahl Vorrang und 2FA wird aktiviert.", "Save changes" : "Änderungen speichern ", + "Default" : "Standard", + "Registered Deploy daemons list" : "Liste von registrierten Bereitstellungsdaemons", + "No Deploy daemons configured" : "Keine Bereitstellungsdämonen konfiguriert", + "Register a custom one or setup from available templates" : "Registrieren Sie eine benutzerdefinierte Vorlage oder richten Sie sie aus verfügbaren Vorlagen ein", "Show details for {appName} app" : "Details für die App {appName} anzeigen", "Update to {update}" : "Aktualisieren auf {update}", "Remove" : "Entfernen", diff --git a/apps/settings/l10n/el.js b/apps/settings/l10n/el.js index 22d66a2a65e..769c6ff263f 100644 --- a/apps/settings/l10n/el.js +++ b/apps/settings/l10n/el.js @@ -406,6 +406,7 @@ OC.L10N.register( "Excluded groups" : "Εξαιρούμενες ομάδες", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Όταν επιλέγονται/εξαιρούνται ομάδες, χρησιμοποιείται η ακόλουθη λογική για να καθοριστεί εάν ένας λογαριασμός έχει επιβληθεί 2FA: Εάν δεν επιλεγούν ομάδες, η 2FA είναι ενεργοποιημένη για όλους εκτός από τα μέλη των εξαιρούμενων ομάδων. Εάν επιλεγούν ομάδες, η 2FA είναι ενεργοποιημένη για όλα τα μέλη αυτών. Εάν ένας λογαριασμός ανήκει ταυτόχρονα σε μια επιλεγμένη και μια εξαιρούμενη ομάδα, η επιλεγμένη ομάδα έχει προτεραιότητα και η 2FA επιβάλλεται.", "Save changes" : "Αποθήκευση αλλαγών", + "Default" : "Προεπιλογή", "Show details for {appName} app" : "Εμφάνιση λεπτομερειών για την εφαρμογή {appName}", "Update to {update}" : "Ενημέρωση σε {update}", "Remove" : "Αφαίρεση", diff --git a/apps/settings/l10n/el.json b/apps/settings/l10n/el.json index 37cf97e43c7..2acff44aec5 100644 --- a/apps/settings/l10n/el.json +++ b/apps/settings/l10n/el.json @@ -404,6 +404,7 @@ "Excluded groups" : "Εξαιρούμενες ομάδες", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Όταν επιλέγονται/εξαιρούνται ομάδες, χρησιμοποιείται η ακόλουθη λογική για να καθοριστεί εάν ένας λογαριασμός έχει επιβληθεί 2FA: Εάν δεν επιλεγούν ομάδες, η 2FA είναι ενεργοποιημένη για όλους εκτός από τα μέλη των εξαιρούμενων ομάδων. Εάν επιλεγούν ομάδες, η 2FA είναι ενεργοποιημένη για όλα τα μέλη αυτών. Εάν ένας λογαριασμός ανήκει ταυτόχρονα σε μια επιλεγμένη και μια εξαιρούμενη ομάδα, η επιλεγμένη ομάδα έχει προτεραιότητα και η 2FA επιβάλλεται.", "Save changes" : "Αποθήκευση αλλαγών", + "Default" : "Προεπιλογή", "Show details for {appName} app" : "Εμφάνιση λεπτομερειών για την εφαρμογή {appName}", "Update to {update}" : "Ενημέρωση σε {update}", "Remove" : "Αφαίρεση", diff --git a/apps/settings/l10n/en_GB.js b/apps/settings/l10n/en_GB.js index 3ee78f9022a..d3657944451 100644 --- a/apps/settings/l10n/en_GB.js +++ b/apps/settings/l10n/en_GB.js @@ -420,6 +420,10 @@ OC.L10N.register( "Excluded groups" : "Excluded groups", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced.", "Save changes" : "Save changes", + "Default" : "Default", + "Registered Deploy daemons list" : "Registered Deploy daemons list", + "No Deploy daemons configured" : "No Deploy daemons configured", + "Register a custom one or setup from available templates" : "Register a custom one or setup from available templates", "Show details for {appName} app" : "Show details for {appName} app", "Update to {update}" : "Update to {update}", "Remove" : "Remove", diff --git a/apps/settings/l10n/en_GB.json b/apps/settings/l10n/en_GB.json index a1ec7cb0def..cc5761aef9a 100644 --- a/apps/settings/l10n/en_GB.json +++ b/apps/settings/l10n/en_GB.json @@ -418,6 +418,10 @@ "Excluded groups" : "Excluded groups", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced.", "Save changes" : "Save changes", + "Default" : "Default", + "Registered Deploy daemons list" : "Registered Deploy daemons list", + "No Deploy daemons configured" : "No Deploy daemons configured", + "Register a custom one or setup from available templates" : "Register a custom one or setup from available templates", "Show details for {appName} app" : "Show details for {appName} app", "Update to {update}" : "Update to {update}", "Remove" : "Remove", diff --git a/apps/settings/l10n/es.js b/apps/settings/l10n/es.js index c16b29c6ff2..5e8c5938a8c 100644 --- a/apps/settings/l10n/es.js +++ b/apps/settings/l10n/es.js @@ -420,6 +420,10 @@ OC.L10N.register( "Excluded groups" : "Grupos excluidos", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Cuando los grupos se seleccionan/excluyen, usan la siguiente lógica para determinar si ua cuenta tiene obligada la 2FA: si no hay grupos seleccionados, 2FA está activa para todos excepto los miembros de los grupos excluidos. Si hay grupos seleccionados, 2FA está activa para todos los miembros de estos. Si una cuenta está a la vez en un grupo seleccionado y otro excluido, el seleccionado tiene preferencia y se obliga la 2FA.", "Save changes" : "Guardar cambios", + "Default" : "Predeterminado", + "Registered Deploy daemons list" : "Lista de daemons de despliegue registrados", + "No Deploy daemons configured" : "No hay daemons de despliegue configurados", + "Register a custom one or setup from available templates" : "Registre uno personalizado, o, configure desde las plantillas disponibles", "Show details for {appName} app" : "Mostrar detalles para la app {appName}", "Update to {update}" : "Actualizar a {update}", "Remove" : "Eliminar", diff --git a/apps/settings/l10n/es.json b/apps/settings/l10n/es.json index d21a84fc0ad..d79ca75b6d6 100644 --- a/apps/settings/l10n/es.json +++ b/apps/settings/l10n/es.json @@ -418,6 +418,10 @@ "Excluded groups" : "Grupos excluidos", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Cuando los grupos se seleccionan/excluyen, usan la siguiente lógica para determinar si ua cuenta tiene obligada la 2FA: si no hay grupos seleccionados, 2FA está activa para todos excepto los miembros de los grupos excluidos. Si hay grupos seleccionados, 2FA está activa para todos los miembros de estos. Si una cuenta está a la vez en un grupo seleccionado y otro excluido, el seleccionado tiene preferencia y se obliga la 2FA.", "Save changes" : "Guardar cambios", + "Default" : "Predeterminado", + "Registered Deploy daemons list" : "Lista de daemons de despliegue registrados", + "No Deploy daemons configured" : "No hay daemons de despliegue configurados", + "Register a custom one or setup from available templates" : "Registre uno personalizado, o, configure desde las plantillas disponibles", "Show details for {appName} app" : "Mostrar detalles para la app {appName}", "Update to {update}" : "Actualizar a {update}", "Remove" : "Eliminar", diff --git a/apps/settings/l10n/es_MX.js b/apps/settings/l10n/es_MX.js index 27adccfaaec..675b42c73d7 100644 --- a/apps/settings/l10n/es_MX.js +++ b/apps/settings/l10n/es_MX.js @@ -328,6 +328,7 @@ OC.L10N.register( "Two-factor authentication is not enforced for members of the following groups." : "La autentificación de dos factores no se impone a los miembros de los siguientes grupos.", "Excluded groups" : "Grupos excluidos", "Save changes" : "Guardar cambios", + "Default" : "Por omisión", "Show details for {appName} app" : "Mostrar detalles para la aplicación {appName}", "Update to {update}" : "Actualizar a {update}", "Remove" : "Eliminar", diff --git a/apps/settings/l10n/es_MX.json b/apps/settings/l10n/es_MX.json index 28182b40fec..88bc4e5923a 100644 --- a/apps/settings/l10n/es_MX.json +++ b/apps/settings/l10n/es_MX.json @@ -326,6 +326,7 @@ "Two-factor authentication is not enforced for members of the following groups." : "La autentificación de dos factores no se impone a los miembros de los siguientes grupos.", "Excluded groups" : "Grupos excluidos", "Save changes" : "Guardar cambios", + "Default" : "Por omisión", "Show details for {appName} app" : "Mostrar detalles para la aplicación {appName}", "Update to {update}" : "Actualizar a {update}", "Remove" : "Eliminar", diff --git a/apps/settings/l10n/et_EE.js b/apps/settings/l10n/et_EE.js index 8cd4c980e28..0b088f85c9b 100644 --- a/apps/settings/l10n/et_EE.js +++ b/apps/settings/l10n/et_EE.js @@ -279,6 +279,7 @@ OC.L10N.register( "Two-factor authentication is not enforced for members of the following groups." : "Kaheastmeline autentimine pole kohustuslik nende gruppide liikmetele.", "Excluded groups" : "Välistatud neis gruppides", "Save changes" : "Salvesta muudatused", + "Default" : "Vaikimisi", "Show details for {appName} app" : "Näita „{appName}“ rakenduse üksikasju", "Update to {update}" : "Uuenda versioonini {update}", "Remove" : "Eemalda", diff --git a/apps/settings/l10n/et_EE.json b/apps/settings/l10n/et_EE.json index f2b27aa070b..f4bba17b90b 100644 --- a/apps/settings/l10n/et_EE.json +++ b/apps/settings/l10n/et_EE.json @@ -277,6 +277,7 @@ "Two-factor authentication is not enforced for members of the following groups." : "Kaheastmeline autentimine pole kohustuslik nende gruppide liikmetele.", "Excluded groups" : "Välistatud neis gruppides", "Save changes" : "Salvesta muudatused", + "Default" : "Vaikimisi", "Show details for {appName} app" : "Näita „{appName}“ rakenduse üksikasju", "Update to {update}" : "Uuenda versioonini {update}", "Remove" : "Eemalda", diff --git a/apps/settings/l10n/eu.js b/apps/settings/l10n/eu.js index 7114ff32e12..6d73738fbe2 100644 --- a/apps/settings/l10n/eu.js +++ b/apps/settings/l10n/eu.js @@ -396,6 +396,7 @@ OC.L10N.register( "Excluded groups" : "Baztertu taldeak", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Taldeak aukeratuta daudenean hauxe erabiltzen da kontuentzat bi faktoreko autentikazioa derrigortu ala ez erabakitzeko: talderik ez badago aukeratuta, guztientzat dago derrigortuta kanpoan utzitako taldeetako kideentzat ezik. Taldeak aukeratuta badaude, beren kideentzat derrigortzen da. Kontu bat aukeratutako eta kanpoan utzitako talde bateko kide bada, aukeratutako taldekoa izatea lehenesten da eta bi faktoreko autentikazioa erabiltzera derrigortzen da.", "Save changes" : "Gorde aldaketak", + "Default" : "Lehenetsia", "Show details for {appName} app" : "Erakutsi {appName} aplikazioaren xehetasunak", "Update to {update}" : "Eguneratu {update} bertsiora", "Remove" : "Ezabatu", diff --git a/apps/settings/l10n/eu.json b/apps/settings/l10n/eu.json index d24682f5c48..61b434e81af 100644 --- a/apps/settings/l10n/eu.json +++ b/apps/settings/l10n/eu.json @@ -394,6 +394,7 @@ "Excluded groups" : "Baztertu taldeak", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Taldeak aukeratuta daudenean hauxe erabiltzen da kontuentzat bi faktoreko autentikazioa derrigortu ala ez erabakitzeko: talderik ez badago aukeratuta, guztientzat dago derrigortuta kanpoan utzitako taldeetako kideentzat ezik. Taldeak aukeratuta badaude, beren kideentzat derrigortzen da. Kontu bat aukeratutako eta kanpoan utzitako talde bateko kide bada, aukeratutako taldekoa izatea lehenesten da eta bi faktoreko autentikazioa erabiltzera derrigortzen da.", "Save changes" : "Gorde aldaketak", + "Default" : "Lehenetsia", "Show details for {appName} app" : "Erakutsi {appName} aplikazioaren xehetasunak", "Update to {update}" : "Eguneratu {update} bertsiora", "Remove" : "Ezabatu", diff --git a/apps/settings/l10n/fa.js b/apps/settings/l10n/fa.js index 722b9b0f35d..cdd90bb2049 100644 --- a/apps/settings/l10n/fa.js +++ b/apps/settings/l10n/fa.js @@ -167,6 +167,7 @@ OC.L10N.register( "Two-factor authentication is not enforced for members of the following groups." : "Two-factor authentication is not enforced for members of the following groups.", "Excluded groups" : "گروههای مستثنی", "Save changes" : "ذخیرهٔ تغییرات", + "Default" : "پیشفرض", "Update to {update}" : "بهروز رسانی به {update} ", "Remove" : "برداشتن", "Featured" : "برگزیده", diff --git a/apps/settings/l10n/fa.json b/apps/settings/l10n/fa.json index 024682d4f2f..3c0fad6f445 100644 --- a/apps/settings/l10n/fa.json +++ b/apps/settings/l10n/fa.json @@ -165,6 +165,7 @@ "Two-factor authentication is not enforced for members of the following groups." : "Two-factor authentication is not enforced for members of the following groups.", "Excluded groups" : "گروههای مستثنی", "Save changes" : "ذخیرهٔ تغییرات", + "Default" : "پیشفرض", "Update to {update}" : "بهروز رسانی به {update} ", "Remove" : "برداشتن", "Featured" : "برگزیده", diff --git a/apps/settings/l10n/fi.js b/apps/settings/l10n/fi.js index be4c3236db4..f8f5cece53f 100644 --- a/apps/settings/l10n/fi.js +++ b/apps/settings/l10n/fi.js @@ -192,6 +192,7 @@ OC.L10N.register( "Two-factor authentication is not enforced for members of the following groups." : "Kaksivaiheisen tunnistautuminen ei ole pakotettu seuraavien ryhmien jäsenille.", "Excluded groups" : "Poissuljetut ryhmät", "Save changes" : "Tallenna muutokset", + "Default" : "Oletus", "Show details for {appName} app" : "Näytä sovelluksen {appName} tiedot", "Update to {update}" : "Päivitä versioon {update}", "Remove" : "Poista", diff --git a/apps/settings/l10n/fi.json b/apps/settings/l10n/fi.json index db35823df9f..7f9df2b5ac6 100644 --- a/apps/settings/l10n/fi.json +++ b/apps/settings/l10n/fi.json @@ -190,6 +190,7 @@ "Two-factor authentication is not enforced for members of the following groups." : "Kaksivaiheisen tunnistautuminen ei ole pakotettu seuraavien ryhmien jäsenille.", "Excluded groups" : "Poissuljetut ryhmät", "Save changes" : "Tallenna muutokset", + "Default" : "Oletus", "Show details for {appName} app" : "Näytä sovelluksen {appName} tiedot", "Update to {update}" : "Päivitä versioon {update}", "Remove" : "Poista", diff --git a/apps/settings/l10n/fr.js b/apps/settings/l10n/fr.js index 2babdeb552e..240fa729101 100644 --- a/apps/settings/l10n/fr.js +++ b/apps/settings/l10n/fr.js @@ -417,6 +417,10 @@ OC.L10N.register( "Excluded groups" : "Groupes exclus", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Lorsque des groupes sont forcés/exclus, la logique suivante est utilisée pour déterminer si l'authentification à double facteur (A2F) est imposée à un compte. Si aucun groupe n'est forcé, l'authentification à double facteur est activée pour tous sauf pour les membres des groupes exclus. Si des groupes sont forcés, l'authentification à double facteur est exigée pour tous les membres de ces groupes. Si un compte est à la fois dans un groupe forcé et exclu, c'est le groupe forcé qui prime et l'authentification double facteur est imposée.", "Save changes" : "Enregistrer les modifications", + "Default" : "Défaut", + "Registered Deploy daemons list" : "Liste des services de déploiement enregistrés", + "No Deploy daemons configured" : "Aucun service de déploiement configuré", + "Register a custom one or setup from available templates" : "Enregistrez-en un personnalisé ou une configuration à partir des modèles disponibles", "Show details for {appName} app" : "Afficher les détails de l'application {appName}", "Update to {update}" : "Mettre à jour vers {update}", "Remove" : "Retirer", diff --git a/apps/settings/l10n/fr.json b/apps/settings/l10n/fr.json index 1d62d0e38f7..9c92ac74301 100644 --- a/apps/settings/l10n/fr.json +++ b/apps/settings/l10n/fr.json @@ -415,6 +415,10 @@ "Excluded groups" : "Groupes exclus", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Lorsque des groupes sont forcés/exclus, la logique suivante est utilisée pour déterminer si l'authentification à double facteur (A2F) est imposée à un compte. Si aucun groupe n'est forcé, l'authentification à double facteur est activée pour tous sauf pour les membres des groupes exclus. Si des groupes sont forcés, l'authentification à double facteur est exigée pour tous les membres de ces groupes. Si un compte est à la fois dans un groupe forcé et exclu, c'est le groupe forcé qui prime et l'authentification double facteur est imposée.", "Save changes" : "Enregistrer les modifications", + "Default" : "Défaut", + "Registered Deploy daemons list" : "Liste des services de déploiement enregistrés", + "No Deploy daemons configured" : "Aucun service de déploiement configuré", + "Register a custom one or setup from available templates" : "Enregistrez-en un personnalisé ou une configuration à partir des modèles disponibles", "Show details for {appName} app" : "Afficher les détails de l'application {appName}", "Update to {update}" : "Mettre à jour vers {update}", "Remove" : "Retirer", diff --git a/apps/settings/l10n/ga.js b/apps/settings/l10n/ga.js index aca46027a3a..c366c9d54d5 100644 --- a/apps/settings/l10n/ga.js +++ b/apps/settings/l10n/ga.js @@ -420,6 +420,10 @@ OC.L10N.register( "Excluded groups" : "Grúpaí eisiata", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Nuair a roghnaítear/eisiatar grúpaí, úsáideann siad an loighic seo a leanas le fáil amach an bhfuil 2FA curtha i bhfeidhm ag cuntas: Mura roghnaítear aon ghrúpa, tá 2FA cumasaithe do gach duine seachas baill de na grúpaí eisiata. Má roghnaítear grúpaí, tá 2FA cumasaithe do gach ball díobh seo. Má tá cuntas i ngrúpa roghnaithe agus eisiata araon, beidh tosaíocht ag an gceann roghnaithe agus cuirtear 2FA i bhfeidhm.", "Save changes" : "Sabháil na hathruithe", + "Default" : "Réamhshocrú", + "Registered Deploy daemons list" : "Liosta deamhan Imscaradh Cláraithe", + "No Deploy daemons configured" : "Níl aon deamhan Imscaradh cumraithe", + "Register a custom one or setup from available templates" : "Cláraigh ceann nó socrú saincheaptha ó na teimpléid atá ar fáil", "Show details for {appName} app" : "Taispeáin sonraí na haipe {appName}", "Update to {update}" : "Nuashonraigh go {update}", "Remove" : "Bain", diff --git a/apps/settings/l10n/ga.json b/apps/settings/l10n/ga.json index dd408c70d47..46aa6439a2f 100644 --- a/apps/settings/l10n/ga.json +++ b/apps/settings/l10n/ga.json @@ -418,6 +418,10 @@ "Excluded groups" : "Grúpaí eisiata", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Nuair a roghnaítear/eisiatar grúpaí, úsáideann siad an loighic seo a leanas le fáil amach an bhfuil 2FA curtha i bhfeidhm ag cuntas: Mura roghnaítear aon ghrúpa, tá 2FA cumasaithe do gach duine seachas baill de na grúpaí eisiata. Má roghnaítear grúpaí, tá 2FA cumasaithe do gach ball díobh seo. Má tá cuntas i ngrúpa roghnaithe agus eisiata araon, beidh tosaíocht ag an gceann roghnaithe agus cuirtear 2FA i bhfeidhm.", "Save changes" : "Sabháil na hathruithe", + "Default" : "Réamhshocrú", + "Registered Deploy daemons list" : "Liosta deamhan Imscaradh Cláraithe", + "No Deploy daemons configured" : "Níl aon deamhan Imscaradh cumraithe", + "Register a custom one or setup from available templates" : "Cláraigh ceann nó socrú saincheaptha ó na teimpléid atá ar fáil", "Show details for {appName} app" : "Taispeáin sonraí na haipe {appName}", "Update to {update}" : "Nuashonraigh go {update}", "Remove" : "Bain", diff --git a/apps/settings/l10n/gl.js b/apps/settings/l10n/gl.js index 98c76a26a18..9e6097091c9 100644 --- a/apps/settings/l10n/gl.js +++ b/apps/settings/l10n/gl.js @@ -407,6 +407,10 @@ OC.L10N.register( "Excluded groups" : "Grupos excluídos", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Cando se seleccionan/exclúen os grupos, usase a seguinte lóxica para determinar se unha conta ten obrigado o 2FA: Se non hai grupos seleccionados, o 2FA está activo para todos agás os membros dos grupos excluídos. Se hai grupos seleccionados, o 2FA está activo para todos os membros destes. Se unha conta está á vez nun grupo seleccionado e noutro excluído, o seleccionado ten preferencia e se lle obriga a 2FA.", "Save changes" : "Gardar os cambios", + "Default" : "Predeterminado", + "Registered Deploy daemons list" : "Lista de servizos de despregadura rexistrados", + "No Deploy daemons configured" : "Non hai ningún servizo de despregadura configurado", + "Register a custom one or setup from available templates" : "Rexistre un personalizado ou configúreo a partir dos modelos dispoñíbeis", "Show details for {appName} app" : "Amosar os detalles da aplicación {appName}", "Update to {update}" : "Actualizar a {update}", "Remove" : "Retirar", diff --git a/apps/settings/l10n/gl.json b/apps/settings/l10n/gl.json index 542654fbff8..f7208480349 100644 --- a/apps/settings/l10n/gl.json +++ b/apps/settings/l10n/gl.json @@ -405,6 +405,10 @@ "Excluded groups" : "Grupos excluídos", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Cando se seleccionan/exclúen os grupos, usase a seguinte lóxica para determinar se unha conta ten obrigado o 2FA: Se non hai grupos seleccionados, o 2FA está activo para todos agás os membros dos grupos excluídos. Se hai grupos seleccionados, o 2FA está activo para todos os membros destes. Se unha conta está á vez nun grupo seleccionado e noutro excluído, o seleccionado ten preferencia e se lle obriga a 2FA.", "Save changes" : "Gardar os cambios", + "Default" : "Predeterminado", + "Registered Deploy daemons list" : "Lista de servizos de despregadura rexistrados", + "No Deploy daemons configured" : "Non hai ningún servizo de despregadura configurado", + "Register a custom one or setup from available templates" : "Rexistre un personalizado ou configúreo a partir dos modelos dispoñíbeis", "Show details for {appName} app" : "Amosar os detalles da aplicación {appName}", "Update to {update}" : "Actualizar a {update}", "Remove" : "Retirar", diff --git a/apps/settings/l10n/he.js b/apps/settings/l10n/he.js index c3ce45f5edf..a9140cb6db6 100644 --- a/apps/settings/l10n/he.js +++ b/apps/settings/l10n/he.js @@ -135,6 +135,7 @@ OC.L10N.register( "Two-factor authentication is not enforced for members of the following groups." : "אימות דו־שלבי לא נאכף על החברים בקבוצות הבאות.", "Excluded groups" : "קבוצות חריגות", "Save changes" : "שמירת שינויים", + "Default" : "ברירת מחדל", "Update to {update}" : "עדכון ל־{update}", "Remove" : "הסרה", "Featured" : "מומלץ", diff --git a/apps/settings/l10n/he.json b/apps/settings/l10n/he.json index ba34f81b61f..e90cf60f89b 100644 --- a/apps/settings/l10n/he.json +++ b/apps/settings/l10n/he.json @@ -133,6 +133,7 @@ "Two-factor authentication is not enforced for members of the following groups." : "אימות דו־שלבי לא נאכף על החברים בקבוצות הבאות.", "Excluded groups" : "קבוצות חריגות", "Save changes" : "שמירת שינויים", + "Default" : "ברירת מחדל", "Update to {update}" : "עדכון ל־{update}", "Remove" : "הסרה", "Featured" : "מומלץ", diff --git a/apps/settings/l10n/hr.js b/apps/settings/l10n/hr.js index 1fbf446ef49..86cdad181df 100644 --- a/apps/settings/l10n/hr.js +++ b/apps/settings/l10n/hr.js @@ -146,6 +146,7 @@ OC.L10N.register( "Two-factor authentication is not enforced for members of the following groups." : "Dvofaktorska autentifikacija ne primjenjuje se na članove sljedećih grupa.", "Excluded groups" : "Izuzete grupe", "Save changes" : "Spremi promjene", + "Default" : "Zadani", "Update to {update}" : "Ažuriraj na {update}", "Remove" : "Ukloni", "Featured" : "Istaknuto", diff --git a/apps/settings/l10n/hr.json b/apps/settings/l10n/hr.json index a951e332caa..bc35715f96f 100644 --- a/apps/settings/l10n/hr.json +++ b/apps/settings/l10n/hr.json @@ -144,6 +144,7 @@ "Two-factor authentication is not enforced for members of the following groups." : "Dvofaktorska autentifikacija ne primjenjuje se na članove sljedećih grupa.", "Excluded groups" : "Izuzete grupe", "Save changes" : "Spremi promjene", + "Default" : "Zadani", "Update to {update}" : "Ažuriraj na {update}", "Remove" : "Ukloni", "Featured" : "Istaknuto", diff --git a/apps/settings/l10n/hu.js b/apps/settings/l10n/hu.js index d9647870e62..cecf1096af4 100644 --- a/apps/settings/l10n/hu.js +++ b/apps/settings/l10n/hu.js @@ -278,6 +278,7 @@ OC.L10N.register( "Two-factor authentication is not enforced for members of the following groups." : "A kétfaktoros hitelesítés az alábbi csoportok számára nem kötelező.", "Excluded groups" : "Kizárt csoportok", "Save changes" : "Változások mentése", + "Default" : "Alapértelmezett", "Update to {update}" : "Frissítés erre: {update}", "Remove" : "Eltávolítás", "Featured" : "Kiemelt", diff --git a/apps/settings/l10n/hu.json b/apps/settings/l10n/hu.json index 47f79605d75..836e8b98a8c 100644 --- a/apps/settings/l10n/hu.json +++ b/apps/settings/l10n/hu.json @@ -276,6 +276,7 @@ "Two-factor authentication is not enforced for members of the following groups." : "A kétfaktoros hitelesítés az alábbi csoportok számára nem kötelező.", "Excluded groups" : "Kizárt csoportok", "Save changes" : "Változások mentése", + "Default" : "Alapértelmezett", "Update to {update}" : "Frissítés erre: {update}", "Remove" : "Eltávolítás", "Featured" : "Kiemelt", diff --git a/apps/settings/l10n/id.js b/apps/settings/l10n/id.js index fc56ade4e18..0e97d4b9403 100644 --- a/apps/settings/l10n/id.js +++ b/apps/settings/l10n/id.js @@ -135,6 +135,7 @@ OC.L10N.register( "Limit to groups" : "Batasi ke grup", "Excluded groups" : "Grup yang dikecualikan", "Save changes" : "Simpan perubahan", + "Default" : "Default", "Update to {update}" : "Perbarui ke {update}", "Remove" : "Hapus", "Featured" : "Unggulan", diff --git a/apps/settings/l10n/id.json b/apps/settings/l10n/id.json index bba6302b4f0..598e786e5e8 100644 --- a/apps/settings/l10n/id.json +++ b/apps/settings/l10n/id.json @@ -133,6 +133,7 @@ "Limit to groups" : "Batasi ke grup", "Excluded groups" : "Grup yang dikecualikan", "Save changes" : "Simpan perubahan", + "Default" : "Default", "Update to {update}" : "Perbarui ke {update}", "Remove" : "Hapus", "Featured" : "Unggulan", diff --git a/apps/settings/l10n/is.js b/apps/settings/l10n/is.js index c3acf78c502..114f7df710c 100644 --- a/apps/settings/l10n/is.js +++ b/apps/settings/l10n/is.js @@ -264,6 +264,7 @@ OC.L10N.register( "Excluded groups" : "Útilokaðir hópar", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Þegar hópar eru valdir/útilokaðir, styðjast þeir við eftirfarandi röksemdafærslu til að ákvarða hvort notandaaðgangur sé með þvingaða/virka tveggja-þrepa auðkenningu: tveggja-þrepa auðkenning er virk fyrir alla nema meðlimi útilokaðra hópa. Ef hópar eru valdir, er tveggja-þrepa auðkenning virk fyrir alla meðlimi þessara hópa. Ef notandi er bæði í völdum og í útilokuðum hópum, ræður valið og því er tveggja-þrepa auðkenning virk.", "Save changes" : "Vista breytingar", + "Default" : "Sjálfgefið", "Show details for {appName} app" : "Birta ítarlegri upplýsingar fyrir {appName} forritið", "Update to {update}" : "Uppfæra í {update}", "Remove" : "Fjarlægja", diff --git a/apps/settings/l10n/is.json b/apps/settings/l10n/is.json index 7d14270a460..ebdde060c2d 100644 --- a/apps/settings/l10n/is.json +++ b/apps/settings/l10n/is.json @@ -262,6 +262,7 @@ "Excluded groups" : "Útilokaðir hópar", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Þegar hópar eru valdir/útilokaðir, styðjast þeir við eftirfarandi röksemdafærslu til að ákvarða hvort notandaaðgangur sé með þvingaða/virka tveggja-þrepa auðkenningu: tveggja-þrepa auðkenning er virk fyrir alla nema meðlimi útilokaðra hópa. Ef hópar eru valdir, er tveggja-þrepa auðkenning virk fyrir alla meðlimi þessara hópa. Ef notandi er bæði í völdum og í útilokuðum hópum, ræður valið og því er tveggja-þrepa auðkenning virk.", "Save changes" : "Vista breytingar", + "Default" : "Sjálfgefið", "Show details for {appName} app" : "Birta ítarlegri upplýsingar fyrir {appName} forritið", "Update to {update}" : "Uppfæra í {update}", "Remove" : "Fjarlægja", diff --git a/apps/settings/l10n/it.js b/apps/settings/l10n/it.js index 0353bb2378b..ad2832679e7 100644 --- a/apps/settings/l10n/it.js +++ b/apps/settings/l10n/it.js @@ -342,6 +342,7 @@ OC.L10N.register( "Two-factor authentication is not enforced for members of the following groups." : "L'autenticazione a due fattori non è applicata per i membri dei gruppi seguenti.", "Excluded groups" : "Gruppi esclusi", "Save changes" : "Salva le modifiche", + "Default" : "Predefinito", "Show details for {appName} app" : "Mostra dettagli per l'applicazione {appName}", "Update to {update}" : "Aggiorna a {update}", "Remove" : "Rimuovi", diff --git a/apps/settings/l10n/it.json b/apps/settings/l10n/it.json index f88a69d37c4..0948a265946 100644 --- a/apps/settings/l10n/it.json +++ b/apps/settings/l10n/it.json @@ -340,6 +340,7 @@ "Two-factor authentication is not enforced for members of the following groups." : "L'autenticazione a due fattori non è applicata per i membri dei gruppi seguenti.", "Excluded groups" : "Gruppi esclusi", "Save changes" : "Salva le modifiche", + "Default" : "Predefinito", "Show details for {appName} app" : "Mostra dettagli per l'applicazione {appName}", "Update to {update}" : "Aggiorna a {update}", "Remove" : "Rimuovi", diff --git a/apps/settings/l10n/ja.js b/apps/settings/l10n/ja.js index 8920b1b597d..ccbadd44f71 100644 --- a/apps/settings/l10n/ja.js +++ b/apps/settings/l10n/ja.js @@ -419,6 +419,10 @@ OC.L10N.register( "Excluded groups" : "除外するグループ", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "グループが選択または除外されている場合、アカウントに対して二要素認証を強制するかを次のロジックで判断します: 強制するグループが未選択の場合、除外するグループのメンバーを除く全アカウントに対して二要素認証を強制します。強制するグループが選択されている場合、強制するグループの全メンバーに対して二要素認証を強制します。両方のグループに所属するアカウントに対しては、強制するグループが優先され、二要素認証が強制されます。", "Save changes" : "変更を保存", + "Default" : "デフォルト", + "Registered Deploy daemons list" : "登録済みデプロイデーモンリスト", + "No Deploy daemons configured" : "デプロイデーモンが設定されていません", + "Register a custom one or setup from available templates" : "カスタムのものを登録するか利用可能なテンプレートから設定する", "Show details for {appName} app" : "{appName} アプリの詳細を表示する", "Update to {update}" : "{update} にアップデート", "Remove" : "削除", diff --git a/apps/settings/l10n/ja.json b/apps/settings/l10n/ja.json index 2520b747166..09a45f8b22e 100644 --- a/apps/settings/l10n/ja.json +++ b/apps/settings/l10n/ja.json @@ -417,6 +417,10 @@ "Excluded groups" : "除外するグループ", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "グループが選択または除外されている場合、アカウントに対して二要素認証を強制するかを次のロジックで判断します: 強制するグループが未選択の場合、除外するグループのメンバーを除く全アカウントに対して二要素認証を強制します。強制するグループが選択されている場合、強制するグループの全メンバーに対して二要素認証を強制します。両方のグループに所属するアカウントに対しては、強制するグループが優先され、二要素認証が強制されます。", "Save changes" : "変更を保存", + "Default" : "デフォルト", + "Registered Deploy daemons list" : "登録済みデプロイデーモンリスト", + "No Deploy daemons configured" : "デプロイデーモンが設定されていません", + "Register a custom one or setup from available templates" : "カスタムのものを登録するか利用可能なテンプレートから設定する", "Show details for {appName} app" : "{appName} アプリの詳細を表示する", "Update to {update}" : "{update} にアップデート", "Remove" : "削除", diff --git a/apps/settings/l10n/ka.js b/apps/settings/l10n/ka.js index 877c8393c9a..c75c818f8d5 100644 --- a/apps/settings/l10n/ka.js +++ b/apps/settings/l10n/ka.js @@ -238,6 +238,7 @@ OC.L10N.register( "Two-factor authentication is not enforced for members of the following groups." : "Two-factor authentication is not enforced for members of the following groups.", "Excluded groups" : "Excluded groups", "Save changes" : "Save changes", + "Default" : "Default", "Show details for {appName} app" : "Show details for {appName} app", "Update to {update}" : "Update to {update}", "Remove" : "Remove", diff --git a/apps/settings/l10n/ka.json b/apps/settings/l10n/ka.json index 900f6ab9d2d..cf8b50eb6a7 100644 --- a/apps/settings/l10n/ka.json +++ b/apps/settings/l10n/ka.json @@ -236,6 +236,7 @@ "Two-factor authentication is not enforced for members of the following groups." : "Two-factor authentication is not enforced for members of the following groups.", "Excluded groups" : "Excluded groups", "Save changes" : "Save changes", + "Default" : "Default", "Show details for {appName} app" : "Show details for {appName} app", "Update to {update}" : "Update to {update}", "Remove" : "Remove", diff --git a/apps/settings/l10n/ka_GE.js b/apps/settings/l10n/ka_GE.js index a0142c394ca..3e24934bd46 100644 --- a/apps/settings/l10n/ka_GE.js +++ b/apps/settings/l10n/ka_GE.js @@ -96,6 +96,7 @@ OC.L10N.register( "Default share permissions" : "საწყისი გაზიარების პარამეტრები", "Limit to groups" : "ლიმიტი ჯგუფებზე", "Save changes" : "ცვილებების შენახვა", + "Default" : "საწყისი პარამეტრები", "Remove" : "წაშლა", "Featured" : "გამორჩეულები", "Icon" : "პიქტოგრამა", diff --git a/apps/settings/l10n/ka_GE.json b/apps/settings/l10n/ka_GE.json index 3b88d0c8af5..897d4063778 100644 --- a/apps/settings/l10n/ka_GE.json +++ b/apps/settings/l10n/ka_GE.json @@ -94,6 +94,7 @@ "Default share permissions" : "საწყისი გაზიარების პარამეტრები", "Limit to groups" : "ლიმიტი ჯგუფებზე", "Save changes" : "ცვილებების შენახვა", + "Default" : "საწყისი პარამეტრები", "Remove" : "წაშლა", "Featured" : "გამორჩეულები", "Icon" : "პიქტოგრამა", diff --git a/apps/settings/l10n/ko.js b/apps/settings/l10n/ko.js index 56e531531af..ce74a53a433 100644 --- a/apps/settings/l10n/ko.js +++ b/apps/settings/l10n/ko.js @@ -341,6 +341,10 @@ OC.L10N.register( "Excluded groups" : "제외된 그룹", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "그룹을 선택하거나 제외하면 이들의 계정에 2FA를 강제할지 다음 로직을 통해 결정합니다: 아무 그룹도 선택하지 않으면, 제외된 그룹의 사용자들을 제외한 모두에게 2FA가 활성화됩니다. 그룹을 선택했다면, 그 그룹(들)의 모든 멤버들에게 2FA가 활성화됩니다. 하나의 계정이 선택한 그룹과 제외한 그룹에 동시에 있다면, 선택한 그룹이 우선순위를 가져 2FA가 강제됩니다.", "Save changes" : "변경 사항 저장", + "Default" : "디폴트", + "Registered Deploy daemons list" : "등록된 배포 데몬 목록", + "No Deploy daemons configured" : "배포 데몬이 구성되지 않았습니다.", + "Register a custom one or setup from available templates" : "사용자 정의 항목을 등록하거나 사용 가능한 템플릿에서 설정", "Show details for {appName} app" : "{appName} 앱에 대한 상세 정보 보기", "Update to {update}" : "{update}(으)로 업데이트", "Remove" : "삭제", diff --git a/apps/settings/l10n/ko.json b/apps/settings/l10n/ko.json index df148744c83..b45adc7f3c5 100644 --- a/apps/settings/l10n/ko.json +++ b/apps/settings/l10n/ko.json @@ -339,6 +339,10 @@ "Excluded groups" : "제외된 그룹", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "그룹을 선택하거나 제외하면 이들의 계정에 2FA를 강제할지 다음 로직을 통해 결정합니다: 아무 그룹도 선택하지 않으면, 제외된 그룹의 사용자들을 제외한 모두에게 2FA가 활성화됩니다. 그룹을 선택했다면, 그 그룹(들)의 모든 멤버들에게 2FA가 활성화됩니다. 하나의 계정이 선택한 그룹과 제외한 그룹에 동시에 있다면, 선택한 그룹이 우선순위를 가져 2FA가 강제됩니다.", "Save changes" : "변경 사항 저장", + "Default" : "디폴트", + "Registered Deploy daemons list" : "등록된 배포 데몬 목록", + "No Deploy daemons configured" : "배포 데몬이 구성되지 않았습니다.", + "Register a custom one or setup from available templates" : "사용자 정의 항목을 등록하거나 사용 가능한 템플릿에서 설정", "Show details for {appName} app" : "{appName} 앱에 대한 상세 정보 보기", "Update to {update}" : "{update}(으)로 업데이트", "Remove" : "삭제", diff --git a/apps/settings/l10n/lt_LT.js b/apps/settings/l10n/lt_LT.js index 692612a36cd..65f69a9b2f6 100644 --- a/apps/settings/l10n/lt_LT.js +++ b/apps/settings/l10n/lt_LT.js @@ -165,6 +165,7 @@ OC.L10N.register( "Two-factor authentication is not enforced for members of the following groups." : "Dviejų faktorių tapatybės nustatymas nėra priverstinis šių grupių nariams.", "Excluded groups" : "Pašalintos grupės", "Save changes" : "Įrašyti pakeitimus", + "Default" : "Numatytasis", "Update to {update}" : "Atnaujinti į {update}", "Remove" : "Šalinti", "Featured" : "Siūlomos", diff --git a/apps/settings/l10n/lt_LT.json b/apps/settings/l10n/lt_LT.json index 60c6f1098a1..e2057a353e5 100644 --- a/apps/settings/l10n/lt_LT.json +++ b/apps/settings/l10n/lt_LT.json @@ -163,6 +163,7 @@ "Two-factor authentication is not enforced for members of the following groups." : "Dviejų faktorių tapatybės nustatymas nėra priverstinis šių grupių nariams.", "Excluded groups" : "Pašalintos grupės", "Save changes" : "Įrašyti pakeitimus", + "Default" : "Numatytasis", "Update to {update}" : "Atnaujinti į {update}", "Remove" : "Šalinti", "Featured" : "Siūlomos", diff --git a/apps/settings/l10n/mk.js b/apps/settings/l10n/mk.js index 69f33411fe7..163cbac7f65 100644 --- a/apps/settings/l10n/mk.js +++ b/apps/settings/l10n/mk.js @@ -176,6 +176,7 @@ OC.L10N.register( "Two-factor authentication is not enforced for members of the following groups." : "Двофакторна автентикација не е задолжителна за членови на следниве групи.", "Excluded groups" : "Исклучени групи", "Save changes" : "Зачувај ги промените", + "Default" : "Предефиниран", "Update to {update}" : "Надгради на {update}", "Remove" : "Отстрани ", "Featured" : "Истакнати", diff --git a/apps/settings/l10n/mk.json b/apps/settings/l10n/mk.json index 16c9c0b7dd0..ca957571a50 100644 --- a/apps/settings/l10n/mk.json +++ b/apps/settings/l10n/mk.json @@ -174,6 +174,7 @@ "Two-factor authentication is not enforced for members of the following groups." : "Двофакторна автентикација не е задолжителна за членови на следниве групи.", "Excluded groups" : "Исклучени групи", "Save changes" : "Зачувај ги промените", + "Default" : "Предефиниран", "Update to {update}" : "Надгради на {update}", "Remove" : "Отстрани ", "Featured" : "Истакнати", diff --git a/apps/settings/l10n/nb.js b/apps/settings/l10n/nb.js index 63a02b3c9de..8f65a357f92 100644 --- a/apps/settings/l10n/nb.js +++ b/apps/settings/l10n/nb.js @@ -383,6 +383,10 @@ OC.L10N.register( "Excluded groups" : "Utelukkede grupper", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Når grupper velges/ekskluderes, bruker de følgende logikk for å avgjøre om en konto har 2FA håndhevet: Hvis ingen grupper er valgt, aktiveres 2FA for alle unntatt medlemmer av de ekskluderte gruppene. Hvis grupper velges, er 2FA aktivert for alle medlemmer av disse. Hvis en konto er både i en valgt og ekskludert gruppe, har den valgte forrang og 2FA håndheves.", "Save changes" : "Lagre endringer", + "Default" : "Forvalg", + "Registered Deploy daemons list" : "Registrert liste over distribuerings-daemoner", + "No Deploy daemons configured" : "Ingen distribuerings-daemoner konfigurert", + "Register a custom one or setup from available templates" : "Registrer en tilpasset en eller sett opp fra tilgjengelige maler", "Show details for {appName} app" : "Vis detaljer for {appName}-app", "Update to {update}" : "Oppdater til {update}", "Remove" : "Fjern", diff --git a/apps/settings/l10n/nb.json b/apps/settings/l10n/nb.json index 4fcd2dc324a..5018b931c3a 100644 --- a/apps/settings/l10n/nb.json +++ b/apps/settings/l10n/nb.json @@ -381,6 +381,10 @@ "Excluded groups" : "Utelukkede grupper", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Når grupper velges/ekskluderes, bruker de følgende logikk for å avgjøre om en konto har 2FA håndhevet: Hvis ingen grupper er valgt, aktiveres 2FA for alle unntatt medlemmer av de ekskluderte gruppene. Hvis grupper velges, er 2FA aktivert for alle medlemmer av disse. Hvis en konto er både i en valgt og ekskludert gruppe, har den valgte forrang og 2FA håndheves.", "Save changes" : "Lagre endringer", + "Default" : "Forvalg", + "Registered Deploy daemons list" : "Registrert liste over distribuerings-daemoner", + "No Deploy daemons configured" : "Ingen distribuerings-daemoner konfigurert", + "Register a custom one or setup from available templates" : "Registrer en tilpasset en eller sett opp fra tilgjengelige maler", "Show details for {appName} app" : "Vis detaljer for {appName}-app", "Update to {update}" : "Oppdater til {update}", "Remove" : "Fjern", diff --git a/apps/settings/l10n/nl.js b/apps/settings/l10n/nl.js index 85c28efee86..b4bac2e9c79 100644 --- a/apps/settings/l10n/nl.js +++ b/apps/settings/l10n/nl.js @@ -262,6 +262,10 @@ OC.L10N.register( "Two-factor authentication is not enforced for members of the following groups." : "Tweestapsverificatie wordt niet geforceerd voor leden van de volgende groepen.", "Excluded groups" : "Uitgesloten groepen", "Save changes" : "Wijzigingen bewaren", + "Default" : "Standaard", + "Registered Deploy daemons list" : "Lijst van geregistreerde Deploy Daemons", + "No Deploy daemons configured" : "Geen Deploy Daemons geconfigureerd", + "Register a custom one or setup from available templates" : "Registreer met de hand of gebruik een van de beschikbare templates", "Show details for {appName} app" : "Toon details voor {appName} app", "Update to {update}" : "Update naar {update}", "Remove" : "Verwijderen", diff --git a/apps/settings/l10n/nl.json b/apps/settings/l10n/nl.json index 461db20a987..42f5712d167 100644 --- a/apps/settings/l10n/nl.json +++ b/apps/settings/l10n/nl.json @@ -260,6 +260,10 @@ "Two-factor authentication is not enforced for members of the following groups." : "Tweestapsverificatie wordt niet geforceerd voor leden van de volgende groepen.", "Excluded groups" : "Uitgesloten groepen", "Save changes" : "Wijzigingen bewaren", + "Default" : "Standaard", + "Registered Deploy daemons list" : "Lijst van geregistreerde Deploy Daemons", + "No Deploy daemons configured" : "Geen Deploy Daemons geconfigureerd", + "Register a custom one or setup from available templates" : "Registreer met de hand of gebruik een van de beschikbare templates", "Show details for {appName} app" : "Toon details voor {appName} app", "Update to {update}" : "Update naar {update}", "Remove" : "Verwijderen", diff --git a/apps/settings/l10n/pl.js b/apps/settings/l10n/pl.js index 6505f3131c9..97798f4033a 100644 --- a/apps/settings/l10n/pl.js +++ b/apps/settings/l10n/pl.js @@ -345,6 +345,7 @@ OC.L10N.register( "Unified task processing" : "Ujednolicone przetwarzanie zadań", "AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Zadania AI mogą być realizowane przez różne aplikacje. Tutaj możesz ustawić, która aplikacja ma być używana do jakiego zadania.", "Allow AI usage for guest users" : "Zezwól na użycie AI dla użytkowników gości", + "Provider for Task types" : "Dostawca dla typów zadań", "Enable" : "Włącz", "None of your currently installed apps provide Task processing functionality" : "Żadna z aktualnie zainstalowanych aplikacji nie udostępnia funkcji przetwarzania zadań", "Machine translation" : "Tłumaczenie maszynowe", @@ -419,6 +420,7 @@ OC.L10N.register( "Excluded groups" : "Wyłączone grupy", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Gdy grupy są zaznaczone lub wykluczone, stosowana jest następująca logika w celu określenia, czy dla konta ma być wymuszona 2FA:. Jeśli nie wybrano żadnych grup, 2FA jest włączone dla wszystkich, z wyjątkiem członków wykluczonych grup. Jeśli grupy są wybrane, 2FA jest włączone dla wszystkich ich członków. Jeśli konto należy zarówno do grupy wybranej, jak i wykluczonej, priorytet ma grupa wybrana i 2FA jest wymuszane.", "Save changes" : "Zapisz zmiany", + "Default" : "Domyślny", "Show details for {appName} app" : "Pokaż szczegóły aplikacji {appName}", "Update to {update}" : "Zaktualizuj do {update}", "Remove" : "Usuń", diff --git a/apps/settings/l10n/pl.json b/apps/settings/l10n/pl.json index d01e938a2c2..d22c9232ce9 100644 --- a/apps/settings/l10n/pl.json +++ b/apps/settings/l10n/pl.json @@ -343,6 +343,7 @@ "Unified task processing" : "Ujednolicone przetwarzanie zadań", "AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Zadania AI mogą być realizowane przez różne aplikacje. Tutaj możesz ustawić, która aplikacja ma być używana do jakiego zadania.", "Allow AI usage for guest users" : "Zezwól na użycie AI dla użytkowników gości", + "Provider for Task types" : "Dostawca dla typów zadań", "Enable" : "Włącz", "None of your currently installed apps provide Task processing functionality" : "Żadna z aktualnie zainstalowanych aplikacji nie udostępnia funkcji przetwarzania zadań", "Machine translation" : "Tłumaczenie maszynowe", @@ -417,6 +418,7 @@ "Excluded groups" : "Wyłączone grupy", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Gdy grupy są zaznaczone lub wykluczone, stosowana jest następująca logika w celu określenia, czy dla konta ma być wymuszona 2FA:. Jeśli nie wybrano żadnych grup, 2FA jest włączone dla wszystkich, z wyjątkiem członków wykluczonych grup. Jeśli grupy są wybrane, 2FA jest włączone dla wszystkich ich członków. Jeśli konto należy zarówno do grupy wybranej, jak i wykluczonej, priorytet ma grupa wybrana i 2FA jest wymuszane.", "Save changes" : "Zapisz zmiany", + "Default" : "Domyślny", "Show details for {appName} app" : "Pokaż szczegóły aplikacji {appName}", "Update to {update}" : "Zaktualizuj do {update}", "Remove" : "Usuń", diff --git a/apps/settings/l10n/pt_BR.js b/apps/settings/l10n/pt_BR.js index ad08ddf44aa..0484828ab7d 100644 --- a/apps/settings/l10n/pt_BR.js +++ b/apps/settings/l10n/pt_BR.js @@ -419,6 +419,10 @@ OC.L10N.register( "Excluded groups" : "Grupos excluídos", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Quando os grupos são selecionados/excluídos, eles usam a seguinte lógica para determinar se uma conta tem a 2FA aplicada: Se nenhum grupo for selecionado, a 2FA será habilitada para todos, exceto os membros dos grupos excluídos. Se grupos forem selecionados, a 2FA será habilitada para todos os membros deles. Se uma conta estiver em um grupo selecionado e excluído, o selecionado terá precedência e a 2FA será aplicada.", "Save changes" : "Salvar alterações", + "Default" : "Padrão", + "Registered Deploy daemons list" : "Lista de Deploy daemons registrados", + "No Deploy daemons configured" : "Nenhum Deploy daemon configurado", + "Register a custom one or setup from available templates" : "Registre um personalizado ou configure a partir dos modelos disponíveis", "Show details for {appName} app" : "Mostrar detalhes do aplicativo {appName}", "Update to {update}" : "Atualizar para {update}", "Remove" : "Excluir", diff --git a/apps/settings/l10n/pt_BR.json b/apps/settings/l10n/pt_BR.json index 025a6d0b761..ba161dd1c8f 100644 --- a/apps/settings/l10n/pt_BR.json +++ b/apps/settings/l10n/pt_BR.json @@ -417,6 +417,10 @@ "Excluded groups" : "Grupos excluídos", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Quando os grupos são selecionados/excluídos, eles usam a seguinte lógica para determinar se uma conta tem a 2FA aplicada: Se nenhum grupo for selecionado, a 2FA será habilitada para todos, exceto os membros dos grupos excluídos. Se grupos forem selecionados, a 2FA será habilitada para todos os membros deles. Se uma conta estiver em um grupo selecionado e excluído, o selecionado terá precedência e a 2FA será aplicada.", "Save changes" : "Salvar alterações", + "Default" : "Padrão", + "Registered Deploy daemons list" : "Lista de Deploy daemons registrados", + "No Deploy daemons configured" : "Nenhum Deploy daemon configurado", + "Register a custom one or setup from available templates" : "Registre um personalizado ou configure a partir dos modelos disponíveis", "Show details for {appName} app" : "Mostrar detalhes do aplicativo {appName}", "Update to {update}" : "Atualizar para {update}", "Remove" : "Excluir", diff --git a/apps/settings/l10n/pt_PT.js b/apps/settings/l10n/pt_PT.js index 820a2faae2a..94659f07e89 100644 --- a/apps/settings/l10n/pt_PT.js +++ b/apps/settings/l10n/pt_PT.js @@ -119,6 +119,7 @@ OC.L10N.register( "This text will be shown on the public link upload page when the file list is hidden." : "Este texto será exibido na página de carregamento de ligações públicas quando a lista de ficheiros estiver oculta. ", "Limit to groups" : "Limitado a grupos", "Save changes" : "Guardar alterações", + "Default" : "Predefinido", "Update to {update}" : "Atualizar para {update}", "Remove" : "Remover", "Featured" : "Destacado", diff --git a/apps/settings/l10n/pt_PT.json b/apps/settings/l10n/pt_PT.json index 981da1a36b8..b7a23f72457 100644 --- a/apps/settings/l10n/pt_PT.json +++ b/apps/settings/l10n/pt_PT.json @@ -117,6 +117,7 @@ "This text will be shown on the public link upload page when the file list is hidden." : "Este texto será exibido na página de carregamento de ligações públicas quando a lista de ficheiros estiver oculta. ", "Limit to groups" : "Limitado a grupos", "Save changes" : "Guardar alterações", + "Default" : "Predefinido", "Update to {update}" : "Atualizar para {update}", "Remove" : "Remover", "Featured" : "Destacado", diff --git a/apps/settings/l10n/ro.js b/apps/settings/l10n/ro.js index 9e68b25739b..2dff3b9651f 100644 --- a/apps/settings/l10n/ro.js +++ b/apps/settings/l10n/ro.js @@ -138,6 +138,7 @@ OC.L10N.register( "Two-factor authentication is not enforced for members of the following groups." : "Autentificarea cu doi factori nu este impusă pentru membrii următoarelor grupuri.", "Excluded groups" : "Grupuri excluse", "Save changes" : "Salvează modificările", + "Default" : "Implicită", "Remove" : "Șterge", "Featured" : "Recomandată", "Icon" : "Pictogramă", diff --git a/apps/settings/l10n/ro.json b/apps/settings/l10n/ro.json index 2980437577f..171760808b0 100644 --- a/apps/settings/l10n/ro.json +++ b/apps/settings/l10n/ro.json @@ -136,6 +136,7 @@ "Two-factor authentication is not enforced for members of the following groups." : "Autentificarea cu doi factori nu este impusă pentru membrii următoarelor grupuri.", "Excluded groups" : "Grupuri excluse", "Save changes" : "Salvează modificările", + "Default" : "Implicită", "Remove" : "Șterge", "Featured" : "Recomandată", "Icon" : "Pictogramă", diff --git a/apps/settings/l10n/ru.js b/apps/settings/l10n/ru.js index 41c3fe63f22..4b9adc59ce8 100644 --- a/apps/settings/l10n/ru.js +++ b/apps/settings/l10n/ru.js @@ -416,6 +416,10 @@ OC.L10N.register( "Excluded groups" : "Группы без требования использования двухфакторной аутентификации", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Если выбрано включение или отключение использования двухфакторной проверки подлинности для групп, то для определения, требуется ли от пользователя использовать её, применяются следующие правила: \\n\n - если группы не включены в список, то двухфакторная проверка включена для всех их участников, кроме тех, кто также состоит в группах, проверка для которых отключена;\n - если группы включены в список, то двухфакторная проверка включена для всех участников таких групп;\n- если учётная запись состоит одновременно и в группе, проверка для которой включена и группе, проверка для которой отключена, то приоритет получает использование двухфакторной проверки.", "Save changes" : "Сохранить изменения", + "Default" : "По умолчанию", + "Registered Deploy daemons list" : "Список зарегистрированных служб развертывания", + "No Deploy daemons configured" : "Службы развертывания не настроены", + "Register a custom one or setup from available templates" : "Зарегистрируйте индивидуальный шаблон или настройте его из доступных шаблонов", "Show details for {appName} app" : "Подробные сведения о приложении «{appName}»", "Update to {update}" : "Обновить до {update}", "Remove" : "Удалить", diff --git a/apps/settings/l10n/ru.json b/apps/settings/l10n/ru.json index 31c34892dc9..a3179f6b2b9 100644 --- a/apps/settings/l10n/ru.json +++ b/apps/settings/l10n/ru.json @@ -414,6 +414,10 @@ "Excluded groups" : "Группы без требования использования двухфакторной аутентификации", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Если выбрано включение или отключение использования двухфакторной проверки подлинности для групп, то для определения, требуется ли от пользователя использовать её, применяются следующие правила: \\n\n - если группы не включены в список, то двухфакторная проверка включена для всех их участников, кроме тех, кто также состоит в группах, проверка для которых отключена;\n - если группы включены в список, то двухфакторная проверка включена для всех участников таких групп;\n- если учётная запись состоит одновременно и в группе, проверка для которой включена и группе, проверка для которой отключена, то приоритет получает использование двухфакторной проверки.", "Save changes" : "Сохранить изменения", + "Default" : "По умолчанию", + "Registered Deploy daemons list" : "Список зарегистрированных служб развертывания", + "No Deploy daemons configured" : "Службы развертывания не настроены", + "Register a custom one or setup from available templates" : "Зарегистрируйте индивидуальный шаблон или настройте его из доступных шаблонов", "Show details for {appName} app" : "Подробные сведения о приложении «{appName}»", "Update to {update}" : "Обновить до {update}", "Remove" : "Удалить", diff --git a/apps/settings/l10n/sc.js b/apps/settings/l10n/sc.js index 2bc5c774434..33098fa59be 100644 --- a/apps/settings/l10n/sc.js +++ b/apps/settings/l10n/sc.js @@ -144,6 +144,7 @@ OC.L10N.register( "Two-factor authentication is not enforced for members of the following groups." : "S'autenticatzione a duos fatores no est cunfigurada pro cumponentes de is grupos in fatu.", "Excluded groups" : "Grupos esclùdidos", "Save changes" : "Sarva càmbios", + "Default" : "Predefinidu", "Update to {update}" : "Agiorna a {update}", "Remove" : "Boga", "Featured" : "In evidèntzia", diff --git a/apps/settings/l10n/sc.json b/apps/settings/l10n/sc.json index a75db28c4ab..d06c0d55147 100644 --- a/apps/settings/l10n/sc.json +++ b/apps/settings/l10n/sc.json @@ -142,6 +142,7 @@ "Two-factor authentication is not enforced for members of the following groups." : "S'autenticatzione a duos fatores no est cunfigurada pro cumponentes de is grupos in fatu.", "Excluded groups" : "Grupos esclùdidos", "Save changes" : "Sarva càmbios", + "Default" : "Predefinidu", "Update to {update}" : "Agiorna a {update}", "Remove" : "Boga", "Featured" : "In evidèntzia", diff --git a/apps/settings/l10n/sk.js b/apps/settings/l10n/sk.js index 5c53adc2ca7..c3ca97023c3 100644 --- a/apps/settings/l10n/sk.js +++ b/apps/settings/l10n/sk.js @@ -408,6 +408,10 @@ OC.L10N.register( "Excluded groups" : "Vynechané skupiny", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Pokiaľ sú skupiny vybraté/vynechané, je pre zisťovanie či je účtu vynútené dvojfaktorové (2FA) overovanie použitá nasledovná logika: Ak nie sú vybraté žiadne skupiny, je 2FA zapnuté pre všetkých okrem členov vynechaných skupín. Ak sú nejaké skupiny vybraté, je 2FA zapnuté pre všetkých jej členov. Ak je účet členom ako vybratej, tak aj vynechanej skupiny, potom má vybratá skupina prednosť a 2FA je vynútené.", "Save changes" : "Uložiť zmeny", + "Default" : "Predvolené", + "Registered Deploy daemons list" : "Zoznam registrovaných démonov nasadenia", + "No Deploy daemons configured" : "Neboli nastavené žiadne Démony nasadeia", + "Register a custom one or setup from available templates" : "Zaregistrujte si vlastný alebo ho nastavte z dostupných šablón", "Show details for {appName} app" : "Zobraziť podrobnosti o aplikácii {appName}", "Update to {update}" : "Aktualizovať na {update}", "Remove" : "Odstrániť", diff --git a/apps/settings/l10n/sk.json b/apps/settings/l10n/sk.json index 50f324bc1c5..857d989adb7 100644 --- a/apps/settings/l10n/sk.json +++ b/apps/settings/l10n/sk.json @@ -406,6 +406,10 @@ "Excluded groups" : "Vynechané skupiny", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Pokiaľ sú skupiny vybraté/vynechané, je pre zisťovanie či je účtu vynútené dvojfaktorové (2FA) overovanie použitá nasledovná logika: Ak nie sú vybraté žiadne skupiny, je 2FA zapnuté pre všetkých okrem členov vynechaných skupín. Ak sú nejaké skupiny vybraté, je 2FA zapnuté pre všetkých jej členov. Ak je účet členom ako vybratej, tak aj vynechanej skupiny, potom má vybratá skupina prednosť a 2FA je vynútené.", "Save changes" : "Uložiť zmeny", + "Default" : "Predvolené", + "Registered Deploy daemons list" : "Zoznam registrovaných démonov nasadenia", + "No Deploy daemons configured" : "Neboli nastavené žiadne Démony nasadeia", + "Register a custom one or setup from available templates" : "Zaregistrujte si vlastný alebo ho nastavte z dostupných šablón", "Show details for {appName} app" : "Zobraziť podrobnosti o aplikácii {appName}", "Update to {update}" : "Aktualizovať na {update}", "Remove" : "Odstrániť", diff --git a/apps/settings/l10n/sl.js b/apps/settings/l10n/sl.js index e96e235de9f..ab2341a6986 100644 --- a/apps/settings/l10n/sl.js +++ b/apps/settings/l10n/sl.js @@ -286,6 +286,7 @@ OC.L10N.register( "Two-factor authentication is not enforced for members of the following groups." : "Dvo-stopenjsko overjanje ni obvezno za člane navedenih skupin.", "Excluded groups" : "Izločene skupine", "Save changes" : "Shrani spremembe", + "Default" : "Privzeto", "Show details for {appName} app" : "Pokaži podrobnosti programa {appName}", "Update to {update}" : "Posodobi na različico {update}", "Remove" : "Odstrani", diff --git a/apps/settings/l10n/sl.json b/apps/settings/l10n/sl.json index 959d567c3f4..a5080347e97 100644 --- a/apps/settings/l10n/sl.json +++ b/apps/settings/l10n/sl.json @@ -284,6 +284,7 @@ "Two-factor authentication is not enforced for members of the following groups." : "Dvo-stopenjsko overjanje ni obvezno za člane navedenih skupin.", "Excluded groups" : "Izločene skupine", "Save changes" : "Shrani spremembe", + "Default" : "Privzeto", "Show details for {appName} app" : "Pokaži podrobnosti programa {appName}", "Update to {update}" : "Posodobi na različico {update}", "Remove" : "Odstrani", diff --git a/apps/settings/l10n/sq.js b/apps/settings/l10n/sq.js index a574b182c20..ff8ff584dac 100644 --- a/apps/settings/l10n/sq.js +++ b/apps/settings/l10n/sq.js @@ -88,6 +88,7 @@ OC.L10N.register( "This text will be shown on the public link upload page when the file list is hidden." : "Ky tekst do të shfaqet në linkun publik të faqes së ngarkuar kur lista e skedarit të jetë e fshehur.", "Limit to groups" : "Kufizo grupet", "Save changes" : "Ruaj ndryshimet", + "Default" : "Paraprake", "Remove" : "Hiqe", "Featured" : "I paraqitur", "Icon" : "Ikonë", diff --git a/apps/settings/l10n/sq.json b/apps/settings/l10n/sq.json index 1cbea7615e5..74eda7e5f28 100644 --- a/apps/settings/l10n/sq.json +++ b/apps/settings/l10n/sq.json @@ -86,6 +86,7 @@ "This text will be shown on the public link upload page when the file list is hidden." : "Ky tekst do të shfaqet në linkun publik të faqes së ngarkuar kur lista e skedarit të jetë e fshehur.", "Limit to groups" : "Kufizo grupet", "Save changes" : "Ruaj ndryshimet", + "Default" : "Paraprake", "Remove" : "Hiqe", "Featured" : "I paraqitur", "Icon" : "Ikonë", diff --git a/apps/settings/l10n/sr.js b/apps/settings/l10n/sr.js index 393864ba204..99361f3eefe 100644 --- a/apps/settings/l10n/sr.js +++ b/apps/settings/l10n/sr.js @@ -416,6 +416,10 @@ OC.L10N.register( "Excluded groups" : "Искључене групе", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Када се групе означе/искључе, користи се следећа логика да се закључи да ли се за налог захтева 2FA: ако није одабрана ниједна група, 2FA је укључен свима осим члановима искључених група. Ако има одабраних група, 2FA је укључен само њиховим члановима. Ако је налог у исто време у одабраној и у искљученој групи, одабрана група има предност и 2FA се захтева.", "Save changes" : "Сними измене", + "Default" : "Подразумевано", + "Registered Deploy daemons list" : "Листа регистрованих Даемона за постављање", + "No Deploy daemons configured" : "Није подешен ниједан Даемон за постављање", + "Register a custom one or setup from available templates" : "Региструјте произвољни или подесите неки према доступном шаблону", "Show details for {appName} app" : "Прикажи детаље апликације {appName}", "Update to {update}" : "Ажурирај на {update}", "Remove" : "Уклони", diff --git a/apps/settings/l10n/sr.json b/apps/settings/l10n/sr.json index e4cac6921fc..a19dc3c091b 100644 --- a/apps/settings/l10n/sr.json +++ b/apps/settings/l10n/sr.json @@ -414,6 +414,10 @@ "Excluded groups" : "Искључене групе", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Када се групе означе/искључе, користи се следећа логика да се закључи да ли се за налог захтева 2FA: ако није одабрана ниједна група, 2FA је укључен свима осим члановима искључених група. Ако има одабраних група, 2FA је укључен само њиховим члановима. Ако је налог у исто време у одабраној и у искљученој групи, одабрана група има предност и 2FA се захтева.", "Save changes" : "Сними измене", + "Default" : "Подразумевано", + "Registered Deploy daemons list" : "Листа регистрованих Даемона за постављање", + "No Deploy daemons configured" : "Није подешен ниједан Даемон за постављање", + "Register a custom one or setup from available templates" : "Региструјте произвољни или подесите неки према доступном шаблону", "Show details for {appName} app" : "Прикажи детаље апликације {appName}", "Update to {update}" : "Ажурирај на {update}", "Remove" : "Уклони", diff --git a/apps/settings/l10n/sv.js b/apps/settings/l10n/sv.js index 854feb78d73..0fd716e6bff 100644 --- a/apps/settings/l10n/sv.js +++ b/apps/settings/l10n/sv.js @@ -287,6 +287,7 @@ OC.L10N.register( "Two-factor authentication is not enforced for members of the following groups." : "Tvåfaktorsautentisering är inte påtvingad för medlemmar i följande grupper.", "Excluded groups" : "Exkluderade grupper", "Save changes" : "Spara ändringar", + "Default" : "Förvald", "Show details for {appName} app" : "Visa detaljer för appen {appName}", "Update to {update}" : "Uppdatera till {update}", "Remove" : "Ta bort", diff --git a/apps/settings/l10n/sv.json b/apps/settings/l10n/sv.json index 92f0307ce10..97ecfe9c09a 100644 --- a/apps/settings/l10n/sv.json +++ b/apps/settings/l10n/sv.json @@ -285,6 +285,7 @@ "Two-factor authentication is not enforced for members of the following groups." : "Tvåfaktorsautentisering är inte påtvingad för medlemmar i följande grupper.", "Excluded groups" : "Exkluderade grupper", "Save changes" : "Spara ändringar", + "Default" : "Förvald", "Show details for {appName} app" : "Visa detaljer för appen {appName}", "Update to {update}" : "Uppdatera till {update}", "Remove" : "Ta bort", diff --git a/apps/settings/l10n/tr.js b/apps/settings/l10n/tr.js index ff6ab78ce80..68ac2277ece 100644 --- a/apps/settings/l10n/tr.js +++ b/apps/settings/l10n/tr.js @@ -418,6 +418,10 @@ OC.L10N.register( "Excluded groups" : "Uygulanmayacak gruplar", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Uygulanan ya da uygulanmayan gruplar belirtildiğinde, bir hesap için iki adımlı doğrulamanın zorunlu kılınıp kılınmayacağına şu şekilde karar verilir. Herhangi bir grup belirtilmemiş ise, uygulanmayan grupların üyeleri dışındaki tüm üyeler için iki adımlı doğrulama kullanılır. Belirtilmiş gruplar varsa, uygulanan bu grupların üyeleri için iki adımlı doğrulama kullanılır. Bir hesabın hem uygulanan hem de uygulanmayan gruplarda üyeliği varsa, uygulanan grupların önceliği vardır ve iki adımlı doğrulama zorunlu kılınır.", "Save changes" : "Değişiklikleri kaydet", + "Default" : "Varsayılan", + "Registered Deploy daemons list" : "Kaydedilmiş dağıtım arka plan işlemleri listesi", + "No Deploy daemons configured" : "Herhangi bir dağıtım arka plan işlemi yapılandırılmamış", + "Register a custom one or setup from available templates" : "Özel bir tane kaydedin ya da kullanılabilecek kalıplardan kurun", "Show details for {appName} app" : "{appName} uygulamasının ayrıntılarını görüntüle", "Update to {update}" : "{update} sürümüne güncelle", "Remove" : "Kaldır", diff --git a/apps/settings/l10n/tr.json b/apps/settings/l10n/tr.json index f1f2a3a9ddb..58be80541ef 100644 --- a/apps/settings/l10n/tr.json +++ b/apps/settings/l10n/tr.json @@ -416,6 +416,10 @@ "Excluded groups" : "Uygulanmayacak gruplar", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Uygulanan ya da uygulanmayan gruplar belirtildiğinde, bir hesap için iki adımlı doğrulamanın zorunlu kılınıp kılınmayacağına şu şekilde karar verilir. Herhangi bir grup belirtilmemiş ise, uygulanmayan grupların üyeleri dışındaki tüm üyeler için iki adımlı doğrulama kullanılır. Belirtilmiş gruplar varsa, uygulanan bu grupların üyeleri için iki adımlı doğrulama kullanılır. Bir hesabın hem uygulanan hem de uygulanmayan gruplarda üyeliği varsa, uygulanan grupların önceliği vardır ve iki adımlı doğrulama zorunlu kılınır.", "Save changes" : "Değişiklikleri kaydet", + "Default" : "Varsayılan", + "Registered Deploy daemons list" : "Kaydedilmiş dağıtım arka plan işlemleri listesi", + "No Deploy daemons configured" : "Herhangi bir dağıtım arka plan işlemi yapılandırılmamış", + "Register a custom one or setup from available templates" : "Özel bir tane kaydedin ya da kullanılabilecek kalıplardan kurun", "Show details for {appName} app" : "{appName} uygulamasının ayrıntılarını görüntüle", "Update to {update}" : "{update} sürümüne güncelle", "Remove" : "Kaldır", diff --git a/apps/settings/l10n/ug.js b/apps/settings/l10n/ug.js index 55557162fec..f32989b1892 100644 --- a/apps/settings/l10n/ug.js +++ b/apps/settings/l10n/ug.js @@ -379,6 +379,10 @@ OC.L10N.register( "Excluded groups" : "چىقىرىۋېتىلگەن گۇرۇپپىلار", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "گۇرۇپپىلار تاللانغان / چىقىرىۋېتىلگەندە ، ئۇلار تۆۋەندىكى لوگىكا ئارقىلىق ھېساباتنىڭ 2FA ئىجرا قىلىنغان-قىلىنمىغانلىقىنى ئېنىقلايدۇ: ئەگەر گۇرۇپپا تاللانمىسا ، چىقىرىۋېتىلگەن گۇرۇپپا ئەزالىرىدىن باشقا ھەممە ئادەم ئۈچۈن 2FA قوزغىتىلىدۇ. ئەگەر گۇرۇپپىلار تاللانسا ، بۇلارنىڭ بارلىق ئەزالىرى ئۈچۈن 2FA قوزغىتىلغان. ئەگەر ھېسابات تاللانغان ۋە چىقىرىۋېتىلگەن گۇرۇپپىدا بولسا ، تاللانغانلار ئالدىنقى ئورۇنغا قويىدۇ ۋە 2FA ئىجرا قىلىنىدۇ.", "Save changes" : "ئۆزگەرتىشلەرنى ساقلاڭ", + "Default" : "كۆڭۈلدىكى", + "Registered Deploy daemons list" : "تىزىملاتقان دامونلار تىزىملىكى", + "No Deploy daemons configured" : "ھېچقانداق ئورۇنلاشتۇرۇش لايىھىسى سەپلەنمىگەن", + "Register a custom one or setup from available templates" : "ئىختىيارى قېلىپ ياكى تىزىملىتىڭ", "Show details for {appName} app" : "{appName} دېتالىنىڭ تەپسىلاتلىرىنى كۆرسىتىڭ", "Update to {update}" : "{update} غا يېڭىلاش", "Remove" : "چىقىرىۋەت", diff --git a/apps/settings/l10n/ug.json b/apps/settings/l10n/ug.json index 8ba3fbcfa23..ef6c22c0b50 100644 --- a/apps/settings/l10n/ug.json +++ b/apps/settings/l10n/ug.json @@ -377,6 +377,10 @@ "Excluded groups" : "چىقىرىۋېتىلگەن گۇرۇپپىلار", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "گۇرۇپپىلار تاللانغان / چىقىرىۋېتىلگەندە ، ئۇلار تۆۋەندىكى لوگىكا ئارقىلىق ھېساباتنىڭ 2FA ئىجرا قىلىنغان-قىلىنمىغانلىقىنى ئېنىقلايدۇ: ئەگەر گۇرۇپپا تاللانمىسا ، چىقىرىۋېتىلگەن گۇرۇپپا ئەزالىرىدىن باشقا ھەممە ئادەم ئۈچۈن 2FA قوزغىتىلىدۇ. ئەگەر گۇرۇپپىلار تاللانسا ، بۇلارنىڭ بارلىق ئەزالىرى ئۈچۈن 2FA قوزغىتىلغان. ئەگەر ھېسابات تاللانغان ۋە چىقىرىۋېتىلگەن گۇرۇپپىدا بولسا ، تاللانغانلار ئالدىنقى ئورۇنغا قويىدۇ ۋە 2FA ئىجرا قىلىنىدۇ.", "Save changes" : "ئۆزگەرتىشلەرنى ساقلاڭ", + "Default" : "كۆڭۈلدىكى", + "Registered Deploy daemons list" : "تىزىملاتقان دامونلار تىزىملىكى", + "No Deploy daemons configured" : "ھېچقانداق ئورۇنلاشتۇرۇش لايىھىسى سەپلەنمىگەن", + "Register a custom one or setup from available templates" : "ئىختىيارى قېلىپ ياكى تىزىملىتىڭ", "Show details for {appName} app" : "{appName} دېتالىنىڭ تەپسىلاتلىرىنى كۆرسىتىڭ", "Update to {update}" : "{update} غا يېڭىلاش", "Remove" : "چىقىرىۋەت", diff --git a/apps/settings/l10n/uk.js b/apps/settings/l10n/uk.js index c486430f230..46eae517b63 100644 --- a/apps/settings/l10n/uk.js +++ b/apps/settings/l10n/uk.js @@ -345,6 +345,7 @@ OC.L10N.register( "Unified task processing" : "Централізована обробка завдань ", "AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Завдання штучного інтелекту можуть виконуватися різними програмами. Тут ви можете вказати, яку програму слід використовувати для виконання того чи іншого завдання.", "Allow AI usage for guest users" : "Дозволити використання ШІ для гостьових користувачів", + "Provider for Task types" : "Постачальник для типів завдань", "Enable" : "Увімкнути", "None of your currently installed apps provide Task processing functionality" : "Жодний зі встановлених застосунків не надає функціональність з обробки завдань", "Machine translation" : "Машинний переклад", @@ -419,6 +420,10 @@ OC.L10N.register( "Excluded groups" : "Виключені групи", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Якщо вибрано/виключено групи, то застосовується така логіка визначення, чи до користувача застосовується двофакторна авторизація: якщо не вибрано жодної групи, двофакторну авторизацію ввімкнено для всіх, крім учасників виключених груп. Якщо вибрано групи, для всіх учасників увімкнено двофакторну авторизацію. Якщо користувач одночасно входить до вибраної групи та виключеної групи, то вибрана група має пріоритет і в такому випадку до цього користувача застосовується двофакторна авторизація.", "Save changes" : "Зберегти зміни", + "Default" : "Типово", + "Registered Deploy daemons list" : "Список зареєстрованих демонів розгортання", + "No Deploy daemons configured" : "Не налаштовано демонів розгортання", + "Register a custom one or setup from available templates" : "Зареєструвати власний або налаштувати з доступних шаблонів", "Show details for {appName} app" : "Показати деталі для застосунку {appName}", "Update to {update}" : "Оновити до {update}", "Remove" : "Вилучити", diff --git a/apps/settings/l10n/uk.json b/apps/settings/l10n/uk.json index cc3f228466b..a818cf9def4 100644 --- a/apps/settings/l10n/uk.json +++ b/apps/settings/l10n/uk.json @@ -343,6 +343,7 @@ "Unified task processing" : "Централізована обробка завдань ", "AI tasks can be implemented by different apps. Here you can set which app should be used for which task." : "Завдання штучного інтелекту можуть виконуватися різними програмами. Тут ви можете вказати, яку програму слід використовувати для виконання того чи іншого завдання.", "Allow AI usage for guest users" : "Дозволити використання ШІ для гостьових користувачів", + "Provider for Task types" : "Постачальник для типів завдань", "Enable" : "Увімкнути", "None of your currently installed apps provide Task processing functionality" : "Жодний зі встановлених застосунків не надає функціональність з обробки завдань", "Machine translation" : "Машинний переклад", @@ -417,6 +418,10 @@ "Excluded groups" : "Виключені групи", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "Якщо вибрано/виключено групи, то застосовується така логіка визначення, чи до користувача застосовується двофакторна авторизація: якщо не вибрано жодної групи, двофакторну авторизацію ввімкнено для всіх, крім учасників виключених груп. Якщо вибрано групи, для всіх учасників увімкнено двофакторну авторизацію. Якщо користувач одночасно входить до вибраної групи та виключеної групи, то вибрана група має пріоритет і в такому випадку до цього користувача застосовується двофакторна авторизація.", "Save changes" : "Зберегти зміни", + "Default" : "Типово", + "Registered Deploy daemons list" : "Список зареєстрованих демонів розгортання", + "No Deploy daemons configured" : "Не налаштовано демонів розгортання", + "Register a custom one or setup from available templates" : "Зареєструвати власний або налаштувати з доступних шаблонів", "Show details for {appName} app" : "Показати деталі для застосунку {appName}", "Update to {update}" : "Оновити до {update}", "Remove" : "Вилучити", diff --git a/apps/settings/l10n/zh_CN.js b/apps/settings/l10n/zh_CN.js index c4db099cbe6..0ada283f2ac 100644 --- a/apps/settings/l10n/zh_CN.js +++ b/apps/settings/l10n/zh_CN.js @@ -419,6 +419,10 @@ OC.L10N.register( "Excluded groups" : "排除群组", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "选择/排除 组时,它们使用以下逻辑来确定帐户是否强制执行 2FA:如果未选择任何组,则将为除排除组的成员之外的所有人启用 2FA。 如果选择组,则会为其中的所有成员启用 2FA。 如果账户同时位于选定组和排除组中,则选定组优先并强制执行 2FA。", "Save changes" : "保存修改", + "Default" : "默认", + "Registered Deploy daemons list" : "已注册的部署守护进程列表", + "No Deploy daemons configured" : "没有部署守护进程配置", + "Register a custom one or setup from available templates" : "注册自定义模板或从可用模板进行安装", "Show details for {appName} app" : "显示应用 {appName} 的详细信息", "Update to {update}" : "更新至 {update}", "Remove" : "移除", diff --git a/apps/settings/l10n/zh_CN.json b/apps/settings/l10n/zh_CN.json index 3526400cf2d..c22a50fefb7 100644 --- a/apps/settings/l10n/zh_CN.json +++ b/apps/settings/l10n/zh_CN.json @@ -417,6 +417,10 @@ "Excluded groups" : "排除群组", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "选择/排除 组时,它们使用以下逻辑来确定帐户是否强制执行 2FA:如果未选择任何组,则将为除排除组的成员之外的所有人启用 2FA。 如果选择组,则会为其中的所有成员启用 2FA。 如果账户同时位于选定组和排除组中,则选定组优先并强制执行 2FA。", "Save changes" : "保存修改", + "Default" : "默认", + "Registered Deploy daemons list" : "已注册的部署守护进程列表", + "No Deploy daemons configured" : "没有部署守护进程配置", + "Register a custom one or setup from available templates" : "注册自定义模板或从可用模板进行安装", "Show details for {appName} app" : "显示应用 {appName} 的详细信息", "Update to {update}" : "更新至 {update}", "Remove" : "移除", diff --git a/apps/settings/l10n/zh_HK.js b/apps/settings/l10n/zh_HK.js index 9e5eff6e9a8..775b486d6d6 100644 --- a/apps/settings/l10n/zh_HK.js +++ b/apps/settings/l10n/zh_HK.js @@ -420,6 +420,10 @@ OC.L10N.register( "Excluded groups" : "排除的群組", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "選擇/排除群組時,其使用以下邏輯來確定帳戶是否強制啟用雙因素驗證:如果沒有選擇群組,雙因素驗證對所有除了排除群組以外的成員啟用。若選擇了群組,則雙因素驗證會對所有該群組的成員啟用。如果某個帳戶同時位在選擇與排除的群組,則被選擇的群組優先程度較高,因此會強制啟用雙因素驗證。", "Save changes" : "儲存變更", + "Default" : "默認", + "Registered Deploy daemons list" : "已註冊的部署幕後程式清單", + "No Deploy daemons configured" : "未設定部署幕後程式", + "Register a custom one or setup from available templates" : "從可用範本註冊自訂範本或設定", "Show details for {appName} app" : "顯示 {appName} 應用程式的詳細資訊", "Update to {update}" : "更新到 {update}", "Remove" : "移除", diff --git a/apps/settings/l10n/zh_HK.json b/apps/settings/l10n/zh_HK.json index 7701813a63d..9c9dbb6f271 100644 --- a/apps/settings/l10n/zh_HK.json +++ b/apps/settings/l10n/zh_HK.json @@ -418,6 +418,10 @@ "Excluded groups" : "排除的群組", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "選擇/排除群組時,其使用以下邏輯來確定帳戶是否強制啟用雙因素驗證:如果沒有選擇群組,雙因素驗證對所有除了排除群組以外的成員啟用。若選擇了群組,則雙因素驗證會對所有該群組的成員啟用。如果某個帳戶同時位在選擇與排除的群組,則被選擇的群組優先程度較高,因此會強制啟用雙因素驗證。", "Save changes" : "儲存變更", + "Default" : "默認", + "Registered Deploy daemons list" : "已註冊的部署幕後程式清單", + "No Deploy daemons configured" : "未設定部署幕後程式", + "Register a custom one or setup from available templates" : "從可用範本註冊自訂範本或設定", "Show details for {appName} app" : "顯示 {appName} 應用程式的詳細資訊", "Update to {update}" : "更新到 {update}", "Remove" : "移除", diff --git a/apps/settings/l10n/zh_TW.js b/apps/settings/l10n/zh_TW.js index af5d3ffc762..9806745beea 100644 --- a/apps/settings/l10n/zh_TW.js +++ b/apps/settings/l10n/zh_TW.js @@ -420,6 +420,10 @@ OC.L10N.register( "Excluded groups" : "排除的群組", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "選取/排除群組時,其使用以下邏輯來確定帳號是否強制啟用雙因素驗證:如果沒有選取群組,雙因素驗證對所有除了排除群組以外的成員啟用。若選取了群組,則雙因素驗證會對所有該群組的成員啟用。如果某個帳號同時位在選取與排除的群組,則被選取的群組優先程度較高,因此會強制啟用雙因素驗證。", "Save changes" : "儲存變更", + "Default" : "預設", + "Registered Deploy daemons list" : "已註冊的部署幕後程式清單", + "No Deploy daemons configured" : "未設定部署幕後程式", + "Register a custom one or setup from available templates" : "從可用範本註冊自訂範本或設定", "Show details for {appName} app" : "顯示 {appName} 應用程式的詳細資訊", "Update to {update}" : "更新到 {update}", "Remove" : "移除", diff --git a/apps/settings/l10n/zh_TW.json b/apps/settings/l10n/zh_TW.json index da9f3178513..9f4cbb94344 100644 --- a/apps/settings/l10n/zh_TW.json +++ b/apps/settings/l10n/zh_TW.json @@ -418,6 +418,10 @@ "Excluded groups" : "排除的群組", "When groups are selected/excluded, they use the following logic to determine if an account has 2FA enforced: If no groups are selected, 2FA is enabled for everyone except members of the excluded groups. If groups are selected, 2FA is enabled for all members of these. If an account is both in a selected and excluded group, the selected takes precedence and 2FA is enforced." : "選取/排除群組時,其使用以下邏輯來確定帳號是否強制啟用雙因素驗證:如果沒有選取群組,雙因素驗證對所有除了排除群組以外的成員啟用。若選取了群組,則雙因素驗證會對所有該群組的成員啟用。如果某個帳號同時位在選取與排除的群組,則被選取的群組優先程度較高,因此會強制啟用雙因素驗證。", "Save changes" : "儲存變更", + "Default" : "預設", + "Registered Deploy daemons list" : "已註冊的部署幕後程式清單", + "No Deploy daemons configured" : "未設定部署幕後程式", + "Register a custom one or setup from available templates" : "從可用範本註冊自訂範本或設定", "Show details for {appName} app" : "顯示 {appName} 應用程式的詳細資訊", "Update to {update}" : "更新到 {update}", "Remove" : "移除", diff --git a/apps/settings/lib/Settings/Admin/Sharing.php b/apps/settings/lib/Settings/Admin/Sharing.php index e038b2a6231..ec5dcdf624d 100644 --- a/apps/settings/lib/Settings/Admin/Sharing.php +++ b/apps/settings/lib/Settings/Admin/Sharing.php @@ -68,7 +68,7 @@ class Sharing implements IDelegatedSettings { 'excludeGroups' => $this->config->getAppValue('core', 'shareapi_exclude_groups', 'no'), 'excludeGroupsList' => json_decode($excludedGroups, true) ?? [], 'publicShareDisclaimerText' => $this->config->getAppValue('core', 'shareapi_public_link_disclaimertext'), - 'enableLinkPasswordByDefault' => $this->getHumanBooleanConfig('core', 'shareapi_enable_link_password_by_default'), + 'enableLinkPasswordByDefault' => $this->appConfig->getValueBool('core', ConfigLexicon::SHARE_LINK_PASSWORD_DEFAULT), 'defaultPermissions' => (int)$this->config->getAppValue('core', 'shareapi_default_permissions', (string)Constants::PERMISSION_ALL), 'defaultInternalExpireDate' => $this->getHumanBooleanConfig('core', 'shareapi_default_internal_expire_date'), 'internalExpireAfterNDays' => $this->config->getAppValue('core', 'shareapi_internal_expire_after_n_days', '7'), diff --git a/apps/settings/src/app-types.ts b/apps/settings/src/app-types.ts index 49f0d5a1709..0c448ca907c 100644 --- a/apps/settings/src/app-types.ts +++ b/apps/settings/src/app-types.ts @@ -75,6 +75,7 @@ export interface IDeployDaemon { id: number, name: string, protocol: string, + exAppsCount: number, } export interface IExAppStatus { diff --git a/apps/settings/src/components/AppAPI/DaemonSelectionDialog.vue b/apps/settings/src/components/AppAPI/DaemonSelectionDialog.vue new file mode 100644 index 00000000000..696c77d19ce --- /dev/null +++ b/apps/settings/src/components/AppAPI/DaemonSelectionDialog.vue @@ -0,0 +1,41 @@ +<!-- + - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors + - SPDX-License-Identifier: AGPL-3.0-or-later +--> +<template> + <NcDialog :open="show" + :name="t('settings', 'Choose Deploy Daemon for {appName}', {appName: app.name })" + size="normal" + @update:open="closeModal"> + <DaemonSelectionList :app="app" + :deploy-options="deployOptions" + @close="closeModal" /> + </NcDialog> +</template> + +<script setup> +import { defineProps, defineEmits } from 'vue' +import NcDialog from '@nextcloud/vue/components/NcDialog' +import DaemonSelectionList from './DaemonSelectionList.vue' + +defineProps({ + show: { + type: Boolean, + required: true, + }, + app: { + type: Object, + required: true, + }, + deployOptions: { + type: Object, + required: false, + default: () => ({}), + }, +}) + +const emit = defineEmits(['update:show']) +const closeModal = () => { + emit('update:show', false) +} +</script> diff --git a/apps/settings/src/components/AppAPI/DaemonSelectionEntry.vue b/apps/settings/src/components/AppAPI/DaemonSelectionEntry.vue new file mode 100644 index 00000000000..6b1cefde032 --- /dev/null +++ b/apps/settings/src/components/AppAPI/DaemonSelectionEntry.vue @@ -0,0 +1,77 @@ +<!-- + - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors + - SPDX-License-Identifier: AGPL-3.0-or-later +--> +<template> + <NcListItem :name="itemTitle" + :details="isDefault ? t('settings', 'Default') : ''" + :force-display-actions="true" + :counter-number="daemon.exAppsCount" + :active="isDefault" + counter-type="highlighted" + @click.stop="selectDaemonAndInstall"> + <template #subname> + {{ daemon.accepts_deploy_id }} + </template> + </NcListItem> +</template> + +<script> +import NcListItem from '@nextcloud/vue/components/NcListItem' +import AppManagement from '../../mixins/AppManagement.js' +import { useAppsStore } from '../../store/apps-store' +import { useAppApiStore } from '../../store/app-api-store' + +export default { + name: 'DaemonSelectionEntry', + components: { + NcListItem, + }, + mixins: [AppManagement], // TODO: Convert to Composition API when AppManagement is refactored + props: { + daemon: { + type: Object, + required: true, + }, + isDefault: { + type: Boolean, + required: true, + }, + app: { + type: Object, + required: true, + }, + deployOptions: { + type: Object, + required: false, + default: () => ({}), + }, + }, + setup() { + const store = useAppsStore() + const appApiStore = useAppApiStore() + + return { + store, + appApiStore, + } + }, + computed: { + itemTitle() { + return this.daemon.name + ' - ' + this.daemon.display_name + }, + daemons() { + return this.appApiStore.dockerDaemons + }, + }, + methods: { + closeModal() { + this.$emit('close') + }, + selectDaemonAndInstall() { + this.closeModal() + this.enable(this.app.id, this.daemon, this.deployOptions) + }, + }, +} +</script> diff --git a/apps/settings/src/components/AppAPI/DaemonSelectionList.vue b/apps/settings/src/components/AppAPI/DaemonSelectionList.vue new file mode 100644 index 00000000000..701a17dbe24 --- /dev/null +++ b/apps/settings/src/components/AppAPI/DaemonSelectionList.vue @@ -0,0 +1,77 @@ +<!-- + - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors + - SPDX-License-Identifier: AGPL-3.0-or-later +--> +<template> + <div class="daemon-selection-list"> + <ul v-if="dockerDaemons.length > 0" + :aria-label="t('settings', 'Registered Deploy daemons list')"> + <DaemonSelectionEntry v-for="daemon in dockerDaemons" + :key="daemon.id" + :daemon="daemon" + :is-default="defaultDaemon.name === daemon.name" + :app="app" + :deploy-options="deployOptions" + @close="closeModal" /> + </ul> + <NcEmptyContent v-else + class="daemon-selection-list__empty-content" + :name="t('settings', 'No Deploy daemons configured')" + :description="t('settings', 'Register a custom one or setup from available templates')"> + <template #icon> + <FormatListBullet :size="20" /> + </template> + <template #action> + <NcButton :href="appApiAdminPage"> + {{ t('settings', 'Manage Deploy daemons') }} + </NcButton> + </template> + </NcEmptyContent> + </div> +</template> + +<script setup> +import { computed, defineProps } from 'vue' +import { generateUrl } from '@nextcloud/router' + +import NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent' +import NcButton from '@nextcloud/vue/components/NcButton' +import FormatListBullet from 'vue-material-design-icons/FormatListBulleted.vue' +import DaemonSelectionEntry from './DaemonSelectionEntry.vue' +import { useAppApiStore } from '../../store/app-api-store.ts' + +defineProps({ + app: { + type: Object, + required: true, + }, + deployOptions: { + type: Object, + required: false, + default: () => ({}), + }, +}) + +const appApiStore = useAppApiStore() + +const dockerDaemons = computed(() => appApiStore.dockerDaemons) +const defaultDaemon = computed(() => appApiStore.defaultDaemon) +const appApiAdminPage = computed(() => generateUrl('/settings/admin/app_api')) +const emit = defineEmits(['close']) +const closeModal = () => { + emit('close') +} +</script> + +<style scoped lang="scss"> +.daemon-selection-list { + max-height: 350px; + overflow-y: scroll; + padding: 2rem; + + &__empty-content { + margin-top: 0; + text-align: center; + } +} +</style> diff --git a/apps/settings/src/components/AppList/AppItem.vue b/apps/settings/src/components/AppList/AppItem.vue index d0f39f3c74a..95a98a93cde 100644 --- a/apps/settings/src/components/AppList/AppItem.vue +++ b/apps/settings/src/components/AppList/AppItem.vue @@ -100,7 +100,7 @@ :aria-label="enableButtonTooltip" type="primary" :disabled="!app.canInstall || installing || isLoading || !defaultDeployDaemonAccessible || isInitializing || isDeploying" - @click.stop="enable(app.id)"> + @click.stop="enableButtonAction"> {{ enableButtonText }} </NcButton> <NcButton v-else-if="!app.active" @@ -111,6 +111,10 @@ @click.stop="forceEnable(app.id)"> {{ forceEnableButtonText }} </NcButton> + + <DaemonSelectionDialog v-if="app?.app_api && showSelectDaemonModal" + :show.sync="showSelectDaemonModal" + :app="app" /> </component> </component> </template> @@ -126,6 +130,7 @@ import NcButton from '@nextcloud/vue/components/NcButton' import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper' import { mdiCogOutline } from '@mdi/js' import { useAppApiStore } from '../../store/app-api-store.ts' +import DaemonSelectionDialog from '../AppAPI/DaemonSelectionDialog.vue' export default { name: 'AppItem', @@ -134,6 +139,7 @@ export default { AppScore, NcButton, NcIconSvgWrapper, + DaemonSelectionDialog, }, mixins: [AppManagement, SvgFilterMixin], props: { @@ -177,6 +183,7 @@ export default { isSelected: false, scrolled: false, screenshotLoaded: false, + showSelectDaemonModal: false, } }, computed: { @@ -219,6 +226,23 @@ export default { getDataItemHeaders(columnName) { return this.useBundleView ? [this.headers, columnName].join(' ') : null }, + showSelectionModal() { + this.showSelectDaemonModal = true + }, + async enableButtonAction() { + if (!this.app?.app_api) { + this.enable(this.app.id) + return + } + await this.appApiStore.fetchDockerDaemons() + if (this.appApiStore.dockerDaemons.length === 1 && this.app.needsDownload) { + this.enable(this.app.id, this.appApiStore.dockerDaemons[0]) + } else if (this.app.needsDownload) { + this.showSelectionModal() + } else { + this.enable(this.app.id, this.app.daemon) + } + }, }, } </script> diff --git a/apps/settings/src/components/AppStoreSidebar/AppDeployOptionsModal.vue b/apps/settings/src/components/AppStoreSidebar/AppDeployOptionsModal.vue index 67d4afa6566..0544c3848be 100644 --- a/apps/settings/src/components/AppStoreSidebar/AppDeployOptionsModal.vue +++ b/apps/settings/src/components/AppStoreSidebar/AppDeployOptionsModal.vue @@ -152,6 +152,7 @@ import { computed, ref } from 'vue' import axios from '@nextcloud/axios' import { generateUrl } from '@nextcloud/router' import { loadState } from '@nextcloud/initial-state' +import { emit } from '@nextcloud/event-bus' import NcDialog from '@nextcloud/vue/components/NcDialog' import NcTextField from '@nextcloud/vue/components/NcTextField' @@ -277,8 +278,15 @@ export default { this.configuredDeployOptions = null }) }, - submitDeployOptions() { - this.enable(this.app.id, this.deployOptions) + async submitDeployOptions() { + await this.appApiStore.fetchDockerDaemons() + if (this.appApiStore.dockerDaemons.length === 1 && this.app.needsDownload) { + this.enable(this.app.id, this.appApiStore.dockerDaemons[0], this.deployOptions) + } else if (this.app.needsDownload) { + emit('showDaemonSelectionModal', this.deployOptions) + } else { + this.enable(this.app.id, this.app.daemon, this.deployOptions) + } this.$emit('update:show', false) }, }, diff --git a/apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue b/apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue index 8a387b55ecf..eb66d8f3e3a 100644 --- a/apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue +++ b/apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue @@ -68,7 +68,7 @@ type="button" :value="enableButtonText" :disabled="!app.canInstall || installing || isLoading || !defaultDeployDaemonAccessible || isInitializing || isDeploying" - @click="enable(app.id)"> + @click="enableButtonAction"> <input v-else-if="!app.active && !app.canInstall" :title="forceEnableButtonTooltip" :aria-label="forceEnableButtonTooltip" @@ -195,11 +195,16 @@ <AppDeployOptionsModal v-if="app?.app_api" :show.sync="showDeployOptionsModal" :app="app" /> + <DaemonSelectionDialog v-if="app?.app_api" + :show.sync="showSelectDaemonModal" + :app="app" + :deploy-options="deployOptions" /> </div> </NcAppSidebarTab> </template> <script> +import { subscribe, unsubscribe } from '@nextcloud/event-bus' import NcAppSidebarTab from '@nextcloud/vue/components/NcAppSidebarTab' import NcButton from '@nextcloud/vue/components/NcButton' import NcDateTime from '@nextcloud/vue/components/NcDateTime' @@ -207,6 +212,7 @@ import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper' import NcSelect from '@nextcloud/vue/components/NcSelect' import NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch' import AppDeployOptionsModal from './AppDeployOptionsModal.vue' +import DaemonSelectionDialog from '../AppAPI/DaemonSelectionDialog.vue' import AppManagement from '../../mixins/AppManagement.js' import { mdiBugOutline, mdiFeatureSearchOutline, mdiStar, mdiTextBoxOutline, mdiTooltipQuestionOutline, mdiToyBrickPlusOutline } from '@mdi/js' @@ -224,6 +230,7 @@ export default { NcSelect, NcCheckboxRadioSwitch, AppDeployOptionsModal, + DaemonSelectionDialog, }, mixins: [AppManagement], @@ -256,6 +263,8 @@ export default { groupCheckedAppsData: false, removeData: false, showDeployOptionsModal: false, + showSelectDaemonModal: false, + deployOptions: null, } }, @@ -365,15 +374,40 @@ export default { this.removeData = false }, }, + beforeUnmount() { + this.deployOptions = null + unsubscribe('showDaemonSelectionModal') + }, mounted() { if (this.app.groups.length > 0) { this.groupCheckedAppsData = true } + subscribe('showDaemonSelectionModal', (deployOptions) => { + this.showSelectionModal(deployOptions) + }) }, methods: { toggleRemoveData() { this.removeData = !this.removeData }, + showSelectionModal(deployOptions = null) { + this.deployOptions = deployOptions + this.showSelectDaemonModal = true + }, + async enableButtonAction() { + if (!this.app?.app_api) { + this.enable(this.app.id) + return + } + await this.appApiStore.fetchDockerDaemons() + if (this.appApiStore.dockerDaemons.length === 1 && this.app.needsDownload) { + this.enable(this.app.id, this.appApiStore.dockerDaemons[0]) + } else if (this.app.needsDownload) { + this.showSelectionModal() + } else { + this.enable(this.app.id, this.app.daemon) + } + }, }, } </script> diff --git a/apps/settings/src/mixins/AppManagement.js b/apps/settings/src/mixins/AppManagement.js index b877b8dd88e..3822658589d 100644 --- a/apps/settings/src/mixins/AppManagement.js +++ b/apps/settings/src/mixins/AppManagement.js @@ -188,9 +188,9 @@ export default { .catch((error) => { showError(error) }) } }, - enable(appId, deployOptions = []) { + enable(appId, daemon = null, deployOptions = {}) { if (this.app?.app_api) { - this.appApiStore.enableApp(appId, deployOptions) + this.appApiStore.enableApp(appId, daemon, deployOptions) .then(() => { rebuildNavigation() }) .catch((error) => { showError(error) }) } else { diff --git a/apps/settings/src/store/app-api-store.ts b/apps/settings/src/store/app-api-store.ts index f2f950d6948..769f212ebd7 100644 --- a/apps/settings/src/store/app-api-store.ts +++ b/apps/settings/src/store/app-api-store.ts @@ -25,6 +25,7 @@ interface AppApiState { statusUpdater: number | null | undefined daemonAccessible: boolean defaultDaemon: IDeployDaemon | null + dockerDaemons: IDeployDaemon[] } export const useAppApiStore = defineStore('app-api-apps', { @@ -36,6 +37,7 @@ export const useAppApiStore = defineStore('app-api-apps', { statusUpdater: null, daemonAccessible: loadState('settings', 'defaultDaemonConfigAccessible', false), defaultDaemon: loadState('settings', 'defaultDaemonConfig', null), + dockerDaemons: [], }), getters: { @@ -76,12 +78,12 @@ export const useAppApiStore = defineStore('app-api-apps', { }) }, - enableApp(appId: string, deployOptions: IDeployOptions[] = []) { + enableApp(appId: string, daemon: IDeployDaemon, deployOptions: IDeployOptions) { this.setLoading(appId, true) this.setLoading('install', true) return confirmPassword().then(() => { - return axios.post(generateUrl(`/apps/app_api/apps/enable/${appId}`), { deployOptions }) + return axios.post(generateUrl(`/apps/app_api/apps/enable/${appId}/${daemon.name}`), { deployOptions }) .then((response) => { this.setLoading(appId, false) this.setLoading('install', false) @@ -91,7 +93,7 @@ export const useAppApiStore = defineStore('app-api-apps', { if (!app.installed) { app.installed = true app.needsDownload = false - app.daemon = this.defaultDaemon + app.daemon = daemon app.status = { type: 'install', action: 'deploy', @@ -293,6 +295,18 @@ export const useAppApiStore = defineStore('app-api-apps', { }) }, + async fetchDockerDaemons() { + try { + const { data } = await axios.get(generateUrl('/apps/app_api/daemons')) + this.defaultDaemon = data.daemons.find((daemon: IDeployDaemon) => daemon.name === data.default_daemon_config) + this.dockerDaemons = data.daemons.filter((daemon: IDeployDaemon) => daemon.accepts_deploy_id === 'docker-install') + } catch (error) { + logger.error('[app-api-store] Failed to fetch Docker daemons', { error }) + return false + } + return true + }, + updateAppsStatus() { clearInterval(this.statusUpdater as number) const initializingOrDeployingApps = this.getInitializingOrDeployingApps diff --git a/apps/settings/tests/Settings/Admin/SharingTest.php b/apps/settings/tests/Settings/Admin/SharingTest.php index 12ab5c3cada..f37ade2171f 100644 --- a/apps/settings/tests/Settings/Admin/SharingTest.php +++ b/apps/settings/tests/Settings/Admin/SharingTest.php @@ -57,7 +57,8 @@ class SharingTest extends TestCase { $this->appConfig ->method('getValueBool') ->willReturnMap([ - ['core', 'shareapi_allow_federation_on_public_shares', false, false, true], + ['core', 'shareapi_allow_federation_on_public_shares', true], + ['core', 'shareapi_enable_link_password_by_default', true], ]); $this->config @@ -82,7 +83,6 @@ class SharingTest extends TestCase { ['core', 'shareapi_enforce_expire_date', 'no', 'no'], ['core', 'shareapi_exclude_groups', 'no', 'no'], ['core', 'shareapi_public_link_disclaimertext', '', 'Lorem ipsum'], - ['core', 'shareapi_enable_link_password_by_default', 'no', 'yes'], ['core', 'shareapi_default_permissions', (string)Constants::PERMISSION_ALL, Constants::PERMISSION_ALL], ['core', 'shareapi_default_internal_expire_date', 'no', 'no'], ['core', 'shareapi_internal_expire_after_n_days', '7', '7'], diff --git a/apps/systemtags/l10n/de.js b/apps/systemtags/l10n/de.js index 83172548aa6..3de30227c72 100644 --- a/apps/systemtags/l10n/de.js +++ b/apps/systemtags/l10n/de.js @@ -80,6 +80,7 @@ OC.L10N.register( "Search tag" : "Schlagworte suchen", "Change tag color" : "Schlagwortfarbe ändern", "Create new tag" : "Neues Schlagwort erstellen", + "Choose tags for the selected files" : "Schlagworte für die gewählten Dateien wählen", "Cancel" : "Abbrechen", "Apply" : "Anwenden", "Failed to load tags" : "Schlagworte konnten nicht geladen werden", diff --git a/apps/systemtags/l10n/de.json b/apps/systemtags/l10n/de.json index 0d3e93880cc..65d187e879f 100644 --- a/apps/systemtags/l10n/de.json +++ b/apps/systemtags/l10n/de.json @@ -78,6 +78,7 @@ "Search tag" : "Schlagworte suchen", "Change tag color" : "Schlagwortfarbe ändern", "Create new tag" : "Neues Schlagwort erstellen", + "Choose tags for the selected files" : "Schlagworte für die gewählten Dateien wählen", "Cancel" : "Abbrechen", "Apply" : "Anwenden", "Failed to load tags" : "Schlagworte konnten nicht geladen werden", diff --git a/apps/systemtags/l10n/de_DE.js b/apps/systemtags/l10n/de_DE.js index 2e3bbd42825..e09df64de38 100644 --- a/apps/systemtags/l10n/de_DE.js +++ b/apps/systemtags/l10n/de_DE.js @@ -80,6 +80,7 @@ OC.L10N.register( "Search tag" : "Schlagworte suchen", "Change tag color" : "Schlagwortfarbe ändern", "Create new tag" : "Neues Schlagwort erstellen", + "Choose tags for the selected files" : "Schlagworte für die gewählten Dateien wählen", "Cancel" : "Abbrechen", "Apply" : "Anwenden", "Failed to load tags" : "Schlagworte konnten nicht geladen werden", diff --git a/apps/systemtags/l10n/de_DE.json b/apps/systemtags/l10n/de_DE.json index e0bd61a449a..7401f2f1478 100644 --- a/apps/systemtags/l10n/de_DE.json +++ b/apps/systemtags/l10n/de_DE.json @@ -78,6 +78,7 @@ "Search tag" : "Schlagworte suchen", "Change tag color" : "Schlagwortfarbe ändern", "Create new tag" : "Neues Schlagwort erstellen", + "Choose tags for the selected files" : "Schlagworte für die gewählten Dateien wählen", "Cancel" : "Abbrechen", "Apply" : "Anwenden", "Failed to load tags" : "Schlagworte konnten nicht geladen werden", diff --git a/apps/systemtags/l10n/en_GB.js b/apps/systemtags/l10n/en_GB.js index 8a0d89a3afd..5ad77e5cc50 100644 --- a/apps/systemtags/l10n/en_GB.js +++ b/apps/systemtags/l10n/en_GB.js @@ -80,6 +80,7 @@ OC.L10N.register( "Search tag" : "Search tag", "Change tag color" : "Change tag colour", "Create new tag" : "Create new tag", + "Choose tags for the selected files" : "Choose tags for the selected files", "Cancel" : "Cancel", "Apply" : "Apply", "Failed to load tags" : "Failed to load tags", diff --git a/apps/systemtags/l10n/en_GB.json b/apps/systemtags/l10n/en_GB.json index 63549f34da3..1c35897538f 100644 --- a/apps/systemtags/l10n/en_GB.json +++ b/apps/systemtags/l10n/en_GB.json @@ -78,6 +78,7 @@ "Search tag" : "Search tag", "Change tag color" : "Change tag colour", "Create new tag" : "Create new tag", + "Choose tags for the selected files" : "Choose tags for the selected files", "Cancel" : "Cancel", "Apply" : "Apply", "Failed to load tags" : "Failed to load tags", diff --git a/apps/systemtags/l10n/pl.js b/apps/systemtags/l10n/pl.js index aeeaaaa6812..5f082f9561e 100644 --- a/apps/systemtags/l10n/pl.js +++ b/apps/systemtags/l10n/pl.js @@ -80,6 +80,7 @@ OC.L10N.register( "Search tag" : "Wyszukaj tag", "Change tag color" : "Zmień kolor etykiety", "Create new tag" : "Utwórz nową etykietę", + "Choose tags for the selected files" : "Wybierz tagi dla oznaczonych plików", "Cancel" : "Anuluj", "Apply" : "Zastosuj", "Failed to load tags" : "Nie udało się załadować etykiet", diff --git a/apps/systemtags/l10n/pl.json b/apps/systemtags/l10n/pl.json index 2e85539549d..5f7bf990ae8 100644 --- a/apps/systemtags/l10n/pl.json +++ b/apps/systemtags/l10n/pl.json @@ -78,6 +78,7 @@ "Search tag" : "Wyszukaj tag", "Change tag color" : "Zmień kolor etykiety", "Create new tag" : "Utwórz nową etykietę", + "Choose tags for the selected files" : "Wybierz tagi dla oznaczonych plików", "Cancel" : "Anuluj", "Apply" : "Zastosuj", "Failed to load tags" : "Nie udało się załadować etykiet", diff --git a/apps/systemtags/l10n/uk.js b/apps/systemtags/l10n/uk.js index 6cd6afebdc5..b994991d0bc 100644 --- a/apps/systemtags/l10n/uk.js +++ b/apps/systemtags/l10n/uk.js @@ -80,6 +80,7 @@ OC.L10N.register( "Search tag" : "Шукати мітку", "Change tag color" : "Змінити колір мітки", "Create new tag" : "Створити нову мітку", + "Choose tags for the selected files" : "Виберіть теги для вибраних файлів", "Cancel" : "Скасувати", "Apply" : "Застосувати", "Failed to load tags" : "Не вдалося завантажити мітки", diff --git a/apps/systemtags/l10n/uk.json b/apps/systemtags/l10n/uk.json index 606bb6ab9ef..9b6a862f55e 100644 --- a/apps/systemtags/l10n/uk.json +++ b/apps/systemtags/l10n/uk.json @@ -78,6 +78,7 @@ "Search tag" : "Шукати мітку", "Change tag color" : "Змінити колір мітки", "Create new tag" : "Створити нову мітку", + "Choose tags for the selected files" : "Виберіть теги для вибраних файлів", "Cancel" : "Скасувати", "Apply" : "Застосувати", "Failed to load tags" : "Не вдалося завантажити мітки", diff --git a/apps/systemtags/l10n/zh_HK.js b/apps/systemtags/l10n/zh_HK.js index 5ea874ada0d..d0106295639 100644 --- a/apps/systemtags/l10n/zh_HK.js +++ b/apps/systemtags/l10n/zh_HK.js @@ -80,6 +80,7 @@ OC.L10N.register( "Search tag" : "搜尋標籤", "Change tag color" : "更新標籤顏色", "Create new tag" : "創建新標籤", + "Choose tags for the selected files" : "為選定的檔案選擇標籤", "Cancel" : "取消", "Apply" : "使用", "Failed to load tags" : "載入標記失敗", diff --git a/apps/systemtags/l10n/zh_HK.json b/apps/systemtags/l10n/zh_HK.json index 73a6702f85d..73c25abb5a8 100644 --- a/apps/systemtags/l10n/zh_HK.json +++ b/apps/systemtags/l10n/zh_HK.json @@ -78,6 +78,7 @@ "Search tag" : "搜尋標籤", "Change tag color" : "更新標籤顏色", "Create new tag" : "創建新標籤", + "Choose tags for the selected files" : "為選定的檔案選擇標籤", "Cancel" : "取消", "Apply" : "使用", "Failed to load tags" : "載入標記失敗", diff --git a/apps/systemtags/l10n/zh_TW.js b/apps/systemtags/l10n/zh_TW.js index 767de692929..9755a3964bf 100644 --- a/apps/systemtags/l10n/zh_TW.js +++ b/apps/systemtags/l10n/zh_TW.js @@ -80,6 +80,7 @@ OC.L10N.register( "Search tag" : "搜尋標籤", "Change tag color" : "變更標籤顏色", "Create new tag" : "建立新標籤", + "Choose tags for the selected files" : "為選定的檔案選擇標籤", "Cancel" : "取消", "Apply" : "套用", "Failed to load tags" : "標籤載入失敗", diff --git a/apps/systemtags/l10n/zh_TW.json b/apps/systemtags/l10n/zh_TW.json index 304676bd2fa..e7024ccc214 100644 --- a/apps/systemtags/l10n/zh_TW.json +++ b/apps/systemtags/l10n/zh_TW.json @@ -78,6 +78,7 @@ "Search tag" : "搜尋標籤", "Change tag color" : "變更標籤顏色", "Create new tag" : "建立新標籤", + "Choose tags for the selected files" : "為選定的檔案選擇標籤", "Cancel" : "取消", "Apply" : "套用", "Failed to load tags" : "標籤載入失敗", diff --git a/apps/theming/css/default.css b/apps/theming/css/default.css index 6a6628f074a..41f0272f017 100644 --- a/apps/theming/css/default.css +++ b/apps/theming/css/default.css @@ -79,9 +79,9 @@ --header-menu-item-height: 44px; /* An alpha mask to be applied to all icons on the navigation bar (header menu). * Icons are have a size of 20px but usually we use MDI which have a content of 16px so 2px padding top bottom, - * for better gradient we set those 2px (10% of height) as start and stop positions, this is also somewhat size agnostic as we only depend on the percentage. + * for better gradient we must at first begin at those 2px (10% of height) as start and stop positions. */ - --header-menu-icon-mask: linear-gradient(var(--color-background-plain-text) 10%, color-mix(in srgb, var(--color-background-plain-text), 25% transparent) 90%) alpha; + --header-menu-icon-mask: linear-gradient(var(--color-background-plain-text) 25%, color-mix(in srgb, var(--color-background-plain-text), 55% transparent) 90%) alpha; --navigation-width: 300px; --sidebar-min-width: 300px; diff --git a/apps/theming/lib/Themes/DefaultTheme.php b/apps/theming/lib/Themes/DefaultTheme.php index 7d06926c52f..bdd3048a498 100644 --- a/apps/theming/lib/Themes/DefaultTheme.php +++ b/apps/theming/lib/Themes/DefaultTheme.php @@ -196,9 +196,9 @@ class DefaultTheme implements ITheme { '--header-menu-item-height' => '44px', /* An alpha mask to be applied to all icons on the navigation bar (header menu). * Icons are have a size of 20px but usually we use MDI which have a content of 16px so 2px padding top bottom, - * for better gradient we set those 2px (10% of height) as start and stop positions, this is also somewhat size agnostic as we only depend on the percentage. + * for better gradient we must at first begin at those 2px (10% of height) as start and stop positions. */ - '--header-menu-icon-mask' => 'linear-gradient(var(--color-background-plain-text) 10%, color-mix(in srgb, var(--color-background-plain-text), 25% transparent) 90%) alpha', + '--header-menu-icon-mask' => 'linear-gradient(var(--color-background-plain-text) 25%, color-mix(in srgb, var(--color-background-plain-text), 55% transparent) 90%) alpha', // various structure data '--navigation-width' => '300px', diff --git a/apps/workflowengine/l10n/es.js b/apps/workflowengine/l10n/es.js index ffc254ad2b0..4dec679ca90 100644 --- a/apps/workflowengine/l10n/es.js +++ b/apps/workflowengine/l10n/es.js @@ -70,7 +70,7 @@ OC.L10N.register( "Select groups" : "Seleccionar grupos", "Groups" : "Grupos", "Type to search for group …" : "Teclee para buscar un grupo …", - "Select a trigger" : "Seleccione un trigger", + "Select a trigger" : "Seleccione un disparador", "At least one event must be selected" : "Has de seleccionar al menos un evento", "Add new flow" : "Añadir nuevo flujo", "The configuration is invalid" : "La configuración es incorrecta", diff --git a/apps/workflowengine/l10n/es.json b/apps/workflowengine/l10n/es.json index 2c00e75238c..f25a5a8014b 100644 --- a/apps/workflowengine/l10n/es.json +++ b/apps/workflowengine/l10n/es.json @@ -68,7 +68,7 @@ "Select groups" : "Seleccionar grupos", "Groups" : "Grupos", "Type to search for group …" : "Teclee para buscar un grupo …", - "Select a trigger" : "Seleccione un trigger", + "Select a trigger" : "Seleccione un disparador", "At least one event must be selected" : "Has de seleccionar al menos un evento", "Add new flow" : "Añadir nuevo flujo", "The configuration is invalid" : "La configuración es incorrecta", |