aboutsummaryrefslogtreecommitdiffstats
path: root/apps/workflowengine
diff options
context:
space:
mode:
Diffstat (limited to 'apps/workflowengine')
-rw-r--r--apps/workflowengine/.l10nignore2
-rw-r--r--apps/workflowengine/.noopenapi0
-rw-r--r--apps/workflowengine/appinfo/info.xml8
-rw-r--r--apps/workflowengine/appinfo/routes.php25
-rw-r--r--apps/workflowengine/composer/composer/ClassLoader.php108
-rw-r--r--apps/workflowengine/composer/composer/InstalledVersions.php17
-rw-r--r--apps/workflowengine/composer/composer/autoload_classmap.php2
-rw-r--r--apps/workflowengine/composer/composer/autoload_static.php2
-rw-r--r--apps/workflowengine/composer/composer/installed.php4
-rw-r--r--apps/workflowengine/img/app-dark.svg2
-rw-r--r--apps/workflowengine/img/app.svg2
-rw-r--r--apps/workflowengine/img/workflow-off.svg4
-rw-r--r--apps/workflowengine/l10n/ar.js123
-rw-r--r--apps/workflowengine/l10n/ar.json121
-rw-r--r--apps/workflowengine/l10n/ast.js116
-rw-r--r--apps/workflowengine/l10n/ast.json116
-rw-r--r--apps/workflowengine/l10n/bg.js41
-rw-r--r--apps/workflowengine/l10n/bg.json41
-rw-r--r--apps/workflowengine/l10n/ca.js26
-rw-r--r--apps/workflowengine/l10n/ca.json26
-rw-r--r--apps/workflowengine/l10n/cs.js33
-rw-r--r--apps/workflowengine/l10n/cs.json33
-rw-r--r--apps/workflowengine/l10n/da.js16
-rw-r--r--apps/workflowengine/l10n/da.json16
-rw-r--r--apps/workflowengine/l10n/de.js37
-rw-r--r--apps/workflowengine/l10n/de.json37
-rw-r--r--apps/workflowengine/l10n/de_DE.js37
-rw-r--r--apps/workflowengine/l10n/de_DE.json37
-rw-r--r--apps/workflowengine/l10n/el.js26
-rw-r--r--apps/workflowengine/l10n/el.json26
-rw-r--r--apps/workflowengine/l10n/en_GB.js33
-rw-r--r--apps/workflowengine/l10n/en_GB.json33
-rw-r--r--apps/workflowengine/l10n/eo.js23
-rw-r--r--apps/workflowengine/l10n/eo.json23
-rw-r--r--apps/workflowengine/l10n/es.js33
-rw-r--r--apps/workflowengine/l10n/es.json33
-rw-r--r--apps/workflowengine/l10n/es_419.js63
-rw-r--r--apps/workflowengine/l10n/es_419.json61
-rw-r--r--apps/workflowengine/l10n/es_AR.js64
-rw-r--r--apps/workflowengine/l10n/es_AR.json62
-rw-r--r--apps/workflowengine/l10n/es_CL.js63
-rw-r--r--apps/workflowengine/l10n/es_CL.json61
-rw-r--r--apps/workflowengine/l10n/es_CO.js63
-rw-r--r--apps/workflowengine/l10n/es_CO.json61
-rw-r--r--apps/workflowengine/l10n/es_CR.js63
-rw-r--r--apps/workflowengine/l10n/es_CR.json61
-rw-r--r--apps/workflowengine/l10n/es_DO.js63
-rw-r--r--apps/workflowengine/l10n/es_DO.json61
-rw-r--r--apps/workflowengine/l10n/es_EC.js69
-rw-r--r--apps/workflowengine/l10n/es_EC.json69
-rw-r--r--apps/workflowengine/l10n/es_GT.js63
-rw-r--r--apps/workflowengine/l10n/es_GT.json61
-rw-r--r--apps/workflowengine/l10n/es_HN.js63
-rw-r--r--apps/workflowengine/l10n/es_HN.json61
-rw-r--r--apps/workflowengine/l10n/es_MX.js77
-rw-r--r--apps/workflowengine/l10n/es_MX.json77
-rw-r--r--apps/workflowengine/l10n/es_NI.js63
-rw-r--r--apps/workflowengine/l10n/es_NI.json61
-rw-r--r--apps/workflowengine/l10n/es_PA.js63
-rw-r--r--apps/workflowengine/l10n/es_PA.json61
-rw-r--r--apps/workflowengine/l10n/es_PE.js63
-rw-r--r--apps/workflowengine/l10n/es_PE.json61
-rw-r--r--apps/workflowengine/l10n/es_PR.js63
-rw-r--r--apps/workflowengine/l10n/es_PR.json61
-rw-r--r--apps/workflowengine/l10n/es_PY.js63
-rw-r--r--apps/workflowengine/l10n/es_PY.json61
-rw-r--r--apps/workflowengine/l10n/es_SV.js63
-rw-r--r--apps/workflowengine/l10n/es_SV.json61
-rw-r--r--apps/workflowengine/l10n/es_UY.js63
-rw-r--r--apps/workflowengine/l10n/es_UY.json61
-rw-r--r--apps/workflowengine/l10n/et_EE.js115
-rw-r--r--apps/workflowengine/l10n/et_EE.json115
-rw-r--r--apps/workflowengine/l10n/eu.js30
-rw-r--r--apps/workflowengine/l10n/eu.json30
-rw-r--r--apps/workflowengine/l10n/fa.js68
-rw-r--r--apps/workflowengine/l10n/fa.json68
-rw-r--r--apps/workflowengine/l10n/fi.js17
-rw-r--r--apps/workflowengine/l10n/fi.json17
-rw-r--r--apps/workflowengine/l10n/fr.js77
-rw-r--r--apps/workflowengine/l10n/fr.json77
-rw-r--r--apps/workflowengine/l10n/ga.js123
-rw-r--r--apps/workflowengine/l10n/ga.json121
-rw-r--r--apps/workflowengine/l10n/gl.js51
-rw-r--r--apps/workflowengine/l10n/gl.json51
-rw-r--r--apps/workflowengine/l10n/he.js27
-rw-r--r--apps/workflowengine/l10n/he.json27
-rw-r--r--apps/workflowengine/l10n/hr.js25
-rw-r--r--apps/workflowengine/l10n/hr.json25
-rw-r--r--apps/workflowengine/l10n/hu.js33
-rw-r--r--apps/workflowengine/l10n/hu.json33
-rw-r--r--apps/workflowengine/l10n/ia.js46
-rw-r--r--apps/workflowengine/l10n/ia.json44
-rw-r--r--apps/workflowengine/l10n/id.js63
-rw-r--r--apps/workflowengine/l10n/id.json61
-rw-r--r--apps/workflowengine/l10n/is.js17
-rw-r--r--apps/workflowengine/l10n/is.json17
-rw-r--r--apps/workflowengine/l10n/it.js31
-rw-r--r--apps/workflowengine/l10n/it.json31
-rw-r--r--apps/workflowengine/l10n/ja.js34
-rw-r--r--apps/workflowengine/l10n/ja.json34
-rw-r--r--apps/workflowengine/l10n/ka.js121
-rw-r--r--apps/workflowengine/l10n/ka.json119
-rw-r--r--apps/workflowengine/l10n/ka_GE.js63
-rw-r--r--apps/workflowengine/l10n/ka_GE.json61
-rw-r--r--apps/workflowengine/l10n/ko.js46
-rw-r--r--apps/workflowengine/l10n/ko.json46
-rw-r--r--apps/workflowengine/l10n/lt_LT.js35
-rw-r--r--apps/workflowengine/l10n/lt_LT.json35
-rw-r--r--apps/workflowengine/l10n/lv.js33
-rw-r--r--apps/workflowengine/l10n/lv.json33
-rw-r--r--apps/workflowengine/l10n/mk.js28
-rw-r--r--apps/workflowengine/l10n/mk.json28
-rw-r--r--apps/workflowengine/l10n/mn.js70
-rw-r--r--apps/workflowengine/l10n/mn.json68
-rw-r--r--apps/workflowengine/l10n/nb.js37
-rw-r--r--apps/workflowengine/l10n/nb.json37
-rw-r--r--apps/workflowengine/l10n/nl.js38
-rw-r--r--apps/workflowengine/l10n/nl.json38
-rw-r--r--apps/workflowengine/l10n/pl.js26
-rw-r--r--apps/workflowengine/l10n/pl.json26
-rw-r--r--apps/workflowengine/l10n/pt_BR.js47
-rw-r--r--apps/workflowengine/l10n/pt_BR.json47
-rw-r--r--apps/workflowengine/l10n/pt_PT.js16
-rw-r--r--apps/workflowengine/l10n/pt_PT.json16
-rw-r--r--apps/workflowengine/l10n/ru.js33
-rw-r--r--apps/workflowengine/l10n/ru.json33
-rw-r--r--apps/workflowengine/l10n/sc.js28
-rw-r--r--apps/workflowengine/l10n/sc.json28
-rw-r--r--apps/workflowengine/l10n/sk.js33
-rw-r--r--apps/workflowengine/l10n/sk.json33
-rw-r--r--apps/workflowengine/l10n/sl.js29
-rw-r--r--apps/workflowengine/l10n/sl.json29
-rw-r--r--apps/workflowengine/l10n/sq.js65
-rw-r--r--apps/workflowengine/l10n/sq.json63
-rw-r--r--apps/workflowengine/l10n/sr.js37
-rw-r--r--apps/workflowengine/l10n/sr.json37
-rw-r--r--apps/workflowengine/l10n/sv.js38
-rw-r--r--apps/workflowengine/l10n/sv.json38
-rw-r--r--apps/workflowengine/l10n/sw.js123
-rw-r--r--apps/workflowengine/l10n/sw.json121
-rw-r--r--apps/workflowengine/l10n/tr.js39
-rw-r--r--apps/workflowengine/l10n/tr.json39
-rw-r--r--apps/workflowengine/l10n/ug.js123
-rw-r--r--apps/workflowengine/l10n/ug.json121
-rw-r--r--apps/workflowengine/l10n/uk.js98
-rw-r--r--apps/workflowengine/l10n/uk.json98
-rw-r--r--apps/workflowengine/l10n/zh_CN.js34
-rw-r--r--apps/workflowengine/l10n/zh_CN.json34
-rw-r--r--apps/workflowengine/l10n/zh_HK.js33
-rw-r--r--apps/workflowengine/l10n/zh_HK.json33
-rw-r--r--apps/workflowengine/l10n/zh_TW.js71
-rw-r--r--apps/workflowengine/l10n/zh_TW.json71
-rw-r--r--apps/workflowengine/lib/AppInfo/Application.php60
-rw-r--r--apps/workflowengine/lib/BackgroundJobs/Rotate.php29
-rw-r--r--apps/workflowengine/lib/Check/AbstractStringCheck.php36
-rw-r--r--apps/workflowengine/lib/Check/FileMimeType.php70
-rw-r--r--apps/workflowengine/lib/Check/FileName.php36
-rw-r--r--apps/workflowengine/lib/Check/FileSize.php37
-rw-r--r--apps/workflowengine/lib/Check/FileSystemTags.php97
-rw-r--r--apps/workflowengine/lib/Check/RequestRemoteAddress.php39
-rw-r--r--apps/workflowengine/lib/Check/RequestTime.php40
-rw-r--r--apps/workflowengine/lib/Check/RequestURL.php40
-rw-r--r--apps/workflowengine/lib/Check/RequestUserAgent.php33
-rw-r--r--apps/workflowengine/lib/Check/TFileCheck.php25
-rw-r--r--apps/workflowengine/lib/Check/UserGroupMembership.php42
-rw-r--r--apps/workflowengine/lib/Command/Index.php30
-rw-r--r--apps/workflowengine/lib/Controller/AWorkflowController.php44
-rw-r--r--apps/workflowengine/lib/Controller/GlobalWorkflowsController.php22
-rw-r--r--apps/workflowengine/lib/Controller/RequestTime.php54
-rw-r--r--apps/workflowengine/lib/Controller/RequestTimeController.php37
-rw-r--r--apps/workflowengine/lib/Controller/UserWorkflowsController.php48
-rw-r--r--apps/workflowengine/lib/Entity/File.php92
-rw-r--r--apps/workflowengine/lib/Helper/LogContext.php23
-rw-r--r--apps/workflowengine/lib/Helper/ScopeContext.php26
-rw-r--r--apps/workflowengine/lib/Listener/LoadAdditionalSettingsScriptsListener.php33
-rw-r--r--apps/workflowengine/lib/Manager.php193
-rw-r--r--apps/workflowengine/lib/Migration/PopulateNewlyIntroducedDatabaseFields.php34
-rw-r--r--apps/workflowengine/lib/Migration/Version2000Date20190808074233.php27
-rw-r--r--apps/workflowengine/lib/Migration/Version2200Date20210805101925.php21
-rw-r--r--apps/workflowengine/lib/Service/Logger.php46
-rw-r--r--apps/workflowengine/lib/Service/RuleMatcher.php50
-rw-r--r--apps/workflowengine/lib/Settings/ASettings.php59
-rw-r--r--apps/workflowengine/lib/Settings/Admin.php22
-rw-r--r--apps/workflowengine/lib/Settings/Personal.php25
-rw-r--r--apps/workflowengine/lib/Settings/Section.php37
-rw-r--r--apps/workflowengine/src/components/Check.vue109
-rw-r--r--apps/workflowengine/src/components/Checks/FileMimeType.vue159
-rw-r--r--apps/workflowengine/src/components/Checks/FileSystemTag.vue47
-rw-r--r--apps/workflowengine/src/components/Checks/RequestTime.vue47
-rw-r--r--apps/workflowengine/src/components/Checks/RequestURL.vue122
-rw-r--r--apps/workflowengine/src/components/Checks/RequestUserAgent.vue143
-rw-r--r--apps/workflowengine/src/components/Checks/RequestUserGroup.vue118
-rw-r--r--apps/workflowengine/src/components/Checks/file.js33
-rw-r--r--apps/workflowengine/src/components/Checks/index.js25
-rw-r--r--apps/workflowengine/src/components/Checks/request.js40
-rw-r--r--apps/workflowengine/src/components/Event.vue85
-rw-r--r--apps/workflowengine/src/components/Operation.vue8
-rw-r--r--apps/workflowengine/src/components/Rule.vue94
-rw-r--r--apps/workflowengine/src/components/Workflow.vue87
-rw-r--r--apps/workflowengine/src/helpers/api.js23
-rw-r--r--apps/workflowengine/src/helpers/validators.js21
-rw-r--r--apps/workflowengine/src/helpers/window.js30
-rw-r--r--apps/workflowengine/src/mixins/valueMixin.js45
-rw-r--r--apps/workflowengine/src/store.js41
-rw-r--r--apps/workflowengine/src/styles/operation.scss21
-rw-r--r--apps/workflowengine/src/workflowengine.js52
-rw-r--r--apps/workflowengine/templates/settings.php19
-rw-r--r--apps/workflowengine/tests/Check/AbstractStringCheckTest.php87
-rw-r--r--apps/workflowengine/tests/Check/FileMimeTypeTest.php51
-rw-r--r--apps/workflowengine/tests/Check/RequestRemoteAddressTest.php91
-rw-r--r--apps/workflowengine/tests/Check/RequestTimeTest.php95
-rw-r--r--apps/workflowengine/tests/Check/RequestUserAgentTest.php105
-rw-r--r--apps/workflowengine/tests/ManagerTest.php314
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());
+ }
+ }
}