diff options
Diffstat (limited to 'apps/workflowengine')
213 files changed, 4965 insertions, 6254 deletions
diff --git a/apps/workflowengine/.l10nignore b/apps/workflowengine/.l10nignore index 6a63c9d5138..4ba3b9cfa0f 100644 --- a/apps/workflowengine/.l10nignore +++ b/apps/workflowengine/.l10nignore @@ -1 +1,3 @@ +# SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors +# SPDX-License-Identifier: AGPL-3.0-or-later js/ diff --git a/apps/workflowengine/.noopenapi b/apps/workflowengine/.noopenapi new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/apps/workflowengine/.noopenapi diff --git a/apps/workflowengine/appinfo/info.xml b/apps/workflowengine/appinfo/info.xml index 0ec29afd388..ebbfb57e822 100644 --- a/apps/workflowengine/appinfo/info.xml +++ b/apps/workflowengine/appinfo/info.xml @@ -1,11 +1,15 @@ <?xml version="1.0"?> +<!-- + - SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + - SPDX-License-Identifier: AGPL-3.0-or-later +--> <info xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd"> <id>workflowengine</id> <name>Nextcloud workflow engine</name> <summary>Nextcloud workflow engine</summary> <description>Nextcloud workflow engine</description> - <version>2.8.0</version> + <version>2.14.0</version> <licence>agpl</licence> <author>Arthur Schiwon</author> <author>Julius Härtl</author> @@ -22,7 +26,7 @@ <repository>https://github.com/nextcloud/server.git</repository> <dependencies> - <nextcloud min-version="26" max-version="26"/> + <nextcloud min-version="32" max-version="32"/> </dependencies> <background-jobs> diff --git a/apps/workflowengine/appinfo/routes.php b/apps/workflowengine/appinfo/routes.php index b5436e86daa..48e5ed2ef4e 100644 --- a/apps/workflowengine/appinfo/routes.php +++ b/apps/workflowengine/appinfo/routes.php @@ -1,27 +1,8 @@ <?php + /** - * @copyright Copyright (c) 2016 Morris Jobke <hey@morrisjobke.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Joas Schilling <coding@schilljs.com> - * @author Julius Härtl <jus@bitgrid.net> - * @author Morris Jobke <hey@morrisjobke.de> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ return [ 'routes' => [ diff --git a/apps/workflowengine/composer/composer/ClassLoader.php b/apps/workflowengine/composer/composer/ClassLoader.php index fd56bd7d840..7824d8f7eaf 100644 --- a/apps/workflowengine/composer/composer/ClassLoader.php +++ b/apps/workflowengine/composer/composer/ClassLoader.php @@ -45,35 +45,34 @@ class ClassLoader /** @var \Closure(string):void */ private static $includeFile; - /** @var ?string */ + /** @var string|null */ private $vendorDir; // PSR-4 /** - * @var array[] - * @psalm-var array<string, array<string, int>> + * @var array<string, array<string, int>> */ private $prefixLengthsPsr4 = array(); /** - * @var array[] - * @psalm-var array<string, array<int, string>> + * @var array<string, list<string>> */ private $prefixDirsPsr4 = array(); /** - * @var array[] - * @psalm-var array<string, string> + * @var list<string> */ private $fallbackDirsPsr4 = array(); // PSR-0 /** - * @var array[] - * @psalm-var array<string, array<string, string[]>> + * List of PSR-0 prefixes + * + * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) + * + * @var array<string, array<string, list<string>>> */ private $prefixesPsr0 = array(); /** - * @var array[] - * @psalm-var array<string, string> + * @var list<string> */ private $fallbackDirsPsr0 = array(); @@ -81,8 +80,7 @@ class ClassLoader private $useIncludePath = false; /** - * @var string[] - * @psalm-var array<string, string> + * @var array<string, string> */ private $classMap = array(); @@ -90,21 +88,20 @@ class ClassLoader private $classMapAuthoritative = false; /** - * @var bool[] - * @psalm-var array<string, bool> + * @var array<string, bool> */ private $missingClasses = array(); - /** @var ?string */ + /** @var string|null */ private $apcuPrefix; /** - * @var self[] + * @var array<string, self> */ private static $registeredLoaders = array(); /** - * @param ?string $vendorDir + * @param string|null $vendorDir */ public function __construct($vendorDir = null) { @@ -113,7 +110,7 @@ class ClassLoader } /** - * @return string[] + * @return array<string, list<string>> */ public function getPrefixes() { @@ -125,8 +122,7 @@ class ClassLoader } /** - * @return array[] - * @psalm-return array<string, array<int, string>> + * @return array<string, list<string>> */ public function getPrefixesPsr4() { @@ -134,8 +130,7 @@ class ClassLoader } /** - * @return array[] - * @psalm-return array<string, string> + * @return list<string> */ public function getFallbackDirs() { @@ -143,8 +138,7 @@ class ClassLoader } /** - * @return array[] - * @psalm-return array<string, string> + * @return list<string> */ public function getFallbackDirsPsr4() { @@ -152,8 +146,7 @@ class ClassLoader } /** - * @return string[] Array of classname => path - * @psalm-return array<string, string> + * @return array<string, string> Array of classname => path */ public function getClassMap() { @@ -161,8 +154,7 @@ class ClassLoader } /** - * @param string[] $classMap Class to filename map - * @psalm-param array<string, string> $classMap + * @param array<string, string> $classMap Class to filename map * * @return void */ @@ -179,24 +171,25 @@ class ClassLoader * Registers a set of PSR-0 directories for a given prefix, either * appending or prepending to the ones previously set for this prefix. * - * @param string $prefix The prefix - * @param string[]|string $paths The PSR-0 root directories - * @param bool $prepend Whether to prepend the directories + * @param string $prefix The prefix + * @param list<string>|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories * * @return void */ public function add($prefix, $paths, $prepend = false) { + $paths = (array) $paths; if (!$prefix) { if ($prepend) { $this->fallbackDirsPsr0 = array_merge( - (array) $paths, + $paths, $this->fallbackDirsPsr0 ); } else { $this->fallbackDirsPsr0 = array_merge( $this->fallbackDirsPsr0, - (array) $paths + $paths ); } @@ -205,19 +198,19 @@ class ClassLoader $first = $prefix[0]; if (!isset($this->prefixesPsr0[$first][$prefix])) { - $this->prefixesPsr0[$first][$prefix] = (array) $paths; + $this->prefixesPsr0[$first][$prefix] = $paths; return; } if ($prepend) { $this->prefixesPsr0[$first][$prefix] = array_merge( - (array) $paths, + $paths, $this->prefixesPsr0[$first][$prefix] ); } else { $this->prefixesPsr0[$first][$prefix] = array_merge( $this->prefixesPsr0[$first][$prefix], - (array) $paths + $paths ); } } @@ -226,9 +219,9 @@ class ClassLoader * Registers a set of PSR-4 directories for a given namespace, either * appending or prepending to the ones previously set for this namespace. * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param string[]|string $paths The PSR-4 base directories - * @param bool $prepend Whether to prepend the directories + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list<string>|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories * * @throws \InvalidArgumentException * @@ -236,17 +229,18 @@ class ClassLoader */ public function addPsr4($prefix, $paths, $prepend = false) { + $paths = (array) $paths; if (!$prefix) { // Register directories for the root namespace. if ($prepend) { $this->fallbackDirsPsr4 = array_merge( - (array) $paths, + $paths, $this->fallbackDirsPsr4 ); } else { $this->fallbackDirsPsr4 = array_merge( $this->fallbackDirsPsr4, - (array) $paths + $paths ); } } elseif (!isset($this->prefixDirsPsr4[$prefix])) { @@ -256,18 +250,18 @@ class ClassLoader throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); } $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; + $this->prefixDirsPsr4[$prefix] = $paths; } elseif ($prepend) { // Prepend directories for an already registered namespace. $this->prefixDirsPsr4[$prefix] = array_merge( - (array) $paths, + $paths, $this->prefixDirsPsr4[$prefix] ); } else { // Append directories for an already registered namespace. $this->prefixDirsPsr4[$prefix] = array_merge( $this->prefixDirsPsr4[$prefix], - (array) $paths + $paths ); } } @@ -276,8 +270,8 @@ class ClassLoader * Registers a set of PSR-0 directories for a given prefix, * replacing any others previously set for this prefix. * - * @param string $prefix The prefix - * @param string[]|string $paths The PSR-0 base directories + * @param string $prefix The prefix + * @param list<string>|string $paths The PSR-0 base directories * * @return void */ @@ -294,8 +288,8 @@ class ClassLoader * Registers a set of PSR-4 directories for a given namespace, * replacing any others previously set for this namespace. * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param string[]|string $paths The PSR-4 base directories + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list<string>|string $paths The PSR-4 base directories * * @throws \InvalidArgumentException * @@ -429,7 +423,8 @@ class ClassLoader public function loadClass($class) { if ($file = $this->findFile($class)) { - (self::$includeFile)($file); + $includeFile = self::$includeFile; + $includeFile($file); return true; } @@ -480,9 +475,9 @@ class ClassLoader } /** - * Returns the currently registered loaders indexed by their corresponding vendor directories. + * Returns the currently registered loaders keyed by their corresponding vendor directories. * - * @return self[] + * @return array<string, self> */ public static function getRegisteredLoaders() { @@ -560,7 +555,10 @@ class ClassLoader return false; } - private static function initializeIncludeClosure(): void + /** + * @return void + */ + private static function initializeIncludeClosure() { if (self::$includeFile !== null) { return; @@ -574,8 +572,8 @@ class ClassLoader * @param string $file * @return void */ - self::$includeFile = static function($file) { + self::$includeFile = \Closure::bind(static function($file) { include $file; - }; + }, null, null); } } diff --git a/apps/workflowengine/composer/composer/InstalledVersions.php b/apps/workflowengine/composer/composer/InstalledVersions.php index c6b54af7ba2..51e734a774b 100644 --- a/apps/workflowengine/composer/composer/InstalledVersions.php +++ b/apps/workflowengine/composer/composer/InstalledVersions.php @@ -98,7 +98,7 @@ class InstalledVersions { foreach (self::getInstalled() as $installed) { if (isset($installed['versions'][$packageName])) { - return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']); + return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false; } } @@ -119,7 +119,7 @@ class InstalledVersions */ public static function satisfies(VersionParser $parser, $packageName, $constraint) { - $constraint = $parser->parseConstraints($constraint); + $constraint = $parser->parseConstraints((string) $constraint); $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); return $provided->matches($constraint); @@ -328,7 +328,9 @@ class InstalledVersions if (isset(self::$installedByVendor[$vendorDir])) { $installed[] = self::$installedByVendor[$vendorDir]; } elseif (is_file($vendorDir.'/composer/installed.php')) { - $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php'; + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */ + $required = require $vendorDir.'/composer/installed.php'; + $installed[] = self::$installedByVendor[$vendorDir] = $required; if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { self::$installed = $installed[count($installed) - 1]; } @@ -340,12 +342,17 @@ class InstalledVersions // only require the installed.php file if this file is loaded from its dumped location, // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 if (substr(__DIR__, -8, 1) !== 'C') { - self::$installed = require __DIR__ . '/installed.php'; + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */ + $required = require __DIR__ . '/installed.php'; + self::$installed = $required; } else { self::$installed = array(); } } - $installed[] = self::$installed; + + if (self::$installed !== array()) { + $installed[] = self::$installed; + } return $installed; } diff --git a/apps/workflowengine/composer/composer/autoload_classmap.php b/apps/workflowengine/composer/composer/autoload_classmap.php index 39a6c6c4703..0444cce13e7 100644 --- a/apps/workflowengine/composer/composer/autoload_classmap.php +++ b/apps/workflowengine/composer/composer/autoload_classmap.php @@ -23,7 +23,7 @@ return array( 'OCA\\WorkflowEngine\\Command\\Index' => $baseDir . '/../lib/Command/Index.php', 'OCA\\WorkflowEngine\\Controller\\AWorkflowController' => $baseDir . '/../lib/Controller/AWorkflowController.php', 'OCA\\WorkflowEngine\\Controller\\GlobalWorkflowsController' => $baseDir . '/../lib/Controller/GlobalWorkflowsController.php', - 'OCA\\WorkflowEngine\\Controller\\RequestTime' => $baseDir . '/../lib/Controller/RequestTime.php', + 'OCA\\WorkflowEngine\\Controller\\RequestTimeController' => $baseDir . '/../lib/Controller/RequestTimeController.php', 'OCA\\WorkflowEngine\\Controller\\UserWorkflowsController' => $baseDir . '/../lib/Controller/UserWorkflowsController.php', 'OCA\\WorkflowEngine\\Entity\\File' => $baseDir . '/../lib/Entity/File.php', 'OCA\\WorkflowEngine\\Helper\\LogContext' => $baseDir . '/../lib/Helper/LogContext.php', diff --git a/apps/workflowengine/composer/composer/autoload_static.php b/apps/workflowengine/composer/composer/autoload_static.php index e867bfa4feb..0b9ac89ae30 100644 --- a/apps/workflowengine/composer/composer/autoload_static.php +++ b/apps/workflowengine/composer/composer/autoload_static.php @@ -38,7 +38,7 @@ class ComposerStaticInitWorkflowEngine 'OCA\\WorkflowEngine\\Command\\Index' => __DIR__ . '/..' . '/../lib/Command/Index.php', 'OCA\\WorkflowEngine\\Controller\\AWorkflowController' => __DIR__ . '/..' . '/../lib/Controller/AWorkflowController.php', 'OCA\\WorkflowEngine\\Controller\\GlobalWorkflowsController' => __DIR__ . '/..' . '/../lib/Controller/GlobalWorkflowsController.php', - 'OCA\\WorkflowEngine\\Controller\\RequestTime' => __DIR__ . '/..' . '/../lib/Controller/RequestTime.php', + 'OCA\\WorkflowEngine\\Controller\\RequestTimeController' => __DIR__ . '/..' . '/../lib/Controller/RequestTimeController.php', 'OCA\\WorkflowEngine\\Controller\\UserWorkflowsController' => __DIR__ . '/..' . '/../lib/Controller/UserWorkflowsController.php', 'OCA\\WorkflowEngine\\Entity\\File' => __DIR__ . '/..' . '/../lib/Entity/File.php', 'OCA\\WorkflowEngine\\Helper\\LogContext' => __DIR__ . '/..' . '/../lib/Helper/LogContext.php', diff --git a/apps/workflowengine/composer/composer/installed.php b/apps/workflowengine/composer/composer/installed.php index a1f6a8636b4..1a66c7f2416 100644 --- a/apps/workflowengine/composer/composer/installed.php +++ b/apps/workflowengine/composer/composer/installed.php @@ -3,7 +3,7 @@ 'name' => '__root__', 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => 'd51429a47232bbf46a2be832ecfa711f102da802', + 'reference' => 'b1797842784b250fb01ed5e3bf130705eb94751b', 'type' => 'library', 'install_path' => __DIR__ . '/../', 'aliases' => array(), @@ -13,7 +13,7 @@ '__root__' => array( 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => 'd51429a47232bbf46a2be832ecfa711f102da802', + 'reference' => 'b1797842784b250fb01ed5e3bf130705eb94751b', 'type' => 'library', 'install_path' => __DIR__ . '/../', 'aliases' => array(), diff --git a/apps/workflowengine/img/app-dark.svg b/apps/workflowengine/img/app-dark.svg index 65499f393ac..148495ade91 100644 --- a/apps/workflowengine/img/app-dark.svg +++ b/apps/workflowengine/img/app-dark.svg @@ -1 +1 @@ -<svg width="16" height="16" version="1.1" viewbox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="m3.084 3c-1.0027 0-1.834 0.83129-1.834 1.834v2.166h-0.23633c-1.3523-0.019125-1.3523 2.0191 0 2h0.23633v2.166c0 1.0027 0.83129 1.834 1.834 1.834h4.332c1.0027 0 1.834-0.83129 1.834-1.834v-2.166h3.3359l-1.7832 1.7832c-0.98163 0.94251 0.47151 2.3957 1.4141 1.4141l3.4902-3.4902c0.387-0.3878 0.391-1.0229 0-1.4141l-3.4902-3.4902c-0.1883-0.1935-0.4468-0.30271-0.7168-0.30273-0.8974 0-1.3404 1.0909-0.69727 1.7168l1.7832 1.7832h-3.3359v-2.166c0-1.0027-0.83129-1.834-1.834-1.834h-4.332zm0 1.5h4.332c0.19764 0 0.33398 0.13634 0.33398 0.33398v6.332c0 0.19764-0.13634 0.33398-0.33398 0.33398h-4.332c-0.19764 0-0.33398-0.13634-0.33398-0.33398v-6.332c0-0.19764 0.13634-0.33398 0.33398-0.33398z"/></svg> +<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="m3.084 3c-1.0027 0-1.834 0.83129-1.834 1.834v2.166h-0.23633c-1.3523-0.019125-1.3523 2.0191 0 2h0.23633v2.166c0 1.0027 0.83129 1.834 1.834 1.834h4.332c1.0027 0 1.834-0.83129 1.834-1.834v-2.166h3.3359l-1.7832 1.7832c-0.98163 0.94251 0.47151 2.3957 1.4141 1.4141l3.4902-3.4902c0.387-0.3878 0.391-1.0229 0-1.4141l-3.4902-3.4902c-0.1883-0.1935-0.4468-0.30271-0.7168-0.30273-0.8974 0-1.3404 1.0909-0.69727 1.7168l1.7832 1.7832h-3.3359v-2.166c0-1.0027-0.83129-1.834-1.834-1.834h-4.332zm0 1.5h4.332c0.19764 0 0.33398 0.13634 0.33398 0.33398v6.332c0 0.19764-0.13634 0.33398-0.33398 0.33398h-4.332c-0.19764 0-0.33398-0.13634-0.33398-0.33398v-6.332c0-0.19764 0.13634-0.33398 0.33398-0.33398z"/></svg> diff --git a/apps/workflowengine/img/app.svg b/apps/workflowengine/img/app.svg index e17ee96c92d..8d98fac4b69 100644 --- a/apps/workflowengine/img/app.svg +++ b/apps/workflowengine/img/app.svg @@ -1 +1 @@ -<svg width="16" height="16" version="1.1" viewbox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="m3.084 3c-1.0027 0-1.834 0.83129-1.834 1.834v2.166h-0.23633c-1.3523-0.019125-1.3523 2.0191 0 2h0.23633v2.166c0 1.0027 0.83129 1.834 1.834 1.834h4.332c1.0027 0 1.834-0.83129 1.834-1.834v-2.166h3.3359l-1.7832 1.7832c-0.98163 0.94251 0.47151 2.3957 1.4141 1.4141l3.4902-3.4902c0.387-0.3878 0.391-1.0229 0-1.4141l-3.4902-3.4902c-0.1883-0.1935-0.4468-0.30271-0.7168-0.30273-0.8974 0-1.3404 1.0909-0.69727 1.7168l1.7832 1.7832h-3.3359v-2.166c0-1.0027-0.83129-1.834-1.834-1.834h-4.332zm0 1.5h4.332c0.19764 0 0.33398 0.13634 0.33398 0.33398v6.332c0 0.19764-0.13634 0.33398-0.33398 0.33398h-4.332c-0.19764 0-0.33398-0.13634-0.33398-0.33398v-6.332c0-0.19764 0.13634-0.33398 0.33398-0.33398z" fill="#fff"/></svg> +<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="m3.084 3c-1.0027 0-1.834 0.83129-1.834 1.834v2.166h-0.23633c-1.3523-0.019125-1.3523 2.0191 0 2h0.23633v2.166c0 1.0027 0.83129 1.834 1.834 1.834h4.332c1.0027 0 1.834-0.83129 1.834-1.834v-2.166h3.3359l-1.7832 1.7832c-0.98163 0.94251 0.47151 2.3957 1.4141 1.4141l3.4902-3.4902c0.387-0.3878 0.391-1.0229 0-1.4141l-3.4902-3.4902c-0.1883-0.1935-0.4468-0.30271-0.7168-0.30273-0.8974 0-1.3404 1.0909-0.69727 1.7168l1.7832 1.7832h-3.3359v-2.166c0-1.0027-0.83129-1.834-1.834-1.834h-4.332zm0 1.5h4.332c0.19764 0 0.33398 0.13634 0.33398 0.33398v6.332c0 0.19764-0.13634 0.33398-0.33398 0.33398h-4.332c-0.19764 0-0.33398-0.13634-0.33398-0.33398v-6.332c0-0.19764 0.13634-0.33398 0.33398-0.33398z" fill="#fff"/></svg> diff --git a/apps/workflowengine/img/workflow-off.svg b/apps/workflowengine/img/workflow-off.svg new file mode 100644 index 00000000000..d6018ca17f6 --- /dev/null +++ b/apps/workflowengine/img/workflow-off.svg @@ -0,0 +1,4 @@ +<svg width="16" height="16" version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"> + <path d="M 3.0839844 3 C 2.0812854 3 1.25 3.8312754 1.25 4.8339844 L 1.25 7 L 1.0136719 7 C -0.33862677 6.980875 -0.33862677 9.0191 1.0136719 9 L 1.25 9 L 1.25 11.166016 C 1.25 12.168715 2.0812754 13 3.0839844 13 L 7.4160156 13 C 8.4187146 13 9.25 12.168725 9.25 11.166016 L 9.25 9 L 10.060547 9 L 7.75 6.6894531 L 7.75 11.166016 C 7.75 11.363655 7.6136554 11.5 7.4160156 11.5 L 3.0839844 11.5 C 2.8863446 11.5 2.75 11.363655 2.75 11.166016 L 2.75 4.8339844 C 2.75 4.6363446 2.8863446 4.5 3.0839844 4.5 L 5.5605469 4.5 L 4.0605469 3 L 3.0839844 3 z M 6.1816406 3 L 9.25 6.0683594 L 9.25 4.8339844 C 9.25 3.8312854 8.4187246 3 7.4160156 3 L 6.1816406 3 z M 11.5 3.5 C 10.602601 3.5 10.159605 4.5908975 10.802734 5.2167969 L 12.585938 7 L 10.181641 7 L 12.181641 9 L 12.585938 9 L 12.382812 9.203125 L 13.796875 10.617188 L 15.707031 8.7070312 C 16.094031 8.3192316 16.098031 7.6841684 15.707031 7.2929688 L 12.216797 3.8027344 C 12.028497 3.6092346 11.77 3.50002 11.5 3.5 z M 11.324219 10.261719 L 10.802734 10.783203 C 9.8211054 11.725712 11.274208 13.178865 12.216797 12.197266 L 12.738281 11.675781 L 11.324219 10.261719 z " /> + <path d="M 0,1.0606601 1.06066,0 16.00033,14.93967 14.93967,16.00033 Z" /> +</svg> diff --git a/apps/workflowengine/l10n/ar.js b/apps/workflowengine/l10n/ar.js new file mode 100644 index 00000000000..1ba492d4ba0 --- /dev/null +++ b/apps/workflowengine/l10n/ar.js @@ -0,0 +1,123 @@ +OC.L10N.register( + "workflowengine", + { + "The given operator is invalid" : "المُعامل المُعطى غير مقبول", + "The given regular expression is invalid" : "التعبير النمطي Regex المدخل غير صالح", + "The given file size is invalid" : "حجم الملف المُعطى غير مقبول", + "The given tag id is invalid" : "الوسم المعطى غير مقبول", + "The given IP range is invalid" : "نطاق العنوان IP المُعطى غير مقبول.", + "The given IP range is not valid for IPv4" : "نطاق العنوان IP المُعطى غير مقبول بالنسبة لـ IPv4.", + "The given IP range is not valid for IPv6" : "نطاق العنوان IP المُعطى غير مقبول بالنسبة لـ IPv6.", + "The given time span is invalid" : "الفترة الزمنية المُعطاة غير مقبولة", + "The given start time is invalid" : "وقت البداية المُعطى غير مقبول.", + "The given end time is invalid" : "وقت النهاية المُعطى غير مقبول.", + "The given group does not exist" : "المجموعة المُعطاة غير موجودة.", + "File" : "ملف", + "File created" : "عند إنشاء ملف", + "File updated" : "عند تحديث ملف", + "File renamed" : "عند إعادة تسمية ملف", + "File deleted" : "عند حذف ملف", + "File accessed" : "عند الوصول إلى الملف", + "File copied" : "عند نسخ ملف", + "Tag assigned" : "وسم تم تعيينه", + "Someone" : "شخصٌ ما", + "%s created %s" : "%s مُنشأ %s", + "%s modified %s" : "%s مُعدّل %s", + "%s deleted %s" : "%s مُلغىً %s", + "%s accessed %s" : "%s تم الوصول إليه %s", + "%s renamed %s" : "%s مُعاد تسميته %s", + "%s copied %s" : "%s منسوخ %s", + "%s assigned %s to %s" : "%s مُسند %s إلى %s", + "Operation #%s does not exist" : "العملية #%s غير موجودة", + "Entity %s does not exist" : "الكيان %s غير موجود", + "Entity %s is invalid" : "الكيان %s غير مقبول", + "No events are chosen." : "لم يتم اختيار أي أحدث.", + "Entity %s has no event %s" : "الكيان %s ليس له أحداث %s", + "Operation %s does not exist" : "العملية %s غير موجودة", + "Operation %s is invalid" : "العملية%sغير موجودة", + "At least one check needs to be provided" : "يجب تقديم اختيار واحد على الأقل", + "The provided operation data is too long" : "تشغيل البيانات المطلوب كبير جدا", + "Invalid check provided" : "الاختيار المقدم غير صالح", + "Check %s does not exist" : "تحقق من%s غير موجود", + "Check %s is invalid" : "تحقق من%sغير صالح", + "Check %s is not allowed with this entity" : "التحقق من %s غير مسموح به مع هذا الكيان", + "The provided check value is too long" : "قيمة التحقق المقدمة طويلة جدًا", + "Check #%s does not exist" : "تحقق من#%s غير موجود", + "Check %s is invalid or does not exist" : "التحقق من %s فهو غير صالح أو غير موجود", + "Flow" : "أتمتة سير العمل", + "Nextcloud workflow engine" : "محرك أتمتة سير العمل لنكست كلاود", + "Select a filter" : "اختر عامل تصفية", + "Select a comparator" : "اختر أساس المقارنة", + "Remove filter" : "إزالة عامل التصفية", + "Folder" : "مجلد", + "Images" : "صور", + "Office documents" : "مستندات المكتب", + "PDF documents" : "مستندات PDF", + "Custom MIME type" : "نوع MIME مخصص", + "Custom mimetype" : "أنواع ملفات مخصصة", + "Select a file type" : "اختر نوع الملف", + "e.g. httpd/unix-directory" : "على سبيل المثال httpd/unix-directory", + "Please enter a valid time span" : "الرجاء إدخال نطاق زمني صالح", + "Files WebDAV" : "ملفات WebDAV", + "Custom URL" : "عنوان URL مخصص", + "Select a request URL" : "حدد عنوان URL الخاص بالطلب", + "Android client" : "عميل أندرويد", + "iOS client" : "عميل نظام التشغيل iOS", + "Desktop client" : "تطبيق سطح المكتب", + "Thunderbird & Outlook addons" : "إضافات ثندربيرد و أوت لوك", + "Custom user agent" : "وكيل مستخدم مخصص", + "Select a user agent" : "اختر وكيل مستخدم", + "Select groups" : "إختَر مجموعةً", + "Groups" : "المجموعات", + "Type to search for group …" : "أُكتُب اسم المجموعة التي تبحث عنها ...", + "Select a trigger" : "حدد مشغل", + "At least one event must be selected" : "يجب اختيار حدث واحد على الأقل", + "Add new flow" : "إضافة أتمتة سير عمل جديد", + "The configuration is invalid" : "التكوين غير صالح", + "Active" : "فعال", + "Save" : "حفظ", + "When" : "متى", + "and" : "و", + "Add a new filter" : "إضافة عامل تصفية جديد", + "Cancel" : "إلغاء", + "Delete" : "حذف ", + "Available flows" : "أتمتة سير العمل المتاحة", + "For details on how to write your own flow, check out the development documentation." : "للحصول على تفاصيل حول كيفية تطوير أتمتة سير العمل الخاص بك، تحقق من وثائق التطوير.", + "No flows installed" : "لم يتم تثبيت أي أتمتة لسير العمل", + "Ask your administrator to install new flows." : "أطلب من مسؤول النظام تثبيت أتمتة سير عمل جديدة .", + "More flows" : "المزيد من أتمتة سير العمل", + "Browse the App Store" : "إستعرض متجر التطبيقات", + "Show less" : "عرض أقل", + "Show more" : "عرض المزيد", + "Configured flows" : "أتمتة سير العمل المضافة", + "Your flows" : "أتمتة سير العمل الخاص بك", + "No flows configured" : "لم تتم تهيئة أي أتمتة لسير العمل", + "matches" : "متوافق", + "does not match" : "غير متوافق", + "is" : "يكون", + "is not" : "ليس", + "File name" : "اسم ملف", + "File MIME type" : "ملف من النوع MIME", + "File size (upload)" : "حجم الملف (الرفع)", + "less" : "أقل", + "less or equals" : "أقل من أو يساوي", + "greater or equals" : "أكبر أو يساوي", + "greater" : "أكبر من", + "Request remote address" : "العنوان البعيد الخاص بالطلب", + "matches IPv4" : "متوافق مع بروتوكول الانترنت الاصدار الرابع \"IPv4\"", + "does not match IPv4" : "غير متوافق مع بروتوكول الانترنت الاصدار الرابع \"IPv4\"", + "matches IPv6" : "متوافق مع بروتوكول الانترنت الاصدار السادس \"IPv6\"", + "does not match IPv6" : "غير متوافق مع بروتوكول الانترنت الاصدار الرابع \"IPv6\"", + "File system tag" : "وسم ملف النظام", + "is tagged with" : "موسوم بـ", + "is not tagged with" : "غير موسوم بـ", + "Request URL" : "عنوان محدد موقع الموارد المُوحّد \"URL\" الخاص بالطلب", + "Request time" : "وقت الطلب", + "between" : "بين", + "not between" : "ليس بين", + "Request user agent" : "وكيل المستخدم الخاص بالطلب", + "Group membership" : "عضوية المجموعة", + "is member of" : "عضو فى", + "is not member of" : "ليس عضو فى" +}, +"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"); diff --git a/apps/workflowengine/l10n/ar.json b/apps/workflowengine/l10n/ar.json new file mode 100644 index 00000000000..12ea595f30b --- /dev/null +++ b/apps/workflowengine/l10n/ar.json @@ -0,0 +1,121 @@ +{ "translations": { + "The given operator is invalid" : "المُعامل المُعطى غير مقبول", + "The given regular expression is invalid" : "التعبير النمطي Regex المدخل غير صالح", + "The given file size is invalid" : "حجم الملف المُعطى غير مقبول", + "The given tag id is invalid" : "الوسم المعطى غير مقبول", + "The given IP range is invalid" : "نطاق العنوان IP المُعطى غير مقبول.", + "The given IP range is not valid for IPv4" : "نطاق العنوان IP المُعطى غير مقبول بالنسبة لـ IPv4.", + "The given IP range is not valid for IPv6" : "نطاق العنوان IP المُعطى غير مقبول بالنسبة لـ IPv6.", + "The given time span is invalid" : "الفترة الزمنية المُعطاة غير مقبولة", + "The given start time is invalid" : "وقت البداية المُعطى غير مقبول.", + "The given end time is invalid" : "وقت النهاية المُعطى غير مقبول.", + "The given group does not exist" : "المجموعة المُعطاة غير موجودة.", + "File" : "ملف", + "File created" : "عند إنشاء ملف", + "File updated" : "عند تحديث ملف", + "File renamed" : "عند إعادة تسمية ملف", + "File deleted" : "عند حذف ملف", + "File accessed" : "عند الوصول إلى الملف", + "File copied" : "عند نسخ ملف", + "Tag assigned" : "وسم تم تعيينه", + "Someone" : "شخصٌ ما", + "%s created %s" : "%s مُنشأ %s", + "%s modified %s" : "%s مُعدّل %s", + "%s deleted %s" : "%s مُلغىً %s", + "%s accessed %s" : "%s تم الوصول إليه %s", + "%s renamed %s" : "%s مُعاد تسميته %s", + "%s copied %s" : "%s منسوخ %s", + "%s assigned %s to %s" : "%s مُسند %s إلى %s", + "Operation #%s does not exist" : "العملية #%s غير موجودة", + "Entity %s does not exist" : "الكيان %s غير موجود", + "Entity %s is invalid" : "الكيان %s غير مقبول", + "No events are chosen." : "لم يتم اختيار أي أحدث.", + "Entity %s has no event %s" : "الكيان %s ليس له أحداث %s", + "Operation %s does not exist" : "العملية %s غير موجودة", + "Operation %s is invalid" : "العملية%sغير موجودة", + "At least one check needs to be provided" : "يجب تقديم اختيار واحد على الأقل", + "The provided operation data is too long" : "تشغيل البيانات المطلوب كبير جدا", + "Invalid check provided" : "الاختيار المقدم غير صالح", + "Check %s does not exist" : "تحقق من%s غير موجود", + "Check %s is invalid" : "تحقق من%sغير صالح", + "Check %s is not allowed with this entity" : "التحقق من %s غير مسموح به مع هذا الكيان", + "The provided check value is too long" : "قيمة التحقق المقدمة طويلة جدًا", + "Check #%s does not exist" : "تحقق من#%s غير موجود", + "Check %s is invalid or does not exist" : "التحقق من %s فهو غير صالح أو غير موجود", + "Flow" : "أتمتة سير العمل", + "Nextcloud workflow engine" : "محرك أتمتة سير العمل لنكست كلاود", + "Select a filter" : "اختر عامل تصفية", + "Select a comparator" : "اختر أساس المقارنة", + "Remove filter" : "إزالة عامل التصفية", + "Folder" : "مجلد", + "Images" : "صور", + "Office documents" : "مستندات المكتب", + "PDF documents" : "مستندات PDF", + "Custom MIME type" : "نوع MIME مخصص", + "Custom mimetype" : "أنواع ملفات مخصصة", + "Select a file type" : "اختر نوع الملف", + "e.g. httpd/unix-directory" : "على سبيل المثال httpd/unix-directory", + "Please enter a valid time span" : "الرجاء إدخال نطاق زمني صالح", + "Files WebDAV" : "ملفات WebDAV", + "Custom URL" : "عنوان URL مخصص", + "Select a request URL" : "حدد عنوان URL الخاص بالطلب", + "Android client" : "عميل أندرويد", + "iOS client" : "عميل نظام التشغيل iOS", + "Desktop client" : "تطبيق سطح المكتب", + "Thunderbird & Outlook addons" : "إضافات ثندربيرد و أوت لوك", + "Custom user agent" : "وكيل مستخدم مخصص", + "Select a user agent" : "اختر وكيل مستخدم", + "Select groups" : "إختَر مجموعةً", + "Groups" : "المجموعات", + "Type to search for group …" : "أُكتُب اسم المجموعة التي تبحث عنها ...", + "Select a trigger" : "حدد مشغل", + "At least one event must be selected" : "يجب اختيار حدث واحد على الأقل", + "Add new flow" : "إضافة أتمتة سير عمل جديد", + "The configuration is invalid" : "التكوين غير صالح", + "Active" : "فعال", + "Save" : "حفظ", + "When" : "متى", + "and" : "و", + "Add a new filter" : "إضافة عامل تصفية جديد", + "Cancel" : "إلغاء", + "Delete" : "حذف ", + "Available flows" : "أتمتة سير العمل المتاحة", + "For details on how to write your own flow, check out the development documentation." : "للحصول على تفاصيل حول كيفية تطوير أتمتة سير العمل الخاص بك، تحقق من وثائق التطوير.", + "No flows installed" : "لم يتم تثبيت أي أتمتة لسير العمل", + "Ask your administrator to install new flows." : "أطلب من مسؤول النظام تثبيت أتمتة سير عمل جديدة .", + "More flows" : "المزيد من أتمتة سير العمل", + "Browse the App Store" : "إستعرض متجر التطبيقات", + "Show less" : "عرض أقل", + "Show more" : "عرض المزيد", + "Configured flows" : "أتمتة سير العمل المضافة", + "Your flows" : "أتمتة سير العمل الخاص بك", + "No flows configured" : "لم تتم تهيئة أي أتمتة لسير العمل", + "matches" : "متوافق", + "does not match" : "غير متوافق", + "is" : "يكون", + "is not" : "ليس", + "File name" : "اسم ملف", + "File MIME type" : "ملف من النوع MIME", + "File size (upload)" : "حجم الملف (الرفع)", + "less" : "أقل", + "less or equals" : "أقل من أو يساوي", + "greater or equals" : "أكبر أو يساوي", + "greater" : "أكبر من", + "Request remote address" : "العنوان البعيد الخاص بالطلب", + "matches IPv4" : "متوافق مع بروتوكول الانترنت الاصدار الرابع \"IPv4\"", + "does not match IPv4" : "غير متوافق مع بروتوكول الانترنت الاصدار الرابع \"IPv4\"", + "matches IPv6" : "متوافق مع بروتوكول الانترنت الاصدار السادس \"IPv6\"", + "does not match IPv6" : "غير متوافق مع بروتوكول الانترنت الاصدار الرابع \"IPv6\"", + "File system tag" : "وسم ملف النظام", + "is tagged with" : "موسوم بـ", + "is not tagged with" : "غير موسوم بـ", + "Request URL" : "عنوان محدد موقع الموارد المُوحّد \"URL\" الخاص بالطلب", + "Request time" : "وقت الطلب", + "between" : "بين", + "not between" : "ليس بين", + "Request user agent" : "وكيل المستخدم الخاص بالطلب", + "Group membership" : "عضوية المجموعة", + "is member of" : "عضو فى", + "is not member of" : "ليس عضو فى" +},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;" +}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/ast.js b/apps/workflowengine/l10n/ast.js index 6e98c4696a6..cc24b48c02c 100644 --- a/apps/workflowengine/l10n/ast.js +++ b/apps/workflowengine/l10n/ast.js @@ -1,54 +1,76 @@ OC.L10N.register( "workflowengine", { - "File MIME type" : "Triba MIME de ficheru", + "The given operator is invalid" : "L'operador apurríu ye inválidu", + "The given regular expression is invalid" : "La espresión regular apurrida ye inválida", + "The given file size is invalid" : "El tamañu del ficheru apurríu ye inválidu", + "The given tag id is invalid" : "La ID d'etiqueta apurrida ye inválida", + "The given IP range is invalid" : "L'intervalu d'IPs ye inválida", + "The given IP range is not valid for IPv4" : "L'intervalu d'IPs nun ye válidu pa IPv4", + "The given IP range is not valid for IPv6" : "L'intervalu d'IPs nun ye válidu pa IPv6", + "The given time span is invalid" : "L'intervalu de tiempu apurríu nun ye válidu", + "The given start time is invalid" : "La hora de comienzu ye inválida", + "The given end time is invalid" : "La hora de fin ye inválida", + "The given group does not exist" : "El grupu apurríu nun esiste", + "File" : "Ficheru", + "File created" : "Creóse'l ficheru", + "File updated" : "Anovóse'l ficheru", + "File renamed" : "Renomóse'l ficheru", + "File deleted" : "Desanicióse'l ficheru", + "File accessed" : "Accedióse al ficheru", + "File copied" : "Copióse'l ficheru", + "Tag assigned" : "Asignóse la etiqueta", + "Someone" : "Daquień", + "%s created %s" : "%s creó «%s»", + "%s modified %s" : "%s modificó «%s»", + "%s deleted %s" : "%s desanició «%s»", + "%s accessed %s" : "%s accedió a «%s»", + "%s renamed %s" : "%s renomó «%s»", + "%s copied %s" : "%s copió «%s»", + "%s assigned %s to %s" : "%s asignó «%s» a %s", + "Operation #%s does not exist" : "La operación #%s nun esiste", + "Entity %s does not exist" : "La entidá «%s» nun esiste", + "Entity %s is invalid" : "La entidá «%s» ye inválida", + "No events are chosen." : "Nun s'escoyó nengún eventu.", + "Entity %s has no event %s" : "La entidá «%s» nun tien nengún eventu «%s»", + "Operation %s does not exist" : "La operación «%s» nun esiste", + "Operation %s is invalid" : "La operación «%s» ye inválida", + "Invalid check provided" : "Fornióse una comprobación inválida", + "Check %s does not exist" : "La comprobación «%s» nun esiste", + "Check %s is invalid" : "La comprobación «%s» ye inválida", + "Check %s is not allowed with this entity" : "La comprobación «%s» nun ta permitida con esta entidá", + "Check #%s does not exist" : "La comprobación #%s nun esiste", + "Check %s is invalid or does not exist" : "La comprobación «%s» ye inválida o nun esiste", + "Flow" : "Fluxu", + "Remove filter" : "Quitar la peñera", + "Folder" : "Carpeta", + "Images" : "Imáxenes", + "Office documents" : "Documentos ofimáticos", + "PDF documents" : "Documentos PDF", + "Android client" : "Veceru p'Android", + "iOS client" : "Veceru pa iOS", + "Desktop client" : "Veceru pa ordenadores", + "Select groups" : "Seleicionar grupos", + "Groups" : "Grupos", + "The configuration is invalid" : "La configuración ye inválida", + "Active" : "Activa", + "Save" : "Guardar", + "and" : "y", + "Cancel" : "Encaboxar", + "Delete" : "Desaniciar", + "Available flows" : "Fluxos disponibles", + "No flows installed" : "Nun s'instaló nengún fluxu", + "Ask your administrator to install new flows." : "Pidi a la alministración qu'instale fluxos nuevos.", + "More flows" : "Más fluxos", + "Show less" : "Amosar menos", + "Show more" : "Amosar más", + "Configured flows" : "Fluxos configuraos", + "No flows configured" : "Nun se configuró nengún fluxu", + "matches" : "concasa", + "does not match" : "nun concasa", "is" : "ye", "is not" : "nun ye", - "matches" : "concasa con", - "does not match" : "nun concasa con", - "Example: {placeholder}" : "Exemplu: {placeholder}", - "File size (upload)" : "Tamañu de ficheru (xuba)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "File system tag" : "Etiqueta del sistema de ficheros", - "is tagged with" : "etiquetóse con", - "is not tagged with" : "nun s'etiquetó con", - "Select tag…" : "Esbillar etiqueta...", - "Request remote address" : "Solicitar direición remot", - "between" : "ente", - "not between" : "distintu de", - "Start" : "Aniciu", - "End" : "Fin", - "Select timezone…" : "Esbillar fusu horariu...", - "Request URL" : "Solicitar URL", - "Predefined URLs" : "URLs predefiníes", - "Files WebDAV" : "Ficheros WebDAV", - "Request user agent" : "Solicitar axente d'usuariu", - "Sync clients" : "Sincronizar veceros", - "Android client" : "Veceru d'Android", - "iOS client" : "Veceru d'iOS", - "Desktop client" : "Veceru d'escritoriu", - "is member of" : "ye miembru de", - "is not member of" : "nun ye miembru de", - "Short rule description" : "Descipción curtia de la regla", - "Add rule" : "Amestar regla", - "Save" : "Guardar", - "Saving…" : "Guardando...", - "Saved" : "Guardóse", - "Saving failed:" : "Falló'l guardáu:", - "The given operator is invalid" : "L'operador dau nun ye válidu", - "The given regular expression is invalid" : "La espresión regular dada nun ye válida", - "The given file size is invalid" : "El tamañu del ficheru dau nun ye válidu", - "The given tag id is invalid" : "La ID de la etiqueta dada nun ye válida", - "The given IP range is invalid" : "El rangu IP dau nun ye válidu", - "The given group does not exist" : "Nun esiste'l grupu dau", - "Operation #%s does not exist" : "La operación #%s nun esiste", - "Operation %s does not exist" : "La operación %s nun esiste", - "Operation %s is invalid" : "La operación %s nun ye válida", - "Open documentation" : "Abrir documentación", - "Loading…" : "Cargando...", - "Workflow" : "Fluxu de trabayu" + "File name" : "Nome del ficheru", + "between" : "ente" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/ast.json b/apps/workflowengine/l10n/ast.json index 1fc3d3f7c38..a4c32aa8f34 100644 --- a/apps/workflowengine/l10n/ast.json +++ b/apps/workflowengine/l10n/ast.json @@ -1,52 +1,74 @@ { "translations": { - "File MIME type" : "Triba MIME de ficheru", + "The given operator is invalid" : "L'operador apurríu ye inválidu", + "The given regular expression is invalid" : "La espresión regular apurrida ye inválida", + "The given file size is invalid" : "El tamañu del ficheru apurríu ye inválidu", + "The given tag id is invalid" : "La ID d'etiqueta apurrida ye inválida", + "The given IP range is invalid" : "L'intervalu d'IPs ye inválida", + "The given IP range is not valid for IPv4" : "L'intervalu d'IPs nun ye válidu pa IPv4", + "The given IP range is not valid for IPv6" : "L'intervalu d'IPs nun ye válidu pa IPv6", + "The given time span is invalid" : "L'intervalu de tiempu apurríu nun ye válidu", + "The given start time is invalid" : "La hora de comienzu ye inválida", + "The given end time is invalid" : "La hora de fin ye inválida", + "The given group does not exist" : "El grupu apurríu nun esiste", + "File" : "Ficheru", + "File created" : "Creóse'l ficheru", + "File updated" : "Anovóse'l ficheru", + "File renamed" : "Renomóse'l ficheru", + "File deleted" : "Desanicióse'l ficheru", + "File accessed" : "Accedióse al ficheru", + "File copied" : "Copióse'l ficheru", + "Tag assigned" : "Asignóse la etiqueta", + "Someone" : "Daquień", + "%s created %s" : "%s creó «%s»", + "%s modified %s" : "%s modificó «%s»", + "%s deleted %s" : "%s desanició «%s»", + "%s accessed %s" : "%s accedió a «%s»", + "%s renamed %s" : "%s renomó «%s»", + "%s copied %s" : "%s copió «%s»", + "%s assigned %s to %s" : "%s asignó «%s» a %s", + "Operation #%s does not exist" : "La operación #%s nun esiste", + "Entity %s does not exist" : "La entidá «%s» nun esiste", + "Entity %s is invalid" : "La entidá «%s» ye inválida", + "No events are chosen." : "Nun s'escoyó nengún eventu.", + "Entity %s has no event %s" : "La entidá «%s» nun tien nengún eventu «%s»", + "Operation %s does not exist" : "La operación «%s» nun esiste", + "Operation %s is invalid" : "La operación «%s» ye inválida", + "Invalid check provided" : "Fornióse una comprobación inválida", + "Check %s does not exist" : "La comprobación «%s» nun esiste", + "Check %s is invalid" : "La comprobación «%s» ye inválida", + "Check %s is not allowed with this entity" : "La comprobación «%s» nun ta permitida con esta entidá", + "Check #%s does not exist" : "La comprobación #%s nun esiste", + "Check %s is invalid or does not exist" : "La comprobación «%s» ye inválida o nun esiste", + "Flow" : "Fluxu", + "Remove filter" : "Quitar la peñera", + "Folder" : "Carpeta", + "Images" : "Imáxenes", + "Office documents" : "Documentos ofimáticos", + "PDF documents" : "Documentos PDF", + "Android client" : "Veceru p'Android", + "iOS client" : "Veceru pa iOS", + "Desktop client" : "Veceru pa ordenadores", + "Select groups" : "Seleicionar grupos", + "Groups" : "Grupos", + "The configuration is invalid" : "La configuración ye inválida", + "Active" : "Activa", + "Save" : "Guardar", + "and" : "y", + "Cancel" : "Encaboxar", + "Delete" : "Desaniciar", + "Available flows" : "Fluxos disponibles", + "No flows installed" : "Nun s'instaló nengún fluxu", + "Ask your administrator to install new flows." : "Pidi a la alministración qu'instale fluxos nuevos.", + "More flows" : "Más fluxos", + "Show less" : "Amosar menos", + "Show more" : "Amosar más", + "Configured flows" : "Fluxos configuraos", + "No flows configured" : "Nun se configuró nengún fluxu", + "matches" : "concasa", + "does not match" : "nun concasa", "is" : "ye", "is not" : "nun ye", - "matches" : "concasa con", - "does not match" : "nun concasa con", - "Example: {placeholder}" : "Exemplu: {placeholder}", - "File size (upload)" : "Tamañu de ficheru (xuba)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "File system tag" : "Etiqueta del sistema de ficheros", - "is tagged with" : "etiquetóse con", - "is not tagged with" : "nun s'etiquetó con", - "Select tag…" : "Esbillar etiqueta...", - "Request remote address" : "Solicitar direición remot", - "between" : "ente", - "not between" : "distintu de", - "Start" : "Aniciu", - "End" : "Fin", - "Select timezone…" : "Esbillar fusu horariu...", - "Request URL" : "Solicitar URL", - "Predefined URLs" : "URLs predefiníes", - "Files WebDAV" : "Ficheros WebDAV", - "Request user agent" : "Solicitar axente d'usuariu", - "Sync clients" : "Sincronizar veceros", - "Android client" : "Veceru d'Android", - "iOS client" : "Veceru d'iOS", - "Desktop client" : "Veceru d'escritoriu", - "is member of" : "ye miembru de", - "is not member of" : "nun ye miembru de", - "Short rule description" : "Descipción curtia de la regla", - "Add rule" : "Amestar regla", - "Save" : "Guardar", - "Saving…" : "Guardando...", - "Saved" : "Guardóse", - "Saving failed:" : "Falló'l guardáu:", - "The given operator is invalid" : "L'operador dau nun ye válidu", - "The given regular expression is invalid" : "La espresión regular dada nun ye válida", - "The given file size is invalid" : "El tamañu del ficheru dau nun ye válidu", - "The given tag id is invalid" : "La ID de la etiqueta dada nun ye válida", - "The given IP range is invalid" : "El rangu IP dau nun ye válidu", - "The given group does not exist" : "Nun esiste'l grupu dau", - "Operation #%s does not exist" : "La operación #%s nun esiste", - "Operation %s does not exist" : "La operación %s nun esiste", - "Operation %s is invalid" : "La operación %s nun ye válida", - "Open documentation" : "Abrir documentación", - "Loading…" : "Cargando...", - "Workflow" : "Fluxu de trabayu" + "File name" : "Nome del ficheru", + "between" : "ente" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/bg.js b/apps/workflowengine/l10n/bg.js index a8b3c39e4c4..ab2ed6cb1a4 100644 --- a/apps/workflowengine/l10n/bg.js +++ b/apps/workflowengine/l10n/bg.js @@ -44,47 +44,51 @@ OC.L10N.register( "The provided check value is too long" : "Предоставената стойност за проверка е твърде дълга", "Check #%s does not exist" : "Проверка #%s не съществува", "Check %s is invalid or does not exist" : "Проверка %s не е валидна или несъществува", - "Flow" : "Поток", + "Flow" : "Автоматизация", "Nextcloud workflow engine" : "Система на работния поток на Nextcloud", "Select a filter" : "Избор на филтър", "Select a comparator" : "Избор на инструмент за сравняване", - "Select a file type" : "Избор на тип файл", - "e.g. httpd/unix-directory" : "напр. httpd/unix-directory", + "Remove filter" : "Премахни филтър", "Folder" : "Папка", "Images" : "Изображения", "Office documents" : "Офис документи", "PDF documents" : "PDF документи", "Custom MIME type" : "Персонализиран файл тип MIME", "Custom mimetype" : "Персонализиран mimetype", + "Select a file type" : "Избор на тип файл", + "e.g. httpd/unix-directory" : "напр. httpd/unix-directory", "Please enter a valid time span" : "Моля, въведете валиден период от време", - "Select a request URL" : "Избор на URL адрес за заявка", - "Predefined URLs" : "Предефинирани URL-и", "Files WebDAV" : "Файлове WebDAV", - "Others" : "Други", "Custom URL" : "Персонализиран URL адрес", - "Select a user agent" : "Избор на потребителски агент", + "Select a request URL" : "Избор на URL адрес за заявка", "Android client" : "Android клиент", "iOS client" : "iOS клиент", "Desktop client" : "Клиент за настолен компютър", "Thunderbird & Outlook addons" : "Добавки на Thunderbird и Outlook", "Custom user agent" : "Персонализиран потребителски агент", + "Select a user agent" : "Избор на потребителски агент", + "Select groups" : "Избери Групи", + "Groups" : "Групи", "At least one event must be selected" : "Трябва да бъде избрано поне едно събитие", - "Add new flow" : "Добавяне на нов поток", + "Add new flow" : "Добавяне на нова автоматизация", + "The configuration is invalid" : "Конфигурацията е невалидна", + "Active" : "Активен", + "Save" : "Запази", "When" : "Кога", "and" : "и", "Cancel" : "Отказ", "Delete" : "Изтриване", - "The configuration is invalid" : "Конфигурацията е невалидна", - "Active" : "Активен", - "Save" : "Запази", - "Available flows" : "Налични потоци", + "Available flows" : "Налични автоматизации", "For details on how to write your own flow, check out the development documentation." : "За подробности как да напишете свой собствен поток, вижте документацията за разработка.", - "More flows" : "Още потоци", + "No flows installed" : "Няма инсталирани автоматизации", + "Ask your administrator to install new flows." : "Помолете системния администратор да инсталира нови автоматизации", + "More flows" : "Още поточни автоматизации", "Browse the App Store" : "Преглед на магазина за приложения /App Store/", "Show less" : "Покажи по-малко", "Show more" : "Покажи повече", - "Configured flows" : "Конфигурирани потоци", - "Your flows" : "Вашите потоци ", + "Configured flows" : "Конфигурирани поточни автоматизации", + "Your flows" : "Вашите автоматизации", + "No flows configured" : "Няма конфигурирани автоматизации", "matches" : "съвпадения", "does not match" : "не съвпада", "is" : "е", @@ -109,12 +113,7 @@ OC.L10N.register( "between" : "между", "not between" : "не между", "Request user agent" : "Потребителски агент на заявка", - "User group membership" : "Членство към потребителска група", "is member of" : "е член на", - "is not member of" : "не е член на", - "Select a tag" : "Избор на етикет", - "No results" : "Няма резултати", - "%s (invisible)" : "%s (невидим)", - "%s (restricted)" : "%s (ограничен)" + "is not member of" : "не е член на" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/bg.json b/apps/workflowengine/l10n/bg.json index 01c0188d21e..44c7d29a6f5 100644 --- a/apps/workflowengine/l10n/bg.json +++ b/apps/workflowengine/l10n/bg.json @@ -42,47 +42,51 @@ "The provided check value is too long" : "Предоставената стойност за проверка е твърде дълга", "Check #%s does not exist" : "Проверка #%s не съществува", "Check %s is invalid or does not exist" : "Проверка %s не е валидна или несъществува", - "Flow" : "Поток", + "Flow" : "Автоматизация", "Nextcloud workflow engine" : "Система на работния поток на Nextcloud", "Select a filter" : "Избор на филтър", "Select a comparator" : "Избор на инструмент за сравняване", - "Select a file type" : "Избор на тип файл", - "e.g. httpd/unix-directory" : "напр. httpd/unix-directory", + "Remove filter" : "Премахни филтър", "Folder" : "Папка", "Images" : "Изображения", "Office documents" : "Офис документи", "PDF documents" : "PDF документи", "Custom MIME type" : "Персонализиран файл тип MIME", "Custom mimetype" : "Персонализиран mimetype", + "Select a file type" : "Избор на тип файл", + "e.g. httpd/unix-directory" : "напр. httpd/unix-directory", "Please enter a valid time span" : "Моля, въведете валиден период от време", - "Select a request URL" : "Избор на URL адрес за заявка", - "Predefined URLs" : "Предефинирани URL-и", "Files WebDAV" : "Файлове WebDAV", - "Others" : "Други", "Custom URL" : "Персонализиран URL адрес", - "Select a user agent" : "Избор на потребителски агент", + "Select a request URL" : "Избор на URL адрес за заявка", "Android client" : "Android клиент", "iOS client" : "iOS клиент", "Desktop client" : "Клиент за настолен компютър", "Thunderbird & Outlook addons" : "Добавки на Thunderbird и Outlook", "Custom user agent" : "Персонализиран потребителски агент", + "Select a user agent" : "Избор на потребителски агент", + "Select groups" : "Избери Групи", + "Groups" : "Групи", "At least one event must be selected" : "Трябва да бъде избрано поне едно събитие", - "Add new flow" : "Добавяне на нов поток", + "Add new flow" : "Добавяне на нова автоматизация", + "The configuration is invalid" : "Конфигурацията е невалидна", + "Active" : "Активен", + "Save" : "Запази", "When" : "Кога", "and" : "и", "Cancel" : "Отказ", "Delete" : "Изтриване", - "The configuration is invalid" : "Конфигурацията е невалидна", - "Active" : "Активен", - "Save" : "Запази", - "Available flows" : "Налични потоци", + "Available flows" : "Налични автоматизации", "For details on how to write your own flow, check out the development documentation." : "За подробности как да напишете свой собствен поток, вижте документацията за разработка.", - "More flows" : "Още потоци", + "No flows installed" : "Няма инсталирани автоматизации", + "Ask your administrator to install new flows." : "Помолете системния администратор да инсталира нови автоматизации", + "More flows" : "Още поточни автоматизации", "Browse the App Store" : "Преглед на магазина за приложения /App Store/", "Show less" : "Покажи по-малко", "Show more" : "Покажи повече", - "Configured flows" : "Конфигурирани потоци", - "Your flows" : "Вашите потоци ", + "Configured flows" : "Конфигурирани поточни автоматизации", + "Your flows" : "Вашите автоматизации", + "No flows configured" : "Няма конфигурирани автоматизации", "matches" : "съвпадения", "does not match" : "не съвпада", "is" : "е", @@ -107,12 +111,7 @@ "between" : "между", "not between" : "не между", "Request user agent" : "Потребителски агент на заявка", - "User group membership" : "Членство към потребителска група", "is member of" : "е член на", - "is not member of" : "не е член на", - "Select a tag" : "Избор на етикет", - "No results" : "Няма резултати", - "%s (invisible)" : "%s (невидим)", - "%s (restricted)" : "%s (ограничен)" + "is not member of" : "не е член на" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/ca.js b/apps/workflowengine/l10n/ca.js index 58a8b997337..39238b81afb 100644 --- a/apps/workflowengine/l10n/ca.js +++ b/apps/workflowengine/l10n/ca.js @@ -46,34 +46,35 @@ OC.L10N.register( "Nextcloud workflow engine" : "Motor de flux de treball de Nextcloud", "Select a filter" : "Seleccioneu un filtre", "Select a comparator" : "Seleccioneu un comparador", - "Select a file type" : "Seleccioneu un tipus de fitxer", - "e.g. httpd/unix-directory" : "p. ex. httpd/unix-directory", + "Remove filter" : "Suprimeix el filtre", "Folder" : "Carpeta", "Images" : "Imatges", "Office documents" : "Documents d'oficina", "PDF documents" : "Documents PDF", "Custom mimetype" : "Tipus mime personalitzat", + "Select a file type" : "Seleccioneu un tipus de fitxer", + "e.g. httpd/unix-directory" : "p. ex. httpd/unix-directory", "Please enter a valid time span" : "Introduïu un interval de temps vàlid", - "Select a request URL" : "Seleccioneu un URL de petició", - "Predefined URLs" : "URLs predefinits", "Files WebDAV" : "Fitxers WebDAV", - "Others" : "Altres", "Custom URL" : "URL personalitzat", - "Select a user agent" : "Seleccioneu un agent d'usuari", + "Select a request URL" : "Seleccioneu un URL de petició", "Android client" : "Client android", "iOS client" : "Client iOS", "Desktop client" : "Client d'escriptori", "Thunderbird & Outlook addons" : "Complements de Thunderbird i Outlook", "Custom user agent" : "Agent d'usuari personalitzat", + "Select a user agent" : "Seleccioneu un agent d'usuari", + "Select groups" : "Selecciona els grups", + "Groups" : "Grups", "At least one event must be selected" : "Com a mínim s'ha de seleccionar un esdeveniment", "Add new flow" : "Afegeix un flux nou", + "The configuration is invalid" : "La configuració no és vàlida", + "Active" : "Actiu", + "Save" : "Desa", "When" : "Quan", "and" : "i", "Cancel" : "Cancel·la", "Delete" : "Eliminar", - "The configuration is invalid" : "La configuració no és vàlida", - "Active" : "Actiu", - "Save" : "Desa", "Available flows" : "Fluxos disponibles", "For details on how to write your own flow, check out the development documentation." : "Per obtenir més informació sobre com escriure el seu propi flux, feu un cop d'ulls a la documentació de desenvolupament.", "More flows" : "Més fluxos", @@ -106,12 +107,7 @@ OC.L10N.register( "between" : "entre", "not between" : "no entre", "Request user agent" : "Sol·licita agent d'usuari", - "User group membership" : "Pertinença a grup d'usuaris", "is member of" : "és membre de", - "is not member of" : "no és membre de", - "Select a tag" : "Seleccioneu una etiqueta", - "No results" : "No hi ha resultats", - "%s (invisible)" : "%s (invisible)", - "%s (restricted)" : "%s (restringit)" + "is not member of" : "no és membre de" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/ca.json b/apps/workflowengine/l10n/ca.json index 2c8a370888d..c1d91fc010e 100644 --- a/apps/workflowengine/l10n/ca.json +++ b/apps/workflowengine/l10n/ca.json @@ -44,34 +44,35 @@ "Nextcloud workflow engine" : "Motor de flux de treball de Nextcloud", "Select a filter" : "Seleccioneu un filtre", "Select a comparator" : "Seleccioneu un comparador", - "Select a file type" : "Seleccioneu un tipus de fitxer", - "e.g. httpd/unix-directory" : "p. ex. httpd/unix-directory", + "Remove filter" : "Suprimeix el filtre", "Folder" : "Carpeta", "Images" : "Imatges", "Office documents" : "Documents d'oficina", "PDF documents" : "Documents PDF", "Custom mimetype" : "Tipus mime personalitzat", + "Select a file type" : "Seleccioneu un tipus de fitxer", + "e.g. httpd/unix-directory" : "p. ex. httpd/unix-directory", "Please enter a valid time span" : "Introduïu un interval de temps vàlid", - "Select a request URL" : "Seleccioneu un URL de petició", - "Predefined URLs" : "URLs predefinits", "Files WebDAV" : "Fitxers WebDAV", - "Others" : "Altres", "Custom URL" : "URL personalitzat", - "Select a user agent" : "Seleccioneu un agent d'usuari", + "Select a request URL" : "Seleccioneu un URL de petició", "Android client" : "Client android", "iOS client" : "Client iOS", "Desktop client" : "Client d'escriptori", "Thunderbird & Outlook addons" : "Complements de Thunderbird i Outlook", "Custom user agent" : "Agent d'usuari personalitzat", + "Select a user agent" : "Seleccioneu un agent d'usuari", + "Select groups" : "Selecciona els grups", + "Groups" : "Grups", "At least one event must be selected" : "Com a mínim s'ha de seleccionar un esdeveniment", "Add new flow" : "Afegeix un flux nou", + "The configuration is invalid" : "La configuració no és vàlida", + "Active" : "Actiu", + "Save" : "Desa", "When" : "Quan", "and" : "i", "Cancel" : "Cancel·la", "Delete" : "Eliminar", - "The configuration is invalid" : "La configuració no és vàlida", - "Active" : "Actiu", - "Save" : "Desa", "Available flows" : "Fluxos disponibles", "For details on how to write your own flow, check out the development documentation." : "Per obtenir més informació sobre com escriure el seu propi flux, feu un cop d'ulls a la documentació de desenvolupament.", "More flows" : "Més fluxos", @@ -104,12 +105,7 @@ "between" : "entre", "not between" : "no entre", "Request user agent" : "Sol·licita agent d'usuari", - "User group membership" : "Pertinença a grup d'usuaris", "is member of" : "és membre de", - "is not member of" : "no és membre de", - "Select a tag" : "Seleccioneu una etiqueta", - "No results" : "No hi ha resultats", - "%s (invisible)" : "%s (invisible)", - "%s (restricted)" : "%s (restringit)" + "is not member of" : "no és membre de" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/cs.js b/apps/workflowengine/l10n/cs.js index b39a2cb1f9d..3c189dc2c53 100644 --- a/apps/workflowengine/l10n/cs.js +++ b/apps/workflowengine/l10n/cs.js @@ -48,43 +48,50 @@ OC.L10N.register( "Nextcloud workflow engine" : "Nextcloud engine pro pracovní postupy", "Select a filter" : "Vybrat filtr", "Select a comparator" : "Vyberte porovnání", - "Select a file type" : "Vybrat typ souboru", - "e.g. httpd/unix-directory" : "např. httpd/unix-directory", + "Remove filter" : "Odebrat filtr", "Folder" : "Složka", "Images" : "Obrázky", "Office documents" : "Kancelářské dokumenty", "PDF documents" : "PDF dokumenty", "Custom MIME type" : "Uživatelsky určený MIME typ", "Custom mimetype" : "Uživatelsky určený mimetyp", + "Select a file type" : "Vybrat typ souboru", + "e.g. httpd/unix-directory" : "např. httpd/unix-directory", "Please enter a valid time span" : "Zadejte platné časové rozmezí", - "Select a request URL" : "Vyberte URL požadavku", - "Predefined URLs" : "Předdefinované URL", "Files WebDAV" : "Soubory WebDAV", - "Others" : "Ostatní", "Custom URL" : "Uživatelsky určená URL", - "Select a user agent" : "Vyberte user agent", + "Select a request URL" : "Vyberte URL požadavku", "Android client" : "Android klient", "iOS client" : "iOS klient", "Desktop client" : "Klient pro počítač", "Thunderbird & Outlook addons" : "Doplňky pro Thunderbird a Outlook", "Custom user agent" : "Uživatelem určený user agent", + "Select a user agent" : "Vyberte user agent", + "Select groups" : "Vybrat skupiny", + "Groups" : "Skupiny", + "Type to search for group …" : "Skupinu vyhledáte psaním…", + "Select a trigger" : "Vybrat spouštěč", "At least one event must be selected" : "Je třeba vybrat alespoň jednu událost", "Add new flow" : "Přidat nový tok", + "The configuration is invalid" : "Nastavení není platné", + "Active" : "Aktivní", + "Save" : "Uložit", "When" : "Kdy", "and" : "a", + "Add a new filter" : "Přidat nový filtr", "Cancel" : "Storno", "Delete" : "Smazat", - "The configuration is invalid" : "Nastavení není platné", - "Active" : "Aktivní", - "Save" : "Uložit", "Available flows" : "Toky k dispozici", "For details on how to write your own flow, check out the development documentation." : "Podrobnosti o tom, jak vytvářet toky naleznete v dokumentaci pro vývojáře.", + "No flows installed" : "Nenaistalované žádné toky", + "Ask your administrator to install new flows." : "Požádejte správce vámi využívané instance o instalaci nových toků.", "More flows" : "Další toky", "Browse the App Store" : "Procházet katalog aplikací", "Show less" : "Zobrazit méně", "Show more" : "Zobrazit více", "Configured flows" : "Nastavené toky", "Your flows" : "Vaše toky", + "No flows configured" : "Nenastaveny žádné toky", "matches" : "odpovídá", "does not match" : "neodpovídá", "is" : "je", @@ -109,12 +116,8 @@ OC.L10N.register( "between" : "mezi", "not between" : "není mezi", "Request user agent" : "User agent požadavku", - "User group membership" : "Členství ve skupinách uživatelů", + "Group membership" : "Členství ve skupinách", "is member of" : "je členem", - "is not member of" : "není členem", - "Select a tag" : "Vybrat štítek", - "No results" : "Žádné výsledky", - "%s (invisible)" : "%s (neviditelné)", - "%s (restricted)" : "%s (omezeno)" + "is not member of" : "není členem" }, "nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"); diff --git a/apps/workflowengine/l10n/cs.json b/apps/workflowengine/l10n/cs.json index 003d3455bbf..1c3dee3c231 100644 --- a/apps/workflowengine/l10n/cs.json +++ b/apps/workflowengine/l10n/cs.json @@ -46,43 +46,50 @@ "Nextcloud workflow engine" : "Nextcloud engine pro pracovní postupy", "Select a filter" : "Vybrat filtr", "Select a comparator" : "Vyberte porovnání", - "Select a file type" : "Vybrat typ souboru", - "e.g. httpd/unix-directory" : "např. httpd/unix-directory", + "Remove filter" : "Odebrat filtr", "Folder" : "Složka", "Images" : "Obrázky", "Office documents" : "Kancelářské dokumenty", "PDF documents" : "PDF dokumenty", "Custom MIME type" : "Uživatelsky určený MIME typ", "Custom mimetype" : "Uživatelsky určený mimetyp", + "Select a file type" : "Vybrat typ souboru", + "e.g. httpd/unix-directory" : "např. httpd/unix-directory", "Please enter a valid time span" : "Zadejte platné časové rozmezí", - "Select a request URL" : "Vyberte URL požadavku", - "Predefined URLs" : "Předdefinované URL", "Files WebDAV" : "Soubory WebDAV", - "Others" : "Ostatní", "Custom URL" : "Uživatelsky určená URL", - "Select a user agent" : "Vyberte user agent", + "Select a request URL" : "Vyberte URL požadavku", "Android client" : "Android klient", "iOS client" : "iOS klient", "Desktop client" : "Klient pro počítač", "Thunderbird & Outlook addons" : "Doplňky pro Thunderbird a Outlook", "Custom user agent" : "Uživatelem určený user agent", + "Select a user agent" : "Vyberte user agent", + "Select groups" : "Vybrat skupiny", + "Groups" : "Skupiny", + "Type to search for group …" : "Skupinu vyhledáte psaním…", + "Select a trigger" : "Vybrat spouštěč", "At least one event must be selected" : "Je třeba vybrat alespoň jednu událost", "Add new flow" : "Přidat nový tok", + "The configuration is invalid" : "Nastavení není platné", + "Active" : "Aktivní", + "Save" : "Uložit", "When" : "Kdy", "and" : "a", + "Add a new filter" : "Přidat nový filtr", "Cancel" : "Storno", "Delete" : "Smazat", - "The configuration is invalid" : "Nastavení není platné", - "Active" : "Aktivní", - "Save" : "Uložit", "Available flows" : "Toky k dispozici", "For details on how to write your own flow, check out the development documentation." : "Podrobnosti o tom, jak vytvářet toky naleznete v dokumentaci pro vývojáře.", + "No flows installed" : "Nenaistalované žádné toky", + "Ask your administrator to install new flows." : "Požádejte správce vámi využívané instance o instalaci nových toků.", "More flows" : "Další toky", "Browse the App Store" : "Procházet katalog aplikací", "Show less" : "Zobrazit méně", "Show more" : "Zobrazit více", "Configured flows" : "Nastavené toky", "Your flows" : "Vaše toky", + "No flows configured" : "Nenastaveny žádné toky", "matches" : "odpovídá", "does not match" : "neodpovídá", "is" : "je", @@ -107,12 +114,8 @@ "between" : "mezi", "not between" : "není mezi", "Request user agent" : "User agent požadavku", - "User group membership" : "Členství ve skupinách uživatelů", + "Group membership" : "Členství ve skupinách", "is member of" : "je členem", - "is not member of" : "není členem", - "Select a tag" : "Vybrat štítek", - "No results" : "Žádné výsledky", - "%s (invisible)" : "%s (neviditelné)", - "%s (restricted)" : "%s (omezeno)" + "is not member of" : "není členem" },"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/da.js b/apps/workflowengine/l10n/da.js index 80ec83c6ea7..aa280fbe2a6 100644 --- a/apps/workflowengine/l10n/da.js +++ b/apps/workflowengine/l10n/da.js @@ -21,20 +21,22 @@ OC.L10N.register( "Check #%s does not exist" : "Tjek #%s eksisterer", "Check %s is invalid or does not exist" : "Tjek %s er invalid eller eksisterer ikke", "Flow" : "Flow", + "Remove filter" : "Fjern filter", "Folder" : "Mappe", "Images" : "Billeder", - "Predefined URLs" : "Foruddefineret URLer", "Files WebDAV" : "Fil WebDAV", - "Others" : "Andre", "Android client" : "Android klient", "iOS client" : "iOS klient", "Desktop client" : "Dekstop klient", "Thunderbird & Outlook addons" : "Thunderbird & Outlook tilføjelser", + "Select groups" : "Vælg grupper", + "Groups" : "Grupper", + "Save" : "Gem", "and" : "og", - "Cancel" : "Annullér", + "Cancel" : "Annuller", "Delete" : "Slet", - "Save" : "Gem", "Browse the App Store" : "Gennemse App Store", + "Show less" : "Vis mindre", "matches" : "er lig med", "does not match" : "er ikke lig med", "is" : "er", @@ -59,11 +61,7 @@ OC.L10N.register( "between" : "mellem", "not between" : "ikke mellem", "Request user agent" : "Bruger \"user agent\"", - "User group membership" : "Brugers gruppemedlemsskab", "is member of" : "er medlem af", - "is not member of" : "er ikke medlem af", - "No results" : "Ingen resultater", - "%s (invisible)" : "%s (usynlig)", - "%s (restricted)" : "%s (begrænset)" + "is not member of" : "er ikke medlem af" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/da.json b/apps/workflowengine/l10n/da.json index 3ff57dc34dd..4a1c48b870f 100644 --- a/apps/workflowengine/l10n/da.json +++ b/apps/workflowengine/l10n/da.json @@ -19,20 +19,22 @@ "Check #%s does not exist" : "Tjek #%s eksisterer", "Check %s is invalid or does not exist" : "Tjek %s er invalid eller eksisterer ikke", "Flow" : "Flow", + "Remove filter" : "Fjern filter", "Folder" : "Mappe", "Images" : "Billeder", - "Predefined URLs" : "Foruddefineret URLer", "Files WebDAV" : "Fil WebDAV", - "Others" : "Andre", "Android client" : "Android klient", "iOS client" : "iOS klient", "Desktop client" : "Dekstop klient", "Thunderbird & Outlook addons" : "Thunderbird & Outlook tilføjelser", + "Select groups" : "Vælg grupper", + "Groups" : "Grupper", + "Save" : "Gem", "and" : "og", - "Cancel" : "Annullér", + "Cancel" : "Annuller", "Delete" : "Slet", - "Save" : "Gem", "Browse the App Store" : "Gennemse App Store", + "Show less" : "Vis mindre", "matches" : "er lig med", "does not match" : "er ikke lig med", "is" : "er", @@ -57,11 +59,7 @@ "between" : "mellem", "not between" : "ikke mellem", "Request user agent" : "Bruger \"user agent\"", - "User group membership" : "Brugers gruppemedlemsskab", "is member of" : "er medlem af", - "is not member of" : "er ikke medlem af", - "No results" : "Ingen resultater", - "%s (invisible)" : "%s (usynlig)", - "%s (restricted)" : "%s (begrænset)" + "is not member of" : "er ikke medlem af" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/de.js b/apps/workflowengine/l10n/de.js index 6c158908a92..761beaa28d9 100644 --- a/apps/workflowengine/l10n/de.js +++ b/apps/workflowengine/l10n/de.js @@ -48,43 +48,50 @@ OC.L10N.register( "Nextcloud workflow engine" : "Nextcloud Arbeitsablauf-Engine", "Select a filter" : "Filter auswählen", "Select a comparator" : "Wähle einen Komparator", - "Select a file type" : "Dateityp auswählen", - "e.g. httpd/unix-directory" : "z. B. httpd/unix-directory", + "Remove filter" : "Filter entfernen", "Folder" : "Ordner", "Images" : "Bilder", "Office documents" : "Office Dokumente", "PDF documents" : "PDF-Dokumente", "Custom MIME type" : "Benutzerdefinierter MIME Typ", "Custom mimetype" : "Benutzerdefinierter Mime-Typ", + "Select a file type" : "Dateityp auswählen", + "e.g. httpd/unix-directory" : "z. B. httpd/unix-directory", "Please enter a valid time span" : "Bitte einen gültigen Zeitraum angeben", - "Select a request URL" : "Wähle eine Anforderungs-URL aus", - "Predefined URLs" : "Vordefinierte URLs", "Files WebDAV" : "WebDAV für Dateien", - "Others" : "Andere", "Custom URL" : "Benutzerdefinierte URL", - "Select a user agent" : "User-Agenten auswählen", + "Select a request URL" : "Wähle eine Anforderungs-URL aus", "Android client" : "Android-Client", "iOS client" : "iOS-Client", "Desktop client" : "Desktop-Client", "Thunderbird & Outlook addons" : "Thunderbird & Outlook Add-ons", "Custom user agent" : "Benutzerdefinierter User-Agent", - "At least one event must be selected" : "Mindestens ein Termin muss ausgewählt werden", + "Select a user agent" : "User-Agenten auswählen", + "Select groups" : "Gruppen auswählen", + "Groups" : "Gruppen", + "Type to search for group …" : "Tippen um nach einer Gruppe zu suchen …", + "Select a trigger" : "Einen Auslöser auswählen", + "At least one event must be selected" : "Mindestens ein Ereignis muss ausgewählt werden", "Add new flow" : "Neuen Ablauf hinzufügen", + "The configuration is invalid" : "Die Konfiguration ist ungültig", + "Active" : "Aktiv", + "Save" : "Speichern", "When" : "Wenn", "and" : "und", + "Add a new filter" : "Neuen Filter hinzufügen", "Cancel" : "Abbrechen", "Delete" : "Löschen", - "The configuration is invalid" : "Die Konfiguration ist ungültig", - "Active" : "Aktiv", - "Save" : "Speichern", "Available flows" : "Verfügbare Abläufe", - "For details on how to write your own flow, check out the development documentation." : "Informationen zur Erstellung eigener Abläufe findest du in der Entwickler-Dokumentation.", + "For details on how to write your own flow, check out the development documentation." : "Informationen zur Erstellung eigener Abläufe finden sich in der Entwickler-Dokumentation.", + "No flows installed" : "Keine Abläufe installiert", + "Ask your administrator to install new flows." : "Bitte deine Administration, neue Abläufe zu installieren.", "More flows" : "Weitere Abläufe", "Browse the App Store" : "App-Store durchsuchen", "Show less" : "Weniger anzeigen", "Show more" : "Mehr anzeigen", "Configured flows" : "Konfigurierte Abläufe", "Your flows" : "Deine Abläufe", + "No flows configured" : "Keine Abläufe eingerichtet", "matches" : "entspricht", "does not match" : "entspricht nicht", "is" : "ist", @@ -109,12 +116,8 @@ OC.L10N.register( "between" : "zwischen", "not between" : "nicht zwischen", "Request user agent" : "User-Agent", - "User group membership" : "Benutzergruppen-Mitgliedschaft", + "Group membership" : "Gruppenmitgliedschaft", "is member of" : "ist Mitglied von", - "is not member of" : "ist kein Mitglied von", - "Select a tag" : "Schlagwort auswählen", - "No results" : "Keine Ergebnisse", - "%s (invisible)" : "%s(unsichtbar)", - "%s (restricted)" : "%s (eingeschränkt)" + "is not member of" : "ist kein Mitglied von" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/de.json b/apps/workflowengine/l10n/de.json index 6980e70ae0e..eca78d35353 100644 --- a/apps/workflowengine/l10n/de.json +++ b/apps/workflowengine/l10n/de.json @@ -46,43 +46,50 @@ "Nextcloud workflow engine" : "Nextcloud Arbeitsablauf-Engine", "Select a filter" : "Filter auswählen", "Select a comparator" : "Wähle einen Komparator", - "Select a file type" : "Dateityp auswählen", - "e.g. httpd/unix-directory" : "z. B. httpd/unix-directory", + "Remove filter" : "Filter entfernen", "Folder" : "Ordner", "Images" : "Bilder", "Office documents" : "Office Dokumente", "PDF documents" : "PDF-Dokumente", "Custom MIME type" : "Benutzerdefinierter MIME Typ", "Custom mimetype" : "Benutzerdefinierter Mime-Typ", + "Select a file type" : "Dateityp auswählen", + "e.g. httpd/unix-directory" : "z. B. httpd/unix-directory", "Please enter a valid time span" : "Bitte einen gültigen Zeitraum angeben", - "Select a request URL" : "Wähle eine Anforderungs-URL aus", - "Predefined URLs" : "Vordefinierte URLs", "Files WebDAV" : "WebDAV für Dateien", - "Others" : "Andere", "Custom URL" : "Benutzerdefinierte URL", - "Select a user agent" : "User-Agenten auswählen", + "Select a request URL" : "Wähle eine Anforderungs-URL aus", "Android client" : "Android-Client", "iOS client" : "iOS-Client", "Desktop client" : "Desktop-Client", "Thunderbird & Outlook addons" : "Thunderbird & Outlook Add-ons", "Custom user agent" : "Benutzerdefinierter User-Agent", - "At least one event must be selected" : "Mindestens ein Termin muss ausgewählt werden", + "Select a user agent" : "User-Agenten auswählen", + "Select groups" : "Gruppen auswählen", + "Groups" : "Gruppen", + "Type to search for group …" : "Tippen um nach einer Gruppe zu suchen …", + "Select a trigger" : "Einen Auslöser auswählen", + "At least one event must be selected" : "Mindestens ein Ereignis muss ausgewählt werden", "Add new flow" : "Neuen Ablauf hinzufügen", + "The configuration is invalid" : "Die Konfiguration ist ungültig", + "Active" : "Aktiv", + "Save" : "Speichern", "When" : "Wenn", "and" : "und", + "Add a new filter" : "Neuen Filter hinzufügen", "Cancel" : "Abbrechen", "Delete" : "Löschen", - "The configuration is invalid" : "Die Konfiguration ist ungültig", - "Active" : "Aktiv", - "Save" : "Speichern", "Available flows" : "Verfügbare Abläufe", - "For details on how to write your own flow, check out the development documentation." : "Informationen zur Erstellung eigener Abläufe findest du in der Entwickler-Dokumentation.", + "For details on how to write your own flow, check out the development documentation." : "Informationen zur Erstellung eigener Abläufe finden sich in der Entwickler-Dokumentation.", + "No flows installed" : "Keine Abläufe installiert", + "Ask your administrator to install new flows." : "Bitte deine Administration, neue Abläufe zu installieren.", "More flows" : "Weitere Abläufe", "Browse the App Store" : "App-Store durchsuchen", "Show less" : "Weniger anzeigen", "Show more" : "Mehr anzeigen", "Configured flows" : "Konfigurierte Abläufe", "Your flows" : "Deine Abläufe", + "No flows configured" : "Keine Abläufe eingerichtet", "matches" : "entspricht", "does not match" : "entspricht nicht", "is" : "ist", @@ -107,12 +114,8 @@ "between" : "zwischen", "not between" : "nicht zwischen", "Request user agent" : "User-Agent", - "User group membership" : "Benutzergruppen-Mitgliedschaft", + "Group membership" : "Gruppenmitgliedschaft", "is member of" : "ist Mitglied von", - "is not member of" : "ist kein Mitglied von", - "Select a tag" : "Schlagwort auswählen", - "No results" : "Keine Ergebnisse", - "%s (invisible)" : "%s(unsichtbar)", - "%s (restricted)" : "%s (eingeschränkt)" + "is not member of" : "ist kein Mitglied von" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/de_DE.js b/apps/workflowengine/l10n/de_DE.js index 57a7d678227..882d975e932 100644 --- a/apps/workflowengine/l10n/de_DE.js +++ b/apps/workflowengine/l10n/de_DE.js @@ -48,43 +48,50 @@ OC.L10N.register( "Nextcloud workflow engine" : "Nextcloud Arbeitsablauf-Engine", "Select a filter" : "Filter wählen", "Select a comparator" : "Wählen Sie einen Komparator", - "Select a file type" : "Dateityp auswählen", - "e.g. httpd/unix-directory" : "z.B. httpd/unix-directory", + "Remove filter" : "Filter entfernen", "Folder" : "Ordner", "Images" : "Bilder", "Office documents" : "Office-Dokumente", "PDF documents" : "PDF-Dokumente", "Custom MIME type" : "Benutzerdefinierter MIME Typ", "Custom mimetype" : "Benutzerdefinierter MIME-Typ", + "Select a file type" : "Dateityp auswählen", + "e.g. httpd/unix-directory" : "z.B. httpd/unix-directory", "Please enter a valid time span" : "Bitte einen gültigen Zeitraum angeben", - "Select a request URL" : "Wählen Sie eine Anforderungs-URL aus", - "Predefined URLs" : "Vordefinierte URLs", "Files WebDAV" : "WebDAV für Dateien", - "Others" : "Andere", "Custom URL" : "Benutzerdefinierte URL", - "Select a user agent" : "User-Agenten wählen", + "Select a request URL" : "Wählen Sie eine Anforderungs-URL aus", "Android client" : "Android-Client", "iOS client" : "iOS-Client", "Desktop client" : "Desktop-Client", "Thunderbird & Outlook addons" : "Thunderbird & Outlook Addons", "Custom user agent" : "Benutzerdefinierter User-Agent", + "Select a user agent" : "User-Agenten wählen", + "Select groups" : "Gruppen auswählen", + "Groups" : "Gruppen", + "Type to search for group …" : "Tippen um nach einer Gruppe zu suchen …", + "Select a trigger" : "Einen Auslöser auswählen", "At least one event must be selected" : "Mindestens ein Termin muss ausgewählt werden", "Add new flow" : "Neuen Ablauf hinzufügen", + "The configuration is invalid" : "Die Konfiguration ist ungültig", + "Active" : "Aktiv", + "Save" : "Speichern", "When" : "Wenn", "and" : "und", + "Add a new filter" : "Neuen Filter hinzufügen", "Cancel" : "Abbrechen", "Delete" : "Löschen", - "The configuration is invalid" : "Die Konfiguration ist ungültig", - "Active" : "Aktiv", - "Save" : "Speichern", "Available flows" : "Verfügbare Abläufe", "For details on how to write your own flow, check out the development documentation." : "Informationen wie eigene Abläufe erstellt werden, finden Sie in der Entwickler-Dokumentation.", + "No flows installed" : "Keine Abläufe installiert", + "Ask your administrator to install new flows." : "Bitten Sie Ihre Administration, neue Abläufe zu installieren.", "More flows" : "Weitere Abläufe", "Browse the App Store" : "App-Store durchsuchen", "Show less" : "Weniger anzeigen", "Show more" : "Mehr anzeigen", "Configured flows" : "Konfigurierte Abläufe", "Your flows" : "Ihre Abläufe", + "No flows configured" : "Keine Abläufe eingerichtet", "matches" : "entspricht", "does not match" : "entspricht nicht", "is" : "ist", @@ -96,7 +103,7 @@ OC.L10N.register( "less or equals" : "weniger oder gleich", "greater or equals" : "größer oder gleich", "greater" : "größer", - "Request remote address" : "IP Adresse der Anfrage", + "Request remote address" : "Entfernte Adresse der Anfrage", "matches IPv4" : "entspricht IPv4", "does not match IPv4" : "entspricht nicht IPv4", "matches IPv6" : "entspricht IPv6", @@ -108,13 +115,9 @@ OC.L10N.register( "Request time" : "Anfrage-Zeitpunkt", "between" : "zwischen", "not between" : "nicht zwischen", - "Request user agent" : "User-Agent", - "User group membership" : "Benutzergruppen-Mitgliedschaft", + "Request user agent" : "User-Agent anfragen", + "Group membership" : "Gruppenmitgliedschaft", "is member of" : "Ist Mitglied von", - "is not member of" : "Ist kein Mitglied von", - "Select a tag" : "Schlagwort auswählen", - "No results" : "Keine Ergebnisse", - "%s (invisible)" : "%s (unsichtbar)", - "%s (restricted)" : "%s (eingeschränkt)" + "is not member of" : "Ist kein Mitglied von" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/de_DE.json b/apps/workflowengine/l10n/de_DE.json index 230a02766aa..26b952586ba 100644 --- a/apps/workflowengine/l10n/de_DE.json +++ b/apps/workflowengine/l10n/de_DE.json @@ -46,43 +46,50 @@ "Nextcloud workflow engine" : "Nextcloud Arbeitsablauf-Engine", "Select a filter" : "Filter wählen", "Select a comparator" : "Wählen Sie einen Komparator", - "Select a file type" : "Dateityp auswählen", - "e.g. httpd/unix-directory" : "z.B. httpd/unix-directory", + "Remove filter" : "Filter entfernen", "Folder" : "Ordner", "Images" : "Bilder", "Office documents" : "Office-Dokumente", "PDF documents" : "PDF-Dokumente", "Custom MIME type" : "Benutzerdefinierter MIME Typ", "Custom mimetype" : "Benutzerdefinierter MIME-Typ", + "Select a file type" : "Dateityp auswählen", + "e.g. httpd/unix-directory" : "z.B. httpd/unix-directory", "Please enter a valid time span" : "Bitte einen gültigen Zeitraum angeben", - "Select a request URL" : "Wählen Sie eine Anforderungs-URL aus", - "Predefined URLs" : "Vordefinierte URLs", "Files WebDAV" : "WebDAV für Dateien", - "Others" : "Andere", "Custom URL" : "Benutzerdefinierte URL", - "Select a user agent" : "User-Agenten wählen", + "Select a request URL" : "Wählen Sie eine Anforderungs-URL aus", "Android client" : "Android-Client", "iOS client" : "iOS-Client", "Desktop client" : "Desktop-Client", "Thunderbird & Outlook addons" : "Thunderbird & Outlook Addons", "Custom user agent" : "Benutzerdefinierter User-Agent", + "Select a user agent" : "User-Agenten wählen", + "Select groups" : "Gruppen auswählen", + "Groups" : "Gruppen", + "Type to search for group …" : "Tippen um nach einer Gruppe zu suchen …", + "Select a trigger" : "Einen Auslöser auswählen", "At least one event must be selected" : "Mindestens ein Termin muss ausgewählt werden", "Add new flow" : "Neuen Ablauf hinzufügen", + "The configuration is invalid" : "Die Konfiguration ist ungültig", + "Active" : "Aktiv", + "Save" : "Speichern", "When" : "Wenn", "and" : "und", + "Add a new filter" : "Neuen Filter hinzufügen", "Cancel" : "Abbrechen", "Delete" : "Löschen", - "The configuration is invalid" : "Die Konfiguration ist ungültig", - "Active" : "Aktiv", - "Save" : "Speichern", "Available flows" : "Verfügbare Abläufe", "For details on how to write your own flow, check out the development documentation." : "Informationen wie eigene Abläufe erstellt werden, finden Sie in der Entwickler-Dokumentation.", + "No flows installed" : "Keine Abläufe installiert", + "Ask your administrator to install new flows." : "Bitten Sie Ihre Administration, neue Abläufe zu installieren.", "More flows" : "Weitere Abläufe", "Browse the App Store" : "App-Store durchsuchen", "Show less" : "Weniger anzeigen", "Show more" : "Mehr anzeigen", "Configured flows" : "Konfigurierte Abläufe", "Your flows" : "Ihre Abläufe", + "No flows configured" : "Keine Abläufe eingerichtet", "matches" : "entspricht", "does not match" : "entspricht nicht", "is" : "ist", @@ -94,7 +101,7 @@ "less or equals" : "weniger oder gleich", "greater or equals" : "größer oder gleich", "greater" : "größer", - "Request remote address" : "IP Adresse der Anfrage", + "Request remote address" : "Entfernte Adresse der Anfrage", "matches IPv4" : "entspricht IPv4", "does not match IPv4" : "entspricht nicht IPv4", "matches IPv6" : "entspricht IPv6", @@ -106,13 +113,9 @@ "Request time" : "Anfrage-Zeitpunkt", "between" : "zwischen", "not between" : "nicht zwischen", - "Request user agent" : "User-Agent", - "User group membership" : "Benutzergruppen-Mitgliedschaft", + "Request user agent" : "User-Agent anfragen", + "Group membership" : "Gruppenmitgliedschaft", "is member of" : "Ist Mitglied von", - "is not member of" : "Ist kein Mitglied von", - "Select a tag" : "Schlagwort auswählen", - "No results" : "Keine Ergebnisse", - "%s (invisible)" : "%s (unsichtbar)", - "%s (restricted)" : "%s (eingeschränkt)" + "is not member of" : "Ist kein Mitglied von" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/el.js b/apps/workflowengine/l10n/el.js index 73accc517e9..2f79bd897ba 100644 --- a/apps/workflowengine/l10n/el.js +++ b/apps/workflowengine/l10n/el.js @@ -48,35 +48,36 @@ OC.L10N.register( "Nextcloud workflow engine" : "Σύστημα ροής εργασιών Nextcloud", "Select a filter" : "Επιλογή φίλτρου", "Select a comparator" : "Επιλέξτε για σύγκριση", - "Select a file type" : "Επιλέξτε τύπο αρχείου", - "e.g. httpd/unix-directory" : "π.χ. httpd/unix-directory", + "Remove filter" : "Αφαίρεση φίλτρου", "Folder" : "Φάκελος", "Images" : "Εικόνες", "Office documents" : "Έγγραφα γραφείου", "PDF documents" : "Έγγραφα PDF", "Custom MIME type" : "Προσαρμοσμένος τύπος MIME", "Custom mimetype" : "Προσαρμοσμένος τύπος mime", + "Select a file type" : "Επιλέξτε τύπο αρχείου", + "e.g. httpd/unix-directory" : "π.χ. httpd/unix-directory", "Please enter a valid time span" : "Εισαγάγετε έγκυρο χρονικό διάστημα", - "Select a request URL" : "Επιλέξτε μια διεύθυνση URL αιτήματος", - "Predefined URLs" : "Προορισμένα URLs", "Files WebDAV" : "Αρχεία WebDAV", - "Others" : "Άλλοι", "Custom URL" : "Προσαρμοσμένο URL", - "Select a user agent" : "Επιλογή προγράμματος χρήστη", + "Select a request URL" : "Επιλέξτε μια διεύθυνση URL αιτήματος", "Android client" : "Πελάτης Android", "iOS client" : "Πελάτης iOS", "Desktop client" : "Πελάτης σταθερού υπολογιστή", "Thunderbird & Outlook addons" : "Πρόσθετα των Thunderbird & Outlook", "Custom user agent" : "Προσαρμοσμένο πρόγραμμα χρήστη", + "Select a user agent" : "Επιλογή προγράμματος χρήστη", + "Select groups" : "Επιλέξτε ομάδες", + "Groups" : "Ομάδες", "At least one event must be selected" : "Τουλάχιστον ένα γεγονός πρέπει να επιλεγεί", "Add new flow" : "Προσθήκη νέας ροής", + "The configuration is invalid" : "Μή έγκυρη ρύθμιση", + "Active" : "Ενεργό", + "Save" : "Αποθήκευση", "When" : "Πότε", "and" : "και", "Cancel" : "Ακύρωση", "Delete" : "Διαγραφή", - "The configuration is invalid" : "Μή έγκυρη ρύθμιση", - "Active" : "Ενεργό", - "Save" : "Αποθήκευση", "Available flows" : "Διαθέσιμες ροές", "For details on how to write your own flow, check out the development documentation." : "Για λεπτομέρεις πως μπορείτε να συντάξετε δική σας ροή, δείτε στην τεκμηρίωση προγραμματιστών.", "More flows" : "Περισσότερες ροές", @@ -109,12 +110,7 @@ OC.L10N.register( "between" : "μεταξύ", "not between" : "όχι μεταξύ", "Request user agent" : "Αιτηθείτε αντιπρόσωπο χρήστη", - "User group membership" : "Συμμετοχή σε ομάδα χρηστών", "is member of" : "είναι μέλος του", - "is not member of" : "δεν είναι μέλος του", - "Select a tag" : "Επιλογή ετικέτας", - "No results" : "Κανένα αποτέλεσμα", - "%s (invisible)" : "%s (αόρατο)", - "%s (restricted)" : "%s (περιορισμένο)" + "is not member of" : "δεν είναι μέλος του" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/el.json b/apps/workflowengine/l10n/el.json index ba69693b936..7cf1e71a7ba 100644 --- a/apps/workflowengine/l10n/el.json +++ b/apps/workflowengine/l10n/el.json @@ -46,35 +46,36 @@ "Nextcloud workflow engine" : "Σύστημα ροής εργασιών Nextcloud", "Select a filter" : "Επιλογή φίλτρου", "Select a comparator" : "Επιλέξτε για σύγκριση", - "Select a file type" : "Επιλέξτε τύπο αρχείου", - "e.g. httpd/unix-directory" : "π.χ. httpd/unix-directory", + "Remove filter" : "Αφαίρεση φίλτρου", "Folder" : "Φάκελος", "Images" : "Εικόνες", "Office documents" : "Έγγραφα γραφείου", "PDF documents" : "Έγγραφα PDF", "Custom MIME type" : "Προσαρμοσμένος τύπος MIME", "Custom mimetype" : "Προσαρμοσμένος τύπος mime", + "Select a file type" : "Επιλέξτε τύπο αρχείου", + "e.g. httpd/unix-directory" : "π.χ. httpd/unix-directory", "Please enter a valid time span" : "Εισαγάγετε έγκυρο χρονικό διάστημα", - "Select a request URL" : "Επιλέξτε μια διεύθυνση URL αιτήματος", - "Predefined URLs" : "Προορισμένα URLs", "Files WebDAV" : "Αρχεία WebDAV", - "Others" : "Άλλοι", "Custom URL" : "Προσαρμοσμένο URL", - "Select a user agent" : "Επιλογή προγράμματος χρήστη", + "Select a request URL" : "Επιλέξτε μια διεύθυνση URL αιτήματος", "Android client" : "Πελάτης Android", "iOS client" : "Πελάτης iOS", "Desktop client" : "Πελάτης σταθερού υπολογιστή", "Thunderbird & Outlook addons" : "Πρόσθετα των Thunderbird & Outlook", "Custom user agent" : "Προσαρμοσμένο πρόγραμμα χρήστη", + "Select a user agent" : "Επιλογή προγράμματος χρήστη", + "Select groups" : "Επιλέξτε ομάδες", + "Groups" : "Ομάδες", "At least one event must be selected" : "Τουλάχιστον ένα γεγονός πρέπει να επιλεγεί", "Add new flow" : "Προσθήκη νέας ροής", + "The configuration is invalid" : "Μή έγκυρη ρύθμιση", + "Active" : "Ενεργό", + "Save" : "Αποθήκευση", "When" : "Πότε", "and" : "και", "Cancel" : "Ακύρωση", "Delete" : "Διαγραφή", - "The configuration is invalid" : "Μή έγκυρη ρύθμιση", - "Active" : "Ενεργό", - "Save" : "Αποθήκευση", "Available flows" : "Διαθέσιμες ροές", "For details on how to write your own flow, check out the development documentation." : "Για λεπτομέρεις πως μπορείτε να συντάξετε δική σας ροή, δείτε στην τεκμηρίωση προγραμματιστών.", "More flows" : "Περισσότερες ροές", @@ -107,12 +108,7 @@ "between" : "μεταξύ", "not between" : "όχι μεταξύ", "Request user agent" : "Αιτηθείτε αντιπρόσωπο χρήστη", - "User group membership" : "Συμμετοχή σε ομάδα χρηστών", "is member of" : "είναι μέλος του", - "is not member of" : "δεν είναι μέλος του", - "Select a tag" : "Επιλογή ετικέτας", - "No results" : "Κανένα αποτέλεσμα", - "%s (invisible)" : "%s (αόρατο)", - "%s (restricted)" : "%s (περιορισμένο)" + "is not member of" : "δεν είναι μέλος του" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/en_GB.js b/apps/workflowengine/l10n/en_GB.js index 24807468973..971aa8d6415 100644 --- a/apps/workflowengine/l10n/en_GB.js +++ b/apps/workflowengine/l10n/en_GB.js @@ -48,43 +48,50 @@ OC.L10N.register( "Nextcloud workflow engine" : "Nextcloud workflow engine", "Select a filter" : "Select a filter", "Select a comparator" : "Select a comparator", - "Select a file type" : "Select a file type", - "e.g. httpd/unix-directory" : "e.g. httpd/unix-directory", + "Remove filter" : "Remove filter", "Folder" : "Folder", "Images" : "Images", "Office documents" : "Office documents", "PDF documents" : "PDF documents", "Custom MIME type" : "Custom MIME type", "Custom mimetype" : "Custom mimetype", + "Select a file type" : "Select a file type", + "e.g. httpd/unix-directory" : "e.g. httpd/unix-directory", "Please enter a valid time span" : "Please enter a valid time span", - "Select a request URL" : "Select a request URL", - "Predefined URLs" : "Predefined URLs", "Files WebDAV" : "Files WebDAV", - "Others" : "Others", "Custom URL" : "Custom URL", - "Select a user agent" : "Select a user agent", + "Select a request URL" : "Select a request URL", "Android client" : "Android client", "iOS client" : "iOS client", "Desktop client" : "Desktop client", "Thunderbird & Outlook addons" : "Thunderbird & Outlook addons", "Custom user agent" : "Custom user agent", + "Select a user agent" : "Select a user agent", + "Select groups" : "Select groups", + "Groups" : "Groups", + "Type to search for group …" : "Type to search for group …", + "Select a trigger" : "Select a trigger", "At least one event must be selected" : "At least one event must be selected", "Add new flow" : "Add new flow", + "The configuration is invalid" : "The configuration is invalid", + "Active" : "Active", + "Save" : "Save", "When" : "When", "and" : "and", + "Add a new filter" : "Add a new filter", "Cancel" : "Cancel", "Delete" : "Delete", - "The configuration is invalid" : "The configuration is invalid", - "Active" : "Active", - "Save" : "Save", "Available flows" : "Available flows", "For details on how to write your own flow, check out the development documentation." : "For details on how to write your own flow, check out the development documentation.", + "No flows installed" : "No flows installed", + "Ask your administrator to install new flows." : "Ask your administrator to install new flows.", "More flows" : "More flows", "Browse the App Store" : "Browse the App Store", "Show less" : "Show less", "Show more" : "Show more", "Configured flows" : "Configured flows", "Your flows" : "Your flows", + "No flows configured" : "No flows configured", "matches" : "matches", "does not match" : "does not match", "is" : "is", @@ -109,12 +116,8 @@ OC.L10N.register( "between" : "between", "not between" : "not between", "Request user agent" : "Request user agent", - "User group membership" : "User group membership", + "Group membership" : "Group membership", "is member of" : "is member of", - "is not member of" : "is not member of", - "Select a tag" : "Select a tag", - "No results" : "No results", - "%s (invisible)" : "%s (invisible)", - "%s (restricted)" : "%s (restricted)" + "is not member of" : "is not member of" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/en_GB.json b/apps/workflowengine/l10n/en_GB.json index 6ed0ed979c6..b4591846e96 100644 --- a/apps/workflowengine/l10n/en_GB.json +++ b/apps/workflowengine/l10n/en_GB.json @@ -46,43 +46,50 @@ "Nextcloud workflow engine" : "Nextcloud workflow engine", "Select a filter" : "Select a filter", "Select a comparator" : "Select a comparator", - "Select a file type" : "Select a file type", - "e.g. httpd/unix-directory" : "e.g. httpd/unix-directory", + "Remove filter" : "Remove filter", "Folder" : "Folder", "Images" : "Images", "Office documents" : "Office documents", "PDF documents" : "PDF documents", "Custom MIME type" : "Custom MIME type", "Custom mimetype" : "Custom mimetype", + "Select a file type" : "Select a file type", + "e.g. httpd/unix-directory" : "e.g. httpd/unix-directory", "Please enter a valid time span" : "Please enter a valid time span", - "Select a request URL" : "Select a request URL", - "Predefined URLs" : "Predefined URLs", "Files WebDAV" : "Files WebDAV", - "Others" : "Others", "Custom URL" : "Custom URL", - "Select a user agent" : "Select a user agent", + "Select a request URL" : "Select a request URL", "Android client" : "Android client", "iOS client" : "iOS client", "Desktop client" : "Desktop client", "Thunderbird & Outlook addons" : "Thunderbird & Outlook addons", "Custom user agent" : "Custom user agent", + "Select a user agent" : "Select a user agent", + "Select groups" : "Select groups", + "Groups" : "Groups", + "Type to search for group …" : "Type to search for group …", + "Select a trigger" : "Select a trigger", "At least one event must be selected" : "At least one event must be selected", "Add new flow" : "Add new flow", + "The configuration is invalid" : "The configuration is invalid", + "Active" : "Active", + "Save" : "Save", "When" : "When", "and" : "and", + "Add a new filter" : "Add a new filter", "Cancel" : "Cancel", "Delete" : "Delete", - "The configuration is invalid" : "The configuration is invalid", - "Active" : "Active", - "Save" : "Save", "Available flows" : "Available flows", "For details on how to write your own flow, check out the development documentation." : "For details on how to write your own flow, check out the development documentation.", + "No flows installed" : "No flows installed", + "Ask your administrator to install new flows." : "Ask your administrator to install new flows.", "More flows" : "More flows", "Browse the App Store" : "Browse the App Store", "Show less" : "Show less", "Show more" : "Show more", "Configured flows" : "Configured flows", "Your flows" : "Your flows", + "No flows configured" : "No flows configured", "matches" : "matches", "does not match" : "does not match", "is" : "is", @@ -107,12 +114,8 @@ "between" : "between", "not between" : "not between", "Request user agent" : "Request user agent", - "User group membership" : "User group membership", + "Group membership" : "Group membership", "is member of" : "is member of", - "is not member of" : "is not member of", - "Select a tag" : "Select a tag", - "No results" : "No results", - "%s (invisible)" : "%s (invisible)", - "%s (restricted)" : "%s (restricted)" + "is not member of" : "is not member of" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/eo.js b/apps/workflowengine/l10n/eo.js index ef84eef0e7d..26b48e500a2 100644 --- a/apps/workflowengine/l10n/eo.js +++ b/apps/workflowengine/l10n/eo.js @@ -35,31 +35,31 @@ OC.L10N.register( "Nextcloud workflow engine" : "Modulo de laborfluo de Nextcloud", "Select a filter" : "Elekti filtrilon", "Select a comparator" : "Elekti komparilon", - "Select a file type" : "Elekti dosierformon", - "e.g. httpd/unix-directory" : "ekz. httpd/unix-directory", "Folder" : "Dosierujo", "Images" : "Bildoj", "Office documents" : "Oficejaj dokumentoj", "PDF documents" : "PDF-dokumentoj", "Custom mimetype" : "Propra MIME-tipo", + "Select a file type" : "Elekti dosierformon", + "e.g. httpd/unix-directory" : "ekz. httpd/unix-directory", "Please enter a valid time span" : "Entajpu validan intertempon", - "Select a request URL" : "Elekti petan retadreson", - "Predefined URLs" : "Antaŭdifinitaj retadresoj", "Files WebDAV" : "Dosieroj WebDAV", - "Others" : "Aliaj", "Custom URL" : "Propra retadreso", - "Select a user agent" : "Elekti retumil-identigilo („user-agent“)", + "Select a request URL" : "Elekti petan retadreson", "Android client" : "Androida kliento", "iOS client" : "iOS-a kliento", "Desktop client" : "Labortabla kliento", "Thunderbird & Outlook addons" : "Thunderbird-a kaj Outlook-a aldonaĵo", "Custom user agent" : "Propra retumil-identigilo („user-agent“)", + "Select a user agent" : "Elekti retumil-identigilo („user-agent“)", + "Select groups" : "Elekti grupojn", + "Groups" : "Grupoj", + "The configuration is invalid" : "La agordo ne validas", + "Save" : "Konservi", "When" : "Kiam", "and" : "kaj", "Cancel" : "Nuligi", "Delete" : "Forigi", - "The configuration is invalid" : "La agordo ne validas", - "Save" : "Konservi", "Show less" : "Montri malpli", "Show more" : "Montri pli", "matches" : "kongruas kun", @@ -86,12 +86,7 @@ OC.L10N.register( "between" : "inter", "not between" : "ne inter", "Request user agent" : "Retumil-identigilo („user-agent“)", - "User group membership" : "Grupano", "is member of" : "estas membro de", - "is not member of" : "ne estas membro de", - "Select a tag" : "Elekti etikedon", - "No results" : "Neniu rezulto", - "%s (invisible)" : "%s (nevidebla)", - "%s (restricted)" : "%s (limigita)" + "is not member of" : "ne estas membro de" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/eo.json b/apps/workflowengine/l10n/eo.json index 447110d55b2..2ac663789b2 100644 --- a/apps/workflowengine/l10n/eo.json +++ b/apps/workflowengine/l10n/eo.json @@ -33,31 +33,31 @@ "Nextcloud workflow engine" : "Modulo de laborfluo de Nextcloud", "Select a filter" : "Elekti filtrilon", "Select a comparator" : "Elekti komparilon", - "Select a file type" : "Elekti dosierformon", - "e.g. httpd/unix-directory" : "ekz. httpd/unix-directory", "Folder" : "Dosierujo", "Images" : "Bildoj", "Office documents" : "Oficejaj dokumentoj", "PDF documents" : "PDF-dokumentoj", "Custom mimetype" : "Propra MIME-tipo", + "Select a file type" : "Elekti dosierformon", + "e.g. httpd/unix-directory" : "ekz. httpd/unix-directory", "Please enter a valid time span" : "Entajpu validan intertempon", - "Select a request URL" : "Elekti petan retadreson", - "Predefined URLs" : "Antaŭdifinitaj retadresoj", "Files WebDAV" : "Dosieroj WebDAV", - "Others" : "Aliaj", "Custom URL" : "Propra retadreso", - "Select a user agent" : "Elekti retumil-identigilo („user-agent“)", + "Select a request URL" : "Elekti petan retadreson", "Android client" : "Androida kliento", "iOS client" : "iOS-a kliento", "Desktop client" : "Labortabla kliento", "Thunderbird & Outlook addons" : "Thunderbird-a kaj Outlook-a aldonaĵo", "Custom user agent" : "Propra retumil-identigilo („user-agent“)", + "Select a user agent" : "Elekti retumil-identigilo („user-agent“)", + "Select groups" : "Elekti grupojn", + "Groups" : "Grupoj", + "The configuration is invalid" : "La agordo ne validas", + "Save" : "Konservi", "When" : "Kiam", "and" : "kaj", "Cancel" : "Nuligi", "Delete" : "Forigi", - "The configuration is invalid" : "La agordo ne validas", - "Save" : "Konservi", "Show less" : "Montri malpli", "Show more" : "Montri pli", "matches" : "kongruas kun", @@ -84,12 +84,7 @@ "between" : "inter", "not between" : "ne inter", "Request user agent" : "Retumil-identigilo („user-agent“)", - "User group membership" : "Grupano", "is member of" : "estas membro de", - "is not member of" : "ne estas membro de", - "Select a tag" : "Elekti etikedon", - "No results" : "Neniu rezulto", - "%s (invisible)" : "%s (nevidebla)", - "%s (restricted)" : "%s (limigita)" + "is not member of" : "ne estas membro de" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/es.js b/apps/workflowengine/l10n/es.js index beb0dd2e1a6..4dec679ca90 100644 --- a/apps/workflowengine/l10n/es.js +++ b/apps/workflowengine/l10n/es.js @@ -48,43 +48,50 @@ OC.L10N.register( "Nextcloud workflow engine" : "Motor de flujo de trabajo de Nextcloud", "Select a filter" : "Seleccione un filtro", "Select a comparator" : "Seleccione un comparador", - "Select a file type" : "Selecciona un tipo de archivo", - "e.g. httpd/unix-directory" : "p.ej.: httpd/carpeta-unix", + "Remove filter" : "Quitar filtro", "Folder" : "Carpeta", "Images" : "Imágenes", "Office documents" : "Documentos de oficina", "PDF documents" : "Documentos PDF", "Custom MIME type" : "Tipo MIME personalizado", "Custom mimetype" : "Tipo MIME (mimetype) personalizado", + "Select a file type" : "Selecciona un tipo de archivo", + "e.g. httpd/unix-directory" : "p.ej.: httpd/carpeta-unix", "Please enter a valid time span" : "Por favor especifique un intervalo de tiempo válido", - "Select a request URL" : "Selecciona una URL de petición", - "Predefined URLs" : "URLs predefinidas", "Files WebDAV" : "Archivos WebDAV", - "Others" : "Otros", "Custom URL" : "URL personalizada", - "Select a user agent" : "Selecciona un agente de usuario", + "Select a request URL" : "Selecciona una URL de petición", "Android client" : "Cliente Android", "iOS client" : "Cliente iOS", "Desktop client" : "Cliente de escritorio", "Thunderbird & Outlook addons" : "Complementos de Thunderbird y Outlook", "Custom user agent" : "Agente de usuario personalizado", + "Select a user agent" : "Selecciona un agente de usuario", + "Select groups" : "Seleccionar grupos", + "Groups" : "Grupos", + "Type to search for group …" : "Teclee para buscar un grupo …", + "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", + "Active" : "Activo", + "Save" : "Guardar", "When" : "Cuando", "and" : "y", + "Add a new filter" : "Añadir un nuevo filtro", "Cancel" : "Cancelar", "Delete" : "Eliminar", - "The configuration is invalid" : "La configuración es incorrecta", - "Active" : "Activo", - "Save" : "Guardar", "Available flows" : "Flujos disponibles", "For details on how to write your own flow, check out the development documentation." : "Para detalles acerca de cómo escribir su propio flujo, mire la documentación dedesarrollo.", + "No flows installed" : "No hay flujos instalados", + "Ask your administrator to install new flows." : "Pida a su administrador instalar nuevos flujos.", "More flows" : "Más flujos", "Browse the App Store" : "Explorar la App Store", "Show less" : "Ver menos", "Show more" : "Ver más", "Configured flows" : "Configurar flujos", "Your flows" : "Sus flujos", + "No flows configured" : "No hay flujos configurados", "matches" : "coincidencias", "does not match" : "no coincide", "is" : "es/esta", @@ -109,12 +116,8 @@ OC.L10N.register( "between" : "entre", "not between" : "no entre", "Request user agent" : "Solicitud del agente usuario ", - "User group membership" : "Pertenencia a un grupo de usuarios", + "Group membership" : "Membresía a grupos", "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "Select a tag" : "Selecciona una etiqueta", - "No results" : "Sin resultados", - "%s (invisible)" : "%s (invisible)", - "%s (restricted)" : "%s (restringido)" + "is not member of" : "no es miembro de" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/es.json b/apps/workflowengine/l10n/es.json index 670f13007d4..f25a5a8014b 100644 --- a/apps/workflowengine/l10n/es.json +++ b/apps/workflowengine/l10n/es.json @@ -46,43 +46,50 @@ "Nextcloud workflow engine" : "Motor de flujo de trabajo de Nextcloud", "Select a filter" : "Seleccione un filtro", "Select a comparator" : "Seleccione un comparador", - "Select a file type" : "Selecciona un tipo de archivo", - "e.g. httpd/unix-directory" : "p.ej.: httpd/carpeta-unix", + "Remove filter" : "Quitar filtro", "Folder" : "Carpeta", "Images" : "Imágenes", "Office documents" : "Documentos de oficina", "PDF documents" : "Documentos PDF", "Custom MIME type" : "Tipo MIME personalizado", "Custom mimetype" : "Tipo MIME (mimetype) personalizado", + "Select a file type" : "Selecciona un tipo de archivo", + "e.g. httpd/unix-directory" : "p.ej.: httpd/carpeta-unix", "Please enter a valid time span" : "Por favor especifique un intervalo de tiempo válido", - "Select a request URL" : "Selecciona una URL de petición", - "Predefined URLs" : "URLs predefinidas", "Files WebDAV" : "Archivos WebDAV", - "Others" : "Otros", "Custom URL" : "URL personalizada", - "Select a user agent" : "Selecciona un agente de usuario", + "Select a request URL" : "Selecciona una URL de petición", "Android client" : "Cliente Android", "iOS client" : "Cliente iOS", "Desktop client" : "Cliente de escritorio", "Thunderbird & Outlook addons" : "Complementos de Thunderbird y Outlook", "Custom user agent" : "Agente de usuario personalizado", + "Select a user agent" : "Selecciona un agente de usuario", + "Select groups" : "Seleccionar grupos", + "Groups" : "Grupos", + "Type to search for group …" : "Teclee para buscar un grupo …", + "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", + "Active" : "Activo", + "Save" : "Guardar", "When" : "Cuando", "and" : "y", + "Add a new filter" : "Añadir un nuevo filtro", "Cancel" : "Cancelar", "Delete" : "Eliminar", - "The configuration is invalid" : "La configuración es incorrecta", - "Active" : "Activo", - "Save" : "Guardar", "Available flows" : "Flujos disponibles", "For details on how to write your own flow, check out the development documentation." : "Para detalles acerca de cómo escribir su propio flujo, mire la documentación dedesarrollo.", + "No flows installed" : "No hay flujos instalados", + "Ask your administrator to install new flows." : "Pida a su administrador instalar nuevos flujos.", "More flows" : "Más flujos", "Browse the App Store" : "Explorar la App Store", "Show less" : "Ver menos", "Show more" : "Ver más", "Configured flows" : "Configurar flujos", "Your flows" : "Sus flujos", + "No flows configured" : "No hay flujos configurados", "matches" : "coincidencias", "does not match" : "no coincide", "is" : "es/esta", @@ -107,12 +114,8 @@ "between" : "entre", "not between" : "no entre", "Request user agent" : "Solicitud del agente usuario ", - "User group membership" : "Pertenencia a un grupo de usuarios", + "Group membership" : "Membresía a grupos", "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "Select a tag" : "Selecciona una etiqueta", - "No results" : "Sin resultados", - "%s (invisible)" : "%s (invisible)", - "%s (restricted)" : "%s (restringido)" + "is not member of" : "no es miembro de" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/es_419.js b/apps/workflowengine/l10n/es_419.js deleted file mode 100644 index 1ec3bc45344..00000000000 --- a/apps/workflowengine/l10n/es_419.js +++ /dev/null @@ -1,63 +0,0 @@ -OC.L10N.register( - "workflowengine", - { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/es_419.json b/apps/workflowengine/l10n/es_419.json deleted file mode 100644 index 54d9e0e5740..00000000000 --- a/apps/workflowengine/l10n/es_419.json +++ /dev/null @@ -1,61 +0,0 @@ -{ "translations": { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/es_AR.js b/apps/workflowengine/l10n/es_AR.js deleted file mode 100644 index 8f7afd35248..00000000000 --- a/apps/workflowengine/l10n/es_AR.js +++ /dev/null @@ -1,64 +0,0 @@ -OC.L10N.register( - "workflowengine", - { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos en WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Eliminar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File name" : "Nombre", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menor", - "less or equals" : "menor o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "Sin resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/es_AR.json b/apps/workflowengine/l10n/es_AR.json deleted file mode 100644 index 26f645c362f..00000000000 --- a/apps/workflowengine/l10n/es_AR.json +++ /dev/null @@ -1,62 +0,0 @@ -{ "translations": { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos en WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Eliminar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File name" : "Nombre", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menor", - "less or equals" : "menor o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "Sin resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/es_CL.js b/apps/workflowengine/l10n/es_CL.js deleted file mode 100644 index 1ec3bc45344..00000000000 --- a/apps/workflowengine/l10n/es_CL.js +++ /dev/null @@ -1,63 +0,0 @@ -OC.L10N.register( - "workflowengine", - { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/es_CL.json b/apps/workflowengine/l10n/es_CL.json deleted file mode 100644 index 54d9e0e5740..00000000000 --- a/apps/workflowengine/l10n/es_CL.json +++ /dev/null @@ -1,61 +0,0 @@ -{ "translations": { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/es_CO.js b/apps/workflowengine/l10n/es_CO.js deleted file mode 100644 index 1ec3bc45344..00000000000 --- a/apps/workflowengine/l10n/es_CO.js +++ /dev/null @@ -1,63 +0,0 @@ -OC.L10N.register( - "workflowengine", - { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/es_CO.json b/apps/workflowengine/l10n/es_CO.json deleted file mode 100644 index 54d9e0e5740..00000000000 --- a/apps/workflowengine/l10n/es_CO.json +++ /dev/null @@ -1,61 +0,0 @@ -{ "translations": { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/es_CR.js b/apps/workflowengine/l10n/es_CR.js deleted file mode 100644 index 1ec3bc45344..00000000000 --- a/apps/workflowengine/l10n/es_CR.js +++ /dev/null @@ -1,63 +0,0 @@ -OC.L10N.register( - "workflowengine", - { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/es_CR.json b/apps/workflowengine/l10n/es_CR.json deleted file mode 100644 index 54d9e0e5740..00000000000 --- a/apps/workflowengine/l10n/es_CR.json +++ /dev/null @@ -1,61 +0,0 @@ -{ "translations": { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/es_DO.js b/apps/workflowengine/l10n/es_DO.js deleted file mode 100644 index 1ec3bc45344..00000000000 --- a/apps/workflowengine/l10n/es_DO.js +++ /dev/null @@ -1,63 +0,0 @@ -OC.L10N.register( - "workflowengine", - { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/es_DO.json b/apps/workflowengine/l10n/es_DO.json deleted file mode 100644 index 54d9e0e5740..00000000000 --- a/apps/workflowengine/l10n/es_DO.json +++ /dev/null @@ -1,61 +0,0 @@ -{ "translations": { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/es_EC.js b/apps/workflowengine/l10n/es_EC.js index 1ec3bc45344..336a4b3c7e0 100644 --- a/apps/workflowengine/l10n/es_EC.js +++ b/apps/workflowengine/l10n/es_EC.js @@ -13,27 +13,86 @@ OC.L10N.register( "The given end time is invalid" : "El tiempo final dado no es válido", "The given group does not exist" : "El grupo dado no existe", "File" : "Archivo", + "File created" : "Archivo creado", + "File updated" : "Archivo actualizado", + "File renamed" : "Archivo renombrado", + "File deleted" : "Archivo eliminado", + "File accessed" : "Archivo accedido", + "File copied" : "Archivo copiado", + "Tag assigned" : "Etiqueta asignada", + "Someone" : "Alguien", + "%s created %s" : "%s creó %s", + "%s modified %s" : "%s modificó %s", + "%s deleted %s" : "%s eliminó %s", + "%s accessed %s" : "%s accedió a %s", + "%s renamed %s" : "%s renombró %s", + "%s copied %s" : "%s copió %s", + "%s assigned %s to %s" : "%s asignó %s a %s", "Operation #%s does not exist" : "La operación #%s no existe", + "Entity %s does not exist" : "La entidad %s no existe", + "Entity %s is invalid" : "La entidad %s no es válida", + "No events are chosen." : "No se han elegido eventos.", + "Entity %s has no event %s" : "La entidad %s no tiene el evento %s", "Operation %s does not exist" : "La operación %s no existe", "Operation %s is invalid" : "La operación %s es inválida", + "At least one check needs to be provided" : "Se debe proporcionar al menos una comprobación", + "The provided operation data is too long" : "Los datos de operación proporcionados son demasiado largos", + "Invalid check provided" : "Comprobación no válida proporcionada", "Check %s does not exist" : "La validación %s no existe", "Check %s is invalid" : "La validación %s no es inválida", + "Check %s is not allowed with this entity" : "La comprobación %s no está permitida con esta entidad", + "The provided check value is too long" : "El valor de comprobación proporcionado es demasiado largo", "Check #%s does not exist" : "La validación #%s no existe", "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", + "Flow" : "Flujo", + "Nextcloud workflow engine" : "Motor de flujo de trabajo de Nextcloud", + "Select a filter" : "Seleccionar un filtro", + "Select a comparator" : "Seleccionar un comparador", + "Remove filter" : "Eliminar filtro", "Folder" : "Carpeta", "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", + "Office documents" : "Documentos de Office", + "PDF documents" : "Documentos PDF", + "Custom MIME type" : "Tipo de MIME personalizado", + "Custom mimetype" : "Tipo de MIME personalizado", + "Select a file type" : "Seleccionar un tipo de archivo", + "e.g. httpd/unix-directory" : "p. ej. httpd/unix-directory", + "Please enter a valid time span" : "Por favor, introduce un período de tiempo válido", "Files WebDAV" : "Archivos WebDAV", + "Custom URL" : "URL personalizada", + "Select a request URL" : "Seleccionar una URL de solicitud", "Android client" : "Cliente Android", "iOS client" : "Cliente iOS", "Desktop client" : "Cliente de escritorio", + "Thunderbird & Outlook addons" : "Complementos de Thunderbird y Outlook", + "Custom user agent" : "Agente de usuario personalizado", + "Select a user agent" : "Seleccionar un agente de usuario", + "Select groups" : "Seleccionar grupos", + "Groups" : "Grupos", + "Select a trigger" : "Seleccionar un desencadenante", + "At least one event must be selected" : "Debe seleccionarse al menos un evento", + "Add new flow" : "Añadir nuevo flujo", + "The configuration is invalid" : "La configuración no es válida", + "Active" : "Activo", + "Save" : "Guardar", + "When" : "Cuando", + "and" : "y", + "Add a new filter" : "Añadir un nuevo filtro", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Save" : "Guardar", + "Available flows" : "Flujos disponibles", + "For details on how to write your own flow, check out the development documentation." : "Para obtener detalles sobre cómo escribir tu propio flujo, consulta la documentación de desarrollo.", + "More flows" : "Más flujos", + "Browse the App Store" : "Navega por la Tienda de aplicaciones", + "Show less" : "Mostrar menos", + "Show more" : "Mostrar más", + "Configured flows" : "Flujos configurados", + "Your flows" : "Tus flujos", "matches" : "coincide", "does not match" : "No coincide", "is" : "es", "is not" : "no es", + "File name" : "Nombre de archivo.", "File MIME type" : "Tipo MIME del archivo", "File size (upload)" : "Tamaño del archivo (carga)", "less" : "menos", @@ -53,11 +112,7 @@ OC.L10N.register( "between" : "entre", "not between" : "no entre", "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" + "is not member of" : "no es miembro de" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/es_EC.json b/apps/workflowengine/l10n/es_EC.json index 54d9e0e5740..c28e5a50fdd 100644 --- a/apps/workflowengine/l10n/es_EC.json +++ b/apps/workflowengine/l10n/es_EC.json @@ -11,27 +11,86 @@ "The given end time is invalid" : "El tiempo final dado no es válido", "The given group does not exist" : "El grupo dado no existe", "File" : "Archivo", + "File created" : "Archivo creado", + "File updated" : "Archivo actualizado", + "File renamed" : "Archivo renombrado", + "File deleted" : "Archivo eliminado", + "File accessed" : "Archivo accedido", + "File copied" : "Archivo copiado", + "Tag assigned" : "Etiqueta asignada", + "Someone" : "Alguien", + "%s created %s" : "%s creó %s", + "%s modified %s" : "%s modificó %s", + "%s deleted %s" : "%s eliminó %s", + "%s accessed %s" : "%s accedió a %s", + "%s renamed %s" : "%s renombró %s", + "%s copied %s" : "%s copió %s", + "%s assigned %s to %s" : "%s asignó %s a %s", "Operation #%s does not exist" : "La operación #%s no existe", + "Entity %s does not exist" : "La entidad %s no existe", + "Entity %s is invalid" : "La entidad %s no es válida", + "No events are chosen." : "No se han elegido eventos.", + "Entity %s has no event %s" : "La entidad %s no tiene el evento %s", "Operation %s does not exist" : "La operación %s no existe", "Operation %s is invalid" : "La operación %s es inválida", + "At least one check needs to be provided" : "Se debe proporcionar al menos una comprobación", + "The provided operation data is too long" : "Los datos de operación proporcionados son demasiado largos", + "Invalid check provided" : "Comprobación no válida proporcionada", "Check %s does not exist" : "La validación %s no existe", "Check %s is invalid" : "La validación %s no es inválida", + "Check %s is not allowed with this entity" : "La comprobación %s no está permitida con esta entidad", + "The provided check value is too long" : "El valor de comprobación proporcionado es demasiado largo", "Check #%s does not exist" : "La validación #%s no existe", "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", + "Flow" : "Flujo", + "Nextcloud workflow engine" : "Motor de flujo de trabajo de Nextcloud", + "Select a filter" : "Seleccionar un filtro", + "Select a comparator" : "Seleccionar un comparador", + "Remove filter" : "Eliminar filtro", "Folder" : "Carpeta", "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", + "Office documents" : "Documentos de Office", + "PDF documents" : "Documentos PDF", + "Custom MIME type" : "Tipo de MIME personalizado", + "Custom mimetype" : "Tipo de MIME personalizado", + "Select a file type" : "Seleccionar un tipo de archivo", + "e.g. httpd/unix-directory" : "p. ej. httpd/unix-directory", + "Please enter a valid time span" : "Por favor, introduce un período de tiempo válido", "Files WebDAV" : "Archivos WebDAV", + "Custom URL" : "URL personalizada", + "Select a request URL" : "Seleccionar una URL de solicitud", "Android client" : "Cliente Android", "iOS client" : "Cliente iOS", "Desktop client" : "Cliente de escritorio", + "Thunderbird & Outlook addons" : "Complementos de Thunderbird y Outlook", + "Custom user agent" : "Agente de usuario personalizado", + "Select a user agent" : "Seleccionar un agente de usuario", + "Select groups" : "Seleccionar grupos", + "Groups" : "Grupos", + "Select a trigger" : "Seleccionar un desencadenante", + "At least one event must be selected" : "Debe seleccionarse al menos un evento", + "Add new flow" : "Añadir nuevo flujo", + "The configuration is invalid" : "La configuración no es válida", + "Active" : "Activo", + "Save" : "Guardar", + "When" : "Cuando", + "and" : "y", + "Add a new filter" : "Añadir un nuevo filtro", "Cancel" : "Cancelar", "Delete" : "Borrar", - "Save" : "Guardar", + "Available flows" : "Flujos disponibles", + "For details on how to write your own flow, check out the development documentation." : "Para obtener detalles sobre cómo escribir tu propio flujo, consulta la documentación de desarrollo.", + "More flows" : "Más flujos", + "Browse the App Store" : "Navega por la Tienda de aplicaciones", + "Show less" : "Mostrar menos", + "Show more" : "Mostrar más", + "Configured flows" : "Flujos configurados", + "Your flows" : "Tus flujos", "matches" : "coincide", "does not match" : "No coincide", "is" : "es", "is not" : "no es", + "File name" : "Nombre de archivo.", "File MIME type" : "Tipo MIME del archivo", "File size (upload)" : "Tamaño del archivo (carga)", "less" : "menos", @@ -51,11 +110,7 @@ "between" : "entre", "not between" : "no entre", "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" + "is not member of" : "no es miembro de" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/es_GT.js b/apps/workflowengine/l10n/es_GT.js deleted file mode 100644 index 1ec3bc45344..00000000000 --- a/apps/workflowengine/l10n/es_GT.js +++ /dev/null @@ -1,63 +0,0 @@ -OC.L10N.register( - "workflowengine", - { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/es_GT.json b/apps/workflowengine/l10n/es_GT.json deleted file mode 100644 index 54d9e0e5740..00000000000 --- a/apps/workflowengine/l10n/es_GT.json +++ /dev/null @@ -1,61 +0,0 @@ -{ "translations": { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/es_HN.js b/apps/workflowengine/l10n/es_HN.js deleted file mode 100644 index 1ec3bc45344..00000000000 --- a/apps/workflowengine/l10n/es_HN.js +++ /dev/null @@ -1,63 +0,0 @@ -OC.L10N.register( - "workflowengine", - { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/es_HN.json b/apps/workflowengine/l10n/es_HN.json deleted file mode 100644 index 54d9e0e5740..00000000000 --- a/apps/workflowengine/l10n/es_HN.json +++ /dev/null @@ -1,61 +0,0 @@ -{ "translations": { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/es_MX.js b/apps/workflowengine/l10n/es_MX.js index 8a1468c1d2f..811647603b5 100644 --- a/apps/workflowengine/l10n/es_MX.js +++ b/apps/workflowengine/l10n/es_MX.js @@ -13,28 +13,90 @@ OC.L10N.register( "The given end time is invalid" : "El tiempo final dado no es válido", "The given group does not exist" : "El grupo dado no existe", "File" : "Archivo", + "File created" : "Archivo creado", + "File updated" : "Archivo actualizado", + "File renamed" : "Archivo renombrado", + "File deleted" : "Archivo eliminado", + "File accessed" : "Archivo accedido", + "File copied" : "Archivo copiado", + "Tag assigned" : "Etiqueta asignada", + "Someone" : "Alguien", + "%s created %s" : "%s ha creado %s", + "%s modified %s" : "%s ha modificado %s", + "%s deleted %s" : "%s ha eliminado %s", + "%s accessed %s" : "%s ha accedido a %s", + "%s renamed %s" : "%s ha renombrado %s", + "%s copied %s" : "%s ha copiado %s", + "%s assigned %s to %s" : "%s ha asignado %s a %s", "Operation #%s does not exist" : "La operación #%s no existe", + "Entity %s does not exist" : "La entidad %s no existe", + "Entity %s is invalid" : "La entidad %s no es válida", + "No events are chosen." : "No se han elegido eventos.", + "Entity %s has no event %s" : "La entidad %s no tiene evento %s", "Operation %s does not exist" : "La operación %s no existe", "Operation %s is invalid" : "La operación %s es inválida", + "At least one check needs to be provided" : "Se debe proporcionar al menos una comprobación", + "The provided operation data is too long" : "Los datos de operación proporcionados son demasiado largos", + "Invalid check provided" : "La comprobación proporcionada no es válida", "Check %s does not exist" : "La validación %s no existe", "Check %s is invalid" : "La validación %s no es inválida", + "Check %s is not allowed with this entity" : "La comprobación %s no se permite con esta entidad", + "The provided check value is too long" : "El valor de comprobación proporcionado es demasiado largo", "Check #%s does not exist" : "La validación #%s no existe", "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", + "Flow" : "Flujo", + "Nextcloud workflow engine" : "Motor de flujo de trabajo de Nextcloud", + "Select a filter" : "Seleccionar un filtro", + "Select a comparator" : "Seleccionar un comparador", + "Remove filter" : "Quitar filtro", "Folder" : "Carpeta", "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", + "Office documents" : "Documentos de oficina", + "PDF documents" : "Documentos PDF", + "Custom MIME type" : "Tipo de MIME personalizado", + "Custom mimetype" : "mimetype personalizado", + "Select a file type" : "Seleccionar un tipo de archivo", + "e.g. httpd/unix-directory" : "p. ej. httpd/unix-directory", + "Please enter a valid time span" : "Por favor introduzca un período de tiempo válido", "Files WebDAV" : "Archivos WebDAV", + "Custom URL" : "URL personalizada", + "Select a request URL" : "Seleccionar una URL de solicitud", "Android client" : "Cliente Android", "iOS client" : "Cliente iOS", "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", + "Thunderbird & Outlook addons" : "Complementos de Thunderbird y Outlook", + "Custom user agent" : "Agente de usuario personalizado", + "Select a user agent" : "Seleccionar un agente de usuario", + "Select groups" : "Seleccionar grupos", + "Groups" : "Grupos", + "Type to search for group …" : "Escriba para seleccionar un grupo...", + "Select a trigger" : "Seleccionar un desencadenante", + "At least one event must be selected" : "Debe seleccionar al menos un evento", + "Add new flow" : "Añadir nuevo flujo", + "The configuration is invalid" : "La configuración no es válida", + "Active" : "Activo", "Save" : "Guardar", + "When" : "Cuando", + "and" : "y", + "Add a new filter" : "Añadir un nuevo filtro", + "Cancel" : "Cancelar", + "Delete" : "Eliminar", + "Available flows" : "Flujos disponibles", + "For details on how to write your own flow, check out the development documentation." : "Para obtener detalles sobre cómo escribir su propio flujo, consulte la documentación de desarrollo.", + "No flows installed" : "No hay flujos instalados", + "Ask your administrator to install new flows." : "Pida a su administrador instalar nuevos flujos.", + "More flows" : "Más flujos", + "Browse the App Store" : "Explorar la tienda de aplicaciones", + "Show less" : "Mostrar menos", + "Show more" : "Mostrar más", + "Configured flows" : "Flujos configurados", + "Your flows" : "Sus flujos", + "No flows configured" : "No hay flujos configurados", "matches" : "coincide", "does not match" : "No coincide", "is" : "es", "is not" : "no es", - "File name" : "Nombre", + "File name" : "Nombre de archivo", "File MIME type" : "Tipo MIME del archivo", "File size (upload)" : "Tamaño del archivo (carga)", "less" : "menos", @@ -54,11 +116,8 @@ OC.L10N.register( "between" : "entre", "not between" : "no entre", "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", + "Group membership" : "Membresía a grupos", "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "Sin resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" + "is not member of" : "no es miembro de" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/es_MX.json b/apps/workflowengine/l10n/es_MX.json index cc2ad7fae28..3823a56aed4 100644 --- a/apps/workflowengine/l10n/es_MX.json +++ b/apps/workflowengine/l10n/es_MX.json @@ -11,28 +11,90 @@ "The given end time is invalid" : "El tiempo final dado no es válido", "The given group does not exist" : "El grupo dado no existe", "File" : "Archivo", + "File created" : "Archivo creado", + "File updated" : "Archivo actualizado", + "File renamed" : "Archivo renombrado", + "File deleted" : "Archivo eliminado", + "File accessed" : "Archivo accedido", + "File copied" : "Archivo copiado", + "Tag assigned" : "Etiqueta asignada", + "Someone" : "Alguien", + "%s created %s" : "%s ha creado %s", + "%s modified %s" : "%s ha modificado %s", + "%s deleted %s" : "%s ha eliminado %s", + "%s accessed %s" : "%s ha accedido a %s", + "%s renamed %s" : "%s ha renombrado %s", + "%s copied %s" : "%s ha copiado %s", + "%s assigned %s to %s" : "%s ha asignado %s a %s", "Operation #%s does not exist" : "La operación #%s no existe", + "Entity %s does not exist" : "La entidad %s no existe", + "Entity %s is invalid" : "La entidad %s no es válida", + "No events are chosen." : "No se han elegido eventos.", + "Entity %s has no event %s" : "La entidad %s no tiene evento %s", "Operation %s does not exist" : "La operación %s no existe", "Operation %s is invalid" : "La operación %s es inválida", + "At least one check needs to be provided" : "Se debe proporcionar al menos una comprobación", + "The provided operation data is too long" : "Los datos de operación proporcionados son demasiado largos", + "Invalid check provided" : "La comprobación proporcionada no es válida", "Check %s does not exist" : "La validación %s no existe", "Check %s is invalid" : "La validación %s no es inválida", + "Check %s is not allowed with this entity" : "La comprobación %s no se permite con esta entidad", + "The provided check value is too long" : "El valor de comprobación proporcionado es demasiado largo", "Check #%s does not exist" : "La validación #%s no existe", "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", + "Flow" : "Flujo", + "Nextcloud workflow engine" : "Motor de flujo de trabajo de Nextcloud", + "Select a filter" : "Seleccionar un filtro", + "Select a comparator" : "Seleccionar un comparador", + "Remove filter" : "Quitar filtro", "Folder" : "Carpeta", "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", + "Office documents" : "Documentos de oficina", + "PDF documents" : "Documentos PDF", + "Custom MIME type" : "Tipo de MIME personalizado", + "Custom mimetype" : "mimetype personalizado", + "Select a file type" : "Seleccionar un tipo de archivo", + "e.g. httpd/unix-directory" : "p. ej. httpd/unix-directory", + "Please enter a valid time span" : "Por favor introduzca un período de tiempo válido", "Files WebDAV" : "Archivos WebDAV", + "Custom URL" : "URL personalizada", + "Select a request URL" : "Seleccionar una URL de solicitud", "Android client" : "Cliente Android", "iOS client" : "Cliente iOS", "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", + "Thunderbird & Outlook addons" : "Complementos de Thunderbird y Outlook", + "Custom user agent" : "Agente de usuario personalizado", + "Select a user agent" : "Seleccionar un agente de usuario", + "Select groups" : "Seleccionar grupos", + "Groups" : "Grupos", + "Type to search for group …" : "Escriba para seleccionar un grupo...", + "Select a trigger" : "Seleccionar un desencadenante", + "At least one event must be selected" : "Debe seleccionar al menos un evento", + "Add new flow" : "Añadir nuevo flujo", + "The configuration is invalid" : "La configuración no es válida", + "Active" : "Activo", "Save" : "Guardar", + "When" : "Cuando", + "and" : "y", + "Add a new filter" : "Añadir un nuevo filtro", + "Cancel" : "Cancelar", + "Delete" : "Eliminar", + "Available flows" : "Flujos disponibles", + "For details on how to write your own flow, check out the development documentation." : "Para obtener detalles sobre cómo escribir su propio flujo, consulte la documentación de desarrollo.", + "No flows installed" : "No hay flujos instalados", + "Ask your administrator to install new flows." : "Pida a su administrador instalar nuevos flujos.", + "More flows" : "Más flujos", + "Browse the App Store" : "Explorar la tienda de aplicaciones", + "Show less" : "Mostrar menos", + "Show more" : "Mostrar más", + "Configured flows" : "Flujos configurados", + "Your flows" : "Sus flujos", + "No flows configured" : "No hay flujos configurados", "matches" : "coincide", "does not match" : "No coincide", "is" : "es", "is not" : "no es", - "File name" : "Nombre", + "File name" : "Nombre de archivo", "File MIME type" : "Tipo MIME del archivo", "File size (upload)" : "Tamaño del archivo (carga)", "less" : "menos", @@ -52,11 +114,8 @@ "between" : "entre", "not between" : "no entre", "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", + "Group membership" : "Membresía a grupos", "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "Sin resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" + "is not member of" : "no es miembro de" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/es_NI.js b/apps/workflowengine/l10n/es_NI.js deleted file mode 100644 index 1ec3bc45344..00000000000 --- a/apps/workflowengine/l10n/es_NI.js +++ /dev/null @@ -1,63 +0,0 @@ -OC.L10N.register( - "workflowengine", - { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/es_NI.json b/apps/workflowengine/l10n/es_NI.json deleted file mode 100644 index 54d9e0e5740..00000000000 --- a/apps/workflowengine/l10n/es_NI.json +++ /dev/null @@ -1,61 +0,0 @@ -{ "translations": { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/es_PA.js b/apps/workflowengine/l10n/es_PA.js deleted file mode 100644 index 1ec3bc45344..00000000000 --- a/apps/workflowengine/l10n/es_PA.js +++ /dev/null @@ -1,63 +0,0 @@ -OC.L10N.register( - "workflowengine", - { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/es_PA.json b/apps/workflowengine/l10n/es_PA.json deleted file mode 100644 index 54d9e0e5740..00000000000 --- a/apps/workflowengine/l10n/es_PA.json +++ /dev/null @@ -1,61 +0,0 @@ -{ "translations": { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/es_PE.js b/apps/workflowengine/l10n/es_PE.js deleted file mode 100644 index 1ec3bc45344..00000000000 --- a/apps/workflowengine/l10n/es_PE.js +++ /dev/null @@ -1,63 +0,0 @@ -OC.L10N.register( - "workflowengine", - { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/es_PE.json b/apps/workflowengine/l10n/es_PE.json deleted file mode 100644 index 54d9e0e5740..00000000000 --- a/apps/workflowengine/l10n/es_PE.json +++ /dev/null @@ -1,61 +0,0 @@ -{ "translations": { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/es_PR.js b/apps/workflowengine/l10n/es_PR.js deleted file mode 100644 index 1ec3bc45344..00000000000 --- a/apps/workflowengine/l10n/es_PR.js +++ /dev/null @@ -1,63 +0,0 @@ -OC.L10N.register( - "workflowengine", - { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/es_PR.json b/apps/workflowengine/l10n/es_PR.json deleted file mode 100644 index 54d9e0e5740..00000000000 --- a/apps/workflowengine/l10n/es_PR.json +++ /dev/null @@ -1,61 +0,0 @@ -{ "translations": { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/es_PY.js b/apps/workflowengine/l10n/es_PY.js deleted file mode 100644 index 1ec3bc45344..00000000000 --- a/apps/workflowengine/l10n/es_PY.js +++ /dev/null @@ -1,63 +0,0 @@ -OC.L10N.register( - "workflowengine", - { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/es_PY.json b/apps/workflowengine/l10n/es_PY.json deleted file mode 100644 index 54d9e0e5740..00000000000 --- a/apps/workflowengine/l10n/es_PY.json +++ /dev/null @@ -1,61 +0,0 @@ -{ "translations": { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/es_SV.js b/apps/workflowengine/l10n/es_SV.js deleted file mode 100644 index 1ec3bc45344..00000000000 --- a/apps/workflowengine/l10n/es_SV.js +++ /dev/null @@ -1,63 +0,0 @@ -OC.L10N.register( - "workflowengine", - { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/es_SV.json b/apps/workflowengine/l10n/es_SV.json deleted file mode 100644 index 54d9e0e5740..00000000000 --- a/apps/workflowengine/l10n/es_SV.json +++ /dev/null @@ -1,61 +0,0 @@ -{ "translations": { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/es_UY.js b/apps/workflowengine/l10n/es_UY.js deleted file mode 100644 index 1ec3bc45344..00000000000 --- a/apps/workflowengine/l10n/es_UY.js +++ /dev/null @@ -1,63 +0,0 @@ -OC.L10N.register( - "workflowengine", - { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -}, -"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/es_UY.json b/apps/workflowengine/l10n/es_UY.json deleted file mode 100644 index 54d9e0e5740..00000000000 --- a/apps/workflowengine/l10n/es_UY.json +++ /dev/null @@ -1,61 +0,0 @@ -{ "translations": { - "The given operator is invalid" : "El operador indicado es inválido", - "The given regular expression is invalid" : "La expresión regular indicada es inválida", - "The given file size is invalid" : "El tamaño de archivo indicado es inválido", - "The given tag id is invalid" : "El id de la etiqueta es inválido", - "The given IP range is invalid" : "El rango de IP's es inválido", - "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", - "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", - "The given time span is invalid" : "El espacio de tiempo dado es inválido", - "The given start time is invalid" : "El tiempo inicial dado no es válido", - "The given end time is invalid" : "El tiempo final dado no es válido", - "The given group does not exist" : "El grupo dado no existe", - "File" : "Archivo", - "Operation #%s does not exist" : "La operación #%s no existe", - "Operation %s does not exist" : "La operación %s no existe", - "Operation %s is invalid" : "La operación %s es inválida", - "Check %s does not exist" : "La validación %s no existe", - "Check %s is invalid" : "La validación %s no es inválida", - "Check #%s does not exist" : "La validación #%s no existe", - "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", - "Folder" : "Carpeta", - "Images" : "Imágenes", - "Predefined URLs" : "URLs predefinidos", - "Files WebDAV" : "Archivos WebDAV", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de escritorio", - "Cancel" : "Cancelar", - "Delete" : "Borrar", - "Save" : "Guardar", - "matches" : "coincide", - "does not match" : "No coincide", - "is" : "es", - "is not" : "no es", - "File MIME type" : "Tipo MIME del archivo", - "File size (upload)" : "Tamaño del archivo (carga)", - "less" : "menos", - "less or equals" : "menos o igual", - "greater or equals" : "mayor o igual", - "greater" : "mayor", - "Request remote address" : "Solicitar dirección remota", - "matches IPv4" : "coincide con IPv4", - "does not match IPv4" : "no coincide con IPv4", - "matches IPv6" : "coincide con IPv6", - "does not match IPv6" : "no coincide con IPv6", - "File system tag" : "Etiqueta del sistema de archivos", - "is tagged with" : "está etiquetado con", - "is not tagged with" : "no está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tiempo de la solicitud", - "between" : "entre", - "not between" : "no entre", - "Request user agent" : "Solicitar agente de usuario", - "User group membership" : "Membresia al grupo de usuarios", - "is member of" : "es miembro de", - "is not member of" : "no es miembro de", - "No results" : "No hay resultados", - "%s (invisible)" : "%s (invisible) ", - "%s (restricted)" : "%s (restringido)" -},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" -}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/et_EE.js b/apps/workflowengine/l10n/et_EE.js index 753f3211f33..a6dd9bd897e 100644 --- a/apps/workflowengine/l10n/et_EE.js +++ b/apps/workflowengine/l10n/et_EE.js @@ -1,10 +1,11 @@ OC.L10N.register( "workflowengine", { + "The given operator is invalid" : "Antud operaator/tehtemärk on vigane", "The given regular expression is invalid" : "Antud regulaaravaldis on vigane", "The given file size is invalid" : "Antud faili suurus on vigane", - "The given tag id is invalid" : "Antud sildi ID on vigane", - "The given IP range is invalid" : "Antud IP vahemik on vigane", + "The given tag id is invalid" : "Antud sildi tunnus on vigane", + "The given IP range is invalid" : "Antud IP-aadresside vahemik on vigane", "The given IP range is not valid for IPv4" : "Antud IP vahemik ei kehti IPv4 kohta", "The given IP range is not valid for IPv6" : "Antud IP vahemik ei kehti IPv6 kohta", "The given time span is invalid" : "Antud ajavahemik on vigane", @@ -12,28 +13,91 @@ OC.L10N.register( "The given end time is invalid" : "Antud lõppaeg on vigane", "The given group does not exist" : "Antud gruppi ei leitud", "File" : "Fail", + "File created" : "Fail on loodud", + "File updated" : "Fail on uuendatud", + "File renamed" : "Faili nimi on muudetud", "File deleted" : "Fail on kustutatud", + "File accessed" : "Faili on kasutatud", + "File copied" : "Fail on kopeeritud", + "Tag assigned" : "Silt on lisatud", + "Someone" : "Keegi", + "%s created %s" : "%s lõi %s", + "%s modified %s" : "%s muutis %s", + "%s deleted %s" : "%s kustutas %s", + "%s accessed %s" : "%s kasutas töövoogu %s", + "%s renamed %s" : "%s muutis %s nime", + "%s copied %s" : "%s kopeeris %s", + "%s assigned %s to %s" : "%s määras %s kasutajale %s", "Operation #%s does not exist" : "Tegevus # %s ei leitud", - "Operation %s does not exist" : "Tegevust %s ei leitud", - "Operation %s is invalid" : "Tegevus %s on vigane", + "Entity %s does not exist" : "%s objekti pole olemas", + "Entity %s is invalid" : "%s objekt on vigane", + "No events are chosen." : "Ühtegi sündmust pole valitud.", + "Entity %s has no event %s" : "%s objektil pole %s sündmust", + "Operation %s does not exist" : "%s tegevust pole olemas", + "Operation %s is invalid" : " %s tegevus on vigane", + "At least one check needs to be provided" : "Pead lisama vähemalt ühe kontrolli", + "The provided operation data is too long" : "Lisatud tegevuse andmed on liiga mahukad", + "Invalid check provided" : "Oled lisanud vigase kontrolli", + "Check %s does not exist" : "%s kontrolli pole olemas", + "Check %s is invalid" : "%s kontroll on vigane", + "Check %s is not allowed with this entity" : "Selle objekti puhul ei saa kasutada seda kontrolli: %s", + "The provided check value is too long" : "Lisatud kontrolli väärtus on liiga pikk", + "Check #%s does not exist" : "Kontrolli #%s pole olemas", + "Check %s is invalid or does not exist" : "%s kontroll on vigane või pole teda olemas", + "Flow" : "Töövoog", + "Nextcloud workflow engine" : "Nextcloudi töövoogude mootor", + "Select a filter" : "Vali filter", + "Select a comparator" : "Vali võrdleja", + "Remove filter" : "Eemalda filter", "Folder" : "Kaust", "Images" : "Pildid", - "No results" : "Vasteid ei leitud", - "%s (invisible)" : "%s (nähtamatu)", - "%s (restricted)" : "%s (piiratud)", - "Predefined URLs" : "Eelmääratletud URL-id", - "Files WebDAV" : "WebDAV failid", + "Office documents" : "Kontroritarkvara dokumendid", + "PDF documents" : "PDF-dokumendid", + "Custom MIME type" : "Sinu määratud MIME-tüüp", + "Custom mimetype" : "Sinu määratud MIME-tüüp", + "Select a file type" : "Vali failitüüp", + "e.g. httpd/unix-directory" : "nt. httpd/unix-directory", + "Please enter a valid time span" : "Palun sisesta korrektne ajavahemik", + "Files WebDAV" : "WebDAV-i failid", + "Custom URL" : "Sinu määratud võrguaadress", + "Select a request URL" : "Vali päringu võrguaadress", "Android client" : "Android klient", - "iOS client" : "iOS klient", + "iOS client" : "iOS-i klient", "Desktop client" : "Töölaua klient", + "Thunderbird & Outlook addons" : "Thunderbirdi ja Outlooki lisad", + "Custom user agent" : "Sinu määratud rakenduse tunnus", + "Select a user agent" : "Vali rakenduse tunnus", + "Select groups" : "Vali grupid", + "Groups" : "Grupid", + "Type to search for group …" : "Grupi otsimiseks kirjuta midagi…", + "Select a trigger" : "Vali päästik", + "At least one event must be selected" : "Palun valitud vähemalt üks sündmus", + "Add new flow" : "Lisa uus töövoog", + "The configuration is invalid" : "Seadistus on vigane", + "Active" : "Aktiivne", + "Save" : "Salvesta", + "When" : "Millal", + "and" : "ja", + "Add a new filter" : "Lisa uus filter", "Cancel" : "Loobu", "Delete" : "Kustuta", - "Save" : "Salvesta", + "Available flows" : "Saadaval töövood", + "For details on how to write your own flow, check out the development documentation." : "Lisateavet oma töövoogude kirjutamiseks leiad dokumentatsioonist arendajatele.", + "No flows installed" : "Ühtegi töövoogu pole paigaldatud", + "Ask your administrator to install new flows." : "Palu oma serveri haldajat, et ta paigaldaks uusi töövooge.", + "More flows" : "Veel töövooge", + "Browse the App Store" : "Sirvi rakendustepoodi", + "Show less" : "Näita vähem", + "Show more" : "Näita rohkem", + "Configured flows" : "Seadistatud töövood", + "Your flows" : "Sinu töövood", + "No flows configured" : "Ühtegi töövoogu pole seadistatud", "matches" : "kattub", "does not match" : "ei kattu", "is" : "on", "is not" : "ei ole", - "File MIME type" : "Faili MIME tüüp", + "File name" : "Failinimi", + "File MIME type" : "Faili MIME-tüüp", "File size (upload)" : "Faili suurus (üleslaadimine)", "less" : "väiksem", "less or equals" : "väiksem või võrdne", @@ -44,31 +108,16 @@ OC.L10N.register( "does not match IPv4" : "Ei kattu IPv4 aadressiga", "matches IPv6" : "kattub IPv6 aadressiga", "does not match IPv6" : "Ei kattu IPv6 aadressiga", - "File system tag" : "Faili süsteemi silt", + "File system tag" : "Failisüsteemi silt", "is tagged with" : "on sildiga", - "is not tagged with" : "ei ole sildiga", - "Request URL" : "Päringu URL", + "is not tagged with" : "ei ole märgitud sildiga", + "Request URL" : "Päringu võrguaadress", "Request time" : "Päringu aeg", "between" : "vahemikus", "not between" : "ei ole vahemikus", - "Request user agent" : "Päringu \"user agent\"", - "User group membership" : "Kasutajagrupi liige", + "Request user agent" : "Päri rakenduse tunnust", + "Group membership" : "Grupi liikmelisus", "is member of" : "on liige", - "is not member of" : "ei ole liige", - "Example: {placeholder}" : "Näide: {placeholder}", - "Select tag…" : "Vali silt...", - "Start" : "Algus", - "End" : "Lõpp", - "Select timezone…" : "Vali ajavöönd", - "Sync clients" : "Kliendiprogrammid", - "Short rule description" : "Reegli lühikirjeldus", - "Add rule" : "Lisa reegel", - "Reset" : "Lähtesta", - "Saving…" : "Salvestamine...", - "Saved" : "Salvestatud", - "Saving failed:" : "Salvestamine ebaõnnestus:", - "Add rule group" : "Lisa reegligrupp", - "Open documentation" : "Ava dokumentatsioon", - "Loading…" : "Laadimine..." + "is not member of" : "ei ole liige" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/et_EE.json b/apps/workflowengine/l10n/et_EE.json index 5f3e4831ad5..3da17c5756d 100644 --- a/apps/workflowengine/l10n/et_EE.json +++ b/apps/workflowengine/l10n/et_EE.json @@ -1,8 +1,9 @@ { "translations": { + "The given operator is invalid" : "Antud operaator/tehtemärk on vigane", "The given regular expression is invalid" : "Antud regulaaravaldis on vigane", "The given file size is invalid" : "Antud faili suurus on vigane", - "The given tag id is invalid" : "Antud sildi ID on vigane", - "The given IP range is invalid" : "Antud IP vahemik on vigane", + "The given tag id is invalid" : "Antud sildi tunnus on vigane", + "The given IP range is invalid" : "Antud IP-aadresside vahemik on vigane", "The given IP range is not valid for IPv4" : "Antud IP vahemik ei kehti IPv4 kohta", "The given IP range is not valid for IPv6" : "Antud IP vahemik ei kehti IPv6 kohta", "The given time span is invalid" : "Antud ajavahemik on vigane", @@ -10,28 +11,91 @@ "The given end time is invalid" : "Antud lõppaeg on vigane", "The given group does not exist" : "Antud gruppi ei leitud", "File" : "Fail", + "File created" : "Fail on loodud", + "File updated" : "Fail on uuendatud", + "File renamed" : "Faili nimi on muudetud", "File deleted" : "Fail on kustutatud", + "File accessed" : "Faili on kasutatud", + "File copied" : "Fail on kopeeritud", + "Tag assigned" : "Silt on lisatud", + "Someone" : "Keegi", + "%s created %s" : "%s lõi %s", + "%s modified %s" : "%s muutis %s", + "%s deleted %s" : "%s kustutas %s", + "%s accessed %s" : "%s kasutas töövoogu %s", + "%s renamed %s" : "%s muutis %s nime", + "%s copied %s" : "%s kopeeris %s", + "%s assigned %s to %s" : "%s määras %s kasutajale %s", "Operation #%s does not exist" : "Tegevus # %s ei leitud", - "Operation %s does not exist" : "Tegevust %s ei leitud", - "Operation %s is invalid" : "Tegevus %s on vigane", + "Entity %s does not exist" : "%s objekti pole olemas", + "Entity %s is invalid" : "%s objekt on vigane", + "No events are chosen." : "Ühtegi sündmust pole valitud.", + "Entity %s has no event %s" : "%s objektil pole %s sündmust", + "Operation %s does not exist" : "%s tegevust pole olemas", + "Operation %s is invalid" : " %s tegevus on vigane", + "At least one check needs to be provided" : "Pead lisama vähemalt ühe kontrolli", + "The provided operation data is too long" : "Lisatud tegevuse andmed on liiga mahukad", + "Invalid check provided" : "Oled lisanud vigase kontrolli", + "Check %s does not exist" : "%s kontrolli pole olemas", + "Check %s is invalid" : "%s kontroll on vigane", + "Check %s is not allowed with this entity" : "Selle objekti puhul ei saa kasutada seda kontrolli: %s", + "The provided check value is too long" : "Lisatud kontrolli väärtus on liiga pikk", + "Check #%s does not exist" : "Kontrolli #%s pole olemas", + "Check %s is invalid or does not exist" : "%s kontroll on vigane või pole teda olemas", + "Flow" : "Töövoog", + "Nextcloud workflow engine" : "Nextcloudi töövoogude mootor", + "Select a filter" : "Vali filter", + "Select a comparator" : "Vali võrdleja", + "Remove filter" : "Eemalda filter", "Folder" : "Kaust", "Images" : "Pildid", - "No results" : "Vasteid ei leitud", - "%s (invisible)" : "%s (nähtamatu)", - "%s (restricted)" : "%s (piiratud)", - "Predefined URLs" : "Eelmääratletud URL-id", - "Files WebDAV" : "WebDAV failid", + "Office documents" : "Kontroritarkvara dokumendid", + "PDF documents" : "PDF-dokumendid", + "Custom MIME type" : "Sinu määratud MIME-tüüp", + "Custom mimetype" : "Sinu määratud MIME-tüüp", + "Select a file type" : "Vali failitüüp", + "e.g. httpd/unix-directory" : "nt. httpd/unix-directory", + "Please enter a valid time span" : "Palun sisesta korrektne ajavahemik", + "Files WebDAV" : "WebDAV-i failid", + "Custom URL" : "Sinu määratud võrguaadress", + "Select a request URL" : "Vali päringu võrguaadress", "Android client" : "Android klient", - "iOS client" : "iOS klient", + "iOS client" : "iOS-i klient", "Desktop client" : "Töölaua klient", + "Thunderbird & Outlook addons" : "Thunderbirdi ja Outlooki lisad", + "Custom user agent" : "Sinu määratud rakenduse tunnus", + "Select a user agent" : "Vali rakenduse tunnus", + "Select groups" : "Vali grupid", + "Groups" : "Grupid", + "Type to search for group …" : "Grupi otsimiseks kirjuta midagi…", + "Select a trigger" : "Vali päästik", + "At least one event must be selected" : "Palun valitud vähemalt üks sündmus", + "Add new flow" : "Lisa uus töövoog", + "The configuration is invalid" : "Seadistus on vigane", + "Active" : "Aktiivne", + "Save" : "Salvesta", + "When" : "Millal", + "and" : "ja", + "Add a new filter" : "Lisa uus filter", "Cancel" : "Loobu", "Delete" : "Kustuta", - "Save" : "Salvesta", + "Available flows" : "Saadaval töövood", + "For details on how to write your own flow, check out the development documentation." : "Lisateavet oma töövoogude kirjutamiseks leiad dokumentatsioonist arendajatele.", + "No flows installed" : "Ühtegi töövoogu pole paigaldatud", + "Ask your administrator to install new flows." : "Palu oma serveri haldajat, et ta paigaldaks uusi töövooge.", + "More flows" : "Veel töövooge", + "Browse the App Store" : "Sirvi rakendustepoodi", + "Show less" : "Näita vähem", + "Show more" : "Näita rohkem", + "Configured flows" : "Seadistatud töövood", + "Your flows" : "Sinu töövood", + "No flows configured" : "Ühtegi töövoogu pole seadistatud", "matches" : "kattub", "does not match" : "ei kattu", "is" : "on", "is not" : "ei ole", - "File MIME type" : "Faili MIME tüüp", + "File name" : "Failinimi", + "File MIME type" : "Faili MIME-tüüp", "File size (upload)" : "Faili suurus (üleslaadimine)", "less" : "väiksem", "less or equals" : "väiksem või võrdne", @@ -42,31 +106,16 @@ "does not match IPv4" : "Ei kattu IPv4 aadressiga", "matches IPv6" : "kattub IPv6 aadressiga", "does not match IPv6" : "Ei kattu IPv6 aadressiga", - "File system tag" : "Faili süsteemi silt", + "File system tag" : "Failisüsteemi silt", "is tagged with" : "on sildiga", - "is not tagged with" : "ei ole sildiga", - "Request URL" : "Päringu URL", + "is not tagged with" : "ei ole märgitud sildiga", + "Request URL" : "Päringu võrguaadress", "Request time" : "Päringu aeg", "between" : "vahemikus", "not between" : "ei ole vahemikus", - "Request user agent" : "Päringu \"user agent\"", - "User group membership" : "Kasutajagrupi liige", + "Request user agent" : "Päri rakenduse tunnust", + "Group membership" : "Grupi liikmelisus", "is member of" : "on liige", - "is not member of" : "ei ole liige", - "Example: {placeholder}" : "Näide: {placeholder}", - "Select tag…" : "Vali silt...", - "Start" : "Algus", - "End" : "Lõpp", - "Select timezone…" : "Vali ajavöönd", - "Sync clients" : "Kliendiprogrammid", - "Short rule description" : "Reegli lühikirjeldus", - "Add rule" : "Lisa reegel", - "Reset" : "Lähtesta", - "Saving…" : "Salvestamine...", - "Saved" : "Salvestatud", - "Saving failed:" : "Salvestamine ebaõnnestus:", - "Add rule group" : "Lisa reegligrupp", - "Open documentation" : "Ava dokumentatsioon", - "Loading…" : "Laadimine..." + "is not member of" : "ei ole liige" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/eu.js b/apps/workflowengine/l10n/eu.js index 79faa1e8fdf..4f995c0244e 100644 --- a/apps/workflowengine/l10n/eu.js +++ b/apps/workflowengine/l10n/eu.js @@ -48,35 +48,37 @@ OC.L10N.register( "Nextcloud workflow engine" : "Nextcloud lan-fluxu motorra", "Select a filter" : "Hautatu iragazki bat", "Select a comparator" : "Hautatu konparatzailea", - "Select a file type" : "Hautatu fitxategi mota bat", - "e.g. httpd/unix-directory" : "adib. httpd/unix-direktorioa", + "Remove filter" : "Kendu iragazkia", "Folder" : "Karpeta", "Images" : "Irudiak", "Office documents" : "Office dokumentuak", "PDF documents" : "PDF dokumentuak", "Custom MIME type" : "MIME mota pertsonalizatua", "Custom mimetype" : "Mime mota pertsonalizatua", + "Select a file type" : "Hautatu fitxategi mota bat", + "e.g. httpd/unix-directory" : "adib. httpd/unix-direktorioa", "Please enter a valid time span" : "Sartu baliozko denbora tarte bat", - "Select a request URL" : "Hautatu eskaera URL bat", - "Predefined URLs" : "Aurrez definitutako URL-ak", "Files WebDAV" : "WebDAV fitxategiak", - "Others" : "Bestelakoak", "Custom URL" : "URL pertsonalizatua", - "Select a user agent" : "Hautatu erabiltzaile-agentea", + "Select a request URL" : "Hautatu eskaera URL bat", "Android client" : "Android bezeroa", "iOS client" : "iOS bezeroa", "Desktop client" : "Mahaigaineko bezeroa", "Thunderbird & Outlook addons" : "Thunderbird eta Outlook gehigarriak", "Custom user agent" : "Erabiltzaile-agente pertsonalizatua", + "Select a user agent" : "Hautatu erabiltzaile-agentea", + "Select groups" : "Hautatu taldeak", + "Groups" : "Taldeak", "At least one event must be selected" : "Gutxienez gertaera bat hautatu behar da", "Add new flow" : "Gehitu fluxu berria", + "The configuration is invalid" : "Konfigurazioa baliogabea da", + "Active" : "Aktiboa", + "Save" : "Gorde", "When" : "Noiz", "and" : "eta", + "Add a new filter" : "Gehitu iragazki berri bat", "Cancel" : "Utzi", "Delete" : "Ezabatu", - "The configuration is invalid" : "Konfigurazioa baliogabea da", - "Active" : "Aktiboa", - "Save" : "Gorde", "Available flows" : "Fluxu erabilgarriak", "For details on how to write your own flow, check out the development documentation." : "Zeure fluxua idazten jakiteko informazioa lortzeko, begiratu garatzaileen dokumentazioa.", "More flows" : "Fluxu gehiago", @@ -91,7 +93,7 @@ OC.L10N.register( "is not" : "ez da", "File name" : "Fitxategi-izena", "File MIME type" : "Fitxategiaren MIME mota", - "File size (upload)" : "Fitxategiaren tamaina (kargatzea)", + "File size (upload)" : "Fitxategiaren tamaina (igoera)", "less" : "gutxiago", "less or equals" : "gutxiago edo berdin", "greater or equals" : "handiagoa edo berdina", @@ -109,12 +111,8 @@ OC.L10N.register( "between" : "bitarte honetan", "not between" : "ez dago bitarte honetan", "Request user agent" : "Eskatu erabiltzaile-agentea", - "User group membership" : "Erabiltzailearen talde-kidetza", + "Group membership" : "Taldearen kidetza", "is member of" : "hemengo kide da:", - "is not member of" : "ez da hemengo kide:", - "Select a tag" : "Hautatu etiketa bat", - "No results" : "Emaitzarik ez", - "%s (invisible)" : "%s (ikusezina)", - "%s (restricted)" : "%s (mugatua)" + "is not member of" : "ez da hemengo kide:" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/eu.json b/apps/workflowengine/l10n/eu.json index b87e1d5bf65..589cc5cdc33 100644 --- a/apps/workflowengine/l10n/eu.json +++ b/apps/workflowengine/l10n/eu.json @@ -46,35 +46,37 @@ "Nextcloud workflow engine" : "Nextcloud lan-fluxu motorra", "Select a filter" : "Hautatu iragazki bat", "Select a comparator" : "Hautatu konparatzailea", - "Select a file type" : "Hautatu fitxategi mota bat", - "e.g. httpd/unix-directory" : "adib. httpd/unix-direktorioa", + "Remove filter" : "Kendu iragazkia", "Folder" : "Karpeta", "Images" : "Irudiak", "Office documents" : "Office dokumentuak", "PDF documents" : "PDF dokumentuak", "Custom MIME type" : "MIME mota pertsonalizatua", "Custom mimetype" : "Mime mota pertsonalizatua", + "Select a file type" : "Hautatu fitxategi mota bat", + "e.g. httpd/unix-directory" : "adib. httpd/unix-direktorioa", "Please enter a valid time span" : "Sartu baliozko denbora tarte bat", - "Select a request URL" : "Hautatu eskaera URL bat", - "Predefined URLs" : "Aurrez definitutako URL-ak", "Files WebDAV" : "WebDAV fitxategiak", - "Others" : "Bestelakoak", "Custom URL" : "URL pertsonalizatua", - "Select a user agent" : "Hautatu erabiltzaile-agentea", + "Select a request URL" : "Hautatu eskaera URL bat", "Android client" : "Android bezeroa", "iOS client" : "iOS bezeroa", "Desktop client" : "Mahaigaineko bezeroa", "Thunderbird & Outlook addons" : "Thunderbird eta Outlook gehigarriak", "Custom user agent" : "Erabiltzaile-agente pertsonalizatua", + "Select a user agent" : "Hautatu erabiltzaile-agentea", + "Select groups" : "Hautatu taldeak", + "Groups" : "Taldeak", "At least one event must be selected" : "Gutxienez gertaera bat hautatu behar da", "Add new flow" : "Gehitu fluxu berria", + "The configuration is invalid" : "Konfigurazioa baliogabea da", + "Active" : "Aktiboa", + "Save" : "Gorde", "When" : "Noiz", "and" : "eta", + "Add a new filter" : "Gehitu iragazki berri bat", "Cancel" : "Utzi", "Delete" : "Ezabatu", - "The configuration is invalid" : "Konfigurazioa baliogabea da", - "Active" : "Aktiboa", - "Save" : "Gorde", "Available flows" : "Fluxu erabilgarriak", "For details on how to write your own flow, check out the development documentation." : "Zeure fluxua idazten jakiteko informazioa lortzeko, begiratu garatzaileen dokumentazioa.", "More flows" : "Fluxu gehiago", @@ -89,7 +91,7 @@ "is not" : "ez da", "File name" : "Fitxategi-izena", "File MIME type" : "Fitxategiaren MIME mota", - "File size (upload)" : "Fitxategiaren tamaina (kargatzea)", + "File size (upload)" : "Fitxategiaren tamaina (igoera)", "less" : "gutxiago", "less or equals" : "gutxiago edo berdin", "greater or equals" : "handiagoa edo berdina", @@ -107,12 +109,8 @@ "between" : "bitarte honetan", "not between" : "ez dago bitarte honetan", "Request user agent" : "Eskatu erabiltzaile-agentea", - "User group membership" : "Erabiltzailearen talde-kidetza", + "Group membership" : "Taldearen kidetza", "is member of" : "hemengo kide da:", - "is not member of" : "ez da hemengo kide:", - "Select a tag" : "Hautatu etiketa bat", - "No results" : "Emaitzarik ez", - "%s (invisible)" : "%s (ikusezina)", - "%s (restricted)" : "%s (mugatua)" + "is not member of" : "ez da hemengo kide:" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/fa.js b/apps/workflowengine/l10n/fa.js index bf7bf85f47b..ffca2f79b24 100644 --- a/apps/workflowengine/l10n/fa.js +++ b/apps/workflowengine/l10n/fa.js @@ -13,30 +13,86 @@ OC.L10N.register( "The given end time is invalid" : "تاریخ پایان معتبر نیست ", "The given group does not exist" : "گروه گرفته شده معتبر نیست", "File" : "File", + "File created" : "File created", + "File updated" : "File updated", + "File renamed" : "File renamed", + "File deleted" : "File deleted", + "File accessed" : "File accessed", + "File copied" : "File copied", + "Tag assigned" : "Tag assigned", + "Someone" : "Someone", + "%s created %s" : "%s created %s", + "%s modified %s" : "%s modified %s", + "%s deleted %s" : "%s deleted %s", + "%s accessed %s" : "%s accessed %s", + "%s renamed %s" : "%s renamed %s", + "%s copied %s" : "%s copied %s", + "%s assigned %s to %s" : "%s assigned %s to %s", "Operation #%s does not exist" : "عمل %s وجود ندارد", + "Entity %s does not exist" : "Entity %s does not exist", + "Entity %s is invalid" : "Entity %s is invalid", + "No events are chosen." : "No events are chosen.", + "Entity %s has no event %s" : "Entity %s has no event %s", "Operation %s does not exist" : "عمل %s وجود ندارد ", "Operation %s is invalid" : "عمل %s معتبر نیست", + "At least one check needs to be provided" : "At least one check needs to be provided", + "The provided operation data is too long" : "The provided operation data is too long", + "Invalid check provided" : "Invalid check provided", "Check %s does not exist" : "%s را چک کنید وجود ندارد", "Check %s is invalid" : "%s را چک کنید معتبر نیست", + "Check %s is not allowed with this entity" : "Check %s is not allowed with this entity", + "The provided check value is too long" : "The provided check value is too long", "Check #%s does not exist" : "%s را چک کنید وجود ندارد ", "Check %s is invalid or does not exist" : "%s یا وجود ندارد یا معتبر نیست", "Flow" : "جریان", + "Nextcloud workflow engine" : "Nextcloud workflow engine", + "Select a filter" : "Select a filter", + "Select a comparator" : "Select a comparator", + "Remove filter" : "Remove filter", "Folder" : "پوشه", "Images" : "عکسها", - "Predefined URLs" : "URL از پیش تعریف شده ", + "Office documents" : "Office documents", + "PDF documents" : "PDF documents", + "Custom MIME type" : "Custom MIME type", + "Custom mimetype" : "Custom mimetype", + "Select a file type" : "Select a file type", + "e.g. httpd/unix-directory" : "e.g. httpd/unix-directory", + "Please enter a valid time span" : "Please enter a valid time span", "Files WebDAV" : "فایل های WebDAV", - "Others" : "دیگران", + "Custom URL" : "Custom URL", + "Select a request URL" : "Select a request URL", "Android client" : "دستگاه های اندروید ", "iOS client" : "دستگاه های IOS", "Desktop client" : "دستگاه دسکتاپ", - "Cancel" : "لغو", - "Delete" : "حذف", + "Thunderbird & Outlook addons" : "Thunderbird & Outlook addons", + "Custom user agent" : "Custom user agent", + "Select a user agent" : "Select a user agent", + "Select groups" : "انتخاب گروهها", + "Groups" : "گروه ها", + "Select a trigger" : "Select a trigger", + "At least one event must be selected" : "At least one event must be selected", + "Add new flow" : "Add new flow", + "The configuration is invalid" : "The configuration is invalid", "Active" : "فعال کردن", "Save" : "ذخیره", + "When" : "When", + "and" : "and", + "Add a new filter" : "Add a new filter", + "Cancel" : "لغو", + "Delete" : "حذف", + "Available flows" : "Available flows", + "For details on how to write your own flow, check out the development documentation." : "For details on how to write your own flow, check out the development documentation.", + "More flows" : "More flows", + "Browse the App Store" : "Browse the App Store", + "Show less" : "Show less", + "Show more" : "Show more", + "Configured flows" : "Configured flows", + "Your flows" : "Your flows", "matches" : "مطابق است", "does not match" : "مطابق نیست", "is" : "هست ", "is not" : "نیست", + "File name" : "نام فایل", "File MIME type" : "فایل از نوع MIME", "File size (upload)" : "حجم فایل (بارگزاری شده )", "less" : "کمتر", @@ -56,9 +112,7 @@ OC.L10N.register( "between" : "بین ", "not between" : "نیست بین", "Request user agent" : "درخواست سفیر کاربر", - "User group membership" : "عضویت کاربر در گروه", "is member of" : "عضو است در ", - "is not member of" : "عضو نیست در ", - "No results" : "نتیجه ای یافت نشد" + "is not member of" : "عضو نیست در " }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/workflowengine/l10n/fa.json b/apps/workflowengine/l10n/fa.json index 20b2025ff95..57f0c4a21a4 100644 --- a/apps/workflowengine/l10n/fa.json +++ b/apps/workflowengine/l10n/fa.json @@ -11,30 +11,86 @@ "The given end time is invalid" : "تاریخ پایان معتبر نیست ", "The given group does not exist" : "گروه گرفته شده معتبر نیست", "File" : "File", + "File created" : "File created", + "File updated" : "File updated", + "File renamed" : "File renamed", + "File deleted" : "File deleted", + "File accessed" : "File accessed", + "File copied" : "File copied", + "Tag assigned" : "Tag assigned", + "Someone" : "Someone", + "%s created %s" : "%s created %s", + "%s modified %s" : "%s modified %s", + "%s deleted %s" : "%s deleted %s", + "%s accessed %s" : "%s accessed %s", + "%s renamed %s" : "%s renamed %s", + "%s copied %s" : "%s copied %s", + "%s assigned %s to %s" : "%s assigned %s to %s", "Operation #%s does not exist" : "عمل %s وجود ندارد", + "Entity %s does not exist" : "Entity %s does not exist", + "Entity %s is invalid" : "Entity %s is invalid", + "No events are chosen." : "No events are chosen.", + "Entity %s has no event %s" : "Entity %s has no event %s", "Operation %s does not exist" : "عمل %s وجود ندارد ", "Operation %s is invalid" : "عمل %s معتبر نیست", + "At least one check needs to be provided" : "At least one check needs to be provided", + "The provided operation data is too long" : "The provided operation data is too long", + "Invalid check provided" : "Invalid check provided", "Check %s does not exist" : "%s را چک کنید وجود ندارد", "Check %s is invalid" : "%s را چک کنید معتبر نیست", + "Check %s is not allowed with this entity" : "Check %s is not allowed with this entity", + "The provided check value is too long" : "The provided check value is too long", "Check #%s does not exist" : "%s را چک کنید وجود ندارد ", "Check %s is invalid or does not exist" : "%s یا وجود ندارد یا معتبر نیست", "Flow" : "جریان", + "Nextcloud workflow engine" : "Nextcloud workflow engine", + "Select a filter" : "Select a filter", + "Select a comparator" : "Select a comparator", + "Remove filter" : "Remove filter", "Folder" : "پوشه", "Images" : "عکسها", - "Predefined URLs" : "URL از پیش تعریف شده ", + "Office documents" : "Office documents", + "PDF documents" : "PDF documents", + "Custom MIME type" : "Custom MIME type", + "Custom mimetype" : "Custom mimetype", + "Select a file type" : "Select a file type", + "e.g. httpd/unix-directory" : "e.g. httpd/unix-directory", + "Please enter a valid time span" : "Please enter a valid time span", "Files WebDAV" : "فایل های WebDAV", - "Others" : "دیگران", + "Custom URL" : "Custom URL", + "Select a request URL" : "Select a request URL", "Android client" : "دستگاه های اندروید ", "iOS client" : "دستگاه های IOS", "Desktop client" : "دستگاه دسکتاپ", - "Cancel" : "لغو", - "Delete" : "حذف", + "Thunderbird & Outlook addons" : "Thunderbird & Outlook addons", + "Custom user agent" : "Custom user agent", + "Select a user agent" : "Select a user agent", + "Select groups" : "انتخاب گروهها", + "Groups" : "گروه ها", + "Select a trigger" : "Select a trigger", + "At least one event must be selected" : "At least one event must be selected", + "Add new flow" : "Add new flow", + "The configuration is invalid" : "The configuration is invalid", "Active" : "فعال کردن", "Save" : "ذخیره", + "When" : "When", + "and" : "and", + "Add a new filter" : "Add a new filter", + "Cancel" : "لغو", + "Delete" : "حذف", + "Available flows" : "Available flows", + "For details on how to write your own flow, check out the development documentation." : "For details on how to write your own flow, check out the development documentation.", + "More flows" : "More flows", + "Browse the App Store" : "Browse the App Store", + "Show less" : "Show less", + "Show more" : "Show more", + "Configured flows" : "Configured flows", + "Your flows" : "Your flows", "matches" : "مطابق است", "does not match" : "مطابق نیست", "is" : "هست ", "is not" : "نیست", + "File name" : "نام فایل", "File MIME type" : "فایل از نوع MIME", "File size (upload)" : "حجم فایل (بارگزاری شده )", "less" : "کمتر", @@ -54,9 +110,7 @@ "between" : "بین ", "not between" : "نیست بین", "Request user agent" : "درخواست سفیر کاربر", - "User group membership" : "عضویت کاربر در گروه", "is member of" : "عضو است در ", - "is not member of" : "عضو نیست در ", - "No results" : "نتیجه ای یافت نشد" + "is not member of" : "عضو نیست در " },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/fi.js b/apps/workflowengine/l10n/fi.js index f86cd965302..ddd3e78801c 100644 --- a/apps/workflowengine/l10n/fi.js +++ b/apps/workflowengine/l10n/fi.js @@ -40,24 +40,25 @@ OC.L10N.register( "Check %s is invalid or does not exist" : "Tarkistus %s on virheellinen tai sitä ei ole olemassa", "Flow" : "Kulku", "Nextcloud workflow engine" : "Nextcloudin työnkulkumoottori", - "Select a file type" : "Valitse tiedostotyyppi", + "Remove filter" : "Poista suodatin", "Folder" : "Kansio", "Images" : "Kuvat", "Office documents" : "Toimisto-ohjelmistojen asiakirjat", "PDF documents" : "PDF-asiakirjat", "Custom mimetype" : "Mukautettu MIME-tyyppi", - "Predefined URLs" : "Ennalta määritellyt URL-osoitteet", + "Select a file type" : "Valitse tiedostotyyppi", "Files WebDAV" : "Tiedostot WebDAV", - "Others" : "Muut", "Android client" : "Android-sovellus", "iOS client" : "iOS-sovellus", "Desktop client" : "Työpöytäsovellus", "Thunderbird & Outlook addons" : "Thunderbird- & Outlook-lisäosat", + "Select groups" : "Valitse ryhmät", + "Groups" : "Ryhmät", + "Active" : "Aktiivinen", + "Save" : "Tallenna", "and" : "ja", "Cancel" : "Peruuta", "Delete" : "Poista", - "Active" : "Aktiivinen", - "Save" : "Tallenna", "Browse the App Store" : "Selaa Sovelluskauppaa", "Show less" : "Näytä vähemmän", "Show more" : "Näytä enemmän", @@ -85,11 +86,7 @@ OC.L10N.register( "between" : "välillä", "not between" : "ei välillä", "Request user agent" : "Pyynnön user agent", - "User group membership" : "Käyttäjäryhmäjäsenyys", "is member of" : "on jäsen", - "is not member of" : "ei ole jäsen", - "No results" : "Ei tuloksia", - "%s (invisible)" : "%s (näkymätön)", - "%s (restricted)" : "%s (rajoitettu)" + "is not member of" : "ei ole jäsen" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/fi.json b/apps/workflowengine/l10n/fi.json index 4db37a771b8..c7faee559c1 100644 --- a/apps/workflowengine/l10n/fi.json +++ b/apps/workflowengine/l10n/fi.json @@ -38,24 +38,25 @@ "Check %s is invalid or does not exist" : "Tarkistus %s on virheellinen tai sitä ei ole olemassa", "Flow" : "Kulku", "Nextcloud workflow engine" : "Nextcloudin työnkulkumoottori", - "Select a file type" : "Valitse tiedostotyyppi", + "Remove filter" : "Poista suodatin", "Folder" : "Kansio", "Images" : "Kuvat", "Office documents" : "Toimisto-ohjelmistojen asiakirjat", "PDF documents" : "PDF-asiakirjat", "Custom mimetype" : "Mukautettu MIME-tyyppi", - "Predefined URLs" : "Ennalta määritellyt URL-osoitteet", + "Select a file type" : "Valitse tiedostotyyppi", "Files WebDAV" : "Tiedostot WebDAV", - "Others" : "Muut", "Android client" : "Android-sovellus", "iOS client" : "iOS-sovellus", "Desktop client" : "Työpöytäsovellus", "Thunderbird & Outlook addons" : "Thunderbird- & Outlook-lisäosat", + "Select groups" : "Valitse ryhmät", + "Groups" : "Ryhmät", + "Active" : "Aktiivinen", + "Save" : "Tallenna", "and" : "ja", "Cancel" : "Peruuta", "Delete" : "Poista", - "Active" : "Aktiivinen", - "Save" : "Tallenna", "Browse the App Store" : "Selaa Sovelluskauppaa", "Show less" : "Näytä vähemmän", "Show more" : "Näytä enemmän", @@ -83,11 +84,7 @@ "between" : "välillä", "not between" : "ei välillä", "Request user agent" : "Pyynnön user agent", - "User group membership" : "Käyttäjäryhmäjäsenyys", "is member of" : "on jäsen", - "is not member of" : "ei ole jäsen", - "No results" : "Ei tuloksia", - "%s (invisible)" : "%s (näkymätön)", - "%s (restricted)" : "%s (rajoitettu)" + "is not member of" : "ei ole jäsen" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/fr.js b/apps/workflowengine/l10n/fr.js index edd9323103a..1e50fd144ef 100644 --- a/apps/workflowengine/l10n/fr.js +++ b/apps/workflowengine/l10n/fr.js @@ -2,12 +2,12 @@ OC.L10N.register( "workflowengine", { "The given operator is invalid" : "L'opérateur donné est invalide", - "The given regular expression is invalid" : "L'expression régulière donnée est invalide", - "The given file size is invalid" : "La taille du fichier donné est invalide", + "The given regular expression is invalid" : "L’expression régulière donnée est invalide", + "The given file size is invalid" : "La taille du fichier donnée est invalide", "The given tag id is invalid" : "L’identifiant de l'étiquette donné est invalide", - "The given IP range is invalid" : "La plage d'adresse IP donnée est invalide", - "The given IP range is not valid for IPv4" : "La plage d'adresse IP donnée n'est pas valide pour l'IPv4", - "The given IP range is not valid for IPv6" : "La plage d'adresse IP donnée n'est pas valide pour l'IPv6", + "The given IP range is invalid" : "La plage d’adresses IP donnée est invalide", + "The given IP range is not valid for IPv4" : "La plage d’adresses IP donnée n’est pas valide pour l’IPv4", + "The given IP range is not valid for IPv6" : "La plage d’adresses IP donnée n’est pas valide pour l’IPv6", "The given time span is invalid" : "La durée est invalide", "The given start time is invalid" : "La date de début est invalide", "The given end time is invalid" : "La date de fin est invalide", @@ -28,67 +28,74 @@ OC.L10N.register( "%s renamed %s" : "%s renommé %s", "%s copied %s" : "%s copié %s", "%s assigned %s to %s" : "%s a assigné %sà %s", - "Operation #%s does not exist" : "L'opération #%s n'existe pas", + "Operation #%s does not exist" : "L’opération #%s n’existe pas", "Entity %s does not exist" : "L'entité %sn'existe pas", "Entity %s is invalid" : "L'entité %s est non valide", "No events are chosen." : "Aucun évènement a été choisi.", "Entity %s has no event %s" : "L'entité %sn'a aucun évènement %s", - "Operation %s does not exist" : "L'opération %s n'existe pas", - "Operation %s is invalid" : "L'opération %s est invalide", - "At least one check needs to be provided" : "Au moins une vérification doit être fournie", + "Operation %s does not exist" : "L’opération %s n’existe pas", + "Operation %s is invalid" : "L’opération %s est invalide", + "At least one check needs to be provided" : "Au moins une condition doit être fournie", "The provided operation data is too long" : "Les données d’opération fournies sont trop longues", - "Invalid check provided" : "Vérification non valide fournie", - "Check %s does not exist" : "Vérifiez si %s n'existe pas", - "Check %s is invalid" : "Vérifiez si %s est invalide", - "Check %s is not allowed with this entity" : "La vérification %s n'est pas autorisée avec cette entité", - "The provided check value is too long" : "La valeur de contrôle fournie est trop longue", - "Check #%s does not exist" : "Vérifiez si #%s n'existe pas", - "Check %s is invalid or does not exist" : "Vérifiez si %s est invalide ou n'existe pas", + "Invalid check provided" : "Condition proposée invalide", + "Check %s does not exist" : "La condition %s n'existe pas", + "Check %s is invalid" : "La condition %s est invalide", + "Check %s is not allowed with this entity" : "La condition %s n'est pas autorisée avec cette entité", + "The provided check value is too long" : "La valeur de la condition fournie est trop longue", + "Check #%s does not exist" : "La condition #%s n'existe pas", + "Check %s is invalid or does not exist" : "La condition %s est invalide ou n'existe pas", "Flow" : "Flux", "Nextcloud workflow engine" : "Moteur de workflow Nextcloud", "Select a filter" : "Sélectionner un filtre", "Select a comparator" : "Sélectionnez un comparateur", - "Select a file type" : "Sélectionnez un type de fichier", - "e.g. httpd/unix-directory" : "par exemple httpd/unix-directory", + "Remove filter" : "Retirer le filtre", "Folder" : "Dossier", "Images" : "Images", "Office documents" : "Documents Office", "PDF documents" : "Documents PDF", "Custom MIME type" : "Type MIME personnalisé", "Custom mimetype" : "mimetype personnalisé", + "Select a file type" : "Sélectionnez un type de fichier", + "e.g. httpd/unix-directory" : "par exemple httpd/unix-directory", "Please enter a valid time span" : "Merci de saisir une période de temps valide", - "Select a request URL" : "Sélectionnez une requête URL", - "Predefined URLs" : "URL prédéfinis", "Files WebDAV" : "Fichiers WebDAV", - "Others" : "Autres", "Custom URL" : "URL personnalisée", - "Select a user agent" : "Sélectionnez un utilisateur", + "Select a request URL" : "Sélectionnez une requête URL", "Android client" : "Client Android", "iOS client" : "Client iOS", "Desktop client" : "Client de bureau", "Thunderbird & Outlook addons" : "Modules complémentaires Thunderbird & Outlook", - "Custom user agent" : "Agent utilisateur personnalisé", + "Custom user agent" : "Autre client", + "Select a user agent" : "Sélectionner un client", + "Select groups" : "Sélectionnez les groupes", + "Groups" : "Groupes", + "Type to search for group …" : "Tapez pour rechercher un groupe…", + "Select a trigger" : "Sélectionner un déclencheur", "At least one event must be selected" : "Au moins un événement doit être sélectionné", "Add new flow" : "Ajouter un nouveau flux", + "The configuration is invalid" : "Configuration non valide", + "Active" : "Actif", + "Save" : "Enregistrer", "When" : "Quand", "and" : "et", + "Add a new filter" : "Ajouter une condition", "Cancel" : "Annuler", "Delete" : "Supprimer", - "The configuration is invalid" : "Configuration non valide", - "Active" : "Actif", - "Save" : "Enregistrer", "Available flows" : "Flux disponibles", "For details on how to write your own flow, check out the development documentation." : "Pour savoir comment rédiger votre propre flux, consultez la documentation sur le développement.", + "No flows installed" : "Aucun flux n’est installé", + "Ask your administrator to install new flows." : "Demandez à votre administrateur d'installer de nouveaux flux.", "More flows" : "Plus de flux", "Browse the App Store" : "Parcourir le magasin d'applications", "Show less" : "Afficher moins", "Show more" : "Afficher plus", "Configured flows" : "Flux configurés", "Your flows" : "Vos flux", + "No flows configured" : "Aucun flux n’est configuré", "matches" : "correspond", "does not match" : "ne correspond pas", "is" : "est", - "is not" : "n'est pas", + "is not" : "n’est pas", "File name" : "Nom du fichier", "File MIME type" : "Type MIME du fichier", "File size (upload)" : "Taille du fichier (à téléverser)", @@ -96,7 +103,7 @@ OC.L10N.register( "less or equals" : "inférieur ou égal", "greater or equals" : "supérieur ou égal", "greater" : "plus grand que", - "Request remote address" : "Demander une adresse distante", + "Request remote address" : "Adresse IP de la requête", "matches IPv4" : "correspond à une adresse IPv4", "does not match IPv4" : "ne correspond pas à une adresse IPv4", "matches IPv6" : "correspond à une adresse IPv6", @@ -104,17 +111,13 @@ OC.L10N.register( "File system tag" : "Étiquette collaborative du fichier", "is tagged with" : "est étiqueté avec", "is not tagged with" : "n'est pas étiqueté avec", - "Request URL" : "Demande d'URL", - "Request time" : "Temps de requête", + "Request URL" : "Demande d’URL", + "Request time" : "Horaire de l'événement", "between" : "entre", "not between" : "en dehors de", - "Request user agent" : "Agent utilisateur requis", - "User group membership" : "Membre du groupe d'utilisateur", + "Request user agent" : "Client utilisé pour la requête", + "Group membership" : "Membre du groupe", "is member of" : "est membre de", - "is not member of" : "n'est pas membre de", - "Select a tag" : "Choisir une étiquette", - "No results" : "Aucun résultat", - "%s (invisible)" : "%s (invisible)", - "%s (restricted)" : "%s (restreint)" + "is not member of" : "n’est pas membre de" }, "nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/fr.json b/apps/workflowengine/l10n/fr.json index 1aca8aed318..e302d66d128 100644 --- a/apps/workflowengine/l10n/fr.json +++ b/apps/workflowengine/l10n/fr.json @@ -1,11 +1,11 @@ { "translations": { "The given operator is invalid" : "L'opérateur donné est invalide", - "The given regular expression is invalid" : "L'expression régulière donnée est invalide", - "The given file size is invalid" : "La taille du fichier donné est invalide", + "The given regular expression is invalid" : "L’expression régulière donnée est invalide", + "The given file size is invalid" : "La taille du fichier donnée est invalide", "The given tag id is invalid" : "L’identifiant de l'étiquette donné est invalide", - "The given IP range is invalid" : "La plage d'adresse IP donnée est invalide", - "The given IP range is not valid for IPv4" : "La plage d'adresse IP donnée n'est pas valide pour l'IPv4", - "The given IP range is not valid for IPv6" : "La plage d'adresse IP donnée n'est pas valide pour l'IPv6", + "The given IP range is invalid" : "La plage d’adresses IP donnée est invalide", + "The given IP range is not valid for IPv4" : "La plage d’adresses IP donnée n’est pas valide pour l’IPv4", + "The given IP range is not valid for IPv6" : "La plage d’adresses IP donnée n’est pas valide pour l’IPv6", "The given time span is invalid" : "La durée est invalide", "The given start time is invalid" : "La date de début est invalide", "The given end time is invalid" : "La date de fin est invalide", @@ -26,67 +26,74 @@ "%s renamed %s" : "%s renommé %s", "%s copied %s" : "%s copié %s", "%s assigned %s to %s" : "%s a assigné %sà %s", - "Operation #%s does not exist" : "L'opération #%s n'existe pas", + "Operation #%s does not exist" : "L’opération #%s n’existe pas", "Entity %s does not exist" : "L'entité %sn'existe pas", "Entity %s is invalid" : "L'entité %s est non valide", "No events are chosen." : "Aucun évènement a été choisi.", "Entity %s has no event %s" : "L'entité %sn'a aucun évènement %s", - "Operation %s does not exist" : "L'opération %s n'existe pas", - "Operation %s is invalid" : "L'opération %s est invalide", - "At least one check needs to be provided" : "Au moins une vérification doit être fournie", + "Operation %s does not exist" : "L’opération %s n’existe pas", + "Operation %s is invalid" : "L’opération %s est invalide", + "At least one check needs to be provided" : "Au moins une condition doit être fournie", "The provided operation data is too long" : "Les données d’opération fournies sont trop longues", - "Invalid check provided" : "Vérification non valide fournie", - "Check %s does not exist" : "Vérifiez si %s n'existe pas", - "Check %s is invalid" : "Vérifiez si %s est invalide", - "Check %s is not allowed with this entity" : "La vérification %s n'est pas autorisée avec cette entité", - "The provided check value is too long" : "La valeur de contrôle fournie est trop longue", - "Check #%s does not exist" : "Vérifiez si #%s n'existe pas", - "Check %s is invalid or does not exist" : "Vérifiez si %s est invalide ou n'existe pas", + "Invalid check provided" : "Condition proposée invalide", + "Check %s does not exist" : "La condition %s n'existe pas", + "Check %s is invalid" : "La condition %s est invalide", + "Check %s is not allowed with this entity" : "La condition %s n'est pas autorisée avec cette entité", + "The provided check value is too long" : "La valeur de la condition fournie est trop longue", + "Check #%s does not exist" : "La condition #%s n'existe pas", + "Check %s is invalid or does not exist" : "La condition %s est invalide ou n'existe pas", "Flow" : "Flux", "Nextcloud workflow engine" : "Moteur de workflow Nextcloud", "Select a filter" : "Sélectionner un filtre", "Select a comparator" : "Sélectionnez un comparateur", - "Select a file type" : "Sélectionnez un type de fichier", - "e.g. httpd/unix-directory" : "par exemple httpd/unix-directory", + "Remove filter" : "Retirer le filtre", "Folder" : "Dossier", "Images" : "Images", "Office documents" : "Documents Office", "PDF documents" : "Documents PDF", "Custom MIME type" : "Type MIME personnalisé", "Custom mimetype" : "mimetype personnalisé", + "Select a file type" : "Sélectionnez un type de fichier", + "e.g. httpd/unix-directory" : "par exemple httpd/unix-directory", "Please enter a valid time span" : "Merci de saisir une période de temps valide", - "Select a request URL" : "Sélectionnez une requête URL", - "Predefined URLs" : "URL prédéfinis", "Files WebDAV" : "Fichiers WebDAV", - "Others" : "Autres", "Custom URL" : "URL personnalisée", - "Select a user agent" : "Sélectionnez un utilisateur", + "Select a request URL" : "Sélectionnez une requête URL", "Android client" : "Client Android", "iOS client" : "Client iOS", "Desktop client" : "Client de bureau", "Thunderbird & Outlook addons" : "Modules complémentaires Thunderbird & Outlook", - "Custom user agent" : "Agent utilisateur personnalisé", + "Custom user agent" : "Autre client", + "Select a user agent" : "Sélectionner un client", + "Select groups" : "Sélectionnez les groupes", + "Groups" : "Groupes", + "Type to search for group …" : "Tapez pour rechercher un groupe…", + "Select a trigger" : "Sélectionner un déclencheur", "At least one event must be selected" : "Au moins un événement doit être sélectionné", "Add new flow" : "Ajouter un nouveau flux", + "The configuration is invalid" : "Configuration non valide", + "Active" : "Actif", + "Save" : "Enregistrer", "When" : "Quand", "and" : "et", + "Add a new filter" : "Ajouter une condition", "Cancel" : "Annuler", "Delete" : "Supprimer", - "The configuration is invalid" : "Configuration non valide", - "Active" : "Actif", - "Save" : "Enregistrer", "Available flows" : "Flux disponibles", "For details on how to write your own flow, check out the development documentation." : "Pour savoir comment rédiger votre propre flux, consultez la documentation sur le développement.", + "No flows installed" : "Aucun flux n’est installé", + "Ask your administrator to install new flows." : "Demandez à votre administrateur d'installer de nouveaux flux.", "More flows" : "Plus de flux", "Browse the App Store" : "Parcourir le magasin d'applications", "Show less" : "Afficher moins", "Show more" : "Afficher plus", "Configured flows" : "Flux configurés", "Your flows" : "Vos flux", + "No flows configured" : "Aucun flux n’est configuré", "matches" : "correspond", "does not match" : "ne correspond pas", "is" : "est", - "is not" : "n'est pas", + "is not" : "n’est pas", "File name" : "Nom du fichier", "File MIME type" : "Type MIME du fichier", "File size (upload)" : "Taille du fichier (à téléverser)", @@ -94,7 +101,7 @@ "less or equals" : "inférieur ou égal", "greater or equals" : "supérieur ou égal", "greater" : "plus grand que", - "Request remote address" : "Demander une adresse distante", + "Request remote address" : "Adresse IP de la requête", "matches IPv4" : "correspond à une adresse IPv4", "does not match IPv4" : "ne correspond pas à une adresse IPv4", "matches IPv6" : "correspond à une adresse IPv6", @@ -102,17 +109,13 @@ "File system tag" : "Étiquette collaborative du fichier", "is tagged with" : "est étiqueté avec", "is not tagged with" : "n'est pas étiqueté avec", - "Request URL" : "Demande d'URL", - "Request time" : "Temps de requête", + "Request URL" : "Demande d’URL", + "Request time" : "Horaire de l'événement", "between" : "entre", "not between" : "en dehors de", - "Request user agent" : "Agent utilisateur requis", - "User group membership" : "Membre du groupe d'utilisateur", + "Request user agent" : "Client utilisé pour la requête", + "Group membership" : "Membre du groupe", "is member of" : "est membre de", - "is not member of" : "n'est pas membre de", - "Select a tag" : "Choisir une étiquette", - "No results" : "Aucun résultat", - "%s (invisible)" : "%s (invisible)", - "%s (restricted)" : "%s (restreint)" + "is not member of" : "n’est pas membre de" },"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/ga.js b/apps/workflowengine/l10n/ga.js new file mode 100644 index 00000000000..0c61ee9b09d --- /dev/null +++ b/apps/workflowengine/l10n/ga.js @@ -0,0 +1,123 @@ +OC.L10N.register( + "workflowengine", + { + "The given operator is invalid" : "Tá an t-oibreoir tugtha neamhbhailí", + "The given regular expression is invalid" : "Tá an slonn rialta a thugtar neamhbhailí", + "The given file size is invalid" : "Tá méid an chomhaid tugtha neamhbhailí", + "The given tag id is invalid" : "Tá an t-aitheantas clibe tugtha neamhbhailí", + "The given IP range is invalid" : "Tá an raon IP a thugtar neamhbhailí", + "The given IP range is not valid for IPv4" : "Níl an raon IP tugtha bailí do IPv4", + "The given IP range is not valid for IPv6" : "Níl an raon IP tugtha bailí do IPv6", + "The given time span is invalid" : "Tá an tréimhse ama a thugtar neamhbhailí", + "The given start time is invalid" : "Tá an t-am tosaithe tugtha neamhbhailí", + "The given end time is invalid" : "Tá an t-am críochnaithe a thugtar neamhbhailí", + "The given group does not exist" : "Níl an grúpa tugtha ann", + "File" : "Comhad", + "File created" : "Comhad cruthaithe", + "File updated" : "Nuashonraíodh an comhad", + "File renamed" : "Athainmníodh an comhad", + "File deleted" : "Scriosadh an comhad", + "File accessed" : "Teacht ar an gcomhad", + "File copied" : "Cóipeáladh an comhad", + "Tag assigned" : "Clib sannta", + "Someone" : "Duine éigin", + "%s created %s" : "%s cruthaithe %s", + "%s modified %s" : "%s modhnaithe %s", + "%s deleted %s" : "%s scriosta %s", + "%s accessed %s" : "%s rochtain %s", + "%s renamed %s" : "%s athainmnithe %s", + "%s copied %s" : "%s chóipeáil %s", + "%s assigned %s to %s" : "%s sannta %s do %s", + "Operation #%s does not exist" : "Níl oibríocht # %s ann", + "Entity %s does not exist" : "Níl aonán %s ann", + "Entity %s is invalid" : "Tá aonán %s neamhbhailí", + "No events are chosen." : "Ní roghnaítear aon imeachtaí.", + "Entity %s has no event %s" : "Níl imeacht %s ag eintiteas %s", + "Operation %s does not exist" : "Níl oibríocht %s ann", + "Operation %s is invalid" : "Tá oibríocht %s neamhbhailí", + "At least one check needs to be provided" : "Ní mór seiceáil amháin ar a laghad a sholáthar", + "The provided operation data is too long" : "Tá na sonraí oibríochta a chuirtear ar fáil ró-fhada", + "Invalid check provided" : "Cuireadh seiceáil neamhbhailí ar fáil", + "Check %s does not exist" : "Seiceáil nach bhfuil %s ann", + "Check %s is invalid" : "Seiceáil go bhfuil %s neamhbhailí", + "Check %s is not allowed with this entity" : "Seiceáil nach bhfuil %s ceadaithe leis an eintiteas seo", + "The provided check value is too long" : "Tá an luach seiceála a chuirtear ar fáil ró-fhada", + "Check #%s does not exist" : "Seiceáil nach bhfuil # %s ann", + "Check %s is invalid or does not exist" : "Seiceáil go bhfuil %s neamhbhailí nó níl sé ann", + "Flow" : "Sreabhadh", + "Nextcloud workflow engine" : "Inneall sreabhadh oibre Nextcloud", + "Select a filter" : "Roghnaigh scagaire", + "Select a comparator" : "Roghnaigh comparadóir", + "Remove filter" : "Bain an scagaire", + "Folder" : "Fillteán", + "Images" : "Íomhánna", + "Office documents" : "Doiciméid oifige", + "PDF documents" : "Doiciméid PDF", + "Custom MIME type" : "Cineál MIME saincheaptha", + "Custom mimetype" : "Cineál MIME saincheaptha", + "Select a file type" : "Roghnaigh cineál comhaid", + "e.g. httpd/unix-directory" : "m.sh. httpd/unix-directory", + "Please enter a valid time span" : "Cuir isteach réise ama bailí le do thoil", + "Files WebDAV" : "Comhaid WebDAV", + "Custom URL" : "URL saincheaptha", + "Select a request URL" : "Roghnaigh URL iarratais", + "Android client" : "Cliant Android", + "iOS client" : "Cliant iOS", + "Desktop client" : "Cliant deisce", + "Thunderbird & Outlook addons" : "Breiseáin Thunderbird agus Outlook", + "Custom user agent" : "Gníomhaire úsáideora saincheaptha", + "Select a user agent" : "Roghnaigh gníomhaire úsáideora", + "Select groups" : "Roghnaigh grúpaí", + "Groups" : "Grúpaí", + "Type to search for group …" : "Clóscríobh chun grúpa a chuardach…", + "Select a trigger" : "Roghnaigh truicear", + "At least one event must be selected" : "Ní mór imeacht amháin ar a laghad a roghnú", + "Add new flow" : "Cuir sreabhadh nua leis", + "The configuration is invalid" : "Tá an chumraíocht neamhbhailí", + "Active" : "Gníomhach", + "Save" : "Sábháil", + "When" : "Cathain", + "and" : "agus", + "Add a new filter" : "Cuir scagaire nua leis", + "Cancel" : "Cealaigh", + "Delete" : "Scrios", + "Available flows" : "Sreafaí ar fáil", + "For details on how to write your own flow, check out the development documentation." : "Le sonraí a fháil faoi conas do shreabhadh féin a scríobh, seiceáil na doiciméid forbartha.", + "No flows installed" : "Níl aon sreabhadh suiteáilte", + "Ask your administrator to install new flows." : "Iarr ar do riarthóir sreafaí nua a shuiteáil.", + "More flows" : "Níos mó sreafaí", + "Browse the App Store" : "Brabhsáil an Siopa Aip", + "Show less" : "Taispeáin níos lú", + "Show more" : "Taispeáin níos mó", + "Configured flows" : "Sreafaí cumraithe", + "Your flows" : "Do shreabhadh", + "No flows configured" : "Níl aon sreafaí cumraithe", + "matches" : "oireann", + "does not match" : "ní oireann", + "is" : "tá", + "is not" : "níl", + "File name" : "Ainm comhaid", + "File MIME type" : "Cineál comhaid MIME", + "File size (upload)" : "Méid comhaid (uaslódáil)", + "less" : "níos lú", + "less or equals" : "níos lú nó comhionann", + "greater or equals" : "níos mó nó comhionann", + "greater" : "mó", + "Request remote address" : "Iarr seoladh cianda", + "matches IPv4" : "oireann IPv4", + "does not match IPv4" : "ní mheaitseálann IPv4", + "matches IPv6" : "meaitseálann IPv6", + "does not match IPv6" : "Ní mheaitseálann IPv6", + "File system tag" : "Clib córas comhaid", + "is tagged with" : "Tá clib le", + "is not tagged with" : "nach bhfuil clib le", + "Request URL" : "Iarr URL", + "Request time" : "Iarr am", + "between" : "idir", + "not between" : "ní idir", + "Request user agent" : "Iarr gníomhaire úsáideora", + "Group membership" : "Ballraíocht ghrúpa", + "is member of" : "ina bhall de", + "is not member of" : "nach ball de" +}, +"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"); diff --git a/apps/workflowengine/l10n/ga.json b/apps/workflowengine/l10n/ga.json new file mode 100644 index 00000000000..46ee7bd06a9 --- /dev/null +++ b/apps/workflowengine/l10n/ga.json @@ -0,0 +1,121 @@ +{ "translations": { + "The given operator is invalid" : "Tá an t-oibreoir tugtha neamhbhailí", + "The given regular expression is invalid" : "Tá an slonn rialta a thugtar neamhbhailí", + "The given file size is invalid" : "Tá méid an chomhaid tugtha neamhbhailí", + "The given tag id is invalid" : "Tá an t-aitheantas clibe tugtha neamhbhailí", + "The given IP range is invalid" : "Tá an raon IP a thugtar neamhbhailí", + "The given IP range is not valid for IPv4" : "Níl an raon IP tugtha bailí do IPv4", + "The given IP range is not valid for IPv6" : "Níl an raon IP tugtha bailí do IPv6", + "The given time span is invalid" : "Tá an tréimhse ama a thugtar neamhbhailí", + "The given start time is invalid" : "Tá an t-am tosaithe tugtha neamhbhailí", + "The given end time is invalid" : "Tá an t-am críochnaithe a thugtar neamhbhailí", + "The given group does not exist" : "Níl an grúpa tugtha ann", + "File" : "Comhad", + "File created" : "Comhad cruthaithe", + "File updated" : "Nuashonraíodh an comhad", + "File renamed" : "Athainmníodh an comhad", + "File deleted" : "Scriosadh an comhad", + "File accessed" : "Teacht ar an gcomhad", + "File copied" : "Cóipeáladh an comhad", + "Tag assigned" : "Clib sannta", + "Someone" : "Duine éigin", + "%s created %s" : "%s cruthaithe %s", + "%s modified %s" : "%s modhnaithe %s", + "%s deleted %s" : "%s scriosta %s", + "%s accessed %s" : "%s rochtain %s", + "%s renamed %s" : "%s athainmnithe %s", + "%s copied %s" : "%s chóipeáil %s", + "%s assigned %s to %s" : "%s sannta %s do %s", + "Operation #%s does not exist" : "Níl oibríocht # %s ann", + "Entity %s does not exist" : "Níl aonán %s ann", + "Entity %s is invalid" : "Tá aonán %s neamhbhailí", + "No events are chosen." : "Ní roghnaítear aon imeachtaí.", + "Entity %s has no event %s" : "Níl imeacht %s ag eintiteas %s", + "Operation %s does not exist" : "Níl oibríocht %s ann", + "Operation %s is invalid" : "Tá oibríocht %s neamhbhailí", + "At least one check needs to be provided" : "Ní mór seiceáil amháin ar a laghad a sholáthar", + "The provided operation data is too long" : "Tá na sonraí oibríochta a chuirtear ar fáil ró-fhada", + "Invalid check provided" : "Cuireadh seiceáil neamhbhailí ar fáil", + "Check %s does not exist" : "Seiceáil nach bhfuil %s ann", + "Check %s is invalid" : "Seiceáil go bhfuil %s neamhbhailí", + "Check %s is not allowed with this entity" : "Seiceáil nach bhfuil %s ceadaithe leis an eintiteas seo", + "The provided check value is too long" : "Tá an luach seiceála a chuirtear ar fáil ró-fhada", + "Check #%s does not exist" : "Seiceáil nach bhfuil # %s ann", + "Check %s is invalid or does not exist" : "Seiceáil go bhfuil %s neamhbhailí nó níl sé ann", + "Flow" : "Sreabhadh", + "Nextcloud workflow engine" : "Inneall sreabhadh oibre Nextcloud", + "Select a filter" : "Roghnaigh scagaire", + "Select a comparator" : "Roghnaigh comparadóir", + "Remove filter" : "Bain an scagaire", + "Folder" : "Fillteán", + "Images" : "Íomhánna", + "Office documents" : "Doiciméid oifige", + "PDF documents" : "Doiciméid PDF", + "Custom MIME type" : "Cineál MIME saincheaptha", + "Custom mimetype" : "Cineál MIME saincheaptha", + "Select a file type" : "Roghnaigh cineál comhaid", + "e.g. httpd/unix-directory" : "m.sh. httpd/unix-directory", + "Please enter a valid time span" : "Cuir isteach réise ama bailí le do thoil", + "Files WebDAV" : "Comhaid WebDAV", + "Custom URL" : "URL saincheaptha", + "Select a request URL" : "Roghnaigh URL iarratais", + "Android client" : "Cliant Android", + "iOS client" : "Cliant iOS", + "Desktop client" : "Cliant deisce", + "Thunderbird & Outlook addons" : "Breiseáin Thunderbird agus Outlook", + "Custom user agent" : "Gníomhaire úsáideora saincheaptha", + "Select a user agent" : "Roghnaigh gníomhaire úsáideora", + "Select groups" : "Roghnaigh grúpaí", + "Groups" : "Grúpaí", + "Type to search for group …" : "Clóscríobh chun grúpa a chuardach…", + "Select a trigger" : "Roghnaigh truicear", + "At least one event must be selected" : "Ní mór imeacht amháin ar a laghad a roghnú", + "Add new flow" : "Cuir sreabhadh nua leis", + "The configuration is invalid" : "Tá an chumraíocht neamhbhailí", + "Active" : "Gníomhach", + "Save" : "Sábháil", + "When" : "Cathain", + "and" : "agus", + "Add a new filter" : "Cuir scagaire nua leis", + "Cancel" : "Cealaigh", + "Delete" : "Scrios", + "Available flows" : "Sreafaí ar fáil", + "For details on how to write your own flow, check out the development documentation." : "Le sonraí a fháil faoi conas do shreabhadh féin a scríobh, seiceáil na doiciméid forbartha.", + "No flows installed" : "Níl aon sreabhadh suiteáilte", + "Ask your administrator to install new flows." : "Iarr ar do riarthóir sreafaí nua a shuiteáil.", + "More flows" : "Níos mó sreafaí", + "Browse the App Store" : "Brabhsáil an Siopa Aip", + "Show less" : "Taispeáin níos lú", + "Show more" : "Taispeáin níos mó", + "Configured flows" : "Sreafaí cumraithe", + "Your flows" : "Do shreabhadh", + "No flows configured" : "Níl aon sreafaí cumraithe", + "matches" : "oireann", + "does not match" : "ní oireann", + "is" : "tá", + "is not" : "níl", + "File name" : "Ainm comhaid", + "File MIME type" : "Cineál comhaid MIME", + "File size (upload)" : "Méid comhaid (uaslódáil)", + "less" : "níos lú", + "less or equals" : "níos lú nó comhionann", + "greater or equals" : "níos mó nó comhionann", + "greater" : "mó", + "Request remote address" : "Iarr seoladh cianda", + "matches IPv4" : "oireann IPv4", + "does not match IPv4" : "ní mheaitseálann IPv4", + "matches IPv6" : "meaitseálann IPv6", + "does not match IPv6" : "Ní mheaitseálann IPv6", + "File system tag" : "Clib córas comhaid", + "is tagged with" : "Tá clib le", + "is not tagged with" : "nach bhfuil clib le", + "Request URL" : "Iarr URL", + "Request time" : "Iarr am", + "between" : "idir", + "not between" : "ní idir", + "Request user agent" : "Iarr gníomhaire úsáideora", + "Group membership" : "Ballraíocht ghrúpa", + "is member of" : "ina bhall de", + "is not member of" : "nach ball de" +},"pluralForm" :"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);" +}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/gl.js b/apps/workflowengine/l10n/gl.js index a3da8856166..73e1664730a 100644 --- a/apps/workflowengine/l10n/gl.js +++ b/apps/workflowengine/l10n/gl.js @@ -28,7 +28,7 @@ OC.L10N.register( "%s renamed %s" : "%s renomeado %s", "%s copied %s" : "%s copiado %s", "%s assigned %s to %s" : "%s asignado %s a %s", - "Operation #%s does not exist" : "Non existe a operación num. %s ", + "Operation #%s does not exist" : "Non existe a operación nº %s ", "Entity %s does not exist" : "Non existe a entidade %s", "Entity %s is invalid" : "A entidade %s é incorrecta", "No events are chosen." : "Non foi escollido ningún evento.", @@ -42,47 +42,56 @@ OC.L10N.register( "Check %s is invalid" : "A proba %s é incorrecta", "Check %s is not allowed with this entity" : "A proba %s non está permitida con esta entidade", "The provided check value is too long" : "O valor de comprobación fornecido é demasiado longo", - "Check #%s does not exist" : "Non existe a proba num. %s ", + "Check #%s does not exist" : "Non existe a proba nº %s ", "Check %s is invalid or does not exist" : "A proba %s é incorrecta ou non existe", "Flow" : "Fluxo", - "Nextcloud workflow engine" : "Motor de fluxo de traballo do Nextcloud", + "Nextcloud workflow engine" : "Motor de fluxo de traballo de Nextcloud", "Select a filter" : "Seleccione un filtro", "Select a comparator" : "Seleccione un comparador", - "Select a file type" : "Seleccione un tipo de ficheiro", - "e.g. httpd/unix-directory" : "p. ex.: httpd/unix-directory", + "Remove filter" : "Retirar o filtro", "Folder" : "Cartafol", "Images" : "Imaxes", "Office documents" : "Documentos de oficina", "PDF documents" : "Documentos PDF", - "Custom mimetype" : "Mimetipe personalizado", + "Custom MIME type" : "Tipo MIME personalizado", + "Custom mimetype" : "Tipo MIME personalizado", + "Select a file type" : "Seleccione un tipo de ficheiro", + "e.g. httpd/unix-directory" : "p. ex.: httpd/unix-directory", "Please enter a valid time span" : "Introduza un intervalo de tempo válido", - "Select a request URL" : "Seleccione un URL de solicitude", - "Predefined URLs" : "URL predefinidos", "Files WebDAV" : "Ficheiros WebDAV", - "Others" : "Outros", "Custom URL" : "URL personalizado", - "Select a user agent" : "Seleccionar un axente de usuario", + "Select a request URL" : "Seleccione un URL de solicitude", "Android client" : "Cliente Android", "iOS client" : "Cliente iOS", "Desktop client" : "Cliente de escritorio", "Thunderbird & Outlook addons" : "Complementos do Thunderbird e do Outlook", "Custom user agent" : "Axente de usuario personalizado", + "Select a user agent" : "Seleccionar un axente de usuario", + "Select groups" : "Seleccionar grupos", + "Groups" : "Grupos", + "Type to search for group …" : "Escriba para buscar por grupo…", + "Select a trigger" : "Seleccione un activador", "At least one event must be selected" : "Ten que seleccionar polo menos un evento", "Add new flow" : "Engadir un novo fluxo", + "The configuration is invalid" : "A configuración é incorrecta", + "Active" : "Activo", + "Save" : "Gardar", "When" : "Cando", "and" : "e", + "Add a new filter" : "Engadir un novo filtro", "Cancel" : "Cancelar", "Delete" : "Eliminar", - "The configuration is invalid" : "A configuración é incorrecta", - "Active" : "Activo", - "Save" : "Gardar", "Available flows" : "Fluxos dispoñíbeis", "For details on how to write your own flow, check out the development documentation." : "Para obter máis detalles sobre como escribir o seu propio fluxo, consulte a documentación de desenvolvemento.", + "No flows installed" : "Non hai ningún fluxo instalado", + "Ask your administrator to install new flows." : "Pídalle á administración do sitio que instale novos fluxos.", "More flows" : "Máis fluxos", + "Browse the App Store" : "Navega pola Tenda de Aplicacións", "Show less" : "Amosar menos", "Show more" : "Amosar máis", "Configured flows" : "Fluxos configurados", "Your flows" : "Os seus fluxos", + "No flows configured" : "Non hai ningún fluxo configurado", "matches" : "coincidencias", "does not match" : "non coinciden", "is" : "é", @@ -94,7 +103,7 @@ OC.L10N.register( "less or equals" : "menor ou igual", "greater or equals" : "maior ou igual", "greater" : "maior", - "Request remote address" : "Solicitar o enderezo remoto", + "Request remote address" : "Enderezo da solicitude remota", "matches IPv4" : "coincidencias IPv4", "does not match IPv4" : "sen coincidencias IPv4", "matches IPv6" : "coincidencias IPv6", @@ -102,17 +111,13 @@ OC.L10N.register( "File system tag" : "Etiqueta do sistema de ficheiros", "is tagged with" : "está etiquetado con", "is not tagged with" : "non está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tempo da solicitude", + "Request URL" : "URL da solicitude", + "Request time" : "Momento da solicitude", "between" : "entre", "not between" : "non entre", - "Request user agent" : "Solicitar axente de usuario", - "User group membership" : "Pertencia a un grupo de usuarios", + "Request user agent" : "Cliente usado para a solicitude", + "Group membership" : "Pertenza ao grupo", "is member of" : "é membro de", - "is not member of" : "non é membro de", - "Select a tag" : "Seleccione unha etiqueta", - "No results" : "Sen resultados", - "%s (invisible)" : "%s (invisíbel)", - "%s (restricted)" : "%s (restrinxido)" + "is not member of" : "non é membro de" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/gl.json b/apps/workflowengine/l10n/gl.json index dc10a4cfd5c..1d0fe95d463 100644 --- a/apps/workflowengine/l10n/gl.json +++ b/apps/workflowengine/l10n/gl.json @@ -26,7 +26,7 @@ "%s renamed %s" : "%s renomeado %s", "%s copied %s" : "%s copiado %s", "%s assigned %s to %s" : "%s asignado %s a %s", - "Operation #%s does not exist" : "Non existe a operación num. %s ", + "Operation #%s does not exist" : "Non existe a operación nº %s ", "Entity %s does not exist" : "Non existe a entidade %s", "Entity %s is invalid" : "A entidade %s é incorrecta", "No events are chosen." : "Non foi escollido ningún evento.", @@ -40,47 +40,56 @@ "Check %s is invalid" : "A proba %s é incorrecta", "Check %s is not allowed with this entity" : "A proba %s non está permitida con esta entidade", "The provided check value is too long" : "O valor de comprobación fornecido é demasiado longo", - "Check #%s does not exist" : "Non existe a proba num. %s ", + "Check #%s does not exist" : "Non existe a proba nº %s ", "Check %s is invalid or does not exist" : "A proba %s é incorrecta ou non existe", "Flow" : "Fluxo", - "Nextcloud workflow engine" : "Motor de fluxo de traballo do Nextcloud", + "Nextcloud workflow engine" : "Motor de fluxo de traballo de Nextcloud", "Select a filter" : "Seleccione un filtro", "Select a comparator" : "Seleccione un comparador", - "Select a file type" : "Seleccione un tipo de ficheiro", - "e.g. httpd/unix-directory" : "p. ex.: httpd/unix-directory", + "Remove filter" : "Retirar o filtro", "Folder" : "Cartafol", "Images" : "Imaxes", "Office documents" : "Documentos de oficina", "PDF documents" : "Documentos PDF", - "Custom mimetype" : "Mimetipe personalizado", + "Custom MIME type" : "Tipo MIME personalizado", + "Custom mimetype" : "Tipo MIME personalizado", + "Select a file type" : "Seleccione un tipo de ficheiro", + "e.g. httpd/unix-directory" : "p. ex.: httpd/unix-directory", "Please enter a valid time span" : "Introduza un intervalo de tempo válido", - "Select a request URL" : "Seleccione un URL de solicitude", - "Predefined URLs" : "URL predefinidos", "Files WebDAV" : "Ficheiros WebDAV", - "Others" : "Outros", "Custom URL" : "URL personalizado", - "Select a user agent" : "Seleccionar un axente de usuario", + "Select a request URL" : "Seleccione un URL de solicitude", "Android client" : "Cliente Android", "iOS client" : "Cliente iOS", "Desktop client" : "Cliente de escritorio", "Thunderbird & Outlook addons" : "Complementos do Thunderbird e do Outlook", "Custom user agent" : "Axente de usuario personalizado", + "Select a user agent" : "Seleccionar un axente de usuario", + "Select groups" : "Seleccionar grupos", + "Groups" : "Grupos", + "Type to search for group …" : "Escriba para buscar por grupo…", + "Select a trigger" : "Seleccione un activador", "At least one event must be selected" : "Ten que seleccionar polo menos un evento", "Add new flow" : "Engadir un novo fluxo", + "The configuration is invalid" : "A configuración é incorrecta", + "Active" : "Activo", + "Save" : "Gardar", "When" : "Cando", "and" : "e", + "Add a new filter" : "Engadir un novo filtro", "Cancel" : "Cancelar", "Delete" : "Eliminar", - "The configuration is invalid" : "A configuración é incorrecta", - "Active" : "Activo", - "Save" : "Gardar", "Available flows" : "Fluxos dispoñíbeis", "For details on how to write your own flow, check out the development documentation." : "Para obter máis detalles sobre como escribir o seu propio fluxo, consulte a documentación de desenvolvemento.", + "No flows installed" : "Non hai ningún fluxo instalado", + "Ask your administrator to install new flows." : "Pídalle á administración do sitio que instale novos fluxos.", "More flows" : "Máis fluxos", + "Browse the App Store" : "Navega pola Tenda de Aplicacións", "Show less" : "Amosar menos", "Show more" : "Amosar máis", "Configured flows" : "Fluxos configurados", "Your flows" : "Os seus fluxos", + "No flows configured" : "Non hai ningún fluxo configurado", "matches" : "coincidencias", "does not match" : "non coinciden", "is" : "é", @@ -92,7 +101,7 @@ "less or equals" : "menor ou igual", "greater or equals" : "maior ou igual", "greater" : "maior", - "Request remote address" : "Solicitar o enderezo remoto", + "Request remote address" : "Enderezo da solicitude remota", "matches IPv4" : "coincidencias IPv4", "does not match IPv4" : "sen coincidencias IPv4", "matches IPv6" : "coincidencias IPv6", @@ -100,17 +109,13 @@ "File system tag" : "Etiqueta do sistema de ficheiros", "is tagged with" : "está etiquetado con", "is not tagged with" : "non está etiquetado con", - "Request URL" : "Solicitar URL", - "Request time" : "Tempo da solicitude", + "Request URL" : "URL da solicitude", + "Request time" : "Momento da solicitude", "between" : "entre", "not between" : "non entre", - "Request user agent" : "Solicitar axente de usuario", - "User group membership" : "Pertencia a un grupo de usuarios", + "Request user agent" : "Cliente usado para a solicitude", + "Group membership" : "Pertenza ao grupo", "is member of" : "é membro de", - "is not member of" : "non é membro de", - "Select a tag" : "Seleccione unha etiqueta", - "No results" : "Sen resultados", - "%s (invisible)" : "%s (invisíbel)", - "%s (restricted)" : "%s (restrinxido)" + "is not member of" : "non é membro de" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/he.js b/apps/workflowengine/l10n/he.js index d8fa6e54df0..368337c5a05 100644 --- a/apps/workflowengine/l10n/he.js +++ b/apps/workflowengine/l10n/he.js @@ -39,34 +39,34 @@ OC.L10N.register( "Nextcloud workflow engine" : "מנגנון רצף הפעילות של Nextcloud", "Select a filter" : "נא לבחור מסנן", "Select a comparator" : "נא לבחור משווה", - "Select a file type" : "נא לבחור סוג קובץ", - "e.g. httpd/unix-directory" : "למשל: httpd/unix-directory", "Folder" : "תיקייה", "Images" : "תמונות", "Office documents" : "מסמכי אופיס (Office)", "PDF documents" : "מסמכי RDF", "Custom mimetype" : "נא לבחור טיפוס MIME", + "Select a file type" : "נא לבחור סוג קובץ", + "e.g. httpd/unix-directory" : "למשל: httpd/unix-directory", "Please enter a valid time span" : "נא למלא טווח זמן תקין", - "Select a request URL" : "נא לבחור את כתובת הבקשה", - "Predefined URLs" : "כתובות שמוגדרות מראש", "Files WebDAV" : "WebDAV קבצים", - "Others" : "חרים", "Custom URL" : "כתובת מותאמת אישית", - "Select a user agent" : "נא לבחור סוכן משתמש", + "Select a request URL" : "נא לבחור את כתובת הבקשה", "Android client" : "לקוח Android", "iOS client" : "לקוח iOS", "Desktop client" : "לקוח שולחן עבודה", "Thunderbird & Outlook addons" : "תוספות ל־Thunderbird ול־Outlook", "Custom user agent" : "סוכן משתמש מותאם אישית", + "Select a user agent" : "נא לבחור סוכן משתמש", + "Select groups" : "בחירת קבוצות", + "Groups" : "קבוצות", "At least one event must be selected" : "יש לבחור באירוע אחד לפחות", "Add new flow" : "הוספת רצף חדש", + "The configuration is invalid" : "ההגדרות שגויות", + "Active" : "פעיל", + "Save" : "שמירה", "When" : "מתי", "and" : "וגם", "Cancel" : "ביטול", "Delete" : "מחיקה", - "The configuration is invalid" : "ההגדרות שגויות", - "Active" : "פעיל", - "Save" : "שמירה", "Available flows" : "רצפים זמינים", "For details on how to write your own flow, check out the development documentation." : "לפרטים על כתיבת רצף משלך, יש לפנות אל התיעוד למפתחים.", "More flows" : "רצפים נוספים", @@ -98,12 +98,7 @@ OC.L10N.register( "between" : "בין", "not between" : "לא בין", "Request user agent" : "סוכן משתמש הבקשה", - "User group membership" : "חברות בקבוצת משתמשים", "is member of" : "חבר בקבוצה", - "is not member of" : "לא חבר בקבוצה", - "Select a tag" : "נא לבחור תגית", - "No results" : "אין תוצאות", - "%s (invisible)" : "%s (נסתר)", - "%s (restricted)" : "%s (מוגבל)" + "is not member of" : "לא חבר בקבוצה" }, -"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"); +"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;"); diff --git a/apps/workflowengine/l10n/he.json b/apps/workflowengine/l10n/he.json index 85167d9bce0..306a2929e39 100644 --- a/apps/workflowengine/l10n/he.json +++ b/apps/workflowengine/l10n/he.json @@ -37,34 +37,34 @@ "Nextcloud workflow engine" : "מנגנון רצף הפעילות של Nextcloud", "Select a filter" : "נא לבחור מסנן", "Select a comparator" : "נא לבחור משווה", - "Select a file type" : "נא לבחור סוג קובץ", - "e.g. httpd/unix-directory" : "למשל: httpd/unix-directory", "Folder" : "תיקייה", "Images" : "תמונות", "Office documents" : "מסמכי אופיס (Office)", "PDF documents" : "מסמכי RDF", "Custom mimetype" : "נא לבחור טיפוס MIME", + "Select a file type" : "נא לבחור סוג קובץ", + "e.g. httpd/unix-directory" : "למשל: httpd/unix-directory", "Please enter a valid time span" : "נא למלא טווח זמן תקין", - "Select a request URL" : "נא לבחור את כתובת הבקשה", - "Predefined URLs" : "כתובות שמוגדרות מראש", "Files WebDAV" : "WebDAV קבצים", - "Others" : "חרים", "Custom URL" : "כתובת מותאמת אישית", - "Select a user agent" : "נא לבחור סוכן משתמש", + "Select a request URL" : "נא לבחור את כתובת הבקשה", "Android client" : "לקוח Android", "iOS client" : "לקוח iOS", "Desktop client" : "לקוח שולחן עבודה", "Thunderbird & Outlook addons" : "תוספות ל־Thunderbird ול־Outlook", "Custom user agent" : "סוכן משתמש מותאם אישית", + "Select a user agent" : "נא לבחור סוכן משתמש", + "Select groups" : "בחירת קבוצות", + "Groups" : "קבוצות", "At least one event must be selected" : "יש לבחור באירוע אחד לפחות", "Add new flow" : "הוספת רצף חדש", + "The configuration is invalid" : "ההגדרות שגויות", + "Active" : "פעיל", + "Save" : "שמירה", "When" : "מתי", "and" : "וגם", "Cancel" : "ביטול", "Delete" : "מחיקה", - "The configuration is invalid" : "ההגדרות שגויות", - "Active" : "פעיל", - "Save" : "שמירה", "Available flows" : "רצפים זמינים", "For details on how to write your own flow, check out the development documentation." : "לפרטים על כתיבת רצף משלך, יש לפנות אל התיעוד למפתחים.", "More flows" : "רצפים נוספים", @@ -96,12 +96,7 @@ "between" : "בין", "not between" : "לא בין", "Request user agent" : "סוכן משתמש הבקשה", - "User group membership" : "חברות בקבוצת משתמשים", "is member of" : "חבר בקבוצה", - "is not member of" : "לא חבר בקבוצה", - "Select a tag" : "נא לבחור תגית", - "No results" : "אין תוצאות", - "%s (invisible)" : "%s (נסתר)", - "%s (restricted)" : "%s (מוגבל)" -},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;" + "is not member of" : "לא חבר בקבוצה" +},"pluralForm" :"nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/hr.js b/apps/workflowengine/l10n/hr.js index c0bc616851d..8d38ce74c38 100644 --- a/apps/workflowengine/l10n/hr.js +++ b/apps/workflowengine/l10n/hr.js @@ -48,34 +48,34 @@ OC.L10N.register( "Nextcloud workflow engine" : "Upravljački program tijeka rada Nextclouda", "Select a filter" : "Odaberi filtar", "Select a comparator" : "Odaberi usporednik", - "Select a file type" : "Odaberi vrstu datoteke", - "e.g. httpd/unix-directory" : "npr. httpd/unix-directory", "Folder" : "Mapa", "Images" : "Slike", "Office documents" : "Dokumenti paketa Office", "PDF documents" : "Dokumenti PDF", "Custom mimetype" : "Prilagođeni mimetype", + "Select a file type" : "Odaberi vrstu datoteke", + "e.g. httpd/unix-directory" : "npr. httpd/unix-directory", "Please enter a valid time span" : "Unesite valjani vremenski raspon", - "Select a request URL" : "Odaberi URL zahtjeva", - "Predefined URLs" : "Unaprijed definirani URL-ovi", "Files WebDAV" : "Datoteke WebDAV", - "Others" : "Ostalo", "Custom URL" : "Prilagođeni URL", - "Select a user agent" : "Odaberi korisničkog agenta", + "Select a request URL" : "Odaberi URL zahtjeva", "Android client" : "Klijent za Android", "iOS client" : "Klijent za iOS", "Desktop client" : "Klijent za stolna računala", "Thunderbird & Outlook addons" : "Dodaci za Thunderbird i Outlook", "Custom user agent" : "Prilagođeni korisnički agent", + "Select a user agent" : "Odaberi korisničkog agenta", + "Select groups" : "Označi grupe", + "Groups" : "Grupe", "At least one event must be selected" : "Morate odabrati barem jedan događaj", "Add new flow" : "Dodaj novi tijek", + "The configuration is invalid" : "Konfiguracija nije valjana", + "Active" : "Aktivan", + "Save" : "Spremi", "When" : "Kada", "and" : "i", "Cancel" : "Odustani", "Delete" : "Izbriši", - "The configuration is invalid" : "Konfiguracija nije valjana", - "Active" : "Aktivan", - "Save" : "Spremi", "Available flows" : "Dostupni tijekovi", "For details on how to write your own flow, check out the development documentation." : "Više informacija o pisanju vlastitog tijeka možete pronaći u razvojnoj dokumentaciji.", "More flows" : "Više tijekova", @@ -108,12 +108,7 @@ OC.L10N.register( "between" : "između", "not between" : "nije između", "Request user agent" : "Zatraži korisničkog agenta", - "User group membership" : "Članstvo u grupi korisnika", "is member of" : "je član", - "is not member of" : "nije član", - "Select a tag" : "Odaberi oznaku", - "No results" : "Nema rezultata", - "%s (invisible)" : "%s (nevidljivo)", - "%s (restricted)" : "%s (ograničeno)" + "is not member of" : "nije član" }, "nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/hr.json b/apps/workflowengine/l10n/hr.json index a0fcafcd9c5..00efcad1738 100644 --- a/apps/workflowengine/l10n/hr.json +++ b/apps/workflowengine/l10n/hr.json @@ -46,34 +46,34 @@ "Nextcloud workflow engine" : "Upravljački program tijeka rada Nextclouda", "Select a filter" : "Odaberi filtar", "Select a comparator" : "Odaberi usporednik", - "Select a file type" : "Odaberi vrstu datoteke", - "e.g. httpd/unix-directory" : "npr. httpd/unix-directory", "Folder" : "Mapa", "Images" : "Slike", "Office documents" : "Dokumenti paketa Office", "PDF documents" : "Dokumenti PDF", "Custom mimetype" : "Prilagođeni mimetype", + "Select a file type" : "Odaberi vrstu datoteke", + "e.g. httpd/unix-directory" : "npr. httpd/unix-directory", "Please enter a valid time span" : "Unesite valjani vremenski raspon", - "Select a request URL" : "Odaberi URL zahtjeva", - "Predefined URLs" : "Unaprijed definirani URL-ovi", "Files WebDAV" : "Datoteke WebDAV", - "Others" : "Ostalo", "Custom URL" : "Prilagođeni URL", - "Select a user agent" : "Odaberi korisničkog agenta", + "Select a request URL" : "Odaberi URL zahtjeva", "Android client" : "Klijent za Android", "iOS client" : "Klijent za iOS", "Desktop client" : "Klijent za stolna računala", "Thunderbird & Outlook addons" : "Dodaci za Thunderbird i Outlook", "Custom user agent" : "Prilagođeni korisnički agent", + "Select a user agent" : "Odaberi korisničkog agenta", + "Select groups" : "Označi grupe", + "Groups" : "Grupe", "At least one event must be selected" : "Morate odabrati barem jedan događaj", "Add new flow" : "Dodaj novi tijek", + "The configuration is invalid" : "Konfiguracija nije valjana", + "Active" : "Aktivan", + "Save" : "Spremi", "When" : "Kada", "and" : "i", "Cancel" : "Odustani", "Delete" : "Izbriši", - "The configuration is invalid" : "Konfiguracija nije valjana", - "Active" : "Aktivan", - "Save" : "Spremi", "Available flows" : "Dostupni tijekovi", "For details on how to write your own flow, check out the development documentation." : "Više informacija o pisanju vlastitog tijeka možete pronaći u razvojnoj dokumentaciji.", "More flows" : "Više tijekova", @@ -106,12 +106,7 @@ "between" : "između", "not between" : "nije između", "Request user agent" : "Zatraži korisničkog agenta", - "User group membership" : "Članstvo u grupi korisnika", "is member of" : "je član", - "is not member of" : "nije član", - "Select a tag" : "Odaberi oznaku", - "No results" : "Nema rezultata", - "%s (invisible)" : "%s (nevidljivo)", - "%s (restricted)" : "%s (ograničeno)" + "is not member of" : "nije član" },"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/hu.js b/apps/workflowengine/l10n/hu.js index 5b43a9b8bd7..14a69b268d1 100644 --- a/apps/workflowengine/l10n/hu.js +++ b/apps/workflowengine/l10n/hu.js @@ -48,43 +48,50 @@ OC.L10N.register( "Nextcloud workflow engine" : "Nextcloud munkafolyamat-motor", "Select a filter" : "Válasszon szűrőt", "Select a comparator" : "Válasszon összehasonlítót", - "Select a file type" : "Válasszon fájltípust", - "e.g. httpd/unix-directory" : "például httpd/unix-directory", + "Remove filter" : "Szűrő eltávolítása", "Folder" : "Mappa", "Images" : "Képek", "Office documents" : "Irodai dokumentumok", "PDF documents" : "PDF-dokumentumok", "Custom MIME type" : "Egyéni MIME-típus", "Custom mimetype" : "Egyéni MIME-típus", + "Select a file type" : "Válasszon fájltípust", + "e.g. httpd/unix-directory" : "például httpd/unix-directory", "Please enter a valid time span" : "Érvényes időtartamot adjon meg", - "Select a request URL" : "Válassza ki a kérés URL-jét", - "Predefined URLs" : "Előre definiált URL-ek", "Files WebDAV" : "WebDAV-fájlok", - "Others" : "Egyebek", "Custom URL" : "Egyéni URL", - "Select a user agent" : "Válasszon felhasználói ügynököt", + "Select a request URL" : "Válassza ki a kérés URL-jét", "Android client" : "Android kliens", "iOS client" : "iOS klens", "Desktop client" : "Asztali kliens", "Thunderbird & Outlook addons" : "Thunderbird és Outlook kiegészítők", "Custom user agent" : "Egyéni felhasználói ügynök", + "Select a user agent" : "Válasszon felhasználói ügynököt", + "Select groups" : "Csoportok kiválasztása", + "Groups" : "Csoportok", + "Type to search for group …" : "Gépeljen az csoport kereséséhez…", + "Select a trigger" : "Válasszon feltételt", "At least one event must be selected" : "Legalább egy eseményt ki kell választani", "Add new flow" : "Új folyamat hozzáadása", + "The configuration is invalid" : "A konfiguráció érvénytelen", + "Active" : "Aktív", + "Save" : "Mentés", "When" : "Mikor", "and" : "és", + "Add a new filter" : "Új szűrő hozzáadása", "Cancel" : "Mégse", "Delete" : "Törlés", - "The configuration is invalid" : "A konfiguráció érvénytelen", - "Active" : "Aktív", - "Save" : "Mentés", "Available flows" : "Rendelkezésre álló folyamatok", "For details on how to write your own flow, check out the development documentation." : "A saját folyamatának megírásának részleteiért lásd a fejlesztési dokumentációt.", + "No flows installed" : "Nincsenek telepített folyamatok", + "Ask your administrator to install new flows." : "Kérje meg a rendszergazdát, hogy telepítsen új folyamatokat.", "More flows" : "Több folyamat", "Browse the App Store" : "Alkalmazástár böngészése", "Show less" : "Kevesebb megjelenítése", "Show more" : "Több megjelenítése", "Configured flows" : "Beállított folyamatok", "Your flows" : "Az Ön folyamatai", + "No flows configured" : "Nincsenek beállított folyamatok", "matches" : "egyezik", "does not match" : "nem egyezik", "is" : "ez", @@ -109,12 +116,8 @@ OC.L10N.register( "between" : "közötte", "not between" : "nincs közötte", "Request user agent" : "Kérés felhasználói ügynöke", - "User group membership" : "Felhasználói csoporttagság", + "Group membership" : "Csoporttagság", "is member of" : "tagja ennek", - "is not member of" : "nem tagja ennek", - "Select a tag" : "Válasszon címkét", - "No results" : "Nincs találat", - "%s (invisible)" : "%s (láthatatlan)", - "%s (restricted)" : "%s (korlátozott)" + "is not member of" : "nem tagja ennek" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/hu.json b/apps/workflowengine/l10n/hu.json index df603c04094..b0b0ccee6a4 100644 --- a/apps/workflowengine/l10n/hu.json +++ b/apps/workflowengine/l10n/hu.json @@ -46,43 +46,50 @@ "Nextcloud workflow engine" : "Nextcloud munkafolyamat-motor", "Select a filter" : "Válasszon szűrőt", "Select a comparator" : "Válasszon összehasonlítót", - "Select a file type" : "Válasszon fájltípust", - "e.g. httpd/unix-directory" : "például httpd/unix-directory", + "Remove filter" : "Szűrő eltávolítása", "Folder" : "Mappa", "Images" : "Képek", "Office documents" : "Irodai dokumentumok", "PDF documents" : "PDF-dokumentumok", "Custom MIME type" : "Egyéni MIME-típus", "Custom mimetype" : "Egyéni MIME-típus", + "Select a file type" : "Válasszon fájltípust", + "e.g. httpd/unix-directory" : "például httpd/unix-directory", "Please enter a valid time span" : "Érvényes időtartamot adjon meg", - "Select a request URL" : "Válassza ki a kérés URL-jét", - "Predefined URLs" : "Előre definiált URL-ek", "Files WebDAV" : "WebDAV-fájlok", - "Others" : "Egyebek", "Custom URL" : "Egyéni URL", - "Select a user agent" : "Válasszon felhasználói ügynököt", + "Select a request URL" : "Válassza ki a kérés URL-jét", "Android client" : "Android kliens", "iOS client" : "iOS klens", "Desktop client" : "Asztali kliens", "Thunderbird & Outlook addons" : "Thunderbird és Outlook kiegészítők", "Custom user agent" : "Egyéni felhasználói ügynök", + "Select a user agent" : "Válasszon felhasználói ügynököt", + "Select groups" : "Csoportok kiválasztása", + "Groups" : "Csoportok", + "Type to search for group …" : "Gépeljen az csoport kereséséhez…", + "Select a trigger" : "Válasszon feltételt", "At least one event must be selected" : "Legalább egy eseményt ki kell választani", "Add new flow" : "Új folyamat hozzáadása", + "The configuration is invalid" : "A konfiguráció érvénytelen", + "Active" : "Aktív", + "Save" : "Mentés", "When" : "Mikor", "and" : "és", + "Add a new filter" : "Új szűrő hozzáadása", "Cancel" : "Mégse", "Delete" : "Törlés", - "The configuration is invalid" : "A konfiguráció érvénytelen", - "Active" : "Aktív", - "Save" : "Mentés", "Available flows" : "Rendelkezésre álló folyamatok", "For details on how to write your own flow, check out the development documentation." : "A saját folyamatának megírásának részleteiért lásd a fejlesztési dokumentációt.", + "No flows installed" : "Nincsenek telepített folyamatok", + "Ask your administrator to install new flows." : "Kérje meg a rendszergazdát, hogy telepítsen új folyamatokat.", "More flows" : "Több folyamat", "Browse the App Store" : "Alkalmazástár böngészése", "Show less" : "Kevesebb megjelenítése", "Show more" : "Több megjelenítése", "Configured flows" : "Beállított folyamatok", "Your flows" : "Az Ön folyamatai", + "No flows configured" : "Nincsenek beállított folyamatok", "matches" : "egyezik", "does not match" : "nem egyezik", "is" : "ez", @@ -107,12 +114,8 @@ "between" : "közötte", "not between" : "nincs közötte", "Request user agent" : "Kérés felhasználói ügynöke", - "User group membership" : "Felhasználói csoporttagság", + "Group membership" : "Csoporttagság", "is member of" : "tagja ennek", - "is not member of" : "nem tagja ennek", - "Select a tag" : "Válasszon címkét", - "No results" : "Nincs találat", - "%s (invisible)" : "%s (láthatatlan)", - "%s (restricted)" : "%s (korlátozott)" + "is not member of" : "nem tagja ennek" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/ia.js b/apps/workflowengine/l10n/ia.js deleted file mode 100644 index a6428d4e19c..00000000000 --- a/apps/workflowengine/l10n/ia.js +++ /dev/null @@ -1,46 +0,0 @@ -OC.L10N.register( - "workflowengine", - { - "is" : "es", - "is not" : "non es", - "matches" : "corresponde", - "does not match" : "non corresponde", - "Example: {placeholder}" : "Exemplo: {placeholder}", - "File size (upload)" : "Dimension de file (incarga)", - "less" : "minus", - "less or equals" : "minus o equal", - "greater or equals" : "major o equal", - "greater" : "major", - "File system tag" : "Etiquetta de systema de file", - "is tagged with" : "es etiquettate con", - "is not tagged with" : "non es etiquettate con", - "Select tag…" : "Selectionar etiquetta...", - "Request remote address" : "Demandar adresse remote", - "matches IPv4" : "corresponde a IPv4", - "does not match IPv4" : "non corresponde a IPv4", - "matches IPv6" : "corresponde a IPv6", - "does not match IPv6" : "non corresponde a IPv6", - "Request time" : "Demandar tempore", - "between" : "inter", - "not between" : "non inter", - "Start" : "Initio", - "End" : "Fin", - "Select timezone…" : "Selectionar fuso horari ...", - "Request URL" : "Demandar URL", - "Predefined URLs" : "URLs predefinite", - "Files WebDAV" : "Files WebDAV", - "Sync clients" : "Synchronisar clientes", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de Scriptorio", - "is member of" : "es membro de", - "is not member of" : "non es membro de", - "Add rule" : "Adder regula", - "Reset" : "Reinitialisar", - "Save" : "Salveguardar", - "Saving…" : "Salveguardante...", - "Saving failed:" : "Salveguardata falleva:", - "Open documentation" : "Aperir documentation", - "Loading…" : "Cargante..." -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/ia.json b/apps/workflowengine/l10n/ia.json deleted file mode 100644 index c5bfa310359..00000000000 --- a/apps/workflowengine/l10n/ia.json +++ /dev/null @@ -1,44 +0,0 @@ -{ "translations": { - "is" : "es", - "is not" : "non es", - "matches" : "corresponde", - "does not match" : "non corresponde", - "Example: {placeholder}" : "Exemplo: {placeholder}", - "File size (upload)" : "Dimension de file (incarga)", - "less" : "minus", - "less or equals" : "minus o equal", - "greater or equals" : "major o equal", - "greater" : "major", - "File system tag" : "Etiquetta de systema de file", - "is tagged with" : "es etiquettate con", - "is not tagged with" : "non es etiquettate con", - "Select tag…" : "Selectionar etiquetta...", - "Request remote address" : "Demandar adresse remote", - "matches IPv4" : "corresponde a IPv4", - "does not match IPv4" : "non corresponde a IPv4", - "matches IPv6" : "corresponde a IPv6", - "does not match IPv6" : "non corresponde a IPv6", - "Request time" : "Demandar tempore", - "between" : "inter", - "not between" : "non inter", - "Start" : "Initio", - "End" : "Fin", - "Select timezone…" : "Selectionar fuso horari ...", - "Request URL" : "Demandar URL", - "Predefined URLs" : "URLs predefinite", - "Files WebDAV" : "Files WebDAV", - "Sync clients" : "Synchronisar clientes", - "Android client" : "Cliente Android", - "iOS client" : "Cliente iOS", - "Desktop client" : "Cliente de Scriptorio", - "is member of" : "es membro de", - "is not member of" : "non es membro de", - "Add rule" : "Adder regula", - "Reset" : "Reinitialisar", - "Save" : "Salveguardar", - "Saving…" : "Salveguardante...", - "Saving failed:" : "Salveguardata falleva:", - "Open documentation" : "Aperir documentation", - "Loading…" : "Cargante..." -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/id.js b/apps/workflowengine/l10n/id.js deleted file mode 100644 index 62205b7d858..00000000000 --- a/apps/workflowengine/l10n/id.js +++ /dev/null @@ -1,63 +0,0 @@ -OC.L10N.register( - "workflowengine", - { - "The given operator is invalid" : "Operator yang diberikan tidak sah", - "The given regular expression is invalid" : "Regular expression yang diberikan tidak sah", - "The given file size is invalid" : "Ukuran berkas yang diberikan tidak sah", - "The given tag id is invalid" : "Tag ID yang diberikan tidak sah", - "The given IP range is invalid" : "Rentang IP yang diberikan tidak sah", - "The given IP range is not valid for IPv4" : "Rentang IP yang diberikan tidak sah untuk IPv4", - "The given IP range is not valid for IPv6" : "Rentang IP yang diberikan tidak sah untuk IPv6", - "The given time span is invalid" : "Rentang waktu yang diberikan tidak sah", - "The given start time is invalid" : "Waktu mulai yang diberikan tidak sah", - "The given end time is invalid" : "Waktu selesai yang diberikan tidak sah", - "The given group does not exist" : "Grup yang diberikan tidak ada", - "File" : "Berkas", - "Operation #%s does not exist" : "Operasi #%s tidak ada", - "Operation %s does not exist" : "Operasi %s tidak ada", - "Operation %s is invalid" : "Operasi %s tidak valid", - "Check %s does not exist" : "Cek %s tidak ada", - "Check %s is invalid" : "Cek %s tidak valid", - "Check #%s does not exist" : "Cek #%s tidak ada", - "Check %s is invalid or does not exist" : "Cek %s tidak valid atau tidak ada", - "Folder" : "Folder", - "Images" : "Gambar", - "Predefined URLs" : "URL terdefinisi", - "Files WebDAV" : "Berkas WebDAV", - "Android client" : "Klien Android", - "iOS client" : "Klien iOS", - "Desktop client" : "Klien desktop", - "Cancel" : "Membatalkan", - "Delete" : "Hapus", - "Save" : "Simpan", - "matches" : "cocok dengan", - "does not match" : "tidak cocok dengan", - "is" : "adalah", - "is not" : "bukan", - "File MIME type" : "Berkas tipe MIME", - "File size (upload)" : "Ukuran berkas (unggah)", - "less" : "kurang dari", - "less or equals" : "kurang dari atau sama dengan", - "greater or equals" : "lebih dari atau sama dengan", - "greater" : "lebih dari", - "Request remote address" : "Minta alamat remote", - "matches IPv4" : "cocok dengan IPv4", - "does not match IPv4" : "tidak cocok dengan IPv4", - "matches IPv6" : "cocok dengan IPv6", - "does not match IPv6" : "tidak cocok dengan IPv6", - "File system tag" : "Tag sistem berkas", - "is tagged with" : "di tag dengan", - "is not tagged with" : "tidak di tag dengan", - "Request URL" : "Minta URL", - "Request time" : "Waktu permintaan", - "between" : "diantara", - "not between" : "tidak diantara", - "Request user agent" : "Minta user agent", - "User group membership" : "Keanggotaan grup pengguna", - "is member of" : "anggota dari", - "is not member of" : "bukan anggota dari", - "No results" : "Tidak ada hasil", - "%s (invisible)" : "%s (tersembunyi)", - "%s (restricted)" : "%s (terbatas)" -}, -"nplurals=1; plural=0;"); diff --git a/apps/workflowengine/l10n/id.json b/apps/workflowengine/l10n/id.json deleted file mode 100644 index 9af33f6fd0f..00000000000 --- a/apps/workflowengine/l10n/id.json +++ /dev/null @@ -1,61 +0,0 @@ -{ "translations": { - "The given operator is invalid" : "Operator yang diberikan tidak sah", - "The given regular expression is invalid" : "Regular expression yang diberikan tidak sah", - "The given file size is invalid" : "Ukuran berkas yang diberikan tidak sah", - "The given tag id is invalid" : "Tag ID yang diberikan tidak sah", - "The given IP range is invalid" : "Rentang IP yang diberikan tidak sah", - "The given IP range is not valid for IPv4" : "Rentang IP yang diberikan tidak sah untuk IPv4", - "The given IP range is not valid for IPv6" : "Rentang IP yang diberikan tidak sah untuk IPv6", - "The given time span is invalid" : "Rentang waktu yang diberikan tidak sah", - "The given start time is invalid" : "Waktu mulai yang diberikan tidak sah", - "The given end time is invalid" : "Waktu selesai yang diberikan tidak sah", - "The given group does not exist" : "Grup yang diberikan tidak ada", - "File" : "Berkas", - "Operation #%s does not exist" : "Operasi #%s tidak ada", - "Operation %s does not exist" : "Operasi %s tidak ada", - "Operation %s is invalid" : "Operasi %s tidak valid", - "Check %s does not exist" : "Cek %s tidak ada", - "Check %s is invalid" : "Cek %s tidak valid", - "Check #%s does not exist" : "Cek #%s tidak ada", - "Check %s is invalid or does not exist" : "Cek %s tidak valid atau tidak ada", - "Folder" : "Folder", - "Images" : "Gambar", - "Predefined URLs" : "URL terdefinisi", - "Files WebDAV" : "Berkas WebDAV", - "Android client" : "Klien Android", - "iOS client" : "Klien iOS", - "Desktop client" : "Klien desktop", - "Cancel" : "Membatalkan", - "Delete" : "Hapus", - "Save" : "Simpan", - "matches" : "cocok dengan", - "does not match" : "tidak cocok dengan", - "is" : "adalah", - "is not" : "bukan", - "File MIME type" : "Berkas tipe MIME", - "File size (upload)" : "Ukuran berkas (unggah)", - "less" : "kurang dari", - "less or equals" : "kurang dari atau sama dengan", - "greater or equals" : "lebih dari atau sama dengan", - "greater" : "lebih dari", - "Request remote address" : "Minta alamat remote", - "matches IPv4" : "cocok dengan IPv4", - "does not match IPv4" : "tidak cocok dengan IPv4", - "matches IPv6" : "cocok dengan IPv6", - "does not match IPv6" : "tidak cocok dengan IPv6", - "File system tag" : "Tag sistem berkas", - "is tagged with" : "di tag dengan", - "is not tagged with" : "tidak di tag dengan", - "Request URL" : "Minta URL", - "Request time" : "Waktu permintaan", - "between" : "diantara", - "not between" : "tidak diantara", - "Request user agent" : "Minta user agent", - "User group membership" : "Keanggotaan grup pengguna", - "is member of" : "anggota dari", - "is not member of" : "bukan anggota dari", - "No results" : "Tidak ada hasil", - "%s (invisible)" : "%s (tersembunyi)", - "%s (restricted)" : "%s (terbatas)" -},"pluralForm" :"nplurals=1; plural=0;" -}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/is.js b/apps/workflowengine/l10n/is.js index 87a5e388e44..f7fcd35e233 100644 --- a/apps/workflowengine/l10n/is.js +++ b/apps/workflowengine/l10n/is.js @@ -21,21 +21,26 @@ OC.L10N.register( "Check #%s does not exist" : "Athugunin #%s er ekki til", "Check %s is invalid or does not exist" : "Athugunin %s er ógild eða er ekki til", "Flow" : "Flæði", + "Remove filter" : "Fjarlægja síu", "Folder" : "Mappa", "Images" : "Myndir", - "Predefined URLs" : "Forákvarðaðar slóðir", "Files WebDAV" : "WebDAV skráa", "Android client" : "Android-biðlari", "iOS client" : "iOS-biðlari", "Desktop client" : "Skjáborðsforrit", "Thunderbird & Outlook addons" : "Thunderbird & Outlook viðbætur", + "Select groups" : "Veldu hópa", + "Groups" : "Hópar", "Add new flow" : "Bæta við nýju flæði", - "Cancel" : "Hætta við", - "Delete" : "Eyða", "Active" : "Virkt", "Save" : "Vista", + "Cancel" : "Hætta við", + "Delete" : "Eyða", "Available flows" : "Tiltæk flæði", "More flows" : "Fleiri flæði", + "Browse the App Store" : "Flakka um forritasafnið", + "Show less" : "Birta minna", + "Show more" : "Birta meira", "Configured flows" : "Uppsett flæði", "Your flows" : "Flæðin þín", "matches" : "samsvarar", @@ -62,11 +67,7 @@ OC.L10N.register( "between" : "á milli", "not between" : "er ekki á milli", "Request user agent" : "Biðja um notandaforrit", - "User group membership" : "Notandi er meðlimur í hópum", "is member of" : "er meðlimur í ", - "is not member of" : "er ekki meðlimur í", - "No results" : "Engar niðurstöður", - "%s (invisible)" : "%s (ósýnilegt)", - "%s (restricted)" : "%s (takmarkaður aðgangur)" + "is not member of" : "er ekki meðlimur í" }, "nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"); diff --git a/apps/workflowengine/l10n/is.json b/apps/workflowengine/l10n/is.json index 475b6b83073..bfb8d269725 100644 --- a/apps/workflowengine/l10n/is.json +++ b/apps/workflowengine/l10n/is.json @@ -19,21 +19,26 @@ "Check #%s does not exist" : "Athugunin #%s er ekki til", "Check %s is invalid or does not exist" : "Athugunin %s er ógild eða er ekki til", "Flow" : "Flæði", + "Remove filter" : "Fjarlægja síu", "Folder" : "Mappa", "Images" : "Myndir", - "Predefined URLs" : "Forákvarðaðar slóðir", "Files WebDAV" : "WebDAV skráa", "Android client" : "Android-biðlari", "iOS client" : "iOS-biðlari", "Desktop client" : "Skjáborðsforrit", "Thunderbird & Outlook addons" : "Thunderbird & Outlook viðbætur", + "Select groups" : "Veldu hópa", + "Groups" : "Hópar", "Add new flow" : "Bæta við nýju flæði", - "Cancel" : "Hætta við", - "Delete" : "Eyða", "Active" : "Virkt", "Save" : "Vista", + "Cancel" : "Hætta við", + "Delete" : "Eyða", "Available flows" : "Tiltæk flæði", "More flows" : "Fleiri flæði", + "Browse the App Store" : "Flakka um forritasafnið", + "Show less" : "Birta minna", + "Show more" : "Birta meira", "Configured flows" : "Uppsett flæði", "Your flows" : "Flæðin þín", "matches" : "samsvarar", @@ -60,11 +65,7 @@ "between" : "á milli", "not between" : "er ekki á milli", "Request user agent" : "Biðja um notandaforrit", - "User group membership" : "Notandi er meðlimur í hópum", "is member of" : "er meðlimur í ", - "is not member of" : "er ekki meðlimur í", - "No results" : "Engar niðurstöður", - "%s (invisible)" : "%s (ósýnilegt)", - "%s (restricted)" : "%s (takmarkaður aðgangur)" + "is not member of" : "er ekki meðlimur í" },"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/it.js b/apps/workflowengine/l10n/it.js index b851e319e5a..d07b059622a 100644 --- a/apps/workflowengine/l10n/it.js +++ b/apps/workflowengine/l10n/it.js @@ -48,42 +48,48 @@ OC.L10N.register( "Nextcloud workflow engine" : "Motore flussi di lavoro di Nextcloud", "Select a filter" : "Seleziona un filtro", "Select a comparator" : "Seleziona un comparatore", - "Select a file type" : "Seleziona un tipo di file", - "e.g. httpd/unix-directory" : "ad es. httpd/unix-directory", + "Remove filter" : "Rimuovi filtro", "Folder" : "Cartella", "Images" : "Immagini", "Office documents" : "Documenti di Office", "PDF documents" : "Documenti PDF", + "Custom MIME type" : "Tipo MIME personalizzato", "Custom mimetype" : "Tipo MIME personalizzato", + "Select a file type" : "Seleziona un tipo di file", + "e.g. httpd/unix-directory" : "ad es. httpd/unix-directory", "Please enter a valid time span" : "Digita un intervallo temporale valido", - "Select a request URL" : "Seleziona un URL di richiesta", - "Predefined URLs" : "URL predefiniti", "Files WebDAV" : "File WebDAV", - "Others" : "Altri", "Custom URL" : "URL personalizzato", - "Select a user agent" : "Seleziona user agent", + "Select a request URL" : "Seleziona un URL di richiesta", "Android client" : "Client Android", "iOS client" : "Client iOS", "Desktop client" : "Client desktop", "Thunderbird & Outlook addons" : "Componenti aggiuntivi di Outlook e Thunderbird", "Custom user agent" : "User agent personalizzato", + "Select a user agent" : "Seleziona user agent", + "Select groups" : "Seleziona gruppi", + "Groups" : "Gruppi", "At least one event must be selected" : "Deve essere selezionato almeno un evento", "Add new flow" : "Aggiungi nuovo flusso", + "The configuration is invalid" : "La configurazione non è valida", + "Active" : "Attivo", + "Save" : "Salva", "When" : "Quando", "and" : "e", + "Add a new filter" : "Aggiungi un nuovo filtro", "Cancel" : "Annulla", "Delete" : "Elimina", - "The configuration is invalid" : "La configurazione non è valida", - "Active" : "Attivo", - "Save" : "Salva", "Available flows" : "Flussi disponibili", "For details on how to write your own flow, check out the development documentation." : "Per dettagli su come scrivere il tuo flusso, controlla la documentazione di sviluppo.", + "No flows installed" : "Nessun flusso installato", + "Ask your administrator to install new flows." : "Chiedi al tuo amministratore di installare nuovi flussi.", "More flows" : "Altri flussi", "Browse the App Store" : "Sfoglia il negozio delle applicazioni", "Show less" : "Mostra meno", "Show more" : "Mostra più", "Configured flows" : "Flussi configurati", "Your flows" : "I tuoi flussi", + "No flows configured" : "Nessun flusso configurato", "matches" : "corrisponde", "does not match" : "non corrisponde", "is" : "è", @@ -108,12 +114,7 @@ OC.L10N.register( "between" : "compreso", "not between" : "non compreso", "Request user agent" : "User agent della richiesta", - "User group membership" : "Appartenenza ai gruppi degli utenti", "is member of" : "è membro di", - "is not member of" : "non è membro di", - "Select a tag" : "Seleziona un'etichetta", - "No results" : "Nessun risultato", - "%s (invisible)" : "%s (invisibile)", - "%s (restricted)" : "%s (limitato)" + "is not member of" : "non è membro di" }, "nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/it.json b/apps/workflowengine/l10n/it.json index 0f343e4f7e4..e093c15a0c8 100644 --- a/apps/workflowengine/l10n/it.json +++ b/apps/workflowengine/l10n/it.json @@ -46,42 +46,48 @@ "Nextcloud workflow engine" : "Motore flussi di lavoro di Nextcloud", "Select a filter" : "Seleziona un filtro", "Select a comparator" : "Seleziona un comparatore", - "Select a file type" : "Seleziona un tipo di file", - "e.g. httpd/unix-directory" : "ad es. httpd/unix-directory", + "Remove filter" : "Rimuovi filtro", "Folder" : "Cartella", "Images" : "Immagini", "Office documents" : "Documenti di Office", "PDF documents" : "Documenti PDF", + "Custom MIME type" : "Tipo MIME personalizzato", "Custom mimetype" : "Tipo MIME personalizzato", + "Select a file type" : "Seleziona un tipo di file", + "e.g. httpd/unix-directory" : "ad es. httpd/unix-directory", "Please enter a valid time span" : "Digita un intervallo temporale valido", - "Select a request URL" : "Seleziona un URL di richiesta", - "Predefined URLs" : "URL predefiniti", "Files WebDAV" : "File WebDAV", - "Others" : "Altri", "Custom URL" : "URL personalizzato", - "Select a user agent" : "Seleziona user agent", + "Select a request URL" : "Seleziona un URL di richiesta", "Android client" : "Client Android", "iOS client" : "Client iOS", "Desktop client" : "Client desktop", "Thunderbird & Outlook addons" : "Componenti aggiuntivi di Outlook e Thunderbird", "Custom user agent" : "User agent personalizzato", + "Select a user agent" : "Seleziona user agent", + "Select groups" : "Seleziona gruppi", + "Groups" : "Gruppi", "At least one event must be selected" : "Deve essere selezionato almeno un evento", "Add new flow" : "Aggiungi nuovo flusso", + "The configuration is invalid" : "La configurazione non è valida", + "Active" : "Attivo", + "Save" : "Salva", "When" : "Quando", "and" : "e", + "Add a new filter" : "Aggiungi un nuovo filtro", "Cancel" : "Annulla", "Delete" : "Elimina", - "The configuration is invalid" : "La configurazione non è valida", - "Active" : "Attivo", - "Save" : "Salva", "Available flows" : "Flussi disponibili", "For details on how to write your own flow, check out the development documentation." : "Per dettagli su come scrivere il tuo flusso, controlla la documentazione di sviluppo.", + "No flows installed" : "Nessun flusso installato", + "Ask your administrator to install new flows." : "Chiedi al tuo amministratore di installare nuovi flussi.", "More flows" : "Altri flussi", "Browse the App Store" : "Sfoglia il negozio delle applicazioni", "Show less" : "Mostra meno", "Show more" : "Mostra più", "Configured flows" : "Flussi configurati", "Your flows" : "I tuoi flussi", + "No flows configured" : "Nessun flusso configurato", "matches" : "corrisponde", "does not match" : "non corrisponde", "is" : "è", @@ -106,12 +112,7 @@ "between" : "compreso", "not between" : "non compreso", "Request user agent" : "User agent della richiesta", - "User group membership" : "Appartenenza ai gruppi degli utenti", "is member of" : "è membro di", - "is not member of" : "non è membro di", - "Select a tag" : "Seleziona un'etichetta", - "No results" : "Nessun risultato", - "%s (invisible)" : "%s (invisibile)", - "%s (restricted)" : "%s (limitato)" + "is not member of" : "non è membro di" },"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/ja.js b/apps/workflowengine/l10n/ja.js index 7c4a0859f28..82e789eeed1 100644 --- a/apps/workflowengine/l10n/ja.js +++ b/apps/workflowengine/l10n/ja.js @@ -48,42 +48,50 @@ OC.L10N.register( "Nextcloud workflow engine" : "Nextcloud ワークフローエンジン", "Select a filter" : "フィルターを選択", "Select a comparator" : "比較演算子を指定", - "Select a file type" : "ファイルタイプを指定", - "e.g. httpd/unix-directory" : "例: httpd/unix-directory", + "Remove filter" : "フィルターを削除", "Folder" : "フォルダー", "Images" : "画像", "Office documents" : "Officeドキュメント", "PDF documents" : "PDFドキュメント", + "Custom MIME type" : "カスタムMIMEタイプ", "Custom mimetype" : "カスタムMIMEタイプ", + "Select a file type" : "ファイルタイプを指定", + "e.g. httpd/unix-directory" : "例: httpd/unix-directory", "Please enter a valid time span" : "正しい間隔を指定してください", - "Select a request URL" : "リクエストURLを選択", - "Predefined URLs" : "定義済みのURL", "Files WebDAV" : "ファイルWebDAV", - "Others" : "その他", "Custom URL" : "カスタムURL", - "Select a user agent" : "ユーザーエージェントを選択", + "Select a request URL" : "リクエストURLを選択", "Android client" : "アンドロイドクライアント", "iOS client" : "iOSクライアント", "Desktop client" : "デスクトップクライアント", "Thunderbird & Outlook addons" : "Thunderbird & Outlook アドオン", "Custom user agent" : "カスタムユーザーエージェント", + "Select a user agent" : "ユーザーエージェントを選択", + "Select groups" : "グループを選択", + "Groups" : "グループ", + "Type to search for group …" : "グループを検索するためのタイプ", + "Select a trigger" : "トリガーを選択", "At least one event must be selected" : "少なくともイベントを一つ指定してください", "Add new flow" : "新しいフローを追加", + "The configuration is invalid" : "設定が正しくありません", + "Active" : "アクティブ化", + "Save" : "保存", "When" : "いつ", "and" : "かつ", + "Add a new filter" : "新しいフィルターを追加", "Cancel" : "キャンセル", "Delete" : "削除", - "The configuration is invalid" : "設定が正しくありません", - "Active" : "アクティブ化", - "Save" : "保存", "Available flows" : "利用可能なフロー", "For details on how to write your own flow, check out the development documentation." : "独自のフローを作成する方法の詳細については、開発ドキュメントを参照してください。", + "No flows installed" : "フローがインストールされていません", + "Ask your administrator to install new flows." : "あなたの管理者に新しいフローのインストールを依頼してください。", "More flows" : "その他のフロー", "Browse the App Store" : "AppStoreをブラウザーでみる", "Show less" : "表示を減らす", "Show more" : "表示を増やす", "Configured flows" : "設定済みフロー", "Your flows" : "作成したフロー", + "No flows configured" : "設定済みのフローはありません。", "matches" : "一致", "does not match" : "一致しない", "is" : "は", @@ -108,12 +116,8 @@ OC.L10N.register( "between" : "間", "not between" : "間ではない", "Request user agent" : "リクエスト時のユーザーエージェント", - "User group membership" : "ユーザーがグループのメンバーかどうか", + "Group membership" : "グループメンバー", "is member of" : "が次のグループのメンバーである", - "is not member of" : "が次のグループのメンバーではない", - "Select a tag" : "タグを選択", - "No results" : "該当なし", - "%s (invisible)" : "%s (不可視)", - "%s (restricted)" : "%s (制限)" + "is not member of" : "が次のグループのメンバーではない" }, "nplurals=1; plural=0;"); diff --git a/apps/workflowengine/l10n/ja.json b/apps/workflowengine/l10n/ja.json index e023e0e9e56..e479bf4090a 100644 --- a/apps/workflowengine/l10n/ja.json +++ b/apps/workflowengine/l10n/ja.json @@ -46,42 +46,50 @@ "Nextcloud workflow engine" : "Nextcloud ワークフローエンジン", "Select a filter" : "フィルターを選択", "Select a comparator" : "比較演算子を指定", - "Select a file type" : "ファイルタイプを指定", - "e.g. httpd/unix-directory" : "例: httpd/unix-directory", + "Remove filter" : "フィルターを削除", "Folder" : "フォルダー", "Images" : "画像", "Office documents" : "Officeドキュメント", "PDF documents" : "PDFドキュメント", + "Custom MIME type" : "カスタムMIMEタイプ", "Custom mimetype" : "カスタムMIMEタイプ", + "Select a file type" : "ファイルタイプを指定", + "e.g. httpd/unix-directory" : "例: httpd/unix-directory", "Please enter a valid time span" : "正しい間隔を指定してください", - "Select a request URL" : "リクエストURLを選択", - "Predefined URLs" : "定義済みのURL", "Files WebDAV" : "ファイルWebDAV", - "Others" : "その他", "Custom URL" : "カスタムURL", - "Select a user agent" : "ユーザーエージェントを選択", + "Select a request URL" : "リクエストURLを選択", "Android client" : "アンドロイドクライアント", "iOS client" : "iOSクライアント", "Desktop client" : "デスクトップクライアント", "Thunderbird & Outlook addons" : "Thunderbird & Outlook アドオン", "Custom user agent" : "カスタムユーザーエージェント", + "Select a user agent" : "ユーザーエージェントを選択", + "Select groups" : "グループを選択", + "Groups" : "グループ", + "Type to search for group …" : "グループを検索するためのタイプ", + "Select a trigger" : "トリガーを選択", "At least one event must be selected" : "少なくともイベントを一つ指定してください", "Add new flow" : "新しいフローを追加", + "The configuration is invalid" : "設定が正しくありません", + "Active" : "アクティブ化", + "Save" : "保存", "When" : "いつ", "and" : "かつ", + "Add a new filter" : "新しいフィルターを追加", "Cancel" : "キャンセル", "Delete" : "削除", - "The configuration is invalid" : "設定が正しくありません", - "Active" : "アクティブ化", - "Save" : "保存", "Available flows" : "利用可能なフロー", "For details on how to write your own flow, check out the development documentation." : "独自のフローを作成する方法の詳細については、開発ドキュメントを参照してください。", + "No flows installed" : "フローがインストールされていません", + "Ask your administrator to install new flows." : "あなたの管理者に新しいフローのインストールを依頼してください。", "More flows" : "その他のフロー", "Browse the App Store" : "AppStoreをブラウザーでみる", "Show less" : "表示を減らす", "Show more" : "表示を増やす", "Configured flows" : "設定済みフロー", "Your flows" : "作成したフロー", + "No flows configured" : "設定済みのフローはありません。", "matches" : "一致", "does not match" : "一致しない", "is" : "は", @@ -106,12 +114,8 @@ "between" : "間", "not between" : "間ではない", "Request user agent" : "リクエスト時のユーザーエージェント", - "User group membership" : "ユーザーがグループのメンバーかどうか", + "Group membership" : "グループメンバー", "is member of" : "が次のグループのメンバーである", - "is not member of" : "が次のグループのメンバーではない", - "Select a tag" : "タグを選択", - "No results" : "該当なし", - "%s (invisible)" : "%s (不可視)", - "%s (restricted)" : "%s (制限)" + "is not member of" : "が次のグループのメンバーではない" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/ka.js b/apps/workflowengine/l10n/ka.js new file mode 100644 index 00000000000..4e584689600 --- /dev/null +++ b/apps/workflowengine/l10n/ka.js @@ -0,0 +1,121 @@ +OC.L10N.register( + "workflowengine", + { + "The given operator is invalid" : "The given operator is invalid", + "The given regular expression is invalid" : "The given regular expression is invalid", + "The given file size is invalid" : "The given file size is invalid", + "The given tag id is invalid" : "The given tag id is invalid", + "The given IP range is invalid" : "The given IP range is invalid", + "The given IP range is not valid for IPv4" : "The given IP range is not valid for IPv4", + "The given IP range is not valid for IPv6" : "The given IP range is not valid for IPv6", + "The given time span is invalid" : "The given time span is invalid", + "The given start time is invalid" : "The given start time is invalid", + "The given end time is invalid" : "The given end time is invalid", + "The given group does not exist" : "The given group does not exist", + "File" : "File", + "File created" : "File created", + "File updated" : "File updated", + "File renamed" : "File renamed", + "File deleted" : "File deleted", + "File accessed" : "File accessed", + "File copied" : "File copied", + "Tag assigned" : "Tag assigned", + "Someone" : "Someone", + "%s created %s" : "%s created %s", + "%s modified %s" : "%s modified %s", + "%s deleted %s" : "%s deleted %s", + "%s accessed %s" : "%s accessed %s", + "%s renamed %s" : "%s renamed %s", + "%s copied %s" : "%s copied %s", + "%s assigned %s to %s" : "%s assigned %s to %s", + "Operation #%s does not exist" : "Operation #%s does not exist", + "Entity %s does not exist" : "Entity %s does not exist", + "Entity %s is invalid" : "Entity %s is invalid", + "No events are chosen." : "No events are chosen.", + "Entity %s has no event %s" : "Entity %s has no event %s", + "Operation %s does not exist" : "Operation %s does not exist", + "Operation %s is invalid" : "Operation %s is invalid", + "At least one check needs to be provided" : "At least one check needs to be provided", + "The provided operation data is too long" : "The provided operation data is too long", + "Invalid check provided" : "Invalid check provided", + "Check %s does not exist" : "Check %s does not exist", + "Check %s is invalid" : "Check %s is invalid", + "Check %s is not allowed with this entity" : "Check %s is not allowed with this entity", + "The provided check value is too long" : "The provided check value is too long", + "Check #%s does not exist" : "Check #%s does not exist", + "Check %s is invalid or does not exist" : "Check %s is invalid or does not exist", + "Flow" : "Flow", + "Nextcloud workflow engine" : "Nextcloud workflow engine", + "Select a filter" : "Select a filter", + "Select a comparator" : "Select a comparator", + "Remove filter" : "Remove filter", + "Folder" : "Folder", + "Images" : "Images", + "Office documents" : "Office documents", + "PDF documents" : "PDF documents", + "Custom MIME type" : "Custom MIME type", + "Custom mimetype" : "Custom mimetype", + "Select a file type" : "Select a file type", + "e.g. httpd/unix-directory" : "e.g. httpd/unix-directory", + "Please enter a valid time span" : "Please enter a valid time span", + "Files WebDAV" : "Files WebDAV", + "Custom URL" : "Custom URL", + "Select a request URL" : "Select a request URL", + "Android client" : "Android client", + "iOS client" : "iOS client", + "Desktop client" : "Desktop client", + "Thunderbird & Outlook addons" : "Thunderbird & Outlook addons", + "Custom user agent" : "Custom user agent", + "Select a user agent" : "Select a user agent", + "Select groups" : "Select groups", + "Groups" : "Groups", + "Select a trigger" : "Select a trigger", + "At least one event must be selected" : "At least one event must be selected", + "Add new flow" : "Add new flow", + "The configuration is invalid" : "The configuration is invalid", + "Active" : "Active", + "Save" : "Save", + "When" : "When", + "and" : "and", + "Add a new filter" : "Add a new filter", + "Cancel" : "Cancel", + "Delete" : "Delete", + "Available flows" : "Available flows", + "For details on how to write your own flow, check out the development documentation." : "For details on how to write your own flow, check out the development documentation.", + "No flows installed" : "No flows installed", + "Ask your administrator to install new flows." : "Ask your administrator to install new flows.", + "More flows" : "More flows", + "Browse the App Store" : "Browse the App Store", + "Show less" : "Show less", + "Show more" : "Show more", + "Configured flows" : "Configured flows", + "Your flows" : "Your flows", + "No flows configured" : "No flows configured", + "matches" : "matches", + "does not match" : "does not match", + "is" : "is", + "is not" : "is not", + "File name" : "File name", + "File MIME type" : "File MIME type", + "File size (upload)" : "File size (upload)", + "less" : "less", + "less or equals" : "less or equals", + "greater or equals" : "greater or equals", + "greater" : "greater", + "Request remote address" : "Request remote address", + "matches IPv4" : "matches IPv4", + "does not match IPv4" : "does not match IPv4", + "matches IPv6" : "matches IPv6", + "does not match IPv6" : "does not match IPv6", + "File system tag" : "File system tag", + "is tagged with" : "is tagged with", + "is not tagged with" : "is not tagged with", + "Request URL" : "Request URL", + "Request time" : "Request time", + "between" : "between", + "not between" : "not between", + "Request user agent" : "Request user agent", + "is member of" : "is member of", + "is not member of" : "is not member of" +}, +"nplurals=2; plural=(n!=1);"); diff --git a/apps/workflowengine/l10n/ka.json b/apps/workflowengine/l10n/ka.json new file mode 100644 index 00000000000..ebf89c5e0ee --- /dev/null +++ b/apps/workflowengine/l10n/ka.json @@ -0,0 +1,119 @@ +{ "translations": { + "The given operator is invalid" : "The given operator is invalid", + "The given regular expression is invalid" : "The given regular expression is invalid", + "The given file size is invalid" : "The given file size is invalid", + "The given tag id is invalid" : "The given tag id is invalid", + "The given IP range is invalid" : "The given IP range is invalid", + "The given IP range is not valid for IPv4" : "The given IP range is not valid for IPv4", + "The given IP range is not valid for IPv6" : "The given IP range is not valid for IPv6", + "The given time span is invalid" : "The given time span is invalid", + "The given start time is invalid" : "The given start time is invalid", + "The given end time is invalid" : "The given end time is invalid", + "The given group does not exist" : "The given group does not exist", + "File" : "File", + "File created" : "File created", + "File updated" : "File updated", + "File renamed" : "File renamed", + "File deleted" : "File deleted", + "File accessed" : "File accessed", + "File copied" : "File copied", + "Tag assigned" : "Tag assigned", + "Someone" : "Someone", + "%s created %s" : "%s created %s", + "%s modified %s" : "%s modified %s", + "%s deleted %s" : "%s deleted %s", + "%s accessed %s" : "%s accessed %s", + "%s renamed %s" : "%s renamed %s", + "%s copied %s" : "%s copied %s", + "%s assigned %s to %s" : "%s assigned %s to %s", + "Operation #%s does not exist" : "Operation #%s does not exist", + "Entity %s does not exist" : "Entity %s does not exist", + "Entity %s is invalid" : "Entity %s is invalid", + "No events are chosen." : "No events are chosen.", + "Entity %s has no event %s" : "Entity %s has no event %s", + "Operation %s does not exist" : "Operation %s does not exist", + "Operation %s is invalid" : "Operation %s is invalid", + "At least one check needs to be provided" : "At least one check needs to be provided", + "The provided operation data is too long" : "The provided operation data is too long", + "Invalid check provided" : "Invalid check provided", + "Check %s does not exist" : "Check %s does not exist", + "Check %s is invalid" : "Check %s is invalid", + "Check %s is not allowed with this entity" : "Check %s is not allowed with this entity", + "The provided check value is too long" : "The provided check value is too long", + "Check #%s does not exist" : "Check #%s does not exist", + "Check %s is invalid or does not exist" : "Check %s is invalid or does not exist", + "Flow" : "Flow", + "Nextcloud workflow engine" : "Nextcloud workflow engine", + "Select a filter" : "Select a filter", + "Select a comparator" : "Select a comparator", + "Remove filter" : "Remove filter", + "Folder" : "Folder", + "Images" : "Images", + "Office documents" : "Office documents", + "PDF documents" : "PDF documents", + "Custom MIME type" : "Custom MIME type", + "Custom mimetype" : "Custom mimetype", + "Select a file type" : "Select a file type", + "e.g. httpd/unix-directory" : "e.g. httpd/unix-directory", + "Please enter a valid time span" : "Please enter a valid time span", + "Files WebDAV" : "Files WebDAV", + "Custom URL" : "Custom URL", + "Select a request URL" : "Select a request URL", + "Android client" : "Android client", + "iOS client" : "iOS client", + "Desktop client" : "Desktop client", + "Thunderbird & Outlook addons" : "Thunderbird & Outlook addons", + "Custom user agent" : "Custom user agent", + "Select a user agent" : "Select a user agent", + "Select groups" : "Select groups", + "Groups" : "Groups", + "Select a trigger" : "Select a trigger", + "At least one event must be selected" : "At least one event must be selected", + "Add new flow" : "Add new flow", + "The configuration is invalid" : "The configuration is invalid", + "Active" : "Active", + "Save" : "Save", + "When" : "When", + "and" : "and", + "Add a new filter" : "Add a new filter", + "Cancel" : "Cancel", + "Delete" : "Delete", + "Available flows" : "Available flows", + "For details on how to write your own flow, check out the development documentation." : "For details on how to write your own flow, check out the development documentation.", + "No flows installed" : "No flows installed", + "Ask your administrator to install new flows." : "Ask your administrator to install new flows.", + "More flows" : "More flows", + "Browse the App Store" : "Browse the App Store", + "Show less" : "Show less", + "Show more" : "Show more", + "Configured flows" : "Configured flows", + "Your flows" : "Your flows", + "No flows configured" : "No flows configured", + "matches" : "matches", + "does not match" : "does not match", + "is" : "is", + "is not" : "is not", + "File name" : "File name", + "File MIME type" : "File MIME type", + "File size (upload)" : "File size (upload)", + "less" : "less", + "less or equals" : "less or equals", + "greater or equals" : "greater or equals", + "greater" : "greater", + "Request remote address" : "Request remote address", + "matches IPv4" : "matches IPv4", + "does not match IPv4" : "does not match IPv4", + "matches IPv6" : "matches IPv6", + "does not match IPv6" : "does not match IPv6", + "File system tag" : "File system tag", + "is tagged with" : "is tagged with", + "is not tagged with" : "is not tagged with", + "Request URL" : "Request URL", + "Request time" : "Request time", + "between" : "between", + "not between" : "not between", + "Request user agent" : "Request user agent", + "is member of" : "is member of", + "is not member of" : "is not member of" +},"pluralForm" :"nplurals=2; plural=(n!=1);" +}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/ka_GE.js b/apps/workflowengine/l10n/ka_GE.js deleted file mode 100644 index 48a7c852f2b..00000000000 --- a/apps/workflowengine/l10n/ka_GE.js +++ /dev/null @@ -1,63 +0,0 @@ -OC.L10N.register( - "workflowengine", - { - "The given operator is invalid" : "მოცემული ოპერატორი არაა სწორი", - "The given regular expression is invalid" : "მოცემული რეგულარული გამოსახულება არაა სწორი", - "The given file size is invalid" : "მოცემული ფაილის ზომა არაა სწორი", - "The given tag id is invalid" : "მოცემული ტეგის id არაა სწორი", - "The given IP range is invalid" : "მოცემული IP დიაპაზონი არაა სწორი", - "The given IP range is not valid for IPv4" : "მოცემული IP დიაპაზონი არაა სწორი IPv4-ისთვის", - "The given IP range is not valid for IPv6" : "მოცემული IP დიაპაზონი არაა სწორი IPv6-ისთვის", - "The given time span is invalid" : "მოცემული დროის ინტერვალი არაა სწორი", - "The given start time is invalid" : "მოცემული საწყისი დრო არაა სწორი", - "The given end time is invalid" : "მოცემული დროის დასასრული არაა სწორი", - "The given group does not exist" : "მოცემული ჯგუფი არ არსებობს", - "File" : "ფაილი", - "Operation #%s does not exist" : "ოპერაცია #%s არ არსებობს", - "Operation %s does not exist" : "ოპერაცია %s არ არსებობს", - "Operation %s is invalid" : "ოპერაცია %s არაა სწორი", - "Check %s does not exist" : "შეამოწმეთ %s არ არსებობს", - "Check %s is invalid" : "შეამოწმეთ %s არასწორია", - "Check #%s does not exist" : "შეამოწმეთ #%s არ არსებობს", - "Check %s is invalid or does not exist" : "შეამოწმეთ %s არასწორია ან არ არსებობს", - "Folder" : "დირექტორია", - "Images" : "სურათები", - "Predefined URLs" : "წინასწარ განსაზღვრული URL-ები", - "Files WebDAV" : "ფაილები WebDAV", - "Android client" : "Android კლიენტი", - "iOS client" : "iOS კლიენტი", - "Desktop client" : "დესკტოპ კლიენტი", - "Cancel" : "უარყოფა", - "Delete" : "წაშლა", - "Save" : "შენახვა", - "matches" : "ემთხვევა", - "does not match" : "არ ემთხვევა", - "is" : "არის", - "is not" : "არ არის", - "File MIME type" : "ფაილის MIME სახეობა", - "File size (upload)" : "ფაილის ზომა (ატვირთვა)", - "less" : "უფრო ნაკლები", - "less or equals" : "უფრო ნაკლები ან ტოლი", - "greater or equals" : "უფრო მეტი ან ტოლი", - "greater" : "უფრო მეტი", - "Request remote address" : "დისტანციური მისამართის მოთხოვნა", - "matches IPv4" : "ემთხვევა IPv4-ს", - "does not match IPv4" : "არ ემთხვევა IPv4-ს", - "matches IPv6" : "ემთხვევა IPv6-ს", - "does not match IPv6" : "არ ემთხვევა IPv6-ს", - "File system tag" : "ფაილის სისტემური ტეგი", - "is tagged with" : "დატეგილია როგორც", - "is not tagged with" : "არაა დატეგილი როგორც", - "Request URL" : "მოთხოვნის URL", - "Request time" : "მოთხოვნის დრო", - "between" : "შორის", - "not between" : "არა შორის", - "Request user agent" : "მოთხოვნის მომხმარებლის აგენტი", - "User group membership" : "მომხმარებლის ჯგუფის წევრიანობა", - "is member of" : "არის წევრი ჯგუფისა", - "is not member of" : "არ არის წევრი ჯგუფისა", - "No results" : "შედეგები არაა", - "%s (invisible)" : "%s (უჩინარი)", - "%s (restricted)" : "%s (აკრძალული)" -}, -"nplurals=2; plural=(n!=1);"); diff --git a/apps/workflowengine/l10n/ka_GE.json b/apps/workflowengine/l10n/ka_GE.json deleted file mode 100644 index 3fdb17c8be5..00000000000 --- a/apps/workflowengine/l10n/ka_GE.json +++ /dev/null @@ -1,61 +0,0 @@ -{ "translations": { - "The given operator is invalid" : "მოცემული ოპერატორი არაა სწორი", - "The given regular expression is invalid" : "მოცემული რეგულარული გამოსახულება არაა სწორი", - "The given file size is invalid" : "მოცემული ფაილის ზომა არაა სწორი", - "The given tag id is invalid" : "მოცემული ტეგის id არაა სწორი", - "The given IP range is invalid" : "მოცემული IP დიაპაზონი არაა სწორი", - "The given IP range is not valid for IPv4" : "მოცემული IP დიაპაზონი არაა სწორი IPv4-ისთვის", - "The given IP range is not valid for IPv6" : "მოცემული IP დიაპაზონი არაა სწორი IPv6-ისთვის", - "The given time span is invalid" : "მოცემული დროის ინტერვალი არაა სწორი", - "The given start time is invalid" : "მოცემული საწყისი დრო არაა სწორი", - "The given end time is invalid" : "მოცემული დროის დასასრული არაა სწორი", - "The given group does not exist" : "მოცემული ჯგუფი არ არსებობს", - "File" : "ფაილი", - "Operation #%s does not exist" : "ოპერაცია #%s არ არსებობს", - "Operation %s does not exist" : "ოპერაცია %s არ არსებობს", - "Operation %s is invalid" : "ოპერაცია %s არაა სწორი", - "Check %s does not exist" : "შეამოწმეთ %s არ არსებობს", - "Check %s is invalid" : "შეამოწმეთ %s არასწორია", - "Check #%s does not exist" : "შეამოწმეთ #%s არ არსებობს", - "Check %s is invalid or does not exist" : "შეამოწმეთ %s არასწორია ან არ არსებობს", - "Folder" : "დირექტორია", - "Images" : "სურათები", - "Predefined URLs" : "წინასწარ განსაზღვრული URL-ები", - "Files WebDAV" : "ფაილები WebDAV", - "Android client" : "Android კლიენტი", - "iOS client" : "iOS კლიენტი", - "Desktop client" : "დესკტოპ კლიენტი", - "Cancel" : "უარყოფა", - "Delete" : "წაშლა", - "Save" : "შენახვა", - "matches" : "ემთხვევა", - "does not match" : "არ ემთხვევა", - "is" : "არის", - "is not" : "არ არის", - "File MIME type" : "ფაილის MIME სახეობა", - "File size (upload)" : "ფაილის ზომა (ატვირთვა)", - "less" : "უფრო ნაკლები", - "less or equals" : "უფრო ნაკლები ან ტოლი", - "greater or equals" : "უფრო მეტი ან ტოლი", - "greater" : "უფრო მეტი", - "Request remote address" : "დისტანციური მისამართის მოთხოვნა", - "matches IPv4" : "ემთხვევა IPv4-ს", - "does not match IPv4" : "არ ემთხვევა IPv4-ს", - "matches IPv6" : "ემთხვევა IPv6-ს", - "does not match IPv6" : "არ ემთხვევა IPv6-ს", - "File system tag" : "ფაილის სისტემური ტეგი", - "is tagged with" : "დატეგილია როგორც", - "is not tagged with" : "არაა დატეგილი როგორც", - "Request URL" : "მოთხოვნის URL", - "Request time" : "მოთხოვნის დრო", - "between" : "შორის", - "not between" : "არა შორის", - "Request user agent" : "მოთხოვნის მომხმარებლის აგენტი", - "User group membership" : "მომხმარებლის ჯგუფის წევრიანობა", - "is member of" : "არის წევრი ჯგუფისა", - "is not member of" : "არ არის წევრი ჯგუფისა", - "No results" : "შედეგები არაა", - "%s (invisible)" : "%s (უჩინარი)", - "%s (restricted)" : "%s (აკრძალული)" -},"pluralForm" :"nplurals=2; plural=(n!=1);" -}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/ko.js b/apps/workflowengine/l10n/ko.js index a0cde15c1d8..7a029194ce8 100644 --- a/apps/workflowengine/l10n/ko.js +++ b/apps/workflowengine/l10n/ko.js @@ -20,18 +20,18 @@ OC.L10N.register( "File accessed" : "파일 접근됨", "File copied" : "파일 복사됨", "Tag assigned" : "태그 할당됨", - "%s created %s" : "%s이(가) %s을(를) 생성하였습니다.", - "%s modified %s" : "%s이(가) %s을(를) 수정하였습니다.", - "%s deleted %s" : "%s이(가) %s을(를) 삭제하였습니다.", - "%s accessed %s" : "%s이(가) %s에 접근하였습니다.", - "%s renamed %s" : "%s이(가) %s의 이름을 변경하였습니다.", - "%s copied %s" : "%s이(가) %s을(를) 복사하였습니다.", - "%s assigned %s to %s" : "%s이(가) %s을(를) %s로 할당하였습니다.", + "%s created %s" : "%s님이 %s을(를) 생성함", + "%s modified %s" : "%s님이 %s을(를) 수정함", + "%s deleted %s" : "%s님이 %s을(를) 삭제함", + "%s accessed %s" : "%s님이 %s에 접근함", + "%s renamed %s" : "%s님이 %s의 이름을 변경함", + "%s copied %s" : "%s님이 %s을(를) 복사함", + "%s assigned %s to %s" : "%s님이 %s을(를) %s(으)로 할당함", "Operation #%s does not exist" : "작업 #%s이(가) 존재하지 않음", - "Entity %s does not exist" : "엔티티 %s이 없습니다", - "Entity %s is invalid" : "엔티티 %s이 유효하지 않습니다", + "Entity %s does not exist" : "엔티티 %s이 없습니다.", + "Entity %s is invalid" : "엔티티 %s이 유효하지 않습니다.", "No events are chosen." : "선택된 이벤트 없음", - "Entity %s has no event %s" : "엔티티 %s은 이벤트 %s을 포함하지 않습니다", + "Entity %s has no event %s" : "엔티티 %s은 이벤트 %s을 포함하지 않습니다.", "Operation %s does not exist" : "작업 %s이(가) 존재하지 않음", "Operation %s is invalid" : "작업 %s이(가) 잘못됨", "Check %s does not exist" : "검사 %s이(가) 존재하지 않음", @@ -41,31 +41,33 @@ OC.L10N.register( "Flow" : "흐름", "Nextcloud workflow engine" : "Nextcloud 작업 흐름 엔진", "Select a filter" : "필터 선택", - "Select a file type" : "파일 타입 선택", + "Remove filter" : "필터 삭제", "Folder" : "폴더", "Images" : "파일", "Office documents" : "오피스 문서", "PDF documents" : "PDF 문서", "Custom mimetype" : "사용자 mimetype", - "Select a request URL" : "요청 URL 선택", - "Predefined URLs" : "사전 정의된 URL", + "Select a file type" : "파일 타입 선택", "Files WebDAV" : "파일 WebDAV", - "Others" : "기타", "Custom URL" : "사용자 정의 URL", - "Select a user agent" : "사용자 에이전트 지정", + "Select a request URL" : "요청 URL 선택", "Android client" : "Android 클라이언트", "iOS client" : "iOS 클라이언트", "Desktop client" : "데스크톱 클라이언트", "Thunderbird & Outlook addons" : "Thunderbird와 Outlook 확장 기능", + "Select a user agent" : "사용자 에이전트 지정", + "Select groups" : "그룹 선택", + "Groups" : "그룹", "At least one event must be selected" : "적어도 하나의 이벤트는 선택해야합니다.", "Add new flow" : "새 흐름 추가", + "The configuration is invalid" : "설정이 잘못됨", + "Active" : "활성화", + "Save" : "저장", "When" : "언제", "and" : "그리고", + "Add a new filter" : "새 필터 추가", "Cancel" : "취소", "Delete" : "삭제", - "The configuration is invalid" : "설정이 잘못됨", - "Active" : "활성화", - "Save" : "저장", "Available flows" : "사용 가능한 흐름", "For details on how to write your own flow, check out the development documentation." : "어떻게 내 흐름을 작성하는지 자세히 알아보려면 개발자 문서를 참조하십시오.", "More flows" : "더 많은 흐름", @@ -74,6 +76,7 @@ OC.L10N.register( "Show more" : "더 보기", "Configured flows" : "설정된 흐름", "Your flows" : "내 흐름", + "No flows configured" : "설정된 흐름이 없음", "matches" : "일치함", "does not match" : "일치하지 않음", "is" : "맞음", @@ -98,12 +101,7 @@ OC.L10N.register( "between" : "사이", "not between" : "사이에 없음", "Request user agent" : "요청 사용자 에이전트", - "User group membership" : "사용자 그룹 구성원", "is member of" : "구성원임", - "is not member of" : "구성원이 아님", - "Select a tag" : "태그 선택", - "No results" : "결과 없음", - "%s (invisible)" : "%s(숨겨짐)", - "%s (restricted)" : "%s(제한됨)" + "is not member of" : "구성원이 아님" }, "nplurals=1; plural=0;"); diff --git a/apps/workflowengine/l10n/ko.json b/apps/workflowengine/l10n/ko.json index 224c6476cc1..6e05cefbbe9 100644 --- a/apps/workflowengine/l10n/ko.json +++ b/apps/workflowengine/l10n/ko.json @@ -18,18 +18,18 @@ "File accessed" : "파일 접근됨", "File copied" : "파일 복사됨", "Tag assigned" : "태그 할당됨", - "%s created %s" : "%s이(가) %s을(를) 생성하였습니다.", - "%s modified %s" : "%s이(가) %s을(를) 수정하였습니다.", - "%s deleted %s" : "%s이(가) %s을(를) 삭제하였습니다.", - "%s accessed %s" : "%s이(가) %s에 접근하였습니다.", - "%s renamed %s" : "%s이(가) %s의 이름을 변경하였습니다.", - "%s copied %s" : "%s이(가) %s을(를) 복사하였습니다.", - "%s assigned %s to %s" : "%s이(가) %s을(를) %s로 할당하였습니다.", + "%s created %s" : "%s님이 %s을(를) 생성함", + "%s modified %s" : "%s님이 %s을(를) 수정함", + "%s deleted %s" : "%s님이 %s을(를) 삭제함", + "%s accessed %s" : "%s님이 %s에 접근함", + "%s renamed %s" : "%s님이 %s의 이름을 변경함", + "%s copied %s" : "%s님이 %s을(를) 복사함", + "%s assigned %s to %s" : "%s님이 %s을(를) %s(으)로 할당함", "Operation #%s does not exist" : "작업 #%s이(가) 존재하지 않음", - "Entity %s does not exist" : "엔티티 %s이 없습니다", - "Entity %s is invalid" : "엔티티 %s이 유효하지 않습니다", + "Entity %s does not exist" : "엔티티 %s이 없습니다.", + "Entity %s is invalid" : "엔티티 %s이 유효하지 않습니다.", "No events are chosen." : "선택된 이벤트 없음", - "Entity %s has no event %s" : "엔티티 %s은 이벤트 %s을 포함하지 않습니다", + "Entity %s has no event %s" : "엔티티 %s은 이벤트 %s을 포함하지 않습니다.", "Operation %s does not exist" : "작업 %s이(가) 존재하지 않음", "Operation %s is invalid" : "작업 %s이(가) 잘못됨", "Check %s does not exist" : "검사 %s이(가) 존재하지 않음", @@ -39,31 +39,33 @@ "Flow" : "흐름", "Nextcloud workflow engine" : "Nextcloud 작업 흐름 엔진", "Select a filter" : "필터 선택", - "Select a file type" : "파일 타입 선택", + "Remove filter" : "필터 삭제", "Folder" : "폴더", "Images" : "파일", "Office documents" : "오피스 문서", "PDF documents" : "PDF 문서", "Custom mimetype" : "사용자 mimetype", - "Select a request URL" : "요청 URL 선택", - "Predefined URLs" : "사전 정의된 URL", + "Select a file type" : "파일 타입 선택", "Files WebDAV" : "파일 WebDAV", - "Others" : "기타", "Custom URL" : "사용자 정의 URL", - "Select a user agent" : "사용자 에이전트 지정", + "Select a request URL" : "요청 URL 선택", "Android client" : "Android 클라이언트", "iOS client" : "iOS 클라이언트", "Desktop client" : "데스크톱 클라이언트", "Thunderbird & Outlook addons" : "Thunderbird와 Outlook 확장 기능", + "Select a user agent" : "사용자 에이전트 지정", + "Select groups" : "그룹 선택", + "Groups" : "그룹", "At least one event must be selected" : "적어도 하나의 이벤트는 선택해야합니다.", "Add new flow" : "새 흐름 추가", + "The configuration is invalid" : "설정이 잘못됨", + "Active" : "활성화", + "Save" : "저장", "When" : "언제", "and" : "그리고", + "Add a new filter" : "새 필터 추가", "Cancel" : "취소", "Delete" : "삭제", - "The configuration is invalid" : "설정이 잘못됨", - "Active" : "활성화", - "Save" : "저장", "Available flows" : "사용 가능한 흐름", "For details on how to write your own flow, check out the development documentation." : "어떻게 내 흐름을 작성하는지 자세히 알아보려면 개발자 문서를 참조하십시오.", "More flows" : "더 많은 흐름", @@ -72,6 +74,7 @@ "Show more" : "더 보기", "Configured flows" : "설정된 흐름", "Your flows" : "내 흐름", + "No flows configured" : "설정된 흐름이 없음", "matches" : "일치함", "does not match" : "일치하지 않음", "is" : "맞음", @@ -96,12 +99,7 @@ "between" : "사이", "not between" : "사이에 없음", "Request user agent" : "요청 사용자 에이전트", - "User group membership" : "사용자 그룹 구성원", "is member of" : "구성원임", - "is not member of" : "구성원이 아님", - "Select a tag" : "태그 선택", - "No results" : "결과 없음", - "%s (invisible)" : "%s(숨겨짐)", - "%s (restricted)" : "%s(제한됨)" + "is not member of" : "구성원이 아님" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/lt_LT.js b/apps/workflowengine/l10n/lt_LT.js index 2c933f81d96..e7a443d4638 100644 --- a/apps/workflowengine/l10n/lt_LT.js +++ b/apps/workflowengine/l10n/lt_LT.js @@ -4,7 +4,7 @@ OC.L10N.register( "The given operator is invalid" : "Nurodytas operatorius yra neteisingas", "The given regular expression is invalid" : "Nurodytas reguliarusis reiškinys yra neteisingas", "The given file size is invalid" : "Nurodytas failo dydis yra neteisingas", - "The given tag id is invalid" : "Nurodytas žymės id yra neteisingas", + "The given tag id is invalid" : "Nurodytas žymos id yra neteisingas", "The given IP range is invalid" : "Nurodytas IP rėžis yra neteisingas", "The given IP range is not valid for IPv4" : "Nurodytas IPv4 adresas neteisingas", "The given IP range is not valid for IPv6" : "Nurodytas IPv6 adresas neteisingas", @@ -19,7 +19,7 @@ OC.L10N.register( "File deleted" : "Failas ištrintas", "File accessed" : "Gauta prieiga prie failo", "File copied" : "Failas nukopijuotas", - "Tag assigned" : "Priskirta žymė", + "Tag assigned" : "Priskirta žyma", "Someone" : "Kažkas", "%s created %s" : "%s sukūrė %s", "%s modified %s" : "%s modifikavo %s", @@ -46,34 +46,38 @@ OC.L10N.register( "Nextcloud workflow engine" : "Nextcloud darbo eigos modulis", "Select a filter" : "Pasirinkite filtrą", "Select a comparator" : "Pasirinkite palyginimą", - "Select a file type" : "Pasirinkite failo tipą", - "e.g. httpd/unix-directory" : "pvz., httpd/unix-directory", + "Remove filter" : "Šalinti filtrą", "Folder" : "Aplankas", "Images" : "Paveikslai", "Office documents" : "Raštinės dokumentai", "PDF documents" : "PDF dokumentai", + "Custom MIME type" : "Tinkintas MIME tipas", "Custom mimetype" : "Tinkintas MIME tipas", + "Select a file type" : "Pasirinkite failo tipą", + "e.g. httpd/unix-directory" : "pvz., httpd/unix-directory", "Please enter a valid time span" : "Įveskite teisingą laiko intervalą", - "Select a request URL" : "Pasirinkite užklausos URL", - "Predefined URLs" : "Iš anksto apibrėžti URL adresai", "Files WebDAV" : "WebDAV failai", - "Others" : "Kiti", "Custom URL" : "Tinkintas URL", - "Select a user agent" : "Pasirinkite naudotojo agentą", + "Select a request URL" : "Pasirinkite užklausos URL", "Android client" : "Android klientas", "iOS client" : "iOS klientas", "Desktop client" : "Darbalaukio klientas", "Thunderbird & Outlook addons" : "Thunderbird ir Outlook priedai", "Custom user agent" : "Tinkintas naudotojo agentas", + "Select a user agent" : "Pasirinkite naudotojo agentą", + "Select groups" : "Pasirinkti grupes", + "Groups" : "Grupės", + "Type to search for group …" : "Rašykite norėdami ieškoti grupės…", "At least one event must be selected" : "Privalo būti pasirinktas bent vienas įvykis", "Add new flow" : "Pridėti naują eigą", + "The configuration is invalid" : "Konfigūracija yra neteisinga", + "Active" : "Aktyvi", + "Save" : "Įrašyti", "When" : "Kada", "and" : "ir", + "Add a new filter" : "Pridėti naują filtrą", "Cancel" : "Atsisakyti", "Delete" : "Ištrinti", - "The configuration is invalid" : "Konfigūracija yra neteisinga", - "Active" : "Aktyvi", - "Save" : "Įrašyti", "Available flows" : "Prieinamos eigos", "For details on how to write your own flow, check out the development documentation." : "Išsamesnę informaciją apie tai, kaip parašyti savo asmeninę eigą, rasite plėtotojo dokumentacijoje.", "More flows" : "Daugiau eigų", @@ -98,7 +102,7 @@ OC.L10N.register( "does not match IPv4" : "neatitinka IPv4", "matches IPv6" : "atitinka IPv6", "does not match IPv6" : "neatitinka IPv6", - "File system tag" : "Failų sistemos žymė", + "File system tag" : "Failų sistemos žyma", "is tagged with" : "pažymėtas", "is not tagged with" : "nepažymėtas", "Request URL" : "Užklausos URL", @@ -106,12 +110,7 @@ OC.L10N.register( "between" : "tarp", "not between" : "nėra tarp", "Request user agent" : "Užklausti naudotojo agentą", - "User group membership" : "Naudotojų grupių narystės", "is member of" : "priklauso grupei", - "is not member of" : "nepriklauso grupei", - "Select a tag" : "Pasirinkite žymę", - "No results" : "Rezultatų nėra", - "%s (invisible)" : "%s (nematomas)", - "%s (restricted)" : "%s (apribotas)" + "is not member of" : "nepriklauso grupei" }, "nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"); diff --git a/apps/workflowengine/l10n/lt_LT.json b/apps/workflowengine/l10n/lt_LT.json index e07d5e6d5c0..4eb679fe493 100644 --- a/apps/workflowengine/l10n/lt_LT.json +++ b/apps/workflowengine/l10n/lt_LT.json @@ -2,7 +2,7 @@ "The given operator is invalid" : "Nurodytas operatorius yra neteisingas", "The given regular expression is invalid" : "Nurodytas reguliarusis reiškinys yra neteisingas", "The given file size is invalid" : "Nurodytas failo dydis yra neteisingas", - "The given tag id is invalid" : "Nurodytas žymės id yra neteisingas", + "The given tag id is invalid" : "Nurodytas žymos id yra neteisingas", "The given IP range is invalid" : "Nurodytas IP rėžis yra neteisingas", "The given IP range is not valid for IPv4" : "Nurodytas IPv4 adresas neteisingas", "The given IP range is not valid for IPv6" : "Nurodytas IPv6 adresas neteisingas", @@ -17,7 +17,7 @@ "File deleted" : "Failas ištrintas", "File accessed" : "Gauta prieiga prie failo", "File copied" : "Failas nukopijuotas", - "Tag assigned" : "Priskirta žymė", + "Tag assigned" : "Priskirta žyma", "Someone" : "Kažkas", "%s created %s" : "%s sukūrė %s", "%s modified %s" : "%s modifikavo %s", @@ -44,34 +44,38 @@ "Nextcloud workflow engine" : "Nextcloud darbo eigos modulis", "Select a filter" : "Pasirinkite filtrą", "Select a comparator" : "Pasirinkite palyginimą", - "Select a file type" : "Pasirinkite failo tipą", - "e.g. httpd/unix-directory" : "pvz., httpd/unix-directory", + "Remove filter" : "Šalinti filtrą", "Folder" : "Aplankas", "Images" : "Paveikslai", "Office documents" : "Raštinės dokumentai", "PDF documents" : "PDF dokumentai", + "Custom MIME type" : "Tinkintas MIME tipas", "Custom mimetype" : "Tinkintas MIME tipas", + "Select a file type" : "Pasirinkite failo tipą", + "e.g. httpd/unix-directory" : "pvz., httpd/unix-directory", "Please enter a valid time span" : "Įveskite teisingą laiko intervalą", - "Select a request URL" : "Pasirinkite užklausos URL", - "Predefined URLs" : "Iš anksto apibrėžti URL adresai", "Files WebDAV" : "WebDAV failai", - "Others" : "Kiti", "Custom URL" : "Tinkintas URL", - "Select a user agent" : "Pasirinkite naudotojo agentą", + "Select a request URL" : "Pasirinkite užklausos URL", "Android client" : "Android klientas", "iOS client" : "iOS klientas", "Desktop client" : "Darbalaukio klientas", "Thunderbird & Outlook addons" : "Thunderbird ir Outlook priedai", "Custom user agent" : "Tinkintas naudotojo agentas", + "Select a user agent" : "Pasirinkite naudotojo agentą", + "Select groups" : "Pasirinkti grupes", + "Groups" : "Grupės", + "Type to search for group …" : "Rašykite norėdami ieškoti grupės…", "At least one event must be selected" : "Privalo būti pasirinktas bent vienas įvykis", "Add new flow" : "Pridėti naują eigą", + "The configuration is invalid" : "Konfigūracija yra neteisinga", + "Active" : "Aktyvi", + "Save" : "Įrašyti", "When" : "Kada", "and" : "ir", + "Add a new filter" : "Pridėti naują filtrą", "Cancel" : "Atsisakyti", "Delete" : "Ištrinti", - "The configuration is invalid" : "Konfigūracija yra neteisinga", - "Active" : "Aktyvi", - "Save" : "Įrašyti", "Available flows" : "Prieinamos eigos", "For details on how to write your own flow, check out the development documentation." : "Išsamesnę informaciją apie tai, kaip parašyti savo asmeninę eigą, rasite plėtotojo dokumentacijoje.", "More flows" : "Daugiau eigų", @@ -96,7 +100,7 @@ "does not match IPv4" : "neatitinka IPv4", "matches IPv6" : "atitinka IPv6", "does not match IPv6" : "neatitinka IPv6", - "File system tag" : "Failų sistemos žymė", + "File system tag" : "Failų sistemos žyma", "is tagged with" : "pažymėtas", "is not tagged with" : "nepažymėtas", "Request URL" : "Užklausos URL", @@ -104,12 +108,7 @@ "between" : "tarp", "not between" : "nėra tarp", "Request user agent" : "Užklausti naudotojo agentą", - "User group membership" : "Naudotojų grupių narystės", "is member of" : "priklauso grupei", - "is not member of" : "nepriklauso grupei", - "Select a tag" : "Pasirinkite žymę", - "No results" : "Rezultatų nėra", - "%s (invisible)" : "%s (nematomas)", - "%s (restricted)" : "%s (apribotas)" + "is not member of" : "nepriklauso grupei" },"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/lv.js b/apps/workflowengine/l10n/lv.js index 60203dfe864..30577193c0a 100644 --- a/apps/workflowengine/l10n/lv.js +++ b/apps/workflowengine/l10n/lv.js @@ -13,30 +13,39 @@ OC.L10N.register( "The given end time is invalid" : "Norādītais beigu laiks nav derīgs.", "The given group does not exist" : "Norādītā grupa nepastāv.", "File" : "Datne", + "File renamed" : "Datne pārdēvēta", + "%s renamed %s" : "%s pārdēvēja %s", "Operation #%s does not exist" : "Operation #%s does not exist", - "Operation %s does not exist" : "Darbība %s neeksistē", + "Operation %s does not exist" : "Darbība %s nepastāv", "Operation %s is invalid" : "Darbība %s ir nederīga", "Check %s does not exist" : "Pārbaude %s nepastāv", "Check %s is invalid" : "Pārbaude %s ir nederīga", "Check #%s does not exist" : "Pārbaude #%s nepastāv", "Check %s is invalid or does not exist" : "Pārbaude %s ir nederīga vai nepastāv", + "Flow" : "Plūsma", + "Nextcloud workflow engine" : "Nextcloud darbplūsmu dzinis", "Folder" : "Mape", "Images" : "Attēli", - "Predefined URLs" : "Standarta URLs", - "Files WebDAV" : "WebDAV datnes", - "Others" : "Citi", + "Files WebDAV" : "Datņu WebDAV", "Android client" : "Android klients", "iOS client" : "iOS klients", "Desktop client" : "Darbvirsmas klients", - "Cancel" : "Atcelt", - "Delete" : "Dzēst", + "Select groups" : "Izvēlieties grupas", + "Groups" : "Grupas", + "Add new flow" : "Pievienot jaunu plūsmu", "Save" : "Saglabāt", + "Cancel" : "Atcelt", + "Delete" : "Izdzēst", + "Available flows" : "Pieejamās plūsmas", + "No flows installed" : "Nav uzstādītu plūsmu", + "More flows" : "Vairāk plūsmu", + "Show more" : "Parādīt vairāk", "matches" : "atbilst", "does not match" : "neatbilst", "is" : "ir", "is not" : "nav", - "File name" : "Faila nosaukums", - "File MIME type" : "Datnes MIME tips", + "File name" : "Datnes nosaukums", + "File MIME type" : "Datnes MIME veids", "File size (upload)" : "Datnes lielums (augšupielādēt)", "less" : "mazāk", "less or equals" : "mazāks vai vienāds ar", @@ -47,7 +56,7 @@ OC.L10N.register( "does not match IPv4" : "neatbilst IPv4", "matches IPv6" : "atbilst IPv6", "does not match IPv6" : "neatbilst IPv6", - "File system tag" : "Failu sistēmas birka", + "File system tag" : "Datņu sistēmas birka", "is tagged with" : "atzīmēts ar", "is not tagged with" : "nav atzīmēts ar", "Request URL" : "Pieprasījuma URL", @@ -55,11 +64,7 @@ OC.L10N.register( "between" : "starp", "not between" : "nav starp", "Request user agent" : "Nepieciešams lietotāja aģents", - "User group membership" : "Lietotāju grupas piederība", "is member of" : "ir biedrs", - "is not member of" : "nav biedrs", - "No results" : "Nav rezultātu", - "%s (invisible)" : "%s (neredzams)", - "%s (restricted)" : "%s (ierobežots)" + "is not member of" : "nav dalībnieks" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"); diff --git a/apps/workflowengine/l10n/lv.json b/apps/workflowengine/l10n/lv.json index 3e457ce2698..1665558a6fc 100644 --- a/apps/workflowengine/l10n/lv.json +++ b/apps/workflowengine/l10n/lv.json @@ -11,30 +11,39 @@ "The given end time is invalid" : "Norādītais beigu laiks nav derīgs.", "The given group does not exist" : "Norādītā grupa nepastāv.", "File" : "Datne", + "File renamed" : "Datne pārdēvēta", + "%s renamed %s" : "%s pārdēvēja %s", "Operation #%s does not exist" : "Operation #%s does not exist", - "Operation %s does not exist" : "Darbība %s neeksistē", + "Operation %s does not exist" : "Darbība %s nepastāv", "Operation %s is invalid" : "Darbība %s ir nederīga", "Check %s does not exist" : "Pārbaude %s nepastāv", "Check %s is invalid" : "Pārbaude %s ir nederīga", "Check #%s does not exist" : "Pārbaude #%s nepastāv", "Check %s is invalid or does not exist" : "Pārbaude %s ir nederīga vai nepastāv", + "Flow" : "Plūsma", + "Nextcloud workflow engine" : "Nextcloud darbplūsmu dzinis", "Folder" : "Mape", "Images" : "Attēli", - "Predefined URLs" : "Standarta URLs", - "Files WebDAV" : "WebDAV datnes", - "Others" : "Citi", + "Files WebDAV" : "Datņu WebDAV", "Android client" : "Android klients", "iOS client" : "iOS klients", "Desktop client" : "Darbvirsmas klients", - "Cancel" : "Atcelt", - "Delete" : "Dzēst", + "Select groups" : "Izvēlieties grupas", + "Groups" : "Grupas", + "Add new flow" : "Pievienot jaunu plūsmu", "Save" : "Saglabāt", + "Cancel" : "Atcelt", + "Delete" : "Izdzēst", + "Available flows" : "Pieejamās plūsmas", + "No flows installed" : "Nav uzstādītu plūsmu", + "More flows" : "Vairāk plūsmu", + "Show more" : "Parādīt vairāk", "matches" : "atbilst", "does not match" : "neatbilst", "is" : "ir", "is not" : "nav", - "File name" : "Faila nosaukums", - "File MIME type" : "Datnes MIME tips", + "File name" : "Datnes nosaukums", + "File MIME type" : "Datnes MIME veids", "File size (upload)" : "Datnes lielums (augšupielādēt)", "less" : "mazāk", "less or equals" : "mazāks vai vienāds ar", @@ -45,7 +54,7 @@ "does not match IPv4" : "neatbilst IPv4", "matches IPv6" : "atbilst IPv6", "does not match IPv6" : "neatbilst IPv6", - "File system tag" : "Failu sistēmas birka", + "File system tag" : "Datņu sistēmas birka", "is tagged with" : "atzīmēts ar", "is not tagged with" : "nav atzīmēts ar", "Request URL" : "Pieprasījuma URL", @@ -53,11 +62,7 @@ "between" : "starp", "not between" : "nav starp", "Request user agent" : "Nepieciešams lietotāja aģents", - "User group membership" : "Lietotāju grupas piederība", "is member of" : "ir biedrs", - "is not member of" : "nav biedrs", - "No results" : "Nav rezultātu", - "%s (invisible)" : "%s (neredzams)", - "%s (restricted)" : "%s (ierobežots)" + "is not member of" : "nav dalībnieks" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/mk.js b/apps/workflowengine/l10n/mk.js index adb58061ab8..a7f641f0aff 100644 --- a/apps/workflowengine/l10n/mk.js +++ b/apps/workflowengine/l10n/mk.js @@ -38,22 +38,30 @@ OC.L10N.register( "Flow" : "Проток", "Select a filter" : "Изберете филтер", "Select a comparator" : "Изберете компаратор", - "Select a file type" : "Изберете вид на датотека", - "e.g. httpd/unix-directory" : "Пр. httpd/unix-directory", + "Remove filter" : "Острани филтер", "Folder" : "Папка", "Images" : "Слики", "Office documents" : "Office документи", "PDF documents" : "PDF документи", "Custom mimetype" : "Прилагоден тип на датотеки", + "Select a file type" : "Изберете вид на датотека", + "e.g. httpd/unix-directory" : "Пр. httpd/unix-directory", "Please enter a valid time span" : "Внесете валиден времески осег", - "Others" : "Останати", + "Android client" : "Android клиент", + "iOS client" : "iOS клиент", "Desktop client" : "Клиент за компјутер", + "Select groups" : "Одбери групи", + "Groups" : "Групи", + "Select a trigger" : "Избери активатор", + "At least one event must be selected" : "Најмалку едно мора да биде означено", + "Add new flow" : "Додади нов проток", + "Active" : "Активно", + "Save" : "Зачувај", "When" : "Кога", "and" : "и", + "Add a new filter" : "Додади нов филтер", "Cancel" : "Откажи", "Delete" : "Избриши", - "Active" : "Активно", - "Save" : "Зачувај", "Available flows" : "Достапни протоци", "For details on how to write your own flow, check out the development documentation." : "За детали како да пишувате ваши сопствени протоци, посетете ја документацијата за развивачи.", "More flows" : "Повеќе протоци", @@ -73,6 +81,7 @@ OC.L10N.register( "less or equals" : "помалку или еднакво", "greater or equals" : "поголемо или еднакво", "greater" : "поголемо", + "Request remote address" : "Барање од надворешна адреса", "matches IPv4" : "се совпаѓањаат IPv4", "does not match IPv4" : "не се совпаѓаат IPv4", "matches IPv6" : "се совпаѓањаат IPv6", @@ -80,13 +89,12 @@ OC.L10N.register( "File system tag" : "Датотека со системска ознака", "is tagged with" : "е означена со", "is not tagged with" : "не е означена со", + "Request URL" : "Барање URL", + "Request time" : "Време на барање", "between" : "помеѓу", "not between" : "не помеѓу", + "Request user agent" : "Барање од кориснички агент", "is member of" : "е член на", - "is not member of" : "не е член на", - "Select a tag" : "Избери ознака", - "No results" : "Нема резултати", - "%s (invisible)" : "%s (невидливо)", - "%s (restricted)" : "%s (ограничена)" + "is not member of" : "не е член на" }, "nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"); diff --git a/apps/workflowengine/l10n/mk.json b/apps/workflowengine/l10n/mk.json index 70b894b3756..f2ef7213da4 100644 --- a/apps/workflowengine/l10n/mk.json +++ b/apps/workflowengine/l10n/mk.json @@ -36,22 +36,30 @@ "Flow" : "Проток", "Select a filter" : "Изберете филтер", "Select a comparator" : "Изберете компаратор", - "Select a file type" : "Изберете вид на датотека", - "e.g. httpd/unix-directory" : "Пр. httpd/unix-directory", + "Remove filter" : "Острани филтер", "Folder" : "Папка", "Images" : "Слики", "Office documents" : "Office документи", "PDF documents" : "PDF документи", "Custom mimetype" : "Прилагоден тип на датотеки", + "Select a file type" : "Изберете вид на датотека", + "e.g. httpd/unix-directory" : "Пр. httpd/unix-directory", "Please enter a valid time span" : "Внесете валиден времески осег", - "Others" : "Останати", + "Android client" : "Android клиент", + "iOS client" : "iOS клиент", "Desktop client" : "Клиент за компјутер", + "Select groups" : "Одбери групи", + "Groups" : "Групи", + "Select a trigger" : "Избери активатор", + "At least one event must be selected" : "Најмалку едно мора да биде означено", + "Add new flow" : "Додади нов проток", + "Active" : "Активно", + "Save" : "Зачувај", "When" : "Кога", "and" : "и", + "Add a new filter" : "Додади нов филтер", "Cancel" : "Откажи", "Delete" : "Избриши", - "Active" : "Активно", - "Save" : "Зачувај", "Available flows" : "Достапни протоци", "For details on how to write your own flow, check out the development documentation." : "За детали како да пишувате ваши сопствени протоци, посетете ја документацијата за развивачи.", "More flows" : "Повеќе протоци", @@ -71,6 +79,7 @@ "less or equals" : "помалку или еднакво", "greater or equals" : "поголемо или еднакво", "greater" : "поголемо", + "Request remote address" : "Барање од надворешна адреса", "matches IPv4" : "се совпаѓањаат IPv4", "does not match IPv4" : "не се совпаѓаат IPv4", "matches IPv6" : "се совпаѓањаат IPv6", @@ -78,13 +87,12 @@ "File system tag" : "Датотека со системска ознака", "is tagged with" : "е означена со", "is not tagged with" : "не е означена со", + "Request URL" : "Барање URL", + "Request time" : "Време на барање", "between" : "помеѓу", "not between" : "не помеѓу", + "Request user agent" : "Барање од кориснички агент", "is member of" : "е член на", - "is not member of" : "не е член на", - "Select a tag" : "Избери ознака", - "No results" : "Нема резултати", - "%s (invisible)" : "%s (невидливо)", - "%s (restricted)" : "%s (ограничена)" + "is not member of" : "не е член на" },"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/mn.js b/apps/workflowengine/l10n/mn.js deleted file mode 100644 index 75bb0f58126..00000000000 --- a/apps/workflowengine/l10n/mn.js +++ /dev/null @@ -1,70 +0,0 @@ -OC.L10N.register( - "workflowengine", - { - "The given operator is invalid" : "Өгөгдсөн оператор буруу байна", - "The given regular expression is invalid" : "Өгөгдсөн тогтмол илэрхийлэл буруу байна", - "The given file size is invalid" : "Өгөгдсөн файлын хэмжээ буруу байна", - "The given tag id is invalid" : "Өгөгдсөн шошго буруу байна", - "The given IP range is invalid" : "Өгөгдсөн IP хязгаар буруу байна", - "The given IP range is not valid for IPv4" : "Өгөгдсөн IP хүрээ , IPv4-д хүчингүй байна", - "The given IP range is not valid for IPv6" : "Өгөгдсөн IP хүрээ IPv6-д хүчингүй байна", - "The given time span is invalid" : "Өгөгдсөн цаг хугацаа буруу байна", - "The given start time is invalid" : " эхлэх цаг буруу байна", - "The given end time is invalid" : "төгсөглийн хугацаа буруу байна", - "The given group does not exist" : "Өгөгдсөн бүлэг байхгүй байна", - "File" : "File", - "Operation #%s does not exist" : "%s үйл ажиллагаа байхгүй", - "Check %s is invalid or does not exist" : "%sшалгахад хүчингүй эсвэл байхгүй байна", - "Images" : "Зургууд", - "No results" : "Үр дүн байхгүй", - "Predefined URLs" : "Урьдчилан тодорхойлсон URLууд", - "Files WebDAV" : "WebDAV файлууд", - "Android client" : "Android хэрэглэгч", - "iOS client" : "iOS үйлчлүүлэгч", - "Desktop client" : "захиалагчийн дэлгэц", - "Cancel" : "болиулах", - "Delete" : "Устгах", - "Save" : "хадгалах", - "matches" : "тохируулах", - "does not match" : "таарахгүй байна", - "is" : "бол", - "is not" : "биш", - "File MIME type" : "Файлын MIME төрөл", - "File size (upload)" : "файлын хэмжээ (байршуулсан)", - "less" : "бага", - "less or equals" : "Бага буюу тэнцүү", - "greater or equals" : "Их буюу тэнцүү", - "greater" : "илүү их", - "Request remote address" : "алсын хаяг авах хүсэлт", - "matches IPv4" : "IPv4 тохируулах ", - "does not match IPv4" : "IPv4 тохируулагдаагүй байна", - "matches IPv6" : "IPv6 тохируулах ", - "does not match IPv6" : "IPv6 тохируулагдаанүй байна", - "File system tag" : "Файлын системийн хаяг", - "is tagged with" : "Тэмдэглэгдсэн байна", - "is not tagged with" : "тэмдэглэгдээгүй байна", - "Request URL" : "URL-н хүсэлт", - "Request time" : "Хүсэлт гаргах хугацаа", - "between" : "хооронд", - "not between" : "Хооронд биш", - "User group membership" : "хэрэглэгчийн бүлгийн гишүүнчлэл", - "is member of" : "-ын гишүүн ", - "is not member of" : "-ын гишүүн биш", - "Short rule description" : "Дүрмийн тайлбар товч", - "Add rule" : "Дүрэм нэмэх", - "Reset" : "тохируулах", - "Saving…" : "хадгалж байна", - "Saved" : "Хадгалсан", - "Saving failed:" : "Хадгалалт бүтэлгүйтэв:", - "Add rule group" : "Бүлэгт дүрэм нэмэх", - "Example: {placeholder}" : "Жишээ нь: {байрлал}", - "Select tag…" : "хаяг сонгоно уу", - "Start" : "эхлэх", - "End" : "дуусгах", - "Select timezone…" : "Timezone сонго ...", - "Workflow" : "ажлын үйл явц", - "Files workflow engine" : "файлууд нь ажлын үйл явцын хэрэгсэл ", - "Open documentation" : "Нээлттэй баримт бичиг", - "Loading…" : "уншиж байна" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/mn.json b/apps/workflowengine/l10n/mn.json deleted file mode 100644 index 9e5d8e60f10..00000000000 --- a/apps/workflowengine/l10n/mn.json +++ /dev/null @@ -1,68 +0,0 @@ -{ "translations": { - "The given operator is invalid" : "Өгөгдсөн оператор буруу байна", - "The given regular expression is invalid" : "Өгөгдсөн тогтмол илэрхийлэл буруу байна", - "The given file size is invalid" : "Өгөгдсөн файлын хэмжээ буруу байна", - "The given tag id is invalid" : "Өгөгдсөн шошго буруу байна", - "The given IP range is invalid" : "Өгөгдсөн IP хязгаар буруу байна", - "The given IP range is not valid for IPv4" : "Өгөгдсөн IP хүрээ , IPv4-д хүчингүй байна", - "The given IP range is not valid for IPv6" : "Өгөгдсөн IP хүрээ IPv6-д хүчингүй байна", - "The given time span is invalid" : "Өгөгдсөн цаг хугацаа буруу байна", - "The given start time is invalid" : " эхлэх цаг буруу байна", - "The given end time is invalid" : "төгсөглийн хугацаа буруу байна", - "The given group does not exist" : "Өгөгдсөн бүлэг байхгүй байна", - "File" : "File", - "Operation #%s does not exist" : "%s үйл ажиллагаа байхгүй", - "Check %s is invalid or does not exist" : "%sшалгахад хүчингүй эсвэл байхгүй байна", - "Images" : "Зургууд", - "No results" : "Үр дүн байхгүй", - "Predefined URLs" : "Урьдчилан тодорхойлсон URLууд", - "Files WebDAV" : "WebDAV файлууд", - "Android client" : "Android хэрэглэгч", - "iOS client" : "iOS үйлчлүүлэгч", - "Desktop client" : "захиалагчийн дэлгэц", - "Cancel" : "болиулах", - "Delete" : "Устгах", - "Save" : "хадгалах", - "matches" : "тохируулах", - "does not match" : "таарахгүй байна", - "is" : "бол", - "is not" : "биш", - "File MIME type" : "Файлын MIME төрөл", - "File size (upload)" : "файлын хэмжээ (байршуулсан)", - "less" : "бага", - "less or equals" : "Бага буюу тэнцүү", - "greater or equals" : "Их буюу тэнцүү", - "greater" : "илүү их", - "Request remote address" : "алсын хаяг авах хүсэлт", - "matches IPv4" : "IPv4 тохируулах ", - "does not match IPv4" : "IPv4 тохируулагдаагүй байна", - "matches IPv6" : "IPv6 тохируулах ", - "does not match IPv6" : "IPv6 тохируулагдаанүй байна", - "File system tag" : "Файлын системийн хаяг", - "is tagged with" : "Тэмдэглэгдсэн байна", - "is not tagged with" : "тэмдэглэгдээгүй байна", - "Request URL" : "URL-н хүсэлт", - "Request time" : "Хүсэлт гаргах хугацаа", - "between" : "хооронд", - "not between" : "Хооронд биш", - "User group membership" : "хэрэглэгчийн бүлгийн гишүүнчлэл", - "is member of" : "-ын гишүүн ", - "is not member of" : "-ын гишүүн биш", - "Short rule description" : "Дүрмийн тайлбар товч", - "Add rule" : "Дүрэм нэмэх", - "Reset" : "тохируулах", - "Saving…" : "хадгалж байна", - "Saved" : "Хадгалсан", - "Saving failed:" : "Хадгалалт бүтэлгүйтэв:", - "Add rule group" : "Бүлэгт дүрэм нэмэх", - "Example: {placeholder}" : "Жишээ нь: {байрлал}", - "Select tag…" : "хаяг сонгоно уу", - "Start" : "эхлэх", - "End" : "дуусгах", - "Select timezone…" : "Timezone сонго ...", - "Workflow" : "ажлын үйл явц", - "Files workflow engine" : "файлууд нь ажлын үйл явцын хэрэгсэл ", - "Open documentation" : "Нээлттэй баримт бичиг", - "Loading…" : "уншиж байна" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/nb.js b/apps/workflowengine/l10n/nb.js index 07c52e1730f..ceb07f76558 100644 --- a/apps/workflowengine/l10n/nb.js +++ b/apps/workflowengine/l10n/nb.js @@ -36,51 +36,62 @@ OC.L10N.register( "Operation %s does not exist" : "Handlingen %s finnes ikke", "Operation %s is invalid" : "Handlingen %s er ugyldig", "At least one check needs to be provided" : "Minst èn sjekk må gis", + "The provided operation data is too long" : "De oppgitte operasjonsdataene er for lange", "Invalid check provided" : "Ugyldig sjekk gitt", "Check %s does not exist" : "Sjekk %s finnes ikke", "Check %s is invalid" : "Sjekk %s er ugyldig", "Check %s is not allowed with this entity" : "Sjekk %s er ikke tillatt med denne hendelsen", + "The provided check value is too long" : "Den oppgitte sjekkverdien er for lang", "Check #%s does not exist" : "Sjekk #%s finnes ikke", "Check %s is invalid or does not exist" : "Sjekk %s er ugyldig eller finnes ikke", "Flow" : "Flyt", "Nextcloud workflow engine" : "Nextcloud arbeidsflytsmotor", "Select a filter" : "Velg et filter", "Select a comparator" : "Velg en komparator", - "Select a file type" : "Velg filtype", - "e.g. httpd/unix-directory" : "f.eks. httpd/unix-mappe", + "Remove filter" : "Fjern filter", "Folder" : "Mappe", "Images" : "Bilder", "Office documents" : "Office dokumenter", "PDF documents" : "PDF dokumenter", + "Custom MIME type" : "Egendefinert MIME-type", "Custom mimetype" : "Egendefinert MIME-type", + "Select a file type" : "Velg filtype", + "e.g. httpd/unix-directory" : "f.eks. httpd/unix-mappe", "Please enter a valid time span" : "Vennligst skriv inn en gyldig tidsperiode", - "Select a request URL" : "Velg en forespurt URL", - "Predefined URLs" : "Forhåndsdefinerte URLer", "Files WebDAV" : "Filer WebDAV", - "Others" : "Andre", "Custom URL" : "Egendefinert URL", - "Select a user agent" : "Velg en brukeragent", + "Select a request URL" : "Velg en forespurt URL", "Android client" : "Android klient", "iOS client" : "iOS klient", "Desktop client" : "Skrivebordsklient", "Thunderbird & Outlook addons" : "Thunderbird & Outlook tillegg", "Custom user agent" : "Egendefinert brukeragent", + "Select a user agent" : "Velg en brukeragent", + "Select groups" : "Velg grupper", + "Groups" : "Grupper", + "Type to search for group …" : "Skriv for å søke etter gruppe...", + "Select a trigger" : "Velg en utløser", "At least one event must be selected" : "Minst èn hendelse må velges", "Add new flow" : "Legg til ny flyt", + "The configuration is invalid" : "Konfigurasjonen er ugyldig", + "Active" : "Aktiv", + "Save" : "Lagre", "When" : "Når", "and" : "og", + "Add a new filter" : "Legg til nytt filter", "Cancel" : "Avbryt", "Delete" : "Slett", - "The configuration is invalid" : "Konfigurasjonen er ugyldig", - "Active" : "Aktiv", - "Save" : "Lagre", "Available flows" : "Tilgjengelige flyt", "For details on how to write your own flow, check out the development documentation." : "For informasjon om hvordan du skriver din egen flyt, sjekk ut utviklingsdokumentasjonen.", + "No flows installed" : "Ingen flyter installert", + "Ask your administrator to install new flows." : "Be administratoren om å installere nye flyter.", "More flows" : "Flere flyt", + "Browse the App Store" : "Utforsk appbutikken", "Show less" : "Vis mindre", "Show more" : "Vis mer", "Configured flows" : "Konfigurerte flyt", "Your flows" : "Dine flyt", + "No flows configured" : "Ingen flyter konfigurert", "matches" : "passer", "does not match" : "passer ikke", "is" : "er", @@ -105,12 +116,8 @@ OC.L10N.register( "between" : "mellom", "not between" : "ikke mellom", "Request user agent" : "Ønsket brukeragent", - "User group membership" : "Brukerens gruppemedlemsskap", + "Group membership" : "Gruppemedlemskap", "is member of" : "er medlem av", - "is not member of" : "er ikke medlem av", - "Select a tag" : "Velg en etikett", - "No results" : "Ingen resultater", - "%s (invisible)" : "%s (usynlig)", - "%s (restricted)" : "%s (begrenset)" + "is not member of" : "er ikke medlem av" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/nb.json b/apps/workflowengine/l10n/nb.json index da8e25956d3..dc5df0cb967 100644 --- a/apps/workflowengine/l10n/nb.json +++ b/apps/workflowengine/l10n/nb.json @@ -34,51 +34,62 @@ "Operation %s does not exist" : "Handlingen %s finnes ikke", "Operation %s is invalid" : "Handlingen %s er ugyldig", "At least one check needs to be provided" : "Minst èn sjekk må gis", + "The provided operation data is too long" : "De oppgitte operasjonsdataene er for lange", "Invalid check provided" : "Ugyldig sjekk gitt", "Check %s does not exist" : "Sjekk %s finnes ikke", "Check %s is invalid" : "Sjekk %s er ugyldig", "Check %s is not allowed with this entity" : "Sjekk %s er ikke tillatt med denne hendelsen", + "The provided check value is too long" : "Den oppgitte sjekkverdien er for lang", "Check #%s does not exist" : "Sjekk #%s finnes ikke", "Check %s is invalid or does not exist" : "Sjekk %s er ugyldig eller finnes ikke", "Flow" : "Flyt", "Nextcloud workflow engine" : "Nextcloud arbeidsflytsmotor", "Select a filter" : "Velg et filter", "Select a comparator" : "Velg en komparator", - "Select a file type" : "Velg filtype", - "e.g. httpd/unix-directory" : "f.eks. httpd/unix-mappe", + "Remove filter" : "Fjern filter", "Folder" : "Mappe", "Images" : "Bilder", "Office documents" : "Office dokumenter", "PDF documents" : "PDF dokumenter", + "Custom MIME type" : "Egendefinert MIME-type", "Custom mimetype" : "Egendefinert MIME-type", + "Select a file type" : "Velg filtype", + "e.g. httpd/unix-directory" : "f.eks. httpd/unix-mappe", "Please enter a valid time span" : "Vennligst skriv inn en gyldig tidsperiode", - "Select a request URL" : "Velg en forespurt URL", - "Predefined URLs" : "Forhåndsdefinerte URLer", "Files WebDAV" : "Filer WebDAV", - "Others" : "Andre", "Custom URL" : "Egendefinert URL", - "Select a user agent" : "Velg en brukeragent", + "Select a request URL" : "Velg en forespurt URL", "Android client" : "Android klient", "iOS client" : "iOS klient", "Desktop client" : "Skrivebordsklient", "Thunderbird & Outlook addons" : "Thunderbird & Outlook tillegg", "Custom user agent" : "Egendefinert brukeragent", + "Select a user agent" : "Velg en brukeragent", + "Select groups" : "Velg grupper", + "Groups" : "Grupper", + "Type to search for group …" : "Skriv for å søke etter gruppe...", + "Select a trigger" : "Velg en utløser", "At least one event must be selected" : "Minst èn hendelse må velges", "Add new flow" : "Legg til ny flyt", + "The configuration is invalid" : "Konfigurasjonen er ugyldig", + "Active" : "Aktiv", + "Save" : "Lagre", "When" : "Når", "and" : "og", + "Add a new filter" : "Legg til nytt filter", "Cancel" : "Avbryt", "Delete" : "Slett", - "The configuration is invalid" : "Konfigurasjonen er ugyldig", - "Active" : "Aktiv", - "Save" : "Lagre", "Available flows" : "Tilgjengelige flyt", "For details on how to write your own flow, check out the development documentation." : "For informasjon om hvordan du skriver din egen flyt, sjekk ut utviklingsdokumentasjonen.", + "No flows installed" : "Ingen flyter installert", + "Ask your administrator to install new flows." : "Be administratoren om å installere nye flyter.", "More flows" : "Flere flyt", + "Browse the App Store" : "Utforsk appbutikken", "Show less" : "Vis mindre", "Show more" : "Vis mer", "Configured flows" : "Konfigurerte flyt", "Your flows" : "Dine flyt", + "No flows configured" : "Ingen flyter konfigurert", "matches" : "passer", "does not match" : "passer ikke", "is" : "er", @@ -103,12 +114,8 @@ "between" : "mellom", "not between" : "ikke mellom", "Request user agent" : "Ønsket brukeragent", - "User group membership" : "Brukerens gruppemedlemsskap", + "Group membership" : "Gruppemedlemskap", "is member of" : "er medlem av", - "is not member of" : "er ikke medlem av", - "Select a tag" : "Velg en etikett", - "No results" : "Ingen resultater", - "%s (invisible)" : "%s (usynlig)", - "%s (restricted)" : "%s (begrenset)" + "is not member of" : "er ikke medlem av" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/nl.js b/apps/workflowengine/l10n/nl.js index d978ef9721c..a86b92ea72c 100644 --- a/apps/workflowengine/l10n/nl.js +++ b/apps/workflowengine/l10n/nl.js @@ -31,7 +31,7 @@ OC.L10N.register( "Operation #%s does not exist" : "Bewerking #%s bestaat niet", "Entity %s does not exist" : "Entiteit %s bestaat niet", "Entity %s is invalid" : "Entiteit %s is ongeldig", - "No events are chosen." : "Nog geen afspraken gekozen.", + "No events are chosen." : "Nog geen gebeurtenissen gekozen.", "Entity %s has no event %s" : "Entiteit %s heeft geen gebeurtenis %s", "Operation %s does not exist" : "Bewerking %s bestaat niet", "Operation %s is invalid" : "Bewerking %s is ongeldig", @@ -48,42 +48,50 @@ OC.L10N.register( "Nextcloud workflow engine" : "Nextcloud workflow engine", "Select a filter" : "Selecteer een filter", "Select a comparator" : "Selecteer een comparator", - "Select a file type" : "Selecteer een bestandstype", - "e.g. httpd/unix-directory" : "bijv. httpd/unix-directory", + "Remove filter" : "Verwijder filter", "Folder" : "Map", "Images" : "Afbeeldingen", "Office documents" : "Office documenten", "PDF documents" : "PDF documenten", + "Custom MIME type" : "Maatwerk mimetype", "Custom mimetype" : "Maatwerk mimetype", + "Select a file type" : "Selecteer een bestandstype", + "e.g. httpd/unix-directory" : "bijv. httpd/unix-directory", "Please enter a valid time span" : "Geef een geldige tijdsinterval op", - "Select a request URL" : "Selecteer een aanvraag URL", - "Predefined URLs" : "Voorgedefinieerde URL's", "Files WebDAV" : "Bestanden WebDAV", - "Others" : "Anderen", "Custom URL" : "Maatwerk URL", - "Select a user agent" : "Selecteer een 'user agent'", + "Select a request URL" : "Selecteer een aanvraag URL", "Android client" : "Android client", "iOS client" : "iOS client", "Desktop client" : "Desktop client", "Thunderbird & Outlook addons" : "Thunderbird & Outlook addons", "Custom user agent" : "Aangepaste 'user agent'", - "At least one event must be selected" : "Er moet minimaal één afspraak worden geselecteerd", + "Select a user agent" : "Selecteer een 'user agent'", + "Select groups" : "Selecteer groepen", + "Groups" : "Groepen", + "Type to search for group …" : "Type om groep te zoeken …", + "Select a trigger" : "Selecteer een trigger", + "At least one event must be selected" : "Er moet minimaal één gebeurtenis worden geselecteerd", "Add new flow" : "Nieuwe flow toevoegen", + "The configuration is invalid" : "De configuratie is ongeldig", + "Active" : "Actief", + "Save" : "Opslaan", "When" : "Wanneer", "and" : "en", + "Add a new filter" : "Nieuw filter toevoegen", "Cancel" : "Annuleren", "Delete" : "Verwijderen", - "The configuration is invalid" : "De configuratie is ongeldig", - "Active" : "Actief", - "Save" : "Opslaan", "Available flows" : "Beschikbare flows", "For details on how to write your own flow, check out the development documentation." : "Raadpleeg de ontwikkeldocumentatie voor meer informatie over het ontwikkelen van je eigen flow.", + "No flows installed" : "Geen flows geïnstalleerd", + "Ask your administrator to install new flows." : "Vraag de beheerder om nieuwe flows te installeren.", "More flows" : "Meer flows", "Browse the App Store" : "Blader door de App Store", "Show less" : "Toon minder", "Show more" : "Toon meer", "Configured flows" : "Geconfigureerde flows", "Your flows" : "Jouw flows", + "No flows configured" : "Geen flows geconfigureerd", "matches" : "komt overeen", "does not match" : "komt niet overeen", "is" : "is", @@ -108,12 +116,8 @@ OC.L10N.register( "between" : "tussen", "not between" : "niet tussen", "Request user agent" : "Useragent aanvraag", - "User group membership" : "Gebruikersgroep lidmaatschap", + "Group membership" : "Groepslidmaatschap", "is member of" : "is lid van", - "is not member of" : "is geen lid van", - "Select a tag" : "Selecteer een markering", - "No results" : "Geen resultaten", - "%s (invisible)" : "%s (onzichtbaar)", - "%s (restricted)" : "%s (beperkt)" + "is not member of" : "is geen lid van" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/nl.json b/apps/workflowengine/l10n/nl.json index 9cc78c6d76d..d2679c172d3 100644 --- a/apps/workflowengine/l10n/nl.json +++ b/apps/workflowengine/l10n/nl.json @@ -29,7 +29,7 @@ "Operation #%s does not exist" : "Bewerking #%s bestaat niet", "Entity %s does not exist" : "Entiteit %s bestaat niet", "Entity %s is invalid" : "Entiteit %s is ongeldig", - "No events are chosen." : "Nog geen afspraken gekozen.", + "No events are chosen." : "Nog geen gebeurtenissen gekozen.", "Entity %s has no event %s" : "Entiteit %s heeft geen gebeurtenis %s", "Operation %s does not exist" : "Bewerking %s bestaat niet", "Operation %s is invalid" : "Bewerking %s is ongeldig", @@ -46,42 +46,50 @@ "Nextcloud workflow engine" : "Nextcloud workflow engine", "Select a filter" : "Selecteer een filter", "Select a comparator" : "Selecteer een comparator", - "Select a file type" : "Selecteer een bestandstype", - "e.g. httpd/unix-directory" : "bijv. httpd/unix-directory", + "Remove filter" : "Verwijder filter", "Folder" : "Map", "Images" : "Afbeeldingen", "Office documents" : "Office documenten", "PDF documents" : "PDF documenten", + "Custom MIME type" : "Maatwerk mimetype", "Custom mimetype" : "Maatwerk mimetype", + "Select a file type" : "Selecteer een bestandstype", + "e.g. httpd/unix-directory" : "bijv. httpd/unix-directory", "Please enter a valid time span" : "Geef een geldige tijdsinterval op", - "Select a request URL" : "Selecteer een aanvraag URL", - "Predefined URLs" : "Voorgedefinieerde URL's", "Files WebDAV" : "Bestanden WebDAV", - "Others" : "Anderen", "Custom URL" : "Maatwerk URL", - "Select a user agent" : "Selecteer een 'user agent'", + "Select a request URL" : "Selecteer een aanvraag URL", "Android client" : "Android client", "iOS client" : "iOS client", "Desktop client" : "Desktop client", "Thunderbird & Outlook addons" : "Thunderbird & Outlook addons", "Custom user agent" : "Aangepaste 'user agent'", - "At least one event must be selected" : "Er moet minimaal één afspraak worden geselecteerd", + "Select a user agent" : "Selecteer een 'user agent'", + "Select groups" : "Selecteer groepen", + "Groups" : "Groepen", + "Type to search for group …" : "Type om groep te zoeken …", + "Select a trigger" : "Selecteer een trigger", + "At least one event must be selected" : "Er moet minimaal één gebeurtenis worden geselecteerd", "Add new flow" : "Nieuwe flow toevoegen", + "The configuration is invalid" : "De configuratie is ongeldig", + "Active" : "Actief", + "Save" : "Opslaan", "When" : "Wanneer", "and" : "en", + "Add a new filter" : "Nieuw filter toevoegen", "Cancel" : "Annuleren", "Delete" : "Verwijderen", - "The configuration is invalid" : "De configuratie is ongeldig", - "Active" : "Actief", - "Save" : "Opslaan", "Available flows" : "Beschikbare flows", "For details on how to write your own flow, check out the development documentation." : "Raadpleeg de ontwikkeldocumentatie voor meer informatie over het ontwikkelen van je eigen flow.", + "No flows installed" : "Geen flows geïnstalleerd", + "Ask your administrator to install new flows." : "Vraag de beheerder om nieuwe flows te installeren.", "More flows" : "Meer flows", "Browse the App Store" : "Blader door de App Store", "Show less" : "Toon minder", "Show more" : "Toon meer", "Configured flows" : "Geconfigureerde flows", "Your flows" : "Jouw flows", + "No flows configured" : "Geen flows geconfigureerd", "matches" : "komt overeen", "does not match" : "komt niet overeen", "is" : "is", @@ -106,12 +114,8 @@ "between" : "tussen", "not between" : "niet tussen", "Request user agent" : "Useragent aanvraag", - "User group membership" : "Gebruikersgroep lidmaatschap", + "Group membership" : "Groepslidmaatschap", "is member of" : "is lid van", - "is not member of" : "is geen lid van", - "Select a tag" : "Selecteer een markering", - "No results" : "Geen resultaten", - "%s (invisible)" : "%s (onzichtbaar)", - "%s (restricted)" : "%s (beperkt)" + "is not member of" : "is geen lid van" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/pl.js b/apps/workflowengine/l10n/pl.js index 31380f5cd40..63f1f8d2382 100644 --- a/apps/workflowengine/l10n/pl.js +++ b/apps/workflowengine/l10n/pl.js @@ -48,35 +48,36 @@ OC.L10N.register( "Nextcloud workflow engine" : "Silnik przepływu pracy Nextcloud", "Select a filter" : "Wybierz filtr", "Select a comparator" : "Wybierz komparator", - "Select a file type" : "Wybierz typ pliku", - "e.g. httpd/unix-directory" : "np. httpd/unix-directory", + "Remove filter" : "Usuń filtr", "Folder" : "Katalog", "Images" : "Obrazy", "Office documents" : "Dokumenty biurowe", "PDF documents" : "Dokumenty PDF", "Custom MIME type" : "Niestandardowy typ MIME", "Custom mimetype" : "Niestandardowy typ MIME", + "Select a file type" : "Wybierz typ pliku", + "e.g. httpd/unix-directory" : "np. httpd/unix-directory", "Please enter a valid time span" : "Podaj prawidłowy przedział czasu", - "Select a request URL" : "Wybierz adres URL żądania", - "Predefined URLs" : "Przedefiniowanie URLs", "Files WebDAV" : "Pliki WebDAV", - "Others" : "Inne", "Custom URL" : "Niestandardowy adres URL", - "Select a user agent" : "Wybierz klienta użytkownika", + "Select a request URL" : "Wybierz adres URL żądania", "Android client" : "Klient Android", "iOS client" : "Klient iOS", "Desktop client" : "Klient na komputer", "Thunderbird & Outlook addons" : "Dodatki Thunderbird i Outlook", "Custom user agent" : "Niestandardowy klient użytkownika", + "Select a user agent" : "Wybierz klienta użytkownika", + "Select groups" : "Wybierz grupy", + "Groups" : "Grupy", "At least one event must be selected" : "Należy wybrać co najmniej jedno wydarzenie", "Add new flow" : "Dodaj nowy przepływ", + "The configuration is invalid" : "Konfiguracja jest nieprawidłowa", + "Active" : "Aktywne", + "Save" : "Zapisz", "When" : "Kiedy", "and" : "i", "Cancel" : "Anuluj", "Delete" : "Usuń", - "The configuration is invalid" : "Konfiguracja jest nieprawidłowa", - "Active" : "Aktywne", - "Save" : "Zapisz", "Available flows" : "Dostępne przepływy", "For details on how to write your own flow, check out the development documentation." : "Aby uzyskać szczegółowe informacje na temat pisania własnego przepływu, zapoznaj się z dokumentacją programistyczną.", "More flows" : "Więcej przepływów", @@ -109,12 +110,7 @@ OC.L10N.register( "between" : "pomiędzy", "not between" : "nie pomiędzy", "Request user agent" : "Żądanie agenta użytkownika", - "User group membership" : "Członkostwo grupy użytkownika", "is member of" : "jest członkiem w", - "is not member of" : "nie jest członkiem w", - "Select a tag" : "Wybierz etykietę", - "No results" : "Brak wyników", - "%s (invisible)" : "%s (niewidoczny)", - "%s (restricted)" : "%s (ograniczony)" + "is not member of" : "nie jest członkiem w" }, "nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"); diff --git a/apps/workflowengine/l10n/pl.json b/apps/workflowengine/l10n/pl.json index cb688ab834e..4cd8a74eae6 100644 --- a/apps/workflowengine/l10n/pl.json +++ b/apps/workflowengine/l10n/pl.json @@ -46,35 +46,36 @@ "Nextcloud workflow engine" : "Silnik przepływu pracy Nextcloud", "Select a filter" : "Wybierz filtr", "Select a comparator" : "Wybierz komparator", - "Select a file type" : "Wybierz typ pliku", - "e.g. httpd/unix-directory" : "np. httpd/unix-directory", + "Remove filter" : "Usuń filtr", "Folder" : "Katalog", "Images" : "Obrazy", "Office documents" : "Dokumenty biurowe", "PDF documents" : "Dokumenty PDF", "Custom MIME type" : "Niestandardowy typ MIME", "Custom mimetype" : "Niestandardowy typ MIME", + "Select a file type" : "Wybierz typ pliku", + "e.g. httpd/unix-directory" : "np. httpd/unix-directory", "Please enter a valid time span" : "Podaj prawidłowy przedział czasu", - "Select a request URL" : "Wybierz adres URL żądania", - "Predefined URLs" : "Przedefiniowanie URLs", "Files WebDAV" : "Pliki WebDAV", - "Others" : "Inne", "Custom URL" : "Niestandardowy adres URL", - "Select a user agent" : "Wybierz klienta użytkownika", + "Select a request URL" : "Wybierz adres URL żądania", "Android client" : "Klient Android", "iOS client" : "Klient iOS", "Desktop client" : "Klient na komputer", "Thunderbird & Outlook addons" : "Dodatki Thunderbird i Outlook", "Custom user agent" : "Niestandardowy klient użytkownika", + "Select a user agent" : "Wybierz klienta użytkownika", + "Select groups" : "Wybierz grupy", + "Groups" : "Grupy", "At least one event must be selected" : "Należy wybrać co najmniej jedno wydarzenie", "Add new flow" : "Dodaj nowy przepływ", + "The configuration is invalid" : "Konfiguracja jest nieprawidłowa", + "Active" : "Aktywne", + "Save" : "Zapisz", "When" : "Kiedy", "and" : "i", "Cancel" : "Anuluj", "Delete" : "Usuń", - "The configuration is invalid" : "Konfiguracja jest nieprawidłowa", - "Active" : "Aktywne", - "Save" : "Zapisz", "Available flows" : "Dostępne przepływy", "For details on how to write your own flow, check out the development documentation." : "Aby uzyskać szczegółowe informacje na temat pisania własnego przepływu, zapoznaj się z dokumentacją programistyczną.", "More flows" : "Więcej przepływów", @@ -107,12 +108,7 @@ "between" : "pomiędzy", "not between" : "nie pomiędzy", "Request user agent" : "Żądanie agenta użytkownika", - "User group membership" : "Członkostwo grupy użytkownika", "is member of" : "jest członkiem w", - "is not member of" : "nie jest członkiem w", - "Select a tag" : "Wybierz etykietę", - "No results" : "Brak wyników", - "%s (invisible)" : "%s (niewidoczny)", - "%s (restricted)" : "%s (ograniczony)" + "is not member of" : "nie jest członkiem w" },"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/pt_BR.js b/apps/workflowengine/l10n/pt_BR.js index 8ba41659e60..8d40914252d 100644 --- a/apps/workflowengine/l10n/pt_BR.js +++ b/apps/workflowengine/l10n/pt_BR.js @@ -48,59 +48,66 @@ OC.L10N.register( "Nextcloud workflow engine" : "Mecanismo de fluxo de trabalho Nextcloud", "Select a filter" : "Selecionar um filtro", "Select a comparator" : "Selecionar um comparador", - "Select a file type" : "Selecionar um tipo de arquivo", - "e.g. httpd/unix-directory" : "por ex. httpd/unix-directory", + "Remove filter" : "Remover filtro", "Folder" : "Pasta", "Images" : "Imagens", "Office documents" : "Documentos Office", "PDF documents" : "Documentos PDF", "Custom MIME type" : "Tipo MIME personalizado", "Custom mimetype" : "Mimetype personalizado", + "Select a file type" : "Selecionar um tipo de arquivo", + "e.g. httpd/unix-directory" : "por ex. httpd/unix-directory", "Please enter a valid time span" : "Digite um período de tempo válido", - "Select a request URL" : "Selecione uma URL de solicitação", - "Predefined URLs" : "URLs predefinidas", "Files WebDAV" : "Arquivos WebDAV", - "Others" : "Outros", "Custom URL" : "URL personalizada", - "Select a user agent" : "Selecione um agente de usuário", + "Select a request URL" : "Selecione uma URL de solicitação", "Android client" : "Cliente Android", "iOS client" : "Cliente iOS", "Desktop client" : "Cliente de Desktop", "Thunderbird & Outlook addons" : "Extensões para Thunderbird & Outlook", "Custom user agent" : "Agente do usuário personalizado", + "Select a user agent" : "Selecione um agente de usuário", + "Select groups" : "Selecione grupos", + "Groups" : "Grupos", + "Type to search for group …" : "Digite para pesquisar um grupo …", + "Select a trigger" : "Selecione um gatilho", "At least one event must be selected" : "É necessário selecionar ao menos um evento", "Add new flow" : "Adicionar novo fluxo", + "The configuration is invalid" : "A configuração é inválida", + "Active" : "Ativo", + "Save" : "Salvar", "When" : "Quando", "and" : "e", + "Add a new filter" : "Adicionar um novo filtro", "Cancel" : "Cancelar", "Delete" : "Excluir", - "The configuration is invalid" : "A configuração é inválida", - "Active" : "Ativo", - "Save" : "Salvar", "Available flows" : "Fluxos disponíveis", "For details on how to write your own flow, check out the development documentation." : "Para detalhes sobre como escrever seu próprio fluxo, consulte a documentação de desenvolvimento.", + "No flows installed" : "Nenhum fluxo instalado", + "Ask your administrator to install new flows." : "Peça ao seu administrador para instalar novos fluxos.", "More flows" : "Mais fluxos", - "Browse the App Store" : "Navegar pela loja de aplicativos", + "Browse the App Store" : "Navegar pela Loja de Aplicativos", "Show less" : "Mostrar menos", "Show more" : "Mostrar mais", "Configured flows" : "Fluxos configurados", "Your flows" : "Seus fluxos", - "matches" : "coincide", + "No flows configured" : "Nenhum fluxo configurado", + "matches" : "corresponde", "does not match" : "não coincide", "is" : "é", "is not" : "não é", "File name" : "Nome do arquivo", "File MIME type" : "Tipo de arquivo MIME", - "File size (upload)" : "Tamanho do arquivo (envio)", + "File size (upload)" : "Tamanho do arquivo (upload)", "less" : "menor que", "less or equals" : "menor ou igual a", "greater or equals" : "maior ou igual a", "greater" : "maior que", "Request remote address" : "Endereço da requisição", - "matches IPv4" : "IPv4 coincide", - "does not match IPv4" : "IPV4 não coincide", - "matches IPv6" : "IPV6 coincide", - "does not match IPv6" : "IPV6 não coincide", + "matches IPv4" : "corresponde a IPv4", + "does not match IPv4" : "não corresponde a IPv4", + "matches IPv6" : "corresponde a IPv6", + "does not match IPv6" : "não corresponde a IPv6", "File system tag" : "Etiqueta do sistema de arquivos", "is tagged with" : "está etiquetado com", "is not tagged with" : "não está etiquetado com", @@ -109,12 +116,8 @@ OC.L10N.register( "between" : "entre", "not between" : "não entre", "Request user agent" : "Agente de usuário da requisição", - "User group membership" : "Usuário em grupo", + "Group membership" : "Associação ao grupo", "is member of" : "é membro de", - "is not member of" : "não é membro de", - "Select a tag" : "Selecione uma etiqueta", - "No results" : "Nenhum resultado", - "%s (invisible)" : "%s (invisível)", - "%s (restricted)" : "%s (restrito)" + "is not member of" : "não é membro de" }, "nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/pt_BR.json b/apps/workflowengine/l10n/pt_BR.json index 8c7859b2a66..2cbde62dc24 100644 --- a/apps/workflowengine/l10n/pt_BR.json +++ b/apps/workflowengine/l10n/pt_BR.json @@ -46,59 +46,66 @@ "Nextcloud workflow engine" : "Mecanismo de fluxo de trabalho Nextcloud", "Select a filter" : "Selecionar um filtro", "Select a comparator" : "Selecionar um comparador", - "Select a file type" : "Selecionar um tipo de arquivo", - "e.g. httpd/unix-directory" : "por ex. httpd/unix-directory", + "Remove filter" : "Remover filtro", "Folder" : "Pasta", "Images" : "Imagens", "Office documents" : "Documentos Office", "PDF documents" : "Documentos PDF", "Custom MIME type" : "Tipo MIME personalizado", "Custom mimetype" : "Mimetype personalizado", + "Select a file type" : "Selecionar um tipo de arquivo", + "e.g. httpd/unix-directory" : "por ex. httpd/unix-directory", "Please enter a valid time span" : "Digite um período de tempo válido", - "Select a request URL" : "Selecione uma URL de solicitação", - "Predefined URLs" : "URLs predefinidas", "Files WebDAV" : "Arquivos WebDAV", - "Others" : "Outros", "Custom URL" : "URL personalizada", - "Select a user agent" : "Selecione um agente de usuário", + "Select a request URL" : "Selecione uma URL de solicitação", "Android client" : "Cliente Android", "iOS client" : "Cliente iOS", "Desktop client" : "Cliente de Desktop", "Thunderbird & Outlook addons" : "Extensões para Thunderbird & Outlook", "Custom user agent" : "Agente do usuário personalizado", + "Select a user agent" : "Selecione um agente de usuário", + "Select groups" : "Selecione grupos", + "Groups" : "Grupos", + "Type to search for group …" : "Digite para pesquisar um grupo …", + "Select a trigger" : "Selecione um gatilho", "At least one event must be selected" : "É necessário selecionar ao menos um evento", "Add new flow" : "Adicionar novo fluxo", + "The configuration is invalid" : "A configuração é inválida", + "Active" : "Ativo", + "Save" : "Salvar", "When" : "Quando", "and" : "e", + "Add a new filter" : "Adicionar um novo filtro", "Cancel" : "Cancelar", "Delete" : "Excluir", - "The configuration is invalid" : "A configuração é inválida", - "Active" : "Ativo", - "Save" : "Salvar", "Available flows" : "Fluxos disponíveis", "For details on how to write your own flow, check out the development documentation." : "Para detalhes sobre como escrever seu próprio fluxo, consulte a documentação de desenvolvimento.", + "No flows installed" : "Nenhum fluxo instalado", + "Ask your administrator to install new flows." : "Peça ao seu administrador para instalar novos fluxos.", "More flows" : "Mais fluxos", - "Browse the App Store" : "Navegar pela loja de aplicativos", + "Browse the App Store" : "Navegar pela Loja de Aplicativos", "Show less" : "Mostrar menos", "Show more" : "Mostrar mais", "Configured flows" : "Fluxos configurados", "Your flows" : "Seus fluxos", - "matches" : "coincide", + "No flows configured" : "Nenhum fluxo configurado", + "matches" : "corresponde", "does not match" : "não coincide", "is" : "é", "is not" : "não é", "File name" : "Nome do arquivo", "File MIME type" : "Tipo de arquivo MIME", - "File size (upload)" : "Tamanho do arquivo (envio)", + "File size (upload)" : "Tamanho do arquivo (upload)", "less" : "menor que", "less or equals" : "menor ou igual a", "greater or equals" : "maior ou igual a", "greater" : "maior que", "Request remote address" : "Endereço da requisição", - "matches IPv4" : "IPv4 coincide", - "does not match IPv4" : "IPV4 não coincide", - "matches IPv6" : "IPV6 coincide", - "does not match IPv6" : "IPV6 não coincide", + "matches IPv4" : "corresponde a IPv4", + "does not match IPv4" : "não corresponde a IPv4", + "matches IPv6" : "corresponde a IPv6", + "does not match IPv6" : "não corresponde a IPv6", "File system tag" : "Etiqueta do sistema de arquivos", "is tagged with" : "está etiquetado com", "is not tagged with" : "não está etiquetado com", @@ -107,12 +114,8 @@ "between" : "entre", "not between" : "não entre", "Request user agent" : "Agente de usuário da requisição", - "User group membership" : "Usuário em grupo", + "Group membership" : "Associação ao grupo", "is member of" : "é membro de", - "is not member of" : "não é membro de", - "Select a tag" : "Selecione uma etiqueta", - "No results" : "Nenhum resultado", - "%s (invisible)" : "%s (invisível)", - "%s (restricted)" : "%s (restrito)" + "is not member of" : "não é membro de" },"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/pt_PT.js b/apps/workflowengine/l10n/pt_PT.js index 31f3a639b86..24aa45be975 100644 --- a/apps/workflowengine/l10n/pt_PT.js +++ b/apps/workflowengine/l10n/pt_PT.js @@ -33,22 +33,29 @@ OC.L10N.register( "Entity %s is invalid" : "Entidade %s é inválida", "No events are chosen." : "Não são escolhidos eventos.", "Entity %s has no event %s" : "Entidade %s não tem evento %s", + "Operation %s is invalid" : "Operação %s é inválida", + "Check %s does not exist" : "Validação %s não existe", + "Check %s is invalid" : "Validação %s é inválida", "Check %s is invalid or does not exist" : "Verifique%sé inválido ou não existe", "Flow" : "Fluxo", "Nextcloud workflow engine" : "Motor de fluxo de trabalho da Nextcloud", "Select a filter" : "Selecionar um filtro", "Select a comparator" : "Selecionar um comparador", + "Remove filter" : "Remover filtro", "Folder" : "Pasta", "Images" : "Imagens", - "Predefined URLs" : "URLs Predefinidos", "Files WebDAV" : "Ficheiros WebDAV", "Android client" : "Cliente de Android", "iOS client" : "Cliente de iOS", "Desktop client" : "Cliente de PC", "Thunderbird & Outlook addons" : "Extras do Thunderbird & Outlook", + "Select groups" : "Selecionar grupos", + "Groups" : "Grupos", + "Save" : "Guardar", + "and" : "e", "Cancel" : "Cancelar", "Delete" : "Apagar", - "Save" : "Guardar", + "Show less" : "Mostrar menos", "matches" : "corresponde", "does not match" : "não corresponde", "is" : "é", @@ -74,9 +81,6 @@ OC.L10N.register( "not between" : "fora de", "Request user agent" : "Solicitar agente de utilizador", "is member of" : "é membro de", - "is not member of" : "não é um membro de", - "No results" : "Sem resultados", - "%s (invisible)" : "%s (invisível)", - "%s (restricted)" : "%s (limitado)" + "is not member of" : "não é um membro de" }, "nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"); diff --git a/apps/workflowengine/l10n/pt_PT.json b/apps/workflowengine/l10n/pt_PT.json index fff173f217a..5cec10df737 100644 --- a/apps/workflowengine/l10n/pt_PT.json +++ b/apps/workflowengine/l10n/pt_PT.json @@ -31,22 +31,29 @@ "Entity %s is invalid" : "Entidade %s é inválida", "No events are chosen." : "Não são escolhidos eventos.", "Entity %s has no event %s" : "Entidade %s não tem evento %s", + "Operation %s is invalid" : "Operação %s é inválida", + "Check %s does not exist" : "Validação %s não existe", + "Check %s is invalid" : "Validação %s é inválida", "Check %s is invalid or does not exist" : "Verifique%sé inválido ou não existe", "Flow" : "Fluxo", "Nextcloud workflow engine" : "Motor de fluxo de trabalho da Nextcloud", "Select a filter" : "Selecionar um filtro", "Select a comparator" : "Selecionar um comparador", + "Remove filter" : "Remover filtro", "Folder" : "Pasta", "Images" : "Imagens", - "Predefined URLs" : "URLs Predefinidos", "Files WebDAV" : "Ficheiros WebDAV", "Android client" : "Cliente de Android", "iOS client" : "Cliente de iOS", "Desktop client" : "Cliente de PC", "Thunderbird & Outlook addons" : "Extras do Thunderbird & Outlook", + "Select groups" : "Selecionar grupos", + "Groups" : "Grupos", + "Save" : "Guardar", + "and" : "e", "Cancel" : "Cancelar", "Delete" : "Apagar", - "Save" : "Guardar", + "Show less" : "Mostrar menos", "matches" : "corresponde", "does not match" : "não corresponde", "is" : "é", @@ -72,9 +79,6 @@ "not between" : "fora de", "Request user agent" : "Solicitar agente de utilizador", "is member of" : "é membro de", - "is not member of" : "não é um membro de", - "No results" : "Sem resultados", - "%s (invisible)" : "%s (invisível)", - "%s (restricted)" : "%s (limitado)" + "is not member of" : "não é um membro de" },"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/ru.js b/apps/workflowengine/l10n/ru.js index b17ad3904be..6d24bbea78e 100644 --- a/apps/workflowengine/l10n/ru.js +++ b/apps/workflowengine/l10n/ru.js @@ -48,43 +48,50 @@ OC.L10N.register( "Nextcloud workflow engine" : "Механизм обработки Nextcloud", "Select a filter" : "Выберите фильтр", "Select a comparator" : "Выберите компаратор", - "Select a file type" : "Выберите тип файла", - "e.g. httpd/unix-directory" : "например, каталог httpd/unix", + "Remove filter" : "Удалить фильтр", "Folder" : "Каталог", "Images" : "Изображения", "Office documents" : "Офисные документы", "PDF documents" : "PDF документы", "Custom MIME type" : "Пользовательский тип MIME", "Custom mimetype" : "Пользовательский тип mime", + "Select a file type" : "Выберите тип файла", + "e.g. httpd/unix-directory" : "например, каталог httpd/unix", "Please enter a valid time span" : "Введите верный диапазон", - "Select a request URL" : "Выберите URL запроса", - "Predefined URLs" : "Предопределенные URL", "Files WebDAV" : "Файлы WebDAV", - "Others" : "Другие", "Custom URL" : "Пользовательский URL", - "Select a user agent" : "Выберите user agent", + "Select a request URL" : "Выберите URL запроса", "Android client" : "клиент для Android", "iOS client" : "клиент для iOS", "Desktop client" : "клиент для ПК", "Thunderbird & Outlook addons" : "Дополнения для Thunderbird и Outlook", "Custom user agent" : "Пользовательский user agent", + "Select a user agent" : "Выберите user agent", + "Select groups" : "Выберите группы", + "Groups" : "Группы", + "Type to search for group …" : "Введите для поиска группу…", + "Select a trigger" : "Выберите триггер", "At least one event must be selected" : "Необходимо выбрать как минимум одно событие", "Add new flow" : "Добавить обработку", + "The configuration is invalid" : "Конфигурация неверна", + "Active" : "Активный", + "Save" : "Сохранить", "When" : "Когда", "and" : "и", + "Add a new filter" : "Добавить новый фильтр", "Cancel" : "Отменить", "Delete" : "Удалить", - "The configuration is invalid" : "Конфигурация неверна", - "Active" : "Активный", - "Save" : "Сохранить", "Available flows" : "Доступные обработки", "For details on how to write your own flow, check out the development documentation." : "За дополнительными сведениями о написании собственных обработок, обратитесь к документации.", + "No flows installed" : "Потоки не установлены", + "Ask your administrator to install new flows." : "Попросите своего администратора установить новые потоки.", "More flows" : "Дополнительные обработки", "Browse the App Store" : "Просмотреть магазин приложений", "Show less" : "Показывать меньше", "Show more" : "Показывать больше", "Configured flows" : "Настроенные обработки", "Your flows" : "Ваши обработки", + "No flows configured" : "Потоки не настроены", "matches" : "соответствует", "does not match" : "не соответствует", "is" : "равняется", @@ -109,12 +116,8 @@ OC.L10N.register( "between" : "между", "not between" : "не между", "Request user agent" : "Используемое приложение (user agent)", - "User group membership" : "Участие в группе пользователей", + "Group membership" : "Членство в группе", "is member of" : "является участником", - "is not member of" : "не является участником", - "Select a tag" : "Выберите метку", - "No results" : "Нет результатов", - "%s (invisible)" : "%s (невидимый)", - "%s (restricted)" : "%s (ограниченный)" + "is not member of" : "не является участником" }, "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/workflowengine/l10n/ru.json b/apps/workflowengine/l10n/ru.json index e26a0608cca..228ad6a71ce 100644 --- a/apps/workflowengine/l10n/ru.json +++ b/apps/workflowengine/l10n/ru.json @@ -46,43 +46,50 @@ "Nextcloud workflow engine" : "Механизм обработки Nextcloud", "Select a filter" : "Выберите фильтр", "Select a comparator" : "Выберите компаратор", - "Select a file type" : "Выберите тип файла", - "e.g. httpd/unix-directory" : "например, каталог httpd/unix", + "Remove filter" : "Удалить фильтр", "Folder" : "Каталог", "Images" : "Изображения", "Office documents" : "Офисные документы", "PDF documents" : "PDF документы", "Custom MIME type" : "Пользовательский тип MIME", "Custom mimetype" : "Пользовательский тип mime", + "Select a file type" : "Выберите тип файла", + "e.g. httpd/unix-directory" : "например, каталог httpd/unix", "Please enter a valid time span" : "Введите верный диапазон", - "Select a request URL" : "Выберите URL запроса", - "Predefined URLs" : "Предопределенные URL", "Files WebDAV" : "Файлы WebDAV", - "Others" : "Другие", "Custom URL" : "Пользовательский URL", - "Select a user agent" : "Выберите user agent", + "Select a request URL" : "Выберите URL запроса", "Android client" : "клиент для Android", "iOS client" : "клиент для iOS", "Desktop client" : "клиент для ПК", "Thunderbird & Outlook addons" : "Дополнения для Thunderbird и Outlook", "Custom user agent" : "Пользовательский user agent", + "Select a user agent" : "Выберите user agent", + "Select groups" : "Выберите группы", + "Groups" : "Группы", + "Type to search for group …" : "Введите для поиска группу…", + "Select a trigger" : "Выберите триггер", "At least one event must be selected" : "Необходимо выбрать как минимум одно событие", "Add new flow" : "Добавить обработку", + "The configuration is invalid" : "Конфигурация неверна", + "Active" : "Активный", + "Save" : "Сохранить", "When" : "Когда", "and" : "и", + "Add a new filter" : "Добавить новый фильтр", "Cancel" : "Отменить", "Delete" : "Удалить", - "The configuration is invalid" : "Конфигурация неверна", - "Active" : "Активный", - "Save" : "Сохранить", "Available flows" : "Доступные обработки", "For details on how to write your own flow, check out the development documentation." : "За дополнительными сведениями о написании собственных обработок, обратитесь к документации.", + "No flows installed" : "Потоки не установлены", + "Ask your administrator to install new flows." : "Попросите своего администратора установить новые потоки.", "More flows" : "Дополнительные обработки", "Browse the App Store" : "Просмотреть магазин приложений", "Show less" : "Показывать меньше", "Show more" : "Показывать больше", "Configured flows" : "Настроенные обработки", "Your flows" : "Ваши обработки", + "No flows configured" : "Потоки не настроены", "matches" : "соответствует", "does not match" : "не соответствует", "is" : "равняется", @@ -107,12 +114,8 @@ "between" : "между", "not between" : "не между", "Request user agent" : "Используемое приложение (user agent)", - "User group membership" : "Участие в группе пользователей", + "Group membership" : "Членство в группе", "is member of" : "является участником", - "is not member of" : "не является участником", - "Select a tag" : "Выберите метку", - "No results" : "Нет результатов", - "%s (invisible)" : "%s (невидимый)", - "%s (restricted)" : "%s (ограниченный)" + "is not member of" : "не является участником" },"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/workflowengine/l10n/sc.js b/apps/workflowengine/l10n/sc.js index 103836f47b2..b7b473071dd 100644 --- a/apps/workflowengine/l10n/sc.js +++ b/apps/workflowengine/l10n/sc.js @@ -48,34 +48,35 @@ OC.L10N.register( "Nextcloud workflow engine" : "Motore de su flussu de traballu de Nextcloud", "Select a filter" : "Seletziona unu filtru", "Select a comparator" : "Seletziona unu cumparadore", - "Select a file type" : "Seletziona una genia de archìviu", - "e.g. httpd/unix-directory" : "pro esèmpiu httpd/unix-directory", "Folder" : "Cartella", - "Images" : "Imàgines", + "Images" : "Immàgines", "Office documents" : "Documentos de Office", "PDF documents" : "Documentos PDF", "Custom mimetype" : "Personaliza sa genia MIME", + "Select a file type" : "Seletziona una genia de archìviu", + "e.g. httpd/unix-directory" : "pro esèmpiu httpd/unix-directory", "Please enter a valid time span" : "Inserta•nche un'intervallu de tempus bàlidu", - "Select a request URL" : "Seletziona unu URL de rechesta", - "Predefined URLs" : "URL predefinidos", "Files WebDAV" : "Archìvios WebDAV", - "Others" : "Àtere", "Custom URL" : "Personaliza URL", - "Select a user agent" : "Seletziona un'agente de utente", + "Select a request URL" : "Seletziona unu URL de rechesta", "Android client" : "Cliente Android", "iOS client" : "Cliente iOS", "Desktop client" : "Cliente de iscrivania", "Thunderbird & Outlook addons" : "Cumponente de agiunta de Thunderbird & Outlook", "Custom user agent" : "Personaliza agente de utente", + "Select a user agent" : "Seletziona un'agente de utente", + "Select groups" : "Seletziona grupos", + "Groups" : "Grupos", "At least one event must be selected" : "Depet èssere seletzionadu a su mancu un'eventu", "Add new flow" : "Agiunghe flussu nou", + "The configuration is invalid" : "Sa cunfiguratzione no est bàlida", + "Active" : "Ativu", + "Save" : "Sarva", "When" : "Cando", "and" : "e", + "Add a new filter" : "Agiunghe unu filtru nou", "Cancel" : "Annulla", "Delete" : "Cantzella", - "The configuration is invalid" : "Sa cunfiguratzione no est bàlida", - "Active" : "Ativu", - "Save" : "Sarva", "Available flows" : "Flussos a disponimentu", "For details on how to write your own flow, check out the development documentation." : "Pro detàllios subra comente iscriere su flussu tuo etotu, controlla sa documentatzione de isvilupu.", "More flows" : "Àteros flussos", @@ -108,12 +109,7 @@ OC.L10N.register( "between" : "cumprèndidu tra", "not between" : "no cumprèndidu tra", "Request user agent" : "Agente de utente de sa rechesta", - "User group membership" : "Apartenèntzia de is utentes a is grupos", "is member of" : "partètzipat a", - "is not member of" : "no partètzipat a", - "Select a tag" : "Seletziona un'eticheta", - "No results" : "Perunu resurtadu", - "%s (invisible)" : "%s (invisìbile)", - "%s (restricted)" : "%s (limitadu)" + "is not member of" : "no partètzipat a" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/sc.json b/apps/workflowengine/l10n/sc.json index 5dc118df9d3..0ae1be297b9 100644 --- a/apps/workflowengine/l10n/sc.json +++ b/apps/workflowengine/l10n/sc.json @@ -46,34 +46,35 @@ "Nextcloud workflow engine" : "Motore de su flussu de traballu de Nextcloud", "Select a filter" : "Seletziona unu filtru", "Select a comparator" : "Seletziona unu cumparadore", - "Select a file type" : "Seletziona una genia de archìviu", - "e.g. httpd/unix-directory" : "pro esèmpiu httpd/unix-directory", "Folder" : "Cartella", - "Images" : "Imàgines", + "Images" : "Immàgines", "Office documents" : "Documentos de Office", "PDF documents" : "Documentos PDF", "Custom mimetype" : "Personaliza sa genia MIME", + "Select a file type" : "Seletziona una genia de archìviu", + "e.g. httpd/unix-directory" : "pro esèmpiu httpd/unix-directory", "Please enter a valid time span" : "Inserta•nche un'intervallu de tempus bàlidu", - "Select a request URL" : "Seletziona unu URL de rechesta", - "Predefined URLs" : "URL predefinidos", "Files WebDAV" : "Archìvios WebDAV", - "Others" : "Àtere", "Custom URL" : "Personaliza URL", - "Select a user agent" : "Seletziona un'agente de utente", + "Select a request URL" : "Seletziona unu URL de rechesta", "Android client" : "Cliente Android", "iOS client" : "Cliente iOS", "Desktop client" : "Cliente de iscrivania", "Thunderbird & Outlook addons" : "Cumponente de agiunta de Thunderbird & Outlook", "Custom user agent" : "Personaliza agente de utente", + "Select a user agent" : "Seletziona un'agente de utente", + "Select groups" : "Seletziona grupos", + "Groups" : "Grupos", "At least one event must be selected" : "Depet èssere seletzionadu a su mancu un'eventu", "Add new flow" : "Agiunghe flussu nou", + "The configuration is invalid" : "Sa cunfiguratzione no est bàlida", + "Active" : "Ativu", + "Save" : "Sarva", "When" : "Cando", "and" : "e", + "Add a new filter" : "Agiunghe unu filtru nou", "Cancel" : "Annulla", "Delete" : "Cantzella", - "The configuration is invalid" : "Sa cunfiguratzione no est bàlida", - "Active" : "Ativu", - "Save" : "Sarva", "Available flows" : "Flussos a disponimentu", "For details on how to write your own flow, check out the development documentation." : "Pro detàllios subra comente iscriere su flussu tuo etotu, controlla sa documentatzione de isvilupu.", "More flows" : "Àteros flussos", @@ -106,12 +107,7 @@ "between" : "cumprèndidu tra", "not between" : "no cumprèndidu tra", "Request user agent" : "Agente de utente de sa rechesta", - "User group membership" : "Apartenèntzia de is utentes a is grupos", "is member of" : "partètzipat a", - "is not member of" : "no partètzipat a", - "Select a tag" : "Seletziona un'eticheta", - "No results" : "Perunu resurtadu", - "%s (invisible)" : "%s (invisìbile)", - "%s (restricted)" : "%s (limitadu)" + "is not member of" : "no partètzipat a" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/sk.js b/apps/workflowengine/l10n/sk.js index b2e50988b10..dc3fd686753 100644 --- a/apps/workflowengine/l10n/sk.js +++ b/apps/workflowengine/l10n/sk.js @@ -48,43 +48,50 @@ OC.L10N.register( "Nextcloud workflow engine" : "Služba Nextcloud pre pracovné postupy", "Select a filter" : "Vybrať filter", "Select a comparator" : "Vybrať porovnávač", - "Select a file type" : "Vyberte typ súboru", - "e.g. httpd/unix-directory" : "napr. adresár httpd/unix", + "Remove filter" : "Odstrániť filter", "Folder" : "Priečinok", "Images" : "Obrázky", "Office documents" : "Dokumenty Office", "PDF documents" : "Dokumenty PDF", "Custom MIME type" : "Vlastný typ MIME", "Custom mimetype" : "Vlastné typy mime", + "Select a file type" : "Vyberte typ súboru", + "e.g. httpd/unix-directory" : "napr. adresár httpd/unix", "Please enter a valid time span" : "Zadajte prosím platné časové rozmedzie", - "Select a request URL" : "Vybrať URL požiadavku", - "Predefined URLs" : "Preddefinované URL", "Files WebDAV" : "WebDAV súbory", - "Others" : "Ostatné", "Custom URL" : "Vlastná URL", - "Select a user agent" : "Zvoliť užívateľského agenta", + "Select a request URL" : "Vybrať URL požiadavku", "Android client" : "Android klient", "iOS client" : "iOS klient", "Desktop client" : "Desktopový klient", "Thunderbird & Outlook addons" : "Doplnky pre Thunderbird a Outlook", "Custom user agent" : "Vlastný agent užívateľa", + "Select a user agent" : "Zvoliť užívateľského agenta", + "Select groups" : "Vybrať skupinu", + "Groups" : "Skupiny", + "Type to search for group …" : "Začnite písať pre vyhľadanie skupiny ...", + "Select a trigger" : "Vyberte spúšťač", "At least one event must be selected" : "Musí byť vybraná aspoň jedna udalosť", "Add new flow" : "Pridať nový tok", + "The configuration is invalid" : "Konfigurácia je neplatná", + "Active" : "Aktívne", + "Save" : "Uložiť", "When" : "Keď", "and" : "a", + "Add a new filter" : "Pridať nový filter", "Cancel" : "Zrušiť", "Delete" : "Zmazať", - "The configuration is invalid" : "Konfigurácia je neplatná", - "Active" : "Aktívne", - "Save" : "Uložiť", "Available flows" : "Dostupné toky", "For details on how to write your own flow, check out the development documentation." : "Podrobnosti o tom, ako vytvárať vlastné toky, nájdete v dokumentácii pre vývojárov.", + "No flows installed" : "Žiadne toky neboli nainštalované", + "Ask your administrator to install new flows." : "Požiadajte svojho administrátora, aby nainštaloval nové toky.", "More flows" : "Ďalšie toky", "Browse the App Store" : "Prehliadanie obchodu s aplikáciami", "Show less" : "Zobraziť menej", "Show more" : "Zobraziť viac", "Configured flows" : "Nastavené toky", "Your flows" : "Vaše toky", + "No flows configured" : "Žiadne toky neboli nakonfigurované", "matches" : "súhlasí", "does not match" : "nesúhlasí", "is" : "je", @@ -109,12 +116,8 @@ OC.L10N.register( "between" : "medzi", "not between" : "nie je medzi", "Request user agent" : "User agent požiadavky", - "User group membership" : "Členstvo v skupine používateľov", + "Group membership" : "Skupinové členstvo", "is member of" : "Je členom", - "is not member of" : "Nie je členom", - "Select a tag" : "Vyber štítok", - "No results" : "Žiadne výsledky", - "%s (invisible)" : "%s (neviditeľné)", - "%s (restricted)" : "%s (obmedzené)" + "is not member of" : "Nie je členom" }, "nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"); diff --git a/apps/workflowengine/l10n/sk.json b/apps/workflowengine/l10n/sk.json index 721e02df4ca..25761ee0053 100644 --- a/apps/workflowengine/l10n/sk.json +++ b/apps/workflowengine/l10n/sk.json @@ -46,43 +46,50 @@ "Nextcloud workflow engine" : "Služba Nextcloud pre pracovné postupy", "Select a filter" : "Vybrať filter", "Select a comparator" : "Vybrať porovnávač", - "Select a file type" : "Vyberte typ súboru", - "e.g. httpd/unix-directory" : "napr. adresár httpd/unix", + "Remove filter" : "Odstrániť filter", "Folder" : "Priečinok", "Images" : "Obrázky", "Office documents" : "Dokumenty Office", "PDF documents" : "Dokumenty PDF", "Custom MIME type" : "Vlastný typ MIME", "Custom mimetype" : "Vlastné typy mime", + "Select a file type" : "Vyberte typ súboru", + "e.g. httpd/unix-directory" : "napr. adresár httpd/unix", "Please enter a valid time span" : "Zadajte prosím platné časové rozmedzie", - "Select a request URL" : "Vybrať URL požiadavku", - "Predefined URLs" : "Preddefinované URL", "Files WebDAV" : "WebDAV súbory", - "Others" : "Ostatné", "Custom URL" : "Vlastná URL", - "Select a user agent" : "Zvoliť užívateľského agenta", + "Select a request URL" : "Vybrať URL požiadavku", "Android client" : "Android klient", "iOS client" : "iOS klient", "Desktop client" : "Desktopový klient", "Thunderbird & Outlook addons" : "Doplnky pre Thunderbird a Outlook", "Custom user agent" : "Vlastný agent užívateľa", + "Select a user agent" : "Zvoliť užívateľského agenta", + "Select groups" : "Vybrať skupinu", + "Groups" : "Skupiny", + "Type to search for group …" : "Začnite písať pre vyhľadanie skupiny ...", + "Select a trigger" : "Vyberte spúšťač", "At least one event must be selected" : "Musí byť vybraná aspoň jedna udalosť", "Add new flow" : "Pridať nový tok", + "The configuration is invalid" : "Konfigurácia je neplatná", + "Active" : "Aktívne", + "Save" : "Uložiť", "When" : "Keď", "and" : "a", + "Add a new filter" : "Pridať nový filter", "Cancel" : "Zrušiť", "Delete" : "Zmazať", - "The configuration is invalid" : "Konfigurácia je neplatná", - "Active" : "Aktívne", - "Save" : "Uložiť", "Available flows" : "Dostupné toky", "For details on how to write your own flow, check out the development documentation." : "Podrobnosti o tom, ako vytvárať vlastné toky, nájdete v dokumentácii pre vývojárov.", + "No flows installed" : "Žiadne toky neboli nainštalované", + "Ask your administrator to install new flows." : "Požiadajte svojho administrátora, aby nainštaloval nové toky.", "More flows" : "Ďalšie toky", "Browse the App Store" : "Prehliadanie obchodu s aplikáciami", "Show less" : "Zobraziť menej", "Show more" : "Zobraziť viac", "Configured flows" : "Nastavené toky", "Your flows" : "Vaše toky", + "No flows configured" : "Žiadne toky neboli nakonfigurované", "matches" : "súhlasí", "does not match" : "nesúhlasí", "is" : "je", @@ -107,12 +114,8 @@ "between" : "medzi", "not between" : "nie je medzi", "Request user agent" : "User agent požiadavky", - "User group membership" : "Členstvo v skupine používateľov", + "Group membership" : "Skupinové členstvo", "is member of" : "Je členom", - "is not member of" : "Nie je členom", - "Select a tag" : "Vyber štítok", - "No results" : "Žiadne výsledky", - "%s (invisible)" : "%s (neviditeľné)", - "%s (restricted)" : "%s (obmedzené)" + "is not member of" : "Nie je členom" },"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/sl.js b/apps/workflowengine/l10n/sl.js index 9f77ac286a8..c7b1e61ccf5 100644 --- a/apps/workflowengine/l10n/sl.js +++ b/apps/workflowengine/l10n/sl.js @@ -48,43 +48,47 @@ OC.L10N.register( "Nextcloud workflow engine" : "Program za koračno avtomatizacijo delovnih nalog", "Select a filter" : "Izbor filtra", "Select a comparator" : "Izbor primerjalnika", - "Select a file type" : "Izbor vrste datoteke", - "e.g. httpd/unix-directory" : "npr. httpd/unix-directory", + "Remove filter" : "Odstrani filter", "Folder" : "Mapa", "Images" : "Slike", "Office documents" : "Pisarniški dokumenti", "PDF documents" : "Dokumenti PDF", "Custom MIME type" : "Vrsta Mime po meri", "Custom mimetype" : "Vrsta Mime po meri", + "Select a file type" : "Izbor vrste datoteke", + "e.g. httpd/unix-directory" : "npr. httpd/unix-directory", "Please enter a valid time span" : "Vpisati je treba veljaven časovni obseg", - "Select a request URL" : "Izberite naslov URL zahteve", - "Predefined URLs" : "Določeni naslovi URL", "Files WebDAV" : "Datoteke WebDAV", - "Others" : "Ostali", "Custom URL" : "Naslov URL po meri", - "Select a user agent" : "Izbor uporabniškega odjemalca", + "Select a request URL" : "Izberite naslov URL zahteve", "Android client" : "Odjemalec za Android", "iOS client" : "Odjemalec za iOS", "Desktop client" : "Odjemalec za namizne računalnike", "Thunderbird & Outlook addons" : "Razširitve za Thunderbird in Outlook", "Custom user agent" : "Uporabniški odjemalec po meri", + "Select a user agent" : "Izbor uporabniškega odjemalca", + "Select groups" : "Izbor skupin", + "Groups" : "Skupine", "At least one event must be selected" : "Izbran mora biti vsaj en dogodek", "Add new flow" : "Dodaj koračnik", + "The configuration is invalid" : "Nastavitev ni veljavna", + "Active" : "Dejavno", + "Save" : "Shrani", "When" : "Ko je", "and" : "in", "Cancel" : "Prekliči", "Delete" : "Izbriši", - "The configuration is invalid" : "Nastavitev ni veljavna", - "Active" : "Dejavno", - "Save" : "Shrani", "Available flows" : "Razpoložljivi koračniki", "For details on how to write your own flow, check out the development documentation." : "Za podrobnosti, kako sestaviti koračnike po meri, preverite razvijalsko dokumentacijo.", + "No flows installed" : "Ni nameščenih koračnikov", + "Ask your administrator to install new flows." : "Za namestitev novih stopite v stik s skrbnikom sistema.", "More flows" : "Več koračnikov", "Browse the App Store" : "Prebrskaj po trgovini programov", "Show less" : "Pokaži manj", "Show more" : "Pokaži več", "Configured flows" : "Nastavljeni koračniki", "Your flows" : "Koračniki po meri", + "No flows configured" : "Ni nastavljenih koračnikov", "matches" : "se sklada z", "does not match" : "se ne sklada z", "is" : "je", @@ -109,12 +113,7 @@ OC.L10N.register( "between" : "je dovoljen med", "not between" : "ni dovoljen med", "Request user agent" : "Uporabniški odjemalec", - "User group membership" : "Članstvo v uporabniških skupinah", "is member of" : "je v skupini", - "is not member of" : "ni v skupini", - "Select a tag" : "Izbor oznake", - "No results" : "Ni zadetkov", - "%s (invisible)" : "%s (nevidno)", - "%s (restricted)" : "%s (omejeno)" + "is not member of" : "ni v skupini" }, "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"); diff --git a/apps/workflowengine/l10n/sl.json b/apps/workflowengine/l10n/sl.json index f8063bab5a1..8792339b647 100644 --- a/apps/workflowengine/l10n/sl.json +++ b/apps/workflowengine/l10n/sl.json @@ -46,43 +46,47 @@ "Nextcloud workflow engine" : "Program za koračno avtomatizacijo delovnih nalog", "Select a filter" : "Izbor filtra", "Select a comparator" : "Izbor primerjalnika", - "Select a file type" : "Izbor vrste datoteke", - "e.g. httpd/unix-directory" : "npr. httpd/unix-directory", + "Remove filter" : "Odstrani filter", "Folder" : "Mapa", "Images" : "Slike", "Office documents" : "Pisarniški dokumenti", "PDF documents" : "Dokumenti PDF", "Custom MIME type" : "Vrsta Mime po meri", "Custom mimetype" : "Vrsta Mime po meri", + "Select a file type" : "Izbor vrste datoteke", + "e.g. httpd/unix-directory" : "npr. httpd/unix-directory", "Please enter a valid time span" : "Vpisati je treba veljaven časovni obseg", - "Select a request URL" : "Izberite naslov URL zahteve", - "Predefined URLs" : "Določeni naslovi URL", "Files WebDAV" : "Datoteke WebDAV", - "Others" : "Ostali", "Custom URL" : "Naslov URL po meri", - "Select a user agent" : "Izbor uporabniškega odjemalca", + "Select a request URL" : "Izberite naslov URL zahteve", "Android client" : "Odjemalec za Android", "iOS client" : "Odjemalec za iOS", "Desktop client" : "Odjemalec za namizne računalnike", "Thunderbird & Outlook addons" : "Razširitve za Thunderbird in Outlook", "Custom user agent" : "Uporabniški odjemalec po meri", + "Select a user agent" : "Izbor uporabniškega odjemalca", + "Select groups" : "Izbor skupin", + "Groups" : "Skupine", "At least one event must be selected" : "Izbran mora biti vsaj en dogodek", "Add new flow" : "Dodaj koračnik", + "The configuration is invalid" : "Nastavitev ni veljavna", + "Active" : "Dejavno", + "Save" : "Shrani", "When" : "Ko je", "and" : "in", "Cancel" : "Prekliči", "Delete" : "Izbriši", - "The configuration is invalid" : "Nastavitev ni veljavna", - "Active" : "Dejavno", - "Save" : "Shrani", "Available flows" : "Razpoložljivi koračniki", "For details on how to write your own flow, check out the development documentation." : "Za podrobnosti, kako sestaviti koračnike po meri, preverite razvijalsko dokumentacijo.", + "No flows installed" : "Ni nameščenih koračnikov", + "Ask your administrator to install new flows." : "Za namestitev novih stopite v stik s skrbnikom sistema.", "More flows" : "Več koračnikov", "Browse the App Store" : "Prebrskaj po trgovini programov", "Show less" : "Pokaži manj", "Show more" : "Pokaži več", "Configured flows" : "Nastavljeni koračniki", "Your flows" : "Koračniki po meri", + "No flows configured" : "Ni nastavljenih koračnikov", "matches" : "se sklada z", "does not match" : "se ne sklada z", "is" : "je", @@ -107,12 +111,7 @@ "between" : "je dovoljen med", "not between" : "ni dovoljen med", "Request user agent" : "Uporabniški odjemalec", - "User group membership" : "Članstvo v uporabniških skupinah", "is member of" : "je v skupini", - "is not member of" : "ni v skupini", - "Select a tag" : "Izbor oznake", - "No results" : "Ni zadetkov", - "%s (invisible)" : "%s (nevidno)", - "%s (restricted)" : "%s (omejeno)" + "is not member of" : "ni v skupini" },"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/sq.js b/apps/workflowengine/l10n/sq.js deleted file mode 100644 index c52dc4407e1..00000000000 --- a/apps/workflowengine/l10n/sq.js +++ /dev/null @@ -1,65 +0,0 @@ -OC.L10N.register( - "workflowengine", - { - "The given operator is invalid" : "Operatori i dhënë nuk është i vlefshëm", - "The given regular expression is invalid" : "Shprehja e rregullt e dhënë është e pavlefshme", - "The given file size is invalid" : "Madhësia e dhënë e skedarit është e pavlefshme", - "The given tag id is invalid" : "Id-ja e dhënë e etiketës është e pavlefshme", - "The given IP range is invalid" : "Rangu i dhënë i IP është i pavlefshëm", - "The given IP range is not valid for IPv4" : "Rangu i dhënë i IP nuk është i vlefshëm për IPv4", - "The given IP range is not valid for IPv6" : "Rangu i dhënë i IP nuk është i vlefshëm për IPv6", - "The given time span is invalid" : "Hapsira kohore e dhënë është e pavlefshme", - "The given start time is invalid" : "Koha e fillimit është e pavlefshme", - "The given end time is invalid" : "Koha e mbarimit është e pavlefshme", - "The given group does not exist" : "Grupi i dhënë nuk ekziston", - "File" : "Skedar ", - "Operation #%s does not exist" : "Operacioni #%s nuk ekziston", - "Operation %s does not exist" : "Operacioni %s nuk ekziston", - "Operation %s is invalid" : "Operacioni %s është i pavlefshëm", - "Check %s does not exist" : "Kontrolli %s nuk ekziston", - "Check %s is invalid" : "Kontrolli %s është i pavlefshëm", - "Check #%s does not exist" : "Kontrolli #%s nuk ekziston", - "Check %s is invalid or does not exist" : "Kontrolli %s është i pavlefshëm ose nuk ekziston", - "Folder" : "Skedari", - "Images" : "Imazhe ", - "Predefined URLs" : "URL të paracaktuara", - "Files WebDAV" : "Skedarët WebDAV ", - "Android client" : "Klient Android", - "iOS client" : "Klient IOS", - "Desktop client" : "Klient Desktop", - "Thunderbird & Outlook addons" : "Shtojcat e Thunderbird & Outlook", - "Cancel" : "Anullo", - "Delete" : "Delete", - "Save" : "Ruaj", - "matches" : "përputhje", - "does not match" : "nuk përputhet", - "is" : "është", - "is not" : "nuk është", - "File name" : "Emri i skedarit", - "File MIME type" : "Skedari i tipit MIME", - "File size (upload)" : "Madhësia e skedarit (ngarko)", - "less" : "më pak", - "less or equals" : "më pak ose e barabartë", - "greater or equals" : "më e madhe ose e barabartë", - "greater" : "më e madhe", - "Request remote address" : "Adresa e kërkesës remote", - "matches IPv4" : "përputhet me IPv4", - "does not match IPv4" : "nuk përputhet me IPv4", - "matches IPv6" : "përputhet me IPv6", - "does not match IPv6" : "nuk përputhet me IPv6", - "File system tag" : "Etiketë e skedarit të sistemit", - "is tagged with" : "është e etiketuar me", - "is not tagged with" : "nuk është e etiketuar me", - "Request URL" : "Kërko URL", - "Request time" : "Koha e kërkesës", - "between" : "midis", - "not between" : "nuk është midis", - "Request user agent" : "Kërko agjentin përdorues", - "User group membership" : "Anëtarësia në grupet e përdoruesit", - "is member of" : "është anëtarë i", - "is not member of" : "nuk është anëtarë i", - "No results" : "Asnjë rezultat", - "%s (invisible)" : "%s (e padukshme)", - "%s (restricted)" : "%s (e kufizuar)" -}, -"nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/sq.json b/apps/workflowengine/l10n/sq.json deleted file mode 100644 index 1ae2a9db035..00000000000 --- a/apps/workflowengine/l10n/sq.json +++ /dev/null @@ -1,63 +0,0 @@ -{ "translations": { - "The given operator is invalid" : "Operatori i dhënë nuk është i vlefshëm", - "The given regular expression is invalid" : "Shprehja e rregullt e dhënë është e pavlefshme", - "The given file size is invalid" : "Madhësia e dhënë e skedarit është e pavlefshme", - "The given tag id is invalid" : "Id-ja e dhënë e etiketës është e pavlefshme", - "The given IP range is invalid" : "Rangu i dhënë i IP është i pavlefshëm", - "The given IP range is not valid for IPv4" : "Rangu i dhënë i IP nuk është i vlefshëm për IPv4", - "The given IP range is not valid for IPv6" : "Rangu i dhënë i IP nuk është i vlefshëm për IPv6", - "The given time span is invalid" : "Hapsira kohore e dhënë është e pavlefshme", - "The given start time is invalid" : "Koha e fillimit është e pavlefshme", - "The given end time is invalid" : "Koha e mbarimit është e pavlefshme", - "The given group does not exist" : "Grupi i dhënë nuk ekziston", - "File" : "Skedar ", - "Operation #%s does not exist" : "Operacioni #%s nuk ekziston", - "Operation %s does not exist" : "Operacioni %s nuk ekziston", - "Operation %s is invalid" : "Operacioni %s është i pavlefshëm", - "Check %s does not exist" : "Kontrolli %s nuk ekziston", - "Check %s is invalid" : "Kontrolli %s është i pavlefshëm", - "Check #%s does not exist" : "Kontrolli #%s nuk ekziston", - "Check %s is invalid or does not exist" : "Kontrolli %s është i pavlefshëm ose nuk ekziston", - "Folder" : "Skedari", - "Images" : "Imazhe ", - "Predefined URLs" : "URL të paracaktuara", - "Files WebDAV" : "Skedarët WebDAV ", - "Android client" : "Klient Android", - "iOS client" : "Klient IOS", - "Desktop client" : "Klient Desktop", - "Thunderbird & Outlook addons" : "Shtojcat e Thunderbird & Outlook", - "Cancel" : "Anullo", - "Delete" : "Delete", - "Save" : "Ruaj", - "matches" : "përputhje", - "does not match" : "nuk përputhet", - "is" : "është", - "is not" : "nuk është", - "File name" : "Emri i skedarit", - "File MIME type" : "Skedari i tipit MIME", - "File size (upload)" : "Madhësia e skedarit (ngarko)", - "less" : "më pak", - "less or equals" : "më pak ose e barabartë", - "greater or equals" : "më e madhe ose e barabartë", - "greater" : "më e madhe", - "Request remote address" : "Adresa e kërkesës remote", - "matches IPv4" : "përputhet me IPv4", - "does not match IPv4" : "nuk përputhet me IPv4", - "matches IPv6" : "përputhet me IPv6", - "does not match IPv6" : "nuk përputhet me IPv6", - "File system tag" : "Etiketë e skedarit të sistemit", - "is tagged with" : "është e etiketuar me", - "is not tagged with" : "nuk është e etiketuar me", - "Request URL" : "Kërko URL", - "Request time" : "Koha e kërkesës", - "between" : "midis", - "not between" : "nuk është midis", - "Request user agent" : "Kërko agjentin përdorues", - "User group membership" : "Anëtarësia në grupet e përdoruesit", - "is member of" : "është anëtarë i", - "is not member of" : "nuk është anëtarë i", - "No results" : "Asnjë rezultat", - "%s (invisible)" : "%s (e padukshme)", - "%s (restricted)" : "%s (e kufizuar)" -},"pluralForm" :"nplurals=2; plural=(n != 1);" -}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/sr.js b/apps/workflowengine/l10n/sr.js index 4fdb39121aa..30fc1769de7 100644 --- a/apps/workflowengine/l10n/sr.js +++ b/apps/workflowengine/l10n/sr.js @@ -36,51 +36,62 @@ OC.L10N.register( "Operation %s does not exist" : "Операција %s не постоји", "Operation %s is invalid" : "Операција %s није исправна", "At least one check needs to be provided" : "Треба да се зада бар једна провера", + "The provided operation data is too long" : "Наведени операциони подаци су сувише дугачки", "Invalid check provided" : "Задата неисправна потврда", "Check %s does not exist" : "Проверите да ли %s постоји", "Check %s is invalid" : "Проверите да ли је %s исправно", "Check %s is not allowed with this entity" : "Провера %s није дозвољена са овим ентитетом", + "The provided check value is too long" : "Наведена вредност за проверу је сувише дугачка", "Check #%s does not exist" : "Проверите да ли #%s постоји", "Check %s is invalid or does not exist" : "Проверите да ли је %s неисправно или не постоји", "Flow" : "Ток", "Nextcloud workflow engine" : "Некстклаудов мотор радног тока", "Select a filter" : "Одаберите филтер", "Select a comparator" : "Одаберите компаратор", - "Select a file type" : "Одаберите тип фајла", - "e.g. httpd/unix-directory" : "нпр. httpd/unix-directory", + "Remove filter" : "Уклони филтер", "Folder" : "Фасцикла", "Images" : "Слике", "Office documents" : "Канцеларијски документи", "PDF documents" : "PDF документи", + "Custom MIME type" : "Прилагођени MIME тип", "Custom mimetype" : "Произвољни MIME тип", + "Select a file type" : "Одаберите тип фајла", + "e.g. httpd/unix-directory" : "нпр. httpd/unix-directory", "Please enter a valid time span" : "Унесите исправан временски распон", - "Select a request URL" : "Одабери адресу захтева", - "Predefined URLs" : "Предефинисане адресе", "Files WebDAV" : "WebDAV фајлови", - "Others" : "Остали", "Custom URL" : "Произвољна адреса", - "Select a user agent" : "Одаберите агента захтева", + "Select a request URL" : "Одабери адресу захтева", "Android client" : "Андроид клијент", "iOS client" : "iOS клијент", "Desktop client" : "Десктоп клијент", "Thunderbird & Outlook addons" : "Додаци за Thunderbird & Outlook", "Custom user agent" : "Произвољни агент захтева", + "Select a user agent" : "Одаберите агента захтева", + "Select groups" : "Изаберите групе", + "Groups" : "Групе", + "Type to search for group …" : "Куцајте да претражите групу", + "Select a trigger" : "Изаберите окидач", "At least one event must be selected" : "Мора бити одабран бар један догађај", "Add new flow" : "Додај нови ток", + "The configuration is invalid" : "Конфигурација је неисправна", + "Active" : "Активан", + "Save" : "Сачувај", "When" : "Када", "and" : "и", + "Add a new filter" : "Додај нови филтер", "Cancel" : "Откажи", "Delete" : "Обриши", - "The configuration is invalid" : "Конфигурација је неисправна", - "Active" : "Активан", - "Save" : "Сачувај", "Available flows" : "Доступни токови", "For details on how to write your own flow, check out the development documentation." : "За детаље како написати сопствени ток, погледајте програмерску документацију.", + "No flows installed" : "Није инсталиран ниједан ток", + "Ask your administrator to install new flows." : "Затражите од свог администратора да инсталира нове токове.", "More flows" : "Још токова", + "Browse the App Store" : "Прегледајте Продавницу апликација", "Show less" : "Прикажи мање", "Show more" : "Прикажи више", "Configured flows" : "Подешени токови", "Your flows" : "Ваши токови", + "No flows configured" : "Није конфигурисан ниједан ток", "matches" : "се поклапа са", "does not match" : "се не поклапа са", "is" : "је", @@ -105,12 +116,8 @@ OC.L10N.register( "between" : "између", "not between" : "није између", "Request user agent" : "Кориснички агент захтева", - "User group membership" : "Припадност групи", + "Group membership" : "Припадност групи", "is member of" : "је члан групе", - "is not member of" : "није члан групе", - "Select a tag" : "Одаберите ознаку", - "No results" : "Нема резултата", - "%s (invisible)" : "%s (невидљив)", - "%s (restricted)" : "%s (ограничен)" + "is not member of" : "није члан групе" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/workflowengine/l10n/sr.json b/apps/workflowengine/l10n/sr.json index 36af647a4ba..f47543608ed 100644 --- a/apps/workflowengine/l10n/sr.json +++ b/apps/workflowengine/l10n/sr.json @@ -34,51 +34,62 @@ "Operation %s does not exist" : "Операција %s не постоји", "Operation %s is invalid" : "Операција %s није исправна", "At least one check needs to be provided" : "Треба да се зада бар једна провера", + "The provided operation data is too long" : "Наведени операциони подаци су сувише дугачки", "Invalid check provided" : "Задата неисправна потврда", "Check %s does not exist" : "Проверите да ли %s постоји", "Check %s is invalid" : "Проверите да ли је %s исправно", "Check %s is not allowed with this entity" : "Провера %s није дозвољена са овим ентитетом", + "The provided check value is too long" : "Наведена вредност за проверу је сувише дугачка", "Check #%s does not exist" : "Проверите да ли #%s постоји", "Check %s is invalid or does not exist" : "Проверите да ли је %s неисправно или не постоји", "Flow" : "Ток", "Nextcloud workflow engine" : "Некстклаудов мотор радног тока", "Select a filter" : "Одаберите филтер", "Select a comparator" : "Одаберите компаратор", - "Select a file type" : "Одаберите тип фајла", - "e.g. httpd/unix-directory" : "нпр. httpd/unix-directory", + "Remove filter" : "Уклони филтер", "Folder" : "Фасцикла", "Images" : "Слике", "Office documents" : "Канцеларијски документи", "PDF documents" : "PDF документи", + "Custom MIME type" : "Прилагођени MIME тип", "Custom mimetype" : "Произвољни MIME тип", + "Select a file type" : "Одаберите тип фајла", + "e.g. httpd/unix-directory" : "нпр. httpd/unix-directory", "Please enter a valid time span" : "Унесите исправан временски распон", - "Select a request URL" : "Одабери адресу захтева", - "Predefined URLs" : "Предефинисане адресе", "Files WebDAV" : "WebDAV фајлови", - "Others" : "Остали", "Custom URL" : "Произвољна адреса", - "Select a user agent" : "Одаберите агента захтева", + "Select a request URL" : "Одабери адресу захтева", "Android client" : "Андроид клијент", "iOS client" : "iOS клијент", "Desktop client" : "Десктоп клијент", "Thunderbird & Outlook addons" : "Додаци за Thunderbird & Outlook", "Custom user agent" : "Произвољни агент захтева", + "Select a user agent" : "Одаберите агента захтева", + "Select groups" : "Изаберите групе", + "Groups" : "Групе", + "Type to search for group …" : "Куцајте да претражите групу", + "Select a trigger" : "Изаберите окидач", "At least one event must be selected" : "Мора бити одабран бар један догађај", "Add new flow" : "Додај нови ток", + "The configuration is invalid" : "Конфигурација је неисправна", + "Active" : "Активан", + "Save" : "Сачувај", "When" : "Када", "and" : "и", + "Add a new filter" : "Додај нови филтер", "Cancel" : "Откажи", "Delete" : "Обриши", - "The configuration is invalid" : "Конфигурација је неисправна", - "Active" : "Активан", - "Save" : "Сачувај", "Available flows" : "Доступни токови", "For details on how to write your own flow, check out the development documentation." : "За детаље како написати сопствени ток, погледајте програмерску документацију.", + "No flows installed" : "Није инсталиран ниједан ток", + "Ask your administrator to install new flows." : "Затражите од свог администратора да инсталира нове токове.", "More flows" : "Још токова", + "Browse the App Store" : "Прегледајте Продавницу апликација", "Show less" : "Прикажи мање", "Show more" : "Прикажи више", "Configured flows" : "Подешени токови", "Your flows" : "Ваши токови", + "No flows configured" : "Није конфигурисан ниједан ток", "matches" : "се поклапа са", "does not match" : "се не поклапа са", "is" : "је", @@ -103,12 +114,8 @@ "between" : "између", "not between" : "није између", "Request user agent" : "Кориснички агент захтева", - "User group membership" : "Припадност групи", + "Group membership" : "Припадност групи", "is member of" : "је члан групе", - "is not member of" : "није члан групе", - "Select a tag" : "Одаберите ознаку", - "No results" : "Нема резултата", - "%s (invisible)" : "%s (невидљив)", - "%s (restricted)" : "%s (ограничен)" + "is not member of" : "није члан групе" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/sv.js b/apps/workflowengine/l10n/sv.js index a4a5a6141a3..595f50e84f3 100644 --- a/apps/workflowengine/l10n/sv.js +++ b/apps/workflowengine/l10n/sv.js @@ -36,52 +36,62 @@ OC.L10N.register( "Operation %s does not exist" : "Operationen %s existerar inte", "Operation %s is invalid" : "Operationen %s är ogiltig", "At least one check needs to be provided" : "Minst en kontroll måste tillhandahållas", + "The provided operation data is too long" : "Den angivna operationsdatan är för lång", "Invalid check provided" : "Ogiltig kontroll angavs", "Check %s does not exist" : "Kontroll av %s existerar inte", "Check %s is invalid" : "Kontroll av %s är ogiltig", "Check %s is not allowed with this entity" : "Kontroll %s tillåts inte med denna enhet", + "The provided check value is too long" : "Det angivna kontrollvärdet är för långt", "Check #%s does not exist" : "Kontroll av #%s existerar inte", "Check %s is invalid or does not exist" : "Kontroll av %s är ogiltig eller existerar inte", "Flow" : "Flöde", "Nextcloud workflow engine" : "Nextcloud arbetsflödesmotor", "Select a filter" : "Välj ett filter", "Select a comparator" : "Välj en jämförelse", - "Select a file type" : "Välj en filtyp", - "e.g. httpd/unix-directory" : "t.ex. httpd/unix-directory", + "Remove filter" : "Ta bort filter", "Folder" : "Mapp", "Images" : "Bilder", - "Office documents" : "Officedokument", + "Office documents" : "Office-dokument", "PDF documents" : "PDF-dokument", + "Custom MIME type" : "Anpassad MIME-typ", "Custom mimetype" : "Anpassad mimetyp", + "Select a file type" : "Välj en filtyp", + "e.g. httpd/unix-directory" : "t.ex. httpd/unix-directory", "Please enter a valid time span" : "Ange ett giltigt tidsintervall", - "Select a request URL" : "Välj en webbadress för begäran", - "Predefined URLs" : "Förinställda webbadresser", "Files WebDAV" : "Filer WebDAV", - "Others" : "Övriga", "Custom URL" : "Anpassad webbadress", - "Select a user agent" : "Välj en användaragent", + "Select a request URL" : "Välj en webbadress för begäran", "Android client" : "Android-klient", "iOS client" : "iOS-klient", "Desktop client" : "Skrivbordsklient", "Thunderbird & Outlook addons" : "Thunderbird & Outlook - tillägg", "Custom user agent" : "Anpassad användaragent", + "Select a user agent" : "Välj en användaragent", + "Select groups" : "Välj grupper", + "Groups" : "Grupper", + "Type to search for group …" : "Skriv för att söka efter grupp ...", + "Select a trigger" : "Välj en utlösare", "At least one event must be selected" : "Minst en händelse måste väljas", "Add new flow" : "Lägg till nytt flöde", + "The configuration is invalid" : "Konfigurationen är felaktig", + "Active" : "Aktiv", + "Save" : "Spara", "When" : "När", "and" : "och", + "Add a new filter" : "Lägg till nytt filter", "Cancel" : "Avbryt", "Delete" : "Radera", - "The configuration is invalid" : "Konfigurationen är felaktig", - "Active" : "Aktiv", - "Save" : "Spara", "Available flows" : "Tillgängliga flöden", "For details on how to write your own flow, check out the development documentation." : "För information om hur du skriver ditt eget flöde, se utvecklingsdokumentationen.", + "No flows installed" : "Inga flöden installerade", + "Ask your administrator to install new flows." : "Be din administratör att installera nya flöden.", "More flows" : "Fler flöden", "Browse the App Store" : "Bläddra i appbutiken", "Show less" : "Visa mindre", "Show more" : "Visa mer", "Configured flows" : "Konfigurerade flöden", "Your flows" : "Dina flöden", + "No flows configured" : "Inga flöden har konfigurerats", "matches" : "träffar", "does not match" : "matchar inte", "is" : "är", @@ -106,12 +116,8 @@ OC.L10N.register( "between" : "mellan", "not between" : "inte mellan", "Request user agent" : "Begär användaragent", - "User group membership" : "Användargruppsmedlemskap", + "Group membership" : "Gruppmedlemskap", "is member of" : "är medlem i", - "is not member of" : "är inte medlem i", - "Select a tag" : "Välj en tagg", - "No results" : "Inga resultat", - "%s (invisible)" : "%s (osynlig)", - "%s (restricted)" : "%s (begränsad)" + "is not member of" : "är inte medlem i" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/sv.json b/apps/workflowengine/l10n/sv.json index 6221181080c..4bb32eab747 100644 --- a/apps/workflowengine/l10n/sv.json +++ b/apps/workflowengine/l10n/sv.json @@ -34,52 +34,62 @@ "Operation %s does not exist" : "Operationen %s existerar inte", "Operation %s is invalid" : "Operationen %s är ogiltig", "At least one check needs to be provided" : "Minst en kontroll måste tillhandahållas", + "The provided operation data is too long" : "Den angivna operationsdatan är för lång", "Invalid check provided" : "Ogiltig kontroll angavs", "Check %s does not exist" : "Kontroll av %s existerar inte", "Check %s is invalid" : "Kontroll av %s är ogiltig", "Check %s is not allowed with this entity" : "Kontroll %s tillåts inte med denna enhet", + "The provided check value is too long" : "Det angivna kontrollvärdet är för långt", "Check #%s does not exist" : "Kontroll av #%s existerar inte", "Check %s is invalid or does not exist" : "Kontroll av %s är ogiltig eller existerar inte", "Flow" : "Flöde", "Nextcloud workflow engine" : "Nextcloud arbetsflödesmotor", "Select a filter" : "Välj ett filter", "Select a comparator" : "Välj en jämförelse", - "Select a file type" : "Välj en filtyp", - "e.g. httpd/unix-directory" : "t.ex. httpd/unix-directory", + "Remove filter" : "Ta bort filter", "Folder" : "Mapp", "Images" : "Bilder", - "Office documents" : "Officedokument", + "Office documents" : "Office-dokument", "PDF documents" : "PDF-dokument", + "Custom MIME type" : "Anpassad MIME-typ", "Custom mimetype" : "Anpassad mimetyp", + "Select a file type" : "Välj en filtyp", + "e.g. httpd/unix-directory" : "t.ex. httpd/unix-directory", "Please enter a valid time span" : "Ange ett giltigt tidsintervall", - "Select a request URL" : "Välj en webbadress för begäran", - "Predefined URLs" : "Förinställda webbadresser", "Files WebDAV" : "Filer WebDAV", - "Others" : "Övriga", "Custom URL" : "Anpassad webbadress", - "Select a user agent" : "Välj en användaragent", + "Select a request URL" : "Välj en webbadress för begäran", "Android client" : "Android-klient", "iOS client" : "iOS-klient", "Desktop client" : "Skrivbordsklient", "Thunderbird & Outlook addons" : "Thunderbird & Outlook - tillägg", "Custom user agent" : "Anpassad användaragent", + "Select a user agent" : "Välj en användaragent", + "Select groups" : "Välj grupper", + "Groups" : "Grupper", + "Type to search for group …" : "Skriv för att söka efter grupp ...", + "Select a trigger" : "Välj en utlösare", "At least one event must be selected" : "Minst en händelse måste väljas", "Add new flow" : "Lägg till nytt flöde", + "The configuration is invalid" : "Konfigurationen är felaktig", + "Active" : "Aktiv", + "Save" : "Spara", "When" : "När", "and" : "och", + "Add a new filter" : "Lägg till nytt filter", "Cancel" : "Avbryt", "Delete" : "Radera", - "The configuration is invalid" : "Konfigurationen är felaktig", - "Active" : "Aktiv", - "Save" : "Spara", "Available flows" : "Tillgängliga flöden", "For details on how to write your own flow, check out the development documentation." : "För information om hur du skriver ditt eget flöde, se utvecklingsdokumentationen.", + "No flows installed" : "Inga flöden installerade", + "Ask your administrator to install new flows." : "Be din administratör att installera nya flöden.", "More flows" : "Fler flöden", "Browse the App Store" : "Bläddra i appbutiken", "Show less" : "Visa mindre", "Show more" : "Visa mer", "Configured flows" : "Konfigurerade flöden", "Your flows" : "Dina flöden", + "No flows configured" : "Inga flöden har konfigurerats", "matches" : "träffar", "does not match" : "matchar inte", "is" : "är", @@ -104,12 +114,8 @@ "between" : "mellan", "not between" : "inte mellan", "Request user agent" : "Begär användaragent", - "User group membership" : "Användargruppsmedlemskap", + "Group membership" : "Gruppmedlemskap", "is member of" : "är medlem i", - "is not member of" : "är inte medlem i", - "Select a tag" : "Välj en tagg", - "No results" : "Inga resultat", - "%s (invisible)" : "%s (osynlig)", - "%s (restricted)" : "%s (begränsad)" + "is not member of" : "är inte medlem i" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/sw.js b/apps/workflowengine/l10n/sw.js new file mode 100644 index 00000000000..302055b39f2 --- /dev/null +++ b/apps/workflowengine/l10n/sw.js @@ -0,0 +1,123 @@ +OC.L10N.register( + "workflowengine", + { + "The given operator is invalid" : "Opereta uliyopewa si sahihi", + "The given regular expression is invalid" : "Msemo wa kawaida uliotolewa si sahihi", + "The given file size is invalid" : "Ukubwa wa faili uliotolewa si sahihi", + "The given tag id is invalid" : "Kitambulisho cha lebo kilichotolewa si sahihi", + "The given IP range is invalid" : "Anuwai ya IP iliyotolewa si sahihi", + "The given IP range is not valid for IPv4" : "Anuwai ya IP iliyotolewa si halali kwa IPv4", + "The given IP range is not valid for IPv6" : "Anuwai ya IP iliyotolewa si halali kwa IPv6", + "The given time span is invalid" : "Muda uliyopewa si sahihi", + "The given start time is invalid" : "Muda wa kuanza uliyopewa si sahihi", + "The given end time is invalid" : "Muda wa kumaliza uliyopewa ni batili", + "The given group does not exist" : "Kundi lililotolewa halipo", + "File" : "Faili", + "File created" : "Faili imeundwa", + "File updated" : "Faili imesasishwa", + "File renamed" : "Faili imepewa jina upya", + "File deleted" : "Faili imefutwa", + "File accessed" : "Faili imefikiwa", + "File copied" : "Faili imenakiliwa", + "Tag assigned" : "Lebo imetolewa", + "Someone" : "Mtu fulani", + "%s created %s" : "%s imeundwa %s", + "%s modified %s" : "%s imeboreshwa %s", + "%s deleted %s" : "%s imefutwa %s", + "%s accessed %s" : "%s imefikiwa %s", + "%s renamed %s" : "%s imepewa jina jipya %s", + "%s copied %s" : "%s imenakiliwa %s", + "%s assigned %s to %s" : "%simekabidhiwa %s kwa %s", + "Operation #%s does not exist" : "Operesheni #%s haipo", + "Entity %s does not exist" : "Huluki %s haipo", + "Entity %s is invalid" : "Huluki %s si sahihi", + "No events are chosen." : "Hakuna matukio yaliyochaguliwa.", + "Entity %s has no event %s" : "Huluki %s haina tukio %s", + "Operation %s does not exist" : "Operesheni %s haipo", + "Operation %s is invalid" : "Operesheni %s si sahihi", + "At least one check needs to be provided" : "Angalau hundi moja inahitaji kutolewa", + "The provided operation data is too long" : "Taarifa za operesheni zilizotolewa ni ndefu sana", + "Invalid check provided" : "Hundi batili imetolewa", + "Check %s does not exist" : "Angalia %s haipo", + "Check %s is invalid" : "Angalia %s si sahihi", + "Check %s is not allowed with this entity" : "Kukagua %s hairuhusiwi na huluki hii", + "The provided check value is too long" : "Thamani ya hundi iliyotolewa ni ndefu sana", + "Check #%s does not exist" : "Ukaguzi #%s haupo", + "Check %s is invalid or does not exist" : "Angalia %s si sahihi au haipo", + "Flow" : "Mtiririko", + "Nextcloud workflow engine" : "Injini ya mtiririko wa kazi ya Nextcloud", + "Select a filter" : "Chagua kichujio", + "Select a comparator" : "Chagua kipimajoto", + "Remove filter" : "Ondoa kichujio", + "Folder" : "Kisanduku", + "Images" : "Picha", + "Office documents" : "Nyaraka za ofisi", + "PDF documents" : "Nyaraka za PDF", + "Custom MIME type" : "Aina ya MIME ya kawaida", + "Custom mimetype" : "Aina maalum ya mime", + "Select a file type" : "Chagua aina ya faili", + "e.g. httpd/unix-directory" : "e.g. httpd/unix-directory", + "Please enter a valid time span" : "Tafadhali ingiza muda halali", + "Files WebDAV" : "Faili za WebDAV", + "Custom URL" : "URL maalum", + "Select a request URL" : "Chagua URL ya ombi", + "Android client" : "Mteja wa Android", + "iOS client" : "Mteja wa iOS", + "Desktop client" : "Mteja wa eneo-kazi", + "Thunderbird & Outlook addons" : "Viongezeo vya Thunderbird na Outlook", + "Custom user agent" : "Wakala maalum wa mtumiaji ", + "Select a user agent" : "Chagua wakala wa mtumiaji", + "Select groups" : "Chagua makundi", + "Groups" : "Makundi", + "Type to search for group …" : "Andika kutafuta kikundi …", + "Select a trigger" : "Chagua kichocheo", + "At least one event must be selected" : "Angalau tukio moja lazima lichaguliwe", + "Add new flow" : "Ongeza mtiririko mpya", + "The configuration is invalid" : "Usanidi si sahihi", + "Active" : "Hai", + "Save" : "Hifadhi", + "When" : "Lini", + "and" : "na", + "Add a new filter" : "Ongeza kichujio kipya", + "Cancel" : "Sitisha", + "Delete" : "Futa", + "Available flows" : "Mitiririko inayopatikana", + "For details on how to write your own flow, check out the development documentation." : "Kwa maelezo kuhusu jinsi ya kuandika mtiririko wako mwenyewe, angalia nyaraka za maendeleo.", + "No flows installed" : "Hakuna mtiririko uliowekwa", + "Ask your administrator to install new flows." : "Muulize msimamizi wako aweke mitiririko mipya.", + "More flows" : "Mtiririko zaidi", + "Browse the App Store" : "Vinjari hifadhi ya Programu", + "Show less" : "Onesha kidogo", + "Show more" : "Onesha zaidi", + "Configured flows" : "Mitiririko iliyosanidiwa", + "Your flows" : "Mitiririko yako", + "No flows configured" : "Hakuna mitiririko iliyosanidiwa", + "matches" : "inafanana", + "does not match" : "haifanani", + "is" : "ni", + "is not" : "si", + "File name" : "Jina la faili", + "File MIME type" : "Aina ya MIME ya faili", + "File size (upload)" : "Ukubwa wa faili (kupakia)", + "less" : "chini", + "less or equals" : "chini au sawa na", + "greater or equals" : "kubwa au sawa na", + "greater" : "kubwa", + "Request remote address" : "Omba anwani ya mbali", + "matches IPv4" : "Inafanana na IPv4", + "does not match IPv4" : "haifanani na IPv4", + "matches IPv6" : "inafanana na IPv6", + "does not match IPv6" : "haifanani na IPv6", + "File system tag" : "Lebo ya mfumo wa faili", + "is tagged with" : "Imewekewa alama na", + "is not tagged with" : "haijawekewa alama na", + "Request URL" : "Omba URL", + "Request time" : "Muda wa ombi", + "between" : "kati ya", + "not between" : "si kati ya", + "Request user agent" : "Omba wakala wa mtumiaji", + "Group membership" : "Uanachama wa kikundi", + "is member of" : "ni mwanachama wa", + "is not member of" : "si mwanachama wa" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/sw.json b/apps/workflowengine/l10n/sw.json new file mode 100644 index 00000000000..a0d1179f2d9 --- /dev/null +++ b/apps/workflowengine/l10n/sw.json @@ -0,0 +1,121 @@ +{ "translations": { + "The given operator is invalid" : "Opereta uliyopewa si sahihi", + "The given regular expression is invalid" : "Msemo wa kawaida uliotolewa si sahihi", + "The given file size is invalid" : "Ukubwa wa faili uliotolewa si sahihi", + "The given tag id is invalid" : "Kitambulisho cha lebo kilichotolewa si sahihi", + "The given IP range is invalid" : "Anuwai ya IP iliyotolewa si sahihi", + "The given IP range is not valid for IPv4" : "Anuwai ya IP iliyotolewa si halali kwa IPv4", + "The given IP range is not valid for IPv6" : "Anuwai ya IP iliyotolewa si halali kwa IPv6", + "The given time span is invalid" : "Muda uliyopewa si sahihi", + "The given start time is invalid" : "Muda wa kuanza uliyopewa si sahihi", + "The given end time is invalid" : "Muda wa kumaliza uliyopewa ni batili", + "The given group does not exist" : "Kundi lililotolewa halipo", + "File" : "Faili", + "File created" : "Faili imeundwa", + "File updated" : "Faili imesasishwa", + "File renamed" : "Faili imepewa jina upya", + "File deleted" : "Faili imefutwa", + "File accessed" : "Faili imefikiwa", + "File copied" : "Faili imenakiliwa", + "Tag assigned" : "Lebo imetolewa", + "Someone" : "Mtu fulani", + "%s created %s" : "%s imeundwa %s", + "%s modified %s" : "%s imeboreshwa %s", + "%s deleted %s" : "%s imefutwa %s", + "%s accessed %s" : "%s imefikiwa %s", + "%s renamed %s" : "%s imepewa jina jipya %s", + "%s copied %s" : "%s imenakiliwa %s", + "%s assigned %s to %s" : "%simekabidhiwa %s kwa %s", + "Operation #%s does not exist" : "Operesheni #%s haipo", + "Entity %s does not exist" : "Huluki %s haipo", + "Entity %s is invalid" : "Huluki %s si sahihi", + "No events are chosen." : "Hakuna matukio yaliyochaguliwa.", + "Entity %s has no event %s" : "Huluki %s haina tukio %s", + "Operation %s does not exist" : "Operesheni %s haipo", + "Operation %s is invalid" : "Operesheni %s si sahihi", + "At least one check needs to be provided" : "Angalau hundi moja inahitaji kutolewa", + "The provided operation data is too long" : "Taarifa za operesheni zilizotolewa ni ndefu sana", + "Invalid check provided" : "Hundi batili imetolewa", + "Check %s does not exist" : "Angalia %s haipo", + "Check %s is invalid" : "Angalia %s si sahihi", + "Check %s is not allowed with this entity" : "Kukagua %s hairuhusiwi na huluki hii", + "The provided check value is too long" : "Thamani ya hundi iliyotolewa ni ndefu sana", + "Check #%s does not exist" : "Ukaguzi #%s haupo", + "Check %s is invalid or does not exist" : "Angalia %s si sahihi au haipo", + "Flow" : "Mtiririko", + "Nextcloud workflow engine" : "Injini ya mtiririko wa kazi ya Nextcloud", + "Select a filter" : "Chagua kichujio", + "Select a comparator" : "Chagua kipimajoto", + "Remove filter" : "Ondoa kichujio", + "Folder" : "Kisanduku", + "Images" : "Picha", + "Office documents" : "Nyaraka za ofisi", + "PDF documents" : "Nyaraka za PDF", + "Custom MIME type" : "Aina ya MIME ya kawaida", + "Custom mimetype" : "Aina maalum ya mime", + "Select a file type" : "Chagua aina ya faili", + "e.g. httpd/unix-directory" : "e.g. httpd/unix-directory", + "Please enter a valid time span" : "Tafadhali ingiza muda halali", + "Files WebDAV" : "Faili za WebDAV", + "Custom URL" : "URL maalum", + "Select a request URL" : "Chagua URL ya ombi", + "Android client" : "Mteja wa Android", + "iOS client" : "Mteja wa iOS", + "Desktop client" : "Mteja wa eneo-kazi", + "Thunderbird & Outlook addons" : "Viongezeo vya Thunderbird na Outlook", + "Custom user agent" : "Wakala maalum wa mtumiaji ", + "Select a user agent" : "Chagua wakala wa mtumiaji", + "Select groups" : "Chagua makundi", + "Groups" : "Makundi", + "Type to search for group …" : "Andika kutafuta kikundi …", + "Select a trigger" : "Chagua kichocheo", + "At least one event must be selected" : "Angalau tukio moja lazima lichaguliwe", + "Add new flow" : "Ongeza mtiririko mpya", + "The configuration is invalid" : "Usanidi si sahihi", + "Active" : "Hai", + "Save" : "Hifadhi", + "When" : "Lini", + "and" : "na", + "Add a new filter" : "Ongeza kichujio kipya", + "Cancel" : "Sitisha", + "Delete" : "Futa", + "Available flows" : "Mitiririko inayopatikana", + "For details on how to write your own flow, check out the development documentation." : "Kwa maelezo kuhusu jinsi ya kuandika mtiririko wako mwenyewe, angalia nyaraka za maendeleo.", + "No flows installed" : "Hakuna mtiririko uliowekwa", + "Ask your administrator to install new flows." : "Muulize msimamizi wako aweke mitiririko mipya.", + "More flows" : "Mtiririko zaidi", + "Browse the App Store" : "Vinjari hifadhi ya Programu", + "Show less" : "Onesha kidogo", + "Show more" : "Onesha zaidi", + "Configured flows" : "Mitiririko iliyosanidiwa", + "Your flows" : "Mitiririko yako", + "No flows configured" : "Hakuna mitiririko iliyosanidiwa", + "matches" : "inafanana", + "does not match" : "haifanani", + "is" : "ni", + "is not" : "si", + "File name" : "Jina la faili", + "File MIME type" : "Aina ya MIME ya faili", + "File size (upload)" : "Ukubwa wa faili (kupakia)", + "less" : "chini", + "less or equals" : "chini au sawa na", + "greater or equals" : "kubwa au sawa na", + "greater" : "kubwa", + "Request remote address" : "Omba anwani ya mbali", + "matches IPv4" : "Inafanana na IPv4", + "does not match IPv4" : "haifanani na IPv4", + "matches IPv6" : "inafanana na IPv6", + "does not match IPv6" : "haifanani na IPv6", + "File system tag" : "Lebo ya mfumo wa faili", + "is tagged with" : "Imewekewa alama na", + "is not tagged with" : "haijawekewa alama na", + "Request URL" : "Omba URL", + "Request time" : "Muda wa ombi", + "between" : "kati ya", + "not between" : "si kati ya", + "Request user agent" : "Omba wakala wa mtumiaji", + "Group membership" : "Uanachama wa kikundi", + "is member of" : "ni mwanachama wa", + "is not member of" : "si mwanachama wa" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/tr.js b/apps/workflowengine/l10n/tr.js index b211ffe2c72..41f1f784099 100644 --- a/apps/workflowengine/l10n/tr.js +++ b/apps/workflowengine/l10n/tr.js @@ -4,7 +4,7 @@ OC.L10N.register( "The given operator is invalid" : "Belirtilen işlem geçersiz", "The given regular expression is invalid" : "Belirtilen kurallı ifade geçersiz", "The given file size is invalid" : "Belirtilen dosya boyutu geçersiz", - "The given tag id is invalid" : "Belirtilen etiket kodu geçersiz", + "The given tag id is invalid" : "Belirtilen etiket kimliği geçersiz", "The given IP range is invalid" : "Belirtilen IP adresi aralığı geçersiz", "The given IP range is not valid for IPv4" : "Belirtilen IP adresi aralığı IPv4 için geçersiz", "The given IP range is not valid for IPv6" : "Belirtilen IP adresi aralığı IPv6 için geçersiz", @@ -48,43 +48,50 @@ OC.L10N.register( "Nextcloud workflow engine" : "Nextcloud iş akışı işleyici", "Select a filter" : "Bir süzgeç seçin", "Select a comparator" : "Bir karşılaştırıcı seçin", - "Select a file type" : "Bir dosya türü seçin", - "e.g. httpd/unix-directory" : "örnek httpd/unix-directory", + "Remove filter" : "Süzgeci kaldır", "Folder" : "Klasör", "Images" : "Görseller", "Office documents" : "Office belgeleri", "PDF documents" : "PDF belgeleri", "Custom MIME type" : "Özel MIME türü", "Custom mimetype" : "Özel MIME türü", + "Select a file type" : "Bir dosya türü seçin", + "e.g. httpd/unix-directory" : "örnek httpd/unix-directory", "Please enter a valid time span" : "Lütfen geçerli bir tarih aralığı seçin", - "Select a request URL" : "Bir istek adresi seçin", - "Predefined URLs" : "Hazır adresler", "Files WebDAV" : "Dosya WebDAV", - "Others" : "Diğerleri", "Custom URL" : "Özel adres", - "Select a user agent" : "Bir kullanıcı uygulaması seçin", + "Select a request URL" : "Bir istek adresi seçin", "Android client" : "Android istemcisi", "iOS client" : "iOS istemcisi", - "Desktop client" : "Masaüstü istemcisi", + "Desktop client" : "Bilgisayar istemcisi", "Thunderbird & Outlook addons" : "Thunderbird ve Outlook eklentileri", "Custom user agent" : "Özel kullanıcı uygulaması", + "Select a user agent" : "Bir kullanıcı uygulaması seçin", + "Select groups" : "Grupları seçin", + "Groups" : "Gruplar", + "Type to search for group …" : "Grup aramak için yazmaya başlayın…", + "Select a trigger" : "Bir tetikleyici seçin", "At least one event must be selected" : "En az bir etkinlik seçilmelidir", "Add new flow" : "Akış ekle", + "The configuration is invalid" : "Yapılandırma geçersiz", + "Active" : "Etkin", + "Save" : "Kaydet", "When" : "Şu zamanda", "and" : "ve", + "Add a new filter" : "Yeni süzgeç ekle", "Cancel" : "İptal", "Delete" : "Sil", - "The configuration is invalid" : "Yapılandırma geçersiz", - "Active" : "Etkin", - "Save" : "Kaydet", "Available flows" : "Kullanılabilecek akışlar", "For details on how to write your own flow, check out the development documentation." : "Kendi akışınızı nasıl yazacağınızı öğrenmek için geliştirme belgelerine bakabilirsiniz.", + "No flows installed" : "Herhangi bir akış kurulmamış", + "Ask your administrator to install new flows." : "Yöneticinizden yeni akışlar kurmasını isteyin.", "More flows" : "Diğer akışlar", "Browse the App Store" : "Uygulama mağazasına göz atın", "Show less" : "Daha az ayrıntı", "Show more" : "Daha çok ayrıntı", "Configured flows" : "Yapılandırılmış akışlar", "Your flows" : "Akışlarınız", + "No flows configured" : "Herhangi bir akış yapılandırılmamış", "matches" : "şuna uyan", "does not match" : "şuna uymayan", "is" : "şu olan", @@ -104,17 +111,13 @@ OC.L10N.register( "File system tag" : "Dosya sistemi etiketi", "is tagged with" : "şununla etiketlenmiş", "is not tagged with" : "şununla etiketlenmemiş", - "Request URL" : "İstek Adresi", + "Request URL" : "İstek adresi", "Request time" : "İstek zamanı", "between" : "şunların arasında olan", "not between" : "şunların arasında olmayan", "Request user agent" : "Kullanıcı uygulaması istensin", - "User group membership" : "Kullanıcı grubu üyeliği", + "Group membership" : "Grup üyeliği", "is member of" : "şunun üyesi olan", - "is not member of" : "şunun üyesi olmayan", - "Select a tag" : "Etiket seçin", - "No results" : "Herhangi bir sonuç bulunamadı", - "%s (invisible)" : "%s (görünmez)", - "%s (restricted)" : "%s (kısıtlı)" + "is not member of" : "şunun üyesi olmayan" }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/workflowengine/l10n/tr.json b/apps/workflowengine/l10n/tr.json index c5d0ecedfa9..eb5dccff499 100644 --- a/apps/workflowengine/l10n/tr.json +++ b/apps/workflowengine/l10n/tr.json @@ -2,7 +2,7 @@ "The given operator is invalid" : "Belirtilen işlem geçersiz", "The given regular expression is invalid" : "Belirtilen kurallı ifade geçersiz", "The given file size is invalid" : "Belirtilen dosya boyutu geçersiz", - "The given tag id is invalid" : "Belirtilen etiket kodu geçersiz", + "The given tag id is invalid" : "Belirtilen etiket kimliği geçersiz", "The given IP range is invalid" : "Belirtilen IP adresi aralığı geçersiz", "The given IP range is not valid for IPv4" : "Belirtilen IP adresi aralığı IPv4 için geçersiz", "The given IP range is not valid for IPv6" : "Belirtilen IP adresi aralığı IPv6 için geçersiz", @@ -46,43 +46,50 @@ "Nextcloud workflow engine" : "Nextcloud iş akışı işleyici", "Select a filter" : "Bir süzgeç seçin", "Select a comparator" : "Bir karşılaştırıcı seçin", - "Select a file type" : "Bir dosya türü seçin", - "e.g. httpd/unix-directory" : "örnek httpd/unix-directory", + "Remove filter" : "Süzgeci kaldır", "Folder" : "Klasör", "Images" : "Görseller", "Office documents" : "Office belgeleri", "PDF documents" : "PDF belgeleri", "Custom MIME type" : "Özel MIME türü", "Custom mimetype" : "Özel MIME türü", + "Select a file type" : "Bir dosya türü seçin", + "e.g. httpd/unix-directory" : "örnek httpd/unix-directory", "Please enter a valid time span" : "Lütfen geçerli bir tarih aralığı seçin", - "Select a request URL" : "Bir istek adresi seçin", - "Predefined URLs" : "Hazır adresler", "Files WebDAV" : "Dosya WebDAV", - "Others" : "Diğerleri", "Custom URL" : "Özel adres", - "Select a user agent" : "Bir kullanıcı uygulaması seçin", + "Select a request URL" : "Bir istek adresi seçin", "Android client" : "Android istemcisi", "iOS client" : "iOS istemcisi", - "Desktop client" : "Masaüstü istemcisi", + "Desktop client" : "Bilgisayar istemcisi", "Thunderbird & Outlook addons" : "Thunderbird ve Outlook eklentileri", "Custom user agent" : "Özel kullanıcı uygulaması", + "Select a user agent" : "Bir kullanıcı uygulaması seçin", + "Select groups" : "Grupları seçin", + "Groups" : "Gruplar", + "Type to search for group …" : "Grup aramak için yazmaya başlayın…", + "Select a trigger" : "Bir tetikleyici seçin", "At least one event must be selected" : "En az bir etkinlik seçilmelidir", "Add new flow" : "Akış ekle", + "The configuration is invalid" : "Yapılandırma geçersiz", + "Active" : "Etkin", + "Save" : "Kaydet", "When" : "Şu zamanda", "and" : "ve", + "Add a new filter" : "Yeni süzgeç ekle", "Cancel" : "İptal", "Delete" : "Sil", - "The configuration is invalid" : "Yapılandırma geçersiz", - "Active" : "Etkin", - "Save" : "Kaydet", "Available flows" : "Kullanılabilecek akışlar", "For details on how to write your own flow, check out the development documentation." : "Kendi akışınızı nasıl yazacağınızı öğrenmek için geliştirme belgelerine bakabilirsiniz.", + "No flows installed" : "Herhangi bir akış kurulmamış", + "Ask your administrator to install new flows." : "Yöneticinizden yeni akışlar kurmasını isteyin.", "More flows" : "Diğer akışlar", "Browse the App Store" : "Uygulama mağazasına göz atın", "Show less" : "Daha az ayrıntı", "Show more" : "Daha çok ayrıntı", "Configured flows" : "Yapılandırılmış akışlar", "Your flows" : "Akışlarınız", + "No flows configured" : "Herhangi bir akış yapılandırılmamış", "matches" : "şuna uyan", "does not match" : "şuna uymayan", "is" : "şu olan", @@ -102,17 +109,13 @@ "File system tag" : "Dosya sistemi etiketi", "is tagged with" : "şununla etiketlenmiş", "is not tagged with" : "şununla etiketlenmemiş", - "Request URL" : "İstek Adresi", + "Request URL" : "İstek adresi", "Request time" : "İstek zamanı", "between" : "şunların arasında olan", "not between" : "şunların arasında olmayan", "Request user agent" : "Kullanıcı uygulaması istensin", - "User group membership" : "Kullanıcı grubu üyeliği", + "Group membership" : "Grup üyeliği", "is member of" : "şunun üyesi olan", - "is not member of" : "şunun üyesi olmayan", - "Select a tag" : "Etiket seçin", - "No results" : "Herhangi bir sonuç bulunamadı", - "%s (invisible)" : "%s (görünmez)", - "%s (restricted)" : "%s (kısıtlı)" + "is not member of" : "şunun üyesi olmayan" },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/ug.js b/apps/workflowengine/l10n/ug.js new file mode 100644 index 00000000000..d889e4db86e --- /dev/null +++ b/apps/workflowengine/l10n/ug.js @@ -0,0 +1,123 @@ +OC.L10N.register( + "workflowengine", + { + "The given operator is invalid" : "بېرىلگەن تىجارەتچى ئىناۋەتسىز", + "The given regular expression is invalid" : "بېرىلگەن دائىملىق ئىپادىلەش ئىناۋەتسىز", + "The given file size is invalid" : "بېرىلگەن ھۆججەت چوڭلۇقى ئىناۋەتسىز", + "The given tag id is invalid" : "بېرىلگەن بەلگە id ئىناۋەتسىز", + "The given IP range is invalid" : "بېرىلگەن IP دائىرىسى ئىناۋەتسىز", + "The given IP range is not valid for IPv4" : "بېرىلگەن IP دائىرىسى IPv4 ئۈچۈن ئىناۋەتلىك ئەمەس", + "The given IP range is not valid for IPv6" : "بېرىلگەن IP دائىرىسى IPv6 ئۈچۈن ئىناۋەتلىك ئەمەس", + "The given time span is invalid" : "بېرىلگەن ۋاقىت ئىناۋەتسىز", + "The given start time is invalid" : "بېرىلگەن باشلىنىش ۋاقتى ئىناۋەتسىز", + "The given end time is invalid" : "بېرىلگەن ئاخىرقى ۋاقىت ئىناۋەتسىز", + "The given group does not exist" : "بېرىلگەن گۇرۇپپا مەۋجۇت ئەمەس", + "File" : "File", + "File created" : "ھۆججەت قۇرۇلدى", + "File updated" : "ھۆججەت يېڭىلاندى", + "File renamed" : "ھۆججەتنىڭ ئىسمى ئۆزگەرتىلدى", + "File deleted" : "ھۆججەت ئۆچۈرۈلدى", + "File accessed" : "ھۆججەت زىيارەت قىلىندى", + "File copied" : "ھۆججەت كۆچۈرۈلدى", + "Tag assigned" : "بەلگە تەقسىم قىلىندى", + "Someone" : "بىرەيلەن", + "%s created %s" : "% s% s نى قۇردى", + "%s modified %s" : "% s ئۆزگەرتىلگەن% s", + "%s deleted %s" : "% s ئۆچۈرۈلدى", + "%s accessed %s" : "% s زىيارەت قىلىندى% s", + "%s renamed %s" : "% s نىڭ ئىسمى% s", + "%s copied %s" : "% s كۆچۈرۈلگەن% s", + "%s assigned %s to %s" : "% s% s دىن% s نى تەقسىم قىلدى", + "Operation #%s does not exist" : "مەشغۇلات #% s مەۋجۇت ئەمەس", + "Entity %s does not exist" : "ئورۇن% s مەۋجۇت ئەمەس", + "Entity %s is invalid" : "ئورۇن% s ئىناۋەتسىز", + "No events are chosen." : "ھېچقانداق پائالىيەت تاللانمىدى.", + "Entity %s has no event %s" : "ئورۇن% s نىڭ ھېچقانداق پائالىيىتى يوق", + "Operation %s does not exist" : "% S مەشغۇلاتى مەۋجۇت ئەمەس", + "Operation %s is invalid" : "% S مەشغۇلاتى ئىناۋەتسىز", + "At least one check needs to be provided" : "كەم دېگەندە بىر تەكشۈرۈش بىلەن تەمىنلەش كېرەك", + "The provided operation data is too long" : "تەمىنلەنگەن مەشغۇلات سانلىق مەلۇماتلىرى بەك ئۇزۇن", + "Invalid check provided" : "ئىناۋەتسىز تەكشۈرۈش تەمىنلەندى", + "Check %s does not exist" : "تەكشۈرۈش% s مەۋجۇت ئەمەس", + "Check %s is invalid" : "تەكشۈرۈش% s ئىناۋەتسىز", + "Check %s is not allowed with this entity" : "بۇ ئورۇن بىلەن% s نى تەكشۈرۈشكە بولمايدۇ", + "The provided check value is too long" : "تەمىنلەنگەن تەكشۈرۈش قىممىتى بەك ئۇزۇن", + "Check #%s does not exist" : "تەكشۈرۈش #% s مەۋجۇت ئەمەس", + "Check %s is invalid or does not exist" : "تەكشۈرۈش% s ئىناۋەتسىز ياكى مەۋجۇت ئەمەس", + "Flow" : "Flow", + "Nextcloud workflow engine" : "Nextcloud خىزمەت ئېقىمى ماتورى", + "Select a filter" : "سۈزگۈچنى تاللاڭ", + "Select a comparator" : "سېلىشتۇرغۇچىنى تاللاڭ", + "Remove filter" : "سۈزگۈچنى ئۆچۈرۈڭ", + "Folder" : "قىسقۇچ", + "Images" : "سۈرەتلەر", + "Office documents" : "ئىشخانا ھۆججەتلىرى", + "PDF documents" : "PDF ھۆججەتلىرى", + "Custom MIME type" : "ئىختىيارى MIME تىپى", + "Custom mimetype" : "Custom mimetype", + "Select a file type" : "ھۆججەت تىپىنى تاللاڭ", + "e.g. httpd/unix-directory" : "مەسىلەن httpd / unix- مۇندەرىجە", + "Please enter a valid time span" : "ئىناۋەتلىك ۋاقىتنى كىرگۈزۈڭ", + "Files WebDAV" : "ھۆججەتلەر WebDAV", + "Custom URL" : "ئىختىيارى URL", + "Select a request URL" : "تەلەپ URL نى تاللاڭ", + "Android client" : "ئاندىرويىد خېرىدارى", + "iOS client" : "iOS خېرىدارى", + "Desktop client" : "ئۈستەل يۈزى خېرىدارى", + "Thunderbird & Outlook addons" : "Thunderbird & Outlook خۇرۇچلىرى", + "Custom user agent" : "ئىشلەتكۈچى ۋاكالەتچىسى", + "Select a user agent" : "ئىشلەتكۈچى ۋاكالەتچىسىنى تاللاڭ", + "Select groups" : "گۇرۇپپىلارنى تاللاڭ", + "Groups" : "گۇرۇپپا", + "Type to search for group …" : "گۇرۇپپا ئىزدەش ئۈچۈن كىرگۈزۈڭ…", + "Select a trigger" : "قوزغاتقۇچنى تاللاڭ", + "At least one event must be selected" : "كەم دېگەندە بىر پائالىيەتنى تاللاش كېرەك", + "Add new flow" : "يېڭى ئېقىن قوشۇڭ", + "The configuration is invalid" : "سەپلىمىسى ئىناۋەتسىز", + "Active" : "ئاكتىپ", + "Save" : "ساقلا", + "When" : "قاچان", + "and" : "ۋە", + "Add a new filter" : "يېڭى سۈزگۈچ قوشۇڭ", + "Cancel" : "ۋاز كەچ", + "Delete" : "ئۆچۈر", + "Available flows" : "ئىشلەتكىلى بولىدىغان ئېقىن", + "For details on how to write your own flow, check out the development documentation." : "ئۆزىڭىزنىڭ ئېقىمىنى قانداق يېزىش ھەققىدىكى تەپسىلاتلارنى تەرەققىيات ھۆججىتىنى كۆرۈڭ.", + "No flows installed" : "ھېچقانداق ئېقىم ئورنىتىلمىدى", + "Ask your administrator to install new flows." : "باشقۇرغۇچىڭىزدىن يېڭى ئېقىن ئورنىتىشنى تەلەپ قىلىڭ.", + "More flows" : "تېخىمۇ كۆپ ئېقىن", + "Browse the App Store" : "ئەپ دۇكىنىنى كۆرۈڭ", + "Show less" : "ئازراق كۆرسەت", + "Show more" : "تېخىمۇ كۆپ كۆرسەت", + "Configured flows" : "تەڭشەلگەن ئېقىن", + "Your flows" : "ئېقىمىڭىز", + "No flows configured" : "ھېچقانداق ئېقىم سەپلەنمىگەن", + "matches" : "match", + "does not match" : "ماس كەلمەيدۇ", + "is" : "is", + "is not" : "ئەمەس", + "File name" : "ھۆججەت ئىسمى", + "File MIME type" : "ھۆججەت MIME تىپى", + "File size (upload)" : "ھۆججەت چوڭلۇقى (يوللاش)", + "less" : "ئاز", + "less or equals" : "ئاز ياكى باراۋەر", + "greater or equals" : "چوڭ ياكى باراۋەر", + "greater" : "تېخىمۇ چوڭ", + "Request remote address" : "يىراقتىكى ئادرېسنى تەلەپ قىلىڭ", + "matches IPv4" : "match IPv4", + "does not match IPv4" : "IPv4 غا ماس كەلمەيدۇ", + "matches IPv6" : "match IPv6", + "does not match IPv6" : "IPv6 غا ماس كەلمەيدۇ", + "File system tag" : "ھۆججەت سىستېمىسى بەلگىسى", + "is tagged with" : "with tagged with", + "is not tagged with" : "بەلگىسى يوق", + "Request URL" : "URL نى تەلەپ قىلىڭ", + "Request time" : "ۋاقىت تەلەپ قىلىش", + "between" : "between", + "not between" : "ئارىسىدا ئەمەس", + "Request user agent" : "ئىشلەتكۈچى ۋاكالەتچىسىنى تەلەپ قىلىڭ", + "Group membership" : "گۇرۇپپا ئەزالىقى", + "is member of" : "نىڭ ئەزاسى", + "is not member of" : "ئەزا ئەمەس" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/ug.json b/apps/workflowengine/l10n/ug.json new file mode 100644 index 00000000000..03070e8f9a1 --- /dev/null +++ b/apps/workflowengine/l10n/ug.json @@ -0,0 +1,121 @@ +{ "translations": { + "The given operator is invalid" : "بېرىلگەن تىجارەتچى ئىناۋەتسىز", + "The given regular expression is invalid" : "بېرىلگەن دائىملىق ئىپادىلەش ئىناۋەتسىز", + "The given file size is invalid" : "بېرىلگەن ھۆججەت چوڭلۇقى ئىناۋەتسىز", + "The given tag id is invalid" : "بېرىلگەن بەلگە id ئىناۋەتسىز", + "The given IP range is invalid" : "بېرىلگەن IP دائىرىسى ئىناۋەتسىز", + "The given IP range is not valid for IPv4" : "بېرىلگەن IP دائىرىسى IPv4 ئۈچۈن ئىناۋەتلىك ئەمەس", + "The given IP range is not valid for IPv6" : "بېرىلگەن IP دائىرىسى IPv6 ئۈچۈن ئىناۋەتلىك ئەمەس", + "The given time span is invalid" : "بېرىلگەن ۋاقىت ئىناۋەتسىز", + "The given start time is invalid" : "بېرىلگەن باشلىنىش ۋاقتى ئىناۋەتسىز", + "The given end time is invalid" : "بېرىلگەن ئاخىرقى ۋاقىت ئىناۋەتسىز", + "The given group does not exist" : "بېرىلگەن گۇرۇپپا مەۋجۇت ئەمەس", + "File" : "File", + "File created" : "ھۆججەت قۇرۇلدى", + "File updated" : "ھۆججەت يېڭىلاندى", + "File renamed" : "ھۆججەتنىڭ ئىسمى ئۆزگەرتىلدى", + "File deleted" : "ھۆججەت ئۆچۈرۈلدى", + "File accessed" : "ھۆججەت زىيارەت قىلىندى", + "File copied" : "ھۆججەت كۆچۈرۈلدى", + "Tag assigned" : "بەلگە تەقسىم قىلىندى", + "Someone" : "بىرەيلەن", + "%s created %s" : "% s% s نى قۇردى", + "%s modified %s" : "% s ئۆزگەرتىلگەن% s", + "%s deleted %s" : "% s ئۆچۈرۈلدى", + "%s accessed %s" : "% s زىيارەت قىلىندى% s", + "%s renamed %s" : "% s نىڭ ئىسمى% s", + "%s copied %s" : "% s كۆچۈرۈلگەن% s", + "%s assigned %s to %s" : "% s% s دىن% s نى تەقسىم قىلدى", + "Operation #%s does not exist" : "مەشغۇلات #% s مەۋجۇت ئەمەس", + "Entity %s does not exist" : "ئورۇن% s مەۋجۇت ئەمەس", + "Entity %s is invalid" : "ئورۇن% s ئىناۋەتسىز", + "No events are chosen." : "ھېچقانداق پائالىيەت تاللانمىدى.", + "Entity %s has no event %s" : "ئورۇن% s نىڭ ھېچقانداق پائالىيىتى يوق", + "Operation %s does not exist" : "% S مەشغۇلاتى مەۋجۇت ئەمەس", + "Operation %s is invalid" : "% S مەشغۇلاتى ئىناۋەتسىز", + "At least one check needs to be provided" : "كەم دېگەندە بىر تەكشۈرۈش بىلەن تەمىنلەش كېرەك", + "The provided operation data is too long" : "تەمىنلەنگەن مەشغۇلات سانلىق مەلۇماتلىرى بەك ئۇزۇن", + "Invalid check provided" : "ئىناۋەتسىز تەكشۈرۈش تەمىنلەندى", + "Check %s does not exist" : "تەكشۈرۈش% s مەۋجۇت ئەمەس", + "Check %s is invalid" : "تەكشۈرۈش% s ئىناۋەتسىز", + "Check %s is not allowed with this entity" : "بۇ ئورۇن بىلەن% s نى تەكشۈرۈشكە بولمايدۇ", + "The provided check value is too long" : "تەمىنلەنگەن تەكشۈرۈش قىممىتى بەك ئۇزۇن", + "Check #%s does not exist" : "تەكشۈرۈش #% s مەۋجۇت ئەمەس", + "Check %s is invalid or does not exist" : "تەكشۈرۈش% s ئىناۋەتسىز ياكى مەۋجۇت ئەمەس", + "Flow" : "Flow", + "Nextcloud workflow engine" : "Nextcloud خىزمەت ئېقىمى ماتورى", + "Select a filter" : "سۈزگۈچنى تاللاڭ", + "Select a comparator" : "سېلىشتۇرغۇچىنى تاللاڭ", + "Remove filter" : "سۈزگۈچنى ئۆچۈرۈڭ", + "Folder" : "قىسقۇچ", + "Images" : "سۈرەتلەر", + "Office documents" : "ئىشخانا ھۆججەتلىرى", + "PDF documents" : "PDF ھۆججەتلىرى", + "Custom MIME type" : "ئىختىيارى MIME تىپى", + "Custom mimetype" : "Custom mimetype", + "Select a file type" : "ھۆججەت تىپىنى تاللاڭ", + "e.g. httpd/unix-directory" : "مەسىلەن httpd / unix- مۇندەرىجە", + "Please enter a valid time span" : "ئىناۋەتلىك ۋاقىتنى كىرگۈزۈڭ", + "Files WebDAV" : "ھۆججەتلەر WebDAV", + "Custom URL" : "ئىختىيارى URL", + "Select a request URL" : "تەلەپ URL نى تاللاڭ", + "Android client" : "ئاندىرويىد خېرىدارى", + "iOS client" : "iOS خېرىدارى", + "Desktop client" : "ئۈستەل يۈزى خېرىدارى", + "Thunderbird & Outlook addons" : "Thunderbird & Outlook خۇرۇچلىرى", + "Custom user agent" : "ئىشلەتكۈچى ۋاكالەتچىسى", + "Select a user agent" : "ئىشلەتكۈچى ۋاكالەتچىسىنى تاللاڭ", + "Select groups" : "گۇرۇپپىلارنى تاللاڭ", + "Groups" : "گۇرۇپپا", + "Type to search for group …" : "گۇرۇپپا ئىزدەش ئۈچۈن كىرگۈزۈڭ…", + "Select a trigger" : "قوزغاتقۇچنى تاللاڭ", + "At least one event must be selected" : "كەم دېگەندە بىر پائالىيەتنى تاللاش كېرەك", + "Add new flow" : "يېڭى ئېقىن قوشۇڭ", + "The configuration is invalid" : "سەپلىمىسى ئىناۋەتسىز", + "Active" : "ئاكتىپ", + "Save" : "ساقلا", + "When" : "قاچان", + "and" : "ۋە", + "Add a new filter" : "يېڭى سۈزگۈچ قوشۇڭ", + "Cancel" : "ۋاز كەچ", + "Delete" : "ئۆچۈر", + "Available flows" : "ئىشلەتكىلى بولىدىغان ئېقىن", + "For details on how to write your own flow, check out the development documentation." : "ئۆزىڭىزنىڭ ئېقىمىنى قانداق يېزىش ھەققىدىكى تەپسىلاتلارنى تەرەققىيات ھۆججىتىنى كۆرۈڭ.", + "No flows installed" : "ھېچقانداق ئېقىم ئورنىتىلمىدى", + "Ask your administrator to install new flows." : "باشقۇرغۇچىڭىزدىن يېڭى ئېقىن ئورنىتىشنى تەلەپ قىلىڭ.", + "More flows" : "تېخىمۇ كۆپ ئېقىن", + "Browse the App Store" : "ئەپ دۇكىنىنى كۆرۈڭ", + "Show less" : "ئازراق كۆرسەت", + "Show more" : "تېخىمۇ كۆپ كۆرسەت", + "Configured flows" : "تەڭشەلگەن ئېقىن", + "Your flows" : "ئېقىمىڭىز", + "No flows configured" : "ھېچقانداق ئېقىم سەپلەنمىگەن", + "matches" : "match", + "does not match" : "ماس كەلمەيدۇ", + "is" : "is", + "is not" : "ئەمەس", + "File name" : "ھۆججەت ئىسمى", + "File MIME type" : "ھۆججەت MIME تىپى", + "File size (upload)" : "ھۆججەت چوڭلۇقى (يوللاش)", + "less" : "ئاز", + "less or equals" : "ئاز ياكى باراۋەر", + "greater or equals" : "چوڭ ياكى باراۋەر", + "greater" : "تېخىمۇ چوڭ", + "Request remote address" : "يىراقتىكى ئادرېسنى تەلەپ قىلىڭ", + "matches IPv4" : "match IPv4", + "does not match IPv4" : "IPv4 غا ماس كەلمەيدۇ", + "matches IPv6" : "match IPv6", + "does not match IPv6" : "IPv6 غا ماس كەلمەيدۇ", + "File system tag" : "ھۆججەت سىستېمىسى بەلگىسى", + "is tagged with" : "with tagged with", + "is not tagged with" : "بەلگىسى يوق", + "Request URL" : "URL نى تەلەپ قىلىڭ", + "Request time" : "ۋاقىت تەلەپ قىلىش", + "between" : "between", + "not between" : "ئارىسىدا ئەمەس", + "Request user agent" : "ئىشلەتكۈچى ۋاكالەتچىسىنى تەلەپ قىلىڭ", + "Group membership" : "گۇرۇپپا ئەزالىقى", + "is member of" : "نىڭ ئەزاسى", + "is not member of" : "ئەزا ئەمەس" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/uk.js b/apps/workflowengine/l10n/uk.js index a514ebbbb7f..a9583382441 100644 --- a/apps/workflowengine/l10n/uk.js +++ b/apps/workflowengine/l10n/uk.js @@ -1,17 +1,17 @@ OC.L10N.register( "workflowengine", { - "The given operator is invalid" : "Даний оператор недійсний", - "The given regular expression is invalid" : "Даний регулярний вираз недійсний", - "The given file size is invalid" : "Даний розмір файлу недійсний", - "The given tag id is invalid" : "Наданий ідентифікатор тегу недійсний", - "The given IP range is invalid" : "Даний діапазон IP-адрес недійсний", - "The given IP range is not valid for IPv4" : "Наведений діапазон IP-адрес недійсний для IPv4", - "The given IP range is not valid for IPv6" : "Наведений діапазон IP-адрес недійсний для IPv6", - "The given time span is invalid" : "The given time span is invalid", - "The given start time is invalid" : "Вказаний час початку недійсний", - "The given end time is invalid" : "Указаний час завершення недійсний", - "The given group does not exist" : "Дана група не існує", + "The given operator is invalid" : "Зазначений оператор недійсний", + "The given regular expression is invalid" : "Зазначений регулярний вираз недійсний", + "The given file size is invalid" : "Зазначений розмір файлу недійсний", + "The given tag id is invalid" : "Зазначений ідентифікатор мітки недійсний", + "The given IP range is invalid" : "Зазначений діапазон IP-адрес недійсний", + "The given IP range is not valid for IPv4" : "Зазначений діапазон IP-адрес недійсний для IPv4", + "The given IP range is not valid for IPv6" : "Зазначений діапазон IP-адрес недійсний для IPv6", + "The given time span is invalid" : "Зазначений часовий проміжок недійсний", + "The given start time is invalid" : "Зазначений час початку недійсний", + "The given end time is invalid" : "Зазначений час завершення недійсний", + "The given group does not exist" : "Зазначена група не існує", "File" : "Файл", "File created" : "Файл створено", "File updated" : "Файл оновлено", @@ -19,40 +19,85 @@ OC.L10N.register( "File deleted" : "Файл вилучено", "File accessed" : "Отримано доступ до файлу", "File copied" : "Файл скопійовано", - "Tag assigned" : "Призначено теґ", + "Tag assigned" : "Призначено мітку", "Someone" : "Хтось", + "%s created %s" : "%s створив(-ла) %s", + "%s modified %s" : "%s змінив(-ла) %s", + "%s deleted %s" : "%s вилучив(-ла) %s", + "%s accessed %s" : "%s отримав(-ла) доступ до %s", + "%s renamed %s" : "%s перейменував(-ла) %s", + "%s copied %s" : "%s скопіював(-ла) %s", + "%s assigned %s to %s" : "%s призначив(-ла) мітку%s файлу %s", "Operation #%s does not exist" : "Операція №%s не існує", + "Entity %s does not exist" : "Об'єкт %s відсутній ", + "Entity %s is invalid" : "Об'єкт %s не дійсний", + "No events are chosen." : "Не вибрано жодної події.", + "Entity %s has no event %s" : "Об'єкт %s не має події %s", "Operation %s does not exist" : "Операція %s не існує", "Operation %s is invalid" : "Операція %s недійсна", + "At least one check needs to be provided" : "Потрібно визначити принаймні одну перевірку", + "The provided operation data is too long" : "Надано задовгі дані для операції", + "Invalid check provided" : "Зазначено недійсну перевірку", "Check %s does not exist" : "Перевірка %s не існує", - "Check %s is invalid" : "Чек %s недійсний", + "Check %s is invalid" : "Перевірка %s недійсна", + "Check %s is not allowed with this entity" : "Перевірку %s не дозволено для цієї сутності", + "The provided check value is too long" : "Зазначено задовге перевірочне значення", "Check #%s does not exist" : "Перевірка №%s не існує", - "Check %s is invalid or does not exist" : "Чек %s недійсний або не існує", + "Check %s is invalid or does not exist" : "Перевірка %s недійсна або не існує", "Flow" : "Процеси", "Nextcloud workflow engine" : "Керування робочими процесами у Nextcloud", + "Select a filter" : "Виберіть фільтр", + "Select a comparator" : "Виберіть засіб для порівняння", + "Remove filter" : "Вилучити фільтр", "Folder" : "Каталог", "Images" : "Зображення", - "Predefined URLs" : "Попередньо визначені URL-адреси", + "Office documents" : "Офісні документи", + "PDF documents" : "Документи PDF", + "Custom MIME type" : "Власний тип MIME", + "Custom mimetype" : "Власний mimetype", + "Select a file type" : "Виберіть тип файлу", + "e.g. httpd/unix-directory" : "напр., httpd/unix-directory", + "Please enter a valid time span" : "Зазначте дійсний часовий проміжок", "Files WebDAV" : "Файли WebDAV", - "Others" : "Інші", + "Custom URL" : "Власний URL", + "Select a request URL" : "Виберіть URL для запиту", "Android client" : "Клієнт Android", "iOS client" : "iOS клієнт", "Desktop client" : "Клієнт для ПК", + "Thunderbird & Outlook addons" : "Доповнення Thunderbird та Outlook", + "Custom user agent" : "Власний user agent", + "Select a user agent" : "Виберіть user agent", + "Select groups" : "Виберіть групи", + "Groups" : "Групи", + "Type to search for group …" : "Почніть вводити, щод знайти групу ...", + "Select a trigger" : "Виберіть умову початку виконання", + "At least one event must be selected" : "Потрібно вибрати принаймні одну подію", "Add new flow" : "Додати новий процес", + "The configuration is invalid" : "Налаштування не дійсне", + "Active" : "Активно", + "Save" : "Зберегти", + "When" : "Коли", + "and" : "та", + "Add a new filter" : "Додати новий фільтр", "Cancel" : "Скасувати", "Delete" : "Вилучити", - "Save" : "Зберегти", "Available flows" : "Процеси", "For details on how to write your own flow, check out the development documentation." : "Перегляньте документацію для розробника, щоби дізнатися, як додати власні процеси.", + "No flows installed" : "Відсутні процеси", + "Ask your administrator to install new flows." : "Зверніться до адміністратора щодо встановлення нових процесів.", "More flows" : "Більше процесів", - "Browse the App Store" : "Перегляньте App Store", + "Browse the App Store" : "Перейти до каталогу застосунків", + "Show less" : "Показувати менше", + "Show more" : "Показати більше", "Configured flows" : "Налаштовані процеси", "Your flows" : "Ваші процеси", - "matches" : "сірники", - "does not match" : "не відповідає", + "No flows configured" : "Процеси не налаштовано", + "matches" : "містить", + "does not match" : "не містить", "is" : "є", "is not" : "не", "File name" : "Ім'я файлу", + "File MIME type" : "Тип MIME файлу", "File size (upload)" : "Розмір файлу (завантаження)", "less" : "менше", "less or equals" : "менше або дорівнює", @@ -63,19 +108,16 @@ OC.L10N.register( "does not match IPv4" : "не відповідає IPv4", "matches IPv6" : "відповідає IPv6", "does not match IPv6" : "не відповідає IPv6", - "File system tag" : "Тег файлової системи", - "is tagged with" : "позначено тегом", - "is not tagged with" : "не позначено тегами", + "File system tag" : "Мітка файлової системи", + "is tagged with" : "позначено міткою", + "is not tagged with" : "не позначено мітками", "Request URL" : "URL запиту", "Request time" : "Час запиту", "between" : "між", "not between" : "не між", "Request user agent" : "Запит агента користувача", - "User group membership" : "Участь користувача в групі", + "Group membership" : "Участь в групах", "is member of" : "є учасником", - "is not member of" : "не є учасником", - "No results" : "Немає результатів", - "%s (invisible)" : "%s (невидимий)", - "%s (restricted)" : "%s(обмежено)" + "is not member of" : "не є учасником" }, "nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);"); diff --git a/apps/workflowengine/l10n/uk.json b/apps/workflowengine/l10n/uk.json index 3cdc5040492..93c18f047c3 100644 --- a/apps/workflowengine/l10n/uk.json +++ b/apps/workflowengine/l10n/uk.json @@ -1,15 +1,15 @@ { "translations": { - "The given operator is invalid" : "Даний оператор недійсний", - "The given regular expression is invalid" : "Даний регулярний вираз недійсний", - "The given file size is invalid" : "Даний розмір файлу недійсний", - "The given tag id is invalid" : "Наданий ідентифікатор тегу недійсний", - "The given IP range is invalid" : "Даний діапазон IP-адрес недійсний", - "The given IP range is not valid for IPv4" : "Наведений діапазон IP-адрес недійсний для IPv4", - "The given IP range is not valid for IPv6" : "Наведений діапазон IP-адрес недійсний для IPv6", - "The given time span is invalid" : "The given time span is invalid", - "The given start time is invalid" : "Вказаний час початку недійсний", - "The given end time is invalid" : "Указаний час завершення недійсний", - "The given group does not exist" : "Дана група не існує", + "The given operator is invalid" : "Зазначений оператор недійсний", + "The given regular expression is invalid" : "Зазначений регулярний вираз недійсний", + "The given file size is invalid" : "Зазначений розмір файлу недійсний", + "The given tag id is invalid" : "Зазначений ідентифікатор мітки недійсний", + "The given IP range is invalid" : "Зазначений діапазон IP-адрес недійсний", + "The given IP range is not valid for IPv4" : "Зазначений діапазон IP-адрес недійсний для IPv4", + "The given IP range is not valid for IPv6" : "Зазначений діапазон IP-адрес недійсний для IPv6", + "The given time span is invalid" : "Зазначений часовий проміжок недійсний", + "The given start time is invalid" : "Зазначений час початку недійсний", + "The given end time is invalid" : "Зазначений час завершення недійсний", + "The given group does not exist" : "Зазначена група не існує", "File" : "Файл", "File created" : "Файл створено", "File updated" : "Файл оновлено", @@ -17,40 +17,85 @@ "File deleted" : "Файл вилучено", "File accessed" : "Отримано доступ до файлу", "File copied" : "Файл скопійовано", - "Tag assigned" : "Призначено теґ", + "Tag assigned" : "Призначено мітку", "Someone" : "Хтось", + "%s created %s" : "%s створив(-ла) %s", + "%s modified %s" : "%s змінив(-ла) %s", + "%s deleted %s" : "%s вилучив(-ла) %s", + "%s accessed %s" : "%s отримав(-ла) доступ до %s", + "%s renamed %s" : "%s перейменував(-ла) %s", + "%s copied %s" : "%s скопіював(-ла) %s", + "%s assigned %s to %s" : "%s призначив(-ла) мітку%s файлу %s", "Operation #%s does not exist" : "Операція №%s не існує", + "Entity %s does not exist" : "Об'єкт %s відсутній ", + "Entity %s is invalid" : "Об'єкт %s не дійсний", + "No events are chosen." : "Не вибрано жодної події.", + "Entity %s has no event %s" : "Об'єкт %s не має події %s", "Operation %s does not exist" : "Операція %s не існує", "Operation %s is invalid" : "Операція %s недійсна", + "At least one check needs to be provided" : "Потрібно визначити принаймні одну перевірку", + "The provided operation data is too long" : "Надано задовгі дані для операції", + "Invalid check provided" : "Зазначено недійсну перевірку", "Check %s does not exist" : "Перевірка %s не існує", - "Check %s is invalid" : "Чек %s недійсний", + "Check %s is invalid" : "Перевірка %s недійсна", + "Check %s is not allowed with this entity" : "Перевірку %s не дозволено для цієї сутності", + "The provided check value is too long" : "Зазначено задовге перевірочне значення", "Check #%s does not exist" : "Перевірка №%s не існує", - "Check %s is invalid or does not exist" : "Чек %s недійсний або не існує", + "Check %s is invalid or does not exist" : "Перевірка %s недійсна або не існує", "Flow" : "Процеси", "Nextcloud workflow engine" : "Керування робочими процесами у Nextcloud", + "Select a filter" : "Виберіть фільтр", + "Select a comparator" : "Виберіть засіб для порівняння", + "Remove filter" : "Вилучити фільтр", "Folder" : "Каталог", "Images" : "Зображення", - "Predefined URLs" : "Попередньо визначені URL-адреси", + "Office documents" : "Офісні документи", + "PDF documents" : "Документи PDF", + "Custom MIME type" : "Власний тип MIME", + "Custom mimetype" : "Власний mimetype", + "Select a file type" : "Виберіть тип файлу", + "e.g. httpd/unix-directory" : "напр., httpd/unix-directory", + "Please enter a valid time span" : "Зазначте дійсний часовий проміжок", "Files WebDAV" : "Файли WebDAV", - "Others" : "Інші", + "Custom URL" : "Власний URL", + "Select a request URL" : "Виберіть URL для запиту", "Android client" : "Клієнт Android", "iOS client" : "iOS клієнт", "Desktop client" : "Клієнт для ПК", + "Thunderbird & Outlook addons" : "Доповнення Thunderbird та Outlook", + "Custom user agent" : "Власний user agent", + "Select a user agent" : "Виберіть user agent", + "Select groups" : "Виберіть групи", + "Groups" : "Групи", + "Type to search for group …" : "Почніть вводити, щод знайти групу ...", + "Select a trigger" : "Виберіть умову початку виконання", + "At least one event must be selected" : "Потрібно вибрати принаймні одну подію", "Add new flow" : "Додати новий процес", + "The configuration is invalid" : "Налаштування не дійсне", + "Active" : "Активно", + "Save" : "Зберегти", + "When" : "Коли", + "and" : "та", + "Add a new filter" : "Додати новий фільтр", "Cancel" : "Скасувати", "Delete" : "Вилучити", - "Save" : "Зберегти", "Available flows" : "Процеси", "For details on how to write your own flow, check out the development documentation." : "Перегляньте документацію для розробника, щоби дізнатися, як додати власні процеси.", + "No flows installed" : "Відсутні процеси", + "Ask your administrator to install new flows." : "Зверніться до адміністратора щодо встановлення нових процесів.", "More flows" : "Більше процесів", - "Browse the App Store" : "Перегляньте App Store", + "Browse the App Store" : "Перейти до каталогу застосунків", + "Show less" : "Показувати менше", + "Show more" : "Показати більше", "Configured flows" : "Налаштовані процеси", "Your flows" : "Ваші процеси", - "matches" : "сірники", - "does not match" : "не відповідає", + "No flows configured" : "Процеси не налаштовано", + "matches" : "містить", + "does not match" : "не містить", "is" : "є", "is not" : "не", "File name" : "Ім'я файлу", + "File MIME type" : "Тип MIME файлу", "File size (upload)" : "Розмір файлу (завантаження)", "less" : "менше", "less or equals" : "менше або дорівнює", @@ -61,19 +106,16 @@ "does not match IPv4" : "не відповідає IPv4", "matches IPv6" : "відповідає IPv6", "does not match IPv6" : "не відповідає IPv6", - "File system tag" : "Тег файлової системи", - "is tagged with" : "позначено тегом", - "is not tagged with" : "не позначено тегами", + "File system tag" : "Мітка файлової системи", + "is tagged with" : "позначено міткою", + "is not tagged with" : "не позначено мітками", "Request URL" : "URL запиту", "Request time" : "Час запиту", "between" : "між", "not between" : "не між", "Request user agent" : "Запит агента користувача", - "User group membership" : "Участь користувача в групі", + "Group membership" : "Участь в групах", "is member of" : "є учасником", - "is not member of" : "не є учасником", - "No results" : "Немає результатів", - "%s (invisible)" : "%s (невидимий)", - "%s (restricted)" : "%s(обмежено)" + "is not member of" : "не є учасником" },"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (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/workflowengine/l10n/zh_CN.js b/apps/workflowengine/l10n/zh_CN.js index 858a765020d..6f500b68010 100644 --- a/apps/workflowengine/l10n/zh_CN.js +++ b/apps/workflowengine/l10n/zh_CN.js @@ -48,42 +48,50 @@ OC.L10N.register( "Nextcloud workflow engine" : "Nextcloud 工作流引擎", "Select a filter" : "选择一个过滤器", "Select a comparator" : "选择一个比较器", - "Select a file type" : "选择一个文件类型", - "e.g. httpd/unix-directory" : "例如: httpd/unix-directory", + "Remove filter" : "移除过滤条件", "Folder" : "文件夹", "Images" : "图片", "Office documents" : "Office 文档", "PDF documents" : "PDF文档", + "Custom MIME type" : "自定义 MIME 类型", "Custom mimetype" : "自定义MIME类型", + "Select a file type" : "选择一个文件类型", + "e.g. httpd/unix-directory" : "例如: httpd/unix-directory", "Please enter a valid time span" : "请输入有效的时间范围", - "Select a request URL" : "选择一个请求URL", - "Predefined URLs" : "预定义 URL", "Files WebDAV" : "文件 WebDAV", - "Others" : "其它", "Custom URL" : "自定义URL", - "Select a user agent" : "选择一个用户代理", + "Select a request URL" : "选择一个请求URL", "Android client" : "Android 客户端", "iOS client" : "iOS 客户端", "Desktop client" : "桌面客户端", "Thunderbird & Outlook addons" : "Thunderbird & Outlook 插件", "Custom user agent" : "自定义用户代理", + "Select a user agent" : "选择一个用户代理", + "Select groups" : "选择用户组", + "Groups" : "用户组", + "Type to search for group …" : "输入以搜索群组...", + "Select a trigger" : "选择一个触发器", "At least one event must be selected" : "必须至少选择一个事件", "Add new flow" : "添加新的流程", + "The configuration is invalid" : "此配置是无效的", + "Active" : "作用", + "Save" : "保存", "When" : "时间", "and" : "与", + "Add a new filter" : "添加一个新的筛选条件", "Cancel" : "取消", "Delete" : "删除", - "The configuration is invalid" : "此配置是无效的", - "Active" : "活动", - "Save" : "保存", "Available flows" : "可用的流程", "For details on how to write your own flow, check out the development documentation." : "有关如何编写自己的流程的详细信息,请查看开发文档。", + "No flows installed" : "未安装任何流量设备", + "Ask your administrator to install new flows." : "请让你的管理员安装新的流量设备。", "More flows" : "更多流程", "Browse the App Store" : "浏览应用商店", "Show less" : "显示更少", "Show more" : "显示更多", "Configured flows" : "已配置的流程", "Your flows" : "你的流程", + "No flows configured" : "未配置任何流程", "matches" : "匹配", "does not match" : "不匹配", "is" : "是", @@ -108,12 +116,8 @@ OC.L10N.register( "between" : "之间", "not between" : "不在之间", "Request user agent" : "请求用户代理", - "User group membership" : "用户组成员资格", + "Group membership" : "组成员资格", "is member of" : "是成员", - "is not member of" : "不是成员", - "Select a tag" : "选择标签", - "No results" : "没有结果", - "%s (invisible)" : "%s(不可见)", - "%s (restricted)" : "%s(受限)" + "is not member of" : "不是成员" }, "nplurals=1; plural=0;"); diff --git a/apps/workflowengine/l10n/zh_CN.json b/apps/workflowengine/l10n/zh_CN.json index 4c5bf844ef8..1a82f8ebaee 100644 --- a/apps/workflowengine/l10n/zh_CN.json +++ b/apps/workflowengine/l10n/zh_CN.json @@ -46,42 +46,50 @@ "Nextcloud workflow engine" : "Nextcloud 工作流引擎", "Select a filter" : "选择一个过滤器", "Select a comparator" : "选择一个比较器", - "Select a file type" : "选择一个文件类型", - "e.g. httpd/unix-directory" : "例如: httpd/unix-directory", + "Remove filter" : "移除过滤条件", "Folder" : "文件夹", "Images" : "图片", "Office documents" : "Office 文档", "PDF documents" : "PDF文档", + "Custom MIME type" : "自定义 MIME 类型", "Custom mimetype" : "自定义MIME类型", + "Select a file type" : "选择一个文件类型", + "e.g. httpd/unix-directory" : "例如: httpd/unix-directory", "Please enter a valid time span" : "请输入有效的时间范围", - "Select a request URL" : "选择一个请求URL", - "Predefined URLs" : "预定义 URL", "Files WebDAV" : "文件 WebDAV", - "Others" : "其它", "Custom URL" : "自定义URL", - "Select a user agent" : "选择一个用户代理", + "Select a request URL" : "选择一个请求URL", "Android client" : "Android 客户端", "iOS client" : "iOS 客户端", "Desktop client" : "桌面客户端", "Thunderbird & Outlook addons" : "Thunderbird & Outlook 插件", "Custom user agent" : "自定义用户代理", + "Select a user agent" : "选择一个用户代理", + "Select groups" : "选择用户组", + "Groups" : "用户组", + "Type to search for group …" : "输入以搜索群组...", + "Select a trigger" : "选择一个触发器", "At least one event must be selected" : "必须至少选择一个事件", "Add new flow" : "添加新的流程", + "The configuration is invalid" : "此配置是无效的", + "Active" : "作用", + "Save" : "保存", "When" : "时间", "and" : "与", + "Add a new filter" : "添加一个新的筛选条件", "Cancel" : "取消", "Delete" : "删除", - "The configuration is invalid" : "此配置是无效的", - "Active" : "活动", - "Save" : "保存", "Available flows" : "可用的流程", "For details on how to write your own flow, check out the development documentation." : "有关如何编写自己的流程的详细信息,请查看开发文档。", + "No flows installed" : "未安装任何流量设备", + "Ask your administrator to install new flows." : "请让你的管理员安装新的流量设备。", "More flows" : "更多流程", "Browse the App Store" : "浏览应用商店", "Show less" : "显示更少", "Show more" : "显示更多", "Configured flows" : "已配置的流程", "Your flows" : "你的流程", + "No flows configured" : "未配置任何流程", "matches" : "匹配", "does not match" : "不匹配", "is" : "是", @@ -106,12 +114,8 @@ "between" : "之间", "not between" : "不在之间", "Request user agent" : "请求用户代理", - "User group membership" : "用户组成员资格", + "Group membership" : "组成员资格", "is member of" : "是成员", - "is not member of" : "不是成员", - "Select a tag" : "选择标签", - "No results" : "没有结果", - "%s (invisible)" : "%s(不可见)", - "%s (restricted)" : "%s(受限)" + "is not member of" : "不是成员" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/zh_HK.js b/apps/workflowengine/l10n/zh_HK.js index 26b6589a9dc..edd352c1880 100644 --- a/apps/workflowengine/l10n/zh_HK.js +++ b/apps/workflowengine/l10n/zh_HK.js @@ -48,43 +48,50 @@ OC.L10N.register( "Nextcloud workflow engine" : "Nextcloud 工作流程引擎", "Select a filter" : "選擇過濾器", "Select a comparator" : "選擇比較器", - "Select a file type" : "選擇檔案類型", - "e.g. httpd/unix-directory" : "例如 httpd/unix-directory", + "Remove filter" : "移除過濾", "Folder" : "資料夾", "Images" : "圖片", "Office documents" : "Microsoft Office 文件", "PDF documents" : "PDF 文件", "Custom MIME type" : "自訂 MIME 類型", "Custom mimetype" : "自訂 mimetype", + "Select a file type" : "選擇檔案類型", + "e.g. httpd/unix-directory" : "例如 httpd/unix-directory", "Please enter a valid time span" : "請輸入有效的時間跨度", - "Select a request URL" : "選擇一個請求URL", - "Predefined URLs" : "預定義網址", "Files WebDAV" : "檔案 WebDAV", - "Others" : "其他", "Custom URL" : "自訂 URL", - "Select a user agent" : "選擇用戶 agent", + "Select a request URL" : "選擇一個請求URL", "Android client" : "Android 客戶端", "iOS client" : "iOS 客戶端", "Desktop client" : "桌面客戶端", "Thunderbird & Outlook addons" : "Thunderbird & Outlook 插件", "Custom user agent" : "自訂 user agent", + "Select a user agent" : "選擇用戶 agent", + "Select groups" : "選擇群組", + "Groups" : "群組", + "Type to search for group …" : "輸入以搜尋群組 …", + "Select a trigger" : "選擇觸發條件", "At least one event must be selected" : "必須選擇至少一個活動", "Add new flow" : "添加新流程", + "The configuration is invalid" : "配置無效", + "Active" : "啟動", + "Save" : "儲存", "When" : "時間", "and" : "及", + "Add a new filter" : "添加新過濾", "Cancel" : "取消", "Delete" : "刪除", - "The configuration is invalid" : "配置無效", - "Active" : "啟動", - "Save" : "儲存", "Available flows" : "可用的流程", "For details on how to write your own flow, check out the development documentation." : "有關如何編寫自己的流程的詳細信息,請查看開發說明文件。", + "No flows installed" : "未安裝流程", + "Ask your administrator to install new flows." : "要求您的管理員安裝新流程。", "More flows" : "更多流程", "Browse the App Store" : "瀏覽 App Store", "Show less" : "顯示較少", "Show more" : "顯示更多", "Configured flows" : "配置流程", "Your flows" : "您的流程", + "No flows configured" : "未設定流程", "matches" : "匹配", "does not match" : "不能匹配", "is" : "是", @@ -109,12 +116,8 @@ OC.L10N.register( "between" : "介於", "not between" : "皆非", "Request user agent" : "索取 user agent", - "User group membership" : "用戶群組成員身分", + "Group membership" : "群組成員身分", "is member of" : "是以下群組的成員:", - "is not member of" : "非以下群組的成員:", - "Select a tag" : "選擇標籤", - "No results" : "沒有符合搜尋的項目", - "%s (invisible)" : "%s (隱藏)", - "%s (restricted)" : "%s (受限)" + "is not member of" : "非以下群組的成員:" }, "nplurals=1; plural=0;"); diff --git a/apps/workflowengine/l10n/zh_HK.json b/apps/workflowengine/l10n/zh_HK.json index 99c2ca5fe4f..9b249cd1af4 100644 --- a/apps/workflowengine/l10n/zh_HK.json +++ b/apps/workflowengine/l10n/zh_HK.json @@ -46,43 +46,50 @@ "Nextcloud workflow engine" : "Nextcloud 工作流程引擎", "Select a filter" : "選擇過濾器", "Select a comparator" : "選擇比較器", - "Select a file type" : "選擇檔案類型", - "e.g. httpd/unix-directory" : "例如 httpd/unix-directory", + "Remove filter" : "移除過濾", "Folder" : "資料夾", "Images" : "圖片", "Office documents" : "Microsoft Office 文件", "PDF documents" : "PDF 文件", "Custom MIME type" : "自訂 MIME 類型", "Custom mimetype" : "自訂 mimetype", + "Select a file type" : "選擇檔案類型", + "e.g. httpd/unix-directory" : "例如 httpd/unix-directory", "Please enter a valid time span" : "請輸入有效的時間跨度", - "Select a request URL" : "選擇一個請求URL", - "Predefined URLs" : "預定義網址", "Files WebDAV" : "檔案 WebDAV", - "Others" : "其他", "Custom URL" : "自訂 URL", - "Select a user agent" : "選擇用戶 agent", + "Select a request URL" : "選擇一個請求URL", "Android client" : "Android 客戶端", "iOS client" : "iOS 客戶端", "Desktop client" : "桌面客戶端", "Thunderbird & Outlook addons" : "Thunderbird & Outlook 插件", "Custom user agent" : "自訂 user agent", + "Select a user agent" : "選擇用戶 agent", + "Select groups" : "選擇群組", + "Groups" : "群組", + "Type to search for group …" : "輸入以搜尋群組 …", + "Select a trigger" : "選擇觸發條件", "At least one event must be selected" : "必須選擇至少一個活動", "Add new flow" : "添加新流程", + "The configuration is invalid" : "配置無效", + "Active" : "啟動", + "Save" : "儲存", "When" : "時間", "and" : "及", + "Add a new filter" : "添加新過濾", "Cancel" : "取消", "Delete" : "刪除", - "The configuration is invalid" : "配置無效", - "Active" : "啟動", - "Save" : "儲存", "Available flows" : "可用的流程", "For details on how to write your own flow, check out the development documentation." : "有關如何編寫自己的流程的詳細信息,請查看開發說明文件。", + "No flows installed" : "未安裝流程", + "Ask your administrator to install new flows." : "要求您的管理員安裝新流程。", "More flows" : "更多流程", "Browse the App Store" : "瀏覽 App Store", "Show less" : "顯示較少", "Show more" : "顯示更多", "Configured flows" : "配置流程", "Your flows" : "您的流程", + "No flows configured" : "未設定流程", "matches" : "匹配", "does not match" : "不能匹配", "is" : "是", @@ -107,12 +114,8 @@ "between" : "介於", "not between" : "皆非", "Request user agent" : "索取 user agent", - "User group membership" : "用戶群組成員身分", + "Group membership" : "群組成員身分", "is member of" : "是以下群組的成員:", - "is not member of" : "非以下群組的成員:", - "Select a tag" : "選擇標籤", - "No results" : "沒有符合搜尋的項目", - "%s (invisible)" : "%s (隱藏)", - "%s (restricted)" : "%s (受限)" + "is not member of" : "非以下群組的成員:" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/workflowengine/l10n/zh_TW.js b/apps/workflowengine/l10n/zh_TW.js index d3a6d6f78fa..8cbe56564d3 100644 --- a/apps/workflowengine/l10n/zh_TW.js +++ b/apps/workflowengine/l10n/zh_TW.js @@ -2,7 +2,7 @@ OC.L10N.register( "workflowengine", { "The given operator is invalid" : "指定的運算子無效", - "The given regular expression is invalid" : "指定的正規表示式無效", + "The given regular expression is invalid" : "指定的正則表達式無效", "The given file size is invalid" : "指定的檔案大小無效", "The given tag id is invalid" : "指定的標籤 id 無效", "The given IP range is invalid" : "指定的 IP 範圍無效", @@ -19,15 +19,15 @@ OC.L10N.register( "File deleted" : "檔案刪除", "File accessed" : "檔案存取", "File copied" : "檔案複製", - "Tag assigned" : "指派標籤", + "Tag assigned" : "標籤指派", "Someone" : "某人", - "%s created %s" : "%s 建立 %s", - "%s modified %s" : "%s 修改 %s", - "%s deleted %s" : "%s 刪除 %s", - "%s accessed %s" : "%s 存取 %s", - "%s renamed %s" : "%s 重新命名 %s", - "%s copied %s" : "%s 複製 %s", - "%s assigned %s to %s" : "%s 指派 %s 給 %s", + "%s created %s" : "%s 建立了 %s", + "%s modified %s" : "%s 修改了 %s", + "%s deleted %s" : "%s 刪除了 %s", + "%s accessed %s" : "%s 存取了 %s", + "%s renamed %s" : "%s 重新命名了 %s", + "%s copied %s" : "%s 複製了 %s", + "%s assigned %s to %s" : "%s 指派了 %s 給 %s", "Operation #%s does not exist" : "操作 #%s 不存在", "Entity %s does not exist" : "實體 %s 不存在", "Entity %s is invalid" : "實體 %s 無效", @@ -36,7 +36,7 @@ OC.L10N.register( "Operation %s does not exist" : "操作 %s 不存在", "Operation %s is invalid" : "操作 #%s 無效", "At least one check needs to be provided" : "至少需要提供一次檢查", - "The provided operation data is too long" : "操作提供的資料過長", + "The provided operation data is too long" : "提供的操作資料過長", "Invalid check provided" : "提供無效的檢查", "Check %s does not exist" : "檢查 %s 不存在", "Check %s is invalid" : "檢查 %s 無效", @@ -48,43 +48,50 @@ OC.L10N.register( "Nextcloud workflow engine" : "Nextcloud 工作流程引擎", "Select a filter" : "選取過濾條件", "Select a comparator" : "選取比較程式", - "Select a file type" : "選取檔案類型", - "e.g. httpd/unix-directory" : "例如:httpd/unix-directory", + "Remove filter" : "移除過濾條件", "Folder" : "資料夾", "Images" : "圖片", - "Office documents" : "辦公室文件", + "Office documents" : "Office 文件", "PDF documents" : "PDF 文件", "Custom MIME type" : "自訂 MIME 類型", "Custom mimetype" : "自訂 mimetype", + "Select a file type" : "選取檔案類型", + "e.g. httpd/unix-directory" : "例如:httpd/unix-directory", "Please enter a valid time span" : "請輸入有效的時間範圍", - "Select a request URL" : "選取請求 URL", - "Predefined URLs" : "預定義 URL", "Files WebDAV" : "檔案 WebDAV", - "Others" : "其他", "Custom URL" : "自訂 URL", - "Select a user agent" : "選取使用者代理字串", + "Select a request URL" : "選取請求 URL", "Android client" : "Android 客戶端", "iOS client" : "iOS 客戶端", "Desktop client" : "桌面客戶端", "Thunderbird & Outlook addons" : "Thunderbird 與 Outlook 附加元件", - "Custom user agent" : "自訂使用者字串", + "Custom user agent" : "自訂使用者代理字串", + "Select a user agent" : "選取使用者代理字串", + "Select groups" : "選擇群組", + "Groups" : "群組", + "Type to search for group …" : "輸入以搜尋群組……", + "Select a trigger" : "選取觸發條件", "At least one event must be selected" : "必須至少選取一個事件", "Add new flow" : "新增新流程", + "The configuration is invalid" : "組態設定無效", + "Active" : "啟動", + "Save" : "儲存", "When" : "當", "and" : "與", + "Add a new filter" : "新增過濾條件", "Cancel" : "取消", "Delete" : "刪除", - "The configuration is invalid" : "設定無效", - "Active" : "啟動", - "Save" : "儲存", "Available flows" : "可用的流程", "For details on how to write your own flow, check out the development documentation." : "關於如何編寫自己的流程,請看開發文件。", + "No flows installed" : "未安裝流程", + "Ask your administrator to install new flows." : "請向您的管理員要求安裝新流程。", "More flows" : "更多流程", "Browse the App Store" : "瀏覽應用程式商店", "Show less" : "顯示較少", "Show more" : "顯示更多", "Configured flows" : "已設定的流程", "Your flows" : "您的流程", + "No flows configured" : "未設定流程", "matches" : "符合", "does not match" : "不符合", "is" : "是", @@ -92,29 +99,25 @@ OC.L10N.register( "File name" : "檔案名稱", "File MIME type" : "檔案 MIME 類型", "File size (upload)" : "檔案大小(上傳)", - "less" : "更少", + "less" : "小於", "less or equals" : "小於或等於", "greater or equals" : "大於或等於", - "greater" : "更大", + "greater" : "大於", "Request remote address" : "請求遠端地址", "matches IPv4" : "符合 IPv4", "does not match IPv4" : "不符合 IPv4", "matches IPv6" : "符合 IPv6", - "does not match IPv6" : "不能符合 IPv6", + "does not match IPv6" : "不符合 IPv6", "File system tag" : "檔案系統標籤", "is tagged with" : "標記為", "is not tagged with" : "没有標記為", - "Request URL" : "請求網址", + "Request URL" : "請求 URL", "Request time" : "請求時間", - "between" : "之間", - "not between" : "皆非", + "between" : "介於", + "not between" : "不介於", "Request user agent" : "請求使用者代理字串", - "User group membership" : "使用者群組成員資格", - "is member of" : "是成員來自", - "is not member of" : "不是成員來自", - "Select a tag" : "選取標籤", - "No results" : "無結果", - "%s (invisible)" : "%s(隱藏)", - "%s (restricted)" : "%s(受限)" + "Group membership" : "群組成員資格", + "is member of" : "是成員的群組", + "is not member of" : "不是成員的群組" }, "nplurals=1; plural=0;"); diff --git a/apps/workflowengine/l10n/zh_TW.json b/apps/workflowengine/l10n/zh_TW.json index 93e602b8696..0bc8fdf63a6 100644 --- a/apps/workflowengine/l10n/zh_TW.json +++ b/apps/workflowengine/l10n/zh_TW.json @@ -1,6 +1,6 @@ { "translations": { "The given operator is invalid" : "指定的運算子無效", - "The given regular expression is invalid" : "指定的正規表示式無效", + "The given regular expression is invalid" : "指定的正則表達式無效", "The given file size is invalid" : "指定的檔案大小無效", "The given tag id is invalid" : "指定的標籤 id 無效", "The given IP range is invalid" : "指定的 IP 範圍無效", @@ -17,15 +17,15 @@ "File deleted" : "檔案刪除", "File accessed" : "檔案存取", "File copied" : "檔案複製", - "Tag assigned" : "指派標籤", + "Tag assigned" : "標籤指派", "Someone" : "某人", - "%s created %s" : "%s 建立 %s", - "%s modified %s" : "%s 修改 %s", - "%s deleted %s" : "%s 刪除 %s", - "%s accessed %s" : "%s 存取 %s", - "%s renamed %s" : "%s 重新命名 %s", - "%s copied %s" : "%s 複製 %s", - "%s assigned %s to %s" : "%s 指派 %s 給 %s", + "%s created %s" : "%s 建立了 %s", + "%s modified %s" : "%s 修改了 %s", + "%s deleted %s" : "%s 刪除了 %s", + "%s accessed %s" : "%s 存取了 %s", + "%s renamed %s" : "%s 重新命名了 %s", + "%s copied %s" : "%s 複製了 %s", + "%s assigned %s to %s" : "%s 指派了 %s 給 %s", "Operation #%s does not exist" : "操作 #%s 不存在", "Entity %s does not exist" : "實體 %s 不存在", "Entity %s is invalid" : "實體 %s 無效", @@ -34,7 +34,7 @@ "Operation %s does not exist" : "操作 %s 不存在", "Operation %s is invalid" : "操作 #%s 無效", "At least one check needs to be provided" : "至少需要提供一次檢查", - "The provided operation data is too long" : "操作提供的資料過長", + "The provided operation data is too long" : "提供的操作資料過長", "Invalid check provided" : "提供無效的檢查", "Check %s does not exist" : "檢查 %s 不存在", "Check %s is invalid" : "檢查 %s 無效", @@ -46,43 +46,50 @@ "Nextcloud workflow engine" : "Nextcloud 工作流程引擎", "Select a filter" : "選取過濾條件", "Select a comparator" : "選取比較程式", - "Select a file type" : "選取檔案類型", - "e.g. httpd/unix-directory" : "例如:httpd/unix-directory", + "Remove filter" : "移除過濾條件", "Folder" : "資料夾", "Images" : "圖片", - "Office documents" : "辦公室文件", + "Office documents" : "Office 文件", "PDF documents" : "PDF 文件", "Custom MIME type" : "自訂 MIME 類型", "Custom mimetype" : "自訂 mimetype", + "Select a file type" : "選取檔案類型", + "e.g. httpd/unix-directory" : "例如:httpd/unix-directory", "Please enter a valid time span" : "請輸入有效的時間範圍", - "Select a request URL" : "選取請求 URL", - "Predefined URLs" : "預定義 URL", "Files WebDAV" : "檔案 WebDAV", - "Others" : "其他", "Custom URL" : "自訂 URL", - "Select a user agent" : "選取使用者代理字串", + "Select a request URL" : "選取請求 URL", "Android client" : "Android 客戶端", "iOS client" : "iOS 客戶端", "Desktop client" : "桌面客戶端", "Thunderbird & Outlook addons" : "Thunderbird 與 Outlook 附加元件", - "Custom user agent" : "自訂使用者字串", + "Custom user agent" : "自訂使用者代理字串", + "Select a user agent" : "選取使用者代理字串", + "Select groups" : "選擇群組", + "Groups" : "群組", + "Type to search for group …" : "輸入以搜尋群組……", + "Select a trigger" : "選取觸發條件", "At least one event must be selected" : "必須至少選取一個事件", "Add new flow" : "新增新流程", + "The configuration is invalid" : "組態設定無效", + "Active" : "啟動", + "Save" : "儲存", "When" : "當", "and" : "與", + "Add a new filter" : "新增過濾條件", "Cancel" : "取消", "Delete" : "刪除", - "The configuration is invalid" : "設定無效", - "Active" : "啟動", - "Save" : "儲存", "Available flows" : "可用的流程", "For details on how to write your own flow, check out the development documentation." : "關於如何編寫自己的流程,請看開發文件。", + "No flows installed" : "未安裝流程", + "Ask your administrator to install new flows." : "請向您的管理員要求安裝新流程。", "More flows" : "更多流程", "Browse the App Store" : "瀏覽應用程式商店", "Show less" : "顯示較少", "Show more" : "顯示更多", "Configured flows" : "已設定的流程", "Your flows" : "您的流程", + "No flows configured" : "未設定流程", "matches" : "符合", "does not match" : "不符合", "is" : "是", @@ -90,29 +97,25 @@ "File name" : "檔案名稱", "File MIME type" : "檔案 MIME 類型", "File size (upload)" : "檔案大小(上傳)", - "less" : "更少", + "less" : "小於", "less or equals" : "小於或等於", "greater or equals" : "大於或等於", - "greater" : "更大", + "greater" : "大於", "Request remote address" : "請求遠端地址", "matches IPv4" : "符合 IPv4", "does not match IPv4" : "不符合 IPv4", "matches IPv6" : "符合 IPv6", - "does not match IPv6" : "不能符合 IPv6", + "does not match IPv6" : "不符合 IPv6", "File system tag" : "檔案系統標籤", "is tagged with" : "標記為", "is not tagged with" : "没有標記為", - "Request URL" : "請求網址", + "Request URL" : "請求 URL", "Request time" : "請求時間", - "between" : "之間", - "not between" : "皆非", + "between" : "介於", + "not between" : "不介於", "Request user agent" : "請求使用者代理字串", - "User group membership" : "使用者群組成員資格", - "is member of" : "是成員來自", - "is not member of" : "不是成員來自", - "Select a tag" : "選取標籤", - "No results" : "無結果", - "%s (invisible)" : "%s(隱藏)", - "%s (restricted)" : "%s(受限)" + "Group membership" : "群組成員資格", + "is member of" : "是成員的群組", + "is not member of" : "不是成員的群組" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/workflowengine/lib/AppInfo/Application.php b/apps/workflowengine/lib/AppInfo/Application.php index fb5514fecef..93b0ca49260 100644 --- a/apps/workflowengine/lib/AppInfo/Application.php +++ b/apps/workflowengine/lib/AppInfo/Application.php @@ -1,33 +1,12 @@ <?php + /** - * @copyright Copyright (c) 2016 Morris Jobke <hey@morrisjobke.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Julius Härtl <jus@bitgrid.net> - * @author Morris Jobke <hey@morrisjobke.de> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\AppInfo; use Closure; -use OCA\WorkflowEngine\Controller\RequestTime; use OCA\WorkflowEngine\Helper\LogContext; use OCA\WorkflowEngine\Listener\LoadAdditionalSettingsScriptsListener; use OCA\WorkflowEngine\Manager; @@ -36,16 +15,14 @@ use OCP\AppFramework\App; use OCP\AppFramework\Bootstrap\IBootContext; use OCP\AppFramework\Bootstrap\IBootstrap; use OCP\AppFramework\Bootstrap\IRegistrationContext; -use OCP\AppFramework\QueryException; use OCP\EventDispatcher\Event; use OCP\EventDispatcher\IEventDispatcher; -use OCP\ILogger; -use OCP\IServerContainer; use OCP\WorkflowEngine\Events\LoadSettingsScriptsEvent; use OCP\WorkflowEngine\IEntity; -use OCP\WorkflowEngine\IEntityCompat; use OCP\WorkflowEngine\IOperation; -use OCP\WorkflowEngine\IOperationCompat; +use Psr\Container\ContainerExceptionInterface; +use Psr\Container\ContainerInterface; +use Psr\Log\LoggerInterface; class Application extends App implements IBootstrap { public const APP_ID = 'workflowengine'; @@ -55,7 +32,6 @@ class Application extends App implements IBootstrap { } public function register(IRegistrationContext $context): void { - $context->registerServiceAlias('RequestTimeController', RequestTime::class); $context->registerEventListener( LoadSettingsScriptsEvent::class, LoadAdditionalSettingsScriptsListener::class, @@ -68,24 +44,24 @@ class Application extends App implements IBootstrap { } private function registerRuleListeners(IEventDispatcher $dispatcher, - IServerContainer $container, - ILogger $logger): void { + ContainerInterface $container, + LoggerInterface $logger): void { /** @var Manager $manager */ - $manager = $container->query(Manager::class); + $manager = $container->get(Manager::class); $configuredEvents = $manager->getAllConfiguredEvents(); foreach ($configuredEvents as $operationClass => $events) { foreach ($events as $entityClass => $eventNames) { - array_map(function (string $eventName) use ($manager, $container, $dispatcher, $logger, $operationClass, $entityClass) { + array_map(function (string $eventName) use ($manager, $container, $dispatcher, $logger, $operationClass, $entityClass): void { $dispatcher->addListener( $eventName, - function ($event) use ($manager, $container, $eventName, $logger, $operationClass, $entityClass) { + function ($event) use ($manager, $container, $eventName, $logger, $operationClass, $entityClass): void { $ruleMatcher = $manager->getRuleMatcher(); try { /** @var IEntity $entity */ - $entity = $container->query($entityClass); + $entity = $container->get($entityClass); /** @var IOperation $operation */ - $operation = $container->query($operationClass); + $operation = $container->get($operationClass); $ruleMatcher->setEventName($eventName); $ruleMatcher->setEntity($entity); @@ -98,16 +74,12 @@ class Application extends App implements IBootstrap { ->setEventName($eventName); /** @var Logger $flowLogger */ - $flowLogger = $container->query(Logger::class); + $flowLogger = $container->get(Logger::class); $flowLogger->logEventInit($ctx); if ($event instanceof Event) { $entity->prepareRuleMatcher($ruleMatcher, $eventName, $event); $operation->onEvent($eventName, $event, $ruleMatcher); - } elseif ($entity instanceof IEntityCompat && $operation instanceof IOperationCompat) { - // TODO: Remove this block (and the compat classes) in the first major release in 2023 - $entity->prepareRuleMatcherCompat($ruleMatcher, $eventName, $event); - $operation->onEventCompat($eventName, $event, $ruleMatcher); } else { $logger->debug( 'Cannot handle event {name} of {event} against entity {entity} and operation {operation}', @@ -121,8 +93,8 @@ class Application extends App implements IBootstrap { ); } $flowLogger->logEventDone($ctx); - } catch (QueryException $e) { - // Ignore query exceptions since they might occur when an entity/operation were setup before by an app that is disabled now + } catch (ContainerExceptionInterface $e) { + // Ignore query exceptions since they might occur when an entity/operation were set up before by an app that is disabled now } } ); diff --git a/apps/workflowengine/lib/BackgroundJobs/Rotate.php b/apps/workflowengine/lib/BackgroundJobs/Rotate.php index ee83f4821f1..d7984b1226a 100644 --- a/apps/workflowengine/lib/BackgroundJobs/Rotate.php +++ b/apps/workflowengine/lib/BackgroundJobs/Rotate.php @@ -1,32 +1,17 @@ <?php + /** - * @copyright Copyright (c) 2018 Arthur Schiwon <blizzz@arthur-schiwon.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\BackgroundJobs; +use OCA\WorkflowEngine\AppInfo\Application; use OCP\AppFramework\Utility\ITimeFactory; use OCP\BackgroundJob\TimedJob; -use OCA\WorkflowEngine\AppInfo\Application; +use OCP\IConfig; use OCP\Log\RotationTrait; +use OCP\Server; class Rotate extends TimedJob { use RotationTrait; @@ -37,7 +22,7 @@ class Rotate extends TimedJob { } protected function run($argument) { - $config = \OC::$server->getConfig(); + $config = Server::get(IConfig::class); $default = $config->getSystemValue('datadirectory', \OC::$SERVERROOT . '/data') . '/flow.log'; $this->filePath = trim((string)$config->getAppValue(Application::APP_ID, 'logfile', $default)); diff --git a/apps/workflowengine/lib/Check/AbstractStringCheck.php b/apps/workflowengine/lib/Check/AbstractStringCheck.php index 26047f90d50..d92e9901365 100644 --- a/apps/workflowengine/lib/Check/AbstractStringCheck.php +++ b/apps/workflowengine/lib/Check/AbstractStringCheck.php @@ -1,26 +1,8 @@ <?php + /** - * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Joas Schilling <coding@schilljs.com> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Check; @@ -33,14 +15,12 @@ abstract class AbstractStringCheck implements ICheck { /** @var array[] Nested array: [Pattern => [ActualValue => Regex Result]] */ protected $matches; - /** @var IL10N */ - protected $l; - /** * @param IL10N $l */ - public function __construct(IL10N $l) { - $this->l = $l; + public function __construct( + protected IL10N $l, + ) { } /** @@ -89,8 +69,8 @@ abstract class AbstractStringCheck implements ICheck { throw new \UnexpectedValueException($this->l->t('The given operator is invalid'), 1); } - if (in_array($operator, ['matches', '!matches']) && - @preg_match($value, null) === false) { + if (in_array($operator, ['matches', '!matches']) + && @preg_match($value, null) === false) { throw new \UnexpectedValueException($this->l->t('The given regular expression is invalid'), 2); } } diff --git a/apps/workflowengine/lib/Check/FileMimeType.php b/apps/workflowengine/lib/Check/FileMimeType.php index 991d7ebc739..a8dfa64528e 100644 --- a/apps/workflowengine/lib/Check/FileMimeType.php +++ b/apps/workflowengine/lib/Check/FileMimeType.php @@ -1,28 +1,8 @@ <?php + /** - * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Joas Schilling <coding@schilljs.com> - * @author Julius Härtl <jus@bitgrid.net> - * @author Morris Jobke <hey@morrisjobke.de> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Check; @@ -42,21 +22,17 @@ class FileMimeType extends AbstractStringCheck implements IFileCheck { /** @var array */ protected $mimeType; - /** @var IRequest */ - protected $request; - - /** @var IMimeTypeDetector */ - protected $mimeTypeDetector; - /** * @param IL10N $l * @param IRequest $request * @param IMimeTypeDetector $mimeTypeDetector */ - public function __construct(IL10N $l, IRequest $request, IMimeTypeDetector $mimeTypeDetector) { + public function __construct( + IL10N $l, + protected IRequest $request, + protected IMimeTypeDetector $mimeTypeDetector, + ) { parent::__construct($l); - $this->request = $request; - $this->mimeTypeDetector = $mimeTypeDetector; } /** @@ -107,13 +83,7 @@ class FileMimeType extends AbstractStringCheck implements IFileCheck { * @return bool */ public function executeCheck($operator, $value) { - $actualValue = $this->getActualValue(); - $plainMimetypeResult = $this->executeStringCheck($operator, $value, $actualValue); - if ($actualValue === 'httpd/unix-directory') { - return $plainMimetypeResult; - } - $detectMimetypeBasedOnFilenameResult = $this->executeStringCheck($operator, $value, $this->mimeTypeDetector->detectPath($this->path)); - return $plainMimetypeResult || $detectMimetypeBasedOnFilenameResult; + return $this->executeStringCheck($operator, $value, $this->getActualValue()); } /** @@ -128,9 +98,9 @@ class FileMimeType extends AbstractStringCheck implements IFileCheck { return $this->cacheAndReturnMimeType($this->storage->getId(), $this->path, $cacheEntry->getMimeType()); } - if ($this->storage->file_exists($this->path) && - $this->storage->filesize($this->path) && - $this->storage->instanceOfStorage(Local::class) + if ($this->storage->file_exists($this->path) + && $this->storage->filesize($this->path) + && $this->storage->instanceOfStorage(Local::class) ) { $path = $this->storage->getLocalFile($this->path); $mimeType = $this->mimeTypeDetector->detectContent($path); @@ -156,12 +126,12 @@ class FileMimeType extends AbstractStringCheck implements IFileCheck { */ protected function isWebDAVRequest() { return substr($this->request->getScriptName(), 0 - strlen('/remote.php')) === '/remote.php' && ( - $this->request->getPathInfo() === '/webdav' || - strpos($this->request->getPathInfo(), '/webdav/') === 0 || - $this->request->getPathInfo() === '/dav/files' || - strpos($this->request->getPathInfo(), '/dav/files/') === 0 || - $this->request->getPathInfo() === '/dav/uploads' || - strpos($this->request->getPathInfo(), '/dav/uploads/') === 0 + $this->request->getPathInfo() === '/webdav' + || str_starts_with($this->request->getPathInfo() ?? '', '/webdav/') + || $this->request->getPathInfo() === '/dav/files' + || str_starts_with($this->request->getPathInfo() ?? '', '/dav/files/') + || $this->request->getPathInfo() === '/dav/uploads' + || str_starts_with($this->request->getPathInfo() ?? '', '/dav/uploads/') ); } @@ -170,8 +140,8 @@ class FileMimeType extends AbstractStringCheck implements IFileCheck { */ protected function isPublicWebDAVRequest() { return substr($this->request->getScriptName(), 0 - strlen('/public.php')) === '/public.php' && ( - $this->request->getPathInfo() === '/webdav' || - strpos($this->request->getPathInfo(), '/webdav/') === 0 + $this->request->getPathInfo() === '/webdav' + || str_starts_with($this->request->getPathInfo() ?? '', '/webdav/') ); } diff --git a/apps/workflowengine/lib/Check/FileName.php b/apps/workflowengine/lib/Check/FileName.php index 32df51ebfac..4a9d503018f 100644 --- a/apps/workflowengine/lib/Check/FileName.php +++ b/apps/workflowengine/lib/Check/FileName.php @@ -3,27 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2018 Daniel Kesselberg <mail@danielkesselberg.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Daniel Kesselberg <mail@danielkesselberg.de> - * @author szaimen <szaimen@e.mail.de> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Check; @@ -37,19 +18,16 @@ use OCP\WorkflowEngine\IFileCheck; class FileName extends AbstractStringCheck implements IFileCheck { use TFileCheck; - /** @var IRequest */ - protected $request; - /** @var IMountManager */ - private $mountManager; - /** * @param IL10N $l * @param IRequest $request */ - public function __construct(IL10N $l, IRequest $request, IMountManager $mountManager) { + public function __construct( + IL10N $l, + protected IRequest $request, + private IMountManager $mountManager, + ) { parent::__construct($l); - $this->request = $request; - $this->mountManager = $mountManager; } /** diff --git a/apps/workflowengine/lib/Check/FileSize.php b/apps/workflowengine/lib/Check/FileSize.php index 7271147e834..5ee03ccc9cf 100644 --- a/apps/workflowengine/lib/Check/FileSize.php +++ b/apps/workflowengine/lib/Check/FileSize.php @@ -1,26 +1,8 @@ <?php + /** - * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Joas Schilling <coding@schilljs.com> - * @author Morris Jobke <hey@morrisjobke.de> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Check; @@ -35,19 +17,14 @@ class FileSize implements ICheck { /** @var int */ protected $size; - /** @var IL10N */ - protected $l; - - /** @var IRequest */ - protected $request; - /** * @param IL10N $l * @param IRequest $request */ - public function __construct(IL10N $l, IRequest $request) { - $this->l = $l; - $this->request = $request; + public function __construct( + protected IL10N $l, + protected IRequest $request, + ) { } /** diff --git a/apps/workflowengine/lib/Check/FileSystemTags.php b/apps/workflowengine/lib/Check/FileSystemTags.php index 008f47eca78..811571f558a 100644 --- a/apps/workflowengine/lib/Check/FileSystemTags.php +++ b/apps/workflowengine/lib/Check/FileSystemTags.php @@ -1,42 +1,25 @@ <?php + /** - * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Joas Schilling <coding@schilljs.com> - * @author Julius Härtl <jus@bitgrid.net> - * @author Richard Steinmetz <richard@steinmetz.cloud> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Check; +use OC\Files\Storage\Wrapper\Jail; use OCA\Files_Sharing\SharedStorage; use OCA\WorkflowEngine\Entity\File; use OCP\Files\Cache\ICache; use OCP\Files\IHomeStorage; +use OCP\IGroupManager; use OCP\IL10N; +use OCP\IUser; +use OCP\IUserSession; use OCP\SystemTag\ISystemTagManager; use OCP\SystemTag\ISystemTagObjectMapper; use OCP\SystemTag\TagNotFoundException; use OCP\WorkflowEngine\ICheck; use OCP\WorkflowEngine\IFileCheck; -use OC\Files\Storage\Wrapper\Wrapper; class FileSystemTags implements ICheck, IFileCheck { use TFileCheck; @@ -47,24 +30,13 @@ class FileSystemTags implements ICheck, IFileCheck { /** @var array */ protected $fileSystemTags; - /** @var IL10N */ - protected $l; - - /** @var ISystemTagManager */ - protected $systemTagManager; - - /** @var ISystemTagObjectMapper */ - protected $systemTagObjectMapper; - - /** - * @param IL10N $l - * @param ISystemTagManager $systemTagManager - * @param ISystemTagObjectMapper $systemTagObjectMapper - */ - public function __construct(IL10N $l, ISystemTagManager $systemTagManager, ISystemTagObjectMapper $systemTagObjectMapper) { - $this->l = $l; - $this->systemTagManager = $systemTagManager; - $this->systemTagObjectMapper = $systemTagObjectMapper; + public function __construct( + protected IL10N $l, + protected ISystemTagManager $systemTagManager, + protected ISystemTagObjectMapper $systemTagObjectMapper, + protected IUserSession $userSession, + protected IGroupManager $groupManager, + ) { } /** @@ -88,7 +60,18 @@ class FileSystemTags implements ICheck, IFileCheck { } try { - $this->systemTagManager->getTagsByIds($value); + $tags = $this->systemTagManager->getTagsByIds($value); + + $user = $this->userSession->getUser(); + $isAdmin = $user instanceof IUser && $this->groupManager->isAdmin($user->getUID()); + + if (!$isAdmin) { + foreach ($tags as $tag) { + if (!$tag->isUserVisible()) { + throw new \UnexpectedValueException($this->l->t('The given tag id is invalid'), 4); + } + } + } } catch (TagNotFoundException $e) { throw new \UnexpectedValueException($this->l->t('The given tag id is invalid'), 2); } catch (\InvalidArgumentException $e) { @@ -133,27 +116,15 @@ class FileSystemTags implements ICheck, IFileCheck { * @return int[] */ protected function getFileIds(ICache $cache, $path, $isExternalStorage) { - /** @psalm-suppress InvalidArgument */ - if ($this->storage->instanceOfStorage(\OCA\GroupFolders\Mount\GroupFolderStorage::class)) { - // Special implementation for groupfolder since all groupfolders share the same storage - // id so add the group folder id in the cache key too. - $groupFolderStorage = $this->storage; - if ($this->storage instanceof Wrapper) { - $groupFolderStorage = $this->storage->getInstanceOfStorage(\OCA\GroupFolders\Mount\GroupFolderStorage::class); - } - if ($groupFolderStorage === null) { - throw new \LogicException('Should not happen: Storage is instance of GroupFolderStorage but no group folder storage found while unwrapping.'); - } - /** - * @psalm-suppress UndefinedDocblockClass - * @psalm-suppress UndefinedInterfaceMethod - */ - $cacheId = $cache->getNumericStorageId() . '/' . $groupFolderStorage->getFolderId(); + $cacheId = $cache->getNumericStorageId(); + if ($this->storage->instanceOfStorage(Jail::class)) { + $absolutePath = $this->storage->getUnjailedPath($path); } else { - $cacheId = $cache->getNumericStorageId(); + $absolutePath = $path; } - if (isset($this->fileIds[$cacheId][$path])) { - return $this->fileIds[$cacheId][$path]; + + if (isset($this->fileIds[$cacheId][$absolutePath])) { + return $this->fileIds[$cacheId][$absolutePath]; } $parentIds = []; @@ -168,7 +139,7 @@ class FileSystemTags implements ICheck, IFileCheck { $parentIds[] = $fileId; } - $this->fileIds[$cacheId][$path] = $parentIds; + $this->fileIds[$cacheId][$absolutePath] = $parentIds; return $parentIds; } diff --git a/apps/workflowengine/lib/Check/RequestRemoteAddress.php b/apps/workflowengine/lib/Check/RequestRemoteAddress.php index 474599a8642..b6f8fef5aed 100644 --- a/apps/workflowengine/lib/Check/RequestRemoteAddress.php +++ b/apps/workflowengine/lib/Check/RequestRemoteAddress.php @@ -1,28 +1,8 @@ <?php + /** - * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> - * - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author J0WI <J0WI@users.noreply.github.com> - * @author Joas Schilling <coding@schilljs.com> - * @author Julius Härtl <jus@bitgrid.net> - * @author Morris Jobke <hey@morrisjobke.de> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Check; @@ -32,19 +12,14 @@ use OCP\WorkflowEngine\ICheck; class RequestRemoteAddress implements ICheck { - /** @var IL10N */ - protected $l; - - /** @var IRequest */ - protected $request; - /** * @param IL10N $l * @param IRequest $request */ - public function __construct(IL10N $l, IRequest $request) { - $this->l = $l; - $this->request = $request; + public function __construct( + protected IL10N $l, + protected IRequest $request, + ) { } /** diff --git a/apps/workflowengine/lib/Check/RequestTime.php b/apps/workflowengine/lib/Check/RequestTime.php index be28f8ead15..a49986652b8 100644 --- a/apps/workflowengine/lib/Check/RequestTime.php +++ b/apps/workflowengine/lib/Check/RequestTime.php @@ -1,27 +1,8 @@ <?php + /** - * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Joas Schilling <coding@schilljs.com> - * @author Julius Härtl <jus@bitgrid.net> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Check; @@ -36,18 +17,13 @@ class RequestTime implements ICheck { /** @var bool[] */ protected $cachedResults; - /** @var IL10N */ - protected $l; - - /** @var ITimeFactory */ - protected $timeFactory; - /** * @param ITimeFactory $timeFactory */ - public function __construct(IL10N $l, ITimeFactory $timeFactory) { - $this->l = $l; - $this->timeFactory = $timeFactory; + public function __construct( + protected IL10N $l, + protected ITimeFactory $timeFactory, + ) { } /** @@ -87,7 +63,7 @@ class RequestTime implements ICheck { [$hour1, $minute1] = explode(':', $time1); $date1 = new \DateTime('now', new \DateTimeZone($timezone1)); $date1->setTimestamp($currentTimestamp); - $date1->setTime($hour1, $minute1); + $date1->setTime((int)$hour1, (int)$minute1); return $date1->getTimestamp(); } diff --git a/apps/workflowengine/lib/Check/RequestURL.php b/apps/workflowengine/lib/Check/RequestURL.php index 73e6a2e6ce6..fb2ac7e8fd5 100644 --- a/apps/workflowengine/lib/Check/RequestURL.php +++ b/apps/workflowengine/lib/Check/RequestURL.php @@ -1,25 +1,8 @@ <?php + /** - * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> - * - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Joas Schilling <coding@schilljs.com> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Check; @@ -32,16 +15,15 @@ class RequestURL extends AbstractStringCheck { /** @var ?string */ protected $url; - /** @var IRequest */ - protected $request; - /** * @param IL10N $l * @param IRequest $request */ - public function __construct(IL10N $l, IRequest $request) { + public function __construct( + IL10N $l, + protected IRequest $request, + ) { parent::__construct($l); - $this->request = $request; } /** @@ -89,10 +71,10 @@ class RequestURL extends AbstractStringCheck { return false; } return substr($this->request->getScriptName(), 0 - strlen('/remote.php')) === '/remote.php' && ( - $this->request->getPathInfo() === '/webdav' || - strpos($this->request->getPathInfo(), '/webdav/') === 0 || - $this->request->getPathInfo() === '/dav/files' || - strpos($this->request->getPathInfo(), '/dav/files/') === 0 + $this->request->getPathInfo() === '/webdav' + || str_starts_with($this->request->getPathInfo() ?? '', '/webdav/') + || $this->request->getPathInfo() === '/dav/files' + || str_starts_with($this->request->getPathInfo() ?? '', '/dav/files/') ); } } diff --git a/apps/workflowengine/lib/Check/RequestUserAgent.php b/apps/workflowengine/lib/Check/RequestUserAgent.php index e8ca3ddfbc9..572ef567074 100644 --- a/apps/workflowengine/lib/Check/RequestUserAgent.php +++ b/apps/workflowengine/lib/Check/RequestUserAgent.php @@ -1,26 +1,8 @@ <?php + /** - * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Joas Schilling <coding@schilljs.com> - * @author Morris Jobke <hey@morrisjobke.de> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Check; @@ -29,16 +11,15 @@ use OCP\IRequest; class RequestUserAgent extends AbstractStringCheck { - /** @var IRequest */ - protected $request; - /** * @param IL10N $l * @param IRequest $request */ - public function __construct(IL10N $l, IRequest $request) { + public function __construct( + IL10N $l, + protected IRequest $request, + ) { parent::__construct($l); - $this->request = $request; } /** diff --git a/apps/workflowengine/lib/Check/TFileCheck.php b/apps/workflowengine/lib/Check/TFileCheck.php index 561cf012ff7..a514352e047 100644 --- a/apps/workflowengine/lib/Check/TFileCheck.php +++ b/apps/workflowengine/lib/Check/TFileCheck.php @@ -3,32 +3,15 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2019 Arthur Schiwon <blizzz@arthur-schiwon.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Joas Schilling <coding@schilljs.com> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Check; use OCA\WorkflowEngine\AppInfo\Application; use OCA\WorkflowEngine\Entity\File; use OCP\Files\Node; +use OCP\Files\NotFoundException; use OCP\Files\Storage\IStorage; use OCP\WorkflowEngine\IEntity; @@ -55,7 +38,7 @@ trait TFileCheck { } /** - * @throws \OCP\Files\NotFoundException + * @throws NotFoundException */ public function setEntitySubject(IEntity $entity, $subject): void { if ($entity instanceof File) { diff --git a/apps/workflowengine/lib/Check/UserGroupMembership.php b/apps/workflowengine/lib/Check/UserGroupMembership.php index 4ca073b8e5b..690f9974a49 100644 --- a/apps/workflowengine/lib/Check/UserGroupMembership.php +++ b/apps/workflowengine/lib/Check/UserGroupMembership.php @@ -1,26 +1,8 @@ <?php + /** - * @copyright Copyright (c) 2016 Morris Jobke <hey@morrisjobke.de> - * - * @author Joas Schilling <coding@schilljs.com> - * @author Julius Härtl <jus@bitgrid.net> - * @author Morris Jobke <hey@morrisjobke.de> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Check; @@ -39,24 +21,16 @@ class UserGroupMembership implements ICheck { /** @var string[] */ protected $cachedGroupMemberships; - /** @var IUserSession */ - protected $userSession; - - /** @var IGroupManager */ - protected $groupManager; - - /** @var IL10N */ - protected $l; - /** * @param IUserSession $userSession * @param IGroupManager $groupManager * @param IL10N $l */ - public function __construct(IUserSession $userSession, IGroupManager $groupManager, IL10N $l) { - $this->userSession = $userSession; - $this->groupManager = $groupManager; - $this->l = $l; + public function __construct( + protected IUserSession $userSession, + protected IGroupManager $groupManager, + protected IL10N $l, + ) { } /** diff --git a/apps/workflowengine/lib/Command/Index.php b/apps/workflowengine/lib/Command/Index.php index 4f418b4ffc7..1fb8cb416b0 100644 --- a/apps/workflowengine/lib/Command/Index.php +++ b/apps/workflowengine/lib/Command/Index.php @@ -3,26 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2019 Arthur Schiwon <blizzz@arthur-schiwon.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Joas Schilling <coding@schilljs.com> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Command; @@ -36,11 +18,9 @@ use Symfony\Component\Console\Output\OutputInterface; class Index extends Command { - /** @var Manager */ - private $manager; - - public function __construct(Manager $manager) { - $this->manager = $manager; + public function __construct( + private Manager $manager, + ) { parent::__construct(); } diff --git a/apps/workflowengine/lib/Controller/AWorkflowController.php b/apps/workflowengine/lib/Controller/AWorkflowController.php index 77e50526092..6395d0d98f6 100644 --- a/apps/workflowengine/lib/Controller/AWorkflowController.php +++ b/apps/workflowengine/lib/Controller/AWorkflowController.php @@ -3,33 +3,15 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2019 Arthur Schiwon <blizzz@arthur-schiwon.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author blizzz <blizzz@arthur-schiwon.de> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Controller; use Doctrine\DBAL\Exception; use OCA\WorkflowEngine\Helper\ScopeContext; use OCA\WorkflowEngine\Manager; +use OCP\AppFramework\Http\Attribute\PasswordConfirmationRequired; use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\OCS\OCSBadRequestException; use OCP\AppFramework\OCS\OCSException; @@ -40,22 +22,13 @@ use Psr\Log\LoggerInterface; abstract class AWorkflowController extends OCSController { - /** @var Manager */ - protected $manager; - - /** @var LoggerInterface */ - private $logger; - public function __construct( $appName, IRequest $request, - Manager $manager, - LoggerInterface $logger + protected Manager $manager, + private LoggerInterface $logger, ) { parent::__construct($appName, $request); - - $this->manager = $manager; - $this->logger = $logger; } /** @@ -103,13 +76,14 @@ abstract class AWorkflowController extends OCSController { * @throws OCSForbiddenException * @throws OCSException */ + #[PasswordConfirmationRequired] public function create( string $class, string $name, array $checks, string $operation, string $entity, - array $events + array $events, ): DataResponse { $context = $this->getScopeContext(); try { @@ -131,13 +105,14 @@ abstract class AWorkflowController extends OCSController { * @throws OCSForbiddenException * @throws OCSException */ + #[PasswordConfirmationRequired] public function update( int $id, string $name, array $checks, string $operation, string $entity, - array $events + array $events, ): DataResponse { try { $context = $this->getScopeContext(); @@ -159,6 +134,7 @@ abstract class AWorkflowController extends OCSController { * @throws OCSForbiddenException * @throws OCSException */ + #[PasswordConfirmationRequired] public function destroy(int $id): DataResponse { try { $deleted = $this->manager->deleteOperation($id, $this->getScopeContext()); diff --git a/apps/workflowengine/lib/Controller/GlobalWorkflowsController.php b/apps/workflowengine/lib/Controller/GlobalWorkflowsController.php index 8778f85365f..001c673df35 100644 --- a/apps/workflowengine/lib/Controller/GlobalWorkflowsController.php +++ b/apps/workflowengine/lib/Controller/GlobalWorkflowsController.php @@ -3,26 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2019 Arthur Schiwon <blizzz@arthur-schiwon.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Controller; diff --git a/apps/workflowengine/lib/Controller/RequestTime.php b/apps/workflowengine/lib/Controller/RequestTime.php deleted file mode 100644 index a1d9ff4a630..00000000000 --- a/apps/workflowengine/lib/Controller/RequestTime.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php -/** - * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> - * - * @author Joas Schilling <coding@schilljs.com> - * @author Morris Jobke <hey@morrisjobke.de> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ -namespace OCA\WorkflowEngine\Controller; - -use OCP\AppFramework\Controller; -use OCP\AppFramework\Http\JSONResponse; - -class RequestTime extends Controller { - - /** - * @NoAdminRequired - * - * @param string $search - * @return JSONResponse - */ - public function getTimezones($search = '') { - $timezones = \DateTimeZone::listIdentifiers(); - - if ($search !== '') { - $timezones = array_filter($timezones, function ($timezone) use ($search) { - return stripos($timezone, $search) !== false; - }); - } - - $timezones = array_slice($timezones, 0, 10); - - $response = []; - foreach ($timezones as $timezone) { - $response[$timezone] = $timezone; - } - return new JSONResponse($response); - } -} diff --git a/apps/workflowengine/lib/Controller/RequestTimeController.php b/apps/workflowengine/lib/Controller/RequestTimeController.php new file mode 100644 index 00000000000..4b34f16ce0a --- /dev/null +++ b/apps/workflowengine/lib/Controller/RequestTimeController.php @@ -0,0 +1,37 @@ +<?php + +/** + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +namespace OCA\WorkflowEngine\Controller; + +use OCP\AppFramework\Controller; +use OCP\AppFramework\Http\Attribute\NoAdminRequired; +use OCP\AppFramework\Http\JSONResponse; + +class RequestTimeController extends Controller { + + /** + * @param string $search + * @return JSONResponse + */ + #[NoAdminRequired] + public function getTimezones($search = '') { + $timezones = \DateTimeZone::listIdentifiers(); + + if ($search !== '') { + $timezones = array_filter($timezones, function ($timezone) use ($search) { + return stripos($timezone, $search) !== false; + }); + } + + $timezones = array_slice($timezones, 0, 10); + + $response = []; + foreach ($timezones as $timezone) { + $response[$timezone] = $timezone; + } + return new JSONResponse($response); + } +} diff --git a/apps/workflowengine/lib/Controller/UserWorkflowsController.php b/apps/workflowengine/lib/Controller/UserWorkflowsController.php index dd2457dd9e8..953ce149233 100644 --- a/apps/workflowengine/lib/Controller/UserWorkflowsController.php +++ b/apps/workflowengine/lib/Controller/UserWorkflowsController.php @@ -3,32 +3,15 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2019 Arthur Schiwon <blizzz@arthur-schiwon.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Julius Härtl <jus@bitgrid.net> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Controller; use OCA\WorkflowEngine\Helper\ScopeContext; use OCA\WorkflowEngine\Manager; +use OCP\AppFramework\Http\Attribute\NoAdminRequired; +use OCP\AppFramework\Http\Attribute\PasswordConfirmationRequired; use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\OCS\OCSBadRequestException; use OCP\AppFramework\OCS\OCSForbiddenException; @@ -39,9 +22,6 @@ use Psr\Log\LoggerInterface; class UserWorkflowsController extends AWorkflowController { - /** @var IUserSession */ - private $session; - /** @var ScopeContext */ private $scopeContext; @@ -49,12 +29,10 @@ class UserWorkflowsController extends AWorkflowController { $appName, IRequest $request, Manager $manager, - IUserSession $session, - LoggerInterface $logger + private IUserSession $session, + LoggerInterface $logger, ) { parent::__construct($appName, $request, $manager, $logger); - - $this->session = $session; } /** @@ -62,45 +40,47 @@ class UserWorkflowsController extends AWorkflowController { * * Example: curl -u joann -H "OCS-APIREQUEST: true" "http://my.nc.srvr/ocs/v2.php/apps/workflowengine/api/v1/workflows/user?format=json" * - * @NoAdminRequired * @throws OCSForbiddenException */ + #[NoAdminRequired] public function index(): DataResponse { return parent::index(); } /** - * @NoAdminRequired - * * Example: curl -u joann -H "OCS-APIREQUEST: true" "http://my.nc.srvr/ocs/v2.php/apps/workflowengine/api/v1/workflows/user/OCA\\Workflow_DocToPdf\\Operation?format=json" * @throws OCSForbiddenException */ + #[NoAdminRequired] public function show(string $id): DataResponse { return parent::show($id); } /** - * @NoAdminRequired * @throws OCSBadRequestException * @throws OCSForbiddenException */ + #[NoAdminRequired] + #[PasswordConfirmationRequired] public function create(string $class, string $name, array $checks, string $operation, string $entity, array $events): DataResponse { return parent::create($class, $name, $checks, $operation, $entity, $events); } /** - * @NoAdminRequired * @throws OCSBadRequestException * @throws OCSForbiddenException */ + #[NoAdminRequired] + #[PasswordConfirmationRequired] public function update(int $id, string $name, array $checks, string $operation, string $entity, array $events): DataResponse { return parent::update($id, $name, $checks, $operation, $entity, $events); } /** - * @NoAdminRequired * @throws OCSForbiddenException */ + #[NoAdminRequired] + #[PasswordConfirmationRequired] public function destroy(int $id): DataResponse { return parent::destroy($id); } diff --git a/apps/workflowengine/lib/Entity/File.php b/apps/workflowengine/lib/Entity/File.php index 3f09fcd24a1..64d552e1737 100644 --- a/apps/workflowengine/lib/Entity/File.php +++ b/apps/workflowengine/lib/Entity/File.php @@ -3,42 +3,24 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2019 Arthur Schiwon <blizzz@arthur-schiwon.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Entity; +use OC\Files\Config\UserMountCache; use OCP\EventDispatcher\Event; use OCP\EventDispatcher\GenericEvent; use OCP\Files\InvalidPathException; use OCP\Files\IRootFolder; +use OCP\Files\Mount\IMountManager; use OCP\Files\Node; use OCP\Files\NotFoundException; use OCP\IL10N; -use OCP\ILogger; use OCP\IURLGenerator; use OCP\IUser; use OCP\IUserManager; use OCP\IUserSession; -use OCP\Share\IManager as ShareManager; use OCP\SystemTag\ISystemTag; use OCP\SystemTag\ISystemTagManager; use OCP\SystemTag\MapperEvent; @@ -52,50 +34,28 @@ use OCP\WorkflowEngine\IRuleMatcher; class File implements IEntity, IDisplayText, IUrl, IIcon, IContextPortation { private const EVENT_NAMESPACE = '\OCP\Files::'; - - /** @var IL10N */ - protected $l10n; - /** @var IURLGenerator */ - protected $urlGenerator; - /** @var IRootFolder */ - protected $root; - /** @var ILogger */ - protected $logger; /** @var string */ protected $eventName; /** @var Event */ protected $event; - /** @var ShareManager */ - private $shareManager; - /** @var IUserSession */ - private $userSession; - /** @var ISystemTagManager */ - private $tagManager; /** @var ?Node */ private $node; /** @var ?IUser */ private $actingUser = null; - /** @var IUserManager */ - private $userManager; + /** @var UserMountCache */ + private $userMountCache; public function __construct( - IL10N $l10n, - IURLGenerator $urlGenerator, - IRootFolder $root, - ILogger $logger, - ShareManager $shareManager, - IUserSession $userSession, - ISystemTagManager $tagManager, - IUserManager $userManager + protected IL10N $l10n, + protected IURLGenerator $urlGenerator, + protected IRootFolder $root, + private IUserSession $userSession, + private ISystemTagManager $tagManager, + private IUserManager $userManager, + UserMountCache $userMountCache, + private IMountManager $mountManager, ) { - $this->l10n = $l10n; - $this->urlGenerator = $urlGenerator; - $this->root = $root; - $this->logger = $logger; - $this->shareManager = $shareManager; - $this->userSession = $userSession; - $this->tagManager = $tagManager; - $this->userManager = $userManager; + $this->userMountCache = $userMountCache; } public function getName(): string { @@ -134,14 +94,28 @@ class File implements IEntity, IDisplayText, IUrl, IIcon, IContextPortation { } } - public function isLegitimatedForUserId(string $uid): bool { + public function isLegitimatedForUserId(string $userId): bool { try { $node = $this->getNode(); - if ($node->getOwner()->getUID() === $uid) { + if ($node->getOwner()?->getUID() === $userId) { return true; } - $acl = $this->shareManager->getAccessList($node, true, true); - return isset($acl['users']) && array_key_exists($uid, $acl['users']); + + if ($this->eventName === self::EVENT_NAMESPACE . 'postDelete') { + // At postDelete, the file no longer exists. Check for parent folder instead. + $fileId = $node->getParentId(); + } else { + $fileId = $node->getId(); + } + + $mountInfos = $this->userMountCache->getMountsForFileId($fileId, $userId); + foreach ($mountInfos as $mountInfo) { + $mount = $this->mountManager->getMountFromMountInfo($mountInfo); + if ($mount && $mount->getStorage() && !empty($mount->getStorage()->getCache()->get($fileId))) { + return true; + } + } + return false; } catch (NotFoundException $e) { return false; } diff --git a/apps/workflowengine/lib/Helper/LogContext.php b/apps/workflowengine/lib/Helper/LogContext.php index 2ad619f1686..9d740680bb6 100644 --- a/apps/workflowengine/lib/Helper/LogContext.php +++ b/apps/workflowengine/lib/Helper/LogContext.php @@ -3,27 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2019 Arthur Schiwon <blizzz@arthur-schiwon.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Julius Härtl <jus@bitgrid.net> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Helper; diff --git a/apps/workflowengine/lib/Helper/ScopeContext.php b/apps/workflowengine/lib/Helper/ScopeContext.php index 1927aac6b40..05379f5ff43 100644 --- a/apps/workflowengine/lib/Helper/ScopeContext.php +++ b/apps/workflowengine/lib/Helper/ScopeContext.php @@ -3,26 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2019 Arthur Schiwon <blizzz@arthur-schiwon.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Helper; @@ -36,7 +18,7 @@ class ScopeContext { /** @var string */ private $hash; - public function __construct(int $scope, string $scopeId = null) { + public function __construct(int $scope, ?string $scopeId = null) { $this->scope = $this->evaluateScope($scope); $this->scopeId = $this->evaluateScopeId($scopeId); } @@ -48,7 +30,7 @@ class ScopeContext { throw new \InvalidArgumentException('Invalid scope'); } - private function evaluateScopeId(string $scopeId = null): string { + private function evaluateScopeId(?string $scopeId = null): string { if ($this->scope === IManager::SCOPE_USER && trim((string)$scopeId) === '') { throw new \InvalidArgumentException('user scope requires a user id'); diff --git a/apps/workflowengine/lib/Listener/LoadAdditionalSettingsScriptsListener.php b/apps/workflowengine/lib/Listener/LoadAdditionalSettingsScriptsListener.php index a3806799ff0..e5a03fdcb2e 100644 --- a/apps/workflowengine/lib/Listener/LoadAdditionalSettingsScriptsListener.php +++ b/apps/workflowengine/lib/Listener/LoadAdditionalSettingsScriptsListener.php @@ -3,44 +3,21 @@ declare(strict_types=1); /** - * @copyright 2020 Christoph Wurst <christoph@winzerhof-wurst.at> - * - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author François Freitag <mail@franek.fr> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ + namespace OCA\WorkflowEngine\Listener; use OCA\WorkflowEngine\AppInfo\Application; use OCP\EventDispatcher\Event; use OCP\EventDispatcher\IEventListener; -use OCP\Template; -use function class_exists; -use function function_exists; use OCP\Util; +use OCP\WorkflowEngine\Events\LoadSettingsScriptsEvent; +/** @template-implements IEventListener<LoadSettingsScriptsEvent> */ class LoadAdditionalSettingsScriptsListener implements IEventListener { public function handle(Event $event): void { - if (!function_exists('style')) { - // This is hacky, but we need to load the template class - class_exists(Template::class, true); - } - Util::addScript('core', 'files_fileinfo'); Util::addScript('core', 'files_client'); Util::addScript('core', 'systemtags'); diff --git a/apps/workflowengine/lib/Manager.php b/apps/workflowengine/lib/Manager.php index 659fd2421c1..0f41679789d 100644 --- a/apps/workflowengine/lib/Manager.php +++ b/apps/workflowengine/lib/Manager.php @@ -1,36 +1,12 @@ <?php + /** - * @copyright Copyright (c) 2016 Morris Jobke <hey@morrisjobke.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author blizzz <blizzz@arthur-schiwon.de> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Daniel Kesselberg <mail@danielkesselberg.de> - * @author Joas Schilling <coding@schilljs.com> - * @author Julius Härtl <jus@bitgrid.net> - * @author Morris Jobke <hey@morrisjobke.de> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine; use Doctrine\DBAL\Exception; -use OCP\Cache\CappedMemoryCache; use OCA\WorkflowEngine\AppInfo\Application; use OCA\WorkflowEngine\Check\FileMimeType; use OCA\WorkflowEngine\Check\FileName; @@ -46,13 +22,13 @@ use OCA\WorkflowEngine\Helper\ScopeContext; use OCA\WorkflowEngine\Service\Logger; use OCA\WorkflowEngine\Service\RuleMatcher; use OCP\AppFramework\QueryException; +use OCP\Cache\CappedMemoryCache; use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\EventDispatcher\IEventDispatcher; -use OCP\Files\Storage\IStorage; +use OCP\ICacheFactory; use OCP\IConfig; use OCP\IDBConnection; use OCP\IL10N; -use OCP\ILogger; use OCP\IServerContainer; use OCP\IUserSession; use OCP\WorkflowEngine\Events\RegisterChecksEvent; @@ -65,38 +41,15 @@ use OCP\WorkflowEngine\IEntityEvent; use OCP\WorkflowEngine\IManager; use OCP\WorkflowEngine\IOperation; use OCP\WorkflowEngine\IRuleMatcher; -use Symfony\Component\EventDispatcher\EventDispatcherInterface as LegacyDispatcher; -use Symfony\Component\EventDispatcher\GenericEvent; +use Psr\Log\LoggerInterface; class Manager implements IManager { - - /** @var IStorage */ - protected $storage; - - /** @var string */ - protected $path; - - /** @var object */ - protected $entity; - /** @var array[] */ protected $operations = []; /** @var array[] */ protected $checks = []; - /** @var IDBConnection */ - protected $connection; - - /** @var IServerContainer|\OC\Server */ - protected $container; - - /** @var IL10N */ - protected $l; - - /** @var LegacyDispatcher */ - protected $legacyEventDispatcher; - /** @var IEntity[] */ protected $registeredEntities = []; @@ -106,40 +59,20 @@ class Manager implements IManager { /** @var ICheck[] */ protected $registeredChecks = []; - /** @var ILogger */ - protected $logger; - /** @var CappedMemoryCache<int[]> */ protected CappedMemoryCache $operationsByScope; - /** @var IUserSession */ - protected $session; - - /** @var IEventDispatcher */ - private $dispatcher; - - /** @var IConfig */ - private $config; - public function __construct( - IDBConnection $connection, - IServerContainer $container, - IL10N $l, - LegacyDispatcher $eventDispatcher, - ILogger $logger, - IUserSession $session, - IEventDispatcher $dispatcher, - IConfig $config + protected IDBConnection $connection, + protected IServerContainer $container, + protected IL10N $l, + protected LoggerInterface $logger, + protected IUserSession $session, + private IEventDispatcher $dispatcher, + private IConfig $config, + private ICacheFactory $cacheFactory, ) { - $this->connection = $connection; - $this->container = $container; - $this->l = $l; - $this->legacyEventDispatcher = $eventDispatcher; - $this->logger = $logger; $this->operationsByScope = new CappedMemoryCache(64); - $this->session = $session; - $this->dispatcher = $dispatcher; - $this->config = $config; } public function getRuleMatcher(): IRuleMatcher { @@ -153,6 +86,12 @@ class Manager implements IManager { } public function getAllConfiguredEvents() { + $cache = $this->cacheFactory->createDistributed('flow'); + $cached = $cache->get('events'); + if ($cached !== null) { + return $cached; + } + $query = $this->connection->getQueryBuilder(); $query->select('class', 'entity') @@ -161,7 +100,7 @@ class Manager implements IManager { ->where($query->expr()->neq('events', $query->createNamedParameter('[]'), IQueryBuilder::PARAM_STR)) ->groupBy('class', 'entity', $query->expr()->castColumn('events', IQueryBuilder::PARAM_STR)); - $result = $query->execute(); + $result = $query->executeQuery(); $operations = []; while ($row = $result->fetch()) { $eventNames = \json_decode($row['events']); @@ -176,6 +115,8 @@ class Manager implements IManager { } $result->closeCursor(); + $cache->set('events', $operations, 3600); + return $operations; } @@ -189,6 +130,13 @@ class Manager implements IManager { return $scopesByOperation[$operationClass]; } + try { + /** @var IOperation $operation */ + $operation = $this->container->query($operationClass); + } catch (QueryException $e) { + return []; + } + $query = $this->connection->getQueryBuilder(); $query->selectDistinct('s.type') @@ -198,11 +146,16 @@ class Manager implements IManager { ->where($query->expr()->eq('o.class', $query->createParameter('operationClass'))); $query->setParameters(['operationClass' => $operationClass]); - $result = $query->execute(); + $result = $query->executeQuery(); $scopesByOperation[$operationClass] = []; while ($row = $result->fetch()) { $scope = new ScopeContext($row['type'], $row['value']); + + if (!$operation->isAvailableForScope((int)$row['type'])) { + continue; + } + $scopesByOperation[$operationClass][$scope->getHash()] = $scope; } @@ -228,10 +181,21 @@ class Manager implements IManager { } $query->setParameters(['scope' => $scopeContext->getScope(), 'scopeId' => $scopeContext->getScopeId()]); - $result = $query->execute(); + $result = $query->executeQuery(); $this->operations[$scopeContext->getHash()] = []; while ($row = $result->fetch()) { + try { + /** @var IOperation $operation */ + $operation = $this->container->query($row['class']); + } catch (QueryException $e) { + continue; + } + + if (!$operation->isAvailableForScope((int)$row['scope_type'])) { + continue; + } + if (!isset($this->operations[$scopeContext->getHash()][$row['class']])) { $this->operations[$scopeContext->getHash()][$row['class']] = []; } @@ -258,7 +222,7 @@ class Manager implements IManager { $query->select('*') ->from('flow_operations') ->where($query->expr()->eq('id', $query->createNamedParameter($id))); - $result = $query->execute(); + $result = $query->executeQuery(); $row = $result->fetch(); $result->closeCursor(); @@ -275,7 +239,7 @@ class Manager implements IManager { array $checkIds, string $operation, string $entity, - array $events + array $events, ): int { $query = $this->connection->getQueryBuilder(); $query->insert('flow_operations') @@ -287,7 +251,9 @@ class Manager implements IManager { 'entity' => $query->createNamedParameter($entity), 'events' => $query->createNamedParameter(json_encode($events)) ]); - $query->execute(); + $query->executeStatement(); + + $this->cacheFactory->createDistributed('flow')->remove('events'); return $query->getLastInsertId(); } @@ -299,7 +265,7 @@ class Manager implements IManager { * @param string $operation * @return array The added operation * @throws \UnexpectedValueException - * @throw Exception + * @throws Exception */ public function addOperation( string $class, @@ -308,9 +274,9 @@ class Manager implements IManager { string $operation, ScopeContext $scope, string $entity, - array $events + array $events, ) { - $this->validateOperation($class, $name, $checks, $operation, $entity, $events); + $this->validateOperation($class, $name, $checks, $operation, $scope, $entity, $events); $this->connection->beginTransaction(); @@ -344,11 +310,11 @@ class Manager implements IManager { ->where($qb->expr()->eq('s.type', $qb->createParameter('scope'))); if ($scopeContext->getScope() !== IManager::SCOPE_ADMIN) { - $qb->where($qb->expr()->eq('s.value', $qb->createParameter('scopeId'))); + $qb->andWhere($qb->expr()->eq('s.value', $qb->createParameter('scopeId'))); } $qb->setParameters(['scope' => $scopeContext->getScope(), 'scopeId' => $scopeContext->getScopeId()]); - $result = $qb->execute(); + $result = $qb->executeQuery(); $operations = []; while (($opId = $result->fetchOne()) !== false) { @@ -377,13 +343,13 @@ class Manager implements IManager { string $operation, ScopeContext $scopeContext, string $entity, - array $events + array $events, ): array { if (!$this->canModify($id, $scopeContext)) { throw new \DomainException('Target operation not within scope'); }; $row = $this->getOperation($id); - $this->validateOperation($row['class'], $name, $checks, $operation, $entity, $events); + $this->validateOperation($row['class'], $name, $checks, $operation, $scopeContext, $entity, $events); $checkIds = []; try { @@ -407,6 +373,7 @@ class Manager implements IManager { throw $e; } unset($this->operations[$scopeContext->getHash()]); + $this->cacheFactory->createDistributed('flow')->remove('events'); return $this->getOperation($id); } @@ -427,12 +394,12 @@ class Manager implements IManager { $this->connection->beginTransaction(); $result = (bool)$query->delete('flow_operations') ->where($query->expr()->eq('id', $query->createNamedParameter($id))) - ->execute(); + ->executeStatement(); if ($result) { $qb = $this->connection->getQueryBuilder(); $result &= (bool)$qb->delete('flow_operations_scope') ->where($qb->expr()->eq('operation_id', $qb->createNamedParameter($id))) - ->execute(); + ->executeStatement(); } $this->connection->commit(); } catch (Exception $e) { @@ -444,6 +411,8 @@ class Manager implements IManager { unset($this->operations[$scopeContext->getHash()]); } + $this->cacheFactory->createDistributed('flow')->remove('events'); + return $result; } @@ -483,9 +452,12 @@ class Manager implements IManager { * @param string $name * @param array[] $checks * @param string $operation + * @param ScopeContext $scope + * @param string $entity + * @param array $events * @throws \UnexpectedValueException */ - public function validateOperation($class, $name, array $checks, $operation, string $entity, array $events) { + public function validateOperation($class, $name, array $checks, $operation, ScopeContext $scope, string $entity, array $events) { try { /** @var IOperation $instance */ $instance = $this->container->query($class); @@ -497,6 +469,10 @@ class Manager implements IManager { throw new \UnexpectedValueException($this->l->t('Operation %s is invalid', [$class])); } + if (!$instance->isAvailableForScope($scope->getScope())) { + throw new \UnexpectedValueException($this->l->t('Operation %s is invalid', [$class])); + } + $this->validateEvents($entity, $events, $instance); if (count($checks) === 0) { @@ -562,11 +538,11 @@ class Manager implements IManager { $query->select('*') ->from('flow_checks') ->where($query->expr()->in('id', $query->createNamedParameter($checkIds, IQueryBuilder::PARAM_INT_ARRAY))); - $result = $query->execute(); + $result = $query->executeQuery(); while ($row = $result->fetch()) { - $this->checks[(int) $row['id']] = $row; - $checks[(int) $row['id']] = $row; + $this->checks[(int)$row['id']] = $row; + $checks[(int)$row['id']] = $row; } $result->closeCursor(); @@ -593,11 +569,11 @@ class Manager implements IManager { $query->select('id') ->from('flow_checks') ->where($query->expr()->eq('hash', $query->createNamedParameter($hash))); - $result = $query->execute(); + $result = $query->executeQuery(); if ($row = $result->fetch()) { $result->closeCursor(); - return (int) $row['id']; + return (int)$row['id']; } $query = $this->connection->getQueryBuilder(); @@ -608,7 +584,7 @@ class Manager implements IManager { 'value' => $query->createNamedParameter($value), 'hash' => $query->createNamedParameter($hash), ]); - $query->execute(); + $query->executeStatement(); return $query->getLastInsertId(); } @@ -622,7 +598,7 @@ class Manager implements IManager { 'type' => $query->createNamedParameter($scope->getScope()), 'value' => $query->createNamedParameter($scope->getScopeId()), ]); - $insertQuery->execute(); + $insertQuery->executeStatement(); } public function formatOperation(array $operation): array { @@ -648,7 +624,6 @@ class Manager implements IManager { */ public function getEntitiesList(): array { $this->dispatcher->dispatchTyped(new RegisterEntitiesEvent($this)); - $this->legacyEventDispatcher->dispatch(IManager::EVENT_NAME_REG_ENTITY, new GenericEvent($this)); return array_values(array_merge($this->getBuildInEntities(), $this->registeredEntities)); } @@ -658,7 +633,6 @@ class Manager implements IManager { */ public function getOperatorList(): array { $this->dispatcher->dispatchTyped(new RegisterOperationsEvent($this)); - $this->legacyEventDispatcher->dispatch(IManager::EVENT_NAME_REG_OPERATION, new GenericEvent($this)); return array_merge($this->getBuildInOperators(), $this->registeredOperators); } @@ -668,7 +642,6 @@ class Manager implements IManager { */ public function getCheckList(): array { $this->dispatcher->dispatchTyped(new RegisterChecksEvent($this)); - $this->legacyEventDispatcher->dispatch(IManager::EVENT_NAME_REG_CHECK, new GenericEvent($this)); return array_merge($this->getBuildInChecks(), $this->registeredChecks); } @@ -694,7 +667,7 @@ class Manager implements IManager { File::class => $this->container->query(File::class), ]; } catch (QueryException $e) { - $this->logger->logException($e); + $this->logger->error($e->getMessage(), ['exception' => $e]); return []; } } @@ -708,7 +681,7 @@ class Manager implements IManager { // None yet ]; } catch (QueryException $e) { - $this->logger->logException($e); + $this->logger->error($e->getMessage(), ['exception' => $e]); return []; } } @@ -730,7 +703,7 @@ class Manager implements IManager { $this->container->query(UserGroupMembership::class), ]; } catch (QueryException $e) { - $this->logger->logException($e); + $this->logger->error($e->getMessage(), ['exception' => $e]); return []; } } diff --git a/apps/workflowengine/lib/Migration/PopulateNewlyIntroducedDatabaseFields.php b/apps/workflowengine/lib/Migration/PopulateNewlyIntroducedDatabaseFields.php index 974793e99b2..633d946cd7e 100644 --- a/apps/workflowengine/lib/Migration/PopulateNewlyIntroducedDatabaseFields.php +++ b/apps/workflowengine/lib/Migration/PopulateNewlyIntroducedDatabaseFields.php @@ -3,26 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2019 Arthur Schiwon <blizzz@arthur-schiwon.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Migration; @@ -34,11 +16,9 @@ use OCP\WorkflowEngine\IManager; class PopulateNewlyIntroducedDatabaseFields implements IRepairStep { - /** @var IDBConnection */ - private $dbc; - - public function __construct(IDBConnection $dbc) { - $this->dbc = $dbc; + public function __construct( + private IDBConnection $dbc, + ) { } public function getName() { @@ -59,7 +39,7 @@ class PopulateNewlyIntroducedDatabaseFields implements IRepairStep { $insertQuery = $qb->insert('flow_operations_scope'); while (($id = $ids->fetchOne()) !== false) { $insertQuery->values(['operation_id' => $qb->createNamedParameter($id), 'type' => IManager::SCOPE_ADMIN]); - $insertQuery->execute(); + $insertQuery->executeStatement(); } } @@ -73,7 +53,7 @@ class PopulateNewlyIntroducedDatabaseFields implements IRepairStep { // in case the repair step is executed multiple times for whatever reason. /** @var IResult $result */ - $result = $selectQuery->execute(); + $result = $selectQuery->executeQuery(); return $result; } } diff --git a/apps/workflowengine/lib/Migration/Version2000Date20190808074233.php b/apps/workflowengine/lib/Migration/Version2000Date20190808074233.php index 351c1aa3fa5..93f423cada7 100644 --- a/apps/workflowengine/lib/Migration/Version2000Date20190808074233.php +++ b/apps/workflowengine/lib/Migration/Version2000Date20190808074233.php @@ -3,37 +3,16 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Daniel Kesselberg <mail@danielkesselberg.de> - * @author Joas Schilling <coding@schilljs.com> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Migration; use Closure; use Doctrine\DBAL\Schema\Table; -use OCP\DB\Types; use OCA\WorkflowEngine\Entity\File; use OCP\DB\ISchemaWrapper; +use OCP\DB\Types; use OCP\Migration\IOutput; use OCP\Migration\SimpleMigrationStep; diff --git a/apps/workflowengine/lib/Migration/Version2200Date20210805101925.php b/apps/workflowengine/lib/Migration/Version2200Date20210805101925.php index 9f2049dc611..841277acfce 100644 --- a/apps/workflowengine/lib/Migration/Version2200Date20210805101925.php +++ b/apps/workflowengine/lib/Migration/Version2200Date20210805101925.php @@ -3,25 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2021 Vincent Petry <vincent@nextcloud.com> - * - * @author Vincent Petry <vincent@nextcloud.com> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Migration; diff --git a/apps/workflowengine/lib/Service/Logger.php b/apps/workflowengine/lib/Service/Logger.php index 6ad7f8c4847..494240bc403 100644 --- a/apps/workflowengine/lib/Service/Logger.php +++ b/apps/workflowengine/lib/Service/Logger.php @@ -3,27 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2020 Arthur Schiwon <blizzz@arthur-schiwon.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Julius Härtl <jus@bitgrid.net> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Service; @@ -36,24 +17,17 @@ use OCP\Log\ILogFactory; use Psr\Log\LoggerInterface; class Logger { - /** @var ILogger */ - protected $generalLogger; - /** @var LoggerInterface */ - protected $flowLogger; - /** @var IConfig */ - private $config; - /** @var ILogFactory */ - private $logFactory; - - public function __construct(ILogger $generalLogger, IConfig $config, ILogFactory $logFactory) { - $this->generalLogger = $generalLogger; - $this->config = $config; - $this->logFactory = $logFactory; + protected ?LoggerInterface $flowLogger = null; + public function __construct( + protected LoggerInterface $generalLogger, + private IConfig $config, + private ILogFactory $logFactory, + ) { $this->initLogger(); } - protected function initLogger() { + protected function initLogger(): void { $default = $this->config->getSystemValue('datadirectory', \OC::$SERVERROOT . '/data') . '/flow.log'; $logFile = trim((string)$this->config->getAppValue(Application::APP_ID, 'logfile', $default)); if ($logFile !== '') { @@ -154,7 +128,7 @@ class Logger { protected function log( string $message, array $context, - LogContext $logContext + LogContext $logContext, ): void { if (!isset($context['app'])) { $context['app'] = Application::APP_ID; diff --git a/apps/workflowengine/lib/Service/RuleMatcher.php b/apps/workflowengine/lib/Service/RuleMatcher.php index 13cba8a6aa5..c95387e14ee 100644 --- a/apps/workflowengine/lib/Service/RuleMatcher.php +++ b/apps/workflowengine/lib/Service/RuleMatcher.php @@ -3,29 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2019 Arthur Schiwon <blizzz@arthur-schiwon.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Daniel Calviño Sánchez <danxuliu@gmail.com> - * @author Daniel Kesselberg <mail@danielkesselberg.de> - * @author Joas Schilling <coding@schilljs.com> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Service; @@ -48,39 +27,24 @@ use RuntimeException; class RuleMatcher implements IRuleMatcher { - /** @var IUserSession */ - protected $session; - /** @var IManager */ - protected $manager; /** @var array */ protected $contexts; - /** @var IServerContainer */ - protected $container; /** @var array */ protected $fileInfo = []; - /** @var IL10N */ - protected $l; /** @var IOperation */ protected $operation; /** @var IEntity */ protected $entity; - /** @var Logger */ - protected $logger; /** @var string */ protected $eventName; public function __construct( - IUserSession $session, - IServerContainer $container, - IL10N $l, - Manager $manager, - Logger $logger + protected IUserSession $session, + protected IServerContainer $container, + protected IL10N $l, + protected Manager $manager, + protected Logger $logger, ) { - $this->session = $session; - $this->manager = $manager; - $this->container = $container; - $this->l = $l; - $this->logger = $logger; } public function setFileInfo(IStorage $storage, string $path, bool $isDir = false): void { diff --git a/apps/workflowengine/lib/Settings/ASettings.php b/apps/workflowengine/lib/Settings/ASettings.php index f3cb8d76bba..23e958755de 100644 --- a/apps/workflowengine/lib/Settings/ASettings.php +++ b/apps/workflowengine/lib/Settings/ASettings.php @@ -3,30 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2019 Arthur Schiwon <blizzz@arthur-schiwon.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Daniel Kesselberg <mail@danielkesselberg.de> - * @author Julius Härtl <jus@bitgrid.net> - * @author Morris Jobke <hey@morrisjobke.de> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Settings; @@ -48,30 +26,15 @@ use OCP\WorkflowEngine\IOperation; use OCP\WorkflowEngine\ISpecificOperation; abstract class ASettings implements ISettings { - private IL10N $l10n; - private string $appName; - private IEventDispatcher $eventDispatcher; - protected Manager $manager; - private IInitialState $initialStateService; - private IConfig $config; - private IURLGenerator $urlGenerator; - public function __construct( - string $appName, - IL10N $l, - IEventDispatcher $eventDispatcher, - Manager $manager, - IInitialState $initialStateService, - IConfig $config, - IURLGenerator $urlGenerator + private string $appName, + private IL10N $l10n, + private IEventDispatcher $eventDispatcher, + protected Manager $manager, + private IInitialState $initialStateService, + private IConfig $config, + private IURLGenerator $urlGenerator, ) { - $this->appName = $appName; - $this->l10n = $l; - $this->eventDispatcher = $eventDispatcher; - $this->manager = $manager; - $this->initialStateService = $initialStateService; - $this->config = $config; - $this->urlGenerator = $urlGenerator; } abstract public function getScope(): int; @@ -132,8 +95,8 @@ abstract class ASettings implements ISettings { /** * @return int whether the form should be rather on the top or bottom of - * the admin section. The forms are arranged in ascending order of the - * priority values. It is required to return a value between 0 and 100. + * the admin section. The forms are arranged in ascending order of the + * priority values. It is required to return a value between 0 and 100. * * E.g.: 70 */ diff --git a/apps/workflowengine/lib/Settings/Admin.php b/apps/workflowengine/lib/Settings/Admin.php index 25915ba08a4..c2018593c66 100644 --- a/apps/workflowengine/lib/Settings/Admin.php +++ b/apps/workflowengine/lib/Settings/Admin.php @@ -3,26 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2019 Arthur Schiwon <blizzz@arthur-schiwon.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Settings; diff --git a/apps/workflowengine/lib/Settings/Personal.php b/apps/workflowengine/lib/Settings/Personal.php index 8b575e00219..0a70f8dbe75 100644 --- a/apps/workflowengine/lib/Settings/Personal.php +++ b/apps/workflowengine/lib/Settings/Personal.php @@ -3,29 +3,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2019 Arthur Schiwon <blizzz@arthur-schiwon.de> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Julius Härtl <jus@bitgrid.net> - * @author Morris Jobke <hey@morrisjobke.de> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Settings; diff --git a/apps/workflowengine/lib/Settings/Section.php b/apps/workflowengine/lib/Settings/Section.php index c3fee45f5df..aa790c9ddcc 100644 --- a/apps/workflowengine/lib/Settings/Section.php +++ b/apps/workflowengine/lib/Settings/Section.php @@ -1,27 +1,8 @@ <?php + /** - * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Jan-Christoph Borchardt <hey@jancborchardt.net> - * @author Joas Schilling <coding@schilljs.com> - * @author Julius Härtl <jus@bitgrid.net> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Settings; @@ -31,18 +12,14 @@ use OCP\IURLGenerator; use OCP\Settings\IIconSection; class Section implements IIconSection { - /** @var IL10N */ - private $l; - /** @var IURLGenerator */ - private $url; - /** * @param IURLGenerator $url * @param IL10N $l */ - public function __construct(IURLGenerator $url, IL10N $l) { - $this->url = $url; - $this->l = $l; + public function __construct( + private IURLGenerator $url, + private IL10N $l, + ) { } /** diff --git a/apps/workflowengine/src/components/Check.vue b/apps/workflowengine/src/components/Check.vue index 459c97a0d05..136f6d21280 100644 --- a/apps/workflowengine/src/components/Check.vue +++ b/apps/workflowengine/src/components/Check.vue @@ -1,24 +1,36 @@ +<!-- + - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + - SPDX-License-Identifier: AGPL-3.0-or-later +--> <template> <div v-click-outside="hideDelete" class="check" @click="showDelete"> - <NcMultiselect ref="checkSelector" + <NcSelect ref="checkSelector" v-model="currentOption" :options="options" label="name" - track-by="class" - :allow-empty="false" + :clearable="false" :placeholder="t('workflowengine', 'Select a filter')" @input="updateCheck" /> - <NcMultiselect v-model="currentOperator" + <NcSelect v-model="currentOperator" :disabled="!currentOption" :options="operators" class="comparator" label="name" - track-by="operator" - :allow-empty="false" + :clearable="false" :placeholder="t('workflowengine', 'Select a comparator')" @input="updateCheck" /> + <component :is="currentElement" + v-if="currentElement" + ref="checkComponent" + :disabled="!currentOption" + :operator="check.operator" + :model-value="check.value" + class="option" + @update:model-value="updateCheck" + @valid="(valid=true) && validate()" + @invalid="!(valid=false) && validate()" /> <component :is="currentOption.component" - v-if="currentOperator && currentComponent" + v-else-if="currentOperator && currentComponent" v-model="check.value" :disabled="!currentOption" :check="check" @@ -35,15 +47,21 @@ class="option" @input="updateCheck"> <NcActions v-if="deleteVisible || !currentOption"> - <NcActionButton icon="icon-close" @click="$emit('remove')" /> + <NcActionButton :title="t('workflowengine', 'Remove filter')" @click="$emit('remove')"> + <template #icon> + <CloseIcon :size="20" /> + </template> + </NcActionButton> </NcActions> </div> </template> <script> -import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect' -import NcActions from '@nextcloud/vue/dist/Components/NcActions' -import NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton' +import NcActions from '@nextcloud/vue/components/NcActions' +import NcActionButton from '@nextcloud/vue/components/NcActionButton' +import NcSelect from '@nextcloud/vue/components/NcSelect' + +import CloseIcon from 'vue-material-design-icons/Close.vue' import ClickOutside from 'vue-click-outside' export default { @@ -51,7 +69,10 @@ export default { components: { NcActionButton, NcActions, - NcMultiselect, + NcSelect, + + // Icons + CloseIcon, }, directives: { ClickOutside, @@ -87,6 +108,12 @@ export default { } return operators }, + currentElement() { + if (!this.check.class) { + return false + } + return this.checks[this.check.class].element + }, currentComponent() { if (!this.currentOption) { return [] } return this.checks[this.currentOption.class].component @@ -108,6 +135,15 @@ export default { this.currentOption = this.checks[this.check.class] this.currentOperator = this.operators.find((operator) => operator.operator === this.check.operator) + if (this.currentElement) { + // If we do not set it, the check`s value would remain empty. Unsure why Vue behaves this way. + this.$refs.checkComponent.modelValue = undefined + } else if (this.currentOption?.component) { + // keeping this in an else for apps that try to be backwards compatible and may ship both + // to be removed in 03/2028 + console.warn('Developer warning: `CheckPlugin.options` is deprecated. Use `CheckPlugin.element` instead.') + } + if (this.check.class === null) { this.$nextTick(() => this.$refs.checkSelector.$el.focus()) } @@ -129,11 +165,15 @@ export default { this.check.invalid = !this.valid this.$emit('validate', this.valid) }, - updateCheck() { - const matchingOperator = this.operators.findIndex((operator) => this.check.operator === operator.operator) + updateCheck(event) { + const selectedOperator = event?.operator || this.currentOperator?.operator || this.check.operator + const matchingOperator = this.operators.findIndex((operator) => selectedOperator === operator.operator) if (this.check.class !== this.currentOption.class || matchingOperator === -1) { this.currentOperator = this.operators[0] } + if (event?.detail) { + this.check.value = event.detail[0] + } // eslint-disable-next-line vue/no-mutating-props this.check.class = this.currentOption.class // eslint-disable-next-line vue/no-mutating-props @@ -151,45 +191,38 @@ export default { .check { display: flex; flex-wrap: wrap; + align-items: flex-start; // to not stretch components vertically width: 100%; - padding-right: 20px; + padding-inline-end: 20px; + & > *:not(.close) { width: 180px; } & > .comparator { - min-width: 130px; - width: 130px; + min-width: 200px; + width: 200px; } & > .option { - min-width: 230px; - width: 230px; + min-width: 260px; + width: 260px; + min-height: 48px; + + & > input[type=text] { + min-height: 48px; + } } - & > .multiselect, + & > .v-select, + & > .button-vue, & > input[type=text] { - margin-right: 5px; + margin-inline-end: 5px; margin-bottom: 5px; } - - .multiselect::v-deep .multiselect__content-wrapper li>span, - .multiselect::v-deep .multiselect__single { - display: block; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } } + input[type=text] { margin: 0; } - ::placeholder { - font-size: 10px; - } - button.action-item.action-item--single.icon-close { - height: 44px; - width: 44px; - margin-top: -5px; - margin-bottom: -5px; - } + .invalid { border-color: var(--color-error) !important; } diff --git a/apps/workflowengine/src/components/Checks/FileMimeType.vue b/apps/workflowengine/src/components/Checks/FileMimeType.vue index 86f1a6b8cb1..6817b128e27 100644 --- a/apps/workflowengine/src/components/Checks/FileMimeType.vue +++ b/apps/workflowengine/src/components/Checks/FileMimeType.vue @@ -1,97 +1,87 @@ <!-- - - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net> - - - - @author Julius Härtl <jus@bitgrid.net> - - - - @license GNU AGPL version 3 or any later version - - - - This program is free software: you can redistribute it and/or modify - - it under the terms of the GNU Affero General Public License as - - published by the Free Software Foundation, either version 3 of the - - License, or (at your option) any later version. - - - - This program is distributed in the hope that it will be useful, - - but WITHOUT ANY WARRANTY; without even the implied warranty of - - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - - GNU Affero General Public License for more details. - - - - You should have received a copy of the GNU Affero General Public License - - along with this program. If not, see <http://www.gnu.org/licenses/>. - - - --> - + - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + - SPDX-License-Identifier: AGPL-3.0-or-later +--> <template> <div> - <NcMultiselect :value="currentValue" + <NcSelect :model-value="currentValue" :placeholder="t('workflowengine', 'Select a file type')" label="label" - track-by="pattern" :options="options" - :multiple="false" - :tagging="false" + :clearable="false" @input="setValue"> - <template slot="singleLabel" slot-scope="props"> - <span v-if="props.option.icon" class="option__icon" :class="props.option.icon" /> - <img v-else - class="option__icon-img" - :src="props.option.iconUrl" - alt=""> - <span class="option__title option__title_single">{{ props.option.label }}</span> + <template #option="option"> + <span v-if="option.icon" class="option__icon" :class="option.icon" /> + <span v-else class="option__icon-img"> + <img :src="option.iconUrl" alt=""> + </span> + <span class="option__title"> + <NcEllipsisedOption :name="String(option.label)" /> + </span> </template> - <template slot="option" slot-scope="props"> - <span v-if="props.option.icon" class="option__icon" :class="props.option.icon" /> - <img v-else - class="option__icon-img" - :src="props.option.iconUrl" - alt=""> - <span class="option__title">{{ props.option.label }}</span> + <template #selected-option="selectedOption"> + <span v-if="selectedOption.icon" class="option__icon" :class="selectedOption.icon" /> + <span v-else class="option__icon-img"> + <img :src="selectedOption.iconUrl" alt=""> + </span> + <span class="option__title"> + <NcEllipsisedOption :name="String(selectedOption.label)" /> + </span> </template> - </NcMultiselect> + </NcSelect> <input v-if="!isPredefined" + :value="currentValue.id" type="text" - :value="currentValue.pattern" :placeholder="t('workflowengine', 'e.g. httpd/unix-directory')" @input="updateCustom"> </div> </template> <script> -import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect' -import valueMixin from './../../mixins/valueMixin' +import NcEllipsisedOption from '@nextcloud/vue/components/NcEllipsisedOption' +import NcSelect from '@nextcloud/vue/components/NcSelect' import { imagePath } from '@nextcloud/router' export default { name: 'FileMimeType', components: { - NcMultiselect, + NcEllipsisedOption, + NcSelect, + }, + props: { + modelValue: { + type: String, + default: '', + }, }, - mixins: [ - valueMixin, - ], + + emits: ['update:model-value'], + data() { return { predefinedTypes: [ { icon: 'icon-folder', label: t('workflowengine', 'Folder'), - pattern: 'httpd/unix-directory', + id: 'httpd/unix-directory', }, { icon: 'icon-picture', label: t('workflowengine', 'Images'), - pattern: '/image\\/.*/', + id: '/image\\/.*/', }, { iconUrl: imagePath('core', 'filetypes/x-office-document'), label: t('workflowengine', 'Office documents'), - pattern: '/(vnd\\.(ms-|openxmlformats-|oasis\\.opendocument).*)$/', + id: '/(vnd\\.(ms-|openxmlformats-|oasis\\.opendocument).*)$/', }, { iconUrl: imagePath('core', 'filetypes/application-pdf'), label: t('workflowengine', 'PDF documents'), - pattern: 'application/pdf', + id: 'application/pdf', }, ], + newValue: '', } }, computed: { @@ -99,7 +89,7 @@ export default { return [...this.predefinedTypes, this.customValue] }, isPredefined() { - const matchingPredefined = this.predefinedTypes.find((type) => this.newValue === type.pattern) + const matchingPredefined = this.predefinedTypes.find((type) => this.newValue === type.id) if (matchingPredefined) { return true } @@ -109,59 +99,74 @@ export default { return { icon: 'icon-settings-dark', label: t('workflowengine', 'Custom MIME type'), - pattern: '', + id: '', } }, currentValue() { - const matchingPredefined = this.predefinedTypes.find((type) => this.newValue === type.pattern) + const matchingPredefined = this.predefinedTypes.find((type) => this.newValue === type.id) if (matchingPredefined) { return matchingPredefined } return { icon: 'icon-settings-dark', label: t('workflowengine', 'Custom mimetype'), - pattern: this.newValue, + id: this.newValue, } }, }, + watch: { + modelValue() { + this.updateInternalValue() + }, + }, + methods: { validateRegex(string) { const regexRegex = /^\/(.*)\/([gui]{0,3})$/ const result = regexRegex.exec(string) return result !== null }, + updateInternalValue() { + this.newValue = this.modelValue + }, setValue(value) { if (value !== null) { - this.newValue = value.pattern - this.$emit('input', this.newValue) + this.newValue = value.id + this.$emit('update:model-value', this.newValue) } }, updateCustom(event) { - this.newValue = event.target.value - this.$emit('input', this.newValue) + this.newValue = event.target.value || event.detail[0] + this.$emit('update:model-value', this.newValue) }, }, } </script> <style scoped lang="scss"> - .multiselect, input[type='text'] { - width: 100%; - } - .multiselect >>> .multiselect__content-wrapper li>span, - .multiselect >>> .multiselect__single { - display: flex; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } +.v-select, +input[type='text'] { + width: 100%; +} + +input[type=text] { + min-height: 48px; +} - .option__icon { - display: inline-block; - min-width: 30px; - background-position: left; - } +.option__icon, +.option__icon-img { + display: inline-block; + min-width: 30px; + background-position: center; + vertical-align: middle; +} + +.option__icon-img { + text-align: center; +} - .option__icon-img { - margin-right: 14px; - } +.option__title { + display: inline-flex; + width: calc(100% - 36px); + vertical-align: middle; +} </style> diff --git a/apps/workflowengine/src/components/Checks/FileSystemTag.vue b/apps/workflowengine/src/components/Checks/FileSystemTag.vue index 1c99be3816d..e71b0cd259a 100644 --- a/apps/workflowengine/src/components/Checks/FileSystemTag.vue +++ b/apps/workflowengine/src/components/Checks/FileSystemTag.vue @@ -1,52 +1,37 @@ <!-- - - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net> - - - - @author Julius Härtl <jus@bitgrid.net> - - - - @license GNU AGPL version 3 or any later version - - - - This program is free software: you can redistribute it and/or modify - - it under the terms of the GNU Affero General Public License as - - published by the Free Software Foundation, either version 3 of the - - License, or (at your option) any later version. - - - - This program is distributed in the hope that it will be useful, - - but WITHOUT ANY WARRANTY; without even the implied warranty of - - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - - GNU Affero General Public License for more details. - - - - You should have received a copy of the GNU Affero General Public License - - along with this program. If not, see <http://www.gnu.org/licenses/>. - - - --> - + - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + - SPDX-License-Identifier: AGPL-3.0-or-later +--> <template> - <MultiselectTags v-model="newValue" + <NcSelectTags v-model="newValue" :multiple="false" @input="update" /> </template> <script> -import MultiselectTags from '@nextcloud/vue/dist/Components/NcMultiselectTags.js' +import NcSelectTags from '@nextcloud/vue/components/NcSelectTags' export default { name: 'FileSystemTag', components: { - MultiselectTags, + NcSelectTags, }, props: { - value: { + modelValue: { type: String, default: '', }, }, + + emits: ['update:model-value'], + data() { return { newValue: [], } }, watch: { - value() { + modelValue() { this.updateValue() }, }, @@ -55,19 +40,15 @@ export default { }, methods: { updateValue() { - if (this.value !== '') { - this.newValue = this.value + if (this.modelValue !== '') { + this.newValue = parseInt(this.modelValue) } else { this.newValue = null } }, update() { - this.$emit('input', this.newValue || '') + this.$emit('update:model-value', this.newValue || '') }, }, } </script> - -<style scoped> - -</style> diff --git a/apps/workflowengine/src/components/Checks/RequestTime.vue b/apps/workflowengine/src/components/Checks/RequestTime.vue index d8bfaff63a5..5b1a4ef1cfa 100644 --- a/apps/workflowengine/src/components/Checks/RequestTime.vue +++ b/apps/workflowengine/src/components/Checks/RequestTime.vue @@ -1,3 +1,7 @@ +<!-- + - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + - SPDX-License-Identifier: AGPL-3.0-or-later +--> <template> <div class="timeslot"> <input v-model="newValue.startTime" @@ -12,33 +16,31 @@ <p v-if="!valid" class="invalid-hint"> {{ t('workflowengine', 'Please enter a valid time span') }} </p> - <NcMultiselect v-show="valid" + <NcSelect v-show="valid" v-model="newValue.timezone" + :clearable="false" :options="timezones" @input="update" /> </div> </template> <script> -import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect' +import NcSelect from '@nextcloud/vue/components/NcSelect' import moment from 'moment-timezone' -import valueMixin from '../../mixins/valueMixin' const zones = moment.tz.names() export default { name: 'RequestTime', components: { - NcMultiselect, + NcSelect, }, - mixins: [ - valueMixin, - ], props: { - value: { + modelValue: { type: String, - default: '', + default: '[]', }, }, + emits: ['update:model-value'], data() { return { timezones: zones, @@ -48,21 +50,31 @@ export default { endTime: null, timezone: moment.tz.guess(), }, + stringifiedValue: '[]', } }, - mounted() { - this.validate() + watch: { + modelValue() { + this.updateInternalValue() + }, + }, + beforeMount() { + // this is necessary to keep so the value is re-applied when a different + // check is being removed. + this.updateInternalValue() }, methods: { - updateInternalValue(value) { + updateInternalValue() { try { - const data = JSON.parse(value) + const data = JSON.parse(this.modelValue) if (data.length === 2) { this.newValue = { startTime: data[0].split(' ', 2)[0], endTime: data[1].split(' ', 2)[0], timezone: data[0].split(' ', 2)[1], } + this.stringifiedValue = `["${this.newValue.startTime} ${this.newValue.timezone}","${this.newValue.endTime} ${this.newValue.timezone}"]` + this.validate() } } catch (e) { // ignore invalid values @@ -84,8 +96,8 @@ export default { this.newValue.timezone = moment.tz.guess() } if (this.validate()) { - const output = `["${this.newValue.startTime} ${this.newValue.timezone}","${this.newValue.endTime} ${this.newValue.timezone}"]` - this.$emit('input', output) + this.stringifiedValue = `["${this.newValue.startTime} ${this.newValue.timezone}","${this.newValue.endTime} ${this.newValue.timezone}"]` + this.$emit('update:model-value', this.stringifiedValue) } }, }, @@ -104,7 +116,7 @@ export default { margin-bottom: 5px; } - .multiselect::v-deep .multiselect__tags:not(:hover):not(:focus):not(:active) { + .multiselect:deep(.multiselect__tags:not(:hover):not(:focus):not(:active)) { border: 1px solid transparent; } @@ -112,9 +124,10 @@ export default { width: 50%; margin: 0; margin-bottom: 5px; + min-height: 48px; &.timeslot--start { - margin-right: 5px; + margin-inline-end: 5px; width: calc(50% - 5px); } } diff --git a/apps/workflowengine/src/components/Checks/RequestURL.vue b/apps/workflowengine/src/components/Checks/RequestURL.vue index 1a5b5cc7f87..21b3a9cacbe 100644 --- a/apps/workflowengine/src/components/Checks/RequestURL.vue +++ b/apps/workflowengine/src/components/Checks/RequestURL.vue @@ -1,75 +1,72 @@ <!-- - - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net> - - - - @author Julius Härtl <jus@bitgrid.net> - - - - @license GNU AGPL version 3 or any later version - - - - This program is free software: you can redistribute it and/or modify - - it under the terms of the GNU Affero General Public License as - - published by the Free Software Foundation, either version 3 of the - - License, or (at your option) any later version. - - - - This program is distributed in the hope that it will be useful, - - but WITHOUT ANY WARRANTY; without even the implied warranty of - - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - - GNU Affero General Public License for more details. - - - - You should have received a copy of the GNU Affero General Public License - - along with this program. If not, see <http://www.gnu.org/licenses/>. - - - --> - + - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + - SPDX-License-Identifier: AGPL-3.0-or-later +--> <template> <div> - <NcMultiselect :value="currentValue" + <NcSelect v-model="newValue" + :value="currentValue" :placeholder="t('workflowengine', 'Select a request URL')" label="label" - track-by="pattern" - group-values="children" - group-label="label" + :clearable="false" :options="options" - :multiple="false" - :tagging="false" @input="setValue"> - <template slot="singleLabel" slot-scope="props"> - <span class="option__icon" :class="props.option.icon" /> - <span class="option__title option__title_single">{{ props.option.label }}</span> + <template #option="option"> + <span class="option__icon" :class="option.icon" /> + <span class="option__title"> + <NcEllipsisedOption :name="String(option.label)" /> + </span> </template> - <template slot="option" slot-scope="props"> - <span class="option__icon" :class="props.option.icon" /> - <span class="option__title">{{ props.option.label }} {{ props.option.$groupLabel }}</span> + <template #selected-option="selectedOption"> + <span class="option__icon" :class="selectedOption.icon" /> + <span class="option__title"> + <NcEllipsisedOption :name="String(selectedOption.label)" /> + </span> </template> - </NcMultiselect> + </NcSelect> <input v-if="!isPredefined" type="text" - :value="currentValue.pattern" + :value="currentValue.id" :placeholder="placeholder" @input="updateCustom"> </div> </template> <script> -import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect' -import valueMixin from '../../mixins/valueMixin' +import NcEllipsisedOption from '@nextcloud/vue/components/NcEllipsisedOption' +import NcSelect from '@nextcloud/vue/components/NcSelect' +import valueMixin from '../../mixins/valueMixin.js' export default { name: 'RequestURL', components: { - NcMultiselect, + NcEllipsisedOption, + NcSelect, }, mixins: [ valueMixin, ], + props: { + modelValue: { + type: String, + default: '', + }, + operator: { + type: String, + default: '', + }, + }, + + emits: ['update:model-value'], + data() { return { newValue: '', predefinedTypes: [ { - label: t('workflowengine', 'Predefined URLs'), - children: [ - { pattern: 'webdav', label: t('workflowengine', 'Files WebDAV') }, - ], + icon: 'icon-files-dark', + id: 'webdav', + label: t('workflowengine', 'Files WebDAV'), }, ], } @@ -79,30 +76,23 @@ export default { return [...this.predefinedTypes, this.customValue] }, placeholder() { - if (this.check.operator === 'matches' || this.check.operator === '!matches') { + if (this.operator === 'matches' || this.operator === '!matches') { return '/^https\\:\\/\\/localhost\\/index\\.php$/i' } return 'https://localhost/index.php' }, matchingPredefined() { return this.predefinedTypes - .map(groups => groups.children) - .flat() - .find((type) => this.newValue === type.pattern) + .find((type) => this.newValue === type.id) }, isPredefined() { return !!this.matchingPredefined }, customValue() { return { - label: t('workflowengine', 'Others'), - children: [ - { - icon: 'icon-settings-dark', - label: t('workflowengine', 'Custom URL'), - pattern: '', - }, - ], + icon: 'icon-settings-dark', + label: t('workflowengine', 'Custom URL'), + id: '', } }, currentValue() { @@ -112,7 +102,7 @@ export default { return { icon: 'icon-settings-dark', label: t('workflowengine', 'Custom URL'), - pattern: this.newValue, + id: this.newValue, } }, }, @@ -125,25 +115,37 @@ export default { setValue(value) { // TODO: check if value requires a regex and set the check operator according to that if (value !== null) { - this.newValue = value.pattern - this.$emit('input', this.newValue) + this.newValue = value.id + this.$emit('update:model-value', this.newValue) } }, updateCustom(event) { this.newValue = event.target.value - this.$emit('input', this.newValue) + this.$emit('update:model-value', this.newValue) }, }, } </script> <style scoped lang="scss"> - .multiselect, input[type='text'] { + .v-select, + input[type='text'] { width: 100%; } + input[type='text'] { + min-height: 48px; + } + .option__icon { display: inline-block; min-width: 30px; - background-position: left; + background-position: center; + vertical-align: middle; + } + + .option__title { + display: inline-flex; + width: calc(100% - 36px); + vertical-align: middle; } </style> diff --git a/apps/workflowengine/src/components/Checks/RequestUserAgent.vue b/apps/workflowengine/src/components/Checks/RequestUserAgent.vue index c4a5265ac99..825a112f6fc 100644 --- a/apps/workflowengine/src/components/Checks/RequestUserAgent.vue +++ b/apps/workflowengine/src/components/Checks/RequestUserAgent.vue @@ -1,76 +1,64 @@ <!-- - - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net> - - - - @author Julius Härtl <jus@bitgrid.net> - - - - @license GNU AGPL version 3 or any later version - - - - This program is free software: you can redistribute it and/or modify - - it under the terms of the GNU Affero General Public License as - - published by the Free Software Foundation, either version 3 of the - - License, or (at your option) any later version. - - - - This program is distributed in the hope that it will be useful, - - but WITHOUT ANY WARRANTY; without even the implied warranty of - - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - - GNU Affero General Public License for more details. - - - - You should have received a copy of the GNU Affero General Public License - - along with this program. If not, see <http://www.gnu.org/licenses/>. - - - --> - + - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + - SPDX-License-Identifier: AGPL-3.0-or-later +--> <template> <div> - <NcMultiselect :value="currentValue" + <NcSelect v-model="currentValue" :placeholder="t('workflowengine', 'Select a user agent')" label="label" - track-by="pattern" :options="options" - :multiple="false" - :tagging="false" + :clearable="false" @input="setValue"> - <template slot="singleLabel" slot-scope="props"> - <span class="option__icon" :class="props.option.icon" /> - <!-- v-html can be used here as t() always passes our translated strings though DOMPurify.sanitize --> - <!-- eslint-disable-next-line vue/no-v-html --> - <span class="option__title option__title_single" v-html="props.option.label" /> + <template #option="option"> + <span class="option__icon" :class="option.icon" /> + <span class="option__title"> + <NcEllipsisedOption :name="String(option.label)" /> + </span> </template> - <template slot="option" slot-scope="props"> - <span class="option__icon" :class="props.option.icon" /> - <!-- eslint-disable-next-line vue/no-v-html --> - <span v-if="props.option.$groupLabel" class="option__title" v-html="props.option.$groupLabel" /> - <!-- eslint-disable-next-line vue/no-v-html --> - <span v-else class="option__title" v-html="props.option.label" /> + <template #selected-option="selectedOption"> + <span class="option__icon" :class="selectedOption.icon" /> + <span class="option__title"> + <NcEllipsisedOption :name="String(selectedOption.label)" /> + </span> </template> - </NcMultiselect> + </NcSelect> <input v-if="!isPredefined" + v-model="newValue" type="text" - :value="currentValue.pattern" @input="updateCustom"> </div> </template> <script> -import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect' -import valueMixin from '../../mixins/valueMixin' +import NcEllipsisedOption from '@nextcloud/vue/components/NcEllipsisedOption' +import NcSelect from '@nextcloud/vue/components/NcSelect' +import valueMixin from '../../mixins/valueMixin.js' export default { name: 'RequestUserAgent', components: { - NcMultiselect, + NcEllipsisedOption, + NcSelect, }, mixins: [ valueMixin, ], + props: { + modelValue: { + type: String, + default: '', + }, + }, + emits: ['update:model-value'], data() { return { newValue: '', predefinedTypes: [ - { pattern: 'android', label: t('workflowengine', 'Android client'), icon: 'icon-phone' }, - { pattern: 'ios', label: t('workflowengine', 'iOS client'), icon: 'icon-phone' }, - { pattern: 'desktop', label: t('workflowengine', 'Desktop client'), icon: 'icon-desktop' }, - { pattern: 'mail', label: t('workflowengine', 'Thunderbird & Outlook addons'), icon: 'icon-mail' }, + { id: 'android', label: t('workflowengine', 'Android client'), icon: 'icon-phone' }, + { id: 'ios', label: t('workflowengine', 'iOS client'), icon: 'icon-phone' }, + { id: 'desktop', label: t('workflowengine', 'Desktop client'), icon: 'icon-desktop' }, + { id: 'mail', label: t('workflowengine', 'Thunderbird & Outlook addons'), icon: 'icon-mail' }, ], } }, @@ -80,7 +68,7 @@ export default { }, matchingPredefined() { return this.predefinedTypes - .find((type) => this.newValue === type.pattern) + .find((type) => this.newValue === type.id) }, isPredefined() { return !!this.matchingPredefined @@ -89,18 +77,23 @@ export default { return { icon: 'icon-settings-dark', label: t('workflowengine', 'Custom user agent'), - pattern: '', + id: '', } }, - currentValue() { - if (this.matchingPredefined) { - return this.matchingPredefined - } - return { - icon: 'icon-settings-dark', - label: t('workflowengine', 'Custom user agent'), - pattern: this.newValue, - } + currentValue: { + get() { + if (this.matchingPredefined) { + return this.matchingPredefined + } + return { + icon: 'icon-settings-dark', + label: t('workflowengine', 'Custom user agent'), + id: this.newValue, + } + }, + set(value) { + this.newValue = value + }, }, }, methods: { @@ -112,43 +105,37 @@ export default { setValue(value) { // TODO: check if value requires a regex and set the check operator according to that if (value !== null) { - this.newValue = value.pattern - this.$emit('input', this.newValue) + this.newValue = value.id + this.$emit('update:model-value', this.newValue) } }, - updateCustom(event) { - this.newValue = event.target.value - this.$emit('input', this.newValue) + updateCustom() { + this.newValue = this.currentValue.id + this.$emit('update:model-value', this.newValue) }, }, } </script> <style scoped> - .multiselect, input[type='text'] { + .v-select, + input[type='text'] { width: 100%; } - .multiselect .multiselect__content-wrapper li>span { - display: flex; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - .multiselect::v-deep .multiselect__single { - width: 100%; - display: flex; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; + input[type='text'] { + min-height: 48px; } + .option__icon { display: inline-block; min-width: 30px; - background-position: left; + background-position: center; + vertical-align: middle; } + .option__title { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; + display: inline-flex; + width: calc(100% - 36px); + vertical-align: middle; } </style> diff --git a/apps/workflowengine/src/components/Checks/RequestUserGroup.vue b/apps/workflowengine/src/components/Checks/RequestUserGroup.vue index ba55d88c81c..f9606b7ca26 100644 --- a/apps/workflowengine/src/components/Checks/RequestUserGroup.vue +++ b/apps/workflowengine/src/components/Checks/RequestUserGroup.vue @@ -1,44 +1,31 @@ <!-- - - @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net> - - - - @author Julius Härtl <jus@bitgrid.net> - - - - @license GNU AGPL version 3 or any later version - - - - This program is free software: you can redistribute it and/or modify - - it under the terms of the GNU Affero General Public License as - - published by the Free Software Foundation, either version 3 of the - - License, or (at your option) any later version. - - - - This program is distributed in the hope that it will be useful, - - but WITHOUT ANY WARRANTY; without even the implied warranty of - - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - - GNU Affero General Public License for more details. - - - - You should have received a copy of the GNU Affero General Public License - - along with this program. If not, see <http://www.gnu.org/licenses/>. - - - --> - + - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + - SPDX-License-Identifier: AGPL-3.0-or-later +--> <template> <div> - <NcMultiselect :value="currentValue" + <NcSelect :aria-label-combobox="t('workflowengine', 'Select groups')" + :aria-label-listbox="t('workflowengine', 'Groups')" + :clearable="false" :loading="status.isLoading && groups.length === 0" + :placeholder="t('workflowengine', 'Type to search for group …')" :options="groups" - :multiple="false" + :model-value="currentValue" label="displayname" - track-by="id" - @search-change="searchAsync" - @input="(value) => $emit('input', value.id)" /> + @search="searchAsync" + @input="update" /> </div> </template> <script> -import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect' -import axios from '@nextcloud/axios' +import { translate as t } from '@nextcloud/l10n' import { generateOcsUrl } from '@nextcloud/router' +import axios from '@nextcloud/axios' +import NcSelect from '@nextcloud/vue/components/NcSelect' + const groups = [] +const wantedGroups = [] const status = { isLoading: false, } @@ -46,10 +33,10 @@ const status = { export default { name: 'RequestUserGroup', components: { - NcMultiselect, + NcSelect, }, props: { - value: { + modelValue: { type: String, default: '', }, @@ -58,28 +45,52 @@ export default { default: () => { return {} }, }, }, + emits: ['update:model-value'], data() { return { groups, status, + wantedGroups, + newValue: '', } }, computed: { - currentValue() { - return this.groups.find(group => group.id === this.value) || null + currentValue: { + get() { + return this.groups.find(group => group.id === this.newValue) || null + }, + set(value) { + this.newValue = value + }, + }, + }, + watch: { + modelValue() { + this.updateInternalValue() }, }, async mounted() { + // If empty, load first chunk of groups if (this.groups.length === 0) { await this.searchAsync('') } - if (this.currentValue === null) { - await this.searchAsync(this.value) + // If a current group is set but not in our list of groups then search for that group + if (this.currentValue === null && this.newValue) { + await this.searchAsync(this.newValue) } }, methods: { + t, + searchAsync(searchQuery) { if (this.status.isLoading) { + if (searchQuery) { + // The first 20 groups are loaded up front (indicated by an + // empty searchQuery parameter), afterwards we may load + // groups that have not been fetched yet, but are used + // in existing rules. + this.enqueueWantedGroup(searchQuery) + } return } @@ -92,21 +103,54 @@ export default { }) }) this.status.isLoading = false + this.findGroupByQueue() }, (error) => { console.error('Error while loading group list', error.response) }) }, + async updateInternalValue() { + if (!this.newValue) { + await this.searchAsync(this.modelValue) + } + this.newValue = this.modelValue + }, addGroup(group) { const index = this.groups.findIndex((item) => item.id === group.id) if (index === -1) { this.groups.push(group) } }, + hasGroup(group) { + const index = this.groups.findIndex((item) => item.id === group) + return index > -1 + }, + update(value) { + this.newValue = value.id + this.$emit('update:model-value', this.newValue) + }, + enqueueWantedGroup(expectedGroupId) { + const index = this.wantedGroups.findIndex((groupId) => groupId === expectedGroupId) + if (index === -1) { + this.wantedGroups.push(expectedGroupId) + } + }, + async findGroupByQueue() { + let nextQuery + do { + nextQuery = this.wantedGroups.shift() + if (this.hasGroup(nextQuery)) { + nextQuery = undefined + } + } while (!nextQuery && this.wantedGroups.length > 0) + if (nextQuery) { + await this.searchAsync(nextQuery) + } + }, }, } </script> <style scoped> - .multiselect { - width: 100%; - } +.v-select { + width: 100%; +} </style> diff --git a/apps/workflowengine/src/components/Checks/file.js b/apps/workflowengine/src/components/Checks/file.js index b244199c2cc..568efc81cd3 100644 --- a/apps/workflowengine/src/components/Checks/file.js +++ b/apps/workflowengine/src/components/Checks/file.js @@ -1,29 +1,12 @@ /** - * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Julius Härtl <jus@bitgrid.net> - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ -import { stringValidator, validateIPv4, validateIPv6 } from '../../helpers/validators' -import FileMimeType from './FileMimeType' -import FileSystemTag from './FileSystemTag' +import { stringValidator, validateIPv4, validateIPv6 } from '../../helpers/validators.js' +import { registerCustomElement } from '../../helpers/window.js' +import FileMimeType from './FileMimeType.vue' +import FileSystemTag from './FileSystemTag.vue' const stringOrRegexOperators = () => { return [ @@ -52,7 +35,7 @@ const FileChecks = [ class: 'OCA\\WorkflowEngine\\Check\\FileMimeType', name: t('workflowengine', 'File MIME type'), operators: stringOrRegexOperators, - component: FileMimeType, + element: registerCustomElement(FileMimeType, 'oca-workflowengine-checks-file_mime_type'), }, { @@ -98,7 +81,7 @@ const FileChecks = [ { operator: 'is', name: t('workflowengine', 'is tagged with') }, { operator: '!is', name: t('workflowengine', 'is not tagged with') }, ], - component: FileSystemTag, + element: registerCustomElement(FileSystemTag, 'oca-workflowengine-file_system_tag'), }, ] diff --git a/apps/workflowengine/src/components/Checks/index.js b/apps/workflowengine/src/components/Checks/index.js index 11db7fafa9c..fc52f95f78a 100644 --- a/apps/workflowengine/src/components/Checks/index.js +++ b/apps/workflowengine/src/components/Checks/index.js @@ -1,26 +1,9 @@ /** - * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net> - * - * @author Julius Härtl <jus@bitgrid.net> - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ -import FileChecks from './file' -import RequestChecks from './request' +import FileChecks from './file.js' +import RequestChecks from './request.js' export default [...FileChecks, ...RequestChecks] diff --git a/apps/workflowengine/src/components/Checks/request.js b/apps/workflowengine/src/components/Checks/request.js index c5ed0ece439..b91f00baef0 100644 --- a/apps/workflowengine/src/components/Checks/request.js +++ b/apps/workflowengine/src/components/Checks/request.js @@ -1,29 +1,13 @@ /** - * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net> - * - * @author Julius Härtl <jus@bitgrid.net> - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ -import RequestUserAgent from './RequestUserAgent' -import RequestTime from './RequestTime' -import RequestURL from './RequestURL' -import RequestUserGroup from './RequestUserGroup' +import { registerCustomElement } from '../../helpers/window.js' +import RequestUserAgent from './RequestUserAgent.vue' +import RequestTime from './RequestTime.vue' +import RequestURL from './RequestURL.vue' +import RequestUserGroup from './RequestUserGroup.vue' const RequestChecks = [ { @@ -35,7 +19,7 @@ const RequestChecks = [ { operator: 'matches', name: t('workflowengine', 'matches') }, { operator: '!matches', name: t('workflowengine', 'does not match') }, ], - component: RequestURL, + element: registerCustomElement(RequestURL, 'oca-workflowengine-checks-request_url'), }, { class: 'OCA\\WorkflowEngine\\Check\\RequestTime', @@ -44,7 +28,7 @@ const RequestChecks = [ { operator: 'in', name: t('workflowengine', 'between') }, { operator: '!in', name: t('workflowengine', 'not between') }, ], - component: RequestTime, + element: registerCustomElement(RequestTime, 'oca-workflowengine-checks-request_time'), }, { class: 'OCA\\WorkflowEngine\\Check\\RequestUserAgent', @@ -55,16 +39,16 @@ const RequestChecks = [ { operator: 'matches', name: t('workflowengine', 'matches') }, { operator: '!matches', name: t('workflowengine', 'does not match') }, ], - component: RequestUserAgent, + element: registerCustomElement(RequestUserAgent, 'oca-workflowengine-checks-request_user_agent'), }, { class: 'OCA\\WorkflowEngine\\Check\\UserGroupMembership', - name: t('workflowengine', 'User group membership'), + name: t('workflowengine', 'Group membership'), operators: [ { operator: 'is', name: t('workflowengine', 'is member of') }, { operator: '!is', name: t('workflowengine', 'is not member of') }, ], - component: RequestUserGroup, + element: registerCustomElement(RequestUserGroup, 'oca-workflowengine-checks-request_user_group'), }, ] diff --git a/apps/workflowengine/src/components/Event.vue b/apps/workflowengine/src/components/Event.vue index be0030095e1..f170101b4e9 100644 --- a/apps/workflowengine/src/components/Event.vue +++ b/apps/workflowengine/src/components/Event.vue @@ -1,39 +1,42 @@ +<!-- + - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + - SPDX-License-Identifier: AGPL-3.0-or-later +--> <template> <div class="event"> <div v-if="operation.isComplex && operation.fixedEntity !== ''" class="isComplex"> <img class="option__icon" :src="entity.icon" alt=""> <span class="option__title option__title_single">{{ operation.triggerHint }}</span> </div> - <NcMultiselect v-else - :value="currentEvent" - :options="allEvents" - track-by="id" - :multiple="true" - :auto-limit="false" + <NcSelect v-else :disabled="allEvents.length <= 1" + :multiple="true" + :options="allEvents" + :value="currentEvent" + :placeholder="placeholderString" + class="event__trigger" + label="displayName" @input="updateEvent"> - <template slot="selection" slot-scope="{ values, isOpen }"> - <div v-if="values.length && !isOpen" class="eventlist"> - <img class="option__icon" :src="values[0].entity.icon" alt=""> - <span v-for="(value, index) in values" :key="value.id" class="text option__title option__title_single">{{ value.displayName }} <span v-if="index+1 < values.length">, </span></span> - </div> + <template #option="option"> + <img class="option__icon" :src="option.entity.icon" alt=""> + <span class="option__title">{{ option.displayName }}</span> </template> - <template slot="option" slot-scope="props"> - <img class="option__icon" :src="props.option.entity.icon" alt=""> - <span class="option__title">{{ props.option.displayName }}</span> + <template #selected-option="option"> + <img class="option__icon" :src="option.entity.icon" alt=""> + <span class="option__title">{{ option.displayName }}</span> </template> - </NcMultiselect> + </NcSelect> </div> </template> <script> -import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect' +import NcSelect from '@nextcloud/vue/components/NcSelect' import { showWarning } from '@nextcloud/dialogs' export default { name: 'Event', components: { - NcMultiselect, + NcSelect, }, props: { rule: { @@ -54,10 +57,15 @@ export default { currentEvent() { return this.allEvents.filter(event => event.entity.id === this.rule.entity && this.rule.events.indexOf(event.eventName) !== -1) }, + placeholderString() { + // TRANSLATORS: Users should select a trigger for a workflow action + return t('workflowengine', 'Select a trigger') + }, }, methods: { updateEvent(events) { if (events.length === 0) { + // TRANSLATORS: Users must select an event as of "happening" or "incident" which triggers an action showWarning(t('workflowengine', 'At least one event must be selected')) return } @@ -81,7 +89,12 @@ export default { <style scoped lang="scss"> .event { margin-bottom: 5px; + + &__trigger { + max-width: 550px; + } } + .isComplex { img { vertical-align: text-top; @@ -91,51 +104,15 @@ export default { display: inline-block; } } - .multiselect { - width: 100%; - max-width: 550px; - margin-top: 4px; - } - .multiselect::v-deep .multiselect__single { - display: flex; - } - .multiselect:not(.multiselect--active)::v-deep .multiselect__tags { - background-color: var(--color-main-background) !important; - border: 1px solid transparent; - } - - .multiselect::v-deep .multiselect__tags { - background-color: var(--color-main-background) !important; - height: auto; - min-height: 34px; - } - - .multiselect:not(.multiselect--disabled)::v-deep .multiselect__tags .multiselect__single { - background-image: var(--icon-triangle-s-dark); - background-repeat: no-repeat; - background-position: right center; - } - - input { - border: 1px solid transparent; - } .option__title { - margin-left: 5px; + margin-inline-start: 5px; color: var(--color-main-text); } - .option__title_single { - font-weight: 900; - } .option__icon { width: 16px; height: 16px; filter: var(--background-invert-if-dark); } - - .eventlist img, - .eventlist .text { - vertical-align: middle; - } </style> diff --git a/apps/workflowengine/src/components/Operation.vue b/apps/workflowengine/src/components/Operation.vue index 64875605b0b..df0b78dad89 100644 --- a/apps/workflowengine/src/components/Operation.vue +++ b/apps/workflowengine/src/components/Operation.vue @@ -1,3 +1,7 @@ +<!-- + - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + - SPDX-License-Identifier: AGPL-3.0-or-later +--> <template> <div class="actions__item" :class="{'colored': colored}" :style="{ backgroundColor: colored ? operation.color : 'transparent' }"> <div class="icon" :class="operation.iconClass" :style="{ backgroundImage: operation.iconClass ? '' : `url(${operation.icon})` }" /> @@ -15,7 +19,7 @@ </template> <script> -import NcButton from '@nextcloud/vue/dist/Components/NcButton' +import NcButton from '@nextcloud/vue/components/NcButton' export default { name: 'Operation', @@ -36,5 +40,5 @@ export default { </script> <style scoped lang="scss"> - @import "./../styles/operation"; +@use "./../styles/operation" as *; </style> diff --git a/apps/workflowengine/src/components/Rule.vue b/apps/workflowengine/src/components/Rule.vue index 4c5162da926..1c321fd014c 100644 --- a/apps/workflowengine/src/components/Rule.vue +++ b/apps/workflowengine/src/components/Rule.vue @@ -1,3 +1,7 @@ +<!-- + - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + - SPDX-License-Identifier: AGPL-3.0-or-later +--> <template> <div v-if="operation" class="section rule" :style="{ borderLeftColor: operation.color || '' }"> <div class="trigger"> @@ -18,15 +22,19 @@ <input v-if="lastCheckComplete" type="button" class="check--add" - value="Add a new filter" + :value="t('workflowengine', 'Add a new filter')" @click="onAddFilter"> </p> </div> <div class="flow-icon icon-confirm" /> <div class="action"> <Operation :operation="operation" :colored="false"> + <component :is="operation.element" + v-if="operation.element" + :model-value="inputValue" + @update:model-value="updateOperationByEvent" /> <component :is="operation.options" - v-if="operation.options" + v-else-if="operation.options" v-model="rule.operation" @input="updateOperation" /> </Operation> @@ -53,25 +61,22 @@ </template> <script> -import Tooltip from '@nextcloud/vue/dist/Directives/Tooltip' -import NcActions from '@nextcloud/vue/dist/Components/NcActions' -import NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton' -import NcButton from '@nextcloud/vue/dist/Components/NcButton' -import ArrowRight from 'vue-material-design-icons/ArrowRight.vue' -import CheckMark from 'vue-material-design-icons/Check.vue' -import Close from 'vue-material-design-icons/Close.vue' +import NcActions from '@nextcloud/vue/components/NcActions' +import NcActionButton from '@nextcloud/vue/components/NcActionButton' +import NcButton from '@nextcloud/vue/components/NcButton' +import Tooltip from '@nextcloud/vue/directives/Tooltip' +import IconArrowRight from 'vue-material-design-icons/ArrowRight.vue' +import IconCheckMark from 'vue-material-design-icons/Check.vue' +import IconClose from 'vue-material-design-icons/Close.vue' -import Event from './Event' -import Check from './Check' -import Operation from './Operation' +import Event from './Event.vue' +import Check from './Check.vue' +import Operation from './Operation.vue' export default { name: 'Rule', components: { - ArrowRight, Check, - CheckMark, - Close, Event, NcActionButton, NcActions, @@ -94,9 +99,14 @@ export default { error: null, dirty: this.rule.id < 0, originalRule: null, + element: null, + inputValue: '', } }, computed: { + /** + * @return {OperatorPlugin} + */ operation() { return this.$store.getters.getOperationForRule(this.rule) }, @@ -104,15 +114,15 @@ export default { if (this.error || !this.rule.valid || this.rule.checks.length === 0 || this.rule.checks.some((check) => check.invalid === true)) { return { title: t('workflowengine', 'The configuration is invalid'), - icon: 'Close', + icon: IconClose, type: 'warning', tooltip: { placement: 'bottom', show: true, content: this.error }, } } if (!this.dirty) { - return { title: t('workflowengine', 'Active'), icon: 'CheckMark', type: 'success' } + return { title: t('workflowengine', 'Active'), icon: IconCheckMark, type: 'success' } } - return { title: t('workflowengine', 'Save'), icon: 'ArrowRight', type: 'primary' } + return { title: t('workflowengine', 'Save'), icon: IconArrowRight, type: 'primary' } }, lastCheckComplete() { @@ -122,13 +132,25 @@ export default { }, mounted() { this.originalRule = JSON.parse(JSON.stringify(this.rule)) + if (this.operation?.element) { + this.inputValue = this.rule.operation + } else if (this.operation?.options) { + // keeping this in an else for apps that try to be backwards compatible and may ship both + // to be removed in 03/2028 + console.warn('Developer warning: `OperatorPlugin.options` is deprecated. Use `OperatorPlugin.element` instead.') + } }, methods: { async updateOperation(operation) { this.$set(this.rule, 'operation', operation) - await this.updateRule() + this.updateRule() + }, + async updateOperationByEvent(event) { + this.inputValue = event.detail[0] + this.$set(this.rule, 'operation', event.detail[0]) + this.updateRule() }, - validate(state) { + validate(/* state */) { this.error = null this.$store.dispatch('updateRule', this.rule) }, @@ -163,6 +185,7 @@ export default { if (this.rule.id < 0) { this.$store.dispatch('removeRule', this.rule) } else { + this.inputValue = this.originalRule.operation this.$store.dispatch('updateRule', this.originalRule) this.originalRule = JSON.parse(JSON.stringify(this.rule)) this.dirty = false @@ -192,16 +215,16 @@ export default { justify-content: end; button { - margin-left: 5px; + margin-inline-start: 5px; } button:last-child{ - margin-right: 10px; + margin-inline-end: 10px; } } .error-message { float: right; - margin-right: 10px; + margin-inline-end: 10px; } .flow-icon { @@ -211,12 +234,13 @@ export default { .rule { display: flex; flex-wrap: wrap; - border-left: 5px solid var(--color-primary-element); + border-inline-start: 5px solid var(--color-primary-element); - .trigger, .action { + .trigger, + .action { flex-grow: 1; min-height: 100px; - max-width: 700px; + max-width: 920px; } .action { max-width: 400px; @@ -224,19 +248,20 @@ export default { } .icon-confirm { background-position: right 27px; - padding-right: 20px; - margin-right: 20px; + padding-inline-end: 20px; + margin-inline-end: 20px; } } + .trigger p, .action p { min-height: 34px; display: flex; & > span { min-width: 50px; - text-align: right; + text-align: end; color: var(--color-text-maxcontrast); - padding-right: 10px; + padding-inline-end: 10px; padding-top: 6px; } .multiselect { @@ -244,20 +269,25 @@ export default { max-width: 300px; } } + .trigger p:first-child span { padding-top: 3px; } + .trigger p:last-child { + padding-top: 8px; + } + .check--add { background-position: 7px center; background-color: transparent; - padding-left: 6px; + padding-inline-start: 6px; margin: 0; width: 180px; border-radius: var(--border-radius); color: var(--color-text-maxcontrast); font-weight: normal; - text-align: left; + text-align: start; font-size: 1em; } diff --git a/apps/workflowengine/src/components/Workflow.vue b/apps/workflowengine/src/components/Workflow.vue index bc33d03014d..03ec2a79324 100644 --- a/apps/workflowengine/src/components/Workflow.vue +++ b/apps/workflowengine/src/components/Workflow.vue @@ -1,19 +1,32 @@ +<!-- + - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + - SPDX-License-Identifier: AGPL-3.0-or-later +--> <template> <div id="workflowengine"> - <NcSettingsSection :title="t('workflowengine', 'Available flows')" + <NcSettingsSection :name="t('workflowengine', 'Available flows')" :doc-url="workflowDocUrl"> - <p v-if="scope === 0" class="settings-hint"> + <p v-if="isAdminScope" class="settings-hint"> <a href="https://nextcloud.com/developer/">{{ t('workflowengine', 'For details on how to write your own flow, check out the development documentation.') }}</a> </p> - <transition-group name="slide" tag="div" class="actions"> - <Operation v-for="operation in getMainOperations" + <NcEmptyContent v-if="!isUserAdmin && mainOperations.length === 0" + :name="t('workflowengine', 'No flows installed')" + :description="!isUserAdmin ? t('workflowengine', 'Ask your administrator to install new flows.') : undefined"> + <template #icon> + <NcIconSvgWrapper :svg="WorkflowOffSvg" :size="20" /> + </template> + </NcEmptyContent> + <transition-group v-else + name="slide" + tag="div" + class="actions"> + <Operation v-for="operation in mainOperations" :key="operation.id" :operation="operation" @click.native="createNewRule(operation)" /> - <a v-if="showAppStoreHint" - :key="'add'" + key="add" :href="appstoreUrl" class="actions__item colored more"> <div class="icon icon-add" /> @@ -33,49 +46,58 @@ {{ showMoreOperations ? t('workflowengine', 'Show less') : t('workflowengine', 'Show more') }} </NcButton> </div> - - <h2 v-if="scope === 0" class="configured-flows"> - {{ t('workflowengine', 'Configured flows') }} - </h2> - <h2 v-else class="configured-flows"> - {{ t('workflowengine', 'Your flows') }} - </h2> </NcSettingsSection> - <transition-group v-if="rules.length > 0" name="slide"> - <Rule v-for="rule in rules" :key="rule.id" :rule="rule" /> - </transition-group> + <NcSettingsSection v-if="mainOperations.length > 0" + :name="isAdminScope ? t('workflowengine', 'Configured flows') : t('workflowengine', 'Your flows')"> + <transition-group v-if="rules.length > 0" name="slide"> + <Rule v-for="rule in rules" :key="rule.id" :rule="rule" /> + </transition-group> + <NcEmptyContent v-else :name="t('workflowengine', 'No flows configured')"> + <template #icon> + <NcIconSvgWrapper :svg="WorkflowOffSvg" :size="20" /> + </template> + </NcEmptyContent> + </NcSettingsSection> </div> </template> <script> -import Rule from './Rule' -import Operation from './Operation' -import NcSettingsSection from '@nextcloud/vue/dist/Components/NcSettingsSection' -import NcButton from '@nextcloud/vue/dist/Components/NcButton' +import Rule from './Rule.vue' +import Operation from './Operation.vue' +import NcButton from '@nextcloud/vue/components/NcButton' +import NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent' +import NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper' +import NcSettingsSection from '@nextcloud/vue/components/NcSettingsSection' import { mapGetters, mapState } from 'vuex' import { generateUrl } from '@nextcloud/router' import { loadState } from '@nextcloud/initial-state' -import MenuUp from 'vue-material-design-icons/MenuUp' -import MenuDown from 'vue-material-design-icons/MenuDown' +import MenuUp from 'vue-material-design-icons/MenuUp.vue' +import MenuDown from 'vue-material-design-icons/MenuDown.vue' +import WorkflowOffSvg from '../../img/workflow-off.svg?raw' const ACTION_LIMIT = 3 +const ADMIN_SCOPE = 0 +// const PERSONAL_SCOPE = 1 export default { name: 'Workflow', components: { - NcButton, MenuDown, MenuUp, + NcButton, + NcEmptyContent, + NcIconSvgWrapper, + NcSettingsSection, Operation, Rule, - NcSettingsSection, }, data() { return { showMoreOperations: false, appstoreUrl: generateUrl('settings/apps/workflow'), workflowDocUrl: loadState('workflowengine', 'doc-url'), + WorkflowOffSvg, } }, computed: { @@ -90,14 +112,20 @@ export default { hasMoreOperations() { return Object.keys(this.operations).length > ACTION_LIMIT }, - getMainOperations() { + mainOperations() { if (this.showMoreOperations) { return Object.values(this.operations) } return Object.values(this.operations).slice(0, ACTION_LIMIT) }, showAppStoreHint() { - return this.scope === 0 && this.appstoreEnabled && OC.isUserAdmin() + return this.appstoreEnabled && OC.isUserAdmin() + }, + isUserAdmin() { + return OC.isUserAdmin() + }, + isAdminScope() { + return this.scope === ADMIN_SCOPE }, }, mounted() { @@ -112,9 +140,12 @@ export default { </script> <style scoped lang="scss"> + @use "./../styles/operation"; + #workflowengine { border-bottom: 1px solid var(--color-border); } + .section { max-width: 100vw; @@ -123,6 +154,7 @@ export default { margin-bottom: 0; } } + .actions { display: flex; flex-wrap: wrap; @@ -132,6 +164,7 @@ export default { flex-basis: 250px; } } + .actions__more { margin-bottom: 10px; } @@ -170,8 +203,6 @@ export default { padding-bottom: 0; } - @import "./../styles/operation"; - .actions__item.more { background-color: var(--color-background-dark); } diff --git a/apps/workflowengine/src/helpers/api.js b/apps/workflowengine/src/helpers/api.js index 9cad63f7d6b..c91bbb5f75c 100644 --- a/apps/workflowengine/src/helpers/api.js +++ b/apps/workflowengine/src/helpers/api.js @@ -1,25 +1,6 @@ /** - * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net> - * - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Julius Härtl <jus@bitgrid.net> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ import { loadState } from '@nextcloud/initial-state' diff --git a/apps/workflowengine/src/helpers/validators.js b/apps/workflowengine/src/helpers/validators.js index b177da67889..0f2ca9e41b7 100644 --- a/apps/workflowengine/src/helpers/validators.js +++ b/apps/workflowengine/src/helpers/validators.js @@ -1,23 +1,6 @@ /** - * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net> - * - * @author Julius Härtl <jus@bitgrid.net> - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ const regexRegex = /^\/(.*)\/([gui]{0,3})$/ diff --git a/apps/workflowengine/src/helpers/window.js b/apps/workflowengine/src/helpers/window.js new file mode 100644 index 00000000000..9538c4706d0 --- /dev/null +++ b/apps/workflowengine/src/helpers/window.js @@ -0,0 +1,30 @@ +/** + * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import wrap from '@vue/web-component-wrapper' +import Vue from 'vue' + +/** + * + * @param VueComponent {Object} The Vue component to turn into a Web Components custom element. + * @param customElementId {string} The element name, it must be unique. Recommended pattern oca-$appid-(checks|operations)-$use_case, example: oca-my_app-checks-request_user_agent + */ +function registerCustomElement(VueComponent, customElementId) { + const WrappedComponent = wrap(Vue, VueComponent) + if (window.customElements.get(customElementId)) { + console.error('Custom element with ID ' + customElementId + ' is already defined!') + throw new Error('Custom element with ID ' + customElementId + ' is already defined!') + } + window.customElements.define(customElementId, WrappedComponent) + + // In Vue 2, wrap doesn't support disabling shadow :( + // Disable with a hack + Object.defineProperty(WrappedComponent.prototype, 'attachShadow', { value() { return this } }) + Object.defineProperty(WrappedComponent.prototype, 'shadowRoot', { get() { return this } }) + + return customElementId +} + +export { registerCustomElement } diff --git a/apps/workflowengine/src/mixins/valueMixin.js b/apps/workflowengine/src/mixins/valueMixin.js index 39b9f9c3c81..1293cd2483c 100644 --- a/apps/workflowengine/src/mixins/valueMixin.js +++ b/apps/workflowengine/src/mixins/valueMixin.js @@ -1,53 +1,22 @@ /** - * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net> - * - * @author John Molakvoæ <skjnldsv@protonmail.com> - * @author Julius Härtl <jus@bitgrid.net> - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ const valueMixin = { - props: { - value: { - type: String, - default: '', - }, - check: { - type: Object, - default: () => { return {} }, - }, - }, data() { return { - newValue: '', + newValue: [], } }, watch: { - value: { - immediate: true, - handler(value) { - this.updateInternalValue(value) - }, + modelValue() { + this.updateInternalValue() }, }, methods: { - updateInternalValue(value) { - this.newValue = value + updateInternalValue() { + this.newValue = this.modelValue }, }, } diff --git a/apps/workflowengine/src/store.js b/apps/workflowengine/src/store.js index 1de22622c5a..84a76a644a8 100644 --- a/apps/workflowengine/src/store.js +++ b/apps/workflowengine/src/store.js @@ -1,36 +1,16 @@ /** - * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net> - * - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Daniel Kesselberg <mail@danielkesselberg.de> - * @author John Molakvoæ <skjnldsv@protonmail.com> - * @author Julius Härtl <jus@bitgrid.net> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ import Vue from 'vue' import Vuex, { Store } from 'vuex' import axios from '@nextcloud/axios' -import { getApiUrl } from './helpers/api' import { confirmPassword } from '@nextcloud/password-confirmation' -import '@nextcloud/password-confirmation/dist/style.css' import { loadState } from '@nextcloud/initial-state' +import { getApiUrl } from './helpers/api.js' + +import '@nextcloud/password-confirmation/dist/style.css' Vue.use(Vuex) @@ -89,7 +69,8 @@ const store = new Store({ context.commit('addRule', rule) }) }, - createNewRule(context, rule) { + async createNewRule(context, rule) { + await confirmPassword() let entity = null let events = [] if (rule.isComplex === false && rule.fixedEntity === '') { @@ -120,9 +101,7 @@ const store = new Store({ context.commit('removeRule', rule) }, async pushUpdateRule(context, rule) { - if (context.state.scope === 0) { - await confirmPassword() - } + await confirmPassword() let result if (rule.id < 0) { result = await axios.post(getApiUrl(''), rule) @@ -148,6 +127,10 @@ const store = new Store({ return rule1.id - rule2.id || rule2.class - rule1.class }) }, + /** + * @param state + * @return {OperatorPlugin} + */ getOperationForRule(state) { return (rule) => state.operations[rule.class] }, diff --git a/apps/workflowengine/src/styles/operation.scss b/apps/workflowengine/src/styles/operation.scss index 860258f2851..b62ac16d6b4 100644 --- a/apps/workflowengine/src/styles/operation.scss +++ b/apps/workflowengine/src/styles/operation.scss @@ -1,14 +1,18 @@ +/*! + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ .actions__item { display: flex; flex-wrap: wrap; flex-direction: column; flex-grow: 1; - margin-left: -1px; padding: 10px; border-radius: var(--border-radius-large); - margin-right: 20px; + margin-inline: -1px 20px; margin-bottom: 20px; } + .actions__item .icon { display: block; width: 100%; @@ -19,6 +23,7 @@ margin-bottom: 10px; background-repeat: no-repeat; } + .actions__item__description { text-align: center; flex-grow: 1; @@ -26,20 +31,24 @@ flex-direction: column; align-items: center; } + .actions__item_options { width: 100%; margin-top: 10px; - padding-left: 60px; + padding-inline-start: 60px; } + h3, small { padding: 6px; display: block; } + h3 { margin: 0; padding: 0; font-weight: 600; } + small { font-size: 10pt; flex-grow: 1; @@ -48,7 +57,7 @@ small { .colored:not(.more) { background-color: var(--color-primary-element); h3, small { - color: var(--color-primary-text) + color: var(--color-primary-element-text) } } @@ -57,7 +66,7 @@ small { .actions__item__description { padding-top: 5px; - text-align: left; + text-align: start; width: calc(100% - 105px); small { padding: 0; @@ -66,7 +75,7 @@ small { .icon { width: 50px; margin: 0; - margin-right: 10px; + margin-inline-end: 10px; &:not(.icon-invert) { filter: var(--background-invert-if-bright); } diff --git a/apps/workflowengine/src/workflowengine.js b/apps/workflowengine/src/workflowengine.js index e3f3fc2d9c3..5a99ac54ef2 100644 --- a/apps/workflowengine/src/workflowengine.js +++ b/apps/workflowengine/src/workflowengine.js @@ -1,31 +1,13 @@ /** - * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net> - * - * @author John Molakvoæ <skjnldsv@protonmail.com> - * @author Julius Härtl <jus@bitgrid.net> - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ import Vue from 'vue' import Vuex from 'vuex' -import store from './store' -import Settings from './components/Workflow' -import ShippedChecks from './components/Checks' +import store from './store.js' +import Settings from './components/Workflow.vue' +import ShippedChecks from './components/Checks/index.js' /** * A plugin for displaying a custom value field for checks @@ -33,12 +15,20 @@ import ShippedChecks from './components/Checks' * @typedef {object} CheckPlugin * @property {string} class - The PHP class name of the check * @property {Comparison[]} operators - A list of possible comparison operations running on the check - * @property {Vue} component - A vue component to handle the rendering of options + * @property {Vue} component - Deprecated: **Use `element` instead** + * + * A vue component to handle the rendering of options. * The component should handle the v-model directive properly, * so it needs a value property to receive data and emit an input - * event once the data has changed + * event once the data has changed. + * + * Will be removed in 03/2028. * @property {Function} placeholder - Return a placeholder of no custom component is used * @property {Function} validate - validate a check if no custom component is used + * @property {string} [element] - A web component id as used in window.customElements.define()`. + * It is expected that the ID is prefixed with the app namespace, e.g. oca-myapp-flow_do_this_operation + * It has to emit the `update:model-value` event when a value was changed. + * The `model-value` property will be set initially with the rule operation value. */ /** @@ -48,10 +38,18 @@ import ShippedChecks from './components/Checks' * @property {string} id - The PHP class name of the check * @property {string} operation - Default value for the operation field * @property {string} color - Custom color code to be applied for the operator selector - * @property {Vue} component - A vue component to handle the rendering of options + * @property {object} [options] - Deprecated: **Use `element` instead** + * + * A vue component to handle the rendering of options. * The component should handle the v-model directive properly, * so it needs a value property to receive data and emit an input - * event once the data has changed + * event once the data has changed. + * + * Will be removed in 03/2028. + * @property {string} [element] - A web component id as used in window.customElements.define()`. + * It is expected that the ID is prefixed with the app namespace, e.g. oca-myapp-flow_do_this_operation + * It has to emit the `update:model-value` event when a value was changed. + * The `model-value` property will be set initially with the rule operation value. */ /** diff --git a/apps/workflowengine/templates/settings.php b/apps/workflowengine/templates/settings.php index f306bb9e1f1..2efd7fa17e7 100644 --- a/apps/workflowengine/templates/settings.php +++ b/apps/workflowengine/templates/settings.php @@ -1,22 +1,7 @@ <?php /** - * @copyright Copyright (c) 2016 Morris Jobke <hey@morrisjobke.de> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ use OCA\WorkflowEngine\AppInfo\Application; diff --git a/apps/workflowengine/tests/Check/AbstractStringCheckTest.php b/apps/workflowengine/tests/Check/AbstractStringCheckTest.php index 0c0518ca5ec..26d4ccb8553 100644 --- a/apps/workflowengine/tests/Check/AbstractStringCheckTest.php +++ b/apps/workflowengine/tests/Check/AbstractStringCheckTest.php @@ -1,33 +1,19 @@ <?php + +declare(strict_types=1); + /** - * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> - * - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Joas Schilling <coding@schilljs.com> - * @author Morris Jobke <hey@morrisjobke.de> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Tests\Check; +use OCA\WorkflowEngine\Check\AbstractStringCheck; use OCP\IL10N; +use PHPUnit\Framework\MockObject\MockObject; class AbstractStringCheckTest extends \Test\TestCase { - protected function getCheckMock() { + protected function getCheckMock(): AbstractStringCheck|MockObject { $l = $this->getMockBuilder(IL10N::class) ->disableOriginalConstructor() ->getMock(); @@ -37,12 +23,11 @@ class AbstractStringCheckTest extends \Test\TestCase { return sprintf($string, $args); }); - $check = $this->getMockBuilder('OCA\WorkflowEngine\Check\AbstractStringCheck') + $check = $this->getMockBuilder(AbstractStringCheck::class) ->setConstructorArgs([ $l, ]) - ->setMethods([ - 'setPath', + ->onlyMethods([ 'executeCheck', 'getActualValue', ]) @@ -51,7 +36,7 @@ class AbstractStringCheckTest extends \Test\TestCase { return $check; } - public function dataExecuteStringCheck() { + public static function dataExecuteStringCheck(): array { return [ ['is', 'same', 'same', true], ['is', 'different', 'not the same', false], @@ -65,21 +50,15 @@ class AbstractStringCheckTest extends \Test\TestCase { ]; } - /** - * @dataProvider dataExecuteStringCheck - * @param string $operation - * @param string $checkValue - * @param string $actualValue - * @param bool $expected - */ - public function testExecuteStringCheck($operation, $checkValue, $actualValue, $expected) { + #[\PHPUnit\Framework\Attributes\DataProvider('dataExecuteStringCheck')] + public function testExecuteStringCheck(string $operation, string $checkValue, string $actualValue, bool $expected): void { $check = $this->getCheckMock(); - /** @var \OCA\WorkflowEngine\Check\AbstractStringCheck $check */ + /** @var AbstractStringCheck $check */ $this->assertEquals($expected, $this->invokePrivate($check, 'executeStringCheck', [$operation, $checkValue, $actualValue])); } - public function dataValidateCheck() { + public static function dataValidateCheck(): array { return [ ['is', '/Invalid(Regex/'], ['!is', '/Invalid(Regex/'], @@ -88,21 +67,17 @@ class AbstractStringCheckTest extends \Test\TestCase { ]; } - /** - * @dataProvider dataValidateCheck - * @param string $operator - * @param string $value - */ - public function testValidateCheck($operator, $value) { + #[\PHPUnit\Framework\Attributes\DataProvider('dataValidateCheck')] + public function testValidateCheck(string $operator, string $value): void { $check = $this->getCheckMock(); - /** @var \OCA\WorkflowEngine\Check\AbstractStringCheck $check */ + /** @var AbstractStringCheck $check */ $check->validateCheck($operator, $value); $this->addToAssertionCount(1); } - public function dataValidateCheckInvalid() { + public static function dataValidateCheckInvalid(): array { return [ ['!!is', '', 1, 'The given operator is invalid'], ['less', '', 1, 'The given operator is invalid'], @@ -111,18 +86,12 @@ class AbstractStringCheckTest extends \Test\TestCase { ]; } - /** - * @dataProvider dataValidateCheckInvalid - * @param $operator - * @param $value - * @param $exceptionCode - * @param $exceptionMessage - */ - public function testValidateCheckInvalid($operator, $value, $exceptionCode, $exceptionMessage) { + #[\PHPUnit\Framework\Attributes\DataProvider('dataValidateCheckInvalid')] + public function testValidateCheckInvalid(string $operator, string $value, int $exceptionCode, string $exceptionMessage): void { $check = $this->getCheckMock(); try { - /** @var \OCA\WorkflowEngine\Check\AbstractStringCheck $check */ + /** @var AbstractStringCheck $check */ $check->validateCheck($operator, $value); } catch (\UnexpectedValueException $e) { $this->assertEquals($exceptionCode, $e->getCode()); @@ -130,21 +99,15 @@ class AbstractStringCheckTest extends \Test\TestCase { } } - public function dataMatch() { + public static function dataMatch(): array { return [ ['/valid/', 'valid', [], true], ['/valid/', 'valid', [md5('/valid/') => [md5('valid') => false]], false], // Cache hit ]; } - /** - * @dataProvider dataMatch - * @param string $pattern - * @param string $subject - * @param array[] $matches - * @param bool $expected - */ - public function testMatch($pattern, $subject, $matches, $expected) { + #[\PHPUnit\Framework\Attributes\DataProvider('dataMatch')] + public function testMatch(string $pattern, string $subject, array $matches, bool $expected): void { $check = $this->getCheckMock(); $this->invokePrivate($check, 'matches', [$matches]); diff --git a/apps/workflowengine/tests/Check/FileMimeTypeTest.php b/apps/workflowengine/tests/Check/FileMimeTypeTest.php index 3ebcaa8f4b3..55aea3db172 100644 --- a/apps/workflowengine/tests/Check/FileMimeTypeTest.php +++ b/apps/workflowengine/tests/Check/FileMimeTypeTest.php @@ -2,23 +2,8 @@ declare(strict_types=1); /** - * @copyright Copyright (c) 2021 Robin Appelman <robin@icewind.nl> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Tests\Check; @@ -31,11 +16,11 @@ use OCP\IRequest; use Test\TestCase; class TemporaryNoLocal extends Temporary { - public function instanceOfStorage($className) { - if ($className === '\OC\Files\Storage\Local') { + public function instanceOfStorage(string $class): bool { + if ($class === '\OC\Files\Storage\Local') { return false; } else { - return parent::instanceOfStorage($className); + return parent::instanceOfStorage($class); } } } @@ -68,7 +53,7 @@ class FileMimeTypeTest extends TestCase { $this->mimeDetector->method('detectPath') ->willReturnCallback(function ($path) { foreach ($this->extensions as $extension => $mime) { - if (strpos($path, $extension) !== false) { + if (str_contains($path, $extension)) { return $mime; } } @@ -78,7 +63,7 @@ class FileMimeTypeTest extends TestCase { ->willReturnCallback(function ($path) { $body = file_get_contents($path); foreach ($this->content as $match => $mime) { - if (strpos($body, $match) !== false) { + if (str_contains($body, $match)) { return $mime; } } @@ -86,7 +71,7 @@ class FileMimeTypeTest extends TestCase { }); } - public function testUseCachedMimetype() { + public function testUseCachedMimetype(): void { $storage = new Temporary([]); $storage->mkdir('foo'); $storage->file_put_contents('foo/bar.txt', 'asd'); @@ -99,7 +84,7 @@ class FileMimeTypeTest extends TestCase { $this->assertTrue($check->executeCheck('is', 'text/plain')); } - public function testNonCachedNotExists() { + public function testNonCachedNotExists(): void { $storage = new Temporary([]); $check = new FileMimeType($this->l10n, $this->request, $this->mimeDetector); @@ -108,7 +93,7 @@ class FileMimeTypeTest extends TestCase { $this->assertTrue($check->executeCheck('is', 'text/plain-path-detected')); } - public function testNonCachedLocal() { + public function testNonCachedLocal(): void { $storage = new Temporary([]); $storage->mkdir('foo'); $storage->file_put_contents('foo/bar.txt', 'text-content'); @@ -119,7 +104,7 @@ class FileMimeTypeTest extends TestCase { $this->assertTrue($check->executeCheck('is', 'text/plain-content-detected')); } - public function testNonCachedNotLocal() { + public function testNonCachedNotLocal(): void { $storage = new TemporaryNoLocal([]); $storage->mkdir('foo'); $storage->file_put_contents('foo/bar.txt', 'text-content'); @@ -127,10 +112,10 @@ class FileMimeTypeTest extends TestCase { $check = new FileMimeType($this->l10n, $this->request, $this->mimeDetector); $check->setFileInfo($storage, 'foo/bar.txt'); - $this->assertTrue($check->executeCheck('is', 'text/plain-path-detected')); + $this->assertTrue($check->executeCheck('is', 'text/plain-content-detected')); } - public function testFallback() { + public function testFallback(): void { $storage = new Temporary([]); $check = new FileMimeType($this->l10n, $this->request, $this->mimeDetector); @@ -139,10 +124,10 @@ class FileMimeTypeTest extends TestCase { $this->assertTrue($check->executeCheck('is', 'application/octet-stream')); } - public function testFromCacheCached() { + public function testFromCacheCached(): void { $storage = new Temporary([]); $storage->mkdir('foo'); - $storage->file_put_contents('foo/bar.txt', 'asd'); + $storage->file_put_contents('foo/bar.txt', 'text-content'); $storage->getScanner()->scan(''); $check = new FileMimeType($this->l10n, $this->request, $this->mimeDetector); @@ -156,10 +141,10 @@ class FileMimeTypeTest extends TestCase { $newCheck = new FileMimeType($this->l10n, $this->request, $this->mimeDetector); $newCheck->setFileInfo($storage, 'foo/bar.txt'); - $this->assertTrue($newCheck->executeCheck('is', 'text/plain-path-detected')); + $this->assertTrue($newCheck->executeCheck('is', 'text/plain-content-detected')); } - public function testExistsCached() { + public function testExistsCached(): void { $storage = new TemporaryNoLocal([]); $storage->mkdir('foo'); $storage->file_put_contents('foo/bar.txt', 'text-content'); @@ -176,7 +161,7 @@ class FileMimeTypeTest extends TestCase { $this->assertTrue($newCheck->executeCheck('is', 'text/plain-path-detected')); } - public function testNonExistsNotCached() { + public function testNonExistsNotCached(): void { $storage = new TemporaryNoLocal([]); $check = new FileMimeType($this->l10n, $this->request, $this->mimeDetector); diff --git a/apps/workflowengine/tests/Check/RequestRemoteAddressTest.php b/apps/workflowengine/tests/Check/RequestRemoteAddressTest.php index e0ea2269e35..c0e56daefa8 100644 --- a/apps/workflowengine/tests/Check/RequestRemoteAddressTest.php +++ b/apps/workflowengine/tests/Check/RequestRemoteAddressTest.php @@ -1,44 +1,24 @@ <?php + +declare(strict_types=1); + /** - * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> - * - * @author Joas Schilling <coding@schilljs.com> - * @author Morris Jobke <hey@morrisjobke.de> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Tests\Check; +use OCA\WorkflowEngine\Check\RequestRemoteAddress; use OCP\IL10N; use OCP\IRequest; +use PHPUnit\Framework\MockObject\MockObject; class RequestRemoteAddressTest extends \Test\TestCase { - /** @var \OCP\IRequest|\PHPUnit\Framework\MockObject\MockObject */ - protected $request; + protected IRequest&MockObject $request; - /** - * @return \OCP\IL10N|\PHPUnit\Framework\MockObject\MockObject - */ - protected function getL10NMock() { - $l = $this->getMockBuilder(IL10N::class) - ->disableOriginalConstructor() - ->getMock(); + protected function getL10NMock(): IL10N&MockObject { + $l = $this->createMock(IL10N::class); $l->expects($this->any()) ->method('t') ->willReturnCallback(function ($string, $args) { @@ -50,11 +30,10 @@ class RequestRemoteAddressTest extends \Test\TestCase { protected function setUp(): void { parent::setUp(); - $this->request = $this->getMockBuilder(IRequest::class) - ->getMock(); + $this->request = $this->createMock(IRequest::class); } - public function dataExecuteCheckIPv4() { + public static function dataExecuteCheckIPv4(): array { return [ ['127.0.0.1/32', '127.0.0.1', true], ['127.0.0.1/32', '127.0.0.0', false], @@ -65,14 +44,9 @@ class RequestRemoteAddressTest extends \Test\TestCase { ]; } - /** - * @dataProvider dataExecuteCheckIPv4 - * @param string $value - * @param string $ip - * @param bool $expected - */ - public function testExecuteCheckMatchesIPv4($value, $ip, $expected) { - $check = new \OCA\WorkflowEngine\Check\RequestRemoteAddress($this->getL10NMock(), $this->request); + #[\PHPUnit\Framework\Attributes\DataProvider('dataExecuteCheckIPv4')] + public function testExecuteCheckMatchesIPv4(string $value, string $ip, bool $expected): void { + $check = new RequestRemoteAddress($this->getL10NMock(), $this->request); $this->request->expects($this->once()) ->method('getRemoteAddress') @@ -81,14 +55,9 @@ class RequestRemoteAddressTest extends \Test\TestCase { $this->assertEquals($expected, $check->executeCheck('matchesIPv4', $value)); } - /** - * @dataProvider dataExecuteCheckIPv4 - * @param string $value - * @param string $ip - * @param bool $expected - */ - public function testExecuteCheckNotMatchesIPv4($value, $ip, $expected) { - $check = new \OCA\WorkflowEngine\Check\RequestRemoteAddress($this->getL10NMock(), $this->request); + #[\PHPUnit\Framework\Attributes\DataProvider('dataExecuteCheckIPv4')] + public function testExecuteCheckNotMatchesIPv4(string $value, string $ip, bool $expected): void { + $check = new RequestRemoteAddress($this->getL10NMock(), $this->request); $this->request->expects($this->once()) ->method('getRemoteAddress') @@ -97,7 +66,7 @@ class RequestRemoteAddressTest extends \Test\TestCase { $this->assertEquals(!$expected, $check->executeCheck('!matchesIPv4', $value)); } - public function dataExecuteCheckIPv6() { + public static function dataExecuteCheckIPv6(): array { return [ ['::1/128', '::1', true], ['::2/128', '::3', false], @@ -109,14 +78,9 @@ class RequestRemoteAddressTest extends \Test\TestCase { ]; } - /** - * @dataProvider dataExecuteCheckIPv6 - * @param string $value - * @param string $ip - * @param bool $expected - */ - public function testExecuteCheckMatchesIPv6($value, $ip, $expected) { - $check = new \OCA\WorkflowEngine\Check\RequestRemoteAddress($this->getL10NMock(), $this->request); + #[\PHPUnit\Framework\Attributes\DataProvider('dataExecuteCheckIPv6')] + public function testExecuteCheckMatchesIPv6(string $value, string $ip, bool $expected): void { + $check = new RequestRemoteAddress($this->getL10NMock(), $this->request); $this->request->expects($this->once()) ->method('getRemoteAddress') @@ -125,14 +89,9 @@ class RequestRemoteAddressTest extends \Test\TestCase { $this->assertEquals($expected, $check->executeCheck('matchesIPv6', $value)); } - /** - * @dataProvider dataExecuteCheckIPv6 - * @param string $value - * @param string $ip - * @param bool $expected - */ - public function testExecuteCheckNotMatchesIPv6($value, $ip, $expected) { - $check = new \OCA\WorkflowEngine\Check\RequestRemoteAddress($this->getL10NMock(), $this->request); + #[\PHPUnit\Framework\Attributes\DataProvider('dataExecuteCheckIPv6')] + public function testExecuteCheckNotMatchesIPv6(string $value, string $ip, bool $expected): void { + $check = new RequestRemoteAddress($this->getL10NMock(), $this->request); $this->request->expects($this->once()) ->method('getRemoteAddress') diff --git a/apps/workflowengine/tests/Check/RequestTimeTest.php b/apps/workflowengine/tests/Check/RequestTimeTest.php index a0a6334da5f..a8439b8b9f4 100644 --- a/apps/workflowengine/tests/Check/RequestTimeTest.php +++ b/apps/workflowengine/tests/Check/RequestTimeTest.php @@ -1,43 +1,23 @@ <?php + +declare(strict_types=1); + /** - * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> - * - * @author Joas Schilling <coding@schilljs.com> - * @author Morris Jobke <hey@morrisjobke.de> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Tests\Check; +use OCA\WorkflowEngine\Check\RequestTime; +use OCP\AppFramework\Utility\ITimeFactory; use OCP\IL10N; +use PHPUnit\Framework\MockObject\MockObject; class RequestTimeTest extends \Test\TestCase { + protected ITimeFactory&MockObject $timeFactory; - /** @var \OCP\AppFramework\Utility\ITimeFactory|\PHPUnit\Framework\MockObject\MockObject */ - protected $timeFactory; - - /** - * @return \OCP\IL10N|\PHPUnit\Framework\MockObject\MockObject - */ - protected function getL10NMock() { - $l = $this->getMockBuilder(IL10N::class) - ->disableOriginalConstructor() - ->getMock(); + protected function getL10NMock(): IL10N&MockObject { + $l = $this->createMock(IL10N::class); $l->expects($this->any()) ->method('t') ->willReturnCallback(function ($string, $args) { @@ -49,11 +29,10 @@ class RequestTimeTest extends \Test\TestCase { protected function setUp(): void { parent::setUp(); - $this->timeFactory = $this->getMockBuilder('OCP\AppFramework\Utility\ITimeFactory') - ->getMock(); + $this->timeFactory = $this->createMock(ITimeFactory::class); } - public function dataExecuteCheck() { + public static function dataExecuteCheck(): array { return [ [json_encode(['08:00 Europe/Berlin', '17:00 Europe/Berlin']), 1467870105, false], // 2016-07-07T07:41:45+02:00 [json_encode(['08:00 Europe/Berlin', '17:00 Europe/Berlin']), 1467873705, true], // 2016-07-07T08:41:45+02:00 @@ -84,14 +63,9 @@ class RequestTimeTest extends \Test\TestCase { ]; } - /** - * @dataProvider dataExecuteCheck - * @param string $value - * @param int $timestamp - * @param bool $expected - */ - public function testExecuteCheckIn($value, $timestamp, $expected) { - $check = new \OCA\WorkflowEngine\Check\RequestTime($this->getL10NMock(), $this->timeFactory); + #[\PHPUnit\Framework\Attributes\DataProvider('dataExecuteCheck')] + public function testExecuteCheckIn(string $value, int $timestamp, bool $expected): void { + $check = new RequestTime($this->getL10NMock(), $this->timeFactory); $this->timeFactory->expects($this->once()) ->method('getTime') @@ -100,14 +74,9 @@ class RequestTimeTest extends \Test\TestCase { $this->assertEquals($expected, $check->executeCheck('in', $value)); } - /** - * @dataProvider dataExecuteCheck - * @param string $value - * @param int $timestamp - * @param bool $expected - */ - public function testExecuteCheckNotIn($value, $timestamp, $expected) { - $check = new \OCA\WorkflowEngine\Check\RequestTime($this->getL10NMock(), $this->timeFactory); + #[\PHPUnit\Framework\Attributes\DataProvider('dataExecuteCheck')] + public function testExecuteCheckNotIn(string $value, int $timestamp, bool $expected): void { + $check = new RequestTime($this->getL10NMock(), $this->timeFactory); $this->timeFactory->expects($this->once()) ->method('getTime') @@ -116,7 +85,7 @@ class RequestTimeTest extends \Test\TestCase { $this->assertEquals(!$expected, $check->executeCheck('!in', $value)); } - public function dataValidateCheck() { + public static function dataValidateCheck(): array { return [ ['in', '["08:00 Europe/Berlin","17:00 Europe/Berlin"]'], ['!in', '["08:00 Europe/Berlin","17:00 America/North_Dakota/Beulah"]'], @@ -124,18 +93,14 @@ class RequestTimeTest extends \Test\TestCase { ]; } - /** - * @dataProvider dataValidateCheck - * @param string $operator - * @param string $value - */ - public function testValidateCheck($operator, $value) { - $check = new \OCA\WorkflowEngine\Check\RequestTime($this->getL10NMock(), $this->timeFactory); + #[\PHPUnit\Framework\Attributes\DataProvider('dataValidateCheck')] + public function testValidateCheck(string $operator, string $value): void { + $check = new RequestTime($this->getL10NMock(), $this->timeFactory); $check->validateCheck($operator, $value); $this->addToAssertionCount(1); } - public function dataValidateCheckInvalid() { + public static function dataValidateCheckInvalid(): array { return [ ['!!in', '["08:00 Europe/Berlin","17:00 Europe/Berlin"]', 1, 'The given operator is invalid'], ['in', '["28:00 Europe/Berlin","17:00 Europe/Berlin"]', 2, 'The given time span is invalid'], @@ -147,15 +112,9 @@ class RequestTimeTest extends \Test\TestCase { ]; } - /** - * @dataProvider dataValidateCheckInvalid - * @param string $operator - * @param string $value - * @param int $exceptionCode - * @param string $exceptionMessage - */ - public function testValidateCheckInvalid($operator, $value, $exceptionCode, $exceptionMessage) { - $check = new \OCA\WorkflowEngine\Check\RequestTime($this->getL10NMock(), $this->timeFactory); + #[\PHPUnit\Framework\Attributes\DataProvider('dataValidateCheckInvalid')] + public function testValidateCheckInvalid(string $operator, string $value, int $exceptionCode, string $exceptionMessage): void { + $check = new RequestTime($this->getL10NMock(), $this->timeFactory); try { $check->validateCheck($operator, $value); diff --git a/apps/workflowengine/tests/Check/RequestUserAgentTest.php b/apps/workflowengine/tests/Check/RequestUserAgentTest.php index 3111b4ffc8e..09eaea6555b 100644 --- a/apps/workflowengine/tests/Check/RequestUserAgentTest.php +++ b/apps/workflowengine/tests/Check/RequestUserAgentTest.php @@ -1,51 +1,30 @@ <?php + +declare(strict_types=1); + /** - * @copyright Copyright (c) 2018 Joas Schilling <coding@schilljs.com> - * - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Joas Schilling <coding@schilljs.com> - * @author Morris Jobke <hey@morrisjobke.de> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Tests\Check; +use OCA\WorkflowEngine\Check\AbstractStringCheck; use OCA\WorkflowEngine\Check\RequestUserAgent; use OCP\IL10N; use OCP\IRequest; +use PHPUnit\Framework\MockObject\MockObject; use Test\TestCase; class RequestUserAgentTest extends TestCase { - - /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */ - protected $request; - - /** @var RequestUserAgent */ - protected $check; + protected IRequest&MockObject $request; + protected RequestUserAgent $check; protected function setUp(): void { parent::setUp(); $this->request = $this->createMock(IRequest::class); - /** @var IL10N|\PHPUnit\Framework\MockObject\MockObject $l */ - $l = $this->getMockBuilder(IL10N::class) - ->disableOriginalConstructor() - ->getMock(); + /** @var IL10N&MockObject $l */ + $l = $this->createMock(IL10N::class); $l->expects($this->any()) ->method('t') ->willReturnCallback(function ($string, $args) { @@ -55,67 +34,61 @@ class RequestUserAgentTest extends TestCase { $this->check = new RequestUserAgent($l, $this->request); } - public function dataExecuteCheck() { + public static function dataExecuteCheck(): array { return [ - ['is', 'android', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', true], - ['is', 'android', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', false], + ['is', 'android', 'Mozilla/5.0 (Android) Nextcloud-android/2.2.0', true], + ['is', 'android', 'Mozilla/5.0 (iOS) Nextcloud-iOS/2.2.0', false], ['is', 'android', 'Mozilla/5.0 (Linux) mirall/2.2.0', false], ['is', 'android', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', false], - ['is', 'android', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', false], - ['!is', 'android', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', false], - ['!is', 'android', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', true], + ['is', 'android', 'Filelink for *cloud/2.2.0', false], + ['!is', 'android', 'Mozilla/5.0 (Android) Nextcloud-android/2.2.0', false], + ['!is', 'android', 'Mozilla/5.0 (iOS) Nextcloud-iOS/2.2.0', true], ['!is', 'android', 'Mozilla/5.0 (Linux) mirall/2.2.0', true], ['!is', 'android', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', true], - ['!is', 'android', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', true], + ['!is', 'android', 'Filelink for *cloud/2.2.0', true], - ['is', 'ios', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', false], - ['is', 'ios', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', true], + ['is', 'ios', 'Mozilla/5.0 (Android) Nextcloud-android/2.2.0', false], + ['is', 'ios', 'Mozilla/5.0 (iOS) Nextcloud-iOS/2.2.0', true], ['is', 'ios', 'Mozilla/5.0 (Linux) mirall/2.2.0', false], ['is', 'ios', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', false], - ['is', 'ios', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', false], - ['!is', 'ios', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', true], - ['!is', 'ios', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', false], + ['is', 'ios', 'Filelink for *cloud/2.2.0', false], + ['!is', 'ios', 'Mozilla/5.0 (Android) Nextcloud-android/2.2.0', true], + ['!is', 'ios', 'Mozilla/5.0 (iOS) Nextcloud-iOS/2.2.0', false], ['!is', 'ios', 'Mozilla/5.0 (Linux) mirall/2.2.0', true], ['!is', 'ios', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', true], - ['!is', 'ios', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', true], + ['!is', 'ios', 'Filelink for *cloud/2.2.0', true], - ['is', 'desktop', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', false], - ['is', 'desktop', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', false], + ['is', 'desktop', 'Mozilla/5.0 (Android) Nextcloud-android/2.2.0', false], + ['is', 'desktop', 'Mozilla/5.0 (iOS) Nextcloud-iOS/2.2.0', false], ['is', 'desktop', 'Mozilla/5.0 (Linux) mirall/2.2.0', true], ['is', 'desktop', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', false], - ['is', 'desktop', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', false], - ['!is', 'desktop', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', true], - ['!is', 'desktop', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', true], + ['is', 'desktop', 'Filelink for *cloud/2.2.0', false], + ['!is', 'desktop', 'Mozilla/5.0 (Android) Nextcloud-android/2.2.0', true], + ['!is', 'desktop', 'Mozilla/5.0 (iOS) Nextcloud-iOS/2.2.0', true], ['!is', 'desktop', 'Mozilla/5.0 (Linux) mirall/2.2.0', false], ['!is', 'desktop', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', true], - ['!is', 'desktop', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', true], + ['!is', 'desktop', 'Filelink for *cloud/2.2.0', true], - ['is', 'mail', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', false], - ['is', 'mail', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', false], + ['is', 'mail', 'Mozilla/5.0 (Android) Nextcloud-android/2.2.0', false], + ['is', 'mail', 'Mozilla/5.0 (iOS) Nextcloud-iOS/2.2.0', false], ['is', 'mail', 'Mozilla/5.0 (Linux) mirall/2.2.0', false], ['is', 'mail', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', true], - ['is', 'mail', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', true], - ['!is', 'mail', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', true], - ['!is', 'mail', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', true], + ['is', 'mail', 'Filelink for *cloud/2.2.0', true], + ['!is', 'mail', 'Mozilla/5.0 (Android) Nextcloud-android/2.2.0', true], + ['!is', 'mail', 'Mozilla/5.0 (iOS) Nextcloud-iOS/2.2.0', true], ['!is', 'mail', 'Mozilla/5.0 (Linux) mirall/2.2.0', true], ['!is', 'mail', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', false], - ['!is', 'mail', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', false], + ['!is', 'mail', 'Filelink for *cloud/2.2.0', false], ]; } - /** - * @dataProvider dataExecuteCheck - * @param string $operation - * @param string $checkValue - * @param string $actualValue - * @param bool $expected - */ - public function testExecuteCheck($operation, $checkValue, $actualValue, $expected) { + #[\PHPUnit\Framework\Attributes\DataProvider('dataExecuteCheck')] + public function testExecuteCheck(string $operation, string $checkValue, string $actualValue, bool $expected): void { $this->request->expects($this->once()) ->method('getHeader') ->willReturn($actualValue); - /** @var \OCA\WorkflowEngine\Check\AbstractStringCheck $check */ + /** @var AbstractStringCheck $check */ $this->assertEquals($expected, $this->check->executeCheck($operation, $checkValue)); } } diff --git a/apps/workflowengine/tests/ManagerTest.php b/apps/workflowengine/tests/ManagerTest.php index 612495a5b6d..56e45936b82 100644 --- a/apps/workflowengine/tests/ManagerTest.php +++ b/apps/workflowengine/tests/ManagerTest.php @@ -1,53 +1,40 @@ <?php + /** - * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Joas Schilling <coding@schilljs.com> - * @author Julius Härtl <jus@bitgrid.net> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\WorkflowEngine\Tests; +use OC\Files\Config\UserMountCache; use OC\L10N\L10N; use OCA\WorkflowEngine\Entity\File; use OCA\WorkflowEngine\Helper\ScopeContext; use OCA\WorkflowEngine\Manager; +use OCP\AppFramework\QueryException; use OCP\EventDispatcher\IEventDispatcher; +use OCP\Files\Events\Node\NodeCreatedEvent; use OCP\Files\IRootFolder; +use OCP\Files\Mount\IMountManager; +use OCP\ICache; +use OCP\ICacheFactory; use OCP\IConfig; use OCP\IDBConnection; use OCP\IL10N; -use OCP\ILogger; use OCP\IServerContainer; use OCP\IURLGenerator; use OCP\IUserManager; use OCP\IUserSession; +use OCP\Server; use OCP\SystemTag\ISystemTagManager; +use OCP\WorkflowEngine\Events\RegisterEntitiesEvent; use OCP\WorkflowEngine\ICheck; use OCP\WorkflowEngine\IEntity; use OCP\WorkflowEngine\IEntityEvent; use OCP\WorkflowEngine\IManager; use OCP\WorkflowEngine\IOperation; use PHPUnit\Framework\MockObject\MockObject; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; +use Psr\Log\LoggerInterface; use Test\TestCase; /** @@ -57,15 +44,12 @@ use Test\TestCase; * @group DB */ class ManagerTest extends TestCase { - /** @var Manager */ protected $manager; /** @var MockObject|IDBConnection */ protected $db; - /** @var \PHPUnit\Framework\MockObject\MockObject|ILogger */ + /** @var \PHPUnit\Framework\MockObject\MockObject|LoggerInterface */ protected $logger; - /** @var \PHPUnit\Framework\MockObject\MockObject|EventDispatcherInterface */ - protected $legacyDispatcher; /** @var MockObject|IServerContainer */ protected $container; /** @var MockObject|IUserSession */ @@ -76,11 +60,13 @@ class ManagerTest extends TestCase { protected $dispatcher; /** @var MockObject|IConfig */ protected $config; + /** @var MockObject|ICacheFactory */ + protected $cacheFactory; protected function setUp(): void { parent::setUp(); - $this->db = \OC::$server->getDatabaseConnection(); + $this->db = Server::get(IDBConnection::class); $this->container = $this->createMock(IServerContainer::class); /** @var IL10N|MockObject $l */ $this->l = $this->createMock(IL10N::class); @@ -89,21 +75,21 @@ class ManagerTest extends TestCase { return vsprintf($text, $parameters); }); - $this->legacyDispatcher = $this->createMock(EventDispatcherInterface::class); - $this->logger = $this->createMock(ILogger::class); + $this->logger = $this->createMock(LoggerInterface::class); $this->session = $this->createMock(IUserSession::class); $this->dispatcher = $this->createMock(IEventDispatcher::class); $this->config = $this->createMock(IConfig::class); + $this->cacheFactory = $this->createMock(ICacheFactory::class); $this->manager = new Manager( - \OC::$server->getDatabaseConnection(), + Server::get(IDBConnection::class), $this->container, $this->l, - $this->legacyDispatcher, $this->logger, $this->session, $this->dispatcher, - $this->config + $this->config, + $this->cacheFactory ); $this->clearTables(); } @@ -116,7 +102,7 @@ class ManagerTest extends TestCase { /** * @return MockObject|ScopeContext */ - protected function buildScope(string $scopeId = null): MockObject { + protected function buildScope(?string $scopeId = null): MockObject { $scopeContext = $this->createMock(ScopeContext::class); $scopeContext->expects($this->any()) ->method('getScope') @@ -139,7 +125,7 @@ class ManagerTest extends TestCase { } } - public function testChecks() { + public function testChecks(): void { $check1 = $this->invokePrivate($this->manager, 'addCheck', ['Test', 'equal', 1]); $check2 = $this->invokePrivate($this->manager, 'addCheck', ['Test', '!equal', 2]); @@ -160,7 +146,7 @@ class ManagerTest extends TestCase { $this->assertArrayHasKey($check2, $data); } - public function testScope() { + public function testScope(): void { $adminScope = $this->buildScope(); $userScope = $this->buildScope('jackie'); $entity = File::class; @@ -194,11 +180,37 @@ class ManagerTest extends TestCase { $this->assertTrue($this->invokePrivate($this->manager, 'canModify', [$opId3, $userScope])); } - public function testGetAllOperations() { + public function testGetAllOperations(): void { $adminScope = $this->buildScope(); $userScope = $this->buildScope('jackie'); $entity = File::class; + $adminOperation = $this->createMock(IOperation::class); + $adminOperation->expects($this->any()) + ->method('isAvailableForScope') + ->willReturnMap([ + [IManager::SCOPE_ADMIN, true], + [IManager::SCOPE_USER, false], + ]); + $userOperation = $this->createMock(IOperation::class); + $userOperation->expects($this->any()) + ->method('isAvailableForScope') + ->willReturnMap([ + [IManager::SCOPE_ADMIN, false], + [IManager::SCOPE_USER, true], + ]); + + $this->container->expects($this->any()) + ->method('query') + ->willReturnCallback(function ($className) use ($adminOperation, $userOperation) { + switch ($className) { + case 'OCA\WFE\TestAdminOp': + return $adminOperation; + case 'OCA\WFE\TestUserOp': + return $userOperation; + } + }); + $opId1 = $this->invokePrivate( $this->manager, 'insertOperation', @@ -219,6 +231,13 @@ class ManagerTest extends TestCase { ); $this->invokePrivate($this->manager, 'addScope', [$opId3, $userScope]); + $opId4 = $this->invokePrivate( + $this->manager, + 'insertOperation', + ['OCA\WFE\TestAdminOp', 'Test04', [41, 10, 4], 'NoBar', $entity, []] + ); + $this->invokePrivate($this->manager, 'addScope', [$opId4, $userScope]); + $adminOps = $this->manager->getAllOperations($adminScope); $userOps = $this->manager->getAllOperations($userScope); @@ -232,7 +251,7 @@ class ManagerTest extends TestCase { $this->assertSame(2, count($userOps['OCA\WFE\TestUserOp'])); } - public function testGetOperations() { + public function testGetOperations(): void { $adminScope = $this->buildScope(); $userScope = $this->buildScope('jackie'); $entity = File::class; @@ -269,43 +288,117 @@ class ManagerTest extends TestCase { ); $this->invokePrivate($this->manager, 'addScope', [$opId5, $userScope]); + $operation = $this->createMock(IOperation::class); + $operation->expects($this->any()) + ->method('isAvailableForScope') + ->willReturnMap([ + [IManager::SCOPE_ADMIN, true], + [IManager::SCOPE_USER, true], + ]); + + $this->container->expects($this->any()) + ->method('query') + ->willReturnCallback(function ($className) use ($operation) { + switch ($className) { + case 'OCA\WFE\TestOp': + return $operation; + case 'OCA\WFE\OtherTestOp': + throw new QueryException(); + } + }); + $adminOps = $this->manager->getOperations('OCA\WFE\TestOp', $adminScope); $userOps = $this->manager->getOperations('OCA\WFE\TestOp', $userScope); $this->assertSame(1, count($adminOps)); - array_walk($adminOps, function ($op) { + array_walk($adminOps, function ($op): void { $this->assertTrue($op['class'] === 'OCA\WFE\TestOp'); }); $this->assertSame(2, count($userOps)); - array_walk($userOps, function ($op) { + array_walk($userOps, function ($op): void { $this->assertTrue($op['class'] === 'OCA\WFE\TestOp'); }); } - public function testUpdateOperation() { + public function testGetAllConfiguredEvents(): void { $adminScope = $this->buildScope(); $userScope = $this->buildScope('jackie'); $entity = File::class; + $opId5 = $this->invokePrivate( + $this->manager, + 'insertOperation', + ['OCA\WFE\OtherTestOp', 'Test04', [], 'foo', $entity, [NodeCreatedEvent::class]] + ); + $this->invokePrivate($this->manager, 'addScope', [$opId5, $userScope]); + + $allOperations = null; + + $cache = $this->createMock(ICache::class); + $cache + ->method('get') + ->willReturnCallback(function () use (&$allOperations) { + if ($allOperations) { + return $allOperations; + } + + return null; + }); + + $this->cacheFactory->method('createDistributed')->willReturn($cache); + $allOperations = $this->manager->getAllConfiguredEvents(); + $this->assertCount(1, $allOperations); + + $allOperationsCached = $this->manager->getAllConfiguredEvents(); + $this->assertCount(1, $allOperationsCached); + $this->assertEquals($allOperationsCached, $allOperations); + } + + public function testUpdateOperation(): void { + $adminScope = $this->buildScope(); + $userScope = $this->buildScope('jackie'); + $entity = File::class; + + $cache = $this->createMock(ICache::class); + $cache->expects($this->exactly(4)) + ->method('remove') + ->with('events'); + $this->cacheFactory->method('createDistributed') + ->willReturn($cache); + + $expectedCalls = [ + [IManager::SCOPE_ADMIN], + [IManager::SCOPE_USER], + ]; + $i = 0; + $operationMock = $this->createMock(IOperation::class); + $operationMock->expects($this->any()) + ->method('isAvailableForScope') + ->willReturnCallback(function () use (&$expectedCalls, &$i): bool { + $this->assertEquals($expectedCalls[$i], func_get_args()); + $i++; + return true; + }); + $this->container->expects($this->any()) ->method('query') - ->willReturnCallback(function ($class) { + ->willReturnCallback(function ($class) use ($operationMock) { if (substr($class, -2) === 'Op') { - return $this->createMock(IOperation::class); + return $operationMock; } elseif ($class === File::class) { return $this->getMockBuilder(File::class) ->setConstructorArgs([ $this->l, $this->createMock(IURLGenerator::class), $this->createMock(IRootFolder::class), - $this->createMock(ILogger::class), - $this->createMock(\OCP\Share\IManager::class), $this->createMock(IUserSession::class), $this->createMock(ISystemTagManager::class), $this->createMock(IUserManager::class), + $this->createMock(UserMountCache::class), + $this->createMock(IMountManager::class), ]) - ->setMethodsExcept(['getEvents']) + ->onlyMethods($this->filterClassMethods(File::class, ['getEvents'])) ->getMock(); } return $this->createMock(ICheck::class); @@ -349,11 +442,17 @@ class ManagerTest extends TestCase { } } - public function testDeleteOperation() { + public function testDeleteOperation(): void { $adminScope = $this->buildScope(); $userScope = $this->buildScope('jackie'); $entity = File::class; + $cache = $this->createMock(ICache::class); + $cache->expects($this->exactly(4)) + ->method('remove') + ->with('events'); + $this->cacheFactory->method('createDistributed')->willReturn($cache); + $opId1 = $this->invokePrivate( $this->manager, 'insertOperation', @@ -393,7 +492,7 @@ class ManagerTest extends TestCase { } } - public function testGetEntitiesListBuildInOnly() { + public function testGetEntitiesListBuildInOnly(): void { $fileEntityMock = $this->createMock(File::class); $this->container->expects($this->once()) @@ -407,7 +506,7 @@ class ManagerTest extends TestCase { $this->assertInstanceOf(IEntity::class, $entities[0]); } - public function testGetEntitiesList() { + public function testGetEntitiesList(): void { $fileEntityMock = $this->createMock(File::class); $this->container->expects($this->once()) @@ -418,10 +517,9 @@ class ManagerTest extends TestCase { /** @var MockObject|IEntity $extraEntity */ $extraEntity = $this->createMock(IEntity::class); - $this->legacyDispatcher->expects($this->once()) - ->method('dispatch') - ->with('OCP\WorkflowEngine::registerEntities', $this->anything()) - ->willReturnCallback(function () use ($extraEntity) { + $this->dispatcher->expects($this->once()) + ->method('dispatchTyped') + ->willReturnCallback(function (RegisterEntitiesEvent $e) use ($extraEntity): void { $this->manager->registerEntity($extraEntity); }); @@ -442,7 +540,7 @@ class ManagerTest extends TestCase { $this->assertSame(1, $entityTypeCounts[1]); } - public function testValidateOperationOK() { + public function testValidateOperationOK(): void { $check = [ 'class' => ICheck::class, 'operator' => 'is', @@ -453,6 +551,16 @@ class ManagerTest extends TestCase { $entityMock = $this->createMock(IEntity::class); $eventEntityMock = $this->createMock(IEntityEvent::class); $checkMock = $this->createMock(ICheck::class); + $scopeMock = $this->createMock(ScopeContext::class); + + $scopeMock->expects($this->any()) + ->method('getScope') + ->willReturn(IManager::SCOPE_ADMIN); + + $operationMock->expects($this->once()) + ->method('isAvailableForScope') + ->with(IManager::SCOPE_ADMIN) + ->willReturn(true); $operationMock->expects($this->once()) ->method('validateOperation') @@ -489,10 +597,10 @@ class ManagerTest extends TestCase { } }); - $this->manager->validateOperation(IOperation::class, 'test', [$check], 'operationData', IEntity::class, ['MyEvent']); + $this->manager->validateOperation(IOperation::class, 'test', [$check], 'operationData', $scopeMock, IEntity::class, ['MyEvent']); } - public function testValidateOperationCheckInputLengthError() { + public function testValidateOperationCheckInputLengthError(): void { $check = [ 'class' => ICheck::class, 'operator' => 'is', @@ -503,6 +611,16 @@ class ManagerTest extends TestCase { $entityMock = $this->createMock(IEntity::class); $eventEntityMock = $this->createMock(IEntityEvent::class); $checkMock = $this->createMock(ICheck::class); + $scopeMock = $this->createMock(ScopeContext::class); + + $scopeMock->expects($this->any()) + ->method('getScope') + ->willReturn(IManager::SCOPE_ADMIN); + + $operationMock->expects($this->once()) + ->method('isAvailableForScope') + ->with(IManager::SCOPE_ADMIN) + ->willReturn(true); $operationMock->expects($this->once()) ->method('validateOperation') @@ -540,13 +658,13 @@ class ManagerTest extends TestCase { }); try { - $this->manager->validateOperation(IOperation::class, 'test', [$check], 'operationData', IEntity::class, ['MyEvent']); + $this->manager->validateOperation(IOperation::class, 'test', [$check], 'operationData', $scopeMock, IEntity::class, ['MyEvent']); } catch (\UnexpectedValueException $e) { $this->assertSame('The provided check value is too long', $e->getMessage()); } } - public function testValidateOperationDataLengthError() { + public function testValidateOperationDataLengthError(): void { $check = [ 'class' => ICheck::class, 'operator' => 'is', @@ -558,6 +676,16 @@ class ManagerTest extends TestCase { $entityMock = $this->createMock(IEntity::class); $eventEntityMock = $this->createMock(IEntityEvent::class); $checkMock = $this->createMock(ICheck::class); + $scopeMock = $this->createMock(ScopeContext::class); + + $scopeMock->expects($this->any()) + ->method('getScope') + ->willReturn(IManager::SCOPE_ADMIN); + + $operationMock->expects($this->once()) + ->method('isAvailableForScope') + ->with(IManager::SCOPE_ADMIN) + ->willReturn(true); $operationMock->expects($this->never()) ->method('validateOperation'); @@ -594,9 +722,73 @@ class ManagerTest extends TestCase { }); try { - $this->manager->validateOperation(IOperation::class, 'test', [$check], $operationData, IEntity::class, ['MyEvent']); + $this->manager->validateOperation(IOperation::class, 'test', [$check], $operationData, $scopeMock, IEntity::class, ['MyEvent']); } catch (\UnexpectedValueException $e) { $this->assertSame('The provided operation data is too long', $e->getMessage()); } } + + public function testValidateOperationScopeNotAvailable(): void { + $check = [ + 'class' => ICheck::class, + 'operator' => 'is', + 'value' => 'barfoo', + ]; + $operationData = str_pad('', IManager::MAX_OPERATION_VALUE_BYTES + 1, 'FooBar'); + + $operationMock = $this->createMock(IOperation::class); + $entityMock = $this->createMock(IEntity::class); + $eventEntityMock = $this->createMock(IEntityEvent::class); + $checkMock = $this->createMock(ICheck::class); + $scopeMock = $this->createMock(ScopeContext::class); + + $scopeMock->expects($this->any()) + ->method('getScope') + ->willReturn(IManager::SCOPE_ADMIN); + + $operationMock->expects($this->once()) + ->method('isAvailableForScope') + ->with(IManager::SCOPE_ADMIN) + ->willReturn(false); + + $operationMock->expects($this->never()) + ->method('validateOperation'); + + $entityMock->expects($this->any()) + ->method('getEvents') + ->willReturn([$eventEntityMock]); + + $eventEntityMock->expects($this->any()) + ->method('getEventName') + ->willReturn('MyEvent'); + + $checkMock->expects($this->any()) + ->method('supportedEntities') + ->willReturn([IEntity::class]); + $checkMock->expects($this->never()) + ->method('validateCheck'); + + $this->container->expects($this->any()) + ->method('query') + ->willReturnCallback(function ($className) use ($operationMock, $entityMock, $eventEntityMock, $checkMock) { + switch ($className) { + case IOperation::class: + return $operationMock; + case IEntity::class: + return $entityMock; + case IEntityEvent::class: + return $eventEntityMock; + case ICheck::class: + return $checkMock; + default: + return $this->createMock($className); + } + }); + + try { + $this->manager->validateOperation(IOperation::class, 'test', [$check], $operationData, $scopeMock, IEntity::class, ['MyEvent']); + } catch (\UnexpectedValueException $e) { + $this->assertSame('Operation OCP\WorkflowEngine\IOperation is invalid', $e->getMessage()); + } + } } |