diff options
author | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2017-11-01 15:37:29 +0100 |
---|---|---|
committer | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2017-11-01 15:37:29 +0100 |
commit | e2805f02aa51c602c581bd4f09b99dd791a42df4 (patch) | |
tree | 4ea194f47aa315874c2aac31c30dbdb14110539b | |
parent | 2b4b3b1986e58305c08941f77a693a80cc3d5b85 (diff) | |
parent | 52b679a2d6f6b273f46334b15534ab312f974a1a (diff) | |
download | nextcloud-server-e2805f02aa51c602c581bd4f09b99dd791a42df4.tar.gz nextcloud-server-e2805f02aa51c602c581bd4f09b99dd791a42df4.zip |
Merge branch 'master' into autocomplete-gui
812 files changed, 20697 insertions, 2167 deletions
diff --git a/.gitignore b/.gitignore index 07e4c1c74b3..8e0794a7999 100644 --- a/.gitignore +++ b/.gitignore @@ -136,3 +136,7 @@ Vagrantfile /config/config-autotest-backup.php /config/autoconfig.php clover.xml + +# Tests - dependencies +tests/acceptance/composer.lock +tests/acceptance/vendor/ diff --git a/apps/admin_audit/composer/autoload.php b/apps/admin_audit/composer/autoload.php new file mode 100644 index 00000000000..7970e9ebe12 --- /dev/null +++ b/apps/admin_audit/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer/autoload_real.php'; + +return ComposerAutoloaderInitAdminAudit::getLoader(); diff --git a/apps/admin_audit/composer/composer.json b/apps/admin_audit/composer/composer.json new file mode 100644 index 00000000000..ae9b104b697 --- /dev/null +++ b/apps/admin_audit/composer/composer.json @@ -0,0 +1,13 @@ +{ + "config" : { + "vendor-dir": ".", + "optimize-autoloader": true, + "authorative-autoloader": true, + "autoloader-suffix": "AdminAudit" + }, + "autoload" : { + "psr-4": { + "OCA\\AdminAudit\\": "../lib/" + } + } +} diff --git a/apps/admin_audit/composer/composer/ClassLoader.php b/apps/admin_audit/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..2c72175e772 --- /dev/null +++ b/apps/admin_audit/composer/composer/ClassLoader.php @@ -0,0 +1,445 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * 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 array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + foreach ($this->prefixDirsPsr4[$search] as $dir) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/apps/admin_audit/composer/composer/LICENSE b/apps/admin_audit/composer/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/apps/admin_audit/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/admin_audit/composer/composer/autoload_classmap.php b/apps/admin_audit/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..487e05172de --- /dev/null +++ b/apps/admin_audit/composer/composer/autoload_classmap.php @@ -0,0 +1,20 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\AdminAudit\\Actions\\Action' => $baseDir . '/../lib/Actions/Action.php', + 'OCA\\AdminAudit\\Actions\\AppManagement' => $baseDir . '/../lib/Actions/AppManagement.php', + 'OCA\\AdminAudit\\Actions\\Auth' => $baseDir . '/../lib/Actions/Auth.php', + 'OCA\\AdminAudit\\Actions\\Console' => $baseDir . '/../lib/Actions/Console.php', + 'OCA\\AdminAudit\\Actions\\Files' => $baseDir . '/../lib/Actions/Files.php', + 'OCA\\AdminAudit\\Actions\\GroupManagement' => $baseDir . '/../lib/Actions/GroupManagement.php', + 'OCA\\AdminAudit\\Actions\\Sharing' => $baseDir . '/../lib/Actions/Sharing.php', + 'OCA\\AdminAudit\\Actions\\Trashbin' => $baseDir . '/../lib/Actions/Trashbin.php', + 'OCA\\AdminAudit\\Actions\\UserManagement' => $baseDir . '/../lib/Actions/UserManagement.php', + 'OCA\\AdminAudit\\Actions\\Versions' => $baseDir . '/../lib/Actions/Versions.php', + 'OCA\\AdminAudit\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php', +); diff --git a/apps/admin_audit/composer/composer/autoload_namespaces.php b/apps/admin_audit/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..71c9e91858d --- /dev/null +++ b/apps/admin_audit/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( +); diff --git a/apps/admin_audit/composer/composer/autoload_psr4.php b/apps/admin_audit/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..63a4845c93d --- /dev/null +++ b/apps/admin_audit/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\AdminAudit\\' => array($baseDir . '/../lib'), +); diff --git a/apps/admin_audit/composer/composer/autoload_real.php b/apps/admin_audit/composer/composer/autoload_real.php new file mode 100644 index 00000000000..1cbbc489538 --- /dev/null +++ b/apps/admin_audit/composer/composer/autoload_real.php @@ -0,0 +1,52 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInitAdminAudit +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInitAdminAudit', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInitAdminAudit', 'loadClassLoader')); + + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitAdminAudit::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/apps/admin_audit/composer/composer/autoload_static.php b/apps/admin_audit/composer/composer/autoload_static.php new file mode 100644 index 00000000000..b5f055de44e --- /dev/null +++ b/apps/admin_audit/composer/composer/autoload_static.php @@ -0,0 +1,46 @@ +<?php + +// autoload_static.php @generated by Composer + +namespace Composer\Autoload; + +class ComposerStaticInitAdminAudit +{ + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'OCA\\AdminAudit\\' => 15, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\AdminAudit\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'OCA\\AdminAudit\\Actions\\Action' => __DIR__ . '/..' . '/../lib/Actions/Action.php', + 'OCA\\AdminAudit\\Actions\\AppManagement' => __DIR__ . '/..' . '/../lib/Actions/AppManagement.php', + 'OCA\\AdminAudit\\Actions\\Auth' => __DIR__ . '/..' . '/../lib/Actions/Auth.php', + 'OCA\\AdminAudit\\Actions\\Console' => __DIR__ . '/..' . '/../lib/Actions/Console.php', + 'OCA\\AdminAudit\\Actions\\Files' => __DIR__ . '/..' . '/../lib/Actions/Files.php', + 'OCA\\AdminAudit\\Actions\\GroupManagement' => __DIR__ . '/..' . '/../lib/Actions/GroupManagement.php', + 'OCA\\AdminAudit\\Actions\\Sharing' => __DIR__ . '/..' . '/../lib/Actions/Sharing.php', + 'OCA\\AdminAudit\\Actions\\Trashbin' => __DIR__ . '/..' . '/../lib/Actions/Trashbin.php', + 'OCA\\AdminAudit\\Actions\\UserManagement' => __DIR__ . '/..' . '/../lib/Actions/UserManagement.php', + 'OCA\\AdminAudit\\Actions\\Versions' => __DIR__ . '/..' . '/../lib/Actions/Versions.php', + 'OCA\\AdminAudit\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitAdminAudit::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitAdminAudit::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitAdminAudit::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/comments/composer/autoload.php b/apps/comments/composer/autoload.php new file mode 100644 index 00000000000..c974072d6b7 --- /dev/null +++ b/apps/comments/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer/autoload_real.php'; + +return ComposerAutoloaderInitComments::getLoader(); diff --git a/apps/comments/composer/composer.json b/apps/comments/composer/composer.json new file mode 100644 index 00000000000..523394b5d8e --- /dev/null +++ b/apps/comments/composer/composer.json @@ -0,0 +1,13 @@ +{ + "config" : { + "vendor-dir": ".", + "optimize-autoloader": true, + "authorative-autoloader": true, + "autoloader-suffix": "Comments" + }, + "autoload" : { + "psr-4": { + "OCA\\Comments\\": "../lib/" + } + } +} diff --git a/apps/comments/composer/composer/ClassLoader.php b/apps/comments/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..2c72175e772 --- /dev/null +++ b/apps/comments/composer/composer/ClassLoader.php @@ -0,0 +1,445 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * 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 array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + foreach ($this->prefixDirsPsr4[$search] as $dir) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/apps/comments/composer/composer/LICENSE b/apps/comments/composer/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/apps/comments/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/comments/composer/composer/autoload_classmap.php b/apps/comments/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..299dc305641 --- /dev/null +++ b/apps/comments/composer/composer/autoload_classmap.php @@ -0,0 +1,18 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\Comments\\Activity\\Filter' => $baseDir . '/../lib/Activity/Filter.php', + 'OCA\\Comments\\Activity\\Listener' => $baseDir . '/../lib/Activity/Listener.php', + 'OCA\\Comments\\Activity\\Provider' => $baseDir . '/../lib/Activity/Provider.php', + 'OCA\\Comments\\Activity\\Setting' => $baseDir . '/../lib/Activity/Setting.php', + 'OCA\\Comments\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php', + 'OCA\\Comments\\Controller\\Notifications' => $baseDir . '/../lib/Controller/Notifications.php', + 'OCA\\Comments\\EventHandler' => $baseDir . '/../lib/EventHandler.php', + 'OCA\\Comments\\Notification\\Listener' => $baseDir . '/../lib/Notification/Listener.php', + 'OCA\\Comments\\Notification\\Notifier' => $baseDir . '/../lib/Notification/Notifier.php', +); diff --git a/apps/comments/composer/composer/autoload_namespaces.php b/apps/comments/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..71c9e91858d --- /dev/null +++ b/apps/comments/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( +); diff --git a/apps/comments/composer/composer/autoload_psr4.php b/apps/comments/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..f30d722bf9e --- /dev/null +++ b/apps/comments/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\Comments\\' => array($baseDir . '/../lib'), +); diff --git a/apps/comments/composer/composer/autoload_real.php b/apps/comments/composer/composer/autoload_real.php new file mode 100644 index 00000000000..1ce284f24f4 --- /dev/null +++ b/apps/comments/composer/composer/autoload_real.php @@ -0,0 +1,52 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInitComments +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInitComments', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInitComments', 'loadClassLoader')); + + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitComments::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/apps/comments/composer/composer/autoload_static.php b/apps/comments/composer/composer/autoload_static.php new file mode 100644 index 00000000000..932a6316898 --- /dev/null +++ b/apps/comments/composer/composer/autoload_static.php @@ -0,0 +1,44 @@ +<?php + +// autoload_static.php @generated by Composer + +namespace Composer\Autoload; + +class ComposerStaticInitComments +{ + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'OCA\\Comments\\' => 13, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\Comments\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'OCA\\Comments\\Activity\\Filter' => __DIR__ . '/..' . '/../lib/Activity/Filter.php', + 'OCA\\Comments\\Activity\\Listener' => __DIR__ . '/..' . '/../lib/Activity/Listener.php', + 'OCA\\Comments\\Activity\\Provider' => __DIR__ . '/..' . '/../lib/Activity/Provider.php', + 'OCA\\Comments\\Activity\\Setting' => __DIR__ . '/..' . '/../lib/Activity/Setting.php', + 'OCA\\Comments\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php', + 'OCA\\Comments\\Controller\\Notifications' => __DIR__ . '/..' . '/../lib/Controller/Notifications.php', + 'OCA\\Comments\\EventHandler' => __DIR__ . '/..' . '/../lib/EventHandler.php', + 'OCA\\Comments\\Notification\\Listener' => __DIR__ . '/..' . '/../lib/Notification/Listener.php', + 'OCA\\Comments\\Notification\\Notifier' => __DIR__ . '/..' . '/../lib/Notification/Notifier.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitComments::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitComments::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitComments::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/comments/css/comments.css b/apps/comments/css/comments.css index c81f24b2135..09771b4e954 100644 --- a/apps/comments/css/comments.css +++ b/apps/comments/css/comments.css @@ -177,8 +177,6 @@ #commentsTabView .message.error { color: #e9322d; border-color: #e9322d; - -webkit-box-shadow: 0 0 6px #f8b9b7; - -moz-box-shadow: 0 0 6px #f8b9b7; box-shadow: 0 0 6px #f8b9b7; } diff --git a/apps/comments/l10n/es_CO.js b/apps/comments/l10n/es_CO.js new file mode 100644 index 00000000000..e291a497795 --- /dev/null +++ b/apps/comments/l10n/es_CO.js @@ -0,0 +1,34 @@ +OC.L10N.register( + "comments", + { + "Comments" : "Comentarios", + "Unknown user" : "Usuario desconocido", + "New comment …" : "Comentario nuevo ...", + "Delete comment" : "Borrar comentario", + "Post" : "Publicar", + "Cancel" : "Cancelar", + "Edit comment" : "Editar comentario", + "[Deleted user]" : "[Usuario borrado]", + "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!", + "More comments …" : "Más comentarios ...", + "Save" : "Guardar", + "Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}", + "Error occurred while retrieving comment with id {id}" : "Se presentó un error al recuperar el comentario con Id {id}", + "Error occurred while updating comment with id {id}" : "Se presentó un error al actualizar el comentario con Id {id}", + "Error occurred while posting comment" : "Se presentó un error al publicar el comentario", + "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"], + "Comment" : "Comentario", + "You commented" : "Comentaste", + "%1$s commented" : "%1$s comentó", + "{author} commented" : "{author} comentó", + "You commented on %1$s" : "Usted comentó en %1$s", + "You commented on {file}" : "Hiciste un comentario de {file}", + "%1$s commented on %2$s" : "%1$s comentó en %2$s", + "{author} commented on {file}" : "{author} comentó en {file}", + "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos", + "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", + "A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) borrado te mencionó en un commentario en “{file}”", + "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", + "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/comments/l10n/es_CO.json b/apps/comments/l10n/es_CO.json new file mode 100644 index 00000000000..1a9e2231489 --- /dev/null +++ b/apps/comments/l10n/es_CO.json @@ -0,0 +1,32 @@ +{ "translations": { + "Comments" : "Comentarios", + "Unknown user" : "Usuario desconocido", + "New comment …" : "Comentario nuevo ...", + "Delete comment" : "Borrar comentario", + "Post" : "Publicar", + "Cancel" : "Cancelar", + "Edit comment" : "Editar comentario", + "[Deleted user]" : "[Usuario borrado]", + "No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!", + "More comments …" : "Más comentarios ...", + "Save" : "Guardar", + "Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}", + "Error occurred while retrieving comment with id {id}" : "Se presentó un error al recuperar el comentario con Id {id}", + "Error occurred while updating comment with id {id}" : "Se presentó un error al actualizar el comentario con Id {id}", + "Error occurred while posting comment" : "Se presentó un error al publicar el comentario", + "_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"], + "Comment" : "Comentario", + "You commented" : "Comentaste", + "%1$s commented" : "%1$s comentó", + "{author} commented" : "{author} comentó", + "You commented on %1$s" : "Usted comentó en %1$s", + "You commented on {file}" : "Hiciste un comentario de {file}", + "%1$s commented on %2$s" : "%1$s comentó en %2$s", + "{author} commented on {file}" : "{author} comentó en {file}", + "<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos", + "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", + "A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) borrado te mencionó en un commentario en “{file}”", + "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", + "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/comments/lib/Activity/Provider.php b/apps/comments/lib/Activity/Provider.php index a691d7dd644..41ab8ea8b8e 100644 --- a/apps/comments/lib/Activity/Provider.php +++ b/apps/comments/lib/Activity/Provider.php @@ -174,6 +174,12 @@ class Provider implements IProvider { } // Fix subjects from 12.0.3 and older + // + // Do NOT Remove unless necessary + // Removing this will break parsing of activities that were created on + // Nextcloud 12, so we should keep this as long as it's acceptable. + // Otherwise if people upgrade over multiple releases in a short period, + // they will get the dead entries in their stream. return [ 'actor' => $subjectParameters[0], 'fileId' => (int) $event->getObjectId(), diff --git a/apps/comments/tests/Unit/Controller/NotificationsTest.php b/apps/comments/tests/Unit/Controller/NotificationsTest.php index e887900a615..2c34971f4b7 100644 --- a/apps/comments/tests/Unit/Controller/NotificationsTest.php +++ b/apps/comments/tests/Unit/Controller/NotificationsTest.php @@ -22,7 +22,17 @@ namespace OCA\Comments\Tests\Unit\Controller; use OCA\Comments\Controller\Notifications; +use OCP\Comments\IComment; +use OCP\Comments\ICommentsManager; use OCP\Comments\NotFoundException; +use OCP\Files\Folder; +use OCP\Files\Node; +use OCP\IRequest; +use OCP\IURLGenerator; +use OCP\IUser; +use OCP\IUserSession; +use OCP\Notification\IManager; +use OCP\Notification\INotification; use Test\TestCase; class NotificationsTest extends TestCase { @@ -44,24 +54,24 @@ class NotificationsTest extends TestCase { protected function setUp() { parent::setUp(); - $this->commentsManager = $this->getMockBuilder('\OCP\Comments\ICommentsManager')->getMock(); - $this->folder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); - $this->session = $this->getMockBuilder('\OCP\IUserSession')->getMock(); - $this->notificationManager = $this->getMockBuilder('\OCP\Notification\IManager')->getMock(); + $this->commentsManager = $this->getMockBuilder(ICommentsManager::class)->getMock(); + $this->folder = $this->getMockBuilder(Folder::class)->getMock(); + $this->session = $this->getMockBuilder(IUserSession::class)->getMock(); + $this->notificationManager = $this->getMockBuilder(IManager::class)->getMock(); $this->notificationsController = new Notifications( 'comments', - $this->getMockBuilder('\OCP\IRequest')->getMock(), + $this->getMockBuilder(IRequest::class)->getMock(), $this->commentsManager, $this->folder, - $this->getMockBuilder('\OCP\IURLGenerator')->getMock(), + $this->getMockBuilder(IURLGenerator::class)->getMock(), $this->notificationManager, $this->session ); } public function testViewSuccess() { - $comment = $this->getMockBuilder('\OCP\Comments\IComment')->getMock(); + $comment = $this->getMockBuilder(IComment::class)->getMock(); $comment->expects($this->any()) ->method('getObjectType') ->will($this->returnValue('files')); @@ -71,7 +81,7 @@ class NotificationsTest extends TestCase { ->with('42') ->will($this->returnValue($comment)); - $file = $this->getMockBuilder('\OCP\Files\Node')->getMock(); + $file = $this->getMockBuilder(Node::class)->getMock(); $this->folder->expects($this->once()) ->method('getById') @@ -79,9 +89,9 @@ class NotificationsTest extends TestCase { $this->session->expects($this->once()) ->method('getUser') - ->will($this->returnValue($this->getMockBuilder('\OCP\IUser')->getMock())); + ->will($this->returnValue($this->getMockBuilder(IUser::class)->getMock())); - $notification = $this->getMockBuilder('\OCP\Notification\INotification')->getMock(); + $notification = $this->getMockBuilder(INotification::class)->getMock(); $notification->expects($this->any()) ->method($this->anything()) ->will($this->returnValue($notification)); @@ -119,7 +129,7 @@ class NotificationsTest extends TestCase { } public function testViewNoFile() { - $comment = $this->getMockBuilder('\OCP\Comments\IComment')->getMock(); + $comment = $this->getMockBuilder(IComment::class)->getMock(); $comment->expects($this->any()) ->method('getObjectType') ->will($this->returnValue('files')); @@ -135,9 +145,9 @@ class NotificationsTest extends TestCase { $this->session->expects($this->once()) ->method('getUser') - ->will($this->returnValue($this->getMockBuilder('\OCP\IUser')->getMock())); + ->will($this->returnValue($this->getMockBuilder(IUser::class)->getMock())); - $notification = $this->getMockBuilder('\OCP\Notification\INotification')->getMock(); + $notification = $this->getMockBuilder(INotification::class)->getMock(); $notification->expects($this->any()) ->method($this->anything()) ->will($this->returnValue($notification)); diff --git a/apps/comments/tests/Unit/Notification/ListenerTest.php b/apps/comments/tests/Unit/Notification/ListenerTest.php index ef84d1c60de..cbe2b633429 100644 --- a/apps/comments/tests/Unit/Notification/ListenerTest.php +++ b/apps/comments/tests/Unit/Notification/ListenerTest.php @@ -71,7 +71,7 @@ class ListenerTest extends TestCase { */ public function testEvaluate($eventType, $notificationMethod) { /** @var IComment|\PHPUnit_Framework_MockObject_MockObject $comment */ - $comment = $this->getMockBuilder('\OCP\Comments\IComment')->getMock(); + $comment = $this->getMockBuilder(IComment::class)->getMock(); $comment->expects($this->any()) ->method('getObjectType') ->will($this->returnValue('files')); @@ -90,7 +90,7 @@ class ListenerTest extends TestCase { ]); /** @var CommentsEvent|\PHPUnit_Framework_MockObject_MockObject $event */ - $event = $this->getMockBuilder('\OCP\Comments\CommentsEvent') + $event = $this->getMockBuilder(CommentsEvent::class) ->disableOriginalConstructor() ->getMock(); $event->expects($this->once()) @@ -101,7 +101,7 @@ class ListenerTest extends TestCase { ->will($this->returnValue($eventType)); /** @var INotification|\PHPUnit_Framework_MockObject_MockObject $notification */ - $notification = $this->getMockBuilder('\OCP\Notification\INotification')->getMock(); + $notification = $this->getMockBuilder(INotification::class)->getMock(); $notification->expects($this->any()) ->method($this->anything()) ->will($this->returnValue($notification)); @@ -136,7 +136,7 @@ class ListenerTest extends TestCase { */ public function testEvaluateNoMentions($eventType) { /** @var IComment|\PHPUnit_Framework_MockObject_MockObject $comment */ - $comment = $this->getMockBuilder('\OCP\Comments\IComment')->getMock(); + $comment = $this->getMockBuilder(IComment::class)->getMock(); $comment->expects($this->any()) ->method('getObjectType') ->will($this->returnValue('files')); @@ -148,7 +148,7 @@ class ListenerTest extends TestCase { ->willReturn([]); /** @var CommentsEvent|\PHPUnit_Framework_MockObject_MockObject $event */ - $event = $this->getMockBuilder('\OCP\Comments\CommentsEvent') + $event = $this->getMockBuilder(CommentsEvent::class) ->disableOriginalConstructor() ->getMock(); $event->expects($this->once()) @@ -173,7 +173,7 @@ class ListenerTest extends TestCase { public function testEvaluateUserDoesNotExist() { /** @var IComment|\PHPUnit_Framework_MockObject_MockObject $comment */ - $comment = $this->getMockBuilder('\OCP\Comments\IComment')->getMock(); + $comment = $this->getMockBuilder(IComment::class)->getMock(); $comment->expects($this->any()) ->method('getObjectType') ->will($this->returnValue('files')); @@ -185,7 +185,7 @@ class ListenerTest extends TestCase { ->willReturn([[ 'type' => 'user', 'id' => 'foobar']]); /** @var CommentsEvent|\PHPUnit_Framework_MockObject_MockObject $event */ - $event = $this->getMockBuilder('\OCP\Comments\CommentsEvent') + $event = $this->getMockBuilder(CommentsEvent::class) ->disableOriginalConstructor() ->getMock(); $event->expects($this->once()) @@ -196,7 +196,7 @@ class ListenerTest extends TestCase { ->will($this->returnValue(CommentsEvent::EVENT_ADD)); /** @var INotification|\PHPUnit_Framework_MockObject_MockObject $notification */ - $notification = $this->getMockBuilder('\OCP\Notification\INotification')->getMock(); + $notification = $this->getMockBuilder(INotification::class)->getMock(); $notification->expects($this->any()) ->method($this->anything()) ->will($this->returnValue($notification)); diff --git a/apps/dav/composer/autoload.php b/apps/dav/composer/autoload.php new file mode 100644 index 00000000000..06b2e993e94 --- /dev/null +++ b/apps/dav/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer/autoload_real.php'; + +return ComposerAutoloaderInitDAV::getLoader(); diff --git a/apps/dav/composer/composer.json b/apps/dav/composer/composer.json new file mode 100644 index 00000000000..e783ae8ad15 --- /dev/null +++ b/apps/dav/composer/composer.json @@ -0,0 +1,13 @@ +{ + "config" : { + "vendor-dir": ".", + "optimize-autoloader": true, + "authorative-autoloader": true, + "autoloader-suffix": "DAV" + }, + "autoload" : { + "psr-4": { + "OCA\\DAV\\": "../lib/" + } + } +} diff --git a/apps/dav/composer/composer/ClassLoader.php b/apps/dav/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..2c72175e772 --- /dev/null +++ b/apps/dav/composer/composer/ClassLoader.php @@ -0,0 +1,445 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * 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 array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + foreach ($this->prefixDirsPsr4[$search] as $dir) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/apps/dav/composer/composer/LICENSE b/apps/dav/composer/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/apps/dav/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/dav/composer/composer/autoload_classmap.php b/apps/dav/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..f29e3a7b293 --- /dev/null +++ b/apps/dav/composer/composer/autoload_classmap.php @@ -0,0 +1,145 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\DAV\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php', + 'OCA\\DAV\\AppInfo\\PluginManager' => $baseDir . '/../lib/AppInfo/PluginManager.php', + 'OCA\\DAV\\Avatars\\AvatarHome' => $baseDir . '/../lib/Avatars/AvatarHome.php', + 'OCA\\DAV\\Avatars\\AvatarNode' => $baseDir . '/../lib/Avatars/AvatarNode.php', + 'OCA\\DAV\\Avatars\\RootCollection' => $baseDir . '/../lib/Avatars/RootCollection.php', + 'OCA\\DAV\\CalDAV\\Activity\\Backend' => $baseDir . '/../lib/CalDAV/Activity/Backend.php', + 'OCA\\DAV\\CalDAV\\Activity\\Filter\\Calendar' => $baseDir . '/../lib/CalDAV/Activity/Filter/Calendar.php', + 'OCA\\DAV\\CalDAV\\Activity\\Filter\\Todo' => $baseDir . '/../lib/CalDAV/Activity/Filter/Todo.php', + 'OCA\\DAV\\CalDAV\\Activity\\Provider\\Base' => $baseDir . '/../lib/CalDAV/Activity/Provider/Base.php', + 'OCA\\DAV\\CalDAV\\Activity\\Provider\\Calendar' => $baseDir . '/../lib/CalDAV/Activity/Provider/Calendar.php', + 'OCA\\DAV\\CalDAV\\Activity\\Provider\\Event' => $baseDir . '/../lib/CalDAV/Activity/Provider/Event.php', + 'OCA\\DAV\\CalDAV\\Activity\\Provider\\Todo' => $baseDir . '/../lib/CalDAV/Activity/Provider/Todo.php', + 'OCA\\DAV\\CalDAV\\Activity\\Setting\\Calendar' => $baseDir . '/../lib/CalDAV/Activity/Setting/Calendar.php', + 'OCA\\DAV\\CalDAV\\Activity\\Setting\\Event' => $baseDir . '/../lib/CalDAV/Activity/Setting/Event.php', + 'OCA\\DAV\\CalDAV\\Activity\\Setting\\Todo' => $baseDir . '/../lib/CalDAV/Activity/Setting/Todo.php', + 'OCA\\DAV\\CalDAV\\BirthdayService' => $baseDir . '/../lib/CalDAV/BirthdayService.php', + 'OCA\\DAV\\CalDAV\\CalDavBackend' => $baseDir . '/../lib/CalDAV/CalDavBackend.php', + 'OCA\\DAV\\CalDAV\\Calendar' => $baseDir . '/../lib/CalDAV/Calendar.php', + 'OCA\\DAV\\CalDAV\\CalendarHome' => $baseDir . '/../lib/CalDAV/CalendarHome.php', + 'OCA\\DAV\\CalDAV\\CalendarObject' => $baseDir . '/../lib/CalDAV/CalendarObject.php', + 'OCA\\DAV\\CalDAV\\CalendarRoot' => $baseDir . '/../lib/CalDAV/CalendarRoot.php', + 'OCA\\DAV\\CalDAV\\Plugin' => $baseDir . '/../lib/CalDAV/Plugin.php', + 'OCA\\DAV\\CalDAV\\PublicCalendar' => $baseDir . '/../lib/CalDAV/PublicCalendar.php', + 'OCA\\DAV\\CalDAV\\PublicCalendarObject' => $baseDir . '/../lib/CalDAV/PublicCalendarObject.php', + 'OCA\\DAV\\CalDAV\\PublicCalendarRoot' => $baseDir . '/../lib/CalDAV/PublicCalendarRoot.php', + 'OCA\\DAV\\CalDAV\\Publishing\\PublishPlugin' => $baseDir . '/../lib/CalDAV/Publishing/PublishPlugin.php', + 'OCA\\DAV\\CalDAV\\Publishing\\Xml\\Publisher' => $baseDir . '/../lib/CalDAV/Publishing/Xml/Publisher.php', + 'OCA\\DAV\\CalDAV\\Schedule\\IMipPlugin' => $baseDir . '/../lib/CalDAV/Schedule/IMipPlugin.php', + 'OCA\\DAV\\CalDAV\\Schedule\\Plugin' => $baseDir . '/../lib/CalDAV/Schedule/Plugin.php', + 'OCA\\DAV\\CalDAV\\Search\\SearchPlugin' => $baseDir . '/../lib/CalDAV/Search/SearchPlugin.php', + 'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\CompFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/CompFilter.php', + 'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\LimitFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/LimitFilter.php', + 'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\OffsetFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/OffsetFilter.php', + 'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\ParamFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/ParamFilter.php', + 'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\PropFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/PropFilter.php', + 'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\SearchTermFilter' => $baseDir . '/../lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php', + 'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport' => $baseDir . '/../lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php', + 'OCA\\DAV\\Capabilities' => $baseDir . '/../lib/Capabilities.php', + 'OCA\\DAV\\CardDAV\\AddressBook' => $baseDir . '/../lib/CardDAV/AddressBook.php', + 'OCA\\DAV\\CardDAV\\AddressBookImpl' => $baseDir . '/../lib/CardDAV/AddressBookImpl.php', + 'OCA\\DAV\\CardDAV\\AddressBookRoot' => $baseDir . '/../lib/CardDAV/AddressBookRoot.php', + 'OCA\\DAV\\CardDAV\\CardDavBackend' => $baseDir . '/../lib/CardDAV/CardDavBackend.php', + 'OCA\\DAV\\CardDAV\\ContactsManager' => $baseDir . '/../lib/CardDAV/ContactsManager.php', + 'OCA\\DAV\\CardDAV\\Converter' => $baseDir . '/../lib/CardDAV/Converter.php', + 'OCA\\DAV\\CardDAV\\ImageExportPlugin' => $baseDir . '/../lib/CardDAV/ImageExportPlugin.php', + 'OCA\\DAV\\CardDAV\\PhotoCache' => $baseDir . '/../lib/CardDAV/PhotoCache.php', + 'OCA\\DAV\\CardDAV\\Plugin' => $baseDir . '/../lib/CardDAV/Plugin.php', + 'OCA\\DAV\\CardDAV\\SyncJob' => $baseDir . '/../lib/CardDAV/SyncJob.php', + 'OCA\\DAV\\CardDAV\\SyncService' => $baseDir . '/../lib/CardDAV/SyncService.php', + 'OCA\\DAV\\CardDAV\\UserAddressBooks' => $baseDir . '/../lib/CardDAV/UserAddressBooks.php', + 'OCA\\DAV\\CardDAV\\Xml\\Groups' => $baseDir . '/../lib/CardDAV/Xml/Groups.php', + 'OCA\\DAV\\Command\\CreateAddressBook' => $baseDir . '/../lib/Command/CreateAddressBook.php', + 'OCA\\DAV\\Command\\CreateCalendar' => $baseDir . '/../lib/Command/CreateCalendar.php', + 'OCA\\DAV\\Command\\SyncBirthdayCalendar' => $baseDir . '/../lib/Command/SyncBirthdayCalendar.php', + 'OCA\\DAV\\Command\\SyncSystemAddressBook' => $baseDir . '/../lib/Command/SyncSystemAddressBook.php', + 'OCA\\DAV\\Comments\\CommentNode' => $baseDir . '/../lib/Comments/CommentNode.php', + 'OCA\\DAV\\Comments\\CommentsPlugin' => $baseDir . '/../lib/Comments/CommentsPlugin.php', + 'OCA\\DAV\\Comments\\EntityCollection' => $baseDir . '/../lib/Comments/EntityCollection.php', + 'OCA\\DAV\\Comments\\EntityTypeCollection' => $baseDir . '/../lib/Comments/EntityTypeCollection.php', + 'OCA\\DAV\\Comments\\RootCollection' => $baseDir . '/../lib/Comments/RootCollection.php', + 'OCA\\DAV\\Connector\\LegacyDAVACL' => $baseDir . '/../lib/Connector/LegacyDAVACL.php', + 'OCA\\DAV\\Connector\\PublicAuth' => $baseDir . '/../lib/Connector/PublicAuth.php', + 'OCA\\DAV\\Connector\\Sabre\\AppEnabledPlugin' => $baseDir . '/../lib/Connector/Sabre/AppEnabledPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\Auth' => $baseDir . '/../lib/Connector/Sabre/Auth.php', + 'OCA\\DAV\\Connector\\Sabre\\BearerAuth' => $baseDir . '/../lib/Connector/Sabre/BearerAuth.php', + 'OCA\\DAV\\Connector\\Sabre\\BlockLegacyClientPlugin' => $baseDir . '/../lib/Connector/Sabre/BlockLegacyClientPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\CachingTree' => $baseDir . '/../lib/Connector/Sabre/CachingTree.php', + 'OCA\\DAV\\Connector\\Sabre\\ChecksumList' => $baseDir . '/../lib/Connector/Sabre/ChecksumList.php', + 'OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin' => $baseDir . '/../lib/Connector/Sabre/CommentPropertiesPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\CopyEtagHeaderPlugin' => $baseDir . '/../lib/Connector/Sabre/CopyEtagHeaderPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\CustomPropertiesBackend' => $baseDir . '/../lib/Connector/Sabre/CustomPropertiesBackend.php', + 'OCA\\DAV\\Connector\\Sabre\\DavAclPlugin' => $baseDir . '/../lib/Connector/Sabre/DavAclPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\Directory' => $baseDir . '/../lib/Connector/Sabre/Directory.php', + 'OCA\\DAV\\Connector\\Sabre\\DummyGetResponsePlugin' => $baseDir . '/../lib/Connector/Sabre/DummyGetResponsePlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\ExceptionLoggerPlugin' => $baseDir . '/../lib/Connector/Sabre/ExceptionLoggerPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\Exception\\EntityTooLarge' => $baseDir . '/../lib/Connector/Sabre/Exception/EntityTooLarge.php', + 'OCA\\DAV\\Connector\\Sabre\\Exception\\FileLocked' => $baseDir . '/../lib/Connector/Sabre/Exception/FileLocked.php', + 'OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden' => $baseDir . '/../lib/Connector/Sabre/Exception/Forbidden.php', + 'OCA\\DAV\\Connector\\Sabre\\Exception\\InvalidPath' => $baseDir . '/../lib/Connector/Sabre/Exception/InvalidPath.php', + 'OCA\\DAV\\Connector\\Sabre\\Exception\\PasswordLoginForbidden' => $baseDir . '/../lib/Connector/Sabre/Exception/PasswordLoginForbidden.php', + 'OCA\\DAV\\Connector\\Sabre\\Exception\\UnsupportedMediaType' => $baseDir . '/../lib/Connector/Sabre/Exception/UnsupportedMediaType.php', + 'OCA\\DAV\\Connector\\Sabre\\FakeLockerPlugin' => $baseDir . '/../lib/Connector/Sabre/FakeLockerPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\File' => $baseDir . '/../lib/Connector/Sabre/File.php', + 'OCA\\DAV\\Connector\\Sabre\\FilesPlugin' => $baseDir . '/../lib/Connector/Sabre/FilesPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\FilesReportPlugin' => $baseDir . '/../lib/Connector/Sabre/FilesReportPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\LockPlugin' => $baseDir . '/../lib/Connector/Sabre/LockPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\MaintenancePlugin' => $baseDir . '/../lib/Connector/Sabre/MaintenancePlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\Node' => $baseDir . '/../lib/Connector/Sabre/Node.php', + 'OCA\\DAV\\Connector\\Sabre\\ObjectTree' => $baseDir . '/../lib/Connector/Sabre/ObjectTree.php', + 'OCA\\DAV\\Connector\\Sabre\\Principal' => $baseDir . '/../lib/Connector/Sabre/Principal.php', + 'OCA\\DAV\\Connector\\Sabre\\QuotaPlugin' => $baseDir . '/../lib/Connector/Sabre/QuotaPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\Server' => $baseDir . '/../lib/Connector/Sabre/Server.php', + 'OCA\\DAV\\Connector\\Sabre\\ServerFactory' => $baseDir . '/../lib/Connector/Sabre/ServerFactory.php', + 'OCA\\DAV\\Connector\\Sabre\\ShareTypeList' => $baseDir . '/../lib/Connector/Sabre/ShareTypeList.php', + 'OCA\\DAV\\Connector\\Sabre\\SharesPlugin' => $baseDir . '/../lib/Connector/Sabre/SharesPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\TagList' => $baseDir . '/../lib/Connector/Sabre/TagList.php', + 'OCA\\DAV\\Connector\\Sabre\\TagsPlugin' => $baseDir . '/../lib/Connector/Sabre/TagsPlugin.php', + 'OCA\\DAV\\DAV\\CustomPropertiesBackend' => $baseDir . '/../lib/DAV/CustomPropertiesBackend.php', + 'OCA\\DAV\\DAV\\GroupPrincipalBackend' => $baseDir . '/../lib/DAV/GroupPrincipalBackend.php', + 'OCA\\DAV\\DAV\\PublicAuth' => $baseDir . '/../lib/DAV/PublicAuth.php', + 'OCA\\DAV\\DAV\\Sharing\\Backend' => $baseDir . '/../lib/DAV/Sharing/Backend.php', + 'OCA\\DAV\\DAV\\Sharing\\IShareable' => $baseDir . '/../lib/DAV/Sharing/IShareable.php', + 'OCA\\DAV\\DAV\\Sharing\\Plugin' => $baseDir . '/../lib/DAV/Sharing/Plugin.php', + 'OCA\\DAV\\DAV\\Sharing\\Xml\\Invite' => $baseDir . '/../lib/DAV/Sharing/Xml/Invite.php', + 'OCA\\DAV\\DAV\\Sharing\\Xml\\ShareRequest' => $baseDir . '/../lib/DAV/Sharing/Xml/ShareRequest.php', + 'OCA\\DAV\\DAV\\SystemPrincipalBackend' => $baseDir . '/../lib/DAV/SystemPrincipalBackend.php', + 'OCA\\DAV\\Files\\BrowserErrorPagePlugin' => $baseDir . '/../lib/Files/BrowserErrorPagePlugin.php', + 'OCA\\DAV\\Files\\FileSearchBackend' => $baseDir . '/../lib/Files/FileSearchBackend.php', + 'OCA\\DAV\\Files\\FilesHome' => $baseDir . '/../lib/Files/FilesHome.php', + 'OCA\\DAV\\Files\\RootCollection' => $baseDir . '/../lib/Files/RootCollection.php', + 'OCA\\DAV\\Files\\Sharing\\FilesDropPlugin' => $baseDir . '/../lib/Files/Sharing/FilesDropPlugin.php', + 'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => $baseDir . '/../lib/Files/Sharing/PublicLinkCheckPlugin.php', + 'OCA\\DAV\\HookManager' => $baseDir . '/../lib/HookManager.php', + 'OCA\\DAV\\Migration\\BuildCalendarSearchIndex' => $baseDir . '/../lib/Migration/BuildCalendarSearchIndex.php', + 'OCA\\DAV\\Migration\\BuildCalendarSearchIndexBackgroundJob' => $baseDir . '/../lib/Migration/BuildCalendarSearchIndexBackgroundJob.php', + 'OCA\\DAV\\Migration\\CalDAVRemoveEmptyValue' => $baseDir . '/../lib/Migration/CalDAVRemoveEmptyValue.php', + 'OCA\\DAV\\Migration\\FixBirthdayCalendarComponent' => $baseDir . '/../lib/Migration/FixBirthdayCalendarComponent.php', + 'OCA\\DAV\\Migration\\Version1004Date20170825134824' => $baseDir . '/../lib/Migration/Version1004Date20170825134824.php', + 'OCA\\DAV\\Migration\\Version1004Date20170919104507' => $baseDir . '/../lib/Migration/Version1004Date20170919104507.php', + 'OCA\\DAV\\Migration\\Version1004Date20170924124212' => $baseDir . '/../lib/Migration/Version1004Date20170924124212.php', + 'OCA\\DAV\\Migration\\Version1004Date20170926103422' => $baseDir . '/../lib/Migration/Version1004Date20170926103422.php', + 'OCA\\DAV\\RootCollection' => $baseDir . '/../lib/RootCollection.php', + 'OCA\\DAV\\Server' => $baseDir . '/../lib/Server.php', + 'OCA\\DAV\\Settings\\CalDAVSettings' => $baseDir . '/../lib/Settings/CalDAVSettings.php', + 'OCA\\DAV\\SystemTag\\SystemTagMappingNode' => $baseDir . '/../lib/SystemTag/SystemTagMappingNode.php', + 'OCA\\DAV\\SystemTag\\SystemTagNode' => $baseDir . '/../lib/SystemTag/SystemTagNode.php', + 'OCA\\DAV\\SystemTag\\SystemTagPlugin' => $baseDir . '/../lib/SystemTag/SystemTagPlugin.php', + 'OCA\\DAV\\SystemTag\\SystemTagsByIdCollection' => $baseDir . '/../lib/SystemTag/SystemTagsByIdCollection.php', + 'OCA\\DAV\\SystemTag\\SystemTagsObjectMappingCollection' => $baseDir . '/../lib/SystemTag/SystemTagsObjectMappingCollection.php', + 'OCA\\DAV\\SystemTag\\SystemTagsObjectTypeCollection' => $baseDir . '/../lib/SystemTag/SystemTagsObjectTypeCollection.php', + 'OCA\\DAV\\SystemTag\\SystemTagsRelationsCollection' => $baseDir . '/../lib/SystemTag/SystemTagsRelationsCollection.php', + 'OCA\\DAV\\Upload\\AssemblyStream' => $baseDir . '/../lib/Upload/AssemblyStream.php', + 'OCA\\DAV\\Upload\\FutureFile' => $baseDir . '/../lib/Upload/FutureFile.php', + 'OCA\\DAV\\Upload\\RootCollection' => $baseDir . '/../lib/Upload/RootCollection.php', + 'OCA\\DAV\\Upload\\UploadFolder' => $baseDir . '/../lib/Upload/UploadFolder.php', + 'OCA\\DAV\\Upload\\UploadHome' => $baseDir . '/../lib/Upload/UploadHome.php', +); diff --git a/apps/dav/composer/composer/autoload_namespaces.php b/apps/dav/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..71c9e91858d --- /dev/null +++ b/apps/dav/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( +); diff --git a/apps/dav/composer/composer/autoload_psr4.php b/apps/dav/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..b37c184d6ef --- /dev/null +++ b/apps/dav/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\DAV\\' => array($baseDir . '/../lib'), +); diff --git a/apps/dav/composer/composer/autoload_real.php b/apps/dav/composer/composer/autoload_real.php new file mode 100644 index 00000000000..cd699e0b4fd --- /dev/null +++ b/apps/dav/composer/composer/autoload_real.php @@ -0,0 +1,52 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInitDAV +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInitDAV', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInitDAV', 'loadClassLoader')); + + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitDAV::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/apps/dav/composer/composer/autoload_static.php b/apps/dav/composer/composer/autoload_static.php new file mode 100644 index 00000000000..412666a8aa7 --- /dev/null +++ b/apps/dav/composer/composer/autoload_static.php @@ -0,0 +1,171 @@ +<?php + +// autoload_static.php @generated by Composer + +namespace Composer\Autoload; + +class ComposerStaticInitDAV +{ + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'OCA\\DAV\\' => 8, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\DAV\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'OCA\\DAV\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php', + 'OCA\\DAV\\AppInfo\\PluginManager' => __DIR__ . '/..' . '/../lib/AppInfo/PluginManager.php', + 'OCA\\DAV\\Avatars\\AvatarHome' => __DIR__ . '/..' . '/../lib/Avatars/AvatarHome.php', + 'OCA\\DAV\\Avatars\\AvatarNode' => __DIR__ . '/..' . '/../lib/Avatars/AvatarNode.php', + 'OCA\\DAV\\Avatars\\RootCollection' => __DIR__ . '/..' . '/../lib/Avatars/RootCollection.php', + 'OCA\\DAV\\CalDAV\\Activity\\Backend' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Backend.php', + 'OCA\\DAV\\CalDAV\\Activity\\Filter\\Calendar' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Filter/Calendar.php', + 'OCA\\DAV\\CalDAV\\Activity\\Filter\\Todo' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Filter/Todo.php', + 'OCA\\DAV\\CalDAV\\Activity\\Provider\\Base' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Provider/Base.php', + 'OCA\\DAV\\CalDAV\\Activity\\Provider\\Calendar' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Provider/Calendar.php', + 'OCA\\DAV\\CalDAV\\Activity\\Provider\\Event' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Provider/Event.php', + 'OCA\\DAV\\CalDAV\\Activity\\Provider\\Todo' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Provider/Todo.php', + 'OCA\\DAV\\CalDAV\\Activity\\Setting\\Calendar' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Setting/Calendar.php', + 'OCA\\DAV\\CalDAV\\Activity\\Setting\\Event' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Setting/Event.php', + 'OCA\\DAV\\CalDAV\\Activity\\Setting\\Todo' => __DIR__ . '/..' . '/../lib/CalDAV/Activity/Setting/Todo.php', + 'OCA\\DAV\\CalDAV\\BirthdayService' => __DIR__ . '/..' . '/../lib/CalDAV/BirthdayService.php', + 'OCA\\DAV\\CalDAV\\CalDavBackend' => __DIR__ . '/..' . '/../lib/CalDAV/CalDavBackend.php', + 'OCA\\DAV\\CalDAV\\Calendar' => __DIR__ . '/..' . '/../lib/CalDAV/Calendar.php', + 'OCA\\DAV\\CalDAV\\CalendarHome' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarHome.php', + 'OCA\\DAV\\CalDAV\\CalendarObject' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarObject.php', + 'OCA\\DAV\\CalDAV\\CalendarRoot' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarRoot.php', + 'OCA\\DAV\\CalDAV\\Plugin' => __DIR__ . '/..' . '/../lib/CalDAV/Plugin.php', + 'OCA\\DAV\\CalDAV\\PublicCalendar' => __DIR__ . '/..' . '/../lib/CalDAV/PublicCalendar.php', + 'OCA\\DAV\\CalDAV\\PublicCalendarObject' => __DIR__ . '/..' . '/../lib/CalDAV/PublicCalendarObject.php', + 'OCA\\DAV\\CalDAV\\PublicCalendarRoot' => __DIR__ . '/..' . '/../lib/CalDAV/PublicCalendarRoot.php', + 'OCA\\DAV\\CalDAV\\Publishing\\PublishPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/Publishing/PublishPlugin.php', + 'OCA\\DAV\\CalDAV\\Publishing\\Xml\\Publisher' => __DIR__ . '/..' . '/../lib/CalDAV/Publishing/Xml/Publisher.php', + 'OCA\\DAV\\CalDAV\\Schedule\\IMipPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/Schedule/IMipPlugin.php', + 'OCA\\DAV\\CalDAV\\Schedule\\Plugin' => __DIR__ . '/..' . '/../lib/CalDAV/Schedule/Plugin.php', + 'OCA\\DAV\\CalDAV\\Search\\SearchPlugin' => __DIR__ . '/..' . '/../lib/CalDAV/Search/SearchPlugin.php', + 'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\CompFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/CompFilter.php', + 'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\LimitFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/LimitFilter.php', + 'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\OffsetFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/OffsetFilter.php', + 'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\ParamFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/ParamFilter.php', + 'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\PropFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/PropFilter.php', + 'OCA\\DAV\\CalDAV\\Search\\Xml\\Filter\\SearchTermFilter' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php', + 'OCA\\DAV\\CalDAV\\Search\\Xml\\Request\\CalendarSearchReport' => __DIR__ . '/..' . '/../lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php', + 'OCA\\DAV\\Capabilities' => __DIR__ . '/..' . '/../lib/Capabilities.php', + 'OCA\\DAV\\CardDAV\\AddressBook' => __DIR__ . '/..' . '/../lib/CardDAV/AddressBook.php', + 'OCA\\DAV\\CardDAV\\AddressBookImpl' => __DIR__ . '/..' . '/../lib/CardDAV/AddressBookImpl.php', + 'OCA\\DAV\\CardDAV\\AddressBookRoot' => __DIR__ . '/..' . '/../lib/CardDAV/AddressBookRoot.php', + 'OCA\\DAV\\CardDAV\\CardDavBackend' => __DIR__ . '/..' . '/../lib/CardDAV/CardDavBackend.php', + 'OCA\\DAV\\CardDAV\\ContactsManager' => __DIR__ . '/..' . '/../lib/CardDAV/ContactsManager.php', + 'OCA\\DAV\\CardDAV\\Converter' => __DIR__ . '/..' . '/../lib/CardDAV/Converter.php', + 'OCA\\DAV\\CardDAV\\ImageExportPlugin' => __DIR__ . '/..' . '/../lib/CardDAV/ImageExportPlugin.php', + 'OCA\\DAV\\CardDAV\\PhotoCache' => __DIR__ . '/..' . '/../lib/CardDAV/PhotoCache.php', + 'OCA\\DAV\\CardDAV\\Plugin' => __DIR__ . '/..' . '/../lib/CardDAV/Plugin.php', + 'OCA\\DAV\\CardDAV\\SyncJob' => __DIR__ . '/..' . '/../lib/CardDAV/SyncJob.php', + 'OCA\\DAV\\CardDAV\\SyncService' => __DIR__ . '/..' . '/../lib/CardDAV/SyncService.php', + 'OCA\\DAV\\CardDAV\\UserAddressBooks' => __DIR__ . '/..' . '/../lib/CardDAV/UserAddressBooks.php', + 'OCA\\DAV\\CardDAV\\Xml\\Groups' => __DIR__ . '/..' . '/../lib/CardDAV/Xml/Groups.php', + 'OCA\\DAV\\Command\\CreateAddressBook' => __DIR__ . '/..' . '/../lib/Command/CreateAddressBook.php', + 'OCA\\DAV\\Command\\CreateCalendar' => __DIR__ . '/..' . '/../lib/Command/CreateCalendar.php', + 'OCA\\DAV\\Command\\SyncBirthdayCalendar' => __DIR__ . '/..' . '/../lib/Command/SyncBirthdayCalendar.php', + 'OCA\\DAV\\Command\\SyncSystemAddressBook' => __DIR__ . '/..' . '/../lib/Command/SyncSystemAddressBook.php', + 'OCA\\DAV\\Comments\\CommentNode' => __DIR__ . '/..' . '/../lib/Comments/CommentNode.php', + 'OCA\\DAV\\Comments\\CommentsPlugin' => __DIR__ . '/..' . '/../lib/Comments/CommentsPlugin.php', + 'OCA\\DAV\\Comments\\EntityCollection' => __DIR__ . '/..' . '/../lib/Comments/EntityCollection.php', + 'OCA\\DAV\\Comments\\EntityTypeCollection' => __DIR__ . '/..' . '/../lib/Comments/EntityTypeCollection.php', + 'OCA\\DAV\\Comments\\RootCollection' => __DIR__ . '/..' . '/../lib/Comments/RootCollection.php', + 'OCA\\DAV\\Connector\\LegacyDAVACL' => __DIR__ . '/..' . '/../lib/Connector/LegacyDAVACL.php', + 'OCA\\DAV\\Connector\\PublicAuth' => __DIR__ . '/..' . '/../lib/Connector/PublicAuth.php', + 'OCA\\DAV\\Connector\\Sabre\\AppEnabledPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/AppEnabledPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\Auth' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Auth.php', + 'OCA\\DAV\\Connector\\Sabre\\BearerAuth' => __DIR__ . '/..' . '/../lib/Connector/Sabre/BearerAuth.php', + 'OCA\\DAV\\Connector\\Sabre\\BlockLegacyClientPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/BlockLegacyClientPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\CachingTree' => __DIR__ . '/..' . '/../lib/Connector/Sabre/CachingTree.php', + 'OCA\\DAV\\Connector\\Sabre\\ChecksumList' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ChecksumList.php', + 'OCA\\DAV\\Connector\\Sabre\\CommentPropertiesPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/CommentPropertiesPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\CopyEtagHeaderPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/CopyEtagHeaderPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\CustomPropertiesBackend' => __DIR__ . '/..' . '/../lib/Connector/Sabre/CustomPropertiesBackend.php', + 'OCA\\DAV\\Connector\\Sabre\\DavAclPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/DavAclPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\Directory' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Directory.php', + 'OCA\\DAV\\Connector\\Sabre\\DummyGetResponsePlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/DummyGetResponsePlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\ExceptionLoggerPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ExceptionLoggerPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\Exception\\EntityTooLarge' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/EntityTooLarge.php', + 'OCA\\DAV\\Connector\\Sabre\\Exception\\FileLocked' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/FileLocked.php', + 'OCA\\DAV\\Connector\\Sabre\\Exception\\Forbidden' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/Forbidden.php', + 'OCA\\DAV\\Connector\\Sabre\\Exception\\InvalidPath' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/InvalidPath.php', + 'OCA\\DAV\\Connector\\Sabre\\Exception\\PasswordLoginForbidden' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/PasswordLoginForbidden.php', + 'OCA\\DAV\\Connector\\Sabre\\Exception\\UnsupportedMediaType' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Exception/UnsupportedMediaType.php', + 'OCA\\DAV\\Connector\\Sabre\\FakeLockerPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/FakeLockerPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\File' => __DIR__ . '/..' . '/../lib/Connector/Sabre/File.php', + 'OCA\\DAV\\Connector\\Sabre\\FilesPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/FilesPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\FilesReportPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/FilesReportPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\LockPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/LockPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\MaintenancePlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/MaintenancePlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\Node' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Node.php', + 'OCA\\DAV\\Connector\\Sabre\\ObjectTree' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ObjectTree.php', + 'OCA\\DAV\\Connector\\Sabre\\Principal' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Principal.php', + 'OCA\\DAV\\Connector\\Sabre\\QuotaPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/QuotaPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\Server' => __DIR__ . '/..' . '/../lib/Connector/Sabre/Server.php', + 'OCA\\DAV\\Connector\\Sabre\\ServerFactory' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ServerFactory.php', + 'OCA\\DAV\\Connector\\Sabre\\ShareTypeList' => __DIR__ . '/..' . '/../lib/Connector/Sabre/ShareTypeList.php', + 'OCA\\DAV\\Connector\\Sabre\\SharesPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/SharesPlugin.php', + 'OCA\\DAV\\Connector\\Sabre\\TagList' => __DIR__ . '/..' . '/../lib/Connector/Sabre/TagList.php', + 'OCA\\DAV\\Connector\\Sabre\\TagsPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/TagsPlugin.php', + 'OCA\\DAV\\DAV\\CustomPropertiesBackend' => __DIR__ . '/..' . '/../lib/DAV/CustomPropertiesBackend.php', + 'OCA\\DAV\\DAV\\GroupPrincipalBackend' => __DIR__ . '/..' . '/../lib/DAV/GroupPrincipalBackend.php', + 'OCA\\DAV\\DAV\\PublicAuth' => __DIR__ . '/..' . '/../lib/DAV/PublicAuth.php', + 'OCA\\DAV\\DAV\\Sharing\\Backend' => __DIR__ . '/..' . '/../lib/DAV/Sharing/Backend.php', + 'OCA\\DAV\\DAV\\Sharing\\IShareable' => __DIR__ . '/..' . '/../lib/DAV/Sharing/IShareable.php', + 'OCA\\DAV\\DAV\\Sharing\\Plugin' => __DIR__ . '/..' . '/../lib/DAV/Sharing/Plugin.php', + 'OCA\\DAV\\DAV\\Sharing\\Xml\\Invite' => __DIR__ . '/..' . '/../lib/DAV/Sharing/Xml/Invite.php', + 'OCA\\DAV\\DAV\\Sharing\\Xml\\ShareRequest' => __DIR__ . '/..' . '/../lib/DAV/Sharing/Xml/ShareRequest.php', + 'OCA\\DAV\\DAV\\SystemPrincipalBackend' => __DIR__ . '/..' . '/../lib/DAV/SystemPrincipalBackend.php', + 'OCA\\DAV\\Files\\BrowserErrorPagePlugin' => __DIR__ . '/..' . '/../lib/Files/BrowserErrorPagePlugin.php', + 'OCA\\DAV\\Files\\FileSearchBackend' => __DIR__ . '/..' . '/../lib/Files/FileSearchBackend.php', + 'OCA\\DAV\\Files\\FilesHome' => __DIR__ . '/..' . '/../lib/Files/FilesHome.php', + 'OCA\\DAV\\Files\\RootCollection' => __DIR__ . '/..' . '/../lib/Files/RootCollection.php', + 'OCA\\DAV\\Files\\Sharing\\FilesDropPlugin' => __DIR__ . '/..' . '/../lib/Files/Sharing/FilesDropPlugin.php', + 'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => __DIR__ . '/..' . '/../lib/Files/Sharing/PublicLinkCheckPlugin.php', + 'OCA\\DAV\\HookManager' => __DIR__ . '/..' . '/../lib/HookManager.php', + 'OCA\\DAV\\Migration\\BuildCalendarSearchIndex' => __DIR__ . '/..' . '/../lib/Migration/BuildCalendarSearchIndex.php', + 'OCA\\DAV\\Migration\\BuildCalendarSearchIndexBackgroundJob' => __DIR__ . '/..' . '/../lib/Migration/BuildCalendarSearchIndexBackgroundJob.php', + 'OCA\\DAV\\Migration\\CalDAVRemoveEmptyValue' => __DIR__ . '/..' . '/../lib/Migration/CalDAVRemoveEmptyValue.php', + 'OCA\\DAV\\Migration\\FixBirthdayCalendarComponent' => __DIR__ . '/..' . '/../lib/Migration/FixBirthdayCalendarComponent.php', + 'OCA\\DAV\\Migration\\Version1004Date20170825134824' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170825134824.php', + 'OCA\\DAV\\Migration\\Version1004Date20170919104507' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170919104507.php', + 'OCA\\DAV\\Migration\\Version1004Date20170924124212' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170924124212.php', + 'OCA\\DAV\\Migration\\Version1004Date20170926103422' => __DIR__ . '/..' . '/../lib/Migration/Version1004Date20170926103422.php', + 'OCA\\DAV\\RootCollection' => __DIR__ . '/..' . '/../lib/RootCollection.php', + 'OCA\\DAV\\Server' => __DIR__ . '/..' . '/../lib/Server.php', + 'OCA\\DAV\\Settings\\CalDAVSettings' => __DIR__ . '/..' . '/../lib/Settings/CalDAVSettings.php', + 'OCA\\DAV\\SystemTag\\SystemTagMappingNode' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagMappingNode.php', + 'OCA\\DAV\\SystemTag\\SystemTagNode' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagNode.php', + 'OCA\\DAV\\SystemTag\\SystemTagPlugin' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagPlugin.php', + 'OCA\\DAV\\SystemTag\\SystemTagsByIdCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsByIdCollection.php', + 'OCA\\DAV\\SystemTag\\SystemTagsObjectMappingCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsObjectMappingCollection.php', + 'OCA\\DAV\\SystemTag\\SystemTagsObjectTypeCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsObjectTypeCollection.php', + 'OCA\\DAV\\SystemTag\\SystemTagsRelationsCollection' => __DIR__ . '/..' . '/../lib/SystemTag/SystemTagsRelationsCollection.php', + 'OCA\\DAV\\Upload\\AssemblyStream' => __DIR__ . '/..' . '/../lib/Upload/AssemblyStream.php', + 'OCA\\DAV\\Upload\\FutureFile' => __DIR__ . '/..' . '/../lib/Upload/FutureFile.php', + 'OCA\\DAV\\Upload\\RootCollection' => __DIR__ . '/..' . '/../lib/Upload/RootCollection.php', + 'OCA\\DAV\\Upload\\UploadFolder' => __DIR__ . '/..' . '/../lib/Upload/UploadFolder.php', + 'OCA\\DAV\\Upload\\UploadHome' => __DIR__ . '/..' . '/../lib/Upload/UploadHome.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitDAV::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitDAV::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitDAV::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/dav/l10n/bg.js b/apps/dav/l10n/bg.js index 3f55af78124..85bbca23def 100644 --- a/apps/dav/l10n/bg.js +++ b/apps/dav/l10n/bg.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Календар", "Todos" : "Задачи", + "Personal" : "Личен", "{actor} created calendar {calendar}" : "{actor} направи календар {calendar}", "You created calendar {calendar}" : "Направихте календар {calendar}", "{actor} deleted calendar {calendar}" : "{actor} изтри календар {calendar}", @@ -40,7 +41,6 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Календарно <strong>събитие</strong> беше променено", "A calendar <strong>todo</strong> was modified" : "Календарна <strong>задача</strong> беше променена", "Contact birthdays" : "Рождени дни на контакти", - "Personal" : "Личен", "Contacts" : "Контакти", "Technical details" : "Технически детайли", "Remote Address: %s" : "Отдалечен адрес: %s", diff --git a/apps/dav/l10n/bg.json b/apps/dav/l10n/bg.json index 03238418d18..cac7c6af183 100644 --- a/apps/dav/l10n/bg.json +++ b/apps/dav/l10n/bg.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Календар", "Todos" : "Задачи", + "Personal" : "Личен", "{actor} created calendar {calendar}" : "{actor} направи календар {calendar}", "You created calendar {calendar}" : "Направихте календар {calendar}", "{actor} deleted calendar {calendar}" : "{actor} изтри календар {calendar}", @@ -38,7 +39,6 @@ "A calendar <strong>event</strong> was modified" : "Календарно <strong>събитие</strong> беше променено", "A calendar <strong>todo</strong> was modified" : "Календарна <strong>задача</strong> беше променена", "Contact birthdays" : "Рождени дни на контакти", - "Personal" : "Личен", "Contacts" : "Контакти", "Technical details" : "Технически детайли", "Remote Address: %s" : "Отдалечен адрес: %s", diff --git a/apps/dav/l10n/ca.js b/apps/dav/l10n/ca.js index 1b176c5d506..d59b3d88fdd 100644 --- a/apps/dav/l10n/ca.js +++ b/apps/dav/l10n/ca.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Calendari", "Todos" : "Tots", + "Personal" : "Personal", "{actor} created calendar {calendar}" : "{actor} ha creat el calendari {calendar}", "You created calendar {calendar}" : "Vosté ha creat el calentari {calendar}", "{actor} deleted calendar {calendar}" : "{actor} ha esborrat el calendari {calendar}", @@ -40,7 +41,6 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "S'ha modificat un <strong> esdeveniment </strong> del calendari", "A calendar <strong>todo</strong> was modified" : "<strong>Tot</strong> un calendari va ser modificat", "Contact birthdays" : "Aniversaris dels contactes", - "Personal" : "Personal", "Contacts" : "Contactes", "Technical details" : "Detalls tècnics", "Remote Address: %s" : "Adreça remota: %s", diff --git a/apps/dav/l10n/ca.json b/apps/dav/l10n/ca.json index 7c30c4050a0..04fec606daf 100644 --- a/apps/dav/l10n/ca.json +++ b/apps/dav/l10n/ca.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Calendari", "Todos" : "Tots", + "Personal" : "Personal", "{actor} created calendar {calendar}" : "{actor} ha creat el calendari {calendar}", "You created calendar {calendar}" : "Vosté ha creat el calentari {calendar}", "{actor} deleted calendar {calendar}" : "{actor} ha esborrat el calendari {calendar}", @@ -38,7 +39,6 @@ "A calendar <strong>event</strong> was modified" : "S'ha modificat un <strong> esdeveniment </strong> del calendari", "A calendar <strong>todo</strong> was modified" : "<strong>Tot</strong> un calendari va ser modificat", "Contact birthdays" : "Aniversaris dels contactes", - "Personal" : "Personal", "Contacts" : "Contactes", "Technical details" : "Detalls tècnics", "Remote Address: %s" : "Adreça remota: %s", diff --git a/apps/dav/l10n/cs.js b/apps/dav/l10n/cs.js index acd0b85b03f..5c1b1a2b0f2 100644 --- a/apps/dav/l10n/cs.js +++ b/apps/dav/l10n/cs.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Kalendář", "Todos" : "Úkoly", + "Personal" : "Osobní", "{actor} created calendar {calendar}" : "{actor} vytvořil(a) kalendář {calendar}", "You created calendar {calendar}" : "Vytvořil(a", "{actor} deleted calendar {calendar}" : "{actor} smazal(a) kalendář {calendar}", @@ -40,7 +41,6 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "<strong>Událost</strong> v kalendáři byla změněna", "A calendar <strong>todo</strong> was modified" : "<strong>Úkol</strong> v kalendáři byl změněn", "Contact birthdays" : "Narozeniny kontaktů", - "Personal" : "Osobní", "Contacts" : "Kontakty", "Technical details" : "Technické detaily", "Remote Address: %s" : "Vzdálená adresa: %s", diff --git a/apps/dav/l10n/cs.json b/apps/dav/l10n/cs.json index c1a25b3401e..0b21caa829b 100644 --- a/apps/dav/l10n/cs.json +++ b/apps/dav/l10n/cs.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Kalendář", "Todos" : "Úkoly", + "Personal" : "Osobní", "{actor} created calendar {calendar}" : "{actor} vytvořil(a) kalendář {calendar}", "You created calendar {calendar}" : "Vytvořil(a", "{actor} deleted calendar {calendar}" : "{actor} smazal(a) kalendář {calendar}", @@ -38,7 +39,6 @@ "A calendar <strong>event</strong> was modified" : "<strong>Událost</strong> v kalendáři byla změněna", "A calendar <strong>todo</strong> was modified" : "<strong>Úkol</strong> v kalendáři byl změněn", "Contact birthdays" : "Narozeniny kontaktů", - "Personal" : "Osobní", "Contacts" : "Kontakty", "Technical details" : "Technické detaily", "Remote Address: %s" : "Vzdálená adresa: %s", diff --git a/apps/dav/l10n/da.js b/apps/dav/l10n/da.js index 868d906f58a..b26fcb51510 100644 --- a/apps/dav/l10n/da.js +++ b/apps/dav/l10n/da.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Kalender", "Todos" : "Opgaver", + "Personal" : "Personligt", "{actor} created calendar {calendar}" : "{actor} oprettede kalenderen {calendar}", "You created calendar {calendar}" : "Du oprettede kalenderen {calendar}", "{actor} deleted calendar {calendar}" : "{actor} sletede kalenderen {calendar}", @@ -40,10 +41,12 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "En kalender <strong>begivenhed</strong> er blevet ændret", "A calendar <strong>todo</strong> was modified" : "En kalender <strong>opgave</strong> blev ændret", "Contact birthdays" : "Kontakt fødselsdag", - "Personal" : "Personligt", "Contacts" : "Kontakter", "Technical details" : "Tekniske detaljer", "Remote Address: %s" : "Fjernadresse: %s", - "Request ID: %s" : "Forespørgsels-ID: %s" + "Request ID: %s" : "Forespørgsels-ID: %s", + "CalDAV server" : "CalDAV server", + "Send invitations to attendees" : "Send invitation til deltagere", + "Please make sure to properly set up the email settings above." : "Vær venligst sikker på at indstille email indstillingerne ovenover ordenligt." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dav/l10n/da.json b/apps/dav/l10n/da.json index 3d9b3800b70..be5aa72d05b 100644 --- a/apps/dav/l10n/da.json +++ b/apps/dav/l10n/da.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Kalender", "Todos" : "Opgaver", + "Personal" : "Personligt", "{actor} created calendar {calendar}" : "{actor} oprettede kalenderen {calendar}", "You created calendar {calendar}" : "Du oprettede kalenderen {calendar}", "{actor} deleted calendar {calendar}" : "{actor} sletede kalenderen {calendar}", @@ -38,10 +39,12 @@ "A calendar <strong>event</strong> was modified" : "En kalender <strong>begivenhed</strong> er blevet ændret", "A calendar <strong>todo</strong> was modified" : "En kalender <strong>opgave</strong> blev ændret", "Contact birthdays" : "Kontakt fødselsdag", - "Personal" : "Personligt", "Contacts" : "Kontakter", "Technical details" : "Tekniske detaljer", "Remote Address: %s" : "Fjernadresse: %s", - "Request ID: %s" : "Forespørgsels-ID: %s" + "Request ID: %s" : "Forespørgsels-ID: %s", + "CalDAV server" : "CalDAV server", + "Send invitations to attendees" : "Send invitation til deltagere", + "Please make sure to properly set up the email settings above." : "Vær venligst sikker på at indstille email indstillingerne ovenover ordenligt." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dav/l10n/de.js b/apps/dav/l10n/de.js index 9bf57da3f95..30f3ae53e02 100644 --- a/apps/dav/l10n/de.js +++ b/apps/dav/l10n/de.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Kalender", "Todos" : "Aufgaben", + "Personal" : "Persönlich", "{actor} created calendar {calendar}" : "{actor} hat den Kalender {calendar} erstellt", "You created calendar {calendar}" : "Du hast den Kalender {calendar} erstellt", "{actor} deleted calendar {calendar}" : "{actor} hat den Kalender {calendar} gelöscht", @@ -40,13 +41,12 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Ein Kalender-<strong>Ereignis</strong> wurde bearbeitet", "A calendar <strong>todo</strong> was modified" : "Eine Kalender-<strong>Aufgabe</strong> wurde bearbeitet", "Contact birthdays" : "Geburtstage von Kontakten", - "Personal" : "Persönlich", "Contacts" : "Kontakte", "Technical details" : "Technische Details", "Remote Address: %s" : "Entfernte Adresse: %s", "Request ID: %s" : "Anfragekennung: %s", "CalDAV server" : "CalDAV-Server", "Send invitations to attendees" : "Einladungen an die Teilnehmer versenden", - "Please make sure to properly setup the email settings above." : "Stelle sicher, dass die obigen E-Mail-Einstellungen korrekt sind." + "Please make sure to properly set up the email settings above." : "Bitte sicherstellen, dass die E-Mail Einstellungen oben korrekt angegeben sind." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dav/l10n/de.json b/apps/dav/l10n/de.json index 235edda4051..401cab208d3 100644 --- a/apps/dav/l10n/de.json +++ b/apps/dav/l10n/de.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Kalender", "Todos" : "Aufgaben", + "Personal" : "Persönlich", "{actor} created calendar {calendar}" : "{actor} hat den Kalender {calendar} erstellt", "You created calendar {calendar}" : "Du hast den Kalender {calendar} erstellt", "{actor} deleted calendar {calendar}" : "{actor} hat den Kalender {calendar} gelöscht", @@ -38,13 +39,12 @@ "A calendar <strong>event</strong> was modified" : "Ein Kalender-<strong>Ereignis</strong> wurde bearbeitet", "A calendar <strong>todo</strong> was modified" : "Eine Kalender-<strong>Aufgabe</strong> wurde bearbeitet", "Contact birthdays" : "Geburtstage von Kontakten", - "Personal" : "Persönlich", "Contacts" : "Kontakte", "Technical details" : "Technische Details", "Remote Address: %s" : "Entfernte Adresse: %s", "Request ID: %s" : "Anfragekennung: %s", "CalDAV server" : "CalDAV-Server", "Send invitations to attendees" : "Einladungen an die Teilnehmer versenden", - "Please make sure to properly setup the email settings above." : "Stelle sicher, dass die obigen E-Mail-Einstellungen korrekt sind." + "Please make sure to properly set up the email settings above." : "Bitte sicherstellen, dass die E-Mail Einstellungen oben korrekt angegeben sind." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dav/l10n/de_DE.js b/apps/dav/l10n/de_DE.js index 20d576b096f..43b218dacc5 100644 --- a/apps/dav/l10n/de_DE.js +++ b/apps/dav/l10n/de_DE.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Kalender", "Todos" : "Aufgaben", + "Personal" : "Persönlich", "{actor} created calendar {calendar}" : "{actor} hat den Kalender {calendar} erstellt", "You created calendar {calendar}" : "Sie haben den Kalender {calendar} erstellt", "{actor} deleted calendar {calendar}" : "{actor} hat den Kalender {calendar} gelöscht", @@ -40,13 +41,12 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Ein Kalender-<strong>Ereignis</strong> wurde bearbeitet", "A calendar <strong>todo</strong> was modified" : "Eine Kalender-<strong>Aufgabe</strong> wurde bearbeitet", "Contact birthdays" : "Geburtstage von Kontakten", - "Personal" : "Persönlich", "Contacts" : "Kontakte", "Technical details" : "Technische Details", "Remote Address: %s" : "Entfernte Adresse: %s", "Request ID: %s" : "Anfragekennung: %s", "CalDAV server" : "CalDAV-Server", "Send invitations to attendees" : "Einladungen an die Teilnehmer versenden", - "Please make sure to properly setup the email settings above." : "Stellen Sie sicher, dass die obigen E-Mail-Einstellungen korrekt sind." + "Please make sure to properly set up the email settings above." : "Stellen Sie sicher, dass die obigen E-Mail-Einstellungen korrekt sind." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dav/l10n/de_DE.json b/apps/dav/l10n/de_DE.json index 3ab9b304d35..9de0db6d70b 100644 --- a/apps/dav/l10n/de_DE.json +++ b/apps/dav/l10n/de_DE.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Kalender", "Todos" : "Aufgaben", + "Personal" : "Persönlich", "{actor} created calendar {calendar}" : "{actor} hat den Kalender {calendar} erstellt", "You created calendar {calendar}" : "Sie haben den Kalender {calendar} erstellt", "{actor} deleted calendar {calendar}" : "{actor} hat den Kalender {calendar} gelöscht", @@ -38,13 +39,12 @@ "A calendar <strong>event</strong> was modified" : "Ein Kalender-<strong>Ereignis</strong> wurde bearbeitet", "A calendar <strong>todo</strong> was modified" : "Eine Kalender-<strong>Aufgabe</strong> wurde bearbeitet", "Contact birthdays" : "Geburtstage von Kontakten", - "Personal" : "Persönlich", "Contacts" : "Kontakte", "Technical details" : "Technische Details", "Remote Address: %s" : "Entfernte Adresse: %s", "Request ID: %s" : "Anfragekennung: %s", "CalDAV server" : "CalDAV-Server", "Send invitations to attendees" : "Einladungen an die Teilnehmer versenden", - "Please make sure to properly setup the email settings above." : "Stellen Sie sicher, dass die obigen E-Mail-Einstellungen korrekt sind." + "Please make sure to properly set up the email settings above." : "Stellen Sie sicher, dass die obigen E-Mail-Einstellungen korrekt sind." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dav/l10n/el.js b/apps/dav/l10n/el.js index 8565fc2ce39..f64c83d2aaf 100644 --- a/apps/dav/l10n/el.js +++ b/apps/dav/l10n/el.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Ημερολόγιο", "Todos" : "Εργασίες προς εκτέλεση", + "Personal" : "Προσωπικά", "{actor} created calendar {calendar}" : "{actor} δημιουργήθηκε το ημερολόγιο {calendar}", "You created calendar {calendar}" : "Δημιουργήσατε ημερολόγιο {ημερολόγιο}", "{actor} deleted calendar {calendar}" : "{actor} διέγραψε το ημερολόγιο {calendar}", @@ -40,7 +41,6 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Τροποποιήθηκε ένα <strong>γεγονός</strong> του ημερολογίου", "A calendar <strong>todo</strong> was modified" : "Ενός ημερολογίου η <strong>εκκρεμότητα</strong> τροποποιήθηκε", "Contact birthdays" : "Γενέθλια επαφών", - "Personal" : "Προσωπικά", "Contacts" : "Επαφές", "Technical details" : "Τεχνικές λεπτομέρειες", "Remote Address: %s" : "Απομακρυσμένη Διεύθυνση: %s", diff --git a/apps/dav/l10n/el.json b/apps/dav/l10n/el.json index c0a3f5369dc..9f7a1ab9268 100644 --- a/apps/dav/l10n/el.json +++ b/apps/dav/l10n/el.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Ημερολόγιο", "Todos" : "Εργασίες προς εκτέλεση", + "Personal" : "Προσωπικά", "{actor} created calendar {calendar}" : "{actor} δημιουργήθηκε το ημερολόγιο {calendar}", "You created calendar {calendar}" : "Δημιουργήσατε ημερολόγιο {ημερολόγιο}", "{actor} deleted calendar {calendar}" : "{actor} διέγραψε το ημερολόγιο {calendar}", @@ -38,7 +39,6 @@ "A calendar <strong>event</strong> was modified" : "Τροποποιήθηκε ένα <strong>γεγονός</strong> του ημερολογίου", "A calendar <strong>todo</strong> was modified" : "Ενός ημερολογίου η <strong>εκκρεμότητα</strong> τροποποιήθηκε", "Contact birthdays" : "Γενέθλια επαφών", - "Personal" : "Προσωπικά", "Contacts" : "Επαφές", "Technical details" : "Τεχνικές λεπτομέρειες", "Remote Address: %s" : "Απομακρυσμένη Διεύθυνση: %s", diff --git a/apps/dav/l10n/en_GB.js b/apps/dav/l10n/en_GB.js index 6dd47179e37..463fe47ea69 100644 --- a/apps/dav/l10n/en_GB.js +++ b/apps/dav/l10n/en_GB.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Calendar", "Todos" : "Todos", + "Personal" : "Personal", "{actor} created calendar {calendar}" : "{actor} created calendar {calendar}", "You created calendar {calendar}" : "You created calendar {calendar}", "{actor} deleted calendar {calendar}" : "{actor} deleted calendar {calendar}", @@ -40,10 +41,12 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "A calendar <strong>event</strong> was modified", "A calendar <strong>todo</strong> was modified" : "A calendar <strong>todo</strong> was modified", "Contact birthdays" : "Contact birthdays", - "Personal" : "Personal", "Contacts" : "Contacts", "Technical details" : "Technical details", "Remote Address: %s" : "Remote Address: %s", - "Request ID: %s" : "Request ID: %s" + "Request ID: %s" : "Request ID: %s", + "CalDAV server" : "CalDAV server", + "Send invitations to attendees" : "Send invitations to attendees", + "Please make sure to properly set up the email settings above." : "Please make sure to properly set up the email settings above." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dav/l10n/en_GB.json b/apps/dav/l10n/en_GB.json index fb240965003..b5319c01a49 100644 --- a/apps/dav/l10n/en_GB.json +++ b/apps/dav/l10n/en_GB.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Calendar", "Todos" : "Todos", + "Personal" : "Personal", "{actor} created calendar {calendar}" : "{actor} created calendar {calendar}", "You created calendar {calendar}" : "You created calendar {calendar}", "{actor} deleted calendar {calendar}" : "{actor} deleted calendar {calendar}", @@ -38,10 +39,12 @@ "A calendar <strong>event</strong> was modified" : "A calendar <strong>event</strong> was modified", "A calendar <strong>todo</strong> was modified" : "A calendar <strong>todo</strong> was modified", "Contact birthdays" : "Contact birthdays", - "Personal" : "Personal", "Contacts" : "Contacts", "Technical details" : "Technical details", "Remote Address: %s" : "Remote Address: %s", - "Request ID: %s" : "Request ID: %s" + "Request ID: %s" : "Request ID: %s", + "CalDAV server" : "CalDAV server", + "Send invitations to attendees" : "Send invitations to attendees", + "Please make sure to properly set up the email settings above." : "Please make sure to properly set up the email settings above." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dav/l10n/es.js b/apps/dav/l10n/es.js index b518dfd0dfe..2a01abafcfb 100644 --- a/apps/dav/l10n/es.js +++ b/apps/dav/l10n/es.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Calendario", "Todos" : "Todos", + "Personal" : "Personal", "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}", "You created calendar {calendar}" : "Usted creó el calendario {calendar}", "{actor} deleted calendar {calendar}" : "{actor} eliminó el calendario {calendar}", @@ -40,7 +41,6 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> del calendario fue modificado.", "A calendar <strong>todo</strong> was modified" : "Una <strong>lista de tareas</strong> fue modificada", "Contact birthdays" : "Cumpleaños del contacto", - "Personal" : "Personal", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es.json b/apps/dav/l10n/es.json index 0503e24f25b..20e33731a34 100644 --- a/apps/dav/l10n/es.json +++ b/apps/dav/l10n/es.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Calendario", "Todos" : "Todos", + "Personal" : "Personal", "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}", "You created calendar {calendar}" : "Usted creó el calendario {calendar}", "{actor} deleted calendar {calendar}" : "{actor} eliminó el calendario {calendar}", @@ -38,7 +39,6 @@ "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> del calendario fue modificado.", "A calendar <strong>todo</strong> was modified" : "Una <strong>lista de tareas</strong> fue modificada", "Contact birthdays" : "Cumpleaños del contacto", - "Personal" : "Personal", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_AR.js b/apps/dav/l10n/es_AR.js index d8753d65d34..7fac0070c8a 100644 --- a/apps/dav/l10n/es_AR.js +++ b/apps/dav/l10n/es_AR.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Calendario", "Todos" : "Pendientes", + "Personal" : "Personal", "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}", "You created calendar {calendar}" : "Usted creó el calendario {calendar}", "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}", @@ -40,7 +41,6 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado", "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", - "Personal" : "Personal", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_AR.json b/apps/dav/l10n/es_AR.json index 1eb8d35975c..542d1536fc7 100644 --- a/apps/dav/l10n/es_AR.json +++ b/apps/dav/l10n/es_AR.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Calendario", "Todos" : "Pendientes", + "Personal" : "Personal", "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}", "You created calendar {calendar}" : "Usted creó el calendario {calendar}", "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}", @@ -38,7 +39,6 @@ "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado", "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", - "Personal" : "Personal", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_CO.js b/apps/dav/l10n/es_CO.js new file mode 100644 index 00000000000..50f6886dbce --- /dev/null +++ b/apps/dav/l10n/es_CO.js @@ -0,0 +1,51 @@ +OC.L10N.register( + "dav", + { + "Calendar" : "Calendario", + "Todos" : "Pendientes", + "Personal" : "Personal", + "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}", + "You created calendar {calendar}" : "Creaste el calendario {calendar}", + "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}", + "You deleted calendar {calendar}" : "Borraste el calendario {calendar}", + "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}", + "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}", + "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo", + "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}", + "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}", + "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo", + "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}", + "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}", + "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo", + "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}", + "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}", + "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}", + "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}", + "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}", + "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}", + "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}", + "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}", + "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}", + "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}", + "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}", + "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}", + "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}", + "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}", + "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}", + "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}", + "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}", + "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}", + "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}", + "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}", + "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado", + "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado", + "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado", + "Contact birthdays" : "Cumpleaños del contacto", + "Contacts" : "Contactos", + "Technical details" : "Detalles técnicos", + "Remote Address: %s" : "Dirección remota: %s", + "Request ID: %s" : "ID de solicitud: %s", + "CalDAV server" : "Servidor CalDAV", + "Send invitations to attendees" : "Enviar invitaciones a los asistentes" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/dav/l10n/es_CO.json b/apps/dav/l10n/es_CO.json new file mode 100644 index 00000000000..c151ef343fc --- /dev/null +++ b/apps/dav/l10n/es_CO.json @@ -0,0 +1,49 @@ +{ "translations": { + "Calendar" : "Calendario", + "Todos" : "Pendientes", + "Personal" : "Personal", + "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}", + "You created calendar {calendar}" : "Creaste el calendario {calendar}", + "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}", + "You deleted calendar {calendar}" : "Borraste el calendario {calendar}", + "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}", + "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}", + "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo", + "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}", + "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}", + "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo", + "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}", + "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}", + "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo", + "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}", + "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}", + "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}", + "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}", + "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}", + "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}", + "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}", + "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}", + "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}", + "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}", + "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}", + "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}", + "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}", + "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}", + "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}", + "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}", + "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}", + "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}", + "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}", + "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}", + "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado", + "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado", + "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado", + "Contact birthdays" : "Cumpleaños del contacto", + "Contacts" : "Contactos", + "Technical details" : "Detalles técnicos", + "Remote Address: %s" : "Dirección remota: %s", + "Request ID: %s" : "ID de solicitud: %s", + "CalDAV server" : "Servidor CalDAV", + "Send invitations to attendees" : "Enviar invitaciones a los asistentes" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/dav/l10n/es_MX.js b/apps/dav/l10n/es_MX.js index 5730b78580f..50f6886dbce 100644 --- a/apps/dav/l10n/es_MX.js +++ b/apps/dav/l10n/es_MX.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Calendario", "Todos" : "Pendientes", + "Personal" : "Personal", "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}", "You created calendar {calendar}" : "Creaste el calendario {calendar}", "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}", @@ -40,13 +41,11 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado", "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", - "Personal" : "Personal", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", "Request ID: %s" : "ID de solicitud: %s", "CalDAV server" : "Servidor CalDAV", - "Send invitations to attendees" : "Enviar invitaciones a los asistentes", - "Please make sure to properly setup the email settings above." : "Por favor asegúrate de establecer correctamente las configuraciones de correo electrónico de arriba." + "Send invitations to attendees" : "Enviar invitaciones a los asistentes" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dav/l10n/es_MX.json b/apps/dav/l10n/es_MX.json index d9a339343e7..c151ef343fc 100644 --- a/apps/dav/l10n/es_MX.json +++ b/apps/dav/l10n/es_MX.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Calendario", "Todos" : "Pendientes", + "Personal" : "Personal", "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}", "You created calendar {calendar}" : "Creaste el calendario {calendar}", "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}", @@ -38,13 +39,11 @@ "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado", "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", - "Personal" : "Personal", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", "Request ID: %s" : "ID de solicitud: %s", "CalDAV server" : "Servidor CalDAV", - "Send invitations to attendees" : "Enviar invitaciones a los asistentes", - "Please make sure to properly setup the email settings above." : "Por favor asegúrate de establecer correctamente las configuraciones de correo electrónico de arriba." + "Send invitations to attendees" : "Enviar invitaciones a los asistentes" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dav/l10n/fi.js b/apps/dav/l10n/fi.js index b498fe40ad1..51e42b5d72e 100644 --- a/apps/dav/l10n/fi.js +++ b/apps/dav/l10n/fi.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Kalenteri", "Todos" : "Tehtävät", + "Personal" : "Henkilökohtainen", "{actor} created calendar {calendar}" : "{actor} loi kalenterin {calendar}", "You created calendar {calendar}" : "Loit kalenterin {calendar}", "{actor} deleted calendar {calendar}" : "{actor} poisti kalenterin {calendar}", @@ -40,10 +41,12 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Kalenterin <strong>tapahtumaa</strong> on muokattu", "A calendar <strong>todo</strong> was modified" : "Kalenterin <strong>tehtävää</strong> on muokattu", "Contact birthdays" : "Yhteystietojen syntymäpäivät", - "Personal" : "Henkilökohtainen", "Contacts" : "Yhteystiedot", "Technical details" : "Tekniset yksityiskohdat", "Remote Address: %s" : "Etäosoite: %s", - "Request ID: %s" : "Pyynnön tunniste: %s" + "Request ID: %s" : "Pyynnön tunniste: %s", + "CalDAV server" : "CalDAV-palvelin", + "Send invitations to attendees" : "Lähetä kutsut osallistujille", + "Please make sure to properly set up the email settings above." : "Varmista, että määrität sähköpostiasetukset oikein yläpuolelle. " }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dav/l10n/fi.json b/apps/dav/l10n/fi.json index 695752ebb06..6b3726a242e 100644 --- a/apps/dav/l10n/fi.json +++ b/apps/dav/l10n/fi.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Kalenteri", "Todos" : "Tehtävät", + "Personal" : "Henkilökohtainen", "{actor} created calendar {calendar}" : "{actor} loi kalenterin {calendar}", "You created calendar {calendar}" : "Loit kalenterin {calendar}", "{actor} deleted calendar {calendar}" : "{actor} poisti kalenterin {calendar}", @@ -38,10 +39,12 @@ "A calendar <strong>event</strong> was modified" : "Kalenterin <strong>tapahtumaa</strong> on muokattu", "A calendar <strong>todo</strong> was modified" : "Kalenterin <strong>tehtävää</strong> on muokattu", "Contact birthdays" : "Yhteystietojen syntymäpäivät", - "Personal" : "Henkilökohtainen", "Contacts" : "Yhteystiedot", "Technical details" : "Tekniset yksityiskohdat", "Remote Address: %s" : "Etäosoite: %s", - "Request ID: %s" : "Pyynnön tunniste: %s" + "Request ID: %s" : "Pyynnön tunniste: %s", + "CalDAV server" : "CalDAV-palvelin", + "Send invitations to attendees" : "Lähetä kutsut osallistujille", + "Please make sure to properly set up the email settings above." : "Varmista, että määrität sähköpostiasetukset oikein yläpuolelle. " },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dav/l10n/fr.js b/apps/dav/l10n/fr.js index 51409b980af..92ab671cd16 100644 --- a/apps/dav/l10n/fr.js +++ b/apps/dav/l10n/fr.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Agenda", "Todos" : "Tâches", + "Personal" : "Personnel", "{actor} created calendar {calendar}" : "{actor} a créé l'agenda {calendar}", "You created calendar {calendar}" : "Vous avez créé l'agenda {calendar}", "{actor} deleted calendar {calendar}" : "{actor} a supprimé l'agenda {calendar}", @@ -40,12 +41,12 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Un <strong>événement</strong> de l'agenda a été modifié", "A calendar <strong>todo</strong> was modified" : "Une <strong>liste de tâches</strong> de l'agenda a été modifiée", "Contact birthdays" : "Anniversaires des contacts", - "Personal" : "Personnel", "Contacts" : "Contacts", "Technical details" : "Détails techniques", "Remote Address: %s" : "Adresse distante : %s", "Request ID: %s" : "ID de la requête : %s", "CalDAV server" : "Serveur CalDAV", - "Send invitations to attendees" : "Envoyer des invitations aux participants" + "Send invitations to attendees" : "Envoyer des invitations aux participants", + "Please make sure to properly set up the email settings above." : "Merci de vérifier d'avoir correctement configuré les paramètres de courriel ci-dessus" }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/dav/l10n/fr.json b/apps/dav/l10n/fr.json index a256a383a4b..65eba3c9eae 100644 --- a/apps/dav/l10n/fr.json +++ b/apps/dav/l10n/fr.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Agenda", "Todos" : "Tâches", + "Personal" : "Personnel", "{actor} created calendar {calendar}" : "{actor} a créé l'agenda {calendar}", "You created calendar {calendar}" : "Vous avez créé l'agenda {calendar}", "{actor} deleted calendar {calendar}" : "{actor} a supprimé l'agenda {calendar}", @@ -38,12 +39,12 @@ "A calendar <strong>event</strong> was modified" : "Un <strong>événement</strong> de l'agenda a été modifié", "A calendar <strong>todo</strong> was modified" : "Une <strong>liste de tâches</strong> de l'agenda a été modifiée", "Contact birthdays" : "Anniversaires des contacts", - "Personal" : "Personnel", "Contacts" : "Contacts", "Technical details" : "Détails techniques", "Remote Address: %s" : "Adresse distante : %s", "Request ID: %s" : "ID de la requête : %s", "CalDAV server" : "Serveur CalDAV", - "Send invitations to attendees" : "Envoyer des invitations aux participants" + "Send invitations to attendees" : "Envoyer des invitations aux participants", + "Please make sure to properly set up the email settings above." : "Merci de vérifier d'avoir correctement configuré les paramètres de courriel ci-dessus" },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/dav/l10n/hu.js b/apps/dav/l10n/hu.js index caf0fe16c91..e1d8a950d02 100644 --- a/apps/dav/l10n/hu.js +++ b/apps/dav/l10n/hu.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Naptár", "Todos" : "Teendők", + "Personal" : "Személyes", "{actor} created calendar {calendar}" : "{actor} létrehozta a naptárt: {calendar}", "You created calendar {calendar}" : "Létrehoztad a naptárt: {calendar}", "{actor} deleted calendar {calendar}" : "{actor} törölte a naptárt: {calendar}", @@ -40,13 +41,12 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Egy naptár <strong>esemény</strong> megváltozott", "A calendar <strong>todo</strong> was modified" : "Egy naptár <strong>teendő</strong> megváltozott", "Contact birthdays" : "Születésnapok", - "Personal" : "Személyes", "Contacts" : "Névjegyek", "Technical details" : "Technikai adatok", "Remote Address: %s" : "Távoli cím: %s", "Request ID: %s" : "Kérelem azonosító: %s", "CalDAV server" : "CalDAV szerver", "Send invitations to attendees" : "Meghívó küldése a résztvevőknek", - "Please make sure to properly setup the email settings above." : "Kérlek győződj meg a fenti e-mail beállítások helyességéről." + "Please make sure to properly set up the email settings above." : "Győződj meg róla, hogy a fenti e-mail beállítások helyesek." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dav/l10n/hu.json b/apps/dav/l10n/hu.json index 04a571549ec..f1fd00091dd 100644 --- a/apps/dav/l10n/hu.json +++ b/apps/dav/l10n/hu.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Naptár", "Todos" : "Teendők", + "Personal" : "Személyes", "{actor} created calendar {calendar}" : "{actor} létrehozta a naptárt: {calendar}", "You created calendar {calendar}" : "Létrehoztad a naptárt: {calendar}", "{actor} deleted calendar {calendar}" : "{actor} törölte a naptárt: {calendar}", @@ -38,13 +39,12 @@ "A calendar <strong>event</strong> was modified" : "Egy naptár <strong>esemény</strong> megváltozott", "A calendar <strong>todo</strong> was modified" : "Egy naptár <strong>teendő</strong> megváltozott", "Contact birthdays" : "Születésnapok", - "Personal" : "Személyes", "Contacts" : "Névjegyek", "Technical details" : "Technikai adatok", "Remote Address: %s" : "Távoli cím: %s", "Request ID: %s" : "Kérelem azonosító: %s", "CalDAV server" : "CalDAV szerver", "Send invitations to attendees" : "Meghívó küldése a résztvevőknek", - "Please make sure to properly setup the email settings above." : "Kérlek győződj meg a fenti e-mail beállítások helyességéről." + "Please make sure to properly set up the email settings above." : "Győződj meg róla, hogy a fenti e-mail beállítások helyesek." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dav/l10n/is.js b/apps/dav/l10n/is.js index 79b4275068a..f333a74f7a6 100644 --- a/apps/dav/l10n/is.js +++ b/apps/dav/l10n/is.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Dagatal", "Todos" : "Verkþættir", + "Personal" : "Einka", "{actor} created calendar {calendar}" : "{actor} bjó til dagatalið {calendar}", "You created calendar {calendar}" : "Þú bjóst til dagatalið {calendar}", "{actor} deleted calendar {calendar}" : "{actor} eyddi dagatalinu {calendar}", @@ -40,10 +41,12 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "<strong>Atburði</strong> dagatals var breytt", "A calendar <strong>todo</strong> was modified" : "<strong>Verkefnalista</strong> dagatals var breytt", "Contact birthdays" : "Afmælisdagar tengiliðar", - "Personal" : "Einka", "Contacts" : "Tengiliðir", "Technical details" : "Tæknilegar upplýsingar", "Remote Address: %s" : "Fjartengt vistfang: %s", - "Request ID: %s" : "Beiðni um auðkenni: %s" + "Request ID: %s" : "Beiðni um auðkenni: %s", + "CalDAV server" : "CalDAV-þjónn", + "Send invitations to attendees" : "Senda boð til þátttakenda", + "Please make sure to properly set up the email settings above." : "Gakktu úr skugga um að tölvupóststillingarnar hér fyrir ofan séu réttar." }, "nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"); diff --git a/apps/dav/l10n/is.json b/apps/dav/l10n/is.json index aba5a88917f..13763d56f63 100644 --- a/apps/dav/l10n/is.json +++ b/apps/dav/l10n/is.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Dagatal", "Todos" : "Verkþættir", + "Personal" : "Einka", "{actor} created calendar {calendar}" : "{actor} bjó til dagatalið {calendar}", "You created calendar {calendar}" : "Þú bjóst til dagatalið {calendar}", "{actor} deleted calendar {calendar}" : "{actor} eyddi dagatalinu {calendar}", @@ -38,10 +39,12 @@ "A calendar <strong>event</strong> was modified" : "<strong>Atburði</strong> dagatals var breytt", "A calendar <strong>todo</strong> was modified" : "<strong>Verkefnalista</strong> dagatals var breytt", "Contact birthdays" : "Afmælisdagar tengiliðar", - "Personal" : "Einka", "Contacts" : "Tengiliðir", "Technical details" : "Tæknilegar upplýsingar", "Remote Address: %s" : "Fjartengt vistfang: %s", - "Request ID: %s" : "Beiðni um auðkenni: %s" + "Request ID: %s" : "Beiðni um auðkenni: %s", + "CalDAV server" : "CalDAV-þjónn", + "Send invitations to attendees" : "Senda boð til þátttakenda", + "Please make sure to properly set up the email settings above." : "Gakktu úr skugga um að tölvupóststillingarnar hér fyrir ofan séu réttar." },"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);" }
\ No newline at end of file diff --git a/apps/dav/l10n/it.js b/apps/dav/l10n/it.js index e58d3bd107f..ae8ea0a1f50 100644 --- a/apps/dav/l10n/it.js +++ b/apps/dav/l10n/it.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Calendario", "Todos" : "Cose da fare", + "Personal" : "Personale", "{actor} created calendar {calendar}" : "{actor} ha creato il calendario {calendar}", "You created calendar {calendar}" : "Hai creato il calendario {calendar}", "{actor} deleted calendar {calendar}" : "{actor} ha eliminato il calendario {calendar}", @@ -40,10 +41,12 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> del calendario è stato modificato", "A calendar <strong>todo</strong> was modified" : "Una <strong>cosa da fare</strong> del calendario è stata modificata", "Contact birthdays" : "Date di nascita dei contatti", - "Personal" : "Personale", "Contacts" : "Contatti", "Technical details" : "Dettagli tecnici", "Remote Address: %s" : "Indirizzo remoto: %s", - "Request ID: %s" : "ID richiesta: %s" + "Request ID: %s" : "ID richiesta: %s", + "CalDAV server" : "Server CalDAV", + "Send invitations to attendees" : "Invia gli inviti ai partecipanti", + "Please make sure to properly set up the email settings above." : "Assicurati di configurare correttamente le impostazioni di posta sopra." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dav/l10n/it.json b/apps/dav/l10n/it.json index 1f71eed7aff..600ace4f2e4 100644 --- a/apps/dav/l10n/it.json +++ b/apps/dav/l10n/it.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Calendario", "Todos" : "Cose da fare", + "Personal" : "Personale", "{actor} created calendar {calendar}" : "{actor} ha creato il calendario {calendar}", "You created calendar {calendar}" : "Hai creato il calendario {calendar}", "{actor} deleted calendar {calendar}" : "{actor} ha eliminato il calendario {calendar}", @@ -38,10 +39,12 @@ "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> del calendario è stato modificato", "A calendar <strong>todo</strong> was modified" : "Una <strong>cosa da fare</strong> del calendario è stata modificata", "Contact birthdays" : "Date di nascita dei contatti", - "Personal" : "Personale", "Contacts" : "Contatti", "Technical details" : "Dettagli tecnici", "Remote Address: %s" : "Indirizzo remoto: %s", - "Request ID: %s" : "ID richiesta: %s" + "Request ID: %s" : "ID richiesta: %s", + "CalDAV server" : "Server CalDAV", + "Send invitations to attendees" : "Invia gli inviti ai partecipanti", + "Please make sure to properly set up the email settings above." : "Assicurati di configurare correttamente le impostazioni di posta sopra." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dav/l10n/ko.js b/apps/dav/l10n/ko.js index af429509986..81a01556fbf 100644 --- a/apps/dav/l10n/ko.js +++ b/apps/dav/l10n/ko.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "달력", "Todos" : "할 일", + "Personal" : "개인", "{actor} created calendar {calendar}" : "{actor} 님이 달력 {calendar}을(를) 생성함", "You created calendar {calendar}" : "달력 {calendar}을(를) 생성함", "{actor} deleted calendar {calendar}" : "{actor} 님이 달력 {calendar}을(를) 삭제함", @@ -40,7 +41,6 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "달력 <strong>행사</strong>가 수정됨", "A calendar <strong>todo</strong> was modified" : "달력의 <strong>할 일</strong>이 수정됨", "Contact birthdays" : "연락처에 등록된 생일", - "Personal" : "개인", "Contacts" : "연락처", "Technical details" : "기술 정보", "Remote Address: %s" : "원격 주소: %s", diff --git a/apps/dav/l10n/ko.json b/apps/dav/l10n/ko.json index 7731c7140ae..e397a73b4b3 100644 --- a/apps/dav/l10n/ko.json +++ b/apps/dav/l10n/ko.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "달력", "Todos" : "할 일", + "Personal" : "개인", "{actor} created calendar {calendar}" : "{actor} 님이 달력 {calendar}을(를) 생성함", "You created calendar {calendar}" : "달력 {calendar}을(를) 생성함", "{actor} deleted calendar {calendar}" : "{actor} 님이 달력 {calendar}을(를) 삭제함", @@ -38,7 +39,6 @@ "A calendar <strong>event</strong> was modified" : "달력 <strong>행사</strong>가 수정됨", "A calendar <strong>todo</strong> was modified" : "달력의 <strong>할 일</strong>이 수정됨", "Contact birthdays" : "연락처에 등록된 생일", - "Personal" : "개인", "Contacts" : "연락처", "Technical details" : "기술 정보", "Remote Address: %s" : "원격 주소: %s", diff --git a/apps/dav/l10n/lt_LT.js b/apps/dav/l10n/lt_LT.js index 7fc97309154..ec20bcf7bc8 100644 --- a/apps/dav/l10n/lt_LT.js +++ b/apps/dav/l10n/lt_LT.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Kalendorius", "Todos" : "Užduotys", + "Personal" : "Asmeniniai", "{actor} created calendar {calendar}" : "{actor} sukūrė kalendorių {calendar}", "You created calendar {calendar}" : "Jūs sukūrėte kalendorių {calendar}", "{actor} deleted calendar {calendar}" : "{actor} ištrynė kalendorių {calendar}", @@ -40,7 +41,6 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Kalendoriaus <strong>įvykis</strong> buvo pakeistas", "A calendar <strong>todo</strong> was modified" : "Kalendoriaus <strong>užduotis</strong> buvo pakeista", "Contact birthdays" : "Kontaktų gimtadieniai", - "Personal" : "Asmeniniai", "Contacts" : "Kontaktai", "Technical details" : "Techninė informacija", "Remote Address: %s" : "Nuotolinis adresas: %s", diff --git a/apps/dav/l10n/lt_LT.json b/apps/dav/l10n/lt_LT.json index e328eef4362..c0a8e43c7b8 100644 --- a/apps/dav/l10n/lt_LT.json +++ b/apps/dav/l10n/lt_LT.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Kalendorius", "Todos" : "Užduotys", + "Personal" : "Asmeniniai", "{actor} created calendar {calendar}" : "{actor} sukūrė kalendorių {calendar}", "You created calendar {calendar}" : "Jūs sukūrėte kalendorių {calendar}", "{actor} deleted calendar {calendar}" : "{actor} ištrynė kalendorių {calendar}", @@ -38,7 +39,6 @@ "A calendar <strong>event</strong> was modified" : "Kalendoriaus <strong>įvykis</strong> buvo pakeistas", "A calendar <strong>todo</strong> was modified" : "Kalendoriaus <strong>užduotis</strong> buvo pakeista", "Contact birthdays" : "Kontaktų gimtadieniai", - "Personal" : "Asmeniniai", "Contacts" : "Kontaktai", "Technical details" : "Techninė informacija", "Remote Address: %s" : "Nuotolinis adresas: %s", diff --git a/apps/dav/l10n/nb.js b/apps/dav/l10n/nb.js index e1985b743b1..4a207c3cd57 100644 --- a/apps/dav/l10n/nb.js +++ b/apps/dav/l10n/nb.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Kalender", "Todos" : "Gjøremål", + "Personal" : "Personlig", "{actor} created calendar {calendar}" : "{actor} opprettet kalenderen {calendar}", "You created calendar {calendar}" : "Du opprettet kalenderen {calendar}", "{actor} deleted calendar {calendar}" : "{actor} slettet kalenderen {calendar}", @@ -40,7 +41,6 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "En kalender <strong>hendelse</strong> ble endret", "A calendar <strong>todo</strong> was modified" : "En kalende <strong>gjøremål</strong> ble endret", "Contact birthdays" : "Kontakters fødelsdag", - "Personal" : "Personlig", "Contacts" : "Kontakter", "Technical details" : "Tekniske detaljer", "Remote Address: %s" : "Ekstern adresse: %s", diff --git a/apps/dav/l10n/nb.json b/apps/dav/l10n/nb.json index cce442b7655..80ddcab2b58 100644 --- a/apps/dav/l10n/nb.json +++ b/apps/dav/l10n/nb.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Kalender", "Todos" : "Gjøremål", + "Personal" : "Personlig", "{actor} created calendar {calendar}" : "{actor} opprettet kalenderen {calendar}", "You created calendar {calendar}" : "Du opprettet kalenderen {calendar}", "{actor} deleted calendar {calendar}" : "{actor} slettet kalenderen {calendar}", @@ -38,7 +39,6 @@ "A calendar <strong>event</strong> was modified" : "En kalender <strong>hendelse</strong> ble endret", "A calendar <strong>todo</strong> was modified" : "En kalende <strong>gjøremål</strong> ble endret", "Contact birthdays" : "Kontakters fødelsdag", - "Personal" : "Personlig", "Contacts" : "Kontakter", "Technical details" : "Tekniske detaljer", "Remote Address: %s" : "Ekstern adresse: %s", diff --git a/apps/dav/l10n/nl.js b/apps/dav/l10n/nl.js index 15ad9285bd1..094e621c926 100644 --- a/apps/dav/l10n/nl.js +++ b/apps/dav/l10n/nl.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Kalender", "Todos" : "Te doen", + "Personal" : "Persoonlijk", "{actor} created calendar {calendar}" : "{actor} creëerde agenda {calendar}", "You created calendar {calendar}" : "Jij creëerde agenda {calendar}", "{actor} deleted calendar {calendar}" : "{actor} verwijderde agenda {calendar}", @@ -40,10 +41,11 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Een agenda <strong>gebeurtenis</strong> is aangepast", "A calendar <strong>todo</strong> was modified" : "Een agenda <strong>Te doen</strong> was aangepast", "Contact birthdays" : "Verjaardagen", - "Personal" : "Persoonlijk", "Contacts" : "Contactpersonen", "Technical details" : "Technische details", "Remote Address: %s" : "Extern adres: %s", - "Request ID: %s" : "Aanvraag-ID: %s" + "Request ID: %s" : "Aanvraag-ID: %s", + "CalDAV server" : "CalDAV server", + "Send invitations to attendees" : "Verzend uitnodigingen naar deelnemers" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dav/l10n/nl.json b/apps/dav/l10n/nl.json index e3a4071be02..f38a938cd2d 100644 --- a/apps/dav/l10n/nl.json +++ b/apps/dav/l10n/nl.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Kalender", "Todos" : "Te doen", + "Personal" : "Persoonlijk", "{actor} created calendar {calendar}" : "{actor} creëerde agenda {calendar}", "You created calendar {calendar}" : "Jij creëerde agenda {calendar}", "{actor} deleted calendar {calendar}" : "{actor} verwijderde agenda {calendar}", @@ -38,10 +39,11 @@ "A calendar <strong>event</strong> was modified" : "Een agenda <strong>gebeurtenis</strong> is aangepast", "A calendar <strong>todo</strong> was modified" : "Een agenda <strong>Te doen</strong> was aangepast", "Contact birthdays" : "Verjaardagen", - "Personal" : "Persoonlijk", "Contacts" : "Contactpersonen", "Technical details" : "Technische details", "Remote Address: %s" : "Extern adres: %s", - "Request ID: %s" : "Aanvraag-ID: %s" + "Request ID: %s" : "Aanvraag-ID: %s", + "CalDAV server" : "CalDAV server", + "Send invitations to attendees" : "Verzend uitnodigingen naar deelnemers" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dav/l10n/pl.js b/apps/dav/l10n/pl.js index 09366c978ce..e371260fb5f 100644 --- a/apps/dav/l10n/pl.js +++ b/apps/dav/l10n/pl.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Kalendarz", "Todos" : "Zadania", + "Personal" : "Osobiste", "{actor} created calendar {calendar}" : "{actor} utworzył/-a kalendarz {calendar}", "You created calendar {calendar}" : "Utworzyłeś/-aś kalendarz {calendar}", "{actor} deleted calendar {calendar}" : "{actor} usunął/-ęła kalendarz {calendar} .", @@ -40,10 +41,12 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "<strong>Zdarzenie</strong> kalendarza zostało zmodyfikowane", "A calendar <strong>todo</strong> was modified" : "Kalendarz <strong>zadań</strong> został zmieniony", "Contact birthdays" : "Urodziny kontaktu", - "Personal" : "Osobiste", "Contacts" : "Kontakty", "Technical details" : "Szczegóły techniczne", "Remote Address: %s" : "Adres zdalny: %s", - "Request ID: %s" : "ID żądania: %s" + "Request ID: %s" : "ID żądania: %s", + "CalDAV server" : "Serwer CalDAV", + "Send invitations to attendees" : "Wyślij uczestnikom zaproszenia", + "Please make sure to properly set up the email settings above." : "Upewnij się, że dobrze skonfigurowano powyżej ustawienia poczty e-mail." }, "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/dav/l10n/pl.json b/apps/dav/l10n/pl.json index ec4af482118..9d707baedd2 100644 --- a/apps/dav/l10n/pl.json +++ b/apps/dav/l10n/pl.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Kalendarz", "Todos" : "Zadania", + "Personal" : "Osobiste", "{actor} created calendar {calendar}" : "{actor} utworzył/-a kalendarz {calendar}", "You created calendar {calendar}" : "Utworzyłeś/-aś kalendarz {calendar}", "{actor} deleted calendar {calendar}" : "{actor} usunął/-ęła kalendarz {calendar} .", @@ -38,10 +39,12 @@ "A calendar <strong>event</strong> was modified" : "<strong>Zdarzenie</strong> kalendarza zostało zmodyfikowane", "A calendar <strong>todo</strong> was modified" : "Kalendarz <strong>zadań</strong> został zmieniony", "Contact birthdays" : "Urodziny kontaktu", - "Personal" : "Osobiste", "Contacts" : "Kontakty", "Technical details" : "Szczegóły techniczne", "Remote Address: %s" : "Adres zdalny: %s", - "Request ID: %s" : "ID żądania: %s" + "Request ID: %s" : "ID żądania: %s", + "CalDAV server" : "Serwer CalDAV", + "Send invitations to attendees" : "Wyślij uczestnikom zaproszenia", + "Please make sure to properly set up the email settings above." : "Upewnij się, że dobrze skonfigurowano powyżej ustawienia poczty e-mail." },"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/dav/l10n/pt_BR.js b/apps/dav/l10n/pt_BR.js index 5c8cff9cf69..6d2745c12d5 100644 --- a/apps/dav/l10n/pt_BR.js +++ b/apps/dav/l10n/pt_BR.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Calendário", "Todos" : "Tarefas", + "Personal" : "Pessoal", "{actor} created calendar {calendar}" : "{actor} criou o calendário {calendar}", "You created calendar {calendar}" : "Você criou o calendário {calendar}", "{actor} deleted calendar {calendar}" : "{actor} excluiu o calendário {calendar}", @@ -40,13 +41,12 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Um <strong>evento</strong> do calendário foi modificado", "A calendar <strong>todo</strong> was modified" : "Uma <strong>tarefa</strong> do calendário foi modificada", "Contact birthdays" : "Aniversário dos contatos", - "Personal" : "Pessoal", "Contacts" : "Contatos", "Technical details" : "Detalhes técnicos", "Remote Address: %s" : "Endereço remoto: %s", "Request ID: %s" : "ID do solicitante: %s", "CalDAV server" : "Servidor CalDAV", "Send invitations to attendees" : "Envie convites aos participantes", - "Please make sure to properly setup the email settings above." : "Certifique-se de configurar corretamente as configurações de email acima." + "Please make sure to properly set up the email settings above." : "Certifique-se de configurar corretamente o email acima." }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/dav/l10n/pt_BR.json b/apps/dav/l10n/pt_BR.json index 1aa53c3f2d2..c3d954c7df3 100644 --- a/apps/dav/l10n/pt_BR.json +++ b/apps/dav/l10n/pt_BR.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Calendário", "Todos" : "Tarefas", + "Personal" : "Pessoal", "{actor} created calendar {calendar}" : "{actor} criou o calendário {calendar}", "You created calendar {calendar}" : "Você criou o calendário {calendar}", "{actor} deleted calendar {calendar}" : "{actor} excluiu o calendário {calendar}", @@ -38,13 +39,12 @@ "A calendar <strong>event</strong> was modified" : "Um <strong>evento</strong> do calendário foi modificado", "A calendar <strong>todo</strong> was modified" : "Uma <strong>tarefa</strong> do calendário foi modificada", "Contact birthdays" : "Aniversário dos contatos", - "Personal" : "Pessoal", "Contacts" : "Contatos", "Technical details" : "Detalhes técnicos", "Remote Address: %s" : "Endereço remoto: %s", "Request ID: %s" : "ID do solicitante: %s", "CalDAV server" : "Servidor CalDAV", "Send invitations to attendees" : "Envie convites aos participantes", - "Please make sure to properly setup the email settings above." : "Certifique-se de configurar corretamente as configurações de email acima." + "Please make sure to properly set up the email settings above." : "Certifique-se de configurar corretamente o email acima." },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/dav/l10n/ro.js b/apps/dav/l10n/ro.js index 9f3f2fbf72f..4c506608244 100644 --- a/apps/dav/l10n/ro.js +++ b/apps/dav/l10n/ro.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Calendar", "Todos" : "De făcut", + "Personal" : "Personal", "{actor} created calendar {calendar}" : "{actor} a creat calendarul {calendar}", "You created calendar {calendar}" : "Ai creat calendarul {calendar}", "{actor} deleted calendar {calendar}" : "{actor} a șters calendarul {calendar}", @@ -40,7 +41,6 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Un <strong>eveniment</strong> din calendar a fost modificat", "A calendar <strong>todo</strong> was modified" : "O <strong>listă</strong> din calendar a fost modificată", "Contact birthdays" : "Zile de naștere ale persoanelor de contact", - "Personal" : "Personal", "Contacts" : "Persoane de contact", "Technical details" : "Detalii tehnice", "Remote Address: %s" : "Adresă la distanță: %s", diff --git a/apps/dav/l10n/ro.json b/apps/dav/l10n/ro.json index f93f03bd4dd..f98340b4c29 100644 --- a/apps/dav/l10n/ro.json +++ b/apps/dav/l10n/ro.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Calendar", "Todos" : "De făcut", + "Personal" : "Personal", "{actor} created calendar {calendar}" : "{actor} a creat calendarul {calendar}", "You created calendar {calendar}" : "Ai creat calendarul {calendar}", "{actor} deleted calendar {calendar}" : "{actor} a șters calendarul {calendar}", @@ -38,7 +39,6 @@ "A calendar <strong>event</strong> was modified" : "Un <strong>eveniment</strong> din calendar a fost modificat", "A calendar <strong>todo</strong> was modified" : "O <strong>listă</strong> din calendar a fost modificată", "Contact birthdays" : "Zile de naștere ale persoanelor de contact", - "Personal" : "Personal", "Contacts" : "Persoane de contact", "Technical details" : "Detalii tehnice", "Remote Address: %s" : "Adresă la distanță: %s", diff --git a/apps/dav/l10n/ru.js b/apps/dav/l10n/ru.js index e6749e7fb1b..fb515a5c4f6 100644 --- a/apps/dav/l10n/ru.js +++ b/apps/dav/l10n/ru.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Календарь", "Todos" : "Задачи", + "Personal" : "Личное", "{actor} created calendar {calendar}" : "{actor} создал календарь {calendar}", "You created calendar {calendar}" : "Вы создали календарь {calendar}", "{actor} deleted calendar {calendar}" : "{actor} удалил календарь {calendar}", @@ -40,10 +41,12 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "<strong>Событие</strong> календаря была изменена", "A calendar <strong>todo</strong> was modified" : "<strong>Задача</strong> календаря была изменена", "Contact birthdays" : "Дни рождения контакта", - "Personal" : "Личное", "Contacts" : "Контакты", "Technical details" : "Технические подробности", "Remote Address: %s" : "Удаленный адрес: %s", - "Request ID: %s" : "ID запроса: %s" + "Request ID: %s" : "ID запроса: %s", + "CalDAV server" : "CalDAV сервер", + "Send invitations to attendees" : "Отправить приглашения", + "Please make sure to properly set up the email settings above." : "Пожалуйста проверьте правильность настройки почты выше." }, "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/dav/l10n/ru.json b/apps/dav/l10n/ru.json index 538be85207e..dbd0a712276 100644 --- a/apps/dav/l10n/ru.json +++ b/apps/dav/l10n/ru.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Календарь", "Todos" : "Задачи", + "Personal" : "Личное", "{actor} created calendar {calendar}" : "{actor} создал календарь {calendar}", "You created calendar {calendar}" : "Вы создали календарь {calendar}", "{actor} deleted calendar {calendar}" : "{actor} удалил календарь {calendar}", @@ -38,10 +39,12 @@ "A calendar <strong>event</strong> was modified" : "<strong>Событие</strong> календаря была изменена", "A calendar <strong>todo</strong> was modified" : "<strong>Задача</strong> календаря была изменена", "Contact birthdays" : "Дни рождения контакта", - "Personal" : "Личное", "Contacts" : "Контакты", "Technical details" : "Технические подробности", "Remote Address: %s" : "Удаленный адрес: %s", - "Request ID: %s" : "ID запроса: %s" + "Request ID: %s" : "ID запроса: %s", + "CalDAV server" : "CalDAV сервер", + "Send invitations to attendees" : "Отправить приглашения", + "Please make sure to properly set up the email settings above." : "Пожалуйста проверьте правильность настройки почты выше." },"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/dav/l10n/sk.js b/apps/dav/l10n/sk.js index 2e1fc5d3699..1eeee8b6e6c 100644 --- a/apps/dav/l10n/sk.js +++ b/apps/dav/l10n/sk.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Kalendár", "Todos" : "Úlohy", + "Personal" : "Osobné", "{actor} created calendar {calendar}" : "[actor] vytvoril kalendár [calendar]", "You created calendar {calendar}" : "Vytvorili ste kalendár [calendar]", "{actor} deleted calendar {calendar}" : "[actor] zmazal kalendár [calendar]", @@ -40,10 +41,12 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "<strong>Udalosť</strong> v kalendári bola upravená", "A calendar <strong>todo</strong> was modified" : "<>", "Contact birthdays" : "Narodeniny kontaktu", - "Personal" : "Osobné", "Contacts" : "Kontakty", "Technical details" : "Technické podrobnosti", "Remote Address: %s" : "Vzdialená adresa: %s", - "Request ID: %s" : "ID požiadavky: %s" + "Request ID: %s" : "ID požiadavky: %s", + "CalDAV server" : "Server CalDAV", + "Send invitations to attendees" : "Odoslanie pozvánok účastníkom", + "Please make sure to properly set up the email settings above." : "Uistite sa, že máte správne nastavené vyššie uvedené nastavenia e-mailu." }, "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/dav/l10n/sk.json b/apps/dav/l10n/sk.json index cac08a2ca42..d21f92e6f07 100644 --- a/apps/dav/l10n/sk.json +++ b/apps/dav/l10n/sk.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Kalendár", "Todos" : "Úlohy", + "Personal" : "Osobné", "{actor} created calendar {calendar}" : "[actor] vytvoril kalendár [calendar]", "You created calendar {calendar}" : "Vytvorili ste kalendár [calendar]", "{actor} deleted calendar {calendar}" : "[actor] zmazal kalendár [calendar]", @@ -38,10 +39,12 @@ "A calendar <strong>event</strong> was modified" : "<strong>Udalosť</strong> v kalendári bola upravená", "A calendar <strong>todo</strong> was modified" : "<>", "Contact birthdays" : "Narodeniny kontaktu", - "Personal" : "Osobné", "Contacts" : "Kontakty", "Technical details" : "Technické podrobnosti", "Remote Address: %s" : "Vzdialená adresa: %s", - "Request ID: %s" : "ID požiadavky: %s" + "Request ID: %s" : "ID požiadavky: %s", + "CalDAV server" : "Server CalDAV", + "Send invitations to attendees" : "Odoslanie pozvánok účastníkom", + "Please make sure to properly set up the email settings above." : "Uistite sa, že máte správne nastavené vyššie uvedené nastavenia e-mailu." },"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/dav/l10n/sq.js b/apps/dav/l10n/sq.js index 2ced2eddcbf..ecb7f350e09 100644 --- a/apps/dav/l10n/sq.js +++ b/apps/dav/l10n/sq.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Kalendar", "Todos" : "Për tu bërë", + "Personal" : "Personale", "{actor} created calendar {calendar}" : "{aktori} krijoi kalendarin {kalendarin}", "You created calendar {calendar}" : "Ju krijuat kalendarin {calendar}", "{actor} deleted calendar {calendar}" : "{actor} fshiu kalendarin {calendar}", @@ -40,7 +41,6 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Një <strong>event</strong> në kalendar u modifikua", "A calendar <strong>todo</strong> was modified" : "Një kalendar <strong>todo<strong> u modifikua", "Contact birthdays" : "Ditëlindjet e kontakteve", - "Personal" : "Personale", "Contacts" : "Kontaktet", "Technical details" : "Detaje teknike", "Remote Address: %s" : "Adresa remote: %s", diff --git a/apps/dav/l10n/sq.json b/apps/dav/l10n/sq.json index dea2472fa16..981ace9d18a 100644 --- a/apps/dav/l10n/sq.json +++ b/apps/dav/l10n/sq.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Kalendar", "Todos" : "Për tu bërë", + "Personal" : "Personale", "{actor} created calendar {calendar}" : "{aktori} krijoi kalendarin {kalendarin}", "You created calendar {calendar}" : "Ju krijuat kalendarin {calendar}", "{actor} deleted calendar {calendar}" : "{actor} fshiu kalendarin {calendar}", @@ -38,7 +39,6 @@ "A calendar <strong>event</strong> was modified" : "Një <strong>event</strong> në kalendar u modifikua", "A calendar <strong>todo</strong> was modified" : "Një kalendar <strong>todo<strong> u modifikua", "Contact birthdays" : "Ditëlindjet e kontakteve", - "Personal" : "Personale", "Contacts" : "Kontaktet", "Technical details" : "Detaje teknike", "Remote Address: %s" : "Adresa remote: %s", diff --git a/apps/dav/l10n/sr.js b/apps/dav/l10n/sr.js index 23aadf71bc3..90cb6003b8c 100644 --- a/apps/dav/l10n/sr.js +++ b/apps/dav/l10n/sr.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Календар", "Todos" : "Подсетници", + "Personal" : "Лично", "{actor} created calendar {calendar}" : "{actor} је направио календар {calendar}", "You created calendar {calendar}" : "Креирали сте календар {calendar}", "{actor} deleted calendar {calendar}" : "{actor} је обрисао календар {calendar}", @@ -40,13 +41,12 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "<strong>Догађај</strong> из календара је измењен", "A calendar <strong>todo</strong> was modified" : "<strong>Подсетник</strong> из календара је измењен", "Contact birthdays" : "Рођендани контаката", - "Personal" : "Лично", "Contacts" : "Контакти", "Technical details" : "Технички детаљи", "Remote Address: %s" : "Удаљена адреса: %s", "Request ID: %s" : "ИД захтева: %s", "CalDAV server" : "CalDAV сервер", "Send invitations to attendees" : "Пошаљи позивницу учесницима", - "Please make sure to properly setup the email settings above." : "Пазите да правилно подесите поставке е-поште изнад." + "Please make sure to properly set up the email settings above." : "Пазите да правилно подесите поставке е-поште изнад." }, "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/dav/l10n/sr.json b/apps/dav/l10n/sr.json index b6589cfd473..45b02431c7e 100644 --- a/apps/dav/l10n/sr.json +++ b/apps/dav/l10n/sr.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Календар", "Todos" : "Подсетници", + "Personal" : "Лично", "{actor} created calendar {calendar}" : "{actor} је направио календар {calendar}", "You created calendar {calendar}" : "Креирали сте календар {calendar}", "{actor} deleted calendar {calendar}" : "{actor} је обрисао календар {calendar}", @@ -38,13 +39,12 @@ "A calendar <strong>event</strong> was modified" : "<strong>Догађај</strong> из календара је измењен", "A calendar <strong>todo</strong> was modified" : "<strong>Подсетник</strong> из календара је измењен", "Contact birthdays" : "Рођендани контаката", - "Personal" : "Лично", "Contacts" : "Контакти", "Technical details" : "Технички детаљи", "Remote Address: %s" : "Удаљена адреса: %s", "Request ID: %s" : "ИД захтева: %s", "CalDAV server" : "CalDAV сервер", "Send invitations to attendees" : "Пошаљи позивницу учесницима", - "Please make sure to properly setup the email settings above." : "Пазите да правилно подесите поставке е-поште изнад." + "Please make sure to properly set up the email settings above." : "Пазите да правилно подесите поставке е-поште изнад." },"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/dav/l10n/sv.js b/apps/dav/l10n/sv.js index 25cd0d797c8..aa8765c7dc9 100644 --- a/apps/dav/l10n/sv.js +++ b/apps/dav/l10n/sv.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Kalender", "Todos" : "Uppgifter", + "Personal" : "Privat", "{actor} created calendar {calendar}" : "{actor} skapade kalender {calendar}", "You created calendar {calendar}" : "Du skapade kalender {calendar}", "{actor} deleted calendar {calendar}" : "{actor} raderade kalender {calendar}", @@ -40,7 +41,6 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "En kalender-<strong>händelse</strong> modifierades", "A calendar <strong>todo</strong> was modified" : "En kalender <strong>uppgift</strong> modifierades", "Contact birthdays" : "Födelsedagar", - "Personal" : "Privat", "Contacts" : "Kontakter", "Technical details" : "Tekniska detaljer", "Remote Address: %s" : "Extern adress: %s", diff --git a/apps/dav/l10n/sv.json b/apps/dav/l10n/sv.json index ba76ca55329..0c06957dcfd 100644 --- a/apps/dav/l10n/sv.json +++ b/apps/dav/l10n/sv.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Kalender", "Todos" : "Uppgifter", + "Personal" : "Privat", "{actor} created calendar {calendar}" : "{actor} skapade kalender {calendar}", "You created calendar {calendar}" : "Du skapade kalender {calendar}", "{actor} deleted calendar {calendar}" : "{actor} raderade kalender {calendar}", @@ -38,7 +39,6 @@ "A calendar <strong>event</strong> was modified" : "En kalender-<strong>händelse</strong> modifierades", "A calendar <strong>todo</strong> was modified" : "En kalender <strong>uppgift</strong> modifierades", "Contact birthdays" : "Födelsedagar", - "Personal" : "Privat", "Contacts" : "Kontakter", "Technical details" : "Tekniska detaljer", "Remote Address: %s" : "Extern adress: %s", diff --git a/apps/dav/l10n/tr.js b/apps/dav/l10n/tr.js index 4a2662121e2..b14d1bd4d24 100644 --- a/apps/dav/l10n/tr.js +++ b/apps/dav/l10n/tr.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "Takvim", "Todos" : "Yapılacak İşler", + "Personal" : "Kişisel", "{actor} created calendar {calendar}" : "{actor}, {calendar} takvimini ekledi", "You created calendar {calendar}" : "{calendar} takvimini eklediniz", "{actor} deleted calendar {calendar}" : "{actor}, {calendar} takvimini sildi", @@ -40,13 +41,12 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Bir takvim <strong>etkinliği</strong> düzenlendi", "A calendar <strong>todo</strong> was modified" : "Bir takvim <strong>yapılacak işi</strong> düzenlendi", "Contact birthdays" : "Kişi doğum günleri", - "Personal" : "Kişisel", "Contacts" : "Kişiler", "Technical details" : "Teknik ayrıntılar", "Remote Address: %s" : "Uzak Adres: %s", "Request ID: %s" : "İstek Kodu: %s", "CalDAV server" : "CalDAV sunucusu", "Send invitations to attendees" : "Katılımcılara çağrıları gönder", - "Please make sure to properly setup the email settings above." : "Lütfen yukarıdaki e-posta ayarlarını doğru şekilde ayarladığınızdan emin olun." + "Please make sure to properly set up the email settings above." : "Lütfen yukarıdaki e-posta ayarlarını doğru olarak yaptığınızdan emin olun." }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/dav/l10n/tr.json b/apps/dav/l10n/tr.json index 956696cb736..23cbfbaac35 100644 --- a/apps/dav/l10n/tr.json +++ b/apps/dav/l10n/tr.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "Takvim", "Todos" : "Yapılacak İşler", + "Personal" : "Kişisel", "{actor} created calendar {calendar}" : "{actor}, {calendar} takvimini ekledi", "You created calendar {calendar}" : "{calendar} takvimini eklediniz", "{actor} deleted calendar {calendar}" : "{actor}, {calendar} takvimini sildi", @@ -38,13 +39,12 @@ "A calendar <strong>event</strong> was modified" : "Bir takvim <strong>etkinliği</strong> düzenlendi", "A calendar <strong>todo</strong> was modified" : "Bir takvim <strong>yapılacak işi</strong> düzenlendi", "Contact birthdays" : "Kişi doğum günleri", - "Personal" : "Kişisel", "Contacts" : "Kişiler", "Technical details" : "Teknik ayrıntılar", "Remote Address: %s" : "Uzak Adres: %s", "Request ID: %s" : "İstek Kodu: %s", "CalDAV server" : "CalDAV sunucusu", "Send invitations to attendees" : "Katılımcılara çağrıları gönder", - "Please make sure to properly setup the email settings above." : "Lütfen yukarıdaki e-posta ayarlarını doğru şekilde ayarladığınızdan emin olun." + "Please make sure to properly set up the email settings above." : "Lütfen yukarıdaki e-posta ayarlarını doğru olarak yaptığınızdan emin olun." },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/dav/l10n/zh_CN.js b/apps/dav/l10n/zh_CN.js index 049c0e2b542..e0ee9015402 100644 --- a/apps/dav/l10n/zh_CN.js +++ b/apps/dav/l10n/zh_CN.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Calendar" : "日历", "Todos" : "待办事项", + "Personal" : "个人", "{actor} created calendar {calendar}" : "{actor} 创建了日历 {calendar}", "You created calendar {calendar}" : "您创建的日历 {calendar}", "{actor} deleted calendar {calendar}" : "{actor} 删除了日历 {calendar}", @@ -40,7 +41,6 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "日历中<strong>事件</strong>已经修改", "A calendar <strong>todo</strong> was modified" : "列表中<strong>待办事项</strong>已经修改", "Contact birthdays" : "联系人生日", - "Personal" : "个人", "Contacts" : "联系人", "Technical details" : "技术细节", "Remote Address: %s" : "远程地址: %s", diff --git a/apps/dav/l10n/zh_CN.json b/apps/dav/l10n/zh_CN.json index 7e215d624d2..30419409556 100644 --- a/apps/dav/l10n/zh_CN.json +++ b/apps/dav/l10n/zh_CN.json @@ -1,6 +1,7 @@ { "translations": { "Calendar" : "日历", "Todos" : "待办事项", + "Personal" : "个人", "{actor} created calendar {calendar}" : "{actor} 创建了日历 {calendar}", "You created calendar {calendar}" : "您创建的日历 {calendar}", "{actor} deleted calendar {calendar}" : "{actor} 删除了日历 {calendar}", @@ -38,7 +39,6 @@ "A calendar <strong>event</strong> was modified" : "日历中<strong>事件</strong>已经修改", "A calendar <strong>todo</strong> was modified" : "列表中<strong>待办事项</strong>已经修改", "Contact birthdays" : "联系人生日", - "Personal" : "个人", "Contacts" : "联系人", "Technical details" : "技术细节", "Remote Address: %s" : "远程地址: %s", diff --git a/apps/dav/lib/CalDAV/Activity/Backend.php b/apps/dav/lib/CalDAV/Activity/Backend.php index f8cc82407fd..c1a68c1682c 100644 --- a/apps/dav/lib/CalDAV/Activity/Backend.php +++ b/apps/dav/lib/CalDAV/Activity/Backend.php @@ -135,8 +135,12 @@ class Backend { ->setSubject( $user === $currentUser ? $action . '_self' : $action, [ - $currentUser, - $calendarData['{DAV:}displayname'], + 'actor' => $currentUser, + 'calendar' => [ + 'id' => (int) $calendarData['id'], + 'uri' => $calendarData['uri'], + 'name' => $calendarData['{DAV:}displayname'], + ], ] ); $this->activityManager->publish($event); @@ -187,8 +191,13 @@ class Backend { if ($owner !== $principal[2]) { $parameters = [ - $principal[2], - $calendarData['{DAV:}displayname'], + 'actor' => $event->getAuthor(), + 'calendar' => [ + 'id' => (int) $calendarData['id'], + 'uri' => $calendarData['uri'], + 'name' => $calendarData['{DAV:}displayname'], + ], + 'user' => $principal[2], ]; if ($owner === $event->getAuthor()) { @@ -201,7 +210,6 @@ class Backend { $this->activityManager->publish($event); $subject = Calendar::SUBJECT_UNSHARE_USER . '_by'; - $parameters[] = $event->getAuthor(); } $event->setAffectedUser($owner) @@ -212,8 +220,13 @@ class Backend { $this->triggerActivityGroup($principal[2], $event, $calendarData, Calendar::SUBJECT_UNSHARE_USER); $parameters = [ - $principal[2], - $calendarData['{DAV:}displayname'], + 'actor' => $event->getAuthor(), + 'calendar' => [ + 'id' => (int) $calendarData['id'], + 'uri' => $calendarData['uri'], + 'name' => $calendarData['{DAV:}displayname'], + ], + 'group' => $principal[2], ]; if ($owner === $event->getAuthor()) { @@ -224,7 +237,6 @@ class Backend { $this->activityManager->publish($event); $subject = Calendar::SUBJECT_UNSHARE_GROUP . '_by'; - $parameters[] = $event->getAuthor(); } $event->setAffectedUser($owner) @@ -250,8 +262,13 @@ class Backend { if ($owner !== $principal[2]) { $parameters = [ - $principal[2], - $calendarData['{DAV:}displayname'], + 'actor' => $event->getAuthor(), + 'calendar' => [ + 'id' => (int) $calendarData['id'], + 'uri' => $calendarData['uri'], + 'name' => $calendarData['{DAV:}displayname'], + ], + 'user' => $principal[2], ]; if ($owner === $event->getAuthor()) { @@ -262,7 +279,6 @@ class Backend { $this->activityManager->publish($event); $subject = Calendar::SUBJECT_SHARE_USER . '_by'; - $parameters[] = $event->getAuthor(); } $event->setAffectedUser($owner) @@ -273,8 +289,13 @@ class Backend { $this->triggerActivityGroup($principal[2], $event, $calendarData, Calendar::SUBJECT_SHARE_USER); $parameters = [ - $principal[2], - $calendarData['{DAV:}displayname'], + 'actor' => $event->getAuthor(), + 'calendar' => [ + 'id' => (int) $calendarData['id'], + 'uri' => $calendarData['uri'], + 'name' => $calendarData['{DAV:}displayname'], + ], + 'group' => $principal[2], ]; if ($owner === $event->getAuthor()) { @@ -285,7 +306,6 @@ class Backend { $this->activityManager->publish($event); $subject = Calendar::SUBJECT_SHARE_GROUP . '_by'; - $parameters[] = $event->getAuthor(); } $event->setAffectedUser($owner) @@ -347,8 +367,12 @@ class Backend { ->setSubject( $user === $event->getAuthor() && $subjectSelf ? $subjectSelf : $subject, [ - $event->getAuthor(), - $properties['{DAV:}displayname'], + 'actor' => $event->getAuthor(), + 'calendar' => [ + 'id' => (int) $properties['id'], + 'uri' => $properties['uri'], + 'name' => $properties['{DAV:}displayname'], + ], ] ); @@ -401,9 +425,13 @@ class Backend { ->setSubject( $user === $currentUser ? $action . '_self' : $action, [ - $currentUser, - $calendarData['{DAV:}displayname'], - [ + 'actor' => $event->getAuthor(), + 'calendar' => [ + 'id' => (int) $calendarData['id'], + 'uri' => $calendarData['uri'], + 'name' => $calendarData['{DAV:}displayname'], + ], + 'object' => [ 'id' => $object['id'], 'name' => $object['name'], ], diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Base.php b/apps/dav/lib/CalDAV/Activity/Provider/Base.php index 72fdd681b8a..983d05310ac 100644 --- a/apps/dav/lib/CalDAV/Activity/Provider/Base.php +++ b/apps/dav/lib/CalDAV/Activity/Provider/Base.php @@ -21,8 +21,10 @@ namespace OCA\DAV\CalDAV\Activity\Provider; +use OCA\DAV\CalDAV\CalDavBackend; use OCP\Activity\IEvent; use OCP\Activity\IProvider; +use OCP\IL10N; use OCP\IUser; use OCP\IUserManager; @@ -64,7 +66,7 @@ abstract class Base implements IProvider { protected function generateObjectParameter($eventData) { if (!is_array($eventData) || !isset($eventData['id']) || !isset($eventData['name'])) { throw new \InvalidArgumentException(); - }; + } return [ 'type' => 'calendar-event', @@ -74,11 +76,33 @@ abstract class Base implements IProvider { } /** + * @param array $data + * @param IL10N $l + * @return array + */ + protected function generateCalendarParameter($data, IL10N $l) { + if ($data['uri'] === CalDavBackend::PERSONAL_CALENDAR_URI && + $data['name'] === CalDavBackend::PERSONAL_CALENDAR_NAME) { + return [ + 'type' => 'calendar', + 'id' => $data['id'], + 'name' => $l->t('Personal'), + ]; + } + + return [ + 'type' => 'calendar', + 'id' => $data['id'], + 'name' => $data['name'], + ]; + } + + /** * @param int $id * @param string $name * @return array */ - protected function generateCalendarParameter($id, $name) { + protected function generateLegacyCalendarParameter($id, $name) { return [ 'type' => 'calendar', 'id' => $id, diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php b/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php index 36d425ecf63..fb4a0ff45a8 100644 --- a/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php +++ b/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php @@ -156,6 +156,56 @@ class Calendar extends Base { $subject = $event->getSubject(); $parameters = $event->getSubjectParameters(); + // Nextcloud 13+ + if (isset($parameters['calendar'])) { + switch ($subject) { + case self::SUBJECT_ADD: + case self::SUBJECT_ADD . '_self': + case self::SUBJECT_DELETE: + case self::SUBJECT_DELETE . '_self': + case self::SUBJECT_UPDATE: + case self::SUBJECT_UPDATE . '_self': + case self::SUBJECT_SHARE_USER: + case self::SUBJECT_UNSHARE_USER: + case self::SUBJECT_UNSHARE_USER . '_self': + return [ + 'actor' => $this->generateUserParameter($parameters['actor']), + 'calendar' => $this->generateCalendarParameter($parameters['calendar'], $this->l), + ]; + case self::SUBJECT_SHARE_USER . '_you': + case self::SUBJECT_UNSHARE_USER . '_you': + return [ + 'calendar' => $this->generateCalendarParameter($parameters['calendar'], $this->l), + 'user' => $this->generateUserParameter($parameters['user']), + ]; + case self::SUBJECT_SHARE_USER . '_by': + case self::SUBJECT_UNSHARE_USER . '_by': + return [ + 'actor' => $this->generateUserParameter($parameters['actor']), + 'calendar' => $this->generateCalendarParameter($parameters['calendar'], $this->l), + 'user' => $this->generateUserParameter($parameters['user']), + ]; + case self::SUBJECT_SHARE_GROUP . '_you': + case self::SUBJECT_UNSHARE_GROUP . '_you': + return [ + 'calendar' => $this->generateCalendarParameter($parameters['calendar'], $this->l), + 'group' => $this->generateGroupParameter($parameters['group']), + ]; + case self::SUBJECT_SHARE_GROUP . '_by': + case self::SUBJECT_UNSHARE_GROUP . '_by': + return [ + 'actor' => $this->generateUserParameter($parameters['actor']), + 'calendar' => $this->generateCalendarParameter($parameters['calendar'], $this->l), + 'group' => $this->generateGroupParameter($parameters['group']), + ]; + } + } + + // Legacy - Do NOT Remove unless necessary + // Removing this will break parsing of activities that were created on + // Nextcloud 12, so we should keep this as long as it's acceptable. + // Otherwise if people upgrade over multiple releases in a short period, + // they will get the dead entries in their stream. switch ($subject) { case self::SUBJECT_ADD: case self::SUBJECT_ADD . '_self': @@ -168,32 +218,32 @@ class Calendar extends Base { case self::SUBJECT_UNSHARE_USER . '_self': return [ 'actor' => $this->generateUserParameter($parameters[0]), - 'calendar' => $this->generateCalendarParameter((int)$event->getObjectId(), $parameters[1]), + 'calendar' => $this->generateLegacyCalendarParameter((int)$event->getObjectId(), $parameters[1]), ]; case self::SUBJECT_SHARE_USER . '_you': case self::SUBJECT_UNSHARE_USER . '_you': return [ 'user' => $this->generateUserParameter($parameters[0]), - 'calendar' => $this->generateCalendarParameter((int)$event->getObjectId(), $parameters[1]), + 'calendar' => $this->generateLegacyCalendarParameter((int)$event->getObjectId(), $parameters[1]), ]; case self::SUBJECT_SHARE_USER . '_by': case self::SUBJECT_UNSHARE_USER . '_by': return [ 'user' => $this->generateUserParameter($parameters[0]), - 'calendar' => $this->generateCalendarParameter((int)$event->getObjectId(), $parameters[1]), + 'calendar' => $this->generateLegacyCalendarParameter((int)$event->getObjectId(), $parameters[1]), 'actor' => $this->generateUserParameter($parameters[2]), ]; case self::SUBJECT_SHARE_GROUP . '_you': case self::SUBJECT_UNSHARE_GROUP . '_you': return [ 'group' => $this->generateGroupParameter($parameters[0]), - 'calendar' => $this->generateCalendarParameter((int)$event->getObjectId(), $parameters[1]), + 'calendar' => $this->generateLegacyCalendarParameter((int)$event->getObjectId(), $parameters[1]), ]; case self::SUBJECT_SHARE_GROUP . '_by': case self::SUBJECT_UNSHARE_GROUP . '_by': return [ 'group' => $this->generateGroupParameter($parameters[0]), - 'calendar' => $this->generateCalendarParameter((int)$event->getObjectId(), $parameters[1]), + 'calendar' => $this->generateLegacyCalendarParameter((int)$event->getObjectId(), $parameters[1]), 'actor' => $this->generateUserParameter($parameters[2]), ]; } diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Event.php b/apps/dav/lib/CalDAV/Activity/Provider/Event.php index 2c2e3d01c28..7b515d78b14 100644 --- a/apps/dav/lib/CalDAV/Activity/Provider/Event.php +++ b/apps/dav/lib/CalDAV/Activity/Provider/Event.php @@ -118,20 +118,46 @@ class Event extends Base { $subject = $event->getSubject(); $parameters = $event->getSubjectParameters(); + // Nextcloud 13+ + if (isset($parameters['calendar'])) { + switch ($subject) { + case self::SUBJECT_OBJECT_ADD . '_event': + case self::SUBJECT_OBJECT_DELETE . '_event': + case self::SUBJECT_OBJECT_UPDATE . '_event': + return [ + 'actor' => $this->generateUserParameter($parameters['actor']), + 'calendar' => $this->generateCalendarParameter($parameters['calendar'], $this->l), + 'event' => $this->generateObjectParameter($parameters['object']), + ]; + case self::SUBJECT_OBJECT_ADD . '_event_self': + case self::SUBJECT_OBJECT_DELETE . '_event_self': + case self::SUBJECT_OBJECT_UPDATE . '_event_self': + return [ + 'calendar' => $this->generateCalendarParameter($parameters['calendar'], $this->l), + 'event' => $this->generateObjectParameter($parameters['object']), + ]; + } + } + + // Legacy - Do NOT Remove unless necessary + // Removing this will break parsing of activities that were created on + // Nextcloud 12, so we should keep this as long as it's acceptable. + // Otherwise if people upgrade over multiple releases in a short period, + // they will get the dead entries in their stream. switch ($subject) { case self::SUBJECT_OBJECT_ADD . '_event': case self::SUBJECT_OBJECT_DELETE . '_event': case self::SUBJECT_OBJECT_UPDATE . '_event': return [ 'actor' => $this->generateUserParameter($parameters[0]), - 'calendar' => $this->generateCalendarParameter((int)$event->getObjectId(), $parameters[1]), + 'calendar' => $this->generateLegacyCalendarParameter((int)$event->getObjectId(), $parameters[1]), 'event' => $this->generateObjectParameter($parameters[2]), ]; case self::SUBJECT_OBJECT_ADD . '_event_self': case self::SUBJECT_OBJECT_DELETE . '_event_self': case self::SUBJECT_OBJECT_UPDATE . '_event_self': return [ - 'calendar' => $this->generateCalendarParameter((int)$event->getObjectId(), $parameters[1]), + 'calendar' => $this->generateLegacyCalendarParameter((int)$event->getObjectId(), $parameters[1]), 'event' => $this->generateObjectParameter($parameters[2]), ]; } diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Todo.php b/apps/dav/lib/CalDAV/Activity/Provider/Todo.php index a665caa0e6a..20d7afef028 100644 --- a/apps/dav/lib/CalDAV/Activity/Provider/Todo.php +++ b/apps/dav/lib/CalDAV/Activity/Provider/Todo.php @@ -87,6 +87,36 @@ class Todo extends Event { $subject = $event->getSubject(); $parameters = $event->getSubjectParameters(); + // Nextcloud 13+ + if (isset($parameters['calendar'])) { + switch ($subject) { + case self::SUBJECT_OBJECT_ADD . '_todo': + case self::SUBJECT_OBJECT_DELETE . '_todo': + case self::SUBJECT_OBJECT_UPDATE . '_todo': + case self::SUBJECT_OBJECT_UPDATE . '_todo_completed': + case self::SUBJECT_OBJECT_UPDATE . '_todo_needs_action': + return [ + 'actor' => $this->generateUserParameter($parameters['actor']), + 'calendar' => $this->generateCalendarParameter($parameters['calendar'], $this->l), + 'todo' => $this->generateObjectParameter($parameters['object']), + ]; + case self::SUBJECT_OBJECT_ADD . '_todo_self': + case self::SUBJECT_OBJECT_DELETE . '_todo_self': + case self::SUBJECT_OBJECT_UPDATE . '_todo_self': + case self::SUBJECT_OBJECT_UPDATE . '_todo_completed_self': + case self::SUBJECT_OBJECT_UPDATE . '_todo_needs_action_self': + return [ + 'calendar' => $this->generateCalendarParameter($parameters['calendar'], $this->l), + 'todo' => $this->generateObjectParameter($parameters['object']), + ]; + } + } + + // Legacy - Do NOT Remove unless necessary + // Removing this will break parsing of activities that were created on + // Nextcloud 12, so we should keep this as long as it's acceptable. + // Otherwise if people upgrade over multiple releases in a short period, + // they will get the dead entries in their stream. switch ($subject) { case self::SUBJECT_OBJECT_ADD . '_todo': case self::SUBJECT_OBJECT_DELETE . '_todo': @@ -95,7 +125,7 @@ class Todo extends Event { case self::SUBJECT_OBJECT_UPDATE . '_todo_needs_action': return [ 'actor' => $this->generateUserParameter($parameters[0]), - 'calendar' => $this->generateCalendarParameter((int)$event->getObjectId(), $parameters[1]), + 'calendar' => $this->generateLegacyCalendarParameter((int)$event->getObjectId(), $parameters[1]), 'todo' => $this->generateObjectParameter($parameters[2]), ]; case self::SUBJECT_OBJECT_ADD . '_todo_self': @@ -104,7 +134,7 @@ class Todo extends Event { case self::SUBJECT_OBJECT_UPDATE . '_todo_completed_self': case self::SUBJECT_OBJECT_UPDATE . '_todo_needs_action_self': return [ - 'calendar' => $this->generateCalendarParameter((int)$event->getObjectId(), $parameters[1]), + 'calendar' => $this->generateLegacyCalendarParameter((int)$event->getObjectId(), $parameters[1]), 'todo' => $this->generateObjectParameter($parameters[2]), ]; } diff --git a/apps/dav/lib/CalDAV/CalendarObject.php b/apps/dav/lib/CalDAV/CalendarObject.php index 86aa2c98e8d..c268b7410cd 100644 --- a/apps/dav/lib/CalDAV/CalendarObject.php +++ b/apps/dav/lib/CalDAV/CalendarObject.php @@ -37,10 +37,24 @@ class CalendarObject extends \Sabre\CalDAV\CalendarObject { */ function get() { $data = parent::get(); - if ($this->isShared() && $this->objectData['classification'] === CalDavBackend::CLASSIFICATION_CONFIDENTIAL) { - return $this->createConfidentialObject($data); + + if (!$this->isShared()) { + return $data; + } + + $vObject = Reader::read($data); + + // remove VAlarms if calendar is shared read-only + if (!$this->canWrite()) { + $this->removeVAlarms($vObject); + } + + // shows as busy if event is declared confidential + if ($this->objectData['classification'] === CalDavBackend::CLASSIFICATION_CONFIDENTIAL) { + $this->createConfidentialObject($vObject); } - return $data; + + return $vObject->serialize(); } protected function isShared() { @@ -52,13 +66,10 @@ class CalendarObject extends \Sabre\CalDAV\CalendarObject { } /** - * @param string $calData - * @return string + * @param Component\VCalendar $vObject + * @return void */ - private static function createConfidentialObject($calData) { - - $vObject = Reader::read($calData); - + private static function createConfidentialObject(Component\VCalendar $vObject) { /** @var Component $vElement */ $vElement = null; if(isset($vObject->VEVENT)) { @@ -92,8 +103,27 @@ class CalendarObject extends \Sabre\CalDAV\CalendarObject { } } } - - return $vObject->serialize(); } + /** + * @param Component\VCalendar $vObject + * @return void + */ + private function removeVAlarms(Component\VCalendar $vObject) { + $subcomponents = $vObject->getComponents(); + + foreach($subcomponents as $subcomponent) { + unset($subcomponent->VALARM); + } + } + + /** + * @return bool + */ + private function canWrite() { + if (isset($this->calendarInfo['{http://owncloud.org/ns}read-only'])) { + return !$this->calendarInfo['{http://owncloud.org/ns}read-only']; + } + return true; + } } diff --git a/apps/dav/templates/settings-admin-caldav.php b/apps/dav/templates/settings-admin-caldav.php index 34d3517e8d9..8dbe5b38412 100644 --- a/apps/dav/templates/settings-admin-caldav.php +++ b/apps/dav/templates/settings-admin-caldav.php @@ -35,6 +35,6 @@ script('dav', [ <?php ($_['send_invitations'] === 'yes') ? print_unescaped('checked="checked"') : null ?>/> <label for="caldavSendInvitations"><?php p($l->t('Send invitations to attendees')); ?></label> <br> - <em><?php p($l->t('Please make sure to properly setup the email settings above.')); ?></em> + <em><?php p($l->t('Please make sure to properly set up the email settings above.')); ?></em> </p> </form> diff --git a/apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php b/apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php index 3f3b744e5ab..eef69aadf40 100644 --- a/apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php +++ b/apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php @@ -66,7 +66,7 @@ abstract class AbstractCalDavBackend extends TestCase { $this->userManager = $this->createMock(IUserManager::class); $this->groupManager = $this->createMock(IGroupManager::class); $this->dispatcher = $this->createMock(EventDispatcherInterface::class); - $this->principal = $this->getMockBuilder('OCA\DAV\Connector\Sabre\Principal') + $this->principal = $this->getMockBuilder(Principal::class) ->disableOriginalConstructor() ->setMethods(['getPrincipalByPath', 'getGroupMembership']) ->getMock(); diff --git a/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php b/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php index d8d15e8f1f7..dd48d8172d3 100644 --- a/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php +++ b/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php @@ -108,11 +108,13 @@ class BackendTest extends TestCase { [Calendar::SUBJECT_ADD, [ 'principaluri' => 'principal/user/admin', 'id' => 42, + 'uri' => 'this-uri', '{DAV:}displayname' => 'Name of calendar', ], [], [], '', 'admin', null, ['admin']], [Calendar::SUBJECT_ADD, [ 'principaluri' => 'principal/user/admin', 'id' => 42, + 'uri' => 'this-uri', '{DAV:}displayname' => 'Name of calendar', ], [], [], 'test2', 'test2', null, ['admin']], @@ -122,17 +124,20 @@ class BackendTest extends TestCase { [Calendar::SUBJECT_UPDATE, [ 'principaluri' => 'principal/user/admin', 'id' => 42, + 'uri' => 'this-uri', '{DAV:}displayname' => 'Name of calendar', ], ['shares'], [], '', 'admin', null, ['admin']], // Visible change [Calendar::SUBJECT_UPDATE, [ 'principaluri' => 'principal/user/admin', 'id' => 42, + 'uri' => 'this-uri', '{DAV:}displayname' => 'Name of calendar', ], ['shares'], ['{DAV:}displayname' => 'Name'], '', 'admin', ['user1'], ['user1', 'admin']], [Calendar::SUBJECT_UPDATE, [ 'principaluri' => 'principal/user/admin', 'id' => 42, + 'uri' => 'this-uri', '{DAV:}displayname' => 'Name of calendar', ], ['shares'], ['{DAV:}displayname' => 'Name'], 'test2', 'test2', ['user1'], ['user1', 'admin']], @@ -141,16 +146,19 @@ class BackendTest extends TestCase { [Calendar::SUBJECT_DELETE, [ 'principaluri' => 'principal/user/admin', 'id' => 42, + 'uri' => 'this-uri', '{DAV:}displayname' => 'Name of calendar', ], ['shares'], [], '', 'admin', [], ['admin']], [Calendar::SUBJECT_DELETE, [ 'principaluri' => 'principal/user/admin', 'id' => 42, + 'uri' => 'this-uri', '{DAV:}displayname' => 'Name of calendar', ], ['shares'], [], '', 'admin', ['user1'], ['user1', 'admin']], [Calendar::SUBJECT_DELETE, [ 'principaluri' => 'principal/user/admin', 'id' => 42, + 'uri' => 'this-uri', '{DAV:}displayname' => 'Name of calendar', ], ['shares'], [], 'test2', 'test2', ['user1'], ['user1', 'admin']], ]; diff --git a/apps/dav/tests/unit/CalDAV/Activity/Provider/BaseTest.php b/apps/dav/tests/unit/CalDAV/Activity/Provider/BaseTest.php index 85eb439f100..adffaf27ded 100644 --- a/apps/dav/tests/unit/CalDAV/Activity/Provider/BaseTest.php +++ b/apps/dav/tests/unit/CalDAV/Activity/Provider/BaseTest.php @@ -24,6 +24,7 @@ namespace OCA\DAV\Tests\unit\CalDAV\Activity\Provider; use OCA\DAV\CalDAV\Activity\Provider\Base; use OCP\Activity\IEvent; use OCP\Activity\IProvider; +use OCP\IL10N; use OCP\IUser; use OCP\IUserManager; use Test\TestCase; @@ -113,22 +114,51 @@ class BaseTest extends TestCase { public function dataGenerateCalendarParameter() { return [ + [['id' => 23, 'uri' => 'foo', 'name' => 'bar'], 'bar'], + [['id' => 42, 'uri' => 'foo', 'name' => 'Personal'], 'Personal'], + [['id' => 42, 'uri' => 'personal', 'name' => 'bar'], 'bar'], + [['id' => 42, 'uri' => 'personal', 'name' => 'Personal'], 't(Personal)'], + ]; + } + + /** + * @dataProvider dataGenerateCalendarParameter + * @param array $data + * @param string $name + */ + public function testGenerateCalendarParameter(array $data, $name) { + $l = $this->createMock(IL10N::class); + $l->expects($this->any()) + ->method('t') + ->willReturnCallback(function($string, $args) { + return 't(' . vsprintf($string, $args) . ')'; + }); + + $this->assertEquals([ + 'type' => 'calendar', + 'id' => $data['id'], + 'name' => $name, + ], $this->invokePrivate($this->provider, 'generateCalendarParameter', [$data, $l])); + } + + public function dataGenerateLegacyCalendarParameter() { + return [ [23, 'c1'], [42, 'c2'], ]; } /** - * @dataProvider dataGenerateCalendarParameter + * @dataProvider dataGenerateLegacyCalendarParameter * @param int $id * @param string $name */ - public function testGenerateCalendarParameter($id, $name) { + public function testGenerateLegacyCalendarParameter($id, $name) { $this->assertEquals([ 'type' => 'calendar', 'id' => $id, 'name' => $name, - ], $this->invokePrivate($this->provider, 'generateCalendarParameter', [$id, $name])); + ], $this->invokePrivate($this->provider, 'generateLegacyCalendarParameter', [$id, $name])); } public function dataGenerateGroupParameter() { diff --git a/apps/dav/tests/unit/CalDAV/CalendarTest.php b/apps/dav/tests/unit/CalDAV/CalendarTest.php index d9ea25b268c..3fb29fd0c6b 100644 --- a/apps/dav/tests/unit/CalDAV/CalendarTest.php +++ b/apps/dav/tests/unit/CalDAV/CalendarTest.php @@ -38,7 +38,7 @@ class CalendarTest extends TestCase { public function setUp() { parent::setUp(); - $this->l10n = $this->getMockBuilder('\OCP\IL10N') + $this->l10n = $this->getMockBuilder(IL10N::class) ->disableOriginalConstructor()->getMock(); $this->l10n ->expects($this->any()) @@ -381,4 +381,184 @@ EOD; [2, true] ]; } + + public function testRemoveVAlarms() { + $publicObjectData = <<<EOD +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//Nextcloud calendar v1.5.6 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20171022T125130 +DTSTAMP:20171022T125130 +LAST-MODIFIED:20171022T125130 +UID:PPL24TH8UGOWE94XET87ER +SUMMARY:Foo bar blub +CLASS:PUBLIC +STATUS:CONFIRMED +DTSTART;VALUE=DATE:20171024 +DTEND;VALUE=DATE:20171025 +BEGIN:VALARM +ACTION:AUDIO +TRIGGER:-PT15M +END:VALARM +END:VEVENT +END:VCALENDAR + +EOD; + + $confidentialObjectData = <<<EOD +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//Nextcloud calendar v1.5.6 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20171022T125130 +DTSTAMP:20171022T125130 +LAST-MODIFIED:20171022T125130 +UID:PPL24TH8UGOWE94XET87ER +SUMMARY:Foo bar blub +CLASS:CONFIDENTIAL +STATUS:CONFIRMED +DTSTART;VALUE=DATE:20171024 +DTEND;VALUE=DATE:20171025 +BEGIN:VALARM +ACTION:AUDIO +TRIGGER:-PT15M +END:VALARM +END:VEVENT +END:VCALENDAR + +EOD; + + $publicObjectDataWithoutVAlarm = <<<EOD +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//Nextcloud calendar v1.5.6 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20171022T125130 +DTSTAMP:20171022T125130 +LAST-MODIFIED:20171022T125130 +UID:PPL24TH8UGOWE94XET87ER +SUMMARY:Foo bar blub +CLASS:PUBLIC +STATUS:CONFIRMED +DTSTART;VALUE=DATE:20171024 +DTEND;VALUE=DATE:20171025 +END:VEVENT +END:VCALENDAR + +EOD; + + $confidentialObjectCleaned = <<<EOD +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//Nextcloud calendar v1.5.6 +CALSCALE:GREGORIAN +BEGIN:VEVENT +CREATED:20171022T125130 +UID:PPL24TH8UGOWE94XET87ER +SUMMARY:Busy +CLASS:CONFIDENTIAL +DTSTART;VALUE=DATE:20171024 +DTEND;VALUE=DATE:20171025 +END:VEVENT +END:VCALENDAR + +EOD; + + + + $publicObject = ['uri' => 'event-0', + 'classification' => CalDavBackend::CLASSIFICATION_PUBLIC, + 'calendardata' => $publicObjectData]; + + $confidentialObject = ['uri' => 'event-1', + 'classification' => CalDavBackend::CLASSIFICATION_CONFIDENTIAL, + 'calendardata' => $confidentialObjectData]; + + /** @var \PHPUnit_Framework_MockObject_MockObject | CalDavBackend $backend */ + $backend = $this->createMock(CalDavBackend::class); + $backend->expects($this->any()) + ->method('getCalendarObjects') + ->willReturn([$publicObject, $confidentialObject]); + + $backend->expects($this->any()) + ->method('getMultipleCalendarObjects') + ->with(666, ['event-0', 'event-1']) + ->willReturn([$publicObject, $confidentialObject]); + + $backend->expects($this->any()) + ->method('getCalendarObject') + ->will($this->returnCallback(function($cId, $uri) use($publicObject, $confidentialObject) { + switch($uri) { + case 'event-0': + return $publicObject; + + case 'event-1': + return $confidentialObject; + + default: + throw new \Exception('unexpected uri'); + } + })); + + $backend->expects($this->any()) + ->method('applyShareAcl') + ->willReturnArgument(1); + + $calendarInfoOwner = [ + '{http://owncloud.org/ns}owner-principal' => 'user1', + 'principaluri' => 'user1', + 'id' => 666, + 'uri' => 'cal', + ]; + $calendarInfoSharedRW = [ + '{http://owncloud.org/ns}owner-principal' => 'user1', + 'principaluri' => 'user2', + 'id' => 666, + 'uri' => 'cal', + ]; + $calendarInfoSharedRO = [ + '{http://owncloud.org/ns}owner-principal' => 'user1', + '{http://owncloud.org/ns}read-only' => true, + 'principaluri' => 'user2', + 'id' => 666, + 'uri' => 'cal', + ]; + + $ownerCalendar = new Calendar($backend, $calendarInfoOwner, $this->l10n); + $rwCalendar = new Calendar($backend, $calendarInfoSharedRW, $this->l10n); + $roCalendar = new Calendar($backend, $calendarInfoSharedRO, $this->l10n); + + $this->assertEquals(count($ownerCalendar->getChildren()), 2); + $this->assertEquals(count($rwCalendar->getChildren()), 2); + $this->assertEquals(count($roCalendar->getChildren()), 2); + + // calendar data shall not be altered for the owner + $this->assertEquals($ownerCalendar->getChild('event-0')->get(), $publicObjectData); + $this->assertEquals($ownerCalendar->getChild('event-1')->get(), $confidentialObjectData); + + // valarms shall not be removed for read-write shares + $this->assertEquals( + $this->fixLinebreak($rwCalendar->getChild('event-0')->get()), + $this->fixLinebreak($publicObjectData)); + $this->assertEquals( + $this->fixLinebreak($rwCalendar->getChild('event-1')->get()), + $this->fixLinebreak($confidentialObjectCleaned)); + + // valarms shall be removed for read-only shares + $this->assertEquals( + $this->fixLinebreak($roCalendar->getChild('event-0')->get()), + $this->fixLinebreak($publicObjectDataWithoutVAlarm)); + $this->assertEquals( + $this->fixLinebreak($roCalendar->getChild('event-1')->get()), + $this->fixLinebreak($confidentialObjectCleaned)); + + } + + private function fixLinebreak($str) { + return preg_replace('~(*BSR_ANYCRLF)\R~', "\r\n", $str); + } } diff --git a/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php b/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php index ec767f3dbd8..29ab503e082 100644 --- a/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php +++ b/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php @@ -65,7 +65,7 @@ class PublicCalendarRootTest extends TestCase { $this->publicCalendarRoot = new PublicCalendarRoot($this->backend); - $this->l10n = $this->getMockBuilder('\OCP\IL10N') + $this->l10n = $this->getMockBuilder(IL10N::class) ->disableOriginalConstructor()->getMock(); } diff --git a/apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php b/apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php index 69de507dac5..b60c567e9f1 100644 --- a/apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php +++ b/apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php @@ -29,14 +29,14 @@ class PluginTest extends TestCase { public function setUp() { parent::setUp(); - $this->config = $this->getMockBuilder('\OCP\IConfig')-> + $this->config = $this->getMockBuilder(IConfig::class)-> disableOriginalConstructor()-> getMock(); $this->config->expects($this->any())->method('getSystemValue') ->with($this->equalTo('secret')) ->willReturn('mysecret'); - $this->urlGenerator = $this->getMockBuilder('OCP\IURLGenerator')-> + $this->urlGenerator = $this->getMockBuilder(IURLGenerator::class)-> disableOriginalConstructor()-> getMock(); @@ -46,7 +46,7 @@ class PluginTest extends TestCase { $root = new SimpleCollection('calendars'); $this->server = new Server($root); /** @var SimpleCollection $node */ - $this->book = $this->getMockBuilder('OCA\DAV\CalDAV\Calendar')-> + $this->book = $this->getMockBuilder(Calendar::class)-> disableOriginalConstructor()-> getMock(); $this->book->method('getName')->willReturn('cal1'); diff --git a/apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php b/apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php index 56eb00406da..894617781b5 100644 --- a/apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php +++ b/apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php @@ -38,11 +38,11 @@ class IMipPluginTest extends TestCase { public function testDelivery() { $mailMessage = new \OC\Mail\Message(new \Swift_Message()); /** @var Mailer | \PHPUnit_Framework_MockObject_MockObject $mailer */ - $mailer = $this->getMockBuilder('OC\Mail\Mailer')->disableOriginalConstructor()->getMock(); + $mailer = $this->getMockBuilder(Mailer::class)->disableOriginalConstructor()->getMock(); $mailer->method('createMessage')->willReturn($mailMessage); $mailer->expects($this->once())->method('send'); /** @var ILogger | \PHPUnit_Framework_MockObject_MockObject $logger */ - $logger = $this->getMockBuilder('OC\Log')->disableOriginalConstructor()->getMock(); + $logger = $this->getMockBuilder(ILogger::class)->disableOriginalConstructor()->getMock(); $timeFactory = $this->getMockBuilder(ITimeFactory::class)->disableOriginalConstructor()->getMock(); $timeFactory->method('getTime')->willReturn(1); @@ -70,11 +70,11 @@ class IMipPluginTest extends TestCase { public function testFailedDelivery() { $mailMessage = new \OC\Mail\Message(new \Swift_Message()); /** @var Mailer | \PHPUnit_Framework_MockObject_MockObject $mailer */ - $mailer = $this->getMockBuilder('OC\Mail\Mailer')->disableOriginalConstructor()->getMock(); + $mailer = $this->getMockBuilder(Mailer::class)->disableOriginalConstructor()->getMock(); $mailer->method('createMessage')->willReturn($mailMessage); $mailer->method('send')->willThrowException(new \Exception()); /** @var ILogger | \PHPUnit_Framework_MockObject_MockObject $logger */ - $logger = $this->getMockBuilder('OC\Log')->disableOriginalConstructor()->getMock(); + $logger = $this->getMockBuilder(ILogger::class)->disableOriginalConstructor()->getMock(); $timeFactory = $this->getMockBuilder(ITimeFactory::class)->disableOriginalConstructor()->getMock(); $timeFactory->method('getTime')->willReturn(1); @@ -105,7 +105,7 @@ class IMipPluginTest extends TestCase { public function testNoMessageSendForPastEvents($veventParams, $expectsMail) { $mailMessage = new \OC\Mail\Message(new \Swift_Message()); /** @var Mailer | \PHPUnit_Framework_MockObject_MockObject $mailer */ - $mailer = $this->getMockBuilder('OC\Mail\Mailer')->disableOriginalConstructor()->getMock(); + $mailer = $this->getMockBuilder(Mailer::class)->disableOriginalConstructor()->getMock(); $mailer->method('createMessage')->willReturn($mailMessage); if ($expectsMail) { $mailer->expects($this->once())->method('send'); @@ -113,7 +113,7 @@ class IMipPluginTest extends TestCase { $mailer->expects($this->never())->method('send'); } /** @var ILogger | \PHPUnit_Framework_MockObject_MockObject $logger */ - $logger = $this->getMockBuilder('OC\Log')->disableOriginalConstructor()->getMock(); + $logger = $this->getMockBuilder(ILogger::class)->disableOriginalConstructor()->getMock(); $timeFactory = $this->getMockBuilder(ITimeFactory::class)->disableOriginalConstructor()->getMock(); $timeFactory->method('getTime')->willReturn(1496912528); diff --git a/apps/dav/tests/unit/CardDAV/AddressBookTest.php b/apps/dav/tests/unit/CardDAV/AddressBookTest.php index 132fa4796db..0e3d7c6f9b1 100644 --- a/apps/dav/tests/unit/CardDAV/AddressBookTest.php +++ b/apps/dav/tests/unit/CardDAV/AddressBookTest.php @@ -33,7 +33,7 @@ class AddressBookTest extends TestCase { public function testDelete() { /** @var \PHPUnit_Framework_MockObject_MockObject | CardDavBackend $backend */ - $backend = $this->getMockBuilder('OCA\DAV\CardDAV\CardDavBackend')->disableOriginalConstructor()->getMock(); + $backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock(); $backend->expects($this->once())->method('updateShares'); $backend->expects($this->any())->method('getShares')->willReturn([ ['href' => 'principal:user2'] @@ -55,7 +55,7 @@ class AddressBookTest extends TestCase { */ public function testDeleteFromGroup() { /** @var \PHPUnit_Framework_MockObject_MockObject | CardDavBackend $backend */ - $backend = $this->getMockBuilder('OCA\DAV\CardDAV\CardDavBackend')->disableOriginalConstructor()->getMock(); + $backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock(); $backend->expects($this->never())->method('updateShares'); $backend->expects($this->any())->method('getShares')->willReturn([ ['href' => 'principal:group2'] @@ -77,7 +77,7 @@ class AddressBookTest extends TestCase { */ public function testPropPatch() { /** @var \PHPUnit_Framework_MockObject_MockObject | CardDavBackend $backend */ - $backend = $this->getMockBuilder('OCA\DAV\CardDAV\CardDavBackend')->disableOriginalConstructor()->getMock(); + $backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock(); $calendarInfo = [ '{http://owncloud.org/ns}owner-principal' => 'user1', '{DAV:}displayname' => 'Test address book', @@ -95,7 +95,7 @@ class AddressBookTest extends TestCase { */ public function testAcl($expectsWrite, $readOnlyValue, $hasOwnerSet) { /** @var \PHPUnit_Framework_MockObject_MockObject | CardDavBackend $backend */ - $backend = $this->getMockBuilder('OCA\DAV\CardDAV\CardDavBackend')->disableOriginalConstructor()->getMock(); + $backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock(); $backend->expects($this->any())->method('applyShareAcl')->willReturnArgument(1); $calendarInfo = [ '{DAV:}displayname' => 'Test address book', diff --git a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php index 992445392d5..a8c0ce9d9c7 100644 --- a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php +++ b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php @@ -85,7 +85,7 @@ class CardDavBackendTest extends TestCase { $this->userManager = $this->createMock(IUserManager::class); $this->groupManager = $this->createMock(IGroupManager::class); - $this->principal = $this->getMockBuilder('OCA\DAV\Connector\Sabre\Principal') + $this->principal = $this->getMockBuilder(Principal::class) ->disableOriginalConstructor() ->setMethods(['getPrincipalByPath', 'getGroupMembership']) ->getMock(); diff --git a/apps/dav/tests/unit/CardDAV/ContactsManagerTest.php b/apps/dav/tests/unit/CardDAV/ContactsManagerTest.php index a6f0384cc38..7a773ac999c 100644 --- a/apps/dav/tests/unit/CardDAV/ContactsManagerTest.php +++ b/apps/dav/tests/unit/CardDAV/ContactsManagerTest.php @@ -28,16 +28,17 @@ use OCA\DAV\CardDAV\CardDavBackend; use OCA\DAV\CardDAV\ContactsManager; use OCP\Contacts\IManager; use OCP\IL10N; +use OCP\IURLGenerator; use Test\TestCase; class ContactsManagerTest extends TestCase { public function test() { /** @var IManager | \PHPUnit_Framework_MockObject_MockObject $cm */ - $cm = $this->getMockBuilder('OCP\Contacts\IManager')->disableOriginalConstructor()->getMock(); + $cm = $this->getMockBuilder(IManager::class)->disableOriginalConstructor()->getMock(); $cm->expects($this->exactly(2))->method('registerAddressBook'); - $urlGenerator = $this->getMockBuilder('OCP\IUrlGenerator')->disableOriginalConstructor()->getMock(); + $urlGenerator = $this->getMockBuilder(IURLGenerator::class)->disableOriginalConstructor()->getMock(); /** @var CardDavBackend | \PHPUnit_Framework_MockObject_MockObject $backEnd */ - $backEnd = $this->getMockBuilder('OCA\DAV\CardDAV\CardDavBackend')->disableOriginalConstructor()->getMock(); + $backEnd = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock(); $backEnd->method('getAddressBooksForUser')->willReturn([ ['{DAV:}displayname' => 'Test address book', 'uri' => 'default'], ]); diff --git a/apps/dav/tests/unit/CardDAV/ConverterTest.php b/apps/dav/tests/unit/CardDAV/ConverterTest.php index 39853cfd5c8..9ab0631e93a 100644 --- a/apps/dav/tests/unit/CardDAV/ConverterTest.php +++ b/apps/dav/tests/unit/CardDAV/ConverterTest.php @@ -46,15 +46,15 @@ class ConverterTest extends TestCase { public function setUp() { parent::setUp(); - $this->databaseConnection = $this->getMockBuilder('OCP\IDBConnection')->getMock(); - $this->eventDispatcher = $this->getMockBuilder('Symfony\Component\EventDispatcher\EventDispatcher') + $this->databaseConnection = $this->getMockBuilder(IDBConnection::class)->getMock(); + $this->eventDispatcher = $this->getMockBuilder(EventDispatcher::class) ->disableOriginalConstructor()->getMock(); - $this->accountManager = $this->getMockBuilder('OC\Accounts\AccountManager') + $this->accountManager = $this->getMockBuilder(AccountManager::class) ->disableOriginalConstructor()->getMock(); } public function getAccountManager(IUser $user) { - $accountManager = $this->getMockBuilder('OC\Accounts\AccountManager') + $accountManager = $this->getMockBuilder(AccountManager::class) ->disableOriginalConstructor()->getMock(); $accountManager->expects($this->any())->method('getUser')->willReturn( [ diff --git a/apps/dav/tests/unit/CardDAV/Sharing/PluginTest.php b/apps/dav/tests/unit/CardDAV/Sharing/PluginTest.php index 00049075865..4d4070511bb 100644 --- a/apps/dav/tests/unit/CardDAV/Sharing/PluginTest.php +++ b/apps/dav/tests/unit/CardDAV/Sharing/PluginTest.php @@ -47,17 +47,17 @@ class PluginTest extends TestCase { parent::setUp(); /** @var Auth | \PHPUnit_Framework_MockObject_MockObject $authBackend */ - $authBackend = $this->getMockBuilder('OCA\DAV\Connector\Sabre\Auth')->disableOriginalConstructor()->getMock(); + $authBackend = $this->getMockBuilder(Auth::class)->disableOriginalConstructor()->getMock(); $authBackend->method('isDavAuthenticated')->willReturn(true); /** @var IRequest $request */ - $request = $this->getMockBuilder('OCP\IRequest')->disableOriginalConstructor()->getMock(); + $request = $this->getMockBuilder(IRequest::class)->disableOriginalConstructor()->getMock(); $this->plugin = new Plugin($authBackend, $request); $root = new SimpleCollection('root'); $this->server = new \Sabre\DAV\Server($root); /** @var SimpleCollection $node */ - $this->book = $this->getMockBuilder('OCA\DAV\DAV\Sharing\IShareable')->disableOriginalConstructor()->getMock(); + $this->book = $this->getMockBuilder(IShareable::class)->disableOriginalConstructor()->getMock(); $this->book->method('getName')->willReturn('addressbook1.vcf'); $root->addChild($this->book); $this->plugin->initialize($this->server); diff --git a/apps/dav/tests/unit/CardDAV/SyncServiceTest.php b/apps/dav/tests/unit/CardDAV/SyncServiceTest.php index 32f8a2424b1..debc9238067 100644 --- a/apps/dav/tests/unit/CardDAV/SyncServiceTest.php +++ b/apps/dav/tests/unit/CardDAV/SyncServiceTest.php @@ -28,6 +28,7 @@ namespace OCA\DAV\Tests\unit\CardDAV; use OC\Accounts\AccountManager; use OCA\DAV\CardDAV\CardDavBackend; use OCA\DAV\CardDAV\SyncService; +use OCP\ILogger; use OCP\IUser; use OCP\IUserManager; use Test\TestCase; @@ -75,9 +76,9 @@ class SyncServiceTest extends TestCase { $backend->expects($this->at(1))->method('getAddressBooksByUri')->willReturn([]); /** @var IUserManager $userManager */ - $userManager = $this->getMockBuilder('OCP\IUserManager')->disableOriginalConstructor()->getMock(); - $logger = $this->getMockBuilder('OCP\ILogger')->disableOriginalConstructor()->getMock(); - $accountManager = $this->getMockBuilder('OC\Accounts\AccountManager')->disableOriginalConstructor()->getMock(); + $userManager = $this->getMockBuilder(IUserManager::class)->disableOriginalConstructor()->getMock(); + $logger = $this->getMockBuilder(ILogger::class)->disableOriginalConstructor()->getMock(); + $accountManager = $this->getMockBuilder(AccountManager::class)->disableOriginalConstructor()->getMock(); $ss = new SyncService($backend, $userManager, $logger, $accountManager); $book = $ss->ensureSystemAddressBookExists('principals/users/adam', 'contacts', []); } @@ -85,7 +86,7 @@ class SyncServiceTest extends TestCase { public function testUpdateAndDeleteUser() { /** @var CardDavBackend | \PHPUnit_Framework_MockObject_MockObject $backend */ $backend = $this->getMockBuilder(CardDavBackend::class)->disableOriginalConstructor()->getMock(); - $logger = $this->getMockBuilder('OCP\ILogger')->disableOriginalConstructor()->getMock(); + $logger = $this->getMockBuilder(ILogger::class)->disableOriginalConstructor()->getMock(); $backend->expects($this->once())->method('createCard'); $backend->expects($this->once())->method('updateCard'); @@ -96,15 +97,15 @@ class SyncServiceTest extends TestCase { ]); /** @var IUserManager | \PHPUnit_Framework_MockObject_MockObject $userManager */ - $userManager = $this->getMockBuilder('OCP\IUserManager')->disableOriginalConstructor()->getMock(); + $userManager = $this->getMockBuilder(IUserManager::class)->disableOriginalConstructor()->getMock(); /** @var IUser | \PHPUnit_Framework_MockObject_MockObject $user */ - $user = $this->getMockBuilder('OCP\IUser')->disableOriginalConstructor()->getMock(); + $user = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $user->method('getBackendClassName')->willReturn('unittest'); $user->method('getUID')->willReturn('test-user'); $user->method('getCloudId')->willReturn('cloudId'); $user->method('getDisplayName')->willReturn('test-user'); - $accountManager = $this->getMockBuilder('OC\Accounts\AccountManager')->disableOriginalConstructor()->getMock(); + $accountManager = $this->getMockBuilder(AccountManager::class)->disableOriginalConstructor()->getMock(); $accountManager->expects($this->any())->method('getUser') ->willReturn([ AccountManager::PROPERTY_DISPLAYNAME => @@ -174,9 +175,9 @@ class SyncServiceTest extends TestCase { * @return SyncService|\PHPUnit_Framework_MockObject_MockObject */ private function getSyncServiceMock($backend, $response) { - $userManager = $this->getMockBuilder('OCP\IUserManager')->disableOriginalConstructor()->getMock(); - $logger = $this->getMockBuilder('OCP\ILogger')->disableOriginalConstructor()->getMock(); - $accountManager = $this->getMockBuilder('OC\Accounts\AccountManager')->disableOriginalConstructor()->getMock(); + $userManager = $this->getMockBuilder(IUserManager::class)->disableOriginalConstructor()->getMock(); + $logger = $this->getMockBuilder(ILogger::class)->disableOriginalConstructor()->getMock(); + $accountManager = $this->getMockBuilder(AccountManager::class)->disableOriginalConstructor()->getMock(); /** @var SyncService | \PHPUnit_Framework_MockObject_MockObject $ss */ $ss = $this->getMockBuilder(SyncService::class) ->setMethods(['ensureSystemAddressBookExists', 'requestSyncReport', 'download', 'getCertPath']) diff --git a/apps/dav/tests/unit/Comments/CommentsNodeTest.php b/apps/dav/tests/unit/Comments/CommentsNodeTest.php index 226aa57598c..a0ff029efa7 100644 --- a/apps/dav/tests/unit/Comments/CommentsNodeTest.php +++ b/apps/dav/tests/unit/Comments/CommentsNodeTest.php @@ -26,8 +26,14 @@ namespace OCA\DAV\Tests\unit\Comments; use OCA\DAV\Comments\CommentNode; +use OCP\Comments\IComment; use OCP\Comments\ICommentsManager; use OCP\Comments\MessageTooLongException; +use OCP\ILogger; +use OCP\IUser; +use OCP\IUserManager; +use OCP\IUserSession; +use Sabre\DAV\PropPatch; class CommentsNodeTest extends \Test\TestCase { @@ -43,19 +49,19 @@ class CommentsNodeTest extends \Test\TestCase { public function setUp() { parent::setUp(); - $this->commentsManager = $this->getMockBuilder('\OCP\Comments\ICommentsManager') + $this->commentsManager = $this->getMockBuilder(ICommentsManager::class) ->disableOriginalConstructor() ->getMock(); - $this->comment = $this->getMockBuilder('\OCP\Comments\IComment') + $this->comment = $this->getMockBuilder(IComment::class) ->disableOriginalConstructor() ->getMock(); - $this->userManager = $this->getMockBuilder('\OCP\IUserManager') + $this->userManager = $this->getMockBuilder(IUserManager::class) ->disableOriginalConstructor() ->getMock(); - $this->userSession = $this->getMockBuilder('\OCP\IUserSession') + $this->userSession = $this->getMockBuilder(IUserSession::class) ->disableOriginalConstructor() ->getMock(); - $this->logger = $this->getMockBuilder('\OCP\ILogger') + $this->logger = $this->getMockBuilder(ILogger::class) ->disableOriginalConstructor() ->getMock(); @@ -69,7 +75,7 @@ class CommentsNodeTest extends \Test\TestCase { } public function testDelete() { - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); @@ -104,7 +110,7 @@ class CommentsNodeTest extends \Test\TestCase { * @expectedException \Sabre\DAV\Exception\Forbidden */ public function testDeleteForbidden() { - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); @@ -156,7 +162,7 @@ class CommentsNodeTest extends \Test\TestCase { public function testUpdateComment() { $msg = 'Hello Earth'; - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); @@ -188,13 +194,13 @@ class CommentsNodeTest extends \Test\TestCase { } /** - * @expectedException Exception + * @expectedException \Exception * @expectedExceptionMessage buh! */ public function testUpdateCommentLogException() { $msg = null; - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); @@ -233,7 +239,7 @@ class CommentsNodeTest extends \Test\TestCase { * @expectedExceptionMessage Message exceeds allowed character limit of */ public function testUpdateCommentMessageTooLongException() { - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); @@ -273,7 +279,7 @@ class CommentsNodeTest extends \Test\TestCase { public function testUpdateForbiddenByUser() { $msg = 'HaXX0r'; - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); @@ -308,7 +314,7 @@ class CommentsNodeTest extends \Test\TestCase { public function testUpdateForbiddenByType() { $msg = 'HaXX0r'; - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); @@ -356,7 +362,7 @@ class CommentsNodeTest extends \Test\TestCase { } public function testPropPatch() { - $propPatch = $this->getMockBuilder('Sabre\DAV\PropPatch') + $propPatch = $this->getMockBuilder(PropPatch::class) ->disableOriginalConstructor() ->getMock(); @@ -461,7 +467,7 @@ class CommentsNodeTest extends \Test\TestCase { ->method('getObjectId') ->will($this->returnValue($expected[$ns . 'objectId'])); - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->expects($this->once()) @@ -515,7 +521,7 @@ class CommentsNodeTest extends \Test\TestCase { $this->userSession->expects($this->once()) ->method('getUser') ->will($this->returnValue( - $this->getMockBuilder('\OCP\IUser') + $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock() )); diff --git a/apps/dav/tests/unit/Comments/CommentsPluginTest.php b/apps/dav/tests/unit/Comments/CommentsPluginTest.php index 265afad96c3..e0f7a09a502 100644 --- a/apps/dav/tests/unit/Comments/CommentsPluginTest.php +++ b/apps/dav/tests/unit/Comments/CommentsPluginTest.php @@ -27,19 +27,27 @@ namespace OCA\DAV\Tests\unit\Comments; use OC\Comments\Comment; use OCA\DAV\Comments\CommentsPlugin as CommentsPluginImplementation; +use OCA\DAV\Comments\EntityCollection; use OCP\Comments\IComment; +use OCP\Comments\ICommentsManager; +use OCP\IUser; +use OCP\IUserSession; +use Sabre\DAV\INode; +use Sabre\DAV\Tree; +use Sabre\HTTP\RequestInterface; +use Sabre\HTTP\ResponseInterface; class CommentsPluginTest extends \Test\TestCase { /** @var \Sabre\DAV\Server */ private $server; - /** @var \Sabre\DAV\Tree */ + /** @var Tree */ private $tree; - /** @var \OCP\Comments\ICommentsManager */ + /** @var ICommentsManager */ private $commentsManager; - /** @var \OCP\IUserSession */ + /** @var IUserSession */ private $userSession; /** @var CommentsPluginImplementation */ @@ -47,7 +55,7 @@ class CommentsPluginTest extends \Test\TestCase { public function setUp() { parent::setUp(); - $this->tree = $this->getMockBuilder('\Sabre\DAV\Tree') + $this->tree = $this->getMockBuilder(Tree::class) ->disableOriginalConstructor() ->getMock(); @@ -56,10 +64,10 @@ class CommentsPluginTest extends \Test\TestCase { ->setMethods(['getRequestUri']) ->getMock(); - $this->commentsManager = $this->getMockBuilder('\OCP\Comments\ICommentsManager') + $this->commentsManager = $this->getMockBuilder(ICommentsManager::class) ->disableOriginalConstructor() ->getMock(); - $this->userSession = $this->getMockBuilder('\OCP\IUserSession') + $this->userSession = $this->getMockBuilder(IUserSession::class) ->disableOriginalConstructor() ->getMock(); @@ -85,14 +93,14 @@ class CommentsPluginTest extends \Test\TestCase { $requestData = json_encode($commentData); - $user = $this->getMockBuilder('OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->expects($this->once()) ->method('getUID') ->will($this->returnValue('alice')); - $node = $this->getMockBuilder('\OCA\DAV\Comments\EntityCollection') + $node = $this->getMockBuilder(EntityCollection::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->once()) @@ -124,11 +132,11 @@ class CommentsPluginTest extends \Test\TestCase { ->with('/' . $path) ->will($this->returnValue($node)); - $request = $this->getMockBuilder('Sabre\HTTP\RequestInterface') + $request = $this->getMockBuilder(RequestInterface::class) ->disableOriginalConstructor() ->getMock(); - $response = $this->getMockBuilder('Sabre\HTTP\ResponseInterface') + $response = $this->getMockBuilder(ResponseInterface::class) ->disableOriginalConstructor() ->getMock(); @@ -181,13 +189,13 @@ class CommentsPluginTest extends \Test\TestCase { $path = 'comments/files/666'; - $user = $this->getMockBuilder('OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->expects($this->never()) ->method('getUID'); - $node = $this->getMockBuilder('\OCA\DAV\Comments\EntityCollection') + $node = $this->getMockBuilder(EntityCollection::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->never()) @@ -210,11 +218,11 @@ class CommentsPluginTest extends \Test\TestCase { ->with('/' . $path) ->will($this->throwException(new \Sabre\DAV\Exception\NotFound())); - $request = $this->getMockBuilder('Sabre\HTTP\RequestInterface') + $request = $this->getMockBuilder(RequestInterface::class) ->disableOriginalConstructor() ->getMock(); - $response = $this->getMockBuilder('Sabre\HTTP\ResponseInterface') + $response = $this->getMockBuilder(ResponseInterface::class) ->disableOriginalConstructor() ->getMock(); @@ -265,13 +273,13 @@ class CommentsPluginTest extends \Test\TestCase { $requestData = json_encode($commentData); - $user = $this->getMockBuilder('OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->expects($this->never()) ->method('getUID'); - $node = $this->getMockBuilder('\OCA\DAV\Comments\EntityCollection') + $node = $this->getMockBuilder(EntityCollection::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->once()) @@ -296,11 +304,11 @@ class CommentsPluginTest extends \Test\TestCase { ->with('/' . $path) ->will($this->returnValue($node)); - $request = $this->getMockBuilder('Sabre\HTTP\RequestInterface') + $request = $this->getMockBuilder(RequestInterface::class) ->disableOriginalConstructor() ->getMock(); - $response = $this->getMockBuilder('Sabre\HTTP\ResponseInterface') + $response = $this->getMockBuilder(ResponseInterface::class) ->disableOriginalConstructor() ->getMock(); @@ -353,13 +361,13 @@ class CommentsPluginTest extends \Test\TestCase { $requestData = json_encode($commentData); - $user = $this->getMockBuilder('OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->expects($this->never()) ->method('getUID'); - $node = $this->getMockBuilder('\OCA\DAV\Comments\EntityCollection') + $node = $this->getMockBuilder(EntityCollection::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->once()) @@ -384,11 +392,11 @@ class CommentsPluginTest extends \Test\TestCase { ->with('/' . $path) ->will($this->returnValue($node)); - $request = $this->getMockBuilder('Sabre\HTTP\RequestInterface') + $request = $this->getMockBuilder(RequestInterface::class) ->disableOriginalConstructor() ->getMock(); - $response = $this->getMockBuilder('Sabre\HTTP\ResponseInterface') + $response = $this->getMockBuilder(ResponseInterface::class) ->disableOriginalConstructor() ->getMock(); @@ -443,14 +451,14 @@ class CommentsPluginTest extends \Test\TestCase { $requestData = json_encode($commentData); - $user = $this->getMockBuilder('OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->expects($this->once()) ->method('getUID') ->will($this->returnValue('alice')); - $node = $this->getMockBuilder('\OCA\DAV\Comments\EntityCollection') + $node = $this->getMockBuilder(EntityCollection::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->once()) @@ -478,11 +486,11 @@ class CommentsPluginTest extends \Test\TestCase { ->with('/' . $path) ->will($this->returnValue($node)); - $request = $this->getMockBuilder('Sabre\HTTP\RequestInterface') + $request = $this->getMockBuilder(RequestInterface::class) ->disableOriginalConstructor() ->getMock(); - $response = $this->getMockBuilder('Sabre\HTTP\ResponseInterface') + $response = $this->getMockBuilder(ResponseInterface::class) ->disableOriginalConstructor() ->getMock(); @@ -537,14 +545,14 @@ class CommentsPluginTest extends \Test\TestCase { $requestData = json_encode($commentData); - $user = $this->getMockBuilder('OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->expects($this->once()) ->method('getUID') ->will($this->returnValue('alice')); - $node = $this->getMockBuilder('\OCA\DAV\Comments\EntityCollection') + $node = $this->getMockBuilder(EntityCollection::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->once()) @@ -575,11 +583,11 @@ class CommentsPluginTest extends \Test\TestCase { ->with('/' . $path) ->will($this->returnValue($node)); - $request = $this->getMockBuilder('Sabre\HTTP\RequestInterface') + $request = $this->getMockBuilder(RequestInterface::class) ->disableOriginalConstructor() ->getMock(); - $response = $this->getMockBuilder('Sabre\HTTP\ResponseInterface') + $response = $this->getMockBuilder(ResponseInterface::class) ->disableOriginalConstructor() ->getMock(); @@ -617,7 +625,7 @@ class CommentsPluginTest extends \Test\TestCase { ->method('getNodeForPath') ->with('/' . $path) ->will($this->returnValue( - $this->getMockBuilder('\Sabre\DAV\INode') + $this->getMockBuilder(INode::class) ->disableOriginalConstructor() ->getMock() )); @@ -640,7 +648,7 @@ class CommentsPluginTest extends \Test\TestCase { ->method('getNodeForPath') ->with('/' . $path) ->will($this->returnValue( - $this->getMockBuilder('\Sabre\DAV\INode') + $this->getMockBuilder(INode::class) ->disableOriginalConstructor() ->getMock() )); @@ -671,7 +679,7 @@ class CommentsPluginTest extends \Test\TestCase { ] ]; - $node = $this->getMockBuilder('\OCA\DAV\Comments\EntityCollection') + $node = $this->getMockBuilder(EntityCollection::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->once()) @@ -679,7 +687,7 @@ class CommentsPluginTest extends \Test\TestCase { ->with(5, 10, null) ->will($this->returnValue([])); - $response = $this->getMockBuilder('Sabre\HTTP\ResponseInterface') + $response = $this->getMockBuilder(ResponseInterface::class) ->disableOriginalConstructor() ->getMock(); @@ -726,7 +734,7 @@ class CommentsPluginTest extends \Test\TestCase { ] ]; - $node = $this->getMockBuilder('\OCA\DAV\Comments\EntityCollection') + $node = $this->getMockBuilder(EntityCollection::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->once()) @@ -734,7 +742,7 @@ class CommentsPluginTest extends \Test\TestCase { ->with(5, 10, new \DateTime($parameters[2]['value'])) ->will($this->returnValue([])); - $response = $this->getMockBuilder('Sabre\HTTP\ResponseInterface') + $response = $this->getMockBuilder(ResponseInterface::class) ->disableOriginalConstructor() ->getMock(); diff --git a/apps/dav/tests/unit/Comments/EntityCollectionTest.php b/apps/dav/tests/unit/Comments/EntityCollectionTest.php index c4e343d49d4..0cac135843b 100644 --- a/apps/dav/tests/unit/Comments/EntityCollectionTest.php +++ b/apps/dav/tests/unit/Comments/EntityCollectionTest.php @@ -24,32 +24,39 @@ namespace OCA\DAV\Tests\unit\Comments; +use OCA\DAV\Comments\EntityCollection; +use OCP\Comments\IComment; +use OCP\Comments\ICommentsManager; +use OCP\ILogger; +use OCP\IUserManager; +use OCP\IUserSession; + class EntityCollectionTest extends \Test\TestCase { /** @var \OCP\Comments\ICommentsManager|\PHPUnit_Framework_MockObject_MockObject */ protected $commentsManager; - /** @var \OCP\IUserManager|\PHPUnit_Framework_MockObject_MockObject */ + /** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */ protected $userManager; - /** @var \OCP\ILogger|\PHPUnit_Framework_MockObject_MockObject */ + /** @var ILogger|\PHPUnit_Framework_MockObject_MockObject */ protected $logger; - /** @var \OCA\DAV\Comments\EntityCollection */ + /** @var EntityCollection */ protected $collection; - /** @var \OCP\IUserSession|\PHPUnit_Framework_MockObject_MockObject */ + /** @var IUserSession|\PHPUnit_Framework_MockObject_MockObject */ protected $userSession; public function setUp() { parent::setUp(); - $this->commentsManager = $this->getMockBuilder('\OCP\Comments\ICommentsManager') + $this->commentsManager = $this->getMockBuilder(ICommentsManager::class) ->disableOriginalConstructor() ->getMock(); - $this->userManager = $this->getMockBuilder('\OCP\IUserManager') + $this->userManager = $this->getMockBuilder(IUserManager::class) ->disableOriginalConstructor() ->getMock(); - $this->userSession = $this->getMockBuilder('\OCP\IUserSession') + $this->userSession = $this->getMockBuilder(IUserSession::class) ->disableOriginalConstructor() ->getMock(); - $this->logger = $this->getMockBuilder('\OCP\ILogger') + $this->logger = $this->getMockBuilder(ILogger::class) ->disableOriginalConstructor() ->getMock(); @@ -72,7 +79,7 @@ class EntityCollectionTest extends \Test\TestCase { ->method('get') ->with('55') ->will($this->returnValue( - $this->getMockBuilder('\OCP\Comments\IComment') + $this->getMockBuilder(IComment::class) ->disableOriginalConstructor() ->getMock() )); @@ -98,7 +105,7 @@ class EntityCollectionTest extends \Test\TestCase { ->method('getForObject') ->with('files', '19') ->will($this->returnValue([ - $this->getMockBuilder('\OCP\Comments\IComment') + $this->getMockBuilder(IComment::class) ->disableOriginalConstructor() ->getMock() ])); @@ -115,7 +122,7 @@ class EntityCollectionTest extends \Test\TestCase { ->method('getForObject') ->with('files', '19', 5, 15, $dt) ->will($this->returnValue([ - $this->getMockBuilder('\OCP\Comments\IComment') + $this->getMockBuilder(IComment::class) ->disableOriginalConstructor() ->getMock() ])); diff --git a/apps/dav/tests/unit/Comments/EntityTypeCollectionTest.php b/apps/dav/tests/unit/Comments/EntityTypeCollectionTest.php index 17c4f70fa7f..c63d95ad533 100644 --- a/apps/dav/tests/unit/Comments/EntityTypeCollectionTest.php +++ b/apps/dav/tests/unit/Comments/EntityTypeCollectionTest.php @@ -25,10 +25,14 @@ namespace OCA\DAV\Tests\unit\Comments; use OCA\DAV\Comments\EntityCollection as EntityCollectionImplemantation; +use OCP\Comments\ICommentsManager; +use OCP\ILogger; +use OCP\IUserManager; +use OCP\IUserSession; class EntityTypeCollectionTest extends \Test\TestCase { - /** @var \OCP\Comments\ICommentsManager|\PHPUnit_Framework_MockObject_MockObject */ + /** @var ICommentsManager|\PHPUnit_Framework_MockObject_MockObject */ protected $commentsManager; /** @var \OCP\IUserManager|\PHPUnit_Framework_MockObject_MockObject */ protected $userManager; @@ -36,7 +40,7 @@ class EntityTypeCollectionTest extends \Test\TestCase { protected $logger; /** @var \OCA\DAV\Comments\EntityTypeCollection */ protected $collection; - /** @var \OCP\IUserSession|\PHPUnit_Framework_MockObject_MockObject */ + /** @var IUserSession|\PHPUnit_Framework_MockObject_MockObject */ protected $userSession; protected $childMap = []; @@ -44,16 +48,16 @@ class EntityTypeCollectionTest extends \Test\TestCase { public function setUp() { parent::setUp(); - $this->commentsManager = $this->getMockBuilder('\OCP\Comments\ICommentsManager') + $this->commentsManager = $this->getMockBuilder(ICommentsManager::class) ->disableOriginalConstructor() ->getMock(); - $this->userManager = $this->getMockBuilder('\OCP\IUserManager') + $this->userManager = $this->getMockBuilder(IUserManager::class) ->disableOriginalConstructor() ->getMock(); - $this->userSession = $this->getMockBuilder('\OCP\IUserSession') + $this->userSession = $this->getMockBuilder(IUserSession::class) ->disableOriginalConstructor() ->getMock(); - $this->logger = $this->getMockBuilder('\OCP\ILogger') + $this->logger = $this->getMockBuilder(ILogger::class) ->disableOriginalConstructor() ->getMock(); diff --git a/apps/dav/tests/unit/Comments/RootCollectionTest.php b/apps/dav/tests/unit/Comments/RootCollectionTest.php index 95afc42a912..05fb94239b4 100644 --- a/apps/dav/tests/unit/Comments/RootCollectionTest.php +++ b/apps/dav/tests/unit/Comments/RootCollectionTest.php @@ -26,6 +26,11 @@ namespace OCA\DAV\Tests\unit\Comments; use OCA\DAV\Comments\EntityTypeCollection as EntityTypeCollectionImplementation; use OCP\Comments\CommentsEntityEvent; +use OCP\Comments\ICommentsManager; +use OCP\ILogger; +use OCP\IUser; +use OCP\IUserManager; +use OCP\IUserSession; use Symfony\Component\EventDispatcher\EventDispatcher; class RootCollectionTest extends \Test\TestCase { @@ -48,21 +53,21 @@ class RootCollectionTest extends \Test\TestCase { public function setUp() { parent::setUp(); - $this->user = $this->getMockBuilder('\OCP\IUser') + $this->user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); - $this->commentsManager = $this->getMockBuilder('\OCP\Comments\ICommentsManager') + $this->commentsManager = $this->getMockBuilder(ICommentsManager::class) ->disableOriginalConstructor() ->getMock(); - $this->userManager = $this->getMockBuilder('\OCP\IUserManager') + $this->userManager = $this->getMockBuilder(IUserManager::class) ->disableOriginalConstructor() ->getMock(); - $this->userSession = $this->getMockBuilder('\OCP\IUserSession') + $this->userSession = $this->getMockBuilder(IUserSession::class) ->disableOriginalConstructor() ->getMock(); $this->dispatcher = new EventDispatcher(); - $this->logger = $this->getMockBuilder('\OCP\ILogger') + $this->logger = $this->getMockBuilder(ILogger::class) ->disableOriginalConstructor() ->getMock(); diff --git a/apps/dav/tests/unit/Connector/PublicAuthTest.php b/apps/dav/tests/unit/Connector/PublicAuthTest.php index 41cfc0f8ceb..dbb39bac6d2 100644 --- a/apps/dav/tests/unit/Connector/PublicAuthTest.php +++ b/apps/dav/tests/unit/Connector/PublicAuthTest.php @@ -28,6 +28,7 @@ use OCP\IRequest; use OCP\ISession; use OCP\Share\Exceptions\ShareNotFound; use OCP\Share\IManager; +use OCP\Share\IShare; /** * Class PublicAuthTest @@ -53,13 +54,13 @@ class PublicAuthTest extends \Test\TestCase { protected function setUp() { parent::setUp(); - $this->session = $this->getMockBuilder('\OCP\ISession') + $this->session = $this->getMockBuilder(ISession::class) ->disableOriginalConstructor() ->getMock(); - $this->request = $this->getMockBuilder('\OCP\IRequest') + $this->request = $this->getMockBuilder(IRequest::class) ->disableOriginalConstructor() ->getMock(); - $this->shareManager = $this->getMockBuilder('\OCP\Share\IManager') + $this->shareManager = $this->getMockBuilder(IManager::class) ->disableOriginalConstructor() ->getMock(); @@ -94,7 +95,7 @@ class PublicAuthTest extends \Test\TestCase { } public function testShareNoPassword() { - $share = $this->getMockBuilder('OCP\Share\IShare') + $share = $this->getMockBuilder(IShare::class) ->disableOriginalConstructor() ->getMock(); $share->method('getPassword')->willReturn(null); @@ -109,7 +110,7 @@ class PublicAuthTest extends \Test\TestCase { } public function testSharePasswordFancyShareType() { - $share = $this->getMockBuilder('OCP\Share\IShare') + $share = $this->getMockBuilder(IShare::class) ->disableOriginalConstructor() ->getMock(); $share->method('getPassword')->willReturn('password'); @@ -126,7 +127,7 @@ class PublicAuthTest extends \Test\TestCase { public function testSharePasswordRemote() { - $share = $this->getMockBuilder('OCP\Share\IShare') + $share = $this->getMockBuilder(IShare::class) ->disableOriginalConstructor() ->getMock(); $share->method('getPassword')->willReturn('password'); @@ -142,7 +143,7 @@ class PublicAuthTest extends \Test\TestCase { } public function testSharePasswordLinkValidPassword() { - $share = $this->getMockBuilder('OCP\Share\IShare') + $share = $this->getMockBuilder(IShare::class) ->disableOriginalConstructor() ->getMock(); $share->method('getPassword')->willReturn('password'); @@ -164,7 +165,7 @@ class PublicAuthTest extends \Test\TestCase { } public function testSharePasswordMailValidPassword() { - $share = $this->getMockBuilder('OCP\Share\IShare') + $share = $this->getMockBuilder(IShare::class) ->disableOriginalConstructor() ->getMock(); $share->method('getPassword')->willReturn('password'); @@ -186,7 +187,7 @@ class PublicAuthTest extends \Test\TestCase { } public function testSharePasswordLinkValidSession() { - $share = $this->getMockBuilder('OCP\Share\IShare') + $share = $this->getMockBuilder(IShare::class) ->disableOriginalConstructor() ->getMock(); $share->method('getPassword')->willReturn('password'); @@ -212,7 +213,7 @@ class PublicAuthTest extends \Test\TestCase { } public function testSharePasswordLinkInvalidSession() { - $share = $this->getMockBuilder('OCP\Share\IShare') + $share = $this->getMockBuilder(IShare::class) ->disableOriginalConstructor() ->getMock(); $share->method('getPassword')->willReturn('password'); @@ -239,7 +240,7 @@ class PublicAuthTest extends \Test\TestCase { public function testSharePasswordMailInvalidSession() { - $share = $this->getMockBuilder('OCP\Share\IShare') + $share = $this->getMockBuilder(IShare::class) ->disableOriginalConstructor() ->getMock(); $share->method('getPassword')->willReturn('password'); diff --git a/apps/dav/tests/unit/Connector/Sabre/AuthTest.php b/apps/dav/tests/unit/Connector/Sabre/AuthTest.php index dfcb7939799..34998745f77 100644 --- a/apps/dav/tests/unit/Connector/Sabre/AuthTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/AuthTest.php @@ -34,6 +34,7 @@ use OC\User\Session; use OCP\IRequest; use OCP\ISession; use OCP\IUser; +use Sabre\DAV\Server; use Sabre\HTTP\RequestInterface; use Sabre\HTTP\ResponseInterface; use Test\TestCase; @@ -60,16 +61,16 @@ class AuthTest extends TestCase { public function setUp() { parent::setUp(); - $this->session = $this->getMockBuilder('\OCP\ISession') + $this->session = $this->getMockBuilder(ISession::class) ->disableOriginalConstructor()->getMock(); - $this->userSession = $this->getMockBuilder('\OC\User\Session') + $this->userSession = $this->getMockBuilder(Session::class) ->disableOriginalConstructor()->getMock(); - $this->request = $this->getMockBuilder('\OCP\IRequest') + $this->request = $this->getMockBuilder(IRequest::class) ->disableOriginalConstructor()->getMock(); - $this->twoFactorManager = $this->getMockBuilder('\OC\Authentication\TwoFactorAuth\Manager') + $this->twoFactorManager = $this->getMockBuilder(Manager::class) ->disableOriginalConstructor() ->getMock(); - $this->throttler = $this->getMockBuilder('\OC\Security\Bruteforce\Throttler') + $this->throttler = $this->getMockBuilder(Throttler::class) ->disableOriginalConstructor() ->getMock(); $this->auth = new \OCA\DAV\Connector\Sabre\Auth( @@ -112,7 +113,7 @@ class AuthTest extends TestCase { } public function testValidateUserPassOfAlreadyDAVAuthenticatedUser() { - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->expects($this->exactly(2)) @@ -139,7 +140,7 @@ class AuthTest extends TestCase { } public function testValidateUserPassOfInvalidDAVAuthenticatedUser() { - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->expects($this->once()) @@ -166,7 +167,7 @@ class AuthTest extends TestCase { } public function testValidateUserPassOfInvalidDAVAuthenticatedUserWithValidPassword() { - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->expects($this->exactly(3)) @@ -258,7 +259,7 @@ class AuthTest extends TestCase { ->method('get') ->with('AUTHENTICATED_TO_DAV_BACKEND') ->will($this->returnValue(null)); - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->expects($this->any()) @@ -310,7 +311,7 @@ class AuthTest extends TestCase { ->method('get') ->with('AUTHENTICATED_TO_DAV_BACKEND') ->will($this->returnValue('LoggedInUser')); - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->expects($this->any()) @@ -360,7 +361,7 @@ class AuthTest extends TestCase { ->method('get') ->with('AUTHENTICATED_TO_DAV_BACKEND') ->will($this->returnValue('LoggedInUser')); - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->expects($this->any()) @@ -414,7 +415,7 @@ class AuthTest extends TestCase { ->method('get') ->with('AUTHENTICATED_TO_DAV_BACKEND') ->will($this->returnValue('AnotherUser')); - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->expects($this->any()) @@ -460,7 +461,7 @@ class AuthTest extends TestCase { ->method('get') ->with('AUTHENTICATED_TO_DAV_BACKEND') ->will($this->returnValue(null)); - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->expects($this->any()) @@ -494,7 +495,7 @@ class AuthTest extends TestCase { ->method('get') ->with('AUTHENTICATED_TO_DAV_BACKEND') ->will($this->returnValue(null)); - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->expects($this->any()) @@ -529,7 +530,7 @@ class AuthTest extends TestCase { ->method('get') ->with('AUTHENTICATED_TO_DAV_BACKEND') ->will($this->returnValue(null)); - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->expects($this->any()) @@ -549,7 +550,7 @@ class AuthTest extends TestCase { } public function testAuthenticateNoBasicAuthenticateHeadersProvided() { - $server = $this->getMockBuilder('\Sabre\DAV\Server') + $server = $this->getMockBuilder(Server::class) ->disableOriginalConstructor() ->getMock(); $server->httpRequest = $this->getMockBuilder(RequestInterface::class) @@ -597,7 +598,7 @@ class AuthTest extends TestCase { ->disableOriginalConstructor() ->getMock(); /** @var IUser */ - $user = $this->getMockBuilder('OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->method('getUID')->willReturn('MyTestUser'); @@ -630,7 +631,7 @@ class AuthTest extends TestCase { } public function testAuthenticateValidCredentials() { - $server = $this->getMockBuilder('\Sabre\DAV\Server') + $server = $this->getMockBuilder(Server::class) ->disableOriginalConstructor() ->getMock(); $server->httpRequest = $this->getMockBuilder(RequestInterface::class) @@ -654,7 +655,7 @@ class AuthTest extends TestCase { ->method('logClientIn') ->with('username', 'password') ->will($this->returnValue(true)); - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->expects($this->exactly(3)) @@ -669,7 +670,7 @@ class AuthTest extends TestCase { } public function testAuthenticateInvalidCredentials() { - $server = $this->getMockBuilder('\Sabre\DAV\Server') + $server = $this->getMockBuilder(Server::class) ->disableOriginalConstructor() ->getMock(); $server->httpRequest = $this->getMockBuilder(RequestInterface::class) diff --git a/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php index eb1689089a4..e80d12979ed 100644 --- a/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php @@ -44,7 +44,7 @@ class BlockLegacyClientPluginTest extends TestCase { public function setUp() { parent::setUp(); - $this->config = $this->getMockBuilder('\OCP\IConfig') + $this->config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock(); $this->blockLegacyClientVersionPlugin = new BlockLegacyClientPlugin($this->config); diff --git a/apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php index 13e10476a41..c31a3af980b 100644 --- a/apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php @@ -25,6 +25,11 @@ namespace OCA\DAV\Tests\unit\Connector\Sabre; use \OCA\DAV\Connector\Sabre\CommentPropertiesPlugin as CommentPropertiesPluginImplementation; +use OCA\DAV\Connector\Sabre\File; +use OCP\Comments\ICommentsManager; +use OCP\IUser; +use OCP\IUserSession; +use Sabre\DAV\PropFind; class CommentsPropertiesPluginTest extends \Test\TestCase { @@ -37,10 +42,10 @@ class CommentsPropertiesPluginTest extends \Test\TestCase { public function setUp() { parent::setUp(); - $this->commentsManager = $this->getMockBuilder('\OCP\Comments\ICommentsManager') + $this->commentsManager = $this->getMockBuilder(ICommentsManager::class) ->disableOriginalConstructor() ->getMock(); - $this->userSession = $this->getMockBuilder('\OCP\IUserSession') + $this->userSession = $this->getMockBuilder(IUserSession::class) ->disableOriginalConstructor() ->getMock(); @@ -73,7 +78,7 @@ class CommentsPropertiesPluginTest extends \Test\TestCase { * @param $expectedSuccessful */ public function testHandleGetProperties($node, $expectedSuccessful) { - $propFind = $this->getMockBuilder('\Sabre\DAV\PropFind') + $propFind = $this->getMockBuilder(PropFind::class) ->disableOriginalConstructor() ->getMock(); @@ -103,7 +108,7 @@ class CommentsPropertiesPluginTest extends \Test\TestCase { * @param $expectedHref */ public function testGetCommentsLink($baseUri, $fid, $expectedHref) { - $node = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\File') + $node = $this->getMockBuilder(File::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->any()) @@ -121,7 +126,7 @@ class CommentsPropertiesPluginTest extends \Test\TestCase { public function userProvider() { return [ [ - $this->getMockBuilder('\OCP\IUser') + $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock() ], @@ -134,7 +139,7 @@ class CommentsPropertiesPluginTest extends \Test\TestCase { * @param $user */ public function testGetUnreadCount($user) { - $node = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\File') + $node = $this->getMockBuilder(File::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->any()) diff --git a/apps/dav/tests/unit/Connector/Sabre/CopyEtagHeaderPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/CopyEtagHeaderPluginTest.php index 773d5d7f98b..f44a4abf634 100644 --- a/apps/dav/tests/unit/Connector/Sabre/CopyEtagHeaderPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/CopyEtagHeaderPluginTest.php @@ -24,7 +24,9 @@ namespace OCA\DAV\Tests\unit\Connector\Sabre; use OCA\DAV\Connector\Sabre\CopyEtagHeaderPlugin; +use OCA\DAV\Connector\Sabre\File; use Sabre\DAV\Server; +use Sabre\DAV\Tree; use Test\TestCase; /** @@ -68,13 +70,13 @@ class CopyEtagHeaderPluginTest extends TestCase { } public function testAfterMove() { - $node = $this->getMockBuilder('OCA\DAV\Connector\Sabre\File') + $node = $this->getMockBuilder(File::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->once()) ->method('getETag') ->willReturn('123456'); - $tree = $this->getMockBuilder('Sabre\DAV\Tree') + $tree = $this->getMockBuilder(Tree::class) ->disableOriginalConstructor() ->getMock(); $tree->expects($this->once()) diff --git a/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php b/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php index f0f4caa07a0..c96915244f7 100644 --- a/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php @@ -31,6 +31,11 @@ namespace OCA\DAV\Tests\unit\Connector\Sabre; * See the COPYING-README file. */ +use OCA\DAV\Connector\Sabre\Directory; +use OCA\DAV\Connector\Sabre\File; +use OCP\IUser; +use Sabre\DAV\Tree; + /** * Class CustomPropertiesBackend * @@ -63,13 +68,13 @@ class CustomPropertiesBackendTest extends \Test\TestCase { public function setUp() { parent::setUp(); $this->server = new \Sabre\DAV\Server(); - $this->tree = $this->getMockBuilder('\Sabre\DAV\Tree') + $this->tree = $this->getMockBuilder(Tree::class) ->disableOriginalConstructor() ->getMock(); $userId = $this->getUniqueID('testcustompropertiesuser'); - $this->user = $this->getMockBuilder('\OCP\IUser') + $this->user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $this->user->expects($this->any()) @@ -175,7 +180,7 @@ class CustomPropertiesBackendTest extends \Test\TestCase { * Test setting/getting properties */ public function testSetGetPropertiesForFile() { - $node = $this->createTestNode('\OCA\DAV\Connector\Sabre\File'); + $node = $this->createTestNode(File::class); $this->tree->expects($this->any()) ->method('getNodeForPath') ->with('/dummypath') @@ -207,9 +212,9 @@ class CustomPropertiesBackendTest extends \Test\TestCase { * Test getting properties from directory */ public function testGetPropertiesForDirectory() { - $rootNode = $this->createTestNode('\OCA\DAV\Connector\Sabre\Directory'); + $rootNode = $this->createTestNode(Directory::class); - $nodeSub = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\File') + $nodeSub = $this->getMockBuilder(File::class) ->disableOriginalConstructor() ->getMock(); $nodeSub->expects($this->any()) @@ -291,7 +296,7 @@ class CustomPropertiesBackendTest extends \Test\TestCase { * Test delete property */ public function testDeleteProperty() { - $node = $this->createTestNode('\OCA\DAV\Connector\Sabre\File'); + $node = $this->createTestNode(File::class); $this->tree->expects($this->any()) ->method('getNodeForPath') ->with('/dummypath') diff --git a/apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php b/apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php index f27f67b0aae..d5da0dce0d1 100644 --- a/apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php @@ -26,6 +26,7 @@ namespace OCA\DAV\Tests\Unit\Connector\Sabre; +use OC\Files\Storage\Wrapper\Quota; use OCP\Files\ForbiddenException; use OC\Files\FileInfo; use OCA\DAV\Connector\Sabre\Directory; @@ -179,10 +180,10 @@ class DirectoryTest extends \Test\TestCase { } public function testGetChildren() { - $info1 = $this->getMockBuilder('OC\Files\FileInfo') + $info1 = $this->getMockBuilder(FileInfo::class) ->disableOriginalConstructor() ->getMock(); - $info2 = $this->getMockBuilder('OC\Files\FileInfo') + $info2 = $this->getMockBuilder(FileInfo::class) ->disableOriginalConstructor() ->getMock(); $info1->expects($this->any()) @@ -269,7 +270,7 @@ class DirectoryTest extends \Test\TestCase { } public function testGetQuotaInfoUnlimited() { - $storage = $this->getMockBuilder('\OC\Files\Storage\Wrapper\Quota') + $storage = $this->getMockBuilder(Quota::class) ->disableOriginalConstructor() ->getMock(); @@ -300,7 +301,7 @@ class DirectoryTest extends \Test\TestCase { } public function testGetQuotaInfoSpecific() { - $storage = $this->getMockBuilder('\OC\Files\Storage\Wrapper\Quota') + $storage = $this->getMockBuilder(Quota::class) ->disableOriginalConstructor() ->getMock(); diff --git a/apps/dav/tests/unit/Connector/Sabre/DummyGetResponsePluginTest.php b/apps/dav/tests/unit/Connector/Sabre/DummyGetResponsePluginTest.php index 1c2e249e8c0..fa6f849f12f 100644 --- a/apps/dav/tests/unit/Connector/Sabre/DummyGetResponsePluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/DummyGetResponsePluginTest.php @@ -26,6 +26,9 @@ namespace OCA\DAV\Tests\unit\Connector\Sabre; use OCA\DAV\Connector\Sabre\DummyGetResponsePlugin; +use Sabre\DAV\Server; +use Sabre\HTTP\RequestInterface; +use Sabre\HTTP\ResponseInterface; use Test\TestCase; /** @@ -44,8 +47,8 @@ class DummyGetResponsePluginTest extends TestCase { } public function testInitialize() { - /** @var \Sabre\DAV\Server $server */ - $server = $this->getMockBuilder('\Sabre\DAV\Server') + /** @var Server $server */ + $server = $this->getMockBuilder(Server::class) ->disableOriginalConstructor() ->getMock(); $server @@ -59,11 +62,11 @@ class DummyGetResponsePluginTest extends TestCase { public function testHttpGet() { /** @var \Sabre\HTTP\RequestInterface $request */ - $request = $this->getMockBuilder('\Sabre\HTTP\RequestInterface') + $request = $this->getMockBuilder(RequestInterface::class) ->disableOriginalConstructor() ->getMock(); /** @var \Sabre\HTTP\ResponseInterface $response */ - $response = $server = $this->getMockBuilder('\Sabre\HTTP\ResponseInterface') + $response = $server = $this->getMockBuilder(ResponseInterface::class) ->disableOriginalConstructor() ->getMock(); $response diff --git a/apps/dav/tests/unit/Connector/Sabre/FakeLockerPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/FakeLockerPluginTest.php index abf6e5cf182..e42bb1704f0 100644 --- a/apps/dav/tests/unit/Connector/Sabre/FakeLockerPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/FakeLockerPluginTest.php @@ -25,7 +25,12 @@ namespace OCA\DAV\Tests\unit\Connector\Sabre; use OCA\DAV\Connector\Sabre\FakeLockerPlugin; +use Sabre\DAV\INode; +use Sabre\DAV\PropFind; +use Sabre\DAV\Server; +use Sabre\HTTP\RequestInterface; use Sabre\HTTP\Response; +use Sabre\HTTP\ResponseInterface; use Test\TestCase; /** @@ -43,8 +48,8 @@ class FakeLockerPluginTest extends TestCase { } public function testInitialize() { - /** @var \Sabre\DAV\Server $server */ - $server = $this->getMockBuilder('\Sabre\DAV\Server') + /** @var Server $server */ + $server = $this->getMockBuilder(Server::class) ->disableOriginalConstructor() ->getMock(); $server @@ -83,10 +88,10 @@ class FakeLockerPluginTest extends TestCase { } public function testPropFind() { - $propFind = $this->getMockBuilder('\Sabre\DAV\PropFind') + $propFind = $this->getMockBuilder(PropFind::class) ->disableOriginalConstructor() ->getMock(); - $node = $this->getMockBuilder('\Sabre\DAV\INode') + $node = $this->getMockBuilder(INode::class) ->disableOriginalConstructor() ->getMock(); @@ -143,7 +148,7 @@ class FakeLockerPluginTest extends TestCase { * @param array $expected */ public function testValidateTokens(array $input, array $expected) { - $request = $this->getMockBuilder('\Sabre\HTTP\RequestInterface') + $request = $this->getMockBuilder(RequestInterface::class) ->disableOriginalConstructor() ->getMock(); $this->fakeLockerPlugin->validateTokens($request, $input); @@ -151,11 +156,11 @@ class FakeLockerPluginTest extends TestCase { } public function testFakeLockProvider() { - $request = $this->getMockBuilder('\Sabre\HTTP\RequestInterface') + $request = $this->getMockBuilder(RequestInterface::class) ->disableOriginalConstructor() ->getMock(); $response = new Response(); - $server = $this->getMockBuilder('\Sabre\DAV\Server') + $server = $this->getMockBuilder(Server::class) ->getMock(); $this->fakeLockerPlugin->initialize($server); @@ -171,10 +176,10 @@ class FakeLockerPluginTest extends TestCase { } public function testFakeUnlockProvider() { - $request = $this->getMockBuilder('\Sabre\HTTP\RequestInterface') + $request = $this->getMockBuilder(RequestInterface::class) ->disableOriginalConstructor() ->getMock(); - $response = $this->getMockBuilder('\Sabre\HTTP\ResponseInterface') + $response = $this->getMockBuilder(ResponseInterface::class) ->disableOriginalConstructor() ->getMock(); diff --git a/apps/dav/tests/unit/Connector/Sabre/FileTest.php b/apps/dav/tests/unit/Connector/Sabre/FileTest.php index e2666d0de27..bf9daebdc5b 100644 --- a/apps/dav/tests/unit/Connector/Sabre/FileTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/FileTest.php @@ -27,7 +27,9 @@ namespace OCA\DAV\Tests\unit\Connector\Sabre; use OC\Files\Storage\Local; +use OC\Files\View; use OCP\Files\ForbiddenException; +use OCP\Files\Storage; use Test\HookHelper; use OC\Files\Filesystem; use OCP\Lock\ILockingProvider; @@ -70,7 +72,7 @@ class FileTest extends \Test\TestCase { } private function getMockStorage() { - $storage = $this->getMockBuilder('\OCP\Files\Storage') + $storage = $this->getMockBuilder(Storage::class) ->disableOriginalConstructor() ->getMock(); $storage->expects($this->any()) @@ -151,12 +153,12 @@ class FileTest extends \Test\TestCase { */ public function testSimplePutFails($thrownException, $expectedException, $checkPreviousClass = true) { // setup - $storage = $this->getMockBuilder('\OC\Files\Storage\Local') + $storage = $this->getMockBuilder(Local::class) ->setMethods(['fopen']) ->setConstructorArgs([['datadir' => \OC::$server->getTempManager()->getTemporaryFolder()]]) ->getMock(); \OC\Files\Filesystem::mount($storage, [], $this->user . '/'); - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->setMethods(['getRelativePath', 'resolvePath']) ->getMock(); $view->expects($this->atLeastOnce()) @@ -210,12 +212,12 @@ class FileTest extends \Test\TestCase { */ public function testChunkedPutFails($thrownException, $expectedException, $checkPreviousClass = false) { // setup - $storage = $this->getMockBuilder('\OC\Files\Storage\Local') + $storage = $this->getMockBuilder(Local::class) ->setMethods(['fopen']) ->setConstructorArgs([['datadir' => \OC::$server->getTempManager()->getTemporaryFolder()]]) ->getMock(); \OC\Files\Filesystem::mount($storage, [], $this->user . '/'); - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->setMethods(['getRelativePath', 'resolvePath']) ->getMock(); $view->expects($this->atLeastOnce()) @@ -535,7 +537,7 @@ class FileTest extends \Test\TestCase { */ public function testSimplePutFailsSizeCheck() { // setup - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->setMethods(['rename', 'getRelativePath', 'filesize']) ->getMock(); $view->expects($this->any()) @@ -653,7 +655,7 @@ class FileTest extends \Test\TestCase { */ public function testSimplePutInvalidChars() { // setup - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->setMethods(['getRelativePath']) ->getMock(); $view->expects($this->any()) @@ -690,7 +692,7 @@ class FileTest extends \Test\TestCase { */ public function testSetNameInvalidChars() { // setup - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->setMethods(['getRelativePath']) ->getMock(); @@ -709,7 +711,7 @@ class FileTest extends \Test\TestCase { */ public function testUploadAbort() { // setup - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->setMethods(['rename', 'getRelativePath', 'filesize']) ->getMock(); $view->expects($this->any()) @@ -755,7 +757,7 @@ class FileTest extends \Test\TestCase { */ public function testDeleteWhenAllowed() { // setup - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->getMock(); $view->expects($this->once()) @@ -777,7 +779,7 @@ class FileTest extends \Test\TestCase { */ public function testDeleteThrowsWhenDeletionNotAllowed() { // setup - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->getMock(); $info = new \OC\Files\FileInfo('/test.txt', $this->getMockStorage(), null, array( @@ -795,7 +797,7 @@ class FileTest extends \Test\TestCase { */ public function testDeleteThrowsWhenDeletionFailed() { // setup - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->getMock(); // but fails @@ -818,7 +820,7 @@ class FileTest extends \Test\TestCase { */ public function testDeleteThrowsWhenDeletionThrows() { // setup - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->getMock(); // but fails @@ -880,7 +882,7 @@ class FileTest extends \Test\TestCase { $wasLockedPre = false; $wasLockedPost = false; - $eventHandler = $this->getMockBuilder('\stdclass') + $eventHandler = $this->getMockBuilder(\stdclass::class) ->setMethods(['writeCallback', 'postWriteCallback']) ->getMock(); @@ -968,7 +970,7 @@ class FileTest extends \Test\TestCase { * @expectedException \Sabre\DAV\Exception\ServiceUnavailable */ public function testGetFopenFails() { - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->setMethods(['fopen']) ->getMock(); $view->expects($this->atLeastOnce()) @@ -988,7 +990,7 @@ class FileTest extends \Test\TestCase { * @expectedException \OCA\DAV\Connector\Sabre\Exception\Forbidden */ public function testGetFopenThrows() { - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->setMethods(['fopen']) ->getMock(); $view->expects($this->atLeastOnce()) @@ -1008,7 +1010,7 @@ class FileTest extends \Test\TestCase { * @expectedException \Sabre\DAV\Exception\NotFound */ public function testGetThrowsIfNoPermission() { - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->setMethods(['fopen']) ->getMock(); $view->expects($this->never()) diff --git a/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php index 885f3c23c24..e3cf1ff4453 100644 --- a/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php @@ -25,10 +25,18 @@ */ namespace OCA\DAV\Tests\unit\Connector\Sabre; +use OC\User\User; +use OCA\DAV\Connector\Sabre\File; use OCA\DAV\Connector\Sabre\FilesPlugin; +use OCA\DAV\Connector\Sabre\Node; use OCP\Files\StorageNotAvailableException; +use OCP\IConfig; +use OCP\IPreview; +use OCP\IRequest; use Sabre\DAV\PropFind; use Sabre\DAV\PropPatch; +use Sabre\DAV\Server; +use Sabre\DAV\Tree; use Sabre\HTTP\RequestInterface; use Sabre\HTTP\ResponseInterface; use Test\TestCase; @@ -87,20 +95,20 @@ class FilesPluginTest extends TestCase { public function setUp() { parent::setUp(); - $this->server = $this->getMockBuilder('\Sabre\DAV\Server') + $this->server = $this->getMockBuilder(Server::class) ->disableOriginalConstructor() ->getMock(); - $this->tree = $this->getMockBuilder('\Sabre\DAV\Tree') + $this->tree = $this->getMockBuilder(Tree::class) ->disableOriginalConstructor() ->getMock(); - $this->config = $this->createMock('\OCP\IConfig'); + $this->config = $this->createMock(IConfig::class); $this->config->expects($this->any())->method('getSystemValue') ->with($this->equalTo('data-fingerprint'), $this->equalTo('')) ->willReturn('my_fingerprint'); - $this->request = $this->getMockBuilder('\OCP\IRequest') + $this->request = $this->getMockBuilder(IRequest::class) ->disableOriginalConstructor() ->getMock(); - $this->previewManager = $this->getMockBuilder('\OCP\IPreview') + $this->previewManager = $this->getMockBuilder(IPreview::class) ->disableOriginalConstructor() ->getMock(); @@ -182,7 +190,7 @@ class FilesPluginTest extends TestCase { 0 ); - $user = $this->getMockBuilder('\OC\User\User') + $user = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $user ->expects($this->once()) @@ -245,7 +253,7 @@ class FilesPluginTest extends TestCase { $this->plugin = new FilesPlugin( $this->tree, $this->config, - $this->getMockBuilder('\OCP\IRequest') + $this->getMockBuilder(IRequest::class) ->disableOriginalConstructor() ->getMock(), $this->previewManager, @@ -311,7 +319,7 @@ class FilesPluginTest extends TestCase { public function testGetPropertiesForRootDirectory() { /** @var \OCA\DAV\Connector\Sabre\Directory | \PHPUnit_Framework_MockObject_MockObject $node */ - $node = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\Directory') + $node = $this->getMockBuilder(Directory::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->any())->method('getPath')->willReturn('/'); @@ -347,7 +355,7 @@ class FilesPluginTest extends TestCase { // $this->expectException(\Sabre\DAV\Exception\NotFound::class); /** @var \OCA\DAV\Connector\Sabre\Directory|\PHPUnit_Framework_MockObject_MockObject $node */ - $node = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\Directory') + $node = $this->getMockBuilder(Directory::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->any())->method('getPath')->willReturn('/'); @@ -451,14 +459,14 @@ class FilesPluginTest extends TestCase { * @expectedExceptionMessage FolderA/test.txt cannot be deleted */ public function testMoveSrcNotDeletable() { - $fileInfoFolderATestTXT = $this->getMockBuilder('\OCP\Files\FileInfo') + $fileInfoFolderATestTXT = $this->getMockBuilder(FileInfo::class) ->disableOriginalConstructor() ->getMock(); $fileInfoFolderATestTXT->expects($this->once()) ->method('isDeletable') ->willReturn(false); - $node = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\Node') + $node = $this->getMockBuilder(Node::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->once()) @@ -472,14 +480,14 @@ class FilesPluginTest extends TestCase { } public function testMoveSrcDeletable() { - $fileInfoFolderATestTXT = $this->getMockBuilder('\OCP\Files\FileInfo') + $fileInfoFolderATestTXT = $this->getMockBuilder(FileInfo::class) ->disableOriginalConstructor() ->getMock(); $fileInfoFolderATestTXT->expects($this->once()) ->method('isDeletable') ->willReturn(true); - $node = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\Node') + $node = $this->getMockBuilder(Node::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->once()) @@ -497,7 +505,7 @@ class FilesPluginTest extends TestCase { * @expectedExceptionMessage FolderA/test.txt does not exist */ public function testMoveSrcNotExist() { - $node = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\Node') + $node = $this->getMockBuilder(Node::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->once()) @@ -539,7 +547,7 @@ class FilesPluginTest extends TestCase { ->method('getPath') ->will($this->returnValue('test/somefile.xml')); - $node = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\File') + $node = $this->getMockBuilder(File::class) ->disableOriginalConstructor() ->getMock(); $node diff --git a/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php index 3ca131dbf6f..c46e4b14805 100644 --- a/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php @@ -24,10 +24,16 @@ namespace OCA\DAV\Tests\unit\Connector\Sabre; +use OCA\DAV\Connector\Sabre\Directory; use OCA\DAV\Connector\Sabre\FilesReportPlugin as FilesReportPluginImplementation; +use OCP\Files\File; +use OCP\IConfig; use OCP\IPreview; +use OCP\IRequest; use OCP\ITagManager; +use OCP\IUser; use OCP\IUserSession; +use OCP\SystemTag\ISystemTag; use OCP\SystemTag\ISystemTagObjectMapper; use OC\Files\View; use OCP\Files\Folder; @@ -35,6 +41,9 @@ use OCP\IGroupManager; use OCP\SystemTag\ISystemTagManager; use OCP\ITags; use OCP\Files\FileInfo; +use Sabre\DAV\INode; +use Sabre\DAV\Tree; +use Sabre\HTTP\ResponseInterface; class FilesReportPluginTest extends \Test\TestCase { /** @var \Sabre\DAV\Server|\PHPUnit_Framework_MockObject_MockObject */ @@ -72,11 +81,11 @@ class FilesReportPluginTest extends \Test\TestCase { public function setUp() { parent::setUp(); - $this->tree = $this->getMockBuilder('\Sabre\DAV\Tree') + $this->tree = $this->getMockBuilder(Tree::class) ->disableOriginalConstructor() ->getMock(); - $this->view = $this->getMockBuilder('\OC\Files\View') + $this->view = $this->getMockBuilder(View::class) ->disableOriginalConstructor() ->getMock(); @@ -89,15 +98,15 @@ class FilesReportPluginTest extends \Test\TestCase { ->method('getBaseUri') ->will($this->returnValue('http://example.com/owncloud/remote.php/dav')); - $this->groupManager = $this->getMockBuilder('\OCP\IGroupManager') + $this->groupManager = $this->getMockBuilder(IGroupManager::class) ->disableOriginalConstructor() ->getMock(); - $this->userFolder = $this->getMockBuilder('\OCP\Files\Folder') + $this->userFolder = $this->getMockBuilder(Folder::class) ->disableOriginalConstructor() ->getMock(); - $this->previewManager = $this->getMockBuilder('\OCP\IPreview') + $this->previewManager = $this->getMockBuilder(IPreview::class) ->disableOriginalConstructor() ->getMock(); @@ -111,7 +120,7 @@ class FilesReportPluginTest extends \Test\TestCase { ->with('files') ->will($this->returnValue($this->privateTags)); - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->expects($this->any()) @@ -140,7 +149,7 @@ class FilesReportPluginTest extends \Test\TestCase { ->method('getNodeForPath') ->with('/' . $path) ->will($this->returnValue( - $this->getMockBuilder('\Sabre\DAV\INode') + $this->getMockBuilder(INode::class) ->disableOriginalConstructor() ->getMock() )); @@ -160,7 +169,7 @@ class FilesReportPluginTest extends \Test\TestCase { ->method('getNodeForPath') ->with('/' . $path) ->will($this->returnValue( - $this->getMockBuilder('\Sabre\DAV\INode') + $this->getMockBuilder(INode::class) ->disableOriginalConstructor() ->getMock() )); @@ -206,11 +215,11 @@ class FilesReportPluginTest extends \Test\TestCase { ->with('456', 'files') ->will($this->returnValue(['111', '222', '333'])); - $reportTargetNode = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\Directory') + $reportTargetNode = $this->getMockBuilder(Directory::class) ->disableOriginalConstructor() ->getMock(); - $response = $this->getMockBuilder('Sabre\HTTP\ResponseInterface') + $response = $this->getMockBuilder(ResponseInterface::class) ->disableOriginalConstructor() ->getMock(); @@ -230,10 +239,10 @@ class FilesReportPluginTest extends \Test\TestCase { ->with('/' . $path) ->will($this->returnValue($reportTargetNode)); - $filesNode1 = $this->getMockBuilder('\OCP\Files\Folder') + $filesNode1 = $this->getMockBuilder(Folder::class) ->disableOriginalConstructor() ->getMock(); - $filesNode2 = $this->getMockBuilder('\OCP\Files\File') + $filesNode2 = $this->getMockBuilder(File::class) ->disableOriginalConstructor() ->getMock(); @@ -256,21 +265,21 @@ class FilesReportPluginTest extends \Test\TestCase { } public function testFindNodesByFileIdsRoot() { - $filesNode1 = $this->getMockBuilder('\OCP\Files\Folder') + $filesNode1 = $this->getMockBuilder(Folder::class) ->disableOriginalConstructor() ->getMock(); $filesNode1->expects($this->once()) ->method('getName') ->will($this->returnValue('first node')); - $filesNode2 = $this->getMockBuilder('\OCP\Files\File') + $filesNode2 = $this->getMockBuilder(File::class) ->disableOriginalConstructor() ->getMock(); $filesNode2->expects($this->once()) ->method('getName') ->will($this->returnValue('second node')); - $reportTargetNode = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\Directory') + $reportTargetNode = $this->getMockBuilder(Directory::class) ->disableOriginalConstructor() ->getMock(); $reportTargetNode->expects($this->any()) @@ -297,21 +306,21 @@ class FilesReportPluginTest extends \Test\TestCase { } public function testFindNodesByFileIdsSubDir() { - $filesNode1 = $this->getMockBuilder('\OCP\Files\Folder') + $filesNode1 = $this->getMockBuilder(Folder::class) ->disableOriginalConstructor() ->getMock(); $filesNode1->expects($this->once()) ->method('getName') ->will($this->returnValue('first node')); - $filesNode2 = $this->getMockBuilder('\OCP\Files\File') + $filesNode2 = $this->getMockBuilder(File::class) ->disableOriginalConstructor() ->getMock(); $filesNode2->expects($this->once()) ->method('getName') ->will($this->returnValue('second node')); - $reportTargetNode = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\Directory') + $reportTargetNode = $this->getMockBuilder(Directory::class) ->disableOriginalConstructor() ->getMock(); $reportTargetNode->expects($this->any()) @@ -319,7 +328,7 @@ class FilesReportPluginTest extends \Test\TestCase { ->will($this->returnValue('/sub1/sub2')); - $subNode = $this->getMockBuilder('\OCP\Files\Folder') + $subNode = $this->getMockBuilder(Folder::class) ->disableOriginalConstructor() ->getMock(); @@ -353,10 +362,10 @@ class FilesReportPluginTest extends \Test\TestCase { $fileInfo = $this->createMock(FileInfo::class); $fileInfo->method('isReadable')->willReturn(true); - $node1 = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\Directory') + $node1 = $this->getMockBuilder(Directory::class) ->disableOriginalConstructor() ->getMock(); - $node2 = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\File') + $node2 = $this->getMockBuilder(\OCA\DAV\Connector\Sabre\File::class) ->disableOriginalConstructor() ->getMock(); @@ -378,7 +387,7 @@ class FilesReportPluginTest extends \Test\TestCase { ->will($this->returnValue('/sub/node2')); $node2->method('getFileInfo')->willReturn($fileInfo); - $config = $this->getMockBuilder('\OCP\IConfig') + $config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock(); @@ -386,7 +395,7 @@ class FilesReportPluginTest extends \Test\TestCase { new \OCA\DAV\Connector\Sabre\FilesPlugin( $this->tree, $config, - $this->getMockBuilder('\OCP\IRequest') + $this->getMockBuilder(IRequest::class) ->disableOriginalConstructor() ->getMock(), $this->previewManager @@ -542,7 +551,7 @@ class FilesReportPluginTest extends \Test\TestCase { ->method('isAdmin') ->will($this->returnValue(true)); - $tag1 = $this->getMockBuilder('\OCP\SystemTag\ISystemTag') + $tag1 = $this->getMockBuilder(ISystemTag::class) ->disableOriginalConstructor() ->getMock(); $tag1->expects($this->any()) @@ -552,7 +561,7 @@ class FilesReportPluginTest extends \Test\TestCase { ->method('isUserVisible') ->will($this->returnValue(true)); - $tag2 = $this->getMockBuilder('\OCP\SystemTag\ISystemTag') + $tag2 = $this->getMockBuilder(ISystemTag::class) ->disableOriginalConstructor() ->getMock(); $tag2->expects($this->any()) @@ -591,7 +600,7 @@ class FilesReportPluginTest extends \Test\TestCase { ->method('isAdmin') ->will($this->returnValue(false)); - $tag1 = $this->getMockBuilder('\OCP\SystemTag\ISystemTag') + $tag1 = $this->getMockBuilder(ISystemTag::class) ->disableOriginalConstructor() ->getMock(); $tag1->expects($this->any()) @@ -601,7 +610,7 @@ class FilesReportPluginTest extends \Test\TestCase { ->method('isUserVisible') ->will($this->returnValue(true)); - $tag2 = $this->getMockBuilder('\OCP\SystemTag\ISystemTag') + $tag2 = $this->getMockBuilder(ISystemTag::class) ->disableOriginalConstructor() ->getMock(); $tag2->expects($this->any()) @@ -629,7 +638,7 @@ class FilesReportPluginTest extends \Test\TestCase { ->method('isAdmin') ->will($this->returnValue(false)); - $tag1 = $this->getMockBuilder('\OCP\SystemTag\ISystemTag') + $tag1 = $this->getMockBuilder(ISystemTag::class) ->disableOriginalConstructor() ->getMock(); $tag1->expects($this->any()) @@ -639,7 +648,7 @@ class FilesReportPluginTest extends \Test\TestCase { ->method('isUserVisible') ->will($this->returnValue(true)); - $tag2 = $this->getMockBuilder('\OCP\SystemTag\ISystemTag') + $tag2 = $this->getMockBuilder(ISystemTag::class) ->disableOriginalConstructor() ->getMock(); $tag2->expects($this->any()) diff --git a/apps/dav/tests/unit/Connector/Sabre/MaintenancePluginTest.php b/apps/dav/tests/unit/Connector/Sabre/MaintenancePluginTest.php index 43c32299523..b028cb8e6ac 100644 --- a/apps/dav/tests/unit/Connector/Sabre/MaintenancePluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/MaintenancePluginTest.php @@ -42,7 +42,7 @@ class MaintenancePluginTest extends TestCase { public function setUp() { parent::setUp(); - $this->config = $this->getMockBuilder('\OCP\IConfig')->getMock(); + $this->config = $this->getMockBuilder(IConfig::class)->getMock(); $this->maintenancePlugin = new MaintenancePlugin($this->config); } diff --git a/apps/dav/tests/unit/Connector/Sabre/NodeTest.php b/apps/dav/tests/unit/Connector/Sabre/NodeTest.php index 0aa3fe6101d..fe6cbd97829 100644 --- a/apps/dav/tests/unit/Connector/Sabre/NodeTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/NodeTest.php @@ -25,6 +25,12 @@ */ namespace OCA\DAV\Tests\unit\Connector\Sabre; +use OC\Files\FileInfo; +use OC\Files\View; +use OCP\Files\Mount\IMountPoint; +use OCP\Files\Storage; +use OCP\Share\IManager; +use OCP\Share\IShare; /** * Class NodeTest @@ -51,7 +57,7 @@ class NodeTest extends \Test\TestCase { * @dataProvider davPermissionsProvider */ public function testDavPermissions($permissions, $type, $shared, $mounted, $expected) { - $info = $this->getMockBuilder('\OC\Files\FileInfo') + $info = $this->getMockBuilder(FileInfo::class) ->disableOriginalConstructor() ->setMethods(array('getPermissions', 'isShared', 'isMounted', 'getType')) ->getMock(); @@ -67,7 +73,7 @@ class NodeTest extends \Test\TestCase { $info->expects($this->any()) ->method('getType') ->will($this->returnValue($type)); - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->disableOriginalConstructor() ->getMock(); @@ -119,17 +125,17 @@ class NodeTest extends \Test\TestCase { * @dataProvider sharePermissionsProvider */ public function testSharePermissions($type, $user, $permissions, $expected) { - $storage = $this->getMockBuilder('\OCP\Files\Storage') + $storage = $this->getMockBuilder(Storage::class) ->disableOriginalConstructor() ->getMock(); $storage->method('getPermissions')->willReturn($permissions); - $mountpoint = $this->getMockBuilder('\OCP\Files\Mount\IMountPoint') + $mountpoint = $this->getMockBuilder(IMountPoint::class) ->disableOriginalConstructor() ->getMock(); $mountpoint->method('getMountPoint')->willReturn('myPath'); - $shareManager = $this->getMockBuilder('OCP\Share\IManager')->disableOriginalConstructor()->getMock(); - $share = $this->getMockBuilder('OCP\Share\IShare')->disableOriginalConstructor()->getMock(); + $shareManager = $this->getMockBuilder(IManager::class)->disableOriginalConstructor()->getMock(); + $share = $this->getMockBuilder(IShare::class)->disableOriginalConstructor()->getMock(); if ($user === null) { $shareManager->expects($this->never())->method('getShareByToken'); @@ -140,7 +146,7 @@ class NodeTest extends \Test\TestCase { $share->expects($this->once())->method('getPermissions')->willReturn($permissions); } - $info = $this->getMockBuilder('\OC\Files\FileInfo') + $info = $this->getMockBuilder(FileInfo::class) ->disableOriginalConstructor() ->setMethods(['getStorage', 'getType', 'getMountPoint']) ->getMock(); @@ -149,7 +155,7 @@ class NodeTest extends \Test\TestCase { $info->method('getType')->willReturn($type); $info->method('getMountPoint')->willReturn($mountpoint); - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->disableOriginalConstructor() ->getMock(); diff --git a/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php b/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php index 53f60bd0f1c..d1b37541dc3 100644 --- a/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php @@ -31,6 +31,7 @@ namespace OCA\DAV\Tests\unit\Connector\Sabre; use OC\Files\FileInfo; use OC\Files\Filesystem; +use OC\Files\Mount\Manager; use OC\Files\Storage\Temporary; use OC\Files\View; use OCA\DAV\Connector\Sabre\Directory; @@ -156,16 +157,16 @@ class ObjectTreeTest extends \Test\TestCase { $_SERVER['HTTP_OC_CHUNKED'] = true; } - $rootNode = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\Directory') + $rootNode = $this->getMockBuilder(Directory::class) ->disableOriginalConstructor() ->getMock(); - $mountManager = $this->getMockBuilder('\OC\Files\Mount\Manager') + $mountManager = $this->getMockBuilder(Manager::class) ->disableOriginalConstructor() ->getMock(); - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->disableOriginalConstructor() ->getMock(); - $fileInfo = $this->getMockBuilder('\OCP\Files\FileInfo') + $fileInfo = $this->getMockBuilder(FileInfo::class) ->disableOriginalConstructor() ->getMock(); $fileInfo->expects($this->once()) @@ -275,7 +276,7 @@ class ObjectTreeTest extends \Test\TestCase { $storage = new Temporary([]); - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->setMethods(['resolvePath']) ->getMock(); $view->expects($this->once()) @@ -284,10 +285,10 @@ class ObjectTreeTest extends \Test\TestCase { return [$storage, ltrim($path, '/')]; })); - $rootNode = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\Directory') + $rootNode = $this->getMockBuilder(Directory::class) ->disableOriginalConstructor() ->getMock(); - $mountManager = $this->getMockBuilder('\OC\Files\Mount\Manager') + $mountManager = $this->getMockBuilder(Manager::class) ->getMock(); $tree = new \OCA\DAV\Connector\Sabre\ObjectTree(); @@ -302,7 +303,7 @@ class ObjectTreeTest extends \Test\TestCase { $storage = new Temporary([]); - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->setMethods(['resolvePath']) ->getMock(); $view->expects($this->any()) @@ -311,10 +312,10 @@ class ObjectTreeTest extends \Test\TestCase { return [$storage, ltrim($path, '/')]; })); - $rootNode = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\Directory') + $rootNode = $this->getMockBuilder(Directory::class) ->disableOriginalConstructor() ->getMock(); - $mountManager = $this->getMockBuilder('\OC\Files\Mount\Manager') + $mountManager = $this->getMockBuilder(Manager::class) ->getMock(); $tree = new \OCA\DAV\Connector\Sabre\ObjectTree(); diff --git a/apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php index d29080539e6..927178996c9 100644 --- a/apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php @@ -176,7 +176,7 @@ class QuotaPluginTest extends TestCase { public function testCheckQuotaChunkedOk($quota, $chunkTotalSize, $headers) { $this->init($quota, 'sub/test.txt'); - $mockChunking = $this->getMockBuilder('\OC_FileChunking') + $mockChunking = $this->getMockBuilder(\OC_FileChunking::class) ->disableOriginalConstructor() ->getMock(); $mockChunking->expects($this->once()) @@ -212,7 +212,7 @@ class QuotaPluginTest extends TestCase { public function testCheckQuotaChunkedFail($quota, $chunkTotalSize, $headers) { $this->init($quota, 'sub/test.txt'); - $mockChunking = $this->getMockBuilder('\OC_FileChunking') + $mockChunking = $this->getMockBuilder(\OC_FileChunking::class) ->disableOriginalConstructor() ->getMock(); $mockChunking->expects($this->once()) diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php index 3f3bf16a422..ec4652a3af2 100644 --- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php @@ -24,6 +24,8 @@ namespace OCA\DAV\Tests\unit\Connector\Sabre\RequestTest; +use OCP\IConfig; + /** * Class PartFileInRootUploadTest * @@ -34,7 +36,7 @@ namespace OCA\DAV\Tests\unit\Connector\Sabre\RequestTest; class PartFileInRootUploadTest extends UploadTest { protected function setUp() { $config = \OC::$server->getConfig(); - $mockConfig = $this->getMockBuilder('\OCP\IConfig') + $mockConfig = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock(); $mockConfig->expects($this->any()) diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php index 58a729e18ec..aec467dd50a 100644 --- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php +++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php @@ -29,6 +29,7 @@ namespace OCA\DAV\Tests\unit\Connector\Sabre\RequestTest; use OCA\DAV\Connector\Sabre\Server; use OCA\DAV\Connector\Sabre\ServerFactory; use OC\Files\View; +use OCP\IRequest; use Sabre\HTTP\Request; use Test\TestCase; use Test\Traits\MountProviderTrait; @@ -62,7 +63,7 @@ abstract class RequestTestCase extends TestCase { \OC::$server->getUserSession(), \OC::$server->getMountManager(), \OC::$server->getTagManager(), - $this->getMockBuilder('\OCP\IRequest') + $this->getMockBuilder(IRequest::class) ->disableOriginalConstructor() ->getMock(), \OC::$server->getPreviewManager() diff --git a/apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php index 2b4a886050a..57be6e5a9e2 100644 --- a/apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php @@ -23,6 +23,16 @@ */ namespace OCA\DAV\Tests\unit\Connector\Sabre; +use OCA\DAV\Connector\Sabre\Directory; +use OCA\DAV\Connector\Sabre\File; +use OCA\DAV\Connector\Sabre\Node; +use OCP\Files\Folder; +use OCP\IUser; +use OCP\IUserSession; +use OCP\Share\IManager; +use OCP\Share\IShare; +use Sabre\DAV\Tree; + class SharesPluginTest extends \Test\TestCase { const SHARETYPES_PROPERTYNAME = \OCA\DAV\Connector\Sabre\SharesPlugin::SHARETYPES_PROPERTYNAME; @@ -55,26 +65,26 @@ class SharesPluginTest extends \Test\TestCase { public function setUp() { parent::setUp(); $this->server = new \Sabre\DAV\Server(); - $this->tree = $this->getMockBuilder('\Sabre\DAV\Tree') + $this->tree = $this->getMockBuilder(Tree::class) ->disableOriginalConstructor() ->getMock(); - $this->shareManager = $this->getMockBuilder('\OCP\Share\IManager') + $this->shareManager = $this->getMockBuilder(IManager::class) ->disableOriginalConstructor() ->getMock(); - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $user->expects($this->once()) ->method('getUID') ->will($this->returnValue('user1')); - $userSession = $this->getMockBuilder('\OCP\IUserSession') + $userSession = $this->getMockBuilder(IUserSession::class) ->disableOriginalConstructor() ->getMock(); $userSession->expects($this->once()) ->method('getUser') ->will($this->returnValue($user)); - $this->userFolder = $this->getMockBuilder('\OCP\Files\Folder') + $this->userFolder = $this->getMockBuilder(Folder::class) ->disableOriginalConstructor() ->getMock(); @@ -91,7 +101,7 @@ class SharesPluginTest extends \Test\TestCase { * @dataProvider sharesGetPropertiesDataProvider */ public function testGetProperties($shareTypes) { - $sabreNode = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\Node') + $sabreNode = $this->getMockBuilder(Node::class) ->disableOriginalConstructor() ->getMock(); $sabreNode->expects($this->any()) @@ -102,7 +112,7 @@ class SharesPluginTest extends \Test\TestCase { ->will($this->returnValue('/subdir')); // node API nodes - $node = $this->getMockBuilder('\OCP\Files\Folder') + $node = $this->getMockBuilder(Folder::class) ->disableOriginalConstructor() ->getMock(); @@ -149,7 +159,7 @@ class SharesPluginTest extends \Test\TestCase { * @dataProvider sharesGetPropertiesDataProvider */ public function testPreloadThenGetProperties($shareTypes) { - $sabreNode1 = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\File') + $sabreNode1 = $this->getMockBuilder(File::class) ->disableOriginalConstructor() ->getMock(); $sabreNode1->expects($this->any()) @@ -157,7 +167,7 @@ class SharesPluginTest extends \Test\TestCase { ->will($this->returnValue(111)); $sabreNode1->expects($this->any()) ->method('getPath'); - $sabreNode2 = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\File') + $sabreNode2 = $this->getMockBuilder(File::class) ->disableOriginalConstructor() ->getMock(); $sabreNode2->expects($this->any()) @@ -167,7 +177,7 @@ class SharesPluginTest extends \Test\TestCase { ->method('getPath') ->will($this->returnValue('/subdir/foo')); - $sabreNode = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\Directory') + $sabreNode = $this->getMockBuilder(Directory::class) ->disableOriginalConstructor() ->getMock(); $sabreNode->expects($this->any()) @@ -181,19 +191,19 @@ class SharesPluginTest extends \Test\TestCase { ->will($this->returnValue('/subdir')); // node API nodes - $node = $this->getMockBuilder('\OCP\Files\Folder') + $node = $this->getMockBuilder(Folder::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->any()) ->method('getId') ->will($this->returnValue(123)); - $node1 = $this->getMockBuilder('\OCP\Files\File') + $node1 = $this->getMockBuilder(File::class) ->disableOriginalConstructor() ->getMock(); $node1->expects($this->any()) ->method('getId') ->will($this->returnValue(111)); - $node2 = $this->getMockBuilder('\OCP\Files\File') + $node2 = $this->getMockBuilder(File::class) ->disableOriginalConstructor() ->getMock(); $node2->expects($this->any()) @@ -206,7 +216,7 @@ class SharesPluginTest extends \Test\TestCase { ->will($this->returnValue($node)); $dummyShares = array_map(function($type) { - $share = $this->getMockBuilder('\OCP\Share\IShare')->getMock(); + $share = $this->getMockBuilder(IShare::class)->getMock(); $share->expects($this->any()) ->method('getShareType') ->will($this->returnValue($type)); diff --git a/apps/dav/tests/unit/Connector/Sabre/TagsPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/TagsPluginTest.php index 9189a73f77f..af156310887 100644 --- a/apps/dav/tests/unit/Connector/Sabre/TagsPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/TagsPluginTest.php @@ -24,6 +24,13 @@ */ namespace OCA\DAV\Tests\unit\Connector\Sabre; +use OCA\DAV\Connector\Sabre\Directory; +use OCA\DAV\Connector\Sabre\File; +use OCA\DAV\Connector\Sabre\Node; +use OCP\ITagManager; +use OCP\ITags; +use Sabre\DAV\Tree; + /** * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com> * This file is licensed under the Affero General Public License version 3 or @@ -42,7 +49,7 @@ class TagsPluginTest extends \Test\TestCase { private $server; /** - * @var \Sabre\DAV\Tree + * @var Tree */ private $tree; @@ -64,13 +71,13 @@ class TagsPluginTest extends \Test\TestCase { public function setUp() { parent::setUp(); $this->server = new \Sabre\DAV\Server(); - $this->tree = $this->getMockBuilder('\Sabre\DAV\Tree') + $this->tree = $this->getMockBuilder(Tree::class) ->disableOriginalConstructor() ->getMock(); - $this->tagger = $this->getMockBuilder('\OCP\ITags') + $this->tagger = $this->getMockBuilder(ITags::class) ->disableOriginalConstructor() ->getMock(); - $this->tagManager = $this->getMockBuilder('\OCP\ITagManager') + $this->tagManager = $this->getMockBuilder(ITagManager::class) ->disableOriginalConstructor() ->getMock(); $this->tagManager->expects($this->any()) @@ -85,7 +92,7 @@ class TagsPluginTest extends \Test\TestCase { * @dataProvider tagsGetPropertiesDataProvider */ public function testGetProperties($tags, $requestedProperties, $expectedProperties) { - $node = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\Node') + $node = $this->getMockBuilder(Node::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->any()) @@ -124,13 +131,13 @@ class TagsPluginTest extends \Test\TestCase { * @dataProvider tagsGetPropertiesDataProvider */ public function testPreloadThenGetProperties($tags, $requestedProperties, $expectedProperties) { - $node1 = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\File') + $node1 = $this->getMockBuilder(File::class) ->disableOriginalConstructor() ->getMock(); $node1->expects($this->any()) ->method('getId') ->will($this->returnValue(111)); - $node2 = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\File') + $node2 = $this->getMockBuilder(File::class) ->disableOriginalConstructor() ->getMock(); $node2->expects($this->any()) @@ -145,7 +152,7 @@ class TagsPluginTest extends \Test\TestCase { $expectedCallCount = 1; } - $node = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\Directory') + $node = $this->getMockBuilder(Directory::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->any()) @@ -260,7 +267,7 @@ class TagsPluginTest extends \Test\TestCase { public function testUpdateTags() { // this test will replace the existing tags "tagremove" with "tag1" and "tag2" // and keep "tagkeep" - $node = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\Node') + $node = $this->getMockBuilder(Node::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->any()) @@ -311,7 +318,7 @@ class TagsPluginTest extends \Test\TestCase { } public function testUpdateTagsFromScratch() { - $node = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\Node') + $node = $this->getMockBuilder(Node::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->any()) @@ -359,7 +366,7 @@ class TagsPluginTest extends \Test\TestCase { public function testUpdateFav() { // this test will replace the existing tags "tagremove" with "tag1" and "tag2" // and keep "tagkeep" - $node = $this->getMockBuilder('\OCA\DAV\Connector\Sabre\Node') + $node = $this->getMockBuilder(Node::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->any()) diff --git a/apps/dav/tests/unit/DAV/BrowserErrorPagePluginTest.php b/apps/dav/tests/unit/DAV/BrowserErrorPagePluginTest.php index cdeaceefedf..32f19e9ddb9 100644 --- a/apps/dav/tests/unit/DAV/BrowserErrorPagePluginTest.php +++ b/apps/dav/tests/unit/DAV/BrowserErrorPagePluginTest.php @@ -26,6 +26,7 @@ namespace OCA\DAV\Tests\unit\DAV; use OCA\DAV\Files\BrowserErrorPagePlugin; use PHPUnit_Framework_MockObject_MockObject; use Sabre\DAV\Exception\NotFound; +use Sabre\HTTP\Response; class BrowserErrorPagePluginTest extends \Test\TestCase { @@ -36,13 +37,13 @@ class BrowserErrorPagePluginTest extends \Test\TestCase { */ public function test($expectedCode, $exception) { /** @var BrowserErrorPagePlugin | PHPUnit_Framework_MockObject_MockObject $plugin */ - $plugin = $this->getMockBuilder('OCA\DAV\Files\BrowserErrorPagePlugin')->setMethods(['sendResponse', 'generateBody'])->getMock(); + $plugin = $this->getMockBuilder(BrowserErrorPagePlugin::class)->setMethods(['sendResponse', 'generateBody'])->getMock(); $plugin->expects($this->once())->method('generateBody')->willReturn(':boom:'); $plugin->expects($this->once())->method('sendResponse'); /** @var \Sabre\DAV\Server | PHPUnit_Framework_MockObject_MockObject $server */ $server = $this->getMockBuilder('Sabre\DAV\Server')->disableOriginalConstructor()->getMock(); $server->expects($this->once())->method('on'); - $httpResponse = $this->getMockBuilder('Sabre\HTTP\Response')->disableOriginalConstructor()->getMock(); + $httpResponse = $this->getMockBuilder(Response::class)->disableOriginalConstructor()->getMock(); $httpResponse->expects($this->once())->method('addHeaders'); $httpResponse->expects($this->once())->method('setStatus')->with($expectedCode); $httpResponse->expects($this->once())->method('setBody')->with(':boom:'); diff --git a/apps/dav/tests/unit/DAV/HookManagerTest.php b/apps/dav/tests/unit/DAV/HookManagerTest.php index a78ffea5af4..3296d550a6b 100644 --- a/apps/dav/tests/unit/DAV/HookManagerTest.php +++ b/apps/dav/tests/unit/DAV/HookManagerTest.php @@ -42,7 +42,7 @@ class HookManagerTest extends TestCase { public function setUp() { parent::setUp(); - $this->eventDispatcher = $this->getMockBuilder('Symfony\Component\EventDispatcher\EventDispatcher')->disableOriginalConstructor()->getMock(); + $this->eventDispatcher = $this->getMockBuilder(EventDispatcher::class)->disableOriginalConstructor()->getMock(); $this->l10n = $this->createMock(IL10N::class); $this->l10n ->expects($this->any()) diff --git a/apps/dav/tests/unit/DAV/Sharing/PluginTest.php b/apps/dav/tests/unit/DAV/Sharing/PluginTest.php index c4dae96e52f..d6291467e47 100644 --- a/apps/dav/tests/unit/DAV/Sharing/PluginTest.php +++ b/apps/dav/tests/unit/DAV/Sharing/PluginTest.php @@ -47,17 +47,17 @@ class PluginTest extends TestCase { parent::setUp(); /** @var Auth | \PHPUnit_Framework_MockObject_MockObject $authBackend */ - $authBackend = $this->getMockBuilder('OCA\DAV\Connector\Sabre\Auth')->disableOriginalConstructor()->getMock(); + $authBackend = $this->getMockBuilder(Auth::class)->disableOriginalConstructor()->getMock(); $authBackend->method('isDavAuthenticated')->willReturn(true); /** @var IRequest $request */ - $request = $this->getMockBuilder('OCP\IRequest')->disableOriginalConstructor()->getMock(); + $request = $this->getMockBuilder(IRequest::class)->disableOriginalConstructor()->getMock(); $this->plugin = new Plugin($authBackend, $request); $root = new SimpleCollection('root'); $this->server = new \Sabre\DAV\Server($root); /** @var SimpleCollection $node */ - $this->book = $this->getMockBuilder('OCA\DAV\DAV\Sharing\IShareable')-> + $this->book = $this->getMockBuilder(IShareable::class)-> disableOriginalConstructor()-> getMock(); $this->book->method('getName')->willReturn('addressbook1.vcf'); diff --git a/apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php b/apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php index 1831210546d..f67160af8d0 100644 --- a/apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php +++ b/apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php @@ -25,6 +25,9 @@ namespace OCA\DAV\Tests\unit\SystemTag; use OC\SystemTag\SystemTag; +use OCP\IUser; +use OCP\SystemTag\ISystemTagManager; +use OCP\SystemTag\ISystemTagObjectMapper; use OCP\SystemTag\TagNotFoundException; use OCP\SystemTag\ISystemTag; @@ -48,11 +51,11 @@ class SystemTagMappingNodeTest extends \Test\TestCase { protected function setUp() { parent::setUp(); - $this->tagManager = $this->getMockBuilder('\OCP\SystemTag\ISystemTagManager') + $this->tagManager = $this->getMockBuilder(ISystemTagManager::class) ->getMock(); - $this->tagMapper = $this->getMockBuilder('\OCP\SystemTag\ISystemTagObjectMapper') + $this->tagMapper = $this->getMockBuilder(ISystemTagObjectMapper::class) ->getMock(); - $this->user = $this->getMockBuilder('\OCP\IUser') + $this->user = $this->getMockBuilder(IUser::class) ->getMock(); } diff --git a/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php b/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php index 3722bd9d25a..dd6892fe6ea 100644 --- a/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php +++ b/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php @@ -26,6 +26,8 @@ namespace OCA\DAV\Tests\unit\SystemTag; use OC\SystemTag\SystemTag; +use OCP\IUser; +use OCP\SystemTag\ISystemTagManager; use OCP\SystemTag\TagNotFoundException; use OCP\SystemTag\TagAlreadyExistsException; use OCP\SystemTag\ISystemTag; @@ -46,9 +48,9 @@ class SystemTagNodeTest extends \Test\TestCase { protected function setUp() { parent::setUp(); - $this->tagManager = $this->getMockBuilder('\OCP\SystemTag\ISystemTagManager') + $this->tagManager = $this->getMockBuilder(ISystemTagManager::class) ->getMock(); - $this->user = $this->getMockBuilder('\OCP\IUser') + $this->user = $this->getMockBuilder(IUser::class) ->getMock(); } diff --git a/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php b/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php index fcfa528ac64..b231577845c 100644 --- a/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php +++ b/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php @@ -27,11 +27,18 @@ namespace OCA\DAV\Tests\unit\SystemTag; use OC\SystemTag\SystemTag; +use OCA\DAV\SystemTag\SystemTagNode; +use OCA\DAV\SystemTag\SystemTagsByIdCollection; +use OCA\DAV\SystemTag\SystemTagsObjectMappingCollection; use OCP\IGroupManager; use OCP\IUserSession; +use OCP\SystemTag\ISystemTagManager; use OCP\SystemTag\TagAlreadyExistsException; use OCP\IUser; use OCP\SystemTag\ISystemTag; +use Sabre\DAV\Tree; +use Sabre\HTTP\RequestInterface; +use Sabre\HTTP\ResponseInterface; class SystemTagPluginTest extends \Test\TestCase { @@ -79,19 +86,19 @@ class SystemTagPluginTest extends \Test\TestCase { public function setUp() { parent::setUp(); - $this->tree = $this->getMockBuilder('\Sabre\DAV\Tree') + $this->tree = $this->getMockBuilder(Tree::class) ->disableOriginalConstructor() ->getMock(); $this->server = new \Sabre\DAV\Server($this->tree); - $this->tagManager = $this->getMockBuilder('\OCP\SystemTag\ISystemTagManager') + $this->tagManager = $this->getMockBuilder(ISystemTagManager::class) ->getMock(); - $this->groupManager = $this->getMockBuilder('\OCP\IGroupManager') + $this->groupManager = $this->getMockBuilder(IGroupManager::class) ->getMock(); - $this->user = $this->getMockBuilder('\OCP\IUser') + $this->user = $this->getMockBuilder(IUser::class) ->getMock(); - $this->userSession = $this->getMockBuilder('\OCP\IUserSession') + $this->userSession = $this->getMockBuilder(IUserSession::class) ->getMock(); $this->userSession ->expects($this->any()) @@ -189,7 +196,7 @@ class SystemTagPluginTest extends \Test\TestCase { ->with('admin') ->willReturn(true); - $node = $this->getMockBuilder('\OCA\DAV\SystemTag\SystemTagNode') + $node = $this->getMockBuilder(SystemTagNode::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->any()) @@ -244,7 +251,7 @@ class SystemTagPluginTest extends \Test\TestCase { ->with('admin') ->willReturn(false); - $node = $this->getMockBuilder('\OCA\DAV\SystemTag\SystemTagNode') + $node = $this->getMockBuilder(SystemTagNode::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->any()) @@ -279,7 +286,7 @@ class SystemTagPluginTest extends \Test\TestCase { ->with('admin') ->willReturn(true); - $node = $this->getMockBuilder('\OCA\DAV\SystemTag\SystemTagNode') + $node = $this->getMockBuilder(SystemTagNode::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->any()) @@ -337,7 +344,7 @@ class SystemTagPluginTest extends \Test\TestCase { ->with('admin') ->willReturn(false); - $node = $this->getMockBuilder('\OCA\DAV\SystemTag\SystemTagNode') + $node = $this->getMockBuilder(SystemTagNode::class) ->disableOriginalConstructor() ->getMock(); $node->expects($this->any()) @@ -400,7 +407,7 @@ class SystemTagPluginTest extends \Test\TestCase { } $requestData = json_encode($requestData); - $node = $this->getMockBuilder('\OCA\DAV\SystemTag\SystemTagsByIdCollection') + $node = $this->getMockBuilder(SystemTagsByIdCollection::class) ->disableOriginalConstructor() ->getMock(); $this->tagManager->expects($this->never()) @@ -413,10 +420,10 @@ class SystemTagPluginTest extends \Test\TestCase { ->with('/systemtags') ->will($this->returnValue($node)); - $request = $this->getMockBuilder('Sabre\HTTP\RequestInterface') + $request = $this->getMockBuilder(RequestInterface::class) ->disableOriginalConstructor() ->getMock(); - $response = $this->getMockBuilder('Sabre\HTTP\ResponseInterface') + $response = $this->getMockBuilder(ResponseInterface::class) ->disableOriginalConstructor() ->getMock(); @@ -445,7 +452,7 @@ class SystemTagPluginTest extends \Test\TestCase { 'userAssignable' => true, ]); - $node = $this->getMockBuilder('\OCA\DAV\SystemTag\SystemTagsByIdCollection') + $node = $this->getMockBuilder(SystemTagsByIdCollection::class) ->disableOriginalConstructor() ->getMock(); $this->tagManager->expects($this->once()) @@ -458,10 +465,10 @@ class SystemTagPluginTest extends \Test\TestCase { ->with('/systemtags') ->will($this->returnValue($node)); - $request = $this->getMockBuilder('Sabre\HTTP\RequestInterface') + $request = $this->getMockBuilder(RequestInterface::class) ->disableOriginalConstructor() ->getMock(); - $response = $this->getMockBuilder('Sabre\HTTP\ResponseInterface') + $response = $this->getMockBuilder(ResponseInterface::class) ->disableOriginalConstructor() ->getMock(); @@ -522,7 +529,7 @@ class SystemTagPluginTest extends \Test\TestCase { } $requestData = json_encode($requestData); - $node = $this->getMockBuilder('\OCA\DAV\SystemTag\SystemTagsByIdCollection') + $node = $this->getMockBuilder(SystemTagsByIdCollection::class) ->disableOriginalConstructor() ->getMock(); $this->tagManager->expects($this->once()) @@ -545,10 +552,10 @@ class SystemTagPluginTest extends \Test\TestCase { ->with('/systemtags') ->will($this->returnValue($node)); - $request = $this->getMockBuilder('Sabre\HTTP\RequestInterface') + $request = $this->getMockBuilder(RequestInterface::class) ->disableOriginalConstructor() ->getMock(); - $response = $this->getMockBuilder('Sabre\HTTP\ResponseInterface') + $response = $this->getMockBuilder(ResponseInterface::class) ->disableOriginalConstructor() ->getMock(); @@ -601,7 +608,7 @@ class SystemTagPluginTest extends \Test\TestCase { 'userAssignable' => false, ]); - $node = $this->getMockBuilder('\OCA\DAV\SystemTag\SystemTagsObjectMappingCollection') + $node = $this->getMockBuilder(SystemTagsObjectMappingCollection::class) ->disableOriginalConstructor() ->getMock(); @@ -619,10 +626,10 @@ class SystemTagPluginTest extends \Test\TestCase { ->method('createFile') ->with(1); - $request = $this->getMockBuilder('Sabre\HTTP\RequestInterface') + $request = $this->getMockBuilder(RequestInterface::class) ->disableOriginalConstructor() ->getMock(); - $response = $this->getMockBuilder('Sabre\HTTP\ResponseInterface') + $response = $this->getMockBuilder(ResponseInterface::class) ->disableOriginalConstructor() ->getMock(); @@ -654,7 +661,7 @@ class SystemTagPluginTest extends \Test\TestCase { * @expectedException \Sabre\DAV\Exception\NotFound */ public function testCreateTagToUnknownNode() { - $node = $this->getMockBuilder('\OCA\DAV\SystemTag\SystemTagsObjectMappingCollection') + $node = $this->getMockBuilder(SystemTagsObjectMappingCollection::class) ->disableOriginalConstructor() ->getMock(); @@ -668,10 +675,10 @@ class SystemTagPluginTest extends \Test\TestCase { $node->expects($this->never()) ->method('createFile'); - $request = $this->getMockBuilder('Sabre\HTTP\RequestInterface') + $request = $this->getMockBuilder(RequestInterface::class) ->disableOriginalConstructor() ->getMock(); - $response = $this->getMockBuilder('Sabre\HTTP\ResponseInterface') + $response = $this->getMockBuilder(ResponseInterface::class) ->disableOriginalConstructor() ->getMock(); @@ -715,10 +722,10 @@ class SystemTagPluginTest extends \Test\TestCase { ->with('/systemtags') ->will($this->returnValue($node)); - $request = $this->getMockBuilder('Sabre\HTTP\RequestInterface') + $request = $this->getMockBuilder(RequestInterface::class) ->disableOriginalConstructor() ->getMock(); - $response = $this->getMockBuilder('Sabre\HTTP\ResponseInterface') + $response = $this->getMockBuilder(ResponseInterface::class) ->disableOriginalConstructor() ->getMock(); diff --git a/apps/dav/tests/unit/SystemTag/SystemTagsByIdCollectionTest.php b/apps/dav/tests/unit/SystemTag/SystemTagsByIdCollectionTest.php index 73431393071..ec52de0536a 100644 --- a/apps/dav/tests/unit/SystemTag/SystemTagsByIdCollectionTest.php +++ b/apps/dav/tests/unit/SystemTag/SystemTagsByIdCollectionTest.php @@ -26,6 +26,10 @@ namespace OCA\DAV\Tests\unit\SystemTag; use OC\SystemTag\SystemTag; +use OCP\IGroupManager; +use OCP\IUser; +use OCP\IUserSession; +use OCP\SystemTag\ISystemTagManager; use OCP\SystemTag\TagNotFoundException; class SystemTagsByIdCollectionTest extends \Test\TestCase { @@ -43,22 +47,22 @@ class SystemTagsByIdCollectionTest extends \Test\TestCase { protected function setUp() { parent::setUp(); - $this->tagManager = $this->getMockBuilder('\OCP\SystemTag\ISystemTagManager') + $this->tagManager = $this->getMockBuilder(ISystemTagManager::class) ->getMock(); } public function getNode($isAdmin = true) { - $this->user = $this->getMockBuilder('\OCP\IUser') + $this->user = $this->getMockBuilder(IUser::class) ->getMock(); $this->user->expects($this->any()) ->method('getUID') ->will($this->returnValue('testuser')); - $userSession = $this->getMockBuilder('\OCP\IUserSession') + $userSession = $this->getMockBuilder(IUserSession::class) ->getMock(); $userSession->expects($this->any()) ->method('getUser') ->will($this->returnValue($this->user)); - $groupManager = $this->getMockBuilder('\OCP\IGroupManager') + $groupManager = $this->getMockBuilder(IGroupManager::class) ->getMock(); $groupManager->expects($this->any()) ->method('isAdmin') diff --git a/apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php b/apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php index 9aa35c2ab24..f99e4df1f69 100644 --- a/apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php +++ b/apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php @@ -26,6 +26,9 @@ namespace OCA\DAV\Tests\unit\SystemTag; use OC\SystemTag\SystemTag; +use OCP\IUser; +use OCP\SystemTag\ISystemTagManager; +use OCP\SystemTag\ISystemTagObjectMapper; use OCP\SystemTag\TagNotFoundException; class SystemTagsObjectMappingCollectionTest extends \Test\TestCase { @@ -48,12 +51,12 @@ class SystemTagsObjectMappingCollectionTest extends \Test\TestCase { protected function setUp() { parent::setUp(); - $this->tagManager = $this->getMockBuilder('\OCP\SystemTag\ISystemTagManager') + $this->tagManager = $this->getMockBuilder(ISystemTagManager::class) ->getMock(); - $this->tagMapper = $this->getMockBuilder('\OCP\SystemTag\ISystemTagObjectMapper') + $this->tagMapper = $this->getMockBuilder(ISystemTagObjectMapper::class) ->getMock(); - $this->user = $this->getMockBuilder('\OCP\IUser') + $this->user = $this->getMockBuilder(IUser::class) ->getMock(); } diff --git a/apps/dav/tests/unit/SystemTag/SystemTagsObjectTypeCollectionTest.php b/apps/dav/tests/unit/SystemTag/SystemTagsObjectTypeCollectionTest.php index 0c065d3451a..0dc7ace2b89 100644 --- a/apps/dav/tests/unit/SystemTag/SystemTagsObjectTypeCollectionTest.php +++ b/apps/dav/tests/unit/SystemTag/SystemTagsObjectTypeCollectionTest.php @@ -24,6 +24,13 @@ namespace OCA\DAV\Tests\unit\SystemTag; +use OCP\Files\Folder; +use OCP\IGroupManager; +use OCP\IUser; +use OCP\IUserSession; +use OCP\SystemTag\ISystemTagManager; +use OCP\SystemTag\ISystemTagObjectMapper; + class SystemTagsObjectTypeCollectionTest extends \Test\TestCase { /** @@ -49,29 +56,29 @@ class SystemTagsObjectTypeCollectionTest extends \Test\TestCase { protected function setUp() { parent::setUp(); - $this->tagManager = $this->getMockBuilder('\OCP\SystemTag\ISystemTagManager') + $this->tagManager = $this->getMockBuilder(ISystemTagManager::class) ->getMock(); - $this->tagMapper = $this->getMockBuilder('\OCP\SystemTag\ISystemTagObjectMapper') + $this->tagMapper = $this->getMockBuilder(ISystemTagObjectMapper::class) ->getMock(); - $user = $this->getMockBuilder('\OCP\IUser') + $user = $this->getMockBuilder(IUser::class) ->getMock(); $user->expects($this->any()) ->method('getUID') ->will($this->returnValue('testuser')); - $userSession = $this->getMockBuilder('\OCP\IUserSession') + $userSession = $this->getMockBuilder(IUserSession::class) ->getMock(); $userSession->expects($this->any()) ->method('getUser') ->will($this->returnValue($user)); - $groupManager = $this->getMockBuilder('\OCP\IGroupManager') + $groupManager = $this->getMockBuilder(IGroupManager::class) ->getMock(); $groupManager->expects($this->any()) ->method('isAdmin') ->with('testuser') ->will($this->returnValue(true)); - $this->userFolder = $this->getMockBuilder('\OCP\Files\Folder') + $this->userFolder = $this->getMockBuilder(Folder::class) ->getMock(); $userFolder = $this->userFolder; diff --git a/apps/dav/tests/unit/Upload/AssemblyStreamTest.php b/apps/dav/tests/unit/Upload/AssemblyStreamTest.php index 69ee52299e9..0396f80c9f4 100644 --- a/apps/dav/tests/unit/Upload/AssemblyStreamTest.php +++ b/apps/dav/tests/unit/Upload/AssemblyStreamTest.php @@ -23,6 +23,8 @@ */ namespace OCA\DAV\Tests\unit\Upload; +use Sabre\DAV\File; + class AssemblyStreamTest extends \Test\TestCase { /** @@ -120,7 +122,7 @@ class AssemblyStreamTest extends \Test\TestCase { } private function buildNode($name, $data) { - $node = $this->getMockBuilder('\Sabre\DAV\File') + $node = $this->getMockBuilder(File::class) ->setMethods(['getName', 'get', 'getSize']) ->getMockForAbstractClass(); diff --git a/apps/dav/tests/unit/Upload/FutureFileTest.php b/apps/dav/tests/unit/Upload/FutureFileTest.php index d94f14ab097..10669912530 100644 --- a/apps/dav/tests/unit/Upload/FutureFileTest.php +++ b/apps/dav/tests/unit/Upload/FutureFileTest.php @@ -23,6 +23,8 @@ */ namespace OCA\DAV\Tests\unit\Upload; +use OCA\DAV\Connector\Sabre\Directory; + class FutureFileTest extends \Test\TestCase { public function testGetContentType() { @@ -57,7 +59,7 @@ class FutureFileTest extends \Test\TestCase { } public function testDelete() { - $d = $this->getMockBuilder('OCA\DAV\Connector\Sabre\Directory') + $d = $this->getMockBuilder(Directory::class) ->disableOriginalConstructor() ->setMethods(['delete']) ->getMock(); @@ -89,7 +91,7 @@ class FutureFileTest extends \Test\TestCase { * @return \OCA\DAV\Upload\FutureFile */ private function mockFutureFile() { - $d = $this->getMockBuilder('OCA\DAV\Connector\Sabre\Directory') + $d = $this->getMockBuilder(Directory::class) ->disableOriginalConstructor() ->setMethods(['getETag', 'getLastModified', 'getChildren']) ->getMock(); diff --git a/apps/encryption/composer/autoload.php b/apps/encryption/composer/autoload.php new file mode 100644 index 00000000000..52febf19470 --- /dev/null +++ b/apps/encryption/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer/autoload_real.php'; + +return ComposerAutoloaderInitEncryption::getLoader(); diff --git a/apps/encryption/composer/composer.json b/apps/encryption/composer/composer.json new file mode 100644 index 00000000000..5b38c9dc683 --- /dev/null +++ b/apps/encryption/composer/composer.json @@ -0,0 +1,13 @@ +{ + "config" : { + "vendor-dir": ".", + "optimize-autoloader": true, + "authorative-autoloader": true, + "autoloader-suffix": "Encryption" + }, + "autoload" : { + "psr-4": { + "OCA\\Encryption\\": "../lib/" + } + } +} diff --git a/apps/encryption/composer/composer/ClassLoader.php b/apps/encryption/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..2c72175e772 --- /dev/null +++ b/apps/encryption/composer/composer/ClassLoader.php @@ -0,0 +1,445 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * 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 array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + foreach ($this->prefixDirsPsr4[$search] as $dir) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/apps/encryption/composer/composer/LICENSE b/apps/encryption/composer/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/apps/encryption/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/encryption/composer/composer/autoload_classmap.php b/apps/encryption/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..7ab0056cc8c --- /dev/null +++ b/apps/encryption/composer/composer/autoload_classmap.php @@ -0,0 +1,36 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\Encryption\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php', + 'OCA\\Encryption\\Command\\DisableMasterKey' => $baseDir . '/../lib/Command/DisableMasterKey.php', + 'OCA\\Encryption\\Command\\EnableMasterKey' => $baseDir . '/../lib/Command/EnableMasterKey.php', + 'OCA\\Encryption\\Command\\MigrateKeys' => $baseDir . '/../lib/Command/MigrateKeys.php', + 'OCA\\Encryption\\Controller\\RecoveryController' => $baseDir . '/../lib/Controller/RecoveryController.php', + 'OCA\\Encryption\\Controller\\SettingsController' => $baseDir . '/../lib/Controller/SettingsController.php', + 'OCA\\Encryption\\Controller\\StatusController' => $baseDir . '/../lib/Controller/StatusController.php', + 'OCA\\Encryption\\Crypto\\Crypt' => $baseDir . '/../lib/Crypto/Crypt.php', + 'OCA\\Encryption\\Crypto\\DecryptAll' => $baseDir . '/../lib/Crypto/DecryptAll.php', + 'OCA\\Encryption\\Crypto\\EncryptAll' => $baseDir . '/../lib/Crypto/EncryptAll.php', + 'OCA\\Encryption\\Crypto\\Encryption' => $baseDir . '/../lib/Crypto/Encryption.php', + 'OCA\\Encryption\\Exceptions\\MultiKeyDecryptException' => $baseDir . '/../lib/Exceptions/MultiKeyDecryptException.php', + 'OCA\\Encryption\\Exceptions\\MultiKeyEncryptException' => $baseDir . '/../lib/Exceptions/MultiKeyEncryptException.php', + 'OCA\\Encryption\\Exceptions\\PrivateKeyMissingException' => $baseDir . '/../lib/Exceptions/PrivateKeyMissingException.php', + 'OCA\\Encryption\\Exceptions\\PublicKeyMissingException' => $baseDir . '/../lib/Exceptions/PublicKeyMissingException.php', + 'OCA\\Encryption\\HookManager' => $baseDir . '/../lib/HookManager.php', + 'OCA\\Encryption\\Hooks\\Contracts\\IHook' => $baseDir . '/../lib/Hooks/Contracts/IHook.php', + 'OCA\\Encryption\\Hooks\\UserHooks' => $baseDir . '/../lib/Hooks/UserHooks.php', + 'OCA\\Encryption\\KeyManager' => $baseDir . '/../lib/KeyManager.php', + 'OCA\\Encryption\\Migration' => $baseDir . '/../lib/Migration.php', + 'OCA\\Encryption\\Migration\\SetMasterKeyStatus' => $baseDir . '/../lib/Migration/SetMasterKeyStatus.php', + 'OCA\\Encryption\\Recovery' => $baseDir . '/../lib/Recovery.php', + 'OCA\\Encryption\\Session' => $baseDir . '/../lib/Session.php', + 'OCA\\Encryption\\Settings\\Admin' => $baseDir . '/../lib/Settings/Admin.php', + 'OCA\\Encryption\\Settings\\Personal' => $baseDir . '/../lib/Settings/Personal.php', + 'OCA\\Encryption\\Users\\Setup' => $baseDir . '/../lib/Users/Setup.php', + 'OCA\\Encryption\\Util' => $baseDir . '/../lib/Util.php', +); diff --git a/apps/encryption/composer/composer/autoload_namespaces.php b/apps/encryption/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..71c9e91858d --- /dev/null +++ b/apps/encryption/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( +); diff --git a/apps/encryption/composer/composer/autoload_psr4.php b/apps/encryption/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..6baeba923d6 --- /dev/null +++ b/apps/encryption/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\Encryption\\' => array($baseDir . '/../lib'), +); diff --git a/apps/encryption/composer/composer/autoload_real.php b/apps/encryption/composer/composer/autoload_real.php new file mode 100644 index 00000000000..fae90387a09 --- /dev/null +++ b/apps/encryption/composer/composer/autoload_real.php @@ -0,0 +1,52 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInitEncryption +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInitEncryption', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInitEncryption', 'loadClassLoader')); + + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitEncryption::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/apps/encryption/composer/composer/autoload_static.php b/apps/encryption/composer/composer/autoload_static.php new file mode 100644 index 00000000000..b3ec7c52fe8 --- /dev/null +++ b/apps/encryption/composer/composer/autoload_static.php @@ -0,0 +1,62 @@ +<?php + +// autoload_static.php @generated by Composer + +namespace Composer\Autoload; + +class ComposerStaticInitEncryption +{ + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'OCA\\Encryption\\' => 15, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\Encryption\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'OCA\\Encryption\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php', + 'OCA\\Encryption\\Command\\DisableMasterKey' => __DIR__ . '/..' . '/../lib/Command/DisableMasterKey.php', + 'OCA\\Encryption\\Command\\EnableMasterKey' => __DIR__ . '/..' . '/../lib/Command/EnableMasterKey.php', + 'OCA\\Encryption\\Command\\MigrateKeys' => __DIR__ . '/..' . '/../lib/Command/MigrateKeys.php', + 'OCA\\Encryption\\Controller\\RecoveryController' => __DIR__ . '/..' . '/../lib/Controller/RecoveryController.php', + 'OCA\\Encryption\\Controller\\SettingsController' => __DIR__ . '/..' . '/../lib/Controller/SettingsController.php', + 'OCA\\Encryption\\Controller\\StatusController' => __DIR__ . '/..' . '/../lib/Controller/StatusController.php', + 'OCA\\Encryption\\Crypto\\Crypt' => __DIR__ . '/..' . '/../lib/Crypto/Crypt.php', + 'OCA\\Encryption\\Crypto\\DecryptAll' => __DIR__ . '/..' . '/../lib/Crypto/DecryptAll.php', + 'OCA\\Encryption\\Crypto\\EncryptAll' => __DIR__ . '/..' . '/../lib/Crypto/EncryptAll.php', + 'OCA\\Encryption\\Crypto\\Encryption' => __DIR__ . '/..' . '/../lib/Crypto/Encryption.php', + 'OCA\\Encryption\\Exceptions\\MultiKeyDecryptException' => __DIR__ . '/..' . '/../lib/Exceptions/MultiKeyDecryptException.php', + 'OCA\\Encryption\\Exceptions\\MultiKeyEncryptException' => __DIR__ . '/..' . '/../lib/Exceptions/MultiKeyEncryptException.php', + 'OCA\\Encryption\\Exceptions\\PrivateKeyMissingException' => __DIR__ . '/..' . '/../lib/Exceptions/PrivateKeyMissingException.php', + 'OCA\\Encryption\\Exceptions\\PublicKeyMissingException' => __DIR__ . '/..' . '/../lib/Exceptions/PublicKeyMissingException.php', + 'OCA\\Encryption\\HookManager' => __DIR__ . '/..' . '/../lib/HookManager.php', + 'OCA\\Encryption\\Hooks\\Contracts\\IHook' => __DIR__ . '/..' . '/../lib/Hooks/Contracts/IHook.php', + 'OCA\\Encryption\\Hooks\\UserHooks' => __DIR__ . '/..' . '/../lib/Hooks/UserHooks.php', + 'OCA\\Encryption\\KeyManager' => __DIR__ . '/..' . '/../lib/KeyManager.php', + 'OCA\\Encryption\\Migration' => __DIR__ . '/..' . '/../lib/Migration.php', + 'OCA\\Encryption\\Migration\\SetMasterKeyStatus' => __DIR__ . '/..' . '/../lib/Migration/SetMasterKeyStatus.php', + 'OCA\\Encryption\\Recovery' => __DIR__ . '/..' . '/../lib/Recovery.php', + 'OCA\\Encryption\\Session' => __DIR__ . '/..' . '/../lib/Session.php', + 'OCA\\Encryption\\Settings\\Admin' => __DIR__ . '/..' . '/../lib/Settings/Admin.php', + 'OCA\\Encryption\\Settings\\Personal' => __DIR__ . '/..' . '/../lib/Settings/Personal.php', + 'OCA\\Encryption\\Users\\Setup' => __DIR__ . '/..' . '/../lib/Users/Setup.php', + 'OCA\\Encryption\\Util' => __DIR__ . '/..' . '/../lib/Util.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitEncryption::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitEncryption::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitEncryption::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/encryption/l10n/es_CO.js b/apps/encryption/l10n/es_CO.js new file mode 100644 index 00000000000..424b1f9313f --- /dev/null +++ b/apps/encryption/l10n/es_CO.js @@ -0,0 +1,65 @@ +OC.L10N.register( + "encryption", + { + "Missing recovery key password" : "No se encontró la contraseña de la llave de recuperación", + "Please repeat the recovery key password" : "Por favor reingresa la contraseña de recuperación", + "Repeated recovery key password does not match the provided recovery key password" : "Las contraseñas de la llave de recuperación no coinciden", + "Recovery key successfully enabled" : "Llave de recuperación habilitada exitosamente", + "Could not enable recovery key. Please check your recovery key password!" : "No fue posible habilitar la llave de recuperación. ¡Por favor comprueba la contraseña de tu llave de recuperación!", + "Recovery key successfully disabled" : "Llave de recuperación deshabilitada exitosamente", + "Could not disable recovery key. Please check your recovery key password!" : "No fue posible deshabilitar la llave de recuperación. ¡Por favor comprueba la contraseña de tu llave de recuperación!", + "Missing parameters" : "Parámetros faltantes", + "Please provide the old recovery password" : "Por favor proporciona tu contraseña de recuperación anterior", + "Please provide a new recovery password" : "Por favor proporciona una nueva contraseña de recuperación", + "Please repeat the new recovery password" : "Por favor reingresa la nueva contraseña de recuperación", + "Password successfully changed." : "La contraseña ha sido cambiada exitosamente", + "Could not change the password. Maybe the old password was not correct." : "No fue posible cambiar la contraseña. Por favor verifica que contraseña anterior sea correcta.", + "Recovery Key disabled" : "Llave de recuperación deshabilitada", + "Recovery Key enabled" : "Llave de recuperación habilitada", + "Could not enable the recovery key, please try again or contact your administrator" : "No fue posible habilitar la llave de recuperación, por favor intentalo de nuevo o contacta a tu administrador", + "Could not update the private key password." : "No fue posible actualizar la contraseña de la llave privada.", + "The old password was not correct, please try again." : "La contraseña anterior no es correcta, favor de intentar de nuevo. ", + "The current log-in password was not correct, please try again." : "La contraseña actual para iniciar sesión fue incorrecta, por favor vuelvelo a intentar. ", + "Private key password successfully updated." : "Contraseña de llave privada actualizada exitosamente.", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Necesitas migar tus llaves de encripción de la encripción anterior (ownCloud <=8.0) a la nueva. Por favor ejecuta 'occ encryption:migrate' o contacta a tu adminstrador", + "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "La llave de encripción privada es inválida para la aplicación de encripción. Por favor actualiza la contraseña de tu llave privada en tus configuraciones personales para recuperar el acceso a tus archivos encriptados. ", + "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "La aplicación de encripción está habilitada, pero tus llaves no han sido inicializadas. Por favor cierra sesión e inicia sesión de nuevo. ", + "Please enable server side encryption in the admin settings in order to use the encryption module." : "Por favor activa el encriptado del lado del servidor en los ajustes de administración para usar el módulo de encripción.", + "Encryption app is enabled and ready" : "La aplicación de encripción se cuentra habilitada y lista", + "Bad Signature" : "Firma equivocada", + "Missing Signature" : "Firma faltante", + "one-time password for server-side-encryption" : "Contraseña de una-sola-vez para la encripción del lado del servidor", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es posible decriptar este archivo, posiblemente sea un archivo compartido. Por favor solicita al dueño del archivo que lo vuelva a compartir contigo.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es posible leer este archivo, posiblemente sea un archivo compartido. Por favor solicita al dueño que vuelva a compartirlo contigo.", + "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Hola,\n\nel administrador ha habilitado la encripción de lado del servidor. Tus archivos fueron encriptados usando la contraseña '%s'\n\nPor favor inicia sesión en la interface web, ve a la sección \"módulo de encripción básica\" de tus configuraciones personales y actualiza su contraseña de encripción ingresando esta contraseña en el campo 'contraseña de inicio de sesión anterior' y tu contraseña de inicio de sesión actual. \n", + "The share will expire on %s." : "El elemento compartido expirará el %s.", + "Cheers!" : "¡Saludos!", + "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Hola, <br><br>el administrador ha habilitado la encripción del lado del servidor. Tus archivos fueron encriptados usando la contraseña <strong>%s</strong>.<br><br> Por favor inicia sesisón en la interface web, ve a la sección \"módulo de encripción básica\" de tus configuraciones personales y actualiza tu contraseña de encripción ingresando esta contraseña en el campo \"contraseña de inicio de sesión anterior\" y tu contraseña de inicio de sesión actual. <br><br>", + "Default encryption module" : "Módulo de encripción predeterminado", + "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encripción esta habilitada pero tus llaves no han sido inicializadas, por favor sal y vuelve a entrar a tu sesión", + "Encrypt the home storage" : "Encriptar el almacenamiento de inicio", + "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Habilitar esta opción encripta todos los archivos almacenados en el almacenamiento principal, de otro modo, sólo los archivos en el almacenamiento externo serán encriptados", + "Enable recovery key" : "Habilitar llave de recuperación", + "Disable recovery key" : "Deshabilitar llave de recuperación", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La llave de recuperación es una llave de encripción que se usa para encriptar archivos. Permite la recuperación de los archivos del usuario si este olvida su contraseña. ", + "Recovery key password" : "Contraseña de llave de recuperación", + "Repeat recovery key password" : "Repetir la contraseña de la llave de recuperación", + "Change recovery key password:" : "Cambiar la contraseña de la llave de recuperación:", + "Old recovery key password" : "Anterior contraseña de llave de recuperación", + "New recovery key password" : "Nueva contraseña de llave de recuperación", + "Repeat new recovery key password" : "Reingresar la nueva contraseña de llave de recuperación", + "Change Password" : "Cambiar contraseña", + "Basic encryption module" : "Módulo de encripción básica", + "Your private key password no longer matches your log-in password." : "Tu contraseña de llave privada ya no corresónde con tu contraseña de inicio de sesión. ", + "Set your old private key password to your current log-in password:" : "Establece tu contraseña de llave privada a tu contraseña actual de inicio de seisón:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recuerdas tu contraseña anterior le puedes pedir a tu administrador que recupere tus archivos.", + "Old log-in password" : "Contraseña anterior", + "Current log-in password" : "Contraseña actual", + "Update Private Key Password" : "Actualizar Contraseña de Llave Privada", + "Enable password recovery:" : "Habilitar la recuperación de contraseña:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción te permitirá volver a tener acceso a tus archivos encriptados en caso de que pierdas la contraseña", + "Enabled" : "Habilitado", + "Disabled" : "Deshabilitado", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encripción está habilitada pero tus llaves no han sido establecidas, por favor cierra la sesión y vuelve a iniciarla." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/encryption/l10n/es_CO.json b/apps/encryption/l10n/es_CO.json new file mode 100644 index 00000000000..dabe0c4c41f --- /dev/null +++ b/apps/encryption/l10n/es_CO.json @@ -0,0 +1,63 @@ +{ "translations": { + "Missing recovery key password" : "No se encontró la contraseña de la llave de recuperación", + "Please repeat the recovery key password" : "Por favor reingresa la contraseña de recuperación", + "Repeated recovery key password does not match the provided recovery key password" : "Las contraseñas de la llave de recuperación no coinciden", + "Recovery key successfully enabled" : "Llave de recuperación habilitada exitosamente", + "Could not enable recovery key. Please check your recovery key password!" : "No fue posible habilitar la llave de recuperación. ¡Por favor comprueba la contraseña de tu llave de recuperación!", + "Recovery key successfully disabled" : "Llave de recuperación deshabilitada exitosamente", + "Could not disable recovery key. Please check your recovery key password!" : "No fue posible deshabilitar la llave de recuperación. ¡Por favor comprueba la contraseña de tu llave de recuperación!", + "Missing parameters" : "Parámetros faltantes", + "Please provide the old recovery password" : "Por favor proporciona tu contraseña de recuperación anterior", + "Please provide a new recovery password" : "Por favor proporciona una nueva contraseña de recuperación", + "Please repeat the new recovery password" : "Por favor reingresa la nueva contraseña de recuperación", + "Password successfully changed." : "La contraseña ha sido cambiada exitosamente", + "Could not change the password. Maybe the old password was not correct." : "No fue posible cambiar la contraseña. Por favor verifica que contraseña anterior sea correcta.", + "Recovery Key disabled" : "Llave de recuperación deshabilitada", + "Recovery Key enabled" : "Llave de recuperación habilitada", + "Could not enable the recovery key, please try again or contact your administrator" : "No fue posible habilitar la llave de recuperación, por favor intentalo de nuevo o contacta a tu administrador", + "Could not update the private key password." : "No fue posible actualizar la contraseña de la llave privada.", + "The old password was not correct, please try again." : "La contraseña anterior no es correcta, favor de intentar de nuevo. ", + "The current log-in password was not correct, please try again." : "La contraseña actual para iniciar sesión fue incorrecta, por favor vuelvelo a intentar. ", + "Private key password successfully updated." : "Contraseña de llave privada actualizada exitosamente.", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Necesitas migar tus llaves de encripción de la encripción anterior (ownCloud <=8.0) a la nueva. Por favor ejecuta 'occ encryption:migrate' o contacta a tu adminstrador", + "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "La llave de encripción privada es inválida para la aplicación de encripción. Por favor actualiza la contraseña de tu llave privada en tus configuraciones personales para recuperar el acceso a tus archivos encriptados. ", + "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "La aplicación de encripción está habilitada, pero tus llaves no han sido inicializadas. Por favor cierra sesión e inicia sesión de nuevo. ", + "Please enable server side encryption in the admin settings in order to use the encryption module." : "Por favor activa el encriptado del lado del servidor en los ajustes de administración para usar el módulo de encripción.", + "Encryption app is enabled and ready" : "La aplicación de encripción se cuentra habilitada y lista", + "Bad Signature" : "Firma equivocada", + "Missing Signature" : "Firma faltante", + "one-time password for server-side-encryption" : "Contraseña de una-sola-vez para la encripción del lado del servidor", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es posible decriptar este archivo, posiblemente sea un archivo compartido. Por favor solicita al dueño del archivo que lo vuelva a compartir contigo.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es posible leer este archivo, posiblemente sea un archivo compartido. Por favor solicita al dueño que vuelva a compartirlo contigo.", + "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Hola,\n\nel administrador ha habilitado la encripción de lado del servidor. Tus archivos fueron encriptados usando la contraseña '%s'\n\nPor favor inicia sesión en la interface web, ve a la sección \"módulo de encripción básica\" de tus configuraciones personales y actualiza su contraseña de encripción ingresando esta contraseña en el campo 'contraseña de inicio de sesión anterior' y tu contraseña de inicio de sesión actual. \n", + "The share will expire on %s." : "El elemento compartido expirará el %s.", + "Cheers!" : "¡Saludos!", + "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Hola, <br><br>el administrador ha habilitado la encripción del lado del servidor. Tus archivos fueron encriptados usando la contraseña <strong>%s</strong>.<br><br> Por favor inicia sesisón en la interface web, ve a la sección \"módulo de encripción básica\" de tus configuraciones personales y actualiza tu contraseña de encripción ingresando esta contraseña en el campo \"contraseña de inicio de sesión anterior\" y tu contraseña de inicio de sesión actual. <br><br>", + "Default encryption module" : "Módulo de encripción predeterminado", + "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encripción esta habilitada pero tus llaves no han sido inicializadas, por favor sal y vuelve a entrar a tu sesión", + "Encrypt the home storage" : "Encriptar el almacenamiento de inicio", + "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Habilitar esta opción encripta todos los archivos almacenados en el almacenamiento principal, de otro modo, sólo los archivos en el almacenamiento externo serán encriptados", + "Enable recovery key" : "Habilitar llave de recuperación", + "Disable recovery key" : "Deshabilitar llave de recuperación", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La llave de recuperación es una llave de encripción que se usa para encriptar archivos. Permite la recuperación de los archivos del usuario si este olvida su contraseña. ", + "Recovery key password" : "Contraseña de llave de recuperación", + "Repeat recovery key password" : "Repetir la contraseña de la llave de recuperación", + "Change recovery key password:" : "Cambiar la contraseña de la llave de recuperación:", + "Old recovery key password" : "Anterior contraseña de llave de recuperación", + "New recovery key password" : "Nueva contraseña de llave de recuperación", + "Repeat new recovery key password" : "Reingresar la nueva contraseña de llave de recuperación", + "Change Password" : "Cambiar contraseña", + "Basic encryption module" : "Módulo de encripción básica", + "Your private key password no longer matches your log-in password." : "Tu contraseña de llave privada ya no corresónde con tu contraseña de inicio de sesión. ", + "Set your old private key password to your current log-in password:" : "Establece tu contraseña de llave privada a tu contraseña actual de inicio de seisón:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recuerdas tu contraseña anterior le puedes pedir a tu administrador que recupere tus archivos.", + "Old log-in password" : "Contraseña anterior", + "Current log-in password" : "Contraseña actual", + "Update Private Key Password" : "Actualizar Contraseña de Llave Privada", + "Enable password recovery:" : "Habilitar la recuperación de contraseña:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción te permitirá volver a tener acceso a tus archivos encriptados en caso de que pierdas la contraseña", + "Enabled" : "Habilitado", + "Disabled" : "Deshabilitado", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encripción está habilitada pero tus llaves no han sido establecidas, por favor cierra la sesión y vuelve a iniciarla." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/encryption/l10n/eu.js b/apps/encryption/l10n/eu.js index 1c8bdf4fa04..8a256e2de16 100644 --- a/apps/encryption/l10n/eu.js +++ b/apps/encryption/l10n/eu.js @@ -8,23 +8,48 @@ OC.L10N.register( "Could not enable recovery key. Please check your recovery key password!" : "Ezin da berreskuratze gako gaitu. Egiaztatu berreskuratze gako pasahitza!", "Recovery key successfully disabled" : "Berreskuratze gakoa behar bezala desgaitu da", "Could not disable recovery key. Please check your recovery key password!" : "Ezin da berreskuratze gako desgaitu. Egiaztatu berreskuratze gako pasahitza!", + "Missing parameters" : "Parametroak faltan", "Please provide the old recovery password" : "Mesedez sartu berreskuratze pasahitz zaharra", "Please provide a new recovery password" : "Mesedez sartu berreskuratze pasahitz berria", "Please repeat the new recovery password" : "Mesedez errepikatu berreskuratze pasahitz berria", "Password successfully changed." : "Pasahitza behar bezala aldatu da.", "Could not change the password. Maybe the old password was not correct." : "Ezin izan da pasahitza aldatu. Agian pasahitz zaharra okerrekoa da.", + "Recovery Key disabled" : "Berreskuratze gakoa desgaituta", + "Recovery Key enabled" : "Berreskuratze gakoa gaituta", + "Could not enable the recovery key, please try again or contact your administrator" : "Ezin da berreskuratze gakoa gaitu, saia zaitez berriz mesedez edo zureadministratzailearekin kontaktuan jarri", "Could not update the private key password." : "Ezin izan da gako pribatu pasahitza eguneratu. ", "The old password was not correct, please try again." : "Pasahitz zaharra ez da egokia. Mesedez, saiatu berriro.", "The current log-in password was not correct, please try again." : "Oraingo pasahitza ez da egokia. Mesedez, saiatu berriro.", "Private key password successfully updated." : "Gako pasahitz pribatu behar bezala eguneratu da.", - "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Enkriptazio aplikaziorako gako pribatu okerra. Mesedez eguneratu zure gako pribatuaren pasahitza zure ezarpen pertsonaletan zure enkriptatuko fitxategietarako sarrera berreskuratzeko.", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Zure enkriptatze gakoak enkriptatze zaharretik (ownCloud <=8.0) berrira migratubehar duzu. 'occ encryption:migrate' exekuta ezazu mesedez, edo zure administratzailearekin kontaktuan jar zaitez", + "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Enkriptazio aplikaziorako gako pribatu desegokia. Zure gako pribatuaren pasahitza eguneratuezarpen pertsonaletan, enkriptatutako fitxategiak berriz atzitu nahi badituzu", + "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Enkriptazioa app-a gaituta dago, baina zure gakoak ez dira hasieratu. Saiotikirten eta berriz sartu, mesedez", + "Please enable server side encryption in the admin settings in order to use the encryption module." : "Enkriptazio modulua erabili ahal izateko zerbitzariaren aldean enkriptazioagaitu administrazio ezarpenetan", + "Encryption app is enabled and ready" : "Enkriptazioa app-a gaituta eta martxan dago", + "Bad Signature" : "Sinadura ezegokia", + "Missing Signature" : "Sinadura falta da", + "one-time password for server-side-encryption" : "aldi bateko pasahitzak zerbitzari-aldeko enkriptaziorako", "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ezin izan da fitxategi hau deszifratu, ziurrenik elkarbanatutako fitxategi bat da. Mesdez, eskatu fitxategiaren jabeari fitxategia zurekin berriz elkarbana dezan.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ezin da fitxategi hau irakurri, ziur aski partekatutako fitxategia izango da. Fitxategiaren jabeari berriz partekatzeko eska iezaiozu", + "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Kaixo\n\nadministradoreak zerbitzari-aldeko enkriptazioa gaitu du. Zure fitxategiak '%s' pasahitza erabiliz enkriptatuko dira.\n\nWeb interfazea saioa hasi, 'oinarrizko enkripazio modulua' atalera joan zaitez eta pasahitza eguneratu. Hortarako pasahitz zaharra 'pasahitz zaharra' atalean sartu eta zure oraingo pasahitza", "The share will expire on %s." : "Elkarbanaketa %s-n iraungiko da.", "Cheers!" : "Ongi izan!", + "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Kaixo<br><br>administradoreak zerbitzari-aldeko enkriptazioa gaitu du. Zure fitxategiak '%s' pasahitza erabiliz enkriptatuko dira.\n\nWeb interfazea saioa hasi, 'oinarrizko enkripazio modulua' atalera joan zaitez eta pasahitza eguneratu. Hortarako pasahitz zaharra 'pasahitz zaharra' atalean sartu eta zure oraingo pasahitza", + "Default encryption module" : "Defektuzko enkriptazio modulua", + "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio app-a gaituta dago baina zure gakoak ez dira hasieratu, mesedez saiotik irteneta berriz sar zaitez", + "Encrypt the home storage" : "Etxe-biltegia enkriptatu", + "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Aukera hau gaituz gero biltegi orokorreko fitxategi guztiak enkriptatuko dirabestela kanpo biltegian daudenak bakarrik enkriptatuko dira", + "Enable recovery key" : "Berreskuratze gakoa gaitu", + "Disable recovery key" : "Berreskuratze gakoa desgaitu", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Berreskuratze gakoa fitxategiak enkriptatzeko gako extra bat da.Erabiltzailearen fitxategiak berreskuratzea baimentzen du bere pasahitzagalduz gero.", "Recovery key password" : "Berreskuratze gako pasahitza", + "Repeat recovery key password" : "Berreskuratze gakoaren pasahitza errepikatu", "Change recovery key password:" : "Aldatu berreskuratze gako pasahitza:", + "Old recovery key password" : "Berreskuratze gako zaharraren pasahitza", + "New recovery key password" : "Berreskuratze gako berriaren pasahitza", + "Repeat new recovery key password" : "Berreskuratze gakoaren pasahitz berria errepikatu", "Change Password" : "Aldatu Pasahitza", + "Basic encryption module" : "Oinarrizko enkriptazio modulua", "Your private key password no longer matches your log-in password." : "Zure gako pasahitza pribatua ez da dagoeneko bat etortzen zure sartzeko pasahitzarekin.", "Set your old private key password to your current log-in password:" : "Ezarri zure gako pasahitz zaharra orain duzun sartzeko pasahitzan:", " If you don't remember your old password you can ask your administrator to recover your files." : "Ez baduzu zure pasahitz zaharra gogoratzen eskatu zure administratzaileari zure fitxategiak berreskuratzeko.", @@ -34,6 +59,7 @@ OC.L10N.register( "Enable password recovery:" : "Gaitu pasahitzaren berreskuratzea:", "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aukera hau gaituz zure enkriptatutako fitxategiak berreskuratu ahal izango dituzu pasahitza galtzekotan", "Enabled" : "Gaitua", - "Disabled" : "Ez-gaitua" + "Disabled" : "Ez-gaitua", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/encryption/l10n/eu.json b/apps/encryption/l10n/eu.json index 0c07ebd477f..e684651f837 100644 --- a/apps/encryption/l10n/eu.json +++ b/apps/encryption/l10n/eu.json @@ -6,23 +6,48 @@ "Could not enable recovery key. Please check your recovery key password!" : "Ezin da berreskuratze gako gaitu. Egiaztatu berreskuratze gako pasahitza!", "Recovery key successfully disabled" : "Berreskuratze gakoa behar bezala desgaitu da", "Could not disable recovery key. Please check your recovery key password!" : "Ezin da berreskuratze gako desgaitu. Egiaztatu berreskuratze gako pasahitza!", + "Missing parameters" : "Parametroak faltan", "Please provide the old recovery password" : "Mesedez sartu berreskuratze pasahitz zaharra", "Please provide a new recovery password" : "Mesedez sartu berreskuratze pasahitz berria", "Please repeat the new recovery password" : "Mesedez errepikatu berreskuratze pasahitz berria", "Password successfully changed." : "Pasahitza behar bezala aldatu da.", "Could not change the password. Maybe the old password was not correct." : "Ezin izan da pasahitza aldatu. Agian pasahitz zaharra okerrekoa da.", + "Recovery Key disabled" : "Berreskuratze gakoa desgaituta", + "Recovery Key enabled" : "Berreskuratze gakoa gaituta", + "Could not enable the recovery key, please try again or contact your administrator" : "Ezin da berreskuratze gakoa gaitu, saia zaitez berriz mesedez edo zureadministratzailearekin kontaktuan jarri", "Could not update the private key password." : "Ezin izan da gako pribatu pasahitza eguneratu. ", "The old password was not correct, please try again." : "Pasahitz zaharra ez da egokia. Mesedez, saiatu berriro.", "The current log-in password was not correct, please try again." : "Oraingo pasahitza ez da egokia. Mesedez, saiatu berriro.", "Private key password successfully updated." : "Gako pasahitz pribatu behar bezala eguneratu da.", - "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Enkriptazio aplikaziorako gako pribatu okerra. Mesedez eguneratu zure gako pribatuaren pasahitza zure ezarpen pertsonaletan zure enkriptatuko fitxategietarako sarrera berreskuratzeko.", - "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Zure enkriptatze gakoak enkriptatze zaharretik (ownCloud <=8.0) berrira migratubehar duzu. 'occ encryption:migrate' exekuta ezazu mesedez, edo zure administratzailearekin kontaktuan jar zaitez", + "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Enkriptazio aplikaziorako gako pribatu desegokia. Zure gako pribatuaren pasahitza eguneratuezarpen pertsonaletan, enkriptatutako fitxategiak berriz atzitu nahi badituzu", + "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Enkriptazioa app-a gaituta dago, baina zure gakoak ez dira hasieratu. Saiotikirten eta berriz sartu, mesedez", + "Please enable server side encryption in the admin settings in order to use the encryption module." : "Enkriptazio modulua erabili ahal izateko zerbitzariaren aldean enkriptazioagaitu administrazio ezarpenetan", + "Encryption app is enabled and ready" : "Enkriptazioa app-a gaituta eta martxan dago", + "Bad Signature" : "Sinadura ezegokia", + "Missing Signature" : "Sinadura falta da", + "one-time password for server-side-encryption" : "aldi bateko pasahitzak zerbitzari-aldeko enkriptaziorako", "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ezin izan da fitxategi hau deszifratu, ziurrenik elkarbanatutako fitxategi bat da. Mesdez, eskatu fitxategiaren jabeari fitxategia zurekin berriz elkarbana dezan.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Ezin da fitxategi hau irakurri, ziur aski partekatutako fitxategia izango da. Fitxategiaren jabeari berriz partekatzeko eska iezaiozu", + "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Kaixo\n\nadministradoreak zerbitzari-aldeko enkriptazioa gaitu du. Zure fitxategiak '%s' pasahitza erabiliz enkriptatuko dira.\n\nWeb interfazea saioa hasi, 'oinarrizko enkripazio modulua' atalera joan zaitez eta pasahitza eguneratu. Hortarako pasahitz zaharra 'pasahitz zaharra' atalean sartu eta zure oraingo pasahitza", "The share will expire on %s." : "Elkarbanaketa %s-n iraungiko da.", "Cheers!" : "Ongi izan!", + "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Kaixo<br><br>administradoreak zerbitzari-aldeko enkriptazioa gaitu du. Zure fitxategiak '%s' pasahitza erabiliz enkriptatuko dira.\n\nWeb interfazea saioa hasi, 'oinarrizko enkripazio modulua' atalera joan zaitez eta pasahitza eguneratu. Hortarako pasahitz zaharra 'pasahitz zaharra' atalean sartu eta zure oraingo pasahitza", + "Default encryption module" : "Defektuzko enkriptazio modulua", + "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio app-a gaituta dago baina zure gakoak ez dira hasieratu, mesedez saiotik irteneta berriz sar zaitez", + "Encrypt the home storage" : "Etxe-biltegia enkriptatu", + "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Aukera hau gaituz gero biltegi orokorreko fitxategi guztiak enkriptatuko dirabestela kanpo biltegian daudenak bakarrik enkriptatuko dira", + "Enable recovery key" : "Berreskuratze gakoa gaitu", + "Disable recovery key" : "Berreskuratze gakoa desgaitu", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Berreskuratze gakoa fitxategiak enkriptatzeko gako extra bat da.Erabiltzailearen fitxategiak berreskuratzea baimentzen du bere pasahitzagalduz gero.", "Recovery key password" : "Berreskuratze gako pasahitza", + "Repeat recovery key password" : "Berreskuratze gakoaren pasahitza errepikatu", "Change recovery key password:" : "Aldatu berreskuratze gako pasahitza:", + "Old recovery key password" : "Berreskuratze gako zaharraren pasahitza", + "New recovery key password" : "Berreskuratze gako berriaren pasahitza", + "Repeat new recovery key password" : "Berreskuratze gakoaren pasahitz berria errepikatu", "Change Password" : "Aldatu Pasahitza", + "Basic encryption module" : "Oinarrizko enkriptazio modulua", "Your private key password no longer matches your log-in password." : "Zure gako pasahitza pribatua ez da dagoeneko bat etortzen zure sartzeko pasahitzarekin.", "Set your old private key password to your current log-in password:" : "Ezarri zure gako pasahitz zaharra orain duzun sartzeko pasahitzan:", " If you don't remember your old password you can ask your administrator to recover your files." : "Ez baduzu zure pasahitz zaharra gogoratzen eskatu zure administratzaileari zure fitxategiak berreskuratzeko.", @@ -32,6 +57,7 @@ "Enable password recovery:" : "Gaitu pasahitzaren berreskuratzea:", "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Aukera hau gaituz zure enkriptatutako fitxategiak berreskuratu ahal izango dituzu pasahitza galtzekotan", "Enabled" : "Gaitua", - "Disabled" : "Ez-gaitua" + "Disabled" : "Ez-gaitua", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Enkriptazio aplikazioa gaituta dago baina zure gakoak ez daude konfiguratuta, mesedez saioa bukatu eta berriro hasi" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/encryption/l10n/zh_TW.js b/apps/encryption/l10n/zh_TW.js index ed09e5f7968..93fe93de726 100644 --- a/apps/encryption/l10n/zh_TW.js +++ b/apps/encryption/l10n/zh_TW.js @@ -22,6 +22,10 @@ OC.L10N.register( "The current log-in password was not correct, please try again." : "目前登入的密碼不正確,請再試一次", "Private key password successfully updated." : "私人金鑰密碼已成功更新。", "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "您需要搬移您的加密鑰匙從舊版的加密 (ownCloud <= 8.0) 到新版,請執行 'occ encryption:migrate' 或是聯絡系統管理員", + "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "無效的加密應用程序私鑰。請在您的個人設定中更新您的私鑰密碼,以恢復對加密文件的訪問。", + "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "已啟用加密應用,但是你的加密密鑰沒有初始化。請重新登出並登入系統一次。", + "Please enable server side encryption in the admin settings in order to use the encryption module." : "請啟用管理員設定中的伺服器端加密,以使用加密模組。", + "Encryption app is enabled and ready" : "加密應用程式已啟用並準備就緒", "Bad Signature" : "壞的簽章", "Missing Signature" : "遺失簽章", "one-time password for server-side-encryption" : "一次性密碼用於伺服器端的加密", @@ -31,6 +35,8 @@ OC.L10N.register( "The share will expire on %s." : "這個分享將會於 %s 過期", "Cheers!" : "太棒了!", "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "嗨,請看這裡,<br><br>系管理員啟用了伺服器端的加密功能,您的檔案將會使用密碼<strong> '%s' </strong>加密,請從網頁登入,到 'basic encryption module' 設置您的個人設定並透過更新加密密碼,將這個組密碼設定在 'old log-in password' 以及您的目前登入密碼<br><br>", + "Default encryption module" : "預設加密模組", + "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "已啟用加密應用,但是你的加密密鑰沒有初始化。請重新登出並登入系統一次。", "Encrypt the home storage" : "加密家目錄空間", "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "請啟用這個功能以用來加密主要儲存空間的檔案,否則只有再外部儲存的檔案會加密", "Enable recovery key" : "啟用還原金鑰", @@ -43,6 +49,7 @@ OC.L10N.register( "New recovery key password" : "新的還原金鑰密碼", "Repeat new recovery key password" : "再輸入新的還原金鑰密碼一次", "Change Password" : "變更密碼", + "Basic encryption module" : "基本加密模組", "Your private key password no longer matches your log-in password." : "您的私人金鑰密碼不符合您的登入密碼", "Set your old private key password to your current log-in password:" : "設定您的舊私人金鑰密碼到您現在的登入密碼:", " If you don't remember your old password you can ask your administrator to recover your files." : "如果您忘記舊密碼,可以請求管理員協助取回檔案。", diff --git a/apps/encryption/l10n/zh_TW.json b/apps/encryption/l10n/zh_TW.json index 28ef2eeab62..545a78efdda 100644 --- a/apps/encryption/l10n/zh_TW.json +++ b/apps/encryption/l10n/zh_TW.json @@ -20,6 +20,10 @@ "The current log-in password was not correct, please try again." : "目前登入的密碼不正確,請再試一次", "Private key password successfully updated." : "私人金鑰密碼已成功更新。", "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "您需要搬移您的加密鑰匙從舊版的加密 (ownCloud <= 8.0) 到新版,請執行 'occ encryption:migrate' 或是聯絡系統管理員", + "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "無效的加密應用程序私鑰。請在您的個人設定中更新您的私鑰密碼,以恢復對加密文件的訪問。", + "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "已啟用加密應用,但是你的加密密鑰沒有初始化。請重新登出並登入系統一次。", + "Please enable server side encryption in the admin settings in order to use the encryption module." : "請啟用管理員設定中的伺服器端加密,以使用加密模組。", + "Encryption app is enabled and ready" : "加密應用程式已啟用並準備就緒", "Bad Signature" : "壞的簽章", "Missing Signature" : "遺失簽章", "one-time password for server-side-encryption" : "一次性密碼用於伺服器端的加密", @@ -29,6 +33,8 @@ "The share will expire on %s." : "這個分享將會於 %s 過期", "Cheers!" : "太棒了!", "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "嗨,請看這裡,<br><br>系管理員啟用了伺服器端的加密功能,您的檔案將會使用密碼<strong> '%s' </strong>加密,請從網頁登入,到 'basic encryption module' 設置您的個人設定並透過更新加密密碼,將這個組密碼設定在 'old log-in password' 以及您的目前登入密碼<br><br>", + "Default encryption module" : "預設加密模組", + "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "已啟用加密應用,但是你的加密密鑰沒有初始化。請重新登出並登入系統一次。", "Encrypt the home storage" : "加密家目錄空間", "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "請啟用這個功能以用來加密主要儲存空間的檔案,否則只有再外部儲存的檔案會加密", "Enable recovery key" : "啟用還原金鑰", @@ -41,6 +47,7 @@ "New recovery key password" : "新的還原金鑰密碼", "Repeat new recovery key password" : "再輸入新的還原金鑰密碼一次", "Change Password" : "變更密碼", + "Basic encryption module" : "基本加密模組", "Your private key password no longer matches your log-in password." : "您的私人金鑰密碼不符合您的登入密碼", "Set your old private key password to your current log-in password:" : "設定您的舊私人金鑰密碼到您現在的登入密碼:", " If you don't remember your old password you can ask your administrator to recover your files." : "如果您忘記舊密碼,可以請求管理員協助取回檔案。", diff --git a/apps/encryption/lib/Hooks/UserHooks.php b/apps/encryption/lib/Hooks/UserHooks.php index e0826e2c7e3..a08796aee54 100644 --- a/apps/encryption/lib/Hooks/UserHooks.php +++ b/apps/encryption/lib/Hooks/UserHooks.php @@ -170,11 +170,6 @@ class UserHooks implements IHook { * @return boolean|null */ public function login($params) { - - if (!App::isEnabled('encryption')) { - return true; - } - // ensure filesystem is loaded if (!\OC\Files\Filesystem::$loaded) { $this->setupFS($params['uid']); @@ -200,10 +195,7 @@ class UserHooks implements IHook { * @param array $params */ public function postCreateUser($params) { - - if (App::isEnabled('encryption')) { - $this->userSetup->setupUser($params['uid'], $params['password']); - } + $this->userSetup->setupUser($params['uid'], $params['password']); } /** @@ -213,17 +205,12 @@ class UserHooks implements IHook { * @note This method should never be called for users using client side encryption */ public function postDeleteUser($params) { - - if (App::isEnabled('encryption')) { - $this->keyManager->deletePublicKey($params['uid']); - } + $this->keyManager->deletePublicKey($params['uid']); } public function prePasswordReset($params) { - if (App::isEnabled('encryption')) { - $user = $params['uid']; - self::$passwordResetUsers[$user] = true; - } + $user = $params['uid']; + self::$passwordResetUsers[$user] = true; } public function postPasswordReset($params) { diff --git a/apps/encryption/lib/Migration.php b/apps/encryption/lib/Migration.php index 7f4acbb68d4..656cab6a1e1 100644 --- a/apps/encryption/lib/Migration.php +++ b/apps/encryption/lib/Migration.php @@ -26,6 +26,7 @@ namespace OCA\Encryption; use OC\Files\View; +use OCP\App\IAppManager; use OCP\IConfig; use OCP\IDBConnection; use OCP\ILogger; @@ -43,6 +44,8 @@ class Migration { private $logger; /** @var string*/ protected $installedVersion; + /** @var IAppManager */ + protected $appManager; /** * @param IConfig $config @@ -50,7 +53,7 @@ class Migration { * @param IDBConnection $connection * @param ILogger $logger */ - public function __construct(IConfig $config, View $view, IDBConnection $connection, ILogger $logger) { + public function __construct(IConfig $config, View $view, IDBConnection $connection, ILogger $logger, IAppManager $appManager) { $this->view = $view; $this->view->disableCacheUpdate(); $this->connection = $connection; @@ -58,6 +61,7 @@ class Migration { $this->config = $config; $this->logger = $logger; $this->installedVersion = $this->config->getAppValue('files_encryption', 'installed_version', '-1'); + $this->appManager = $appManager; } public function finalCleanUp() { @@ -137,7 +141,7 @@ class Migration { $path = '/files_encryption/keys'; $this->renameFileKeys($user, $path); $trashPath = '/files_trashbin/keys'; - if (\OC_App::isEnabled('files_trashbin') && $this->view->is_dir($user . '/' . $trashPath)) { + if ($this->appManager->isEnabledForUser('files_trashbin') && $this->view->is_dir($user . '/' . $trashPath)) { $this->renameFileKeys($user, $trashPath, true); $this->view->deleteAll($trashPath); } diff --git a/apps/encryption/tests/Command/TestEnableMasterKey.php b/apps/encryption/tests/Command/TestEnableMasterKey.php index 75d5fa3d5e7..58118db8c53 100644 --- a/apps/encryption/tests/Command/TestEnableMasterKey.php +++ b/apps/encryption/tests/Command/TestEnableMasterKey.php @@ -27,6 +27,10 @@ namespace OCA\Encryption\Tests\Command; use OCA\Encryption\Command\EnableMasterKey; use OCA\Encryption\Util; +use OCP\IConfig; +use Symfony\Component\Console\Helper\QuestionHelper; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; use Test\TestCase; class TestEnableMasterKey extends TestCase { @@ -52,15 +56,15 @@ class TestEnableMasterKey extends TestCase { public function setUp() { parent::setUp(); - $this->util = $this->getMockBuilder('OCA\Encryption\Util') + $this->util = $this->getMockBuilder(Util::class) ->disableOriginalConstructor()->getMock(); - $this->config = $this->getMockBuilder('OCP\IConfig') + $this->config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor()->getMock(); - $this->questionHelper = $this->getMockBuilder('Symfony\Component\Console\Helper\QuestionHelper') + $this->questionHelper = $this->getMockBuilder(QuestionHelper::class) ->disableOriginalConstructor()->getMock(); - $this->output = $this->getMockBuilder('Symfony\Component\Console\Output\OutputInterface') + $this->output = $this->getMockBuilder(OutputInterface::class) ->disableOriginalConstructor()->getMock(); - $this->input = $this->getMockBuilder('Symfony\Component\Console\Input\InputInterface') + $this->input = $this->getMockBuilder(InputInterface::class) ->disableOriginalConstructor()->getMock(); $this->enableMasterKey = new EnableMasterKey($this->util, $this->config, $this->questionHelper); diff --git a/apps/encryption/tests/Controller/RecoveryControllerTest.php b/apps/encryption/tests/Controller/RecoveryControllerTest.php index fd1b0663b49..7ab3bc7eebb 100644 --- a/apps/encryption/tests/Controller/RecoveryControllerTest.php +++ b/apps/encryption/tests/Controller/RecoveryControllerTest.php @@ -26,7 +26,11 @@ namespace OCA\Encryption\Tests\Controller; use OCA\Encryption\Controller\RecoveryController; +use OCA\Encryption\Recovery; use OCP\AppFramework\Http; +use OCP\IConfig; +use OCP\IL10N; +use OCP\IRequest; use Test\TestCase; class RecoveryControllerTest extends TestCase { @@ -151,15 +155,15 @@ class RecoveryControllerTest extends TestCase { protected function setUp() { parent::setUp(); - $this->requestMock = $this->getMockBuilder('OCP\IRequest') + $this->requestMock = $this->getMockBuilder(IRequest::class) ->disableOriginalConstructor() ->getMock(); - $this->configMock = $this->getMockBuilder('OCP\IConfig') + $this->configMock = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock(); - $this->l10nMock = $this->getMockBuilder('OCP\IL10N') + $this->l10nMock = $this->getMockBuilder(IL10N::class) ->disableOriginalConstructor() ->getMock(); @@ -168,7 +172,7 @@ class RecoveryControllerTest extends TestCase { ->method('t') ->willReturnArgument(0); - $this->recoveryMock = $this->getMockBuilder('OCA\Encryption\Recovery') + $this->recoveryMock = $this->getMockBuilder(Recovery::class) ->disableOriginalConstructor() ->getMock(); diff --git a/apps/encryption/tests/Controller/SettingsControllerTest.php b/apps/encryption/tests/Controller/SettingsControllerTest.php index 4f3e09687e3..aceb94b23f7 100644 --- a/apps/encryption/tests/Controller/SettingsControllerTest.php +++ b/apps/encryption/tests/Controller/SettingsControllerTest.php @@ -24,9 +24,16 @@ namespace OCA\Encryption\Tests\Controller; use OCA\Encryption\Controller\SettingsController; +use OCA\Encryption\Crypto\Crypt; +use OCA\Encryption\KeyManager; use OCA\Encryption\Session; +use OCA\Encryption\Util; use OCP\AppFramework\Http; +use OCP\IL10N; use OCP\IRequest; +use OCP\ISession; +use OCP\IUserManager; +use OCP\IUserSession; use Test\TestCase; class SettingsControllerTest extends TestCase { @@ -67,7 +74,7 @@ class SettingsControllerTest extends TestCase { $this->requestMock = $this->createMock(IRequest::class); - $this->l10nMock = $this->getMockBuilder('OCP\IL10N') + $this->l10nMock = $this->getMockBuilder(IL10N::class) ->disableOriginalConstructor()->getMock(); $this->l10nMock->expects($this->any()) @@ -76,16 +83,16 @@ class SettingsControllerTest extends TestCase { return $message; })); - $this->userManagerMock = $this->getMockBuilder('OCP\IUserManager') + $this->userManagerMock = $this->getMockBuilder(IUserManager::class) ->disableOriginalConstructor()->getMock(); - $this->keyManagerMock = $this->getMockBuilder('OCA\Encryption\KeyManager') + $this->keyManagerMock = $this->getMockBuilder(KeyManager::class) ->disableOriginalConstructor()->getMock(); - $this->cryptMock = $this->getMockBuilder('OCA\Encryption\Crypto\Crypt') + $this->cryptMock = $this->getMockBuilder(Crypt::class) ->disableOriginalConstructor()->getMock(); - $this->userSessionMock = $this->getMockBuilder('OCP\IUserSession') + $this->userSessionMock = $this->getMockBuilder(IUserSession::class) ->disableOriginalConstructor() ->setMethods([ 'isLoggedIn', @@ -98,7 +105,7 @@ class SettingsControllerTest extends TestCase { ]) ->getMock(); - $this->ocSessionMock = $this->getMockBuilder('OCP\ISession')->disableOriginalConstructor()->getMock(); + $this->ocSessionMock = $this->getMockBuilder(ISession::class)->disableOriginalConstructor()->getMock(); $this->userSessionMock->expects($this->any()) ->method('getUID') @@ -108,10 +115,10 @@ class SettingsControllerTest extends TestCase { ->method($this->anything()) ->will($this->returnSelf()); - $this->sessionMock = $this->getMockBuilder('OCA\Encryption\Session') + $this->sessionMock = $this->getMockBuilder(Session::class) ->disableOriginalConstructor()->getMock(); - $this->utilMock = $this->getMockBuilder('OCA\Encryption\Util') + $this->utilMock = $this->getMockBuilder(Util::class) ->disableOriginalConstructor() ->getMock(); diff --git a/apps/encryption/tests/Controller/StatusControllerTest.php b/apps/encryption/tests/Controller/StatusControllerTest.php index ee0f7b2661c..d72fcd1ac36 100644 --- a/apps/encryption/tests/Controller/StatusControllerTest.php +++ b/apps/encryption/tests/Controller/StatusControllerTest.php @@ -28,6 +28,7 @@ namespace OCA\Encryption\Tests\Controller; use OCA\Encryption\Controller\StatusController; use OCA\Encryption\Session; use OCP\Encryption\IManager; +use OCP\IL10N; use OCP\IRequest; use Test\TestCase; @@ -52,11 +53,11 @@ class StatusControllerTest extends TestCase { parent::setUp(); - $this->sessionMock = $this->getMockBuilder('OCA\Encryption\Session') + $this->sessionMock = $this->getMockBuilder(Session::class) ->disableOriginalConstructor()->getMock(); $this->requestMock = $this->createMock(IRequest::class); - $this->l10nMock = $this->getMockBuilder('OCP\IL10N') + $this->l10nMock = $this->getMockBuilder(IL10N::class) ->disableOriginalConstructor()->getMock(); $this->l10nMock->expects($this->any()) ->method('t') diff --git a/apps/encryption/tests/Crypto/CryptTest.php b/apps/encryption/tests/Crypto/CryptTest.php index 3c226ed94ab..ace4453a803 100644 --- a/apps/encryption/tests/Crypto/CryptTest.php +++ b/apps/encryption/tests/Crypto/CryptTest.php @@ -27,7 +27,10 @@ namespace OCA\Encryption\Tests\Crypto; use OCA\Encryption\Crypto\Crypt; +use OCP\IConfig; use OCP\IL10N; +use OCP\ILogger; +use OCP\IUserSession; use Test\TestCase; class CryptTest extends TestCase { @@ -51,16 +54,16 @@ class CryptTest extends TestCase { public function setUp() { parent::setUp(); - $this->logger = $this->getMockBuilder('OCP\ILogger') + $this->logger = $this->getMockBuilder(ILogger::class) ->disableOriginalConstructor() ->getMock(); $this->logger->expects($this->any()) ->method('warning') ->willReturn(true); - $this->userSession = $this->getMockBuilder('OCP\IUserSession') + $this->userSession = $this->getMockBuilder(IUserSession::class) ->disableOriginalConstructor() ->getMock(); - $this->config = $this->getMockBuilder('OCP\IConfig') + $this->config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock(); $this->l = $this->createMock(IL10N::class); @@ -389,7 +392,7 @@ class CryptTest extends TestCase { */ public function testDecryptPrivateKey($header, $privateKey, $expectedCipher, $isValidKey, $expected) { /** @var \OCA\Encryption\Crypto\Crypt | \PHPUnit_Framework_MockObject_MockObject $crypt */ - $crypt = $this->getMockBuilder('OCA\Encryption\Crypto\Crypt') + $crypt = $this->getMockBuilder(Crypt::class) ->setConstructorArgs( [ $this->logger, diff --git a/apps/encryption/tests/Crypto/DecryptAllTest.php b/apps/encryption/tests/Crypto/DecryptAllTest.php index fdef37adc84..99b1b47ba8e 100644 --- a/apps/encryption/tests/Crypto/DecryptAllTest.php +++ b/apps/encryption/tests/Crypto/DecryptAllTest.php @@ -56,15 +56,15 @@ class DecryptAllTest extends TestCase { public function setUp() { parent::setUp(); - $this->util = $this->getMockBuilder('OCA\Encryption\Util') + $this->util = $this->getMockBuilder(Util::class) ->disableOriginalConstructor()->getMock(); - $this->keyManager = $this->getMockBuilder('OCA\Encryption\KeyManager') + $this->keyManager = $this->getMockBuilder(KeyManager::class) ->disableOriginalConstructor()->getMock(); - $this->crypt = $this->getMockBuilder('OCA\Encryption\Crypto\Crypt') + $this->crypt = $this->getMockBuilder(Crypt::class) ->disableOriginalConstructor()->getMock(); - $this->session = $this->getMockBuilder('OCA\Encryption\Session') + $this->session = $this->getMockBuilder(Session::class) ->disableOriginalConstructor()->getMock(); - $this->questionHelper = $this->getMockBuilder('Symfony\Component\Console\Helper\QuestionHelper') + $this->questionHelper = $this->getMockBuilder(QuestionHelper::class) ->disableOriginalConstructor()->getMock(); $this->instance = new DecryptAll( diff --git a/apps/encryption/tests/Crypto/EncryptAllTest.php b/apps/encryption/tests/Crypto/EncryptAllTest.php index df8401c15b2..38b64a8b6bf 100644 --- a/apps/encryption/tests/Crypto/EncryptAllTest.php +++ b/apps/encryption/tests/Crypto/EncryptAllTest.php @@ -25,8 +25,22 @@ namespace OCA\Encryption\Tests\Crypto; +use OC\Files\View; use OCA\Encryption\Crypto\EncryptAll; +use OCA\Encryption\KeyManager; +use OCA\Encryption\Users\Setup; +use OCA\Encryption\Util; +use OCP\IConfig; +use OCP\IL10N; +use OCP\IUserManager; +use OCP\Mail\IMailer; +use OCP\Security\ISecureRandom; +use OCP\UserInterface; use Symfony\Component\Console\Formatter\OutputFormatterInterface; +use Symfony\Component\Console\Helper\ProgressBar; +use Symfony\Component\Console\Helper\QuestionHelper; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; use Test\TestCase; class EncryptAllTest extends TestCase { @@ -75,29 +89,29 @@ class EncryptAllTest extends TestCase { function setUp() { parent::setUp(); - $this->setupUser = $this->getMockBuilder('OCA\Encryption\Users\Setup') + $this->setupUser = $this->getMockBuilder(Setup::class) ->disableOriginalConstructor()->getMock(); - $this->keyManager = $this->getMockBuilder('OCA\Encryption\KeyManager') + $this->keyManager = $this->getMockBuilder(KeyManager::class) ->disableOriginalConstructor()->getMock(); - $this->util = $this->getMockBuilder('OCA\Encryption\Util') + $this->util = $this->getMockBuilder(Util::class) ->disableOriginalConstructor()->getMock(); - $this->userManager = $this->getMockBuilder('OCP\IUserManager') + $this->userManager = $this->getMockBuilder(IUserManager::class) ->disableOriginalConstructor()->getMock(); - $this->view = $this->getMockBuilder('OC\Files\View') + $this->view = $this->getMockBuilder(View::class) ->disableOriginalConstructor()->getMock(); - $this->config = $this->getMockBuilder('OCP\IConfig') + $this->config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor()->getMock(); - $this->mailer = $this->getMockBuilder('OCP\Mail\IMailer') + $this->mailer = $this->getMockBuilder(IMailer::class) ->disableOriginalConstructor()->getMock(); - $this->l = $this->getMockBuilder('OCP\IL10N') + $this->l = $this->getMockBuilder(IL10N::class) ->disableOriginalConstructor()->getMock(); - $this->questionHelper = $this->getMockBuilder('Symfony\Component\Console\Helper\QuestionHelper') + $this->questionHelper = $this->getMockBuilder(QuestionHelper::class) ->disableOriginalConstructor()->getMock(); - $this->inputInterface = $this->getMockBuilder('Symfony\Component\Console\Input\InputInterface') + $this->inputInterface = $this->getMockBuilder(InputInterface::class) ->disableOriginalConstructor()->getMock(); - $this->outputInterface = $this->getMockBuilder('Symfony\Component\Console\Output\OutputInterface') + $this->outputInterface = $this->getMockBuilder(OutputInterface::class) ->disableOriginalConstructor()->getMock(); - $this->userInterface = $this->getMockBuilder('OCP\UserInterface') + $this->userInterface = $this->getMockBuilder(UserInterface::class) ->disableOriginalConstructor()->getMock(); @@ -107,7 +121,7 @@ class EncryptAllTest extends TestCase { $this->userManager->expects($this->any())->method('getBackends')->willReturn([$this->userInterface]); $this->userInterface->expects($this->any())->method('getUsers')->willReturn(['user1', 'user2']); - $this->secureRandom = $this->getMockBuilder('OCP\Security\ISecureRandom')->disableOriginalConstructor()->getMock(); + $this->secureRandom = $this->getMockBuilder(ISecureRandom::class)->disableOriginalConstructor()->getMock(); $this->secureRandom->expects($this->any())->method('getMediumStrengthGenerator')->willReturn($this->secureRandom); $this->secureRandom->expects($this->any())->method('getLowStrengthGenerator')->willReturn($this->secureRandom); $this->secureRandom->expects($this->any())->method('generate')->willReturn('12345678'); @@ -129,7 +143,7 @@ class EncryptAllTest extends TestCase { public function testEncryptAll() { /** @var EncryptAll | \PHPUnit_Framework_MockObject_MockObject $encryptAll */ - $encryptAll = $this->getMockBuilder('OCA\Encryption\Crypto\EncryptAll') + $encryptAll = $this->getMockBuilder(EncryptAll::class) ->setConstructorArgs( [ $this->setupUser, @@ -158,7 +172,7 @@ class EncryptAllTest extends TestCase { public function testEncryptAllWithMasterKey() { /** @var EncryptAll | \PHPUnit_Framework_MockObject_MockObject $encryptAll */ - $encryptAll = $this->getMockBuilder('OCA\Encryption\Crypto\EncryptAll') + $encryptAll = $this->getMockBuilder(EncryptAll::class) ->setConstructorArgs( [ $this->setupUser, @@ -188,7 +202,7 @@ class EncryptAllTest extends TestCase { public function testCreateKeyPairs() { /** @var EncryptAll | \PHPUnit_Framework_MockObject_MockObject $encryptAll */ - $encryptAll = $this->getMockBuilder('OCA\Encryption\Crypto\EncryptAll') + $encryptAll = $this->getMockBuilder(EncryptAll::class) ->setConstructorArgs( [ $this->setupUser, @@ -237,7 +251,7 @@ class EncryptAllTest extends TestCase { public function testEncryptAllUsersFiles() { /** @var EncryptAll | \PHPUnit_Framework_MockObject_MockObject $encryptAll */ - $encryptAll = $this->getMockBuilder('OCA\Encryption\Crypto\EncryptAll') + $encryptAll = $this->getMockBuilder(EncryptAll::class) ->setConstructorArgs( [ $this->setupUser, @@ -270,7 +284,7 @@ class EncryptAllTest extends TestCase { public function testEncryptUsersFiles() { /** @var EncryptAll | \PHPUnit_Framework_MockObject_MockObject $encryptAll */ - $encryptAll = $this->getMockBuilder('OCA\Encryption\Crypto\EncryptAll') + $encryptAll = $this->getMockBuilder(EncryptAll::class) ->setConstructorArgs( [ $this->setupUser, @@ -318,7 +332,7 @@ class EncryptAllTest extends TestCase { $encryptAll->expects($this->at(1))->method('encryptFile')->with('/user1/files/bar'); $encryptAll->expects($this->at(2))->method('encryptFile')->with('/user1/files/foo/subfile'); - $progressBar = $this->getMockBuilder('Symfony\Component\Console\Helper\ProgressBar') + $progressBar = $this->getMockBuilder(ProgressBar::class) ->disableOriginalConstructor()->getMock(); $this->invokePrivate($encryptAll, 'encryptUsersFiles', ['user1', $progressBar, '']); diff --git a/apps/encryption/tests/Crypto/EncryptionTest.php b/apps/encryption/tests/Crypto/EncryptionTest.php index 7e074a5b9e8..42da71b0eb1 100644 --- a/apps/encryption/tests/Crypto/EncryptionTest.php +++ b/apps/encryption/tests/Crypto/EncryptionTest.php @@ -23,7 +23,16 @@ namespace OCA\Encryption\Tests\Crypto; +use OCA\Encryption\Crypto\Crypt; +use OCA\Encryption\Crypto\DecryptAll; +use OCA\Encryption\Crypto\EncryptAll; use OCA\Encryption\Exceptions\PublicKeyMissingException; +use OCA\Encryption\KeyManager; +use OCA\Encryption\Session; +use OCA\Encryption\Util; +use OCP\Files\Storage; +use OCP\IL10N; +use OCP\ILogger; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Test\TestCase; @@ -64,30 +73,30 @@ class EncryptionTest extends TestCase { public function setUp() { parent::setUp(); - $this->storageMock = $this->getMockBuilder('OCP\Files\Storage') + $this->storageMock = $this->getMockBuilder(Storage::class) ->disableOriginalConstructor()->getMock(); - $this->cryptMock = $this->getMockBuilder('OCA\Encryption\Crypto\Crypt') + $this->cryptMock = $this->getMockBuilder(Crypt::class) ->disableOriginalConstructor() ->getMock(); - $this->utilMock = $this->getMockBuilder('OCA\Encryption\Util') + $this->utilMock = $this->getMockBuilder(Util::class) ->disableOriginalConstructor() ->getMock(); - $this->keyManagerMock = $this->getMockBuilder('OCA\Encryption\KeyManager') + $this->keyManagerMock = $this->getMockBuilder(KeyManager::class) ->disableOriginalConstructor() ->getMock(); - $this->sessionMock = $this->getMockBuilder('OCA\Encryption\Session') + $this->sessionMock = $this->getMockBuilder(Session::class) ->disableOriginalConstructor() ->getMock(); - $this->encryptAllMock = $this->getMockBuilder('OCA\Encryption\Crypto\EncryptAll') + $this->encryptAllMock = $this->getMockBuilder(EncryptAll::class) ->disableOriginalConstructor() ->getMock(); - $this->decryptAllMock = $this->getMockBuilder('OCA\Encryption\Crypto\DecryptAll') + $this->decryptAllMock = $this->getMockBuilder(DecryptAll::class) ->disableOriginalConstructor() ->getMock(); - $this->loggerMock = $this->getMockBuilder('OCP\ILogger') + $this->loggerMock = $this->getMockBuilder(ILogger::class) ->disableOriginalConstructor() ->getMock(); - $this->l10nMock = $this->getMockBuilder('OCP\IL10N') + $this->l10nMock = $this->getMockBuilder(IL10N::class) ->disableOriginalConstructor() ->getMock(); $this->l10nMock->expects($this->any()) diff --git a/apps/encryption/tests/HookManagerTest.php b/apps/encryption/tests/HookManagerTest.php index c5e5487dba5..109afb1ef8d 100644 --- a/apps/encryption/tests/HookManagerTest.php +++ b/apps/encryption/tests/HookManagerTest.php @@ -26,6 +26,7 @@ namespace OCA\Encryption\Tests; use OCA\Encryption\HookManager; +use OCA\Encryption\Hooks\Contracts\IHook; use OCP\IConfig; use Test\TestCase; @@ -41,8 +42,8 @@ class HookManagerTest extends TestCase { */ public function testRegisterHookWithArray() { self::$instance->registerHook([ - $this->getMockBuilder('OCA\Encryption\Hooks\Contracts\IHook')->disableOriginalConstructor()->getMock(), - $this->getMockBuilder('OCA\Encryption\Hooks\Contracts\IHook')->disableOriginalConstructor()->getMock(), + $this->getMockBuilder(IHook::class)->disableOriginalConstructor()->getMock(), + $this->getMockBuilder(IHook::class)->disableOriginalConstructor()->getMock(), $this->createMock(IConfig::class) ]); @@ -66,7 +67,7 @@ class HookManagerTest extends TestCase { * */ public function testRegisterHooksWithInstance() { - $mock = $this->getMockBuilder('OCA\Encryption\Hooks\Contracts\IHook')->disableOriginalConstructor()->getMock(); + $mock = $this->getMockBuilder(IHook::class)->disableOriginalConstructor()->getMock(); /** @var \OCA\Encryption\Hooks\Contracts\IHook $mock */ self::$instance->registerHook($mock); diff --git a/apps/encryption/tests/Hooks/UserHooksTest.php b/apps/encryption/tests/Hooks/UserHooksTest.php index f9477e3e038..f4c7a5ae0f7 100644 --- a/apps/encryption/tests/Hooks/UserHooksTest.php +++ b/apps/encryption/tests/Hooks/UserHooksTest.php @@ -29,8 +29,15 @@ namespace OCA\Encryption\Tests\Hooks; use OCA\Encryption\Crypto\Crypt; use OCA\Encryption\Hooks\UserHooks; +use OCA\Encryption\KeyManager; +use OCA\Encryption\Recovery; +use OCA\Encryption\Session; +use OCA\Encryption\Users\Setup; +use OCA\Encryption\Util; use OCP\ILogger; use OCP\IUser; +use OCP\IUserManager; +use OCP\IUserSession; use Test\TestCase; /** @@ -151,7 +158,7 @@ class UserHooksTest extends TestCase { public function testPreSetPassphrase($canChange) { /** @var UserHooks | \PHPUnit_Framework_MockObject_MockObject $instance */ - $instance = $this->getMockBuilder('OCA\Encryption\Hooks\UserHooks') + $instance = $this->getMockBuilder(UserHooks::class) ->setConstructorArgs( [ $this->keyManagerMock, @@ -230,7 +237,7 @@ class UserHooksTest extends TestCase { ->willReturnOnConsecutiveCalls(true, false); - $this->instance = $this->getMockBuilder('OCA\Encryption\Hooks\UserHooks') + $this->instance = $this->getMockBuilder(UserHooks::class) ->setConstructorArgs( [ $this->keyManagerMock, @@ -291,7 +298,7 @@ class UserHooksTest extends TestCase { ->method('getPrivateKey') ->willReturn(true); - $userSessionMock = $this->getMockBuilder('OCP\IUserSession') + $userSessionMock = $this->getMockBuilder(IUserSession::class) ->disableOriginalConstructor() ->getMock(); @@ -302,7 +309,7 @@ class UserHooksTest extends TestCase { ->with('testUser') ->willReturn(false); - $userHooks = $this->getMockBuilder('OCA\Encryption\Hooks\UserHooks') + $userHooks = $this->getMockBuilder(UserHooks::class) ->setConstructorArgs( [ $this->keyManagerMock, @@ -324,17 +331,17 @@ class UserHooksTest extends TestCase { protected function setUp() { parent::setUp(); $this->loggerMock = $this->createMock(ILogger::class); - $this->keyManagerMock = $this->getMockBuilder('OCA\Encryption\KeyManager') + $this->keyManagerMock = $this->getMockBuilder(KeyManager::class) ->disableOriginalConstructor() ->getMock(); - $this->userManagerMock = $this->getMockBuilder('OCP\IUserManager') + $this->userManagerMock = $this->getMockBuilder(IUserManager::class) ->disableOriginalConstructor() ->getMock(); - $this->userSetupMock = $this->getMockBuilder('OCA\Encryption\Users\Setup') + $this->userSetupMock = $this->getMockBuilder(Setup::class) ->disableOriginalConstructor() ->getMock(); - $this->userSessionMock = $this->getMockBuilder('OCP\IUserSession') + $this->userSessionMock = $this->getMockBuilder(IUserSession::class) ->disableOriginalConstructor() ->setMethods([ 'isLoggedIn', @@ -353,18 +360,18 @@ class UserHooksTest extends TestCase { ->method($this->anything()) ->will($this->returnSelf()); - $utilMock = $this->getMockBuilder('OCA\Encryption\Util') + $utilMock = $this->getMockBuilder(Util::class) ->disableOriginalConstructor() ->getMock(); - $sessionMock = $this->getMockBuilder('OCA\Encryption\Session') + $sessionMock = $this->getMockBuilder(Session::class) ->disableOriginalConstructor() ->getMock(); - $this->cryptMock = $this->getMockBuilder('OCA\Encryption\Crypto\Crypt') + $this->cryptMock = $this->getMockBuilder(Crypt::class) ->disableOriginalConstructor() ->getMock(); - $recoveryMock = $this->getMockBuilder('OCA\Encryption\Recovery') + $recoveryMock = $this->getMockBuilder(Recovery::class) ->disableOriginalConstructor() ->getMock(); @@ -373,7 +380,7 @@ class UserHooksTest extends TestCase { $this->utilMock = $utilMock; $this->utilMock->expects($this->any())->method('isMasterKeyEnabled')->willReturn(false); - $this->instance = $this->getMockBuilder('OCA\Encryption\Hooks\UserHooks') + $this->instance = $this->getMockBuilder(UserHooks::class) ->setConstructorArgs( [ $this->keyManagerMock, diff --git a/apps/encryption/tests/KeyManagerTest.php b/apps/encryption/tests/KeyManagerTest.php index a8441427a2c..721b7f53a0c 100644 --- a/apps/encryption/tests/KeyManagerTest.php +++ b/apps/encryption/tests/KeyManagerTest.php @@ -27,9 +27,15 @@ namespace OCA\Encryption\Tests; +use OC\Files\FileInfo; +use OC\Files\View; +use OCA\Encryption\Crypto\Crypt; use OCA\Encryption\KeyManager; use OCA\Encryption\Session; +use OCA\Encryption\Util; use OCP\Encryption\Keys\IStorage; +use OCP\Files\Cache\ICache; +use OCP\Files\Storage; use OCP\IConfig; use OCP\ILogger; use OCP\IUserSession; @@ -74,7 +80,7 @@ class KeyManagerTest extends TestCase { $this->userId = 'user1'; $this->systemKeyId = 'systemKeyId'; $this->keyStorageMock = $this->createMock(IStorage::class); - $this->cryptMock = $this->getMockBuilder('OCA\Encryption\Crypto\Crypt') + $this->cryptMock = $this->getMockBuilder(Crypt::class) ->disableOriginalConstructor() ->getMock(); $this->configMock = $this->createMock(IConfig::class); @@ -82,11 +88,11 @@ class KeyManagerTest extends TestCase { ->method('getAppValue') ->willReturn($this->systemKeyId); $this->userMock = $this->createMock(IUserSession::class); - $this->sessionMock = $this->getMockBuilder('OCA\Encryption\Session') + $this->sessionMock = $this->getMockBuilder(Session::class) ->disableOriginalConstructor() ->getMock(); $this->logMock = $this->createMock(ILogger::class); - $this->utilMock = $this->getMockBuilder('OCA\Encryption\Util') + $this->utilMock = $this->getMockBuilder(Util::class) ->disableOriginalConstructor() ->getMock(); @@ -251,7 +257,7 @@ class KeyManagerTest extends TestCase { public function testInit($useMasterKey) { /** @var \OCA\Encryption\KeyManager|\PHPUnit_Framework_MockObject_MockObject $instance */ - $instance = $this->getMockBuilder('OCA\Encryption\KeyManager') + $instance = $this->getMockBuilder(KeyManager::class) ->setConstructorArgs( [ $this->keyStorageMock, @@ -544,7 +550,7 @@ class KeyManagerTest extends TestCase { public function testValidateMasterKey($masterKey) { /** @var \OCA\Encryption\KeyManager | \PHPUnit_Framework_MockObject_MockObject $instance */ - $instance = $this->getMockBuilder('OCA\Encryption\KeyManager') + $instance = $this->getMockBuilder(KeyManager::class) ->setConstructorArgs( [ $this->keyStorageMock, @@ -592,7 +598,7 @@ class KeyManagerTest extends TestCase { } public function testGetVersionWithoutFileInfo() { - $view = $this->getMockBuilder('\\OC\\Files\\View') + $view = $this->getMockBuilder(View::class) ->disableOriginalConstructor()->getMock(); $view->expects($this->once()) ->method('getFileInfo') @@ -604,9 +610,9 @@ class KeyManagerTest extends TestCase { } public function testGetVersionWithFileInfo() { - $view = $this->getMockBuilder('\\OC\\Files\\View') + $view = $this->getMockBuilder(View::class) ->disableOriginalConstructor()->getMock(); - $fileInfo = $this->getMockBuilder('\\OC\\Files\\FileInfo') + $fileInfo = $this->getMockBuilder(FileInfo::class) ->disableOriginalConstructor()->getMock(); $fileInfo->expects($this->once()) ->method('getEncryptedVersion') @@ -621,19 +627,19 @@ class KeyManagerTest extends TestCase { } public function testSetVersionWithFileInfo() { - $view = $this->getMockBuilder('\\OC\\Files\\View') + $view = $this->getMockBuilder(View::class) ->disableOriginalConstructor()->getMock(); - $cache = $this->getMockBuilder('\\OCP\\Files\\Cache\\ICache') + $cache = $this->getMockBuilder(ICache::class) ->disableOriginalConstructor()->getMock(); $cache->expects($this->once()) ->method('update') ->with(123, ['encrypted' => 5, 'encryptedVersion' => 5]); - $storage = $this->getMockBuilder('\\OCP\\Files\\Storage') + $storage = $this->getMockBuilder(Storage::class) ->disableOriginalConstructor()->getMock(); $storage->expects($this->once()) ->method('getCache') ->willReturn($cache); - $fileInfo = $this->getMockBuilder('\\OC\\Files\\FileInfo') + $fileInfo = $this->getMockBuilder(FileInfo::class) ->disableOriginalConstructor()->getMock(); $fileInfo->expects($this->once()) ->method('getStorage') @@ -651,7 +657,7 @@ class KeyManagerTest extends TestCase { } public function testSetVersionWithoutFileInfo() { - $view = $this->getMockBuilder('\\OC\\Files\\View') + $view = $this->getMockBuilder(View::class) ->disableOriginalConstructor()->getMock(); $view->expects($this->once()) ->method('getFileInfo') diff --git a/apps/encryption/tests/MigrationTest.php b/apps/encryption/tests/MigrationTest.php index 595d7f12067..71d2f52dd5c 100644 --- a/apps/encryption/tests/MigrationTest.php +++ b/apps/encryption/tests/MigrationTest.php @@ -25,6 +25,7 @@ namespace OCA\Encryption\Tests; +use OC\Files\View; use OCA\Encryption\Migration; use OCP\ILogger; @@ -68,7 +69,7 @@ class MigrationTest extends \Test\TestCase { public function setUp() { - $this->logger = $this->getMockBuilder('\OCP\ILogger')->disableOriginalConstructor()->getMock(); + $this->logger = $this->getMockBuilder(ILogger::class)->disableOriginalConstructor()->getMock(); $this->view = new \OC\Files\View(); $this->moduleId = \OCA\Encryption\Crypto\Encryption::ID; } @@ -203,13 +204,14 @@ class MigrationTest extends \Test\TestCase { $this->createDummySystemWideKeys(); /** @var \PHPUnit_Framework_MockObject_MockObject|\OCA\Encryption\Migration $m */ - $m = $this->getMockBuilder('OCA\Encryption\Migration') + $m = $this->getMockBuilder(Migration::class) ->setConstructorArgs( [ \OC::$server->getConfig(), new \OC\Files\View(), \OC::$server->getDatabaseConnection(), - $this->logger + $this->logger, + \OC::$server->getAppManager() ] )->setMethods(['getSystemMountPoints'])->getMock(); @@ -366,7 +368,7 @@ class MigrationTest extends \Test\TestCase { public function testUpdateDB() { $this->prepareDB(); - $m = new Migration(\OC::$server->getConfig(), new \OC\Files\View(), \OC::$server->getDatabaseConnection(), $this->logger); + $m = new Migration(\OC::$server->getConfig(), new \OC\Files\View(), \OC::$server->getDatabaseConnection(), $this->logger, \OC::$server->getAppManager()); $this->invokePrivate($m, 'installedVersion', ['0.7']); $m->updateDB(); @@ -386,7 +388,7 @@ class MigrationTest extends \Test\TestCase { $config->setAppValue('encryption', 'publicShareKeyId', 'wrong_share_id'); $config->setUserValue(self::TEST_ENCRYPTION_MIGRATION_USER1, 'encryption', 'recoverKeyEnabled', '9'); - $m = new Migration(\OC::$server->getConfig(), new \OC\Files\View(), \OC::$server->getDatabaseConnection(), $this->logger); + $m = new Migration(\OC::$server->getConfig(), new \OC\Files\View(), \OC::$server->getDatabaseConnection(), $this->logger, \OC::$server->getAppManager()); $this->invokePrivate($m, 'installedVersion', ['0.7']); $m->updateDB(); @@ -455,7 +457,7 @@ class MigrationTest extends \Test\TestCase { */ public function testUpdateFileCache() { $this->prepareFileCache(); - $m = new Migration(\OC::$server->getConfig(), new \OC\Files\View(), \OC::$server->getDatabaseConnection(), $this->logger); + $m = new Migration(\OC::$server->getConfig(), new \OC\Files\View(), \OC::$server->getDatabaseConnection(), $this->logger, \OC::$server->getAppManager()); $this->invokePrivate($m, 'installedVersion', ['0.7']); self::invokePrivate($m, 'updateFileCache'); @@ -523,17 +525,18 @@ class MigrationTest extends \Test\TestCase { */ public function testGetTargetDir($user, $keyPath, $filename, $trash, $systemMounts, $expected) { - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->disableOriginalConstructor()->getMock(); $view->expects($this->any())->method('file_exists')->willReturn(true); - $m = $this->getMockBuilder('OCA\Encryption\Migration') + $m = $this->getMockBuilder(Migration::class) ->setConstructorArgs( [ \OC::$server->getConfig(), $view, \OC::$server->getDatabaseConnection(), - $this->logger + $this->logger, + \OC::$server->getAppManager() ] )->setMethods(['getSystemMountPoints'])->getMock(); diff --git a/apps/encryption/tests/RecoveryTest.php b/apps/encryption/tests/RecoveryTest.php index d73b5d48c91..2dda774565c 100644 --- a/apps/encryption/tests/RecoveryTest.php +++ b/apps/encryption/tests/RecoveryTest.php @@ -28,10 +28,13 @@ namespace OCA\Encryption\Tests; use OC\Files\View; +use OCA\Encryption\Crypto\Crypt; +use OCA\Encryption\KeyManager; use OCA\Encryption\Recovery; use OCP\Encryption\IFile; use OCP\Encryption\Keys\IStorage; use OCP\IConfig; +use OCP\IUserSession; use OCP\Security\ISecureRandom; use Test\TestCase; @@ -253,7 +256,7 @@ class RecoveryTest extends TestCase { parent::setUp(); - $this->userSessionMock = $this->getMockBuilder('OCP\IUserSession') + $this->userSessionMock = $this->getMockBuilder(IUserSession::class) ->disableOriginalConstructor() ->setMethods([ 'isLoggedIn', @@ -271,10 +274,10 @@ class RecoveryTest extends TestCase { ->method($this->anything()) ->will($this->returnSelf()); - $this->cryptMock = $this->getMockBuilder('OCA\Encryption\Crypto\Crypt')->disableOriginalConstructor()->getMock(); + $this->cryptMock = $this->getMockBuilder(Crypt::class)->disableOriginalConstructor()->getMock(); /** @var \OCP\Security\ISecureRandom $randomMock */ $randomMock = $this->createMock(ISecureRandom::class); - $this->keyManagerMock = $this->getMockBuilder('OCA\Encryption\KeyManager')->disableOriginalConstructor()->getMock(); + $this->keyManagerMock = $this->getMockBuilder(KeyManager::class)->disableOriginalConstructor()->getMock(); $this->configMock = $this->createMock(IConfig::class); /** @var \OCP\Encryption\Keys\IStorage $keyStorageMock */ $keyStorageMock = $this->createMock(IStorage::class); diff --git a/apps/encryption/tests/Settings/AdminTest.php b/apps/encryption/tests/Settings/AdminTest.php index 93896585dad..5fe3fe956e4 100644 --- a/apps/encryption/tests/Settings/AdminTest.php +++ b/apps/encryption/tests/Settings/AdminTest.php @@ -52,12 +52,12 @@ class AdminTest extends TestCase { public function setUp() { parent::setUp(); - $this->l = $this->getMockBuilder('\OCP\IL10N')->getMock(); - $this->logger = $this->getMockBuilder('\OCP\ILogger')->getMock(); - $this->userSession = $this->getMockBuilder('\OCP\IUserSession')->getMock(); - $this->config = $this->getMockBuilder('\OCP\IConfig')->getMock(); - $this->userManager = $this->getMockBuilder('\OCP\IUserManager')->getMock(); - $this->session = $this->getMockBuilder('\OCP\ISession')->getMock(); + $this->l = $this->getMockBuilder(IL10N::class)->getMock(); + $this->logger = $this->getMockBuilder(ILogger::class)->getMock(); + $this->userSession = $this->getMockBuilder(IUserSession::class)->getMock(); + $this->config = $this->getMockBuilder(IConfig::class)->getMock(); + $this->userManager = $this->getMockBuilder(IUserManager::class)->getMock(); + $this->session = $this->getMockBuilder(ISession::class)->getMock(); $this->admin = new Admin( $this->l, diff --git a/apps/encryption/tests/Users/SetupTest.php b/apps/encryption/tests/Users/SetupTest.php index 9e856861046..27866ef3927 100644 --- a/apps/encryption/tests/Users/SetupTest.php +++ b/apps/encryption/tests/Users/SetupTest.php @@ -26,8 +26,11 @@ namespace OCA\Encryption\Tests\Users; +use OCA\Encryption\Crypto\Crypt; +use OCA\Encryption\KeyManager; use OCA\Encryption\Users\Setup; use OCP\ILogger; +use OCP\IUserSession; use Test\TestCase; class SetupTest extends TestCase { @@ -47,14 +50,14 @@ class SetupTest extends TestCase { protected function setUp() { parent::setUp(); $logMock = $this->createMock(ILogger::class); - $userSessionMock = $this->getMockBuilder('OCP\IUserSession') + $userSessionMock = $this->getMockBuilder(IUserSession::class) ->disableOriginalConstructor() ->getMock(); - $this->cryptMock = $this->getMockBuilder('OCA\Encryption\Crypto\Crypt') + $this->cryptMock = $this->getMockBuilder(Crypt::class) ->disableOriginalConstructor() ->getMock(); - $this->keyManagerMock = $this->getMockBuilder('OCA\Encryption\KeyManager') + $this->keyManagerMock = $this->getMockBuilder(KeyManager::class) ->disableOriginalConstructor() ->getMock(); diff --git a/apps/encryption/tests/UtilTest.php b/apps/encryption/tests/UtilTest.php index 40fc5537251..e59565d3b84 100644 --- a/apps/encryption/tests/UtilTest.php +++ b/apps/encryption/tests/UtilTest.php @@ -27,11 +27,14 @@ namespace OCA\Encryption\Tests; use OC\Files\View; +use OCA\Encryption\Crypto\Crypt; use OCA\Encryption\Util; use OCP\Files\Mount\IMountPoint; +use OCP\Files\Storage; use OCP\IConfig; use OCP\ILogger; use OCP\IUserManager; +use OCP\IUserSession; use Test\TestCase; class UtilTest extends TestCase { @@ -80,13 +83,13 @@ class UtilTest extends TestCase { $this->userManagerMock = $this->createMock(IUserManager::class); /** @var \OCA\Encryption\Crypto\Crypt $cryptMock */ - $cryptMock = $this->getMockBuilder('OCA\Encryption\Crypto\Crypt') + $cryptMock = $this->getMockBuilder(Crypt::class) ->disableOriginalConstructor() ->getMock(); /** @var \OCP\ILogger $loggerMock */ $loggerMock = $this->createMock(ILogger::class); /** @var \OCP\IUserSession|\PHPUnit_Framework_MockObject_MockObject $userSessionMock */ - $userSessionMock = $this->getMockBuilder('OCP\IUserSession') + $userSessionMock = $this->getMockBuilder(IUserSession::class) ->disableOriginalConstructor() ->setMethods([ 'isLoggedIn', @@ -205,7 +208,7 @@ class UtilTest extends TestCase { } public function testGetStorage() { - $return = $this->getMockBuilder('OC\Files\Storage\Storage') + $return = $this->getMockBuilder(Storage::class) ->disableOriginalConstructor() ->getMock(); diff --git a/apps/federatedfilesharing/composer/autoload.php b/apps/federatedfilesharing/composer/autoload.php new file mode 100644 index 00000000000..5273607f74a --- /dev/null +++ b/apps/federatedfilesharing/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer/autoload_real.php'; + +return ComposerAutoloaderInitFederatedFileSharing::getLoader(); diff --git a/apps/federatedfilesharing/composer/composer.json b/apps/federatedfilesharing/composer/composer.json new file mode 100644 index 00000000000..3cb32db12f2 --- /dev/null +++ b/apps/federatedfilesharing/composer/composer.json @@ -0,0 +1,13 @@ +{ + "config" : { + "vendor-dir": ".", + "optimize-autoloader": true, + "authorative-autoloader": true, + "autoloader-suffix": "FederatedFileSharing" + }, + "autoload" : { + "psr-4": { + "OCA\\FederatedFileSharing\\": "../lib/" + } + } +} diff --git a/apps/federatedfilesharing/composer/composer/ClassLoader.php b/apps/federatedfilesharing/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..2c72175e772 --- /dev/null +++ b/apps/federatedfilesharing/composer/composer/ClassLoader.php @@ -0,0 +1,445 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * 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 array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + foreach ($this->prefixDirsPsr4[$search] as $dir) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/apps/federatedfilesharing/composer/composer/LICENSE b/apps/federatedfilesharing/composer/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/apps/federatedfilesharing/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/federatedfilesharing/composer/composer/autoload_classmap.php b/apps/federatedfilesharing/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..387ea8bee3a --- /dev/null +++ b/apps/federatedfilesharing/composer/composer/autoload_classmap.php @@ -0,0 +1,21 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\FederatedFileSharing\\AddressHandler' => $baseDir . '/../lib/AddressHandler.php', + 'OCA\\FederatedFileSharing\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php', + 'OCA\\FederatedFileSharing\\BackgroundJob\\RetryJob' => $baseDir . '/../lib/BackgroundJob/RetryJob.php', + 'OCA\\FederatedFileSharing\\Controller\\MountPublicLinkController' => $baseDir . '/../lib/Controller/MountPublicLinkController.php', + 'OCA\\FederatedFileSharing\\Controller\\RequestHandlerController' => $baseDir . '/../lib/Controller/RequestHandlerController.php', + 'OCA\\FederatedFileSharing\\FederatedShareProvider' => $baseDir . '/../lib/FederatedShareProvider.php', + 'OCA\\FederatedFileSharing\\Notifications' => $baseDir . '/../lib/Notifications.php', + 'OCA\\FederatedFileSharing\\Notifier' => $baseDir . '/../lib/Notifier.php', + 'OCA\\FederatedFileSharing\\Settings\\Admin' => $baseDir . '/../lib/Settings/Admin.php', + 'OCA\\FederatedFileSharing\\Settings\\Personal' => $baseDir . '/../lib/Settings/Personal.php', + 'OCA\\FederatedFileSharing\\Settings\\PersonalSection' => $baseDir . '/../lib/Settings/PersonalSection.php', + 'OCA\\FederatedFileSharing\\TokenHandler' => $baseDir . '/../lib/TokenHandler.php', +); diff --git a/apps/federatedfilesharing/composer/composer/autoload_namespaces.php b/apps/federatedfilesharing/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..71c9e91858d --- /dev/null +++ b/apps/federatedfilesharing/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( +); diff --git a/apps/federatedfilesharing/composer/composer/autoload_psr4.php b/apps/federatedfilesharing/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..7f2217448ff --- /dev/null +++ b/apps/federatedfilesharing/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\FederatedFileSharing\\' => array($baseDir . '/../lib'), +); diff --git a/apps/federatedfilesharing/composer/composer/autoload_real.php b/apps/federatedfilesharing/composer/composer/autoload_real.php new file mode 100644 index 00000000000..bdc3ad006ae --- /dev/null +++ b/apps/federatedfilesharing/composer/composer/autoload_real.php @@ -0,0 +1,52 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInitFederatedFileSharing +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInitFederatedFileSharing', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInitFederatedFileSharing', 'loadClassLoader')); + + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitFederatedFileSharing::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/apps/federatedfilesharing/composer/composer/autoload_static.php b/apps/federatedfilesharing/composer/composer/autoload_static.php new file mode 100644 index 00000000000..95b8775384c --- /dev/null +++ b/apps/federatedfilesharing/composer/composer/autoload_static.php @@ -0,0 +1,47 @@ +<?php + +// autoload_static.php @generated by Composer + +namespace Composer\Autoload; + +class ComposerStaticInitFederatedFileSharing +{ + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'OCA\\FederatedFileSharing\\' => 25, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\FederatedFileSharing\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'OCA\\FederatedFileSharing\\AddressHandler' => __DIR__ . '/..' . '/../lib/AddressHandler.php', + 'OCA\\FederatedFileSharing\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php', + 'OCA\\FederatedFileSharing\\BackgroundJob\\RetryJob' => __DIR__ . '/..' . '/../lib/BackgroundJob/RetryJob.php', + 'OCA\\FederatedFileSharing\\Controller\\MountPublicLinkController' => __DIR__ . '/..' . '/../lib/Controller/MountPublicLinkController.php', + 'OCA\\FederatedFileSharing\\Controller\\RequestHandlerController' => __DIR__ . '/..' . '/../lib/Controller/RequestHandlerController.php', + 'OCA\\FederatedFileSharing\\FederatedShareProvider' => __DIR__ . '/..' . '/../lib/FederatedShareProvider.php', + 'OCA\\FederatedFileSharing\\Notifications' => __DIR__ . '/..' . '/../lib/Notifications.php', + 'OCA\\FederatedFileSharing\\Notifier' => __DIR__ . '/..' . '/../lib/Notifier.php', + 'OCA\\FederatedFileSharing\\Settings\\Admin' => __DIR__ . '/..' . '/../lib/Settings/Admin.php', + 'OCA\\FederatedFileSharing\\Settings\\Personal' => __DIR__ . '/..' . '/../lib/Settings/Personal.php', + 'OCA\\FederatedFileSharing\\Settings\\PersonalSection' => __DIR__ . '/..' . '/../lib/Settings/PersonalSection.php', + 'OCA\\FederatedFileSharing\\TokenHandler' => __DIR__ . '/..' . '/../lib/TokenHandler.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitFederatedFileSharing::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitFederatedFileSharing::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitFederatedFileSharing::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/federatedfilesharing/l10n/es_CO.js b/apps/federatedfilesharing/l10n/es_CO.js new file mode 100644 index 00000000000..c4be26868c2 --- /dev/null +++ b/apps/federatedfilesharing/l10n/es_CO.js @@ -0,0 +1,58 @@ +OC.L10N.register( + "federatedfilesharing", + { + "Federated sharing" : "Elementos compartidos", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?", + "Remote share" : "Elemento compartido remoto", + "Remote share password" : "Contraseña del elemento compartido remoto", + "Cancel" : "Cancelar", + "Add remote share" : "Agregar elemento compartido remoto", + "Copy" : "Copiar", + "Copied!" : "¡Copiado!", + "Not supported!" : "¡No soportado!", + "Press ⌘-C to copy." : "Presiona ⌘-C para copiar.", + "Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.", + "Invalid Federated Cloud ID" : "El ID es inválido", + "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor", + "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ", + "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ", + "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.", + "The mountpoint name contains invalid characters." : "El nombre del punto de montaje contiene caracteres inválidos.", + "Not allowed to create a federated share with the owner." : "No está permitido crear un elemento compartido federado con el dueño. ", + "Invalid or untrusted SSL certificate" : "Certificado SSL inválido o no de confianza", + "Could not authenticate to remote share, password might be wrong" : "No fue posible autenticarse ante el elemento compartido remoto, la contraseña puede estar incorrecta", + "Storage not valid" : "Almacenamiento inválido", + "Federated share added" : "Elemento compartido Federado agregado", + "Couldn't add remote share" : "No fue posible agregar el elemento compartido remoto", + "Sharing %s failed, because this item is already shared with %s" : "Se presentó una falla al compartir %s, porque este elemento ya se encuentra compartido con %s", + "Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario", + "File is already shared with %s" : "El archivo ya ha sido compartido con %s", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Se presentó una falla al compartir %s, no fue posible encontrar %s, tal vez el servidor no está alcanzable o usa un certificado auto-firmado.", + "Could not find share" : "No fue posible encontrar el elemento compartido", + "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Has recibido \"%3$s\" como un elemento compartido remoto de %1$s (de parte de %2$s)", + "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})", + "You received \"%3$s\" as a remote share from %1$s" : "Has recibido \"%3$s\" como un elemento compartido remoto de %1$s", + "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}", + "Accept" : "Aceptar", + "Decline" : "Rechazar", + "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud, ver %s", + "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud", + "Sharing" : "Compartiendo", + "Federated Cloud Sharing" : "Compartiendo en la Nube Federada", + "Open documentation" : "Abrir documentación", + "Adjust how people can share between servers." : "Ajustar cómo las personas pueden compartir entre servidores. ", + "Allow users on this server to send shares to other servers" : "Permitirle a los usuarios de este servidor enviar elementos compartidos a otros servidores", + "Allow users on this server to receive shares from other servers" : "Permitirle alos usuarios de este servidor recibir elementos compartidos de otros servidores", + "Search global and public address book for users" : "Buscar usuarios en las libretas de contactos globales y públicas", + "Allow users to publish their data to a global and public address book" : "Permitirle a los usuarios publicar sus datos a una libreta de direcciones global y pública", + "Federated Cloud" : "Nube Federada", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "¡Puedes compartir con cualquiera que use NextCloud, ownCloud o Pydio! Solo ingresa tu ID de Nube Federada en ventana de diálogo de compartir. Se ve algo así como person@cloud.example.com", + "Your Federated Cloud ID:" : "Tu ID de Nube Federada:", + "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:", + "Add to your website" : "Agregar a tu sitio web", + "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud", + "HTML Code:" : "Código HTML:", + "Search global and public address book for users and let local users publish their data" : "Buscar una libreta de direcciones global y pública para los usuarios y permitir a los usuarios locales publicar sus datos", + "Share it:" : "Compartirlo:" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/federatedfilesharing/l10n/es_CO.json b/apps/federatedfilesharing/l10n/es_CO.json new file mode 100644 index 00000000000..29ee41a77e4 --- /dev/null +++ b/apps/federatedfilesharing/l10n/es_CO.json @@ -0,0 +1,56 @@ +{ "translations": { + "Federated sharing" : "Elementos compartidos", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?", + "Remote share" : "Elemento compartido remoto", + "Remote share password" : "Contraseña del elemento compartido remoto", + "Cancel" : "Cancelar", + "Add remote share" : "Agregar elemento compartido remoto", + "Copy" : "Copiar", + "Copied!" : "¡Copiado!", + "Not supported!" : "¡No soportado!", + "Press ⌘-C to copy." : "Presiona ⌘-C para copiar.", + "Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.", + "Invalid Federated Cloud ID" : "El ID es inválido", + "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor", + "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ", + "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ", + "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.", + "The mountpoint name contains invalid characters." : "El nombre del punto de montaje contiene caracteres inválidos.", + "Not allowed to create a federated share with the owner." : "No está permitido crear un elemento compartido federado con el dueño. ", + "Invalid or untrusted SSL certificate" : "Certificado SSL inválido o no de confianza", + "Could not authenticate to remote share, password might be wrong" : "No fue posible autenticarse ante el elemento compartido remoto, la contraseña puede estar incorrecta", + "Storage not valid" : "Almacenamiento inválido", + "Federated share added" : "Elemento compartido Federado agregado", + "Couldn't add remote share" : "No fue posible agregar el elemento compartido remoto", + "Sharing %s failed, because this item is already shared with %s" : "Se presentó una falla al compartir %s, porque este elemento ya se encuentra compartido con %s", + "Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario", + "File is already shared with %s" : "El archivo ya ha sido compartido con %s", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Se presentó una falla al compartir %s, no fue posible encontrar %s, tal vez el servidor no está alcanzable o usa un certificado auto-firmado.", + "Could not find share" : "No fue posible encontrar el elemento compartido", + "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Has recibido \"%3$s\" como un elemento compartido remoto de %1$s (de parte de %2$s)", + "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})", + "You received \"%3$s\" as a remote share from %1$s" : "Has recibido \"%3$s\" como un elemento compartido remoto de %1$s", + "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}", + "Accept" : "Aceptar", + "Decline" : "Rechazar", + "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud, ver %s", + "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud", + "Sharing" : "Compartiendo", + "Federated Cloud Sharing" : "Compartiendo en la Nube Federada", + "Open documentation" : "Abrir documentación", + "Adjust how people can share between servers." : "Ajustar cómo las personas pueden compartir entre servidores. ", + "Allow users on this server to send shares to other servers" : "Permitirle a los usuarios de este servidor enviar elementos compartidos a otros servidores", + "Allow users on this server to receive shares from other servers" : "Permitirle alos usuarios de este servidor recibir elementos compartidos de otros servidores", + "Search global and public address book for users" : "Buscar usuarios en las libretas de contactos globales y públicas", + "Allow users to publish their data to a global and public address book" : "Permitirle a los usuarios publicar sus datos a una libreta de direcciones global y pública", + "Federated Cloud" : "Nube Federada", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "¡Puedes compartir con cualquiera que use NextCloud, ownCloud o Pydio! Solo ingresa tu ID de Nube Federada en ventana de diálogo de compartir. Se ve algo así como person@cloud.example.com", + "Your Federated Cloud ID:" : "Tu ID de Nube Federada:", + "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:", + "Add to your website" : "Agregar a tu sitio web", + "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud", + "HTML Code:" : "Código HTML:", + "Search global and public address book for users and let local users publish their data" : "Buscar una libreta de direcciones global y pública para los usuarios y permitir a los usuarios locales publicar sus datos", + "Share it:" : "Compartirlo:" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/federatedfilesharing/l10n/fi.js b/apps/federatedfilesharing/l10n/fi.js index 7f71f5a27bb..04916189ac4 100644 --- a/apps/federatedfilesharing/l10n/fi.js +++ b/apps/federatedfilesharing/l10n/fi.js @@ -16,6 +16,7 @@ OC.L10N.register( "Server to server sharing is not enabled on this server" : "Palvelimien kesken jakaminen ei ole käytössä tällä palvelimella", "Couldn't establish a federated share." : "Ei voinut muodostaa federoitua jakoa.", "Couldn't establish a federated share, maybe the password was wrong." : "Ei voinut muodostaa federoitua jakoa. Ehkä salasana oli väärin.", + "Federated Share request sent, you will receive an invitation. Check your notifications." : "Federoidun jakamisen pyyntö lähetetty, saat kutsun. Tarkista ilmoitukset.", "The mountpoint name contains invalid characters." : "Liitospisteen nimi sisältää virheellisiä merkkejä.", "Not allowed to create a federated share with the owner." : "Omistajan kanssa ei ole sallittua luoda federoitua jakoa.", "Invalid or untrusted SSL certificate" : "Virheellinen tai ei-luotettu SSL-varmenne", diff --git a/apps/federatedfilesharing/l10n/fi.json b/apps/federatedfilesharing/l10n/fi.json index 7aac33281e5..1952efd7506 100644 --- a/apps/federatedfilesharing/l10n/fi.json +++ b/apps/federatedfilesharing/l10n/fi.json @@ -14,6 +14,7 @@ "Server to server sharing is not enabled on this server" : "Palvelimien kesken jakaminen ei ole käytössä tällä palvelimella", "Couldn't establish a federated share." : "Ei voinut muodostaa federoitua jakoa.", "Couldn't establish a federated share, maybe the password was wrong." : "Ei voinut muodostaa federoitua jakoa. Ehkä salasana oli väärin.", + "Federated Share request sent, you will receive an invitation. Check your notifications." : "Federoidun jakamisen pyyntö lähetetty, saat kutsun. Tarkista ilmoitukset.", "The mountpoint name contains invalid characters." : "Liitospisteen nimi sisältää virheellisiä merkkejä.", "Not allowed to create a federated share with the owner." : "Omistajan kanssa ei ole sallittua luoda federoitua jakoa.", "Invalid or untrusted SSL certificate" : "Virheellinen tai ei-luotettu SSL-varmenne", diff --git a/apps/federatedfilesharing/l10n/hu.js b/apps/federatedfilesharing/l10n/hu.js index 0df0568d3ac..a99bb21c4f5 100644 --- a/apps/federatedfilesharing/l10n/hu.js +++ b/apps/federatedfilesharing/l10n/hu.js @@ -16,11 +16,13 @@ OC.L10N.register( "Server to server sharing is not enabled on this server" : "A kiszolgálók közötti megosztás nincs engedélyezve ezen a kiszolgálón", "Couldn't establish a federated share." : "Egy egyesített megosztás nem hozható létre.", "Couldn't establish a federated share, maybe the password was wrong." : "Egy egyesített megosztás nem hozható létre, lehet hogy nem megfelelő a jelszó.", + "Federated Share request sent, you will receive an invitation. Check your notifications." : "Egyesített megosztási kérés elküldve, kapni fogsz egy meghívót. Ellenőrizd az értesítéseidet.", "The mountpoint name contains invalid characters." : "A csatolási pont neve érvénytelen karaktereket tartalmaz ", "Not allowed to create a federated share with the owner." : "A tulajdonossal nem lehet egyesített megosztást létrehozni.", "Invalid or untrusted SSL certificate" : "Érvénytelen vagy nem megbízható az SSL tanúsítvány", "Could not authenticate to remote share, password might be wrong" : "Nem sikerült az azonosítás a távoli megosztáshoz. Lehet, hogy rossz a jelszó.", "Storage not valid" : "A tároló nem érvényes", + "Federated share added" : "Egyesített megosztás hozzáadva", "Couldn't add remote share" : "Távoli megosztás nem adható hozzá", "Sharing %s failed, because this item is already shared with %s" : "%s megosztása nem sikerült, mert ez már meg van osztva vele: %s", "Not allowed to create a federated share with the same user" : "Azonos felhasználóval nem lehet létrehozni egyesített megosztást", @@ -42,12 +44,15 @@ OC.L10N.register( "Allow users on this server to send shares to other servers" : "Engedélyezze ezen szerver felhasználóinak, hogy fájlokat osszanak meg más szerverekkel.", "Allow users on this server to receive shares from other servers" : "Engedélyezze ezen szerver felhasználóinak, hogy megosztásokat fogadjanak más szerverektől", "Search global and public address book for users" : "Felhasználók keresése a globális és a nyilvános névjegyekben", + "Allow users to publish their data to a global and public address book" : "Minden felhasználó a közös adattárolót és névjegyzéket használja", "Federated Cloud" : "Egyesített felhő", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Bárkivel megoszthatsz aki Nextcloud-ot, ownCloud-ot vagy Pydio-t használ! Csak add meg az egységesített megosztási azonosítójukat a megosztási ablakban. Valahogy így néz ki: person@cloud.example.com", "Your Federated Cloud ID:" : "Egyesített felhő azonosító:", "Share it so your friends can share files with you:" : "Oszd meg, hogy a barátaid is megoszthassanak veled fájlokat:", "Add to your website" : "Adja hozzá saját weboldalához", "Share with me via Nextcloud" : "Ossza meg velem Nextcloud-on keresztül", "HTML Code:" : "HTML kód:", + "Search global and public address book for users and let local users publish their data" : "A központi és nyilvános névjegyzék keresése a felhasználóknak és a helyi felhasználók is hozzáadhatnak", "Share it:" : "Oszd meg:" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/federatedfilesharing/l10n/hu.json b/apps/federatedfilesharing/l10n/hu.json index 46010af8d1b..e77b17ef7de 100644 --- a/apps/federatedfilesharing/l10n/hu.json +++ b/apps/federatedfilesharing/l10n/hu.json @@ -14,11 +14,13 @@ "Server to server sharing is not enabled on this server" : "A kiszolgálók közötti megosztás nincs engedélyezve ezen a kiszolgálón", "Couldn't establish a federated share." : "Egy egyesített megosztás nem hozható létre.", "Couldn't establish a federated share, maybe the password was wrong." : "Egy egyesített megosztás nem hozható létre, lehet hogy nem megfelelő a jelszó.", + "Federated Share request sent, you will receive an invitation. Check your notifications." : "Egyesített megosztási kérés elküldve, kapni fogsz egy meghívót. Ellenőrizd az értesítéseidet.", "The mountpoint name contains invalid characters." : "A csatolási pont neve érvénytelen karaktereket tartalmaz ", "Not allowed to create a federated share with the owner." : "A tulajdonossal nem lehet egyesített megosztást létrehozni.", "Invalid or untrusted SSL certificate" : "Érvénytelen vagy nem megbízható az SSL tanúsítvány", "Could not authenticate to remote share, password might be wrong" : "Nem sikerült az azonosítás a távoli megosztáshoz. Lehet, hogy rossz a jelszó.", "Storage not valid" : "A tároló nem érvényes", + "Federated share added" : "Egyesített megosztás hozzáadva", "Couldn't add remote share" : "Távoli megosztás nem adható hozzá", "Sharing %s failed, because this item is already shared with %s" : "%s megosztása nem sikerült, mert ez már meg van osztva vele: %s", "Not allowed to create a federated share with the same user" : "Azonos felhasználóval nem lehet létrehozni egyesített megosztást", @@ -40,12 +42,15 @@ "Allow users on this server to send shares to other servers" : "Engedélyezze ezen szerver felhasználóinak, hogy fájlokat osszanak meg más szerverekkel.", "Allow users on this server to receive shares from other servers" : "Engedélyezze ezen szerver felhasználóinak, hogy megosztásokat fogadjanak más szerverektől", "Search global and public address book for users" : "Felhasználók keresése a globális és a nyilvános névjegyekben", + "Allow users to publish their data to a global and public address book" : "Minden felhasználó a közös adattárolót és névjegyzéket használja", "Federated Cloud" : "Egyesített felhő", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Bárkivel megoszthatsz aki Nextcloud-ot, ownCloud-ot vagy Pydio-t használ! Csak add meg az egységesített megosztási azonosítójukat a megosztási ablakban. Valahogy így néz ki: person@cloud.example.com", "Your Federated Cloud ID:" : "Egyesített felhő azonosító:", "Share it so your friends can share files with you:" : "Oszd meg, hogy a barátaid is megoszthassanak veled fájlokat:", "Add to your website" : "Adja hozzá saját weboldalához", "Share with me via Nextcloud" : "Ossza meg velem Nextcloud-on keresztül", "HTML Code:" : "HTML kód:", + "Search global and public address book for users and let local users publish their data" : "A központi és nyilvános névjegyzék keresése a felhasználóknak és a helyi felhasználók is hozzáadhatnak", "Share it:" : "Oszd meg:" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/federatedfilesharing/l10n/sk.js b/apps/federatedfilesharing/l10n/sk.js new file mode 100644 index 00000000000..7877da712e8 --- /dev/null +++ b/apps/federatedfilesharing/l10n/sk.js @@ -0,0 +1,58 @@ +OC.L10N.register( + "federatedfilesharing", + { + "Federated sharing" : "Združené sprístupňovanie", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Chcete pridať vzdialené úložisko {name} patriace používateľovi {owner}@{remote}?", + "Remote share" : "Vzdialené úložisko", + "Remote share password" : "Heslo k vzdialenému úložisku", + "Cancel" : "Zrušiť", + "Add remote share" : "Pridať vzdialené úložisko", + "Copy" : "Kopírovať", + "Copied!" : "Skopírované!", + "Not supported!" : "Nie je podporované!", + "Press ⌘-C to copy." : "Stlač ⌘-C pre skopírovanie.", + "Press Ctrl-C to copy." : "Stlač Ctrl-C pre skopírovanie.", + "Invalid Federated Cloud ID" : "Neplatné združené Cloud ID", + "Server to server sharing is not enabled on this server" : "Sprístupňovanie server-server nie je na tomto serveri povolené", + "Couldn't establish a federated share." : "Nepodarilo sa nadviazať združené zdieľanie", + "Couldn't establish a federated share, maybe the password was wrong." : "Nepodarilo sa nadviazať združené zdieľanie, možno je nesprávne heslo.", + "Federated Share request sent, you will receive an invitation. Check your notifications." : "Požiadavka na združené zdieľanie bola odoslaná, obdržíte pozvánku. Skontrolujte oznámenia.", + "The mountpoint name contains invalid characters." : "Meno prípojného bodu obsahuje neplatné znaky.", + "Not allowed to create a federated share with the owner." : "Nie je povolené vytvárať združené zdieľanie s vlastníkom.", + "Invalid or untrusted SSL certificate" : "Neplatný alebo nedôveryhodný certifikát SSL", + "Could not authenticate to remote share, password might be wrong" : "Nie je možné overiť vo vzdialenom úložisku, heslo môže byť nesprávne", + "Storage not valid" : "Neplatné úložisko", + "Federated share added" : "Združené sprístupnenie pridané", + "Couldn't add remote share" : "Nedá sa pridať vzdialené sprístupnenie", + "Sharing %s failed, because this item is already shared with %s" : "Sprístupnenie %s zlyhalo, pretože táto položka už je prístupná pre %s", + "Not allowed to create a federated share with the same user" : "Nie je možné vytvoriť združené sprístupnenie so sebou samým", + "File is already shared with %s" : "Súbor je už sprístupnený používateľovi %s", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Zdieľanie %s zlyhalo, %s sa nepodarilo nájsť, server nie je pravdepodobne dostupný alebo používa vlastnoručne podpísaný certifikát.", + "Could not find share" : "Nebolo možné nájsť sprístupnenie", + "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Obdržali ste \"%3$s\" ako vzdialené zdieľanie od %1$s (v mene %2$s) ", + "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Obdržali ste {share} ako vzdialené zdieľanie od {user} (v mene {behalf})", + "You received \"%3$s\" as a remote share from %1$s" : "Obdržali ste \"%3$s\" ako vzdialené zdieľanie od %1$s", + "You received {share} as a remote share from {user}" : "Obdržali ste {share} ako vzdialené zdieľanie od {user}", + "Accept" : "Schváliť", + "Decline" : "Odmietnuť", + "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Sprístupnite mi obsah prostredníctvom môjho #Nextcloud Federated Cloud ID, viac na %s", + "Share with me through my #Nextcloud Federated Cloud ID" : "Sprístupnite mi obsah prostredníctvom môjho #Nextcloud Federated Cloud ID", + "Sharing" : "Sprístupnenie", + "Federated Cloud Sharing" : "Sprístupnenie prostredníctvom Federated Cloud", + "Open documentation" : "Otvoriť dokumentáciu", + "Adjust how people can share between servers." : "Nastavte ako môžu ľudia medzi sebou zdieľať servery.", + "Allow users on this server to send shares to other servers" : "Povoliť používateľom z tohto servera sprístupňovať obsah na iných serveroch", + "Allow users on this server to receive shares from other servers" : "Povoliť používateľom z tohto servera sprístupňovanie obsahu z iných serverov", + "Search global and public address book for users" : "Vyhľadávať používateľov v globálnom a verejnom adresári kontaktov", + "Allow users to publish their data to a global and public address book" : "Povoliť používateľom publikovanie ich dát do globálneho a verejného adresára", + "Federated Cloud" : "Združený Cloud", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Môžete zdieľať s kýmkoľvek kto používa Nextcloud, ownCloud alebo Pydio! Len zadajte ich združené Cloud ID v dialógu pre zdieľanie. Vyzerá podobne ako person@cloud.example.com", + "Your Federated Cloud ID:" : "Vaše združené Cloud ID", + "Share it so your friends can share files with you:" : "Zdieľajte to, aby mohli vaši priatelia zdieľať súbory s vami:", + "Add to your website" : "Pridať na svoju webstránku", + "Share with me via Nextcloud" : "Sprístupnené cez Nextcloud", + "HTML Code:" : "HTML kód:", + "Search global and public address book for users and let local users publish their data" : "Vyhľadávať používateľog v globálnom a verejnom adresári a umožniť miestnym používateľom publikovať ich dáta", + "Share it:" : "Sprístupniť:" +}, +"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/federatedfilesharing/l10n/sk.json b/apps/federatedfilesharing/l10n/sk.json new file mode 100644 index 00000000000..9d94d89eb5e --- /dev/null +++ b/apps/federatedfilesharing/l10n/sk.json @@ -0,0 +1,56 @@ +{ "translations": { + "Federated sharing" : "Združené sprístupňovanie", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Chcete pridať vzdialené úložisko {name} patriace používateľovi {owner}@{remote}?", + "Remote share" : "Vzdialené úložisko", + "Remote share password" : "Heslo k vzdialenému úložisku", + "Cancel" : "Zrušiť", + "Add remote share" : "Pridať vzdialené úložisko", + "Copy" : "Kopírovať", + "Copied!" : "Skopírované!", + "Not supported!" : "Nie je podporované!", + "Press ⌘-C to copy." : "Stlač ⌘-C pre skopírovanie.", + "Press Ctrl-C to copy." : "Stlač Ctrl-C pre skopírovanie.", + "Invalid Federated Cloud ID" : "Neplatné združené Cloud ID", + "Server to server sharing is not enabled on this server" : "Sprístupňovanie server-server nie je na tomto serveri povolené", + "Couldn't establish a federated share." : "Nepodarilo sa nadviazať združené zdieľanie", + "Couldn't establish a federated share, maybe the password was wrong." : "Nepodarilo sa nadviazať združené zdieľanie, možno je nesprávne heslo.", + "Federated Share request sent, you will receive an invitation. Check your notifications." : "Požiadavka na združené zdieľanie bola odoslaná, obdržíte pozvánku. Skontrolujte oznámenia.", + "The mountpoint name contains invalid characters." : "Meno prípojného bodu obsahuje neplatné znaky.", + "Not allowed to create a federated share with the owner." : "Nie je povolené vytvárať združené zdieľanie s vlastníkom.", + "Invalid or untrusted SSL certificate" : "Neplatný alebo nedôveryhodný certifikát SSL", + "Could not authenticate to remote share, password might be wrong" : "Nie je možné overiť vo vzdialenom úložisku, heslo môže byť nesprávne", + "Storage not valid" : "Neplatné úložisko", + "Federated share added" : "Združené sprístupnenie pridané", + "Couldn't add remote share" : "Nedá sa pridať vzdialené sprístupnenie", + "Sharing %s failed, because this item is already shared with %s" : "Sprístupnenie %s zlyhalo, pretože táto položka už je prístupná pre %s", + "Not allowed to create a federated share with the same user" : "Nie je možné vytvoriť združené sprístupnenie so sebou samým", + "File is already shared with %s" : "Súbor je už sprístupnený používateľovi %s", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Zdieľanie %s zlyhalo, %s sa nepodarilo nájsť, server nie je pravdepodobne dostupný alebo používa vlastnoručne podpísaný certifikát.", + "Could not find share" : "Nebolo možné nájsť sprístupnenie", + "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Obdržali ste \"%3$s\" ako vzdialené zdieľanie od %1$s (v mene %2$s) ", + "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Obdržali ste {share} ako vzdialené zdieľanie od {user} (v mene {behalf})", + "You received \"%3$s\" as a remote share from %1$s" : "Obdržali ste \"%3$s\" ako vzdialené zdieľanie od %1$s", + "You received {share} as a remote share from {user}" : "Obdržali ste {share} ako vzdialené zdieľanie od {user}", + "Accept" : "Schváliť", + "Decline" : "Odmietnuť", + "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Sprístupnite mi obsah prostredníctvom môjho #Nextcloud Federated Cloud ID, viac na %s", + "Share with me through my #Nextcloud Federated Cloud ID" : "Sprístupnite mi obsah prostredníctvom môjho #Nextcloud Federated Cloud ID", + "Sharing" : "Sprístupnenie", + "Federated Cloud Sharing" : "Sprístupnenie prostredníctvom Federated Cloud", + "Open documentation" : "Otvoriť dokumentáciu", + "Adjust how people can share between servers." : "Nastavte ako môžu ľudia medzi sebou zdieľať servery.", + "Allow users on this server to send shares to other servers" : "Povoliť používateľom z tohto servera sprístupňovať obsah na iných serveroch", + "Allow users on this server to receive shares from other servers" : "Povoliť používateľom z tohto servera sprístupňovanie obsahu z iných serverov", + "Search global and public address book for users" : "Vyhľadávať používateľov v globálnom a verejnom adresári kontaktov", + "Allow users to publish their data to a global and public address book" : "Povoliť používateľom publikovanie ich dát do globálneho a verejného adresára", + "Federated Cloud" : "Združený Cloud", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Môžete zdieľať s kýmkoľvek kto používa Nextcloud, ownCloud alebo Pydio! Len zadajte ich združené Cloud ID v dialógu pre zdieľanie. Vyzerá podobne ako person@cloud.example.com", + "Your Federated Cloud ID:" : "Vaše združené Cloud ID", + "Share it so your friends can share files with you:" : "Zdieľajte to, aby mohli vaši priatelia zdieľať súbory s vami:", + "Add to your website" : "Pridať na svoju webstránku", + "Share with me via Nextcloud" : "Sprístupnené cez Nextcloud", + "HTML Code:" : "HTML kód:", + "Search global and public address book for users and let local users publish their data" : "Vyhľadávať používateľog v globálnom a verejnom adresári a umožniť miestnym používateľom publikovať ich dáta", + "Share it:" : "Sprístupniť:" +},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" +}
\ No newline at end of file diff --git a/apps/federatedfilesharing/tests/AddressHandlerTest.php b/apps/federatedfilesharing/tests/AddressHandlerTest.php index 6d215d40156..a9c5cedf49b 100644 --- a/apps/federatedfilesharing/tests/AddressHandlerTest.php +++ b/apps/federatedfilesharing/tests/AddressHandlerTest.php @@ -47,9 +47,9 @@ class AddressHandlerTest extends \Test\TestCase { public function setUp() { parent::setUp(); - $this->urlGenerator = $this->getMockBuilder('OCP\IURLGenerator') + $this->urlGenerator = $this->getMockBuilder(IURLGenerator::class) ->getMock(); - $this->il10n = $this->getMockBuilder('OCP\IL10N') + $this->il10n = $this->getMockBuilder(IL10N::class) ->getMock(); $this->cloudIdManager = new CloudIdManager(); diff --git a/apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php b/apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php index 7714ff4731c..cef341fdc81 100644 --- a/apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php +++ b/apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php @@ -35,6 +35,7 @@ use OCP\Federation\ICloudIdManager; use OCP\Files\IRootFolder; use OCP\Http\Client\IClientService; use OCP\IL10N; +use OCP\IRequest; use OCP\ISession; use OCP\IUserManager; use OCP\IUserSession; @@ -85,18 +86,18 @@ class MountPublicLinkControllerTest extends \Test\TestCase { public function setUp() { parent::setUp(); - $this->request = $this->getMockBuilder('OCP\IRequest')->disableOriginalConstructor()->getMock(); + $this->request = $this->getMockBuilder(IRequest::class)->disableOriginalConstructor()->getMock(); $this->federatedShareProvider = $this->getMockBuilder('OCA\FederatedFileSharing\FederatedShareProvider') ->disableOriginalConstructor()->getMock(); - $this->shareManager = $this->getMockBuilder('OCP\Share\IManager')->disableOriginalConstructor()->getMock(); + $this->shareManager = $this->getMockBuilder(IManager::class)->disableOriginalConstructor()->getMock(); $this->addressHandler = $this->getMockBuilder('OCA\FederatedFileSharing\AddressHandler') ->disableOriginalConstructor()->getMock(); $this->rootFolder = $this->getMockBuilder('OCP\Files\IRootFolder')->disableOriginalConstructor()->getMock(); - $this->userManager = $this->getMockBuilder('OCP\IUserManager')->disableOriginalConstructor()->getMock(); + $this->userManager = $this->getMockBuilder(IUserManager::class)->disableOriginalConstructor()->getMock(); $this->share = new \OC\Share20\Share($this->rootFolder, $this->userManager); - $this->session = $this->getMockBuilder('OCP\ISession')->disableOriginalConstructor()->getMock(); - $this->l10n = $this->getMockBuilder('OCP\IL10N')->disableOriginalConstructor()->getMock(); - $this->userSession = $this->getMockBuilder('OCP\IUserSession')->disableOriginalConstructor()->getMock(); + $this->session = $this->getMockBuilder(ISession::class)->disableOriginalConstructor()->getMock(); + $this->l10n = $this->getMockBuilder(IL10N::class)->disableOriginalConstructor()->getMock(); + $this->userSession = $this->getMockBuilder(IUserSession::class)->disableOriginalConstructor()->getMock(); $this->clientService = $this->getMockBuilder('OCP\Http\Client\IClientService')->disableOriginalConstructor()->getMock(); $this->cloudIdManager = new CloudIdManager(); diff --git a/apps/federatedfilesharing/tests/Controller/RequestHandlerControllerTest.php b/apps/federatedfilesharing/tests/Controller/RequestHandlerControllerTest.php index d57b2cb207f..585102d687a 100644 --- a/apps/federatedfilesharing/tests/Controller/RequestHandlerControllerTest.php +++ b/apps/federatedfilesharing/tests/Controller/RequestHandlerControllerTest.php @@ -29,13 +29,13 @@ namespace OCA\FederatedFileSharing\Tests; use OC\Federation\CloudIdManager; use OC\Files\Filesystem; -use OCA\FederatedFileSharing\DiscoveryManager; use OCA\FederatedFileSharing\FederatedShareProvider; use OCA\FederatedFileSharing\Controller\RequestHandlerController; use OCP\Federation\ICloudIdManager; use OCP\Http\Client\IClient; use OCP\Http\Client\IClientService; use OCP\Http\Client\IResponse; +use OCP\IConfig; use OCP\IUserManager; use OCP\Share\IShare; @@ -83,14 +83,14 @@ class RequestHandlerControllerTest extends TestCase { self::loginHelper(self::TEST_FILES_SHARING_API_USER1); \OC\Share\Share::registerBackend('test', 'Test\Share\Backend'); - $config = $this->getMockBuilder('\OCP\IConfig') + $config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor()->getMock(); - $clientService = $this->getMockBuilder('\OCP\Http\Client\IClientService')->getMock(); + $clientService = $this->getMockBuilder(IClientService::class)->getMock(); $httpHelperMock = $this->getMockBuilder('\OC\HTTPHelper') ->setConstructorArgs([$config, $clientService]) ->getMock(); $httpHelperMock->expects($this->any())->method('post')->with($this->anything())->will($this->returnValue(true)); - $this->share = $this->getMockBuilder('\OCP\Share\IShare')->getMock(); + $this->share = $this->getMockBuilder(IShare::class)->getMock(); $this->federatedShareProvider = $this->getMockBuilder('OCA\FederatedFileSharing\FederatedShareProvider') ->disableOriginalConstructor()->getMock(); $this->federatedShareProvider->expects($this->any()) @@ -104,7 +104,7 @@ class RequestHandlerControllerTest extends TestCase { ->disableOriginalConstructor()->getMock(); $this->addressHandler = $this->getMockBuilder('OCA\FederatedFileSharing\AddressHandler') ->disableOriginalConstructor()->getMock(); - $this->userManager = $this->getMockBuilder('OCP\IUserManager')->getMock(); + $this->userManager = $this->getMockBuilder(IUserManager::class)->getMock(); $this->cloudIdManager = new CloudIdManager(); diff --git a/apps/federatedfilesharing/tests/FederatedShareProviderTest.php b/apps/federatedfilesharing/tests/FederatedShareProviderTest.php index 3ecd8162cad..aa81eef9e63 100644 --- a/apps/federatedfilesharing/tests/FederatedShareProviderTest.php +++ b/apps/federatedfilesharing/tests/FederatedShareProviderTest.php @@ -31,6 +31,7 @@ use OCA\FederatedFileSharing\FederatedShareProvider; use OCA\FederatedFileSharing\Notifications; use OCA\FederatedFileSharing\TokenHandler; use OCP\Federation\ICloudIdManager; +use OCP\Files\File; use OCP\Files\IRootFolder; use OCP\IConfig; use OCP\IDBConnection; @@ -87,15 +88,15 @@ class FederatedShareProviderTest extends \Test\TestCase { $this->tokenHandler = $this->getMockBuilder('OCA\FederatedFileSharing\TokenHandler') ->disableOriginalConstructor() ->getMock(); - $this->l = $this->getMockBuilder('OCP\IL10N')->getMock(); + $this->l = $this->getMockBuilder(IL10N::class)->getMock(); $this->l->method('t') ->will($this->returnCallback(function($text, $parameters = []) { return vsprintf($text, $parameters); })); - $this->logger = $this->getMockBuilder('OCP\ILogger')->getMock(); + $this->logger = $this->getMockBuilder(ILogger::class)->getMock(); $this->rootFolder = $this->getMockBuilder('OCP\Files\IRootFolder')->getMock(); - $this->config = $this->getMockBuilder('OCP\IConfig')->getMock(); - $this->userManager = $this->getMockBuilder('OCP\IUserManager')->getMock(); + $this->config = $this->getMockBuilder(IConfig::class)->getMock(); + $this->userManager = $this->getMockBuilder(IUserManager::class)->getMock(); //$this->addressHandler = new AddressHandler(\OC::$server->getURLGenerator(), $this->l); $this->addressHandler = $this->getMockBuilder('OCA\FederatedFileSharing\AddressHandler')->disableOriginalConstructor()->getMock(); $this->cloudIdManager = new CloudIdManager(); @@ -129,7 +130,7 @@ class FederatedShareProviderTest extends \Test\TestCase { public function testCreate() { $share = $this->shareManager->newShare(); - $node = $this->getMockBuilder('\OCP\Files\File')->getMock(); + $node = $this->getMockBuilder(File::class)->getMock(); $node->method('getId')->willReturn(42); $node->method('getName')->willReturn('myFile'); @@ -200,7 +201,7 @@ class FederatedShareProviderTest extends \Test\TestCase { public function testCreateCouldNotFindServer() { $share = $this->shareManager->newShare(); - $node = $this->getMockBuilder('\OCP\Files\File')->getMock(); + $node = $this->getMockBuilder(File::class)->getMock(); $node->method('getId')->willReturn(42); $node->method('getName')->willReturn('myFile'); @@ -256,7 +257,7 @@ class FederatedShareProviderTest extends \Test\TestCase { public function testCreateException() { $share = $this->shareManager->newShare(); - $node = $this->getMockBuilder('\OCP\Files\File')->getMock(); + $node = $this->getMockBuilder(File::class)->getMock(); $node->method('getId')->willReturn(42); $node->method('getName')->willReturn('myFile'); @@ -312,7 +313,7 @@ class FederatedShareProviderTest extends \Test\TestCase { public function testCreateShareWithSelf() { $share = $this->shareManager->newShare(); - $node = $this->getMockBuilder('\OCP\Files\File')->getMock(); + $node = $this->getMockBuilder(File::class)->getMock(); $node->method('getId')->willReturn(42); $node->method('getName')->willReturn('myFile'); @@ -351,7 +352,7 @@ class FederatedShareProviderTest extends \Test\TestCase { public function testCreateAlreadyShared() { $share = $this->shareManager->newShare(); - $node = $this->getMockBuilder('\OCP\Files\File')->getMock(); + $node = $this->getMockBuilder(File::class)->getMock(); $node->method('getId')->willReturn(42); $node->method('getName')->willReturn('myFile'); @@ -419,7 +420,7 @@ class FederatedShareProviderTest extends \Test\TestCase { $share = $this->shareManager->newShare(); - $node = $this->getMockBuilder('\OCP\Files\File')->getMock(); + $node = $this->getMockBuilder(File::class)->getMock(); $node->method('getId')->willReturn(42); $node->method('getName')->willReturn('myFile'); @@ -476,7 +477,7 @@ class FederatedShareProviderTest extends \Test\TestCase { } public function testGetSharedBy() { - $node = $this->getMockBuilder('\OCP\Files\File')->getMock(); + $node = $this->getMockBuilder(File::class)->getMock(); $node->method('getId')->willReturn(42); $node->method('getName')->willReturn('myFile'); @@ -517,7 +518,7 @@ class FederatedShareProviderTest extends \Test\TestCase { } public function testGetSharedByWithNode() { - $node = $this->getMockBuilder('\OCP\Files\File')->getMock(); + $node = $this->getMockBuilder(File::class)->getMock(); $node->method('getId')->willReturn(42); $node->method('getName')->willReturn('myFile'); @@ -536,7 +537,7 @@ class FederatedShareProviderTest extends \Test\TestCase { ->setNode($node); $this->provider->create($share); - $node2 = $this->getMockBuilder('\OCP\Files\File')->getMock(); + $node2 = $this->getMockBuilder(File::class)->getMock(); $node2->method('getId')->willReturn(43); $node2->method('getName')->willReturn('myOtherFile'); @@ -555,7 +556,7 @@ class FederatedShareProviderTest extends \Test\TestCase { } public function testGetSharedByWithReshares() { - $node = $this->getMockBuilder('\OCP\Files\File')->getMock(); + $node = $this->getMockBuilder(File::class)->getMock(); $node->method('getId')->willReturn(42); $node->method('getName')->willReturn('myFile'); @@ -588,7 +589,7 @@ class FederatedShareProviderTest extends \Test\TestCase { } public function testGetSharedByWithLimit() { - $node = $this->getMockBuilder('\OCP\Files\File')->getMock(); + $node = $this->getMockBuilder(File::class)->getMock(); $node->method('getId')->willReturn(42); $node->method('getName')->willReturn('myFile'); diff --git a/apps/federatedfilesharing/tests/TokenHandlerTest.php b/apps/federatedfilesharing/tests/TokenHandlerTest.php index 10e5fc5df51..2025b90e00b 100644 --- a/apps/federatedfilesharing/tests/TokenHandlerTest.php +++ b/apps/federatedfilesharing/tests/TokenHandlerTest.php @@ -42,7 +42,7 @@ class TokenHandlerTest extends \Test\TestCase { public function setUp() { parent::setUp(); - $this->secureRandom = $this->getMockBuilder('OCP\Security\ISecureRandom')->getMock(); + $this->secureRandom = $this->getMockBuilder(ISecureRandom::class)->getMock(); $this->tokenHandler = new TokenHandler($this->secureRandom); } diff --git a/apps/federation/composer/autoload.php b/apps/federation/composer/autoload.php new file mode 100644 index 00000000000..45677794dd0 --- /dev/null +++ b/apps/federation/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer/autoload_real.php'; + +return ComposerAutoloaderInitFederation::getLoader(); diff --git a/apps/federation/composer/composer.json b/apps/federation/composer/composer.json new file mode 100644 index 00000000000..2c9a66b242c --- /dev/null +++ b/apps/federation/composer/composer.json @@ -0,0 +1,13 @@ +{ + "config" : { + "vendor-dir": ".", + "optimize-autoloader": true, + "authorative-autoloader": true, + "autoloader-suffix": "Federation" + }, + "autoload" : { + "psr-4": { + "OCA\\Federation\\": "../lib/" + } + } +} diff --git a/apps/federation/composer/composer/ClassLoader.php b/apps/federation/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..2c72175e772 --- /dev/null +++ b/apps/federation/composer/composer/ClassLoader.php @@ -0,0 +1,445 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * 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 array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + foreach ($this->prefixDirsPsr4[$search] as $dir) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/apps/federation/composer/composer/LICENSE b/apps/federation/composer/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/apps/federation/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/federation/composer/composer/autoload_classmap.php b/apps/federation/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..8274bf45240 --- /dev/null +++ b/apps/federation/composer/composer/autoload_classmap.php @@ -0,0 +1,23 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\Federation\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php', + 'OCA\\Federation\\BackgroundJob\\GetSharedSecret' => $baseDir . '/../lib/BackgroundJob/GetSharedSecret.php', + 'OCA\\Federation\\BackgroundJob\\RequestSharedSecret' => $baseDir . '/../lib/BackgroundJob/RequestSharedSecret.php', + 'OCA\\Federation\\Command\\SyncFederationAddressBooks' => $baseDir . '/../lib/Command/SyncFederationAddressBooks.php', + 'OCA\\Federation\\Controller\\OCSAuthAPIController' => $baseDir . '/../lib/Controller/OCSAuthAPIController.php', + 'OCA\\Federation\\Controller\\SettingsController' => $baseDir . '/../lib/Controller/SettingsController.php', + 'OCA\\Federation\\DAV\\FedAuth' => $baseDir . '/../lib/DAV/FedAuth.php', + 'OCA\\Federation\\DbHandler' => $baseDir . '/../lib/DbHandler.php', + 'OCA\\Federation\\Hooks' => $baseDir . '/../lib/Hooks.php', + 'OCA\\Federation\\Middleware\\AddServerMiddleware' => $baseDir . '/../lib/Middleware/AddServerMiddleware.php', + 'OCA\\Federation\\Settings\\Admin' => $baseDir . '/../lib/Settings/Admin.php', + 'OCA\\Federation\\SyncFederationAddressBooks' => $baseDir . '/../lib/SyncFederationAddressBooks.php', + 'OCA\\Federation\\SyncJob' => $baseDir . '/../lib/SyncJob.php', + 'OCA\\Federation\\TrustedServers' => $baseDir . '/../lib/TrustedServers.php', +); diff --git a/apps/federation/composer/composer/autoload_namespaces.php b/apps/federation/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..71c9e91858d --- /dev/null +++ b/apps/federation/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( +); diff --git a/apps/federation/composer/composer/autoload_psr4.php b/apps/federation/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..d815aedf125 --- /dev/null +++ b/apps/federation/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\Federation\\' => array($baseDir . '/../lib'), +); diff --git a/apps/federation/composer/composer/autoload_real.php b/apps/federation/composer/composer/autoload_real.php new file mode 100644 index 00000000000..f2906437fdb --- /dev/null +++ b/apps/federation/composer/composer/autoload_real.php @@ -0,0 +1,52 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInitFederation +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInitFederation', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInitFederation', 'loadClassLoader')); + + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitFederation::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/apps/federation/composer/composer/autoload_static.php b/apps/federation/composer/composer/autoload_static.php new file mode 100644 index 00000000000..e005986b9f9 --- /dev/null +++ b/apps/federation/composer/composer/autoload_static.php @@ -0,0 +1,49 @@ +<?php + +// autoload_static.php @generated by Composer + +namespace Composer\Autoload; + +class ComposerStaticInitFederation +{ + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'OCA\\Federation\\' => 15, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\Federation\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'OCA\\Federation\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php', + 'OCA\\Federation\\BackgroundJob\\GetSharedSecret' => __DIR__ . '/..' . '/../lib/BackgroundJob/GetSharedSecret.php', + 'OCA\\Federation\\BackgroundJob\\RequestSharedSecret' => __DIR__ . '/..' . '/../lib/BackgroundJob/RequestSharedSecret.php', + 'OCA\\Federation\\Command\\SyncFederationAddressBooks' => __DIR__ . '/..' . '/../lib/Command/SyncFederationAddressBooks.php', + 'OCA\\Federation\\Controller\\OCSAuthAPIController' => __DIR__ . '/..' . '/../lib/Controller/OCSAuthAPIController.php', + 'OCA\\Federation\\Controller\\SettingsController' => __DIR__ . '/..' . '/../lib/Controller/SettingsController.php', + 'OCA\\Federation\\DAV\\FedAuth' => __DIR__ . '/..' . '/../lib/DAV/FedAuth.php', + 'OCA\\Federation\\DbHandler' => __DIR__ . '/..' . '/../lib/DbHandler.php', + 'OCA\\Federation\\Hooks' => __DIR__ . '/..' . '/../lib/Hooks.php', + 'OCA\\Federation\\Middleware\\AddServerMiddleware' => __DIR__ . '/..' . '/../lib/Middleware/AddServerMiddleware.php', + 'OCA\\Federation\\Settings\\Admin' => __DIR__ . '/..' . '/../lib/Settings/Admin.php', + 'OCA\\Federation\\SyncFederationAddressBooks' => __DIR__ . '/..' . '/../lib/SyncFederationAddressBooks.php', + 'OCA\\Federation\\SyncJob' => __DIR__ . '/..' . '/../lib/SyncJob.php', + 'OCA\\Federation\\TrustedServers' => __DIR__ . '/..' . '/../lib/TrustedServers.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitFederation::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitFederation::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitFederation::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/federation/l10n/es_CO.js b/apps/federation/l10n/es_CO.js new file mode 100644 index 00000000000..f67269dab94 --- /dev/null +++ b/apps/federation/l10n/es_CO.js @@ -0,0 +1,16 @@ +OC.L10N.register( + "federation", + { + "Added to the list of trusted servers" : "Agregado a la lista de servidores de confianza", + "Server is already in the list of trusted servers." : "El servidor ya se encuentra en la lista de servidores de confianza.", + "No server to federate with found" : "No se encontraron servidores para integrar a la federación", + "Could not add server" : "No fue posible agregar el servidor", + "Trusted servers" : "Servidores de confianza", + "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "La federación te permite conectarte con otros servidores de confianza para intercambiar el directorio de usuarios. Por ejemplo, esto se usará para auto-completar usuarios externos en el recurso compartido federado.", + "Add server automatically once a federated share was created successfully" : "Agregar el servidor automáticamente una vez que se genere exitosamente el elemento compartido federado", + "+ Add trusted server" : "+ Agregar servidor de confianza", + "Trusted server" : "Servidor de confianza", + "Add" : "Agregar", + "Federation" : "Federación" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/federation/l10n/es_CO.json b/apps/federation/l10n/es_CO.json new file mode 100644 index 00000000000..4e87e62726f --- /dev/null +++ b/apps/federation/l10n/es_CO.json @@ -0,0 +1,14 @@ +{ "translations": { + "Added to the list of trusted servers" : "Agregado a la lista de servidores de confianza", + "Server is already in the list of trusted servers." : "El servidor ya se encuentra en la lista de servidores de confianza.", + "No server to federate with found" : "No se encontraron servidores para integrar a la federación", + "Could not add server" : "No fue posible agregar el servidor", + "Trusted servers" : "Servidores de confianza", + "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "La federación te permite conectarte con otros servidores de confianza para intercambiar el directorio de usuarios. Por ejemplo, esto se usará para auto-completar usuarios externos en el recurso compartido federado.", + "Add server automatically once a federated share was created successfully" : "Agregar el servidor automáticamente una vez que se genere exitosamente el elemento compartido federado", + "+ Add trusted server" : "+ Agregar servidor de confianza", + "Trusted server" : "Servidor de confianza", + "Add" : "Agregar", + "Federation" : "Federación" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/federation/l10n/eu.js b/apps/federation/l10n/eu.js new file mode 100644 index 00000000000..d64821f858f --- /dev/null +++ b/apps/federation/l10n/eu.js @@ -0,0 +1,16 @@ +OC.L10N.register( + "federation", + { + "Added to the list of trusted servers" : "Zerbitzari fidagarrien zerrendara gehituta", + "Server is already in the list of trusted servers." : "Zerbitzaria fidagarrien zerrendan dago iada", + "No server to federate with found" : "Ez da federatzeko zerbitzaririk topatu", + "Could not add server" : "Ezin da zerbitzaria gehitu", + "Trusted servers" : "Zerbitzari fidagarriak", + "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Federazioaren bidez fidagarriak diren zerbitzariekin erabiltzaileen informazioa elkartrukatzeko aukeraematen du. Adibidez, kanpo erabiltzaileak automatikoki betetzeko erabil daiteke, federazio partekatuarentzako", + "Add server automatically once a federated share was created successfully" : "Zerbitzaria automatikoki gehitu federatutako partekatze bat ondo sortzen denean", + "+ Add trusted server" : "+ Zerbitzari fidagarria gehitu", + "Trusted server" : "Zerbitzari fidagarria", + "Add" : "Gehitu", + "Federation" : "Federazioa" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/federation/l10n/eu.json b/apps/federation/l10n/eu.json new file mode 100644 index 00000000000..86bdba1dc9d --- /dev/null +++ b/apps/federation/l10n/eu.json @@ -0,0 +1,14 @@ +{ "translations": { + "Added to the list of trusted servers" : "Zerbitzari fidagarrien zerrendara gehituta", + "Server is already in the list of trusted servers." : "Zerbitzaria fidagarrien zerrendan dago iada", + "No server to federate with found" : "Ez da federatzeko zerbitzaririk topatu", + "Could not add server" : "Ezin da zerbitzaria gehitu", + "Trusted servers" : "Zerbitzari fidagarriak", + "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Federazioaren bidez fidagarriak diren zerbitzariekin erabiltzaileen informazioa elkartrukatzeko aukeraematen du. Adibidez, kanpo erabiltzaileak automatikoki betetzeko erabil daiteke, federazio partekatuarentzako", + "Add server automatically once a federated share was created successfully" : "Zerbitzaria automatikoki gehitu federatutako partekatze bat ondo sortzen denean", + "+ Add trusted server" : "+ Zerbitzari fidagarria gehitu", + "Trusted server" : "Zerbitzari fidagarria", + "Add" : "Gehitu", + "Federation" : "Federazioa" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/federation/l10n/sk.js b/apps/federation/l10n/sk.js new file mode 100644 index 00000000000..ebf28b6fa34 --- /dev/null +++ b/apps/federation/l10n/sk.js @@ -0,0 +1,16 @@ +OC.L10N.register( + "federation", + { + "Added to the list of trusted servers" : "Pridané do zoznamu dôveryhodných serverov", + "Server is already in the list of trusted servers." : "Server sa už nachádza v zozname dôveryhodných serverov", + "No server to federate with found" : "Server pre združenie sa nenašiel", + "Could not add server" : "Nebolo možné pridať server", + "Trusted servers" : "Dôveryhodné servery", + "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Združovanie vám umožňuje sa pripojiť k iným dôveryhodným serverom za účelom výmeny adresára používateľov. Používa sa to napr. pre automatické doplňovanie používateľov pri združenom zdieľaní.", + "Add server automatically once a federated share was created successfully" : "Pridať server automaticky akonáhle je úspešne vytvorené združené zdieľanie", + "+ Add trusted server" : "Pridať dôveryhodný server", + "Trusted server" : "Dôveryhodný server", + "Add" : "Pridať", + "Federation" : "Združovanie" +}, +"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/federation/l10n/sk.json b/apps/federation/l10n/sk.json new file mode 100644 index 00000000000..119f2b121fa --- /dev/null +++ b/apps/federation/l10n/sk.json @@ -0,0 +1,14 @@ +{ "translations": { + "Added to the list of trusted servers" : "Pridané do zoznamu dôveryhodných serverov", + "Server is already in the list of trusted servers." : "Server sa už nachádza v zozname dôveryhodných serverov", + "No server to federate with found" : "Server pre združenie sa nenašiel", + "Could not add server" : "Nebolo možné pridať server", + "Trusted servers" : "Dôveryhodné servery", + "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Združovanie vám umožňuje sa pripojiť k iným dôveryhodným serverom za účelom výmeny adresára používateľov. Používa sa to napr. pre automatické doplňovanie používateľov pri združenom zdieľaní.", + "Add server automatically once a federated share was created successfully" : "Pridať server automaticky akonáhle je úspešne vytvorené združené zdieľanie", + "+ Add trusted server" : "Pridať dôveryhodný server", + "Trusted server" : "Dôveryhodný server", + "Add" : "Pridať", + "Federation" : "Združovanie" +},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" +}
\ No newline at end of file diff --git a/apps/files/composer/autoload.php b/apps/files/composer/autoload.php new file mode 100644 index 00000000000..3aa13fa515d --- /dev/null +++ b/apps/files/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer/autoload_real.php'; + +return ComposerAutoloaderInitFiles::getLoader(); diff --git a/apps/files/composer/composer.json b/apps/files/composer/composer.json new file mode 100644 index 00000000000..3412d9507b2 --- /dev/null +++ b/apps/files/composer/composer.json @@ -0,0 +1,13 @@ +{ + "config" : { + "vendor-dir": ".", + "optimize-autoloader": true, + "authorative-autoloader": true, + "autoloader-suffix": "Files" + }, + "autoload" : { + "psr-4": { + "OCA\\Files\\": "../lib/" + } + } +} diff --git a/apps/files/composer/composer/ClassLoader.php b/apps/files/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..2c72175e772 --- /dev/null +++ b/apps/files/composer/composer/ClassLoader.php @@ -0,0 +1,445 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * 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 array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + foreach ($this->prefixDirsPsr4[$search] as $dir) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/apps/files/composer/composer/LICENSE b/apps/files/composer/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/apps/files/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/files/composer/composer/autoload_classmap.php b/apps/files/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..d184702cfa2 --- /dev/null +++ b/apps/files/composer/composer/autoload_classmap.php @@ -0,0 +1,36 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\Files\\Activity\\FavoriteProvider' => $baseDir . '/../lib/Activity/FavoriteProvider.php', + 'OCA\\Files\\Activity\\Filter\\Favorites' => $baseDir . '/../lib/Activity/Filter/Favorites.php', + 'OCA\\Files\\Activity\\Filter\\FileChanges' => $baseDir . '/../lib/Activity/Filter/FileChanges.php', + 'OCA\\Files\\Activity\\Helper' => $baseDir . '/../lib/Activity/Helper.php', + 'OCA\\Files\\Activity\\Provider' => $baseDir . '/../lib/Activity/Provider.php', + 'OCA\\Files\\Activity\\Settings\\FavoriteAction' => $baseDir . '/../lib/Activity/Settings/FavoriteAction.php', + 'OCA\\Files\\Activity\\Settings\\FileChanged' => $baseDir . '/../lib/Activity/Settings/FileChanged.php', + 'OCA\\Files\\Activity\\Settings\\FileCreated' => $baseDir . '/../lib/Activity/Settings/FileCreated.php', + 'OCA\\Files\\Activity\\Settings\\FileDeleted' => $baseDir . '/../lib/Activity/Settings/FileDeleted.php', + 'OCA\\Files\\Activity\\Settings\\FileFavorite' => $baseDir . '/../lib/Activity/Settings/FileFavorite.php', + 'OCA\\Files\\Activity\\Settings\\FileRestored' => $baseDir . '/../lib/Activity/Settings/FileRestored.php', + 'OCA\\Files\\App' => $baseDir . '/../lib/App.php', + 'OCA\\Files\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php', + 'OCA\\Files\\BackgroundJob\\CleanupFileLocks' => $baseDir . '/../lib/BackgroundJob/CleanupFileLocks.php', + 'OCA\\Files\\BackgroundJob\\DeleteOrphanedItems' => $baseDir . '/../lib/BackgroundJob/DeleteOrphanedItems.php', + 'OCA\\Files\\BackgroundJob\\ScanFiles' => $baseDir . '/../lib/BackgroundJob/ScanFiles.php', + 'OCA\\Files\\Capabilities' => $baseDir . '/../lib/Capabilities.php', + 'OCA\\Files\\Command\\DeleteOrphanedFiles' => $baseDir . '/../lib/Command/DeleteOrphanedFiles.php', + 'OCA\\Files\\Command\\Scan' => $baseDir . '/../lib/Command/Scan.php', + 'OCA\\Files\\Command\\ScanAppData' => $baseDir . '/../lib/Command/ScanAppData.php', + 'OCA\\Files\\Command\\TransferOwnership' => $baseDir . '/../lib/Command/TransferOwnership.php', + 'OCA\\Files\\Controller\\ApiController' => $baseDir . '/../lib/Controller/ApiController.php', + 'OCA\\Files\\Controller\\SettingsController' => $baseDir . '/../lib/Controller/SettingsController.php', + 'OCA\\Files\\Controller\\ViewController' => $baseDir . '/../lib/Controller/ViewController.php', + 'OCA\\Files\\Helper' => $baseDir . '/../lib/Helper.php', + 'OCA\\Files\\Service\\TagService' => $baseDir . '/../lib/Service/TagService.php', + 'OCA\\Files\\Settings\\Admin' => $baseDir . '/../lib/Settings/Admin.php', +); diff --git a/apps/files/composer/composer/autoload_namespaces.php b/apps/files/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..71c9e91858d --- /dev/null +++ b/apps/files/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( +); diff --git a/apps/files/composer/composer/autoload_psr4.php b/apps/files/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..c4f95a2b150 --- /dev/null +++ b/apps/files/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\Files\\' => array($baseDir . '/../lib'), +); diff --git a/apps/files/composer/composer/autoload_real.php b/apps/files/composer/composer/autoload_real.php new file mode 100644 index 00000000000..fe9ef0b02ae --- /dev/null +++ b/apps/files/composer/composer/autoload_real.php @@ -0,0 +1,52 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInitFiles +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInitFiles', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInitFiles', 'loadClassLoader')); + + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitFiles::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/apps/files/composer/composer/autoload_static.php b/apps/files/composer/composer/autoload_static.php new file mode 100644 index 00000000000..44094c6a34c --- /dev/null +++ b/apps/files/composer/composer/autoload_static.php @@ -0,0 +1,62 @@ +<?php + +// autoload_static.php @generated by Composer + +namespace Composer\Autoload; + +class ComposerStaticInitFiles +{ + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'OCA\\Files\\' => 10, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\Files\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'OCA\\Files\\Activity\\FavoriteProvider' => __DIR__ . '/..' . '/../lib/Activity/FavoriteProvider.php', + 'OCA\\Files\\Activity\\Filter\\Favorites' => __DIR__ . '/..' . '/../lib/Activity/Filter/Favorites.php', + 'OCA\\Files\\Activity\\Filter\\FileChanges' => __DIR__ . '/..' . '/../lib/Activity/Filter/FileChanges.php', + 'OCA\\Files\\Activity\\Helper' => __DIR__ . '/..' . '/../lib/Activity/Helper.php', + 'OCA\\Files\\Activity\\Provider' => __DIR__ . '/..' . '/../lib/Activity/Provider.php', + 'OCA\\Files\\Activity\\Settings\\FavoriteAction' => __DIR__ . '/..' . '/../lib/Activity/Settings/FavoriteAction.php', + 'OCA\\Files\\Activity\\Settings\\FileChanged' => __DIR__ . '/..' . '/../lib/Activity/Settings/FileChanged.php', + 'OCA\\Files\\Activity\\Settings\\FileCreated' => __DIR__ . '/..' . '/../lib/Activity/Settings/FileCreated.php', + 'OCA\\Files\\Activity\\Settings\\FileDeleted' => __DIR__ . '/..' . '/../lib/Activity/Settings/FileDeleted.php', + 'OCA\\Files\\Activity\\Settings\\FileFavorite' => __DIR__ . '/..' . '/../lib/Activity/Settings/FileFavorite.php', + 'OCA\\Files\\Activity\\Settings\\FileRestored' => __DIR__ . '/..' . '/../lib/Activity/Settings/FileRestored.php', + 'OCA\\Files\\App' => __DIR__ . '/..' . '/../lib/App.php', + 'OCA\\Files\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php', + 'OCA\\Files\\BackgroundJob\\CleanupFileLocks' => __DIR__ . '/..' . '/../lib/BackgroundJob/CleanupFileLocks.php', + 'OCA\\Files\\BackgroundJob\\DeleteOrphanedItems' => __DIR__ . '/..' . '/../lib/BackgroundJob/DeleteOrphanedItems.php', + 'OCA\\Files\\BackgroundJob\\ScanFiles' => __DIR__ . '/..' . '/../lib/BackgroundJob/ScanFiles.php', + 'OCA\\Files\\Capabilities' => __DIR__ . '/..' . '/../lib/Capabilities.php', + 'OCA\\Files\\Command\\DeleteOrphanedFiles' => __DIR__ . '/..' . '/../lib/Command/DeleteOrphanedFiles.php', + 'OCA\\Files\\Command\\Scan' => __DIR__ . '/..' . '/../lib/Command/Scan.php', + 'OCA\\Files\\Command\\ScanAppData' => __DIR__ . '/..' . '/../lib/Command/ScanAppData.php', + 'OCA\\Files\\Command\\TransferOwnership' => __DIR__ . '/..' . '/../lib/Command/TransferOwnership.php', + 'OCA\\Files\\Controller\\ApiController' => __DIR__ . '/..' . '/../lib/Controller/ApiController.php', + 'OCA\\Files\\Controller\\SettingsController' => __DIR__ . '/..' . '/../lib/Controller/SettingsController.php', + 'OCA\\Files\\Controller\\ViewController' => __DIR__ . '/..' . '/../lib/Controller/ViewController.php', + 'OCA\\Files\\Helper' => __DIR__ . '/..' . '/../lib/Helper.php', + 'OCA\\Files\\Service\\TagService' => __DIR__ . '/..' . '/../lib/Service/TagService.php', + 'OCA\\Files\\Settings\\Admin' => __DIR__ . '/..' . '/../lib/Settings/Admin.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitFiles::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitFiles::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitFiles::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/files/css/files.scss b/apps/files/css/files.scss index 7c2d3b0bb1c..c03b1ce6fad 100644 --- a/apps/files/css/files.scss +++ b/apps/files/css/files.scss @@ -34,8 +34,6 @@ .newFileMenu .error, #fileList .error { color: $color-error; border-color: $color-error; - -webkit-box-shadow: 0 0 6px #f8b9b7; - -moz-box-shadow: 0 0 6px #f8b9b7; box-shadow: 0 0 6px #f8b9b7; } @@ -232,9 +230,6 @@ table th#headerName { position: relative; height: 50px; } -.has-favorites #headerName-container { - padding-left: 50px; -} table th#headerSize, table td.filesize { text-align: right; @@ -296,7 +291,12 @@ table td.filename a.name { line-height: 50px; padding: 0; } -table td.filename label.icon-loading-small { +table td.filename .thumbnail-wrapper { + position: absolute; + width: 50px; + height: 50px; +} +table td.filename .thumbnail-wrapper.icon-loading-small { &:after { z-index: 10; } @@ -308,10 +308,10 @@ table td.filename .thumbnail { display: inline-block; width: 32px; height: 32px; + background-size: 32px; margin-left: 9px; margin-top: 9px; cursor: pointer; - float: left; position: absolute; z-index: 4; } @@ -321,12 +321,9 @@ table td.filename input.filename { margin-left: 48px; cursor: text; } -.has-favorites table td.filename input.filename { - margin-left: 52px; -} table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:3px 8px 8px 3px; } -table td.filename .nametext, .uploadtext, .modified, .column-last>span:first-child { float:left; padding:15px 0; } +table td.filename .nametext, .modified, .column-last>span:first-child { float:left; padding:15px 0; } .modified, .column-last>span:first-child { position: relative; @@ -338,22 +335,23 @@ table td.filename .nametext, .uploadtext, .modified, .column-last>span:first-chi /* TODO fix usability bug (accidental file/folder selection) */ table td.filename .nametext { position: absolute; - left: 55px; padding: 0; + padding-left: 55px; overflow: hidden; text-overflow: ellipsis; width: 70%; max-width: 800px; height: 100%; + z-index: 10; +} +table td.filename .uploadtext { + position: absolute; + left: 55px; } /* ellipsis on file names */ table td.filename .nametext .innernametext { max-width: calc(100% - 100px) !important; } -.has-favorites #fileList td.filename a.name { - left: 50px; - margin-right: 50px; -} .hide-hidden-files #fileList tr.hidden-file, .hide-hidden-files #fileList tr.hidden-file.dragging { @@ -439,49 +437,27 @@ table td.filename .uploadtext { opacity: .5; } +table td.selection { + padding: 0; +} + /* File checkboxes */ -#fileList tr td.filename>.selectCheckBox + label:before { - opacity: 0; - position: absolute; - bottom: 4px; - right: 0; - z-index: 10; +#fileList tr td.selection>.selectCheckBox + label:before { + opacity: 0.3; } -/* Show checkbox when hovering, checked, or selected */ -#fileList tr:hover td.filename>.selectCheckBox + label:before, -#fileList tr:focus td.filename>.selectCheckBox + label:before, -#fileList tr td.filename>.selectCheckBox:checked + label:before, -#fileList tr.selected td.filename>.selectCheckBox + label:before { +/* Show checkbox with full opacity when hovering, checked, or selected */ +#fileList tr:hover td.selection>.selectCheckBox + label:before, +#fileList tr:focus td.selection>.selectCheckBox + label:before, +#fileList tr td.selection>.selectCheckBox:checked + label:before, +#fileList tr.selected td.selection>.selectCheckBox + label:before { opacity: 1; } /* Use label to have bigger clickable size for checkbox */ -#fileList tr td.filename>.selectCheckBox + label, +#fileList tr td.selection>.selectCheckBox + label, .select-all + label { - background-position: 30px 30px; - height: 50px; - position: absolute; - width: 50px; - z-index: 5; -} -#fileList tr td.filename>.selectCheckBox { - /* sometimes checkbox height is bigger (KDE/Qt), so setting to absolute - * to prevent it to increase the height */ - position: absolute; - z-index: 10; -} -.select-all + label { - top: 0; -} -.select-all + label:before { - position: absolute; - top: 18px; - left: 18px; - z-index: 10; -} -.has-favorites .select-all { - left: 68px; + padding: 16px; } #fileList tr td.filename { @@ -502,10 +478,11 @@ table td.filename .uploadtext { display: inline-block; float: left; } -#fileList tr td.filename .action-favorite { +#fileList tr td.filename .favorite-mark { + position: absolute; display: block; - float: left; - width: 30px; + top: -6px; + right: -6px; line-height: 100%; text-align: center; } @@ -617,7 +594,7 @@ a.action > img { padding-left: 6px; } -#fileList .action.action-favorite.permanent { +#fileList .favorite-mark.permanent { opacity: 1; } @@ -661,9 +638,6 @@ table tr.summary td { .summary .info { margin-left: 40px; } -.has-favorites .summary .info { - margin-left: 90px; -} table.dragshadow { width:auto; @@ -716,12 +690,24 @@ table.dragshadow td.size { #filestable .filename .action .icon, #filestable .selectedActions a .icon, +#filestable .filename .favorite-mark .icon, #controls .actions .button .icon { display: inline-block; vertical-align: middle; background-size: 16px 16px; } +#filestable .filename .favorite-mark { + // Override default icons to always hide the star icon and always show the + // starred icon even when hovered or focused. + & .icon-star { + background-image: none; + } + & .icon-starred { + background-image: url('../../../core/img/actions/starred.svg?v=1'); + } +} + #filestable .filename .action .icon.hidden, #filestable .selectedActions a .icon.hidden, #controls .actions .button .icon.hidden { diff --git a/apps/files/css/mobile.scss b/apps/files/css/mobile.scss index eefc92c816b..e7b75910fa9 100644 --- a/apps/files/css/mobile.scss +++ b/apps/files/css/mobile.scss @@ -24,10 +24,6 @@ table td.date { table td { padding: 0; } -/* and accordingly fix left margin of file list summary on mobile */ -.summary .info { - margin-left: 105px; -} /* remove shift for multiselect bar to account for missing navigation */ table.multiselect thead { diff --git a/apps/files/css/upload.scss b/apps/files/css/upload.scss index 4685b20d43a..5263a4b0e03 100644 --- a/apps/files/css/upload.scss +++ b/apps/files/css/upload.scss @@ -1,6 +1,4 @@ #upload { - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; box-sizing: border-box; height: 36px; width: 39px; @@ -26,8 +24,6 @@ .file_upload_form { display:inline; float:left; margin:0; padding:0; cursor:pointer; overflow:visible; } #uploadprogresswrapper, #uploadprogresswrapper * { - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; box-sizing: border-box; } diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index 3da9b06b0d3..0f320c8b3c7 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -706,7 +706,7 @@ * @property {String} mime mime type * @property {int} permissions permissions * @property {(Function|String)} icon icon path to the icon or function that returns it (deprecated, use iconClass instead) - * @property {(Function|String)} iconClass class name of the icon (recommended for theming) + * @property {(String|OCA.Files.FileActions~iconClassFunction)} iconClass class name of the icon (recommended for theming) * @property {OCA.Files.FileActions~renderActionFunction} [render] optional rendering function * @property {OCA.Files.FileActions~actionHandler} actionHandler action handler function */ @@ -746,6 +746,17 @@ */ /** + * Icon class function for actions. + * The function returns the icon class of the action using + * the given context information. + * + * @callback OCA.Files.FileActions~iconClassFunction + * @param {String} fileName name of the file on which the action must be performed + * @param {OCA.Files.FileActionContext} context action context + * @return {String} icon class + */ + + /** * Action handler function for file actions * * @callback OCA.Files.FileActions~actionHandler diff --git a/apps/files/js/fileactionsmenu.js b/apps/files/js/fileactionsmenu.js index 45d2bd83049..b8022f13734 100644 --- a/apps/files/js/fileactionsmenu.js +++ b/apps/files/js/fileactionsmenu.js @@ -115,6 +115,11 @@ item = _.extend({}, item); item.displayName = item.displayName(self._context); } + if (_.isFunction(item.iconClass)) { + var fileName = self._context.$file.attr('data-file'); + item = _.extend({}, item); + item.iconClass = item.iconClass(fileName, self._context); + } return item; }); items = items.sort(function(actionA, actionB) { diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index cc23ac73979..4790afcf4d0 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -332,7 +332,7 @@ this.$fileList.on('click','td.filename>a.name, td.filesize, td.date', _.bind(this._onClickFile, this)); - this.$fileList.on('change', 'td.filename>.selectCheckBox', _.bind(this._onClickFileCheckbox, this)); + this.$fileList.on('change', 'td.selection>.selectCheckBox', _.bind(this._onClickFileCheckbox, this)); this.$el.on('show', _.bind(this._onShow, this)); this.$el.on('urlChanged', _.bind(this._onUrlChanged, this)); this.$el.find('.select-all').click(_.bind(this._onClickSelectAll, this)); @@ -593,7 +593,7 @@ * @param {bool} state true to select, false to deselect */ _selectFileEl: function($tr, state, showDetailsView) { - var $checkbox = $tr.find('td.filename>.selectCheckBox'); + var $checkbox = $tr.find('td.selection>.selectCheckBox'); var oldData = !!this._selectedFiles[$tr.data('id')]; var data; $checkbox.prop('checked', state); @@ -649,7 +649,7 @@ else { this._lastChecked = $tr; } - var $checkbox = $tr.find('td.filename>.selectCheckBox'); + var $checkbox = $tr.find('td.selection>.selectCheckBox'); this._selectFileEl($tr, !$checkbox.prop('checked')); this.updateSelectionSummary(); } else { @@ -704,7 +704,7 @@ */ _onClickSelectAll: function(e) { var checked = $(e.target).prop('checked'); - this.$fileList.find('td.filename>.selectCheckBox').prop('checked', checked) + this.$fileList.find('td.selection>.selectCheckBox').prop('checked', checked) .closest('tr').toggleClass('selected', checked); this._selectedFiles = {}; this._selectionSummary.clear(); @@ -1063,6 +1063,13 @@ this.$fileList.empty(); + if (this._allowSelection) { + // The results table, which has no selection column, checks + // whether the main table has a selection column or not in order + // to align its contents with those of the main table. + this.$el.addClass('has-selection'); + } + // clear "Select all" checkbox this.$el.find('.select-all').prop('checked', false); @@ -1192,6 +1199,20 @@ path = this.getCurrentDirectory(); } + // selection td + if (this._allowSelection) { + td = $('<td class="selection"></td>'); + + td.append( + '<input id="select-' + this.id + '-' + fileData.id + + '" type="checkbox" class="selectCheckBox checkbox"/><label for="select-' + this.id + '-' + fileData.id + '">' + + '<span class="hidden-visually">' + t('files', 'Select') + '</span>' + + '</label>' + ); + + tr.append(td); + } + // filename td td = $('<td class="filename"></td>'); @@ -1203,22 +1224,13 @@ else { linkUrl = this.getDownloadUrl(name, path, type === 'dir'); } - if (this._allowSelection) { - td.append( - '<input id="select-' + this.id + '-' + fileData.id + - '" type="checkbox" class="selectCheckBox checkbox"/><label for="select-' + this.id + '-' + fileData.id + '">' + - '<div class="thumbnail" style="background-image:url(' + icon + '); background-size: 32px;"></div>' + - '<span class="hidden-visually">' + t('files', 'Select') + '</span>' + - '</label>' - ); - } else { - td.append('<div class="thumbnail" style="background-image:url(' + icon + '); background-size: 32px;"></div>'); - } var linkElem = $('<a></a>').attr({ "class": "name", "href": linkUrl }); + linkElem.append('<div class="thumbnail-wrapper"><div class="thumbnail" style="background-image:url(' + icon + ');"></div></div>'); + // from here work on the display name name = fileData.displayName || name; @@ -1673,6 +1685,7 @@ // close sidebar this._updateDetailsView(null); } + this._setCurrentDir(this.getCurrentDirectory(), false); var callBack = this.reloadCallback.bind(this); return this._reloadCall.then(callBack, callBack); }, @@ -2614,6 +2627,13 @@ */ _createSummary: function() { var $tr = $('<tr class="summary"></tr>'); + + if (this._allowSelection) { + // Dummy column for selection, as all rows must have the same + // number of columns. + $tr.append('<td></td>'); + } + this.$el.find('tfoot').append($tr); return new OCA.Files.FileSummary($tr, {config: this._filesConfig}); diff --git a/apps/files/js/tagsplugin.js b/apps/files/js/tagsplugin.js index 9bd20be4bf8..747a7245a56 100644 --- a/apps/files/js/tagsplugin.js +++ b/apps/files/js/tagsplugin.js @@ -17,12 +17,12 @@ PROPERTY_FAVORITE: '{' + OC.Files.Client.NS_OWNCLOUD + '}favorite' }); - var TEMPLATE_FAVORITE_ACTION = - '<a href="#" ' + - 'class="action action-favorite {{#isFavorite}}permanent{{/isFavorite}}">' + + var TEMPLATE_FAVORITE_MARK = + '<div ' + + 'class="favorite-mark {{#isFavorite}}permanent{{/isFavorite}}">' + '<span class="icon {{iconClass}}" />' + '<span class="hidden-visually">{{altText}}</span>' + - '</a>'; + '</div>'; /** * Returns the icon class for the matching state @@ -42,24 +42,24 @@ */ function renderStar(state) { if (!this._template) { - this._template = Handlebars.compile(TEMPLATE_FAVORITE_ACTION); + this._template = Handlebars.compile(TEMPLATE_FAVORITE_MARK); } return this._template({ isFavorite: state, - altText: state ? t('files', 'Favorited') : t('files', 'Favorite'), + altText: state ? t('files', 'Favorited') : t('files', 'Not favorited'), iconClass: getStarIconClass(state) }); } /** - * Toggle star icon on action element + * Toggle star icon on favorite mark element * - * @param {Object} action element + * @param {Object} $favoriteMarkEl favorite mark element * @param {boolean} state true if starred, false otherwise */ - function toggleStar($actionEl, state) { - $actionEl.removeClass('icon-star icon-starred').addClass(getStarIconClass(state)); - $actionEl.toggleClass('permanent', state); + function toggleStar($favoriteMarkEl, state) { + $favoriteMarkEl.removeClass('icon-star icon-starred').addClass(getStarIconClass(state)); + $favoriteMarkEl.toggleClass('permanent', state); } OCA.Files = OCA.Files || {}; @@ -67,8 +67,9 @@ /** * @namespace OCA.Files.TagsPlugin * - * Extends the file actions and file list to include a favorite action icon - * and addition "data-tags" and "data-favorite" attributes. + * Extends the file actions and file list to include a favorite mark icon + * and a favorite action in the file actions menu; it also adds "data-tags" + * and "data-favorite" attributes to file elements. */ OCA.Files.TagsPlugin = { name: 'Tags', @@ -84,22 +85,38 @@ _extendFileActions: function(fileActions) { var self = this; - // register "star" action + fileActions.registerAction({ name: 'Favorite', - displayName: t('files', 'Favorite'), + displayName: function(context) { + var $file = context.$file; + var isFavorite = $file.data('favorite') === true; + + if (isFavorite) { + return t('files', 'Remove from favorites'); + } + + // As it is currently not possible to provide a context for + // the i18n strings "Add to favorites" was used instead of + // "Favorite" to remove the ambiguity between verb and noun + // when it is translated. + return t('files', 'Add to favorites'); + }, mime: 'all', + order: -100, permissions: OC.PERMISSION_READ, - type: OCA.Files.FileActions.TYPE_INLINE, - render: function(actionSpec, isDefault, context) { + iconClass: function(fileName, context) { var $file = context.$file; var isFavorite = $file.data('favorite') === true; - var $icon = $(renderStar(isFavorite)); - $file.find('td:first>.favorite').replaceWith($icon); - return $icon; + + if (isFavorite) { + return 'icon-star-dark'; + } + + return 'icon-starred'; }, actionHandler: function(fileName, context) { - var $actionEl = context.$file.find('.action-favorite'); + var $favoriteMarkEl = context.$file.find('.favorite-mark'); var $file = context.$file; var fileInfo = context.fileList.files[$file.index()]; var dir = context.dir || context.fileList.getCurrentDirectory(); @@ -118,14 +135,14 @@ } // pre-toggle the star - toggleStar($actionEl, !isFavorite); + toggleStar($favoriteMarkEl, !isFavorite); context.fileInfoModel.trigger('busy', context.fileInfoModel, true); self.applyFileTags( dir + '/' + fileName, tags, - $actionEl, + $favoriteMarkEl, isFavorite ).then(function(result) { context.fileInfoModel.trigger('busy', context.fileInfoModel, false); @@ -145,17 +162,19 @@ _extendFileList: function(fileList) { // extend row prototype - fileList.$el.addClass('has-favorites'); var oldCreateRow = fileList._createRow; fileList._createRow = function(fileData) { var $tr = oldCreateRow.apply(this, arguments); + var isFavorite = false; if (fileData.tags) { $tr.attr('data-tags', fileData.tags.join('|')); if (fileData.tags.indexOf(OC.TAG_FAVORITE) >= 0) { $tr.attr('data-favorite', true); + isFavorite = true; } } - $tr.find('td:first').prepend('<div class="favorite"></div>'); + var $icon = $(renderStar(isFavorite)); + $tr.find('td.filename .thumbnail').append($icon); return $tr; }; var oldElementToFile = fileList.elementToFile; @@ -215,10 +234,10 @@ * * @param {String} fileName path to the file or folder to tag * @param {Array.<String>} tagNames array of tag names - * @param {Object} $actionEl element + * @param {Object} $favoriteMarkEl favorite mark element * @param {boolean} isFavorite Was the item favorited before */ - applyFileTags: function(fileName, tagNames, $actionEl, isFavorite) { + applyFileTags: function(fileName, tagNames, $favoriteMarkEl, isFavorite) { var encodedPath = OC.encodePath(fileName); while (encodedPath[0] === '/') { encodedPath = encodedPath.substr(1); @@ -238,7 +257,7 @@ message = ': ' + response.responseJSON.message; } OC.Notification.show(t('files', 'An error occurred while trying to update the tags' + message), {type: 'error'}); - toggleStar($actionEl, isFavorite); + toggleStar($favoriteMarkEl, isFavorite); }); } }; diff --git a/apps/files/l10n/ca.js b/apps/files/l10n/ca.js index f4bb7455e75..a23ea0d5ff2 100644 --- a/apps/files/l10n/ca.js +++ b/apps/files/l10n/ca.js @@ -16,7 +16,6 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "No hi ha prou espai lliure, està carregant {size1} però només pot {size2}", "Target folder \"{dir}\" does not exist any more" : "La carpeta objectiu \"{dir}\" ja no existeix", "Not enough free space" : "Espai lliure insuficient", - "Uploading …" : "S'està carregant", "…" : ".....", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", "Actions" : "Accions", @@ -123,7 +122,6 @@ OC.L10N.register( "Show hidden files" : "Mostra els fitxers ocults", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Utilitzeu aquesta adreça per <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">accedir als vostres fitxers a través de WebDAV</a>", - "Uploading @" : "S'està carregant @", "No files in here" : "No hi ha arxius", "Upload some content or sync with your devices!" : "Pugi continguts o sincronitzi els seus dispositius.", "No entries found in this folder" : "No hi ha entrades en aquesta carpeta", diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json index 13beefbf4b1..aad9cb3b39d 100644 --- a/apps/files/l10n/ca.json +++ b/apps/files/l10n/ca.json @@ -14,7 +14,6 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "No hi ha prou espai lliure, està carregant {size1} però només pot {size2}", "Target folder \"{dir}\" does not exist any more" : "La carpeta objectiu \"{dir}\" ja no existeix", "Not enough free space" : "Espai lliure insuficient", - "Uploading …" : "S'està carregant", "…" : ".....", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", "Actions" : "Accions", @@ -121,7 +120,6 @@ "Show hidden files" : "Mostra els fitxers ocults", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Utilitzeu aquesta adreça per <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">accedir als vostres fitxers a través de WebDAV</a>", - "Uploading @" : "S'està carregant @", "No files in here" : "No hi ha arxius", "Upload some content or sync with your devices!" : "Pugi continguts o sincronitzi els seus dispositius.", "No entries found in this folder" : "No hi ha entrades en aquesta carpeta", diff --git a/apps/files/l10n/cs.js b/apps/files/l10n/cs.js index 6105c3e1163..e165e5a1580 100644 --- a/apps/files/l10n/cs.js +++ b/apps/files/l10n/cs.js @@ -16,7 +16,6 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Není dostatek místa pro uložení, velikost souboru je {size1}, zbývá pouze {size2}", "Target folder \"{dir}\" does not exist any more" : "Cílový adresář \"{dir}\" již neexistuje", "Not enough free space" : "Nedostatek volného prostoru", - "Uploading …" : "Nahrávám...", "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} z {totalSize} ({bitrate})", "Actions" : "Činnosti", @@ -123,7 +122,6 @@ OC.L10N.register( "Show hidden files" : "Zobrazit skryté soubory", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Použijte tuto adresu pro <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">přístup ke svým Souborům přes WebDAV</a>", - "Uploading @" : "Nahrávám @", "No files in here" : "Žádné soubory", "Upload some content or sync with your devices!" : "Nahrajte nějaký obsah nebo synchronizujte se svými přístroji!", "No entries found in this folder" : "V tomto adresáři nebylo nic nalezeno", diff --git a/apps/files/l10n/cs.json b/apps/files/l10n/cs.json index ed7dfac05e0..b48c6610553 100644 --- a/apps/files/l10n/cs.json +++ b/apps/files/l10n/cs.json @@ -14,7 +14,6 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Není dostatek místa pro uložení, velikost souboru je {size1}, zbývá pouze {size2}", "Target folder \"{dir}\" does not exist any more" : "Cílový adresář \"{dir}\" již neexistuje", "Not enough free space" : "Nedostatek volného prostoru", - "Uploading …" : "Nahrávám...", "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} z {totalSize} ({bitrate})", "Actions" : "Činnosti", @@ -121,7 +120,6 @@ "Show hidden files" : "Zobrazit skryté soubory", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Použijte tuto adresu pro <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">přístup ke svým Souborům přes WebDAV</a>", - "Uploading @" : "Nahrávám @", "No files in here" : "Žádné soubory", "Upload some content or sync with your devices!" : "Nahrajte nějaký obsah nebo synchronizujte se svými přístroji!", "No entries found in this folder" : "V tomto adresáři nebylo nic nalezeno", diff --git a/apps/files/l10n/da.js b/apps/files/l10n/da.js index b8f4515cf74..ee70b6a15cd 100644 --- a/apps/files/l10n/da.js +++ b/apps/files/l10n/da.js @@ -16,7 +16,7 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Der er ikke tilstrækkeligt friplads. Du uplaoder {size1} men der er kun {size2} tilbage", "Target folder \"{dir}\" does not exist any more" : "Destinations mappen \"{dir}\" eksistere ikke længere", "Not enough free space" : "Ikke nok fri plads", - "Uploading …" : "Uploader...", + "Uploading …" : "Uploader ...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} af {totalSize} ({bitrate})", "Actions" : "Handlinger", @@ -77,6 +77,9 @@ OC.L10N.register( "Favorite" : "Foretrukken", "New folder" : "Ny Mappe", "Upload file" : "Upload fil", + "Not favorited" : "Ingen foretrukne", + "Remove from favorites" : "Fjern fra favoritter", + "Add to favorites" : "Tilføj til favoritter", "An error occurred while trying to update the tags" : "Der opstod en fejl under forsøg på at opdatere mærkerne", "Added to favorites" : "Tilføjet til favoritter", "Removed from favorites" : "Fjernet fra favoritter", @@ -123,7 +126,6 @@ OC.L10N.register( "Show hidden files" : "Vis skjulte filer", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Brug denne adresse til at <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">tilgå dine filer via WebDAV</a>", - "Uploading @" : "Uploader @", "Cancel upload" : "Annuller upload ", "No files in here" : "Her er ingen filer", "Upload some content or sync with your devices!" : "Overfør indhold eller synkronisér med dine enheder!", diff --git a/apps/files/l10n/da.json b/apps/files/l10n/da.json index 7e5e35de51e..aed0a9b9715 100644 --- a/apps/files/l10n/da.json +++ b/apps/files/l10n/da.json @@ -14,7 +14,7 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Der er ikke tilstrækkeligt friplads. Du uplaoder {size1} men der er kun {size2} tilbage", "Target folder \"{dir}\" does not exist any more" : "Destinations mappen \"{dir}\" eksistere ikke længere", "Not enough free space" : "Ikke nok fri plads", - "Uploading …" : "Uploader...", + "Uploading …" : "Uploader ...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} af {totalSize} ({bitrate})", "Actions" : "Handlinger", @@ -75,6 +75,9 @@ "Favorite" : "Foretrukken", "New folder" : "Ny Mappe", "Upload file" : "Upload fil", + "Not favorited" : "Ingen foretrukne", + "Remove from favorites" : "Fjern fra favoritter", + "Add to favorites" : "Tilføj til favoritter", "An error occurred while trying to update the tags" : "Der opstod en fejl under forsøg på at opdatere mærkerne", "Added to favorites" : "Tilføjet til favoritter", "Removed from favorites" : "Fjernet fra favoritter", @@ -121,7 +124,6 @@ "Show hidden files" : "Vis skjulte filer", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Brug denne adresse til at <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">tilgå dine filer via WebDAV</a>", - "Uploading @" : "Uploader @", "Cancel upload" : "Annuller upload ", "No files in here" : "Her er ingen filer", "Upload some content or sync with your devices!" : "Overfør indhold eller synkronisér med dine enheder!", diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js index 166166316ab..ca73ab73357 100644 --- a/apps/files/l10n/de.js +++ b/apps/files/l10n/de.js @@ -16,7 +16,7 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nicht genügend freier Speicherplatz, Du möchtest{size1} hochladen, es sind jedoch nur noch {size2} verfügbar.", "Target folder \"{dir}\" does not exist any more" : "Ziel-Verzeichnis \"{dir}\" existiert nicht mehr", "Not enough free space" : "Nicht genügend freier Speicherplatz", - "Uploading …" : "Lade hoch…", + "Uploading …" : "Lade hoch...", "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} von {totalSize} ({bitrate})", "Actions" : "Aktionen", @@ -77,6 +77,9 @@ OC.L10N.register( "Favorite" : "Favorit", "New folder" : "Neuer Ordner", "Upload file" : "Datei hochladen", + "Not favorited" : "Nicht favorisiert", + "Remove from favorites" : "Von Favoriten entfernen", + "Add to favorites" : "Zu den Favoriten hinzufügen", "An error occurred while trying to update the tags" : "Es ist ein Fehler beim Aktualisieren der Tags aufgetreten", "Added to favorites" : "Zu den Favoriten hinzugefügt", "Removed from favorites" : "Aus den Favoriten entfernt", @@ -123,7 +126,6 @@ OC.L10N.register( "Show hidden files" : "Versteckte Dateien anzeigen", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Diese Adresse benutzen, um <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">über WebDAV auf Deine Dateien zuzugreifen</a>", - "Uploading @" : "Lade @ hoch", "Cancel upload" : "Hochladen abbrechen", "No files in here" : "Keine Dateien vorhanden", "Upload some content or sync with your devices!" : "Inhalte hochladen oder mit deinen Geräten synchronisieren!", diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json index f520dc86f13..0fa4becb1a9 100644 --- a/apps/files/l10n/de.json +++ b/apps/files/l10n/de.json @@ -14,7 +14,7 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nicht genügend freier Speicherplatz, Du möchtest{size1} hochladen, es sind jedoch nur noch {size2} verfügbar.", "Target folder \"{dir}\" does not exist any more" : "Ziel-Verzeichnis \"{dir}\" existiert nicht mehr", "Not enough free space" : "Nicht genügend freier Speicherplatz", - "Uploading …" : "Lade hoch…", + "Uploading …" : "Lade hoch...", "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} von {totalSize} ({bitrate})", "Actions" : "Aktionen", @@ -75,6 +75,9 @@ "Favorite" : "Favorit", "New folder" : "Neuer Ordner", "Upload file" : "Datei hochladen", + "Not favorited" : "Nicht favorisiert", + "Remove from favorites" : "Von Favoriten entfernen", + "Add to favorites" : "Zu den Favoriten hinzufügen", "An error occurred while trying to update the tags" : "Es ist ein Fehler beim Aktualisieren der Tags aufgetreten", "Added to favorites" : "Zu den Favoriten hinzugefügt", "Removed from favorites" : "Aus den Favoriten entfernt", @@ -121,7 +124,6 @@ "Show hidden files" : "Versteckte Dateien anzeigen", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Diese Adresse benutzen, um <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">über WebDAV auf Deine Dateien zuzugreifen</a>", - "Uploading @" : "Lade @ hoch", "Cancel upload" : "Hochladen abbrechen", "No files in here" : "Keine Dateien vorhanden", "Upload some content or sync with your devices!" : "Inhalte hochladen oder mit deinen Geräten synchronisieren!", diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js index 91bf5dba7a5..12eec37f13c 100644 --- a/apps/files/l10n/de_DE.js +++ b/apps/files/l10n/de_DE.js @@ -16,7 +16,7 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nicht genügend freier Speicherplatz, Sie möchten {size1} hochladen, es sind jedoch nur noch {size2} verfügbar.", "Target folder \"{dir}\" does not exist any more" : "Ziel-Verzeichnis \"{dir}\" existiert nicht mehr", "Not enough free space" : "Nicht genügend freier Speicherplatz", - "Uploading …" : "Lade hoch…", + "Uploading …" : "Lade hoch...", "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} von {totalSize} ({bitrate})", "Actions" : "Aktionen", @@ -77,6 +77,9 @@ OC.L10N.register( "Favorite" : "Favorit", "New folder" : "Neuer Ordner", "Upload file" : "Datei hochladen", + "Not favorited" : "Nicht favorisiert", + "Remove from favorites" : "Von Favoriten entfernen", + "Add to favorites" : "Zu den Favoriten hinzufügen", "An error occurred while trying to update the tags" : "Es ist ein Fehler beim Aktualisieren der Tags aufgetreten", "Added to favorites" : "Zu den Favoriten hinzugefügt", "Removed from favorites" : "Aus den Favoriten entfernt", @@ -123,7 +126,6 @@ OC.L10N.register( "Show hidden files" : "Versteckte Dateien anzeigen", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Benutzen Sie diese Adresse, um <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">via WebDAV auf Ihre Dateien zuzugreifen</a>", - "Uploading @" : "Lade @ hoch", "Cancel upload" : "Hochladen abbrechen", "No files in here" : "Keine Dateien vorhanden", "Upload some content or sync with your devices!" : "Laden Sie Inhalte hoch oder synchronisieren Sie mit Ihren Geräten!", diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json index dcb310ae707..346562edbe9 100644 --- a/apps/files/l10n/de_DE.json +++ b/apps/files/l10n/de_DE.json @@ -14,7 +14,7 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nicht genügend freier Speicherplatz, Sie möchten {size1} hochladen, es sind jedoch nur noch {size2} verfügbar.", "Target folder \"{dir}\" does not exist any more" : "Ziel-Verzeichnis \"{dir}\" existiert nicht mehr", "Not enough free space" : "Nicht genügend freier Speicherplatz", - "Uploading …" : "Lade hoch…", + "Uploading …" : "Lade hoch...", "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} von {totalSize} ({bitrate})", "Actions" : "Aktionen", @@ -75,6 +75,9 @@ "Favorite" : "Favorit", "New folder" : "Neuer Ordner", "Upload file" : "Datei hochladen", + "Not favorited" : "Nicht favorisiert", + "Remove from favorites" : "Von Favoriten entfernen", + "Add to favorites" : "Zu den Favoriten hinzufügen", "An error occurred while trying to update the tags" : "Es ist ein Fehler beim Aktualisieren der Tags aufgetreten", "Added to favorites" : "Zu den Favoriten hinzugefügt", "Removed from favorites" : "Aus den Favoriten entfernt", @@ -121,7 +124,6 @@ "Show hidden files" : "Versteckte Dateien anzeigen", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Benutzen Sie diese Adresse, um <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">via WebDAV auf Ihre Dateien zuzugreifen</a>", - "Uploading @" : "Lade @ hoch", "Cancel upload" : "Hochladen abbrechen", "No files in here" : "Keine Dateien vorhanden", "Upload some content or sync with your devices!" : "Laden Sie Inhalte hoch oder synchronisieren Sie mit Ihren Geräten!", diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js index b7a8dca505d..89a1bdda6b9 100644 --- a/apps/files/l10n/en_GB.js +++ b/apps/files/l10n/en_GB.js @@ -77,6 +77,9 @@ OC.L10N.register( "Favorite" : "Favourite", "New folder" : "New folder", "Upload file" : "Upload file", + "Not favorited" : "Not favourited", + "Remove from favorites" : "Remove from favourites", + "Add to favorites" : "Add to favourites", "An error occurred while trying to update the tags" : "An error occurred whilst trying to update the tags", "Added to favorites" : "Added to favourites", "Removed from favorites" : "Removed from favourites", @@ -123,7 +126,6 @@ OC.L10N.register( "Show hidden files" : "Show hidden files", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>", - "Uploading @" : "Uploading @", "Cancel upload" : "Cancel upload", "No files in here" : "No files in here", "Upload some content or sync with your devices!" : "Upload some content or sync with your devices!", diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json index 0d93f91e4cc..f0c1aff46d3 100644 --- a/apps/files/l10n/en_GB.json +++ b/apps/files/l10n/en_GB.json @@ -75,6 +75,9 @@ "Favorite" : "Favourite", "New folder" : "New folder", "Upload file" : "Upload file", + "Not favorited" : "Not favourited", + "Remove from favorites" : "Remove from favourites", + "Add to favorites" : "Add to favourites", "An error occurred while trying to update the tags" : "An error occurred whilst trying to update the tags", "Added to favorites" : "Added to favourites", "Removed from favorites" : "Removed from favourites", @@ -121,7 +124,6 @@ "Show hidden files" : "Show hidden files", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>", - "Uploading @" : "Uploading @", "Cancel upload" : "Cancel upload", "No files in here" : "No files in here", "Upload some content or sync with your devices!" : "Upload some content or sync with your devices!", diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js index cc6a73fdf7f..40955586567 100644 --- a/apps/files/l10n/es.js +++ b/apps/files/l10n/es.js @@ -77,6 +77,9 @@ OC.L10N.register( "Favorite" : "Favorito", "New folder" : "Nueva carpeta", "Upload file" : "Subir archivo", + "Not favorited" : "No marcado como favorito", + "Remove from favorites" : "Eliminar de favoritos", + "Add to favorites" : "Añadir a favoritos", "An error occurred while trying to update the tags" : "Se produjo un error al tratar de actualizar las etiquetas", "Added to favorites" : "Agregado a favoritos", "Removed from favorites" : "Borrado de favoritos", @@ -123,7 +126,6 @@ OC.L10N.register( "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Usa esta dirección para <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">acceder tus archivos mediante WebDAV</a>", - "Uploading @" : "Subiendo a ", "Cancel upload" : "Cancelar subida", "No files in here" : "Aquí no hay archivos", "Upload some content or sync with your devices!" : "¡Suba contenidos o sincronice sus dispositivos!", diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json index 6f5cca13a7a..76ca1811364 100644 --- a/apps/files/l10n/es.json +++ b/apps/files/l10n/es.json @@ -75,6 +75,9 @@ "Favorite" : "Favorito", "New folder" : "Nueva carpeta", "Upload file" : "Subir archivo", + "Not favorited" : "No marcado como favorito", + "Remove from favorites" : "Eliminar de favoritos", + "Add to favorites" : "Añadir a favoritos", "An error occurred while trying to update the tags" : "Se produjo un error al tratar de actualizar las etiquetas", "Added to favorites" : "Agregado a favoritos", "Removed from favorites" : "Borrado de favoritos", @@ -121,7 +124,6 @@ "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Usa esta dirección para <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">acceder tus archivos mediante WebDAV</a>", - "Uploading @" : "Subiendo a ", "Cancel upload" : "Cancelar subida", "No files in here" : "Aquí no hay archivos", "Upload some content or sync with your devices!" : "¡Suba contenidos o sincronice sus dispositivos!", diff --git a/apps/files/l10n/es_CO.js b/apps/files/l10n/es_CO.js new file mode 100644 index 00000000000..4f242d15a7a --- /dev/null +++ b/apps/files/l10n/es_CO.js @@ -0,0 +1,160 @@ +OC.L10N.register( + "files", + { + "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ", + "Storage invalid" : "El almacenamiento es inválido", + "Unknown error" : "Se presentó un error desconocido", + "All files" : "Todos los archivos", + "Recent" : "Reciente", + "File could not be found" : "No fue posible encontrar el archivo", + "Home" : "Inicio", + "Close" : "Cerrar", + "Favorites" : "Favoritos", + "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"", + "Upload cancelled." : "Carga cancelada.", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estas cargando {size1} pero sólo cuentas con {size2} disponible", + "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe", + "Not enough free space" : "No cuentas con suficiente espacio libre", + "…" : "...", + "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Actions" : "Acciones", + "Download" : "Descargar", + "Rename" : "Renombrar", + "Move or copy" : "Mover o copiar", + "Target folder" : "Carpeta destino", + "Delete" : "Borrar", + "Disconnect storage" : "Desconectar almacenamiento", + "Unshare" : "Dejar de compartir", + "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"", + "Files" : "Archivos", + "Details" : "Detalles", + "Select" : "Seleccionar", + "Pending" : "Pendiente", + "Unable to determine date" : "No fue posible determinar la fecha", + "This operation is forbidden" : "Esta operación está prohibida", + "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador", + "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe", + "Could not move \"{file}\"" : "No fue posible mover \"{file}\"", + "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe", + "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"", + "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}", + "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}", + "{newName} already exists" : "{newName} ya existe", + "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe", + "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ", + "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"", + "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"", + "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe", + "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe", + "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".", + "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}", + "Name" : "Nombre", + "Size" : "Tamaño", + "Modified" : "Modificado", + "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas"], + "_%n file_::_%n files_" : ["%n archivo","%n archivos"], + "{dirs} and {files}" : "{dirs} y {files}", + "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos"], + "You don’t have permission to upload or create files here" : "No cuentas con los permisos para cargar o crear archivos aquí", + "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos"], + "New" : "Nuevo", + "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ", + "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", + "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido", + "Storage of {owner} is full, files can not be updated or synced anymore!" : "El espacio de {owner} está lleno. ¡Los archivos ya no se pueden actualizar o sincronizar!", + "Your storage is full, files can not be updated or synced anymore!" : "Tu espacio está lleno. ¡Los archivos ya no se pueden actualizar o sincronizar!", + "Storage of {owner} is almost full ({usedSpacePercent}%)" : "El espacio de {owner} está casi lleno ({usedSpacePercent}%)", + "Your storage is almost full ({usedSpacePercent}%)" : "Tu espacio está casi lleno ({usedSpacePercent}%)", + "_matches '{filter}'_::_match '{filter}'_" : ["coincide '{filter}'","coincidencia '{filter}'"], + "View in folder" : "Ver en la carpeta", + "Copied!" : "¡Copiado!", + "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)", + "Path" : "Ruta", + "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], + "Favorited" : "Marcado como favorito", + "Favorite" : "Favorito", + "New folder" : "Carpeta nueva", + "Upload file" : "Cargar archivo", + "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta", + "Added to favorites" : "Agregado a los favoritos", + "Removed from favorites" : "Eliminado de los favoritos", + "You added {file} to your favorites" : "Agregaste {file} a tus favoritos", + "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos", + "File changes" : "Cambios al archivo", + "Created by {user}" : "Creado por {user}", + "Changed by {user}" : "Cambiado por {user}", + "Deleted by {user}" : "Borrado por {user}", + "Restored by {user}" : "Restaurado por {user}", + "Renamed by {user}" : "Renombrado por {user}", + "Moved by {user}" : "Movido por {user}", + "\"remote user\"" : "\"usuario remoto\"", + "You created {file}" : "Creaste {file}", + "{user} created {file}" : "{user} creó {file}", + "{file} was created in a public folder" : "{file} fue creado en una carpeta pública", + "You changed {file}" : "Cambiaste {file}", + "{user} changed {file}" : "{user} cambió {file}", + "You deleted {file}" : "Borraste {file}", + "{user} deleted {file}" : "{user} borró {file}", + "You restored {file}" : "Restauraste {file}", + "{user} restored {file}" : "{user} restauró {file}", + "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}", + "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}", + "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}", + "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}", + "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>", + "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "Un archivo o carpeta ha sido <strong>cambiado </strong> o <strong>renombrado</strong>", + "A new file or folder has been <strong>created</strong>" : "Un archivo o carpeta ha sido <strong>creado</strong>", + "A file or folder has been <strong>deleted</strong>" : "Un archivo o carpeta ha sido <strong>borrado</strong>", + "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limita las notificaciones de la creación y cambios a tus <strong>archivos favoritos</strong> <em>(sólo flujo)</em>", + "A file or folder has been <strong>restored</strong>" : "Un archivo o carpeta ha sido <strong>restaurado</strong>", + "Unlimited" : "Ilimitado", + "Upload (max. %s)" : "Cargar (max. %s)", + "File handling" : "Manejo de archivos", + "Maximum upload size" : "Tamaño máximo de carga", + "max. possible: " : "max. posible:", + "Save" : "Guardar", + "With PHP-FPM it might take 5 minutes for changes to be applied." : "Con PHP-FPM podría tomar 5 minutos para que los cambios apliquen. ", + "Missing permissions to edit from here." : "Faltan privilegios para editar desde aquí. ", + "%s of %s used" : "%s de %s usado", + "%s used" : "%s usado", + "Settings" : "Configuraciones ", + "Show hidden files" : "Mostrar archivos ocultos", + "WebDAV" : "WebDAV", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Usa esta dirección para <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">acceder tus archivos vía WebDAV</a>", + "Cancel upload" : "Cancelar carga", + "No files in here" : "No hay archivos aquí", + "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", + "No entries found in this folder" : "No se encontraron elementos en esta carpeta", + "Select all" : "Seleccionar todo", + "Upload too large" : "La carga es demasido grande", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.", + "No favorites yet" : "Aún no hay favoritos", + "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ", + "Shared with you" : "Compartido con usted", + "Shared with others" : "Compartido con otros", + "Shared by link" : "Compartido por liga", + "Tags" : "Etiquetas", + "Deleted files" : "Archivos borrados", + "Text file" : "Archivo de texto", + "New text file.txt" : "Nuevo ArchivoDeTexto.txt", + "Uploading..." : "Cargando...", + "..." : "...", + "_{hours}:{minutes}:{seconds} hour left_::_{hours}:{minutes}:{seconds} hours left_" : ["falta {hours}:{minutes}:{seconds} hora","faltan {hours}:{minutes}:{seconds} horas"], + "{hours}:{minutes}h" : "{hours}:{minutes}h", + "_{minutes}:{seconds} minute left_::_{minutes}:{seconds} minutes left_" : ["falta {minutes}:{seconds} minuto","faltan {minutes}:{seconds} minutos"], + "{minutes}:{seconds}m" : "{minutes}:{seconds}m", + "_{seconds} second left_::_{seconds} seconds left_" : ["falta {seconds} segundo","faltan {seconds} segundos"], + "{seconds}s" : "{seconds}s", + "Any moment now..." : "En cualquier momento...", + "Soon..." : "Pronto...", + "File upload is in progress. Leaving the page now will cancel the upload." : "La carga del archivo está en curso. El salir de la página ahora, la cancelará. ", + "Move" : "Mover", + "Copy local link" : "Copiar liga local", + "Folder" : "Carpeta", + "Upload" : "Cargar", + "A new file or folder has been <strong>deleted</strong>" : "Un archivo o carpeta ha sido <strong>borrado</strong>", + "A new file or folder has been <strong>restored</strong>" : "Un archivo o carpeta ha sido <strong>restaurado</strong>", + "No favorites" : "No hay favoritos" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_CO.json b/apps/files/l10n/es_CO.json new file mode 100644 index 00000000000..284e43b4ab6 --- /dev/null +++ b/apps/files/l10n/es_CO.json @@ -0,0 +1,158 @@ +{ "translations": { + "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ", + "Storage invalid" : "El almacenamiento es inválido", + "Unknown error" : "Se presentó un error desconocido", + "All files" : "Todos los archivos", + "Recent" : "Reciente", + "File could not be found" : "No fue posible encontrar el archivo", + "Home" : "Inicio", + "Close" : "Cerrar", + "Favorites" : "Favoritos", + "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"", + "Upload cancelled." : "Carga cancelada.", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estas cargando {size1} pero sólo cuentas con {size2} disponible", + "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe", + "Not enough free space" : "No cuentas con suficiente espacio libre", + "…" : "...", + "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Actions" : "Acciones", + "Download" : "Descargar", + "Rename" : "Renombrar", + "Move or copy" : "Mover o copiar", + "Target folder" : "Carpeta destino", + "Delete" : "Borrar", + "Disconnect storage" : "Desconectar almacenamiento", + "Unshare" : "Dejar de compartir", + "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"", + "Files" : "Archivos", + "Details" : "Detalles", + "Select" : "Seleccionar", + "Pending" : "Pendiente", + "Unable to determine date" : "No fue posible determinar la fecha", + "This operation is forbidden" : "Esta operación está prohibida", + "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador", + "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe", + "Could not move \"{file}\"" : "No fue posible mover \"{file}\"", + "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe", + "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"", + "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}", + "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}", + "{newName} already exists" : "{newName} ya existe", + "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe", + "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ", + "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"", + "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"", + "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe", + "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe", + "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".", + "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}", + "Name" : "Nombre", + "Size" : "Tamaño", + "Modified" : "Modificado", + "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas"], + "_%n file_::_%n files_" : ["%n archivo","%n archivos"], + "{dirs} and {files}" : "{dirs} y {files}", + "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos"], + "You don’t have permission to upload or create files here" : "No cuentas con los permisos para cargar o crear archivos aquí", + "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos"], + "New" : "Nuevo", + "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ", + "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", + "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido", + "Storage of {owner} is full, files can not be updated or synced anymore!" : "El espacio de {owner} está lleno. ¡Los archivos ya no se pueden actualizar o sincronizar!", + "Your storage is full, files can not be updated or synced anymore!" : "Tu espacio está lleno. ¡Los archivos ya no se pueden actualizar o sincronizar!", + "Storage of {owner} is almost full ({usedSpacePercent}%)" : "El espacio de {owner} está casi lleno ({usedSpacePercent}%)", + "Your storage is almost full ({usedSpacePercent}%)" : "Tu espacio está casi lleno ({usedSpacePercent}%)", + "_matches '{filter}'_::_match '{filter}'_" : ["coincide '{filter}'","coincidencia '{filter}'"], + "View in folder" : "Ver en la carpeta", + "Copied!" : "¡Copiado!", + "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)", + "Path" : "Ruta", + "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], + "Favorited" : "Marcado como favorito", + "Favorite" : "Favorito", + "New folder" : "Carpeta nueva", + "Upload file" : "Cargar archivo", + "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta", + "Added to favorites" : "Agregado a los favoritos", + "Removed from favorites" : "Eliminado de los favoritos", + "You added {file} to your favorites" : "Agregaste {file} a tus favoritos", + "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos", + "File changes" : "Cambios al archivo", + "Created by {user}" : "Creado por {user}", + "Changed by {user}" : "Cambiado por {user}", + "Deleted by {user}" : "Borrado por {user}", + "Restored by {user}" : "Restaurado por {user}", + "Renamed by {user}" : "Renombrado por {user}", + "Moved by {user}" : "Movido por {user}", + "\"remote user\"" : "\"usuario remoto\"", + "You created {file}" : "Creaste {file}", + "{user} created {file}" : "{user} creó {file}", + "{file} was created in a public folder" : "{file} fue creado en una carpeta pública", + "You changed {file}" : "Cambiaste {file}", + "{user} changed {file}" : "{user} cambió {file}", + "You deleted {file}" : "Borraste {file}", + "{user} deleted {file}" : "{user} borró {file}", + "You restored {file}" : "Restauraste {file}", + "{user} restored {file}" : "{user} restauró {file}", + "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}", + "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}", + "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}", + "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}", + "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>", + "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "Un archivo o carpeta ha sido <strong>cambiado </strong> o <strong>renombrado</strong>", + "A new file or folder has been <strong>created</strong>" : "Un archivo o carpeta ha sido <strong>creado</strong>", + "A file or folder has been <strong>deleted</strong>" : "Un archivo o carpeta ha sido <strong>borrado</strong>", + "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limita las notificaciones de la creación y cambios a tus <strong>archivos favoritos</strong> <em>(sólo flujo)</em>", + "A file or folder has been <strong>restored</strong>" : "Un archivo o carpeta ha sido <strong>restaurado</strong>", + "Unlimited" : "Ilimitado", + "Upload (max. %s)" : "Cargar (max. %s)", + "File handling" : "Manejo de archivos", + "Maximum upload size" : "Tamaño máximo de carga", + "max. possible: " : "max. posible:", + "Save" : "Guardar", + "With PHP-FPM it might take 5 minutes for changes to be applied." : "Con PHP-FPM podría tomar 5 minutos para que los cambios apliquen. ", + "Missing permissions to edit from here." : "Faltan privilegios para editar desde aquí. ", + "%s of %s used" : "%s de %s usado", + "%s used" : "%s usado", + "Settings" : "Configuraciones ", + "Show hidden files" : "Mostrar archivos ocultos", + "WebDAV" : "WebDAV", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Usa esta dirección para <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">acceder tus archivos vía WebDAV</a>", + "Cancel upload" : "Cancelar carga", + "No files in here" : "No hay archivos aquí", + "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", + "No entries found in this folder" : "No se encontraron elementos en esta carpeta", + "Select all" : "Seleccionar todo", + "Upload too large" : "La carga es demasido grande", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.", + "No favorites yet" : "Aún no hay favoritos", + "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ", + "Shared with you" : "Compartido con usted", + "Shared with others" : "Compartido con otros", + "Shared by link" : "Compartido por liga", + "Tags" : "Etiquetas", + "Deleted files" : "Archivos borrados", + "Text file" : "Archivo de texto", + "New text file.txt" : "Nuevo ArchivoDeTexto.txt", + "Uploading..." : "Cargando...", + "..." : "...", + "_{hours}:{minutes}:{seconds} hour left_::_{hours}:{minutes}:{seconds} hours left_" : ["falta {hours}:{minutes}:{seconds} hora","faltan {hours}:{minutes}:{seconds} horas"], + "{hours}:{minutes}h" : "{hours}:{minutes}h", + "_{minutes}:{seconds} minute left_::_{minutes}:{seconds} minutes left_" : ["falta {minutes}:{seconds} minuto","faltan {minutes}:{seconds} minutos"], + "{minutes}:{seconds}m" : "{minutes}:{seconds}m", + "_{seconds} second left_::_{seconds} seconds left_" : ["falta {seconds} segundo","faltan {seconds} segundos"], + "{seconds}s" : "{seconds}s", + "Any moment now..." : "En cualquier momento...", + "Soon..." : "Pronto...", + "File upload is in progress. Leaving the page now will cancel the upload." : "La carga del archivo está en curso. El salir de la página ahora, la cancelará. ", + "Move" : "Mover", + "Copy local link" : "Copiar liga local", + "Folder" : "Carpeta", + "Upload" : "Cargar", + "A new file or folder has been <strong>deleted</strong>" : "Un archivo o carpeta ha sido <strong>borrado</strong>", + "A new file or folder has been <strong>restored</strong>" : "Un archivo o carpeta ha sido <strong>restaurado</strong>", + "No favorites" : "No hay favoritos" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/files/l10n/es_MX.js b/apps/files/l10n/es_MX.js index 2c4adea018e..4f242d15a7a 100644 --- a/apps/files/l10n/es_MX.js +++ b/apps/files/l10n/es_MX.js @@ -16,7 +16,6 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estas cargando {size1} pero sólo cuentas con {size2} disponible", "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe", "Not enough free space" : "No cuentas con suficiente espacio libre", - "Uploading …" : "Cargando ...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", "Actions" : "Acciones", @@ -123,7 +122,6 @@ OC.L10N.register( "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Usa esta dirección para <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">acceder tus archivos vía WebDAV</a>", - "Uploading @" : "Actualizando @", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_MX.json b/apps/files/l10n/es_MX.json index b783e8b08f5..284e43b4ab6 100644 --- a/apps/files/l10n/es_MX.json +++ b/apps/files/l10n/es_MX.json @@ -14,7 +14,6 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estas cargando {size1} pero sólo cuentas con {size2} disponible", "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe", "Not enough free space" : "No cuentas con suficiente espacio libre", - "Uploading …" : "Cargando ...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", "Actions" : "Acciones", @@ -121,7 +120,6 @@ "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Usa esta dirección para <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">acceder tus archivos vía WebDAV</a>", - "Uploading @" : "Actualizando @", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/et_EE.js b/apps/files/l10n/et_EE.js index 74b386761ca..ee01092fb64 100644 --- a/apps/files/l10n/et_EE.js +++ b/apps/files/l10n/et_EE.js @@ -16,7 +16,6 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Pole piisavalt vaba ruumi. Sa laadid üles {size1}, kuid ainult {size2} on saadaval.", "Target folder \"{dir}\" does not exist any more" : "Kausta \"{dir}\" pole enam olemas", "Not enough free space" : "Pole piisavalt vaba ruumi", - "Uploading …" : "Üleslaadminie ...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize}/{loadedSize} ({bitrate})", "Actions" : "Tegevused", @@ -118,7 +117,6 @@ OC.L10N.register( "Show hidden files" : "Näita peidetud faile", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Kasuta seda aadressi, et <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">oma failidele WebDAV kaudu ligi pääseda</a>", - "Uploading @" : "Üleslaadimine @", "No files in here" : "Siin ei ole faile", "Upload some content or sync with your devices!" : "Laadi sisu üles või süngi oma seadmetega!", "No entries found in this folder" : "Selles kaustast ei leitud kirjeid", diff --git a/apps/files/l10n/et_EE.json b/apps/files/l10n/et_EE.json index b1489a9a214..30af89aa3e3 100644 --- a/apps/files/l10n/et_EE.json +++ b/apps/files/l10n/et_EE.json @@ -14,7 +14,6 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Pole piisavalt vaba ruumi. Sa laadid üles {size1}, kuid ainult {size2} on saadaval.", "Target folder \"{dir}\" does not exist any more" : "Kausta \"{dir}\" pole enam olemas", "Not enough free space" : "Pole piisavalt vaba ruumi", - "Uploading …" : "Üleslaadminie ...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize}/{loadedSize} ({bitrate})", "Actions" : "Tegevused", @@ -116,7 +115,6 @@ "Show hidden files" : "Näita peidetud faile", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Kasuta seda aadressi, et <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">oma failidele WebDAV kaudu ligi pääseda</a>", - "Uploading @" : "Üleslaadimine @", "No files in here" : "Siin ei ole faile", "Upload some content or sync with your devices!" : "Laadi sisu üles või süngi oma seadmetega!", "No entries found in this folder" : "Selles kaustast ei leitud kirjeid", diff --git a/apps/files/l10n/eu.js b/apps/files/l10n/eu.js index 10777541bdd..af69bc93958 100644 --- a/apps/files/l10n/eu.js +++ b/apps/files/l10n/eu.js @@ -16,12 +16,13 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Ez dago leku nahikorik, zu {size1} igotzen ari zara baina bakarrik {size2} libre dago", "Target folder \"{dir}\" does not exist any more" : "\"{dir}\" karpeta ez du gehiago existitzen", "Not enough free space" : "Ez dago nahiko leku librea", - "Uploading …" : "Igotzen …", + "Uploading …" : "Igotzen...", "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} of {totalSize} ({bitrate})", "Actions" : "Ekintzak", "Download" : "Deskargatu", "Rename" : "Berrizendatu", + "Move or copy" : "Mugitu edo kopiatu", "Target folder" : "Xede karpeta", "Delete" : "Ezabatu", "Disconnect storage" : "Deskonektatu biltegia", @@ -36,6 +37,10 @@ OC.L10N.register( "This directory is unavailable, please check the logs or contact the administrator" : "Direktorio hau ez dago erabilgarri, begira itzazu erregistroa edo administratzailearekin harremanetan jarri", "Could not move \"{file}\", target exists" : "Ezin da \"{file}\" mugitu, helburuan existitzen da jadanik", "Could not move \"{file}\"" : "Ezin da mugitu \"{file}\"", + "Could not copy \"{file}\", target exists" : "Ezin da \"{file}\" kopiatu; helburuan existitzen da", + "Could not copy \"{file}\"" : "Ezin da \"{file}\" kopiatu", + "Copied {origin} inside {destination}" : "{origin} {destination} barruan kopiatu da", + "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} eta {nbfiles} beste fitxategiak {destination}-en kopiatu dira", "{newName} already exists" : "{newName} existitzen da dagoeneko", "Could not rename \"{fileName}\", it does not exist any more" : "Ezin izan da \"{fileName}\" berrizendatu, ez da existitzen", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{targetName}\" izena dagoeneko dago erabilita \"{dir}\" karpetan. Mesedez, beste bat aukeratu.", @@ -72,6 +77,9 @@ OC.L10N.register( "Favorite" : "Gogokoa", "New folder" : "Karpeta berria", "Upload file" : "Igo fitxategia", + "Not favorited" : "Ez da gogokoa", + "Remove from favorites" : "Gogokoetatik kenduta", + "Add to favorites" : "Gogokoetara gehitu", "An error occurred while trying to update the tags" : "Errore bat gertatu da etiketak eguneratzerakoan", "Added to favorites" : "Gogokoetan gehitu da", "Removed from favorites" : "Gogokoetatik kendu da", @@ -118,7 +126,7 @@ OC.L10N.register( "Show hidden files" : "Erakutsi ezkutuko fitxategiak", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Erabili helbide hau <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">WebDAV bidez zure fitxategietara sartzeko </a> ", - "Uploading @" : "Igotzen @", + "Cancel upload" : "Igoera bertan behera utzita", "No files in here" : "Ez dago fitxategirik hemen", "Upload some content or sync with your devices!" : "Igo edukiren bat edo sinkronizatu zure gailuekin!", "No entries found in this folder" : "Ez da sarrerarik aurkitu karpeta honetan", diff --git a/apps/files/l10n/eu.json b/apps/files/l10n/eu.json index d3dbffe1cd7..151eed97867 100644 --- a/apps/files/l10n/eu.json +++ b/apps/files/l10n/eu.json @@ -14,12 +14,13 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Ez dago leku nahikorik, zu {size1} igotzen ari zara baina bakarrik {size2} libre dago", "Target folder \"{dir}\" does not exist any more" : "\"{dir}\" karpeta ez du gehiago existitzen", "Not enough free space" : "Ez dago nahiko leku librea", - "Uploading …" : "Igotzen …", + "Uploading …" : "Igotzen...", "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} of {totalSize} ({bitrate})", "Actions" : "Ekintzak", "Download" : "Deskargatu", "Rename" : "Berrizendatu", + "Move or copy" : "Mugitu edo kopiatu", "Target folder" : "Xede karpeta", "Delete" : "Ezabatu", "Disconnect storage" : "Deskonektatu biltegia", @@ -34,6 +35,10 @@ "This directory is unavailable, please check the logs or contact the administrator" : "Direktorio hau ez dago erabilgarri, begira itzazu erregistroa edo administratzailearekin harremanetan jarri", "Could not move \"{file}\", target exists" : "Ezin da \"{file}\" mugitu, helburuan existitzen da jadanik", "Could not move \"{file}\"" : "Ezin da mugitu \"{file}\"", + "Could not copy \"{file}\", target exists" : "Ezin da \"{file}\" kopiatu; helburuan existitzen da", + "Could not copy \"{file}\"" : "Ezin da \"{file}\" kopiatu", + "Copied {origin} inside {destination}" : "{origin} {destination} barruan kopiatu da", + "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} eta {nbfiles} beste fitxategiak {destination}-en kopiatu dira", "{newName} already exists" : "{newName} existitzen da dagoeneko", "Could not rename \"{fileName}\", it does not exist any more" : "Ezin izan da \"{fileName}\" berrizendatu, ez da existitzen", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "\"{targetName}\" izena dagoeneko dago erabilita \"{dir}\" karpetan. Mesedez, beste bat aukeratu.", @@ -70,6 +75,9 @@ "Favorite" : "Gogokoa", "New folder" : "Karpeta berria", "Upload file" : "Igo fitxategia", + "Not favorited" : "Ez da gogokoa", + "Remove from favorites" : "Gogokoetatik kenduta", + "Add to favorites" : "Gogokoetara gehitu", "An error occurred while trying to update the tags" : "Errore bat gertatu da etiketak eguneratzerakoan", "Added to favorites" : "Gogokoetan gehitu da", "Removed from favorites" : "Gogokoetatik kendu da", @@ -116,7 +124,7 @@ "Show hidden files" : "Erakutsi ezkutuko fitxategiak", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Erabili helbide hau <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">WebDAV bidez zure fitxategietara sartzeko </a> ", - "Uploading @" : "Igotzen @", + "Cancel upload" : "Igoera bertan behera utzita", "No files in here" : "Ez dago fitxategirik hemen", "Upload some content or sync with your devices!" : "Igo edukiren bat edo sinkronizatu zure gailuekin!", "No entries found in this folder" : "Ez da sarrerarik aurkitu karpeta honetan", diff --git a/apps/files/l10n/fi.js b/apps/files/l10n/fi.js index 98e91b172a4..3edbbc8ba14 100644 --- a/apps/files/l10n/fi.js +++ b/apps/files/l10n/fi.js @@ -16,7 +16,6 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Ei riittävästi vapaata tilaa. Lähetyksesi koko on {size1}, mutta vain {size2} on jäljellä", "Target folder \"{dir}\" does not exist any more" : "Kohdekansio \"{dir}\" ei ole enää olemassa", "Not enough free space" : "Ei tarpeeksi vapaata tilaa", - "Uploading …" : "Lähetetään…", "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize}/{totalSize} ({bitrate})", "Actions" : "Toiminnot", @@ -121,7 +120,7 @@ OC.L10N.register( "Show hidden files" : "Näytä piilotetut tiedostot", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Käytä tätä osoitetta <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">päästäksesi tiedostoihisi WebDAV-liittymän kautta</a>", - "Uploading @" : "Lähetetään @", + "Cancel upload" : "Perus lähetys", "No files in here" : "Täällä ei ole tiedostoja", "Upload some content or sync with your devices!" : "Lähetä tiedostoja tai synkronoi sisältö laitteidesi kanssa!", "No entries found in this folder" : "Ei kohteita tässä kansiossa", diff --git a/apps/files/l10n/fi.json b/apps/files/l10n/fi.json index 3148ed7f29b..54fe53b85ab 100644 --- a/apps/files/l10n/fi.json +++ b/apps/files/l10n/fi.json @@ -14,7 +14,6 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Ei riittävästi vapaata tilaa. Lähetyksesi koko on {size1}, mutta vain {size2} on jäljellä", "Target folder \"{dir}\" does not exist any more" : "Kohdekansio \"{dir}\" ei ole enää olemassa", "Not enough free space" : "Ei tarpeeksi vapaata tilaa", - "Uploading …" : "Lähetetään…", "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize}/{totalSize} ({bitrate})", "Actions" : "Toiminnot", @@ -119,7 +118,7 @@ "Show hidden files" : "Näytä piilotetut tiedostot", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Käytä tätä osoitetta <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">päästäksesi tiedostoihisi WebDAV-liittymän kautta</a>", - "Uploading @" : "Lähetetään @", + "Cancel upload" : "Perus lähetys", "No files in here" : "Täällä ei ole tiedostoja", "Upload some content or sync with your devices!" : "Lähetä tiedostoja tai synkronoi sisältö laitteidesi kanssa!", "No entries found in this folder" : "Ei kohteita tässä kansiossa", diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js index 0111a0d02dc..9574a557cd3 100644 --- a/apps/files/l10n/fr.js +++ b/apps/files/l10n/fr.js @@ -16,7 +16,7 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Espace libre insuffisant : vous tentez d'envoyer {size1} mais seulement {size2} sont disponibles", "Target folder \"{dir}\" does not exist any more" : "Le dossier cible « {dir} » n'existe plus", "Not enough free space" : "Espace disponible insuffisant", - "Uploading …" : "Téléversement...", + "Uploading …" : "Téléversement en cours...", "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} sur {totalSize} ({bitrate})", "Actions" : "Actions", @@ -77,6 +77,8 @@ OC.L10N.register( "Favorite" : "Favoris", "New folder" : "Nouveau dossier", "Upload file" : "Téléverser un fichier", + "Remove from favorites" : "Retirer des favoris", + "Add to favorites" : "Ajouter aux favoris", "An error occurred while trying to update the tags" : "Une erreur est survenue lors de la mise à jour des étiquettes", "Added to favorites" : "Ajouté aux favoris", "Removed from favorites" : "Retiré des favoris", @@ -123,7 +125,6 @@ OC.L10N.register( "Show hidden files" : "Afficher les fichiers cachés", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Utilisez cette adresse pour <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">accéder à vos fichiers par WebDAV</a>", - "Uploading @" : "Envoi en cours @", "Cancel upload" : "Annuler le téléversement", "No files in here" : "Aucun fichier", "Upload some content or sync with your devices!" : "Déposez du contenu ou synchronisez vos appareils !", diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json index 0cc1f32c479..21074489eec 100644 --- a/apps/files/l10n/fr.json +++ b/apps/files/l10n/fr.json @@ -14,7 +14,7 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Espace libre insuffisant : vous tentez d'envoyer {size1} mais seulement {size2} sont disponibles", "Target folder \"{dir}\" does not exist any more" : "Le dossier cible « {dir} » n'existe plus", "Not enough free space" : "Espace disponible insuffisant", - "Uploading …" : "Téléversement...", + "Uploading …" : "Téléversement en cours...", "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} sur {totalSize} ({bitrate})", "Actions" : "Actions", @@ -75,6 +75,8 @@ "Favorite" : "Favoris", "New folder" : "Nouveau dossier", "Upload file" : "Téléverser un fichier", + "Remove from favorites" : "Retirer des favoris", + "Add to favorites" : "Ajouter aux favoris", "An error occurred while trying to update the tags" : "Une erreur est survenue lors de la mise à jour des étiquettes", "Added to favorites" : "Ajouté aux favoris", "Removed from favorites" : "Retiré des favoris", @@ -121,7 +123,6 @@ "Show hidden files" : "Afficher les fichiers cachés", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Utilisez cette adresse pour <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">accéder à vos fichiers par WebDAV</a>", - "Uploading @" : "Envoi en cours @", "Cancel upload" : "Annuler le téléversement", "No files in here" : "Aucun fichier", "Upload some content or sync with your devices!" : "Déposez du contenu ou synchronisez vos appareils !", diff --git a/apps/files/l10n/hu.js b/apps/files/l10n/hu.js index 694aeb1e614..0c770e4a1db 100644 --- a/apps/files/l10n/hu.js +++ b/apps/files/l10n/hu.js @@ -16,7 +16,7 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nincs elég szabad hely. A feltöltés mérete {size1}, de csak ennyi hely van: {size2}.", "Target folder \"{dir}\" does not exist any more" : "A cél mappa már nem létezik: \"{dir}\"", "Not enough free space" : "Nincs elég szabad hely", - "Uploading …" : "Feltöltés ...", + "Uploading …" : "Feltöltés...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} / {totalSize} ({bitrate})", "Actions" : "Műveletek", @@ -77,6 +77,9 @@ OC.L10N.register( "Favorite" : "Kedvenc", "New folder" : "Új mappa", "Upload file" : "Fájl feltöltés", + "Not favorited" : "Nincs a kedvencek között", + "Remove from favorites" : "Eltávolítás a kedvencekből", + "Add to favorites" : "Hozzáadás a kedvencekhez", "An error occurred while trying to update the tags" : "Hiba történt, miközben megpróbálta frissíteni a címkéket", "Added to favorites" : "Hozzáadva a kedvencekhez", "Removed from favorites" : "Eltávolítva a kedvencekből", @@ -123,7 +126,6 @@ OC.L10N.register( "Show hidden files" : "Rejtett fájlok megjelenítése", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Használja ezt a címet <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">a Fájlok eléréséhez WebDAV-on keresztül</a>.", - "Uploading @" : "Feltöltés @", "Cancel upload" : "Feltöltés megszakítása", "No files in here" : "Itt nincsenek fájlok", "Upload some content or sync with your devices!" : "Tölts fel néhány tartalmat, vagy szinkronizálj az eszközöddel!", diff --git a/apps/files/l10n/hu.json b/apps/files/l10n/hu.json index 9dc06fb48fd..9e7d724c06e 100644 --- a/apps/files/l10n/hu.json +++ b/apps/files/l10n/hu.json @@ -14,7 +14,7 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nincs elég szabad hely. A feltöltés mérete {size1}, de csak ennyi hely van: {size2}.", "Target folder \"{dir}\" does not exist any more" : "A cél mappa már nem létezik: \"{dir}\"", "Not enough free space" : "Nincs elég szabad hely", - "Uploading …" : "Feltöltés ...", + "Uploading …" : "Feltöltés...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} / {totalSize} ({bitrate})", "Actions" : "Műveletek", @@ -75,6 +75,9 @@ "Favorite" : "Kedvenc", "New folder" : "Új mappa", "Upload file" : "Fájl feltöltés", + "Not favorited" : "Nincs a kedvencek között", + "Remove from favorites" : "Eltávolítás a kedvencekből", + "Add to favorites" : "Hozzáadás a kedvencekhez", "An error occurred while trying to update the tags" : "Hiba történt, miközben megpróbálta frissíteni a címkéket", "Added to favorites" : "Hozzáadva a kedvencekhez", "Removed from favorites" : "Eltávolítva a kedvencekből", @@ -121,7 +124,6 @@ "Show hidden files" : "Rejtett fájlok megjelenítése", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Használja ezt a címet <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">a Fájlok eléréséhez WebDAV-on keresztül</a>.", - "Uploading @" : "Feltöltés @", "Cancel upload" : "Feltöltés megszakítása", "No files in here" : "Itt nincsenek fájlok", "Upload some content or sync with your devices!" : "Tölts fel néhány tartalmat, vagy szinkronizálj az eszközöddel!", diff --git a/apps/files/l10n/is.js b/apps/files/l10n/is.js index d1254091676..65256f1548f 100644 --- a/apps/files/l10n/is.js +++ b/apps/files/l10n/is.js @@ -77,6 +77,9 @@ OC.L10N.register( "Favorite" : "Eftirlæti", "New folder" : "Ný mappa", "Upload file" : "Senda inn skrá", + "Not favorited" : "Ekki í eftirlætum", + "Remove from favorites" : "Fjarlægja úr eftirlætum", + "Add to favorites" : "Bæta í eftirlæti", "An error occurred while trying to update the tags" : "Villa kom upp við að reyna að uppfæra merkin", "Added to favorites" : "Bætt í eftirlæti", "Removed from favorites" : "Fjarlægt úr eftirlætum", @@ -123,7 +126,7 @@ OC.L10N.register( "Show hidden files" : "Sýna faldar skrár", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Notaðu þetta vistfang til að <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">nálgast skrárnar þínar með WebDAV</a>", - "Uploading @" : "Sendi inn @", + "Cancel upload" : "Hætta við innsendingu", "No files in here" : "Engar skrár hér", "Upload some content or sync with your devices!" : "Sendu inn eitthvað efni eða samstilltu við tækin þín!", "No entries found in this folder" : "Engar skrár fundust í þessari möppu", diff --git a/apps/files/l10n/is.json b/apps/files/l10n/is.json index 80c56f26ce4..29b8d7eb79a 100644 --- a/apps/files/l10n/is.json +++ b/apps/files/l10n/is.json @@ -75,6 +75,9 @@ "Favorite" : "Eftirlæti", "New folder" : "Ný mappa", "Upload file" : "Senda inn skrá", + "Not favorited" : "Ekki í eftirlætum", + "Remove from favorites" : "Fjarlægja úr eftirlætum", + "Add to favorites" : "Bæta í eftirlæti", "An error occurred while trying to update the tags" : "Villa kom upp við að reyna að uppfæra merkin", "Added to favorites" : "Bætt í eftirlæti", "Removed from favorites" : "Fjarlægt úr eftirlætum", @@ -121,7 +124,7 @@ "Show hidden files" : "Sýna faldar skrár", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Notaðu þetta vistfang til að <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">nálgast skrárnar þínar með WebDAV</a>", - "Uploading @" : "Sendi inn @", + "Cancel upload" : "Hætta við innsendingu", "No files in here" : "Engar skrár hér", "Upload some content or sync with your devices!" : "Sendu inn eitthvað efni eða samstilltu við tækin þín!", "No entries found in this folder" : "Engar skrár fundust í þessari möppu", diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js index e4d742f9183..8b92a250be1 100644 --- a/apps/files/l10n/it.js +++ b/apps/files/l10n/it.js @@ -77,6 +77,9 @@ OC.L10N.register( "Favorite" : "Preferito", "New folder" : "Nuova cartella", "Upload file" : "Carica file", + "Not favorited" : "Non preferito", + "Remove from favorites" : "Rimuovi dai preferiti", + "Add to favorites" : "Aggiungi ai preferiti", "An error occurred while trying to update the tags" : "Si è verificato un errore durante il tentativo di aggiornare le etichette", "Added to favorites" : "Aggiunto ai preferiti", "Removed from favorites" : "Rimosso dai preferiti", @@ -123,7 +126,6 @@ OC.L10N.register( "Show hidden files" : "Mostra i file nascosti", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Utilizza questo indirizzo per <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">accedere ai tuoi file con WebDAV</a>", - "Uploading @" : "Caricamento @", "Cancel upload" : "Annulla caricamento", "No files in here" : "Qui non c'è alcun file", "Upload some content or sync with your devices!" : "Carica alcuni contenuti o sincronizza con i tuoi dispositivi!", diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json index 3a2e5425646..53d0f106fa5 100644 --- a/apps/files/l10n/it.json +++ b/apps/files/l10n/it.json @@ -75,6 +75,9 @@ "Favorite" : "Preferito", "New folder" : "Nuova cartella", "Upload file" : "Carica file", + "Not favorited" : "Non preferito", + "Remove from favorites" : "Rimuovi dai preferiti", + "Add to favorites" : "Aggiungi ai preferiti", "An error occurred while trying to update the tags" : "Si è verificato un errore durante il tentativo di aggiornare le etichette", "Added to favorites" : "Aggiunto ai preferiti", "Removed from favorites" : "Rimosso dai preferiti", @@ -121,7 +124,6 @@ "Show hidden files" : "Mostra i file nascosti", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Utilizza questo indirizzo per <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">accedere ai tuoi file con WebDAV</a>", - "Uploading @" : "Caricamento @", "Cancel upload" : "Annulla caricamento", "No files in here" : "Qui non c'è alcun file", "Upload some content or sync with your devices!" : "Carica alcuni contenuti o sincronizza con i tuoi dispositivi!", diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js index 41c1256e8da..dd4b96aaf3a 100644 --- a/apps/files/l10n/ja.js +++ b/apps/files/l10n/ja.js @@ -16,7 +16,6 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。", "Target folder \"{dir}\" does not exist any more" : "対象フォルダー \"{dir}\" がもう存在しません", "Not enough free space" : "十分な空き容量がありません", - "Uploading …" : "アップロード中...", "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})", "Actions" : "アクション", "Download" : "ダウンロード", diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json index 9112fb9bb13..58f16fa2c23 100644 --- a/apps/files/l10n/ja.json +++ b/apps/files/l10n/ja.json @@ -14,7 +14,6 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "空き容量が十分でなく、 {size1} をアップロードしていますが、 {size2} しか残っていません。", "Target folder \"{dir}\" does not exist any more" : "対象フォルダー \"{dir}\" がもう存在しません", "Not enough free space" : "十分な空き容量がありません", - "Uploading …" : "アップロード中...", "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中 {loadedSize} ({bitrate})", "Actions" : "アクション", "Download" : "ダウンロード", diff --git a/apps/files/l10n/lt_LT.js b/apps/files/l10n/lt_LT.js index 2395bad8d7b..5910d8e9e52 100644 --- a/apps/files/l10n/lt_LT.js +++ b/apps/files/l10n/lt_LT.js @@ -16,7 +16,6 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nepakanka laisvos vietos. Jūs bandote įkelti {size1} dydžio bylą, bet liko tik {size2} vietos", "Target folder \"{dir}\" does not exist any more" : "Paskirties aplanko \"{dir}\" daugiau nebėra", "Not enough free space" : "Trūksta laisvos vietos", - "Uploading …" : "Įkeliama ...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} iš {totalSize} ({bitrate})", "Actions" : "Veiksmai", @@ -118,7 +117,6 @@ OC.L10N.register( "Show hidden files" : "Rodyti paslėptus failus", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Naudokite šį adresą <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\"> norėdami pasiekti failus per WebDAV</a>", - "Uploading @" : "Įkeliama @", "No files in here" : "Čia nėra failų", "Upload some content or sync with your devices!" : "Įkelkite kokį nors turinį, arba sinchronizuokite su savo įrenginiais!", "No entries found in this folder" : "Nerasta įrašų šiame aplanke", diff --git a/apps/files/l10n/lt_LT.json b/apps/files/l10n/lt_LT.json index d2d320380d1..c8d94929051 100644 --- a/apps/files/l10n/lt_LT.json +++ b/apps/files/l10n/lt_LT.json @@ -14,7 +14,6 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nepakanka laisvos vietos. Jūs bandote įkelti {size1} dydžio bylą, bet liko tik {size2} vietos", "Target folder \"{dir}\" does not exist any more" : "Paskirties aplanko \"{dir}\" daugiau nebėra", "Not enough free space" : "Trūksta laisvos vietos", - "Uploading …" : "Įkeliama ...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} iš {totalSize} ({bitrate})", "Actions" : "Veiksmai", @@ -116,7 +115,6 @@ "Show hidden files" : "Rodyti paslėptus failus", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Naudokite šį adresą <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\"> norėdami pasiekti failus per WebDAV</a>", - "Uploading @" : "Įkeliama @", "No files in here" : "Čia nėra failų", "Upload some content or sync with your devices!" : "Įkelkite kokį nors turinį, arba sinchronizuokite su savo įrenginiais!", "No entries found in this folder" : "Nerasta įrašų šiame aplanke", diff --git a/apps/files/l10n/nb.js b/apps/files/l10n/nb.js index 0363627955f..d37c9e00df4 100644 --- a/apps/files/l10n/nb.js +++ b/apps/files/l10n/nb.js @@ -16,7 +16,6 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Ikke nok ledig plass. Du laster opp size1} men bare {size2} er ledig", "Target folder \"{dir}\" does not exist any more" : "Målmappen \"{dir}\" finnes ikke lenger", "Not enough free space" : "Ikke nok ledig diskplass", - "Uploading …" : "Laster opp…", "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} av {totalSize} ({bitrate})", "Actions" : "Handlinger", @@ -77,6 +76,9 @@ OC.L10N.register( "Favorite" : "Gjør til favoritt", "New folder" : "Ny mappe", "Upload file" : "Last opp fil", + "Not favorited" : "Ikke i favoritter", + "Remove from favorites" : "Fjern fra favoritter", + "Add to favorites" : "Legg til i favoritter", "An error occurred while trying to update the tags" : "En feil oppstod under oppdatering av merkelappene", "Added to favorites" : "Lagt til i favoritter", "Removed from favorites" : "Fjernet fra favoritter", @@ -123,7 +125,6 @@ OC.L10N.register( "Show hidden files" : "Vis skjulte filer", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Bruk adressen <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">for å få tilgang til WebDAV</a>", - "Uploading @" : "Laster opp @", "Cancel upload" : "Avbryt opplasting", "No files in here" : "Ingen filer her", "Upload some content or sync with your devices!" : "Last opp noe innhold eller synkroniser med enhetene dine!", diff --git a/apps/files/l10n/nb.json b/apps/files/l10n/nb.json index 239793a7e70..dc1937bd0f5 100644 --- a/apps/files/l10n/nb.json +++ b/apps/files/l10n/nb.json @@ -14,7 +14,6 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Ikke nok ledig plass. Du laster opp size1} men bare {size2} er ledig", "Target folder \"{dir}\" does not exist any more" : "Målmappen \"{dir}\" finnes ikke lenger", "Not enough free space" : "Ikke nok ledig diskplass", - "Uploading …" : "Laster opp…", "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} av {totalSize} ({bitrate})", "Actions" : "Handlinger", @@ -75,6 +74,9 @@ "Favorite" : "Gjør til favoritt", "New folder" : "Ny mappe", "Upload file" : "Last opp fil", + "Not favorited" : "Ikke i favoritter", + "Remove from favorites" : "Fjern fra favoritter", + "Add to favorites" : "Legg til i favoritter", "An error occurred while trying to update the tags" : "En feil oppstod under oppdatering av merkelappene", "Added to favorites" : "Lagt til i favoritter", "Removed from favorites" : "Fjernet fra favoritter", @@ -121,7 +123,6 @@ "Show hidden files" : "Vis skjulte filer", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Bruk adressen <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">for å få tilgang til WebDAV</a>", - "Uploading @" : "Laster opp @", "Cancel upload" : "Avbryt opplasting", "No files in here" : "Ingen filer her", "Upload some content or sync with your devices!" : "Last opp noe innhold eller synkroniser med enhetene dine!", diff --git a/apps/files/l10n/nl.js b/apps/files/l10n/nl.js index 6bb95a1a00e..5461b88999a 100644 --- a/apps/files/l10n/nl.js +++ b/apps/files/l10n/nl.js @@ -16,7 +16,7 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Niet genoeg vrije ruimte. Je uploadt {size1}, maar er is slechts {size2} beschikbaar", "Target folder \"{dir}\" does not exist any more" : "Doelmap \"{dir}\" bestaat niet meer", "Not enough free space" : "Onvoldoende vrije ruimte", - "Uploading …" : "Uploaden ...", + "Uploading …" : "Uploaden …", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} van {totalSize} ({bitrate})", "Actions" : "Acties", @@ -77,6 +77,9 @@ OC.L10N.register( "Favorite" : "Favoriet", "New folder" : "Nieuwe map", "Upload file" : "Bestand uploaden", + "Not favorited" : "Niet in favorieten", + "Remove from favorites" : "Verwijder van favorieten", + "Add to favorites" : "Aan favorieten toevoegen", "An error occurred while trying to update the tags" : "Er trad een fout op bij jouw poging om de markeringen bij te werken", "Added to favorites" : "Toevoegen aan favorieten", "Removed from favorites" : "Verwijderen uit favorieten", @@ -123,7 +126,7 @@ OC.L10N.register( "Show hidden files" : "Verborgen bestanden tonen", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Gebruik deze link <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">om je bestanden via WebDAV te benaderen</a>", - "Uploading @" : "Uploaden @", + "Cancel upload" : "Stop upload", "No files in here" : "Hier geen bestanden", "Upload some content or sync with your devices!" : "Upload je inhoud of synchroniseer met je apparaten!", "No entries found in this folder" : "Niets", diff --git a/apps/files/l10n/nl.json b/apps/files/l10n/nl.json index efda557da81..bf02491b393 100644 --- a/apps/files/l10n/nl.json +++ b/apps/files/l10n/nl.json @@ -14,7 +14,7 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Niet genoeg vrije ruimte. Je uploadt {size1}, maar er is slechts {size2} beschikbaar", "Target folder \"{dir}\" does not exist any more" : "Doelmap \"{dir}\" bestaat niet meer", "Not enough free space" : "Onvoldoende vrije ruimte", - "Uploading …" : "Uploaden ...", + "Uploading …" : "Uploaden …", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} van {totalSize} ({bitrate})", "Actions" : "Acties", @@ -75,6 +75,9 @@ "Favorite" : "Favoriet", "New folder" : "Nieuwe map", "Upload file" : "Bestand uploaden", + "Not favorited" : "Niet in favorieten", + "Remove from favorites" : "Verwijder van favorieten", + "Add to favorites" : "Aan favorieten toevoegen", "An error occurred while trying to update the tags" : "Er trad een fout op bij jouw poging om de markeringen bij te werken", "Added to favorites" : "Toevoegen aan favorieten", "Removed from favorites" : "Verwijderen uit favorieten", @@ -121,7 +124,7 @@ "Show hidden files" : "Verborgen bestanden tonen", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Gebruik deze link <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">om je bestanden via WebDAV te benaderen</a>", - "Uploading @" : "Uploaden @", + "Cancel upload" : "Stop upload", "No files in here" : "Hier geen bestanden", "Upload some content or sync with your devices!" : "Upload je inhoud of synchroniseer met je apparaten!", "No entries found in this folder" : "Niets", diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js index 1d11928c27a..9d298be0e2a 100644 --- a/apps/files/l10n/pl.js +++ b/apps/files/l10n/pl.js @@ -77,6 +77,9 @@ OC.L10N.register( "Favorite" : "Ulubione", "New folder" : "Nowy folder", "Upload file" : "Wyślij plik", + "Not favorited" : "Wyłączone z ulubionych", + "Remove from favorites" : "Usuń z ulubionych", + "Add to favorites" : "Dodaj do ulubionych", "An error occurred while trying to update the tags" : "Wystąpił błąd podczas aktualizacji tagów", "Added to favorites" : "Dodano do ulubionych", "Removed from favorites" : "Usunięto z ulubionych", @@ -123,7 +126,6 @@ OC.L10N.register( "Show hidden files" : "Pokaż ukryte pliki", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Użyj tego adresu aby uzyskać <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dostęp do swoich plików poprzez WebDAV</a>", - "Uploading @" : "Wysyłanie", "Cancel upload" : "Anuluj wysyłanie", "No files in here" : "Brak plików", "Upload some content or sync with your devices!" : "Wgraj coś, albo wykonaj synchronizację ze swoimi urządzeniami.", diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json index 91fe2b1c44d..38986e0cd27 100644 --- a/apps/files/l10n/pl.json +++ b/apps/files/l10n/pl.json @@ -75,6 +75,9 @@ "Favorite" : "Ulubione", "New folder" : "Nowy folder", "Upload file" : "Wyślij plik", + "Not favorited" : "Wyłączone z ulubionych", + "Remove from favorites" : "Usuń z ulubionych", + "Add to favorites" : "Dodaj do ulubionych", "An error occurred while trying to update the tags" : "Wystąpił błąd podczas aktualizacji tagów", "Added to favorites" : "Dodano do ulubionych", "Removed from favorites" : "Usunięto z ulubionych", @@ -121,7 +124,6 @@ "Show hidden files" : "Pokaż ukryte pliki", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Użyj tego adresu aby uzyskać <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dostęp do swoich plików poprzez WebDAV</a>", - "Uploading @" : "Wysyłanie", "Cancel upload" : "Anuluj wysyłanie", "No files in here" : "Brak plików", "Upload some content or sync with your devices!" : "Wgraj coś, albo wykonaj synchronizację ze swoimi urządzeniami.", diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js index ab8f1c14afb..ea38f68d6b0 100644 --- a/apps/files/l10n/pt_BR.js +++ b/apps/files/l10n/pt_BR.js @@ -77,6 +77,9 @@ OC.L10N.register( "Favorite" : "Favorito", "New folder" : "Nova pasta", "Upload file" : "Enviar arquivo", + "Not favorited" : "Sem favoritos", + "Remove from favorites" : "Excluir dos favoritos", + "Add to favorites" : "Adicionar aos favoritos", "An error occurred while trying to update the tags" : "Ocorreu um erro enquanto tentava atualizar as etiquetas", "Added to favorites" : "Adicionado aos favoritos", "Removed from favorites" : "Excluído dos favoritos", @@ -123,7 +126,6 @@ OC.L10N.register( "Show hidden files" : "Mostrar arquivos ocultos", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Use este endereço <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">para acessar seus arquivos via WebDAV</a>", - "Uploading @" : "Enviando @", "Cancel upload" : "Cancelar envio", "No files in here" : "Nenhum arquivo aqui", "Upload some content or sync with your devices!" : "Envie algum conteúdo ou sincronize com seus dispositivos!", diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json index c551e03a978..26fafd4c5d8 100644 --- a/apps/files/l10n/pt_BR.json +++ b/apps/files/l10n/pt_BR.json @@ -75,6 +75,9 @@ "Favorite" : "Favorito", "New folder" : "Nova pasta", "Upload file" : "Enviar arquivo", + "Not favorited" : "Sem favoritos", + "Remove from favorites" : "Excluir dos favoritos", + "Add to favorites" : "Adicionar aos favoritos", "An error occurred while trying to update the tags" : "Ocorreu um erro enquanto tentava atualizar as etiquetas", "Added to favorites" : "Adicionado aos favoritos", "Removed from favorites" : "Excluído dos favoritos", @@ -121,7 +124,6 @@ "Show hidden files" : "Mostrar arquivos ocultos", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Use este endereço <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">para acessar seus arquivos via WebDAV</a>", - "Uploading @" : "Enviando @", "Cancel upload" : "Cancelar envio", "No files in here" : "Nenhum arquivo aqui", "Upload some content or sync with your devices!" : "Envie algum conteúdo ou sincronize com seus dispositivos!", diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js index 1455ed2abd3..b56de035d15 100644 --- a/apps/files/l10n/ru.js +++ b/apps/files/l10n/ru.js @@ -12,11 +12,11 @@ OC.L10N.register( "Favorites" : "Избранные", "Could not create folder \"{dir}\"" : "Невозможно создать каталог «{dir}»", "Upload cancelled." : "Выгрузка отменена.", - "Unable to upload {filename} as it is a directory or has 0 bytes" : "Невозможно выгрузить «{filename}», так как это либо каталог, либо файл нулевого размера", - "Not enough free space, you are uploading {size1} but only {size2} is left" : "Недостаточно свободного места, вы выгружаете {size1}, но только {size2} доступно", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Невозможно загрузить «{filename}», так как это либо каталог, либо файл нулевого размера", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Недостаточно свободного места, вы загружаете {size1}, но только {size2} доступно", "Target folder \"{dir}\" does not exist any more" : "Целевой каталог «{dir}» более не существует", "Not enough free space" : "Недостаточно свободного места", - "Uploading …" : "Выгрузка...", + "Uploading …" : "Загрузка...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} из {totalSize} ({bitrate})", "Actions" : "Действия", @@ -58,7 +58,7 @@ OC.L10N.register( "{dirs} and {files}" : "{dirs} и {files}", "_including %n hidden_::_including %n hidden_" : ["включая %n скрытый","включая %n скрытых","включая %n скрытых","включая %n скрытых"], "You don’t have permission to upload or create files here" : "У вас нет разрешений на создание или загрузку файлов в эту папку.", - "_Uploading %n file_::_Uploading %n files_" : ["Выгружа%nется файл","Выгружаются %n файла","Выгружаются %n файлов","Выгружаются %n файлов"], + "_Uploading %n file_::_Uploading %n files_" : ["Выгружа%nется файл","Выгружаются %n файла","Выгружаются %n файлов","Загружаются %n файлов"], "New" : "Новый", "\"{name}\" is an invalid file name." : "«{name}» — недопустимое имя файла.", "File name cannot be empty." : "Имя файла не может быть пустым.", @@ -76,7 +76,10 @@ OC.L10N.register( "Favorited" : "Избранное", "Favorite" : "Добавить в избранное", "New folder" : "Новый каталог", - "Upload file" : "Выгрузить файл", + "Upload file" : "Зарузить файл", + "Not favorited" : "Не избранное", + "Remove from favorites" : "Удалить из избранных", + "Add to favorites" : "Добавить в избранное", "An error occurred while trying to update the tags" : "Во время обновления тегов возникла ошибка", "Added to favorites" : "Добавлено в избранное", "Removed from favorites" : "Удалено из избранного", @@ -110,9 +113,9 @@ OC.L10N.register( "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Ограничить уведомления о создании и изменении ваших <strong>избранных файлов</strong> <em>(отображать только в приложении события)</em>", "A file or folder has been <strong>restored</strong>" : "Файл или каталог был <strong>восстановлен</strong>", "Unlimited" : "Неограничено", - "Upload (max. %s)" : "Выгрузка (максимум %s)", + "Upload (max. %s)" : "Загрузка (максимум %s)", "File handling" : "Управление файлами", - "Maximum upload size" : "Максимальный размер выгружаемого файла", + "Maximum upload size" : "Максимальный размер загружаемого файла", "max. possible: " : "макс. возможно: ", "Save" : "Сохранить", "With PHP-FPM it might take 5 minutes for changes to be applied." : "В режиме PHP-FPM применение изменений может занять до 5 минут.", @@ -123,8 +126,7 @@ OC.L10N.register( "Show hidden files" : "Показывать скрытые файлы", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Используйте этот адрес <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">для доступа по WebDAV</a>", - "Uploading @" : "Выгрузка @", - "Cancel upload" : "Отменить выгрузку", + "Cancel upload" : "Отменить загрузку", "No files in here" : "Здесь нет файлов", "Upload some content or sync with your devices!" : "Загрузите что-нибудь или синхронизируйте со своими устройствами!", "No entries found in this folder" : "В этом каталоге ничего не найдено", @@ -140,7 +142,7 @@ OC.L10N.register( "Deleted files" : "Корзина", "Text file" : "Текстовый файл", "New text file.txt" : "Новый текстовый файл.txt", - "Uploading..." : "Выгрузка...", + "Uploading..." : "Загрузка...", "..." : "...", "_{hours}:{minutes}:{seconds} hour left_::_{hours}:{minutes}:{seconds} hours left_" : ["Остался {hours}:{minutes}:{seconds} час","Осталось {hours}:{minutes}:{seconds} часа","Осталось {hours}:{minutes}:{seconds} часов","Осталось {hours}:{minutes}:{seconds} часов"], "{hours}:{minutes}h" : "{hours}:{minutes}ч", @@ -150,7 +152,7 @@ OC.L10N.register( "{seconds}s" : "{seconds}с", "Any moment now..." : "В любой момент...", "Soon..." : "Скоро...", - "File upload is in progress. Leaving the page now will cancel the upload." : "Выполняется передача файла. Покинув страницу, вы прервёте выгрузку.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Выполняется передача файла. Покинув страницу, вы прервёте загрузку.", "Move" : "Перенести", "Copy local link" : "Скопировать локальную ссылку", "Folder" : "Каталог", diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json index 20bbb1d2e31..53c74b50f6f 100644 --- a/apps/files/l10n/ru.json +++ b/apps/files/l10n/ru.json @@ -10,11 +10,11 @@ "Favorites" : "Избранные", "Could not create folder \"{dir}\"" : "Невозможно создать каталог «{dir}»", "Upload cancelled." : "Выгрузка отменена.", - "Unable to upload {filename} as it is a directory or has 0 bytes" : "Невозможно выгрузить «{filename}», так как это либо каталог, либо файл нулевого размера", - "Not enough free space, you are uploading {size1} but only {size2} is left" : "Недостаточно свободного места, вы выгружаете {size1}, но только {size2} доступно", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Невозможно загрузить «{filename}», так как это либо каталог, либо файл нулевого размера", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Недостаточно свободного места, вы загружаете {size1}, но только {size2} доступно", "Target folder \"{dir}\" does not exist any more" : "Целевой каталог «{dir}» более не существует", "Not enough free space" : "Недостаточно свободного места", - "Uploading …" : "Выгрузка...", + "Uploading …" : "Загрузка...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} из {totalSize} ({bitrate})", "Actions" : "Действия", @@ -56,7 +56,7 @@ "{dirs} and {files}" : "{dirs} и {files}", "_including %n hidden_::_including %n hidden_" : ["включая %n скрытый","включая %n скрытых","включая %n скрытых","включая %n скрытых"], "You don’t have permission to upload or create files here" : "У вас нет разрешений на создание или загрузку файлов в эту папку.", - "_Uploading %n file_::_Uploading %n files_" : ["Выгружа%nется файл","Выгружаются %n файла","Выгружаются %n файлов","Выгружаются %n файлов"], + "_Uploading %n file_::_Uploading %n files_" : ["Выгружа%nется файл","Выгружаются %n файла","Выгружаются %n файлов","Загружаются %n файлов"], "New" : "Новый", "\"{name}\" is an invalid file name." : "«{name}» — недопустимое имя файла.", "File name cannot be empty." : "Имя файла не может быть пустым.", @@ -74,7 +74,10 @@ "Favorited" : "Избранное", "Favorite" : "Добавить в избранное", "New folder" : "Новый каталог", - "Upload file" : "Выгрузить файл", + "Upload file" : "Зарузить файл", + "Not favorited" : "Не избранное", + "Remove from favorites" : "Удалить из избранных", + "Add to favorites" : "Добавить в избранное", "An error occurred while trying to update the tags" : "Во время обновления тегов возникла ошибка", "Added to favorites" : "Добавлено в избранное", "Removed from favorites" : "Удалено из избранного", @@ -108,9 +111,9 @@ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Ограничить уведомления о создании и изменении ваших <strong>избранных файлов</strong> <em>(отображать только в приложении события)</em>", "A file or folder has been <strong>restored</strong>" : "Файл или каталог был <strong>восстановлен</strong>", "Unlimited" : "Неограничено", - "Upload (max. %s)" : "Выгрузка (максимум %s)", + "Upload (max. %s)" : "Загрузка (максимум %s)", "File handling" : "Управление файлами", - "Maximum upload size" : "Максимальный размер выгружаемого файла", + "Maximum upload size" : "Максимальный размер загружаемого файла", "max. possible: " : "макс. возможно: ", "Save" : "Сохранить", "With PHP-FPM it might take 5 minutes for changes to be applied." : "В режиме PHP-FPM применение изменений может занять до 5 минут.", @@ -121,8 +124,7 @@ "Show hidden files" : "Показывать скрытые файлы", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Используйте этот адрес <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">для доступа по WebDAV</a>", - "Uploading @" : "Выгрузка @", - "Cancel upload" : "Отменить выгрузку", + "Cancel upload" : "Отменить загрузку", "No files in here" : "Здесь нет файлов", "Upload some content or sync with your devices!" : "Загрузите что-нибудь или синхронизируйте со своими устройствами!", "No entries found in this folder" : "В этом каталоге ничего не найдено", @@ -138,7 +140,7 @@ "Deleted files" : "Корзина", "Text file" : "Текстовый файл", "New text file.txt" : "Новый текстовый файл.txt", - "Uploading..." : "Выгрузка...", + "Uploading..." : "Загрузка...", "..." : "...", "_{hours}:{minutes}:{seconds} hour left_::_{hours}:{minutes}:{seconds} hours left_" : ["Остался {hours}:{minutes}:{seconds} час","Осталось {hours}:{minutes}:{seconds} часа","Осталось {hours}:{minutes}:{seconds} часов","Осталось {hours}:{minutes}:{seconds} часов"], "{hours}:{minutes}h" : "{hours}:{minutes}ч", @@ -148,7 +150,7 @@ "{seconds}s" : "{seconds}с", "Any moment now..." : "В любой момент...", "Soon..." : "Скоро...", - "File upload is in progress. Leaving the page now will cancel the upload." : "Выполняется передача файла. Покинув страницу, вы прервёте выгрузку.", + "File upload is in progress. Leaving the page now will cancel the upload." : "Выполняется передача файла. Покинув страницу, вы прервёте загрузку.", "Move" : "Перенести", "Copy local link" : "Скопировать локальную ссылку", "Folder" : "Каталог", diff --git a/apps/files/l10n/sk.js b/apps/files/l10n/sk.js index 79e74f8fc37..b103172e819 100644 --- a/apps/files/l10n/sk.js +++ b/apps/files/l10n/sk.js @@ -16,7 +16,7 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nie je dostatok voľného miesta, chcete nahrať {size1} ale k dispozíciji je len {size2}", "Target folder \"{dir}\" does not exist any more" : "Cieľový priečinok \"{dir}\" už neexistuje", "Not enough free space" : "Nedostatok voľného miesta", - "Uploading …" : "Nahráva sa ...", + "Uploading …" : "Nahrávanie...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} z {totalSize} ({bitrate})", "Actions" : "Akcie", @@ -77,6 +77,9 @@ OC.L10N.register( "Favorite" : "Obľúbené", "New folder" : "Nový priečinok", "Upload file" : "Nahrať súbor", + "Not favorited" : "Nie je obľúbený", + "Remove from favorites" : "Odstrániť z obľúbených", + "Add to favorites" : "Pridať do obľúbených", "An error occurred while trying to update the tags" : "Pri pokuse o aktualizáciu štítkov došlo k chybe", "Added to favorites" : "Pridané do obľúbených", "Removed from favorites" : "Odstránené z obľúbených", @@ -123,7 +126,6 @@ OC.L10N.register( "Show hidden files" : "Zobraziť skryté súbory", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Použi túto adresu pre <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">prístup ku svojím súborom cez WebDAV</a>", - "Uploading @" : "Nahráva sa @", "Cancel upload" : "Zrušiť nahrávanie", "No files in here" : "Nie sú tu žiadne súbory", "Upload some content or sync with your devices!" : "Nahrajte nejaký obsah alebo synchronizujte zo svojimi zariadeniami!", diff --git a/apps/files/l10n/sk.json b/apps/files/l10n/sk.json index 3abaef4aa98..5947e0b1dca 100644 --- a/apps/files/l10n/sk.json +++ b/apps/files/l10n/sk.json @@ -14,7 +14,7 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nie je dostatok voľného miesta, chcete nahrať {size1} ale k dispozíciji je len {size2}", "Target folder \"{dir}\" does not exist any more" : "Cieľový priečinok \"{dir}\" už neexistuje", "Not enough free space" : "Nedostatok voľného miesta", - "Uploading …" : "Nahráva sa ...", + "Uploading …" : "Nahrávanie...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} z {totalSize} ({bitrate})", "Actions" : "Akcie", @@ -75,6 +75,9 @@ "Favorite" : "Obľúbené", "New folder" : "Nový priečinok", "Upload file" : "Nahrať súbor", + "Not favorited" : "Nie je obľúbený", + "Remove from favorites" : "Odstrániť z obľúbených", + "Add to favorites" : "Pridať do obľúbených", "An error occurred while trying to update the tags" : "Pri pokuse o aktualizáciu štítkov došlo k chybe", "Added to favorites" : "Pridané do obľúbených", "Removed from favorites" : "Odstránené z obľúbených", @@ -121,7 +124,6 @@ "Show hidden files" : "Zobraziť skryté súbory", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Použi túto adresu pre <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">prístup ku svojím súborom cez WebDAV</a>", - "Uploading @" : "Nahráva sa @", "Cancel upload" : "Zrušiť nahrávanie", "No files in here" : "Nie sú tu žiadne súbory", "Upload some content or sync with your devices!" : "Nahrajte nejaký obsah alebo synchronizujte zo svojimi zariadeniami!", diff --git a/apps/files/l10n/sl.js b/apps/files/l10n/sl.js index cedf0bfc2b5..28a97a6cdb3 100644 --- a/apps/files/l10n/sl.js +++ b/apps/files/l10n/sl.js @@ -16,7 +16,6 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Na voljo ni dovolj prostora. Velikost poslane datoteke je {size1}, na voljo pa je je {size2}.", "Target folder \"{dir}\" does not exist any more" : "Ciljna mapa \"{dir}\" ne obstaja več", "Not enough free space" : "Ni dovolj prostora", - "Uploading …" : "Nalaganje", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} od {totalSize} ({bitrate})", "Actions" : "Dejanja", @@ -119,7 +118,6 @@ OC.L10N.register( "Show hidden files" : "Pokaži skrite datoteke", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Uporabite naslov <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\"> za dostop do datotek prek sistema WebDAV</a>.", - "Uploading @" : "Nalaganje @", "Cancel upload" : "Prekini nalaganje", "No files in here" : "V mapi ni datotek", "Upload some content or sync with your devices!" : "Uvozite vsebino ali pa omogočite usklajevanje z napravami!", diff --git a/apps/files/l10n/sl.json b/apps/files/l10n/sl.json index a10d6ac1d91..c5dd2eb6e29 100644 --- a/apps/files/l10n/sl.json +++ b/apps/files/l10n/sl.json @@ -14,7 +14,6 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Na voljo ni dovolj prostora. Velikost poslane datoteke je {size1}, na voljo pa je je {size2}.", "Target folder \"{dir}\" does not exist any more" : "Ciljna mapa \"{dir}\" ne obstaja več", "Not enough free space" : "Ni dovolj prostora", - "Uploading …" : "Nalaganje", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} od {totalSize} ({bitrate})", "Actions" : "Dejanja", @@ -117,7 +116,6 @@ "Show hidden files" : "Pokaži skrite datoteke", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Uporabite naslov <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\"> za dostop do datotek prek sistema WebDAV</a>.", - "Uploading @" : "Nalaganje @", "Cancel upload" : "Prekini nalaganje", "No files in here" : "V mapi ni datotek", "Upload some content or sync with your devices!" : "Uvozite vsebino ali pa omogočite usklajevanje z napravami!", diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js index 1a3b01420f9..62d72d56d45 100644 --- a/apps/files/l10n/sr.js +++ b/apps/files/l10n/sr.js @@ -16,7 +16,7 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Нема простора. Отпремате {size1} али само {size2} је преостало", "Target folder \"{dir}\" does not exist any more" : "Одредишна фасцикла \"{dir}\" више не постоји", "Not enough free space" : "Нема довољно слободног места", - "Uploading …" : "Отпремам …", + "Uploading …" : "Отпремам…", "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} од {totalSize} ({bitrate})", "Actions" : "Радње", @@ -77,6 +77,9 @@ OC.L10N.register( "Favorite" : "Омиљени", "New folder" : "Нова фасцикла", "Upload file" : "Отпреми фајл", + "Not favorited" : "Није омиљено", + "Remove from favorites" : "Избаци из омиљених", + "Add to favorites" : "Додај у омиљене", "An error occurred while trying to update the tags" : "Дошло је до грешке при покушају ажурирања ознака", "Added to favorites" : "Додато у омиљено", "Removed from favorites" : "Избачено из омиљених", @@ -123,7 +126,6 @@ OC.L10N.register( "Show hidden files" : "Прикажи скривене фајлове", "WebDAV" : "ВебДАВ", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Користи ову адресу да <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">приступате Вашим фајловима преко ВебДАВа</a>", - "Uploading @" : "Отпремам @", "Cancel upload" : "Откажи отпремање", "No files in here" : "Овде нема фајлова", "Upload some content or sync with your devices!" : "Отпремите неки садржај или синхронизујте са вашим уређајима!", diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json index c8db7af7ab8..190e3045496 100644 --- a/apps/files/l10n/sr.json +++ b/apps/files/l10n/sr.json @@ -14,7 +14,7 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Нема простора. Отпремате {size1} али само {size2} је преостало", "Target folder \"{dir}\" does not exist any more" : "Одредишна фасцикла \"{dir}\" више не постоји", "Not enough free space" : "Нема довољно слободног места", - "Uploading …" : "Отпремам …", + "Uploading …" : "Отпремам…", "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} од {totalSize} ({bitrate})", "Actions" : "Радње", @@ -75,6 +75,9 @@ "Favorite" : "Омиљени", "New folder" : "Нова фасцикла", "Upload file" : "Отпреми фајл", + "Not favorited" : "Није омиљено", + "Remove from favorites" : "Избаци из омиљених", + "Add to favorites" : "Додај у омиљене", "An error occurred while trying to update the tags" : "Дошло је до грешке при покушају ажурирања ознака", "Added to favorites" : "Додато у омиљено", "Removed from favorites" : "Избачено из омиљених", @@ -121,7 +124,6 @@ "Show hidden files" : "Прикажи скривене фајлове", "WebDAV" : "ВебДАВ", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Користи ову адресу да <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">приступате Вашим фајловима преко ВебДАВа</a>", - "Uploading @" : "Отпремам @", "Cancel upload" : "Откажи отпремање", "No files in here" : "Овде нема фајлова", "Upload some content or sync with your devices!" : "Отпремите неки садржај или синхронизујте са вашим уређајима!", diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js index ef6e091ecc7..43515856b89 100644 --- a/apps/files/l10n/sv.js +++ b/apps/files/l10n/sv.js @@ -16,7 +16,6 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Inte tillräckligt med ledigt utrymme, du laddar upp {size1} men endast {size2} finns kvar.", "Target folder \"{dir}\" does not exist any more" : "Målmapp \"{dir}\" existerar inte mer", "Not enough free space" : "Inte tillräckligt med ledigt utrymme", - "Uploading …" : "Laddar upp ...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} av {totalSize} ({bitrate})", "Actions" : "Åtgärder", @@ -123,7 +122,6 @@ OC.L10N.register( "Show hidden files" : "Visa dolda filer", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Använd den här adressen för att <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">komma åt dina filer via WebDAV</a>", - "Uploading @" : "Laddar upp @", "Cancel upload" : "Avbryt uppladdning", "No files in here" : "Inga filer kunde hittas", "Upload some content or sync with your devices!" : "Ladda upp innehåll eller synkronisera med dina enheter!", diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json index 88b6d108dcb..a3cc329f71b 100644 --- a/apps/files/l10n/sv.json +++ b/apps/files/l10n/sv.json @@ -14,7 +14,6 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Inte tillräckligt med ledigt utrymme, du laddar upp {size1} men endast {size2} finns kvar.", "Target folder \"{dir}\" does not exist any more" : "Målmapp \"{dir}\" existerar inte mer", "Not enough free space" : "Inte tillräckligt med ledigt utrymme", - "Uploading …" : "Laddar upp ...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} av {totalSize} ({bitrate})", "Actions" : "Åtgärder", @@ -121,7 +120,6 @@ "Show hidden files" : "Visa dolda filer", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Använd den här adressen för att <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">komma åt dina filer via WebDAV</a>", - "Uploading @" : "Laddar upp @", "Cancel upload" : "Avbryt uppladdning", "No files in here" : "Inga filer kunde hittas", "Upload some content or sync with your devices!" : "Ladda upp innehåll eller synkronisera med dina enheter!", diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js index d5ee46c53b8..b7116cbbd8b 100644 --- a/apps/files/l10n/tr.js +++ b/apps/files/l10n/tr.js @@ -77,6 +77,9 @@ OC.L10N.register( "Favorite" : "Sık kullanılanlara ekle", "New folder" : "Yeni klasör", "Upload file" : "Dosya yükle", + "Not favorited" : "Sık kullanılanlarda değil", + "Remove from favorites" : "Sık kullanılanlardan kaldır", + "Add to favorites" : "Sık kullanılanlara ekle", "An error occurred while trying to update the tags" : "Etiketler güncellenirken bir sorun çıktı", "Added to favorites" : "Sık kullanılanlara eklendi", "Removed from favorites" : "Sık kullanılanlardan çıkarıldı", @@ -123,7 +126,6 @@ OC.L10N.register( "Show hidden files" : "Gizli dosyaları görüntüle", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Dosyalarınıza WebDAV üzerinden erişmek için <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">bu adresi kullanın</a>", - "Uploading @" : "Yükleniyor @", "Cancel upload" : "Yüklemeyi iptal et", "No files in here" : "Burada herhangi bir dosya yok", "Upload some content or sync with your devices!" : "Bir şeyler yükleyin ya da aygıtlarınızla eşitleyin!", diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json index b63f114f80a..efd609da063 100644 --- a/apps/files/l10n/tr.json +++ b/apps/files/l10n/tr.json @@ -75,6 +75,9 @@ "Favorite" : "Sık kullanılanlara ekle", "New folder" : "Yeni klasör", "Upload file" : "Dosya yükle", + "Not favorited" : "Sık kullanılanlarda değil", + "Remove from favorites" : "Sık kullanılanlardan kaldır", + "Add to favorites" : "Sık kullanılanlara ekle", "An error occurred while trying to update the tags" : "Etiketler güncellenirken bir sorun çıktı", "Added to favorites" : "Sık kullanılanlara eklendi", "Removed from favorites" : "Sık kullanılanlardan çıkarıldı", @@ -121,7 +124,6 @@ "Show hidden files" : "Gizli dosyaları görüntüle", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Dosyalarınıza WebDAV üzerinden erişmek için <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">bu adresi kullanın</a>", - "Uploading @" : "Yükleniyor @", "Cancel upload" : "Yüklemeyi iptal et", "No files in here" : "Burada herhangi bir dosya yok", "Upload some content or sync with your devices!" : "Bir şeyler yükleyin ya da aygıtlarınızla eşitleyin!", diff --git a/apps/files/l10n/uk.js b/apps/files/l10n/uk.js index a24c058ce53..451f6adfe65 100644 --- a/apps/files/l10n/uk.js +++ b/apps/files/l10n/uk.js @@ -16,7 +16,6 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Недостатньо вільного місця, ви вивантажуєте {size1}, а залишилося лише {size2}", "Target folder \"{dir}\" does not exist any more" : "Теки призначення \"{dir}\" більше не існує.", "Not enough free space" : "Недостатньо вільного місця", - "Uploading …" : "Вивантаження...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} з {totalSize} ({bitrate})", "Actions" : "Дії", @@ -118,7 +117,6 @@ OC.L10N.register( "Show hidden files" : "Показати приховані файли", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Використайте цю адресу для <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">доступу через WebDAV</a>", - "Uploading @" : "Вивантаження @", "No files in here" : "Тут немає файлів", "Upload some content or sync with your devices!" : "Вивантажте щось або синхронізуйте з пристроями!", "No entries found in this folder" : "В цій теці нічого немає", diff --git a/apps/files/l10n/uk.json b/apps/files/l10n/uk.json index dd4b04e1e73..1d14e89de2d 100644 --- a/apps/files/l10n/uk.json +++ b/apps/files/l10n/uk.json @@ -14,7 +14,6 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Недостатньо вільного місця, ви вивантажуєте {size1}, а залишилося лише {size2}", "Target folder \"{dir}\" does not exist any more" : "Теки призначення \"{dir}\" більше не існує.", "Not enough free space" : "Недостатньо вільного місця", - "Uploading …" : "Вивантаження...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} з {totalSize} ({bitrate})", "Actions" : "Дії", @@ -116,7 +115,6 @@ "Show hidden files" : "Показати приховані файли", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Використайте цю адресу для <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">доступу через WebDAV</a>", - "Uploading @" : "Вивантаження @", "No files in here" : "Тут немає файлів", "Upload some content or sync with your devices!" : "Вивантажте щось або синхронізуйте з пристроями!", "No entries found in this folder" : "В цій теці нічого немає", diff --git a/apps/files/l10n/vi.js b/apps/files/l10n/vi.js index 34c9c79b5a7..426c52d3d8b 100644 --- a/apps/files/l10n/vi.js +++ b/apps/files/l10n/vi.js @@ -16,7 +16,6 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Không đủ dung lượng trống, bạn đang tải {size1} nhưng chỉ còn {size2} trống", "Target folder \"{dir}\" does not exist any more" : "Thư mục đích \"{dir}\" không còn tồn tại", "Not enough free space" : "Không đủ dung lượng trống", - "Uploading …" : "Đang tải lên …", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} trong tổng số {totalSize} ({bitrate})", "Actions" : "Actions", "Download" : "Tải về", diff --git a/apps/files/l10n/vi.json b/apps/files/l10n/vi.json index 5bf200eb0a0..09e81edb376 100644 --- a/apps/files/l10n/vi.json +++ b/apps/files/l10n/vi.json @@ -14,7 +14,6 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Không đủ dung lượng trống, bạn đang tải {size1} nhưng chỉ còn {size2} trống", "Target folder \"{dir}\" does not exist any more" : "Thư mục đích \"{dir}\" không còn tồn tại", "Not enough free space" : "Không đủ dung lượng trống", - "Uploading …" : "Đang tải lên …", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} trong tổng số {totalSize} ({bitrate})", "Actions" : "Actions", "Download" : "Tải về", diff --git a/apps/files/l10n/zh_CN.js b/apps/files/l10n/zh_CN.js index 97be741304e..3efe7b5443c 100644 --- a/apps/files/l10n/zh_CN.js +++ b/apps/files/l10n/zh_CN.js @@ -16,7 +16,6 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "可用空间不足,您上传的文件大小为 {size1} ,但可用空间仅剩 {size2}", "Target folder \"{dir}\" does not exist any more" : "目标目录 \"{dir}\" 不存在", "Not enough free space" : "可用空间不足", - "Uploading …" : "正在上传...", "…" : "undefined", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} / {totalSize} ({bitrate})", "Actions" : "操作", @@ -123,7 +122,6 @@ OC.L10N.register( "Show hidden files" : "显示隐藏文件", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "使用这个地址 <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">通过 WebDAV 访问您的文件</a>", - "Uploading @" : "上传中", "Cancel upload" : "取消上传", "No files in here" : "无文件", "Upload some content or sync with your devices!" : "上传或从您的设备中同步!", diff --git a/apps/files/l10n/zh_CN.json b/apps/files/l10n/zh_CN.json index b8630ae0b1e..185635f9a51 100644 --- a/apps/files/l10n/zh_CN.json +++ b/apps/files/l10n/zh_CN.json @@ -14,7 +14,6 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "可用空间不足,您上传的文件大小为 {size1} ,但可用空间仅剩 {size2}", "Target folder \"{dir}\" does not exist any more" : "目标目录 \"{dir}\" 不存在", "Not enough free space" : "可用空间不足", - "Uploading …" : "正在上传...", "…" : "undefined", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} / {totalSize} ({bitrate})", "Actions" : "操作", @@ -121,7 +120,6 @@ "Show hidden files" : "显示隐藏文件", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "使用这个地址 <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">通过 WebDAV 访问您的文件</a>", - "Uploading @" : "上传中", "Cancel upload" : "取消上传", "No files in here" : "无文件", "Upload some content or sync with your devices!" : "上传或从您的设备中同步!", diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js index 154fa2ca816..d6051f1307f 100644 --- a/apps/files/l10n/zh_TW.js +++ b/apps/files/l10n/zh_TW.js @@ -22,6 +22,7 @@ OC.L10N.register( "Actions" : "動作", "Download" : "下載", "Rename" : "重新命名", + "Move or copy" : "移動或複製", "Target folder" : "目標資料夾", "Delete" : "刪除", "Disconnect storage" : "斷開儲存空間連接", @@ -36,6 +37,8 @@ OC.L10N.register( "This directory is unavailable, please check the logs or contact the administrator" : "這個目錄無法存取,請檢查伺服器記錄檔或聯絡管理員", "Could not move \"{file}\", target exists" : "無法移動 \"{file}\",目標已經存在", "Could not move \"{file}\"" : "無法移動 \"{file}\"", + "Could not copy \"{file}\", target exists" : "無法複製\"{file}\",目標已存在", + "Could not copy \"{file}\"" : "無法複製\"{file}\"", "{newName} already exists" : "{newName} 已經存在", "Could not rename \"{fileName}\", it does not exist any more" : "無法命名檔案 \"{fileName}\",因為此檔案已經不存在", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "此名稱 \"{targetName}\" 在這資料夾 \"{dir}\" 已經被使用。請重新選擇不同的名稱", @@ -72,9 +75,12 @@ OC.L10N.register( "Favorite" : "我的最愛", "New folder" : "新資料夾", "Upload file" : "上傳檔案", + "Not favorited" : "未加入至最愛", + "Remove from favorites" : "從最愛中移除", + "Add to favorites" : "添加到最愛", "An error occurred while trying to update the tags" : "更新標籤時發生錯誤", - "Added to favorites" : "添加到最愛", - "Removed from favorites" : "從最愛移除", + "Added to favorites" : "已添加到最愛", + "Removed from favorites" : "已從最愛中移除", "You added {file} to your favorites" : "你已添加 {file} 至最愛", "You removed {file} from your favorites" : "你已移除 {file} 從最愛", "File changes" : "檔案更動", @@ -118,7 +124,7 @@ OC.L10N.register( "Show hidden files" : "顯示隱藏檔", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "使用這個位址來<a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">使用 WebDAV 存取檔案</a>", - "Uploading @" : "正在上傳 @", + "Cancel upload" : "取消上傳", "No files in here" : "沒有任何檔案", "Upload some content or sync with your devices!" : "在您的裝置中同步或上傳一些內容", "No entries found in this folder" : "在此資料夾中沒有任何項目", diff --git a/apps/files/l10n/zh_TW.json b/apps/files/l10n/zh_TW.json index 13502ecc950..45cfeb15b6f 100644 --- a/apps/files/l10n/zh_TW.json +++ b/apps/files/l10n/zh_TW.json @@ -20,6 +20,7 @@ "Actions" : "動作", "Download" : "下載", "Rename" : "重新命名", + "Move or copy" : "移動或複製", "Target folder" : "目標資料夾", "Delete" : "刪除", "Disconnect storage" : "斷開儲存空間連接", @@ -34,6 +35,8 @@ "This directory is unavailable, please check the logs or contact the administrator" : "這個目錄無法存取,請檢查伺服器記錄檔或聯絡管理員", "Could not move \"{file}\", target exists" : "無法移動 \"{file}\",目標已經存在", "Could not move \"{file}\"" : "無法移動 \"{file}\"", + "Could not copy \"{file}\", target exists" : "無法複製\"{file}\",目標已存在", + "Could not copy \"{file}\"" : "無法複製\"{file}\"", "{newName} already exists" : "{newName} 已經存在", "Could not rename \"{fileName}\", it does not exist any more" : "無法命名檔案 \"{fileName}\",因為此檔案已經不存在", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "此名稱 \"{targetName}\" 在這資料夾 \"{dir}\" 已經被使用。請重新選擇不同的名稱", @@ -70,9 +73,12 @@ "Favorite" : "我的最愛", "New folder" : "新資料夾", "Upload file" : "上傳檔案", + "Not favorited" : "未加入至最愛", + "Remove from favorites" : "從最愛中移除", + "Add to favorites" : "添加到最愛", "An error occurred while trying to update the tags" : "更新標籤時發生錯誤", - "Added to favorites" : "添加到最愛", - "Removed from favorites" : "從最愛移除", + "Added to favorites" : "已添加到最愛", + "Removed from favorites" : "已從最愛中移除", "You added {file} to your favorites" : "你已添加 {file} 至最愛", "You removed {file} from your favorites" : "你已移除 {file} 從最愛", "File changes" : "檔案更動", @@ -116,7 +122,7 @@ "Show hidden files" : "顯示隱藏檔", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "使用這個位址來<a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">使用 WebDAV 存取檔案</a>", - "Uploading @" : "正在上傳 @", + "Cancel upload" : "取消上傳", "No files in here" : "沒有任何檔案", "Upload some content or sync with your devices!" : "在您的裝置中同步或上傳一些內容", "No entries found in this folder" : "在此資料夾中沒有任何項目", diff --git a/apps/files/templates/list.php b/apps/files/templates/list.php index 46bd9351e39..92f64a52a28 100644 --- a/apps/files/templates/list.php +++ b/apps/files/templates/list.php @@ -2,7 +2,7 @@ <div class="actions creatable hidden"> <div id="uploadprogresswrapper"> <div id="uploadprogressbar"> - <em class="label outer" style="display:none"><span class="desktop"><?php p($l->t('Uploading @'));?></span><span class="mobile"><?php p($l->t('…'));?></span></em> + <em class="label outer" style="display:none"><span class="desktop"><?php p($l->t('Uploading …'));?></span><span class="mobile"><?php p($l->t('…'));?></span></em> </div> <button class="stop icon-close" style="display:none"> <span class="hidden-visually"><?php p($l->t('Cancel upload')) ?></span> @@ -41,12 +41,14 @@ <table id="filestable" data-allow-public-upload="<?php p($_['publicUploadEnabled'])?>" data-preview-x="32" data-preview-y="32"> <thead> <tr> + <th id="headerSelection" class="hidden column-selection"> + <input type="checkbox" id="select_all_files" class="select-all checkbox"/> + <label for="select_all_files"> + <span class="hidden-visually"><?php p($l->t('Select all'))?></span> + </label> + </th> <th id='headerName' class="hidden column-name"> <div id="headerName-container"> - <input type="checkbox" id="select_all_files" class="select-all checkbox"/> - <label for="select_all_files"> - <span class="hidden-visually"><?php p($l->t('Select all'))?></span> - </label> <a class="name sort columntitle" data-sort="name"><span><?php p($l->t( 'Name' )); ?></span><span class="sort-indicator"></span></a> <span id="selectedActionsList" class="selectedActions"> <a href="" class="copy-move"> diff --git a/apps/files/tests/Command/DeleteOrphanedFilesTest.php b/apps/files/tests/Command/DeleteOrphanedFilesTest.php index 32c8d628a80..8c48b9feca7 100644 --- a/apps/files/tests/Command/DeleteOrphanedFilesTest.php +++ b/apps/files/tests/Command/DeleteOrphanedFilesTest.php @@ -27,6 +27,8 @@ namespace OCA\Files\Tests\Command; use OC\Files\View; use OCA\Files\Command\DeleteOrphanedFiles; use OCP\Files\StorageNotAvailableException; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; use Test\TestCase; /** @@ -87,10 +89,10 @@ class DeleteOrphanedFilesTest extends TestCase { * Test clearing orphaned files */ public function testClearFiles() { - $input = $this->getMockBuilder('Symfony\Component\Console\Input\InputInterface') + $input = $this->getMockBuilder(InputInterface::class) ->disableOriginalConstructor() ->getMock(); - $output = $this->getMockBuilder('Symfony\Component\Console\Output\OutputInterface') + $output = $this->getMockBuilder(OutputInterface::class) ->disableOriginalConstructor() ->getMock(); diff --git a/apps/files/tests/Controller/ViewControllerTest.php b/apps/files/tests/Controller/ViewControllerTest.php index 007335b948d..3d8c8164abb 100644 --- a/apps/files/tests/Controller/ViewControllerTest.php +++ b/apps/files/tests/Controller/ViewControllerTest.php @@ -27,6 +27,8 @@ namespace OCA\Files\Tests\Controller; use OCA\Files\Controller\ViewController; use OCP\AppFramework\Http; +use OCP\Files\File; +use OCP\Files\Folder; use OCP\Files\IRootFolder; use OCP\IUser; use OCP\Template; @@ -68,14 +70,14 @@ class ViewControllerTest extends TestCase { public function setUp() { parent::setUp(); - $this->request = $this->getMockBuilder('\OCP\IRequest')->getMock(); - $this->urlGenerator = $this->getMockBuilder('\OCP\IURLGenerator')->getMock(); - $this->l10n = $this->getMockBuilder('\OCP\IL10N')->getMock(); - $this->config = $this->getMockBuilder('\OCP\IConfig')->getMock(); + $this->request = $this->getMockBuilder(IRequest::class)->getMock(); + $this->urlGenerator = $this->getMockBuilder(IURLGenerator::class)->getMock(); + $this->l10n = $this->getMockBuilder(IL10N::class)->getMock(); + $this->config = $this->getMockBuilder(IConfig::class)->getMock(); $this->eventDispatcher = $this->getMockBuilder('\Symfony\Component\EventDispatcher\EventDispatcherInterface')->getMock(); - $this->userSession = $this->getMockBuilder('\OCP\IUserSession')->getMock(); + $this->userSession = $this->getMockBuilder(IUserSession::class)->getMock(); $this->appManager = $this->getMockBuilder('\OCP\App\IAppManager')->getMock(); - $this->user = $this->getMockBuilder('\OCP\IUser')->getMock(); + $this->user = $this->getMockBuilder(IUser::class)->getMock(); $this->user->expects($this->any()) ->method('getUID') ->will($this->returnValue('testuser1')); @@ -281,12 +283,12 @@ class ViewControllerTest extends TestCase { } public function testShowFileRouteWithFolder() { - $node = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $node = $this->getMockBuilder(Folder::class)->getMock(); $node->expects($this->once()) ->method('getPath') ->will($this->returnValue('/testuser1/files/test/sub')); - $baseFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $baseFolder = $this->getMockBuilder(Folder::class)->getMock(); $this->rootFolder->expects($this->once()) ->method('getUserFolder') @@ -313,19 +315,19 @@ class ViewControllerTest extends TestCase { } public function testShowFileRouteWithFile() { - $parentNode = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $parentNode = $this->getMockBuilder(Folder::class)->getMock(); $parentNode->expects($this->once()) ->method('getPath') ->will($this->returnValue('testuser1/files/test')); - $baseFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $baseFolder = $this->getMockBuilder(Folder::class)->getMock(); $this->rootFolder->expects($this->once()) ->method('getUserFolder') ->with('testuser1') ->will($this->returnValue($baseFolder)); - $node = $this->getMockBuilder('\OCP\Files\File')->getMock(); + $node = $this->getMockBuilder(File::class)->getMock(); $node->expects($this->once()) ->method('getParent') ->will($this->returnValue($parentNode)); @@ -353,7 +355,7 @@ class ViewControllerTest extends TestCase { } public function testShowFileRouteWithInvalidFileId() { - $baseFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $baseFolder = $this->getMockBuilder(Folder::class)->getMock(); $this->rootFolder->expects($this->once()) ->method('getUserFolder') ->with('testuser1') @@ -380,13 +382,13 @@ class ViewControllerTest extends TestCase { ->with('files_trashbin') ->will($this->returnValue(true)); - $parentNode = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $parentNode = $this->getMockBuilder(Folder::class)->getMock(); $parentNode->expects($this->once()) ->method('getPath') ->will($this->returnValue('testuser1/files_trashbin/files/test.d1462861890/sub')); - $baseFolderFiles = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); - $baseFolderTrash = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $baseFolderFiles = $this->getMockBuilder(Folder::class)->getMock(); + $baseFolderTrash = $this->getMockBuilder(Folder::class)->getMock(); $this->rootFolder->expects($this->at(0)) ->method('getUserFolder') @@ -402,7 +404,7 @@ class ViewControllerTest extends TestCase { ->with(123) ->will($this->returnValue([])); - $node = $this->getMockBuilder('\OCP\Files\File')->getMock(); + $node = $this->getMockBuilder(File::class)->getMock(); $node->expects($this->once()) ->method('getParent') ->will($this->returnValue($parentNode)); diff --git a/apps/files/tests/Settings/AdminTest.php b/apps/files/tests/Settings/AdminTest.php index 1ab8a992879..1bcfd111db5 100644 --- a/apps/files/tests/Settings/AdminTest.php +++ b/apps/files/tests/Settings/AdminTest.php @@ -41,7 +41,7 @@ class AdminTest extends TestCase { public function setUp() { parent::setUp(); $this->iniGetWrapper = $this->getMockBuilder('\bantu\IniGetWrapper\IniGetWrapper')->disableOriginalConstructor()->getMock(); - $this->request = $this->getMockBuilder('\OCP\IRequest')->getMock(); + $this->request = $this->getMockBuilder(IRequest::class)->getMock(); $this->admin = new Admin( $this->iniGetWrapper, $this->request diff --git a/apps/files/tests/js/fileactionsmenuSpec.js b/apps/files/tests/js/fileactionsmenuSpec.js index 3028db2b3ac..926516b3043 100644 --- a/apps/files/tests/js/fileactionsmenuSpec.js +++ b/apps/files/tests/js/fileactionsmenuSpec.js @@ -205,6 +205,34 @@ describe('OCA.Files.FileActionsMenu tests', function() { expect(displayNameStub.calledWith(menuContext)).toEqual(true); expect(menu.$el.find('a[data-action=Something]').text()).toEqual('Test'); }); + it('uses plain iconClass', function() { + fileActions.registerAction({ + name: 'Something', + mime: 'text/plain', + permissions: OC.PERMISSION_ALL, + iconClass: 'test' + }); + + menu.render(); + + expect(menu.$el.find('a[data-action=Something]').children('span.icon').hasClass('test')).toEqual(true); + }); + it('calls iconClass function', function() { + var iconClassStub = sinon.stub().returns('test'); + + fileActions.registerAction({ + name: 'Something', + mime: 'text/plain', + permissions: OC.PERMISSION_ALL, + iconClass: iconClassStub + }); + + menu.render(); + + expect(iconClassStub.calledOnce).toEqual(true); + expect(iconClassStub.calledWith(menuContext.$file.attr('data-file'), menuContext)).toEqual(true); + expect(menu.$el.find('a[data-action=Something]').children('span.icon').hasClass('test')).toEqual(true); + }); }); describe('action handler', function() { diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js index 836a5e5ce71..8bb188e3602 100644 --- a/apps/files/tests/js/filelistSpec.js +++ b/apps/files/tests/js/filelistSpec.js @@ -712,8 +712,14 @@ describe('OCA.Files.FileList tests', function() { fileList.add(testFiles[i], {silent: true}); } + $tr = fileList.findFileEl('One.txt'); + expect($tr.find('a.name').css('display')).not.toEqual('none'); + // trigger rename prompt fileList.rename('One.txt'); + + expect($tr.find('a.name').css('display')).toEqual('none'); + $input = fileList.$fileList.find('input.filename'); $input.val('Two.jpg'); @@ -735,12 +741,12 @@ describe('OCA.Files.FileList tests', function() { $tr = fileList.findFileEl('One.txt'); expect($tr.length).toEqual(1); expect($tr.find('a .nametext').text().trim()).toEqual('One.txt'); - expect($tr.find('a.name').is(':visible')).toEqual(true); + expect($tr.find('a.name').css('display')).not.toEqual('none'); $tr = fileList.findFileEl('Two.jpg'); expect($tr.length).toEqual(1); expect($tr.find('a .nametext').text().trim()).toEqual('Two.jpg'); - expect($tr.find('a.name').is(':visible')).toEqual(true); + expect($tr.find('a.name').css('display')).not.toEqual('none'); // input and form are gone expect(fileList.$fileList.find('input.filename').length).toEqual(0); @@ -750,7 +756,7 @@ describe('OCA.Files.FileList tests', function() { doRename(); expect(fileList.findFileEl('Tu_after_three.txt').find('.thumbnail').parent().attr('class')) - .toEqual('icon-loading-small'); + .toContain('icon-loading-small'); deferredRename.reject(409); @@ -838,7 +844,7 @@ describe('OCA.Files.FileList tests', function() { fileList.move('One.txt', '/somedir'); expect(fileList.findFileEl('One.txt').find('.thumbnail').parent().attr('class')) - .toEqual('icon-loading-small'); + .toContain('icon-loading-small'); expect(moveStub.calledOnce).toEqual(true); @@ -935,7 +941,7 @@ describe('OCA.Files.FileList tests', function() { fileList.copy('One.txt', '/somedir'); expect(fileList.findFileEl('One.txt').find('.thumbnail').parent().attr('class')) - .toEqual('icon-loading-small'); + .toContain('icon-loading-small'); expect(copyStub.calledOnce).toEqual(true); @@ -1621,7 +1627,9 @@ describe('OCA.Files.FileList tests', function() { var setDirSpy = sinon.spy(fileList.breadcrumb, 'setDirectory'); fileList.changeDirectory('/anothersubdir'); deferredList.resolve(200, [testRoot].concat(testFiles)); - expect(fileList.breadcrumb.setDirectory.calledOnce).toEqual(true); + // twice because setDirectory gets called by _setCurrentDir which + // gets called directly by changeDirectory and via reload() + expect(fileList.breadcrumb.setDirectory.calledTwice).toEqual(true); expect(fileList.breadcrumb.setDirectory.calledWith('/anothersubdir')).toEqual(true); setDirSpy.restore(); getFolderContentsStub.restore(); @@ -1741,7 +1749,7 @@ describe('OCA.Files.FileList tests', function() { it('Selects a file when clicking its checkbox', function() { var $tr = fileList.findFileEl('One.txt'); expect($tr.find('input:checkbox').prop('checked')).toEqual(false); - $tr.find('td.filename input:checkbox').click(); + $tr.find('td.selection input:checkbox').click(); expect($tr.find('input:checkbox').prop('checked')).toEqual(true); }); @@ -1779,7 +1787,7 @@ describe('OCA.Files.FileList tests', function() { var $tr = fileList.findFileEl('One.txt'); var $tr2 = fileList.findFileEl('Three.pdf'); var e; - $tr.find('td.filename input:checkbox').click(); + $tr.find('td.selection input:checkbox').click(); e = new $.Event('click'); e.shiftKey = true; $tr2.find('td.filename .name').trigger(e); @@ -1797,7 +1805,7 @@ describe('OCA.Files.FileList tests', function() { var $tr = fileList.findFileEl('One.txt'); var $tr2 = fileList.findFileEl('Three.pdf'); var e; - $tr2.find('td.filename input:checkbox').click(); + $tr2.find('td.selection input:checkbox').click(); e = new $.Event('click'); e.shiftKey = true; $tr.find('td.filename .name').trigger(e); @@ -1813,13 +1821,13 @@ describe('OCA.Files.FileList tests', function() { }); it('Selecting all files will automatically check "select all" checkbox', function() { expect($('.select-all').prop('checked')).toEqual(false); - $('#fileList tr td.filename input:checkbox').click(); + $('#fileList tr td.selection input:checkbox').click(); expect($('.select-all').prop('checked')).toEqual(true); }); it('Selecting all files on the first visible page will not automatically check "select all" checkbox', function() { fileList.setFiles(generateFiles(0, 41)); expect($('.select-all').prop('checked')).toEqual(false); - $('#fileList tr td.filename input:checkbox').click(); + $('#fileList tr td.selection input:checkbox').click(); expect($('.select-all').prop('checked')).toEqual(false); }); it('Selecting all files also selects hidden files when invisible', function() { @@ -1831,7 +1839,7 @@ describe('OCA.Files.FileList tests', function() { size: 150 })); $('.select-all').click(); - expect($tr.find('td.filename input:checkbox').prop('checked')).toEqual(true); + expect($tr.find('td.selection input:checkbox').prop('checked')).toEqual(true); expect(_.pluck(fileList.getSelectedFiles(), 'name')).toContain('.hidden'); }); it('Clicking "select all" will select/deselect all files', function() { @@ -3150,7 +3158,7 @@ describe('OCA.Files.FileList tests', function() { fileList.showFileBusyState('Two.jpg', true); expect($tr.hasClass('busy')).toEqual(true); expect($tr.find('.thumbnail').parent().attr('class')) - .toEqual('icon-loading-small'); + .toContain('icon-loading-small'); fileList.showFileBusyState('Two.jpg', false); diff --git a/apps/files/tests/js/tagspluginspec.js b/apps/files/tests/js/tagspluginspec.js index a4efc08aa53..363a8bb0e19 100644 --- a/apps/files/tests/js/tagspluginspec.js +++ b/apps/files/tests/js/tagspluginspec.js @@ -49,39 +49,39 @@ describe('OCA.Files.TagsPlugin tests', function() { describe('Favorites icon', function() { it('renders favorite icon and extra data', function() { - var $action, $tr; + var $favoriteMark, $tr; fileList.setFiles(testFiles); $tr = fileList.$el.find('tbody tr:first'); - $action = $tr.find('.action-favorite'); - expect($action.length).toEqual(1); - expect($action.hasClass('permanent')).toEqual(false); + $favoriteMark = $tr.find('.favorite-mark'); + expect($favoriteMark.length).toEqual(1); + expect($favoriteMark.hasClass('permanent')).toEqual(false); expect($tr.attr('data-tags').split('|')).toEqual(['tag1', 'tag2']); expect($tr.attr('data-favorite')).not.toBeDefined(); }); it('renders permanent favorite icon and extra data', function() { - var $action, $tr; + var $favoriteMark, $tr; testFiles[0].tags.push(OC.TAG_FAVORITE); fileList.setFiles(testFiles); $tr = fileList.$el.find('tbody tr:first'); - $action = $tr.find('.action-favorite'); - expect($action.length).toEqual(1); - expect($action.hasClass('permanent')).toEqual(true); + $favoriteMark = $tr.find('.favorite-mark'); + expect($favoriteMark.length).toEqual(1); + expect($favoriteMark.hasClass('permanent')).toEqual(true); expect($tr.attr('data-tags').split('|')).toEqual(['tag1', 'tag2', OC.TAG_FAVORITE]); expect($tr.attr('data-favorite')).toEqual('true'); }); - it('adds has-favorites class on table', function() { - expect(fileList.$el.hasClass('has-favorites')).toEqual(true); - }); }); describe('Applying tags', function() { - it('sends request to server and updates icon', function() { + it('through FileActionsMenu sends request to server and updates icon', function() { var request; fileList.setFiles(testFiles); var $tr = fileList.findFileEl('One.txt'); - var $action = $tr.find('.action-favorite'); - $action.click(); + var $favoriteMark = $tr.find('.favorite-mark'); + var $showMenuAction = $tr.find('.action-menu'); + $showMenuAction.click(); + var $favoriteActionInMenu = $tr.find('.fileActionsMenu .action-favorite'); + $favoriteActionInMenu.click(); expect(fakeServer.requests.length).toEqual(1); request = fakeServer.requests[0]; @@ -94,15 +94,21 @@ describe('OCA.Files.TagsPlugin tests', function() { // re-read the element as it was re-inserted $tr = fileList.findFileEl('One.txt'); - $action = $tr.find('.action-favorite'); + $favoriteMark = $tr.find('.favorite-mark'); + $showMenuAction = $tr.find('.action-menu'); expect($tr.attr('data-favorite')).toEqual('true'); expect($tr.attr('data-tags').split('|')).toEqual(['tag1', 'tag2', 'tag3', OC.TAG_FAVORITE]); expect(fileList.files[0].tags).toEqual(['tag1', 'tag2', 'tag3', OC.TAG_FAVORITE]); - expect($action.find('.icon').hasClass('icon-star')).toEqual(false); - expect($action.find('.icon').hasClass('icon-starred')).toEqual(true); + expect($favoriteMark.find('.icon').hasClass('icon-star')).toEqual(false); + expect($favoriteMark.find('.icon').hasClass('icon-starred')).toEqual(true); - $action.click(); + // show again the menu and get the new action, as the menu was + // closed and removed (and with it, the previous action) when that + // action was clicked + $showMenuAction.click(); + $favoriteActionInMenu = $tr.find('.fileActionsMenu .action-favorite'); + $favoriteActionInMenu.click(); expect(fakeServer.requests.length).toEqual(2); request = fakeServer.requests[1]; @@ -115,13 +121,13 @@ describe('OCA.Files.TagsPlugin tests', function() { // re-read the element as it was re-inserted $tr = fileList.findFileEl('One.txt'); - $action = $tr.find('.action-favorite'); + $favoriteMark = $tr.find('.favorite-mark'); expect($tr.attr('data-favorite')).toBeFalsy(); expect($tr.attr('data-tags').split('|')).toEqual(['tag1', 'tag2', 'tag3']); expect(fileList.files[0].tags).toEqual(['tag1', 'tag2', 'tag3']); - expect($action.find('.icon').hasClass('icon-star')).toEqual(true); - expect($action.find('.icon').hasClass('icon-starred')).toEqual(false); + expect($favoriteMark.find('.icon').hasClass('icon-star')).toEqual(true); + expect($favoriteMark.find('.icon').hasClass('icon-starred')).toEqual(false); }); }); describe('elementToFile', function() { diff --git a/apps/files_external/l10n/es_CO.js b/apps/files_external/l10n/es_CO.js new file mode 100644 index 00000000000..720a7c663d2 --- /dev/null +++ b/apps/files_external/l10n/es_CO.js @@ -0,0 +1,134 @@ +OC.L10N.register( + "files_external", + { + "External storages" : "Almacenamiento externo", + "Personal" : "Personal", + "System" : "Sistema", + "Grant access" : "Conceder acceso", + "Error configuring OAuth1" : "Se presentó un error al configurar OAuth1", + "Please provide a valid app key and secret." : "Por favor proporciona una llave de aplicación y secreto válidos.", + "Error configuring OAuth2" : "Se presentó un error al configurar OAuth2", + "Generate keys" : "Generar llaves", + "Error generating key pair" : "Se presentó un error al generar el juego de llaves", + "All users. Type to select user or group." : "Todos los usuarios. Escribe para seleccionar el usuario o grupo", + "(group)" : "(grupo)", + "Compatibility with Mac NFD encoding (slow)" : "Compatibilidad con codificación Mac NFD (lenta)", + "Admin defined" : "Administrador definido", + "Are you sure you want to delete this external storage" : "¿Estás seguro de que quieres borrar este almacenamiento externo?", + "Delete storage?" : "¿Borrar almacenamiento?", + "Saved" : "Guardado", + "Saving..." : "Guardando...", + "Save" : "Guardar", + "Empty response from the server" : "Respuesta del servidor vacía", + "Couldn't access. Please log out and in again to activate this mount point" : "No fue posible accesar. Por favor sal de la sesión y vuelve a entrar para activar este punto de montaje", + "Couldn't get the information from the remote server: {code} {type}" : "No fue posible obtener la información del servidor remoto: {code} {type}", + "Couldn't get the list of external mount points: {type}" : "No fue posible obtener la lista de puntos de montaje externos: {type}", + "There was an error with message: " : "Se presentó un problema con el mensaje:", + "External mount error" : "Error de montaje externo", + "external-storage" : "almacenamiento externo", + "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "No fue posible obtener el listado de los puntos de motaje de unidades de red Windows. Respuesta vacía del servidor", + "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "Algunos de los puntos de montaje externos configurados no se encuentran conectados. Por favor has click en los renglon(es) en rojo para más información", + "Please enter the credentials for the {mount} mount" : "Por favor ingresa las credenciales para el montaje {mount}", + "Username" : "Usuario", + "Password" : "Contraseña", + "Credentials saved" : "Credenciales guardadas", + "Credentials saving failed" : "Se ha presentado una falla al guardar las credenciales", + "Credentials required" : "Se requieren credenciales", + "Storage with ID \"%d\" not found" : "El almacenamiento con ID \"%d\" no fue encontrado", + "Invalid backend or authentication mechanism class" : "Backend o clase de mecanismo de autenticación inválido ", + "Invalid mount point" : "Punto de montaje inválido", + "Objectstore forbidden" : "Objectstore prohibido", + "Invalid storage backend \"%s\"" : "Almacenamiento de backend \"%s\" inválido ", + "Not permitted to use backend \"%s\"" : "No está permitido usar el backend \"%s\"", + "Not permitted to use authentication mechanism \"%s\"" : "No está permitido el uso del mecanismo de autenticación \"%s\"", + "Unsatisfied backend parameters" : "Parametros del backend no satisfechos", + "Unsatisfied authentication mechanism parameters" : "Parámetros no satisfechos del mecanismo de autenticación", + "Insufficient data: %s" : "Datos insuficientes: %s", + "%s" : "%s", + "Storage with ID \"%d\" is not user editable" : "El almacenamiento con ID \"%d\" no puede ser editado por el usuario", + "Access key" : "Llave de acceso", + "Secret key" : "Llave secreta", + "Builtin" : "Integrado", + "None" : "Ninguno", + "OAuth1" : "OAuth1", + "App key" : "Llave de la aplicación", + "App secret" : "Secreto de la aplicación", + "OAuth2" : "OAuth2", + "Client ID" : "ID del cliente", + "Client secret" : "Secreto del cliente", + "OpenStack" : "OpenStack", + "Tenant name" : "Nombre de inquilino", + "Identity endpoint URL" : "URL del punto de enlace de Identidad", + "Rackspace" : "Rackspace", + "API key" : "Llave de API", + "Global credentials" : "Credenciales globales", + "Log-in credentials, save in database" : "Credenciales de inicio de sesión, guardar en la base de datos", + "Username and password" : "Usuario y contraseña", + "Log-in credentials, save in session" : "Credenciales de inicio de sesión, guardar en la sesión", + "User entered, store in database" : "Usuario ingresado, almacenar en la base de datos", + "RSA public key" : "Llave pública RSA", + "Public key" : "Llave pública", + "Amazon S3" : "Amazon S3", + "Bucket" : "Bucket", + "Hostname" : "Nombre del servidor", + "Port" : "Puerto", + "Region" : "Región", + "Enable SSL" : "Habilitar SSL", + "Enable Path Style" : "Habilitar Estilo de Ruta", + "WebDAV" : "WebDAV", + "URL" : "URL", + "Remote subfolder" : "Subcarpeta remota", + "Secure https://" : "https:// seguro", + "FTP" : "FTP", + "Host" : "Servidor", + "Secure ftps://" : "ftps:// seguro", + "Local" : "Local", + "Location" : "Ubicación", + "Nextcloud" : "Nextcloud", + "SFTP" : "SFTP", + "Root" : "Raíz", + "SFTP with secret key login" : "Inicio de sesión SFTP con llave secreta", + "SMB / CIFS" : "SMB / CIFS", + "Share" : "Compartir", + "Domain" : "Dominio", + "SMB / CIFS using OC login" : "SMB / CIFS usando inicio de sesión OC", + "Username as share" : "Usuario como elemento compartido", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Service name" : "Nombre del servicio", + "Request timeout (seconds)" : "Tiemo de vida de la solicitud (segudos)", + "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "El soporte para cURL en PHP no se encuentra habilitado o instalado. El montaje de %s no es posible. Por favor solicita a tu administador su instalación. ", + "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "El soporte para FTP en PHP no se encuentra habilitado o instalado. El montaje de %s no es posible. Por favor solicita a tu administador su instalación. ", + "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" no se encuentra instalado. El montaje de %s no es posible. Por favor solicita a tu administrador su instalación. ", + "No external storage configured" : "No se ha configurado el almacenamiento externo", + "You can add external storages in the personal settings" : "Puedes agregar almacenamiento externo en las configuraciones personales", + "Name" : "Nombre", + "Storage type" : "Tipo de almacenamiento", + "Scope" : "Alcance", + "Enable encryption" : "Habilitar encripción", + "Enable previews" : "Habilitar vistas previas", + "Enable sharing" : "Habilitar compartir", + "Check for changes" : "Verificar si hay cambios", + "Never" : "Nunca", + "Once every direct access" : "Una vez cada acceso directo", + "Folder name" : "Nombre de la carpeta", + "External storage" : "Almacenamiento externo", + "Authentication" : "Autenticación", + "Configuration" : "Configuración", + "Available for" : "Disponible para", + "Add storage" : "Agregar almacenamiento", + "Advanced settings" : "Configuraciones avanzadas", + "Delete" : "Borrar", + "Allow users to mount external storage" : "Permitir a los usuarios montar almacenamiento externo", + "Allow users to mount the following external storage" : "Permitir a los usuarios montar el siguiente almacenamiento externo", + "Fetching request tokens failed. Verify that your app key and secret are correct." : "Se presentó una falla al buscar las fichas de solicitud. Por favor verifica que tu llave de aplicación y tu secreto sean correctos. ", + "Fetching access tokens failed. Verify that your app key and secret are correct." : "Se presentó una falla al buscar las fichas de acceso. Por favor verifica que tu llave de aplicación y tu secreto sean correctos. ", + "Step 1 failed. Exception: %s" : "Falla en el paso 1: Excepción %s", + "Step 2 failed. Exception: %s" : "Paso 2 falló. Excepción: %s", + "Dropbox App Configuration" : "Configuración de la aplicación Dropbox", + "Google Drive App Configuration" : "Configuración de Aplicación Google Drive", + "Storage with id \"%i\" not found" : "El almacenamiento con id \"%i\" no fue encontrado", + "Storage with id \"%i\" is not user editable" : "El almacenamiento con id \"%i\" no puede ser editado por el usuario", + "Dropbox" : "Dropbox", + "Google Drive" : "Google Drive" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/es_CO.json b/apps/files_external/l10n/es_CO.json new file mode 100644 index 00000000000..59b9db811b3 --- /dev/null +++ b/apps/files_external/l10n/es_CO.json @@ -0,0 +1,132 @@ +{ "translations": { + "External storages" : "Almacenamiento externo", + "Personal" : "Personal", + "System" : "Sistema", + "Grant access" : "Conceder acceso", + "Error configuring OAuth1" : "Se presentó un error al configurar OAuth1", + "Please provide a valid app key and secret." : "Por favor proporciona una llave de aplicación y secreto válidos.", + "Error configuring OAuth2" : "Se presentó un error al configurar OAuth2", + "Generate keys" : "Generar llaves", + "Error generating key pair" : "Se presentó un error al generar el juego de llaves", + "All users. Type to select user or group." : "Todos los usuarios. Escribe para seleccionar el usuario o grupo", + "(group)" : "(grupo)", + "Compatibility with Mac NFD encoding (slow)" : "Compatibilidad con codificación Mac NFD (lenta)", + "Admin defined" : "Administrador definido", + "Are you sure you want to delete this external storage" : "¿Estás seguro de que quieres borrar este almacenamiento externo?", + "Delete storage?" : "¿Borrar almacenamiento?", + "Saved" : "Guardado", + "Saving..." : "Guardando...", + "Save" : "Guardar", + "Empty response from the server" : "Respuesta del servidor vacía", + "Couldn't access. Please log out and in again to activate this mount point" : "No fue posible accesar. Por favor sal de la sesión y vuelve a entrar para activar este punto de montaje", + "Couldn't get the information from the remote server: {code} {type}" : "No fue posible obtener la información del servidor remoto: {code} {type}", + "Couldn't get the list of external mount points: {type}" : "No fue posible obtener la lista de puntos de montaje externos: {type}", + "There was an error with message: " : "Se presentó un problema con el mensaje:", + "External mount error" : "Error de montaje externo", + "external-storage" : "almacenamiento externo", + "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "No fue posible obtener el listado de los puntos de motaje de unidades de red Windows. Respuesta vacía del servidor", + "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "Algunos de los puntos de montaje externos configurados no se encuentran conectados. Por favor has click en los renglon(es) en rojo para más información", + "Please enter the credentials for the {mount} mount" : "Por favor ingresa las credenciales para el montaje {mount}", + "Username" : "Usuario", + "Password" : "Contraseña", + "Credentials saved" : "Credenciales guardadas", + "Credentials saving failed" : "Se ha presentado una falla al guardar las credenciales", + "Credentials required" : "Se requieren credenciales", + "Storage with ID \"%d\" not found" : "El almacenamiento con ID \"%d\" no fue encontrado", + "Invalid backend or authentication mechanism class" : "Backend o clase de mecanismo de autenticación inválido ", + "Invalid mount point" : "Punto de montaje inválido", + "Objectstore forbidden" : "Objectstore prohibido", + "Invalid storage backend \"%s\"" : "Almacenamiento de backend \"%s\" inválido ", + "Not permitted to use backend \"%s\"" : "No está permitido usar el backend \"%s\"", + "Not permitted to use authentication mechanism \"%s\"" : "No está permitido el uso del mecanismo de autenticación \"%s\"", + "Unsatisfied backend parameters" : "Parametros del backend no satisfechos", + "Unsatisfied authentication mechanism parameters" : "Parámetros no satisfechos del mecanismo de autenticación", + "Insufficient data: %s" : "Datos insuficientes: %s", + "%s" : "%s", + "Storage with ID \"%d\" is not user editable" : "El almacenamiento con ID \"%d\" no puede ser editado por el usuario", + "Access key" : "Llave de acceso", + "Secret key" : "Llave secreta", + "Builtin" : "Integrado", + "None" : "Ninguno", + "OAuth1" : "OAuth1", + "App key" : "Llave de la aplicación", + "App secret" : "Secreto de la aplicación", + "OAuth2" : "OAuth2", + "Client ID" : "ID del cliente", + "Client secret" : "Secreto del cliente", + "OpenStack" : "OpenStack", + "Tenant name" : "Nombre de inquilino", + "Identity endpoint URL" : "URL del punto de enlace de Identidad", + "Rackspace" : "Rackspace", + "API key" : "Llave de API", + "Global credentials" : "Credenciales globales", + "Log-in credentials, save in database" : "Credenciales de inicio de sesión, guardar en la base de datos", + "Username and password" : "Usuario y contraseña", + "Log-in credentials, save in session" : "Credenciales de inicio de sesión, guardar en la sesión", + "User entered, store in database" : "Usuario ingresado, almacenar en la base de datos", + "RSA public key" : "Llave pública RSA", + "Public key" : "Llave pública", + "Amazon S3" : "Amazon S3", + "Bucket" : "Bucket", + "Hostname" : "Nombre del servidor", + "Port" : "Puerto", + "Region" : "Región", + "Enable SSL" : "Habilitar SSL", + "Enable Path Style" : "Habilitar Estilo de Ruta", + "WebDAV" : "WebDAV", + "URL" : "URL", + "Remote subfolder" : "Subcarpeta remota", + "Secure https://" : "https:// seguro", + "FTP" : "FTP", + "Host" : "Servidor", + "Secure ftps://" : "ftps:// seguro", + "Local" : "Local", + "Location" : "Ubicación", + "Nextcloud" : "Nextcloud", + "SFTP" : "SFTP", + "Root" : "Raíz", + "SFTP with secret key login" : "Inicio de sesión SFTP con llave secreta", + "SMB / CIFS" : "SMB / CIFS", + "Share" : "Compartir", + "Domain" : "Dominio", + "SMB / CIFS using OC login" : "SMB / CIFS usando inicio de sesión OC", + "Username as share" : "Usuario como elemento compartido", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Service name" : "Nombre del servicio", + "Request timeout (seconds)" : "Tiemo de vida de la solicitud (segudos)", + "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "El soporte para cURL en PHP no se encuentra habilitado o instalado. El montaje de %s no es posible. Por favor solicita a tu administador su instalación. ", + "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "El soporte para FTP en PHP no se encuentra habilitado o instalado. El montaje de %s no es posible. Por favor solicita a tu administador su instalación. ", + "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" no se encuentra instalado. El montaje de %s no es posible. Por favor solicita a tu administrador su instalación. ", + "No external storage configured" : "No se ha configurado el almacenamiento externo", + "You can add external storages in the personal settings" : "Puedes agregar almacenamiento externo en las configuraciones personales", + "Name" : "Nombre", + "Storage type" : "Tipo de almacenamiento", + "Scope" : "Alcance", + "Enable encryption" : "Habilitar encripción", + "Enable previews" : "Habilitar vistas previas", + "Enable sharing" : "Habilitar compartir", + "Check for changes" : "Verificar si hay cambios", + "Never" : "Nunca", + "Once every direct access" : "Una vez cada acceso directo", + "Folder name" : "Nombre de la carpeta", + "External storage" : "Almacenamiento externo", + "Authentication" : "Autenticación", + "Configuration" : "Configuración", + "Available for" : "Disponible para", + "Add storage" : "Agregar almacenamiento", + "Advanced settings" : "Configuraciones avanzadas", + "Delete" : "Borrar", + "Allow users to mount external storage" : "Permitir a los usuarios montar almacenamiento externo", + "Allow users to mount the following external storage" : "Permitir a los usuarios montar el siguiente almacenamiento externo", + "Fetching request tokens failed. Verify that your app key and secret are correct." : "Se presentó una falla al buscar las fichas de solicitud. Por favor verifica que tu llave de aplicación y tu secreto sean correctos. ", + "Fetching access tokens failed. Verify that your app key and secret are correct." : "Se presentó una falla al buscar las fichas de acceso. Por favor verifica que tu llave de aplicación y tu secreto sean correctos. ", + "Step 1 failed. Exception: %s" : "Falla en el paso 1: Excepción %s", + "Step 2 failed. Exception: %s" : "Paso 2 falló. Excepción: %s", + "Dropbox App Configuration" : "Configuración de la aplicación Dropbox", + "Google Drive App Configuration" : "Configuración de Aplicación Google Drive", + "Storage with id \"%i\" not found" : "El almacenamiento con id \"%i\" no fue encontrado", + "Storage with id \"%i\" is not user editable" : "El almacenamiento con id \"%i\" no puede ser editado por el usuario", + "Dropbox" : "Dropbox", + "Google Drive" : "Google Drive" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/files_external/l10n/fi.js b/apps/files_external/l10n/fi.js index ef9e732a23a..3015ada9ac1 100644 --- a/apps/files_external/l10n/fi.js +++ b/apps/files_external/l10n/fi.js @@ -14,15 +14,19 @@ OC.L10N.register( "(group)" : "(ryhmä)", "Compatibility with Mac NFD encoding (slow)" : "Yhteensopivuus Mac NFD -enkoodauksen kanssa (hidas)", "Admin defined" : "Ylläpitäjän määrittämä", + "Are you sure you want to delete this external storage" : "Haluatko varmasti poistaa tämän erillisen tallennustilan", + "Delete storage?" : "Poistetaanko tallennustila?", "Saved" : "Tallennettu", "Saving..." : "Tallennetaan...", "Save" : "Tallenna", "Empty response from the server" : "Tyhjä vastaus palvelimelta", + "Couldn't access. Please log out and in again to activate this mount point" : "Käyttö ei onnistunut. Kirjaudu ulos ja takaisin sisään aktivoidaksesi tämän liitoskohdan", "Couldn't get the information from the remote server: {code} {type}" : "Tietojen saaminen etäpalvelimelta epäonnistui: {code} {type}", "Couldn't get the list of external mount points: {type}" : "Erillisten liitospisteiden listauksen noutaminen epäonnistui: {type}", "There was an error with message: " : "Tapahtui virhe viestillä:", "External mount error" : "Ulkoinen liitosvirhe", "external-storage" : "ulkoinen taltio", + "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "Ei voitu noutaa listaa Windows-verkkoasemien liitoskohdista: tyhjä vastaus palvelimelta", "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "Jotkin määritetyt erilliset liitospisteet eivät ole yhdistettynä. Napsauta punaisia rivejä saadaksesi lisätietoja", "Please enter the credentials for the {mount} mount" : "Anna kirjautumistiedot liitokselle {mount}", "Username" : "Käyttäjätunnus", @@ -34,7 +38,7 @@ OC.L10N.register( "Invalid backend or authentication mechanism class" : "Virheellinen tietovarasto tai tunnistautumismekanismin luokka", "Invalid mount point" : "Virheellinen liitoskohta", "Objectstore forbidden" : "Objektimuisti estetty", - "Invalid storage backend \"%s\"" : "Virheellinen tietovarasto \"%s\"", + "Invalid storage backend \"%s\"" : "Virheellinen tallennustilan taustaosa \"%s\"", "Not permitted to use backend \"%s\"" : "Ei lupaa käyttää tietovarastoa \"%s\"", "Not permitted to use authentication mechanism \"%s\"" : "Ei lupaa käyttää tunnistautumismekanismia \"%s\"", "Unsatisfied backend parameters" : "Riittämättömät tietovaraston parametrit", diff --git a/apps/files_external/l10n/fi.json b/apps/files_external/l10n/fi.json index 07db79a2a7f..a4372667eb1 100644 --- a/apps/files_external/l10n/fi.json +++ b/apps/files_external/l10n/fi.json @@ -12,15 +12,19 @@ "(group)" : "(ryhmä)", "Compatibility with Mac NFD encoding (slow)" : "Yhteensopivuus Mac NFD -enkoodauksen kanssa (hidas)", "Admin defined" : "Ylläpitäjän määrittämä", + "Are you sure you want to delete this external storage" : "Haluatko varmasti poistaa tämän erillisen tallennustilan", + "Delete storage?" : "Poistetaanko tallennustila?", "Saved" : "Tallennettu", "Saving..." : "Tallennetaan...", "Save" : "Tallenna", "Empty response from the server" : "Tyhjä vastaus palvelimelta", + "Couldn't access. Please log out and in again to activate this mount point" : "Käyttö ei onnistunut. Kirjaudu ulos ja takaisin sisään aktivoidaksesi tämän liitoskohdan", "Couldn't get the information from the remote server: {code} {type}" : "Tietojen saaminen etäpalvelimelta epäonnistui: {code} {type}", "Couldn't get the list of external mount points: {type}" : "Erillisten liitospisteiden listauksen noutaminen epäonnistui: {type}", "There was an error with message: " : "Tapahtui virhe viestillä:", "External mount error" : "Ulkoinen liitosvirhe", "external-storage" : "ulkoinen taltio", + "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "Ei voitu noutaa listaa Windows-verkkoasemien liitoskohdista: tyhjä vastaus palvelimelta", "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "Jotkin määritetyt erilliset liitospisteet eivät ole yhdistettynä. Napsauta punaisia rivejä saadaksesi lisätietoja", "Please enter the credentials for the {mount} mount" : "Anna kirjautumistiedot liitokselle {mount}", "Username" : "Käyttäjätunnus", @@ -32,7 +36,7 @@ "Invalid backend or authentication mechanism class" : "Virheellinen tietovarasto tai tunnistautumismekanismin luokka", "Invalid mount point" : "Virheellinen liitoskohta", "Objectstore forbidden" : "Objektimuisti estetty", - "Invalid storage backend \"%s\"" : "Virheellinen tietovarasto \"%s\"", + "Invalid storage backend \"%s\"" : "Virheellinen tallennustilan taustaosa \"%s\"", "Not permitted to use backend \"%s\"" : "Ei lupaa käyttää tietovarastoa \"%s\"", "Not permitted to use authentication mechanism \"%s\"" : "Ei lupaa käyttää tunnistautumismekanismia \"%s\"", "Unsatisfied backend parameters" : "Riittämättömät tietovaraston parametrit", diff --git a/apps/files_external/l10n/hu.js b/apps/files_external/l10n/hu.js index 07441f60739..81eddd893a0 100644 --- a/apps/files_external/l10n/hu.js +++ b/apps/files_external/l10n/hu.js @@ -14,15 +14,19 @@ OC.L10N.register( "(group)" : "(csoport)", "Compatibility with Mac NFD encoding (slow)" : "Kompatibilitás a Mac NFD kódolással (lassú)", "Admin defined" : "Adminisztrátor definiálva", + "Are you sure you want to delete this external storage" : "Biztosan törlöd ezt a külső tárolót", + "Delete storage?" : "Tároló törlése?", "Saved" : "Elmentve", "Saving..." : "Mentés...", "Save" : "Mentés", "Empty response from the server" : "Üres válasz a szervertől", + "Couldn't access. Please log out and in again to activate this mount point" : "Nem hozzáférhető. Kérjük lépj ki és be ismét a csatolási pont aktiválásához", "Couldn't get the information from the remote server: {code} {type}" : "Nem sikerült lekérdezni az információkat a távoli szerverről: {code} {type}", "Couldn't get the list of external mount points: {type}" : "Nem lehet letölteni a külső csatolási pontok listáját: {type}", "There was an error with message: " : "Hiba történt ezzel az üzenettel:", "External mount error" : "Külső csatolási hiba", "external-storage" : "külső tároló", + "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "A Windows megosztások listája nem begyűjthető: üres válasz a szervertől", "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "Néhány beállított külső csatolási pont nincs kapcsolatban. További információkért kattints a piros sor(ok)ra.", "Please enter the credentials for the {mount} mount" : "Kérlek add meg a következő csatolás azonosítóit: {mount}", "Username" : "Felhasználónév", @@ -30,9 +34,18 @@ OC.L10N.register( "Credentials saved" : "Azonosítók mentve", "Credentials saving failed" : "Azonosítók mentése sikertelen", "Credentials required" : "Azonosító szükséges", + "Storage with ID \"%d\" not found" : "A(z) \"%d\" azonosítójú tároló nincs meg", + "Invalid backend or authentication mechanism class" : "Érvénytelen háttér vagy autentikációs mechanizmus osztály", "Invalid mount point" : "Érvénytelen csatolási pont", + "Objectstore forbidden" : "Objektumtár tiltott", + "Invalid storage backend \"%s\"" : "Érvénytelen háttértár kezelő \"%s\"", + "Not permitted to use backend \"%s\"" : "A(z) \"%s\" háttér használata nem engedélyezett", + "Not permitted to use authentication mechanism \"%s\"" : "Nem engedélyezett a \"%s\" autentikációs mechanizmus használata", + "Unsatisfied backend parameters" : "Elégtelen háttér adatok", + "Unsatisfied authentication mechanism parameters" : "Elégtelen autentikációs mechanizmus paraméterek", "Insufficient data: %s" : "Nem elegendő adat: %s", "%s" : "%s", + "Storage with ID \"%d\" is not user editable" : "A(z) \"%d\" azonosítójú tároló nem szerkeszthető a felhasználók által", "Access key" : "Hozzáférési kulcs", "Secret key" : "Titkos kulcs", "Builtin" : "Beépített", diff --git a/apps/files_external/l10n/hu.json b/apps/files_external/l10n/hu.json index dad54b8c4f9..f05459b00b9 100644 --- a/apps/files_external/l10n/hu.json +++ b/apps/files_external/l10n/hu.json @@ -12,15 +12,19 @@ "(group)" : "(csoport)", "Compatibility with Mac NFD encoding (slow)" : "Kompatibilitás a Mac NFD kódolással (lassú)", "Admin defined" : "Adminisztrátor definiálva", + "Are you sure you want to delete this external storage" : "Biztosan törlöd ezt a külső tárolót", + "Delete storage?" : "Tároló törlése?", "Saved" : "Elmentve", "Saving..." : "Mentés...", "Save" : "Mentés", "Empty response from the server" : "Üres válasz a szervertől", + "Couldn't access. Please log out and in again to activate this mount point" : "Nem hozzáférhető. Kérjük lépj ki és be ismét a csatolási pont aktiválásához", "Couldn't get the information from the remote server: {code} {type}" : "Nem sikerült lekérdezni az információkat a távoli szerverről: {code} {type}", "Couldn't get the list of external mount points: {type}" : "Nem lehet letölteni a külső csatolási pontok listáját: {type}", "There was an error with message: " : "Hiba történt ezzel az üzenettel:", "External mount error" : "Külső csatolási hiba", "external-storage" : "külső tároló", + "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "A Windows megosztások listája nem begyűjthető: üres válasz a szervertől", "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "Néhány beállított külső csatolási pont nincs kapcsolatban. További információkért kattints a piros sor(ok)ra.", "Please enter the credentials for the {mount} mount" : "Kérlek add meg a következő csatolás azonosítóit: {mount}", "Username" : "Felhasználónév", @@ -28,9 +32,18 @@ "Credentials saved" : "Azonosítók mentve", "Credentials saving failed" : "Azonosítók mentése sikertelen", "Credentials required" : "Azonosító szükséges", + "Storage with ID \"%d\" not found" : "A(z) \"%d\" azonosítójú tároló nincs meg", + "Invalid backend or authentication mechanism class" : "Érvénytelen háttér vagy autentikációs mechanizmus osztály", "Invalid mount point" : "Érvénytelen csatolási pont", + "Objectstore forbidden" : "Objektumtár tiltott", + "Invalid storage backend \"%s\"" : "Érvénytelen háttértár kezelő \"%s\"", + "Not permitted to use backend \"%s\"" : "A(z) \"%s\" háttér használata nem engedélyezett", + "Not permitted to use authentication mechanism \"%s\"" : "Nem engedélyezett a \"%s\" autentikációs mechanizmus használata", + "Unsatisfied backend parameters" : "Elégtelen háttér adatok", + "Unsatisfied authentication mechanism parameters" : "Elégtelen autentikációs mechanizmus paraméterek", "Insufficient data: %s" : "Nem elegendő adat: %s", "%s" : "%s", + "Storage with ID \"%d\" is not user editable" : "A(z) \"%d\" azonosítójú tároló nem szerkeszthető a felhasználók által", "Access key" : "Hozzáférési kulcs", "Secret key" : "Titkos kulcs", "Builtin" : "Beépített", diff --git a/apps/files_external/l10n/is.js b/apps/files_external/l10n/is.js index 025e61daa7b..d0dcfd219d5 100644 --- a/apps/files_external/l10n/is.js +++ b/apps/files_external/l10n/is.js @@ -14,6 +14,8 @@ OC.L10N.register( "(group)" : "(hópur)", "Compatibility with Mac NFD encoding (slow)" : "Samhæfni við Mac NFD kóðun (hægvirkt)", "Admin defined" : "Skilgreindur kerfisstjóri", + "Are you sure you want to delete this external storage" : "Ertu viss um að þú viljir eyða þessari ytri geymslu?", + "Delete storage?" : "Eyða geymslu?", "Saved" : "Vistað", "Saving..." : "Er að vista ...", "Save" : "Vista", diff --git a/apps/files_external/l10n/is.json b/apps/files_external/l10n/is.json index 410a33ded3e..fa7957f3c23 100644 --- a/apps/files_external/l10n/is.json +++ b/apps/files_external/l10n/is.json @@ -12,6 +12,8 @@ "(group)" : "(hópur)", "Compatibility with Mac NFD encoding (slow)" : "Samhæfni við Mac NFD kóðun (hægvirkt)", "Admin defined" : "Skilgreindur kerfisstjóri", + "Are you sure you want to delete this external storage" : "Ertu viss um að þú viljir eyða þessari ytri geymslu?", + "Delete storage?" : "Eyða geymslu?", "Saved" : "Vistað", "Saving..." : "Er að vista ...", "Save" : "Vista", diff --git a/apps/files_external/l10n/nl.js b/apps/files_external/l10n/nl.js index b8e262085ee..65438628a79 100644 --- a/apps/files_external/l10n/nl.js +++ b/apps/files_external/l10n/nl.js @@ -14,6 +14,8 @@ OC.L10N.register( "(group)" : "(groep)", "Compatibility with Mac NFD encoding (slow)" : "Compatibiliteit met Mac NFD encoding (traag)", "Admin defined" : "Beheerder gedefinieerd", + "Are you sure you want to delete this external storage" : "Weet je zeker dat je de externe opslag wilt verwijderen?", + "Delete storage?" : "Opslag verwijderen?", "Saved" : "Bewaard", "Saving..." : "Bewaren...", "Save" : "Bewaren", diff --git a/apps/files_external/l10n/nl.json b/apps/files_external/l10n/nl.json index d92ccc5c325..ed16cd13df3 100644 --- a/apps/files_external/l10n/nl.json +++ b/apps/files_external/l10n/nl.json @@ -12,6 +12,8 @@ "(group)" : "(groep)", "Compatibility with Mac NFD encoding (slow)" : "Compatibiliteit met Mac NFD encoding (traag)", "Admin defined" : "Beheerder gedefinieerd", + "Are you sure you want to delete this external storage" : "Weet je zeker dat je de externe opslag wilt verwijderen?", + "Delete storage?" : "Opslag verwijderen?", "Saved" : "Bewaard", "Saving..." : "Bewaren...", "Save" : "Bewaren", diff --git a/apps/files_external/l10n/sk.js b/apps/files_external/l10n/sk.js index a288544ce45..a37d4961abf 100644 --- a/apps/files_external/l10n/sk.js +++ b/apps/files_external/l10n/sk.js @@ -1,28 +1,40 @@ OC.L10N.register( "files_external", { - "Fetching request tokens failed. Verify that your app key and secret are correct." : "Sťahovanie tokenov požiadavky zlyhalo. Overte prosím, či je aplikačný kľúč a heslo (secret) zadané správne.", - "Fetching access tokens failed. Verify that your app key and secret are correct." : "Sťahovanie prístupových tokenov zlyhalo. Overte prosím, či je aplikačný kľúč a heslo (secret) zadané správne.", - "Please provide a valid app key and secret." : "Zadajte prosím platný aplikačný kľúč a heslo (secret).", - "Step 1 failed. Exception: %s" : "Krok 1 zlyhal. Výnimka: %s", - "Step 2 failed. Exception: %s" : "Krok 2 zlyhal. Výnimka: %s", - "External storage" : "Externé úložisko", - "Dropbox App Configuration" : "Nastavenie Dropbox aplikácie", - "Google Drive App Configuration" : "Nastavenie Google Drive aplikácie", + "External storages" : "Externé úložiská", "Personal" : "Osobné", "System" : "Systém", "Grant access" : "Povoliť prístup", "Error configuring OAuth1" : "Chyba konfigurovania OAuth1", + "Please provide a valid app key and secret." : "Zadajte prosím platný aplikačný kľúč a heslo (secret).", "Error configuring OAuth2" : "Chyba konfigurovania OAuth2", "Generate keys" : "Vytvoriť kľúče", "Error generating key pair" : "Chyba pri vytváraní dvojice kľúčov", "All users. Type to select user or group." : "Všetci používatelia. Začnite písať pre výber používateľa alebo skupinu.", "(group)" : "(skupina)", + "Compatibility with Mac NFD encoding (slow)" : "Kompatibilita s Mac NFD enkódovaním (pomalé)", + "Admin defined" : "Nastavené správcom", + "Are you sure you want to delete this external storage" : "Naozaj chcete zmazať toto externé úložisko?", + "Delete storage?" : "Zmazať externé úložisko?", "Saved" : "Uložené", + "Saving..." : "Ukladá sa...", "Save" : "Uložiť", + "Empty response from the server" : "Prázdna odpoveď zo servera", + "Couldn't access. Please log out and in again to activate this mount point" : "Nedá sa pripojiť. Pre aktiváciu tohto prípojného bodu sa prosím odhláste a znovu prihláste", + "Couldn't get the information from the remote server: {code} {type}" : "Zo vzdialeného servera sa nedá získať informácia: {code} {type}", + "Couldn't get the list of external mount points: {type}" : "Nedá sa získať zoznam externých prípojných bodov: {type}", + "There was an error with message: " : "Nastala chyba s týmto hlásením:", + "External mount error" : "Chyba externého úložiska", + "external-storage" : "external-storage", + "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "Nedá sa získať zoznam sieťových úložísk systému Windows: prázdna odpoveď zo servera", + "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "Niektoré z nastavených externých úložísk nie sú pripojené. Pre viac informácií kliknite na červenú šípku(y)", + "Please enter the credentials for the {mount} mount" : "Zadajte prosím prihlasovacie údaje k prípojnému bodu {mount}", "Username" : "Používateľské meno", "Password" : "Heslo", - "Storage with id \"%i\" not found" : "Úložisko s ID \"%i\" sa nenašlo", + "Credentials saved" : "Prihlasovacie údaje uložené", + "Credentials saving failed" : "Uloženie prihlasovacích údajov zlyhalo", + "Credentials required" : "Vyžadované prihlasovacie údaje", + "Storage with ID \"%d\" not found" : "Úložisko s ID \"%d\" sa nenašlo", "Invalid backend or authentication mechanism class" : "Neplatný backend, prípadne trieda mechanizmu autentifikácie", "Invalid mount point" : "Chybný prípojný bod", "Objectstore forbidden" : "Objectstore je zakáazaný", @@ -31,6 +43,9 @@ OC.L10N.register( "Not permitted to use authentication mechanism \"%s\"" : "Nie je povolené použiť autentifikačný mechanizmus \"%s\"", "Unsatisfied backend parameters" : "Nedostatočné parametre backendu", "Unsatisfied authentication mechanism parameters" : "Nedostatočné parametre autentifikačného mechanizmu", + "Insufficient data: %s" : "Nedostatočné dáta: %s", + "%s" : "%s", + "Storage with ID \"%d\" is not user editable" : "Úložisko s ID \"%d\" nie je upraviteľné používateľmi", "Access key" : "Prístupový kľúč", "Secret key" : "Tajný kľúč", "Builtin" : "Vstavaný", @@ -47,7 +62,10 @@ OC.L10N.register( "Rackspace" : "Rackspace", "API key" : "API kľúč", "Global credentials" : "Globálne oprávnenia", + "Log-in credentials, save in database" : "Prihlasovacie údaje, ukladať v databáze", "Username and password" : "Meno a heslo", + "Log-in credentials, save in session" : "Prihlasovacie údaje, ukladať do relácie", + "User entered, store in database" : "Používateľ zadaný, uložiť v databáze", "RSA public key" : "RSA verejný kľúč", "Public key" : "Verejný kľúč", "Amazon S3" : "Amazon S3", @@ -61,15 +79,15 @@ OC.L10N.register( "URL" : "URL", "Remote subfolder" : "Vzdialený podpriečinok", "Secure https://" : "Zabezpečené https://", - "Dropbox" : "Dropbox", "FTP" : "FTP", "Host" : "Hostiteľ", "Secure ftps://" : "Zabezpečené ftps://", - "Google Drive" : "Google Drive", "Local" : "Lokálny", "Location" : "Umiestnenie", + "Nextcloud" : "Nextcloud", "SFTP" : "SFTP", "Root" : "Root", + "SFTP with secret key login" : "SFTP prihlásenie s tajným kľúčom", "SMB / CIFS" : "SMB / CIFS", "Share" : "Sprístupniť", "Domain" : "Doména", @@ -78,6 +96,9 @@ OC.L10N.register( "OpenStack Object Storage" : "OpenStack Object Storage", "Service name" : "Názov služby", "Request timeout (seconds)" : "Timeout požiadavky (s)", + "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nie je povolená alebo nainštalovaná cURL podpora v PHP. Pripojenie %s nie je možné. Požiadajte svojho správcu, aby doplnil podporu.", + "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nie je povolená alebo nainštalovaná FTP podpora v PHP. Pripojenie %s nie je možné. Požiadajte svojho správcu, aby doplnil podporu.", + "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nie je nainštalované \"%s\". Pripojenie %s nie je možné. Požiadajte svojho správcu o inštaláciu.", "No external storage configured" : "Žiadne externé úložisko nie je nakonfigurované", "You can add external storages in the personal settings" : "Externé úložisko je možné pridať v osobných nastaveniach", "Name" : "Názov", @@ -85,16 +106,29 @@ OC.L10N.register( "Scope" : "Rozsah", "Enable encryption" : "Povoliť šifrovanie", "Enable previews" : "Povoliť náhľady", + "Enable sharing" : "Povoliť sprístupňovanie", "Check for changes" : "Zisťovať zmeny", "Never" : "Nikdy", "Once every direct access" : "S každým priamym prístupom", "Folder name" : "Názov priečinka", + "External storage" : "Externé úložisko", "Authentication" : "Autentifikácia", "Configuration" : "Nastavenia", "Available for" : "K dispozícii pre", "Add storage" : "Pridať úložisko", "Advanced settings" : "Rozšírené nastavenia", "Delete" : "Zmazať", - "Allow users to mount the following external storage" : "Povoliť používateľom pripojiť tieto externé úložiská" + "Allow users to mount external storage" : "Povoliť používateľom pripojiť externé úložiská", + "Allow users to mount the following external storage" : "Povoliť používateľom pripojiť tieto externé úložiská", + "Fetching request tokens failed. Verify that your app key and secret are correct." : "Sťahovanie tokenov požiadavky zlyhalo. Overte prosím, či je aplikačný kľúč a heslo (secret) zadané správne.", + "Fetching access tokens failed. Verify that your app key and secret are correct." : "Sťahovanie prístupových tokenov zlyhalo. Overte prosím, či je aplikačný kľúč a heslo (secret) zadané správne.", + "Step 1 failed. Exception: %s" : "Krok 1 zlyhal. Výnimka: %s", + "Step 2 failed. Exception: %s" : "Krok 2 zlyhal. Výnimka: %s", + "Dropbox App Configuration" : "Nastavenie Dropbox aplikácie", + "Google Drive App Configuration" : "Nastavenie Google Drive aplikácie", + "Storage with id \"%i\" not found" : "Úložisko s ID \"%i\" sa nenašlo", + "Storage with id \"%i\" is not user editable" : "Úložisko s id \"%i\" používatelia nemôžu upravovať", + "Dropbox" : "Dropbox", + "Google Drive" : "Google Drive" }, "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/files_external/l10n/sk.json b/apps/files_external/l10n/sk.json index 24592565e8e..c1b71b21204 100644 --- a/apps/files_external/l10n/sk.json +++ b/apps/files_external/l10n/sk.json @@ -1,26 +1,38 @@ { "translations": { - "Fetching request tokens failed. Verify that your app key and secret are correct." : "Sťahovanie tokenov požiadavky zlyhalo. Overte prosím, či je aplikačný kľúč a heslo (secret) zadané správne.", - "Fetching access tokens failed. Verify that your app key and secret are correct." : "Sťahovanie prístupových tokenov zlyhalo. Overte prosím, či je aplikačný kľúč a heslo (secret) zadané správne.", - "Please provide a valid app key and secret." : "Zadajte prosím platný aplikačný kľúč a heslo (secret).", - "Step 1 failed. Exception: %s" : "Krok 1 zlyhal. Výnimka: %s", - "Step 2 failed. Exception: %s" : "Krok 2 zlyhal. Výnimka: %s", - "External storage" : "Externé úložisko", - "Dropbox App Configuration" : "Nastavenie Dropbox aplikácie", - "Google Drive App Configuration" : "Nastavenie Google Drive aplikácie", + "External storages" : "Externé úložiská", "Personal" : "Osobné", "System" : "Systém", "Grant access" : "Povoliť prístup", "Error configuring OAuth1" : "Chyba konfigurovania OAuth1", + "Please provide a valid app key and secret." : "Zadajte prosím platný aplikačný kľúč a heslo (secret).", "Error configuring OAuth2" : "Chyba konfigurovania OAuth2", "Generate keys" : "Vytvoriť kľúče", "Error generating key pair" : "Chyba pri vytváraní dvojice kľúčov", "All users. Type to select user or group." : "Všetci používatelia. Začnite písať pre výber používateľa alebo skupinu.", "(group)" : "(skupina)", + "Compatibility with Mac NFD encoding (slow)" : "Kompatibilita s Mac NFD enkódovaním (pomalé)", + "Admin defined" : "Nastavené správcom", + "Are you sure you want to delete this external storage" : "Naozaj chcete zmazať toto externé úložisko?", + "Delete storage?" : "Zmazať externé úložisko?", "Saved" : "Uložené", + "Saving..." : "Ukladá sa...", "Save" : "Uložiť", + "Empty response from the server" : "Prázdna odpoveď zo servera", + "Couldn't access. Please log out and in again to activate this mount point" : "Nedá sa pripojiť. Pre aktiváciu tohto prípojného bodu sa prosím odhláste a znovu prihláste", + "Couldn't get the information from the remote server: {code} {type}" : "Zo vzdialeného servera sa nedá získať informácia: {code} {type}", + "Couldn't get the list of external mount points: {type}" : "Nedá sa získať zoznam externých prípojných bodov: {type}", + "There was an error with message: " : "Nastala chyba s týmto hlásením:", + "External mount error" : "Chyba externého úložiska", + "external-storage" : "external-storage", + "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "Nedá sa získať zoznam sieťových úložísk systému Windows: prázdna odpoveď zo servera", + "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "Niektoré z nastavených externých úložísk nie sú pripojené. Pre viac informácií kliknite na červenú šípku(y)", + "Please enter the credentials for the {mount} mount" : "Zadajte prosím prihlasovacie údaje k prípojnému bodu {mount}", "Username" : "Používateľské meno", "Password" : "Heslo", - "Storage with id \"%i\" not found" : "Úložisko s ID \"%i\" sa nenašlo", + "Credentials saved" : "Prihlasovacie údaje uložené", + "Credentials saving failed" : "Uloženie prihlasovacích údajov zlyhalo", + "Credentials required" : "Vyžadované prihlasovacie údaje", + "Storage with ID \"%d\" not found" : "Úložisko s ID \"%d\" sa nenašlo", "Invalid backend or authentication mechanism class" : "Neplatný backend, prípadne trieda mechanizmu autentifikácie", "Invalid mount point" : "Chybný prípojný bod", "Objectstore forbidden" : "Objectstore je zakáazaný", @@ -29,6 +41,9 @@ "Not permitted to use authentication mechanism \"%s\"" : "Nie je povolené použiť autentifikačný mechanizmus \"%s\"", "Unsatisfied backend parameters" : "Nedostatočné parametre backendu", "Unsatisfied authentication mechanism parameters" : "Nedostatočné parametre autentifikačného mechanizmu", + "Insufficient data: %s" : "Nedostatočné dáta: %s", + "%s" : "%s", + "Storage with ID \"%d\" is not user editable" : "Úložisko s ID \"%d\" nie je upraviteľné používateľmi", "Access key" : "Prístupový kľúč", "Secret key" : "Tajný kľúč", "Builtin" : "Vstavaný", @@ -45,7 +60,10 @@ "Rackspace" : "Rackspace", "API key" : "API kľúč", "Global credentials" : "Globálne oprávnenia", + "Log-in credentials, save in database" : "Prihlasovacie údaje, ukladať v databáze", "Username and password" : "Meno a heslo", + "Log-in credentials, save in session" : "Prihlasovacie údaje, ukladať do relácie", + "User entered, store in database" : "Používateľ zadaný, uložiť v databáze", "RSA public key" : "RSA verejný kľúč", "Public key" : "Verejný kľúč", "Amazon S3" : "Amazon S3", @@ -59,15 +77,15 @@ "URL" : "URL", "Remote subfolder" : "Vzdialený podpriečinok", "Secure https://" : "Zabezpečené https://", - "Dropbox" : "Dropbox", "FTP" : "FTP", "Host" : "Hostiteľ", "Secure ftps://" : "Zabezpečené ftps://", - "Google Drive" : "Google Drive", "Local" : "Lokálny", "Location" : "Umiestnenie", + "Nextcloud" : "Nextcloud", "SFTP" : "SFTP", "Root" : "Root", + "SFTP with secret key login" : "SFTP prihlásenie s tajným kľúčom", "SMB / CIFS" : "SMB / CIFS", "Share" : "Sprístupniť", "Domain" : "Doména", @@ -76,6 +94,9 @@ "OpenStack Object Storage" : "OpenStack Object Storage", "Service name" : "Názov služby", "Request timeout (seconds)" : "Timeout požiadavky (s)", + "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nie je povolená alebo nainštalovaná cURL podpora v PHP. Pripojenie %s nie je možné. Požiadajte svojho správcu, aby doplnil podporu.", + "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nie je povolená alebo nainštalovaná FTP podpora v PHP. Pripojenie %s nie je možné. Požiadajte svojho správcu, aby doplnil podporu.", + "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Nie je nainštalované \"%s\". Pripojenie %s nie je možné. Požiadajte svojho správcu o inštaláciu.", "No external storage configured" : "Žiadne externé úložisko nie je nakonfigurované", "You can add external storages in the personal settings" : "Externé úložisko je možné pridať v osobných nastaveniach", "Name" : "Názov", @@ -83,16 +104,29 @@ "Scope" : "Rozsah", "Enable encryption" : "Povoliť šifrovanie", "Enable previews" : "Povoliť náhľady", + "Enable sharing" : "Povoliť sprístupňovanie", "Check for changes" : "Zisťovať zmeny", "Never" : "Nikdy", "Once every direct access" : "S každým priamym prístupom", "Folder name" : "Názov priečinka", + "External storage" : "Externé úložisko", "Authentication" : "Autentifikácia", "Configuration" : "Nastavenia", "Available for" : "K dispozícii pre", "Add storage" : "Pridať úložisko", "Advanced settings" : "Rozšírené nastavenia", "Delete" : "Zmazať", - "Allow users to mount the following external storage" : "Povoliť používateľom pripojiť tieto externé úložiská" + "Allow users to mount external storage" : "Povoliť používateľom pripojiť externé úložiská", + "Allow users to mount the following external storage" : "Povoliť používateľom pripojiť tieto externé úložiská", + "Fetching request tokens failed. Verify that your app key and secret are correct." : "Sťahovanie tokenov požiadavky zlyhalo. Overte prosím, či je aplikačný kľúč a heslo (secret) zadané správne.", + "Fetching access tokens failed. Verify that your app key and secret are correct." : "Sťahovanie prístupových tokenov zlyhalo. Overte prosím, či je aplikačný kľúč a heslo (secret) zadané správne.", + "Step 1 failed. Exception: %s" : "Krok 1 zlyhal. Výnimka: %s", + "Step 2 failed. Exception: %s" : "Krok 2 zlyhal. Výnimka: %s", + "Dropbox App Configuration" : "Nastavenie Dropbox aplikácie", + "Google Drive App Configuration" : "Nastavenie Google Drive aplikácie", + "Storage with id \"%i\" not found" : "Úložisko s ID \"%i\" sa nenašlo", + "Storage with id \"%i\" is not user editable" : "Úložisko s id \"%i\" používatelia nemôžu upravovať", + "Dropbox" : "Dropbox", + "Google Drive" : "Google Drive" },"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/files_external/tests/Auth/AuthMechanismTest.php b/apps/files_external/tests/Auth/AuthMechanismTest.php index 5d635a5036a..11eee7b8824 100644 --- a/apps/files_external/tests/Auth/AuthMechanismTest.php +++ b/apps/files_external/tests/Auth/AuthMechanismTest.php @@ -22,10 +22,14 @@ namespace OCA\Files_External\Tests\Auth; +use OCA\Files_External\Lib\Auth\AuthMechanism; +use OCA\Files_External\Lib\Backend\Backend; +use OCA\Files_External\Lib\StorageConfig; + class AuthMechanismTest extends \Test\TestCase { public function testJsonSerialization() { - $mechanism = $this->getMockBuilder('\OCA\Files_External\Lib\Auth\AuthMechanism') + $mechanism = $this->getMockBuilder(AuthMechanism::class) ->setMethods(['jsonSerializeDefinition']) ->getMock(); $mechanism->expects($this->once()) @@ -52,7 +56,7 @@ class AuthMechanismTest extends \Test\TestCase { * @dataProvider validateStorageProvider */ public function testValidateStorage($expectedSuccess, $scheme, $definitionSuccess) { - $mechanism = $this->getMockBuilder('\OCA\Files_External\Lib\Auth\AuthMechanism') + $mechanism = $this->getMockBuilder(AuthMechanism::class) ->setMethods(['validateStorageDefinition']) ->getMock(); $mechanism->expects($this->atMost(1)) @@ -61,14 +65,14 @@ class AuthMechanismTest extends \Test\TestCase { $mechanism->setScheme($scheme); - $backend = $this->getMockBuilder('\OCA\Files_External\Lib\Backend\Backend') + $backend = $this->getMockBuilder(Backend::class) ->disableOriginalConstructor() ->getMock(); $backend->expects($this->once()) ->method('getAuthSchemes') ->willReturn(['scheme' => true, 'foobar' => true]); - $storageConfig = $this->getMockBuilder('\OCA\Files_External\Lib\StorageConfig') + $storageConfig = $this->getMockBuilder(StorageConfig::class) ->disableOriginalConstructor() ->getMock(); $storageConfig->expects($this->once()) diff --git a/apps/files_external/tests/Backend/BackendTest.php b/apps/files_external/tests/Backend/BackendTest.php index 762b9f4c0e8..1a1c386240a 100644 --- a/apps/files_external/tests/Backend/BackendTest.php +++ b/apps/files_external/tests/Backend/BackendTest.php @@ -23,11 +23,12 @@ namespace OCA\Files_External\Tests\Backend; use \OCA\Files_External\Lib\Backend\Backend; +use OCA\Files_External\Lib\StorageConfig; class BackendTest extends \Test\TestCase { public function testJsonSerialization() { - $backend = $this->getMockBuilder('\OCA\Files_External\Lib\Backend\Backend') + $backend = $this->getMockBuilder(Backend::class) ->setMethods(['jsonSerializeDefinition']) ->getMock(); $backend->expects($this->once()) @@ -59,14 +60,14 @@ class BackendTest extends \Test\TestCase { * @dataProvider validateStorageProvider */ public function testValidateStorage($expectedSuccess, $definitionSuccess) { - $backend = $this->getMockBuilder('\OCA\Files_External\Lib\Backend\Backend') + $backend = $this->getMockBuilder(Backend::class) ->setMethods(['validateStorageDefinition']) ->getMock(); $backend->expects($this->atMost(1)) ->method('validateStorageDefinition') ->willReturn($definitionSuccess); - $storageConfig = $this->getMockBuilder('\OCA\Files_External\Lib\StorageConfig') + $storageConfig = $this->getMockBuilder(StorageConfig::class) ->disableOriginalConstructor() ->getMock(); diff --git a/apps/files_external/tests/Controller/StoragesControllerTest.php b/apps/files_external/tests/Controller/StoragesControllerTest.php index 35a055e6be5..f854b25676c 100644 --- a/apps/files_external/tests/Controller/StoragesControllerTest.php +++ b/apps/files_external/tests/Controller/StoragesControllerTest.php @@ -23,6 +23,8 @@ */ namespace OCA\Files_External\Tests\Controller; +use OCA\Files_External\Lib\Auth\AuthMechanism; +use OCA\Files_External\Lib\Backend\Backend; use \OCP\AppFramework\Http; use \OCA\Files_External\Controller\GlobalStoragesController; @@ -54,7 +56,7 @@ abstract class StoragesControllerTest extends \Test\TestCase { * @return \OCA\Files_External\Lib\Backend\Backend */ protected function getBackendMock($class = '\OCA\Files_External\Lib\Backend\SMB', $storageClass = '\OCA\Files_External\Lib\Storage\SMB') { - $backend = $this->getMockBuilder('\OCA\Files_External\Lib\Backend\Backend') + $backend = $this->getMockBuilder(Backend::class) ->disableOriginalConstructor() ->getMock(); $backend->method('getStorageClass') @@ -68,7 +70,7 @@ abstract class StoragesControllerTest extends \Test\TestCase { * @return \OCA\Files_External\Lib\Auth\AuthMechanism */ protected function getAuthMechMock($scheme = 'null', $class = '\OCA\Files_External\Lib\Auth\NullMechanism') { - $authMech = $this->getMockBuilder('\OCA\Files_External\Lib\Auth\AuthMechanism') + $authMech = $this->getMockBuilder(AuthMechanism::class) ->disableOriginalConstructor() ->getMock(); $authMech->method('getScheme') diff --git a/apps/files_external/tests/FrontendDefinitionTraitTest.php b/apps/files_external/tests/FrontendDefinitionTraitTest.php index 7efc7c66586..4154ac6092c 100644 --- a/apps/files_external/tests/FrontendDefinitionTraitTest.php +++ b/apps/files_external/tests/FrontendDefinitionTraitTest.php @@ -23,10 +23,13 @@ namespace OCA\Files_External\Tests; +use OCA\Files_External\Lib\DefinitionParameter; +use OCA\Files_External\Lib\StorageConfig; + class FrontendDefinitionTraitTest extends \Test\TestCase { public function testJsonSerialization() { - $param = $this->getMockBuilder('\OCA\Files_External\Lib\DefinitionParameter') + $param = $this->getMockBuilder(DefinitionParameter::class) ->disableOriginalConstructor() ->getMock(); $param->method('getName')->willReturn('foo'); @@ -60,7 +63,7 @@ class FrontendDefinitionTraitTest extends \Test\TestCase { public function testValidateStorage($expectedSuccess, $params) { $backendParams = []; foreach ($params as $name => $valid) { - $param = $this->getMockBuilder('\OCA\Files_External\Lib\DefinitionParameter') + $param = $this->getMockBuilder(DefinitionParameter::class) ->disableOriginalConstructor() ->getMock(); $param->method('getName') @@ -73,7 +76,7 @@ class FrontendDefinitionTraitTest extends \Test\TestCase { $backendParams[] = $param; } - $storageConfig = $this->getMockBuilder('\OCA\Files_External\Lib\StorageConfig') + $storageConfig = $this->getMockBuilder(StorageConfig::class) ->disableOriginalConstructor() ->getMock(); $storageConfig->expects($this->any()) @@ -90,7 +93,7 @@ class FrontendDefinitionTraitTest extends \Test\TestCase { } public function testValidateStorageSet() { - $param = $this->getMockBuilder('\OCA\Files_External\Lib\DefinitionParameter') + $param = $this->getMockBuilder(DefinitionParameter::class) ->disableOriginalConstructor() ->getMock(); $param->method('getName') @@ -102,7 +105,7 @@ class FrontendDefinitionTraitTest extends \Test\TestCase { return true; })); - $storageConfig = $this->getMockBuilder('\OCA\Files_External\Lib\StorageConfig') + $storageConfig = $this->getMockBuilder(StorageConfig::class) ->disableOriginalConstructor() ->getMock(); $storageConfig->expects($this->once()) diff --git a/apps/files_external/tests/Service/BackendServiceTest.php b/apps/files_external/tests/Service/BackendServiceTest.php index cbb25579e11..6916d47a02a 100644 --- a/apps/files_external/tests/Service/BackendServiceTest.php +++ b/apps/files_external/tests/Service/BackendServiceTest.php @@ -21,6 +21,8 @@ */ namespace OCA\Files_External\Tests\Service; +use OCA\Files_External\Lib\Auth\AuthMechanism; +use OCA\Files_External\Lib\Backend\Backend; use OCA\Files_External\Lib\Config\IAuthMechanismProvider; use OCA\Files_External\Lib\Config\IBackendProvider; use \OCA\Files_External\Service\BackendService; @@ -46,7 +48,7 @@ class BackendServiceTest extends \Test\TestCase { * @return \OCA\Files_External\Lib\Backend\Backend */ protected function getBackendMock($class) { - $backend = $this->getMockBuilder('\OCA\Files_External\Lib\Backend\Backend') + $backend = $this->getMockBuilder(Backend::class) ->disableOriginalConstructor() ->getMock(); $backend->method('getIdentifier')->will($this->returnValue('identifier:'.$class)); @@ -60,7 +62,7 @@ class BackendServiceTest extends \Test\TestCase { * @return \OCA\Files_External\Lib\Auth\AuthMechanism */ protected function getAuthMechanismMock($class) { - $backend = $this->getMockBuilder('\OCA\Files_External\Lib\Auth\AuthMechanism') + $backend = $this->getMockBuilder(AuthMechanism::class) ->disableOriginalConstructor() ->getMock(); $backend->method('getIdentifier')->will($this->returnValue('identifier:'.$class)); @@ -73,7 +75,7 @@ class BackendServiceTest extends \Test\TestCase { $backend = $this->getBackendMock('\Foo\Bar'); - $backendAlias = $this->getMockBuilder('\OCA\Files_External\Lib\Backend\Backend') + $backendAlias = $this->getMockBuilder(Backend::class) ->disableOriginalConstructor() ->getMock(); $backendAlias->method('getIdentifierAliases') @@ -175,7 +177,7 @@ class BackendServiceTest extends \Test\TestCase { ->method('removeVisibility') ->with(BackendService::VISIBILITY_PERSONAL); - $backendAlias = $this->getMockBuilder('\OCA\Files_External\Lib\Backend\Backend') + $backendAlias = $this->getMockBuilder(Backend::class) ->disableOriginalConstructor() ->getMock(); $backendAlias->method('getIdentifierAliases') diff --git a/apps/files_external/tests/Service/StoragesServiceTest.php b/apps/files_external/tests/Service/StoragesServiceTest.php index 056a03d24c8..22409ea9dbd 100644 --- a/apps/files_external/tests/Service/StoragesServiceTest.php +++ b/apps/files_external/tests/Service/StoragesServiceTest.php @@ -27,7 +27,9 @@ namespace OCA\Files_External\Tests\Service; use \OC\Files\Filesystem; +use OCA\Files_External\Lib\Auth\AuthMechanism; use OCA\Files_External\Lib\Auth\InvalidAuth; +use OCA\Files_External\Lib\Backend\Backend; use OCA\Files_External\Lib\Backend\InvalidBackend; use OCA\Files_External\NotFoundException; use OCA\Files_External\Lib\StorageConfig; @@ -179,7 +181,7 @@ abstract class StoragesServiceTest extends \Test\TestCase { } protected function getBackendMock($class = '\OCA\Files_External\Lib\Backend\SMB', $storageClass = '\OCA\Files_External\Lib\Storage\SMB') { - $backend = $this->getMockBuilder('\OCA\Files_External\Lib\Backend\Backend') + $backend = $this->getMockBuilder(Backend::class) ->disableOriginalConstructor() ->getMock(); $backend->method('getStorageClass') @@ -190,7 +192,7 @@ abstract class StoragesServiceTest extends \Test\TestCase { } protected function getAuthMechMock($scheme = 'null', $class = '\OCA\Files_External\Lib\Auth\NullMechanism') { - $authMech = $this->getMockBuilder('\OCA\Files_External\Lib\Auth\AuthMechanism') + $authMech = $this->getMockBuilder(AuthMechanism::class) ->disableOriginalConstructor() ->getMock(); $authMech->method('getScheme') @@ -204,7 +206,7 @@ abstract class StoragesServiceTest extends \Test\TestCase { /** * Creates a StorageConfig instance based on array data * - * @param array data + * @param array $data * * @return StorageConfig storage config instance */ diff --git a/apps/files_external/tests/Settings/SectionTest.php b/apps/files_external/tests/Settings/SectionTest.php index ee501b1270b..93aee61b47d 100644 --- a/apps/files_external/tests/Settings/SectionTest.php +++ b/apps/files_external/tests/Settings/SectionTest.php @@ -38,8 +38,8 @@ class SectionTest extends TestCase { public function setUp() { parent::setUp(); - $this->urlGenerator = $this->getMockBuilder('\OCP\IURLGenerator')->disableOriginalConstructor()->getMock(); - $this->l = $this->getMockBuilder('\OCP\IL10N')->disableOriginalConstructor()->getMock(); + $this->urlGenerator = $this->getMockBuilder(IURLGenerator::class)->disableOriginalConstructor()->getMock(); + $this->l = $this->getMockBuilder(IL10N::class)->disableOriginalConstructor()->getMock(); $this->section = new Section( $this->urlGenerator, diff --git a/apps/files_external/tests/StorageConfigTest.php b/apps/files_external/tests/StorageConfigTest.php index 96d4fda5050..f357c0c6990 100644 --- a/apps/files_external/tests/StorageConfigTest.php +++ b/apps/files_external/tests/StorageConfigTest.php @@ -25,15 +25,18 @@ namespace OCA\Files_External\Tests; +use OCA\Files_External\Lib\Auth\AuthMechanism; +use OCA\Files_External\Lib\Backend\Backend; +use OCA\Files_External\Lib\DefinitionParameter; use OCA\Files_External\Lib\StorageConfig; class StorageConfigTest extends \Test\TestCase { public function testJsonSerialization() { - $backend = $this->getMockBuilder('\OCA\Files_External\Lib\Backend\Backend') + $backend = $this->getMockBuilder(Backend::class) ->disableOriginalConstructor() ->getMock(); - $parameter = $this->getMockBuilder('\OCA\Files_External\Lib\DefinitionParameter') + $parameter = $this->getMockBuilder(DefinitionParameter::class) ->disableOriginalConstructor() ->getMock(); $parameter @@ -47,7 +50,7 @@ class StorageConfigTest extends \Test\TestCase { $backend->method('getIdentifier') ->willReturn('storage::identifier'); - $authMech = $this->getMockBuilder('\OCA\Files_External\Lib\Auth\AuthMechanism') + $authMech = $this->getMockBuilder(AuthMechanism::class) ->disableOriginalConstructor() ->getMock(); $authMech->method('getIdentifier') diff --git a/apps/files_sharing/composer/autoload.php b/apps/files_sharing/composer/autoload.php index 3b046bff7f4..0aa77c00af9 100644 --- a/apps/files_sharing/composer/autoload.php +++ b/apps/files_sharing/composer/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitf32f03f7cd82bff20d6a51be16689441::getLoader(); +return ComposerAutoloaderInitFiles_Sharing::getLoader(); diff --git a/apps/files_sharing/composer/composer.json b/apps/files_sharing/composer/composer.json index 4d2aae1d6e1..d500819ff82 100644 --- a/apps/files_sharing/composer/composer.json +++ b/apps/files_sharing/composer/composer.json @@ -2,7 +2,8 @@ "config" : { "vendor-dir": ".", "optimize-autoloader": true, - "authorative-autoloader": true + "authorative-autoloader": true, + "autoloader-suffix": "Files_Sharing" }, "autoload" : { "psr-4": { diff --git a/apps/files_sharing/composer/composer/autoload_real.php b/apps/files_sharing/composer/composer/autoload_real.php index fc2e3dcfcb0..504c701247f 100644 --- a/apps/files_sharing/composer/composer/autoload_real.php +++ b/apps/files_sharing/composer/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitf32f03f7cd82bff20d6a51be16689441 +class ComposerAutoloaderInitFiles_Sharing { private static $loader; @@ -19,15 +19,15 @@ class ComposerAutoloaderInitf32f03f7cd82bff20d6a51be16689441 return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitf32f03f7cd82bff20d6a51be16689441', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitFiles_Sharing', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInitf32f03f7cd82bff20d6a51be16689441', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitFiles_Sharing', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitf32f03f7cd82bff20d6a51be16689441::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInitFiles_Sharing::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { diff --git a/apps/files_sharing/composer/composer/autoload_static.php b/apps/files_sharing/composer/composer/autoload_static.php index 311dd9a702e..328d6aca01d 100644 --- a/apps/files_sharing/composer/composer/autoload_static.php +++ b/apps/files_sharing/composer/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitf32f03f7cd82bff20d6a51be16689441 +class ComposerStaticInitFiles_Sharing { public static $prefixLengthsPsr4 = array ( 'O' => @@ -74,9 +74,9 @@ class ComposerStaticInitf32f03f7cd82bff20d6a51be16689441 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitf32f03f7cd82bff20d6a51be16689441::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitf32f03f7cd82bff20d6a51be16689441::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInitf32f03f7cd82bff20d6a51be16689441::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInitFiles_Sharing::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitFiles_Sharing::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitFiles_Sharing::$classMap; }, null, ClassLoader::class); } diff --git a/apps/files_sharing/css/sharetabview.scss b/apps/files_sharing/css/sharetabview.scss index cb2bb463352..880226e7d14 100644 --- a/apps/files_sharing/css/sharetabview.scss +++ b/apps/files_sharing/css/sharetabview.scss @@ -41,17 +41,6 @@ padding: 18px 0 18px 36px; } -/* fix clickable area because in the share tab popover the label is inside the actual menu item*/ -#shareWithList .popovermenu .shareOption { - padding-right: 0 !important; -} -/* fix clickable area because in the share tab popover the label is inside the actual menu item*/ -.shareTabView .popovermenu label { - width: 100%; - display: inline-block; - padding: 0 10px 0 0 !important; -} - .shareTabView label { white-space: nowrap; } @@ -100,11 +89,6 @@ opacity: .5; } -#shareWithList .shareOption.menuitem > label:before { - /* Checkboxes positionning */ - margin: 0 12px !important; -} - #shareWithList .unshare { padding: 1px 6px; vertical-align: text-bottom; diff --git a/apps/files_sharing/l10n/ast.js b/apps/files_sharing/l10n/ast.js index d6a92367d91..9c32cdfa94d 100644 --- a/apps/files_sharing/l10n/ast.js +++ b/apps/files_sharing/l10n/ast.js @@ -64,7 +64,6 @@ OC.L10N.register( "Could not lock path" : "Nun pudo bloquiase'l camín", "Can't change permissions for public share links" : "Nun puen camudase los permisos pa los enllaces de comparticiones públiques", "Cannot increase permissions" : "Nun puen aumentase los permisos", - "%s is publicly shared" : "%s compartióse públicamente", "Share API is disabled" : "L'API de compartición ta desactivada", "This share is password-protected" : "Esta compartición tien contraseña protexida", "The password is wrong. Try again." : "La contraseña ye incorreuta. Inténtalo otra vegada.", @@ -84,6 +83,7 @@ OC.L10N.register( "Direct link" : "Enllaz direutu", "Select or drop files" : "Esbilla o suelta ficheros", "Uploading files…" : "Xubiendo ficheros...", - "Uploaded files:" : "Ficheros xubíos:" + "Uploaded files:" : "Ficheros xubíos:", + "%s is publicly shared" : "%s compartióse públicamente" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/ast.json b/apps/files_sharing/l10n/ast.json index a9f7d7393e0..33f1bba4280 100644 --- a/apps/files_sharing/l10n/ast.json +++ b/apps/files_sharing/l10n/ast.json @@ -62,7 +62,6 @@ "Could not lock path" : "Nun pudo bloquiase'l camín", "Can't change permissions for public share links" : "Nun puen camudase los permisos pa los enllaces de comparticiones públiques", "Cannot increase permissions" : "Nun puen aumentase los permisos", - "%s is publicly shared" : "%s compartióse públicamente", "Share API is disabled" : "L'API de compartición ta desactivada", "This share is password-protected" : "Esta compartición tien contraseña protexida", "The password is wrong. Try again." : "La contraseña ye incorreuta. Inténtalo otra vegada.", @@ -82,6 +81,7 @@ "Direct link" : "Enllaz direutu", "Select or drop files" : "Esbilla o suelta ficheros", "Uploading files…" : "Xubiendo ficheros...", - "Uploaded files:" : "Ficheros xubíos:" + "Uploaded files:" : "Ficheros xubíos:", + "%s is publicly shared" : "%s compartióse públicamente" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/ca.js b/apps/files_sharing/l10n/ca.js index 63d9a8399d9..f354f90ad9a 100644 --- a/apps/files_sharing/l10n/ca.js +++ b/apps/files_sharing/l10n/ca.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "S'ha donat un paràmetre d'actualització incorrecte o no", "Can't change permissions for public share links" : "No es poden canviar els permisos per als enllaços compartits públics", "Cannot increase permissions" : "No es poden augmentar els permisos", - "%s is publicly shared" : "%s es publica públicament", "Share API is disabled" : "L'API compartida està desactivada", "This share is password-protected" : "Aquest compartit està protegit amb contrasenya", "The password is wrong. Try again." : "la contrasenya és incorrecta. Intenteu-ho de nou.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Carrega fitxers a %s", "Select or drop files" : "Selecciona o deixa anar els fitxers", "Uploading files…" : "Pujant arxius...", - "Uploaded files:" : "Arxius pujats:" + "Uploaded files:" : "Arxius pujats:", + "%s is publicly shared" : "%s es publica públicament" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/ca.json b/apps/files_sharing/l10n/ca.json index e04d1c72556..3a644180f21 100644 --- a/apps/files_sharing/l10n/ca.json +++ b/apps/files_sharing/l10n/ca.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "S'ha donat un paràmetre d'actualització incorrecte o no", "Can't change permissions for public share links" : "No es poden canviar els permisos per als enllaços compartits públics", "Cannot increase permissions" : "No es poden augmentar els permisos", - "%s is publicly shared" : "%s es publica públicament", "Share API is disabled" : "L'API compartida està desactivada", "This share is password-protected" : "Aquest compartit està protegit amb contrasenya", "The password is wrong. Try again." : "la contrasenya és incorrecta. Intenteu-ho de nou.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Carrega fitxers a %s", "Select or drop files" : "Selecciona o deixa anar els fitxers", "Uploading files…" : "Pujant arxius...", - "Uploaded files:" : "Arxius pujats:" + "Uploaded files:" : "Arxius pujats:", + "%s is publicly shared" : "%s es publica públicament" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/cs.js b/apps/files_sharing/l10n/cs.js index 208db495aaa..db559d20574 100644 --- a/apps/files_sharing/l10n/cs.js +++ b/apps/files_sharing/l10n/cs.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "Chyba nebo žádná aktualizace dle zadaných parametrů", "Can't change permissions for public share links" : "Nelze změnit oprávnění pro veřejně sdílené odkazy", "Cannot increase permissions" : "Nelze navýšit oprávnění", - "%s is publicly shared" : "%s je veřejně sdílen", "Share API is disabled" : "Sdílení API je zakázané", "This share is password-protected" : "Toto sdílení je chráněno heslem", "The password is wrong. Try again." : "Heslo není správné. Zkuste to znovu.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Nahrát soubory do %s", "Select or drop files" : "Vyberte nebo přetáhněte soubory", "Uploading files…" : "Probíhá nahrávání souborů...", - "Uploaded files:" : "Nahrané soubory:" + "Uploaded files:" : "Nahrané soubory:", + "%s is publicly shared" : "%s je veřejně sdílen" }, "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/files_sharing/l10n/cs.json b/apps/files_sharing/l10n/cs.json index 939e9c671c1..35d14212588 100644 --- a/apps/files_sharing/l10n/cs.json +++ b/apps/files_sharing/l10n/cs.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "Chyba nebo žádná aktualizace dle zadaných parametrů", "Can't change permissions for public share links" : "Nelze změnit oprávnění pro veřejně sdílené odkazy", "Cannot increase permissions" : "Nelze navýšit oprávnění", - "%s is publicly shared" : "%s je veřejně sdílen", "Share API is disabled" : "Sdílení API je zakázané", "This share is password-protected" : "Toto sdílení je chráněno heslem", "The password is wrong. Try again." : "Heslo není správné. Zkuste to znovu.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Nahrát soubory do %s", "Select or drop files" : "Vyberte nebo přetáhněte soubory", "Uploading files…" : "Probíhá nahrávání souborů...", - "Uploaded files:" : "Nahrané soubory:" + "Uploaded files:" : "Nahrané soubory:", + "%s is publicly shared" : "%s je veřejně sdílen" },"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js index 2765042613a..c59b3118945 100644 --- a/apps/files_sharing/l10n/de.js +++ b/apps/files_sharing/l10n/de.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben", "Can't change permissions for public share links" : "Berechtigungen für öffentlich freigegebene Links konnten nicht geändert werden", "Cannot increase permissions" : "Berechtigungen können nicht erhöht werden", - "%s is publicly shared" : "%s ist öffentlich geteilt", "Share API is disabled" : "Teilen-API ist deaktivert", "This share is password-protected" : "Freigabe ist passwortgeschützt", "The password is wrong. Try again." : "Das Passwort ist falsch. Versuche es erneut.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Dateien für %s hochladen", "Select or drop files" : "Dateien auswählen oder hierher ziehen", "Uploading files…" : "Dateien werden hochgeladen…", - "Uploaded files:" : "Hochgeladene Dateien: " + "Uploaded files:" : "Hochgeladene Dateien: ", + "%s is publicly shared" : "%s ist öffentlich geteilt" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json index ec497346c84..3f8e5fc21e0 100644 --- a/apps/files_sharing/l10n/de.json +++ b/apps/files_sharing/l10n/de.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben", "Can't change permissions for public share links" : "Berechtigungen für öffentlich freigegebene Links konnten nicht geändert werden", "Cannot increase permissions" : "Berechtigungen können nicht erhöht werden", - "%s is publicly shared" : "%s ist öffentlich geteilt", "Share API is disabled" : "Teilen-API ist deaktivert", "This share is password-protected" : "Freigabe ist passwortgeschützt", "The password is wrong. Try again." : "Das Passwort ist falsch. Versuche es erneut.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Dateien für %s hochladen", "Select or drop files" : "Dateien auswählen oder hierher ziehen", "Uploading files…" : "Dateien werden hochgeladen…", - "Uploaded files:" : "Hochgeladene Dateien: " + "Uploaded files:" : "Hochgeladene Dateien: ", + "%s is publicly shared" : "%s ist öffentlich geteilt" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js index cadb95af32d..ef049bef8ee 100644 --- a/apps/files_sharing/l10n/de_DE.js +++ b/apps/files_sharing/l10n/de_DE.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben", "Can't change permissions for public share links" : "Berechtigungen für öffentlich freigegebene Links konnten nicht geändert werden", "Cannot increase permissions" : "Berechtigungen können nicht erhöht werden", - "%s is publicly shared" : "%s ist öffentlich geteilt", "Share API is disabled" : "Teilen-API ist deaktivert", "This share is password-protected" : "Freigabe ist passwortgeschützt", "The password is wrong. Try again." : "Das Passwort ist falsch. Bitte versuchen Sie es erneut.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Dateien für %s hochladen", "Select or drop files" : "Dateien auswählen oder hierher ziehen", "Uploading files…" : "Dateien werden hochgeladen…", - "Uploaded files:" : "Hochgeladene Dateien: " + "Uploaded files:" : "Hochgeladene Dateien: ", + "%s is publicly shared" : "%s ist öffentlich geteilt" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json index 8fdd54aad47..65439f0497a 100644 --- a/apps/files_sharing/l10n/de_DE.json +++ b/apps/files_sharing/l10n/de_DE.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben", "Can't change permissions for public share links" : "Berechtigungen für öffentlich freigegebene Links konnten nicht geändert werden", "Cannot increase permissions" : "Berechtigungen können nicht erhöht werden", - "%s is publicly shared" : "%s ist öffentlich geteilt", "Share API is disabled" : "Teilen-API ist deaktivert", "This share is password-protected" : "Freigabe ist passwortgeschützt", "The password is wrong. Try again." : "Das Passwort ist falsch. Bitte versuchen Sie es erneut.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Dateien für %s hochladen", "Select or drop files" : "Dateien auswählen oder hierher ziehen", "Uploading files…" : "Dateien werden hochgeladen…", - "Uploaded files:" : "Hochgeladene Dateien: " + "Uploaded files:" : "Hochgeladene Dateien: ", + "%s is publicly shared" : "%s ist öffentlich geteilt" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/el.js b/apps/files_sharing/l10n/el.js index 0ab18490214..6cd4f74b962 100644 --- a/apps/files_sharing/l10n/el.js +++ b/apps/files_sharing/l10n/el.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "Λάθος ή καμία παράμετρος αναβάθμισης δεν δόθηκε", "Can't change permissions for public share links" : "Δεν μπορούμε να αλλάξουμε δικαιώματα για δημόσια διαμοιρασμένους συνδέσμους", "Cannot increase permissions" : "Δεν μπορούμε να αυξήσουμε δικαιώματα", - "%s is publicly shared" : "%s είναι δημόσια διαμοιρασμένο", "Share API is disabled" : "API διαμοιρασμού είναι απενεργοποιημένο", "This share is password-protected" : "Αυτός ο κοινόχρηστος φάκελος προστατεύεται με κωδικό", "The password is wrong. Try again." : "Εσφαλμένος κωδικός πρόσβασης. Προσπαθήστε ξανά.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Αποστολή αρχείων σε %s", "Select or drop files" : "Επιλέξτε ή ρίξτε αρχεία", "Uploading files…" : "Αποστολή αρχείων ...", - "Uploaded files:" : "Αποστολή αρχείων:" + "Uploaded files:" : "Αποστολή αρχείων:", + "%s is publicly shared" : "%s είναι δημόσια διαμοιρασμένο" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/el.json b/apps/files_sharing/l10n/el.json index 4d3594a4193..07dfb485c8f 100644 --- a/apps/files_sharing/l10n/el.json +++ b/apps/files_sharing/l10n/el.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "Λάθος ή καμία παράμετρος αναβάθμισης δεν δόθηκε", "Can't change permissions for public share links" : "Δεν μπορούμε να αλλάξουμε δικαιώματα για δημόσια διαμοιρασμένους συνδέσμους", "Cannot increase permissions" : "Δεν μπορούμε να αυξήσουμε δικαιώματα", - "%s is publicly shared" : "%s είναι δημόσια διαμοιρασμένο", "Share API is disabled" : "API διαμοιρασμού είναι απενεργοποιημένο", "This share is password-protected" : "Αυτός ο κοινόχρηστος φάκελος προστατεύεται με κωδικό", "The password is wrong. Try again." : "Εσφαλμένος κωδικός πρόσβασης. Προσπαθήστε ξανά.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Αποστολή αρχείων σε %s", "Select or drop files" : "Επιλέξτε ή ρίξτε αρχεία", "Uploading files…" : "Αποστολή αρχείων ...", - "Uploaded files:" : "Αποστολή αρχείων:" + "Uploaded files:" : "Αποστολή αρχείων:", + "%s is publicly shared" : "%s είναι δημόσια διαμοιρασμένο" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/en_GB.js b/apps/files_sharing/l10n/en_GB.js index 2ff10000c58..16a2fa23b7e 100644 --- a/apps/files_sharing/l10n/en_GB.js +++ b/apps/files_sharing/l10n/en_GB.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "Wrong or no update parameter given", "Can't change permissions for public share links" : "Can't change permissions for public share links", "Cannot increase permissions" : "Cannot increase permissions", - "%s is publicly shared" : "%s is publicly shared", "Share API is disabled" : "Share API is disabled", "This share is password-protected" : "This share is password-protected", "The password is wrong. Try again." : "The password is wrong. Try again.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Upload files to %s", "Select or drop files" : "Select or drop files", "Uploading files…" : "Uploading files…", - "Uploaded files:" : "Uploaded files:" + "Uploaded files:" : "Uploaded files:", + "%s is publicly shared" : "%s is publicly shared" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/en_GB.json b/apps/files_sharing/l10n/en_GB.json index b2cf0284eb8..57848f3408c 100644 --- a/apps/files_sharing/l10n/en_GB.json +++ b/apps/files_sharing/l10n/en_GB.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "Wrong or no update parameter given", "Can't change permissions for public share links" : "Can't change permissions for public share links", "Cannot increase permissions" : "Cannot increase permissions", - "%s is publicly shared" : "%s is publicly shared", "Share API is disabled" : "Share API is disabled", "This share is password-protected" : "This share is password-protected", "The password is wrong. Try again." : "The password is wrong. Try again.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Upload files to %s", "Select or drop files" : "Select or drop files", "Uploading files…" : "Uploading files…", - "Uploaded files:" : "Uploaded files:" + "Uploaded files:" : "Uploaded files:", + "%s is publicly shared" : "%s is publicly shared" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/es.js b/apps/files_sharing/l10n/es.js index eebcbc5803b..1de76a820c2 100644 --- a/apps/files_sharing/l10n/es.js +++ b/apps/files_sharing/l10n/es.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "No se ha suministrado un parametro correcto", "Can't change permissions for public share links" : "No se pueden cambiar los permisos para los enlaces de recursos compartidos públicos", "Cannot increase permissions" : "No es posible aumentar permisos", - "%s is publicly shared" : "%s ha sido compartido", "Share API is disabled" : "El API de compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido por contraseña", "The password is wrong. Try again." : "La contraseña introducida es errónea. Inténtelo de nuevo.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Subir archivos a %s", "Select or drop files" : "Seleccione o arrastre y suelte archivos", "Uploading files…" : "Subiendo archivos...", - "Uploaded files:" : "Archivos subidos:" + "Uploaded files:" : "Archivos subidos:", + "%s is publicly shared" : "%s ha sido compartido" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json index cb0baf25c65..8fd5b11667d 100644 --- a/apps/files_sharing/l10n/es.json +++ b/apps/files_sharing/l10n/es.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "No se ha suministrado un parametro correcto", "Can't change permissions for public share links" : "No se pueden cambiar los permisos para los enlaces de recursos compartidos públicos", "Cannot increase permissions" : "No es posible aumentar permisos", - "%s is publicly shared" : "%s ha sido compartido", "Share API is disabled" : "El API de compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido por contraseña", "The password is wrong. Try again." : "La contraseña introducida es errónea. Inténtelo de nuevo.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Subir archivos a %s", "Select or drop files" : "Seleccione o arrastre y suelte archivos", "Uploading files…" : "Subiendo archivos...", - "Uploaded files:" : "Archivos subidos:" + "Uploaded files:" : "Archivos subidos:", + "%s is publicly shared" : "%s ha sido compartido" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/es_AR.js b/apps/files_sharing/l10n/es_AR.js index 5ad72ce67cb..c3f1303bf77 100644 --- a/apps/files_sharing/l10n/es_AR.js +++ b/apps/files_sharing/l10n/es_AR.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "El parametro de actualización esta erróneo o faltante", "Can't change permissions for public share links" : "No es posible cambiar los permisos para links públicos compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", - "%s is publicly shared" : "%s está compartido públicamente", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido esta protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Favor de intentarlo de nuevo.", @@ -109,6 +108,7 @@ OC.L10N.register( "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Seleccione o suelte los archivos", "Uploading files…" : "Cargando archivos...", - "Uploaded files:" : "Archivos cargados:" + "Uploaded files:" : "Archivos cargados:", + "%s is publicly shared" : "%s está compartido públicamente" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/es_AR.json b/apps/files_sharing/l10n/es_AR.json index a3d2a4f389b..92878566507 100644 --- a/apps/files_sharing/l10n/es_AR.json +++ b/apps/files_sharing/l10n/es_AR.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "El parametro de actualización esta erróneo o faltante", "Can't change permissions for public share links" : "No es posible cambiar los permisos para links públicos compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", - "%s is publicly shared" : "%s está compartido públicamente", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido esta protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Favor de intentarlo de nuevo.", @@ -107,6 +106,7 @@ "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Seleccione o suelte los archivos", "Uploading files…" : "Cargando archivos...", - "Uploaded files:" : "Archivos cargados:" + "Uploaded files:" : "Archivos cargados:", + "%s is publicly shared" : "%s está compartido públicamente" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/es_CO.js b/apps/files_sharing/l10n/es_CO.js new file mode 100644 index 00000000000..ade55a2b2ed --- /dev/null +++ b/apps/files_sharing/l10n/es_CO.js @@ -0,0 +1,115 @@ +OC.L10N.register( + "files_sharing", + { + "Shared with you" : "Compartido contigo", + "Shared with others" : "Compartido con otros", + "Shared by link" : "Compartido por liga", + "Nothing shared with you yet" : "Nada ha sido compartido contigo aún", + "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí", + "Nothing shared yet" : "Nada compartido aún", + "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí", + "No shared links" : "No hay ligas compartidas", + "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí", + "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta", + "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}", + "Invalid server URL" : "URL del servidor inválido", + "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud", + "Share" : "Compartir", + "No expiration date set" : "No se ha establecido la fecha de expiración", + "Shared by" : "Compartido por", + "Sharing" : "Compartiendo", + "File shares" : "Archivos compartidos", + "Downloaded via public link" : "Descargado mediante una liga pública", + "Downloaded by {email}" : "Descargado por {email}", + "{file} downloaded via public link" : "{file} descargado mediante una liga pública", + "{email} downloaded {file}" : "{email} descargó {file}", + "Shared with group {group}" : "Compartido con el gupo {group}", + "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}", + "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}", + "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}", + "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}", + "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}", + "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}", + "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}", + "Shared as public link" : "Compartido como una liga pública", + "Removed public link" : "Liga pública eliminada", + "Public link expired" : "La liga pública ha expirado", + "{actor} shared as public link" : "{actor} compartió como una liga pública", + "{actor} removed public link" : "{actor} eliminó la liga pública", + "Public link of {actor} expired" : "La liga pública de {actor} ha expirado", + "You shared {file} as public link" : "Compartiste {file} como una liga pública", + "You removed public link for {file}" : "Eliminaste la liga pública de {file}", + "Public link expired for {file}" : "La liga pública para {file} ha expirado", + "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública", + "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}", + "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado", + "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto", + "{user} declined the remote share" : "{user} declinó el elemento compartido remoto", + "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}", + "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}", + "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}", + "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo", + "Shared with {user}" : "Compartido con {user}", + "Removed share for {user}" : "Se eliminó el elemento compartido para {user}", + "{actor} shared with {user}" : "{actor} compartió con {user}", + "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}", + "Shared by {actor}" : "Compartido por {actor}", + "{actor} removed share" : "{actor} eliminó el elemento compartido", + "You shared {file} with {user}" : "Compartiste {file} con {user}", + "You removed {user} from {file}" : "Eliminaste a {user} de {file}", + "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}", + "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}", + "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo", + "{actor} removed you from {file}" : "{actor} lo eliminó de {file}", + "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>", + "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>", + "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>", + "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe", + "could not delete share" : "no fue posible borrar el elemento compartido", + "Could not delete share" : "No fue posible borrar el elemento compartido", + "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta", + "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ", + "Could not create share" : "No fue posible crear el elemento compartido", + "invalid permissions" : "permisos inválidos", + "Please specify a valid user" : "Por favor especifica un usuario válido", + "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador", + "Please specify a valid group" : "Por favor especifica un grupo válido", + "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador", + "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador", + "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente", + "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD", + "Sharing %s failed because the back end does not allow shares from type %s" : "Se presentó una falla al compartir %s, porque el backend no permite elementos compartidos de tipo %s", + "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada", + "Please specify a valid circle" : "Por favor especifica un círculo válido", + "Unknown share type" : "Tipo de elemento compartido desconocido", + "Not a directory" : "No es una carpeta", + "Could not lock path" : "No fue posible bloquear la ruta", + "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", + "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", + "Cannot increase permissions" : "No es posible incrementar los permisos", + "Share API is disabled" : "El API para compartir está deshabilitado", + "This share is password-protected" : "Este elemento compartido está protegido con contraseña", + "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", + "Password" : "Contraseña", + "No entries found in this folder" : "No se encontraron elementos en esta carpeta", + "Name" : "Nombre", + "Share time" : "Compartido desde", + "Expiration date" : "Fecha de expiración", + "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. ", + "Reasons might be:" : "Las causas podrían ser:", + "the item was removed" : "el elemento fue eliminado", + "the link expired" : "la liga expiró", + "sharing is disabled" : "compartir está deshabilitado", + "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", + "shared by %s" : "compartido por %s", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", + "Download" : "Descargar", + "Download %s" : "Descargar %s", + "Direct link" : "Liga directa", + "Upload files to %s" : "Cargar archivos a %s", + "Select or drop files" : "Selecciona o suelta los archivos", + "Uploading files…" : "Cargando archivos...", + "Uploaded files:" : "Archivos cargados:", + "%s is publicly shared" : "%s está compartido públicamente" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/es_CO.json b/apps/files_sharing/l10n/es_CO.json new file mode 100644 index 00000000000..1b467ad8b96 --- /dev/null +++ b/apps/files_sharing/l10n/es_CO.json @@ -0,0 +1,113 @@ +{ "translations": { + "Shared with you" : "Compartido contigo", + "Shared with others" : "Compartido con otros", + "Shared by link" : "Compartido por liga", + "Nothing shared with you yet" : "Nada ha sido compartido contigo aún", + "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí", + "Nothing shared yet" : "Nada compartido aún", + "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí", + "No shared links" : "No hay ligas compartidas", + "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí", + "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta", + "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}", + "Invalid server URL" : "URL del servidor inválido", + "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud", + "Share" : "Compartir", + "No expiration date set" : "No se ha establecido la fecha de expiración", + "Shared by" : "Compartido por", + "Sharing" : "Compartiendo", + "File shares" : "Archivos compartidos", + "Downloaded via public link" : "Descargado mediante una liga pública", + "Downloaded by {email}" : "Descargado por {email}", + "{file} downloaded via public link" : "{file} descargado mediante una liga pública", + "{email} downloaded {file}" : "{email} descargó {file}", + "Shared with group {group}" : "Compartido con el gupo {group}", + "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}", + "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}", + "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}", + "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}", + "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}", + "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}", + "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}", + "Shared as public link" : "Compartido como una liga pública", + "Removed public link" : "Liga pública eliminada", + "Public link expired" : "La liga pública ha expirado", + "{actor} shared as public link" : "{actor} compartió como una liga pública", + "{actor} removed public link" : "{actor} eliminó la liga pública", + "Public link of {actor} expired" : "La liga pública de {actor} ha expirado", + "You shared {file} as public link" : "Compartiste {file} como una liga pública", + "You removed public link for {file}" : "Eliminaste la liga pública de {file}", + "Public link expired for {file}" : "La liga pública para {file} ha expirado", + "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública", + "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}", + "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado", + "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto", + "{user} declined the remote share" : "{user} declinó el elemento compartido remoto", + "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}", + "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}", + "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}", + "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo", + "Shared with {user}" : "Compartido con {user}", + "Removed share for {user}" : "Se eliminó el elemento compartido para {user}", + "{actor} shared with {user}" : "{actor} compartió con {user}", + "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}", + "Shared by {actor}" : "Compartido por {actor}", + "{actor} removed share" : "{actor} eliminó el elemento compartido", + "You shared {file} with {user}" : "Compartiste {file} con {user}", + "You removed {user} from {file}" : "Eliminaste a {user} de {file}", + "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}", + "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}", + "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo", + "{actor} removed you from {file}" : "{actor} lo eliminó de {file}", + "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>", + "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>", + "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>", + "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe", + "could not delete share" : "no fue posible borrar el elemento compartido", + "Could not delete share" : "No fue posible borrar el elemento compartido", + "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta", + "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ", + "Could not create share" : "No fue posible crear el elemento compartido", + "invalid permissions" : "permisos inválidos", + "Please specify a valid user" : "Por favor especifica un usuario válido", + "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador", + "Please specify a valid group" : "Por favor especifica un grupo válido", + "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador", + "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador", + "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente", + "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD", + "Sharing %s failed because the back end does not allow shares from type %s" : "Se presentó una falla al compartir %s, porque el backend no permite elementos compartidos de tipo %s", + "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada", + "Please specify a valid circle" : "Por favor especifica un círculo válido", + "Unknown share type" : "Tipo de elemento compartido desconocido", + "Not a directory" : "No es una carpeta", + "Could not lock path" : "No fue posible bloquear la ruta", + "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", + "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", + "Cannot increase permissions" : "No es posible incrementar los permisos", + "Share API is disabled" : "El API para compartir está deshabilitado", + "This share is password-protected" : "Este elemento compartido está protegido con contraseña", + "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", + "Password" : "Contraseña", + "No entries found in this folder" : "No se encontraron elementos en esta carpeta", + "Name" : "Nombre", + "Share time" : "Compartido desde", + "Expiration date" : "Fecha de expiración", + "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. ", + "Reasons might be:" : "Las causas podrían ser:", + "the item was removed" : "el elemento fue eliminado", + "the link expired" : "la liga expiró", + "sharing is disabled" : "compartir está deshabilitado", + "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", + "shared by %s" : "compartido por %s", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", + "Download" : "Descargar", + "Download %s" : "Descargar %s", + "Direct link" : "Liga directa", + "Upload files to %s" : "Cargar archivos a %s", + "Select or drop files" : "Selecciona o suelta los archivos", + "Uploading files…" : "Cargando archivos...", + "Uploaded files:" : "Archivos cargados:", + "%s is publicly shared" : "%s está compartido públicamente" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/files_sharing/l10n/es_MX.js b/apps/files_sharing/l10n/es_MX.js index 19c5f21cb2b..ade55a2b2ed 100644 --- a/apps/files_sharing/l10n/es_MX.js +++ b/apps/files_sharing/l10n/es_MX.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", - "%s is publicly shared" : "%s está compartido públicamente", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", "Uploading files…" : "Cargando archivos...", - "Uploaded files:" : "Archivos cargados:" + "Uploaded files:" : "Archivos cargados:", + "%s is publicly shared" : "%s está compartido públicamente" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/es_MX.json b/apps/files_sharing/l10n/es_MX.json index db2aaef0063..1b467ad8b96 100644 --- a/apps/files_sharing/l10n/es_MX.json +++ b/apps/files_sharing/l10n/es_MX.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", "Cannot increase permissions" : "No es posible incrementar los permisos", - "%s is publicly shared" : "%s está compartido públicamente", "Share API is disabled" : "El API para compartir está deshabilitado", "This share is password-protected" : "Este elemento compartido está protegido con contraseña", "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Cargar archivos a %s", "Select or drop files" : "Selecciona o suelta los archivos", "Uploading files…" : "Cargando archivos...", - "Uploaded files:" : "Archivos cargados:" + "Uploaded files:" : "Archivos cargados:", + "%s is publicly shared" : "%s está compartido públicamente" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/fi.js b/apps/files_sharing/l10n/fi.js index 32b1f43b9b2..eeaf3eda179 100644 --- a/apps/files_sharing/l10n/fi.js +++ b/apps/files_sharing/l10n/fi.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "Päivitettävä parametri puuttuu tai on väärin", "Can't change permissions for public share links" : "Julkisten jakolinkkien käyttöoikeuksia ei voi muuttaa", "Cannot increase permissions" : "Oikeuksien lisääminen ei onnistu", - "%s is publicly shared" : "%s on julkisesti jaettu", "Share API is disabled" : "Jakamisrajapinta on poistettu käytöstä", "This share is password-protected" : "Tämä jako on suojattu salasanalla", "The password is wrong. Try again." : "Väärä salasana. Yritä uudelleen.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Lähetä tiedostoja käyttäjälle %s", "Select or drop files" : "Valitse tai pudota tiedostoja", "Uploading files…" : "Lähetetään tiedostoja…", - "Uploaded files:" : "Lähetetyt tiedostot:" + "Uploaded files:" : "Lähetetyt tiedostot:", + "%s is publicly shared" : "%s on julkisesti jaettu" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/fi.json b/apps/files_sharing/l10n/fi.json index 71dc15dd740..4bae56c906b 100644 --- a/apps/files_sharing/l10n/fi.json +++ b/apps/files_sharing/l10n/fi.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "Päivitettävä parametri puuttuu tai on väärin", "Can't change permissions for public share links" : "Julkisten jakolinkkien käyttöoikeuksia ei voi muuttaa", "Cannot increase permissions" : "Oikeuksien lisääminen ei onnistu", - "%s is publicly shared" : "%s on julkisesti jaettu", "Share API is disabled" : "Jakamisrajapinta on poistettu käytöstä", "This share is password-protected" : "Tämä jako on suojattu salasanalla", "The password is wrong. Try again." : "Väärä salasana. Yritä uudelleen.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Lähetä tiedostoja käyttäjälle %s", "Select or drop files" : "Valitse tai pudota tiedostoja", "Uploading files…" : "Lähetetään tiedostoja…", - "Uploaded files:" : "Lähetetyt tiedostot:" + "Uploaded files:" : "Lähetetyt tiedostot:", + "%s is publicly shared" : "%s on julkisesti jaettu" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js index c60c46de1a6..c1938ff96f6 100644 --- a/apps/files_sharing/l10n/fr.js +++ b/apps/files_sharing/l10n/fr.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "Mauvais ou aucun paramètre donné ", "Can't change permissions for public share links" : "Impossible de changer les permissions pour les liens de partage public", "Cannot increase permissions" : "Impossible d'augmenter les permissions", - "%s is publicly shared" : "%s a été partagé publiquement", "Share API is disabled" : "l'API de partage est désactivée", "This share is password-protected" : "Ce partage est protégé par un mot de passe", "The password is wrong. Try again." : "Le mot de passe est incorrect. Veuillez réessayer.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Téléversement des fichiers vers %s", "Select or drop files" : "Sélectionner ou glisser-déposer vos fichiers", "Uploading files…" : "Téléversement des fichiers...", - "Uploaded files:" : "Fichiers téléversés :" + "Uploaded files:" : "Fichiers téléversés :", + "%s is publicly shared" : "%s a été partagé publiquement" }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json index f53ba956c3c..49694dcb1ca 100644 --- a/apps/files_sharing/l10n/fr.json +++ b/apps/files_sharing/l10n/fr.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "Mauvais ou aucun paramètre donné ", "Can't change permissions for public share links" : "Impossible de changer les permissions pour les liens de partage public", "Cannot increase permissions" : "Impossible d'augmenter les permissions", - "%s is publicly shared" : "%s a été partagé publiquement", "Share API is disabled" : "l'API de partage est désactivée", "This share is password-protected" : "Ce partage est protégé par un mot de passe", "The password is wrong. Try again." : "Le mot de passe est incorrect. Veuillez réessayer.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Téléversement des fichiers vers %s", "Select or drop files" : "Sélectionner ou glisser-déposer vos fichiers", "Uploading files…" : "Téléversement des fichiers...", - "Uploaded files:" : "Fichiers téléversés :" + "Uploaded files:" : "Fichiers téléversés :", + "%s is publicly shared" : "%s a été partagé publiquement" },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/hu.js b/apps/files_sharing/l10n/hu.js index 7f3562e926e..687b83c04a0 100644 --- a/apps/files_sharing/l10n/hu.js +++ b/apps/files_sharing/l10n/hu.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "Hibás vagy üres frissítési paraméter", "Can't change permissions for public share links" : "Nem lehet módosítani a nyilvános megosztási hivatkozások jogosultságait", "Cannot increase permissions" : "Nem lehet növelni az engedélyeket", - "%s is publicly shared" : "%s nyilvánosan megosztva", "Share API is disabled" : "Megosztás API letiltva", "This share is password-protected" : "Ez egy jelszóval védett megosztás", "The password is wrong. Try again." : "A megadott jelszó nem megfelelő. Próbálja újra!", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Fájlok felöltése ide: %s", "Select or drop files" : "Válassz ki vagy dobj ide fájlokat", "Uploading files…" : "Fájlok feltöltése...", - "Uploaded files:" : "Felöltött fájlok:" + "Uploaded files:" : "Felöltött fájlok:", + "%s is publicly shared" : "%s nyilvánosan megosztva" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/hu.json b/apps/files_sharing/l10n/hu.json index fd33448f39b..6ce460a4934 100644 --- a/apps/files_sharing/l10n/hu.json +++ b/apps/files_sharing/l10n/hu.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "Hibás vagy üres frissítési paraméter", "Can't change permissions for public share links" : "Nem lehet módosítani a nyilvános megosztási hivatkozások jogosultságait", "Cannot increase permissions" : "Nem lehet növelni az engedélyeket", - "%s is publicly shared" : "%s nyilvánosan megosztva", "Share API is disabled" : "Megosztás API letiltva", "This share is password-protected" : "Ez egy jelszóval védett megosztás", "The password is wrong. Try again." : "A megadott jelszó nem megfelelő. Próbálja újra!", @@ -108,6 +107,7 @@ "Upload files to %s" : "Fájlok felöltése ide: %s", "Select or drop files" : "Válassz ki vagy dobj ide fájlokat", "Uploading files…" : "Fájlok feltöltése...", - "Uploaded files:" : "Felöltött fájlok:" + "Uploaded files:" : "Felöltött fájlok:", + "%s is publicly shared" : "%s nyilvánosan megosztva" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/is.js b/apps/files_sharing/l10n/is.js index a3380250098..e13b2f7356b 100644 --- a/apps/files_sharing/l10n/is.js +++ b/apps/files_sharing/l10n/is.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "Rangt eða ekkert uppfærsluviðfang gefið", "Can't change permissions for public share links" : "Ekki tókst að breyta aðgangsheimildum fyrir opinbera deilingartengla", "Cannot increase permissions" : "Get ekki aukið aðgangsheimildir", - "%s is publicly shared" : "%s er deilt opinberlega", "Share API is disabled" : "Deilingar-API er óvirkt", "This share is password-protected" : "Þessi sameign er varin með lykilorði", "The password is wrong. Try again." : "Lykilorðið er rangt. Reyndu aftur.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Senda inn skrár á %s", "Select or drop files" : "Veldu eða slepptu skrám", "Uploading files…" : "Sendi inn skrár…", - "Uploaded files:" : "Innsendar skrár:" + "Uploaded files:" : "Innsendar skrár:", + "%s is publicly shared" : "%s er deilt opinberlega" }, "nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"); diff --git a/apps/files_sharing/l10n/is.json b/apps/files_sharing/l10n/is.json index ec2ceeb231e..38a5576209f 100644 --- a/apps/files_sharing/l10n/is.json +++ b/apps/files_sharing/l10n/is.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "Rangt eða ekkert uppfærsluviðfang gefið", "Can't change permissions for public share links" : "Ekki tókst að breyta aðgangsheimildum fyrir opinbera deilingartengla", "Cannot increase permissions" : "Get ekki aukið aðgangsheimildir", - "%s is publicly shared" : "%s er deilt opinberlega", "Share API is disabled" : "Deilingar-API er óvirkt", "This share is password-protected" : "Þessi sameign er varin með lykilorði", "The password is wrong. Try again." : "Lykilorðið er rangt. Reyndu aftur.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Senda inn skrár á %s", "Select or drop files" : "Veldu eða slepptu skrám", "Uploading files…" : "Sendi inn skrár…", - "Uploaded files:" : "Innsendar skrár:" + "Uploaded files:" : "Innsendar skrár:", + "%s is publicly shared" : "%s er deilt opinberlega" },"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/it.js b/apps/files_sharing/l10n/it.js index 3f2a9a968d7..7b86c519106 100644 --- a/apps/files_sharing/l10n/it.js +++ b/apps/files_sharing/l10n/it.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "Parametro fornito non valido o non di aggiornamento", "Can't change permissions for public share links" : "Impossibile cambiare i permessi per i collegamenti di condivisione pubblici", "Cannot increase permissions" : "Impossibile aumentare i permessi", - "%s is publicly shared" : "%s è condiviso pubblicamente", "Share API is disabled" : "API di condivisione disabilitate", "This share is password-protected" : "Questa condivisione è protetta da password", "The password is wrong. Try again." : "La password è errata. Prova ancora.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Carica file su %s", "Select or drop files" : "Seleziona o deseleziona file", "Uploading files…" : "Caricamento file in corso...", - "Uploaded files:" : "File caricati:" + "Uploaded files:" : "File caricati:", + "%s is publicly shared" : "%s è condiviso pubblicamente" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/it.json b/apps/files_sharing/l10n/it.json index e45ada6a57e..d8f9d9a8cbc 100644 --- a/apps/files_sharing/l10n/it.json +++ b/apps/files_sharing/l10n/it.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "Parametro fornito non valido o non di aggiornamento", "Can't change permissions for public share links" : "Impossibile cambiare i permessi per i collegamenti di condivisione pubblici", "Cannot increase permissions" : "Impossibile aumentare i permessi", - "%s is publicly shared" : "%s è condiviso pubblicamente", "Share API is disabled" : "API di condivisione disabilitate", "This share is password-protected" : "Questa condivisione è protetta da password", "The password is wrong. Try again." : "La password è errata. Prova ancora.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Carica file su %s", "Select or drop files" : "Seleziona o deseleziona file", "Uploading files…" : "Caricamento file in corso...", - "Uploaded files:" : "File caricati:" + "Uploaded files:" : "File caricati:", + "%s is publicly shared" : "%s è condiviso pubblicamente" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/ja.js b/apps/files_sharing/l10n/ja.js index ed7cc80a913..c6870472034 100644 --- a/apps/files_sharing/l10n/ja.js +++ b/apps/files_sharing/l10n/ja.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "間違っている、もしくはパラメータが更新されていません", "Can't change permissions for public share links" : "URLリンク共有のパーミッションを変更できません", "Cannot increase permissions" : "パーミッションを追加できません", - "%s is publicly shared" : "%s が公開共有されました", "Share API is disabled" : "共有APIが無効です。", "This share is password-protected" : "この共有はパスワードで保護されています", "The password is wrong. Try again." : "パスワードが間違っています。再試行してください。", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "%s にファイルをアップロード", "Select or drop files" : "ファイルを選択するか、ドラッグ&ドロップしてください", "Uploading files…" : "ファイルをアップロード中...", - "Uploaded files:" : "アップロード済ファイル:" + "Uploaded files:" : "アップロード済ファイル:", + "%s is publicly shared" : "%s が公開共有されました" }, "nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/ja.json b/apps/files_sharing/l10n/ja.json index d4d54e9423d..3155aee2032 100644 --- a/apps/files_sharing/l10n/ja.json +++ b/apps/files_sharing/l10n/ja.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "間違っている、もしくはパラメータが更新されていません", "Can't change permissions for public share links" : "URLリンク共有のパーミッションを変更できません", "Cannot increase permissions" : "パーミッションを追加できません", - "%s is publicly shared" : "%s が公開共有されました", "Share API is disabled" : "共有APIが無効です。", "This share is password-protected" : "この共有はパスワードで保護されています", "The password is wrong. Try again." : "パスワードが間違っています。再試行してください。", @@ -108,6 +107,7 @@ "Upload files to %s" : "%s にファイルをアップロード", "Select or drop files" : "ファイルを選択するか、ドラッグ&ドロップしてください", "Uploading files…" : "ファイルをアップロード中...", - "Uploaded files:" : "アップロード済ファイル:" + "Uploaded files:" : "アップロード済ファイル:", + "%s is publicly shared" : "%s が公開共有されました" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/ko.js b/apps/files_sharing/l10n/ko.js index c3ebc005855..9d4e2bab464 100644 --- a/apps/files_sharing/l10n/ko.js +++ b/apps/files_sharing/l10n/ko.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "업데이트 인자가 잘못되었거나 지정되지 않았음", "Can't change permissions for public share links" : "공개 공유 링크의 권한을 변경할 수 없음", "Cannot increase permissions" : "권한을 늘릴 수 없음", - "%s is publicly shared" : "%s이(가) 공개 공유됨", "Share API is disabled" : "공유 API가 비활성화됨", "This share is password-protected" : "이 공유는 암호로 보호되어 있습니다", "The password is wrong. Try again." : "암호가 잘못되었습니다. 다시 입력해 주십시오.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "%s에 파일 업로드", "Select or drop files" : "파일을 선택하거나 끌어다 놓기", "Uploading files…" : "파일 업로드 중…", - "Uploaded files:" : "업로드한 파일:" + "Uploaded files:" : "업로드한 파일:", + "%s is publicly shared" : "%s이(가) 공개 공유됨" }, "nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/ko.json b/apps/files_sharing/l10n/ko.json index adaa166da8e..3ddcbc5cf59 100644 --- a/apps/files_sharing/l10n/ko.json +++ b/apps/files_sharing/l10n/ko.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "업데이트 인자가 잘못되었거나 지정되지 않았음", "Can't change permissions for public share links" : "공개 공유 링크의 권한을 변경할 수 없음", "Cannot increase permissions" : "권한을 늘릴 수 없음", - "%s is publicly shared" : "%s이(가) 공개 공유됨", "Share API is disabled" : "공유 API가 비활성화됨", "This share is password-protected" : "이 공유는 암호로 보호되어 있습니다", "The password is wrong. Try again." : "암호가 잘못되었습니다. 다시 입력해 주십시오.", @@ -108,6 +107,7 @@ "Upload files to %s" : "%s에 파일 업로드", "Select or drop files" : "파일을 선택하거나 끌어다 놓기", "Uploading files…" : "파일 업로드 중…", - "Uploaded files:" : "업로드한 파일:" + "Uploaded files:" : "업로드한 파일:", + "%s is publicly shared" : "%s이(가) 공개 공유됨" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/lt_LT.js b/apps/files_sharing/l10n/lt_LT.js index 1cca70a2c5f..df07d22c787 100644 --- a/apps/files_sharing/l10n/lt_LT.js +++ b/apps/files_sharing/l10n/lt_LT.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "Neperduoti atnaujinimo parametrai", "Can't change permissions for public share links" : "Negalima keisti leidimų viešai bendrinamoms nuorodoms", "Cannot increase permissions" : "Negalima pridėti papildomų leidimų", - "%s is publicly shared" : "%s yra bendrinamas viešai", "Share API is disabled" : "Bendrinimo API yra išjungtas", "This share is password-protected" : "Turinys apsaugotas slaptažodžiu", "The password is wrong. Try again." : "Slaptažodis neteisingas. Bandykite dar kartą.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Įkelti duomenis į %s", "Select or drop files" : "Pasirinkite arba vilkite failus", "Uploading files…" : "Įkeliami failai…", - "Uploaded files:" : "Įkelti failai:" + "Uploaded files:" : "Įkelti failai:", + "%s is publicly shared" : "%s yra bendrinamas viešai" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_sharing/l10n/lt_LT.json b/apps/files_sharing/l10n/lt_LT.json index 6f09a84cda2..e944a9f8c3b 100644 --- a/apps/files_sharing/l10n/lt_LT.json +++ b/apps/files_sharing/l10n/lt_LT.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "Neperduoti atnaujinimo parametrai", "Can't change permissions for public share links" : "Negalima keisti leidimų viešai bendrinamoms nuorodoms", "Cannot increase permissions" : "Negalima pridėti papildomų leidimų", - "%s is publicly shared" : "%s yra bendrinamas viešai", "Share API is disabled" : "Bendrinimo API yra išjungtas", "This share is password-protected" : "Turinys apsaugotas slaptažodžiu", "The password is wrong. Try again." : "Slaptažodis neteisingas. Bandykite dar kartą.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Įkelti duomenis į %s", "Select or drop files" : "Pasirinkite arba vilkite failus", "Uploading files…" : "Įkeliami failai…", - "Uploaded files:" : "Įkelti failai:" + "Uploaded files:" : "Įkelti failai:", + "%s is publicly shared" : "%s yra bendrinamas viešai" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/nb.js b/apps/files_sharing/l10n/nb.js index 493dccb6054..e1c82112dbd 100644 --- a/apps/files_sharing/l10n/nb.js +++ b/apps/files_sharing/l10n/nb.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "Feil eller ingen parametre for oppdatering er angitt", "Can't change permissions for public share links" : "Kan ikke endre rettigheter for offentlige lenker", "Cannot increase permissions" : "Kan ikke øke tillatelser", - "%s is publicly shared" : "%s er delt offentlig", "Share API is disabled" : "Deling API er deaktivert", "This share is password-protected" : "Denne delingen er passordbeskyttet", "The password is wrong. Try again." : "Passordet er feil. Prøv på nytt.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Last opp filer til %s", "Select or drop files" : "Velg eller slipp filer", "Uploading files…" : "Laster opp filer...", - "Uploaded files:" : "Opplastede filer:" + "Uploaded files:" : "Opplastede filer:", + "%s is publicly shared" : "%s er delt offentlig" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/nb.json b/apps/files_sharing/l10n/nb.json index 32e0d0eadb7..e5bd108d5f2 100644 --- a/apps/files_sharing/l10n/nb.json +++ b/apps/files_sharing/l10n/nb.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "Feil eller ingen parametre for oppdatering er angitt", "Can't change permissions for public share links" : "Kan ikke endre rettigheter for offentlige lenker", "Cannot increase permissions" : "Kan ikke øke tillatelser", - "%s is publicly shared" : "%s er delt offentlig", "Share API is disabled" : "Deling API er deaktivert", "This share is password-protected" : "Denne delingen er passordbeskyttet", "The password is wrong. Try again." : "Passordet er feil. Prøv på nytt.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Last opp filer til %s", "Select or drop files" : "Velg eller slipp filer", "Uploading files…" : "Laster opp filer...", - "Uploaded files:" : "Opplastede filer:" + "Uploaded files:" : "Opplastede filer:", + "%s is publicly shared" : "%s er delt offentlig" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/nl.js b/apps/files_sharing/l10n/nl.js index 42dca7a41f6..ccd1bbe33d1 100644 --- a/apps/files_sharing/l10n/nl.js +++ b/apps/files_sharing/l10n/nl.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "Verkeerde of geen update parameter opgegeven", "Can't change permissions for public share links" : "Kan rechten voor openbaar gedeelde links niet wijzigen", "Cannot increase permissions" : "Kan de rechten niet verruimen", - "%s is publicly shared" : "%s is openbaar gedeeld", "Share API is disabled" : "Delen API is uitgeschakeld", "This share is password-protected" : "Deze gedeelde folder is met een wachtwoord beveiligd", "The password is wrong. Try again." : "Wachtwoord ongeldig. Probeer het nogmaals.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Upload bestanden naar %s", "Select or drop files" : "Selecteer of leg bestanden neer", "Uploading files…" : "Uploaden bestanden...", - "Uploaded files:" : "Geüploade bestanden" + "Uploaded files:" : "Geüploade bestanden", + "%s is publicly shared" : "%s is openbaar gedeeld" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/nl.json b/apps/files_sharing/l10n/nl.json index 669018c1f4f..4d9ebdd6728 100644 --- a/apps/files_sharing/l10n/nl.json +++ b/apps/files_sharing/l10n/nl.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "Verkeerde of geen update parameter opgegeven", "Can't change permissions for public share links" : "Kan rechten voor openbaar gedeelde links niet wijzigen", "Cannot increase permissions" : "Kan de rechten niet verruimen", - "%s is publicly shared" : "%s is openbaar gedeeld", "Share API is disabled" : "Delen API is uitgeschakeld", "This share is password-protected" : "Deze gedeelde folder is met een wachtwoord beveiligd", "The password is wrong. Try again." : "Wachtwoord ongeldig. Probeer het nogmaals.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Upload bestanden naar %s", "Select or drop files" : "Selecteer of leg bestanden neer", "Uploading files…" : "Uploaden bestanden...", - "Uploaded files:" : "Geüploade bestanden" + "Uploaded files:" : "Geüploade bestanden", + "%s is publicly shared" : "%s is openbaar gedeeld" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/pl.js b/apps/files_sharing/l10n/pl.js index 8d44b31d755..04529901ddb 100644 --- a/apps/files_sharing/l10n/pl.js +++ b/apps/files_sharing/l10n/pl.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "Brakujący lub błędny parametr aktualizacji", "Can't change permissions for public share links" : "Nie można zmienić uprawnień dla publicznych udziałów", "Cannot increase permissions" : "Nie można zwiększyć uprawnień", - "%s is publicly shared" : "%s jest publicznie dostępny", "Share API is disabled" : "API udostępniania jest wyłączone", "This share is password-protected" : "Udostępniony folder chroniony jest hasłem", "The password is wrong. Try again." : "To hasło jest niewłaściwe. Spróbuj ponownie.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Prześlij pliki do %s", "Select or drop files" : "Wybierz lub upuść pliki", "Uploading files…" : "Wysyłanie plików...", - "Uploaded files:" : "Wysłane pliki:" + "Uploaded files:" : "Wysłane pliki:", + "%s is publicly shared" : "%s jest publicznie dostępny" }, "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/files_sharing/l10n/pl.json b/apps/files_sharing/l10n/pl.json index 373735af142..dc9886b06b8 100644 --- a/apps/files_sharing/l10n/pl.json +++ b/apps/files_sharing/l10n/pl.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "Brakujący lub błędny parametr aktualizacji", "Can't change permissions for public share links" : "Nie można zmienić uprawnień dla publicznych udziałów", "Cannot increase permissions" : "Nie można zwiększyć uprawnień", - "%s is publicly shared" : "%s jest publicznie dostępny", "Share API is disabled" : "API udostępniania jest wyłączone", "This share is password-protected" : "Udostępniony folder chroniony jest hasłem", "The password is wrong. Try again." : "To hasło jest niewłaściwe. Spróbuj ponownie.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Prześlij pliki do %s", "Select or drop files" : "Wybierz lub upuść pliki", "Uploading files…" : "Wysyłanie plików...", - "Uploaded files:" : "Wysłane pliki:" + "Uploaded files:" : "Wysłane pliki:", + "%s is publicly shared" : "%s jest publicznie dostępny" },"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/files_sharing/l10n/pt_BR.js b/apps/files_sharing/l10n/pt_BR.js index 2fe130a548a..c0d84db4b3f 100644 --- a/apps/files_sharing/l10n/pt_BR.js +++ b/apps/files_sharing/l10n/pt_BR.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "O parâmetro da atualização fornecido está errado ou não existe", "Can't change permissions for public share links" : "Não foi possível alterar as permissões para links de compartilhamento público", "Cannot increase permissions" : "Não foi possível aumentar as permissões", - "%s is publicly shared" : "%s está compartilhado publicamente", "Share API is disabled" : "O compartilhamento de API está desabilitado.", "This share is password-protected" : "Este compartilhamento é protegido por senha", "The password is wrong. Try again." : "Senha incorreta. Tente novamente.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Enviar arquivos para %s", "Select or drop files" : "Selecione ou solte arquivos", "Uploading files…" : "Enviando arquivos...", - "Uploaded files:" : "Arquivos enviados:" + "Uploaded files:" : "Arquivos enviados:", + "%s is publicly shared" : "%s está compartilhado publicamente" }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json index 66419d9393f..42980162b62 100644 --- a/apps/files_sharing/l10n/pt_BR.json +++ b/apps/files_sharing/l10n/pt_BR.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "O parâmetro da atualização fornecido está errado ou não existe", "Can't change permissions for public share links" : "Não foi possível alterar as permissões para links de compartilhamento público", "Cannot increase permissions" : "Não foi possível aumentar as permissões", - "%s is publicly shared" : "%s está compartilhado publicamente", "Share API is disabled" : "O compartilhamento de API está desabilitado.", "This share is password-protected" : "Este compartilhamento é protegido por senha", "The password is wrong. Try again." : "Senha incorreta. Tente novamente.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Enviar arquivos para %s", "Select or drop files" : "Selecione ou solte arquivos", "Uploading files…" : "Enviando arquivos...", - "Uploaded files:" : "Arquivos enviados:" + "Uploaded files:" : "Arquivos enviados:", + "%s is publicly shared" : "%s está compartilhado publicamente" },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js index a81b094dafe..1137df6df9c 100644 --- a/apps/files_sharing/l10n/ru.js +++ b/apps/files_sharing/l10n/ru.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "Параметр для изменения неправилен или не задан", "Can't change permissions for public share links" : "Для общедоступных ссылок изменение прав невозможно", "Cannot increase permissions" : "Нельзя увеличить права", - "%s is publicly shared" : "%s опубликован ", "Share API is disabled" : "API общего доступа отключён", "This share is password-protected" : "Общий ресурс защищен паролем", "The password is wrong. Try again." : "Неверный пароль. Попробуйте еще раз.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Загрузка файлов пользователю %s", "Select or drop files" : "Выберите или перетащите файлы", "Uploading files…" : "Загрузка файлов...", - "Uploaded files:" : "Загруженные файлы:" + "Uploaded files:" : "Загруженные файлы:", + "%s is publicly shared" : "%s опубликован " }, "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json index a4891dd5c05..54321a0b0c3 100644 --- a/apps/files_sharing/l10n/ru.json +++ b/apps/files_sharing/l10n/ru.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "Параметр для изменения неправилен или не задан", "Can't change permissions for public share links" : "Для общедоступных ссылок изменение прав невозможно", "Cannot increase permissions" : "Нельзя увеличить права", - "%s is publicly shared" : "%s опубликован ", "Share API is disabled" : "API общего доступа отключён", "This share is password-protected" : "Общий ресурс защищен паролем", "The password is wrong. Try again." : "Неверный пароль. Попробуйте еще раз.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Загрузка файлов пользователю %s", "Select or drop files" : "Выберите или перетащите файлы", "Uploading files…" : "Загрузка файлов...", - "Uploaded files:" : "Загруженные файлы:" + "Uploaded files:" : "Загруженные файлы:", + "%s is publicly shared" : "%s опубликован " },"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/sk.js b/apps/files_sharing/l10n/sk.js index b60205e40a6..1882dad1a39 100644 --- a/apps/files_sharing/l10n/sk.js +++ b/apps/files_sharing/l10n/sk.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "Zlý alebo žiadny zadaný parameter aktualizácie", "Can't change permissions for public share links" : "Nemožno zmeniť oprávnenia pre verejné sprístupnené odkazy", "Cannot increase permissions" : "Nie je možné navýšiť oprávnenia", - "%s is publicly shared" : "%s je sprístupnené verejne", "Share API is disabled" : "API pre sprístupňovanie je zakázané", "This share is password-protected" : "Táto položka je chránené heslom", "The password is wrong. Try again." : "Heslo je chybné. Skúste to znova.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Nahrať súbory do %s", "Select or drop files" : "Vyberte alebo položte súbory", "Uploading files…" : "Nahrávanie súborov...", - "Uploaded files:" : "Nahrané súbory..." + "Uploaded files:" : "Nahrané súbory...", + "%s is publicly shared" : "%s je sprístupnené verejne" }, "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/files_sharing/l10n/sk.json b/apps/files_sharing/l10n/sk.json index 2953c12bf44..5edc0bf926b 100644 --- a/apps/files_sharing/l10n/sk.json +++ b/apps/files_sharing/l10n/sk.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "Zlý alebo žiadny zadaný parameter aktualizácie", "Can't change permissions for public share links" : "Nemožno zmeniť oprávnenia pre verejné sprístupnené odkazy", "Cannot increase permissions" : "Nie je možné navýšiť oprávnenia", - "%s is publicly shared" : "%s je sprístupnené verejne", "Share API is disabled" : "API pre sprístupňovanie je zakázané", "This share is password-protected" : "Táto položka je chránené heslom", "The password is wrong. Try again." : "Heslo je chybné. Skúste to znova.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Nahrať súbory do %s", "Select or drop files" : "Vyberte alebo položte súbory", "Uploading files…" : "Nahrávanie súborov...", - "Uploaded files:" : "Nahrané súbory..." + "Uploaded files:" : "Nahrané súbory...", + "%s is publicly shared" : "%s je sprístupnené verejne" },"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/sq.js b/apps/files_sharing/l10n/sq.js index 492dae82a91..b828af91a73 100644 --- a/apps/files_sharing/l10n/sq.js +++ b/apps/files_sharing/l10n/sq.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "Ose u dha parametër i gabuar përditësimesh, pse s’u dha fare ", "Can't change permissions for public share links" : "S’mund të ndryshohen lejet për lidhje ndarjesh publike", "Cannot increase permissions" : "S’mund të fuqizohen lejet", - "%s is publicly shared" : "%s është ndarë publikisht", "Share API is disabled" : "API i ndarjeve është çaktivizuar", "This share is password-protected" : "Kjo pjesë është e mbrojtur me fjalëkalim", "The password is wrong. Try again." : "Fjalëkalimi është i gabuar. Riprovoni.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Ngrako skedarët tek %s", "Select or drop files" : "Përzgjidh ose hiq skedarët", "Uploading files…" : "Skedarët po ngarkohen...", - "Uploaded files:" : "Skedarët e ngarkuar:" + "Uploaded files:" : "Skedarët e ngarkuar:", + "%s is publicly shared" : "%s është ndarë publikisht" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/sq.json b/apps/files_sharing/l10n/sq.json index 26c6b213cef..0b525a14bab 100644 --- a/apps/files_sharing/l10n/sq.json +++ b/apps/files_sharing/l10n/sq.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "Ose u dha parametër i gabuar përditësimesh, pse s’u dha fare ", "Can't change permissions for public share links" : "S’mund të ndryshohen lejet për lidhje ndarjesh publike", "Cannot increase permissions" : "S’mund të fuqizohen lejet", - "%s is publicly shared" : "%s është ndarë publikisht", "Share API is disabled" : "API i ndarjeve është çaktivizuar", "This share is password-protected" : "Kjo pjesë është e mbrojtur me fjalëkalim", "The password is wrong. Try again." : "Fjalëkalimi është i gabuar. Riprovoni.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Ngrako skedarët tek %s", "Select or drop files" : "Përzgjidh ose hiq skedarët", "Uploading files…" : "Skedarët po ngarkohen...", - "Uploaded files:" : "Skedarët e ngarkuar:" + "Uploaded files:" : "Skedarët e ngarkuar:", + "%s is publicly shared" : "%s është ndarë publikisht" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/sr.js b/apps/files_sharing/l10n/sr.js index e32d442e938..369b69ee567 100644 --- a/apps/files_sharing/l10n/sr.js +++ b/apps/files_sharing/l10n/sr.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "Погрешан или ненаведен параметер", "Can't change permissions for public share links" : "Не могу се променити привилегије за јавно доступне везе", "Cannot increase permissions" : "Не могу да повећам привилегије", - "%s is publicly shared" : "%s је јавно дељен", "Share API is disabled" : "API за дељене је искључен", "This share is password-protected" : "Дељење је заштићено лозинком", "The password is wrong. Try again." : "Лозинка је погрешна. Покушајте поново.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Отпремите фајлове на%s", "Select or drop files" : "Одаберите или превуците фајлове", "Uploading files…" : "Отпремам фајлове…", - "Uploaded files:" : "Отпремљени фајлови:" + "Uploaded files:" : "Отпремљени фајлови:", + "%s is publicly shared" : "%s је јавно дељен" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/files_sharing/l10n/sr.json b/apps/files_sharing/l10n/sr.json index e352b892848..0353d5ff0ab 100644 --- a/apps/files_sharing/l10n/sr.json +++ b/apps/files_sharing/l10n/sr.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "Погрешан или ненаведен параметер", "Can't change permissions for public share links" : "Не могу се променити привилегије за јавно доступне везе", "Cannot increase permissions" : "Не могу да повећам привилегије", - "%s is publicly shared" : "%s је јавно дељен", "Share API is disabled" : "API за дељене је искључен", "This share is password-protected" : "Дељење је заштићено лозинком", "The password is wrong. Try again." : "Лозинка је погрешна. Покушајте поново.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Отпремите фајлове на%s", "Select or drop files" : "Одаберите или превуците фајлове", "Uploading files…" : "Отпремам фајлове…", - "Uploaded files:" : "Отпремљени фајлови:" + "Uploaded files:" : "Отпремљени фајлови:", + "%s is publicly shared" : "%s је јавно дељен" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/sv.js b/apps/files_sharing/l10n/sv.js index cd2659ed221..0938d224b66 100644 --- a/apps/files_sharing/l10n/sv.js +++ b/apps/files_sharing/l10n/sv.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "Fel eller ingen uppdateringsparameter angiven", "Can't change permissions for public share links" : "Det går inte att ändra behörigheterna för offentliga länkar", "Cannot increase permissions" : "Kan inte utöka behörigheter", - "%s is publicly shared" : "%s är offentligt delad", "Share API is disabled" : "Delning av API är inaktiverad", "This share is password-protected" : "Den här delningen är lösenordsskyddad", "The password is wrong. Try again." : "Lösenordet är fel. Försök igen.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Ladda upp filer till %s", "Select or drop files" : "Välj eller dra filer hit", "Uploading files…" : "Laddar upp filer...", - "Uploaded files:" : "Uppladdade filer:" + "Uploaded files:" : "Uppladdade filer:", + "%s is publicly shared" : "%s är offentligt delad" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/sv.json b/apps/files_sharing/l10n/sv.json index 507f79ed25a..0318f561ed3 100644 --- a/apps/files_sharing/l10n/sv.json +++ b/apps/files_sharing/l10n/sv.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "Fel eller ingen uppdateringsparameter angiven", "Can't change permissions for public share links" : "Det går inte att ändra behörigheterna för offentliga länkar", "Cannot increase permissions" : "Kan inte utöka behörigheter", - "%s is publicly shared" : "%s är offentligt delad", "Share API is disabled" : "Delning av API är inaktiverad", "This share is password-protected" : "Den här delningen är lösenordsskyddad", "The password is wrong. Try again." : "Lösenordet är fel. Försök igen.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Ladda upp filer till %s", "Select or drop files" : "Välj eller dra filer hit", "Uploading files…" : "Laddar upp filer...", - "Uploaded files:" : "Uppladdade filer:" + "Uploaded files:" : "Uppladdade filer:", + "%s is publicly shared" : "%s är offentligt delad" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/tr.js b/apps/files_sharing/l10n/tr.js index 8a46cb8a5e8..ba1c08537b9 100644 --- a/apps/files_sharing/l10n/tr.js +++ b/apps/files_sharing/l10n/tr.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "Parametre yanlış ya da herhangi bir parametre belirtilmemiş", "Can't change permissions for public share links" : "Herkese açık paylaşılan bağlantıların erişim hakları değiştirilemez", "Cannot increase permissions" : "Erişim izinleri yükseltilemez", - "%s is publicly shared" : "%s herkese açık olarak paylaşıldı", "Share API is disabled" : "Paylaşım API arayüzü devre dışı", "This share is password-protected" : "Bu paylaşım parola korumalı", "The password is wrong. Try again." : "Parola yanlış. Yeniden deneyin.", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "Dosyaları %s konumuna yükle", "Select or drop files" : "Dosyaları seçin ya da sürükleyip bırakın", "Uploading files…" : "Dosyalar yükleniyor...", - "Uploaded files:" : "Yüklenmiş dosyalar:" + "Uploaded files:" : "Yüklenmiş dosyalar:", + "%s is publicly shared" : "%s herkese açık olarak paylaşıldı" }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/files_sharing/l10n/tr.json b/apps/files_sharing/l10n/tr.json index f028cc1811e..da85ed58f40 100644 --- a/apps/files_sharing/l10n/tr.json +++ b/apps/files_sharing/l10n/tr.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "Parametre yanlış ya da herhangi bir parametre belirtilmemiş", "Can't change permissions for public share links" : "Herkese açık paylaşılan bağlantıların erişim hakları değiştirilemez", "Cannot increase permissions" : "Erişim izinleri yükseltilemez", - "%s is publicly shared" : "%s herkese açık olarak paylaşıldı", "Share API is disabled" : "Paylaşım API arayüzü devre dışı", "This share is password-protected" : "Bu paylaşım parola korumalı", "The password is wrong. Try again." : "Parola yanlış. Yeniden deneyin.", @@ -108,6 +107,7 @@ "Upload files to %s" : "Dosyaları %s konumuna yükle", "Select or drop files" : "Dosyaları seçin ya da sürükleyip bırakın", "Uploading files…" : "Dosyalar yükleniyor...", - "Uploaded files:" : "Yüklenmiş dosyalar:" + "Uploaded files:" : "Yüklenmiş dosyalar:", + "%s is publicly shared" : "%s herkese açık olarak paylaşıldı" },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/zh_CN.js b/apps/files_sharing/l10n/zh_CN.js index 3074385056c..3ec4080e94f 100644 --- a/apps/files_sharing/l10n/zh_CN.js +++ b/apps/files_sharing/l10n/zh_CN.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "错误或没有更新参数给出", "Can't change permissions for public share links" : "不能改变公共分享链接权限", "Cannot increase permissions" : "不能增加权限", - "%s is publicly shared" : "%s 是公开共享", "Share API is disabled" : "共享 API 已被禁用", "This share is password-protected" : "这是一个密码保护的共享", "The password is wrong. Try again." : "用户名或密码错误!请重试", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "上传文件到 %s", "Select or drop files" : "选择或删除文件", "Uploading files…" : "上传文件 … ", - "Uploaded files:" : "上传的文件: " + "Uploaded files:" : "上传的文件: ", + "%s is publicly shared" : "%s 是公开共享" }, "nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/zh_CN.json b/apps/files_sharing/l10n/zh_CN.json index 0a541badcc8..f3da1fbe4ec 100644 --- a/apps/files_sharing/l10n/zh_CN.json +++ b/apps/files_sharing/l10n/zh_CN.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "错误或没有更新参数给出", "Can't change permissions for public share links" : "不能改变公共分享链接权限", "Cannot increase permissions" : "不能增加权限", - "%s is publicly shared" : "%s 是公开共享", "Share API is disabled" : "共享 API 已被禁用", "This share is password-protected" : "这是一个密码保护的共享", "The password is wrong. Try again." : "用户名或密码错误!请重试", @@ -108,6 +107,7 @@ "Upload files to %s" : "上传文件到 %s", "Select or drop files" : "选择或删除文件", "Uploading files…" : "上传文件 … ", - "Uploaded files:" : "上传的文件: " + "Uploaded files:" : "上传的文件: ", + "%s is publicly shared" : "%s 是公开共享" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/zh_TW.js b/apps/files_sharing/l10n/zh_TW.js index cff1b2fbb9e..12444207d04 100644 --- a/apps/files_sharing/l10n/zh_TW.js +++ b/apps/files_sharing/l10n/zh_TW.js @@ -87,7 +87,6 @@ OC.L10N.register( "Wrong or no update parameter given" : "更新參數不正確或未提供", "Can't change permissions for public share links" : "無法由公開分享的連結變更權限", "Cannot increase permissions" : "無法增加權限", - "%s is publicly shared" : "%s 是被公然分享的", "Share API is disabled" : "分享 API 已停用", "This share is password-protected" : "這個分享有密碼保護", "The password is wrong. Try again." : "請檢查您的密碼並再試一次", @@ -110,6 +109,7 @@ OC.L10N.register( "Upload files to %s" : "上傳檔案到 %s", "Select or drop files" : "選擇或拖曳檔案至此", "Uploading files…" : "上傳檔案中…", - "Uploaded files:" : "已上傳的檔案:" + "Uploaded files:" : "已上傳的檔案:", + "%s is publicly shared" : "%s 是被公然分享的" }, "nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/zh_TW.json b/apps/files_sharing/l10n/zh_TW.json index 73a4a49e8df..17f98af8d88 100644 --- a/apps/files_sharing/l10n/zh_TW.json +++ b/apps/files_sharing/l10n/zh_TW.json @@ -85,7 +85,6 @@ "Wrong or no update parameter given" : "更新參數不正確或未提供", "Can't change permissions for public share links" : "無法由公開分享的連結變更權限", "Cannot increase permissions" : "無法增加權限", - "%s is publicly shared" : "%s 是被公然分享的", "Share API is disabled" : "分享 API 已停用", "This share is password-protected" : "這個分享有密碼保護", "The password is wrong. Try again." : "請檢查您的密碼並再試一次", @@ -108,6 +107,7 @@ "Upload files to %s" : "上傳檔案到 %s", "Select or drop files" : "選擇或拖曳檔案至此", "Uploading files…" : "上傳檔案中…", - "Uploaded files:" : "已上傳的檔案:" + "Uploaded files:" : "已上傳的檔案:", + "%s is publicly shared" : "%s 是被公然分享的" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_sharing/lib/Controller/ShareController.php b/apps/files_sharing/lib/Controller/ShareController.php index a7cf1a78971..700ac220804 100644 --- a/apps/files_sharing/lib/Controller/ShareController.php +++ b/apps/files_sharing/lib/Controller/ShareController.php @@ -406,8 +406,8 @@ class ShareController extends Controller { } // OpenGraph Support: http://ogp.me/ - \OCP\Util::addHeader('meta', ['property' => "og:title", 'content' => $this->defaults->getName() . ($this->defaults->getSlogan() !== '' ? ' - ' . $this->defaults->getSlogan() : '')]); - \OCP\Util::addHeader('meta', ['property' => "og:description", 'content' => $this->l10n->t('%s is publicly shared', [$shareTmpl['filename']])]); + \OCP\Util::addHeader('meta', ['property' => "og:title", 'content' => $shareTmpl['filename']]); + \OCP\Util::addHeader('meta', ['property' => "og:description", 'content' => $this->defaults->getName() . ($this->defaults->getSlogan() !== '' ? ' - ' . $this->defaults->getSlogan() : '')]); \OCP\Util::addHeader('meta', ['property' => "og:site_name", 'content' => $this->defaults->getName()]); \OCP\Util::addHeader('meta', ['property' => "og:url", 'content' => $shareTmpl['shareUrl']]); \OCP\Util::addHeader('meta', ['property' => "og:type", 'content' => "object"]); @@ -458,6 +458,10 @@ class ShareController extends Controller { if ($files_list === null) { $files_list = [$files]; } + // Just in case $files is a single int like '1234' + if (!is_array($files_list)) { + $files_list = [$files_list]; + } } $userFolder = $this->rootFolder->getUserFolder($share->getShareOwner()); diff --git a/apps/files_sharing/templates/authenticate.php b/apps/files_sharing/templates/authenticate.php index d9f19bbb579..20e200ef1ca 100644 --- a/apps/files_sharing/templates/authenticate.php +++ b/apps/files_sharing/templates/authenticate.php @@ -17,7 +17,7 @@ <input type="hidden" name="requesttoken" value="<?php p($_['requesttoken']) ?>" /> <input type="password" name="password" id="password" placeholder="<?php p($l->t('Password')); ?>" value="" - autocomplete="off" autocapitalize="off" autocorrect="off" + autocomplete="new-password" autocapitalize="off" autocorrect="off" autofocus /> <input type="submit" id="password-submit" class="svg icon-confirm input-button-inline" value="" disabled="disabled" /> diff --git a/apps/files_sharing/tests/ApiTest.php b/apps/files_sharing/tests/ApiTest.php index 1b629f66a81..8a976108b3f 100644 --- a/apps/files_sharing/tests/ApiTest.php +++ b/apps/files_sharing/tests/ApiTest.php @@ -35,6 +35,8 @@ use OCP\AppFramework\OCS\OCSBadRequestException; use OCP\AppFramework\OCS\OCSException; use OCP\AppFramework\OCS\OCSForbiddenException; use OCP\AppFramework\OCS\OCSNotFoundException; +use OCP\IL10N; +use OCP\IRequest; /** * Class ApiTest @@ -96,7 +98,7 @@ class ApiTest extends TestCase { * @return \OCA\Files_Sharing\Controller\ShareAPIController */ private function createOCS($userId) { - $l = $this->getMockBuilder('\OCP\IL10N')->getMock(); + $l = $this->getMockBuilder(IL10N::class)->getMock(); $l->method('t') ->will($this->returnCallback(function($text, $parameters = []) { return vsprintf($text, $parameters); @@ -104,7 +106,7 @@ class ApiTest extends TestCase { return new ShareAPIController( self::APP_NAME, - $this->getMockBuilder('OCP\IRequest')->getMock(), + $this->getMockBuilder(IRequest::class)->getMock(), $this->shareManager, \OC::$server->getGroupManager(), \OC::$server->getUserManager(), diff --git a/apps/files_sharing/tests/CapabilitiesTest.php b/apps/files_sharing/tests/CapabilitiesTest.php index 1747bbc4ed2..e65131bf45f 100644 --- a/apps/files_sharing/tests/CapabilitiesTest.php +++ b/apps/files_sharing/tests/CapabilitiesTest.php @@ -24,6 +24,7 @@ namespace OCA\Files_Sharing\Tests; use OCA\Files_Sharing\Capabilities; +use OCP\IConfig; /** @@ -54,7 +55,7 @@ class CapabilitiesTest extends \Test\TestCase { * @return string[] */ private function getResults(array $map) { - $config = $this->getMockBuilder('\OCP\IConfig')->disableOriginalConstructor()->getMock(); + $config = $this->getMockBuilder(IConfig::class)->disableOriginalConstructor()->getMock(); $config->method('getAppValue')->will($this->returnValueMap($map)); $cap = new Capabilities($config); $result = $this->getFilesSharingPart($cap->getCapabilities()); diff --git a/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php b/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php index 827fcc15797..5480874615e 100644 --- a/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php +++ b/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php @@ -22,6 +22,8 @@ namespace OCA\Files_Sharing\Tests\Command; use OCA\Files_Sharing\Command\CleanupRemoteStorages; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; use Test\TestCase; /** @@ -158,10 +160,10 @@ class CleanupRemoteStoragesTest extends TestCase { * Test cleanup of orphaned storages */ public function testCleanup() { - $input = $this->getMockBuilder('Symfony\Component\Console\Input\InputInterface') + $input = $this->getMockBuilder(InputInterface::class) ->disableOriginalConstructor() ->getMock(); - $output = $this->getMockBuilder('Symfony\Component\Console\Output\OutputInterface') + $output = $this->getMockBuilder(OutputInterface::class) ->disableOriginalConstructor() ->getMock(); diff --git a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php index 45134df36b7..3bebb9e1195 100644 --- a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php +++ b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php @@ -25,7 +25,9 @@ namespace OCA\Files_Sharing\Tests\Controller; use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\OCS\OCSNotFoundException; +use OCP\Files\File; use OCP\Files\Folder; +use OCP\Files\Storage; use OCP\IL10N; use OCA\Files_Sharing\Controller\ShareAPIController; use OCP\Files\NotFoundException; @@ -156,7 +158,7 @@ class ShareAPIControllerTest extends TestCase { } public function testDeleteShare() { - $node = $this->getMockBuilder('\OCP\Files\File')->getMock(); + $node = $this->getMockBuilder(File::class)->getMock(); $share = $this->newShare(); $share->setSharedBy($this->currentUser) @@ -187,7 +189,7 @@ class ShareAPIControllerTest extends TestCase { * @expectedExceptionMessage could not delete share */ public function testDeleteShareLocked() { - $node = $this->getMockBuilder('\OCP\Files\File')->getMock(); + $node = $this->getMockBuilder(File::class)->getMock(); $share = $this->newShare(); $share->setSharedBy($this->currentUser) @@ -228,7 +230,7 @@ class ShareAPIControllerTest extends TestCase { public function createShare($id, $shareType, $sharedWith, $sharedBy, $shareOwner, $path, $permissions, $shareTime, $expiration, $parent, $target, $mail_send, $token=null, $password=null) { - $share = $this->getMockBuilder('\OCP\Share\IShare')->getMock(); + $share = $this->getMockBuilder(IShare::class)->getMock(); $share->method('getId')->willReturn($id); $share->method('getShareType')->willReturn($shareType); $share->method('getSharedWith')->willReturn($sharedWith); @@ -262,7 +264,7 @@ class ShareAPIControllerTest extends TestCase { ->getMock(); $cache->method('getNumericStorageId')->willReturn(101); - $storage = $this->getMockBuilder('OC\Files\Storage\Storage') + $storage = $this->getMockBuilder(Storage::class) ->disableOriginalConstructor() ->getMock(); $storage->method('getId')->willReturn('STORAGE'); @@ -464,15 +466,15 @@ class ShareAPIControllerTest extends TestCase { ->method('linkToRouteAbsolute') ->willReturn('url'); - $initiator = $this->getMockBuilder('OCP\IUser')->getMock(); + $initiator = $this->getMockBuilder(IUser::class)->getMock(); $initiator->method('getUID')->willReturn('initiatorId'); $initiator->method('getDisplayName')->willReturn('initiatorDisplay'); - $owner = $this->getMockBuilder('OCP\IUser')->getMock(); + $owner = $this->getMockBuilder(IUser::class)->getMock(); $owner->method('getUID')->willReturn('ownerId'); $owner->method('getDisplayName')->willReturn('ownerDisplay'); - $user = $this->getMockBuilder('OCP\IUser')->getMock(); + $user = $this->getMockBuilder(IUser::class)->getMock(); $user->method('getUID')->willReturn('userId'); $user->method('getDisplayName')->willReturn('userDisplay'); @@ -511,25 +513,25 @@ class ShareAPIControllerTest extends TestCase { } public function testCanAccessShare() { - $share = $this->getMockBuilder('OCP\Share\IShare')->getMock(); + $share = $this->getMockBuilder(IShare::class)->getMock(); $share->method('getShareOwner')->willReturn($this->currentUser); $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share])); - $share = $this->getMockBuilder('OCP\Share\IShare')->getMock(); + $share = $this->getMockBuilder(IShare::class)->getMock(); $share->method('getSharedBy')->willReturn($this->currentUser); $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share])); - $share = $this->getMockBuilder('OCP\Share\IShare')->getMock(); + $share = $this->getMockBuilder(IShare::class)->getMock(); $share->method('getShareType')->willReturn(\OCP\Share::SHARE_TYPE_USER); $share->method('getSharedWith')->willReturn($this->currentUser); $this->assertTrue($this->invokePrivate($this->ocs, 'canAccessShare', [$share])); - $share = $this->getMockBuilder('OCP\Share\IShare')->getMock(); + $share = $this->getMockBuilder(IShare::class)->getMock(); $share->method('getShareType')->willReturn(\OCP\Share::SHARE_TYPE_USER); - $share->method('getSharedWith')->willReturn($this->getMockBuilder('OCP\IUser')->getMock()); + $share->method('getSharedWith')->willReturn($this->getMockBuilder(IUser::class)->getMock()); $this->assertFalse($this->invokePrivate($this->ocs, 'canAccessShare', [$share])); - $share = $this->getMockBuilder('OCP\Share\IShare')->getMock(); + $share = $this->getMockBuilder(IShare::class)->getMock(); $share->method('getShareType')->willReturn(\OCP\Share::SHARE_TYPE_GROUP); $share->method('getSharedWith')->willReturn('group'); @@ -579,7 +581,7 @@ class ShareAPIControllerTest extends TestCase { * @expectedExceptionMessage Wrong path, file/folder doesn't exist */ public function testCreateShareInvalidPath() { - $userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $userFolder = $this->getMockBuilder(Folder::class)->getMock(); $this->rootFolder->expects($this->once()) ->method('getUserFolder') ->with('currentUser') @@ -601,13 +603,13 @@ class ShareAPIControllerTest extends TestCase { $share = $this->newShare(); $this->shareManager->method('newShare')->willReturn($share); - $userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $userFolder = $this->getMockBuilder(Folder::class)->getMock(); $this->rootFolder->expects($this->once()) ->method('getUserFolder') ->with('currentUser') ->willReturn($userFolder); - $path = $this->getMockBuilder('\OCP\Files\File')->getMock(); + $path = $this->getMockBuilder(File::class)->getMock(); $userFolder->expects($this->once()) ->method('get') ->with('valid-path') @@ -628,14 +630,14 @@ class ShareAPIControllerTest extends TestCase { $share = $this->newShare(); $this->shareManager->method('newShare')->willReturn($share); - $userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $userFolder = $this->getMockBuilder(Folder::class)->getMock(); $this->rootFolder->expects($this->once()) ->method('getUserFolder') ->with('currentUser') ->willReturn($userFolder); - $path = $this->getMockBuilder('\OCP\Files\File')->getMock(); - $storage = $this->getMockBuilder('OCP\Files\Storage')->getMock(); + $path = $this->getMockBuilder(File::class)->getMock(); + $storage = $this->getMockBuilder(Storage::class)->getMock(); $storage->method('instanceOfStorage') ->with('OCA\Files_Sharing\External\Storage') ->willReturn(false); @@ -660,14 +662,14 @@ class ShareAPIControllerTest extends TestCase { $share = $this->newShare(); $this->shareManager->method('newShare')->willReturn($share); - $userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $userFolder = $this->getMockBuilder(Folder::class)->getMock(); $this->rootFolder->expects($this->once()) ->method('getUserFolder') ->with('currentUser') ->willReturn($userFolder); - $path = $this->getMockBuilder('\OCP\Files\File')->getMock(); - $storage = $this->getMockBuilder('OCP\Files\Storage')->getMock(); + $path = $this->getMockBuilder(File::class)->getMock(); + $storage = $this->getMockBuilder(Storage::class)->getMock(); $storage->method('instanceOfStorage') ->with('OCA\Files_Sharing\External\Storage') ->willReturn(false); @@ -705,14 +707,14 @@ class ShareAPIControllerTest extends TestCase { ])->setMethods(['formatShare']) ->getMock(); - $userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $userFolder = $this->getMockBuilder(Folder::class)->getMock(); $this->rootFolder->expects($this->once()) ->method('getUserFolder') ->with('currentUser') ->willReturn($userFolder); - $path = $this->getMockBuilder('\OCP\Files\File')->getMock(); - $storage = $this->getMockBuilder('OCP\Files\Storage')->getMock(); + $path = $this->getMockBuilder(File::class)->getMock(); + $storage = $this->getMockBuilder(Storage::class)->getMock(); $storage->method('instanceOfStorage') ->with('OCA\Files_Sharing\External\Storage') ->willReturn(false); @@ -759,14 +761,14 @@ class ShareAPIControllerTest extends TestCase { $this->shareManager->method('createShare')->will($this->returnArgument(0)); $this->shareManager->method('allowGroupSharing')->willReturn(true); - $userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $userFolder = $this->getMockBuilder(Folder::class)->getMock(); $this->rootFolder->expects($this->once()) ->method('getUserFolder') ->with('currentUser') ->willReturn($userFolder); - $path = $this->getMockBuilder('\OCP\Files\File')->getMock(); - $storage = $this->getMockBuilder('OCP\Files\Storage')->getMock(); + $path = $this->getMockBuilder(File::class)->getMock(); + $storage = $this->getMockBuilder(Storage::class)->getMock(); $storage->method('instanceOfStorage') ->with('OCA\Files_Sharing\External\Storage') ->willReturn(false); @@ -811,14 +813,14 @@ class ShareAPIControllerTest extends TestCase { ['shareWith', null, 'validGroup'], ])); - $userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $userFolder = $this->getMockBuilder(Folder::class)->getMock(); $this->rootFolder->expects($this->once()) ->method('getUserFolder') ->with('currentUser') ->willReturn($userFolder); - $path = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); - $storage = $this->getMockBuilder('OCP\Files\Storage')->getMock(); + $path = $this->getMockBuilder(Folder::class)->getMock(); + $storage = $this->getMockBuilder(Storage::class)->getMock(); $storage->method('instanceOfStorage') ->with('OCA\Files_Sharing\External\Storage') ->willReturn(false); @@ -863,14 +865,14 @@ class ShareAPIControllerTest extends TestCase { $share = $this->newShare(); $this->shareManager->method('newShare')->willReturn($share); - $userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $userFolder = $this->getMockBuilder(Folder::class)->getMock(); $this->rootFolder->expects($this->once()) ->method('getUserFolder') ->with('currentUser') ->willReturn($userFolder); - $path = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); - $storage = $this->getMockBuilder('OCP\Files\Storage')->getMock(); + $path = $this->getMockBuilder(Folder::class)->getMock(); + $storage = $this->getMockBuilder(Storage::class)->getMock(); $storage->method('instanceOfStorage') ->with('OCA\Files_Sharing\External\Storage') ->willReturn(false); @@ -901,8 +903,8 @@ class ShareAPIControllerTest extends TestCase { ['shareType', '-1', \OCP\Share::SHARE_TYPE_LINK], ])); - $path = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); - $storage = $this->getMockBuilder('OCP\Files\Storage')->getMock(); + $path = $this->getMockBuilder(Folder::class)->getMock(); + $storage = $this->getMockBuilder(Storage::class)->getMock(); $storage->method('instanceOfStorage') ->with('OCA\Files_Sharing\External\Storage') ->willReturn(false); @@ -920,8 +922,8 @@ class ShareAPIControllerTest extends TestCase { * @expectedExceptionMessage Public upload disabled by the administrator */ public function testCreateShareLinkNoPublicUpload() { - $path = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); - $storage = $this->getMockBuilder('OCP\Files\Storage')->getMock(); + $path = $this->getMockBuilder(Folder::class)->getMock(); + $storage = $this->getMockBuilder(Storage::class)->getMock(); $storage->method('instanceOfStorage') ->with('OCA\Files_Sharing\External\Storage') ->willReturn(false); @@ -940,8 +942,8 @@ class ShareAPIControllerTest extends TestCase { * @expectedExceptionMessage Public upload is only possible for publicly shared folders */ public function testCreateShareLinkPublicUploadFile() { - $path = $this->getMockBuilder('\OCP\Files\File')->getMock(); - $storage = $this->getMockBuilder('OCP\Files\Storage')->getMock(); + $path = $this->getMockBuilder(File::class)->getMock(); + $storage = $this->getMockBuilder(Storage::class)->getMock(); $storage->method('instanceOfStorage') ->with('OCA\Files_Sharing\External\Storage') ->willReturn(false); @@ -959,8 +961,8 @@ class ShareAPIControllerTest extends TestCase { public function testCreateShareLinkPublicUploadFolder() { $ocs = $this->mockFormatShare(); - $path = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); - $storage = $this->getMockBuilder('OCP\Files\Storage')->getMock(); + $path = $this->getMockBuilder(Folder::class)->getMock(); + $storage = $this->getMockBuilder(Storage::class)->getMock(); $storage->method('instanceOfStorage') ->with('OCA\Files_Sharing\External\Storage') ->willReturn(false); @@ -993,8 +995,8 @@ class ShareAPIControllerTest extends TestCase { public function testCreateShareLinkPassword() { $ocs = $this->mockFormatShare(); - $path = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); - $storage = $this->getMockBuilder('OCP\Files\Storage')->getMock(); + $path = $this->getMockBuilder(Folder::class)->getMock(); + $storage = $this->getMockBuilder(Storage::class)->getMock(); $storage->method('instanceOfStorage') ->with('OCA\Files_Sharing\External\Storage') ->willReturn(false); @@ -1037,8 +1039,8 @@ class ShareAPIControllerTest extends TestCase { ['password', '', ''], ])); - $path = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); - $storage = $this->getMockBuilder('OCP\Files\Storage')->getMock(); + $path = $this->getMockBuilder(Folder::class)->getMock(); + $storage = $this->getMockBuilder(Storage::class)->getMock(); $storage->method('instanceOfStorage') ->with('OCA\Files_Sharing\External\Storage') ->willReturn(false); @@ -1078,8 +1080,8 @@ class ShareAPIControllerTest extends TestCase { public function testCreateShareInvalidExpireDate() { $ocs = $this->mockFormatShare(); - $path = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); - $storage = $this->getMockBuilder('OCP\Files\Storage')->getMock(); + $path = $this->getMockBuilder(Folder::class)->getMock(); + $storage = $this->getMockBuilder(Storage::class)->getMock(); $storage->method('instanceOfStorage') ->with('OCA\Files_Sharing\External\Storage') ->willReturn(false); @@ -1117,14 +1119,14 @@ class ShareAPIControllerTest extends TestCase { ])->setMethods(['formatShare']) ->getMock(); - $userFolder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $userFolder = $this->getMockBuilder(Folder::class)->getMock(); $this->rootFolder->expects($this->once()) ->method('getUserFolder') ->with('currentUser') ->willReturn($userFolder); - $path = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); - $storage = $this->getMockBuilder('OCP\Files\Storage')->getMock(); + $path = $this->getMockBuilder(Folder::class)->getMock(); + $storage = $this->getMockBuilder(Storage::class)->getMock(); $storage->method('instanceOfStorage') ->with('OCA\Files_Sharing\External\Storage') ->willReturn(true); @@ -1153,7 +1155,7 @@ class ShareAPIControllerTest extends TestCase { * @expectedExceptionMessage Wrong share ID, share doesn't exist */ public function testUpdateShareCantAccess() { - $node = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $node = $this->getMockBuilder(Folder::class)->getMock(); $share = $this->newShare(); $share->setNode($node); @@ -1171,7 +1173,7 @@ class ShareAPIControllerTest extends TestCase { * @expectedExceptionMessage Wrong or no update parameter given */ public function testUpdateNoParametersLink() { - $node = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $node = $this->getMockBuilder(Folder::class)->getMock(); $share = $this->newShare(); $share->setPermissions(\OCP\Constants::PERMISSION_ALL) ->setSharedBy($this->currentUser) @@ -1192,7 +1194,7 @@ class ShareAPIControllerTest extends TestCase { * @expectedExceptionMessage Wrong or no update parameter given */ public function testUpdateNoParametersOther() { - $node = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $node = $this->getMockBuilder(Folder::class)->getMock(); $share = $this->newShare(); $share->setPermissions(\OCP\Constants::PERMISSION_ALL) ->setSharedBy($this->currentUser) @@ -1248,7 +1250,7 @@ class ShareAPIControllerTest extends TestCase { public function testUpdateLinkShareSet() { $ocs = $this->mockFormatShare(); - $folder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $folder = $this->getMockBuilder(Folder::class)->getMock(); $share = \OC::$server->getShareManager()->newShare(); $share->setPermissions(\OCP\Constants::PERMISSION_ALL) @@ -1286,7 +1288,7 @@ class ShareAPIControllerTest extends TestCase { public function testUpdateLinkShareEnablePublicUpload($permissions, $publicUpload, $expireDate, $password) { $ocs = $this->mockFormatShare(); - $folder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $folder = $this->getMockBuilder(Folder::class)->getMock(); $share = \OC::$server->getShareManager()->newShare(); $share->setPermissions(\OCP\Constants::PERMISSION_ALL) @@ -1321,7 +1323,7 @@ class ShareAPIControllerTest extends TestCase { public function testUpdateLinkShareInvalidDate() { $ocs = $this->mockFormatShare(); - $folder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $folder = $this->getMockBuilder(Folder::class)->getMock(); $share = \OC::$server->getShareManager()->newShare(); $share->setPermissions(\OCP\Constants::PERMISSION_ALL) @@ -1359,7 +1361,7 @@ class ShareAPIControllerTest extends TestCase { public function testUpdateLinkSharePublicUploadNotAllowed($permissions, $publicUpload, $expireDate, $password) { $ocs = $this->mockFormatShare(); - $folder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $folder = $this->getMockBuilder(Folder::class)->getMock(); $share = \OC::$server->getShareManager()->newShare(); $share->setPermissions(\OCP\Constants::PERMISSION_ALL) @@ -1380,7 +1382,7 @@ class ShareAPIControllerTest extends TestCase { public function testUpdateLinkSharePublicUploadOnFile() { $ocs = $this->mockFormatShare(); - $file = $this->getMockBuilder('\OCP\Files\File')->getMock(); + $file = $this->getMockBuilder(File::class)->getMock(); $share = \OC::$server->getShareManager()->newShare(); $share->setPermissions(\OCP\Constants::PERMISSION_ALL) @@ -1400,7 +1402,7 @@ class ShareAPIControllerTest extends TestCase { $date = new \DateTime('2000-01-01'); $date->setTime(0,0,0); - $node = $this->getMockBuilder('\OCP\Files\File')->getMock(); + $node = $this->getMockBuilder(File::class)->getMock(); $share = $this->newShare(); $share->setPermissions(\OCP\Constants::PERMISSION_ALL) ->setSharedBy($this->currentUser) @@ -1434,7 +1436,7 @@ class ShareAPIControllerTest extends TestCase { public function testUpdateLinkShareExpireDateDoesNotChangeOther() { $ocs = $this->mockFormatShare(); - $node = $this->getMockBuilder('\OCP\Files\File')->getMock(); + $node = $this->getMockBuilder(File::class)->getMock(); $share = $this->newShare(); $share->setPermissions(\OCP\Constants::PERMISSION_ALL) ->setSharedBy($this->currentUser) @@ -1473,7 +1475,7 @@ class ShareAPIControllerTest extends TestCase { $date = new \DateTime('2000-01-01'); - $folder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $folder = $this->getMockBuilder(Folder::class)->getMock(); $share = \OC::$server->getShareManager()->newShare(); $share->setPermissions(\OCP\Constants::PERMISSION_ALL) @@ -1510,7 +1512,7 @@ class ShareAPIControllerTest extends TestCase { $date = new \DateTime('2000-01-01'); - $folder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $folder = $this->getMockBuilder(Folder::class)->getMock(); $share = \OC::$server->getShareManager()->newShare(); $share->setPermissions(\OCP\Constants::PERMISSION_ALL) @@ -1546,7 +1548,7 @@ class ShareAPIControllerTest extends TestCase { $date = new \DateTime('2000-01-01'); - $folder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $folder = $this->getMockBuilder(Folder::class)->getMock(); $share = \OC::$server->getShareManager()->newShare(); $share->setPermissions(\OCP\Constants::PERMISSION_ALL) @@ -1580,7 +1582,7 @@ class ShareAPIControllerTest extends TestCase { public function testUpdateOtherPermissions() { $ocs = $this->mockFormatShare(); - $file = $this->getMockBuilder('\OCP\Files\File')->getMock(); + $file = $this->getMockBuilder(File::class)->getMock(); $share = \OC::$server->getShareManager()->newShare(); $share->setPermissions(\OCP\Constants::PERMISSION_ALL) @@ -1750,9 +1752,9 @@ class ShareAPIControllerTest extends TestCase { } public function dataFormatShare() { - $file = $this->getMockBuilder('\OCP\Files\File')->getMock(); - $folder = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); - $parent = $this->getMockBuilder('\OCP\Files\Folder')->getMock(); + $file = $this->getMockBuilder(File::class)->getMock(); + $folder = $this->getMockBuilder(Folder::class)->getMock(); + $parent = $this->getMockBuilder(Folder::class)->getMock(); $file->method('getMimeType')->willReturn('myMimeType'); $folder->method('getMimeType')->willReturn('myFolderMimeType'); @@ -1769,18 +1771,18 @@ class ShareAPIControllerTest extends TestCase { $cache = $this->getMockBuilder('OCP\Files\Cache\ICache')->getMock(); $cache->method('getNumericStorageId')->willReturn(100); - $storage = $this->getMockBuilder('\OCP\Files\Storage')->getMock(); + $storage = $this->getMockBuilder(Storage::class)->getMock(); $storage->method('getId')->willReturn('storageId'); $storage->method('getCache')->willReturn($cache); $file->method('getStorage')->willReturn($storage); $folder->method('getStorage')->willReturn($storage); - $owner = $this->getMockBuilder('\OCP\IUser')->getMock(); + $owner = $this->getMockBuilder(IUser::class)->getMock(); $owner->method('getDisplayName')->willReturn('ownerDN'); - $initiator = $this->getMockBuilder('\OCP\IUser')->getMock(); + $initiator = $this->getMockBuilder(IUser::class)->getMock(); $initiator->method('getDisplayName')->willReturn('initiatorDN'); - $recipient = $this->getMockBuilder('\OCP\IUser')->getMock(); + $recipient = $this->getMockBuilder(IUser::class)->getMock(); $recipient->method('getDisplayName')->willReturn('recipientDN'); $result = []; diff --git a/apps/files_sharing/tests/Controller/ShareControllerTest.php b/apps/files_sharing/tests/Controller/ShareControllerTest.php index 7a017b5e3b7..6f0b3f9c2da 100644 --- a/apps/files_sharing/tests/Controller/ShareControllerTest.php +++ b/apps/files_sharing/tests/Controller/ShareControllerTest.php @@ -35,6 +35,12 @@ use OC\Files\Filesystem; use OCA\FederatedFileSharing\FederatedShareProvider; use OCA\Files_Sharing\Controller\ShareController; use OCP\AppFramework\Http\DataResponse; +use OCP\IConfig; +use OCP\IL10N; +use OCP\ILogger; +use OCP\IPreview; +use OCP\IRequest; +use OCP\IUser; use OCP\Share\Exceptions\ShareNotFound; use OCP\AppFramework\Http\NotFoundResponse; use OCP\AppFramework\Http\RedirectResponse; @@ -43,6 +49,7 @@ use OCP\ISession; use OCP\IUserManager; use OCP\Security\ISecureRandom; use OCP\IURLGenerator; +use OCP\Share\IShare; use Symfony\Component\EventDispatcher\EventDispatcherInterface; /** @@ -83,11 +90,11 @@ class ShareControllerTest extends \Test\TestCase { $this->appName = 'files_sharing'; $this->shareManager = $this->getMockBuilder('\OC\Share20\Manager')->disableOriginalConstructor()->getMock(); - $this->urlGenerator = $this->getMockBuilder('\OCP\IURLGenerator')->getMock(); - $this->session = $this->getMockBuilder('\OCP\ISession')->getMock(); - $this->previewManager = $this->getMockBuilder('\OCP\IPreview')->getMock(); - $this->config = $this->getMockBuilder('\OCP\IConfig')->getMock(); - $this->userManager = $this->getMockBuilder('\OCP\IUserManager')->getMock(); + $this->urlGenerator = $this->getMockBuilder(IURLGenerator::class)->getMock(); + $this->session = $this->getMockBuilder(ISession::class)->getMock(); + $this->previewManager = $this->getMockBuilder(IPreview::class)->getMock(); + $this->config = $this->getMockBuilder(IConfig::class)->getMock(); + $this->userManager = $this->getMockBuilder(IUserManager::class)->getMock(); $this->federatedShareProvider = $this->getMockBuilder('OCA\FederatedFileSharing\FederatedShareProvider') ->disableOriginalConstructor()->getMock(); $this->federatedShareProvider->expects($this->any()) @@ -98,11 +105,11 @@ class ShareControllerTest extends \Test\TestCase { $this->shareController = new \OCA\Files_Sharing\Controller\ShareController( $this->appName, - $this->getMockBuilder('\OCP\IRequest')->getMock(), + $this->getMockBuilder(IRequest::class)->getMock(), $this->config, $this->urlGenerator, $this->userManager, - $this->getMockBuilder('\OCP\ILogger')->getMock(), + $this->getMockBuilder(ILogger::class)->getMock(), $this->getMockBuilder('\OCP\Activity\IManager')->getMock(), $this->shareManager, $this->session, @@ -110,7 +117,7 @@ class ShareControllerTest extends \Test\TestCase { $this->getMockBuilder('\OCP\Files\IRootFolder')->getMock(), $this->federatedShareProvider, $this->eventDispatcher, - $this->getMockBuilder('\OCP\IL10N')->getMock(), + $this->getMockBuilder(IL10N::class)->getMock(), $this->getMockBuilder('\OCP\Defaults')->getMock() ); @@ -320,7 +327,7 @@ class ShareControllerTest extends \Test\TestCase { public function testShowShare() { - $owner = $this->getMockBuilder('OCP\IUser')->getMock(); + $owner = $this->getMockBuilder(IUser::class)->getMock(); $owner->method('getDisplayName')->willReturn('ownerDisplay'); $owner->method('getUID')->willReturn('ownerUID'); @@ -412,7 +419,7 @@ class ShareControllerTest extends \Test\TestCase { * @expectedException \OCP\Files\NotFoundException */ public function testShowShareInvalid() { - $owner = $this->getMockBuilder('OCP\IUser')->getMock(); + $owner = $this->getMockBuilder(IUser::class)->getMock(); $owner->method('getDisplayName')->willReturn('ownerDisplay'); $owner->method('getUID')->willReturn('ownerUID'); @@ -457,7 +464,7 @@ class ShareControllerTest extends \Test\TestCase { } public function testDownloadShare() { - $share = $this->getMockBuilder('\OCP\Share\IShare')->getMock(); + $share = $this->getMockBuilder(IShare::class)->getMock(); $share->method('getPassword')->willReturn('password'); $share ->expects($this->once()) @@ -482,7 +489,7 @@ class ShareControllerTest extends \Test\TestCase { } public function testDownloadShareWithCreateOnlyShare() { - $share = $this->getMockBuilder('\OCP\Share\IShare')->getMock(); + $share = $this->getMockBuilder(IShare::class)->getMock(); $share->method('getPassword')->willReturn('password'); $share ->expects($this->once()) diff --git a/apps/files_sharing/tests/External/ManagerTest.php b/apps/files_sharing/tests/External/ManagerTest.php index 9f60261c203..37319dd17b2 100644 --- a/apps/files_sharing/tests/External/ManagerTest.php +++ b/apps/files_sharing/tests/External/ManagerTest.php @@ -27,7 +27,6 @@ namespace OCA\Files_Sharing\Tests\External; use OC\Federation\CloudIdManager; use OC\Files\Storage\StorageFactory; -use OCA\FederatedFileSharing\DiscoveryManager; use OCA\Files_Sharing\External\Manager; use OCA\Files_Sharing\External\MountProvider; use OCA\Files_Sharing\Tests\TestCase; @@ -68,7 +67,7 @@ class ManagerTest extends TestCase { $this->createUser($this->uid, ''); $this->user = \OC::$server->getUserManager()->get($this->uid); $this->mountManager = new \OC\Files\Mount\Manager(); - $this->clientService = $this->getMockBuilder('\OCP\Http\Client\IClientService') + $this->clientService = $this->getMockBuilder(IClientService::class) ->disableOriginalConstructor()->getMock(); $this->manager = new Manager( diff --git a/apps/files_sharing/tests/MountProviderTest.php b/apps/files_sharing/tests/MountProviderTest.php index 04476987a32..68c62427e34 100644 --- a/apps/files_sharing/tests/MountProviderTest.php +++ b/apps/files_sharing/tests/MountProviderTest.php @@ -60,11 +60,11 @@ class MountProviderTest extends \Test\TestCase { public function setUp() { parent::setUp(); - $this->config = $this->getMockBuilder('OCP\IConfig')->getMock(); - $this->user = $this->getMockBuilder('OCP\IUser')->getMock(); + $this->config = $this->getMockBuilder(IConfig::class)->getMock(); + $this->user = $this->getMockBuilder(IUser::class)->getMock(); $this->loader = $this->getMockBuilder('OCP\Files\Storage\IStorageFactory')->getMock(); - $this->shareManager = $this->getMockBuilder('\OCP\Share\IManager')->getMock(); - $this->logger = $this->getMockBuilder('\OCP\ILogger')->getMock(); + $this->shareManager = $this->getMockBuilder(IManager::class)->getMock(); + $this->logger = $this->getMockBuilder(ILogger::class)->getMock(); $this->provider = new MountProvider($this->config, $this->shareManager, $this->logger); } diff --git a/apps/files_sharing/tests/UpdaterTest.php b/apps/files_sharing/tests/UpdaterTest.php index 63000152b5a..c01365a500a 100644 --- a/apps/files_sharing/tests/UpdaterTest.php +++ b/apps/files_sharing/tests/UpdaterTest.php @@ -70,7 +70,7 @@ class UpdaterTest extends TestCase { * that the mount point doesn't end up at the trash bin */ public function testDeleteParentFolder() { - $status = \OC_App::isEnabled('files_trashbin'); + $status = \OC::$server->getAppManager()->isEnabledForUser('files_trashbin'); (new \OC_App())->enable('files_trashbin'); diff --git a/apps/files_trashbin/composer/autoload.php b/apps/files_trashbin/composer/autoload.php new file mode 100644 index 00000000000..ae6d572163f --- /dev/null +++ b/apps/files_trashbin/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer/autoload_real.php'; + +return ComposerAutoloaderInitFiles_Trashbin::getLoader(); diff --git a/apps/files_trashbin/composer/composer.json b/apps/files_trashbin/composer/composer.json new file mode 100644 index 00000000000..c43b78e83ea --- /dev/null +++ b/apps/files_trashbin/composer/composer.json @@ -0,0 +1,13 @@ +{ + "config" : { + "vendor-dir": ".", + "optimize-autoloader": true, + "authorative-autoloader": true, + "autoloader-suffix": "Files_Trashbin" + }, + "autoload" : { + "psr-4": { + "OCA\\Files_Trashbin\\": "../lib/" + } + } +} diff --git a/apps/files_trashbin/composer/composer/ClassLoader.php b/apps/files_trashbin/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..2c72175e772 --- /dev/null +++ b/apps/files_trashbin/composer/composer/ClassLoader.php @@ -0,0 +1,445 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * 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 array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + foreach ($this->prefixDirsPsr4[$search] as $dir) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/apps/files_trashbin/composer/composer/LICENSE b/apps/files_trashbin/composer/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/apps/files_trashbin/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/files_trashbin/composer/composer/autoload_classmap.php b/apps/files_trashbin/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..2e58c7b1c6c --- /dev/null +++ b/apps/files_trashbin/composer/composer/autoload_classmap.php @@ -0,0 +1,23 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\Files_Trashbin\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php', + 'OCA\\Files_Trashbin\\BackgroundJob\\ExpireTrash' => $baseDir . '/../lib/BackgroundJob/ExpireTrash.php', + 'OCA\\Files_Trashbin\\Capabilities' => $baseDir . '/../lib/Capabilities.php', + 'OCA\\Files_Trashbin\\Command\\CleanUp' => $baseDir . '/../lib/Command/CleanUp.php', + 'OCA\\Files_Trashbin\\Command\\Expire' => $baseDir . '/../lib/Command/Expire.php', + 'OCA\\Files_Trashbin\\Command\\ExpireTrash' => $baseDir . '/../lib/Command/ExpireTrash.php', + 'OCA\\Files_Trashbin\\Controller\\PreviewController' => $baseDir . '/../lib/Controller/PreviewController.php', + 'OCA\\Files_Trashbin\\Events\\MoveToTrashEvent' => $baseDir . '/../lib/Events/MoveToTrashEvent.php', + 'OCA\\Files_Trashbin\\Exceptions\\CopyRecursiveException' => $baseDir . '/../lib/Exceptions/CopyRecursiveException.php', + 'OCA\\Files_Trashbin\\Expiration' => $baseDir . '/../lib/Expiration.php', + 'OCA\\Files_Trashbin\\Helper' => $baseDir . '/../lib/Helper.php', + 'OCA\\Files_Trashbin\\Hooks' => $baseDir . '/../lib/Hooks.php', + 'OCA\\Files_Trashbin\\Storage' => $baseDir . '/../lib/Storage.php', + 'OCA\\Files_Trashbin\\Trashbin' => $baseDir . '/../lib/Trashbin.php', +); diff --git a/apps/files_trashbin/composer/composer/autoload_namespaces.php b/apps/files_trashbin/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..71c9e91858d --- /dev/null +++ b/apps/files_trashbin/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( +); diff --git a/apps/files_trashbin/composer/composer/autoload_psr4.php b/apps/files_trashbin/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..f7585c671e1 --- /dev/null +++ b/apps/files_trashbin/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\Files_Trashbin\\' => array($baseDir . '/../lib'), +); diff --git a/apps/files_trashbin/composer/composer/autoload_real.php b/apps/files_trashbin/composer/composer/autoload_real.php new file mode 100644 index 00000000000..b2abf10922c --- /dev/null +++ b/apps/files_trashbin/composer/composer/autoload_real.php @@ -0,0 +1,52 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInitFiles_Trashbin +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInitFiles_Trashbin', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInitFiles_Trashbin', 'loadClassLoader')); + + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitFiles_Trashbin::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/apps/files_trashbin/composer/composer/autoload_static.php b/apps/files_trashbin/composer/composer/autoload_static.php new file mode 100644 index 00000000000..01520e2d14d --- /dev/null +++ b/apps/files_trashbin/composer/composer/autoload_static.php @@ -0,0 +1,49 @@ +<?php + +// autoload_static.php @generated by Composer + +namespace Composer\Autoload; + +class ComposerStaticInitFiles_Trashbin +{ + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'OCA\\Files_Trashbin\\' => 19, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\Files_Trashbin\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'OCA\\Files_Trashbin\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php', + 'OCA\\Files_Trashbin\\BackgroundJob\\ExpireTrash' => __DIR__ . '/..' . '/../lib/BackgroundJob/ExpireTrash.php', + 'OCA\\Files_Trashbin\\Capabilities' => __DIR__ . '/..' . '/../lib/Capabilities.php', + 'OCA\\Files_Trashbin\\Command\\CleanUp' => __DIR__ . '/..' . '/../lib/Command/CleanUp.php', + 'OCA\\Files_Trashbin\\Command\\Expire' => __DIR__ . '/..' . '/../lib/Command/Expire.php', + 'OCA\\Files_Trashbin\\Command\\ExpireTrash' => __DIR__ . '/..' . '/../lib/Command/ExpireTrash.php', + 'OCA\\Files_Trashbin\\Controller\\PreviewController' => __DIR__ . '/..' . '/../lib/Controller/PreviewController.php', + 'OCA\\Files_Trashbin\\Events\\MoveToTrashEvent' => __DIR__ . '/..' . '/../lib/Events/MoveToTrashEvent.php', + 'OCA\\Files_Trashbin\\Exceptions\\CopyRecursiveException' => __DIR__ . '/..' . '/../lib/Exceptions/CopyRecursiveException.php', + 'OCA\\Files_Trashbin\\Expiration' => __DIR__ . '/..' . '/../lib/Expiration.php', + 'OCA\\Files_Trashbin\\Helper' => __DIR__ . '/..' . '/../lib/Helper.php', + 'OCA\\Files_Trashbin\\Hooks' => __DIR__ . '/..' . '/../lib/Hooks.php', + 'OCA\\Files_Trashbin\\Storage' => __DIR__ . '/..' . '/../lib/Storage.php', + 'OCA\\Files_Trashbin\\Trashbin' => __DIR__ . '/..' . '/../lib/Trashbin.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitFiles_Trashbin::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitFiles_Trashbin::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitFiles_Trashbin::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/files_trashbin/l10n/es_CO.js b/apps/files_trashbin/l10n/es_CO.js new file mode 100644 index 00000000000..24cc0e4083e --- /dev/null +++ b/apps/files_trashbin/l10n/es_CO.js @@ -0,0 +1,21 @@ +OC.L10N.register( + "files_trashbin", + { + "Couldn't delete %s permanently" : "No fue posible eliminar %s permanentemente", + "Couldn't restore %s" : "No fue posible restaurar %s", + "Deleted files" : "Archivos borrados", + "Restore" : "Restaurar", + "Delete" : "Borrar", + "Delete permanently" : "Borrar permanentemente", + "Error" : "Error", + "This operation is forbidden" : "Esta opración está prohibida", + "This directory is unavailable, please check the logs or contact the administrator" : "Este directorio no está disponible, por favor verifica las bitácoras o contacta al administrador", + "restored" : "restaurado", + "No deleted files" : "No hay archivos borrados", + "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí", + "No entries found in this folder" : "No se encontraron elementos en esta carpeta", + "Select all" : "Seleccionar todo", + "Name" : "Nombre", + "Deleted" : "Borrado" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_trashbin/l10n/es_CO.json b/apps/files_trashbin/l10n/es_CO.json new file mode 100644 index 00000000000..3a539073e8b --- /dev/null +++ b/apps/files_trashbin/l10n/es_CO.json @@ -0,0 +1,19 @@ +{ "translations": { + "Couldn't delete %s permanently" : "No fue posible eliminar %s permanentemente", + "Couldn't restore %s" : "No fue posible restaurar %s", + "Deleted files" : "Archivos borrados", + "Restore" : "Restaurar", + "Delete" : "Borrar", + "Delete permanently" : "Borrar permanentemente", + "Error" : "Error", + "This operation is forbidden" : "Esta opración está prohibida", + "This directory is unavailable, please check the logs or contact the administrator" : "Este directorio no está disponible, por favor verifica las bitácoras o contacta al administrador", + "restored" : "restaurado", + "No deleted files" : "No hay archivos borrados", + "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí", + "No entries found in this folder" : "No se encontraron elementos en esta carpeta", + "Select all" : "Seleccionar todo", + "Name" : "Nombre", + "Deleted" : "Borrado" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/files_trashbin/lib/Hooks.php b/apps/files_trashbin/lib/Hooks.php index eb585aa051c..036294cc144 100644 --- a/apps/files_trashbin/lib/Hooks.php +++ b/apps/files_trashbin/lib/Hooks.php @@ -39,10 +39,8 @@ class Hooks { * to remove the used space for the trash bin stored in the database */ public static function deleteUser_hook($params) { - if( \OCP\App::isEnabled('files_trashbin') ) { - $uid = $params['uid']; - Trashbin::deleteUser($uid); - } + $uid = $params['uid']; + Trashbin::deleteUser($uid); } public static function post_write_hook($params) { diff --git a/apps/files_trashbin/templates/index.php b/apps/files_trashbin/templates/index.php index c3f0304d408..b3ebca2867b 100644 --- a/apps/files_trashbin/templates/index.php +++ b/apps/files_trashbin/templates/index.php @@ -21,12 +21,14 @@ <table id="filestable"> <thead> <tr> + <th id="headerSelection" class="hidden column-selection"> + <input type="checkbox" id="select_all_trash" class="select-all checkbox"/> + <label for="select_all_trash"> + <span class="hidden-visually"><?php p($l->t('Select all'))?></span> + </label> + </th> <th id='headerName' class="hidden column-name"> <div id="headerName-container"> - <input type="checkbox" id="select_all_trash" class="select-all checkbox"/> - <label for="select_all_trash"> - <span class="hidden-visually"><?php p($l->t('Select all'))?></span> - </label> <a class="name sort columntitle" data-sort="name"><span><?php p($l->t( 'Name' )); ?></span><span class="sort-indicator"></span></a> <span id="selectedActionsList" class='selectedActions'> <a href="" class="undelete"> diff --git a/apps/files_trashbin/tests/ExpirationTest.php b/apps/files_trashbin/tests/ExpirationTest.php index 86c9d21fe57..9d9f8ec027e 100644 --- a/apps/files_trashbin/tests/ExpirationTest.php +++ b/apps/files_trashbin/tests/ExpirationTest.php @@ -23,6 +23,7 @@ use OCA\Files_Trashbin\Expiration; use \OCA\Files_Trashbin\Tests; +use OCP\IConfig; class ExpirationTest extends \Test\TestCase { const SECONDS_PER_DAY = 86400; //60*60*24 @@ -200,10 +201,10 @@ class ExpirationTest extends \Test\TestCase { /** * * @param string $returnValue - * @return \OCP\IConfig + * @return IConfig */ private function getMockedConfig($returnValue){ - $mockedConfig = $this->getMockBuilder('\OCP\IConfig') + $mockedConfig = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->setMethods( [ diff --git a/apps/files_trashbin/tests/StorageTest.php b/apps/files_trashbin/tests/StorageTest.php index bdddafcf016..a05fd33f306 100644 --- a/apps/files_trashbin/tests/StorageTest.php +++ b/apps/files_trashbin/tests/StorageTest.php @@ -37,6 +37,7 @@ use OCP\Files\Cache\ICache; use OCP\Files\IRootFolder; use OCP\Files\Node; use OCP\ILogger; +use OCP\IUserManager; use Symfony\Component\EventDispatcher\EventDispatcher; /** @@ -535,7 +536,7 @@ class StorageTest extends \Test\TestCase { $tmpStorage = $this->getMockBuilder('\OC\Files\Storage\Temporary') ->disableOriginalConstructor()->getMock($cache); $tmpStorage->expects($this->any())->method('getCache')->willReturn($cache); - $userManager = $this->getMockBuilder('OCP\IUserManager') + $userManager = $this->getMockBuilder(IUserManager::class) ->disableOriginalConstructor()->getMock(); $userManager->expects($this->any()) ->method('userExists')->willReturn($userExists); diff --git a/apps/files_versions/composer/autoload.php b/apps/files_versions/composer/autoload.php new file mode 100644 index 00000000000..7bb72360fba --- /dev/null +++ b/apps/files_versions/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer/autoload_real.php'; + +return ComposerAutoloaderInitFiles_Versions::getLoader(); diff --git a/apps/files_versions/composer/composer.json b/apps/files_versions/composer/composer.json new file mode 100644 index 00000000000..fdad5a69ddb --- /dev/null +++ b/apps/files_versions/composer/composer.json @@ -0,0 +1,13 @@ +{ + "config" : { + "vendor-dir": ".", + "optimize-autoloader": true, + "authorative-autoloader": true, + "autoloader-suffix": "Files_Versions" + }, + "autoload" : { + "psr-4": { + "OCA\\Files_Versions\\": "../lib/" + } + } +} diff --git a/apps/files_versions/composer/composer/ClassLoader.php b/apps/files_versions/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..2c72175e772 --- /dev/null +++ b/apps/files_versions/composer/composer/ClassLoader.php @@ -0,0 +1,445 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * 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 array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + foreach ($this->prefixDirsPsr4[$search] as $dir) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/apps/files_versions/composer/composer/LICENSE b/apps/files_versions/composer/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/apps/files_versions/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/files_versions/composer/composer/autoload_classmap.php b/apps/files_versions/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..05dad7f7c5f --- /dev/null +++ b/apps/files_versions/composer/composer/autoload_classmap.php @@ -0,0 +1,20 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\Files_Versions\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php', + 'OCA\\Files_Versions\\BackgroundJob\\ExpireVersions' => $baseDir . '/../lib/BackgroundJob/ExpireVersions.php', + 'OCA\\Files_Versions\\Capabilities' => $baseDir . '/../lib/Capabilities.php', + 'OCA\\Files_Versions\\Command\\CleanUp' => $baseDir . '/../lib/Command/CleanUp.php', + 'OCA\\Files_Versions\\Command\\Expire' => $baseDir . '/../lib/Command/Expire.php', + 'OCA\\Files_Versions\\Command\\ExpireVersions' => $baseDir . '/../lib/Command/ExpireVersions.php', + 'OCA\\Files_Versions\\Controller\\PreviewController' => $baseDir . '/../lib/Controller/PreviewController.php', + 'OCA\\Files_Versions\\Events\\CreateVersionEvent' => $baseDir . '/../lib/Events/CreateVersionEvent.php', + 'OCA\\Files_Versions\\Expiration' => $baseDir . '/../lib/Expiration.php', + 'OCA\\Files_Versions\\Hooks' => $baseDir . '/../lib/Hooks.php', + 'OCA\\Files_Versions\\Storage' => $baseDir . '/../lib/Storage.php', +); diff --git a/apps/files_versions/composer/composer/autoload_namespaces.php b/apps/files_versions/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..71c9e91858d --- /dev/null +++ b/apps/files_versions/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( +); diff --git a/apps/files_versions/composer/composer/autoload_psr4.php b/apps/files_versions/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..09bc4395cfd --- /dev/null +++ b/apps/files_versions/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\Files_Versions\\' => array($baseDir . '/../lib'), +); diff --git a/apps/files_versions/composer/composer/autoload_real.php b/apps/files_versions/composer/composer/autoload_real.php new file mode 100644 index 00000000000..8479a1f199b --- /dev/null +++ b/apps/files_versions/composer/composer/autoload_real.php @@ -0,0 +1,52 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInitFiles_Versions +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInitFiles_Versions', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInitFiles_Versions', 'loadClassLoader')); + + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitFiles_Versions::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/apps/files_versions/composer/composer/autoload_static.php b/apps/files_versions/composer/composer/autoload_static.php new file mode 100644 index 00000000000..9ac3b049030 --- /dev/null +++ b/apps/files_versions/composer/composer/autoload_static.php @@ -0,0 +1,46 @@ +<?php + +// autoload_static.php @generated by Composer + +namespace Composer\Autoload; + +class ComposerStaticInitFiles_Versions +{ + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'OCA\\Files_Versions\\' => 19, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\Files_Versions\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'OCA\\Files_Versions\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php', + 'OCA\\Files_Versions\\BackgroundJob\\ExpireVersions' => __DIR__ . '/..' . '/../lib/BackgroundJob/ExpireVersions.php', + 'OCA\\Files_Versions\\Capabilities' => __DIR__ . '/..' . '/../lib/Capabilities.php', + 'OCA\\Files_Versions\\Command\\CleanUp' => __DIR__ . '/..' . '/../lib/Command/CleanUp.php', + 'OCA\\Files_Versions\\Command\\Expire' => __DIR__ . '/..' . '/../lib/Command/Expire.php', + 'OCA\\Files_Versions\\Command\\ExpireVersions' => __DIR__ . '/..' . '/../lib/Command/ExpireVersions.php', + 'OCA\\Files_Versions\\Controller\\PreviewController' => __DIR__ . '/..' . '/../lib/Controller/PreviewController.php', + 'OCA\\Files_Versions\\Events\\CreateVersionEvent' => __DIR__ . '/..' . '/../lib/Events/CreateVersionEvent.php', + 'OCA\\Files_Versions\\Expiration' => __DIR__ . '/..' . '/../lib/Expiration.php', + 'OCA\\Files_Versions\\Hooks' => __DIR__ . '/..' . '/../lib/Hooks.php', + 'OCA\\Files_Versions\\Storage' => __DIR__ . '/..' . '/../lib/Storage.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitFiles_Versions::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitFiles_Versions::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitFiles_Versions::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/files_versions/l10n/es_CO.js b/apps/files_versions/l10n/es_CO.js new file mode 100644 index 00000000000..7cfb569dec7 --- /dev/null +++ b/apps/files_versions/l10n/es_CO.js @@ -0,0 +1,14 @@ +OC.L10N.register( + "files_versions", + { + "Could not revert: %s" : "No fue posible revertir: %s", + "Versions" : "Versiones", + "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", + "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], + "Restore" : "Restaurar", + "No earlier versions available" : "No hay versiones anteriores disponibles", + "More versions …" : "Más versiones ...", + "No versions available" : "No hay versiones disponibles", + "More versions..." : "Más versiones..." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/es_CO.json b/apps/files_versions/l10n/es_CO.json new file mode 100644 index 00000000000..e346d38166f --- /dev/null +++ b/apps/files_versions/l10n/es_CO.json @@ -0,0 +1,12 @@ +{ "translations": { + "Could not revert: %s" : "No fue posible revertir: %s", + "Versions" : "Versiones", + "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", + "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], + "Restore" : "Restaurar", + "No earlier versions available" : "No hay versiones anteriores disponibles", + "More versions …" : "Más versiones ...", + "No versions available" : "No hay versiones disponibles", + "More versions..." : "Más versiones..." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/files_versions/l10n/eu.js b/apps/files_versions/l10n/eu.js index bae93e00f6b..2a6bafa1cf8 100644 --- a/apps/files_versions/l10n/eu.js +++ b/apps/files_versions/l10n/eu.js @@ -5,7 +5,9 @@ OC.L10N.register( "Versions" : "Bertsioak", "Failed to revert {file} to revision {timestamp}." : "Errore bat izan da {fitxategia} {timestamp} bertsiora leheneratzean.", "Restore" : "Berrezarri", - "More versions..." : "Bertsio gehiago...", - "No other versions available" : "Ez dago bertsio gehiago eskuragarri" + "No earlier versions available" : "Ez dago aurreko bertsiorik", + "More versions …" : "Bertsio gehiago...", + "No versions available" : "Ez dago bertsiorik eskuragarri", + "More versions..." : "Bertsio gehiago..." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/eu.json b/apps/files_versions/l10n/eu.json index 70cf27f6562..c79af7797c8 100644 --- a/apps/files_versions/l10n/eu.json +++ b/apps/files_versions/l10n/eu.json @@ -3,7 +3,9 @@ "Versions" : "Bertsioak", "Failed to revert {file} to revision {timestamp}." : "Errore bat izan da {fitxategia} {timestamp} bertsiora leheneratzean.", "Restore" : "Berrezarri", - "More versions..." : "Bertsio gehiago...", - "No other versions available" : "Ez dago bertsio gehiago eskuragarri" + "No earlier versions available" : "Ez dago aurreko bertsiorik", + "More versions …" : "Bertsio gehiago...", + "No versions available" : "Ez dago bertsiorik eskuragarri", + "More versions..." : "Bertsio gehiago..." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_versions/l10n/sk.js b/apps/files_versions/l10n/sk.js index b851f680f4f..41c13cd4c18 100644 --- a/apps/files_versions/l10n/sk.js +++ b/apps/files_versions/l10n/sk.js @@ -6,6 +6,8 @@ OC.L10N.register( "Failed to revert {file} to revision {timestamp}." : "Zlyhalo obnovenie súboru {file} na verziu {timestamp}.", "_%n byte_::_%n bytes_" : ["%n bajt","%n bajtov","%n bajtov"], "Restore" : "Obnoviť", + "No earlier versions available" : "Nie sú dostupné predchádzajúce verzie", + "More versions …" : "Viac verzií ...", "No versions available" : "Žiadne verzie nie sú dostupné", "More versions..." : "Viac verzií..." }, diff --git a/apps/files_versions/l10n/sk.json b/apps/files_versions/l10n/sk.json index 8efc13112a7..c66d5b0c7c0 100644 --- a/apps/files_versions/l10n/sk.json +++ b/apps/files_versions/l10n/sk.json @@ -4,6 +4,8 @@ "Failed to revert {file} to revision {timestamp}." : "Zlyhalo obnovenie súboru {file} na verziu {timestamp}.", "_%n byte_::_%n bytes_" : ["%n bajt","%n bajtov","%n bajtov"], "Restore" : "Obnoviť", + "No earlier versions available" : "Nie sú dostupné predchádzajúce verzie", + "More versions …" : "Viac verzií ...", "No versions available" : "Žiadne verzie nie sú dostupné", "More versions..." : "Viac verzií..." },"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" diff --git a/apps/files_versions/lib/Hooks.php b/apps/files_versions/lib/Hooks.php index a9ebb153eff..1fdf1afef90 100644 --- a/apps/files_versions/lib/Hooks.php +++ b/apps/files_versions/lib/Hooks.php @@ -54,12 +54,9 @@ class Hooks { * listen to write event. */ public static function write_hook( $params ) { - - if (\OCP\App::isEnabled('files_versions')) { - $path = $params[\OC\Files\Filesystem::signal_param_path]; - if($path !== '') { - Storage::store($path); - } + $path = $params[\OC\Files\Filesystem::signal_param_path]; + if($path !== '') { + Storage::store($path); } } @@ -72,12 +69,9 @@ class Hooks { * cleanup the versions directory if the actual file gets deleted */ public static function remove_hook($params) { - - if (\OCP\App::isEnabled('files_versions')) { - $path = $params[\OC\Files\Filesystem::signal_param_path]; - if($path !== '') { - Storage::delete($path); - } + $path = $params[\OC\Files\Filesystem::signal_param_path]; + if($path !== '') { + Storage::delete($path); } } @@ -100,13 +94,10 @@ class Hooks { * of the stored versions along the actual file */ public static function rename_hook($params) { - - if (\OCP\App::isEnabled('files_versions')) { - $oldpath = $params['oldpath']; - $newpath = $params['newpath']; - if($oldpath !== '' && $newpath !== '') { - Storage::renameOrCopy($oldpath, $newpath, 'rename'); - } + $oldpath = $params['oldpath']; + $newpath = $params['newpath']; + if($oldpath !== '' && $newpath !== '') { + Storage::renameOrCopy($oldpath, $newpath, 'rename'); } } @@ -118,13 +109,10 @@ class Hooks { * the stored versions to the new location */ public static function copy_hook($params) { - - if (\OCP\App::isEnabled('files_versions')) { - $oldpath = $params['oldpath']; - $newpath = $params['newpath']; - if($oldpath !== '' && $newpath !== '') { - Storage::renameOrCopy($oldpath, $newpath, 'copy'); - } + $oldpath = $params['oldpath']; + $newpath = $params['newpath']; + if($oldpath !== '' && $newpath !== '') { + Storage::renameOrCopy($oldpath, $newpath, 'copy'); } } @@ -137,25 +125,21 @@ class Hooks { * */ public static function pre_renameOrCopy_hook($params) { - if (\OCP\App::isEnabled('files_versions')) { - - // if we rename a movable mount point, then the versions don't have - // to be renamed - $absOldPath = \OC\Files\Filesystem::normalizePath('/' . \OCP\User::getUser() . '/files' . $params['oldpath']); - $manager = \OC\Files\Filesystem::getMountManager(); - $mount = $manager->find($absOldPath); - $internalPath = $mount->getInternalPath($absOldPath); - if ($internalPath === '' and $mount instanceof \OC\Files\Mount\MoveableMount) { - return; - } - - $view = new \OC\Files\View(\OCP\User::getUser() . '/files'); - if ($view->file_exists($params['newpath'])) { - Storage::store($params['newpath']); - } else { - Storage::setSourcePathAndUser($params['oldpath']); - } + // if we rename a movable mount point, then the versions don't have + // to be renamed + $absOldPath = \OC\Files\Filesystem::normalizePath('/' . \OCP\User::getUser() . '/files' . $params['oldpath']); + $manager = \OC\Files\Filesystem::getMountManager(); + $mount = $manager->find($absOldPath); + $internalPath = $mount->getInternalPath($absOldPath); + if ($internalPath === '' and $mount instanceof \OC\Files\Mount\MoveableMount) { + return; + } + $view = new \OC\Files\View(\OCP\User::getUser() . '/files'); + if ($view->file_exists($params['newpath'])) { + Storage::store($params['newpath']); + } else { + Storage::setSourcePathAndUser($params['oldpath']); } } diff --git a/apps/files_versions/tests/ExpirationTest.php b/apps/files_versions/tests/ExpirationTest.php index 7fe6b279b9a..4e4f500d812 100644 --- a/apps/files_versions/tests/ExpirationTest.php +++ b/apps/files_versions/tests/ExpirationTest.php @@ -24,6 +24,7 @@ namespace OCA\Files_Versions\Tests; use \OCA\Files_Versions\Expiration; +use OCP\IConfig; class ExpirationTest extends \Test\TestCase { const SECONDS_PER_DAY = 86400; //60*60*24 @@ -172,7 +173,7 @@ class ExpirationTest extends \Test\TestCase { * @return \OCP\IConfig */ private function getMockedConfig($returnValue){ - $mockedConfig = $this->getMockBuilder('\OCP\IConfig') + $mockedConfig = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->setMethods( [ diff --git a/apps/files_versions/tests/VersioningTest.php b/apps/files_versions/tests/VersioningTest.php index 4cd202113dd..812a068f070 100644 --- a/apps/files_versions/tests/VersioningTest.php +++ b/apps/files_versions/tests/VersioningTest.php @@ -682,7 +682,7 @@ class VersioningTest extends \Test\TestCase { return; } - $eventHandler = $this->getMockBuilder('\stdclass') + $eventHandler = $this->getMockBuilder(\stdclass::class) ->setMethods(['callback']) ->getMock(); diff --git a/apps/lookup_server_connector/composer/autoload.php b/apps/lookup_server_connector/composer/autoload.php new file mode 100644 index 00000000000..ab8f4ce80ff --- /dev/null +++ b/apps/lookup_server_connector/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer/autoload_real.php'; + +return ComposerAutoloaderInitLookupServerConnector::getLoader(); diff --git a/apps/lookup_server_connector/composer/composer.json b/apps/lookup_server_connector/composer/composer.json new file mode 100644 index 00000000000..5ff3be7e18b --- /dev/null +++ b/apps/lookup_server_connector/composer/composer.json @@ -0,0 +1,13 @@ +{ + "config" : { + "vendor-dir": ".", + "optimize-autoloader": true, + "authorative-autoloader": true, + "autoloader-suffix": "LookupServerConnector" + }, + "autoload" : { + "psr-4": { + "OCA\\LookupServerConnector\\": "../lib/" + } + } +} diff --git a/apps/lookup_server_connector/composer/composer/ClassLoader.php b/apps/lookup_server_connector/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..2c72175e772 --- /dev/null +++ b/apps/lookup_server_connector/composer/composer/ClassLoader.php @@ -0,0 +1,445 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * 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 array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + foreach ($this->prefixDirsPsr4[$search] as $dir) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/apps/lookup_server_connector/composer/composer/LICENSE b/apps/lookup_server_connector/composer/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/apps/lookup_server_connector/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/lookup_server_connector/composer/composer/autoload_classmap.php b/apps/lookup_server_connector/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..110eff058ff --- /dev/null +++ b/apps/lookup_server_connector/composer/composer/autoload_classmap.php @@ -0,0 +1,11 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\LookupServerConnector\\BackgroundJobs\\RetryJob' => $baseDir . '/../lib/BackgroundJobs/RetryJob.php', + 'OCA\\LookupServerConnector\\UpdateLookupServer' => $baseDir . '/../lib/UpdateLookupServer.php', +); diff --git a/apps/lookup_server_connector/composer/composer/autoload_namespaces.php b/apps/lookup_server_connector/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..71c9e91858d --- /dev/null +++ b/apps/lookup_server_connector/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( +); diff --git a/apps/lookup_server_connector/composer/composer/autoload_psr4.php b/apps/lookup_server_connector/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..1532b4d9c52 --- /dev/null +++ b/apps/lookup_server_connector/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\LookupServerConnector\\' => array($baseDir . '/../lib'), +); diff --git a/apps/lookup_server_connector/composer/composer/autoload_real.php b/apps/lookup_server_connector/composer/composer/autoload_real.php new file mode 100644 index 00000000000..92627f9dfaa --- /dev/null +++ b/apps/lookup_server_connector/composer/composer/autoload_real.php @@ -0,0 +1,52 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInitLookupServerConnector +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInitLookupServerConnector', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInitLookupServerConnector', 'loadClassLoader')); + + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitLookupServerConnector::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/apps/lookup_server_connector/composer/composer/autoload_static.php b/apps/lookup_server_connector/composer/composer/autoload_static.php new file mode 100644 index 00000000000..07aca539b3f --- /dev/null +++ b/apps/lookup_server_connector/composer/composer/autoload_static.php @@ -0,0 +1,37 @@ +<?php + +// autoload_static.php @generated by Composer + +namespace Composer\Autoload; + +class ComposerStaticInitLookupServerConnector +{ + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'OCA\\LookupServerConnector\\' => 26, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\LookupServerConnector\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'OCA\\LookupServerConnector\\BackgroundJobs\\RetryJob' => __DIR__ . '/..' . '/../lib/BackgroundJobs/RetryJob.php', + 'OCA\\LookupServerConnector\\UpdateLookupServer' => __DIR__ . '/..' . '/../lib/UpdateLookupServer.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitLookupServerConnector::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitLookupServerConnector::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitLookupServerConnector::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/oauth2/composer/autoload.php b/apps/oauth2/composer/autoload.php new file mode 100644 index 00000000000..276dedf42c2 --- /dev/null +++ b/apps/oauth2/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer/autoload_real.php'; + +return ComposerAutoloaderInitOAuth2::getLoader(); diff --git a/apps/oauth2/composer/composer.json b/apps/oauth2/composer/composer.json new file mode 100644 index 00000000000..95fe2e1604e --- /dev/null +++ b/apps/oauth2/composer/composer.json @@ -0,0 +1,13 @@ +{ + "config" : { + "vendor-dir": ".", + "optimize-autoloader": true, + "authorative-autoloader": true, + "autoloader-suffix": "OAuth2" + }, + "autoload" : { + "psr-4": { + "OCA\\OAuth2\\": "../lib/" + } + } +} diff --git a/apps/oauth2/composer/composer/ClassLoader.php b/apps/oauth2/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..2c72175e772 --- /dev/null +++ b/apps/oauth2/composer/composer/ClassLoader.php @@ -0,0 +1,445 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * 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 array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + foreach ($this->prefixDirsPsr4[$search] as $dir) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/apps/oauth2/composer/composer/LICENSE b/apps/oauth2/composer/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/apps/oauth2/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/oauth2/composer/composer/autoload_classmap.php b/apps/oauth2/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..97c8098caa3 --- /dev/null +++ b/apps/oauth2/composer/composer/autoload_classmap.php @@ -0,0 +1,19 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\OAuth2\\Controller\\LoginRedirectorController' => $baseDir . '/../lib/Controller/LoginRedirectorController.php', + 'OCA\\OAuth2\\Controller\\OauthApiController' => $baseDir . '/../lib/Controller/OauthApiController.php', + 'OCA\\OAuth2\\Controller\\SettingsController' => $baseDir . '/../lib/Controller/SettingsController.php', + 'OCA\\OAuth2\\Db\\AccessToken' => $baseDir . '/../lib/Db/AccessToken.php', + 'OCA\\OAuth2\\Db\\AccessTokenMapper' => $baseDir . '/../lib/Db/AccessTokenMapper.php', + 'OCA\\OAuth2\\Db\\Client' => $baseDir . '/../lib/Db/Client.php', + 'OCA\\OAuth2\\Db\\ClientMapper' => $baseDir . '/../lib/Db/ClientMapper.php', + 'OCA\\OAuth2\\Exceptions\\AccessTokenNotFoundException' => $baseDir . '/../lib/Exceptions/AccessTokenNotFoundException.php', + 'OCA\\OAuth2\\Exceptions\\ClientNotFoundException' => $baseDir . '/../lib/Exceptions/ClientNotFoundException.php', + 'OCA\\OAuth2\\Settings\\Admin' => $baseDir . '/../lib/Settings/Admin.php', +); diff --git a/apps/oauth2/composer/composer/autoload_namespaces.php b/apps/oauth2/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..71c9e91858d --- /dev/null +++ b/apps/oauth2/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( +); diff --git a/apps/oauth2/composer/composer/autoload_psr4.php b/apps/oauth2/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..1164638c634 --- /dev/null +++ b/apps/oauth2/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\OAuth2\\' => array($baseDir . '/../lib'), +); diff --git a/apps/oauth2/composer/composer/autoload_real.php b/apps/oauth2/composer/composer/autoload_real.php new file mode 100644 index 00000000000..855ff3261b3 --- /dev/null +++ b/apps/oauth2/composer/composer/autoload_real.php @@ -0,0 +1,52 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInitOAuth2 +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInitOAuth2', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInitOAuth2', 'loadClassLoader')); + + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitOAuth2::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/apps/oauth2/composer/composer/autoload_static.php b/apps/oauth2/composer/composer/autoload_static.php new file mode 100644 index 00000000000..ec48d6d0ce0 --- /dev/null +++ b/apps/oauth2/composer/composer/autoload_static.php @@ -0,0 +1,45 @@ +<?php + +// autoload_static.php @generated by Composer + +namespace Composer\Autoload; + +class ComposerStaticInitOAuth2 +{ + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'OCA\\OAuth2\\' => 11, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\OAuth2\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'OCA\\OAuth2\\Controller\\LoginRedirectorController' => __DIR__ . '/..' . '/../lib/Controller/LoginRedirectorController.php', + 'OCA\\OAuth2\\Controller\\OauthApiController' => __DIR__ . '/..' . '/../lib/Controller/OauthApiController.php', + 'OCA\\OAuth2\\Controller\\SettingsController' => __DIR__ . '/..' . '/../lib/Controller/SettingsController.php', + 'OCA\\OAuth2\\Db\\AccessToken' => __DIR__ . '/..' . '/../lib/Db/AccessToken.php', + 'OCA\\OAuth2\\Db\\AccessTokenMapper' => __DIR__ . '/..' . '/../lib/Db/AccessTokenMapper.php', + 'OCA\\OAuth2\\Db\\Client' => __DIR__ . '/..' . '/../lib/Db/Client.php', + 'OCA\\OAuth2\\Db\\ClientMapper' => __DIR__ . '/..' . '/../lib/Db/ClientMapper.php', + 'OCA\\OAuth2\\Exceptions\\AccessTokenNotFoundException' => __DIR__ . '/..' . '/../lib/Exceptions/AccessTokenNotFoundException.php', + 'OCA\\OAuth2\\Exceptions\\ClientNotFoundException' => __DIR__ . '/..' . '/../lib/Exceptions/ClientNotFoundException.php', + 'OCA\\OAuth2\\Settings\\Admin' => __DIR__ . '/..' . '/../lib/Settings/Admin.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitOAuth2::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitOAuth2::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitOAuth2::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/oauth2/l10n/es_CO.js b/apps/oauth2/l10n/es_CO.js new file mode 100644 index 00000000000..ecad08fd552 --- /dev/null +++ b/apps/oauth2/l10n/es_CO.js @@ -0,0 +1,13 @@ +OC.L10N.register( + "oauth2", + { + "OAuth 2.0 clients" : "Clientes OAuth 2.0", + "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 le permite a los servicios externos solicitar acceso a %s.", + "Name" : "Nombre", + "Redirection URI" : "URI para redirección", + "Client Identifier" : "Identificador del cliente", + "Secret" : "Secreto", + "Add client" : "Agregar cliente", + "Add" : "Agregar" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/oauth2/l10n/es_CO.json b/apps/oauth2/l10n/es_CO.json new file mode 100644 index 00000000000..5e42b16f40d --- /dev/null +++ b/apps/oauth2/l10n/es_CO.json @@ -0,0 +1,11 @@ +{ "translations": { + "OAuth 2.0 clients" : "Clientes OAuth 2.0", + "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 le permite a los servicios externos solicitar acceso a %s.", + "Name" : "Nombre", + "Redirection URI" : "URI para redirección", + "Client Identifier" : "Identificador del cliente", + "Secret" : "Secreto", + "Add client" : "Agregar cliente", + "Add" : "Agregar" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/provisioning_api/composer/autoload.php b/apps/provisioning_api/composer/autoload.php new file mode 100644 index 00000000000..9734ee42b19 --- /dev/null +++ b/apps/provisioning_api/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer/autoload_real.php'; + +return ComposerAutoloaderInitProvisioning_API::getLoader(); diff --git a/apps/provisioning_api/composer/composer.json b/apps/provisioning_api/composer/composer.json new file mode 100644 index 00000000000..ea2a43abc8e --- /dev/null +++ b/apps/provisioning_api/composer/composer.json @@ -0,0 +1,13 @@ +{ + "config" : { + "vendor-dir": ".", + "optimize-autoloader": true, + "authorative-autoloader": true, + "autoloader-suffix": "Provisioning_API" + }, + "autoload" : { + "psr-4": { + "OCA\\Provisioning_API\\": "../lib/" + } + } +} diff --git a/apps/provisioning_api/composer/composer/ClassLoader.php b/apps/provisioning_api/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..2c72175e772 --- /dev/null +++ b/apps/provisioning_api/composer/composer/ClassLoader.php @@ -0,0 +1,445 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * 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 array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + foreach ($this->prefixDirsPsr4[$search] as $dir) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/apps/provisioning_api/composer/composer/LICENSE b/apps/provisioning_api/composer/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/apps/provisioning_api/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/provisioning_api/composer/composer/autoload_classmap.php b/apps/provisioning_api/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..1ae8ef27d03 --- /dev/null +++ b/apps/provisioning_api/composer/composer/autoload_classmap.php @@ -0,0 +1,16 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\Provisioning_API\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php', + 'OCA\\Provisioning_API\\Controller\\AppConfigController' => $baseDir . '/../lib/Controller/AppConfigController.php', + 'OCA\\Provisioning_API\\Controller\\AppsController' => $baseDir . '/../lib/Controller/AppsController.php', + 'OCA\\Provisioning_API\\Controller\\GroupsController' => $baseDir . '/../lib/Controller/GroupsController.php', + 'OCA\\Provisioning_API\\Controller\\UsersController' => $baseDir . '/../lib/Controller/UsersController.php', + 'OCA\\Provisioning_API\\Middleware\\Exceptions\\NotSubAdminException' => $baseDir . '/../lib/Middleware/Exceptions/NotSubAdminException.php', + 'OCA\\Provisioning_API\\Middleware\\ProvisioningApiMiddleware' => $baseDir . '/../lib/Middleware/ProvisioningApiMiddleware.php', +); diff --git a/apps/provisioning_api/composer/composer/autoload_namespaces.php b/apps/provisioning_api/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..71c9e91858d --- /dev/null +++ b/apps/provisioning_api/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( +); diff --git a/apps/provisioning_api/composer/composer/autoload_psr4.php b/apps/provisioning_api/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..46b5eb003d5 --- /dev/null +++ b/apps/provisioning_api/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\Provisioning_API\\' => array($baseDir . '/../lib'), +); diff --git a/apps/provisioning_api/composer/composer/autoload_real.php b/apps/provisioning_api/composer/composer/autoload_real.php new file mode 100644 index 00000000000..c55cebd2f63 --- /dev/null +++ b/apps/provisioning_api/composer/composer/autoload_real.php @@ -0,0 +1,52 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInitProvisioning_API +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInitProvisioning_API', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInitProvisioning_API', 'loadClassLoader')); + + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitProvisioning_API::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/apps/provisioning_api/composer/composer/autoload_static.php b/apps/provisioning_api/composer/composer/autoload_static.php new file mode 100644 index 00000000000..950a851eae9 --- /dev/null +++ b/apps/provisioning_api/composer/composer/autoload_static.php @@ -0,0 +1,42 @@ +<?php + +// autoload_static.php @generated by Composer + +namespace Composer\Autoload; + +class ComposerStaticInitProvisioning_API +{ + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'OCA\\Provisioning_API\\' => 21, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\Provisioning_API\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'OCA\\Provisioning_API\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php', + 'OCA\\Provisioning_API\\Controller\\AppConfigController' => __DIR__ . '/..' . '/../lib/Controller/AppConfigController.php', + 'OCA\\Provisioning_API\\Controller\\AppsController' => __DIR__ . '/..' . '/../lib/Controller/AppsController.php', + 'OCA\\Provisioning_API\\Controller\\GroupsController' => __DIR__ . '/..' . '/../lib/Controller/GroupsController.php', + 'OCA\\Provisioning_API\\Controller\\UsersController' => __DIR__ . '/..' . '/../lib/Controller/UsersController.php', + 'OCA\\Provisioning_API\\Middleware\\Exceptions\\NotSubAdminException' => __DIR__ . '/..' . '/../lib/Middleware/Exceptions/NotSubAdminException.php', + 'OCA\\Provisioning_API\\Middleware\\ProvisioningApiMiddleware' => __DIR__ . '/..' . '/../lib/Middleware/ProvisioningApiMiddleware.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitProvisioning_API::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitProvisioning_API::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitProvisioning_API::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/provisioning_api/tests/Controller/AppsControllerTest.php b/apps/provisioning_api/tests/Controller/AppsControllerTest.php index c891433258f..7bd20e4233f 100644 --- a/apps/provisioning_api/tests/Controller/AppsControllerTest.php +++ b/apps/provisioning_api/tests/Controller/AppsControllerTest.php @@ -28,10 +28,9 @@ namespace OCA\Provisioning_API\Tests\Controller; -use OC\OCSClient; use OCA\Provisioning_API\Controller\AppsController; -use OCP\API; use OCP\App\IAppManager; +use OCP\IRequest; use OCP\IUserSession; /** @@ -56,7 +55,7 @@ class AppsControllerTest extends \OCA\Provisioning_API\Tests\TestCase { $this->groupManager = \OC::$server->getGroupManager(); $this->userSession = \OC::$server->getUserSession(); - $request = $this->getMockBuilder('OCP\IRequest') + $request = $this->getMockBuilder(IRequest::class) ->disableOriginalConstructor() ->getMock(); diff --git a/apps/provisioning_api/tests/Controller/GroupsControllerTest.php b/apps/provisioning_api/tests/Controller/GroupsControllerTest.php index 344f1fe6352..cd3dae79336 100644 --- a/apps/provisioning_api/tests/Controller/GroupsControllerTest.php +++ b/apps/provisioning_api/tests/Controller/GroupsControllerTest.php @@ -29,6 +29,8 @@ namespace OCA\Provisioning_API\Tests\Controller; use OCA\Provisioning_API\Controller\GroupsController; use OCP\IGroupManager; use OCP\ILogger; +use OCP\IRequest; +use OCP\IUser; use OCP\IUserSession; class GroupsControllerTest extends \Test\TestCase { @@ -56,10 +58,10 @@ class GroupsControllerTest extends \Test\TestCase { ->method('getSubAdmin') ->willReturn($this->subAdminManager); - $this->userSession = $this->getMockBuilder('OCP\IUserSession') + $this->userSession = $this->getMockBuilder(IUserSession::class) ->disableOriginalConstructor() ->getMock(); - $request = $this->getMockBuilder('OCP\IRequest') + $request = $this->getMockBuilder(IRequest::class) ->disableOriginalConstructor() ->getMock(); @@ -91,7 +93,7 @@ class GroupsControllerTest extends \Test\TestCase { * @return \OCP\IUser|\PHPUnit_Framework_MockObject_MockObject */ private function createUser($uid) { - $user = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $user = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $user ->method('getUID') ->willReturn($uid); diff --git a/apps/provisioning_api/tests/Controller/UsersControllerTest.php b/apps/provisioning_api/tests/Controller/UsersControllerTest.php index 692b94556c5..e9d0a704f4f 100644 --- a/apps/provisioning_api/tests/Controller/UsersControllerTest.php +++ b/apps/provisioning_api/tests/Controller/UsersControllerTest.php @@ -1128,12 +1128,12 @@ class UsersControllerTest extends TestCase { } public function testEditUserAdminUserSelfEditChangeValidQuota() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->any()) ->method('getUID') ->will($this->returnValue('UID')); - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetUser->expects($this->once()) ->method('setQuota') ->with('2.9 MB'); @@ -1166,12 +1166,12 @@ class UsersControllerTest extends TestCase { * @expectedExceptionMessage Invalid quota value ABC */ public function testEditUserAdminUserSelfEditChangeInvalidQuota() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->any()) ->method('getUID') ->will($this->returnValue('UID')); - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $this->userSession ->expects($this->once()) ->method('getUser') @@ -1195,12 +1195,12 @@ class UsersControllerTest extends TestCase { } public function testEditUserAdminUserEditChangeValidQuota() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->any()) ->method('getUID') ->will($this->returnValue('admin')); - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetUser->expects($this->once()) ->method('setQuota') ->with('2.9 MB'); @@ -1413,12 +1413,12 @@ class UsersControllerTest extends TestCase { } public function testEditUserSubadminUserAccessible() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->any()) ->method('getUID') ->will($this->returnValue('subadmin')); - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetUser->expects($this->once()) ->method('setQuota') ->with('2.9 MB'); @@ -1456,12 +1456,12 @@ class UsersControllerTest extends TestCase { * @expectedExceptionCode 997 */ public function testEditUserSubadminUserInaccessible() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->any()) ->method('getUID') ->will($this->returnValue('subadmin')); - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $this->userSession ->expects($this->once()) ->method('getUser') @@ -1496,7 +1496,7 @@ class UsersControllerTest extends TestCase { * @expectedExceptionCode 101 */ public function testDeleteUserNotExistingUser() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->any()) ->method('getUID') @@ -1519,12 +1519,12 @@ class UsersControllerTest extends TestCase { * @expectedExceptionCode 101 */ public function testDeleteUserSelf() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->any()) ->method('getUID') ->will($this->returnValue('UID')); - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetUser ->expects($this->once()) ->method('getUID') @@ -1543,12 +1543,12 @@ class UsersControllerTest extends TestCase { } public function testDeleteSuccessfulUserAsAdmin() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->any()) ->method('getUID') ->will($this->returnValue('admin')); - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetUser ->expects($this->once()) ->method('getUID') @@ -1580,12 +1580,12 @@ class UsersControllerTest extends TestCase { * @expectedExceptionCode 101 */ public function testDeleteUnsuccessfulUserAsAdmin() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->any()) ->method('getUID') ->will($this->returnValue('admin')); - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetUser ->expects($this->once()) ->method('getUID') @@ -1613,12 +1613,12 @@ class UsersControllerTest extends TestCase { } public function testDeleteSuccessfulUserAsSubadmin() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->any()) ->method('getUID') ->will($this->returnValue('subadmin')); - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetUser ->expects($this->once()) ->method('getUID') @@ -1661,12 +1661,12 @@ class UsersControllerTest extends TestCase { * @expectedExceptionCode 101 */ public function testDeleteUnsuccessfulUserAsSubadmin() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->any()) ->method('getUID') ->will($this->returnValue('subadmin')); - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetUser ->expects($this->once()) ->method('getUID') @@ -1709,12 +1709,12 @@ class UsersControllerTest extends TestCase { * @expectedExceptionCode 997 */ public function testDeleteUserAsSubAdminAndUserIsNotAccessible() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->any()) ->method('getUID') ->will($this->returnValue('subadmin')); - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetUser ->expects($this->once()) ->method('getUID') @@ -1753,7 +1753,7 @@ class UsersControllerTest extends TestCase { * @expectedExceptionCode 998 */ public function testGetUsersGroupsTargetUserNotExisting() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $this->userSession ->expects($this->once()) ->method('getUser') @@ -1763,12 +1763,12 @@ class UsersControllerTest extends TestCase { } public function testGetUsersGroupsSelfTargetted() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->once()) ->method('getUID') ->will($this->returnValue('UserToLookup')); - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetUser ->expects($this->once()) ->method('getUID') @@ -1792,12 +1792,12 @@ class UsersControllerTest extends TestCase { } public function testGetUsersGroupsForAdminUser() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->exactly(2)) ->method('getUID') ->will($this->returnValue('admin')); - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetUser ->expects($this->once()) ->method('getUID') @@ -1826,12 +1826,12 @@ class UsersControllerTest extends TestCase { } public function testGetUsersGroupsForSubAdminUserAndUserIsAccessible() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->exactly(2)) ->method('getUID') ->will($this->returnValue('subadmin')); - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetUser ->expects($this->once()) ->method('getUID') @@ -1890,12 +1890,12 @@ class UsersControllerTest extends TestCase { * @expectedExceptionCode 997 */ public function testGetUsersGroupsForSubAdminUserAndUserIsInaccessible() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->exactly(2)) ->method('getUID') ->will($this->returnValue('subadmin')); - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetUser ->expects($this->once()) ->method('getUID') @@ -2108,7 +2108,7 @@ class UsersControllerTest extends TestCase { * @expectedExceptionCode 101 */ public function testRemoveFromGroupWithNoTargetGroup() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $this->userSession ->expects($this->once()) ->method('getUser') @@ -2122,7 +2122,7 @@ class UsersControllerTest extends TestCase { * @expectedExceptionCode 101 */ public function testRemoveFromGroupWithEmptyTargetGroup() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $this->userSession ->expects($this->once()) ->method('getUser') @@ -2136,7 +2136,7 @@ class UsersControllerTest extends TestCase { * @expectedExceptionCode 102 */ public function testRemoveFromGroupWithNotExistingTargetGroup() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $this->userSession ->expects($this->once()) ->method('getUser') @@ -2155,7 +2155,7 @@ class UsersControllerTest extends TestCase { * @expectedExceptionCode 103 */ public function testRemoveFromGroupWithNotExistingTargetUser() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock(); $this->userSession ->expects($this->once()) @@ -2180,12 +2180,12 @@ class UsersControllerTest extends TestCase { * @expectedExceptionCode 104 */ public function testRemoveFromGroupWithoutPermission() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->once()) ->method('getUID') ->will($this->returnValue('unauthorizedUser')); - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock(); $this->userSession ->expects($this->once()) @@ -2222,12 +2222,12 @@ class UsersControllerTest extends TestCase { * @expectedExceptionMessage Cannot remove yourself from the admin group */ public function testRemoveFromGroupAsAdminFromAdmin() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->any()) ->method('getUID') ->will($this->returnValue('admin')); - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetUser ->expects($this->once()) ->method('getUID') @@ -2272,12 +2272,12 @@ class UsersControllerTest extends TestCase { * @expectedExceptionMessage Cannot remove yourself from this group as you are a SubAdmin */ public function testRemoveFromGroupAsSubAdminFromSubAdmin() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->any()) ->method('getUID') ->will($this->returnValue('subadmin')); - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetUser ->expects($this->once()) ->method('getUID') @@ -2327,12 +2327,12 @@ class UsersControllerTest extends TestCase { * @expectedExceptionMessage Cannot remove user from this group as this is the only remaining group you are a SubAdmin of */ public function testRemoveFromGroupAsSubAdminFromLastSubAdminGroup() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->any()) ->method('getUID') ->will($this->returnValue('subadmin')); - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock(); $targetGroup ->expects($this->any()) @@ -2384,12 +2384,12 @@ class UsersControllerTest extends TestCase { } public function testRemoveFromGroupSuccessful() { - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->any()) ->method('getUID') ->will($this->returnValue('admin')); - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock(); $this->userSession ->expects($this->once()) @@ -2446,7 +2446,7 @@ class UsersControllerTest extends TestCase { */ public function testAddSubAdminWithNotExistingTargetGroup() { - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $this->userManager ->expects($this->once()) ->method('get') @@ -2467,7 +2467,7 @@ class UsersControllerTest extends TestCase { * @expectedExceptionMessage Cannot create subadmins for admin group */ public function testAddSubAdminToAdminGroup() { - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock(); $targetGroup ->expects($this->once()) @@ -2488,7 +2488,7 @@ class UsersControllerTest extends TestCase { } public function testAddSubAdminTwice() { - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock(); $this->userManager ->expects($this->once()) @@ -2516,7 +2516,7 @@ class UsersControllerTest extends TestCase { } public function testAddSubAdminSuccessful() { - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock(); $this->userManager ->expects($this->once()) @@ -2554,7 +2554,7 @@ class UsersControllerTest extends TestCase { * @expectedExceptionMessage Unknown error occurred */ public function testAddSubAdminUnsuccessful() { - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock(); $this->userManager ->expects($this->once()) @@ -2607,7 +2607,7 @@ class UsersControllerTest extends TestCase { * @expectedExceptionMessage Group does not exist */ public function testRemoveSubAdminNotExistingTargetGroup() { - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $this->userManager ->expects($this->once()) ->method('get') @@ -2629,7 +2629,7 @@ class UsersControllerTest extends TestCase { * @expectedExceptionMessage User is not a subadmin of this group */ public function testRemoveSubAdminFromNotASubadmin() { - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock(); $this->userManager ->expects($this->once()) @@ -2657,7 +2657,7 @@ class UsersControllerTest extends TestCase { } public function testRemoveSubAdminSuccessful() { - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock(); $this->userManager ->expects($this->once()) @@ -2695,7 +2695,7 @@ class UsersControllerTest extends TestCase { * @expectedExceptionMessage Unknown error occurred */ public function testRemoveSubAdminUnsuccessful() { - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock(); $this->userManager ->expects($this->once()) @@ -2743,7 +2743,7 @@ class UsersControllerTest extends TestCase { } public function testGetUserSubAdminGroupsWithGroups() { - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock(); $targetGroup ->expects($this->once()) @@ -2775,7 +2775,7 @@ class UsersControllerTest extends TestCase { * @expectedExceptionMessage Unknown error occurred */ public function testGetUserSubAdminGroupsWithoutGroups() { - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $this->userManager ->expects($this->once()) ->method('get') @@ -2797,7 +2797,7 @@ class UsersControllerTest extends TestCase { } public function testEnableUser() { - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetUser->expects($this->once()) ->method('setEnabled') ->with(true); @@ -2806,7 +2806,7 @@ class UsersControllerTest extends TestCase { ->method('get') ->with('RequestedUser') ->will($this->returnValue($targetUser)); - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->exactly(2)) ->method('getUID') @@ -2824,7 +2824,7 @@ class UsersControllerTest extends TestCase { } public function testDisableUser() { - $targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $targetUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $targetUser->expects($this->once()) ->method('setEnabled') ->with(false); @@ -2833,7 +2833,7 @@ class UsersControllerTest extends TestCase { ->method('get') ->with('RequestedUser') ->will($this->returnValue($targetUser)); - $loggedInUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock(); + $loggedInUser = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $loggedInUser ->expects($this->exactly(2)) ->method('getUID') @@ -2974,14 +2974,14 @@ class UsersControllerTest extends TestCase { * @expectedExceptionCode 997 */ public function testResendWelcomeMessageAsSubAdminAndUserIsNotAccessible() { - $loggedInUser = $this->getMockBuilder('OCP\IUser') + $loggedInUser = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $loggedInUser ->expects($this->exactly(1)) ->method('getUID') ->will($this->returnValue('subadmin')); - $targetUser = $this->getMockBuilder('OCP\IUser') + $targetUser = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $this->userSession @@ -3020,10 +3020,10 @@ class UsersControllerTest extends TestCase { * @expectedExceptionMessage Email address not available */ public function testResendWelcomeMessageNoEmail() { - $loggedInUser = $this->getMockBuilder('OCP\IUser') + $loggedInUser = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); - $targetUser = $this->getMockBuilder('OCP\IUser') + $targetUser = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $this->userSession @@ -3061,10 +3061,10 @@ class UsersControllerTest extends TestCase { * @expectedExceptionMessage Email address not available */ public function testResendWelcomeMessageNullEmail() { - $loggedInUser = $this->getMockBuilder('OCP\IUser') + $loggedInUser = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); - $targetUser = $this->getMockBuilder('OCP\IUser') + $targetUser = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $this->userSession @@ -3097,10 +3097,10 @@ class UsersControllerTest extends TestCase { } public function testResendWelcomeMessageSuccess() { - $loggedInUser = $this->getMockBuilder('OCP\IUser') + $loggedInUser = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); - $targetUser = $this->getMockBuilder('OCP\IUser') + $targetUser = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $targetUser @@ -3167,10 +3167,10 @@ class UsersControllerTest extends TestCase { } public function testResendWelcomeMessageSuccessWithFallbackLanguage() { - $loggedInUser = $this->getMockBuilder('OCP\IUser') + $loggedInUser = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); - $targetUser = $this->getMockBuilder('OCP\IUser') + $targetUser = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $targetUser @@ -3242,10 +3242,10 @@ class UsersControllerTest extends TestCase { * @expectedExceptionMessage Sending email failed */ public function testResendWelcomeMessageFailed() { - $loggedInUser = $this->getMockBuilder('OCP\IUser') + $loggedInUser = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); - $targetUser = $this->getMockBuilder('OCP\IUser') + $targetUser = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $targetUser diff --git a/apps/sharebymail/composer/autoload.php b/apps/sharebymail/composer/autoload.php new file mode 100644 index 00000000000..da43a4ff256 --- /dev/null +++ b/apps/sharebymail/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer/autoload_real.php'; + +return ComposerAutoloaderInitShareByMail::getLoader(); diff --git a/apps/sharebymail/composer/composer.json b/apps/sharebymail/composer/composer.json new file mode 100644 index 00000000000..3e7359c114a --- /dev/null +++ b/apps/sharebymail/composer/composer.json @@ -0,0 +1,13 @@ +{ + "config" : { + "vendor-dir": ".", + "optimize-autoloader": true, + "authorative-autoloader": true, + "autoloader-suffix": "ShareByMail" + }, + "autoload" : { + "psr-4": { + "OCA\\ShareByMail\\": "../lib/" + } + } +} diff --git a/apps/sharebymail/composer/composer/ClassLoader.php b/apps/sharebymail/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..2c72175e772 --- /dev/null +++ b/apps/sharebymail/composer/composer/ClassLoader.php @@ -0,0 +1,445 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * 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 array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + foreach ($this->prefixDirsPsr4[$search] as $dir) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/apps/sharebymail/composer/composer/LICENSE b/apps/sharebymail/composer/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/apps/sharebymail/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/sharebymail/composer/composer/autoload_classmap.php b/apps/sharebymail/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..0df9428d7b0 --- /dev/null +++ b/apps/sharebymail/composer/composer/autoload_classmap.php @@ -0,0 +1,16 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\ShareByMail\\Activity' => $baseDir . '/../lib/Activity.php', + 'OCA\\ShareByMail\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php', + 'OCA\\ShareByMail\\Capabilities' => $baseDir . '/../lib/Capabilities.php', + 'OCA\\ShareByMail\\Settings' => $baseDir . '/../lib/Settings.php', + 'OCA\\ShareByMail\\Settings\\Admin' => $baseDir . '/../lib/Settings/Admin.php', + 'OCA\\ShareByMail\\Settings\\SettingsManager' => $baseDir . '/../lib/Settings/SettingsManager.php', + 'OCA\\ShareByMail\\ShareByMailProvider' => $baseDir . '/../lib/ShareByMailProvider.php', +); diff --git a/apps/sharebymail/composer/composer/autoload_namespaces.php b/apps/sharebymail/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..71c9e91858d --- /dev/null +++ b/apps/sharebymail/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( +); diff --git a/apps/sharebymail/composer/composer/autoload_psr4.php b/apps/sharebymail/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..15fee669450 --- /dev/null +++ b/apps/sharebymail/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\ShareByMail\\' => array($baseDir . '/../lib'), +); diff --git a/apps/sharebymail/composer/composer/autoload_real.php b/apps/sharebymail/composer/composer/autoload_real.php new file mode 100644 index 00000000000..b03d256defe --- /dev/null +++ b/apps/sharebymail/composer/composer/autoload_real.php @@ -0,0 +1,52 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInitShareByMail +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInitShareByMail', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInitShareByMail', 'loadClassLoader')); + + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitShareByMail::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/apps/sharebymail/composer/composer/autoload_static.php b/apps/sharebymail/composer/composer/autoload_static.php new file mode 100644 index 00000000000..273da60be64 --- /dev/null +++ b/apps/sharebymail/composer/composer/autoload_static.php @@ -0,0 +1,42 @@ +<?php + +// autoload_static.php @generated by Composer + +namespace Composer\Autoload; + +class ComposerStaticInitShareByMail +{ + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'OCA\\ShareByMail\\' => 16, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\ShareByMail\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'OCA\\ShareByMail\\Activity' => __DIR__ . '/..' . '/../lib/Activity.php', + 'OCA\\ShareByMail\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php', + 'OCA\\ShareByMail\\Capabilities' => __DIR__ . '/..' . '/../lib/Capabilities.php', + 'OCA\\ShareByMail\\Settings' => __DIR__ . '/..' . '/../lib/Settings.php', + 'OCA\\ShareByMail\\Settings\\Admin' => __DIR__ . '/..' . '/../lib/Settings/Admin.php', + 'OCA\\ShareByMail\\Settings\\SettingsManager' => __DIR__ . '/..' . '/../lib/Settings/SettingsManager.php', + 'OCA\\ShareByMail\\ShareByMailProvider' => __DIR__ . '/..' . '/../lib/ShareByMailProvider.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitShareByMail::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitShareByMail::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitShareByMail::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/sharebymail/l10n/es_CO.js b/apps/sharebymail/l10n/es_CO.js new file mode 100644 index 00000000000..92f61e8f63e --- /dev/null +++ b/apps/sharebymail/l10n/es_CO.js @@ -0,0 +1,50 @@ +OC.L10N.register( + "sharebymail", + { + "Shared with %1$s" : "Compartido con %1$s", + "Shared with {email}" : "Compartido con {email}", + "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s", + "Shared with {email} by {actor}" : "Compartido con {email} por {actor}", + "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s", + "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}", + "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado", + "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo", + "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo", + "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ", + "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo", + "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s", + "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}", + "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado", + "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada", + "Sharing %s failed, this item is already shared with %s" : "Se presentó una falla al compartir %s, este elemento ya ha sido compartido con %s", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.", + "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico", + "%s shared »%s« with you" : "%s ha compartido »%s« contigo", + "%s shared »%s« with you." : "%s ha compartido »%s« contigo", + "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.", + "Open »%s«" : "Abrir »%s«", + "%s via %s" : "%s vía %s", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartió »%s« contigo.\nDeberías haber recibido ya un correo por separado con la liga para accederlo. \n", + "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartió »%s« contigo. Ya deberías haber recibido un correo aparte con la liga para accederlo. ", + "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido contigo por %s ", + "Password to access »%s«" : "Contraseña para acceder »%s«", + "It is protected with the following password: %s" : "Está protegido con la siguiente contraseña: %s", + "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acabas de compartir »%s« con %s. El elemento compartido ya ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %s cada elelento compartido debe ser protegido por una contraseña y no se permite enviar la contraseña directamente al destinatario. Por lo tanto necesitas reenviar la contaseña manualmente al destinatario. ", + "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", + "This is the password: %s" : "Esta es la contraseña: %s", + "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ", + "Could not find share" : "No fue posible encontrar el elemento compartido", + "Share by mail" : "Compartir por correo", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ", + "Send password by mail" : "La contraseña ha sido enviada por correo", + "Enforce password protection" : "Forzar protección con contraseña", + "Failed to send share by E-mail" : "Se presentó una falla al enviar el recurso compartido por correo electrónico", + "%s shared »%s« with you on behalf of %s" : "%s ha compartido »%s« contigo a nombre de %s", + "Failed to create the E-mail" : "Se presentó una falla al crear el correo electrónico", + "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Hola,\n\n%s ha compartido »%s« contigo a nombre de %s.\n\n%s\n", + "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Hola,\n\n%s ha compartido »%s« contigo.\n\n%s\n", + "Cheers!" : "¡Saludos!", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "Hola,<br><br>%s ha compartido <a href=\"%s\">%s</a> contigo a nombre de %s.<br><br> ", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "Hola, <br><br>%s ha compartido <a href=\"%s\">%s</a> contigo.<br><br> " +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/sharebymail/l10n/es_CO.json b/apps/sharebymail/l10n/es_CO.json new file mode 100644 index 00000000000..43a4bc87eb2 --- /dev/null +++ b/apps/sharebymail/l10n/es_CO.json @@ -0,0 +1,48 @@ +{ "translations": { + "Shared with %1$s" : "Compartido con %1$s", + "Shared with {email}" : "Compartido con {email}", + "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s", + "Shared with {email} by {actor}" : "Compartido con {email} por {actor}", + "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s", + "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}", + "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado", + "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo", + "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo", + "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ", + "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo", + "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s", + "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}", + "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado", + "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada", + "Sharing %s failed, this item is already shared with %s" : "Se presentó una falla al compartir %s, este elemento ya ha sido compartido con %s", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.", + "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico", + "%s shared »%s« with you" : "%s ha compartido »%s« contigo", + "%s shared »%s« with you." : "%s ha compartido »%s« contigo", + "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.", + "Open »%s«" : "Abrir »%s«", + "%s via %s" : "%s vía %s", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartió »%s« contigo.\nDeberías haber recibido ya un correo por separado con la liga para accederlo. \n", + "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartió »%s« contigo. Ya deberías haber recibido un correo aparte con la liga para accederlo. ", + "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido contigo por %s ", + "Password to access »%s«" : "Contraseña para acceder »%s«", + "It is protected with the following password: %s" : "Está protegido con la siguiente contraseña: %s", + "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acabas de compartir »%s« con %s. El elemento compartido ya ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %s cada elelento compartido debe ser protegido por una contraseña y no se permite enviar la contraseña directamente al destinatario. Por lo tanto necesitas reenviar la contaseña manualmente al destinatario. ", + "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", + "This is the password: %s" : "Esta es la contraseña: %s", + "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ", + "Could not find share" : "No fue posible encontrar el elemento compartido", + "Share by mail" : "Compartir por correo", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ", + "Send password by mail" : "La contraseña ha sido enviada por correo", + "Enforce password protection" : "Forzar protección con contraseña", + "Failed to send share by E-mail" : "Se presentó una falla al enviar el recurso compartido por correo electrónico", + "%s shared »%s« with you on behalf of %s" : "%s ha compartido »%s« contigo a nombre de %s", + "Failed to create the E-mail" : "Se presentó una falla al crear el correo electrónico", + "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Hola,\n\n%s ha compartido »%s« contigo a nombre de %s.\n\n%s\n", + "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Hola,\n\n%s ha compartido »%s« contigo.\n\n%s\n", + "Cheers!" : "¡Saludos!", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "Hola,<br><br>%s ha compartido <a href=\"%s\">%s</a> contigo a nombre de %s.<br><br> ", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "Hola, <br><br>%s ha compartido <a href=\"%s\">%s</a> contigo.<br><br> " +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/sharebymail/l10n/gl.js b/apps/sharebymail/l10n/gl.js index d1f8c55ebad..bac9c912b40 100644 --- a/apps/sharebymail/l10n/gl.js +++ b/apps/sharebymail/l10n/gl.js @@ -1,50 +1,49 @@ OC.L10N.register( "sharebymail", { - "Shared with %1$s" : "Compartido con %1$s", + "Shared with %1$s" : "Compartido con %1$s ", "Shared with {email}" : "Compartido con {email}", - "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s", - "Shared with {email} by {actor}" : "Compartido con {email} por {actor}Compartido con {email} por {actor}", - "Password for mail share sent to %1$s" : "Enviouse un contrasinal para compartir por correo a %1$s", - "Password for mail share sent to {email}" : "Enviouse un contrasinal para compartir por correo a {email}", - "Password for mail share sent to you" : "Envióuselle un contrasinal para compartir por correo", + "Shared with %1$s by %2$s" : "Compartido con %1$spor %2$s", + "Shared with {email} by {actor}" : "Compartido con {email} por {actor}", + "Password for mail share sent to %1$s" : "Contrasinal para compartir por correo enviada a %1$s", + "Password for mail share sent to {email}" : "Contrasinal para compartir por correo enviada a {email}", + "Password for mail share sent to you" : "Contrasinal para compartir por correo enviada a tí mesmo", "You shared %1$s with %2$s by mail" : "Compartiu %1$s con %2$s por correo", "You shared {file} with {email} by mail" : "Compartiu {file} con {email} por correo", - "%3$s shared %1$s with %2$s by mail" : "%3$s compartiu %1$s con %2$s por correo", + "%3$s shared %1$s with %2$s by mail" : "%3$s compartido %1$scon %2$s por correo", "{actor} shared {file} with {email} by mail" : "{actor} compartiu {file} con {email} por correo", - "Password to access %1$s was sent to %2s" : "Envióuselle a %2s un contrasinal para acceder a %1$s", - "Password to access {file} was sent to {email}" : "Envióuselle a {email} un contrasinal para acceder a {file}", - "Password to access %1$s was sent to you" : "Envióuselle a vostede un correo para acceder a %1$s", - "Password to access {file} was sent to you" : "Envióuselle a vostede un correo para acceder a {file}", - "Sharing %s failed, this item is already shared with %s" : "Fallou a compartición de %s, este elemento xa está compartido con %s", - "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Non é posíbel enviarlle o contrasinal xerado automaticamente. Estabeleza un enderezo de correo correcto nos seus axustes persoais e ténteo de novo.", - "Failed to send share by email" : "Fallou o envío do recurso compartido por correo", - "%s shared »%s« with you" : "%s compartiu «%s» con vostede", - "%s shared »%s« with you." : "%s compartiu «%s» con vostede.", - "Click the button below to open it." : "Prema no botón de embaixo para abrilo.", - "Open »%s«" : "Abrir «%s»", + "Password to access %1$s was sent to %2s" : "Contrasinal para acceder a %1$s foi enviada a %2s", + "Password to access {file} was sent to {email}" : "Contrasinal para acceder a {file} foi enviada a {email}", + "Password to access %1$s was sent to you" : "Contrasinal para acceder a %1$s foi enviada a tí mesmo", + "Password to access {file} was sent to you" : "Contrasinal para acceder a {file} foi enviada a tí mesmo", + "Sharing %s failed, this item is already shared with %s" : "Compartir %s fallou, este obxecto xa está compartido con %s", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Non podemos enviarte o contrasinal auto-xenerado. Por favor indica unha dirección de correo válida nas túas preferencias persoais e proba de novo.", + "Failed to send share by email" : "Fallou ó envío para compartir por correo", + "%s shared »%s« with you" : "%s compartiu »%s« contigo", + "%s shared »%s« with you." : "%s compartiu »%s« contigo.", + "Click the button below to open it." : "Prema no botón máis abaixo para abrilo.", + "Open »%s«" : "Abrir »%s«", "%s via %s" : "%s vía %s", - "Password to access »%s« shared to you by %s" : "O contrasinal para acceder a «%s» foi compartido con vostede por %s", - "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartiu «%s» con vostede.\nDebería ter recibido un correo por separado cunha ligazón acceder.\n", - "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartiu «%s» con vostede. Debería ter recibido un correo por separado cunha ligazón acceder.", - "Password to access »%s«" : "Contrasinal para acceder a «%s»", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartiu »%s« contigo.\nDebes ter recibido xa un correo por separado cun enlace para acceder a él.\n", + "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartiu »%s« contigo. Debes ter recibido xa un correo por separado cun enlace para acceder a él.", + "Password to access »%s« shared to you by %s" : "Contrasinal para acceder »%s« compartido contigo por %s", + "Password to access »%s«" : "Contrasinal para acceder »%s«", "It is protected with the following password: %s" : "Está protexido co seguinte contrasinal: %s", - "Password to access »%s« shared with %s" : "Contrasinal para acceder a «%s» compartida con %s", - "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Ven de de compartir «%s» con %s. O recurso compartido xa foi enviado ao destinatario. Por mor das regras de seguridade definidas polo administrador de %s cada recurso compartido necesita ser protexido por un contrasinal e non está permitido que vostede envíe o contrasinal directamente ao destinatario. Polo tanto, necesita enviar manualmente o contrasinal ao destinatario.", + "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Compartiu »%s« con %s. O recurso a compartir foi xa enviado ó destinatario. Debido ás políticas de seguridade definidas polo administrador de %s cada recurso a compartir precisa ser protexido por contrasinal e non está permitido enviar o contrasinal directamente ó destinatario. Polo tanto precisa reenviar o contrasinal ó destinatario manualmente.", + "Password to access »%s« shared with %s" : "Contrasinal para acceder a »%s« compartido con %s", "This is the password: %s" : "Este é o contrasinal: %s", - "You can choose a different password at any time in the share dialog." : "Pode escoller un contrasinal diferente en calquera momento no diálogo de compartir.", - "Could not find share" : "Non foi posíbel atopar o recurso compartido", - "Share by mail" : "Compartido por correo", - "Allows users to share a personalized link to a file or folder by putting in an email address." : "Permite que os usuarios compartan unha ligazón personalizada ou un ficheiro ou cartafol enviándoo a un enderezo de correo.", + "You can choose a different password at any time in the share dialog." : "Pode elexir un contrasinal diferente en calquer momento no diálogo compartir.", + "Could not find share" : "Non puiden atopar o recurso a compartir", + "Share by mail" : "Compartir por correo", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Permite a usuarios compartir un enlace personalizado a un ficheiro ou carpeta indicando unha dirección de correo ", "Send password by mail" : "Enviar contrasinal por correo", - "Enforce password protection" : "Forzar a protección por contrasinal", - "Failed to send share by E-mail" : "Fallou o envío do recurso compartido por correo", - "%s shared »%s« with you on behalf of %s" : "%s compartiu «%s» con vostede no nome de %s", - "Failed to create the E-mail" : "Non foi posíbel crear o correo", - "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Ola!,\n\n%s compartiu «%s» con vostede no nome de %s.\n\n%s\n\n", - "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Ola!,\n\n%s compartiu «%s» con vostede.\n\n%s\n\n", - "Cheers!" : "Saúdos!", - "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "Ola!,<br><br>%s compartiu <a href=\"%s\">%s</a> con vostede no nome de %s.<br><br>", - "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "Ola!,<br><br>%s compartiu <a href=\"%s\">%s</a> con vostede.<br><br>" + "Enforce password protection" : "Aplicar protección por contrasinal", + "Failed to send share by E-mail" : "Fallou ó compartir por correo", + "%s shared »%s« with you on behalf of %s" : "%s compartiu »%s« contigo en representación de %s", + "Failed to create the E-mail" : "Fallo ó crear o correo", + "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Hola,\n\n%s compartiu »%s« contigo en representación de %s.\n\n%s\n\n", + "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Hola,\n\n%s compartiu »%s« contigo.\n\n%s\n\n", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "Hola, <br><br>%s compartiu <a href=\"%s\">%s</a> contigo en representación de %s. <br><br>", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "Hola, <br><br>%s compartiu <a href=\"%s\">%s</a>contigo, <br><br>" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/sharebymail/l10n/gl.json b/apps/sharebymail/l10n/gl.json index d378a2017e2..0e2e007d9ab 100644 --- a/apps/sharebymail/l10n/gl.json +++ b/apps/sharebymail/l10n/gl.json @@ -1,48 +1,47 @@ { "translations": { - "Shared with %1$s" : "Compartido con %1$s", + "Shared with %1$s" : "Compartido con %1$s ", "Shared with {email}" : "Compartido con {email}", - "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s", - "Shared with {email} by {actor}" : "Compartido con {email} por {actor}Compartido con {email} por {actor}", - "Password for mail share sent to %1$s" : "Enviouse un contrasinal para compartir por correo a %1$s", - "Password for mail share sent to {email}" : "Enviouse un contrasinal para compartir por correo a {email}", - "Password for mail share sent to you" : "Envióuselle un contrasinal para compartir por correo", + "Shared with %1$s by %2$s" : "Compartido con %1$spor %2$s", + "Shared with {email} by {actor}" : "Compartido con {email} por {actor}", + "Password for mail share sent to %1$s" : "Contrasinal para compartir por correo enviada a %1$s", + "Password for mail share sent to {email}" : "Contrasinal para compartir por correo enviada a {email}", + "Password for mail share sent to you" : "Contrasinal para compartir por correo enviada a tí mesmo", "You shared %1$s with %2$s by mail" : "Compartiu %1$s con %2$s por correo", "You shared {file} with {email} by mail" : "Compartiu {file} con {email} por correo", - "%3$s shared %1$s with %2$s by mail" : "%3$s compartiu %1$s con %2$s por correo", + "%3$s shared %1$s with %2$s by mail" : "%3$s compartido %1$scon %2$s por correo", "{actor} shared {file} with {email} by mail" : "{actor} compartiu {file} con {email} por correo", - "Password to access %1$s was sent to %2s" : "Envióuselle a %2s un contrasinal para acceder a %1$s", - "Password to access {file} was sent to {email}" : "Envióuselle a {email} un contrasinal para acceder a {file}", - "Password to access %1$s was sent to you" : "Envióuselle a vostede un correo para acceder a %1$s", - "Password to access {file} was sent to you" : "Envióuselle a vostede un correo para acceder a {file}", - "Sharing %s failed, this item is already shared with %s" : "Fallou a compartición de %s, este elemento xa está compartido con %s", - "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Non é posíbel enviarlle o contrasinal xerado automaticamente. Estabeleza un enderezo de correo correcto nos seus axustes persoais e ténteo de novo.", - "Failed to send share by email" : "Fallou o envío do recurso compartido por correo", - "%s shared »%s« with you" : "%s compartiu «%s» con vostede", - "%s shared »%s« with you." : "%s compartiu «%s» con vostede.", - "Click the button below to open it." : "Prema no botón de embaixo para abrilo.", - "Open »%s«" : "Abrir «%s»", + "Password to access %1$s was sent to %2s" : "Contrasinal para acceder a %1$s foi enviada a %2s", + "Password to access {file} was sent to {email}" : "Contrasinal para acceder a {file} foi enviada a {email}", + "Password to access %1$s was sent to you" : "Contrasinal para acceder a %1$s foi enviada a tí mesmo", + "Password to access {file} was sent to you" : "Contrasinal para acceder a {file} foi enviada a tí mesmo", + "Sharing %s failed, this item is already shared with %s" : "Compartir %s fallou, este obxecto xa está compartido con %s", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Non podemos enviarte o contrasinal auto-xenerado. Por favor indica unha dirección de correo válida nas túas preferencias persoais e proba de novo.", + "Failed to send share by email" : "Fallou ó envío para compartir por correo", + "%s shared »%s« with you" : "%s compartiu »%s« contigo", + "%s shared »%s« with you." : "%s compartiu »%s« contigo.", + "Click the button below to open it." : "Prema no botón máis abaixo para abrilo.", + "Open »%s«" : "Abrir »%s«", "%s via %s" : "%s vía %s", - "Password to access »%s« shared to you by %s" : "O contrasinal para acceder a «%s» foi compartido con vostede por %s", - "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartiu «%s» con vostede.\nDebería ter recibido un correo por separado cunha ligazón acceder.\n", - "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartiu «%s» con vostede. Debería ter recibido un correo por separado cunha ligazón acceder.", - "Password to access »%s«" : "Contrasinal para acceder a «%s»", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartiu »%s« contigo.\nDebes ter recibido xa un correo por separado cun enlace para acceder a él.\n", + "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartiu »%s« contigo. Debes ter recibido xa un correo por separado cun enlace para acceder a él.", + "Password to access »%s« shared to you by %s" : "Contrasinal para acceder »%s« compartido contigo por %s", + "Password to access »%s«" : "Contrasinal para acceder »%s«", "It is protected with the following password: %s" : "Está protexido co seguinte contrasinal: %s", - "Password to access »%s« shared with %s" : "Contrasinal para acceder a «%s» compartida con %s", - "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Ven de de compartir «%s» con %s. O recurso compartido xa foi enviado ao destinatario. Por mor das regras de seguridade definidas polo administrador de %s cada recurso compartido necesita ser protexido por un contrasinal e non está permitido que vostede envíe o contrasinal directamente ao destinatario. Polo tanto, necesita enviar manualmente o contrasinal ao destinatario.", + "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Compartiu »%s« con %s. O recurso a compartir foi xa enviado ó destinatario. Debido ás políticas de seguridade definidas polo administrador de %s cada recurso a compartir precisa ser protexido por contrasinal e non está permitido enviar o contrasinal directamente ó destinatario. Polo tanto precisa reenviar o contrasinal ó destinatario manualmente.", + "Password to access »%s« shared with %s" : "Contrasinal para acceder a »%s« compartido con %s", "This is the password: %s" : "Este é o contrasinal: %s", - "You can choose a different password at any time in the share dialog." : "Pode escoller un contrasinal diferente en calquera momento no diálogo de compartir.", - "Could not find share" : "Non foi posíbel atopar o recurso compartido", - "Share by mail" : "Compartido por correo", - "Allows users to share a personalized link to a file or folder by putting in an email address." : "Permite que os usuarios compartan unha ligazón personalizada ou un ficheiro ou cartafol enviándoo a un enderezo de correo.", + "You can choose a different password at any time in the share dialog." : "Pode elexir un contrasinal diferente en calquer momento no diálogo compartir.", + "Could not find share" : "Non puiden atopar o recurso a compartir", + "Share by mail" : "Compartir por correo", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Permite a usuarios compartir un enlace personalizado a un ficheiro ou carpeta indicando unha dirección de correo ", "Send password by mail" : "Enviar contrasinal por correo", - "Enforce password protection" : "Forzar a protección por contrasinal", - "Failed to send share by E-mail" : "Fallou o envío do recurso compartido por correo", - "%s shared »%s« with you on behalf of %s" : "%s compartiu «%s» con vostede no nome de %s", - "Failed to create the E-mail" : "Non foi posíbel crear o correo", - "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Ola!,\n\n%s compartiu «%s» con vostede no nome de %s.\n\n%s\n\n", - "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Ola!,\n\n%s compartiu «%s» con vostede.\n\n%s\n\n", - "Cheers!" : "Saúdos!", - "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "Ola!,<br><br>%s compartiu <a href=\"%s\">%s</a> con vostede no nome de %s.<br><br>", - "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "Ola!,<br><br>%s compartiu <a href=\"%s\">%s</a> con vostede.<br><br>" + "Enforce password protection" : "Aplicar protección por contrasinal", + "Failed to send share by E-mail" : "Fallou ó compartir por correo", + "%s shared »%s« with you on behalf of %s" : "%s compartiu »%s« contigo en representación de %s", + "Failed to create the E-mail" : "Fallo ó crear o correo", + "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Hola,\n\n%s compartiu »%s« contigo en representación de %s.\n\n%s\n\n", + "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Hola,\n\n%s compartiu »%s« contigo.\n\n%s\n\n", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "Hola, <br><br>%s compartiu <a href=\"%s\">%s</a> contigo en representación de %s. <br><br>", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "Hola, <br><br>%s compartiu <a href=\"%s\">%s</a>contigo, <br><br>" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/sharebymail/l10n/hu.js b/apps/sharebymail/l10n/hu.js index 42c44cce91a..fc68b5676b2 100644 --- a/apps/sharebymail/l10n/hu.js +++ b/apps/sharebymail/l10n/hu.js @@ -24,9 +24,12 @@ OC.L10N.register( "Click the button below to open it." : "Kattints a lenti gombra a megnyitásához", "Open »%s«" : "»%s« megnyitása", "%s via %s" : "%s ezen keresztül: %s", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s megosztotta ezt: »%s« veled.\nMár meg is kellett kapj egy e-mailt a hozzáférési linkkel.\n", + "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%smegosztotta ezt: »%s« veled. Már meg is kellett kapj egy e-mailt a hozzáférési linkkel.", "Password to access »%s« shared to you by %s" : "Jelszó ehhez: »%s« megosztva veled általa: %s", "Password to access »%s«" : "Jelszó »%s« eléréséhez", "It is protected with the following password: %s" : "A következő jelszóval védve: %s", + "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Épp megosztottad ezt: »%s« vele: %s. A megosztás már el is lett küldve a fogadónak. A%s rendszergazdája által meghatározott biztonsági szabályok miatt minden megosztást jelszóval kell védeni és a jelszót nem lehet közvetlenül elküldeni. Ezért a jelszót magadnak kell továbbítanod a fogadónak.", "Password to access »%s« shared with %s" : "Jelszó ehhez: »%s« megosztva vele: %s", "This is the password: %s" : "Ez a jelszó: %s", "You can choose a different password at any time in the share dialog." : "Bármikor választhatsz másik jelszót a megosztási ablakban.", diff --git a/apps/sharebymail/l10n/hu.json b/apps/sharebymail/l10n/hu.json index 41c6eaf5ba1..3c2227c842f 100644 --- a/apps/sharebymail/l10n/hu.json +++ b/apps/sharebymail/l10n/hu.json @@ -22,9 +22,12 @@ "Click the button below to open it." : "Kattints a lenti gombra a megnyitásához", "Open »%s«" : "»%s« megnyitása", "%s via %s" : "%s ezen keresztül: %s", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s megosztotta ezt: »%s« veled.\nMár meg is kellett kapj egy e-mailt a hozzáférési linkkel.\n", + "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%smegosztotta ezt: »%s« veled. Már meg is kellett kapj egy e-mailt a hozzáférési linkkel.", "Password to access »%s« shared to you by %s" : "Jelszó ehhez: »%s« megosztva veled általa: %s", "Password to access »%s«" : "Jelszó »%s« eléréséhez", "It is protected with the following password: %s" : "A következő jelszóval védve: %s", + "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Épp megosztottad ezt: »%s« vele: %s. A megosztás már el is lett küldve a fogadónak. A%s rendszergazdája által meghatározott biztonsági szabályok miatt minden megosztást jelszóval kell védeni és a jelszót nem lehet közvetlenül elküldeni. Ezért a jelszót magadnak kell továbbítanod a fogadónak.", "Password to access »%s« shared with %s" : "Jelszó ehhez: »%s« megosztva vele: %s", "This is the password: %s" : "Ez a jelszó: %s", "You can choose a different password at any time in the share dialog." : "Bármikor választhatsz másik jelszót a megosztási ablakban.", diff --git a/apps/sharebymail/l10n/nl.js b/apps/sharebymail/l10n/nl.js index fadb4d8e29e..498e5eca913 100644 --- a/apps/sharebymail/l10n/nl.js +++ b/apps/sharebymail/l10n/nl.js @@ -37,7 +37,7 @@ OC.L10N.register( "Share by mail" : "Gedeeld per email", "Allows users to share a personalized link to a file or folder by putting in an email address." : "Staat gebruikers toe om een gepersonaliseerde link of map te delen door een emailadres in te voegen.", "Send password by mail" : "Wachtwoord per email verzenden", - "Enforce password protection" : "Afdwingenwachtwoordbeveiliging", + "Enforce password protection" : "Afdwingen wachtwoord beveiliging", "Failed to send share by E-mail" : "delen per email is mislukt", "%s shared »%s« with you on behalf of %s" : "%s deelde »%s« met jou in naam van %s", "Failed to create the E-mail" : "Maken van de mail is mislukt", diff --git a/apps/sharebymail/l10n/nl.json b/apps/sharebymail/l10n/nl.json index b88e61c6210..eaac09dc208 100644 --- a/apps/sharebymail/l10n/nl.json +++ b/apps/sharebymail/l10n/nl.json @@ -35,7 +35,7 @@ "Share by mail" : "Gedeeld per email", "Allows users to share a personalized link to a file or folder by putting in an email address." : "Staat gebruikers toe om een gepersonaliseerde link of map te delen door een emailadres in te voegen.", "Send password by mail" : "Wachtwoord per email verzenden", - "Enforce password protection" : "Afdwingenwachtwoordbeveiliging", + "Enforce password protection" : "Afdwingen wachtwoord beveiliging", "Failed to send share by E-mail" : "delen per email is mislukt", "%s shared »%s« with you on behalf of %s" : "%s deelde »%s« met jou in naam van %s", "Failed to create the E-mail" : "Maken van de mail is mislukt", diff --git a/apps/sharebymail/l10n/sr.js b/apps/sharebymail/l10n/sr.js new file mode 100644 index 00000000000..f2af39e921d --- /dev/null +++ b/apps/sharebymail/l10n/sr.js @@ -0,0 +1,50 @@ +OC.L10N.register( + "sharebymail", + { + "Shared with %1$s" : "Подељено са %1$s", + "Shared with {email}" : "Подељено са {email}", + "Shared with %1$s by %2$s" : "%2$s поделио са %1$s", + "Shared with {email} by {actor}" : "{actor} поделио са {email}", + "Password for mail share sent to %1$s" : "Лозинка за дељење е-поштом послата на %1$s", + "Password for mail share sent to {email}" : "Лозинка за дељење е-поштом послата на {email}", + "Password for mail share sent to you" : "Лозинка за дељење е-поштом послата Вама", + "You shared %1$s with %2$s by mail" : "Поделили сте %1$s са %2$s е-поштом", + "You shared {file} with {email} by mail" : "Поделили сте {file} са {email} е-поштом", + "%3$s shared %1$s with %2$s by mail" : "%3$s је поделио %1$s са %2$s е-поштом", + "{actor} shared {file} with {email} by mail" : "{actor} је поделио {file} са {email} е-поштом", + "Password to access %1$s was sent to %2s" : "Лозинка за приступ %1$s је послата на %2s", + "Password to access {file} was sent to {email}" : "Лозинка за приступ {file} је послата на {email}", + "Password to access %1$s was sent to you" : "Лозинка за приступ %1$sВам је послата", + "Password to access {file} was sent to you" : "Лозинка за приступ {file} Вам је послата ", + "Sharing %s failed, this item is already shared with %s" : "Дељење %s није успело, ова ставка је већ подељена са %s", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Не можемо Вам послати ауто-генерисану лозинку. Подесите исправну адресу е-поште у личним поставкама и покушајте поново.", + "Failed to send share by email" : "Грешка у слању дељења е-поштом", + "%s shared »%s« with you" : "%s је поделио »%s« са Вама", + "%s shared »%s« with you." : "%s је поделио »%s« са Вама.", + "Click the button below to open it." : "Кликните на дугме испод да га отворите.", + "Open »%s«" : "Отвори »%s«", + "%s via %s" : "%s преко %s", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s је поделио »%s« са Вама.\nТреба да сте до сад добили посебни мејл са везом како да му приступите.\n", + "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s је поделио »%s« са Вама. Треба да сте до сад добили посебни мејл са везом како да му приступите.", + "Password to access »%s« shared to you by %s" : "%s Вам је поделио лозинку за приступ »%s«", + "Password to access »%s«" : "Лозинка за приступ »%s«", + "It is protected with the following password: %s" : "Заштићена је следећом лозинком: %s", + "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Управо сте поделили »%s« са корисником %s. Дељење је већ послато примаоцу. Због безбедоносне политике коју је дефинисао администратор инстанце %s , свако дељење мора бити заштићено лозинком и није дозвољено да пошаљете лозинку директно кориснику. Због тога морате ручно послати лозинку примаоцу.", + "Password to access »%s« shared with %s" : "Лозинка за приступ »%s« подељена са корисником %s", + "This is the password: %s" : "Ово је лозинка: %s", + "You can choose a different password at any time in the share dialog." : "Можете да одаберете другу лозинку кад год желите у дијалогу за дељење.", + "Could not find share" : "Не могу да пронађем дељење", + "Share by mail" : "Подели е-поштом", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Дозвољава корисницима да поделе персонализовану везу до фајла или фасцикле преко е-поште.", + "Send password by mail" : "Пошаљи лозинку е-поштом", + "Enforce password protection" : "Захтевај заштиту лозинком", + "Failed to send share by E-mail" : "Грешка у слању дељења е-поштом", + "%s shared »%s« with you on behalf of %s" : "%s је поделио »%s« са Вама у име корисника %s", + "Failed to create the E-mail" : "Грешка при креирању е-поште", + "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Поздрав,\n\n%s је поделио »%s« са Вама у име корисника %s.\n\n%s\n", + "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Поздрав,\n\n%s је поделио »%s« са Вама.\n\n%s\n", + "Cheers!" : "Здраво!", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "Поздрав, <br><br>%s је поделио <a href=\"%s\">%s</a> са Вама у име корисника %s.<br><br>", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "Поздрав,<br><br>%sје поделио <a href=\"%s\">%s</a>са Вама.<br><br>" +}, +"nplurals=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/sharebymail/l10n/sr.json b/apps/sharebymail/l10n/sr.json new file mode 100644 index 00000000000..b074abe4253 --- /dev/null +++ b/apps/sharebymail/l10n/sr.json @@ -0,0 +1,48 @@ +{ "translations": { + "Shared with %1$s" : "Подељено са %1$s", + "Shared with {email}" : "Подељено са {email}", + "Shared with %1$s by %2$s" : "%2$s поделио са %1$s", + "Shared with {email} by {actor}" : "{actor} поделио са {email}", + "Password for mail share sent to %1$s" : "Лозинка за дељење е-поштом послата на %1$s", + "Password for mail share sent to {email}" : "Лозинка за дељење е-поштом послата на {email}", + "Password for mail share sent to you" : "Лозинка за дељење е-поштом послата Вама", + "You shared %1$s with %2$s by mail" : "Поделили сте %1$s са %2$s е-поштом", + "You shared {file} with {email} by mail" : "Поделили сте {file} са {email} е-поштом", + "%3$s shared %1$s with %2$s by mail" : "%3$s је поделио %1$s са %2$s е-поштом", + "{actor} shared {file} with {email} by mail" : "{actor} је поделио {file} са {email} е-поштом", + "Password to access %1$s was sent to %2s" : "Лозинка за приступ %1$s је послата на %2s", + "Password to access {file} was sent to {email}" : "Лозинка за приступ {file} је послата на {email}", + "Password to access %1$s was sent to you" : "Лозинка за приступ %1$sВам је послата", + "Password to access {file} was sent to you" : "Лозинка за приступ {file} Вам је послата ", + "Sharing %s failed, this item is already shared with %s" : "Дељење %s није успело, ова ставка је већ подељена са %s", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Не можемо Вам послати ауто-генерисану лозинку. Подесите исправну адресу е-поште у личним поставкама и покушајте поново.", + "Failed to send share by email" : "Грешка у слању дељења е-поштом", + "%s shared »%s« with you" : "%s је поделио »%s« са Вама", + "%s shared »%s« with you." : "%s је поделио »%s« са Вама.", + "Click the button below to open it." : "Кликните на дугме испод да га отворите.", + "Open »%s«" : "Отвори »%s«", + "%s via %s" : "%s преко %s", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s је поделио »%s« са Вама.\nТреба да сте до сад добили посебни мејл са везом како да му приступите.\n", + "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s је поделио »%s« са Вама. Треба да сте до сад добили посебни мејл са везом како да му приступите.", + "Password to access »%s« shared to you by %s" : "%s Вам је поделио лозинку за приступ »%s«", + "Password to access »%s«" : "Лозинка за приступ »%s«", + "It is protected with the following password: %s" : "Заштићена је следећом лозинком: %s", + "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Управо сте поделили »%s« са корисником %s. Дељење је већ послато примаоцу. Због безбедоносне политике коју је дефинисао администратор инстанце %s , свако дељење мора бити заштићено лозинком и није дозвољено да пошаљете лозинку директно кориснику. Због тога морате ручно послати лозинку примаоцу.", + "Password to access »%s« shared with %s" : "Лозинка за приступ »%s« подељена са корисником %s", + "This is the password: %s" : "Ово је лозинка: %s", + "You can choose a different password at any time in the share dialog." : "Можете да одаберете другу лозинку кад год желите у дијалогу за дељење.", + "Could not find share" : "Не могу да пронађем дељење", + "Share by mail" : "Подели е-поштом", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Дозвољава корисницима да поделе персонализовану везу до фајла или фасцикле преко е-поште.", + "Send password by mail" : "Пошаљи лозинку е-поштом", + "Enforce password protection" : "Захтевај заштиту лозинком", + "Failed to send share by E-mail" : "Грешка у слању дељења е-поштом", + "%s shared »%s« with you on behalf of %s" : "%s је поделио »%s« са Вама у име корисника %s", + "Failed to create the E-mail" : "Грешка при креирању е-поште", + "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Поздрав,\n\n%s је поделио »%s« са Вама у име корисника %s.\n\n%s\n", + "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Поздрав,\n\n%s је поделио »%s« са Вама.\n\n%s\n", + "Cheers!" : "Здраво!", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "Поздрав, <br><br>%s је поделио <a href=\"%s\">%s</a> са Вама у име корисника %s.<br><br>", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "Поздрав,<br><br>%sје поделио <a href=\"%s\">%s</a>са Вама.<br><br>" +},"pluralForm" :"nplurals=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/sharebymail/tests/ShareByMailProviderTest.php b/apps/sharebymail/tests/ShareByMailProviderTest.php index 68a645ec0e6..95d746cfb46 100644 --- a/apps/sharebymail/tests/ShareByMailProviderTest.php +++ b/apps/sharebymail/tests/ShareByMailProviderTest.php @@ -103,18 +103,18 @@ class ShareByMailProviderTest extends TestCase { $this->shareManager = \OC::$server->getShareManager(); $this->connection = \OC::$server->getDatabaseConnection(); - $this->l = $this->getMockBuilder('OCP\IL10N')->getMock(); + $this->l = $this->getMockBuilder(IL10N::class)->getMock(); $this->l->method('t') ->will($this->returnCallback(function($text, $parameters = []) { return vsprintf($text, $parameters); })); - $this->logger = $this->getMockBuilder('OCP\ILogger')->getMock(); + $this->logger = $this->getMockBuilder(ILogger::class)->getMock(); $this->rootFolder = $this->getMockBuilder('OCP\Files\IRootFolder')->getMock(); - $this->userManager = $this->getMockBuilder('OCP\IUserManager')->getMock(); + $this->userManager = $this->getMockBuilder(IUserManager::class)->getMock(); $this->secureRandom = $this->getMockBuilder('\OCP\Security\ISecureRandom')->getMock(); $this->mailer = $this->getMockBuilder('\OCP\Mail\IMailer')->getMock(); - $this->urlGenerator = $this->getMockBuilder('\OCP\IUrlGenerator')->getMock(); - $this->share = $this->getMockBuilder('\OCP\Share\IShare')->getMock(); + $this->urlGenerator = $this->getMockBuilder(IURLGenerator::class)->getMock(); + $this->share = $this->getMockBuilder(IShare::class)->getMock(); $this->activityManager = $this->getMockBuilder('OCP\Activity\IManager')->getMock(); $this->settingsManager = $this->getMockBuilder(SettingsManager::class)->disableOriginalConstructor()->getMock(); $this->defaults = $this->createMock(Defaults::class); @@ -181,7 +181,7 @@ class ShareByMailProviderTest extends TestCase { } public function testCreate() { - $share = $this->getMockBuilder('\OCP\Share\IShare')->getMock(); + $share = $this->getMockBuilder(IShare::class)->getMock(); $share->expects($this->any())->method('getSharedWith')->willReturn('user1'); $node = $this->getMockBuilder(File::class)->getMock(); diff --git a/apps/systemtags/composer/autoload.php b/apps/systemtags/composer/autoload.php new file mode 100644 index 00000000000..30f4cd27d40 --- /dev/null +++ b/apps/systemtags/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer/autoload_real.php'; + +return ComposerAutoloaderInitSystemTags::getLoader(); diff --git a/apps/systemtags/composer/composer.json b/apps/systemtags/composer/composer.json new file mode 100644 index 00000000000..06b4e7f1df4 --- /dev/null +++ b/apps/systemtags/composer/composer.json @@ -0,0 +1,13 @@ +{ + "config" : { + "vendor-dir": ".", + "optimize-autoloader": true, + "authorative-autoloader": true, + "autoloader-suffix": "SystemTags" + }, + "autoload" : { + "psr-4": { + "OCA\\SystemTags\\": "../lib/" + } + } +} diff --git a/apps/systemtags/composer/composer/ClassLoader.php b/apps/systemtags/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..2c72175e772 --- /dev/null +++ b/apps/systemtags/composer/composer/ClassLoader.php @@ -0,0 +1,445 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * 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 array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + foreach ($this->prefixDirsPsr4[$search] as $dir) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/apps/systemtags/composer/composer/LICENSE b/apps/systemtags/composer/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/apps/systemtags/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/systemtags/composer/composer/autoload_classmap.php b/apps/systemtags/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..9bf1f0cdaa4 --- /dev/null +++ b/apps/systemtags/composer/composer/autoload_classmap.php @@ -0,0 +1,14 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\SystemTags\\Activity\\Listener' => $baseDir . '/../lib/Activity/Listener.php', + 'OCA\\SystemTags\\Activity\\Provider' => $baseDir . '/../lib/Activity/Provider.php', + 'OCA\\SystemTags\\Activity\\Setting' => $baseDir . '/../lib/Activity/Setting.php', + 'OCA\\SystemTags\\Controller\\LastUsedController' => $baseDir . '/../lib/Controller/LastUsedController.php', + 'OCA\\SystemTags\\Settings\\Admin' => $baseDir . '/../lib/Settings/Admin.php', +); diff --git a/apps/systemtags/composer/composer/autoload_namespaces.php b/apps/systemtags/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..71c9e91858d --- /dev/null +++ b/apps/systemtags/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( +); diff --git a/apps/systemtags/composer/composer/autoload_psr4.php b/apps/systemtags/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..cec8aaf3650 --- /dev/null +++ b/apps/systemtags/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\SystemTags\\' => array($baseDir . '/../lib'), +); diff --git a/apps/systemtags/composer/composer/autoload_real.php b/apps/systemtags/composer/composer/autoload_real.php new file mode 100644 index 00000000000..a085cdeb46d --- /dev/null +++ b/apps/systemtags/composer/composer/autoload_real.php @@ -0,0 +1,52 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInitSystemTags +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInitSystemTags', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInitSystemTags', 'loadClassLoader')); + + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitSystemTags::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/apps/systemtags/composer/composer/autoload_static.php b/apps/systemtags/composer/composer/autoload_static.php new file mode 100644 index 00000000000..40615430f93 --- /dev/null +++ b/apps/systemtags/composer/composer/autoload_static.php @@ -0,0 +1,40 @@ +<?php + +// autoload_static.php @generated by Composer + +namespace Composer\Autoload; + +class ComposerStaticInitSystemTags +{ + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'OCA\\SystemTags\\' => 15, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\SystemTags\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'OCA\\SystemTags\\Activity\\Listener' => __DIR__ . '/..' . '/../lib/Activity/Listener.php', + 'OCA\\SystemTags\\Activity\\Provider' => __DIR__ . '/..' . '/../lib/Activity/Provider.php', + 'OCA\\SystemTags\\Activity\\Setting' => __DIR__ . '/..' . '/../lib/Activity/Setting.php', + 'OCA\\SystemTags\\Controller\\LastUsedController' => __DIR__ . '/..' . '/../lib/Controller/LastUsedController.php', + 'OCA\\SystemTags\\Settings\\Admin' => __DIR__ . '/..' . '/../lib/Settings/Admin.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitSystemTags::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitSystemTags::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitSystemTags::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/systemtags/js/systemtagsfilelist.js b/apps/systemtags/js/systemtagsfilelist.js index a40eb548d9f..ad6bf7dd78d 100644 --- a/apps/systemtags/js/systemtagsfilelist.js +++ b/apps/systemtags/js/systemtagsfilelist.js @@ -234,6 +234,9 @@ }, reload: function() { + // there is only root + this._setCurrentDir('/', false); + if (!this._systemTagIds.length) { // don't reload this.updateEmptyContent(); diff --git a/apps/systemtags/l10n/es_CO.js b/apps/systemtags/l10n/es_CO.js new file mode 100644 index 00000000000..77f45fe1268 --- /dev/null +++ b/apps/systemtags/l10n/es_CO.js @@ -0,0 +1,58 @@ +OC.L10N.register( + "systemtags", + { + "Tags" : "Etiquetas", + "Update" : "Actualizar", + "Create" : "Crear", + "Select tag…" : "Seleccionar etiqueta...", + "Tagged files" : "Archivos etiquetados", + "Select tags to filter by" : "Selecciona las etiquetas del filtro", + "No tags found" : "No se encontraron etiquetas", + "Please select tags to filter by" : "Por favor selecciona las etiquetas del filtro", + "No files found for the selected tags" : "No se encontraron archivos para las etiquetas seleccionadas", + "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada", + "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada", + "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s", + "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}", + "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada", + "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}", + "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s", + "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}", + "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s", + "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}", + "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s", + "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}", + "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s", + "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}", + "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s", + "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}", + "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s", + "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}", + "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s", + "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}", + "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s", + "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}", + "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s", + "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}", + "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s", + "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}", + "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s", + "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}", + "%s (restricted)" : "%s (restringido)", + "%s (invisible)" : "%s (invisible) ", + "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas", + "Collaborative tags" : "Etiquetas colaborativas", + "Create and edit collaborative tags. These tags affect all users." : "Crear y editar etiquetas colaborativas. Estas etiquetas afectan a todos los usuarios. ", + "Select tag …" : "Seleccionar etiqueta ...", + "Name" : "Nombre", + "Delete" : "Borrar", + "Public" : "Público", + "Restricted" : "Restringido", + "Invisible" : "Invisible", + "Reset" : "Restaurar", + "No files in here" : "No hay archivos aquí", + "No entries found in this folder" : "No se encontraron elementos en esta carpeta", + "Size" : "Tamaño", + "Modified" : "Modificado" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/systemtags/l10n/es_CO.json b/apps/systemtags/l10n/es_CO.json new file mode 100644 index 00000000000..9a8e4adf3f8 --- /dev/null +++ b/apps/systemtags/l10n/es_CO.json @@ -0,0 +1,56 @@ +{ "translations": { + "Tags" : "Etiquetas", + "Update" : "Actualizar", + "Create" : "Crear", + "Select tag…" : "Seleccionar etiqueta...", + "Tagged files" : "Archivos etiquetados", + "Select tags to filter by" : "Selecciona las etiquetas del filtro", + "No tags found" : "No se encontraron etiquetas", + "Please select tags to filter by" : "Por favor selecciona las etiquetas del filtro", + "No files found for the selected tags" : "No se encontraron archivos para las etiquetas seleccionadas", + "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada", + "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada", + "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s", + "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}", + "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada", + "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}", + "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s", + "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}", + "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s", + "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}", + "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s", + "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}", + "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s", + "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}", + "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s", + "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}", + "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s", + "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}", + "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s", + "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}", + "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s", + "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}", + "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s", + "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}", + "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s", + "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}", + "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s", + "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}", + "%s (restricted)" : "%s (restringido)", + "%s (invisible)" : "%s (invisible) ", + "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas", + "Collaborative tags" : "Etiquetas colaborativas", + "Create and edit collaborative tags. These tags affect all users." : "Crear y editar etiquetas colaborativas. Estas etiquetas afectan a todos los usuarios. ", + "Select tag …" : "Seleccionar etiqueta ...", + "Name" : "Nombre", + "Delete" : "Borrar", + "Public" : "Público", + "Restricted" : "Restringido", + "Invisible" : "Invisible", + "Reset" : "Restaurar", + "No files in here" : "No hay archivos aquí", + "No entries found in this folder" : "No se encontraron elementos en esta carpeta", + "Size" : "Tamaño", + "Modified" : "Modificado" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/testing/composer/autoload.php b/apps/testing/composer/autoload.php new file mode 100644 index 00000000000..dc2a7034ffa --- /dev/null +++ b/apps/testing/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer/autoload_real.php'; + +return ComposerAutoloaderInitTesting::getLoader(); diff --git a/apps/testing/composer/composer.json b/apps/testing/composer/composer.json new file mode 100644 index 00000000000..4cee66ac094 --- /dev/null +++ b/apps/testing/composer/composer.json @@ -0,0 +1,13 @@ +{ + "config" : { + "vendor-dir": ".", + "optimize-autoloader": true, + "authorative-autoloader": true, + "autoloader-suffix": "Testing" + }, + "autoload" : { + "psr-4": { + "OCA\\Testing\\": "../lib/" + } + } +} diff --git a/apps/testing/composer/composer/ClassLoader.php b/apps/testing/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..2c72175e772 --- /dev/null +++ b/apps/testing/composer/composer/ClassLoader.php @@ -0,0 +1,445 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * 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 array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + foreach ($this->prefixDirsPsr4[$search] as $dir) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/apps/testing/composer/composer/LICENSE b/apps/testing/composer/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/apps/testing/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/testing/composer/composer/autoload_classmap.php b/apps/testing/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..ce8f4948cad --- /dev/null +++ b/apps/testing/composer/composer/autoload_classmap.php @@ -0,0 +1,15 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\Testing\\AlternativeHomeUserBackend' => $baseDir . '/../lib/AlternativeHomeUserBackend.php', + 'OCA\\Testing\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php', + 'OCA\\Testing\\Controller\\ConfigController' => $baseDir . '/../lib/Controller/ConfigController.php', + 'OCA\\Testing\\Controller\\LockingController' => $baseDir . '/../lib/Controller/LockingController.php', + 'OCA\\Testing\\Controller\\RateLimitTestController' => $baseDir . '/../lib/Controller/RateLimitTestController.php', + 'OCA\\Testing\\Locking\\FakeDBLockingProvider' => $baseDir . '/../lib/Locking/FakeDBLockingProvider.php', +); diff --git a/apps/testing/composer/composer/autoload_namespaces.php b/apps/testing/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..71c9e91858d --- /dev/null +++ b/apps/testing/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( +); diff --git a/apps/testing/composer/composer/autoload_psr4.php b/apps/testing/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..4ac8da6cc69 --- /dev/null +++ b/apps/testing/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\Testing\\' => array($baseDir . '/../lib'), +); diff --git a/apps/testing/composer/composer/autoload_real.php b/apps/testing/composer/composer/autoload_real.php new file mode 100644 index 00000000000..71369dc8a05 --- /dev/null +++ b/apps/testing/composer/composer/autoload_real.php @@ -0,0 +1,52 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInitTesting +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInitTesting', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInitTesting', 'loadClassLoader')); + + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitTesting::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/apps/testing/composer/composer/autoload_static.php b/apps/testing/composer/composer/autoload_static.php new file mode 100644 index 00000000000..0a6c8665f4e --- /dev/null +++ b/apps/testing/composer/composer/autoload_static.php @@ -0,0 +1,41 @@ +<?php + +// autoload_static.php @generated by Composer + +namespace Composer\Autoload; + +class ComposerStaticInitTesting +{ + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'OCA\\Testing\\' => 12, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\Testing\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'OCA\\Testing\\AlternativeHomeUserBackend' => __DIR__ . '/..' . '/../lib/AlternativeHomeUserBackend.php', + 'OCA\\Testing\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php', + 'OCA\\Testing\\Controller\\ConfigController' => __DIR__ . '/..' . '/../lib/Controller/ConfigController.php', + 'OCA\\Testing\\Controller\\LockingController' => __DIR__ . '/..' . '/../lib/Controller/LockingController.php', + 'OCA\\Testing\\Controller\\RateLimitTestController' => __DIR__ . '/..' . '/../lib/Controller/RateLimitTestController.php', + 'OCA\\Testing\\Locking\\FakeDBLockingProvider' => __DIR__ . '/..' . '/../lib/Locking/FakeDBLockingProvider.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitTesting::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitTesting::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitTesting::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/theming/l10n/da.js b/apps/theming/l10n/da.js index 120dab0521a..14e7bf8b0bd 100644 --- a/apps/theming/l10n/da.js +++ b/apps/theming/l10n/da.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "Webadressen er for lang", "The given slogan is too long" : "Sloganet er for langt", "The given color is invalid" : "Farven er ikke gyldig", + "There is no error, the file uploaded with success" : "Der skete ingen fejl, filen blev succesfuldt uploadet", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Den uploadede fil overstiger upload_max_filesize direktivet i php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Den uploadede fil overstiger MAX_FILE_SIZE indstilingen, som specificeret i HTML formularen", + "The uploaded file was only partially uploaded" : "Filen blev kun delvist uploadet.", + "No file was uploaded" : "Ingen fil uploadet", + "Missing a temporary folder" : "Manglende midlertidig mappe.", + "Failed to write file to disk." : "Fejl ved skrivning af fil til disk.", + "A PHP extension stopped the file upload." : "En PHP-udvidelse stoppede file uploaden.", "No file uploaded" : "Ingen fil uploadet", "Unsupported image type" : "Ikke-understøttet billede format", "You are already using a custom theme" : "Du bruger allerede et brugerdefineret tema", diff --git a/apps/theming/l10n/da.json b/apps/theming/l10n/da.json index 8403820fab2..8c2cac7b07e 100644 --- a/apps/theming/l10n/da.json +++ b/apps/theming/l10n/da.json @@ -7,6 +7,14 @@ "The given web address is too long" : "Webadressen er for lang", "The given slogan is too long" : "Sloganet er for langt", "The given color is invalid" : "Farven er ikke gyldig", + "There is no error, the file uploaded with success" : "Der skete ingen fejl, filen blev succesfuldt uploadet", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Den uploadede fil overstiger upload_max_filesize direktivet i php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Den uploadede fil overstiger MAX_FILE_SIZE indstilingen, som specificeret i HTML formularen", + "The uploaded file was only partially uploaded" : "Filen blev kun delvist uploadet.", + "No file was uploaded" : "Ingen fil uploadet", + "Missing a temporary folder" : "Manglende midlertidig mappe.", + "Failed to write file to disk." : "Fejl ved skrivning af fil til disk.", + "A PHP extension stopped the file upload." : "En PHP-udvidelse stoppede file uploaden.", "No file uploaded" : "Ingen fil uploadet", "Unsupported image type" : "Ikke-understøttet billede format", "You are already using a custom theme" : "Du bruger allerede et brugerdefineret tema", diff --git a/apps/theming/l10n/en_GB.js b/apps/theming/l10n/en_GB.js index 8d18b1ff95c..768cf51aba5 100644 --- a/apps/theming/l10n/en_GB.js +++ b/apps/theming/l10n/en_GB.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "The given web address is too long", "The given slogan is too long" : "The given slogan is too long", "The given color is invalid" : "The given colour is invalid", + "There is no error, the file uploaded with success" : "There is no error, the file uploaded with success", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "The uploaded file exceeds the upload_max_filesize directive in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form", + "The uploaded file was only partially uploaded" : "The uploaded file was only partially uploaded", + "No file was uploaded" : "No file was uploaded", + "Missing a temporary folder" : "Missing a temporary folder", + "Failed to write file to disk." : "Failed to write file to disk.", + "A PHP extension stopped the file upload." : "A PHP extension stopped the file upload.", "No file uploaded" : "No file uploaded", "Unsupported image type" : "Unsupported image type", "You are already using a custom theme" : "You are already using a custom theme", diff --git a/apps/theming/l10n/en_GB.json b/apps/theming/l10n/en_GB.json index ace85849a36..cd6f2d72ab0 100644 --- a/apps/theming/l10n/en_GB.json +++ b/apps/theming/l10n/en_GB.json @@ -7,6 +7,14 @@ "The given web address is too long" : "The given web address is too long", "The given slogan is too long" : "The given slogan is too long", "The given color is invalid" : "The given colour is invalid", + "There is no error, the file uploaded with success" : "There is no error, the file uploaded with success", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "The uploaded file exceeds the upload_max_filesize directive in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form", + "The uploaded file was only partially uploaded" : "The uploaded file was only partially uploaded", + "No file was uploaded" : "No file was uploaded", + "Missing a temporary folder" : "Missing a temporary folder", + "Failed to write file to disk." : "Failed to write file to disk.", + "A PHP extension stopped the file upload." : "A PHP extension stopped the file upload.", "No file uploaded" : "No file uploaded", "Unsupported image type" : "Unsupported image type", "You are already using a custom theme" : "You are already using a custom theme", diff --git a/apps/theming/l10n/es.js b/apps/theming/l10n/es.js index dbcaed2cfe4..e9a7e3efb37 100644 --- a/apps/theming/l10n/es.js +++ b/apps/theming/l10n/es.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "La dirección provista es muy larga", "The given slogan is too long" : "El eslogan provisto es muy largo", "The given color is invalid" : "El color provisto es inválido", + "There is no error, the file uploaded with success" : "No ha habido errores, el archivo ha subido satisfactoriamente", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo para subir excede la directiva upload_max_filesize en php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo para subir excede la directiva MAX_FILE_SIZE que se especifió en el formulario HTML", + "The uploaded file was only partially uploaded" : "El archivo para subir ha sido solo parcialmente subido", + "No file was uploaded" : "No se ha subido ningún archivo", + "Missing a temporary folder" : "Falta una carpeta temporal", + "Failed to write file to disk." : "Fallo al escribir el archivo al disco.", + "A PHP extension stopped the file upload." : "Una extensión de PHP ha detenido la subida del archivo.", "No file uploaded" : "No se ha subido archivo", "Unsupported image type" : "Tipo de imagen no soportado", "You are already using a custom theme" : "Usted ya usa un tema personalizado", diff --git a/apps/theming/l10n/es.json b/apps/theming/l10n/es.json index 0c183dc78e5..32a2cfca9cb 100644 --- a/apps/theming/l10n/es.json +++ b/apps/theming/l10n/es.json @@ -7,6 +7,14 @@ "The given web address is too long" : "La dirección provista es muy larga", "The given slogan is too long" : "El eslogan provisto es muy largo", "The given color is invalid" : "El color provisto es inválido", + "There is no error, the file uploaded with success" : "No ha habido errores, el archivo ha subido satisfactoriamente", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo para subir excede la directiva upload_max_filesize en php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo para subir excede la directiva MAX_FILE_SIZE que se especifió en el formulario HTML", + "The uploaded file was only partially uploaded" : "El archivo para subir ha sido solo parcialmente subido", + "No file was uploaded" : "No se ha subido ningún archivo", + "Missing a temporary folder" : "Falta una carpeta temporal", + "Failed to write file to disk." : "Fallo al escribir el archivo al disco.", + "A PHP extension stopped the file upload." : "Una extensión de PHP ha detenido la subida del archivo.", "No file uploaded" : "No se ha subido archivo", "Unsupported image type" : "Tipo de imagen no soportado", "You are already using a custom theme" : "Usted ya usa un tema personalizado", diff --git a/apps/theming/l10n/es_CO.js b/apps/theming/l10n/es_CO.js new file mode 100644 index 00000000000..594e5b9beed --- /dev/null +++ b/apps/theming/l10n/es_CO.js @@ -0,0 +1,38 @@ +OC.L10N.register( + "theming", + { + "Loading preview…" : "Cargando vista previa...", + "Saved" : "Guardado", + "Admin" : "Administración", + "a safe home for all your data" : "un lugar seguro para todos tus datos", + "The given name is too long" : "El nombre dado es demasiado largo", + "The given web address is too long" : "La dirección web dada es demasiado larga", + "The given slogan is too long" : "El lema dado es demasiado largo", + "The given color is invalid" : "El color dado es inválido", + "There is no error, the file uploaded with success" : "No hay errores, el archivo se cargó exitosamente", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML", + "No file was uploaded" : "No se cargó el archivo", + "Missing a temporary folder" : "Falta una carpeta temporal", + "Failed to write file to disk." : "Se presentó una falla al escribir el archivo en el disco. ", + "A PHP extension stopped the file upload." : "Una extensión de PHP detuvo la carga del archivo. ", + "No file uploaded" : "No hay archivos cargados", + "Unsupported image type" : "Tipo de imagen no soportado", + "You are already using a custom theme" : "Ya estás usando un tema personalizado", + "Theming" : "Tematizar", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ", + "Name" : "Nombre", + "Reset to default" : "Restablecer al predeterminado", + "Web address" : "Dirección web", + "Web address https://…" : "Dirección web https://...", + "Slogan" : "Lema", + "Color" : "Color", + "Logo" : "Logotipo", + "Upload new logo" : "Cargar nuevo logotipo", + "Login image" : "Imágen de inicio de sesión", + "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", + "Remove background image" : "Eliminar imagen de fondo", + "reset to default" : "restaurar a predeterminado", + "Log in image" : "Imagen de inicio de sesión" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/theming/l10n/es_CO.json b/apps/theming/l10n/es_CO.json new file mode 100644 index 00000000000..d6db2de8184 --- /dev/null +++ b/apps/theming/l10n/es_CO.json @@ -0,0 +1,36 @@ +{ "translations": { + "Loading preview…" : "Cargando vista previa...", + "Saved" : "Guardado", + "Admin" : "Administración", + "a safe home for all your data" : "un lugar seguro para todos tus datos", + "The given name is too long" : "El nombre dado es demasiado largo", + "The given web address is too long" : "La dirección web dada es demasiado larga", + "The given slogan is too long" : "El lema dado es demasiado largo", + "The given color is invalid" : "El color dado es inválido", + "There is no error, the file uploaded with success" : "No hay errores, el archivo se cargó exitosamente", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML", + "No file was uploaded" : "No se cargó el archivo", + "Missing a temporary folder" : "Falta una carpeta temporal", + "Failed to write file to disk." : "Se presentó una falla al escribir el archivo en el disco. ", + "A PHP extension stopped the file upload." : "Una extensión de PHP detuvo la carga del archivo. ", + "No file uploaded" : "No hay archivos cargados", + "Unsupported image type" : "Tipo de imagen no soportado", + "You are already using a custom theme" : "Ya estás usando un tema personalizado", + "Theming" : "Tematizar", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ", + "Name" : "Nombre", + "Reset to default" : "Restablecer al predeterminado", + "Web address" : "Dirección web", + "Web address https://…" : "Dirección web https://...", + "Slogan" : "Lema", + "Color" : "Color", + "Logo" : "Logotipo", + "Upload new logo" : "Cargar nuevo logotipo", + "Login image" : "Imágen de inicio de sesión", + "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", + "Remove background image" : "Eliminar imagen de fondo", + "reset to default" : "restaurar a predeterminado", + "Log in image" : "Imagen de inicio de sesión" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/theming/l10n/fi.js b/apps/theming/l10n/fi.js index 2fc502c9ba3..882231db1f8 100644 --- a/apps/theming/l10n/fi.js +++ b/apps/theming/l10n/fi.js @@ -9,6 +9,10 @@ OC.L10N.register( "The given web address is too long" : "Verkko-osoite on liian pitkä", "The given slogan is too long" : "Slogani on liian pitkä", "The given color is invalid" : "Väri on virheellinen", + "No file was uploaded" : "Tiedostoa ei lähetetty", + "Missing a temporary folder" : "Väliaikaiskansio puuttuu", + "Failed to write file to disk." : "Levylle kirjoittaminen epäonnistui.", + "A PHP extension stopped the file upload." : "PHP-laajennus pysäytti tiedoston lähetyksen.", "No file uploaded" : "Ei tiedostoa lähetetty", "Unsupported image type" : "Ei-tuettu kuvatiedostomuoto", "You are already using a custom theme" : "Käytät jo kustomoitua ulkoasua", diff --git a/apps/theming/l10n/fi.json b/apps/theming/l10n/fi.json index bf4fd40620e..3ac21388f16 100644 --- a/apps/theming/l10n/fi.json +++ b/apps/theming/l10n/fi.json @@ -7,6 +7,10 @@ "The given web address is too long" : "Verkko-osoite on liian pitkä", "The given slogan is too long" : "Slogani on liian pitkä", "The given color is invalid" : "Väri on virheellinen", + "No file was uploaded" : "Tiedostoa ei lähetetty", + "Missing a temporary folder" : "Väliaikaiskansio puuttuu", + "Failed to write file to disk." : "Levylle kirjoittaminen epäonnistui.", + "A PHP extension stopped the file upload." : "PHP-laajennus pysäytti tiedoston lähetyksen.", "No file uploaded" : "Ei tiedostoa lähetetty", "Unsupported image type" : "Ei-tuettu kuvatiedostomuoto", "You are already using a custom theme" : "Käytät jo kustomoitua ulkoasua", diff --git a/apps/theming/l10n/hu.js b/apps/theming/l10n/hu.js index c9fb5581ae8..6bf53bc5293 100644 --- a/apps/theming/l10n/hu.js +++ b/apps/theming/l10n/hu.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "A bevitt webcím túl hosszú", "The given slogan is too long" : "A bevitt szlogen túl hosszú", "The given color is invalid" : "A bevitt szín érvénytelen", + "There is no error, the file uploaded with success" : "Nincs hiba, a feltöltés sikeres", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "A feltöltés mérete meghaladja a php.ini upload_max_filesize direktívájában meghatározottat.", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "A HTML-ben megadott MAX_FILE_SIZE méretét meghaladja a feltöltés mérete", + "The uploaded file was only partially uploaded" : "Csak részben került feltöltésre a fájl", + "No file was uploaded" : "Nincs feltöltött fájl", + "Missing a temporary folder" : "Átmeneti mappa hiányzik", + "Failed to write file to disk." : "Lemezre írás sikertelen.", + "A PHP extension stopped the file upload." : "Egy PHP kiterjesztés megakadályozta a feltöltést.", "No file uploaded" : "Nincs fájl feltöltve", "Unsupported image type" : "Nem támogatott képtípus", "You are already using a custom theme" : "Már egyedi témát használ", diff --git a/apps/theming/l10n/hu.json b/apps/theming/l10n/hu.json index 1868959ef65..3bb00c37414 100644 --- a/apps/theming/l10n/hu.json +++ b/apps/theming/l10n/hu.json @@ -7,6 +7,14 @@ "The given web address is too long" : "A bevitt webcím túl hosszú", "The given slogan is too long" : "A bevitt szlogen túl hosszú", "The given color is invalid" : "A bevitt szín érvénytelen", + "There is no error, the file uploaded with success" : "Nincs hiba, a feltöltés sikeres", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "A feltöltés mérete meghaladja a php.ini upload_max_filesize direktívájában meghatározottat.", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "A HTML-ben megadott MAX_FILE_SIZE méretét meghaladja a feltöltés mérete", + "The uploaded file was only partially uploaded" : "Csak részben került feltöltésre a fájl", + "No file was uploaded" : "Nincs feltöltött fájl", + "Missing a temporary folder" : "Átmeneti mappa hiányzik", + "Failed to write file to disk." : "Lemezre írás sikertelen.", + "A PHP extension stopped the file upload." : "Egy PHP kiterjesztés megakadályozta a feltöltést.", "No file uploaded" : "Nincs fájl feltöltve", "Unsupported image type" : "Nem támogatott képtípus", "You are already using a custom theme" : "Már egyedi témát használ", diff --git a/apps/theming/l10n/is.js b/apps/theming/l10n/is.js index 1c97194763f..b09f2bf2801 100644 --- a/apps/theming/l10n/is.js +++ b/apps/theming/l10n/is.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "Uppgefið veffang er of langt", "The given slogan is too long" : "Uppgefið slagorð er of langt", "The given color is invalid" : "Uppgefinn litur er ógildur", + "There is no error, the file uploaded with success" : "Engin villa, innsending heppnaðist", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Innsend skrá er stærri en upload_max stillingin í php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Innsenda skráin er stærri en MAX_FILE_SIZE sem skilgreint er í HTML sniðinu", + "The uploaded file was only partially uploaded" : "Einungis hluti af innsendri skrá skilaði sér", + "No file was uploaded" : "Engin skrá skilaði sér", + "Missing a temporary folder" : "Vantar bráðabirgðamöppu", + "Failed to write file to disk." : "Tókst ekki að skrifa skrá á disk.", + "A PHP extension stopped the file upload." : "PHP-viðbót stöðvaði innsendingu skráar.", "No file uploaded" : "Engin skrá var send inn", "Unsupported image type" : "Óstudd gerð myndar", "You are already using a custom theme" : "Þú ert nú þegar að nota sérsniðið þema", diff --git a/apps/theming/l10n/is.json b/apps/theming/l10n/is.json index 0e75a583c11..2489448cb78 100644 --- a/apps/theming/l10n/is.json +++ b/apps/theming/l10n/is.json @@ -7,6 +7,14 @@ "The given web address is too long" : "Uppgefið veffang er of langt", "The given slogan is too long" : "Uppgefið slagorð er of langt", "The given color is invalid" : "Uppgefinn litur er ógildur", + "There is no error, the file uploaded with success" : "Engin villa, innsending heppnaðist", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Innsend skrá er stærri en upload_max stillingin í php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Innsenda skráin er stærri en MAX_FILE_SIZE sem skilgreint er í HTML sniðinu", + "The uploaded file was only partially uploaded" : "Einungis hluti af innsendri skrá skilaði sér", + "No file was uploaded" : "Engin skrá skilaði sér", + "Missing a temporary folder" : "Vantar bráðabirgðamöppu", + "Failed to write file to disk." : "Tókst ekki að skrifa skrá á disk.", + "A PHP extension stopped the file upload." : "PHP-viðbót stöðvaði innsendingu skráar.", "No file uploaded" : "Engin skrá var send inn", "Unsupported image type" : "Óstudd gerð myndar", "You are already using a custom theme" : "Þú ert nú þegar að nota sérsniðið þema", diff --git a/apps/theming/l10n/nl.js b/apps/theming/l10n/nl.js index 5ba8066a63e..ceb5ce0a8c7 100644 --- a/apps/theming/l10n/nl.js +++ b/apps/theming/l10n/nl.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "Het opgegeven internetadres is te lang", "The given slogan is too long" : "De opgegeven slagzin is te lang", "The given color is invalid" : "De opgegeven kleur is ongeldig", + "There is no error, the file uploaded with success" : "Het bestand is succesvol geüpload.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Het geüploade bestand overschrijdt de upload_max_filesize richtlijn in php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Het bestand overschrijdt de MAX_FILE_SIZE richtlijn die is opgegeven in het HTML formulier", + "The uploaded file was only partially uploaded" : "Het bestand is slechts gedeeltelijk geüpload", + "No file was uploaded" : "Er is geen bestand geüpload", + "Missing a temporary folder" : "Er ontbreekt een tijdelijke map", + "Failed to write file to disk." : "Schrijven van het bestand naar schijf mislukte.", + "A PHP extension stopped the file upload." : "Een PHP extensie heeft de upload gestopt.", "No file uploaded" : "Geen bestand geüpload", "Unsupported image type" : "Afbeeldingstype wordt niet ondersteund", "You are already using a custom theme" : "Je gebruikt al een maatwerkthema", diff --git a/apps/theming/l10n/nl.json b/apps/theming/l10n/nl.json index f04bc21f250..ec031703cf2 100644 --- a/apps/theming/l10n/nl.json +++ b/apps/theming/l10n/nl.json @@ -7,6 +7,14 @@ "The given web address is too long" : "Het opgegeven internetadres is te lang", "The given slogan is too long" : "De opgegeven slagzin is te lang", "The given color is invalid" : "De opgegeven kleur is ongeldig", + "There is no error, the file uploaded with success" : "Het bestand is succesvol geüpload.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Het geüploade bestand overschrijdt de upload_max_filesize richtlijn in php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Het bestand overschrijdt de MAX_FILE_SIZE richtlijn die is opgegeven in het HTML formulier", + "The uploaded file was only partially uploaded" : "Het bestand is slechts gedeeltelijk geüpload", + "No file was uploaded" : "Er is geen bestand geüpload", + "Missing a temporary folder" : "Er ontbreekt een tijdelijke map", + "Failed to write file to disk." : "Schrijven van het bestand naar schijf mislukte.", + "A PHP extension stopped the file upload." : "Een PHP extensie heeft de upload gestopt.", "No file uploaded" : "Geen bestand geüpload", "Unsupported image type" : "Afbeeldingstype wordt niet ondersteund", "You are already using a custom theme" : "Je gebruikt al een maatwerkthema", diff --git a/apps/theming/l10n/pl.js b/apps/theming/l10n/pl.js index a623a2bbcbf..3743426eb37 100644 --- a/apps/theming/l10n/pl.js +++ b/apps/theming/l10n/pl.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "Wpisany adres internetowy jest zbyt długi", "The given slogan is too long" : "Wpisany slogan jest zbyt długi", "The given color is invalid" : "Podany kolor jest nieprawidłowy", + "There is no error, the file uploaded with success" : "Brak błędów, plik wysłano poprawnie.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Wgrany plik przekracza wartość upload_max_filesize zdefiniowaną w php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Wysłany plik przekracza wielkość dyrektywy MAX_FILE_SIZE określonej w formularzu HTML", + "The uploaded file was only partially uploaded" : "Załadowany plik został wysłany tylko częściowo.", + "No file was uploaded" : "Nie wysłano żadnego pliku", + "Missing a temporary folder" : "Brak folderu tymczasowego", + "Failed to write file to disk." : "Błąd zapisu na dysk.", + "A PHP extension stopped the file upload." : "Rozszerzenie PHP zatrzymało wysyłanie pliku.", "No file uploaded" : "Nie wysłano pliku", "Unsupported image type" : "Nieobsługiwany typ zdjęcia", "You are already using a custom theme" : "Używasz już motywu niestandarowego", diff --git a/apps/theming/l10n/pl.json b/apps/theming/l10n/pl.json index 241f45ea2e2..58d0fb4c877 100644 --- a/apps/theming/l10n/pl.json +++ b/apps/theming/l10n/pl.json @@ -7,6 +7,14 @@ "The given web address is too long" : "Wpisany adres internetowy jest zbyt długi", "The given slogan is too long" : "Wpisany slogan jest zbyt długi", "The given color is invalid" : "Podany kolor jest nieprawidłowy", + "There is no error, the file uploaded with success" : "Brak błędów, plik wysłano poprawnie.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Wgrany plik przekracza wartość upload_max_filesize zdefiniowaną w php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Wysłany plik przekracza wielkość dyrektywy MAX_FILE_SIZE określonej w formularzu HTML", + "The uploaded file was only partially uploaded" : "Załadowany plik został wysłany tylko częściowo.", + "No file was uploaded" : "Nie wysłano żadnego pliku", + "Missing a temporary folder" : "Brak folderu tymczasowego", + "Failed to write file to disk." : "Błąd zapisu na dysk.", + "A PHP extension stopped the file upload." : "Rozszerzenie PHP zatrzymało wysyłanie pliku.", "No file uploaded" : "Nie wysłano pliku", "Unsupported image type" : "Nieobsługiwany typ zdjęcia", "You are already using a custom theme" : "Używasz już motywu niestandarowego", diff --git a/apps/theming/l10n/ru.js b/apps/theming/l10n/ru.js index b1ba315a349..2a46add3c0d 100644 --- a/apps/theming/l10n/ru.js +++ b/apps/theming/l10n/ru.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "Указанный веб адрес слишком длинный", "The given slogan is too long" : "Указанный слоган слишком длинный", "The given color is invalid" : "Задан неправильный цвет", + "There is no error, the file uploaded with success" : "Файл загружен успешно. Ошибок нет.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Размер загруженного файла превышает установленный предел upload_max_filesize в php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Размер загруженного файла превышает установленный предел MAX_FILE_SIZE в HTML-форме", + "The uploaded file was only partially uploaded" : "Файл загружен лишь частично", + "No file was uploaded" : "Не было загружено ни одного файла", + "Missing a temporary folder" : "Отсутствует временный каталог", + "Failed to write file to disk." : "Ошибка записи на диск.", + "A PHP extension stopped the file upload." : "PHP прервало загрузку файла.", "No file uploaded" : "Нет загруженных файлов", "Unsupported image type" : "Неподдерживаемый тип изображения", "You are already using a custom theme" : "Вы уже используете настраиваемую тему", diff --git a/apps/theming/l10n/ru.json b/apps/theming/l10n/ru.json index 17c559141e7..f363f3ab151 100644 --- a/apps/theming/l10n/ru.json +++ b/apps/theming/l10n/ru.json @@ -7,6 +7,14 @@ "The given web address is too long" : "Указанный веб адрес слишком длинный", "The given slogan is too long" : "Указанный слоган слишком длинный", "The given color is invalid" : "Задан неправильный цвет", + "There is no error, the file uploaded with success" : "Файл загружен успешно. Ошибок нет.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Размер загруженного файла превышает установленный предел upload_max_filesize в php.ini:", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Размер загруженного файла превышает установленный предел MAX_FILE_SIZE в HTML-форме", + "The uploaded file was only partially uploaded" : "Файл загружен лишь частично", + "No file was uploaded" : "Не было загружено ни одного файла", + "Missing a temporary folder" : "Отсутствует временный каталог", + "Failed to write file to disk." : "Ошибка записи на диск.", + "A PHP extension stopped the file upload." : "PHP прервало загрузку файла.", "No file uploaded" : "Нет загруженных файлов", "Unsupported image type" : "Неподдерживаемый тип изображения", "You are already using a custom theme" : "Вы уже используете настраиваемую тему", diff --git a/apps/theming/tests/Controller/IconControllerTest.php b/apps/theming/tests/Controller/IconControllerTest.php index c6a40b5942e..ca1f7fe0ff7 100644 --- a/apps/theming/tests/Controller/IconControllerTest.php +++ b/apps/theming/tests/Controller/IconControllerTest.php @@ -61,7 +61,7 @@ class IconControllerTest extends TestCase { private $imageManager; public function setUp() { - $this->request = $this->getMockBuilder('OCP\IRequest')->getMock(); + $this->request = $this->getMockBuilder(IRequest::class)->getMock(); $this->themingDefaults = $this->getMockBuilder('OCA\Theming\ThemingDefaults') ->disableOriginalConstructor()->getMock(); $this->util = $this->getMockBuilder('\OCA\Theming\Util')->disableOriginalConstructor() @@ -69,7 +69,7 @@ class IconControllerTest extends TestCase { $this->timeFactory = $this->getMockBuilder('OCP\AppFramework\Utility\ITimeFactory') ->disableOriginalConstructor() ->getMock(); - $this->config = $this->getMockBuilder('OCP\IConfig')->getMock(); + $this->config = $this->getMockBuilder(IConfig::class)->getMock(); $this->iconBuilder = $this->getMockBuilder('OCA\Theming\IconBuilder') ->disableOriginalConstructor()->getMock(); $this->imageManager = $this->getMockBuilder('OCA\Theming\ImageManager')->disableOriginalConstructor()->getMock(); diff --git a/apps/theming/tests/IconBuilderTest.php b/apps/theming/tests/IconBuilderTest.php index 9b5b1933201..6821655eafe 100644 --- a/apps/theming/tests/IconBuilderTest.php +++ b/apps/theming/tests/IconBuilderTest.php @@ -51,7 +51,7 @@ class IconBuilderTest extends TestCase { protected function setUp() { parent::setUp(); - $this->config = $this->getMockBuilder('\OCP\IConfig')->getMock(); + $this->config = $this->getMockBuilder(IConfig::class)->getMock(); $this->appData = $this->createMock(IAppData::class); $this->themingDefaults = $this->getMockBuilder('OCA\Theming\ThemingDefaults') ->disableOriginalConstructor()->getMock(); diff --git a/apps/theming/tests/ImageManagerTest.php b/apps/theming/tests/ImageManagerTest.php index 4df49633d80..65bcb4dbc06 100644 --- a/apps/theming/tests/ImageManagerTest.php +++ b/apps/theming/tests/ImageManagerTest.php @@ -40,7 +40,7 @@ class ImageManager extends TestCase { protected function setUp() { parent::setUp(); - $this->config = $this->getMockBuilder('\OCP\IConfig')->getMock(); + $this->config = $this->getMockBuilder(IConfig::class)->getMock(); $this->appData = $this->getMockBuilder('OCP\Files\IAppData')->getMock(); $this->imageManager = new \OCA\Theming\ImageManager( $this->config, diff --git a/apps/theming/tests/Settings/AdminTest.php b/apps/theming/tests/Settings/AdminTest.php index 70939677582..fb55640e968 100644 --- a/apps/theming/tests/Settings/AdminTest.php +++ b/apps/theming/tests/Settings/AdminTest.php @@ -45,10 +45,10 @@ class AdminTest extends TestCase { public function setUp() { parent::setUp(); - $this->config = $this->getMockBuilder('\OCP\IConfig')->getMock(); - $this->l10n = $this->getMockBuilder('\OCP\IL10N')->getMock(); + $this->config = $this->getMockBuilder(IConfig::class)->getMock(); + $this->l10n = $this->getMockBuilder(IL10N::class)->getMock(); $this->themingDefaults = $this->getMockBuilder('\OCA\Theming\ThemingDefaults')->disableOriginalConstructor()->getMock(); - $this->urlGenerator = $this->getMockBuilder('\OCP\IURLGenerator')->getMock(); + $this->urlGenerator = $this->getMockBuilder(IURLGenerator::class)->getMock(); $this->admin = new Admin( $this->config, diff --git a/apps/twofactor_backupcodes/composer/autoload.php b/apps/twofactor_backupcodes/composer/autoload.php new file mode 100644 index 00000000000..03a8800c318 --- /dev/null +++ b/apps/twofactor_backupcodes/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer/autoload_real.php'; + +return ComposerAutoloaderInitTwoFactorBackupCodes::getLoader(); diff --git a/apps/twofactor_backupcodes/composer/composer.json b/apps/twofactor_backupcodes/composer/composer.json new file mode 100644 index 00000000000..ef521965208 --- /dev/null +++ b/apps/twofactor_backupcodes/composer/composer.json @@ -0,0 +1,13 @@ +{ + "config" : { + "vendor-dir": ".", + "optimize-autoloader": true, + "authorative-autoloader": true, + "autoloader-suffix": "TwoFactorBackupCodes" + }, + "autoload" : { + "psr-4": { + "OCA\\TwoFactorBackupCodes\\": "../lib/" + } + } +} diff --git a/apps/twofactor_backupcodes/composer/composer/ClassLoader.php b/apps/twofactor_backupcodes/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..2c72175e772 --- /dev/null +++ b/apps/twofactor_backupcodes/composer/composer/ClassLoader.php @@ -0,0 +1,445 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * 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 array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + foreach ($this->prefixDirsPsr4[$search] as $dir) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/apps/twofactor_backupcodes/composer/composer/LICENSE b/apps/twofactor_backupcodes/composer/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/apps/twofactor_backupcodes/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/twofactor_backupcodes/composer/composer/autoload_classmap.php b/apps/twofactor_backupcodes/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..a9d9d3b5d4e --- /dev/null +++ b/apps/twofactor_backupcodes/composer/composer/autoload_classmap.php @@ -0,0 +1,21 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\TwoFactorBackupCodes\\Activity\\Provider' => $baseDir . '/../lib/Activity/Provider.php', + 'OCA\\TwoFactorBackupCodes\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php', + 'OCA\\TwoFactorBackupCodes\\Controller\\SettingsController' => $baseDir . '/../lib/Controller/SettingsController.php', + 'OCA\\TwoFactorBackupCodes\\Db\\BackupCode' => $baseDir . '/../lib/Db/BackupCode.php', + 'OCA\\TwoFactorBackupCodes\\Db\\BackupCodeMapper' => $baseDir . '/../lib/Db/BackupCodeMapper.php', + 'OCA\\TwoFactorBackupCodes\\Migration\\Version1002Date20170607104347' => $baseDir . '/../lib/Migration/Version1002Date20170607104347.php', + 'OCA\\TwoFactorBackupCodes\\Migration\\Version1002Date20170607113030' => $baseDir . '/../lib/Migration/Version1002Date20170607113030.php', + 'OCA\\TwoFactorBackupCodes\\Migration\\Version1002Date20170919123342' => $baseDir . '/../lib/Migration/Version1002Date20170919123342.php', + 'OCA\\TwoFactorBackupCodes\\Migration\\Version1002Date20170926101419' => $baseDir . '/../lib/Migration/Version1002Date20170926101419.php', + 'OCA\\TwoFactorBackupCodes\\Provider\\BackupCodesProvider' => $baseDir . '/../lib/Provider/BackupCodesProvider.php', + 'OCA\\TwoFactorBackupCodes\\Service\\BackupCodeStorage' => $baseDir . '/../lib/Service/BackupCodeStorage.php', + 'OCA\\TwoFactorBackupCodes\\Settings\\Personal' => $baseDir . '/../lib/Settings/Personal.php', +); diff --git a/apps/twofactor_backupcodes/composer/composer/autoload_namespaces.php b/apps/twofactor_backupcodes/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..71c9e91858d --- /dev/null +++ b/apps/twofactor_backupcodes/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( +); diff --git a/apps/twofactor_backupcodes/composer/composer/autoload_psr4.php b/apps/twofactor_backupcodes/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..c54d4c9819c --- /dev/null +++ b/apps/twofactor_backupcodes/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\TwoFactorBackupCodes\\' => array($baseDir . '/../lib'), +); diff --git a/apps/twofactor_backupcodes/composer/composer/autoload_real.php b/apps/twofactor_backupcodes/composer/composer/autoload_real.php new file mode 100644 index 00000000000..435d883ffa0 --- /dev/null +++ b/apps/twofactor_backupcodes/composer/composer/autoload_real.php @@ -0,0 +1,52 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInitTwoFactorBackupCodes +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInitTwoFactorBackupCodes', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInitTwoFactorBackupCodes', 'loadClassLoader')); + + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitTwoFactorBackupCodes::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/apps/twofactor_backupcodes/composer/composer/autoload_static.php b/apps/twofactor_backupcodes/composer/composer/autoload_static.php new file mode 100644 index 00000000000..abde37697ee --- /dev/null +++ b/apps/twofactor_backupcodes/composer/composer/autoload_static.php @@ -0,0 +1,47 @@ +<?php + +// autoload_static.php @generated by Composer + +namespace Composer\Autoload; + +class ComposerStaticInitTwoFactorBackupCodes +{ + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'OCA\\TwoFactorBackupCodes\\' => 25, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\TwoFactorBackupCodes\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'OCA\\TwoFactorBackupCodes\\Activity\\Provider' => __DIR__ . '/..' . '/../lib/Activity/Provider.php', + 'OCA\\TwoFactorBackupCodes\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php', + 'OCA\\TwoFactorBackupCodes\\Controller\\SettingsController' => __DIR__ . '/..' . '/../lib/Controller/SettingsController.php', + 'OCA\\TwoFactorBackupCodes\\Db\\BackupCode' => __DIR__ . '/..' . '/../lib/Db/BackupCode.php', + 'OCA\\TwoFactorBackupCodes\\Db\\BackupCodeMapper' => __DIR__ . '/..' . '/../lib/Db/BackupCodeMapper.php', + 'OCA\\TwoFactorBackupCodes\\Migration\\Version1002Date20170607104347' => __DIR__ . '/..' . '/../lib/Migration/Version1002Date20170607104347.php', + 'OCA\\TwoFactorBackupCodes\\Migration\\Version1002Date20170607113030' => __DIR__ . '/..' . '/../lib/Migration/Version1002Date20170607113030.php', + 'OCA\\TwoFactorBackupCodes\\Migration\\Version1002Date20170919123342' => __DIR__ . '/..' . '/../lib/Migration/Version1002Date20170919123342.php', + 'OCA\\TwoFactorBackupCodes\\Migration\\Version1002Date20170926101419' => __DIR__ . '/..' . '/../lib/Migration/Version1002Date20170926101419.php', + 'OCA\\TwoFactorBackupCodes\\Provider\\BackupCodesProvider' => __DIR__ . '/..' . '/../lib/Provider/BackupCodesProvider.php', + 'OCA\\TwoFactorBackupCodes\\Service\\BackupCodeStorage' => __DIR__ . '/..' . '/../lib/Service/BackupCodeStorage.php', + 'OCA\\TwoFactorBackupCodes\\Settings\\Personal' => __DIR__ . '/..' . '/../lib/Settings/Personal.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitTwoFactorBackupCodes::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitTwoFactorBackupCodes::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitTwoFactorBackupCodes::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/twofactor_backupcodes/l10n/es_CO.js b/apps/twofactor_backupcodes/l10n/es_CO.js new file mode 100644 index 00000000000..925894cb77d --- /dev/null +++ b/apps/twofactor_backupcodes/l10n/es_CO.js @@ -0,0 +1,18 @@ +OC.L10N.register( + "twofactor_backupcodes", + { + "Generate backup codes" : "Generar los códigos de respaldo", + "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Los códigos de respaldo han sido generados. Se han usado {{used}} de {{total}} códigos.", + "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después.", + "Save backup codes" : "Guardar códigos de respaldo", + "Print backup codes" : "Imprimir códigos de respaldo", + "Regenerate backup codes" : "Regenerar códigos de respaldo", + "If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ", + "An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ", + "Nextcloud backup codes" : "Códigos de respaldo de Nextcloud", + "You created two-factor backup codes for your account" : "Creaste códigos de respaldo de dos factores para tu cuenta", + "Backup code" : "Código de respaldo", + "Use backup code" : "Usa el código de respaldo", + "Second-factor backup codes" : "Códigos de respaldo del segundo factor" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/twofactor_backupcodes/l10n/es_CO.json b/apps/twofactor_backupcodes/l10n/es_CO.json new file mode 100644 index 00000000000..3cfd05bcd37 --- /dev/null +++ b/apps/twofactor_backupcodes/l10n/es_CO.json @@ -0,0 +1,16 @@ +{ "translations": { + "Generate backup codes" : "Generar los códigos de respaldo", + "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Los códigos de respaldo han sido generados. Se han usado {{used}} de {{total}} códigos.", + "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después.", + "Save backup codes" : "Guardar códigos de respaldo", + "Print backup codes" : "Imprimir códigos de respaldo", + "Regenerate backup codes" : "Regenerar códigos de respaldo", + "If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ", + "An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ", + "Nextcloud backup codes" : "Códigos de respaldo de Nextcloud", + "You created two-factor backup codes for your account" : "Creaste códigos de respaldo de dos factores para tu cuenta", + "Backup code" : "Código de respaldo", + "Use backup code" : "Usa el código de respaldo", + "Second-factor backup codes" : "Códigos de respaldo del segundo factor" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/updatenotification/composer/autoload.php b/apps/updatenotification/composer/autoload.php new file mode 100644 index 00000000000..47cc4d587a5 --- /dev/null +++ b/apps/updatenotification/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer/autoload_real.php'; + +return ComposerAutoloaderInitUpdateNotification::getLoader(); diff --git a/apps/updatenotification/composer/composer.json b/apps/updatenotification/composer/composer.json new file mode 100644 index 00000000000..3e14337eb69 --- /dev/null +++ b/apps/updatenotification/composer/composer.json @@ -0,0 +1,13 @@ +{ + "config" : { + "vendor-dir": ".", + "optimize-autoloader": true, + "authorative-autoloader": true, + "autoloader-suffix": "UpdateNotification" + }, + "autoload" : { + "psr-4": { + "OCA\\UpdateNotification\\": "../lib/" + } + } +} diff --git a/apps/updatenotification/composer/composer/ClassLoader.php b/apps/updatenotification/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..2c72175e772 --- /dev/null +++ b/apps/updatenotification/composer/composer/ClassLoader.php @@ -0,0 +1,445 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * 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 array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + foreach ($this->prefixDirsPsr4[$search] as $dir) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/apps/updatenotification/composer/composer/LICENSE b/apps/updatenotification/composer/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/apps/updatenotification/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/updatenotification/composer/composer/autoload_classmap.php b/apps/updatenotification/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..e1833548bcf --- /dev/null +++ b/apps/updatenotification/composer/composer/autoload_classmap.php @@ -0,0 +1,15 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\UpdateNotification\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php', + 'OCA\\UpdateNotification\\Controller\\AdminController' => $baseDir . '/../lib/Controller/AdminController.php', + 'OCA\\UpdateNotification\\Notification\\BackgroundJob' => $baseDir . '/../lib/Notification/BackgroundJob.php', + 'OCA\\UpdateNotification\\Notification\\Notifier' => $baseDir . '/../lib/Notification/Notifier.php', + 'OCA\\UpdateNotification\\ResetTokenBackgroundJob' => $baseDir . '/../lib/ResetTokenBackgroundJob.php', + 'OCA\\UpdateNotification\\UpdateChecker' => $baseDir . '/../lib/UpdateChecker.php', +); diff --git a/apps/updatenotification/composer/composer/autoload_namespaces.php b/apps/updatenotification/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..71c9e91858d --- /dev/null +++ b/apps/updatenotification/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( +); diff --git a/apps/updatenotification/composer/composer/autoload_psr4.php b/apps/updatenotification/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..361c205335a --- /dev/null +++ b/apps/updatenotification/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\UpdateNotification\\' => array($baseDir . '/../lib'), +); diff --git a/apps/updatenotification/composer/composer/autoload_real.php b/apps/updatenotification/composer/composer/autoload_real.php new file mode 100644 index 00000000000..41580edbf38 --- /dev/null +++ b/apps/updatenotification/composer/composer/autoload_real.php @@ -0,0 +1,52 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInitUpdateNotification +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInitUpdateNotification', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInitUpdateNotification', 'loadClassLoader')); + + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitUpdateNotification::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/apps/updatenotification/composer/composer/autoload_static.php b/apps/updatenotification/composer/composer/autoload_static.php new file mode 100644 index 00000000000..1c63a2d234b --- /dev/null +++ b/apps/updatenotification/composer/composer/autoload_static.php @@ -0,0 +1,41 @@ +<?php + +// autoload_static.php @generated by Composer + +namespace Composer\Autoload; + +class ComposerStaticInitUpdateNotification +{ + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'OCA\\UpdateNotification\\' => 23, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\UpdateNotification\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'OCA\\UpdateNotification\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php', + 'OCA\\UpdateNotification\\Controller\\AdminController' => __DIR__ . '/..' . '/../lib/Controller/AdminController.php', + 'OCA\\UpdateNotification\\Notification\\BackgroundJob' => __DIR__ . '/..' . '/../lib/Notification/BackgroundJob.php', + 'OCA\\UpdateNotification\\Notification\\Notifier' => __DIR__ . '/..' . '/../lib/Notification/Notifier.php', + 'OCA\\UpdateNotification\\ResetTokenBackgroundJob' => __DIR__ . '/..' . '/../lib/ResetTokenBackgroundJob.php', + 'OCA\\UpdateNotification\\UpdateChecker' => __DIR__ . '/..' . '/../lib/UpdateChecker.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitUpdateNotification::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitUpdateNotification::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitUpdateNotification::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/updatenotification/l10n/es_CO.js b/apps/updatenotification/l10n/es_CO.js new file mode 100644 index 00000000000..7753f5b5a04 --- /dev/null +++ b/apps/updatenotification/l10n/es_CO.js @@ -0,0 +1,28 @@ +OC.L10N.register( + "updatenotification", + { + "Update notifications" : "Actualizar notificaciones", + "Could not start updater, please try the manual update" : "No fue posible iniciar el actualizador, por favor intenta la actualización manual", + "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ", + "Channel updated" : "Canal actualizado", + "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ", + "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ", + "Update to %1$s is available." : "La actualización a %1$s está disponible. ", + "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.", + "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.", + "A new version is available: %s" : "Una nueva versión está disponible: %s", + "Open updater" : "Abrir actualizador", + "Download now" : "Descargar ahora", + "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.", + "Your version is up to date." : "Tu verisón está actualizada.", + "Checked on %s" : "Verificado el %s", + "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:", + "Update channel:" : "Actualizar el canal:", + "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Siempre puedes actualizar a una versión más reciente / canal experimental. Sin embargo nunca podrás desactualizar la versión a un canal más estable. ", + "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles.", + "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:", + "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.", + "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ", + "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. " +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/updatenotification/l10n/es_CO.json b/apps/updatenotification/l10n/es_CO.json new file mode 100644 index 00000000000..5dea8ca3eec --- /dev/null +++ b/apps/updatenotification/l10n/es_CO.json @@ -0,0 +1,26 @@ +{ "translations": { + "Update notifications" : "Actualizar notificaciones", + "Could not start updater, please try the manual update" : "No fue posible iniciar el actualizador, por favor intenta la actualización manual", + "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ", + "Channel updated" : "Canal actualizado", + "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ", + "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ", + "Update to %1$s is available." : "La actualización a %1$s está disponible. ", + "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.", + "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.", + "A new version is available: %s" : "Una nueva versión está disponible: %s", + "Open updater" : "Abrir actualizador", + "Download now" : "Descargar ahora", + "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.", + "Your version is up to date." : "Tu verisón está actualizada.", + "Checked on %s" : "Verificado el %s", + "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:", + "Update channel:" : "Actualizar el canal:", + "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Siempre puedes actualizar a una versión más reciente / canal experimental. Sin embargo nunca podrás desactualizar la versión a un canal más estable. ", + "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles.", + "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:", + "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.", + "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ", + "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. " +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/user_ldap/composer/autoload.php b/apps/user_ldap/composer/autoload.php new file mode 100644 index 00000000000..24824c188e5 --- /dev/null +++ b/apps/user_ldap/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer/autoload_real.php'; + +return ComposerAutoloaderInitUser_LDAP::getLoader(); diff --git a/apps/user_ldap/composer/composer.json b/apps/user_ldap/composer/composer.json new file mode 100644 index 00000000000..0af0b6bea39 --- /dev/null +++ b/apps/user_ldap/composer/composer.json @@ -0,0 +1,13 @@ +{ + "config" : { + "vendor-dir": ".", + "optimize-autoloader": true, + "authorative-autoloader": true, + "autoloader-suffix": "User_LDAP" + }, + "autoload" : { + "psr-4": { + "OCA\\User_LDAP\\": "../lib/" + } + } +} diff --git a/apps/user_ldap/composer/composer/ClassLoader.php b/apps/user_ldap/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..2c72175e772 --- /dev/null +++ b/apps/user_ldap/composer/composer/ClassLoader.php @@ -0,0 +1,445 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * 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 array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * 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 array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * 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 array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + 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; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + foreach ($this->prefixDirsPsr4[$search] as $dir) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/apps/user_ldap/composer/composer/LICENSE b/apps/user_ldap/composer/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/apps/user_ldap/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/user_ldap/composer/composer/autoload_classmap.php b/apps/user_ldap/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..6558af00212 --- /dev/null +++ b/apps/user_ldap/composer/composer/autoload_classmap.php @@ -0,0 +1,59 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\User_LDAP\\Access' => $baseDir . '/../lib/Access.php', + 'OCA\\User_LDAP\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php', + 'OCA\\User_LDAP\\BackendUtility' => $baseDir . '/../lib/BackendUtility.php', + 'OCA\\User_LDAP\\Command\\CheckUser' => $baseDir . '/../lib/Command/CheckUser.php', + 'OCA\\User_LDAP\\Command\\CreateEmptyConfig' => $baseDir . '/../lib/Command/CreateEmptyConfig.php', + 'OCA\\User_LDAP\\Command\\DeleteConfig' => $baseDir . '/../lib/Command/DeleteConfig.php', + 'OCA\\User_LDAP\\Command\\Search' => $baseDir . '/../lib/Command/Search.php', + 'OCA\\User_LDAP\\Command\\SetConfig' => $baseDir . '/../lib/Command/SetConfig.php', + 'OCA\\User_LDAP\\Command\\ShowConfig' => $baseDir . '/../lib/Command/ShowConfig.php', + 'OCA\\User_LDAP\\Command\\ShowRemnants' => $baseDir . '/../lib/Command/ShowRemnants.php', + 'OCA\\User_LDAP\\Command\\TestConfig' => $baseDir . '/../lib/Command/TestConfig.php', + 'OCA\\User_LDAP\\Configuration' => $baseDir . '/../lib/Configuration.php', + 'OCA\\User_LDAP\\Connection' => $baseDir . '/../lib/Connection.php', + 'OCA\\User_LDAP\\Controller\\ConfigAPIController' => $baseDir . '/../lib/Controller/ConfigAPIController.php', + 'OCA\\User_LDAP\\Controller\\RenewPasswordController' => $baseDir . '/../lib/Controller/RenewPasswordController.php', + 'OCA\\User_LDAP\\Exceptions\\ConstraintViolationException' => $baseDir . '/../lib/Exceptions/ConstraintViolationException.php', + 'OCA\\User_LDAP\\Exceptions\\NotOnLDAP' => $baseDir . '/../lib/Exceptions/NotOnLDAP.php', + 'OCA\\User_LDAP\\FilesystemHelper' => $baseDir . '/../lib/FilesystemHelper.php', + 'OCA\\User_LDAP\\Group_LDAP' => $baseDir . '/../lib/Group_LDAP.php', + 'OCA\\User_LDAP\\Group_Proxy' => $baseDir . '/../lib/Group_Proxy.php', + 'OCA\\User_LDAP\\Helper' => $baseDir . '/../lib/Helper.php', + 'OCA\\User_LDAP\\ILDAPWrapper' => $baseDir . '/../lib/ILDAPWrapper.php', + 'OCA\\User_LDAP\\IUserLDAP' => $baseDir . '/../lib/IUserLDAP.php', + 'OCA\\User_LDAP\\Jobs\\CleanUp' => $baseDir . '/../lib/Jobs/CleanUp.php', + 'OCA\\User_LDAP\\Jobs\\UpdateGroups' => $baseDir . '/../lib/Jobs/UpdateGroups.php', + 'OCA\\User_LDAP\\LDAP' => $baseDir . '/../lib/LDAP.php', + 'OCA\\User_LDAP\\LDAPProvider' => $baseDir . '/../lib/LDAPProvider.php', + 'OCA\\User_LDAP\\LDAPProviderFactory' => $baseDir . '/../lib/LDAPProviderFactory.php', + 'OCA\\User_LDAP\\LDAPUtility' => $baseDir . '/../lib/LDAPUtility.php', + 'OCA\\User_LDAP\\LogWrapper' => $baseDir . '/../lib/LogWrapper.php', + 'OCA\\User_LDAP\\Mapping\\AbstractMapping' => $baseDir . '/../lib/Mapping/AbstractMapping.php', + 'OCA\\User_LDAP\\Mapping\\GroupMapping' => $baseDir . '/../lib/Mapping/GroupMapping.php', + 'OCA\\User_LDAP\\Mapping\\UserMapping' => $baseDir . '/../lib/Mapping/UserMapping.php', + 'OCA\\User_LDAP\\Migration\\UUIDFix' => $baseDir . '/../lib/Migration/UUIDFix.php', + 'OCA\\User_LDAP\\Migration\\UUIDFixGroup' => $baseDir . '/../lib/Migration/UUIDFixGroup.php', + 'OCA\\User_LDAP\\Migration\\UUIDFixInsert' => $baseDir . '/../lib/Migration/UUIDFixInsert.php', + 'OCA\\User_LDAP\\Migration\\UUIDFixUser' => $baseDir . '/../lib/Migration/UUIDFixUser.php', + 'OCA\\User_LDAP\\Notification\\Notifier' => $baseDir . '/../lib/Notification/Notifier.php', + 'OCA\\User_LDAP\\Proxy' => $baseDir . '/../lib/Proxy.php', + 'OCA\\User_LDAP\\Settings\\Admin' => $baseDir . '/../lib/Settings/Admin.php', + 'OCA\\User_LDAP\\Settings\\Section' => $baseDir . '/../lib/Settings/Section.php', + 'OCA\\User_LDAP\\User\\DeletedUsersIndex' => $baseDir . '/../lib/User/DeletedUsersIndex.php', + 'OCA\\User_LDAP\\User\\IUserTools' => $baseDir . '/../lib/User/IUserTools.php', + 'OCA\\User_LDAP\\User\\Manager' => $baseDir . '/../lib/User/Manager.php', + 'OCA\\User_LDAP\\User\\OfflineUser' => $baseDir . '/../lib/User/OfflineUser.php', + 'OCA\\User_LDAP\\User\\User' => $baseDir . '/../lib/User/User.php', + 'OCA\\User_LDAP\\User_LDAP' => $baseDir . '/../lib/User_LDAP.php', + 'OCA\\User_LDAP\\User_Proxy' => $baseDir . '/../lib/User_Proxy.php', + 'OCA\\User_LDAP\\Wizard' => $baseDir . '/../lib/Wizard.php', + 'OCA\\User_LDAP\\WizardResult' => $baseDir . '/../lib/WizardResult.php', +); diff --git a/apps/user_ldap/composer/composer/autoload_namespaces.php b/apps/user_ldap/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..71c9e91858d --- /dev/null +++ b/apps/user_ldap/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( +); diff --git a/apps/user_ldap/composer/composer/autoload_psr4.php b/apps/user_ldap/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..5251e2c1f81 --- /dev/null +++ b/apps/user_ldap/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\User_LDAP\\' => array($baseDir . '/../lib'), +); diff --git a/apps/user_ldap/composer/composer/autoload_real.php b/apps/user_ldap/composer/composer/autoload_real.php new file mode 100644 index 00000000000..ab7adf2412f --- /dev/null +++ b/apps/user_ldap/composer/composer/autoload_real.php @@ -0,0 +1,52 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInitUser_LDAP +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInitUser_LDAP', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInitUser_LDAP', 'loadClassLoader')); + + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitUser_LDAP::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/apps/user_ldap/composer/composer/autoload_static.php b/apps/user_ldap/composer/composer/autoload_static.php new file mode 100644 index 00000000000..f80900f7904 --- /dev/null +++ b/apps/user_ldap/composer/composer/autoload_static.php @@ -0,0 +1,85 @@ +<?php + +// autoload_static.php @generated by Composer + +namespace Composer\Autoload; + +class ComposerStaticInitUser_LDAP +{ + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'OCA\\User_LDAP\\' => 14, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\User_LDAP\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'OCA\\User_LDAP\\Access' => __DIR__ . '/..' . '/../lib/Access.php', + 'OCA\\User_LDAP\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php', + 'OCA\\User_LDAP\\BackendUtility' => __DIR__ . '/..' . '/../lib/BackendUtility.php', + 'OCA\\User_LDAP\\Command\\CheckUser' => __DIR__ . '/..' . '/../lib/Command/CheckUser.php', + 'OCA\\User_LDAP\\Command\\CreateEmptyConfig' => __DIR__ . '/..' . '/../lib/Command/CreateEmptyConfig.php', + 'OCA\\User_LDAP\\Command\\DeleteConfig' => __DIR__ . '/..' . '/../lib/Command/DeleteConfig.php', + 'OCA\\User_LDAP\\Command\\Search' => __DIR__ . '/..' . '/../lib/Command/Search.php', + 'OCA\\User_LDAP\\Command\\SetConfig' => __DIR__ . '/..' . '/../lib/Command/SetConfig.php', + 'OCA\\User_LDAP\\Command\\ShowConfig' => __DIR__ . '/..' . '/../lib/Command/ShowConfig.php', + 'OCA\\User_LDAP\\Command\\ShowRemnants' => __DIR__ . '/..' . '/../lib/Command/ShowRemnants.php', + 'OCA\\User_LDAP\\Command\\TestConfig' => __DIR__ . '/..' . '/../lib/Command/TestConfig.php', + 'OCA\\User_LDAP\\Configuration' => __DIR__ . '/..' . '/../lib/Configuration.php', + 'OCA\\User_LDAP\\Connection' => __DIR__ . '/..' . '/../lib/Connection.php', + 'OCA\\User_LDAP\\Controller\\ConfigAPIController' => __DIR__ . '/..' . '/../lib/Controller/ConfigAPIController.php', + 'OCA\\User_LDAP\\Controller\\RenewPasswordController' => __DIR__ . '/..' . '/../lib/Controller/RenewPasswordController.php', + 'OCA\\User_LDAP\\Exceptions\\ConstraintViolationException' => __DIR__ . '/..' . '/../lib/Exceptions/ConstraintViolationException.php', + 'OCA\\User_LDAP\\Exceptions\\NotOnLDAP' => __DIR__ . '/..' . '/../lib/Exceptions/NotOnLDAP.php', + 'OCA\\User_LDAP\\FilesystemHelper' => __DIR__ . '/..' . '/../lib/FilesystemHelper.php', + 'OCA\\User_LDAP\\Group_LDAP' => __DIR__ . '/..' . '/../lib/Group_LDAP.php', + 'OCA\\User_LDAP\\Group_Proxy' => __DIR__ . '/..' . '/../lib/Group_Proxy.php', + 'OCA\\User_LDAP\\Helper' => __DIR__ . '/..' . '/../lib/Helper.php', + 'OCA\\User_LDAP\\ILDAPWrapper' => __DIR__ . '/..' . '/../lib/ILDAPWrapper.php', + 'OCA\\User_LDAP\\IUserLDAP' => __DIR__ . '/..' . '/../lib/IUserLDAP.php', + 'OCA\\User_LDAP\\Jobs\\CleanUp' => __DIR__ . '/..' . '/../lib/Jobs/CleanUp.php', + 'OCA\\User_LDAP\\Jobs\\UpdateGroups' => __DIR__ . '/..' . '/../lib/Jobs/UpdateGroups.php', + 'OCA\\User_LDAP\\LDAP' => __DIR__ . '/..' . '/../lib/LDAP.php', + 'OCA\\User_LDAP\\LDAPProvider' => __DIR__ . '/..' . '/../lib/LDAPProvider.php', + 'OCA\\User_LDAP\\LDAPProviderFactory' => __DIR__ . '/..' . '/../lib/LDAPProviderFactory.php', + 'OCA\\User_LDAP\\LDAPUtility' => __DIR__ . '/..' . '/../lib/LDAPUtility.php', + 'OCA\\User_LDAP\\LogWrapper' => __DIR__ . '/..' . '/../lib/LogWrapper.php', + 'OCA\\User_LDAP\\Mapping\\AbstractMapping' => __DIR__ . '/..' . '/../lib/Mapping/AbstractMapping.php', + 'OCA\\User_LDAP\\Mapping\\GroupMapping' => __DIR__ . '/..' . '/../lib/Mapping/GroupMapping.php', + 'OCA\\User_LDAP\\Mapping\\UserMapping' => __DIR__ . '/..' . '/../lib/Mapping/UserMapping.php', + 'OCA\\User_LDAP\\Migration\\UUIDFix' => __DIR__ . '/..' . '/../lib/Migration/UUIDFix.php', + 'OCA\\User_LDAP\\Migration\\UUIDFixGroup' => __DIR__ . '/..' . '/../lib/Migration/UUIDFixGroup.php', + 'OCA\\User_LDAP\\Migration\\UUIDFixInsert' => __DIR__ . '/..' . '/../lib/Migration/UUIDFixInsert.php', + 'OCA\\User_LDAP\\Migration\\UUIDFixUser' => __DIR__ . '/..' . '/../lib/Migration/UUIDFixUser.php', + 'OCA\\User_LDAP\\Notification\\Notifier' => __DIR__ . '/..' . '/../lib/Notification/Notifier.php', + 'OCA\\User_LDAP\\Proxy' => __DIR__ . '/..' . '/../lib/Proxy.php', + 'OCA\\User_LDAP\\Settings\\Admin' => __DIR__ . '/..' . '/../lib/Settings/Admin.php', + 'OCA\\User_LDAP\\Settings\\Section' => __DIR__ . '/..' . '/../lib/Settings/Section.php', + 'OCA\\User_LDAP\\User\\DeletedUsersIndex' => __DIR__ . '/..' . '/../lib/User/DeletedUsersIndex.php', + 'OCA\\User_LDAP\\User\\IUserTools' => __DIR__ . '/..' . '/../lib/User/IUserTools.php', + 'OCA\\User_LDAP\\User\\Manager' => __DIR__ . '/..' . '/../lib/User/Manager.php', + 'OCA\\User_LDAP\\User\\OfflineUser' => __DIR__ . '/..' . '/../lib/User/OfflineUser.php', + 'OCA\\User_LDAP\\User\\User' => __DIR__ . '/..' . '/../lib/User/User.php', + 'OCA\\User_LDAP\\User_LDAP' => __DIR__ . '/..' . '/../lib/User_LDAP.php', + 'OCA\\User_LDAP\\User_Proxy' => __DIR__ . '/..' . '/../lib/User_Proxy.php', + 'OCA\\User_LDAP\\Wizard' => __DIR__ . '/..' . '/../lib/Wizard.php', + 'OCA\\User_LDAP\\WizardResult' => __DIR__ . '/..' . '/../lib/WizardResult.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitUser_LDAP::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitUser_LDAP::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitUser_LDAP::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/user_ldap/l10n/es_CO.js b/apps/user_ldap/l10n/es_CO.js new file mode 100644 index 00000000000..63d3d71e0a9 --- /dev/null +++ b/apps/user_ldap/l10n/es_CO.js @@ -0,0 +1,197 @@ +OC.L10N.register( + "user_ldap", + { + "Failed to clear the mappings." : "Se presentó una falla al borrar los mapeos.", + "Failed to delete the server configuration" : "Se presentó una falla al borrar la configuración del servidor", + "Invalid configuration: Anonymous binding is not allowed." : "Configuración inválida: La vinculación anónima no está permitida. ", + "Valid configuration, connection established!" : "¡Configuración válida, conexión establecida!", + "Valid configuration, but binding failed. Please check the server settings and credentials." : "Configuración válida, pero la vinculación falló. Por favor verifica la configuración del servidor y las credenciales.", + "Invalid configuration. Please have a look at the logs for further details." : "Configuración inválida. Por favor verifica las bitácoras para más detalles.", + "No action specified" : "No se ha especificado alguna acción", + "No configuration specified" : "No se ha especificado una configuración", + "No data specified" : "No se han especificado datos", + " Could not set configuration %s" : "No fue posible establecer la configuración %s", + "Action does not exist" : "La acción no existe", + "LDAP user and group backend" : "Backend de LDAP para usuario y grupo", + "Renewing …" : "Renovando ...", + "Very weak password" : "Contraseña muy debil", + "Weak password" : "Contraseña débil", + "So-so password" : "Contraseña aceptable", + "Good password" : "Buena contraseña", + "Strong password" : "Contraseña fuerte", + "The Base DN appears to be wrong" : "El DN Base parece estar incorrecto", + "Testing configuration…" : "Probando configuración... ", + "Configuration incorrect" : "Configuración Incorrecta", + "Configuration incomplete" : "Configuración incompleta", + "Configuration OK" : "Configuración correcta", + "Select groups" : "Seleccionar grupos", + "Select object classes" : "Seleccionar las clases de objeto", + "Please check the credentials, they seem to be wrong." : "Por favor verifica tus credenciales, al parecer están equivocadas.", + "Please specify the port, it could not be auto-detected." : "No fue posible auto-detectar el puerto, por favor especifícalo.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "No fue posible auto detectar el DN Base, por favor verifica las credenciales, servidor y puerto.", + "Could not detect Base DN, please enter it manually." : "No fue posible detectar el DN Base, por favor ingreésalo manualmente.", + "{nthServer}. Server" : "{nthServer}. Servidor", + "No object found in the given Base DN. Please revise." : "No fue posible encontrar ningún objeto en el DN Base dado. Por favor verifica.", + "More than 1,000 directory entries available." : "Se encuentran disponibles más de 1,000 elementos de directoiros. ", + " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Se presentó un error. Por favor verifica la DN Base, así como las configuraciones de la conexión y las credenciales.", + "Do you really want to delete the current Server Configuration?" : "¿Realmente deseas eliminar la configuración actual del servidor?", + "Confirm Deletion" : "Confirmar el borrado", + "Mappings cleared successfully!" : "¡Los mapeos se borraron exitosamente!", + "Error while clearing the mappings." : "Se presentó un error al borrar los mapeos. ", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "La vinculación anónima no está permitida. Por favor proporciona un Usuario DN y una Contaseña.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Error de Operaciones LDAP. Las vinculaciones anónimas pueden no estar permitidas. ", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Se presentó una falla en el guardado. Por favor verifica que la base de datos esté operando. Vuelve a cargar antes de continuar. ", + "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Cambiar la modalidad habilitará las consultas automaticas de LDAP. Dependiendo del tamaño de su LDAP esto puede tomar algun tiempo. ¿Aún desea cambiar la modalidad?", + "Mode switch" : "Cambio de modo", + "Select attributes" : "Seleccionar atributos", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Usuario no encontrado. Por favor verifica tus atributos de inicio de sesión y tu usuario. Filtro aplicado (para copiar-y-pegar para una validación de línea de comando): <br/>", + "User found and settings verified." : "Usuario encontrado y configuraciones verificadas. ", + "Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Considera refinar la búsqueda, ya que abarca demasiados usuarios y solo el primero de ellos podrá iniciar sesión. ", + "An unspecified error occurred. Please check log and settings." : "Se presentó un error inesperado. Por fvor verifica la bitácora y las configuraciones.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "El filtro de la búsqueda es inválido, posiblemente debido a temas de sintaxis como un número diferente de corchetes abiertos y cerrados. Por favor verifícalo. ", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Se presentó una falla con la conexión al servidor LDAP / AD, por favor verifica el servidor, puerto y credenciales. ", + "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Falta el \"%uid\" del marcador de posición. Será reemplazado con el nombre de usuario al consultar LDAP / AD.", + "Please provide a login name to test against" : "Favor de proporcionar un nombre de usuario contra el cual probar", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "El cuadro de grupo está deshabilitado, porque el servidor LDAP / AD no soporta memberOf.", + "Password change rejected. Hint: " : "Cambio de contraseña rechazado. Pista: ", + "Please login with the new password" : "Por favor inicia sesion con la nueva contraseña", + "Your password will expire tomorrow." : "Tu contraseña expirará mañana.", + "Your password will expire today." : "Tu contraseña expirará el día de hoy. ", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["La contraseña expirará dentro de %n día. ","La contraseña expirará dentro de %n días. "], + "LDAP / AD integration" : "Integración con LDAP / AD", + "_%s group found_::_%s groups found_" : ["Grupo %s encontrado","%s grupos encontrados"], + "_%s user found_::_%s users found_" : ["Usuario %s encontrado","%s usuarios encontrados"], + "Could not detect user display name attribute. Please specify it yourself in advanced LDAP settings." : "No fue posible detectar el atributo del nombre a desplegar del usuario. Por favor especifícalo tú mismo en las configuraciones avanzadas de LDAP. ", + "Could not find the desired feature" : "No fue posible encontrar la función deseada.", + "Invalid Host" : "Servidor inválido", + "Test Configuration" : "Probar configuración", + "Help" : "Ayuda", + "Groups meeting these criteria are available in %s:" : "Los grupos que cumplen con los siguientes criterios están disponibles en %s:", + "Only these object classes:" : "Sólo estas clases de objetos:", + "Only from these groups:" : "Sólo desde estos grupos:", + "Search groups" : "Buscar grupos", + "Available groups" : "Grupos disponibles", + "Selected groups" : "Grupos seleccionados", + "Edit LDAP Query" : "Editar consulta a LDAP", + "LDAP Filter:" : "Filtro de LDAP:", + "The filter specifies which LDAP groups shall have access to the %s instance." : "El filtro especifica cuales grupos LDAP tendrán acceso a la instancia %s.", + "Verify settings and count the groups" : "Verificar las configuraciones y contar los grupos", + "When logging in, %s will find the user based on the following attributes:" : "Al iniciar sesion, %s encontrará al usuario con base en los siguientes atributos:", + "LDAP / AD Username:" : "Usuario LDAP / AD:", + "Allows login against the LDAP / AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Permite iniciar sesión contra el usuario LDAP / AD que es ya sea \"uid\" o \"sAMAccountName\" y será detectado. ", + "LDAP / AD Email Address:" : "Dirección de correo electrónico LDAP / AD", + "Allows login against an email attribute. \"mail\" and \"mailPrimaryAddress\" allowed." : "Permite iniciar sesión contra el atributo de email. \"mail\" y \"mailPrimaryAddresw\" está permitido. ", + "Other Attributes:" : "Otros atributos:", + "Defines the filter to apply, when login is attempted. \"%%uid\" replaces the username in the login action. Example: \"uid=%%uid\"" : "Define el filtro a aplicar cuando se intenta iniciar sesión. \"%% uid\" remplaza el usuario en la acción de inicio de sesión. Ejemplo: \"uid=%% uid\"", + "Test Loginname" : "Probar nombre de usuario", + "Verify settings" : "Verificar configuraciones ", + "1. Server" : "1. Servidor", + "%s. Server:" : "%s. Servidor:", + "Add a new configuration" : "Agregar una nueva configuración", + "Copy current configuration into new directory binding" : "Copiar la configuración actual a un nuevo directorio de vinculación", + "Delete the current configuration" : "Borrar la configuración actual", + "Host" : "Servidor", + "You can omit the protocol, unless you require SSL. If so, start with ldaps://" : "Puedes omitir el protocolo, a menos que requiera SSL. Si es el caso, empieza con ldaps://", + "Port" : "Puerto", + "Detect Port" : "Detectar Puerto", + "User DN" : "DN del usuario", + "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", + "Password" : "Contraseña", + "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "One Base DN per line" : "Un DN Base por línea", + "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", + "Detect Base DN" : "Detectar DN Base", + "Test Base DN" : "Probar el DN Base", + "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita solicitudes automaticas de LDAP. Es mejor para ambientes más grandes pero requiere mayor conocimiento de LDAP. ", + "Manually enter LDAP filters (recommended for large directories)" : "Ingresar los filtros LDAP manualmente (recomendado para directorios grandes)", + "Listing and searching for users is constrained by these criteria:" : "Los enlistados y las busquedas para los usuarios están acotados por estos criterios:", + "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Las clases de objetos más comunes para usuarios son organizationalPerson, person, user, and inetOrgPerson. Si no estás seguro de cuál clase de objeto selecciónar, por favor consulta tu directorio admin.", + "The filter specifies which LDAP users shall have access to the %s instance." : "El filtro especifica cuáles usuarios LDAP tendrán acceso a la instancia %s.", + "Verify settings and count users" : "Verificar configuraciones y contar ususarios", + "Saving" : "Guardando", + "Back" : "Atrás", + "Continue" : "Continuar", + "Please renew your password." : "Por favor renueva tu contraseña.", + "An internal error occurred." : "Se presentó un error interno. ", + "Please try again or contact your administrator." : "Por favor inténtarlo de nuevo o contacta a tu administrador. ", + "Current password" : "Contraseña actual", + "New password" : "Nueva contraseña", + "Renew password" : "Renovar contraseña", + "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?", + "Wrong password." : "Contraseña incorrecta. ", + "Cancel" : "Cancelar", + "LDAP" : "LDAP", + "Server" : "Servidor", + "Users" : "Usuarios", + "Login Attributes" : "Atributos de Inicio de Sesión", + "Groups" : "Grupos", + "Expert" : "Experto", + "Advanced" : "Avanzado", + "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Advertencia:</b> El módulo LDAP de PHP no está instalado, el backend no funcionará. Por favor solicita su instalación a tu administrador del sistema.", + "Connection Settings" : "Configuraciones de la conexión", + "Configuration Active" : "Configuracion Activa", + "When unchecked, this configuration will be skipped." : "Cuando no esté seleccionada, esta configuración será omitida.", + "Backup (Replica) Host" : "Servidor de copia de seguridad (Replica)", + "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Por favor proporciona un servidor de copia de seguridad opcional. Debe ser una réplica del servidor LDAP / AD principal.", + "Backup (Replica) Port" : "Puerto para copias de seguridad (Réplica)", + "Disable Main Server" : "Deshabilitar servidor principal", + "Only connect to the replica server." : "Sólo contectarse al servidor de réplica.", + "Turn off SSL certificate validation." : "Deshabilitar la validación del certificado SSL.", + "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "¡No se recomienda, úsalo únicamente para pruebas! Si la conexión sólo funciona con esta opción, importa el certificado SSL del servidor LDAP a tu servidor %s.", + "Cache Time-To-Live" : "Tiempo de vida del caché", + "in seconds. A change empties the cache." : "en segundos. Un cambio vacía la caché.", + "Directory Settings" : "Configuraciones del directorio", + "User Display Name Field" : "Campo de Usuario a desplegar", + "The LDAP attribute to use to generate the user's display name." : "El atributo LDAP a usar para generar el nombre del usuario a desplegar.", + "2nd User Display Name Field" : "2do Campo de Nombre a Desplegar del Usuario", + "Optional. An LDAP attribute to be added to the display name in brackets. Results in e.g. »John Doe (john.doe@example.org)«." : "Opcional. Un atributo LDAP puede ser agregado al nombre a despelegar entre corchetes. Ejemplos de resultados »John Doe (john.doe@example.org)«.", + "Base User Tree" : "Árbol de Usuario Base", + "One User Base DN per line" : "Un Usuario Base de DN por línea", + "User Search Attributes" : "Atributos de búsqueda de usuario", + "Optional; one attribute per line" : "Opcional; un atributo por línea", + "Group Display Name Field" : "Campo de Nombre de Grupo a Desplegar", + "The LDAP attribute to use to generate the groups's display name." : "El atributo LDAP a usar para generar el nombre para mostrar del grupo.", + "Base Group Tree" : "Árbol base de grupo", + "One Group Base DN per line" : "Un DN Base de Grupo por línea", + "Group Search Attributes" : "Atributos de Búsqueda de Grupo", + "Group-Member association" : "Asociación Grupo-Miembro", + "Dynamic Group Member URL" : "URL Dinámico de Miembro de Grupo ", + "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "El atributo de LDAP que, en objetos de grupo, contiene una URL de búsqueda LDAP que determina cuáles objetos pertenecen al grupo. (Un ajuste vacío deshabilita la funcionalidad de membrecía de grupo dinámica.)", + "Nested Groups" : "Grupos Anidados", + "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Cuando está activado, los grupos que contengan grupos están soportados. (Sólo funciona si el atributo de miembro de grupo contiene los DNs). ", + "Paging chunksize" : "Tamaño del chunk de paginación", + "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "El tamaño de chunk usado para las búsquedas con paginación de LDAP puede regresar resuldados volumniosos tales como enumeraciones de usuarios o grupos. (Establecerlo a 0 deshabilita las búsquedas con paginación en estos casos). ", + "Enable LDAP password changes per user" : "Habilitar cambio de contraseñas en LDAP por el usuario", + "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "Permitir que los usuarios LDAP puedan cambiar su contraseña y permitir a los Super Administradortes y Administradores de grupo cambiar la contraseña de sus usuarios LDAP. Únicamente funciona cuando la configuración de las poiíticas de control de acceso en el servidor LDAP está alineada. Como las contraseñas son enviadas en texto plano al servidor LDAP, se debe usar encripción en el transporte y del mismo modo se debe configurar el uso de funciones de resumen en el servidor LDAP", + "(New password is sent as plain text to LDAP)" : "(La nueva contraseña se envía como texto plano a LDAP)", + "Default password policy DN" : "DN de la política predeterminada de contraseñas", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "El DN de la política de contraseñas predeterminada que será usada para el manejo de expiración de contraseñas. Sólo funciona cuando está habilitado el cambio de contraseñas por el usuario y sólo está soportado para OpenLDAP. Déjalo en blanco para deshabilitar el manejo de expiración de contraseñas.", + "Special Attributes" : "Atributos Especiales", + "Quota Field" : "Campo de cuota", + "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Dejar en blanco para usar la cuota predeterminada del usuario. En caso contrario, por favor especifica el atributo LDAP / AD.", + "Quota Default" : "Cuota predeterminada", + "Override default quota for LDAP users who do not have a quota set in the Quota Field." : "Anular la cuota predeterminada para usuarios LDAP que no tienen una cuota establecida en el Campo Cuota. ", + "Email Field" : "Campo de correo electrónico", + "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Establecer el correo electrónico del usuario con base en el atributo LDAP. Déjalo vacío para el comportamiento predeterminado. ", + "User Home Folder Naming Rule" : "Regla de Nomenclatura para la Carpeta Inicio del Usuario", + "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Dejar vacío para el usuario (predeterminado). En caso contrario, especifica un atributo LDAP/AD.", + "Internal Username" : "Usuario interno", + "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Por defecto, el usuario interno se creará con base en el atributo UUID. Ésto asegura que el nombre de usuario sea único y que los caracteres no tengan que ser convertidos. El usuario intenro tiene la restricción de que sólo permite los siguientes caracteres: [ a-zA-Z0-9_.@- ]. El resto de los caracteres son reemplazados con su correspondencia ASCII o simplemente se omiten. En caso de colisiones, se agregará/ incrementará un número. El usuario interno se usa para identificar a un usuario internamente. Adicionalmente es el nombre predeterminado para la carpeta de inicio. También es parte de las URLs remotas, por ejemplo, para todos los servicios *DAV. Con este ajuste se puede anular el comportamiento predeterminado. Déjalo vacío para mantener el comportamiento predeterminado. Los cambios surtiran efecto sólo en los usuarios mapeados (agregados) nuevos a LDAP. ", + "Internal Username Attribute:" : "Atributo de nombre de usuario Interno:", + "Override UUID detection" : "Anular la detección UUID", + "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Por defecto, el atributo UUID se detecta automáticamente. Este atributo se usa para identificar, sin ninguna duda, a usuarios y grupos LDAP. Adicionalmente, el usuario interno se creará con base en el UUID, si no ha sido especificado otro comportamiento en la parte de arriba. Puedes anular la configuración y proporcionar el atributo que quieras. Debes asegurarte de que el atributo que quieres sea accesible por los usuarios y grupos y que sea único. Mantenlo vacío para tener el comportamiento predeterminado. Los cambios surtirán efecto sólo en los usuarios y grupos mapeados (agregados) nuevos a LDAP.", + "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", + "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", + "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", + "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", + "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "El id %u del marcador de posición falta. Será reemplazado con el usuario al consultar LDAP / AD.", + "Verify settings and count groups" : "Verificar configuraciones y contar grupos", + "Add a new and blank configuration" : "Agregar una configuración nueva y en blanco", + "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Puedes omitir el protocolo, excepto si requieres SSL. En ese caso, empieza con ldaps://", + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "in bytes" : "en bytes" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es_CO.json b/apps/user_ldap/l10n/es_CO.json new file mode 100644 index 00000000000..eefeb9a037f --- /dev/null +++ b/apps/user_ldap/l10n/es_CO.json @@ -0,0 +1,195 @@ +{ "translations": { + "Failed to clear the mappings." : "Se presentó una falla al borrar los mapeos.", + "Failed to delete the server configuration" : "Se presentó una falla al borrar la configuración del servidor", + "Invalid configuration: Anonymous binding is not allowed." : "Configuración inválida: La vinculación anónima no está permitida. ", + "Valid configuration, connection established!" : "¡Configuración válida, conexión establecida!", + "Valid configuration, but binding failed. Please check the server settings and credentials." : "Configuración válida, pero la vinculación falló. Por favor verifica la configuración del servidor y las credenciales.", + "Invalid configuration. Please have a look at the logs for further details." : "Configuración inválida. Por favor verifica las bitácoras para más detalles.", + "No action specified" : "No se ha especificado alguna acción", + "No configuration specified" : "No se ha especificado una configuración", + "No data specified" : "No se han especificado datos", + " Could not set configuration %s" : "No fue posible establecer la configuración %s", + "Action does not exist" : "La acción no existe", + "LDAP user and group backend" : "Backend de LDAP para usuario y grupo", + "Renewing …" : "Renovando ...", + "Very weak password" : "Contraseña muy debil", + "Weak password" : "Contraseña débil", + "So-so password" : "Contraseña aceptable", + "Good password" : "Buena contraseña", + "Strong password" : "Contraseña fuerte", + "The Base DN appears to be wrong" : "El DN Base parece estar incorrecto", + "Testing configuration…" : "Probando configuración... ", + "Configuration incorrect" : "Configuración Incorrecta", + "Configuration incomplete" : "Configuración incompleta", + "Configuration OK" : "Configuración correcta", + "Select groups" : "Seleccionar grupos", + "Select object classes" : "Seleccionar las clases de objeto", + "Please check the credentials, they seem to be wrong." : "Por favor verifica tus credenciales, al parecer están equivocadas.", + "Please specify the port, it could not be auto-detected." : "No fue posible auto-detectar el puerto, por favor especifícalo.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "No fue posible auto detectar el DN Base, por favor verifica las credenciales, servidor y puerto.", + "Could not detect Base DN, please enter it manually." : "No fue posible detectar el DN Base, por favor ingreésalo manualmente.", + "{nthServer}. Server" : "{nthServer}. Servidor", + "No object found in the given Base DN. Please revise." : "No fue posible encontrar ningún objeto en el DN Base dado. Por favor verifica.", + "More than 1,000 directory entries available." : "Se encuentran disponibles más de 1,000 elementos de directoiros. ", + " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Se presentó un error. Por favor verifica la DN Base, así como las configuraciones de la conexión y las credenciales.", + "Do you really want to delete the current Server Configuration?" : "¿Realmente deseas eliminar la configuración actual del servidor?", + "Confirm Deletion" : "Confirmar el borrado", + "Mappings cleared successfully!" : "¡Los mapeos se borraron exitosamente!", + "Error while clearing the mappings." : "Se presentó un error al borrar los mapeos. ", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "La vinculación anónima no está permitida. Por favor proporciona un Usuario DN y una Contaseña.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Error de Operaciones LDAP. Las vinculaciones anónimas pueden no estar permitidas. ", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Se presentó una falla en el guardado. Por favor verifica que la base de datos esté operando. Vuelve a cargar antes de continuar. ", + "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Cambiar la modalidad habilitará las consultas automaticas de LDAP. Dependiendo del tamaño de su LDAP esto puede tomar algun tiempo. ¿Aún desea cambiar la modalidad?", + "Mode switch" : "Cambio de modo", + "Select attributes" : "Seleccionar atributos", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Usuario no encontrado. Por favor verifica tus atributos de inicio de sesión y tu usuario. Filtro aplicado (para copiar-y-pegar para una validación de línea de comando): <br/>", + "User found and settings verified." : "Usuario encontrado y configuraciones verificadas. ", + "Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Considera refinar la búsqueda, ya que abarca demasiados usuarios y solo el primero de ellos podrá iniciar sesión. ", + "An unspecified error occurred. Please check log and settings." : "Se presentó un error inesperado. Por fvor verifica la bitácora y las configuraciones.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "El filtro de la búsqueda es inválido, posiblemente debido a temas de sintaxis como un número diferente de corchetes abiertos y cerrados. Por favor verifícalo. ", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Se presentó una falla con la conexión al servidor LDAP / AD, por favor verifica el servidor, puerto y credenciales. ", + "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Falta el \"%uid\" del marcador de posición. Será reemplazado con el nombre de usuario al consultar LDAP / AD.", + "Please provide a login name to test against" : "Favor de proporcionar un nombre de usuario contra el cual probar", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "El cuadro de grupo está deshabilitado, porque el servidor LDAP / AD no soporta memberOf.", + "Password change rejected. Hint: " : "Cambio de contraseña rechazado. Pista: ", + "Please login with the new password" : "Por favor inicia sesion con la nueva contraseña", + "Your password will expire tomorrow." : "Tu contraseña expirará mañana.", + "Your password will expire today." : "Tu contraseña expirará el día de hoy. ", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["La contraseña expirará dentro de %n día. ","La contraseña expirará dentro de %n días. "], + "LDAP / AD integration" : "Integración con LDAP / AD", + "_%s group found_::_%s groups found_" : ["Grupo %s encontrado","%s grupos encontrados"], + "_%s user found_::_%s users found_" : ["Usuario %s encontrado","%s usuarios encontrados"], + "Could not detect user display name attribute. Please specify it yourself in advanced LDAP settings." : "No fue posible detectar el atributo del nombre a desplegar del usuario. Por favor especifícalo tú mismo en las configuraciones avanzadas de LDAP. ", + "Could not find the desired feature" : "No fue posible encontrar la función deseada.", + "Invalid Host" : "Servidor inválido", + "Test Configuration" : "Probar configuración", + "Help" : "Ayuda", + "Groups meeting these criteria are available in %s:" : "Los grupos que cumplen con los siguientes criterios están disponibles en %s:", + "Only these object classes:" : "Sólo estas clases de objetos:", + "Only from these groups:" : "Sólo desde estos grupos:", + "Search groups" : "Buscar grupos", + "Available groups" : "Grupos disponibles", + "Selected groups" : "Grupos seleccionados", + "Edit LDAP Query" : "Editar consulta a LDAP", + "LDAP Filter:" : "Filtro de LDAP:", + "The filter specifies which LDAP groups shall have access to the %s instance." : "El filtro especifica cuales grupos LDAP tendrán acceso a la instancia %s.", + "Verify settings and count the groups" : "Verificar las configuraciones y contar los grupos", + "When logging in, %s will find the user based on the following attributes:" : "Al iniciar sesion, %s encontrará al usuario con base en los siguientes atributos:", + "LDAP / AD Username:" : "Usuario LDAP / AD:", + "Allows login against the LDAP / AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Permite iniciar sesión contra el usuario LDAP / AD que es ya sea \"uid\" o \"sAMAccountName\" y será detectado. ", + "LDAP / AD Email Address:" : "Dirección de correo electrónico LDAP / AD", + "Allows login against an email attribute. \"mail\" and \"mailPrimaryAddress\" allowed." : "Permite iniciar sesión contra el atributo de email. \"mail\" y \"mailPrimaryAddresw\" está permitido. ", + "Other Attributes:" : "Otros atributos:", + "Defines the filter to apply, when login is attempted. \"%%uid\" replaces the username in the login action. Example: \"uid=%%uid\"" : "Define el filtro a aplicar cuando se intenta iniciar sesión. \"%% uid\" remplaza el usuario en la acción de inicio de sesión. Ejemplo: \"uid=%% uid\"", + "Test Loginname" : "Probar nombre de usuario", + "Verify settings" : "Verificar configuraciones ", + "1. Server" : "1. Servidor", + "%s. Server:" : "%s. Servidor:", + "Add a new configuration" : "Agregar una nueva configuración", + "Copy current configuration into new directory binding" : "Copiar la configuración actual a un nuevo directorio de vinculación", + "Delete the current configuration" : "Borrar la configuración actual", + "Host" : "Servidor", + "You can omit the protocol, unless you require SSL. If so, start with ldaps://" : "Puedes omitir el protocolo, a menos que requiera SSL. Si es el caso, empieza con ldaps://", + "Port" : "Puerto", + "Detect Port" : "Detectar Puerto", + "User DN" : "DN del usuario", + "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", + "Password" : "Contraseña", + "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "One Base DN per line" : "Un DN Base por línea", + "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", + "Detect Base DN" : "Detectar DN Base", + "Test Base DN" : "Probar el DN Base", + "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita solicitudes automaticas de LDAP. Es mejor para ambientes más grandes pero requiere mayor conocimiento de LDAP. ", + "Manually enter LDAP filters (recommended for large directories)" : "Ingresar los filtros LDAP manualmente (recomendado para directorios grandes)", + "Listing and searching for users is constrained by these criteria:" : "Los enlistados y las busquedas para los usuarios están acotados por estos criterios:", + "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Las clases de objetos más comunes para usuarios son organizationalPerson, person, user, and inetOrgPerson. Si no estás seguro de cuál clase de objeto selecciónar, por favor consulta tu directorio admin.", + "The filter specifies which LDAP users shall have access to the %s instance." : "El filtro especifica cuáles usuarios LDAP tendrán acceso a la instancia %s.", + "Verify settings and count users" : "Verificar configuraciones y contar ususarios", + "Saving" : "Guardando", + "Back" : "Atrás", + "Continue" : "Continuar", + "Please renew your password." : "Por favor renueva tu contraseña.", + "An internal error occurred." : "Se presentó un error interno. ", + "Please try again or contact your administrator." : "Por favor inténtarlo de nuevo o contacta a tu administrador. ", + "Current password" : "Contraseña actual", + "New password" : "Nueva contraseña", + "Renew password" : "Renovar contraseña", + "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?", + "Wrong password." : "Contraseña incorrecta. ", + "Cancel" : "Cancelar", + "LDAP" : "LDAP", + "Server" : "Servidor", + "Users" : "Usuarios", + "Login Attributes" : "Atributos de Inicio de Sesión", + "Groups" : "Grupos", + "Expert" : "Experto", + "Advanced" : "Avanzado", + "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Advertencia:</b> El módulo LDAP de PHP no está instalado, el backend no funcionará. Por favor solicita su instalación a tu administrador del sistema.", + "Connection Settings" : "Configuraciones de la conexión", + "Configuration Active" : "Configuracion Activa", + "When unchecked, this configuration will be skipped." : "Cuando no esté seleccionada, esta configuración será omitida.", + "Backup (Replica) Host" : "Servidor de copia de seguridad (Replica)", + "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Por favor proporciona un servidor de copia de seguridad opcional. Debe ser una réplica del servidor LDAP / AD principal.", + "Backup (Replica) Port" : "Puerto para copias de seguridad (Réplica)", + "Disable Main Server" : "Deshabilitar servidor principal", + "Only connect to the replica server." : "Sólo contectarse al servidor de réplica.", + "Turn off SSL certificate validation." : "Deshabilitar la validación del certificado SSL.", + "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "¡No se recomienda, úsalo únicamente para pruebas! Si la conexión sólo funciona con esta opción, importa el certificado SSL del servidor LDAP a tu servidor %s.", + "Cache Time-To-Live" : "Tiempo de vida del caché", + "in seconds. A change empties the cache." : "en segundos. Un cambio vacía la caché.", + "Directory Settings" : "Configuraciones del directorio", + "User Display Name Field" : "Campo de Usuario a desplegar", + "The LDAP attribute to use to generate the user's display name." : "El atributo LDAP a usar para generar el nombre del usuario a desplegar.", + "2nd User Display Name Field" : "2do Campo de Nombre a Desplegar del Usuario", + "Optional. An LDAP attribute to be added to the display name in brackets. Results in e.g. »John Doe (john.doe@example.org)«." : "Opcional. Un atributo LDAP puede ser agregado al nombre a despelegar entre corchetes. Ejemplos de resultados »John Doe (john.doe@example.org)«.", + "Base User Tree" : "Árbol de Usuario Base", + "One User Base DN per line" : "Un Usuario Base de DN por línea", + "User Search Attributes" : "Atributos de búsqueda de usuario", + "Optional; one attribute per line" : "Opcional; un atributo por línea", + "Group Display Name Field" : "Campo de Nombre de Grupo a Desplegar", + "The LDAP attribute to use to generate the groups's display name." : "El atributo LDAP a usar para generar el nombre para mostrar del grupo.", + "Base Group Tree" : "Árbol base de grupo", + "One Group Base DN per line" : "Un DN Base de Grupo por línea", + "Group Search Attributes" : "Atributos de Búsqueda de Grupo", + "Group-Member association" : "Asociación Grupo-Miembro", + "Dynamic Group Member URL" : "URL Dinámico de Miembro de Grupo ", + "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "El atributo de LDAP que, en objetos de grupo, contiene una URL de búsqueda LDAP que determina cuáles objetos pertenecen al grupo. (Un ajuste vacío deshabilita la funcionalidad de membrecía de grupo dinámica.)", + "Nested Groups" : "Grupos Anidados", + "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Cuando está activado, los grupos que contengan grupos están soportados. (Sólo funciona si el atributo de miembro de grupo contiene los DNs). ", + "Paging chunksize" : "Tamaño del chunk de paginación", + "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "El tamaño de chunk usado para las búsquedas con paginación de LDAP puede regresar resuldados volumniosos tales como enumeraciones de usuarios o grupos. (Establecerlo a 0 deshabilita las búsquedas con paginación en estos casos). ", + "Enable LDAP password changes per user" : "Habilitar cambio de contraseñas en LDAP por el usuario", + "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "Permitir que los usuarios LDAP puedan cambiar su contraseña y permitir a los Super Administradortes y Administradores de grupo cambiar la contraseña de sus usuarios LDAP. Únicamente funciona cuando la configuración de las poiíticas de control de acceso en el servidor LDAP está alineada. Como las contraseñas son enviadas en texto plano al servidor LDAP, se debe usar encripción en el transporte y del mismo modo se debe configurar el uso de funciones de resumen en el servidor LDAP", + "(New password is sent as plain text to LDAP)" : "(La nueva contraseña se envía como texto plano a LDAP)", + "Default password policy DN" : "DN de la política predeterminada de contraseñas", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "El DN de la política de contraseñas predeterminada que será usada para el manejo de expiración de contraseñas. Sólo funciona cuando está habilitado el cambio de contraseñas por el usuario y sólo está soportado para OpenLDAP. Déjalo en blanco para deshabilitar el manejo de expiración de contraseñas.", + "Special Attributes" : "Atributos Especiales", + "Quota Field" : "Campo de cuota", + "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Dejar en blanco para usar la cuota predeterminada del usuario. En caso contrario, por favor especifica el atributo LDAP / AD.", + "Quota Default" : "Cuota predeterminada", + "Override default quota for LDAP users who do not have a quota set in the Quota Field." : "Anular la cuota predeterminada para usuarios LDAP que no tienen una cuota establecida en el Campo Cuota. ", + "Email Field" : "Campo de correo electrónico", + "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Establecer el correo electrónico del usuario con base en el atributo LDAP. Déjalo vacío para el comportamiento predeterminado. ", + "User Home Folder Naming Rule" : "Regla de Nomenclatura para la Carpeta Inicio del Usuario", + "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Dejar vacío para el usuario (predeterminado). En caso contrario, especifica un atributo LDAP/AD.", + "Internal Username" : "Usuario interno", + "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Por defecto, el usuario interno se creará con base en el atributo UUID. Ésto asegura que el nombre de usuario sea único y que los caracteres no tengan que ser convertidos. El usuario intenro tiene la restricción de que sólo permite los siguientes caracteres: [ a-zA-Z0-9_.@- ]. El resto de los caracteres son reemplazados con su correspondencia ASCII o simplemente se omiten. En caso de colisiones, se agregará/ incrementará un número. El usuario interno se usa para identificar a un usuario internamente. Adicionalmente es el nombre predeterminado para la carpeta de inicio. También es parte de las URLs remotas, por ejemplo, para todos los servicios *DAV. Con este ajuste se puede anular el comportamiento predeterminado. Déjalo vacío para mantener el comportamiento predeterminado. Los cambios surtiran efecto sólo en los usuarios mapeados (agregados) nuevos a LDAP. ", + "Internal Username Attribute:" : "Atributo de nombre de usuario Interno:", + "Override UUID detection" : "Anular la detección UUID", + "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Por defecto, el atributo UUID se detecta automáticamente. Este atributo se usa para identificar, sin ninguna duda, a usuarios y grupos LDAP. Adicionalmente, el usuario interno se creará con base en el UUID, si no ha sido especificado otro comportamiento en la parte de arriba. Puedes anular la configuración y proporcionar el atributo que quieras. Debes asegurarte de que el atributo que quieres sea accesible por los usuarios y grupos y que sea único. Mantenlo vacío para tener el comportamiento predeterminado. Los cambios surtirán efecto sólo en los usuarios y grupos mapeados (agregados) nuevos a LDAP.", + "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", + "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", + "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", + "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", + "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "El id %u del marcador de posición falta. Será reemplazado con el usuario al consultar LDAP / AD.", + "Verify settings and count groups" : "Verificar configuraciones y contar grupos", + "Add a new and blank configuration" : "Agregar una configuración nueva y en blanco", + "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Puedes omitir el protocolo, excepto si requieres SSL. En ese caso, empieza con ldaps://", + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "in bytes" : "en bytes" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/user_ldap/tests/Settings/AdminTest.php b/apps/user_ldap/tests/Settings/AdminTest.php index cd06b27f913..86234861536 100644 --- a/apps/user_ldap/tests/Settings/AdminTest.php +++ b/apps/user_ldap/tests/Settings/AdminTest.php @@ -43,7 +43,7 @@ class AdminTest extends TestCase { public function setUp() { parent::setUp(); - $this->l10n = $this->getMockBuilder('\OCP\IL10N')->getMock(); + $this->l10n = $this->getMockBuilder(IL10N::class)->getMock(); $this->admin = new Admin( $this->l10n diff --git a/apps/user_ldap/tests/User/UserTest.php b/apps/user_ldap/tests/User/UserTest.php index 5f6148b1332..b118a613e87 100644 --- a/apps/user_ldap/tests/User/UserTest.php +++ b/apps/user_ldap/tests/User/UserTest.php @@ -38,6 +38,7 @@ use OCP\Image; use OCP\IUser; use OCP\IUserManager; use OCP\Notification\IManager as INotificationManager; +use OCP\Notification\INotification; /** * Class UserTest @@ -134,7 +135,7 @@ class UserTest extends \Test\TestCase { $uid = 'alice'; $dn = 'uid=alice,dc=foo,dc=bar'; - $uuser = $this->getMockBuilder('\OCP\IUser') + $uuser = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $uuser->expects($this->once()) @@ -1279,7 +1280,7 @@ class UserTest extends \Test\TestCase { return array(); })); - $notification = $this->getMockBuilder('OCP\Notification\INotification') + $notification = $this->getMockBuilder(INotification::class) ->disableOriginalConstructor() ->getMock(); $notification->expects($this->any()) @@ -1353,7 +1354,7 @@ class UserTest extends \Test\TestCase { return array(); })); - $notification = $this->getMockBuilder('OCP\Notification\INotification') + $notification = $this->getMockBuilder(INotification::class) ->disableOriginalConstructor() ->getMock(); $notification->expects($this->any()) diff --git a/apps/workflowengine/l10n/es_CO.js b/apps/workflowengine/l10n/es_CO.js new file mode 100644 index 00000000000..a67dbc8472f --- /dev/null +++ b/apps/workflowengine/l10n/es_CO.js @@ -0,0 +1,73 @@ +OC.L10N.register( + "workflowengine", + { + "Saved" : "Guardado", + "Saving failed:" : "Falla al guardar:", + "File MIME type" : "Tipo MIME del archivo", + "is" : "es", + "is not" : "no es", + "matches" : "coincide", + "does not match" : "No coincide", + "Example: {placeholder}" : "Ejemplo: {placeholder}", + "File size (upload)" : "Tamaño del archivo (carga)", + "less" : "menos", + "less or equals" : "menos o igual", + "greater or equals" : "mayor o igual", + "greater" : "mayor", + "File system tag" : "Etiqueta del sistema de archivos", + "is tagged with" : "está etiquetado con", + "is not tagged with" : "no está etiquetado con", + "Select tag…" : "Seleccionar etiqueta...", + "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", + "Request time" : "Tiempo de la solicitud", + "between" : "entre", + "not between" : "no entre", + "Start" : "Inicio", + "End" : "Fin", + "Select timezone…" : "Selecciona la zona horaria...", + "Request URL" : "Solicitar URL", + "Predefined URLs" : "URLs predefinidos", + "Files WebDAV" : "Archivos WebDAV", + "Request user agent" : "Solicitar agente de usuario", + "Sync clients" : "Sincronizar clientes", + "Android client" : "Cliente Android", + "iOS client" : "Cliente iOS", + "Desktop client" : "Cliente de escritorio", + "User group membership" : "Membresia al grupo de usuarios", + "is member of" : "es miembro de", + "is not member of" : "no es miembro de", + "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", + "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", + "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", + "Workflow" : "Flujo de trabajo", + "Open documentation" : "Abrir la documentación", + "Add rule group" : "Agregar regla de grupo", + "Short rule description" : "Descripción corta de la regla", + "Add rule" : "Agregar regla", + "Reset" : "Restablecer", + "Save" : "Guardar", + "Saving…" : "Guardando...", + "Loading…" : "Cargando...", + "Successfully saved" : "Guardado exitosamente", + "File mime type" : "Tipo mime del archivo" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/es_CO.json b/apps/workflowengine/l10n/es_CO.json new file mode 100644 index 00000000000..1ae425f4e19 --- /dev/null +++ b/apps/workflowengine/l10n/es_CO.json @@ -0,0 +1,71 @@ +{ "translations": { + "Saved" : "Guardado", + "Saving failed:" : "Falla al guardar:", + "File MIME type" : "Tipo MIME del archivo", + "is" : "es", + "is not" : "no es", + "matches" : "coincide", + "does not match" : "No coincide", + "Example: {placeholder}" : "Ejemplo: {placeholder}", + "File size (upload)" : "Tamaño del archivo (carga)", + "less" : "menos", + "less or equals" : "menos o igual", + "greater or equals" : "mayor o igual", + "greater" : "mayor", + "File system tag" : "Etiqueta del sistema de archivos", + "is tagged with" : "está etiquetado con", + "is not tagged with" : "no está etiquetado con", + "Select tag…" : "Seleccionar etiqueta...", + "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", + "Request time" : "Tiempo de la solicitud", + "between" : "entre", + "not between" : "no entre", + "Start" : "Inicio", + "End" : "Fin", + "Select timezone…" : "Selecciona la zona horaria...", + "Request URL" : "Solicitar URL", + "Predefined URLs" : "URLs predefinidos", + "Files WebDAV" : "Archivos WebDAV", + "Request user agent" : "Solicitar agente de usuario", + "Sync clients" : "Sincronizar clientes", + "Android client" : "Cliente Android", + "iOS client" : "Cliente iOS", + "Desktop client" : "Cliente de escritorio", + "User group membership" : "Membresia al grupo de usuarios", + "is member of" : "es miembro de", + "is not member of" : "no es miembro de", + "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", + "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", + "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", + "Workflow" : "Flujo de trabajo", + "Open documentation" : "Abrir la documentación", + "Add rule group" : "Agregar regla de grupo", + "Short rule description" : "Descripción corta de la regla", + "Add rule" : "Agregar regla", + "Reset" : "Restablecer", + "Save" : "Guardar", + "Saving…" : "Guardando...", + "Loading…" : "Cargando...", + "Successfully saved" : "Guardado exitosamente", + "File mime type" : "Tipo mime del archivo" +},"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 index f1505694a22..2e22dd57a98 100644 --- a/apps/workflowengine/l10n/id.js +++ b/apps/workflowengine/l10n/id.js @@ -1,9 +1,9 @@ OC.L10N.register( "workflowengine", { - "Successfully saved" : "Berhasil disimpan", + "Saved" : "Disimpan", "Saving failed:" : "Penyimpanan gagal:", - "File mime type" : "Tipe MIME berkas", + "File MIME type" : "Berkas tipe MIME", "is" : "adalah", "is not" : "bukan", "matches" : "cocok dengan", @@ -50,6 +50,24 @@ OC.L10N.register( "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" + "The given group does not exist" : "Grup yang diberikan tidak ada", + "Check %s is invalid or does not exist" : "Cek %s tidak valid atau tidak ada", + "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", + "Workflow" : "Alur kerja", + "Open documentation" : "Buka dokumentasi", + "Add rule group" : "Tambahkan aturan grup ", + "Short rule description" : "Deskripsi aturan singkat", + "Add rule" : "Tambahkan aturan", + "Reset" : "Setel ulang", + "Save" : "Simpan", + "Saving…" : "Menyimpan...", + "Loading…" : "Memuat...", + "Successfully saved" : "Berhasil disimpan", + "File mime type" : "Tipe MIME berkas" }, "nplurals=1; plural=0;"); diff --git a/apps/workflowengine/l10n/id.json b/apps/workflowengine/l10n/id.json index 5091cd67bd3..319caa1ba6e 100644 --- a/apps/workflowengine/l10n/id.json +++ b/apps/workflowengine/l10n/id.json @@ -1,7 +1,7 @@ { "translations": { - "Successfully saved" : "Berhasil disimpan", + "Saved" : "Disimpan", "Saving failed:" : "Penyimpanan gagal:", - "File mime type" : "Tipe MIME berkas", + "File MIME type" : "Berkas tipe MIME", "is" : "adalah", "is not" : "bukan", "matches" : "cocok dengan", @@ -48,6 +48,24 @@ "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" + "The given group does not exist" : "Grup yang diberikan tidak ada", + "Check %s is invalid or does not exist" : "Cek %s tidak valid atau tidak ada", + "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", + "Workflow" : "Alur kerja", + "Open documentation" : "Buka dokumentasi", + "Add rule group" : "Tambahkan aturan grup ", + "Short rule description" : "Deskripsi aturan singkat", + "Add rule" : "Tambahkan aturan", + "Reset" : "Setel ulang", + "Save" : "Simpan", + "Saving…" : "Menyimpan...", + "Loading…" : "Memuat...", + "Successfully saved" : "Berhasil disimpan", + "File mime type" : "Tipe MIME berkas" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/workflowengine/tests/Check/AbstractStringCheckTest.php b/apps/workflowengine/tests/Check/AbstractStringCheckTest.php index 91da8931604..b7051870115 100644 --- a/apps/workflowengine/tests/Check/AbstractStringCheckTest.php +++ b/apps/workflowengine/tests/Check/AbstractStringCheckTest.php @@ -21,11 +21,12 @@ namespace OCA\WorkflowEngine\Tests\Check; +use OCP\IL10N; class AbstractStringCheckTest extends \Test\TestCase { protected function getCheckMock() { - $l = $this->getMockBuilder('OCP\IL10N') + $l = $this->getMockBuilder(IL10N::class) ->disableOriginalConstructor() ->getMock(); $l->expects($this->any()) diff --git a/apps/workflowengine/tests/Check/RequestRemoteAddressTest.php b/apps/workflowengine/tests/Check/RequestRemoteAddressTest.php index efe8f6372dd..9e313122a1f 100644 --- a/apps/workflowengine/tests/Check/RequestRemoteAddressTest.php +++ b/apps/workflowengine/tests/Check/RequestRemoteAddressTest.php @@ -21,6 +21,8 @@ namespace OCA\WorkflowEngine\Tests\Check; +use OCP\IL10N; +use OCP\IRequest; class RequestRemoteAddressTest extends \Test\TestCase { @@ -31,7 +33,7 @@ class RequestRemoteAddressTest extends \Test\TestCase { * @return \OCP\IL10N|\PHPUnit_Framework_MockObject_MockObject */ protected function getL10NMock() { - $l = $this->getMockBuilder('OCP\IL10N') + $l = $this->getMockBuilder(IL10N::class) ->disableOriginalConstructor() ->getMock(); $l->expects($this->any()) @@ -45,7 +47,7 @@ class RequestRemoteAddressTest extends \Test\TestCase { protected function setUp() { parent::setUp(); - $this->request = $this->getMockBuilder('OCP\IRequest') + $this->request = $this->getMockBuilder(IRequest::class) ->getMock(); } diff --git a/apps/workflowengine/tests/Check/RequestTimeTest.php b/apps/workflowengine/tests/Check/RequestTimeTest.php index c07b4bf8775..7249f5109f2 100644 --- a/apps/workflowengine/tests/Check/RequestTimeTest.php +++ b/apps/workflowengine/tests/Check/RequestTimeTest.php @@ -21,6 +21,7 @@ namespace OCA\WorkflowEngine\Tests\Check; +use OCP\IL10N; class RequestTimeTest extends \Test\TestCase { @@ -31,7 +32,7 @@ class RequestTimeTest extends \Test\TestCase { * @return \OCP\IL10N|\PHPUnit_Framework_MockObject_MockObject */ protected function getL10NMock() { - $l = $this->getMockBuilder('OCP\IL10N') + $l = $this->getMockBuilder(IL10N::class) ->disableOriginalConstructor() ->getMock(); $l->expects($this->any()) diff --git a/build/.phan/config.php b/build/.phan/config.php index cdf41630766..47bcb87acdd 100644 --- a/build/.phan/config.php +++ b/build/.phan/config.php @@ -43,29 +43,50 @@ return [ "exclude_analysis_directory_list" => [ '3rdparty', 'lib/composer', + 'apps/admin_audit/composer', 'apps/admin_audit/tests', + 'apps/comments/composer', 'apps/comments/tests', + 'apps/dav/composer', 'apps/dav/tests', + 'apps/encryption/composer', 'apps/encryption/tests', + 'apps/federatedfilesharing/composer', 'apps/federatedfilesharing/tests', + 'apps/federation/composer', 'apps/federation/tests', + 'apps/files/composer', 'apps/files/tests', 'apps/files_external/3rdparty', + 'apps/files_external/composer', 'apps/files_external/tests', 'apps/files_sharing/composer', 'apps/files_sharing/tests', + 'apps/files_trashbin/composer', 'apps/files_trashbin/tests', + 'apps/files_versions/composer', 'apps/files_versions/tests', + 'apps/lookup_server_connector/composer', 'apps/lookup_server_connector/tests', + 'apps/oauth2/composer', 'apps/oauth2/tests', + 'apps/provisioning_api/composer', 'apps/provisioning_api/tests', + 'apps/sharebymail/composer', 'apps/sharebymail/tests', + 'apps/systemtags/composer', 'apps/systemtags/tests', + 'apps/testing/composer', 'apps/testing/tests', + 'apps/theming/composer', 'apps/theming/tests', + 'apps/twofactor_backupcodes/composer', 'apps/twofactor_backupcodes/tests', + 'apps/updatenotification/composer', 'apps/updatenotification/tests', + 'apps/user_ldap/composer', 'apps/user_ldap/tests', + 'apps/workflowengine/composer', 'apps/workflowengine/tests', ], diff --git a/core/Command/Maintenance/Repair.php b/core/Command/Maintenance/Repair.php index 299554fe190..9401dafd26b 100644 --- a/core/Command/Maintenance/Repair.php +++ b/core/Command/Maintenance/Repair.php @@ -27,6 +27,7 @@ namespace OC\Core\Command\Maintenance; use Exception; +use OCP\App\IAppManager; use OCP\IConfig; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Helper\ProgressBar; @@ -47,15 +48,20 @@ class Repair extends Command { private $progress; /** @var OutputInterface */ private $output; + /** @var IAppManager */ + private $appManager; /** * @param \OC\Repair $repair * @param IConfig $config + * @param EventDispatcherInterface $dispatcher + * @param IAppManager $appManager */ - public function __construct(\OC\Repair $repair, IConfig $config, EventDispatcherInterface $dispatcher) { + public function __construct(\OC\Repair $repair, IConfig $config, EventDispatcherInterface $dispatcher, IAppManager $appManager) { $this->repair = $repair; $this->config = $config; $this->dispatcher = $dispatcher; + $this->appManager = $appManager; parent::__construct(); } @@ -78,9 +84,9 @@ class Repair extends Command { } } - $apps = \OC::$server->getAppManager()->getInstalledApps(); + $apps = $this->appManager->getInstalledApps(); foreach ($apps as $app) { - if (!\OC_App::isEnabled($app)) { + if (!$appManager->isEnabledForUser($app)) { continue; } $info = \OC_App::getAppInfo($app); diff --git a/core/css/apps.scss b/core/css/apps.scss index 4f17c91764e..159982e0bf1 100644 --- a/core/css/apps.scss +++ b/core/css/apps.scss @@ -864,6 +864,12 @@ kbd { width: 16px; padding: 0 10px; } + > input.checkbox + label { + padding: 0 !important; + &::before { + margin: -2px 12px 0; + } + } } [class^='icon-'], [class*=' icon-']{ diff --git a/core/css/guest.css b/core/css/guest.css index 0c52d792f79..576efafec5f 100644 --- a/core/css/guest.css +++ b/core/css/guest.css @@ -389,6 +389,7 @@ form .warning input[type='checkbox']+label { margin: 10px 0; text-align: center; width: 100%; + text-shadow: 0 0 2px rgba(0, 0, 0, .4); // better readability on bright background } #forgot-password { padding: 11px; @@ -559,6 +560,7 @@ fieldset.update legend + p { p.info { margin: 0 auto; padding-top: 20px; + text-shadow: 0 0 2px rgba(0, 0, 0, .4); // better readability on bright background -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; diff --git a/core/css/header.scss b/core/css/header.scss index 656440520a0..c03fa2aa0d3 100644 --- a/core/css/header.scss +++ b/core/css/header.scss @@ -424,6 +424,7 @@ nav { &:active, &.active { opacity: 1; + box-shadow: inset 2px 0 $color-primary; } } } @@ -478,8 +479,6 @@ nav { background-color: rgba($color-main-background, .97); white-space: nowrap; border: none; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; border-radius: 3px; border-top-left-radius: 0; border-top-right-radius: 0; diff --git a/core/css/icons.scss b/core/css/icons.scss index a4b209455fc..bdef106e3cd 100644 --- a/core/css/icons.scss +++ b/core/css/icons.scss @@ -94,6 +94,10 @@ img, object, video, button, textarea, input, select, div[contenteditable=true] { background-image: url('../img/actions/add.svg?v=1'); } +.icon-address { + background-image: url('../img/actions/address.svg?v=1'); +} + .icon-audio { background-image: url('../img/actions/audio.svg?v=1'); } @@ -348,6 +352,10 @@ img, object, video, button, textarea, input, select, div[contenteditable=true] { background-image: url('../img/actions/star.svg?v=1'); } +.icon-star-dark { + background-image: url('../img/actions/star-dark.svg?v=1'); +} + .icon-starred { &:hover, &:focus { background-image: url('../img/actions/star.svg?v=1'); diff --git a/core/css/jquery.ocdialog.scss b/core/css/jquery.ocdialog.scss index efb2cc2f2e3..414443a5d3c 100644 --- a/core/css/jquery.ocdialog.scss +++ b/core/css/jquery.ocdialog.scss @@ -6,8 +6,6 @@ padding: 15px; z-index: 10000; font-size: 100%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; box-sizing: border-box; min-width: 200px; top: 50%; diff --git a/core/css/multiselect.scss b/core/css/multiselect.scss index cf13563e772..3aa9eb639dd 100644 --- a/core/css/multiselect.scss +++ b/core/css/multiselect.scss @@ -31,8 +31,6 @@ ul.multiselectoptions { border-bottom-right-radius: 3px; width: 100%; /* do not cut off group names */ - -webkit-box-shadow: 0 1px 10px $color-box-shadow; - -moz-box-shadow: 0 1px 10px $color-box-shadow; box-shadow: 0 1px 10px $color-box-shadow; } &.up { diff --git a/core/css/styles.scss b/core/css/styles.scss index 3b621d69862..d74840fe444 100644 --- a/core/css/styles.scss +++ b/core/css/styles.scss @@ -249,6 +249,10 @@ body { left: 0; } +#app-navigation * { + box-sizing: border-box; +} + #controls { .button, button { box-sizing: border-box; diff --git a/core/img/actions/address.svg b/core/img/actions/address.svg new file mode 100644 index 00000000000..2e4c19c125b --- /dev/null +++ b/core/img/actions/address.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xml:space="preserve" height="16" width="16" enable-background="new 0 0 100 100" y="0px" x="0px" viewBox="0 0 16 16"><path d="m8.2945 1c-2.6478 0-4.7945 2.1469-4.7945 4.7945 0 2.6479 4.7945 9.2055 4.7945 9.2055s4.7945-6.5576 4.7945-9.2055c0-2.6476-2.147-4.7945-4.7945-4.7945zm0 7.4793c-1.4828 0-2.6847-1.2019-2.6847-2.6851 0-1.4828 1.2019-2.6844 2.6847-2.6844 1.4832 0 2.6847 1.2015 2.6847 2.6844 0.000345 1.4832-1.2015 2.6851-2.6847 2.6851z" stroke-width=".46667"/></svg> diff --git a/core/l10n/es_CO.js b/core/l10n/es_CO.js new file mode 100644 index 00000000000..6239f9520c3 --- /dev/null +++ b/core/l10n/es_CO.js @@ -0,0 +1,356 @@ +OC.L10N.register( + "core", + { + "Please select a file." : "Por favor selecciona un archivo.", + "File is too big" : "El archivo es demasiado grande.", + "The selected file is not an image." : "El archivo seleccionado no es una imagen.", + "The selected file cannot be read." : "El archivo seleccionado no se puede leer.", + "Invalid file provided" : "Archivo proporcionado inválido", + "No image or file provided" : "No se especificó un archivo o imagen", + "Unknown filetype" : "Tipo de archivo desconocido", + "Invalid image" : "Imagen inválida", + "An error occurred. Please contact your admin." : "Se presentó un error. Por favor contacta a tu adminsitrador. ", + "No temporary profile picture available, try again" : "No hay una imagen de perfil temporal disponible, por favor inténtalo de nuevo", + "No crop data provided" : "No se han proporcionado datos del recorte", + "No valid crop data provided" : "No se han proporcionado datos válidos del recorte", + "Crop is not square" : "El recorte no es cuadrado", + "State token does not match" : "La ficha de estado no corresponde", + "Password reset is disabled" : "Restablecer contraseña se encuentra deshabilitado", + "Couldn't reset password because the token is invalid" : "No ha sido posible restablecer la contraseña porque la ficha es inválida", + "Couldn't reset password because the token is expired" : "No ha sido posible restablecer la contraseña porque la ficha ha expirado", + "Could not send reset email because there is no email address for this username. Please contact your administrator." : "No fue posible enviar el correo electrónico para restablecer porque no hay una dirección de correo electrónico para este usuario. Por favor contacta a tu adminsitrador. ", + "%s password reset" : "%s restablecer la contraseña", + "Password reset" : "Restablecer contraseña", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en el siguiente botón para restablecer tu contraseña. Si no has solicitado restablecer su contraseña, por favor ignora este correo. ", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en la siguiente liga para restablecer su contraseña. Si no has solicitado restablecer la contraseña, por favor ignora este mensaje. ", + "Reset your password" : "Restablecer tu contraseña", + "Couldn't send reset email. Please contact your administrator." : "No fue posible enviar el correo de restauración. Por favor contacta a tu adminsitrador. ", + "Couldn't send reset email. Please make sure your username is correct." : "No fue posible restablecer el correo electrónico. Por favor asegurarte de que tu nombre de usuario sea correcto. ", + "Preparing update" : "Preparando actualización", + "[%d / %d]: %s" : "[%d / %d]: %s ", + "Repair warning: " : "Advertencia de reparación:", + "Repair error: " : "Error de reparación: ", + "Please use the command line updater because automatic updating is disabled in the config.php." : "Por favor usa el actualizador de línea de comandos ya que el actualizador automático se encuentra deshabilitado en config.php.", + "[%d / %d]: Checking table %s" : "[%d / %d]: Verificando tabla %s", + "Turned on maintenance mode" : "Modo mantenimiento activado", + "Turned off maintenance mode" : "Modo mantenimiento desactivado", + "Maintenance mode is kept active" : "El modo mantenimiento sigue activo", + "Updating database schema" : "Actualizando esquema de base de datos", + "Updated database" : "Base de datos actualizada", + "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Verificando si el archivo del esquema de base de datos puede ser actualizado (esto puedo tomar mucho tiempo dependiendo del tamaño de la base de datos)", + "Checked database schema update" : "Actualización del esquema de base de datos verificada", + "Checking updates of apps" : "Verificando actualizaciones para aplicaciones", + "Checking for update of app \"%s\" in appstore" : "Verificando actualizaciones para la aplicacion \"%s\" en la appstore", + "Update app \"%s\" from appstore" : "Actualizar la aplicación \"%s\" desde la appstore", + "Checked for update of app \"%s\" in appstore" : "Se verificaron actualizaciones para la aplicación \"%s\" en la appstore", + "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Verificando si el esquema de la base de datos para %s puede ser actualizado (esto puede tomar mucho tiempo dependiendo del tamaño de la base de datos)", + "Checked database schema update for apps" : "Se verificó la actualización del esquema de la base de datos para las aplicaciones", + "Updated \"%s\" to %s" : "Actualizando \"%s\" a %s", + "Set log level to debug" : "Establecer nivel de bitacora a depurar", + "Reset log level" : "Restablecer nivel de bitácora", + "Starting code integrity check" : "Comenzando verificación de integridad del código", + "Finished code integrity check" : "Terminó la verificación de integridad del código ", + "%s (3rdparty)" : "%s (de 3ros)", + "%s (incompatible)" : "%s (incompatible)", + "Following apps have been disabled: %s" : "Las siguientes aplicaciones han sido deshabilitadas: %s", + "Already up to date" : "Ya está actualizado", + "Search contacts …" : "Buscar contactos ...", + "No contacts found" : "No se encontraron contactos", + "Show all contacts …" : "Mostrar todos los contactos ...", + "There was an error loading your contacts" : "Se presentó un error al cargar tus contactos", + "Loading your contacts …" : "Cargando sus contactos ... ", + "Looking for {term} …" : "Buscando {term} ...", + "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Se presentaron problemas con la verificación de integridad del código. Más información ...</a>", + "No action available" : "No hay acciones disponibles", + "Error fetching contact actions" : "Se presentó un error al traer las acciónes de contatos", + "Settings" : "Configuraciones ", + "Connection to server lost" : "Se ha perdido la conexión con el servidor", + "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Se presentó un erorr al cargar la página, recargando en %n segundo","Se presentó un erorr al cargar la página, recargando en %n segundo"], + "Saving..." : "Guardando...", + "Dismiss" : "Descartar", + "This action requires you to confirm your password" : "Esta acción requiere que confirmes tu contraseña", + "Authentication required" : "Se requiere autenticación", + "Password" : "Contraseña", + "Cancel" : "Cancelar", + "Confirm" : "Confirmar", + "Failed to authenticate, try again" : "Falla en la autenticación, por favor reintentalo", + "seconds ago" : "hace segundos", + "Logging in …" : "Iniciando sesión ...", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "La liga para restablecer tu contraseña ha sido enviada a tu correo electrónico. Si no lo recibes dentro de un tiempo razonable, verifica las carpetas de spam/basura.<br>Si no la encuentras consulta a tu adminstrador local.", + "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Tus archivos están encriptados. No habrá manera de recuperar tus datos una vez que restablezca tu contraseña. <br />Si no estás seguro de qué hacer, por favor contacta a tu administrador antes de continuar. <br />¿Realmente deseas continuar?", + "I know what I'm doing" : "Sé lo que estoy haciendo", + "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", + "No" : "No", + "Yes" : "Sí", + "No files in here" : "No hay archivos aquí", + "Choose" : "Seleccionar", + "Copy" : "Copiar", + "Move" : "Mover", + "Error loading file picker template: {error}" : "Se presentó un error al cargar la plantilla del seleccionador de archivos: {error}", + "OK" : "OK", + "Error loading message template: {error}" : "Se presentó un error al cargar la plantilla del mensaje: {error}", + "read-only" : "sólo-lectura", + "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicto de archivo","{count} conflictos en el archivo"], + "One file conflict" : "Un conflicto en el archivo", + "New Files" : "Archivos Nuevos", + "Already existing files" : "Archivos ya existentes", + "Which files do you want to keep?" : "¿Cuales archivos deseas mantener?", + "If you select both versions, the copied file will have a number added to its name." : "Si seleccionas ambas versiones, se le agregará un número al nombre del archivo copiado.", + "Continue" : "Continuar", + "(all selected)" : "(todos seleccionados)", + "({count} selected)" : "({count} seleccionados)", + "Error loading file exists template" : "Se presentó un error al cargar la plantilla de existe archivo ", + "Pending" : "Pendiente", + "Copy to {folder}" : "Copiar a {folder}", + "Move to {folder}" : "Mover a {folder}", + "Very weak password" : "Contraseña muy débil", + "Weak password" : "Contraseña débil", + "So-so password" : "Contraseña aceptable", + "Good password" : "Buena contraseña", + "Strong password" : "Contraseña fuerte", + "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Tu servidor web aún no se encuentra correctamente configurado para permitir la sincronización de archivos porque la interface de WebDAV parece estar rota. ", + "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Este servidor no cuenta con una conexión a Internet: No fue posible alcanzar diversos puntos de acceso <EndPoints>. Esto significa que algunas funcionalidades como el montaje de almacenamiento externo, notificaciónes de actualizaciones o la instalación de aplicaciones de terceros no funcionarán. Acceder archivos de forma remota y el envío de correos electrónicos de notificación puede que tampoco funcionen. Te sugerimos habilitar la conexión a Internet para este servidor si deseas contar con todas las características.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "No ha sido configurada la memoria caché. Por favor configura un memechache si está disponible para mejorar el desempeño. Puedes encontrar información adicional en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "No fue posible leer /dev/urandom por PHP que es altamente desalentado por razones de seguridad. Puedes obtener más información en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.", + "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "Estás usando PHP {version}. Te recomendamos actualizar tu versión de PHP para aprovechar <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">las actualizaciones de seguridad y desempeño suministradas por el Grupo PHP</a> tan pronto como tu distribución lo soporte. ", + "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no estás accediendo a Nextcloud desde un proxy de confianza, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.", + "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached está configurado como un caché distribuido, pero el módulo equivocado PHP \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memchached\" y no \"memchache\". Por favor ve el <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">wiki de ambos módulos</a>.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Algunos archivos no pasaron la verificación de integridad. Para más información de cómo resolver este tema consulta nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">Listado de archivos inválidos …</a> / <a href=\"{rescanEndpoint}\">Volver a escanear…</a>)", + "The PHP OPcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend</a> to use following settings in the <code>php.ini</code>:" : "El PHP OPcache no está configurado correctamente. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Para un mejor desempeño, recomendamos </a> usar las siguientes configuraciones en php.ini:<code>", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "La fución PHP \"set_time_limit\" no está disponible. Esto podría generar scripts que se interrumpan a media ejecución, rompiendo la instalación. Te recomendamos ámpliamente habilitar esta función.", + "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Posiblemente tus archivos y directorio de datos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Te recomendamos ámpliamente configurar tu servidor web de tal modo que el directorio de datos no sea accesible o que muevas el directorio de datos fuera de la raíz de documentos del servidor web. ", + "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "El encabezado HTTP \"{header}\" no está configurado como \"{expected}\". Este es un riesgo potencial de seguridad o privacidad y te recomendamos cambiar esta configuración.", + "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para mejorar la seguridad, te recomendamos habilitar HSTS como se describe en nuestros <a href=\"{docUrl}\" rel=\"noreferrer\">consejos de seguridad</a>.", + "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Estás accediendo este sitio via HTTP. Te recomendamos ámpliamente que configures tu servidor para que en su lugar, el uso de HTTPS sea requerido como está descrito en nuestros <a href=\"{docUrl}\">consejos de seguridad</a>.", + "Shared" : "Compartido", + "Shared with {recipients}" : "Compartido con {recipients}", + "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", + "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", + "Set expiration date" : "Selecciona la vigencia de tu archivo", + "Expiration" : "Expiración", + "Expiration date" : "Fecha de expiración", + "Choose a password for the public link" : "Seleccione una contraseña para la liga pública", + "Choose a password for the public link or press the \"Enter\" key" : "Elige una contraseña para la liga pública o presiona la tecla \"Intro\"", + "Copied!" : "¡Copiado!", + "Not supported!" : "¡No está soportado!", + "Press ⌘-C to copy." : "Presiona ⌘-C para copiar.", + "Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.", + "Resharing is not allowed" : "No se permite volver a compartir", + "Share to {name}" : "Compartir con {name}", + "Share link" : "Compartir liga", + "Link" : "Liga", + "Password protect" : "Proteger con contraseña", + "Allow editing" : "Permitir editar", + "Email link to person" : "Enviar la liga por correo electrónico a una persona", + "Send" : "Enviar", + "Allow upload and editing" : "Permitir carga y edición", + "Read only" : "Sólo lectura", + "File drop (upload only)" : "Permitir carga", + "Shared with you and the group {group} by {owner}" : "Compartido contigo y el grupo {group} por {owner}", + "Shared with you by {owner}" : "Compartido contigo por {owner}", + "Choose a password for the mail share" : "Elige una contraseña para el elemento compartido por correo", + "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} ha compartido mediante una liga", + "group" : "grupo", + "remote" : "remoto", + "email" : "correo electrónico", + "shared by {sharer}" : "compartido por {sharer}", + "Unshare" : "Dejar de compartir", + "Can reshare" : "Puede volver a compartir", + "Can edit" : "Puede editar", + "Can create" : "Puede crear", + "Can change" : "Puede cambiar", + "Can delete" : "Puede borrar", + "Access control" : "Control de acceso", + "Could not unshare" : "No fue posible dejar de compartir", + "Error while sharing" : "Se presentó un error al compartir", + "Share details could not be loaded for this item." : "Los detalles del recurso compartido no se pudieron cargar para este elemento. ", + "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Se requiere de la menos {count} caracter para el auto completar","Se requieren de la menos {count} caracteres para el auto completar"], + "This list is maybe truncated - please refine your search term to see more results." : "Esta lista puede estar truncada - por favor refina tus términos de búsqueda para poder ver más resultados. ", + "No users or groups found for {search}" : "No se encontraron usuarios o gurpos para {search}", + "No users found for {search}" : "No se encontraron usuarios para {search}", + "An error occurred. Please try again" : "Se presentó un error. Por favor vuelve a intentarlo", + "{sharee} (group)" : "{sharee} (grupo)", + "{sharee} (remote)" : "{sharee} (remoto)", + "{sharee} (email)" : "{sharee} (correo electrónico)", + "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", + "Share" : "Compartir", + "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", + "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", + "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Name or email address..." : "Nombre o dirección de correo electrónico", + "Name or federated cloud ID..." : "Nombre...", + "Name, federated cloud ID or email address..." : "Nombre o dirección de correo electrónico...", + "Name..." : "Nombre...", + "Error" : "Error", + "Error removing share" : "Se presentó un error al dejar de compartir", + "Non-existing tag #{tag}" : "Etiqueta #{tag} no-existente", + "restricted" : "restringido", + "invisible" : "invisible", + "({scope})" : "({scope})", + "Delete" : "Borrar", + "Rename" : "Renombrar", + "Collaborative tags" : "Etiquetas colaborativas", + "No tags found" : "No se encontraron etiquetas", + "unknown text" : "texto desconocido", + "Hello world!" : "¡Hola mundo!", + "sunny" : "soleado", + "Hello {name}, the weather is {weather}" : "Hola {name}, el clima es {weather}", + "Hello {name}" : "Hola {name}", + "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Estos son los resultados de tu búsqueda <script>alert(1)</script></strong>", + "new" : "nuevo", + "_download %n file_::_download %n files_" : ["Descargar %n archivos","Descargar %n archivos"], + "The update is in progress, leaving this page might interrupt the process in some environments." : "La actualización está en curso, abandonar esta página puede interrumpir el proceso en algunos ambientes. ", + "Update to {version}" : "Actualizar a {version}", + "An error occurred." : "Se presentó un error.", + "Please reload the page." : "Por favor vuelve a cargar la página.", + "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "La actualización no fue exitosa. Para más información <a href=\"{url}\">consulta nuestro comentario en el foro </a> que cubre este tema. ", + "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "La actualización no fue exitosa. Por favor reporta este tema a la <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Comunidad Nextcloud</a>.", + "Continue to Nextcloud" : "Continuar a Nextcloud", + "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["La actualización fue exitosa. Lo estamos redireccionando a Nextcloud en %n segundo. ","La actualización fue exitosa. Te redireccionaremos a Nextcloud en %n segundos."], + "Searching other places" : "Buscando en otras ubicaciones", + "No search results in other folders for {tag}{filter}{endtag}" : "No hay resultados para la búsqueda {tag}{filter}{endtag} en otras carpetas", + "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} resultado de la búsqueda en otra carpeta","{count} resultados de la búsqueda en otras carpetas"], + "Personal" : "Personal", + "Users" : "Usuarios", + "Apps" : "Aplicaciones", + "Admin" : "Administración", + "Help" : "Ayuda", + "Access forbidden" : "Acceso prohibido", + "File not found" : "Archivo no encontrado", + "The specified document has not been found on the server." : "El documento especificado no ha sido encontrado en el servidor. ", + "You can click here to return to %s." : "Puedes hacer click aquí para regresar a %s.", + "Internal Server Error" : "Error interno del servidor", + "The server was unable to complete your request." : "El servidor no pudo completar tu solicitud.", + "If this happens again, please send the technical details below to the server administrator." : "Si esto vuelve a suceder, por favor envia los detalles tecnicos siguientes al adminsitrador del sistema.", + "More details can be found in the server log." : "Puedes consultar más detalles en la bitácora del servidor. ", + "Technical details" : "Detalles técnicos", + "Remote Address: %s" : "Dirección Remota: %s", + "Request ID: %s" : "ID de solicitud: %s", + "Type: %s" : "Tipo: %s", + "Code: %s" : "Código: %s", + "Message: %s" : "Mensaje: %s", + "File: %s" : "Archivo: %s", + "Line: %s" : "Línea: %s", + "Trace" : "Rastrear", + "Security warning" : "Advertencia de seguridad", + "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Para más información de cómo configurar propiamente tu servidor, por favor ve la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentación</a>.", + "Create an <strong>admin account</strong>" : "Crear una <strong>cuenta de administrador</strong>", + "Username" : "Usuario", + "Storage & database" : "Almacenamiento & base de datos", + "Data folder" : "Carpeta de datos", + "Configure the database" : "Configurar la base de datos", + "Only %s is available." : "Sólo %s está disponible.", + "Install and activate additional PHP modules to choose other database types." : "Instala y activa módulos adicionales de PHP para seleccionar otros tipos de bases de datos. ", + "For more details check out the documentation." : "Por favor consulta la documentación para más detalles. ", + "Database user" : "Usuario de la base de datos", + "Database password" : "Contraseña de la base de datos", + "Database name" : "Nombre de la base de datos", + "Database tablespace" : "Espacio de tablas en la base de datos", + "Database host" : "Servidor de base de datos", + "Please specify the port number along with the host name (e.g., localhost:5432)." : "Por favor especifica el número de puerto así como el nombre del servidor (ejem., localhost:5432).", + "Performance warning" : "Advertencia de desempeño", + "SQLite will be used as database." : "SQLite será usado como la base de datos.", + "For larger installations we recommend to choose a different database backend." : "Para instalaciones más grandes te recomendamos elegir un backend de base de datos diferente.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "El uso de SQLiite es especialmente desalentado al usar el cliente de escritorio para sincrionizar. ", + "Finish setup" : "Terminar configuración", + "Finishing …" : "Terminando …", + "Need help?" : "¿Necesitas ayuda?", + "See the documentation" : "Ver la documentación", + "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere de JavaScript para su correcta operación. Por favor {linkstart}habilita JavaScript{linkend} y vuelve a cargar la página. ", + "More apps" : "Más aplicaciones", + "Search" : "Buscar", + "Reset search" : "Reestablecer búsqueda", + "Confirm your password" : "Confirma tu contraseña", + "Server side authentication failed!" : "¡Falló la autenticación del lado del servidor!", + "Please contact your administrator." : "Por favor contacta al administrador.", + "An internal error occurred." : "Se presentó un error interno.", + "Please try again or contact your administrator." : "Por favor vuelve a intentarlo o contacta a tu adminsitrador. ", + "Username or email" : "Usuario o correo electrónico", + "Wrong password. Reset it?" : "Contraseña equivocada. ¿Deseas restablecerla?", + "Wrong password." : "Contraseña inválida. ", + "Log in" : "Ingresar", + "Stay logged in" : "Mantener la sesión abierta", + "Alternative Logins" : "Accesos Alternativos", + "Account access" : "Acceo de cuenta", + "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", + "App token" : "Ficha de la aplicación", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", + "Redirecting …" : "Redireccionando ... ", + "New password" : "Nueva contraseña", + "New Password" : "Nueva Contraseña", + "Reset password" : "Restablecer contraseña", + "Two-factor authentication" : "Autenticación de dos-factores", + "Enhanced security is enabled for your account. Please authenticate using a second factor." : "La seguridad mejorada está habilitada para tu cuenta. Favor de autenticarte usando un segundo factor. ", + "Cancel log in" : "Cancelar inicio de sesión", + "Use backup code" : "Usar código de respaldo", + "Error while validating your second factor" : "Se presentó un error al validar tu segundo factor", + "Access through untrusted domain" : "Accesa a través de un dominio no de confianza", + "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Por favor contacta a tu adminsitrador. Si tu eres un administrador, edita la propiedad \"trusted_domains\" en el archivo config/config.php como en el ejemplo config.sample.php.", + "Depending on your configuration, this button could also work to trust the domain:" : "Dependiendo de tu configuración, este botón podría funcionar también para confiar en el dominio:", + "Add \"%s\" as trusted domain" : "Agregar \"%s\" como un dominio de confianza", + "App update required" : "Se requiere una actualización de la aplicación", + "%s will be updated to version %s" : "%s será actualizado a la versión %s", + "These apps will be updated:" : "Las siguientes apllicaciones se actualizarán:", + "These incompatible apps will be disabled:" : "Las siguientes aplicaciones incompatibles serán deshabilitadas:", + "The theme %s has been disabled." : "El tema %s ha sido deshabilitado. ", + "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Por favor asegurarte de que la base de datos, la carpeta de configuración y las carpetas de datos hayan sido respaldadas antes de continuar. ", + "Start update" : "Iniciar actualización", + "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Para evitar la expiración de tiempo en instalaciones grandes, puedes ejecutar el siguiente comando desde tu directorio de instalación:", + "Detailed logs" : "Bitácoras detalladas", + "Update needed" : "Se requiere de una actualización", + "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Para más ayuda, consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">doccumentación</a>.", + "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", + "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", + "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", + "This page will refresh itself when the %s instance is available again." : "Esta página se actualizará sola cuando la instancia %s esté disponible de nuevo. ", + "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacta a tu administrador del sistema si este mensaje persiste o se presentó de manera inesperada.", + "Thank you for your patience." : "Gracias por tu paciencia.", + "Problem loading page, reloading in 5 seconds" : "Se presentó un problema al cargar la página, recargando en 5 segundos", + "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Tus archivos están encriptados. Si no has habilitado la llave de recuperación, no habrá manera de que puedas recuperar tus datos una vez que restablezcas tu contraseña.<br />Si no estás seguro de lo que estás haciendo, por favor contacta a tu adminstrador antes de continuar. <br />¿Realmente deseas continuar?", + "Ok" : "Ok", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Posiblemente tus directorios de datos y archivos son accesibles desde Internet. El archivo .htaccess no está funcionando. Te recomendamos ámpliamente que configures tu servidor web de tal modo que el directorio de datos no sea accesible o que muevas el directorio de datos fuera de la raíz de documentos del servidor web. ", + "Error while unsharing" : "Se presentó un error al dejar de compartir", + "can reshare" : "puede volver a compartir", + "can edit" : "puede editar", + "can create" : "puede crear", + "can change" : "puede modificar", + "can delete" : "puede borrar", + "access control" : "control de acceso", + "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Comparte con personas en otros servidores usando sus IDs username@example.com/nextcloud", + "Share with users or by mail..." : "Compartir con otros usuarios o por correo electrónico...", + "Share with users or remote users..." : "Compartir con otros usuarios o con otros usuarios remotos...", + "Share with users, remote users or by mail..." : "Compartir con otros usuarios, otros usuarios remotos o por correo electrónico...", + "Share with users or groups..." : "Compartir con otros usuarios o grupos...", + "Share with users, groups or by mail..." : "Compartir con otros usuarios, grupos o por correo electrónico...", + "Share with users, groups or remote users..." : "Compartir con otros usuarios, otros usuarios remotos o grupos...", + "Share with users, groups, remote users or by mail..." : "Compartir con usuarios, grupos, usuarios rempotos o por correo...", + "Share with users..." : "Compartir con otros usuarios...", + "The object type is not specified." : "El tipo del objeto no está especificado.", + "Enter new" : "Ingresar nuevo", + "Add" : "Agregar", + "Edit tags" : "Editar etiquetas", + "Error loading dialog template: {error}" : "Se presentó un error al cargar la plantilla de diálogo: {error}", + "No tags selected for deletion." : "No se seleccionaron etiquetas para borrar.", + "The update was successful. Redirecting you to Nextcloud now." : "La actualización fue exitosa. Redirigiendote ahora a tu Nextcloud. ", + "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hola,\n\nsólo queremos informarte que %s ha compartido %s contigo.\n\nVelo aquí: %s\n\n", + "The share will expire on %s." : "El recurso dejará de ser compartido el %s.", + "Cheers!" : "¡Saludos!", + "The server encountered an internal error and was unable to complete your request." : "Se presentó un error interno en el servidor y no fue posible completar tu solicitud. ", + "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Por favor contacta al administrador del servidor si este problema se presenta en múltiples ocasiones, por favor incluye los detalles técnicos siguientes en tu reporte. ", + "Log out" : "Salir", + "This action requires you to confirm your password:" : "Esta acción requiere que confirmes tu contraseña:", + "Use the following link to reset your password: {link}" : "Usa la siguiente liga para restablecer tu contraseña: {link}", + "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hola,<br><br> sólo queremos informarte que %s ha compartido <strong>%s</strong> contigo. <br><a href=\"%s\">¡Velo!</a><br><br>", + "This Nextcloud instance is currently in single user mode." : "Esta instalación de Nextcloud se encuentra en modo de usuario único.", + "This means only administrators can use the instance." : "Esto significa que sólo los administradores pueden usar la instancia.", + "You are accessing the server from an untrusted domain." : "Estás accediendo al servidor desde un dominio no de confianza. ", + "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Por favor contacta a tu administrador. Si eres el administrador de esta instancia, configura la opción \"trusted_domains\" en config/config.php. Un ejemplo de configuración se proporciona en config/config.sample.php. ", + "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Dependiendo de tu configuración, como adminsitrador podrías llegar a usar el botón inferior para confiar en este dominio. ", + "Please use the command line updater because you have a big instance." : "Por favor usa el actualizador de línea de comando porque cuentas con una instancia grande. ", + "You are about to grant \"%s\" access to your %s account." : "Estás apunto de concederle a \"%s\" acceso a yu cuenta %s." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/es_CO.json b/core/l10n/es_CO.json new file mode 100644 index 00000000000..e5f21d06910 --- /dev/null +++ b/core/l10n/es_CO.json @@ -0,0 +1,354 @@ +{ "translations": { + "Please select a file." : "Por favor selecciona un archivo.", + "File is too big" : "El archivo es demasiado grande.", + "The selected file is not an image." : "El archivo seleccionado no es una imagen.", + "The selected file cannot be read." : "El archivo seleccionado no se puede leer.", + "Invalid file provided" : "Archivo proporcionado inválido", + "No image or file provided" : "No se especificó un archivo o imagen", + "Unknown filetype" : "Tipo de archivo desconocido", + "Invalid image" : "Imagen inválida", + "An error occurred. Please contact your admin." : "Se presentó un error. Por favor contacta a tu adminsitrador. ", + "No temporary profile picture available, try again" : "No hay una imagen de perfil temporal disponible, por favor inténtalo de nuevo", + "No crop data provided" : "No se han proporcionado datos del recorte", + "No valid crop data provided" : "No se han proporcionado datos válidos del recorte", + "Crop is not square" : "El recorte no es cuadrado", + "State token does not match" : "La ficha de estado no corresponde", + "Password reset is disabled" : "Restablecer contraseña se encuentra deshabilitado", + "Couldn't reset password because the token is invalid" : "No ha sido posible restablecer la contraseña porque la ficha es inválida", + "Couldn't reset password because the token is expired" : "No ha sido posible restablecer la contraseña porque la ficha ha expirado", + "Could not send reset email because there is no email address for this username. Please contact your administrator." : "No fue posible enviar el correo electrónico para restablecer porque no hay una dirección de correo electrónico para este usuario. Por favor contacta a tu adminsitrador. ", + "%s password reset" : "%s restablecer la contraseña", + "Password reset" : "Restablecer contraseña", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en el siguiente botón para restablecer tu contraseña. Si no has solicitado restablecer su contraseña, por favor ignora este correo. ", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en la siguiente liga para restablecer su contraseña. Si no has solicitado restablecer la contraseña, por favor ignora este mensaje. ", + "Reset your password" : "Restablecer tu contraseña", + "Couldn't send reset email. Please contact your administrator." : "No fue posible enviar el correo de restauración. Por favor contacta a tu adminsitrador. ", + "Couldn't send reset email. Please make sure your username is correct." : "No fue posible restablecer el correo electrónico. Por favor asegurarte de que tu nombre de usuario sea correcto. ", + "Preparing update" : "Preparando actualización", + "[%d / %d]: %s" : "[%d / %d]: %s ", + "Repair warning: " : "Advertencia de reparación:", + "Repair error: " : "Error de reparación: ", + "Please use the command line updater because automatic updating is disabled in the config.php." : "Por favor usa el actualizador de línea de comandos ya que el actualizador automático se encuentra deshabilitado en config.php.", + "[%d / %d]: Checking table %s" : "[%d / %d]: Verificando tabla %s", + "Turned on maintenance mode" : "Modo mantenimiento activado", + "Turned off maintenance mode" : "Modo mantenimiento desactivado", + "Maintenance mode is kept active" : "El modo mantenimiento sigue activo", + "Updating database schema" : "Actualizando esquema de base de datos", + "Updated database" : "Base de datos actualizada", + "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Verificando si el archivo del esquema de base de datos puede ser actualizado (esto puedo tomar mucho tiempo dependiendo del tamaño de la base de datos)", + "Checked database schema update" : "Actualización del esquema de base de datos verificada", + "Checking updates of apps" : "Verificando actualizaciones para aplicaciones", + "Checking for update of app \"%s\" in appstore" : "Verificando actualizaciones para la aplicacion \"%s\" en la appstore", + "Update app \"%s\" from appstore" : "Actualizar la aplicación \"%s\" desde la appstore", + "Checked for update of app \"%s\" in appstore" : "Se verificaron actualizaciones para la aplicación \"%s\" en la appstore", + "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Verificando si el esquema de la base de datos para %s puede ser actualizado (esto puede tomar mucho tiempo dependiendo del tamaño de la base de datos)", + "Checked database schema update for apps" : "Se verificó la actualización del esquema de la base de datos para las aplicaciones", + "Updated \"%s\" to %s" : "Actualizando \"%s\" a %s", + "Set log level to debug" : "Establecer nivel de bitacora a depurar", + "Reset log level" : "Restablecer nivel de bitácora", + "Starting code integrity check" : "Comenzando verificación de integridad del código", + "Finished code integrity check" : "Terminó la verificación de integridad del código ", + "%s (3rdparty)" : "%s (de 3ros)", + "%s (incompatible)" : "%s (incompatible)", + "Following apps have been disabled: %s" : "Las siguientes aplicaciones han sido deshabilitadas: %s", + "Already up to date" : "Ya está actualizado", + "Search contacts …" : "Buscar contactos ...", + "No contacts found" : "No se encontraron contactos", + "Show all contacts …" : "Mostrar todos los contactos ...", + "There was an error loading your contacts" : "Se presentó un error al cargar tus contactos", + "Loading your contacts …" : "Cargando sus contactos ... ", + "Looking for {term} …" : "Buscando {term} ...", + "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Se presentaron problemas con la verificación de integridad del código. Más información ...</a>", + "No action available" : "No hay acciones disponibles", + "Error fetching contact actions" : "Se presentó un error al traer las acciónes de contatos", + "Settings" : "Configuraciones ", + "Connection to server lost" : "Se ha perdido la conexión con el servidor", + "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Se presentó un erorr al cargar la página, recargando en %n segundo","Se presentó un erorr al cargar la página, recargando en %n segundo"], + "Saving..." : "Guardando...", + "Dismiss" : "Descartar", + "This action requires you to confirm your password" : "Esta acción requiere que confirmes tu contraseña", + "Authentication required" : "Se requiere autenticación", + "Password" : "Contraseña", + "Cancel" : "Cancelar", + "Confirm" : "Confirmar", + "Failed to authenticate, try again" : "Falla en la autenticación, por favor reintentalo", + "seconds ago" : "hace segundos", + "Logging in …" : "Iniciando sesión ...", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "La liga para restablecer tu contraseña ha sido enviada a tu correo electrónico. Si no lo recibes dentro de un tiempo razonable, verifica las carpetas de spam/basura.<br>Si no la encuentras consulta a tu adminstrador local.", + "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Tus archivos están encriptados. No habrá manera de recuperar tus datos una vez que restablezca tu contraseña. <br />Si no estás seguro de qué hacer, por favor contacta a tu administrador antes de continuar. <br />¿Realmente deseas continuar?", + "I know what I'm doing" : "Sé lo que estoy haciendo", + "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", + "No" : "No", + "Yes" : "Sí", + "No files in here" : "No hay archivos aquí", + "Choose" : "Seleccionar", + "Copy" : "Copiar", + "Move" : "Mover", + "Error loading file picker template: {error}" : "Se presentó un error al cargar la plantilla del seleccionador de archivos: {error}", + "OK" : "OK", + "Error loading message template: {error}" : "Se presentó un error al cargar la plantilla del mensaje: {error}", + "read-only" : "sólo-lectura", + "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicto de archivo","{count} conflictos en el archivo"], + "One file conflict" : "Un conflicto en el archivo", + "New Files" : "Archivos Nuevos", + "Already existing files" : "Archivos ya existentes", + "Which files do you want to keep?" : "¿Cuales archivos deseas mantener?", + "If you select both versions, the copied file will have a number added to its name." : "Si seleccionas ambas versiones, se le agregará un número al nombre del archivo copiado.", + "Continue" : "Continuar", + "(all selected)" : "(todos seleccionados)", + "({count} selected)" : "({count} seleccionados)", + "Error loading file exists template" : "Se presentó un error al cargar la plantilla de existe archivo ", + "Pending" : "Pendiente", + "Copy to {folder}" : "Copiar a {folder}", + "Move to {folder}" : "Mover a {folder}", + "Very weak password" : "Contraseña muy débil", + "Weak password" : "Contraseña débil", + "So-so password" : "Contraseña aceptable", + "Good password" : "Buena contraseña", + "Strong password" : "Contraseña fuerte", + "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Tu servidor web aún no se encuentra correctamente configurado para permitir la sincronización de archivos porque la interface de WebDAV parece estar rota. ", + "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Este servidor no cuenta con una conexión a Internet: No fue posible alcanzar diversos puntos de acceso <EndPoints>. Esto significa que algunas funcionalidades como el montaje de almacenamiento externo, notificaciónes de actualizaciones o la instalación de aplicaciones de terceros no funcionarán. Acceder archivos de forma remota y el envío de correos electrónicos de notificación puede que tampoco funcionen. Te sugerimos habilitar la conexión a Internet para este servidor si deseas contar con todas las características.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "No ha sido configurada la memoria caché. Por favor configura un memechache si está disponible para mejorar el desempeño. Puedes encontrar información adicional en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "No fue posible leer /dev/urandom por PHP que es altamente desalentado por razones de seguridad. Puedes obtener más información en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.", + "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "Estás usando PHP {version}. Te recomendamos actualizar tu versión de PHP para aprovechar <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">las actualizaciones de seguridad y desempeño suministradas por el Grupo PHP</a> tan pronto como tu distribución lo soporte. ", + "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no estás accediendo a Nextcloud desde un proxy de confianza, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.", + "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached está configurado como un caché distribuido, pero el módulo equivocado PHP \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memchached\" y no \"memchache\". Por favor ve el <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">wiki de ambos módulos</a>.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Algunos archivos no pasaron la verificación de integridad. Para más información de cómo resolver este tema consulta nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">Listado de archivos inválidos …</a> / <a href=\"{rescanEndpoint}\">Volver a escanear…</a>)", + "The PHP OPcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend</a> to use following settings in the <code>php.ini</code>:" : "El PHP OPcache no está configurado correctamente. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Para un mejor desempeño, recomendamos </a> usar las siguientes configuraciones en php.ini:<code>", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "La fución PHP \"set_time_limit\" no está disponible. Esto podría generar scripts que se interrumpan a media ejecución, rompiendo la instalación. Te recomendamos ámpliamente habilitar esta función.", + "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Posiblemente tus archivos y directorio de datos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Te recomendamos ámpliamente configurar tu servidor web de tal modo que el directorio de datos no sea accesible o que muevas el directorio de datos fuera de la raíz de documentos del servidor web. ", + "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "El encabezado HTTP \"{header}\" no está configurado como \"{expected}\". Este es un riesgo potencial de seguridad o privacidad y te recomendamos cambiar esta configuración.", + "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para mejorar la seguridad, te recomendamos habilitar HSTS como se describe en nuestros <a href=\"{docUrl}\" rel=\"noreferrer\">consejos de seguridad</a>.", + "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Estás accediendo este sitio via HTTP. Te recomendamos ámpliamente que configures tu servidor para que en su lugar, el uso de HTTPS sea requerido como está descrito en nuestros <a href=\"{docUrl}\">consejos de seguridad</a>.", + "Shared" : "Compartido", + "Shared with {recipients}" : "Compartido con {recipients}", + "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", + "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", + "Set expiration date" : "Selecciona la vigencia de tu archivo", + "Expiration" : "Expiración", + "Expiration date" : "Fecha de expiración", + "Choose a password for the public link" : "Seleccione una contraseña para la liga pública", + "Choose a password for the public link or press the \"Enter\" key" : "Elige una contraseña para la liga pública o presiona la tecla \"Intro\"", + "Copied!" : "¡Copiado!", + "Not supported!" : "¡No está soportado!", + "Press ⌘-C to copy." : "Presiona ⌘-C para copiar.", + "Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.", + "Resharing is not allowed" : "No se permite volver a compartir", + "Share to {name}" : "Compartir con {name}", + "Share link" : "Compartir liga", + "Link" : "Liga", + "Password protect" : "Proteger con contraseña", + "Allow editing" : "Permitir editar", + "Email link to person" : "Enviar la liga por correo electrónico a una persona", + "Send" : "Enviar", + "Allow upload and editing" : "Permitir carga y edición", + "Read only" : "Sólo lectura", + "File drop (upload only)" : "Permitir carga", + "Shared with you and the group {group} by {owner}" : "Compartido contigo y el grupo {group} por {owner}", + "Shared with you by {owner}" : "Compartido contigo por {owner}", + "Choose a password for the mail share" : "Elige una contraseña para el elemento compartido por correo", + "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} ha compartido mediante una liga", + "group" : "grupo", + "remote" : "remoto", + "email" : "correo electrónico", + "shared by {sharer}" : "compartido por {sharer}", + "Unshare" : "Dejar de compartir", + "Can reshare" : "Puede volver a compartir", + "Can edit" : "Puede editar", + "Can create" : "Puede crear", + "Can change" : "Puede cambiar", + "Can delete" : "Puede borrar", + "Access control" : "Control de acceso", + "Could not unshare" : "No fue posible dejar de compartir", + "Error while sharing" : "Se presentó un error al compartir", + "Share details could not be loaded for this item." : "Los detalles del recurso compartido no se pudieron cargar para este elemento. ", + "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Se requiere de la menos {count} caracter para el auto completar","Se requieren de la menos {count} caracteres para el auto completar"], + "This list is maybe truncated - please refine your search term to see more results." : "Esta lista puede estar truncada - por favor refina tus términos de búsqueda para poder ver más resultados. ", + "No users or groups found for {search}" : "No se encontraron usuarios o gurpos para {search}", + "No users found for {search}" : "No se encontraron usuarios para {search}", + "An error occurred. Please try again" : "Se presentó un error. Por favor vuelve a intentarlo", + "{sharee} (group)" : "{sharee} (grupo)", + "{sharee} (remote)" : "{sharee} (remoto)", + "{sharee} (email)" : "{sharee} (correo electrónico)", + "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", + "Share" : "Compartir", + "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", + "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", + "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Name or email address..." : "Nombre o dirección de correo electrónico", + "Name or federated cloud ID..." : "Nombre...", + "Name, federated cloud ID or email address..." : "Nombre o dirección de correo electrónico...", + "Name..." : "Nombre...", + "Error" : "Error", + "Error removing share" : "Se presentó un error al dejar de compartir", + "Non-existing tag #{tag}" : "Etiqueta #{tag} no-existente", + "restricted" : "restringido", + "invisible" : "invisible", + "({scope})" : "({scope})", + "Delete" : "Borrar", + "Rename" : "Renombrar", + "Collaborative tags" : "Etiquetas colaborativas", + "No tags found" : "No se encontraron etiquetas", + "unknown text" : "texto desconocido", + "Hello world!" : "¡Hola mundo!", + "sunny" : "soleado", + "Hello {name}, the weather is {weather}" : "Hola {name}, el clima es {weather}", + "Hello {name}" : "Hola {name}", + "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Estos son los resultados de tu búsqueda <script>alert(1)</script></strong>", + "new" : "nuevo", + "_download %n file_::_download %n files_" : ["Descargar %n archivos","Descargar %n archivos"], + "The update is in progress, leaving this page might interrupt the process in some environments." : "La actualización está en curso, abandonar esta página puede interrumpir el proceso en algunos ambientes. ", + "Update to {version}" : "Actualizar a {version}", + "An error occurred." : "Se presentó un error.", + "Please reload the page." : "Por favor vuelve a cargar la página.", + "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "La actualización no fue exitosa. Para más información <a href=\"{url}\">consulta nuestro comentario en el foro </a> que cubre este tema. ", + "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "La actualización no fue exitosa. Por favor reporta este tema a la <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Comunidad Nextcloud</a>.", + "Continue to Nextcloud" : "Continuar a Nextcloud", + "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["La actualización fue exitosa. Lo estamos redireccionando a Nextcloud en %n segundo. ","La actualización fue exitosa. Te redireccionaremos a Nextcloud en %n segundos."], + "Searching other places" : "Buscando en otras ubicaciones", + "No search results in other folders for {tag}{filter}{endtag}" : "No hay resultados para la búsqueda {tag}{filter}{endtag} en otras carpetas", + "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} resultado de la búsqueda en otra carpeta","{count} resultados de la búsqueda en otras carpetas"], + "Personal" : "Personal", + "Users" : "Usuarios", + "Apps" : "Aplicaciones", + "Admin" : "Administración", + "Help" : "Ayuda", + "Access forbidden" : "Acceso prohibido", + "File not found" : "Archivo no encontrado", + "The specified document has not been found on the server." : "El documento especificado no ha sido encontrado en el servidor. ", + "You can click here to return to %s." : "Puedes hacer click aquí para regresar a %s.", + "Internal Server Error" : "Error interno del servidor", + "The server was unable to complete your request." : "El servidor no pudo completar tu solicitud.", + "If this happens again, please send the technical details below to the server administrator." : "Si esto vuelve a suceder, por favor envia los detalles tecnicos siguientes al adminsitrador del sistema.", + "More details can be found in the server log." : "Puedes consultar más detalles en la bitácora del servidor. ", + "Technical details" : "Detalles técnicos", + "Remote Address: %s" : "Dirección Remota: %s", + "Request ID: %s" : "ID de solicitud: %s", + "Type: %s" : "Tipo: %s", + "Code: %s" : "Código: %s", + "Message: %s" : "Mensaje: %s", + "File: %s" : "Archivo: %s", + "Line: %s" : "Línea: %s", + "Trace" : "Rastrear", + "Security warning" : "Advertencia de seguridad", + "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Para más información de cómo configurar propiamente tu servidor, por favor ve la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentación</a>.", + "Create an <strong>admin account</strong>" : "Crear una <strong>cuenta de administrador</strong>", + "Username" : "Usuario", + "Storage & database" : "Almacenamiento & base de datos", + "Data folder" : "Carpeta de datos", + "Configure the database" : "Configurar la base de datos", + "Only %s is available." : "Sólo %s está disponible.", + "Install and activate additional PHP modules to choose other database types." : "Instala y activa módulos adicionales de PHP para seleccionar otros tipos de bases de datos. ", + "For more details check out the documentation." : "Por favor consulta la documentación para más detalles. ", + "Database user" : "Usuario de la base de datos", + "Database password" : "Contraseña de la base de datos", + "Database name" : "Nombre de la base de datos", + "Database tablespace" : "Espacio de tablas en la base de datos", + "Database host" : "Servidor de base de datos", + "Please specify the port number along with the host name (e.g., localhost:5432)." : "Por favor especifica el número de puerto así como el nombre del servidor (ejem., localhost:5432).", + "Performance warning" : "Advertencia de desempeño", + "SQLite will be used as database." : "SQLite será usado como la base de datos.", + "For larger installations we recommend to choose a different database backend." : "Para instalaciones más grandes te recomendamos elegir un backend de base de datos diferente.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "El uso de SQLiite es especialmente desalentado al usar el cliente de escritorio para sincrionizar. ", + "Finish setup" : "Terminar configuración", + "Finishing …" : "Terminando …", + "Need help?" : "¿Necesitas ayuda?", + "See the documentation" : "Ver la documentación", + "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere de JavaScript para su correcta operación. Por favor {linkstart}habilita JavaScript{linkend} y vuelve a cargar la página. ", + "More apps" : "Más aplicaciones", + "Search" : "Buscar", + "Reset search" : "Reestablecer búsqueda", + "Confirm your password" : "Confirma tu contraseña", + "Server side authentication failed!" : "¡Falló la autenticación del lado del servidor!", + "Please contact your administrator." : "Por favor contacta al administrador.", + "An internal error occurred." : "Se presentó un error interno.", + "Please try again or contact your administrator." : "Por favor vuelve a intentarlo o contacta a tu adminsitrador. ", + "Username or email" : "Usuario o correo electrónico", + "Wrong password. Reset it?" : "Contraseña equivocada. ¿Deseas restablecerla?", + "Wrong password." : "Contraseña inválida. ", + "Log in" : "Ingresar", + "Stay logged in" : "Mantener la sesión abierta", + "Alternative Logins" : "Accesos Alternativos", + "Account access" : "Acceo de cuenta", + "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", + "App token" : "Ficha de la aplicación", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", + "Redirecting …" : "Redireccionando ... ", + "New password" : "Nueva contraseña", + "New Password" : "Nueva Contraseña", + "Reset password" : "Restablecer contraseña", + "Two-factor authentication" : "Autenticación de dos-factores", + "Enhanced security is enabled for your account. Please authenticate using a second factor." : "La seguridad mejorada está habilitada para tu cuenta. Favor de autenticarte usando un segundo factor. ", + "Cancel log in" : "Cancelar inicio de sesión", + "Use backup code" : "Usar código de respaldo", + "Error while validating your second factor" : "Se presentó un error al validar tu segundo factor", + "Access through untrusted domain" : "Accesa a través de un dominio no de confianza", + "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Por favor contacta a tu adminsitrador. Si tu eres un administrador, edita la propiedad \"trusted_domains\" en el archivo config/config.php como en el ejemplo config.sample.php.", + "Depending on your configuration, this button could also work to trust the domain:" : "Dependiendo de tu configuración, este botón podría funcionar también para confiar en el dominio:", + "Add \"%s\" as trusted domain" : "Agregar \"%s\" como un dominio de confianza", + "App update required" : "Se requiere una actualización de la aplicación", + "%s will be updated to version %s" : "%s será actualizado a la versión %s", + "These apps will be updated:" : "Las siguientes apllicaciones se actualizarán:", + "These incompatible apps will be disabled:" : "Las siguientes aplicaciones incompatibles serán deshabilitadas:", + "The theme %s has been disabled." : "El tema %s ha sido deshabilitado. ", + "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Por favor asegurarte de que la base de datos, la carpeta de configuración y las carpetas de datos hayan sido respaldadas antes de continuar. ", + "Start update" : "Iniciar actualización", + "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Para evitar la expiración de tiempo en instalaciones grandes, puedes ejecutar el siguiente comando desde tu directorio de instalación:", + "Detailed logs" : "Bitácoras detalladas", + "Update needed" : "Se requiere de una actualización", + "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Para más ayuda, consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">doccumentación</a>.", + "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", + "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", + "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", + "This page will refresh itself when the %s instance is available again." : "Esta página se actualizará sola cuando la instancia %s esté disponible de nuevo. ", + "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacta a tu administrador del sistema si este mensaje persiste o se presentó de manera inesperada.", + "Thank you for your patience." : "Gracias por tu paciencia.", + "Problem loading page, reloading in 5 seconds" : "Se presentó un problema al cargar la página, recargando en 5 segundos", + "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Tus archivos están encriptados. Si no has habilitado la llave de recuperación, no habrá manera de que puedas recuperar tus datos una vez que restablezcas tu contraseña.<br />Si no estás seguro de lo que estás haciendo, por favor contacta a tu adminstrador antes de continuar. <br />¿Realmente deseas continuar?", + "Ok" : "Ok", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Posiblemente tus directorios de datos y archivos son accesibles desde Internet. El archivo .htaccess no está funcionando. Te recomendamos ámpliamente que configures tu servidor web de tal modo que el directorio de datos no sea accesible o que muevas el directorio de datos fuera de la raíz de documentos del servidor web. ", + "Error while unsharing" : "Se presentó un error al dejar de compartir", + "can reshare" : "puede volver a compartir", + "can edit" : "puede editar", + "can create" : "puede crear", + "can change" : "puede modificar", + "can delete" : "puede borrar", + "access control" : "control de acceso", + "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Comparte con personas en otros servidores usando sus IDs username@example.com/nextcloud", + "Share with users or by mail..." : "Compartir con otros usuarios o por correo electrónico...", + "Share with users or remote users..." : "Compartir con otros usuarios o con otros usuarios remotos...", + "Share with users, remote users or by mail..." : "Compartir con otros usuarios, otros usuarios remotos o por correo electrónico...", + "Share with users or groups..." : "Compartir con otros usuarios o grupos...", + "Share with users, groups or by mail..." : "Compartir con otros usuarios, grupos o por correo electrónico...", + "Share with users, groups or remote users..." : "Compartir con otros usuarios, otros usuarios remotos o grupos...", + "Share with users, groups, remote users or by mail..." : "Compartir con usuarios, grupos, usuarios rempotos o por correo...", + "Share with users..." : "Compartir con otros usuarios...", + "The object type is not specified." : "El tipo del objeto no está especificado.", + "Enter new" : "Ingresar nuevo", + "Add" : "Agregar", + "Edit tags" : "Editar etiquetas", + "Error loading dialog template: {error}" : "Se presentó un error al cargar la plantilla de diálogo: {error}", + "No tags selected for deletion." : "No se seleccionaron etiquetas para borrar.", + "The update was successful. Redirecting you to Nextcloud now." : "La actualización fue exitosa. Redirigiendote ahora a tu Nextcloud. ", + "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hola,\n\nsólo queremos informarte que %s ha compartido %s contigo.\n\nVelo aquí: %s\n\n", + "The share will expire on %s." : "El recurso dejará de ser compartido el %s.", + "Cheers!" : "¡Saludos!", + "The server encountered an internal error and was unable to complete your request." : "Se presentó un error interno en el servidor y no fue posible completar tu solicitud. ", + "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Por favor contacta al administrador del servidor si este problema se presenta en múltiples ocasiones, por favor incluye los detalles técnicos siguientes en tu reporte. ", + "Log out" : "Salir", + "This action requires you to confirm your password:" : "Esta acción requiere que confirmes tu contraseña:", + "Use the following link to reset your password: {link}" : "Usa la siguiente liga para restablecer tu contraseña: {link}", + "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hola,<br><br> sólo queremos informarte que %s ha compartido <strong>%s</strong> contigo. <br><a href=\"%s\">¡Velo!</a><br><br>", + "This Nextcloud instance is currently in single user mode." : "Esta instalación de Nextcloud se encuentra en modo de usuario único.", + "This means only administrators can use the instance." : "Esto significa que sólo los administradores pueden usar la instancia.", + "You are accessing the server from an untrusted domain." : "Estás accediendo al servidor desde un dominio no de confianza. ", + "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Por favor contacta a tu administrador. Si eres el administrador de esta instancia, configura la opción \"trusted_domains\" en config/config.php. Un ejemplo de configuración se proporciona en config/config.sample.php. ", + "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Dependiendo de tu configuración, como adminsitrador podrías llegar a usar el botón inferior para confiar en este dominio. ", + "Please use the command line updater because you have a big instance." : "Por favor usa el actualizador de línea de comando porque cuentas con una instancia grande. ", + "You are about to grant \"%s\" access to your %s account." : "Estás apunto de concederle a \"%s\" acceso a yu cuenta %s." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/core/l10n/eu.js b/core/l10n/eu.js index 96df4005ce4..609f13ad839 100644 --- a/core/l10n/eu.js +++ b/core/l10n/eu.js @@ -46,12 +46,12 @@ OC.L10N.register( "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "%s datu-basearen eskema eguneratu daitekeen egiaztatzen (honek luzerako hartu dezake datu-basearen arabera)", "Checked database schema update for apps" : "Egiaztatuta aplikazioen datu-basearen zerbitzariaren eguneraketa", "Updated \"%s\" to %s" : "\"%s\" %s-ra eguneratua", - "Set log level to debug" : "Set log level to debug", - "Reset log level" : "Reset log level", + "Set log level to debug" : "Log maila debug-era ezarri", + "Reset log level" : "Log maila berrezarri", "Starting code integrity check" : "Kodearen integritate egiaztapena hasten", "Finished code integrity check" : "Kodearen integritate egiaztapena bukatuta", - "%s (3rdparty)" : "%s (3rdparty)", - "%s (incompatible)" : "%s (incompatible)", + "%s (3rdparty)" : "%s (hirugarrenekoa)", + "%s (incompatible)" : "%s (bateraezina)", "Following apps have been disabled: %s" : "Hurrengo aplikazioak desgaitu egin dira: %s", "Already up to date" : "Dagoeneko eguneratuta", "Search contacts …" : "Bilatu kontaktuak ...", @@ -61,6 +61,7 @@ OC.L10N.register( "Loading your contacts …" : "Zure kontaktuak kargatzen...", "Looking for {term} …" : "{term} bilatzen...", "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Kodearen integritate egiaztapenarekin arazoak egon dira. Informazio gehiago…</a>", + "No action available" : "Ez dago ekintzarik eskuragarri", "Error fetching contact actions" : "Errorea kontaktu-ekintzak eskuratzean", "Settings" : "Ezarpenak", "Connection to server lost" : "Zerbitzariarekiko konexioa eten da", @@ -84,6 +85,7 @@ OC.L10N.register( "No files in here" : "Ez dago fitxategirik hemen", "Choose" : "Aukeratu", "Copy" : "Kopiatu", + "Move" : "Mugitu", "Error loading file picker template: {error}" : "Errorea fitxategi hautatzaile txantiloiak kargatzerakoan: {error}", "OK" : "Ados", "Error loading message template: {error}" : "Errorea mezu txantiloia kargatzean: {error}", @@ -99,6 +101,8 @@ OC.L10N.register( "({count} selected)" : "({count} hautatuta)", "Error loading file exists template" : "Errorea fitxategia existitzen da txantiloiak kargatzerakoan", "Pending" : "Zain", + "Copy to {folder}" : "{karpetara} kopiatu", + "Move to {folder}" : "{karpetara} mugitu", "Very weak password" : "Pasahitz oso ahula", "Weak password" : "Pasahitz ahula", "So-so password" : "Halamoduzko pasahitza", @@ -106,8 +110,8 @@ OC.L10N.register( "Strong password" : "Pasahitz sendoa", "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Zure web zerbitzaria ez dago oraindik konfiguratuta fitxategia sinkronizazioa ahalbidetzeko WebDAV interfazea badirudi hautsita dagoela.", "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Zure web zerbitzaria ez dago behar bezala konfiguratuta \"{url}\" irekitzeko. Informazio gehiago gure <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentazioan </a> aurki daiteke.", - "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features.", - "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Zerbitzari honek ez du Interneteko konexiorik: Helburu asko ezin dira atzitu.Honek esan nahi du kanpo biltegiratzeak, eguneraketei buruzko notifikazioak edo hirugarrenen aplikazioak ez dutela funtzionatuko. Urruneko fitxategiak atzitzea eta notifikazio emailek ere ez dute funtzionatuko ziuraski. Internet konexioa gaitzea gomendatzen dizugu, ezaugarri guzti hauek nahi badituzu. ", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Ez da katxe memoriarik konfiguratu. Funtzionamendua hobetzeko konfigura mesedez configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>.", "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it.", "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>.", @@ -115,8 +119,9 @@ OC.L10N.register( "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)", "The PHP OPcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend</a> to use following settings in the <code>php.ini</code>:" : "PHP OPcache ez dago era egokian ezarrita. Hobe funtzionatzeko gomendatzen dugu hurrengo ezarpenak erabiltzea php.ini fitxategian:", "Error occurred while checking server setup" : "Akatsa gertatu da zerbitzariaren konfigurazioa egiaztatzean", - "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting.", - "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>.", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Zure datu karpeta eta zure fitxategiak Internetetik atzigarri daude. .htaccess fitxategia ez dabil. Bereziki gomendatzen da zure web zerbitzariazure datu karpeta atzigarri ez egoteko konfiguratzea, edo datu-karpeta ateratzeaweb zerbitzariaren errotik", + "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "\"{header}\" HTTP goiburua ez da \"{expected}\" hau bezalakoa. Segurtasun edo pribatutasuna arazo bat da hau eta ezarpen hau egokitzea gomendatzen dizugu", + "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "\"Garraio segurtasun-zehatza\" HTTP goiburua ez dago konfiguratua gutxienez \"{seconds}\" segundurekin. Segurtasuna hobetzeko HSTS gaitzea gomendatzen dugu, <a href=\"{docUrl}\" rel=\"noreferrer\">segurtasun aholkuak</a>gida jarraiki.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>.", "Shared" : "Elkarbanatuta", "Shared with {recipients}" : "{recipients}-rekin partekatua.", @@ -160,13 +165,15 @@ OC.L10N.register( "Could not unshare" : "Ezin izan da despartekatu", "Error while sharing" : "Errore bat egon da elkarbanatzean", "Share details could not be loaded for this item." : "Partekatze xehetasunak ezin izan dira elementu honentzat kargatu.", + "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Autosaketaren funtziorako {count} karaketere gutxienez behar dira","Autosaketaren funtziorako {count} karaketere gutxienez behar dira"], + "This list is maybe truncated - please refine your search term to see more results." : "Gerta daiteke zerrenda hau moztu behar izatea - mesedez, zure bilaketa birfindu emaitza gehiago ikusteko", "No users or groups found for {search}" : "Ez dira {search} -rentzat erabiltzaile edo talderik aurkitu", "No users found for {search}" : "Ez dira {search} -rentzat erabiltzailerik aurkitu", "An error occurred. Please try again" : "Errore bat gertatu da. Saiatu berriro.", - "{sharee} (group)" : "{sharee} (group)", - "{sharee} (remote)" : "{sharee} (remote)", + "{sharee} (group)" : "{sharee} (taldea)", + "{sharee} (remote)" : "{sharee} (urrunekoa)", "{sharee} (email)" : "{sharee} (email)", - "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", + "{sharee} ({type}, {owner})" : "{sharee} ({type}, {jabea})", "Share" : "Partekatu", "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Parteka ezazu jendearekin taldeko erabiltzailea, federatutako hodei baten IDa edo e-posta helbide bat sartuta.", "Share with other people by entering a user or group or a federated cloud ID." : "Parteka ezazu jendearekin taldeko erabiltzailea edo federatutako hodei baten IDa sartuta.", @@ -190,6 +197,7 @@ OC.L10N.register( "sunny" : "eguzkitsua", "Hello {name}, the weather is {weather}" : "Kaixo {name}, eguraldia {weather} da", "Hello {name}" : "Kaixo {name}", + "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Hauek dira zure bilaketaren emaitzak:<script>alert(1)</script></strong>", "new" : "Berria", "_download %n file_::_download %n files_" : ["%n fitxategia jaitsi","jaitsi %n fitxategiak"], "The update is in progress, leaving this page might interrupt the process in some environments." : "Eguneratzea abian da, orri hau utziz prozesua eten liteke ingurune batzuetan.", @@ -199,6 +207,7 @@ OC.L10N.register( "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue.", "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>.", "Continue to Nextcloud" : "Nextcloudera abiatu", + "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Eguneraketa ongi joan da. %n segundu barru Nextcloud-era birbideratuko zaitugu","Eguneraketa ongi joan da. %n segundu barru Nextcloud-era birbideratuko zaitugu"], "Searching other places" : "Beste lekuak bilatzen", "No search results in other folders for {tag}{filter}{endtag}" : "{tag}{filter}{endtag}-rentzat ez da emaitzarik topatu karpetetan", "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} bilaketa-emaitza beste karpeta batean","{count} bilaketa-emaitzak beste karpetetan"], @@ -212,6 +221,8 @@ OC.L10N.register( "The specified document has not been found on the server." : "Zehaztutako dokumentua ez da zerbitzarian aurkitu.", "You can click here to return to %s." : "Hemen klika dezakezu %sra itzultzeko.", "Internal Server Error" : "Zerbitzariaren Barne Errorea", + "The server was unable to complete your request." : "Zerbitzariak ezin du zure eskaera bete", + "If this happens again, please send the technical details below to the server administrator." : "Berriz gertatzen bada, ondoko datu teknikoak zure administratzaileari pasa iezaiozu mesedez.", "More details can be found in the server log." : "Zehaztapen gehiago zerbitzariaren egunerokoan aurki daitezke.", "Technical details" : "Arazo teknikoak", "Remote Address: %s" : "Urruneko Helbidea: %s", @@ -224,7 +235,7 @@ OC.L10N.register( "Trace" : "Arrastoa", "Security warning" : "Segurtasun abisua", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Zure data karpeta eta fitxategiak interneten bidez eskuragarri egon daitezke .htaccess fitxategia ez delako funtzionatzen ari.", - "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>.", + "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Zure zerbitzaria ongi konfiguratzeko informazioa topatzeko <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentazioa begiratu mesedez</a>.", "Create an <strong>admin account</strong>" : "Sortu <strong>kudeatzaile kontu<strong> bat", "Username" : "Erabiltzaile izena", "Storage & database" : "Biltegia & datubasea", @@ -238,18 +249,19 @@ OC.L10N.register( "Database name" : "Datubasearen izena", "Database tablespace" : "Datu basearen taula-lekua", "Database host" : "Datubasearen hostalaria", - "Please specify the port number along with the host name (e.g., localhost:5432)." : "Please specify the port number along with the host name (e.g., localhost:5432).", - "Performance warning" : "Errendimendua abisua", - "SQLite will be used as database." : "SQLite will be used as database.", - "For larger installations we recommend to choose a different database backend." : "For larger installations we recommend to choose a different database backend.", - "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Especially when using the desktop client for file syncing the use of SQLite is discouraged.", + "Please specify the port number along with the host name (e.g., localhost:5432)." : "Makinaren izenarekin batera portua ezarri (adb. localhost:5432).", + "Performance warning" : "Errendimendu abisua", + "SQLite will be used as database." : "SQLite datubase bezala erabiliko da.", + "For larger installations we recommend to choose a different database backend." : "Instalazio handientzako beste datubase sistema bat erabiltzea gomendatzen da.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Fitxategiak sinkronizatzeko idazmahai aplikazioa erabili nahi badugu SQLite erabiltzea ez da gomendatzen. is discouraged.", "Finish setup" : "Bukatu konfigurazioa", "Finishing …" : "Bukatzen...", "Need help?" : "Laguntza behar al duzu?", "See the documentation" : "Ikusi dokumentazioa", - "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page.", + "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Aplikazio honek JavaScript eskatzen du ondo funtzionatzeko. Mesedez {linkstart}JavaScript gaitu {linkend}eta webgunea birkargatu.", "More apps" : "Aplikazio gehiago", "Search" : "Bilatu", + "Reset search" : "Bilaketa berrezarri", "Confirm your password" : "Berretsi pasahitza", "Server side authentication failed!" : "Zerbitzari aldeko autentifikazioak huts egin du!", "Please contact your administrator." : "Mesedez jarri harremetan zure administradorearekin.", @@ -261,6 +273,8 @@ OC.L10N.register( "Log in" : "Hasi saioa", "Stay logged in" : "Ez amaitu saioa", "Alternative Logins" : "Beste erabiltzaile izenak", + "Account access" : "Kontuaren sarbidea", + "You are about to grant %s access to your %s account." : "%s kontuari %sra sarbidea emango diozu", "App token" : "Aplikazio-tokena", "Alternative login using app token" : "Ordezko saio-hasiera aplikazio-tokena erabilta", "Redirecting …" : "Birbideratzen...", @@ -272,6 +286,9 @@ OC.L10N.register( "Cancel log in" : "Ezeztatu log in", "Use backup code" : "Erabili ordezko kodea", "Error while validating your second factor" : "Akatsa zure bigarren faktorea balioztatzean", + "Access through untrusted domain" : "Ziurtasunik gabeko domeinutik sartzen", + "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Zure administratzailearekin kontaktuan jarri. Administratzailea bazara, config/config.php fitxategian\"konfidantzazko_domeinuak\" ezarpena editatusample.php konfigurazio fitxategian bezala", + "Depending on your configuration, this button could also work to trust the domain:" : "Zure konfigurazioaren arabera, botoi hau domeinua konfidantzazkoa bezala markatzeko balio du", "Add \"%s\" as trusted domain" : "Gehitu \"%s\" domeinu fidagarri gisa", "App update required" : "Aplikazio eguneraketa beharrezkoa da", "%s will be updated to version %s" : "%s %s bertsiora eguneratuko da", @@ -283,7 +300,9 @@ OC.L10N.register( "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Instalazio handien itxarote-denbora saihesteko, ondoko komandoa exekuta dezakezu instalazio direktoriotik:", "Detailed logs" : "Log xehea", "Update needed" : "Eguneratzea beharrezkoa da", + "Please use the command line updater because you have a big instance with more than 50 users." : "Komando-lerroko eguneratzailea erabili mesedez, 50 erabiltzaile baino gehiagoko instantzia handia bait da", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Laguntza lortzeko, ikusi <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dokumentazioa</a>.", + "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Badakit web bidezko UI-a erabiliz eguneraketa egitean arriskuak daudela, eskaera denboraz-kanpo geratzen bada datuen galera gerta daitekeela, bainabackup kopia egin dut eta badakit instantzia birsortzen, arazoak egonez gero", "Upgrade via web on my own risk" : "Web bidezko bertsio-berritzea nire ardurapean", "This %s instance is currently in maintenance mode, which may take a while." : "Instantzia hau %s mantenu-moduan dago, honek denbora tarte bat iraun dezake.", "This page will refresh itself when the %s instance is available again." : "Orri honek bere burua eguneratuko du %s instantzia berriz prest dagoenean.", @@ -315,7 +334,7 @@ OC.L10N.register( "Edit tags" : "Editatu etiketak", "Error loading dialog template: {error}" : "Errorea elkarrizketa txantiloia kargatzean: {errorea}", "No tags selected for deletion." : "Ez dira ezabatzeko etiketak hautatu.", - "The update was successful. Redirecting you to Nextcloud now." : "The update was successful. Redirecting you to Nextcloud now.", + "The update was successful. Redirecting you to Nextcloud now." : "Eguneraketa ondo joan da. Nextcloud-era birbideratuko zaitugu.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Kaixo\n\n%s-ek %s zurekin partekatu duela jakin dezazun.\nIkusi ezazu: %s\n\n", "The share will expire on %s." : "Partekatzea %s-n iraungiko da.", "Cheers!" : "Ongi izan!", diff --git a/core/l10n/eu.json b/core/l10n/eu.json index 98a751370ef..333e46a8d01 100644 --- a/core/l10n/eu.json +++ b/core/l10n/eu.json @@ -44,12 +44,12 @@ "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "%s datu-basearen eskema eguneratu daitekeen egiaztatzen (honek luzerako hartu dezake datu-basearen arabera)", "Checked database schema update for apps" : "Egiaztatuta aplikazioen datu-basearen zerbitzariaren eguneraketa", "Updated \"%s\" to %s" : "\"%s\" %s-ra eguneratua", - "Set log level to debug" : "Set log level to debug", - "Reset log level" : "Reset log level", + "Set log level to debug" : "Log maila debug-era ezarri", + "Reset log level" : "Log maila berrezarri", "Starting code integrity check" : "Kodearen integritate egiaztapena hasten", "Finished code integrity check" : "Kodearen integritate egiaztapena bukatuta", - "%s (3rdparty)" : "%s (3rdparty)", - "%s (incompatible)" : "%s (incompatible)", + "%s (3rdparty)" : "%s (hirugarrenekoa)", + "%s (incompatible)" : "%s (bateraezina)", "Following apps have been disabled: %s" : "Hurrengo aplikazioak desgaitu egin dira: %s", "Already up to date" : "Dagoeneko eguneratuta", "Search contacts …" : "Bilatu kontaktuak ...", @@ -59,6 +59,7 @@ "Loading your contacts …" : "Zure kontaktuak kargatzen...", "Looking for {term} …" : "{term} bilatzen...", "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Kodearen integritate egiaztapenarekin arazoak egon dira. Informazio gehiago…</a>", + "No action available" : "Ez dago ekintzarik eskuragarri", "Error fetching contact actions" : "Errorea kontaktu-ekintzak eskuratzean", "Settings" : "Ezarpenak", "Connection to server lost" : "Zerbitzariarekiko konexioa eten da", @@ -82,6 +83,7 @@ "No files in here" : "Ez dago fitxategirik hemen", "Choose" : "Aukeratu", "Copy" : "Kopiatu", + "Move" : "Mugitu", "Error loading file picker template: {error}" : "Errorea fitxategi hautatzaile txantiloiak kargatzerakoan: {error}", "OK" : "Ados", "Error loading message template: {error}" : "Errorea mezu txantiloia kargatzean: {error}", @@ -97,6 +99,8 @@ "({count} selected)" : "({count} hautatuta)", "Error loading file exists template" : "Errorea fitxategia existitzen da txantiloiak kargatzerakoan", "Pending" : "Zain", + "Copy to {folder}" : "{karpetara} kopiatu", + "Move to {folder}" : "{karpetara} mugitu", "Very weak password" : "Pasahitz oso ahula", "Weak password" : "Pasahitz ahula", "So-so password" : "Halamoduzko pasahitza", @@ -104,8 +108,8 @@ "Strong password" : "Pasahitz sendoa", "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Zure web zerbitzaria ez dago oraindik konfiguratuta fitxategia sinkronizazioa ahalbidetzeko WebDAV interfazea badirudi hautsita dagoela.", "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Zure web zerbitzaria ez dago behar bezala konfiguratuta \"{url}\" irekitzeko. Informazio gehiago gure <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentazioan </a> aurki daiteke.", - "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features.", - "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Zerbitzari honek ez du Interneteko konexiorik: Helburu asko ezin dira atzitu.Honek esan nahi du kanpo biltegiratzeak, eguneraketei buruzko notifikazioak edo hirugarrenen aplikazioak ez dutela funtzionatuko. Urruneko fitxategiak atzitzea eta notifikazio emailek ere ez dute funtzionatuko ziuraski. Internet konexioa gaitzea gomendatzen dizugu, ezaugarri guzti hauek nahi badituzu. ", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Ez da katxe memoriarik konfiguratu. Funtzionamendua hobetzeko konfigura mesedez configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>.", "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it.", "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>.", @@ -113,8 +117,9 @@ "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)", "The PHP OPcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend</a> to use following settings in the <code>php.ini</code>:" : "PHP OPcache ez dago era egokian ezarrita. Hobe funtzionatzeko gomendatzen dugu hurrengo ezarpenak erabiltzea php.ini fitxategian:", "Error occurred while checking server setup" : "Akatsa gertatu da zerbitzariaren konfigurazioa egiaztatzean", - "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting.", - "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>.", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Zure datu karpeta eta zure fitxategiak Internetetik atzigarri daude. .htaccess fitxategia ez dabil. Bereziki gomendatzen da zure web zerbitzariazure datu karpeta atzigarri ez egoteko konfiguratzea, edo datu-karpeta ateratzeaweb zerbitzariaren errotik", + "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "\"{header}\" HTTP goiburua ez da \"{expected}\" hau bezalakoa. Segurtasun edo pribatutasuna arazo bat da hau eta ezarpen hau egokitzea gomendatzen dizugu", + "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "\"Garraio segurtasun-zehatza\" HTTP goiburua ez dago konfiguratua gutxienez \"{seconds}\" segundurekin. Segurtasuna hobetzeko HSTS gaitzea gomendatzen dugu, <a href=\"{docUrl}\" rel=\"noreferrer\">segurtasun aholkuak</a>gida jarraiki.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>.", "Shared" : "Elkarbanatuta", "Shared with {recipients}" : "{recipients}-rekin partekatua.", @@ -158,13 +163,15 @@ "Could not unshare" : "Ezin izan da despartekatu", "Error while sharing" : "Errore bat egon da elkarbanatzean", "Share details could not be loaded for this item." : "Partekatze xehetasunak ezin izan dira elementu honentzat kargatu.", + "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Autosaketaren funtziorako {count} karaketere gutxienez behar dira","Autosaketaren funtziorako {count} karaketere gutxienez behar dira"], + "This list is maybe truncated - please refine your search term to see more results." : "Gerta daiteke zerrenda hau moztu behar izatea - mesedez, zure bilaketa birfindu emaitza gehiago ikusteko", "No users or groups found for {search}" : "Ez dira {search} -rentzat erabiltzaile edo talderik aurkitu", "No users found for {search}" : "Ez dira {search} -rentzat erabiltzailerik aurkitu", "An error occurred. Please try again" : "Errore bat gertatu da. Saiatu berriro.", - "{sharee} (group)" : "{sharee} (group)", - "{sharee} (remote)" : "{sharee} (remote)", + "{sharee} (group)" : "{sharee} (taldea)", + "{sharee} (remote)" : "{sharee} (urrunekoa)", "{sharee} (email)" : "{sharee} (email)", - "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", + "{sharee} ({type}, {owner})" : "{sharee} ({type}, {jabea})", "Share" : "Partekatu", "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Parteka ezazu jendearekin taldeko erabiltzailea, federatutako hodei baten IDa edo e-posta helbide bat sartuta.", "Share with other people by entering a user or group or a federated cloud ID." : "Parteka ezazu jendearekin taldeko erabiltzailea edo federatutako hodei baten IDa sartuta.", @@ -188,6 +195,7 @@ "sunny" : "eguzkitsua", "Hello {name}, the weather is {weather}" : "Kaixo {name}, eguraldia {weather} da", "Hello {name}" : "Kaixo {name}", + "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Hauek dira zure bilaketaren emaitzak:<script>alert(1)</script></strong>", "new" : "Berria", "_download %n file_::_download %n files_" : ["%n fitxategia jaitsi","jaitsi %n fitxategiak"], "The update is in progress, leaving this page might interrupt the process in some environments." : "Eguneratzea abian da, orri hau utziz prozesua eten liteke ingurune batzuetan.", @@ -197,6 +205,7 @@ "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue.", "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>.", "Continue to Nextcloud" : "Nextcloudera abiatu", + "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Eguneraketa ongi joan da. %n segundu barru Nextcloud-era birbideratuko zaitugu","Eguneraketa ongi joan da. %n segundu barru Nextcloud-era birbideratuko zaitugu"], "Searching other places" : "Beste lekuak bilatzen", "No search results in other folders for {tag}{filter}{endtag}" : "{tag}{filter}{endtag}-rentzat ez da emaitzarik topatu karpetetan", "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} bilaketa-emaitza beste karpeta batean","{count} bilaketa-emaitzak beste karpetetan"], @@ -210,6 +219,8 @@ "The specified document has not been found on the server." : "Zehaztutako dokumentua ez da zerbitzarian aurkitu.", "You can click here to return to %s." : "Hemen klika dezakezu %sra itzultzeko.", "Internal Server Error" : "Zerbitzariaren Barne Errorea", + "The server was unable to complete your request." : "Zerbitzariak ezin du zure eskaera bete", + "If this happens again, please send the technical details below to the server administrator." : "Berriz gertatzen bada, ondoko datu teknikoak zure administratzaileari pasa iezaiozu mesedez.", "More details can be found in the server log." : "Zehaztapen gehiago zerbitzariaren egunerokoan aurki daitezke.", "Technical details" : "Arazo teknikoak", "Remote Address: %s" : "Urruneko Helbidea: %s", @@ -222,7 +233,7 @@ "Trace" : "Arrastoa", "Security warning" : "Segurtasun abisua", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Zure data karpeta eta fitxategiak interneten bidez eskuragarri egon daitezke .htaccess fitxategia ez delako funtzionatzen ari.", - "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>.", + "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Zure zerbitzaria ongi konfiguratzeko informazioa topatzeko <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentazioa begiratu mesedez</a>.", "Create an <strong>admin account</strong>" : "Sortu <strong>kudeatzaile kontu<strong> bat", "Username" : "Erabiltzaile izena", "Storage & database" : "Biltegia & datubasea", @@ -236,18 +247,19 @@ "Database name" : "Datubasearen izena", "Database tablespace" : "Datu basearen taula-lekua", "Database host" : "Datubasearen hostalaria", - "Please specify the port number along with the host name (e.g., localhost:5432)." : "Please specify the port number along with the host name (e.g., localhost:5432).", - "Performance warning" : "Errendimendua abisua", - "SQLite will be used as database." : "SQLite will be used as database.", - "For larger installations we recommend to choose a different database backend." : "For larger installations we recommend to choose a different database backend.", - "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Especially when using the desktop client for file syncing the use of SQLite is discouraged.", + "Please specify the port number along with the host name (e.g., localhost:5432)." : "Makinaren izenarekin batera portua ezarri (adb. localhost:5432).", + "Performance warning" : "Errendimendu abisua", + "SQLite will be used as database." : "SQLite datubase bezala erabiliko da.", + "For larger installations we recommend to choose a different database backend." : "Instalazio handientzako beste datubase sistema bat erabiltzea gomendatzen da.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Fitxategiak sinkronizatzeko idazmahai aplikazioa erabili nahi badugu SQLite erabiltzea ez da gomendatzen. is discouraged.", "Finish setup" : "Bukatu konfigurazioa", "Finishing …" : "Bukatzen...", "Need help?" : "Laguntza behar al duzu?", "See the documentation" : "Ikusi dokumentazioa", - "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page.", + "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Aplikazio honek JavaScript eskatzen du ondo funtzionatzeko. Mesedez {linkstart}JavaScript gaitu {linkend}eta webgunea birkargatu.", "More apps" : "Aplikazio gehiago", "Search" : "Bilatu", + "Reset search" : "Bilaketa berrezarri", "Confirm your password" : "Berretsi pasahitza", "Server side authentication failed!" : "Zerbitzari aldeko autentifikazioak huts egin du!", "Please contact your administrator." : "Mesedez jarri harremetan zure administradorearekin.", @@ -259,6 +271,8 @@ "Log in" : "Hasi saioa", "Stay logged in" : "Ez amaitu saioa", "Alternative Logins" : "Beste erabiltzaile izenak", + "Account access" : "Kontuaren sarbidea", + "You are about to grant %s access to your %s account." : "%s kontuari %sra sarbidea emango diozu", "App token" : "Aplikazio-tokena", "Alternative login using app token" : "Ordezko saio-hasiera aplikazio-tokena erabilta", "Redirecting …" : "Birbideratzen...", @@ -270,6 +284,9 @@ "Cancel log in" : "Ezeztatu log in", "Use backup code" : "Erabili ordezko kodea", "Error while validating your second factor" : "Akatsa zure bigarren faktorea balioztatzean", + "Access through untrusted domain" : "Ziurtasunik gabeko domeinutik sartzen", + "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Zure administratzailearekin kontaktuan jarri. Administratzailea bazara, config/config.php fitxategian\"konfidantzazko_domeinuak\" ezarpena editatusample.php konfigurazio fitxategian bezala", + "Depending on your configuration, this button could also work to trust the domain:" : "Zure konfigurazioaren arabera, botoi hau domeinua konfidantzazkoa bezala markatzeko balio du", "Add \"%s\" as trusted domain" : "Gehitu \"%s\" domeinu fidagarri gisa", "App update required" : "Aplikazio eguneraketa beharrezkoa da", "%s will be updated to version %s" : "%s %s bertsiora eguneratuko da", @@ -281,7 +298,9 @@ "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Instalazio handien itxarote-denbora saihesteko, ondoko komandoa exekuta dezakezu instalazio direktoriotik:", "Detailed logs" : "Log xehea", "Update needed" : "Eguneratzea beharrezkoa da", + "Please use the command line updater because you have a big instance with more than 50 users." : "Komando-lerroko eguneratzailea erabili mesedez, 50 erabiltzaile baino gehiagoko instantzia handia bait da", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Laguntza lortzeko, ikusi <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dokumentazioa</a>.", + "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Badakit web bidezko UI-a erabiliz eguneraketa egitean arriskuak daudela, eskaera denboraz-kanpo geratzen bada datuen galera gerta daitekeela, bainabackup kopia egin dut eta badakit instantzia birsortzen, arazoak egonez gero", "Upgrade via web on my own risk" : "Web bidezko bertsio-berritzea nire ardurapean", "This %s instance is currently in maintenance mode, which may take a while." : "Instantzia hau %s mantenu-moduan dago, honek denbora tarte bat iraun dezake.", "This page will refresh itself when the %s instance is available again." : "Orri honek bere burua eguneratuko du %s instantzia berriz prest dagoenean.", @@ -313,7 +332,7 @@ "Edit tags" : "Editatu etiketak", "Error loading dialog template: {error}" : "Errorea elkarrizketa txantiloia kargatzean: {errorea}", "No tags selected for deletion." : "Ez dira ezabatzeko etiketak hautatu.", - "The update was successful. Redirecting you to Nextcloud now." : "The update was successful. Redirecting you to Nextcloud now.", + "The update was successful. Redirecting you to Nextcloud now." : "Eguneraketa ondo joan da. Nextcloud-era birbideratuko zaitugu.", "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Kaixo\n\n%s-ek %s zurekin partekatu duela jakin dezazun.\nIkusi ezazu: %s\n\n", "The share will expire on %s." : "Partekatzea %s-n iraungiko da.", "Cheers!" : "Ongi izan!", diff --git a/core/l10n/fi.js b/core/l10n/fi.js index 780d6c50a14..81ad99d806f 100644 --- a/core/l10n/fi.js +++ b/core/l10n/fi.js @@ -115,6 +115,7 @@ OC.L10N.register( "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "Sinulla on käytössä PHP {version}. Suosittelemme päivittämään PHP-versiosi saadaksesi <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">PHP Group:n suorituskyky ja tietoturvapäivityksiä</a> niin pian kuin jakelusi sitä tukee.", "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached on määritelty hajautetuksi välimuistiksi, mutta väärä PHP-moduuli \"memcache\" on asennettu. \\OC\\Memcache\\Memcached tukee vain moduulia \"memcached\", mutta ei moduulia \"memcache\". Katso <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wikiä molemmista moduleista</a>.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Jotkin tiedostot eivät ole läpäisseet eheystarkistusta. Lisätietoa ongelman korjaamiseksi on <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">ohjeissamme</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">Listaa virheelliset tiedostot…</a> / <a href=\"{rescanEndpoint}\">Uudelleen skannaa…</a>)", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "PHP-funktio \"set_time_limit\" ei ole saatavilla. Tämä saattaa johtaa siihen, että skriptien suoritus jää puolitiehen, ja seurauksena on Nextcloud-asennuksen rikkoutuminen. Suosittelemme ottamaan kyseisen funktion käyttöön.", "Error occurred while checking server setup" : "Virhe palvelimen määrityksiä tarkistaessa", "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Data-hakemistosi ja tiedostosi ovat luultavasti käytettävissä suoraan Internetistä. .htaccess-tiedosto ei toimi oikein. Suosittelemme määrittämään HTTP-palvelimen asetukset siten, ettei data-hakemisto ole suoraan käytettävissä Internetistä tai siirtämään data-hakemiston HTTP-palvelimen juurihakemiston ulkopuolelle.", "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "HTTP-otsaketta \"{header}\" ei ole määritetty vastaamaan arvoa \"{expected}\". Kyseessä on mahdollinen tietoturvaan tai -suojaan liittyvä riski, joten suosittelemme muuttamaan asetuksen arvoa.", @@ -258,6 +259,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Tämä sovellus vaatii toimiakseen JavaScript-tuen. {linkstart}Ota JavaScript käyttöön{linkend} ja päivitä sivu.", "More apps" : "Lisää sovelluksia", "Search" : "Etsi", + "Reset search" : "Nollaa haku", "Confirm your password" : "Vahvista salasanasi", "Server side authentication failed!" : "Palvelimen puoleinen tunnistautuminen epäonnistui!", "Please contact your administrator." : "Ota yhteys ylläpitäjään.", diff --git a/core/l10n/fi.json b/core/l10n/fi.json index ef3905b826c..03b20c9dc19 100644 --- a/core/l10n/fi.json +++ b/core/l10n/fi.json @@ -113,6 +113,7 @@ "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "Sinulla on käytössä PHP {version}. Suosittelemme päivittämään PHP-versiosi saadaksesi <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">PHP Group:n suorituskyky ja tietoturvapäivityksiä</a> niin pian kuin jakelusi sitä tukee.", "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached on määritelty hajautetuksi välimuistiksi, mutta väärä PHP-moduuli \"memcache\" on asennettu. \\OC\\Memcache\\Memcached tukee vain moduulia \"memcached\", mutta ei moduulia \"memcache\". Katso <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wikiä molemmista moduleista</a>.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Jotkin tiedostot eivät ole läpäisseet eheystarkistusta. Lisätietoa ongelman korjaamiseksi on <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">ohjeissamme</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">Listaa virheelliset tiedostot…</a> / <a href=\"{rescanEndpoint}\">Uudelleen skannaa…</a>)", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "PHP-funktio \"set_time_limit\" ei ole saatavilla. Tämä saattaa johtaa siihen, että skriptien suoritus jää puolitiehen, ja seurauksena on Nextcloud-asennuksen rikkoutuminen. Suosittelemme ottamaan kyseisen funktion käyttöön.", "Error occurred while checking server setup" : "Virhe palvelimen määrityksiä tarkistaessa", "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Data-hakemistosi ja tiedostosi ovat luultavasti käytettävissä suoraan Internetistä. .htaccess-tiedosto ei toimi oikein. Suosittelemme määrittämään HTTP-palvelimen asetukset siten, ettei data-hakemisto ole suoraan käytettävissä Internetistä tai siirtämään data-hakemiston HTTP-palvelimen juurihakemiston ulkopuolelle.", "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "HTTP-otsaketta \"{header}\" ei ole määritetty vastaamaan arvoa \"{expected}\". Kyseessä on mahdollinen tietoturvaan tai -suojaan liittyvä riski, joten suosittelemme muuttamaan asetuksen arvoa.", @@ -256,6 +257,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Tämä sovellus vaatii toimiakseen JavaScript-tuen. {linkstart}Ota JavaScript käyttöön{linkend} ja päivitä sivu.", "More apps" : "Lisää sovelluksia", "Search" : "Etsi", + "Reset search" : "Nollaa haku", "Confirm your password" : "Vahvista salasanasi", "Server side authentication failed!" : "Palvelimen puoleinen tunnistautuminen epäonnistui!", "Please contact your administrator." : "Ota yhteys ylläpitäjään.", diff --git a/core/l10n/hu.js b/core/l10n/hu.js index f79fde38593..3af920be339 100644 --- a/core/l10n/hu.js +++ b/core/l10n/hu.js @@ -21,6 +21,8 @@ OC.L10N.register( "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nem tudtunk visszaállítási e-mailt küldeni, mert ehhez a felhasználóhoz nem tartozik e-mail cím. Kérlek, vedd fel a kapcsolatot a rendszergazdával!", "%s password reset" : "%s jelszó visszaállítás", "Password reset" : "Jelszó visszaállítás", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Kattints a lenti gombra a jelszavad visszaállításához. Ha nem te kérted ezt, hagyd figyelmen kívül ezt a levelet.", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Kattints a lenti linkre a jelszavad visszaállításához. Ha nem te kérted ezt, hagyd figyelmen kívül ezt a levelet.", "Reset your password" : "Állítsd vissza a jelszavad", "Couldn't send reset email. Please contact your administrator." : "Visszaállítási e-mail nem küldhető. Kérlek, lépj kapcsolatba a rendszergazdával.", "Couldn't send reset email. Please make sure your username is correct." : "Visszaállítási e-mail nem küldhető. Kérlek, lépj kapcsolatba a rendszergazdával. ", @@ -38,7 +40,9 @@ OC.L10N.register( "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Annak ellenőrzése, hogy az adatbázis sémát lehet-e frissíteni (ez hosszabb ideig is eltarthat az adatbázis méretétől függően)", "Checked database schema update" : "Az adatbázis séma frissítését ellenőriztük", "Checking updates of apps" : "Alkalmazások frissítésének ellenőrzése", + "Checking for update of app \"%s\" in appstore" : "A(z) \"%s\" alkalmazás frissítéseinek keresése az alkalmazástárban", "Update app \"%s\" from appstore" : "\"%s\" alkalmazás frissítése a tárból", + "Checked for update of app \"%s\" in appstore" : "A(z) \"%s\" alkalmazás frissítéseinek ellenőrizve az alkalmazástárban", "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Annak ellenőrzése, hogy a(z) %s adatbázis sémáját lehet-e frissíteni (ez hosszabb ideig is eltarthat az adatbázis méretétől függően)", "Checked database schema update for apps" : "Az adatbázis séma frissítését ellenőriztük az alkalmazásokra vontakozóan", "Updated \"%s\" to %s" : "\"%s\" frissítve erre: %s", @@ -61,6 +65,7 @@ OC.L10N.register( "Error fetching contact actions" : "Hiba a kapcsolati műveletek begyűjtésében", "Settings" : "Beállítások", "Connection to server lost" : "Megszakadt a kapcsolat a szerverrel", + "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Probléma az oldal betöltésekor, újratöltés %n másodperc múlva","Probléma az oldal betöltésekor, újratöltés %n másodperc múlva"], "Saving..." : "Mentés...", "Dismiss" : "Elutasít", "This action requires you to confirm your password" : "A művelethez szükség van a jelszavad megerősítésére", @@ -72,6 +77,7 @@ OC.L10N.register( "seconds ago" : "pár másodperce", "Logging in …" : "Bejelentkezés ...", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "A jelszó visszaállításához a hivatkozást e-mailben elküldtük. Ha a levél elfogadható időn belül nem érkezik meg, ellenőrizze a spam/levélszemét mappát.<br>Ha nincs ott, kérdezze meg a helyi rendszergazdát.", + "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Fájljaid titkosítva vannak. A jelszó visszaállítása után nem lesz semmi mód sem azok visszafejtésére.<br />Ha nem tudod mit teszel ezzel, beszélj a rendszergazdáddal<br />Biztosan folytatod?", "I know what I'm doing" : "Tudom mit csinálok.", "Password can not be changed. Please contact your administrator." : "A jelszót nem lehet visszaállítani. Kérjük, lépjen kapcsolatba a redszergazdával.", "No" : "Nem", @@ -111,7 +117,10 @@ OC.L10N.register( "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "A fordított proxy fejlécek konfigurációs beállításai helytelenek, vagy egy megbízható proxy-ból próbálod a Nextcloudot elérni. Ha nem megbízható proxy-ból próbálod elérni az Nextcloudot, akkor ez egy biztonsági probléma, a támadó az Nextcloud számára látható IP cím csalást tud végrehajtani. Bővebb információt a <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentációban</a> találhatsz.", "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached be van konfigurálva gyorsítótárnak, de rossz \"memcache\" PHP modul van telepítve. \\OC\\Memcache\\Memcached csak a \"memcached\"-t támogatja, és nem a \"memcache\"-t. Kérjük, nézze meg a <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki oldalt a modulokkal kapcsolatban</a>.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Néhány fájl nem felelt meg az integritás ellenőrzésen. Bővebb információt a <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentációban</a> találhat. (<a href=\"{codeIntegrityDownloadEndpoint}\">Érvénytelen fájlok listája…</a> / <a href=\"{rescanEndpoint}\">Újra ellenőrzés…</a>)", + "The PHP OPcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend</a> to use following settings in the <code>php.ini</code>:" : "A PHP OPcache nincs megfelelően beállítva. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">A jobb teljesítmény érdekében</a> használd az alábbi beállításokat a <code>php.ini</code>-ben:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "A \"set_time_limit\" beállítás nem elérhető. Így egy script megszakadhat, a telepítésed megbénítását okozhatva. Erősen javasoljuk a beállítás engedélyezését.", "Error occurred while checking server setup" : "Hiba történt a szerver beállítások ellenőrzése közben", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Az adatmappád és fájljaid elérhetők az interneten. A .htaccess fájlod nem működik. Erősen javasolt, hogy a webszerveredet úgy állítsd be, hogy a mappa tartalma ne legyen közvetlenül elérhető, vagy mozgasd át a mappát a kiszolgálási területen kívülre.", "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "A \"{header}\" HTTP fejléc nincs beállítva, hogy megegyezzen az elvárttal \"{expected}\". Ez egy potenciális biztonsági kockázat és kérjük, hogy változtassa meg a beállításokat.", "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "A \"Strict-Transport-Security\" HTTP fejléc nincs beállítva hogy \"{seconds}\" másodpercig tartson. Biztonsági okokból ajánljuk, hogy engedélyezze a HSTS, ahogyan ezt részletezzük a <a href=\"{docUrl}\" rel=\"noreferrer\">biztonsági tippek</a> dokumentációban.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Jelenleg HTTP-vel éri el a weboldalt. Erősen ajánlott a HTTPS konfiguráció használata ehelyett, ahogyan ezt részleteztük a <a href=\"{docUrl}\">biztonsági tippek</a> dokumentációban", @@ -123,6 +132,7 @@ OC.L10N.register( "Expiration" : "Lejárat", "Expiration date" : "Lejárati idő", "Choose a password for the public link" : "Válasszon egy jelszót a nyilvános hivatkozáshoz", + "Choose a password for the public link or press the \"Enter\" key" : "Válassz jelszót a nyilvános linkhez, vagy nyomj Entert", "Copied!" : "Másolva!", "Not supported!" : "Nem támogatott!", "Press ⌘-C to copy." : "A másoláshoz nyomj ⌘-C-t.", @@ -156,6 +166,7 @@ OC.L10N.register( "Could not unshare" : "Nem sikerült visszavonni a megosztást", "Error while sharing" : "Nem sikerült létrehozni a megosztást", "Share details could not be loaded for this item." : "A megosztás részletei nem lehet betölteni ehhez az elemhez.", + "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Legalább {count} karakter szükséges az automatikus kiegészítéshez","Legalább {count} karakter szükséges az automatikus kiegészítéshez"], "This list is maybe truncated - please refine your search term to see more results." : "Ez a lista lehet, hogy le van vágva - kérem pontosítsa a keresését, hogy több eredményt lásson.", "No users or groups found for {search}" : "{search} keresésre nem található felhasználó vagy csoport", "No users found for {search}" : "{search} keresésre nem található felhasználó", @@ -165,7 +176,12 @@ OC.L10N.register( "{sharee} (email)" : "{sharee} (e-mail)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Megosztás", + "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Megosztás más emberekkel név vagy csoport, egy egységes felhőazonosító vagy e-mailcím megadásával.", + "Share with other people by entering a user or group or a federated cloud ID." : "Megosztás más emberekkel felhasználó, csoport vagy egyesített felhőazonosító megadásával.", + "Share with other people by entering a user or group or an email address." : "Megosztás más emberekkel név, csoport vagy e-mailcím megadásával.", "Name or email address..." : "Név vagy e-mail cím...", + "Name or federated cloud ID..." : "Név vagy egyesített felhőazonosító...", + "Name, federated cloud ID or email address..." : "Név, egyesített felhőazonosító vagy e-mail cím...", "Name..." : "Név...", "Error" : "Hiba", "Error removing share" : "Hiba a megosztás törlésekor", @@ -182,6 +198,7 @@ OC.L10N.register( "sunny" : "napos", "Hello {name}, the weather is {weather}" : "Üdv {name}, {weather} időnk van", "Hello {name}" : "Üdv {name}!", + "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Ezek a találati eredményeid<script>alert(1)</script></strong>", "new" : "új", "_download %n file_::_download %n files_" : ["%n fájl letöltése","%n fájl letöltése"], "The update is in progress, leaving this page might interrupt the process in some environments." : "A frissítés folyamatban van, az oldal elhagyása néhány környezetben megszakíthatja a folyamatot.", @@ -206,6 +223,7 @@ OC.L10N.register( "You can click here to return to %s." : "Ide kattintva visszatérhet ide: %s.", "Internal Server Error" : "Belső szerver hiba", "The server was unable to complete your request." : "A szerver nem tudta végrehajtani a kérésed.", + "If this happens again, please send the technical details below to the server administrator." : "Ha ez még egyszer előfordul küldd el az alábbi technikai részleteket a rendszergazdának.", "More details can be found in the server log." : "További részletek a szerver naplóban találhatók.", "Technical details" : "Technikai adatok", "Remote Address: %s" : "Távoli cím: %s", @@ -257,6 +275,7 @@ OC.L10N.register( "Stay logged in" : "Maradjon bejelentkezve", "Alternative Logins" : "Alternatív bejelentkezés", "Account access" : "Fiók hozzáférés", + "You are about to grant %s access to your %s account." : "Hozzáférést készülsz biztosítani neki: %s ehhez a fiókodhoz: %s.", "App token" : "App token", "Alternative login using app token" : "Alternatív bejelentkezés app token segítségével", "Redirecting …" : "Átirányítás ...", @@ -282,7 +301,9 @@ OC.L10N.register( "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Nagyobb telepítések esetén úgy kerülhetők el az időtúllépések, hogy inkább a következő parancsot adja ki a telepítési alkönyvtárban:", "Detailed logs" : "Részletezett naplók", "Update needed" : "Frissítés szükséges", + "Please use the command line updater because you have a big instance with more than 50 users." : "Kérlek használd a parancssori frissítőt, mert túl nagy a telepítésed, több mint 50 felhasználód van.", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Segítségért keresse fel a <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dokumentációt</a>.", + "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Tudomásul veszem, hogy a webes frissítőfelület használata közben fellépő időtúllépés adatvesztéssel járhat. Van biztonsági mentésem, tudom hogyan állítsam vissza az adatokat hiba esetén.", "Upgrade via web on my own risk" : "Saját felelőségre frissítés weben keresztül", "This %s instance is currently in maintenance mode, which may take a while." : "Ez a %s folyamat éppen karbantartó üzemmódban van, ami eltarthat egy darabig.", "This page will refresh itself when the %s instance is available again." : "Ez az oldal frissíteni fogja magát amint a(z) %s példány ismét elérhető.", diff --git a/core/l10n/hu.json b/core/l10n/hu.json index 9d1ee17a04c..70ac7fb3731 100644 --- a/core/l10n/hu.json +++ b/core/l10n/hu.json @@ -19,6 +19,8 @@ "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nem tudtunk visszaállítási e-mailt küldeni, mert ehhez a felhasználóhoz nem tartozik e-mail cím. Kérlek, vedd fel a kapcsolatot a rendszergazdával!", "%s password reset" : "%s jelszó visszaállítás", "Password reset" : "Jelszó visszaállítás", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Kattints a lenti gombra a jelszavad visszaállításához. Ha nem te kérted ezt, hagyd figyelmen kívül ezt a levelet.", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Kattints a lenti linkre a jelszavad visszaállításához. Ha nem te kérted ezt, hagyd figyelmen kívül ezt a levelet.", "Reset your password" : "Állítsd vissza a jelszavad", "Couldn't send reset email. Please contact your administrator." : "Visszaállítási e-mail nem küldhető. Kérlek, lépj kapcsolatba a rendszergazdával.", "Couldn't send reset email. Please make sure your username is correct." : "Visszaállítási e-mail nem küldhető. Kérlek, lépj kapcsolatba a rendszergazdával. ", @@ -36,7 +38,9 @@ "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Annak ellenőrzése, hogy az adatbázis sémát lehet-e frissíteni (ez hosszabb ideig is eltarthat az adatbázis méretétől függően)", "Checked database schema update" : "Az adatbázis séma frissítését ellenőriztük", "Checking updates of apps" : "Alkalmazások frissítésének ellenőrzése", + "Checking for update of app \"%s\" in appstore" : "A(z) \"%s\" alkalmazás frissítéseinek keresése az alkalmazástárban", "Update app \"%s\" from appstore" : "\"%s\" alkalmazás frissítése a tárból", + "Checked for update of app \"%s\" in appstore" : "A(z) \"%s\" alkalmazás frissítéseinek ellenőrizve az alkalmazástárban", "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Annak ellenőrzése, hogy a(z) %s adatbázis sémáját lehet-e frissíteni (ez hosszabb ideig is eltarthat az adatbázis méretétől függően)", "Checked database schema update for apps" : "Az adatbázis séma frissítését ellenőriztük az alkalmazásokra vontakozóan", "Updated \"%s\" to %s" : "\"%s\" frissítve erre: %s", @@ -59,6 +63,7 @@ "Error fetching contact actions" : "Hiba a kapcsolati műveletek begyűjtésében", "Settings" : "Beállítások", "Connection to server lost" : "Megszakadt a kapcsolat a szerverrel", + "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Probléma az oldal betöltésekor, újratöltés %n másodperc múlva","Probléma az oldal betöltésekor, újratöltés %n másodperc múlva"], "Saving..." : "Mentés...", "Dismiss" : "Elutasít", "This action requires you to confirm your password" : "A művelethez szükség van a jelszavad megerősítésére", @@ -70,6 +75,7 @@ "seconds ago" : "pár másodperce", "Logging in …" : "Bejelentkezés ...", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "A jelszó visszaállításához a hivatkozást e-mailben elküldtük. Ha a levél elfogadható időn belül nem érkezik meg, ellenőrizze a spam/levélszemét mappát.<br>Ha nincs ott, kérdezze meg a helyi rendszergazdát.", + "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Fájljaid titkosítva vannak. A jelszó visszaállítása után nem lesz semmi mód sem azok visszafejtésére.<br />Ha nem tudod mit teszel ezzel, beszélj a rendszergazdáddal<br />Biztosan folytatod?", "I know what I'm doing" : "Tudom mit csinálok.", "Password can not be changed. Please contact your administrator." : "A jelszót nem lehet visszaállítani. Kérjük, lépjen kapcsolatba a redszergazdával.", "No" : "Nem", @@ -109,7 +115,10 @@ "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "A fordított proxy fejlécek konfigurációs beállításai helytelenek, vagy egy megbízható proxy-ból próbálod a Nextcloudot elérni. Ha nem megbízható proxy-ból próbálod elérni az Nextcloudot, akkor ez egy biztonsági probléma, a támadó az Nextcloud számára látható IP cím csalást tud végrehajtani. Bővebb információt a <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentációban</a> találhatsz.", "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached be van konfigurálva gyorsítótárnak, de rossz \"memcache\" PHP modul van telepítve. \\OC\\Memcache\\Memcached csak a \"memcached\"-t támogatja, és nem a \"memcache\"-t. Kérjük, nézze meg a <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki oldalt a modulokkal kapcsolatban</a>.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Néhány fájl nem felelt meg az integritás ellenőrzésen. Bővebb információt a <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentációban</a> találhat. (<a href=\"{codeIntegrityDownloadEndpoint}\">Érvénytelen fájlok listája…</a> / <a href=\"{rescanEndpoint}\">Újra ellenőrzés…</a>)", + "The PHP OPcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend</a> to use following settings in the <code>php.ini</code>:" : "A PHP OPcache nincs megfelelően beállítva. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">A jobb teljesítmény érdekében</a> használd az alábbi beállításokat a <code>php.ini</code>-ben:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "A \"set_time_limit\" beállítás nem elérhető. Így egy script megszakadhat, a telepítésed megbénítását okozhatva. Erősen javasoljuk a beállítás engedélyezését.", "Error occurred while checking server setup" : "Hiba történt a szerver beállítások ellenőrzése közben", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Az adatmappád és fájljaid elérhetők az interneten. A .htaccess fájlod nem működik. Erősen javasolt, hogy a webszerveredet úgy állítsd be, hogy a mappa tartalma ne legyen közvetlenül elérhető, vagy mozgasd át a mappát a kiszolgálási területen kívülre.", "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "A \"{header}\" HTTP fejléc nincs beállítva, hogy megegyezzen az elvárttal \"{expected}\". Ez egy potenciális biztonsági kockázat és kérjük, hogy változtassa meg a beállításokat.", "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "A \"Strict-Transport-Security\" HTTP fejléc nincs beállítva hogy \"{seconds}\" másodpercig tartson. Biztonsági okokból ajánljuk, hogy engedélyezze a HSTS, ahogyan ezt részletezzük a <a href=\"{docUrl}\" rel=\"noreferrer\">biztonsági tippek</a> dokumentációban.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Jelenleg HTTP-vel éri el a weboldalt. Erősen ajánlott a HTTPS konfiguráció használata ehelyett, ahogyan ezt részleteztük a <a href=\"{docUrl}\">biztonsági tippek</a> dokumentációban", @@ -121,6 +130,7 @@ "Expiration" : "Lejárat", "Expiration date" : "Lejárati idő", "Choose a password for the public link" : "Válasszon egy jelszót a nyilvános hivatkozáshoz", + "Choose a password for the public link or press the \"Enter\" key" : "Válassz jelszót a nyilvános linkhez, vagy nyomj Entert", "Copied!" : "Másolva!", "Not supported!" : "Nem támogatott!", "Press ⌘-C to copy." : "A másoláshoz nyomj ⌘-C-t.", @@ -154,6 +164,7 @@ "Could not unshare" : "Nem sikerült visszavonni a megosztást", "Error while sharing" : "Nem sikerült létrehozni a megosztást", "Share details could not be loaded for this item." : "A megosztás részletei nem lehet betölteni ehhez az elemhez.", + "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Legalább {count} karakter szükséges az automatikus kiegészítéshez","Legalább {count} karakter szükséges az automatikus kiegészítéshez"], "This list is maybe truncated - please refine your search term to see more results." : "Ez a lista lehet, hogy le van vágva - kérem pontosítsa a keresését, hogy több eredményt lásson.", "No users or groups found for {search}" : "{search} keresésre nem található felhasználó vagy csoport", "No users found for {search}" : "{search} keresésre nem található felhasználó", @@ -163,7 +174,12 @@ "{sharee} (email)" : "{sharee} (e-mail)", "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Megosztás", + "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Megosztás más emberekkel név vagy csoport, egy egységes felhőazonosító vagy e-mailcím megadásával.", + "Share with other people by entering a user or group or a federated cloud ID." : "Megosztás más emberekkel felhasználó, csoport vagy egyesített felhőazonosító megadásával.", + "Share with other people by entering a user or group or an email address." : "Megosztás más emberekkel név, csoport vagy e-mailcím megadásával.", "Name or email address..." : "Név vagy e-mail cím...", + "Name or federated cloud ID..." : "Név vagy egyesített felhőazonosító...", + "Name, federated cloud ID or email address..." : "Név, egyesített felhőazonosító vagy e-mail cím...", "Name..." : "Név...", "Error" : "Hiba", "Error removing share" : "Hiba a megosztás törlésekor", @@ -180,6 +196,7 @@ "sunny" : "napos", "Hello {name}, the weather is {weather}" : "Üdv {name}, {weather} időnk van", "Hello {name}" : "Üdv {name}!", + "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Ezek a találati eredményeid<script>alert(1)</script></strong>", "new" : "új", "_download %n file_::_download %n files_" : ["%n fájl letöltése","%n fájl letöltése"], "The update is in progress, leaving this page might interrupt the process in some environments." : "A frissítés folyamatban van, az oldal elhagyása néhány környezetben megszakíthatja a folyamatot.", @@ -204,6 +221,7 @@ "You can click here to return to %s." : "Ide kattintva visszatérhet ide: %s.", "Internal Server Error" : "Belső szerver hiba", "The server was unable to complete your request." : "A szerver nem tudta végrehajtani a kérésed.", + "If this happens again, please send the technical details below to the server administrator." : "Ha ez még egyszer előfordul küldd el az alábbi technikai részleteket a rendszergazdának.", "More details can be found in the server log." : "További részletek a szerver naplóban találhatók.", "Technical details" : "Technikai adatok", "Remote Address: %s" : "Távoli cím: %s", @@ -255,6 +273,7 @@ "Stay logged in" : "Maradjon bejelentkezve", "Alternative Logins" : "Alternatív bejelentkezés", "Account access" : "Fiók hozzáférés", + "You are about to grant %s access to your %s account." : "Hozzáférést készülsz biztosítani neki: %s ehhez a fiókodhoz: %s.", "App token" : "App token", "Alternative login using app token" : "Alternatív bejelentkezés app token segítségével", "Redirecting …" : "Átirányítás ...", @@ -280,7 +299,9 @@ "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Nagyobb telepítések esetén úgy kerülhetők el az időtúllépések, hogy inkább a következő parancsot adja ki a telepítési alkönyvtárban:", "Detailed logs" : "Részletezett naplók", "Update needed" : "Frissítés szükséges", + "Please use the command line updater because you have a big instance with more than 50 users." : "Kérlek használd a parancssori frissítőt, mert túl nagy a telepítésed, több mint 50 felhasználód van.", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Segítségért keresse fel a <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dokumentációt</a>.", + "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Tudomásul veszem, hogy a webes frissítőfelület használata közben fellépő időtúllépés adatvesztéssel járhat. Van biztonsági mentésem, tudom hogyan állítsam vissza az adatokat hiba esetén.", "Upgrade via web on my own risk" : "Saját felelőségre frissítés weben keresztül", "This %s instance is currently in maintenance mode, which may take a while." : "Ez a %s folyamat éppen karbantartó üzemmódban van, ami eltarthat egy darabig.", "This page will refresh itself when the %s instance is available again." : "Ez az oldal frissíteni fogja magát amint a(z) %s példány ismét elérhető.", diff --git a/core/l10n/is.js b/core/l10n/is.js index 968fa4feea3..017d845cab9 100644 --- a/core/l10n/is.js +++ b/core/l10n/is.js @@ -262,6 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Þetta forrit krefst JavaScript fyrir rétta virkni. {linkstart} virkjaðu JavaScript {linkend} og endurlestu síðan síðuna.", "More apps" : "Fleiri forrit", "Search" : "Leita", + "Reset search" : "Núllstilla leit", "Confirm your password" : "Staðfestu lykilorðið þitt", "Server side authentication failed!" : "Auðkenning af hálfu þjóns tókst ekki!", "Please contact your administrator." : "Hafðu samband við kerfisstjóra.", diff --git a/core/l10n/is.json b/core/l10n/is.json index 5357a509b96..b16de4adedd 100644 --- a/core/l10n/is.json +++ b/core/l10n/is.json @@ -260,6 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Þetta forrit krefst JavaScript fyrir rétta virkni. {linkstart} virkjaðu JavaScript {linkend} og endurlestu síðan síðuna.", "More apps" : "Fleiri forrit", "Search" : "Leita", + "Reset search" : "Núllstilla leit", "Confirm your password" : "Staðfestu lykilorðið þitt", "Server side authentication failed!" : "Auðkenning af hálfu þjóns tókst ekki!", "Please contact your administrator." : "Hafðu samband við kerfisstjóra.", diff --git a/core/l10n/nl.js b/core/l10n/nl.js index 8af41991283..7772f0615e0 100644 --- a/core/l10n/nl.js +++ b/core/l10n/nl.js @@ -262,6 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Deze applicatie heeft JavaScript nodig. {linkstart}Activeer JavaScript{linkend} en ververs deze pagina.", "More apps" : "Meer apps", "Search" : "Zoeken", + "Reset search" : "Zoekopdracht wissen", "Confirm your password" : "Bevestig je wachtwoord", "Server side authentication failed!" : "Authenticatie bij de server mislukte!", "Please contact your administrator." : "Neem contact op met je systeembeheerder.", diff --git a/core/l10n/nl.json b/core/l10n/nl.json index dcc7e8722a8..179983b29c6 100644 --- a/core/l10n/nl.json +++ b/core/l10n/nl.json @@ -260,6 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Deze applicatie heeft JavaScript nodig. {linkstart}Activeer JavaScript{linkend} en ververs deze pagina.", "More apps" : "Meer apps", "Search" : "Zoeken", + "Reset search" : "Zoekopdracht wissen", "Confirm your password" : "Bevestig je wachtwoord", "Server side authentication failed!" : "Authenticatie bij de server mislukte!", "Please contact your administrator." : "Neem contact op met je systeembeheerder.", diff --git a/core/l10n/vi.js b/core/l10n/vi.js index 271f482b6f5..70284f8868e 100644 --- a/core/l10n/vi.js +++ b/core/l10n/vi.js @@ -1,8 +1,8 @@ OC.L10N.register( "core", { - "Please select a file." : "Hãy chọn một tệp tin.", - "File is too big" : "File quá lớn", + "Please select a file." : "Hãy chọn một tệp.", + "File is too big" : "Tệp quá lớn", "The selected file is not an image." : "Tệp tin được chọn không phải là ảnh.", "The selected file cannot be read." : "Tệp tin được chọn không thể đọc.", "Invalid file provided" : "File không hợp lệ", @@ -231,7 +231,7 @@ OC.L10N.register( "Type: %s" : "Loại: %s", "Code: %s" : "Mã: %s", "Message: %s" : "Thông điệp:%s", - "File: %s" : "%sTệp:", + "File: %s" : "Tệp: %s", "Line: %s" : "Dòng: %s", "Trace" : "Theo dõi", "Security warning" : "Cảnh báo bảo mật", @@ -262,6 +262,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ứng dụng này yêu cầu JavaScript để hoạt động chính xác. Vui lòng {linkstart} bật JavaScript {linkend} và tải lại trang.", "More apps" : "Thêm ứng dụng", "Search" : "Tìm kiếm", + "Reset search" : "Đặt lại tìm kiếm", "Confirm your password" : "Xác nhận mật khẩu của bạn", "Server side authentication failed!" : "Xác thực phía máy chủ không thành công!", "Please contact your administrator." : "Vui lòng liên hệ với quản trị viên.", diff --git a/core/l10n/vi.json b/core/l10n/vi.json index 896fb36966a..df39b657988 100644 --- a/core/l10n/vi.json +++ b/core/l10n/vi.json @@ -1,6 +1,6 @@ { "translations": { - "Please select a file." : "Hãy chọn một tệp tin.", - "File is too big" : "File quá lớn", + "Please select a file." : "Hãy chọn một tệp.", + "File is too big" : "Tệp quá lớn", "The selected file is not an image." : "Tệp tin được chọn không phải là ảnh.", "The selected file cannot be read." : "Tệp tin được chọn không thể đọc.", "Invalid file provided" : "File không hợp lệ", @@ -229,7 +229,7 @@ "Type: %s" : "Loại: %s", "Code: %s" : "Mã: %s", "Message: %s" : "Thông điệp:%s", - "File: %s" : "%sTệp:", + "File: %s" : "Tệp: %s", "Line: %s" : "Dòng: %s", "Trace" : "Theo dõi", "Security warning" : "Cảnh báo bảo mật", @@ -260,6 +260,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Ứng dụng này yêu cầu JavaScript để hoạt động chính xác. Vui lòng {linkstart} bật JavaScript {linkend} và tải lại trang.", "More apps" : "Thêm ứng dụng", "Search" : "Tìm kiếm", + "Reset search" : "Đặt lại tìm kiếm", "Confirm your password" : "Xác nhận mật khẩu của bạn", "Server side authentication failed!" : "Xác thực phía máy chủ không thành công!", "Please contact your administrator." : "Vui lòng liên hệ với quản trị viên.", diff --git a/core/register_command.php b/core/register_command.php index 3cba0565993..1b91d2005b9 100644 --- a/core/register_command.php +++ b/core/register_command.php @@ -136,7 +136,7 @@ if (\OC::$server->getConfig()->getSystemValue('installed', false)) { $application->add(new OC\Core\Command\Upgrade(\OC::$server->getConfig(), \OC::$server->getLogger())); $application->add(new OC\Core\Command\Maintenance\Repair( new \OC\Repair(\OC\Repair::getRepairSteps(), \OC::$server->getEventDispatcher()), \OC::$server->getConfig(), - \OC::$server->getEventDispatcher())); + \OC::$server->getEventDispatcher(), \OC::$server->getAppManager())); $application->add(new OC\Core\Command\User\Add(\OC::$server->getUserManager(), \OC::$server->getGroupManager())); $application->add(new OC\Core\Command\User\Delete(\OC::$server->getUserManager())); diff --git a/core/search/css/results.css b/core/search/css/results.css index 2e3791a47f0..e2ccfe36ef8 100644 --- a/core/search/css/results.css +++ b/core/search/css/results.css @@ -30,8 +30,8 @@ padding: 28px 0 28px 56px; font-size: 18px; } -.has-favorites:not(.hidden) ~ #searchresults .status { - padding-left: 102px; +.has-selection:not(.hidden) ~ #searchresults .status { + padding-left: 105px; } #searchresults .status.fixed { position: fixed; @@ -54,7 +54,7 @@ } #searchresults td { - padding: 5px 19px; + padding: 5px 14px; font-style: normal; vertical-align: middle; border-bottom: none; @@ -67,8 +67,8 @@ background-position: right center; background-repeat: no-repeat; } -.has-favorites:not(.hidden) ~ #searchresults td.icon { - width: 86px; +.has-selection:not(.hidden) ~ #searchresults td.icon { + width: 91px; background-size: 32px; } diff --git a/lib/base.php b/lib/base.php index c76d83cd220..b9862e73194 100644 --- a/lib/base.php +++ b/lib/base.php @@ -730,7 +730,6 @@ class OC { self::registerCacheHooks(); self::registerFilesystemHooks(); self::registerShareHooks(); - self::registerLogRotate(); self::registerEncryptionWrapper(); self::registerEncryptionHooks(); self::registerAccountHooks(); @@ -863,18 +862,6 @@ class OC { } /** - * register hooks for the cache - */ - public static function registerLogRotate() { - $systemConfig = \OC::$server->getSystemConfig(); - if ($systemConfig->getValue('installed', false) && $systemConfig->getValue('log_rotate_size', false) && !self::checkUpgrade(false)) { - //don't try to do this before we are properly setup - //use custom logfile path if defined, otherwise use default of nextcloud.log in data directory - \OC::$server->getJobList()->add('OC\Log\Rotate'); - } - } - - /** * register hooks for the filesystem */ public static function registerFilesystemHooks() { diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index e522d82edf7..0e550b72532 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -226,6 +226,7 @@ return array( 'OCP\\Lock\\ILockingProvider' => $baseDir . '/lib/public/Lock/ILockingProvider.php', 'OCP\\Lock\\LockedException' => $baseDir . '/lib/public/Lock/LockedException.php', 'OCP\\Lockdown\\ILockdownManager' => $baseDir . '/lib/public/Lockdown/ILockdownManager.php', + 'OCP\\Mail\\IAttachment' => $baseDir . '/lib/public/Mail/IAttachment.php', 'OCP\\Mail\\IEMailTemplate' => $baseDir . '/lib/public/Mail/IEMailTemplate.php', 'OCP\\Mail\\IMailer' => $baseDir . '/lib/public/Mail/IMailer.php', 'OCP\\Mail\\IMessage' => $baseDir . '/lib/public/Mail/IMessage.php', @@ -532,7 +533,6 @@ return array( 'OC\\DB\\Migrator' => $baseDir . '/lib/private/DB/Migrator.php', 'OC\\DB\\MySQLMigrator' => $baseDir . '/lib/private/DB/MySQLMigrator.php', 'OC\\DB\\MySqlTools' => $baseDir . '/lib/private/DB/MySqlTools.php', - 'OC\\DB\\NoCheckMigrator' => $baseDir . '/lib/private/DB/NoCheckMigrator.php', 'OC\\DB\\OCPostgreSqlPlatform' => $baseDir . '/lib/private/DB/OCPostgreSqlPlatform.php', 'OC\\DB\\OCSqlitePlatform' => $baseDir . '/lib/private/DB/OCSqlitePlatform.php', 'OC\\DB\\OracleConnection' => $baseDir . '/lib/private/DB/OracleConnection.php', @@ -710,6 +710,7 @@ return array( 'OC\\Log\\File' => $baseDir . '/lib/private/Log/File.php', 'OC\\Log\\Rotate' => $baseDir . '/lib/private/Log/Rotate.php', 'OC\\Log\\Syslog' => $baseDir . '/lib/private/Log/Syslog.php', + 'OC\\Mail\\Attachment' => $baseDir . '/lib/private/Mail/Attachment.php', 'OC\\Mail\\EMailTemplate' => $baseDir . '/lib/private/Mail/EMailTemplate.php', 'OC\\Mail\\Mailer' => $baseDir . '/lib/private/Mail/Mailer.php', 'OC\\Mail\\Message' => $baseDir . '/lib/private/Mail/Message.php', @@ -784,6 +785,7 @@ return array( 'OC\\Repair\\NC12\\InstallCoreBundle' => $baseDir . '/lib/private/Repair/NC12/InstallCoreBundle.php', 'OC\\Repair\\NC12\\RepairIdentityProofKeyFolders' => $baseDir . '/lib/private/Repair/NC12/RepairIdentityProofKeyFolders.php', 'OC\\Repair\\NC12\\UpdateLanguageCodes' => $baseDir . '/lib/private/Repair/NC12/UpdateLanguageCodes.php', + 'OC\\Repair\\NC13\\AddLogRotateJob' => $baseDir . '/lib/private/Repair/NC13/AddLogRotateJob.php', 'OC\\Repair\\NC13\\RepairInvalidPaths' => $baseDir . '/lib/private/Repair/NC13/RepairInvalidPaths.php', 'OC\\Repair\\OldGroupMembershipShares' => $baseDir . '/lib/private/Repair/OldGroupMembershipShares.php', 'OC\\Repair\\Owncloud\\DropAccountTermsTable' => $baseDir . '/lib/private/Repair/Owncloud/DropAccountTermsTable.php', diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index 4f538e9602e..563c039d033 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -256,6 +256,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OCP\\Lock\\ILockingProvider' => __DIR__ . '/../../..' . '/lib/public/Lock/ILockingProvider.php', 'OCP\\Lock\\LockedException' => __DIR__ . '/../../..' . '/lib/public/Lock/LockedException.php', 'OCP\\Lockdown\\ILockdownManager' => __DIR__ . '/../../..' . '/lib/public/Lockdown/ILockdownManager.php', + 'OCP\\Mail\\IAttachment' => __DIR__ . '/../../..' . '/lib/public/Mail/IAttachment.php', 'OCP\\Mail\\IEMailTemplate' => __DIR__ . '/../../..' . '/lib/public/Mail/IEMailTemplate.php', 'OCP\\Mail\\IMailer' => __DIR__ . '/../../..' . '/lib/public/Mail/IMailer.php', 'OCP\\Mail\\IMessage' => __DIR__ . '/../../..' . '/lib/public/Mail/IMessage.php', @@ -562,7 +563,6 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\DB\\Migrator' => __DIR__ . '/../../..' . '/lib/private/DB/Migrator.php', 'OC\\DB\\MySQLMigrator' => __DIR__ . '/../../..' . '/lib/private/DB/MySQLMigrator.php', 'OC\\DB\\MySqlTools' => __DIR__ . '/../../..' . '/lib/private/DB/MySqlTools.php', - 'OC\\DB\\NoCheckMigrator' => __DIR__ . '/../../..' . '/lib/private/DB/NoCheckMigrator.php', 'OC\\DB\\OCPostgreSqlPlatform' => __DIR__ . '/../../..' . '/lib/private/DB/OCPostgreSqlPlatform.php', 'OC\\DB\\OCSqlitePlatform' => __DIR__ . '/../../..' . '/lib/private/DB/OCSqlitePlatform.php', 'OC\\DB\\OracleConnection' => __DIR__ . '/../../..' . '/lib/private/DB/OracleConnection.php', @@ -740,6 +740,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Log\\File' => __DIR__ . '/../../..' . '/lib/private/Log/File.php', 'OC\\Log\\Rotate' => __DIR__ . '/../../..' . '/lib/private/Log/Rotate.php', 'OC\\Log\\Syslog' => __DIR__ . '/../../..' . '/lib/private/Log/Syslog.php', + 'OC\\Mail\\Attachment' => __DIR__ . '/../../..' . '/lib/private/Mail/Attachment.php', 'OC\\Mail\\EMailTemplate' => __DIR__ . '/../../..' . '/lib/private/Mail/EMailTemplate.php', 'OC\\Mail\\Mailer' => __DIR__ . '/../../..' . '/lib/private/Mail/Mailer.php', 'OC\\Mail\\Message' => __DIR__ . '/../../..' . '/lib/private/Mail/Message.php', @@ -814,6 +815,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Repair\\NC12\\InstallCoreBundle' => __DIR__ . '/../../..' . '/lib/private/Repair/NC12/InstallCoreBundle.php', 'OC\\Repair\\NC12\\RepairIdentityProofKeyFolders' => __DIR__ . '/../../..' . '/lib/private/Repair/NC12/RepairIdentityProofKeyFolders.php', 'OC\\Repair\\NC12\\UpdateLanguageCodes' => __DIR__ . '/../../..' . '/lib/private/Repair/NC12/UpdateLanguageCodes.php', + 'OC\\Repair\\NC13\\AddLogRotateJob' => __DIR__ . '/../../..' . '/lib/private/Repair/NC13/AddLogRotateJob.php', 'OC\\Repair\\NC13\\RepairInvalidPaths' => __DIR__ . '/../../..' . '/lib/private/Repair/NC13/RepairInvalidPaths.php', 'OC\\Repair\\OldGroupMembershipShares' => __DIR__ . '/../../..' . '/lib/private/Repair/OldGroupMembershipShares.php', 'OC\\Repair\\Owncloud\\DropAccountTermsTable' => __DIR__ . '/../../..' . '/lib/private/Repair/Owncloud/DropAccountTermsTable.php', diff --git a/lib/l10n/en_GB.js b/lib/l10n/en_GB.js index a169502af15..4713820e242 100644 --- a/lib/l10n/en_GB.js +++ b/lib/l10n/en_GB.js @@ -31,14 +31,23 @@ OC.L10N.register( "Invalid image" : "Invalid image", "Avatar image is not square" : "Avatar image is not square", "today" : "today", + "tomorrow" : "tomorrow", "yesterday" : "yesterday", + "_in %n day_::_in %n days_" : ["in %n day","in %n days"], "_%n day ago_::_%n days ago_" : ["%n day ago","%n days ago"], + "next month" : "next month", "last month" : "last month", + "_in %n month_::_in %n months_" : ["in %n month","in %n months"], "_%n month ago_::_%n months ago_" : ["%n month ago","%n months ago"], + "next year" : "next year", "last year" : "last year", + "_in %n year_::_in %n years_" : ["in %n year","in %n years"], "_%n year ago_::_%n years ago_" : ["%n year ago","%n years ago"], + "_in %n hour_::_in %n hours_" : ["in %n hour","in %n hours"], "_%n hour ago_::_%n hours ago_" : ["%n hour ago","%n hours ago"], + "_in %n minute_::_in %n minutes_" : ["in %n minute","in %n minutes"], "_%n minute ago_::_%n minutes ago_" : ["%n minute ago","%n minutes ago"], + "in a few seconds" : "in a few seconds", "seconds ago" : "seconds ago", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator.", "File name is a reserved word" : "File name is a reserved word", diff --git a/lib/l10n/en_GB.json b/lib/l10n/en_GB.json index bf08239be71..01590dbb688 100644 --- a/lib/l10n/en_GB.json +++ b/lib/l10n/en_GB.json @@ -29,14 +29,23 @@ "Invalid image" : "Invalid image", "Avatar image is not square" : "Avatar image is not square", "today" : "today", + "tomorrow" : "tomorrow", "yesterday" : "yesterday", + "_in %n day_::_in %n days_" : ["in %n day","in %n days"], "_%n day ago_::_%n days ago_" : ["%n day ago","%n days ago"], + "next month" : "next month", "last month" : "last month", + "_in %n month_::_in %n months_" : ["in %n month","in %n months"], "_%n month ago_::_%n months ago_" : ["%n month ago","%n months ago"], + "next year" : "next year", "last year" : "last year", + "_in %n year_::_in %n years_" : ["in %n year","in %n years"], "_%n year ago_::_%n years ago_" : ["%n year ago","%n years ago"], + "_in %n hour_::_in %n hours_" : ["in %n hour","in %n hours"], "_%n hour ago_::_%n hours ago_" : ["%n hour ago","%n hours ago"], + "_in %n minute_::_in %n minutes_" : ["in %n minute","in %n minutes"], "_%n minute ago_::_%n minutes ago_" : ["%n minute ago","%n minutes ago"], + "in a few seconds" : "in a few seconds", "seconds ago" : "seconds ago", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator.", "File name is a reserved word" : "File name is a reserved word", diff --git a/lib/l10n/es.js b/lib/l10n/es.js index 14eda42f187..5a50a527131 100644 --- a/lib/l10n/es.js +++ b/lib/l10n/es.js @@ -31,14 +31,23 @@ OC.L10N.register( "Invalid image" : "Imagen inválida", "Avatar image is not square" : "La imagen de avatar no es cuadrada", "today" : "hoy", + "tomorrow" : "mañana", "yesterday" : "ayer", + "_in %n day_::_in %n days_" : ["dentro de %n día","dentro de %n días"], "_%n day ago_::_%n days ago_" : ["Hace %n día","hace %n días"], + "next month" : "mes siguiente", "last month" : "mes pasado", + "_in %n month_::_in %n months_" : ["dentro de %n mes","dentro de %n meses"], "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"], + "next year" : "año que viene", "last year" : "año pasado", + "_in %n year_::_in %n years_" : ["dentro de %n año","dentro de %n años"], "_%n year ago_::_%n years ago_" : ["Hace %n año","hace %n años"], + "_in %n hour_::_in %n hours_" : ["dentro de %n hora","dentro de %n horas"], "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"], + "_in %n minute_::_in %n minutes_" : ["dentro de %n minuto","dentro de %n minutos"], "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"], + "in a few seconds" : "en unos segundos", "seconds ago" : "hace segundos", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "El módulo con ID %s no existe. Por favor, actívalo en la configuración de apps o contacta con tu administrador.", "File name is a reserved word" : "El nombre de archivo es una palabra reservada", @@ -56,7 +65,7 @@ OC.L10N.register( "Users" : "Usuarios", "APCu" : "APCu", "Redis" : "Redis", - "Basic settings" : "Ajustes Basicas", + "Basic settings" : "Ajustes Basicos", "Sharing" : "Compartir", "Security" : "Seguridad", "Encryption" : "Cifrado", diff --git a/lib/l10n/es.json b/lib/l10n/es.json index 23227e69ac6..c8ec965fcfe 100644 --- a/lib/l10n/es.json +++ b/lib/l10n/es.json @@ -29,14 +29,23 @@ "Invalid image" : "Imagen inválida", "Avatar image is not square" : "La imagen de avatar no es cuadrada", "today" : "hoy", + "tomorrow" : "mañana", "yesterday" : "ayer", + "_in %n day_::_in %n days_" : ["dentro de %n día","dentro de %n días"], "_%n day ago_::_%n days ago_" : ["Hace %n día","hace %n días"], + "next month" : "mes siguiente", "last month" : "mes pasado", + "_in %n month_::_in %n months_" : ["dentro de %n mes","dentro de %n meses"], "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"], + "next year" : "año que viene", "last year" : "año pasado", + "_in %n year_::_in %n years_" : ["dentro de %n año","dentro de %n años"], "_%n year ago_::_%n years ago_" : ["Hace %n año","hace %n años"], + "_in %n hour_::_in %n hours_" : ["dentro de %n hora","dentro de %n horas"], "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"], + "_in %n minute_::_in %n minutes_" : ["dentro de %n minuto","dentro de %n minutos"], "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"], + "in a few seconds" : "en unos segundos", "seconds ago" : "hace segundos", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "El módulo con ID %s no existe. Por favor, actívalo en la configuración de apps o contacta con tu administrador.", "File name is a reserved word" : "El nombre de archivo es una palabra reservada", @@ -54,7 +63,7 @@ "Users" : "Usuarios", "APCu" : "APCu", "Redis" : "Redis", - "Basic settings" : "Ajustes Basicas", + "Basic settings" : "Ajustes Basicos", "Sharing" : "Compartir", "Security" : "Seguridad", "Encryption" : "Cifrado", diff --git a/lib/l10n/es_CO.js b/lib/l10n/es_CO.js new file mode 100644 index 00000000000..89acfdc93fe --- /dev/null +++ b/lib/l10n/es_CO.js @@ -0,0 +1,259 @@ +OC.L10N.register( + "lib", + { + "Cannot write into \"config\" directory!" : "¡No se puede escribir en el directorio \"config\"!", + "This can usually be fixed by giving the webserver write access to the config directory" : "Esto generalmente se resuelve dándole al servidor web acceso para escribir en el directorio config. ", + "See %s" : "Ver %s", + "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "Por lo general esto se puede resolver al darle al servidor web acceso de escritura al directorio config. Por favor ve %s", + "The files of the app %$1s were not replaced correctly. Make sure it is a version compatible with the server." : "Los archivos de la aplicación %$1s no fueron correctamente remplazados. Por favor asegúrarte de que la versión sea compatible con el servidor.", + "Sample configuration detected" : "Se ha detectado la configuración de muestra", + "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Se ha detectado que la configuración de muestra ha sido copiada. Esto puede arruiniar tu instalacón y no está soportado. Por favor lee la documentación antes de hacer cambios en el archivo config.php", + "%1$s and %2$s" : "%1$s y %2$s", + "%1$s, %2$s and %3$s" : "%1$s, %2$s y %3$s", + "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s y %4$s", + "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s y %5$s", + "Education Edition" : "Edición Educativa", + "Enterprise bundle" : "Paquete empresarial", + "Groupware bundle" : "Paquete de Groupware", + "Social sharing bundle" : "Paquete para compartir en redes sociales", + "PHP %s or higher is required." : "Se requiere de PHP %s o superior.", + "PHP with a version lower than %s is required." : "PHP con una versión inferiror a la %s es requerido. ", + "%sbit or higher PHP required." : "se requiere PHP para %sbit o superior.", + "Following databases are supported: %s" : "Las siguientes bases de datos están soportadas: %s", + "The command line tool %s could not be found" : "No fue posible encontar la herramienta de línea de comando %s", + "The library %s is not available." : "La biblioteca %s no está disponible. ", + "Library %s with a version higher than %s is required - available version %s." : "La biblitoteca %s con una versión superiror a la %s es requerida - versión disponible %s.", + "Library %s with a version lower than %s is required - available version %s." : "Se requiere de la biblioteca %s con una versión inferiror a la %s - la versión %s está disponible. ", + "Following platforms are supported: %s" : "Las siguientes plataformas están soportadas: %s", + "Server version %s or higher is required." : "Se requiere la versión del servidor %s o superior. ", + "Server version %s or lower is required." : "La versión del servidor %s o inferior es requerdia. ", + "Unknown filetype" : "Tipo de archivo desconocido", + "Invalid image" : "Imagen inválida", + "Avatar image is not square" : "La imagen del avatar no es un cuadrado", + "today" : "hoy", + "tomorrow" : "mañana", + "yesterday" : "ayer", + "_in %n day_::_in %n days_" : ["en %n día","en %n días"], + "_%n day ago_::_%n days ago_" : ["hace %n día","hace %n días"], + "next month" : "próximo mes", + "last month" : "mes pasado", + "_in %n month_::_in %n months_" : ["en %n mes","en %n meses"], + "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"], + "next year" : "próximo año", + "last year" : "año pasado", + "_in %n year_::_in %n years_" : ["en %n año","en %n años"], + "_%n year ago_::_%n years ago_" : ["hace %n año","hace %n años"], + "_in %n hour_::_in %n hours_" : ["en %n hora","en %n horas"], + "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"], + "_in %n minute_::_in %n minutes_" : ["en %n minuto","en %n minutos"], + "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"], + "in a few seconds" : "en algunos segundos", + "seconds ago" : "hace segundos", + "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "El módulo con ID: %sno existe. Por favor hablíitalo en tus configuraciones de aplicación o contacta a tu administrador. ", + "File name is a reserved word" : "Nombre de archivo es una palabra reservada", + "File name contains at least one invalid character" : "El nombre del archivo contiene al menos un caracter inválido", + "File name is too long" : "El nombre del archivo es demasiado largo", + "Dot files are not allowed" : "Los archivos Dot no están permitidos", + "Empty filename is not allowed" : "El uso de nombres de archivo vacíos no está permitido", + "App \"%s\" cannot be installed because appinfo file cannot be read." : "La aplicación \"%s\" no puede ser instalada porque el archivo appinfo no se puede leer. ", + "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "La aplicación \"%s\" no puede ser instalada porque no es compatible con esta versión del servidor. ", + "This is an automatically sent email, please do not reply." : "Este es un correo enviado automáticamente, por favor no lo contestes. ", + "Help" : "Ayuda", + "Apps" : "Aplicaciones", + "Settings" : "Configuraciones", + "Log out" : "Salir", + "Users" : "Usuarios", + "APCu" : "APCu", + "Redis" : "Redis", + "Basic settings" : "Configuraciones básicas", + "Sharing" : "Compartiendo", + "Security" : "Seguridad", + "Encryption" : "Encripción", + "Additional settings" : "Configuraciones adicionales", + "Tips & tricks" : "Consejos & trucos", + "Personal info" : "Información personal", + "Sync clients" : "Sincronizar clientes", + "Unlimited" : "Ilimitado", + "__language_name__" : "Español (México)", + "Verifying" : "Verficando", + "Verifying …" : "Verficando ...", + "Verify" : "Verificar", + "%s enter the database username and name." : "%s ingresa el usuario y nombre de la base de datos", + "%s enter the database username." : "%s ingresa el nombre de usuario de la base de datos.", + "%s enter the database name." : "%s ingresar el nombre de la base de datos", + "%s you may not use dots in the database name" : "%s no puedes utilizar puntos en el nombre de la base de datos", + "Oracle connection could not be established" : "No fue posible establecer la conexión a Oracle", + "Oracle username and/or password not valid" : "Usuario y/o contraseña de Oracle inválidos", + "PostgreSQL username and/or password not valid" : "El Usuario y/o Contraseña de PostgreSQL inválido(s)", + "You need to enter details of an existing account." : "Necesitas ingresar los detalles de una cuenta existente.", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "OS X de Mac no está soportado y %s no funcionará correctamente en esta plataforma ¡Úsalo bajo tu propio riesgo!", + "For the best results, please consider using a GNU/Linux server instead." : "Para mejores resultados, por favor cosidera usar en su lugar un servidor GNU/Linux.", + "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Al parecer esta instancia %s está corriendo en un ambiente PHP de 32-bits y el open_basedir ha sido configurado en el archivo php.ini. Esto generará problemas con archivos de más de 4GB de tamaño y es altamente desalentado. ", + "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Por favor elimina el ajuste open_basedir de tu archivo php.ini o cambia a PHP de 64 bits. ", + "Set an admin username." : "Establecer un Usuario administrador", + "Set an admin password." : "Establecer la contraseña del administrador.", + "Can't create or write into the data directory %s" : "No es posible crear o escribir en el directorio de datos %s", + "Given database host is invalid and must not contain the port: %s" : "El servidor de base de datos ingresado es inválido y no debe contener el puerto: %s", + "Invalid Federated Cloud ID" : "ID Inválido", + "Sharing %s failed, because the backend does not allow shares from type %i" : "Se presentó una falla al compartir %s, porque el backend no permite elementos compartidos de tipo %i", + "Sharing %s failed, because the file does not exist" : "Se presentó una falla al compartir %s porque el archivo no existe", + "You are not allowed to share %s" : "No tienes permitido compartir %s", + "Sharing %s failed, because you can not share with yourself" : "Se presentó una falla al compartir %s, porque no puedes compartir contigo mismo", + "Sharing %s failed, because the user %s does not exist" : "Se presentó una falla al compartir %s porque el usuario %s no existe", + "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Se presentó una falla al compartir %s porque el usuario %s no es un miembro de ninguno de los grupos de los cuales %s es miembro", + "Sharing %s failed, because this item is already shared with %s" : "Se presentó una falla al compartir %s, porque este elemento ya había sido compartido con %s", + "Sharing %s failed, because this item is already shared with user %s" : "Se presento una falla al compartir %s, porque este elemento ya ha sido compartido con el usuario %s", + "Sharing %s failed, because the group %s does not exist" : "Se presentó una falla al compartir %s, porque el grupo %s no existe", + "Sharing %s failed, because %s is not a member of the group %s" : "Se presentó una falla al compartir %s debido a que %s no es un miembro del grupo %s", + "You need to provide a password to create a public link, only protected links are allowed" : "Necesitas proporcionar una contraseña para crear una liga pública, sólo se permiten ligas protegidas. ", + "Sharing %s failed, because sharing with links is not allowed" : "Se presentó una falla al compartir %s porque no está permitido compartir con ligas", + "Not allowed to create a federated share with the same user" : "No está permitido crear un elemento compartido con el mismo usuario", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Se presentó una falla al compartir %s, no fue posible encontrar %s, tal vez el servidor sea inalcanzable por el momento", + "Share type %s is not valid for %s" : "El tipo del elemento compartido %s no es válido para %s", + "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "No ha sido posible establecer la fecha de expiración. Los recursos compartidos no pueden expirar después de %s tras haber sido compartidos", + "Cannot set expiration date. Expiration date is in the past" : "No ha sido posible establecer la fecha de expiración. La fecha de expiración ya ha pasado", + "Sharing backend %s must implement the interface OCP\\Share_Backend" : "El backend %s que comparte debe implementar la interface OCP\\Share_Backend", + "Sharing backend %s not found" : "No fue encontrado el Backend que comparte %s ", + "Sharing backend for %s not found" : "No fue encontrado el Backend que comparte para %s", + "Sharing failed, because the user %s is the original sharer" : "Se presentó una falla al compartir, porque el usuario %s es quien compartió originalmente", + "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Se presentó una falla al compartir %s, porque los permisos exceden los permisos otorgados a %s", + "Sharing %s failed, because resharing is not allowed" : "Falla al compartir %s debído a que no se permite volver a compartir", + "Sharing %s failed, because the sharing backend for %s could not find its source" : "Se presentó una falla al compartir %s porque el backend que comparte %s no pudo encontrar su origen", + "Sharing %s failed, because the file could not be found in the file cache" : "Se presentó una falla al compartir %s porque el archivo no se encontró en el caché de archivos", + "Can’t increase permissions of %s" : "No es posible incrementar los privilegios de %s", + "Files can’t be shared with delete permissions" : "Los archivos no se pueden compartir con permisos de borrado", + "Files can’t be shared with create permissions" : "Los archivos no se pueden compartir con permisos de creación", + "Expiration date is in the past" : "La fecha de expiración se encuentra en el pasado", + "Can’t set expiration date more than %s days in the future" : "No es posible establecer la fecha de expiración más allá de %s días en el futuro", + "%s shared »%s« with you" : "%s ha compartido »%s« contigo", + "%s shared »%s« with you." : "%s compartió contigo »%s«.", + "Click the button below to open it." : "Haz click en el botón inferior para abrirlo. ", + "Open »%s«" : "Abrir »%s«", + "%s via %s" : "%s por %s", + "The requested share does not exist anymore" : "El recurso compartido solicitado ya no existe", + "Could not find category \"%s\"" : "No fue posible encontrar la categoria \"%s\"", + "Sunday" : "Domingo", + "Monday" : "Lunes", + "Tuesday" : "Martes", + "Wednesday" : "Miércoles", + "Thursday" : "Jueves", + "Friday" : "Viernes", + "Saturday" : "Sábado", + "Sun." : "Dom.", + "Mon." : "Lun.", + "Tue." : "Mar.", + "Wed." : "Mie.", + "Thu." : "Jue.", + "Fri." : "Vie.", + "Sat." : "Sab.", + "Su" : "Do", + "Mo" : "Lu", + "Tu" : "Ma", + "We" : "Mi", + "Th" : "Ju", + "Fr" : "Vi", + "Sa" : "Sa", + "January" : "Enero", + "February" : "Febrero", + "March" : "Marzo", + "April" : "Abril", + "May" : "Mayo", + "June" : "Junio", + "July" : "Julio", + "August" : "Agosto", + "September" : "Septiembre", + "October" : "Octubre", + "November" : "Noviembre", + "December" : "Diciembre", + "Jan." : "Ene.", + "Feb." : "Feb.", + "Mar." : "Mar.", + "Apr." : "Abr.", + "May." : "May.", + "Jun." : "Jun.", + "Jul." : "Jul.", + "Aug." : "Ago.", + "Sep." : "Sep.", + "Oct." : "Oct.", + "Nov." : "Nov.", + "Dec." : "Dic.", + "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "Sólo se permiten los siguientes caracteres en el usuario: \"a-z\", \"A-Z\", \"0-9\" y \"_.@-'\"", + "A valid username must be provided" : "Debes proporcionar un nombre de usuario válido", + "Username contains whitespace at the beginning or at the end" : "El usuario contiene un espacio en blanco al inicio o al final", + "Username must not consist of dots only" : "El usuario no debe consistir de solo puntos. ", + "A valid password must be provided" : "Se debe proporcionar una contraseña válida", + "The username is already being used" : "Ese usuario ya está en uso", + "Could not create user" : "No fue posible crear el usuario", + "User disabled" : "Usuario deshabilitado", + "Login canceled by app" : "Inicio de sesión cancelado por la aplicación", + "No app name specified" : "No se ha especificado el nombre de la aplicación", + "App '%s' could not be installed!" : "¡La aplicación \"%s\" no pudo ser instalada!", + "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "La aplicación \"%s\" no puede ser instalada porque las siguientes dependencias no están satisfechas: %s ", + "a safe home for all your data" : "un lugar seguro para todos tus datos", + "File is currently busy, please try again later" : "El archivo se encuentra actualmente en uso, por favor intentalo más tarde. ", + "Can't read file" : "No se puede leer el archivo", + "Application is not enabled" : "La aplicación está deshabilitada", + "Authentication error" : "Error de autenticación", + "Token expired. Please reload page." : "La ficha ha expirado. Por favor recarga la página.", + "Unknown user" : "Ususario desconocido", + "No database drivers (sqlite, mysql, or postgresql) installed." : "No cuentas con controladores de base de datos (sqlite, mysql o postgresql) instalados. ", + "Cannot write into \"config\" directory" : "No fue posible escribir en el directorio \"config\"", + "Cannot write into \"apps\" directory" : "No fue posible escribir en el directorio \"apps\"", + "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file. See %s" : "Por lo general esto se puede resolver al darle al servidor web acceso de escritura al directorio de las aplicaciones o deshabilitando la appstore en el archivo config. Por favor ve %s", + "Cannot create \"data\" directory" : "No fue posible crear el directorio \"data\"", + "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Por lo general esto se puede resolver al darle al servidor web acceso de escritura al directorio raíz. Por favor ve %s", + "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Por lo general los permisos se pueden corregir al darle al servidor web acceso de escritura al directorio raíz. Por favor ve %s.", + "Setting locale to %s failed" : "Se presentó una falla al establecer la regionalización a %s", + "Please install one of these locales on your system and restart your webserver." : "Por favor instala uno de las siguientes configuraciones locales en tu sistema y reinicia tu servidor web", + "Please ask your server administrator to install the module." : "Por favor solicita a tu adminsitrador la instalación del módulo. ", + "PHP module %s not installed." : "El módulo de PHP %s no está instalado. ", + "PHP setting \"%s\" is not set to \"%s\"." : "El ajuste PHP \"%s\" no esta establecido a \"%s\".", + "Adjusting this setting in php.ini will make Nextcloud run again" : "El cambiar este ajuste del archivo php.ini hará que Nextcloud corra de nuevo.", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload está establecido como \"%s\" en lugar del valor esperado de \"0\"", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Para corregir este tema, establece <code>mbstring.func_overload</code> a <code>0</code> en tu archivo php.ini", + "libxml2 2.7.0 is at least required. Currently %s is installed." : "Se requiere de por lo menos libxml2 2.7.0. Actualmente %s está instalado. ", + "To fix this issue update your libxml2 version and restart your web server." : "Para corregir este tema, por favor actualiza la versión de su libxml2 y reinicia tu servidor web. ", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques de comentarios internos. Esto hará que varias aplicaciones principales sean inaccesibles. ", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto ha sido causado probablemente por un acelerador de caché como Zend OPcache o eAccelerator.", + "PHP modules have been installed, but they are still listed as missing?" : "¿Los módulos de PHP han sido instalados, pero se siguen enlistando como faltantes?", + "Please ask your server administrator to restart the web server." : "Por favor solicita al administrador reiniciar el servidor web. ", + "PostgreSQL >= 9 required" : "Se requiere PostgreSQL >= 9", + "Please upgrade your database version" : "Por favor actualiza tu versión de la base de datos", + "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor cambia los permisos a 0770 para que el directorio no pueda ser enlistado por otros usuarios. ", + "Your data directory is readable by other users" : "Tu direcctorio data puede ser leído por otros usuarios", + "Your data directory must be an absolute path" : "Tu directorio data debe ser una ruta absoluta", + "Check the value of \"datadirectory\" in your configuration" : "Verifica el valor de \"datadirectory\" en tu configuración", + "Your data directory is invalid" : "Tu directorio de datos es inválido", + "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Asegurate de que exista una archivo llamado \".ocdata\" en la raíz del directorio de datos. ", + "Could not obtain lock type %d on \"%s\"." : "No fue posible obtener el tipo de bloqueo %d en \"%s\". ", + "Storage unauthorized. %s" : "Almacenamiento no autorizado. %s", + "Storage incomplete configuration. %s" : "Configuración incompleta del almacenamiento. %s", + "Storage connection error. %s" : "Se presentó un error con la conexión al almacenamiento. %s", + "Storage is temporarily not available" : "El almacenamieto se encuentra temporalmente no disponible", + "Storage connection timeout. %s" : "El tiempo de la conexión del almacenamiento se agotó. %s", + "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Esto generalmente se soluciona %s dándole al servidor web acceso para escribir en el directorio config %s.", + "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "El módulo con id: %s no existe. Por favor habilítalo en tus configuraciones de aplicación o contacta a tu administrador. ", + "Server settings" : "Configuraciones del servidor", + "DB Error: \"%s\"" : "Error de BD: \"%s\"", + "Offending command was: \"%s\"" : "El comando infractor fue: \"%s\"", + "You need to enter either an existing account or the administrator." : "Necesitas ingresar una cuenta ya existente o la del administrador.", + "Offending command was: \"%s\", name: %s, password: %s" : "El comando infractor fue: \"%s\", nombre: %s, contraseña: %s", + "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Se presentó una falla al establecer los permisos para %s, porque los permisos exceden los permisos otorgados a %s", + "Setting permissions for %s failed, because the item was not found" : "Se persentó una falla al establecer los permisos para %s, porque no se encontró el elemento ", + "Cannot clear expiration date. Shares are required to have an expiration date." : "No ha sido posible borrar la fecha de expiración. Los elelentos compartidos deben tener una fecha de expiración.", + "Cannot increase permissions of %s" : "No se pueden incrementar los permisos de %s", + "Files can't be shared with delete permissions" : "No es posible compartir archivos con permisos de borrado", + "Files can't be shared with create permissions" : "No es posible compartir archivos con permisos de creación", + "Cannot set expiration date more than %s days in the future" : "No es posible establecer la fecha de expiración más allá de %s días en el futuro", + "Personal" : "Personal", + "Admin" : "Administración", + "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Esto se puede arreglar por %s al darle acceso de escritura al servidor web al directorio de las aplicaciones %s o al deshabilitar la tienda de aplicaciones en el archivo de configuración", + "Cannot create \"data\" directory (%s)" : "No fue posible crear el directorio de \"datos\" (%s)", + "This can usually be fixed by <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">giving the webserver write access to the root directory</a>." : "Esto se puede arreglar generalmente al <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">darle al servidor web accesos al directorio raíz</a>.", + "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Los permisos se pueden arreglar generalmente al %s darle al servidor web accesos al direcotiro raíz %s.", + "Data directory (%s) is readable by other users" : "El directorio de datos (%s) puede ser leído por otros usuarios", + "Data directory (%s) must be an absolute path" : "El directorio de datos (%s) debe ser una ruta absoluta", + "Data directory (%s) is invalid" : "El directorio de datos (%s) es inválido", + "Please check that the data directory contains a file \".ocdata\" in its root." : "Por favor verifica que el directorio de datos tenga un archivo \".ocdata\" en su raíz. " +}, +"nplurals=2; plural=(n != 1);"); diff --git a/lib/l10n/es_CO.json b/lib/l10n/es_CO.json new file mode 100644 index 00000000000..0b6be27dfb5 --- /dev/null +++ b/lib/l10n/es_CO.json @@ -0,0 +1,257 @@ +{ "translations": { + "Cannot write into \"config\" directory!" : "¡No se puede escribir en el directorio \"config\"!", + "This can usually be fixed by giving the webserver write access to the config directory" : "Esto generalmente se resuelve dándole al servidor web acceso para escribir en el directorio config. ", + "See %s" : "Ver %s", + "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "Por lo general esto se puede resolver al darle al servidor web acceso de escritura al directorio config. Por favor ve %s", + "The files of the app %$1s were not replaced correctly. Make sure it is a version compatible with the server." : "Los archivos de la aplicación %$1s no fueron correctamente remplazados. Por favor asegúrarte de que la versión sea compatible con el servidor.", + "Sample configuration detected" : "Se ha detectado la configuración de muestra", + "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Se ha detectado que la configuración de muestra ha sido copiada. Esto puede arruiniar tu instalacón y no está soportado. Por favor lee la documentación antes de hacer cambios en el archivo config.php", + "%1$s and %2$s" : "%1$s y %2$s", + "%1$s, %2$s and %3$s" : "%1$s, %2$s y %3$s", + "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s y %4$s", + "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s y %5$s", + "Education Edition" : "Edición Educativa", + "Enterprise bundle" : "Paquete empresarial", + "Groupware bundle" : "Paquete de Groupware", + "Social sharing bundle" : "Paquete para compartir en redes sociales", + "PHP %s or higher is required." : "Se requiere de PHP %s o superior.", + "PHP with a version lower than %s is required." : "PHP con una versión inferiror a la %s es requerido. ", + "%sbit or higher PHP required." : "se requiere PHP para %sbit o superior.", + "Following databases are supported: %s" : "Las siguientes bases de datos están soportadas: %s", + "The command line tool %s could not be found" : "No fue posible encontar la herramienta de línea de comando %s", + "The library %s is not available." : "La biblioteca %s no está disponible. ", + "Library %s with a version higher than %s is required - available version %s." : "La biblitoteca %s con una versión superiror a la %s es requerida - versión disponible %s.", + "Library %s with a version lower than %s is required - available version %s." : "Se requiere de la biblioteca %s con una versión inferiror a la %s - la versión %s está disponible. ", + "Following platforms are supported: %s" : "Las siguientes plataformas están soportadas: %s", + "Server version %s or higher is required." : "Se requiere la versión del servidor %s o superior. ", + "Server version %s or lower is required." : "La versión del servidor %s o inferior es requerdia. ", + "Unknown filetype" : "Tipo de archivo desconocido", + "Invalid image" : "Imagen inválida", + "Avatar image is not square" : "La imagen del avatar no es un cuadrado", + "today" : "hoy", + "tomorrow" : "mañana", + "yesterday" : "ayer", + "_in %n day_::_in %n days_" : ["en %n día","en %n días"], + "_%n day ago_::_%n days ago_" : ["hace %n día","hace %n días"], + "next month" : "próximo mes", + "last month" : "mes pasado", + "_in %n month_::_in %n months_" : ["en %n mes","en %n meses"], + "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"], + "next year" : "próximo año", + "last year" : "año pasado", + "_in %n year_::_in %n years_" : ["en %n año","en %n años"], + "_%n year ago_::_%n years ago_" : ["hace %n año","hace %n años"], + "_in %n hour_::_in %n hours_" : ["en %n hora","en %n horas"], + "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"], + "_in %n minute_::_in %n minutes_" : ["en %n minuto","en %n minutos"], + "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"], + "in a few seconds" : "en algunos segundos", + "seconds ago" : "hace segundos", + "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "El módulo con ID: %sno existe. Por favor hablíitalo en tus configuraciones de aplicación o contacta a tu administrador. ", + "File name is a reserved word" : "Nombre de archivo es una palabra reservada", + "File name contains at least one invalid character" : "El nombre del archivo contiene al menos un caracter inválido", + "File name is too long" : "El nombre del archivo es demasiado largo", + "Dot files are not allowed" : "Los archivos Dot no están permitidos", + "Empty filename is not allowed" : "El uso de nombres de archivo vacíos no está permitido", + "App \"%s\" cannot be installed because appinfo file cannot be read." : "La aplicación \"%s\" no puede ser instalada porque el archivo appinfo no se puede leer. ", + "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "La aplicación \"%s\" no puede ser instalada porque no es compatible con esta versión del servidor. ", + "This is an automatically sent email, please do not reply." : "Este es un correo enviado automáticamente, por favor no lo contestes. ", + "Help" : "Ayuda", + "Apps" : "Aplicaciones", + "Settings" : "Configuraciones", + "Log out" : "Salir", + "Users" : "Usuarios", + "APCu" : "APCu", + "Redis" : "Redis", + "Basic settings" : "Configuraciones básicas", + "Sharing" : "Compartiendo", + "Security" : "Seguridad", + "Encryption" : "Encripción", + "Additional settings" : "Configuraciones adicionales", + "Tips & tricks" : "Consejos & trucos", + "Personal info" : "Información personal", + "Sync clients" : "Sincronizar clientes", + "Unlimited" : "Ilimitado", + "__language_name__" : "Español (México)", + "Verifying" : "Verficando", + "Verifying …" : "Verficando ...", + "Verify" : "Verificar", + "%s enter the database username and name." : "%s ingresa el usuario y nombre de la base de datos", + "%s enter the database username." : "%s ingresa el nombre de usuario de la base de datos.", + "%s enter the database name." : "%s ingresar el nombre de la base de datos", + "%s you may not use dots in the database name" : "%s no puedes utilizar puntos en el nombre de la base de datos", + "Oracle connection could not be established" : "No fue posible establecer la conexión a Oracle", + "Oracle username and/or password not valid" : "Usuario y/o contraseña de Oracle inválidos", + "PostgreSQL username and/or password not valid" : "El Usuario y/o Contraseña de PostgreSQL inválido(s)", + "You need to enter details of an existing account." : "Necesitas ingresar los detalles de una cuenta existente.", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "OS X de Mac no está soportado y %s no funcionará correctamente en esta plataforma ¡Úsalo bajo tu propio riesgo!", + "For the best results, please consider using a GNU/Linux server instead." : "Para mejores resultados, por favor cosidera usar en su lugar un servidor GNU/Linux.", + "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Al parecer esta instancia %s está corriendo en un ambiente PHP de 32-bits y el open_basedir ha sido configurado en el archivo php.ini. Esto generará problemas con archivos de más de 4GB de tamaño y es altamente desalentado. ", + "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Por favor elimina el ajuste open_basedir de tu archivo php.ini o cambia a PHP de 64 bits. ", + "Set an admin username." : "Establecer un Usuario administrador", + "Set an admin password." : "Establecer la contraseña del administrador.", + "Can't create or write into the data directory %s" : "No es posible crear o escribir en el directorio de datos %s", + "Given database host is invalid and must not contain the port: %s" : "El servidor de base de datos ingresado es inválido y no debe contener el puerto: %s", + "Invalid Federated Cloud ID" : "ID Inválido", + "Sharing %s failed, because the backend does not allow shares from type %i" : "Se presentó una falla al compartir %s, porque el backend no permite elementos compartidos de tipo %i", + "Sharing %s failed, because the file does not exist" : "Se presentó una falla al compartir %s porque el archivo no existe", + "You are not allowed to share %s" : "No tienes permitido compartir %s", + "Sharing %s failed, because you can not share with yourself" : "Se presentó una falla al compartir %s, porque no puedes compartir contigo mismo", + "Sharing %s failed, because the user %s does not exist" : "Se presentó una falla al compartir %s porque el usuario %s no existe", + "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Se presentó una falla al compartir %s porque el usuario %s no es un miembro de ninguno de los grupos de los cuales %s es miembro", + "Sharing %s failed, because this item is already shared with %s" : "Se presentó una falla al compartir %s, porque este elemento ya había sido compartido con %s", + "Sharing %s failed, because this item is already shared with user %s" : "Se presento una falla al compartir %s, porque este elemento ya ha sido compartido con el usuario %s", + "Sharing %s failed, because the group %s does not exist" : "Se presentó una falla al compartir %s, porque el grupo %s no existe", + "Sharing %s failed, because %s is not a member of the group %s" : "Se presentó una falla al compartir %s debido a que %s no es un miembro del grupo %s", + "You need to provide a password to create a public link, only protected links are allowed" : "Necesitas proporcionar una contraseña para crear una liga pública, sólo se permiten ligas protegidas. ", + "Sharing %s failed, because sharing with links is not allowed" : "Se presentó una falla al compartir %s porque no está permitido compartir con ligas", + "Not allowed to create a federated share with the same user" : "No está permitido crear un elemento compartido con el mismo usuario", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Se presentó una falla al compartir %s, no fue posible encontrar %s, tal vez el servidor sea inalcanzable por el momento", + "Share type %s is not valid for %s" : "El tipo del elemento compartido %s no es válido para %s", + "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "No ha sido posible establecer la fecha de expiración. Los recursos compartidos no pueden expirar después de %s tras haber sido compartidos", + "Cannot set expiration date. Expiration date is in the past" : "No ha sido posible establecer la fecha de expiración. La fecha de expiración ya ha pasado", + "Sharing backend %s must implement the interface OCP\\Share_Backend" : "El backend %s que comparte debe implementar la interface OCP\\Share_Backend", + "Sharing backend %s not found" : "No fue encontrado el Backend que comparte %s ", + "Sharing backend for %s not found" : "No fue encontrado el Backend que comparte para %s", + "Sharing failed, because the user %s is the original sharer" : "Se presentó una falla al compartir, porque el usuario %s es quien compartió originalmente", + "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Se presentó una falla al compartir %s, porque los permisos exceden los permisos otorgados a %s", + "Sharing %s failed, because resharing is not allowed" : "Falla al compartir %s debído a que no se permite volver a compartir", + "Sharing %s failed, because the sharing backend for %s could not find its source" : "Se presentó una falla al compartir %s porque el backend que comparte %s no pudo encontrar su origen", + "Sharing %s failed, because the file could not be found in the file cache" : "Se presentó una falla al compartir %s porque el archivo no se encontró en el caché de archivos", + "Can’t increase permissions of %s" : "No es posible incrementar los privilegios de %s", + "Files can’t be shared with delete permissions" : "Los archivos no se pueden compartir con permisos de borrado", + "Files can’t be shared with create permissions" : "Los archivos no se pueden compartir con permisos de creación", + "Expiration date is in the past" : "La fecha de expiración se encuentra en el pasado", + "Can’t set expiration date more than %s days in the future" : "No es posible establecer la fecha de expiración más allá de %s días en el futuro", + "%s shared »%s« with you" : "%s ha compartido »%s« contigo", + "%s shared »%s« with you." : "%s compartió contigo »%s«.", + "Click the button below to open it." : "Haz click en el botón inferior para abrirlo. ", + "Open »%s«" : "Abrir »%s«", + "%s via %s" : "%s por %s", + "The requested share does not exist anymore" : "El recurso compartido solicitado ya no existe", + "Could not find category \"%s\"" : "No fue posible encontrar la categoria \"%s\"", + "Sunday" : "Domingo", + "Monday" : "Lunes", + "Tuesday" : "Martes", + "Wednesday" : "Miércoles", + "Thursday" : "Jueves", + "Friday" : "Viernes", + "Saturday" : "Sábado", + "Sun." : "Dom.", + "Mon." : "Lun.", + "Tue." : "Mar.", + "Wed." : "Mie.", + "Thu." : "Jue.", + "Fri." : "Vie.", + "Sat." : "Sab.", + "Su" : "Do", + "Mo" : "Lu", + "Tu" : "Ma", + "We" : "Mi", + "Th" : "Ju", + "Fr" : "Vi", + "Sa" : "Sa", + "January" : "Enero", + "February" : "Febrero", + "March" : "Marzo", + "April" : "Abril", + "May" : "Mayo", + "June" : "Junio", + "July" : "Julio", + "August" : "Agosto", + "September" : "Septiembre", + "October" : "Octubre", + "November" : "Noviembre", + "December" : "Diciembre", + "Jan." : "Ene.", + "Feb." : "Feb.", + "Mar." : "Mar.", + "Apr." : "Abr.", + "May." : "May.", + "Jun." : "Jun.", + "Jul." : "Jul.", + "Aug." : "Ago.", + "Sep." : "Sep.", + "Oct." : "Oct.", + "Nov." : "Nov.", + "Dec." : "Dic.", + "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "Sólo se permiten los siguientes caracteres en el usuario: \"a-z\", \"A-Z\", \"0-9\" y \"_.@-'\"", + "A valid username must be provided" : "Debes proporcionar un nombre de usuario válido", + "Username contains whitespace at the beginning or at the end" : "El usuario contiene un espacio en blanco al inicio o al final", + "Username must not consist of dots only" : "El usuario no debe consistir de solo puntos. ", + "A valid password must be provided" : "Se debe proporcionar una contraseña válida", + "The username is already being used" : "Ese usuario ya está en uso", + "Could not create user" : "No fue posible crear el usuario", + "User disabled" : "Usuario deshabilitado", + "Login canceled by app" : "Inicio de sesión cancelado por la aplicación", + "No app name specified" : "No se ha especificado el nombre de la aplicación", + "App '%s' could not be installed!" : "¡La aplicación \"%s\" no pudo ser instalada!", + "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "La aplicación \"%s\" no puede ser instalada porque las siguientes dependencias no están satisfechas: %s ", + "a safe home for all your data" : "un lugar seguro para todos tus datos", + "File is currently busy, please try again later" : "El archivo se encuentra actualmente en uso, por favor intentalo más tarde. ", + "Can't read file" : "No se puede leer el archivo", + "Application is not enabled" : "La aplicación está deshabilitada", + "Authentication error" : "Error de autenticación", + "Token expired. Please reload page." : "La ficha ha expirado. Por favor recarga la página.", + "Unknown user" : "Ususario desconocido", + "No database drivers (sqlite, mysql, or postgresql) installed." : "No cuentas con controladores de base de datos (sqlite, mysql o postgresql) instalados. ", + "Cannot write into \"config\" directory" : "No fue posible escribir en el directorio \"config\"", + "Cannot write into \"apps\" directory" : "No fue posible escribir en el directorio \"apps\"", + "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file. See %s" : "Por lo general esto se puede resolver al darle al servidor web acceso de escritura al directorio de las aplicaciones o deshabilitando la appstore en el archivo config. Por favor ve %s", + "Cannot create \"data\" directory" : "No fue posible crear el directorio \"data\"", + "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Por lo general esto se puede resolver al darle al servidor web acceso de escritura al directorio raíz. Por favor ve %s", + "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Por lo general los permisos se pueden corregir al darle al servidor web acceso de escritura al directorio raíz. Por favor ve %s.", + "Setting locale to %s failed" : "Se presentó una falla al establecer la regionalización a %s", + "Please install one of these locales on your system and restart your webserver." : "Por favor instala uno de las siguientes configuraciones locales en tu sistema y reinicia tu servidor web", + "Please ask your server administrator to install the module." : "Por favor solicita a tu adminsitrador la instalación del módulo. ", + "PHP module %s not installed." : "El módulo de PHP %s no está instalado. ", + "PHP setting \"%s\" is not set to \"%s\"." : "El ajuste PHP \"%s\" no esta establecido a \"%s\".", + "Adjusting this setting in php.ini will make Nextcloud run again" : "El cambiar este ajuste del archivo php.ini hará que Nextcloud corra de nuevo.", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload está establecido como \"%s\" en lugar del valor esperado de \"0\"", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Para corregir este tema, establece <code>mbstring.func_overload</code> a <code>0</code> en tu archivo php.ini", + "libxml2 2.7.0 is at least required. Currently %s is installed." : "Se requiere de por lo menos libxml2 2.7.0. Actualmente %s está instalado. ", + "To fix this issue update your libxml2 version and restart your web server." : "Para corregir este tema, por favor actualiza la versión de su libxml2 y reinicia tu servidor web. ", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques de comentarios internos. Esto hará que varias aplicaciones principales sean inaccesibles. ", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto ha sido causado probablemente por un acelerador de caché como Zend OPcache o eAccelerator.", + "PHP modules have been installed, but they are still listed as missing?" : "¿Los módulos de PHP han sido instalados, pero se siguen enlistando como faltantes?", + "Please ask your server administrator to restart the web server." : "Por favor solicita al administrador reiniciar el servidor web. ", + "PostgreSQL >= 9 required" : "Se requiere PostgreSQL >= 9", + "Please upgrade your database version" : "Por favor actualiza tu versión de la base de datos", + "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor cambia los permisos a 0770 para que el directorio no pueda ser enlistado por otros usuarios. ", + "Your data directory is readable by other users" : "Tu direcctorio data puede ser leído por otros usuarios", + "Your data directory must be an absolute path" : "Tu directorio data debe ser una ruta absoluta", + "Check the value of \"datadirectory\" in your configuration" : "Verifica el valor de \"datadirectory\" en tu configuración", + "Your data directory is invalid" : "Tu directorio de datos es inválido", + "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Asegurate de que exista una archivo llamado \".ocdata\" en la raíz del directorio de datos. ", + "Could not obtain lock type %d on \"%s\"." : "No fue posible obtener el tipo de bloqueo %d en \"%s\". ", + "Storage unauthorized. %s" : "Almacenamiento no autorizado. %s", + "Storage incomplete configuration. %s" : "Configuración incompleta del almacenamiento. %s", + "Storage connection error. %s" : "Se presentó un error con la conexión al almacenamiento. %s", + "Storage is temporarily not available" : "El almacenamieto se encuentra temporalmente no disponible", + "Storage connection timeout. %s" : "El tiempo de la conexión del almacenamiento se agotó. %s", + "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Esto generalmente se soluciona %s dándole al servidor web acceso para escribir en el directorio config %s.", + "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "El módulo con id: %s no existe. Por favor habilítalo en tus configuraciones de aplicación o contacta a tu administrador. ", + "Server settings" : "Configuraciones del servidor", + "DB Error: \"%s\"" : "Error de BD: \"%s\"", + "Offending command was: \"%s\"" : "El comando infractor fue: \"%s\"", + "You need to enter either an existing account or the administrator." : "Necesitas ingresar una cuenta ya existente o la del administrador.", + "Offending command was: \"%s\", name: %s, password: %s" : "El comando infractor fue: \"%s\", nombre: %s, contraseña: %s", + "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Se presentó una falla al establecer los permisos para %s, porque los permisos exceden los permisos otorgados a %s", + "Setting permissions for %s failed, because the item was not found" : "Se persentó una falla al establecer los permisos para %s, porque no se encontró el elemento ", + "Cannot clear expiration date. Shares are required to have an expiration date." : "No ha sido posible borrar la fecha de expiración. Los elelentos compartidos deben tener una fecha de expiración.", + "Cannot increase permissions of %s" : "No se pueden incrementar los permisos de %s", + "Files can't be shared with delete permissions" : "No es posible compartir archivos con permisos de borrado", + "Files can't be shared with create permissions" : "No es posible compartir archivos con permisos de creación", + "Cannot set expiration date more than %s days in the future" : "No es posible establecer la fecha de expiración más allá de %s días en el futuro", + "Personal" : "Personal", + "Admin" : "Administración", + "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Esto se puede arreglar por %s al darle acceso de escritura al servidor web al directorio de las aplicaciones %s o al deshabilitar la tienda de aplicaciones en el archivo de configuración", + "Cannot create \"data\" directory (%s)" : "No fue posible crear el directorio de \"datos\" (%s)", + "This can usually be fixed by <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">giving the webserver write access to the root directory</a>." : "Esto se puede arreglar generalmente al <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">darle al servidor web accesos al directorio raíz</a>.", + "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Los permisos se pueden arreglar generalmente al %s darle al servidor web accesos al direcotiro raíz %s.", + "Data directory (%s) is readable by other users" : "El directorio de datos (%s) puede ser leído por otros usuarios", + "Data directory (%s) must be an absolute path" : "El directorio de datos (%s) debe ser una ruta absoluta", + "Data directory (%s) is invalid" : "El directorio de datos (%s) es inválido", + "Please check that the data directory contains a file \".ocdata\" in its root." : "Por favor verifica que el directorio de datos tenga un archivo \".ocdata\" en su raíz. " +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/lib/l10n/fi.js b/lib/l10n/fi.js index 70aaaaa4600..596daa27fce 100644 --- a/lib/l10n/fi.js +++ b/lib/l10n/fi.js @@ -60,6 +60,9 @@ OC.L10N.register( "Sync clients" : "Synkronointisovellukset", "Unlimited" : "Rajoittamaton", "__language_name__" : "suomi", + "Verifying" : "Vahvistetaan", + "Verifying …" : "Vahvistetaan…", + "Verify" : "Vahvista", "%s enter the database username and name." : "%s anna tietokannan käyttäjätunnus ja nimi.", "%s enter the database username." : "%s anna tietokannan käyttäjätunnus.", "%s enter the database name." : "%s anna tietokannan nimi.", @@ -98,6 +101,9 @@ OC.L10N.register( "Sharing %s failed, because the file could not be found in the file cache" : "Kohteen %s jakaminen epäonnistui, koska tiedostoa ei löytynyt tiedostovälimuistista", "Expiration date is in the past" : "Vanhenemispäivä on menneisyydessä", "%s shared »%s« with you" : "%s jakoi kohteen »%s« kanssasi", + "%s shared »%s« with you." : "%s jakoi kohteen »%s« kanssasi.", + "Click the button below to open it." : "Napsauta alla olevaa painiketta avataksesi sen.", + "Open »%s«" : "Avaa »%s«", "Could not find category \"%s\"" : "Luokkaa \"%s\" ei löytynyt", "Sunday" : "sunnuntai", "Monday" : "maanantai", @@ -150,6 +156,7 @@ OC.L10N.register( "Username must not consist of dots only" : "Käyttäjänimi ei voi koostua vain pisteistä", "A valid password must be provided" : "Anna kelvollinen salasana", "The username is already being used" : "Käyttäjätunnus on jo käytössä", + "Could not create user" : "Ei voitu luoda käyttäjää", "User disabled" : "Käyttäjä poistettu käytöstä", "Login canceled by app" : "Kirjautuminen peruttiin sovelluksen toimesta", "No app name specified" : "Sovelluksen nimeä ei määritelty", diff --git a/lib/l10n/fi.json b/lib/l10n/fi.json index 6cdb463d154..b29589b0773 100644 --- a/lib/l10n/fi.json +++ b/lib/l10n/fi.json @@ -58,6 +58,9 @@ "Sync clients" : "Synkronointisovellukset", "Unlimited" : "Rajoittamaton", "__language_name__" : "suomi", + "Verifying" : "Vahvistetaan", + "Verifying …" : "Vahvistetaan…", + "Verify" : "Vahvista", "%s enter the database username and name." : "%s anna tietokannan käyttäjätunnus ja nimi.", "%s enter the database username." : "%s anna tietokannan käyttäjätunnus.", "%s enter the database name." : "%s anna tietokannan nimi.", @@ -96,6 +99,9 @@ "Sharing %s failed, because the file could not be found in the file cache" : "Kohteen %s jakaminen epäonnistui, koska tiedostoa ei löytynyt tiedostovälimuistista", "Expiration date is in the past" : "Vanhenemispäivä on menneisyydessä", "%s shared »%s« with you" : "%s jakoi kohteen »%s« kanssasi", + "%s shared »%s« with you." : "%s jakoi kohteen »%s« kanssasi.", + "Click the button below to open it." : "Napsauta alla olevaa painiketta avataksesi sen.", + "Open »%s«" : "Avaa »%s«", "Could not find category \"%s\"" : "Luokkaa \"%s\" ei löytynyt", "Sunday" : "sunnuntai", "Monday" : "maanantai", @@ -148,6 +154,7 @@ "Username must not consist of dots only" : "Käyttäjänimi ei voi koostua vain pisteistä", "A valid password must be provided" : "Anna kelvollinen salasana", "The username is already being used" : "Käyttäjätunnus on jo käytössä", + "Could not create user" : "Ei voitu luoda käyttäjää", "User disabled" : "Käyttäjä poistettu käytöstä", "Login canceled by app" : "Kirjautuminen peruttiin sovelluksen toimesta", "No app name specified" : "Sovelluksen nimeä ei määritelty", diff --git a/lib/l10n/hu.js b/lib/l10n/hu.js index 80ed2686702..9be41cefd60 100644 --- a/lib/l10n/hu.js +++ b/lib/l10n/hu.js @@ -33,17 +33,23 @@ OC.L10N.register( "today" : "ma", "tomorrow" : "holnap", "yesterday" : "tegnap", + "_in %n day_::_in %n days_" : ["%n napon belül","%n napon belül"], "_%n day ago_::_%n days ago_" : ["%n napja","%n napja"], "next month" : "következő hónap", "last month" : "múlt hónapban", + "_in %n month_::_in %n months_" : ["%n hónapon belül","%n hónapon belül"], "_%n month ago_::_%n months ago_" : ["%n hónapja","%n hónapja"], "next year" : "következő évben", "last year" : "tavaly", + "_in %n year_::_in %n years_" : ["%n éven belül","%n éven belül"], "_%n year ago_::_%n years ago_" : ["%n éve","%n éve"], + "_in %n hour_::_in %n hours_" : ["%n órán belül","%n órán belül"], "_%n hour ago_::_%n hours ago_" : ["%n órája","%n órája"], + "_in %n minute_::_in %n minutes_" : ["%n percen belül","%n percen belül"], "_%n minute ago_::_%n minutes ago_" : ["%n perce","%n perce"], "in a few seconds" : "pár másodpercen belül", "seconds ago" : "pár másodperce", + "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "A(z) %s azonosítójú modul nem létezik. Kérlek engedélyezd az app beállításaidban, vagy lépj kapcsolatba a rendszergazdával.", "File name is a reserved word" : "A fajl neve egy rezervált szó", "File name contains at least one invalid character" : "A fájlnév legalább egy érvénytelen karaktert tartalmaz!", "File name is too long" : "A fájlnév túl hosszú!", @@ -51,6 +57,7 @@ OC.L10N.register( "Empty filename is not allowed" : "Üres fájlnév nem engedétlyezett", "App \"%s\" cannot be installed because appinfo file cannot be read." : "\"%s\" alkalmazás nem lehet telepíteni, mert az appinfo fájl nem olvasható.", "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "\"%s\" alkalmazás nem lehet telepíteni, mert nem kompatibilis a szerver jelen verziójával.", + "This is an automatically sent email, please do not reply." : "Ez egy automatikusan küldött levél, kérlek ne válaszolj rá.", "Help" : "Súgó", "Apps" : "Alkalmazások", "Settings" : "Beállítások", @@ -78,6 +85,7 @@ OC.L10N.register( "Oracle connection could not be established" : "Az Oracle kapcsolat nem hozható létre", "Oracle username and/or password not valid" : "Az Oracle felhasználói név és/vagy jelszó érvénytelen", "PostgreSQL username and/or password not valid" : "A PostgreSQL felhasználói név és/vagy jelszó érvénytelen", + "You need to enter details of an existing account." : "Egy már létező fiók adatait kell megadnod.", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "A Mac OS X nem támogatott és %s nem lesz teljesen működőképes. Csak saját felelősségre használja!", "For the best results, please consider using a GNU/Linux server instead." : "A legjobb eredmény érdekében érdemes GNU/Linux-alapú szervert használni.", "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Úgy tűnik, hogy ez a %s példány 32-bites PHP környezetben fut és az open_basedir konfigurálva van a php.ini fájlban. Ez 4 GB-nál nagyobb fájlok esetén problémákat okozhat így erősen ellenjavallt.", @@ -85,6 +93,7 @@ OC.L10N.register( "Set an admin username." : "Állítson be egy felhasználói nevet az adminisztrációhoz.", "Set an admin password." : "Állítson be egy jelszót az adminisztrációhoz.", "Can't create or write into the data directory %s" : "Nem sikerült létrehozni vagy irni a \"data\" könyvtárba %s", + "Given database host is invalid and must not contain the port: %s" : "A megadott adatbázis host nem érvényes, nem tartalmazhatja a portot: %s", "Invalid Federated Cloud ID" : "Érvénytelen Egyesített Felhő Azonosító", "Sharing %s failed, because the backend does not allow shares from type %i" : "%s megosztása sikertelen, mert a megosztási alrendszer nem engedi a %l típus megosztását", "Sharing %s failed, because the file does not exist" : "%s megosztása sikertelen, mert a fájl nem létezik", @@ -115,11 +124,13 @@ OC.L10N.register( "Files can’t be shared with delete permissions" : "A fájlok nem megoszthatók törlési joggal", "Files can’t be shared with create permissions" : "Fájlok nem oszthatók meg létrehozási joggal", "Expiration date is in the past" : "A lejárati dátum már elmúlt", + "Can’t set expiration date more than %s days in the future" : "Nem lehet %s napnál későbbi lejáratot megadni", "%s shared »%s« with you" : "%s megosztotta veled ezt: »%s«", "%s shared »%s« with you." : "%s megosztotta »%s«-t veled.", "Click the button below to open it." : "Kattintson a lenti gombra a megnyitáshoz.", "Open »%s«" : "»%s« megnyitása", "%s via %s" : "%s - %s", + "The requested share does not exist anymore" : "A kért megosztás már nem létezik", "Could not find category \"%s\"" : "Ez a kategória nem található: \"%s\"", "Sunday" : "Vasárnap", "Monday" : "Hétfő", @@ -169,8 +180,10 @@ OC.L10N.register( "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "A felhasználónévben csak a következő karakterek engedélyezettek: \"a-z\", \"A-Z\", \"0-9\", és \"_.@-'\"", "A valid username must be provided" : "Érvényes felhasználónevet kell megadnia", "Username contains whitespace at the beginning or at the end" : "A felhasználónév szóközt tartalmaz az elején vagy a végén", + "Username must not consist of dots only" : "A felhasználónév nem állhat csak pontokból", "A valid password must be provided" : "Érvényes jelszót kell megadnia", "The username is already being used" : "Ez a bejelentkezési név már foglalt", + "Could not create user" : "Nem sikerült létrehozni a felhasználót", "User disabled" : "Felhasználó letiltva", "Login canceled by app" : "Bejelentkezés megszakítva az alkalmazás által", "No app name specified" : "Nincs az alkalmazás név megadva.", @@ -186,7 +199,10 @@ OC.L10N.register( "No database drivers (sqlite, mysql, or postgresql) installed." : "Nincs telepítve adatbázis-meghajtóprogram (sqlite, mysql vagy postgresql).", "Cannot write into \"config\" directory" : "Nem írható a \"config\" könyvtár", "Cannot write into \"apps\" directory" : "Nem írható az \"apps\" könyvtár", + "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file. See %s" : "Ez legtöbbször megoldható az app mappára a webszervernek adott írási joggal, vagy a config fájlban az alkalmazástár letiltásával. Lásd: %s", "Cannot create \"data\" directory" : "\"data\" mappa nem hozható létre", + "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Ez legtöbbször megoldható a gyökér mappára a webszervernek adott írási joggal. Lásd: %s", + "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Ez legtöbbször megoldható a gyökér mappára a webszervernek adott írási joggal. Lásd: %s.", "Setting locale to %s failed" : "A lokalizáció %s-re való állítása nem sikerült", "Please install one of these locales on your system and restart your webserver." : "Kérjük állítsa be a következő lokalizációk valamelyikét a rendszeren és indítsa újra a webszervert!", "Please ask your server administrator to install the module." : "Kérje meg a rendszergazdát, hogy telepítse a modult!", @@ -208,6 +224,7 @@ OC.L10N.register( "Your data directory must be an absolute path" : "Az adatkönyvtára abszolút útvonal kell legyen", "Check the value of \"datadirectory\" in your configuration" : "Ellenőrizd a \"datadirectory\" értékét a konfigurációban", "Your data directory is invalid" : "Az adatkönyvtárad érvénytelen", + "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Győződj meg róla, hogy az adatmappa gyökerében legyen egy \".ocdata\" nevű fájl", "Could not obtain lock type %d on \"%s\"." : "Nem sikerült %d típusú zárolást elérni itt: \"%s\".", "Storage unauthorized. %s" : "A tároló jogosulatlan. %s", "Storage incomplete configuration. %s" : "A tároló beállítása nem teljes. %s", diff --git a/lib/l10n/hu.json b/lib/l10n/hu.json index 31542fa6ca3..ca74529e40f 100644 --- a/lib/l10n/hu.json +++ b/lib/l10n/hu.json @@ -31,17 +31,23 @@ "today" : "ma", "tomorrow" : "holnap", "yesterday" : "tegnap", + "_in %n day_::_in %n days_" : ["%n napon belül","%n napon belül"], "_%n day ago_::_%n days ago_" : ["%n napja","%n napja"], "next month" : "következő hónap", "last month" : "múlt hónapban", + "_in %n month_::_in %n months_" : ["%n hónapon belül","%n hónapon belül"], "_%n month ago_::_%n months ago_" : ["%n hónapja","%n hónapja"], "next year" : "következő évben", "last year" : "tavaly", + "_in %n year_::_in %n years_" : ["%n éven belül","%n éven belül"], "_%n year ago_::_%n years ago_" : ["%n éve","%n éve"], + "_in %n hour_::_in %n hours_" : ["%n órán belül","%n órán belül"], "_%n hour ago_::_%n hours ago_" : ["%n órája","%n órája"], + "_in %n minute_::_in %n minutes_" : ["%n percen belül","%n percen belül"], "_%n minute ago_::_%n minutes ago_" : ["%n perce","%n perce"], "in a few seconds" : "pár másodpercen belül", "seconds ago" : "pár másodperce", + "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "A(z) %s azonosítójú modul nem létezik. Kérlek engedélyezd az app beállításaidban, vagy lépj kapcsolatba a rendszergazdával.", "File name is a reserved word" : "A fajl neve egy rezervált szó", "File name contains at least one invalid character" : "A fájlnév legalább egy érvénytelen karaktert tartalmaz!", "File name is too long" : "A fájlnév túl hosszú!", @@ -49,6 +55,7 @@ "Empty filename is not allowed" : "Üres fájlnév nem engedétlyezett", "App \"%s\" cannot be installed because appinfo file cannot be read." : "\"%s\" alkalmazás nem lehet telepíteni, mert az appinfo fájl nem olvasható.", "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "\"%s\" alkalmazás nem lehet telepíteni, mert nem kompatibilis a szerver jelen verziójával.", + "This is an automatically sent email, please do not reply." : "Ez egy automatikusan küldött levél, kérlek ne válaszolj rá.", "Help" : "Súgó", "Apps" : "Alkalmazások", "Settings" : "Beállítások", @@ -76,6 +83,7 @@ "Oracle connection could not be established" : "Az Oracle kapcsolat nem hozható létre", "Oracle username and/or password not valid" : "Az Oracle felhasználói név és/vagy jelszó érvénytelen", "PostgreSQL username and/or password not valid" : "A PostgreSQL felhasználói név és/vagy jelszó érvénytelen", + "You need to enter details of an existing account." : "Egy már létező fiók adatait kell megadnod.", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "A Mac OS X nem támogatott és %s nem lesz teljesen működőképes. Csak saját felelősségre használja!", "For the best results, please consider using a GNU/Linux server instead." : "A legjobb eredmény érdekében érdemes GNU/Linux-alapú szervert használni.", "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Úgy tűnik, hogy ez a %s példány 32-bites PHP környezetben fut és az open_basedir konfigurálva van a php.ini fájlban. Ez 4 GB-nál nagyobb fájlok esetén problémákat okozhat így erősen ellenjavallt.", @@ -83,6 +91,7 @@ "Set an admin username." : "Állítson be egy felhasználói nevet az adminisztrációhoz.", "Set an admin password." : "Állítson be egy jelszót az adminisztrációhoz.", "Can't create or write into the data directory %s" : "Nem sikerült létrehozni vagy irni a \"data\" könyvtárba %s", + "Given database host is invalid and must not contain the port: %s" : "A megadott adatbázis host nem érvényes, nem tartalmazhatja a portot: %s", "Invalid Federated Cloud ID" : "Érvénytelen Egyesített Felhő Azonosító", "Sharing %s failed, because the backend does not allow shares from type %i" : "%s megosztása sikertelen, mert a megosztási alrendszer nem engedi a %l típus megosztását", "Sharing %s failed, because the file does not exist" : "%s megosztása sikertelen, mert a fájl nem létezik", @@ -113,11 +122,13 @@ "Files can’t be shared with delete permissions" : "A fájlok nem megoszthatók törlési joggal", "Files can’t be shared with create permissions" : "Fájlok nem oszthatók meg létrehozási joggal", "Expiration date is in the past" : "A lejárati dátum már elmúlt", + "Can’t set expiration date more than %s days in the future" : "Nem lehet %s napnál későbbi lejáratot megadni", "%s shared »%s« with you" : "%s megosztotta veled ezt: »%s«", "%s shared »%s« with you." : "%s megosztotta »%s«-t veled.", "Click the button below to open it." : "Kattintson a lenti gombra a megnyitáshoz.", "Open »%s«" : "»%s« megnyitása", "%s via %s" : "%s - %s", + "The requested share does not exist anymore" : "A kért megosztás már nem létezik", "Could not find category \"%s\"" : "Ez a kategória nem található: \"%s\"", "Sunday" : "Vasárnap", "Monday" : "Hétfő", @@ -167,8 +178,10 @@ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "A felhasználónévben csak a következő karakterek engedélyezettek: \"a-z\", \"A-Z\", \"0-9\", és \"_.@-'\"", "A valid username must be provided" : "Érvényes felhasználónevet kell megadnia", "Username contains whitespace at the beginning or at the end" : "A felhasználónév szóközt tartalmaz az elején vagy a végén", + "Username must not consist of dots only" : "A felhasználónév nem állhat csak pontokból", "A valid password must be provided" : "Érvényes jelszót kell megadnia", "The username is already being used" : "Ez a bejelentkezési név már foglalt", + "Could not create user" : "Nem sikerült létrehozni a felhasználót", "User disabled" : "Felhasználó letiltva", "Login canceled by app" : "Bejelentkezés megszakítva az alkalmazás által", "No app name specified" : "Nincs az alkalmazás név megadva.", @@ -184,7 +197,10 @@ "No database drivers (sqlite, mysql, or postgresql) installed." : "Nincs telepítve adatbázis-meghajtóprogram (sqlite, mysql vagy postgresql).", "Cannot write into \"config\" directory" : "Nem írható a \"config\" könyvtár", "Cannot write into \"apps\" directory" : "Nem írható az \"apps\" könyvtár", + "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file. See %s" : "Ez legtöbbször megoldható az app mappára a webszervernek adott írási joggal, vagy a config fájlban az alkalmazástár letiltásával. Lásd: %s", "Cannot create \"data\" directory" : "\"data\" mappa nem hozható létre", + "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Ez legtöbbször megoldható a gyökér mappára a webszervernek adott írási joggal. Lásd: %s", + "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Ez legtöbbször megoldható a gyökér mappára a webszervernek adott írási joggal. Lásd: %s.", "Setting locale to %s failed" : "A lokalizáció %s-re való állítása nem sikerült", "Please install one of these locales on your system and restart your webserver." : "Kérjük állítsa be a következő lokalizációk valamelyikét a rendszeren és indítsa újra a webszervert!", "Please ask your server administrator to install the module." : "Kérje meg a rendszergazdát, hogy telepítse a modult!", @@ -206,6 +222,7 @@ "Your data directory must be an absolute path" : "Az adatkönyvtára abszolút útvonal kell legyen", "Check the value of \"datadirectory\" in your configuration" : "Ellenőrizd a \"datadirectory\" értékét a konfigurációban", "Your data directory is invalid" : "Az adatkönyvtárad érvénytelen", + "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Győződj meg róla, hogy az adatmappa gyökerében legyen egy \".ocdata\" nevű fájl", "Could not obtain lock type %d on \"%s\"." : "Nem sikerült %d típusú zárolást elérni itt: \"%s\".", "Storage unauthorized. %s" : "A tároló jogosulatlan. %s", "Storage incomplete configuration. %s" : "A tároló beállítása nem teljes. %s", diff --git a/lib/l10n/is.js b/lib/l10n/is.js index 155f3d56a3a..7f3dc4a7075 100644 --- a/lib/l10n/is.js +++ b/lib/l10n/is.js @@ -31,14 +31,23 @@ OC.L10N.register( "Invalid image" : "Ógild mynd", "Avatar image is not square" : "Auðkennismynd er ekki ferningslaga", "today" : "í dag", + "tomorrow" : "á morgun", "yesterday" : "í gær", + "_in %n day_::_in %n days_" : ["eftir %n dag","eftir %n daga"], "_%n day ago_::_%n days ago_" : ["fyrir %n degi síðan","fyrir %n dögum síðan"], + "next month" : "í næsta mánuði", "last month" : "í síðasta mánuði", + "_in %n month_::_in %n months_" : ["eftir %n mánuð","eftir %n mánuði"], "_%n month ago_::_%n months ago_" : ["fyrir %n mánuði","fyrir %n mánuðum"], + "next year" : "á næsta ári", "last year" : "síðasta ári", + "_in %n year_::_in %n years_" : ["eftir %n ár","eftir %n ár"], "_%n year ago_::_%n years ago_" : ["fyrir %n degi síðan","fyrir %n árum síðan"], + "_in %n hour_::_in %n hours_" : ["eftir %n klukkustund","eftir %n klukkustundir"], "_%n hour ago_::_%n hours ago_" : ["fyrir %n klukkustund síðan","fyrir %n klukkustundum síðan"], + "_in %n minute_::_in %n minutes_" : ["eftir %n mínútu","eftir %n mínútur"], "_%n minute ago_::_%n minutes ago_" : ["fyrir %n mínútu síðan","fyrir %n mínútum síðan"], + "in a few seconds" : "eftir örfáar sekúndur", "seconds ago" : "sekúndum síðan", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Eining með auðkenni: %s er ekki til. Virkjaðu hana í forritastillingum eða hafðu samband við kerfisstjóra.", "File name is a reserved word" : "Skráarheiti er þegar frátekið orð", @@ -84,6 +93,7 @@ OC.L10N.register( "Set an admin username." : "Stilltu notandanafn kerfisstjóra.", "Set an admin password." : "Stilltu lykilorð kerfisstjóra.", "Can't create or write into the data directory %s" : "Gat ekki búið til eða skrifað í gagnamöppuna %s", + "Given database host is invalid and must not contain the port: %s" : "Uppgefinn hýsill gagnagrunns er ógildur og má ekki innihalda gáttina: %s", "Invalid Federated Cloud ID" : "Ógilt skýjasambandsauðkenni (Federated Cloud ID)", "Sharing %s failed, because the backend does not allow shares from type %i" : "Deiling %s mistókst, því bakvinnslukerfið leyfir ekki sameignir af gerðinni %i", "Sharing %s failed, because the file does not exist" : "Deiling %s mistókst, því skráin er ekki til", diff --git a/lib/l10n/is.json b/lib/l10n/is.json index f106f993f88..ca3c9f19e41 100644 --- a/lib/l10n/is.json +++ b/lib/l10n/is.json @@ -29,14 +29,23 @@ "Invalid image" : "Ógild mynd", "Avatar image is not square" : "Auðkennismynd er ekki ferningslaga", "today" : "í dag", + "tomorrow" : "á morgun", "yesterday" : "í gær", + "_in %n day_::_in %n days_" : ["eftir %n dag","eftir %n daga"], "_%n day ago_::_%n days ago_" : ["fyrir %n degi síðan","fyrir %n dögum síðan"], + "next month" : "í næsta mánuði", "last month" : "í síðasta mánuði", + "_in %n month_::_in %n months_" : ["eftir %n mánuð","eftir %n mánuði"], "_%n month ago_::_%n months ago_" : ["fyrir %n mánuði","fyrir %n mánuðum"], + "next year" : "á næsta ári", "last year" : "síðasta ári", + "_in %n year_::_in %n years_" : ["eftir %n ár","eftir %n ár"], "_%n year ago_::_%n years ago_" : ["fyrir %n degi síðan","fyrir %n árum síðan"], + "_in %n hour_::_in %n hours_" : ["eftir %n klukkustund","eftir %n klukkustundir"], "_%n hour ago_::_%n hours ago_" : ["fyrir %n klukkustund síðan","fyrir %n klukkustundum síðan"], + "_in %n minute_::_in %n minutes_" : ["eftir %n mínútu","eftir %n mínútur"], "_%n minute ago_::_%n minutes ago_" : ["fyrir %n mínútu síðan","fyrir %n mínútum síðan"], + "in a few seconds" : "eftir örfáar sekúndur", "seconds ago" : "sekúndum síðan", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Eining með auðkenni: %s er ekki til. Virkjaðu hana í forritastillingum eða hafðu samband við kerfisstjóra.", "File name is a reserved word" : "Skráarheiti er þegar frátekið orð", @@ -82,6 +91,7 @@ "Set an admin username." : "Stilltu notandanafn kerfisstjóra.", "Set an admin password." : "Stilltu lykilorð kerfisstjóra.", "Can't create or write into the data directory %s" : "Gat ekki búið til eða skrifað í gagnamöppuna %s", + "Given database host is invalid and must not contain the port: %s" : "Uppgefinn hýsill gagnagrunns er ógildur og má ekki innihalda gáttina: %s", "Invalid Federated Cloud ID" : "Ógilt skýjasambandsauðkenni (Federated Cloud ID)", "Sharing %s failed, because the backend does not allow shares from type %i" : "Deiling %s mistókst, því bakvinnslukerfið leyfir ekki sameignir af gerðinni %i", "Sharing %s failed, because the file does not exist" : "Deiling %s mistókst, því skráin er ekki til", diff --git a/lib/l10n/pl.js b/lib/l10n/pl.js index 20965576b7b..888a99486bd 100644 --- a/lib/l10n/pl.js +++ b/lib/l10n/pl.js @@ -31,14 +31,18 @@ OC.L10N.register( "Invalid image" : "Błędne zdjęcie", "Avatar image is not square" : "Obraz awataru nie jest kwadratowy", "today" : "dziś", + "tomorrow" : "jutro", "yesterday" : "wczoraj", "_%n day ago_::_%n days ago_" : ["%d dzień temu","%n dni temu","%n dni temu","%n dni temu"], + "next month" : "następny miesiąc", "last month" : "w zeszłym miesiącu", "_%n month ago_::_%n months ago_" : ["%n miesiąc temu","%n miesięcy temu","%n miesięcy temu","%n miesięcy temu"], + "next year" : "następny rok", "last year" : "w zeszłym roku", "_%n year ago_::_%n years ago_" : ["%n rok temu","%n lata temu","%n lat temu","%n lat temu"], "_%n hour ago_::_%n hours ago_" : ["%n godzinę temu","%n godzin temu","%n godzin temu","%n godzin temu"], "_%n minute ago_::_%n minutes ago_" : ["%n minute temu","%n minut temu","%n minut temu","%n minut temu"], + "in a few seconds" : "w ciągu kilku sekund", "seconds ago" : "sekund temu", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Moduł o ID: %s nie istnieje. Proszę włącz go w ustawieniach aplikacji lub skontaktuj się z administratorem.", "File name is a reserved word" : "Nazwa pliku jest zarezerwowana", diff --git a/lib/l10n/pl.json b/lib/l10n/pl.json index 6d4a34b7c6b..4cbac5a5cc4 100644 --- a/lib/l10n/pl.json +++ b/lib/l10n/pl.json @@ -29,14 +29,18 @@ "Invalid image" : "Błędne zdjęcie", "Avatar image is not square" : "Obraz awataru nie jest kwadratowy", "today" : "dziś", + "tomorrow" : "jutro", "yesterday" : "wczoraj", "_%n day ago_::_%n days ago_" : ["%d dzień temu","%n dni temu","%n dni temu","%n dni temu"], + "next month" : "następny miesiąc", "last month" : "w zeszłym miesiącu", "_%n month ago_::_%n months ago_" : ["%n miesiąc temu","%n miesięcy temu","%n miesięcy temu","%n miesięcy temu"], + "next year" : "następny rok", "last year" : "w zeszłym roku", "_%n year ago_::_%n years ago_" : ["%n rok temu","%n lata temu","%n lat temu","%n lat temu"], "_%n hour ago_::_%n hours ago_" : ["%n godzinę temu","%n godzin temu","%n godzin temu","%n godzin temu"], "_%n minute ago_::_%n minutes ago_" : ["%n minute temu","%n minut temu","%n minut temu","%n minut temu"], + "in a few seconds" : "w ciągu kilku sekund", "seconds ago" : "sekund temu", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Moduł o ID: %s nie istnieje. Proszę włącz go w ustawieniach aplikacji lub skontaktuj się z administratorem.", "File name is a reserved word" : "Nazwa pliku jest zarezerwowana", diff --git a/lib/l10n/ru.js b/lib/l10n/ru.js index 109c0f66938..286a28ff072 100644 --- a/lib/l10n/ru.js +++ b/lib/l10n/ru.js @@ -31,14 +31,23 @@ OC.L10N.register( "Invalid image" : "Изображение повреждено", "Avatar image is not square" : "Изображение аватара не квадратное", "today" : "сегодня", + "tomorrow" : "завтра", "yesterday" : "вчера", + "_in %n day_::_in %n days_" : ["через %n день","через %n дня","через %n дней","через %n день"], "_%n day ago_::_%n days ago_" : ["%n день назад","%n дня назад","%n дней назад","%n дней назад"], + "next month" : "следующий месяц", "last month" : "в прошлом месяце", + "_in %n month_::_in %n months_" : ["через %n месяц","через %n месяца","через %n месяцев","через %n месяц"], "_%n month ago_::_%n months ago_" : ["%n месяц назад","%n месяца назад","%n месяцев назад","%n месяцев назад"], + "next year" : "следующий год", "last year" : "в прошлом году", + "_in %n year_::_in %n years_" : ["через %n год","через %n года","через %n лет","через %n год"], "_%n year ago_::_%n years ago_" : ["%n год назад","%n года назад","%n лет назад","%n лет назад"], + "_in %n hour_::_in %n hours_" : ["через %n час","через %n часа","через %n часов","через %n час"], "_%n hour ago_::_%n hours ago_" : ["%n час назад","%n часа назад","%n часов назад","%n часов назад"], + "_in %n minute_::_in %n minutes_" : ["через %n минуту","через %n минуты","через %n минут","через %n минуту"], "_%n minute ago_::_%n minutes ago_" : ["%n минута назад","%n минуты назад","%n минут назад","%n минут назад"], + "in a few seconds" : "через несколько секунд", "seconds ago" : "менее минуты", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Модуль с ID «%s» не существует. Включите его в настройках приложений или обратитесь к администратору.", "File name is a reserved word" : "Имя файла является зарезервированным словом", diff --git a/lib/l10n/ru.json b/lib/l10n/ru.json index 553aa793810..127e31de0b4 100644 --- a/lib/l10n/ru.json +++ b/lib/l10n/ru.json @@ -29,14 +29,23 @@ "Invalid image" : "Изображение повреждено", "Avatar image is not square" : "Изображение аватара не квадратное", "today" : "сегодня", + "tomorrow" : "завтра", "yesterday" : "вчера", + "_in %n day_::_in %n days_" : ["через %n день","через %n дня","через %n дней","через %n день"], "_%n day ago_::_%n days ago_" : ["%n день назад","%n дня назад","%n дней назад","%n дней назад"], + "next month" : "следующий месяц", "last month" : "в прошлом месяце", + "_in %n month_::_in %n months_" : ["через %n месяц","через %n месяца","через %n месяцев","через %n месяц"], "_%n month ago_::_%n months ago_" : ["%n месяц назад","%n месяца назад","%n месяцев назад","%n месяцев назад"], + "next year" : "следующий год", "last year" : "в прошлом году", + "_in %n year_::_in %n years_" : ["через %n год","через %n года","через %n лет","через %n год"], "_%n year ago_::_%n years ago_" : ["%n год назад","%n года назад","%n лет назад","%n лет назад"], + "_in %n hour_::_in %n hours_" : ["через %n час","через %n часа","через %n часов","через %n час"], "_%n hour ago_::_%n hours ago_" : ["%n час назад","%n часа назад","%n часов назад","%n часов назад"], + "_in %n minute_::_in %n minutes_" : ["через %n минуту","через %n минуты","через %n минут","через %n минуту"], "_%n minute ago_::_%n minutes ago_" : ["%n минута назад","%n минуты назад","%n минут назад","%n минут назад"], + "in a few seconds" : "через несколько секунд", "seconds ago" : "менее минуты", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Модуль с ID «%s» не существует. Включите его в настройках приложений или обратитесь к администратору.", "File name is a reserved word" : "Имя файла является зарезервированным словом", diff --git a/lib/l10n/sv.js b/lib/l10n/sv.js index 364b64aa550..60b29183d4b 100644 --- a/lib/l10n/sv.js +++ b/lib/l10n/sv.js @@ -31,6 +31,7 @@ OC.L10N.register( "Invalid image" : "Ogiltig bild", "Avatar image is not square" : "Profilbilden är inte fyrkantig", "today" : "i dag", + "tomorrow" : "i morgon", "yesterday" : "i går", "_%n day ago_::_%n days ago_" : ["%n dag sedan","%n dagar sedan"], "last month" : "förra månaden", diff --git a/lib/l10n/sv.json b/lib/l10n/sv.json index 1b599ae3e96..36a182c26dd 100644 --- a/lib/l10n/sv.json +++ b/lib/l10n/sv.json @@ -29,6 +29,7 @@ "Invalid image" : "Ogiltig bild", "Avatar image is not square" : "Profilbilden är inte fyrkantig", "today" : "i dag", + "tomorrow" : "i morgon", "yesterday" : "i går", "_%n day ago_::_%n days ago_" : ["%n dag sedan","%n dagar sedan"], "last month" : "förra månaden", diff --git a/lib/l10n/zh_TW.js b/lib/l10n/zh_TW.js index 55ebf18c052..be68a268db4 100644 --- a/lib/l10n/zh_TW.js +++ b/lib/l10n/zh_TW.js @@ -7,6 +7,8 @@ OC.L10N.register( "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "允許網頁伺服器寫入 \"config\" 目錄通常可以解決這個問題,詳見 %s", "Sample configuration detected" : "偵測到範本設定", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "看來您直接複製了範本設定來使用,這可能會毀掉你的安裝,請閱讀說明文件後對 config.php 進行適當的修改", + "%1$s and %2$s" : "%1$s 和 %2$s", + "%1$s, %2$s and %3$s" : "%1$s, %2$s 和 %3$s", "PHP %s or higher is required." : "需要 PHP %s 或更高版本", "PHP with a version lower than %s is required." : "需要 PHP 版本低於 %s ", "%sbit or higher PHP required." : "%s 或需要更高階版本的php", @@ -22,10 +24,15 @@ OC.L10N.register( "Invalid image" : "無效的圖片", "Avatar image is not square" : "頭像不是正方形", "today" : "今天", + "tomorrow" : "明天", "yesterday" : "昨天", + "_in %n day_::_in %n days_" : ["在 %n 天內"], "_%n day ago_::_%n days ago_" : ["%n 天前"], + "next month" : "下個月", "last month" : "上個月", + "_in %n month_::_in %n months_" : ["在 %n 月內"], "_%n month ago_::_%n months ago_" : ["%n 個月前"], + "next year" : "明年", "last year" : "去年", "_%n year ago_::_%n years ago_" : ["%n 幾年前"], "_%n hour ago_::_%n hours ago_" : ["%n 小時前"], diff --git a/lib/l10n/zh_TW.json b/lib/l10n/zh_TW.json index 103d0e25965..519ca314b93 100644 --- a/lib/l10n/zh_TW.json +++ b/lib/l10n/zh_TW.json @@ -5,6 +5,8 @@ "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "允許網頁伺服器寫入 \"config\" 目錄通常可以解決這個問題,詳見 %s", "Sample configuration detected" : "偵測到範本設定", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "看來您直接複製了範本設定來使用,這可能會毀掉你的安裝,請閱讀說明文件後對 config.php 進行適當的修改", + "%1$s and %2$s" : "%1$s 和 %2$s", + "%1$s, %2$s and %3$s" : "%1$s, %2$s 和 %3$s", "PHP %s or higher is required." : "需要 PHP %s 或更高版本", "PHP with a version lower than %s is required." : "需要 PHP 版本低於 %s ", "%sbit or higher PHP required." : "%s 或需要更高階版本的php", @@ -20,10 +22,15 @@ "Invalid image" : "無效的圖片", "Avatar image is not square" : "頭像不是正方形", "today" : "今天", + "tomorrow" : "明天", "yesterday" : "昨天", + "_in %n day_::_in %n days_" : ["在 %n 天內"], "_%n day ago_::_%n days ago_" : ["%n 天前"], + "next month" : "下個月", "last month" : "上個月", + "_in %n month_::_in %n months_" : ["在 %n 月內"], "_%n month ago_::_%n months ago_" : ["%n 個月前"], + "next year" : "明年", "last year" : "去年", "_%n year ago_::_%n years ago_" : ["%n 幾年前"], "_%n hour ago_::_%n hours ago_" : ["%n 小時前"], diff --git a/lib/private/AppFramework/DependencyInjection/DIContainer.php b/lib/private/AppFramework/DependencyInjection/DIContainer.php index 2290f0d0045..0ea7eed4ae2 100644 --- a/lib/private/AppFramework/DependencyInjection/DIContainer.php +++ b/lib/private/AppFramework/DependencyInjection/DIContainer.php @@ -230,7 +230,8 @@ class DIContainer extends SimpleContainer implements IAppContainer { $app->isAdminUser(), $server->getContentSecurityPolicyManager(), $server->getCsrfTokenManager(), - $server->getContentSecurityPolicyNonceManager() + $server->getContentSecurityPolicyNonceManager(), + $server->getAppManager() ); }); diff --git a/lib/private/AppFramework/Http.php b/lib/private/AppFramework/Http.php index 526509a4583..be1e178a05f 100644 --- a/lib/private/AppFramework/Http.php +++ b/lib/private/AppFramework/Http.php @@ -111,7 +111,7 @@ class Http extends BaseHttp { /** * Gets the correct header - * @param Http::CONSTANT $status the constant from the Http class + * @param int Http::CONSTANT $status the constant from the Http class * @param \DateTime $lastModified formatted last modified date * @param string $ETag the etag * @return string diff --git a/lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php b/lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php index 4e41c946432..52004987909 100644 --- a/lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php +++ b/lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php @@ -39,6 +39,7 @@ use OC\AppFramework\Utility\ControllerMethodReflector; use OC\Security\CSP\ContentSecurityPolicyManager; use OC\Security\CSP\ContentSecurityPolicyNonceManager; use OC\Security\CSRF\CsrfTokenManager; +use OCP\App\IAppManager; use OCP\AppFramework\Http\ContentSecurityPolicy; use OCP\AppFramework\Http\EmptyContentSecurityPolicy; use OCP\AppFramework\Http\RedirectResponse; @@ -87,6 +88,8 @@ class SecurityMiddleware extends Middleware { private $csrfTokenManager; /** @var ContentSecurityPolicyNonceManager */ private $cspNonceManager; + /** @var IAppManager */ + private $appManager; /** * @param IRequest $request @@ -101,6 +104,7 @@ class SecurityMiddleware extends Middleware { * @param ContentSecurityPolicyManager $contentSecurityPolicyManager * @param CSRFTokenManager $csrfTokenManager * @param ContentSecurityPolicyNonceManager $cspNonceManager + * @param IAppManager $appManager */ public function __construct(IRequest $request, ControllerMethodReflector $reflector, @@ -113,7 +117,8 @@ class SecurityMiddleware extends Middleware { $isAdminUser, ContentSecurityPolicyManager $contentSecurityPolicyManager, CsrfTokenManager $csrfTokenManager, - ContentSecurityPolicyNonceManager $cspNonceManager) { + ContentSecurityPolicyNonceManager $cspNonceManager, + IAppManager $appManager) { $this->navigationManager = $navigationManager; $this->request = $request; $this->reflector = $reflector; @@ -126,6 +131,7 @@ class SecurityMiddleware extends Middleware { $this->contentSecurityPolicyManager = $contentSecurityPolicyManager; $this->csrfTokenManager = $csrfTokenManager; $this->cspNonceManager = $cspNonceManager; + $this->appManager = $appManager; } /** @@ -190,7 +196,7 @@ class SecurityMiddleware extends Middleware { * The getAppPath() check is here since components such as settings also use the AppFramework and * therefore won't pass this check. */ - if(\OC_App::getAppPath($this->appName) !== false && !\OC_App::isEnabled($this->appName)) { + if(\OC_App::getAppPath($this->appName) !== false && !$this->appManager->isEnabledForUser($this->appName)) { throw new AppNotEnabledException(); } diff --git a/lib/private/Collaboration/Collaborators/SearchResult.php b/lib/private/Collaboration/Collaborators/SearchResult.php index 7b32b388203..184c1f69a1b 100644 --- a/lib/private/Collaboration/Collaborators/SearchResult.php +++ b/lib/private/Collaboration/Collaborators/SearchResult.php @@ -52,7 +52,7 @@ class SearchResult implements ISearchResult { $this->exactIdMatches[$type->getLabel()] = 1; } - public function hasExactIdMatch(SearchResultType$type) { + public function hasExactIdMatch(SearchResultType $type) { return isset($this->exactIdMatches[$type->getLabel()]); } @@ -64,8 +64,10 @@ class SearchResult implements ISearchResult { $resultArrays = [$this->result['exact'][$type], $this->result[$type]]; foreach($resultArrays as $resultArray) { - if ($resultArray['value']['shareWith'] === $collaboratorId) { - return true; + foreach ($resultArray as $result) { + if ($result['value']['shareWith'] === $collaboratorId) { + return true; + } } } diff --git a/lib/private/Command/QueueBus.php b/lib/private/Command/QueueBus.php index 7f2fc88a703..30cdd7740a9 100644 --- a/lib/private/Command/QueueBus.php +++ b/lib/private/Command/QueueBus.php @@ -27,7 +27,7 @@ use OCP\Command\ICommand; class QueueBus implements IBus { /** - * @var (ICommand|callable)[] + * @var ICommand[]|callable[] */ private $queue = []; diff --git a/lib/private/DB/MDB2SchemaManager.php b/lib/private/DB/MDB2SchemaManager.php index 89b0d153212..ad3f93a2643 100644 --- a/lib/private/DB/MDB2SchemaManager.php +++ b/lib/private/DB/MDB2SchemaManager.php @@ -89,7 +89,7 @@ class MDB2SchemaManager { } else if ($platform instanceof PostgreSqlPlatform) { return new PostgreSqlMigrator($this->conn, $random, $config, $dispatcher); } else { - return new NoCheckMigrator($this->conn, $random, $config, $dispatcher); + return new Migrator($this->conn, $random, $config, $dispatcher); } } diff --git a/lib/private/DB/NoCheckMigrator.php b/lib/private/DB/NoCheckMigrator.php deleted file mode 100644 index 723653511b9..00000000000 --- a/lib/private/DB/NoCheckMigrator.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php -/** - * @copyright Copyright (c) 2016, ownCloud, Inc. - * - * @author Morris Jobke <hey@morrisjobke.de> - * @author Robin Appelman <robin@icewind.nl> - * - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> - * - */ - -namespace OC\DB; - -use Doctrine\DBAL\Schema\Schema; - -/** - * migrator for database platforms that don't support the upgrade check - * - * @package OC\DB - */ -class NoCheckMigrator extends Migrator { - /** - * @param \Doctrine\DBAL\Schema\Schema $targetSchema - * @throws \OC\DB\MigrationException - */ - public function checkMigrate(Schema $targetSchema) {} -} diff --git a/lib/private/DB/OracleMigrator.php b/lib/private/DB/OracleMigrator.php index 2735529b5e2..f5e06b50d99 100644 --- a/lib/private/DB/OracleMigrator.php +++ b/lib/private/DB/OracleMigrator.php @@ -30,8 +30,79 @@ use Doctrine\DBAL\Schema\ColumnDiff; use Doctrine\DBAL\Schema\Index; use Doctrine\DBAL\Schema\Schema; use Doctrine\DBAL\Schema\Table; +use Doctrine\DBAL\Schema\ForeignKeyConstraint; + +class OracleMigrator extends Migrator { + + /** + * Quote a column's name but changing the name requires recreating + * the column instance and copying over all properties. + * + * @param Column $column old column + * @return Column new column instance with new name + */ + protected function quoteColumn(Column $column) { + $newColumn = new Column( + $this->connection->quoteIdentifier($column->getName()), + $column->getType() + ); + $newColumn->setAutoincrement($column->getAutoincrement()); + $newColumn->setColumnDefinition($column->getColumnDefinition()); + $newColumn->setComment($column->getComment()); + $newColumn->setDefault($column->getDefault()); + $newColumn->setFixed($column->getFixed()); + $newColumn->setLength($column->getLength()); + $newColumn->setNotnull($column->getNotnull()); + $newColumn->setPrecision($column->getPrecision()); + $newColumn->setScale($column->getScale()); + $newColumn->setUnsigned($column->getUnsigned()); + $newColumn->setPlatformOptions($column->getPlatformOptions()); + $newColumn->setCustomSchemaOptions($column->getPlatformOptions()); + return $newColumn; + } + + /** + * Quote an index's name but changing the name requires recreating + * the index instance and copying over all properties. + * + * @param Index $index old index + * @return Index new index instance with new name + */ + protected function quoteIndex($index) { + return new Index( + //TODO migrate existing uppercase indexes, then $this->connection->quoteIdentifier($index->getName()), + $index->getName(), + array_map(function($columnName) { + return $this->connection->quoteIdentifier($columnName); + }, $index->getColumns()), + $index->isUnique(), + $index->isPrimary(), + $index->getFlags(), + $index->getOptions() + ); + } + + /** + * Quote an ForeignKeyConstraint's name but changing the name requires recreating + * the ForeignKeyConstraint instance and copying over all properties. + * + * @param ForeignKeyConstraint $fkc old fkc + * @return ForeignKeyConstraint new fkc instance with new name + */ + protected function quoteForeignKeyConstraint($fkc) { + return new ForeignKeyConstraint( + array_map(function($columnName) { + return $this->connection->quoteIdentifier($columnName); + }, $fkc->getLocalColumns()), + $this->connection->quoteIdentifier($fkc->getForeignTableName()), + array_map(function($columnName) { + return $this->connection->quoteIdentifier($columnName); + }, $fkc->getForeignColumns()), + $fkc->getName(), + $fkc->getOptions() + ); + } -class OracleMigrator extends NoCheckMigrator { /** * @param Schema $targetSchema * @param \Doctrine\DBAL\Connection $connection @@ -46,37 +117,14 @@ class OracleMigrator extends NoCheckMigrator { return new Table( $this->connection->quoteIdentifier($table->getName()), array_map(function(Column $column) { - $newColumn = new Column( - $this->connection->quoteIdentifier($column->getName()), - $column->getType() - ); - $newColumn->setAutoincrement($column->getAutoincrement()); - $newColumn->setColumnDefinition($column->getColumnDefinition()); - $newColumn->setComment($column->getComment()); - $newColumn->setDefault($column->getDefault()); - $newColumn->setFixed($column->getFixed()); - $newColumn->setLength($column->getLength()); - $newColumn->setNotnull($column->getNotnull()); - $newColumn->setPrecision($column->getPrecision()); - $newColumn->setScale($column->getScale()); - $newColumn->setUnsigned($column->getUnsigned()); - $newColumn->setPlatformOptions($column->getPlatformOptions()); - $newColumn->setCustomSchemaOptions($column->getPlatformOptions()); - return $newColumn; + return $this->quoteColumn($column); }, $table->getColumns()), array_map(function(Index $index) { - return new Index( - $this->connection->quoteIdentifier($index->getName()), - array_map(function($columnName) { - return $this->connection->quoteIdentifier($columnName); - }, $index->getColumns()), - $index->isUnique(), - $index->isPrimary(), - $index->getFlags(), - $index->getOptions() - ); + return $this->quoteIndex($index); }, $table->getIndexes()), - $table->getForeignKeys(), + array_map(function(ForeignKeyConstraint $fck) { + return $this->quoteForeignKeyConstraint($fck); + }, $table->getForeignKeys()), 0, $table->getOptions() ); @@ -95,14 +143,56 @@ class OracleMigrator extends NoCheckMigrator { foreach ($schemaDiff->changedTables as $tableDiff) { $tableDiff->name = $this->connection->quoteIdentifier($tableDiff->name); + + $tableDiff->addedColumns = array_map(function(Column $column) { + return $this->quoteColumn($column); + }, $tableDiff->addedColumns); + foreach ($tableDiff->changedColumns as $column) { $column->oldColumnName = $this->connection->quoteIdentifier($column->oldColumnName); // auto increment is not relevant for oracle and can anyhow not be applied on change $column->changedProperties = array_diff($column->changedProperties, ['autoincrement', 'unsigned']); } + // remove columns that no longer have changed (because autoincrement and unsigned are not supported) $tableDiff->changedColumns = array_filter($tableDiff->changedColumns, function (ColumnDiff $column) { return count($column->changedProperties) > 0; }); + + $tableDiff->removedColumns = array_map(function(Column $column) { + return $this->quoteColumn($column); + }, $tableDiff->removedColumns); + + $tableDiff->renamedColumns = array_map(function(Column $column) { + return $this->quoteColumn($column); + }, $tableDiff->renamedColumns); + + $tableDiff->addedIndexes = array_map(function(Index $index) { + return $this->quoteIndex($index); + }, $tableDiff->addedIndexes); + + $tableDiff->changedIndexes = array_map(function(Index $index) { + return $this->quoteIndex($index); + }, $tableDiff->changedIndexes); + + $tableDiff->removedIndexes = array_map(function(Index $index) { + return $this->quoteIndex($index); + }, $tableDiff->removedIndexes); + + $tableDiff->renamedIndexes = array_map(function(Index $index) { + return $this->quoteIndex($index); + }, $tableDiff->renamedIndexes); + + $tableDiff->addedForeignKeys = array_map(function(ForeignKeyConstraint $fkc) { + return $this->quoteForeignKeyConstraint($fkc); + }, $tableDiff->addedForeignKeys); + + $tableDiff->changedForeignKeys = array_map(function(ForeignKeyConstraint $fkc) { + return $this->quoteForeignKeyConstraint($fkc); + }, $tableDiff->changedForeignKeys); + + $tableDiff->removedForeignKeys = array_map(function(ForeignKeyConstraint $fkc) { + return $this->quoteForeignKeyConstraint($fkc); + }, $tableDiff->removedForeignKeys); } return $schemaDiff; diff --git a/lib/private/Files/FileInfo.php b/lib/private/Files/FileInfo.php index f5a44ba02ea..7ac0c6e49d5 100644 --- a/lib/private/Files/FileInfo.php +++ b/lib/private/Files/FileInfo.php @@ -232,7 +232,7 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess { } /** - * @return \OCP\Files\FileInfo::TYPE_FILE|\OCP\Files\FileInfo::TYPE_FOLDER + * @return string \OCP\Files\FileInfo::TYPE_FILE|\OCP\Files\FileInfo::TYPE_FOLDER */ public function getType() { if (!isset($this->data['type'])) { diff --git a/lib/private/Files/ObjectStore/ObjectStoreStorage.php b/lib/private/Files/ObjectStore/ObjectStoreStorage.php index ded69e8079b..15df808684b 100644 --- a/lib/private/Files/ObjectStore/ObjectStoreStorage.php +++ b/lib/private/Files/ObjectStore/ObjectStoreStorage.php @@ -390,7 +390,15 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common { $stat['size'] = filesize($tmpFile); $stat['mtime'] = $mTime; $stat['storage_mtime'] = $mTime; - $stat['mimetype'] = \OC::$server->getMimeTypeDetector()->detect($tmpFile); + + // run path based detection first, to use file extension because $tmpFile is only a random string + $mimetypeDetector = \OC::$server->getMimeTypeDetector(); + $mimetype = $mimetypeDetector->detectPath($path); + if ($mimetype === 'application/octet-stream') { + $mimetype = $mimetypeDetector->detect($tmpFile); + } + + $stat['mimetype'] = $mimetype; $stat['etag'] = $this->getETag($path); $fileId = $this->getCache()->put($path, $stat); diff --git a/lib/private/Files/ObjectStore/S3ObjectTrait.php b/lib/private/Files/ObjectStore/S3ObjectTrait.php index 6fb12265cb7..4bfa08a3e59 100644 --- a/lib/private/Files/ObjectStore/S3ObjectTrait.php +++ b/lib/private/Files/ObjectStore/S3ObjectTrait.php @@ -49,12 +49,15 @@ trait S3ObjectTrait { 'Bucket' => $this->bucket, 'Key' => $urn ]); - $command['@http']['stream'] = true; - $result = $client->execute($command); - /** @var StreamInterface $body */ - $body = $result['Body']; + $request = \Aws\serialize($command); + $opts = [ + 'http' => [ + 'header' => $request->getHeaders() + ] + ]; - return $body->detach(); + $context = stream_context_create($opts); + return fopen($request->getUri(), 'r', false, $context); } /** diff --git a/lib/private/Files/Storage/Local.php b/lib/private/Files/Storage/Local.php index 0577093712e..c9cb6f246d7 100644 --- a/lib/private/Files/Storage/Local.php +++ b/lib/private/Files/Storage/Local.php @@ -408,10 +408,11 @@ class Local extends \OC\Files\Storage\Common { * @param IStorage $sourceStorage * @param string $sourceInternalPath * @param string $targetInternalPath + * @param bool $preserveMtime * @return bool */ public function copyFromStorage(IStorage $sourceStorage, $sourceInternalPath, $targetInternalPath, $preserveMtime = false) { - if ($sourceStorage->instanceOfStorage('\OC\Files\Storage\Local')) { + if ($sourceStorage->instanceOfStorage(Local::class)) { if ($sourceStorage->instanceOfStorage(Jail::class)) { /** * @var \OC\Files\Storage\Wrapper\Jail $sourceStorage diff --git a/lib/private/Files/Type/Detection.php b/lib/private/Files/Type/Detection.php index cd4ddc2f067..928c68251cf 100644 --- a/lib/private/Files/Type/Detection.php +++ b/lib/private/Files/Type/Detection.php @@ -173,6 +173,10 @@ class Detection implements IMimeTypeDetector { // note: leading dot doesn't qualify as extension if (strpos($fileName, '.') > 0) { + + // remove versioning extension: name.v1508946057 and transfer extension: name.ocTransferId2057600214.part + $fileName = preg_replace('!((\.v\d+)|((.ocTransferId\d+)?.part))$!', '', $fileName); + //try to guess the type by the file extension $extension = strtolower(strrchr($fileName, '.')); $extension = substr($extension, 1); //remove leading . diff --git a/lib/private/Log.php b/lib/private/Log.php index 39577d2387a..25ff26daffa 100644 --- a/lib/private/Log.php +++ b/lib/private/Log.php @@ -69,6 +69,8 @@ class Log implements ILogger { 'loginWithPassword', 'updatePrivateKeyPassword', 'validateUserPass', + 'loginWithToken', + '\{closure\}', // TokenProvider 'getToken', @@ -96,6 +98,10 @@ class Log implements ILogger { 'bind', 'areCredentialsValid', 'invokeLDAPMethod', + + // Encryption + 'storeKeyPair', + 'setupUser', ]; /** diff --git a/lib/private/Mail/Attachment.php b/lib/private/Mail/Attachment.php new file mode 100644 index 00000000000..7b85ad1dbb9 --- /dev/null +++ b/lib/private/Mail/Attachment.php @@ -0,0 +1,78 @@ +<?php +/** + * @copyright Copyright (c) 2017 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/>. + * + */ + +namespace OC\Mail; + +use OCP\Mail\IAttachment; + +/** + * Class Attachment + * + * @package OC\Mail + * @since 13.0.0 + */ +class Attachment implements IAttachment { + + /** @var \Swift_Mime_Attachment */ + protected $swiftAttachment; + + public function __construct(\Swift_Mime_Attachment $attachment) { + $this->swiftAttachment = $attachment; + } + + /** + * @param string $filename + * @return $this + * @since 13.0.0 + */ + public function setFilename($filename) { + $this->swiftAttachment->setFilename($filename); + return $this; + } + + /** + * @param string $contentType + * @return $this + * @since 13.0.0 + */ + public function setContentType($contentType) { + $this->swiftAttachment->setContentType($contentType); + return $this; + } + + /** + * @param string $body + * @return $this + * @since 13.0.0 + */ + public function setBody($body) { + $this->swiftAttachment->setBody($body); + return $this; + } + + /** + * @return \Swift_Mime_Attachment + */ + public function getSwiftAttachment() { + return $this->swiftAttachment; + } + +} diff --git a/lib/private/Mail/Mailer.php b/lib/private/Mail/Mailer.php index 43fdb07b810..ad59d640b3e 100644 --- a/lib/private/Mail/Mailer.php +++ b/lib/private/Mail/Mailer.php @@ -26,6 +26,7 @@ use OCP\Defaults; use OCP\IConfig; use OCP\IL10N; use OCP\IURLGenerator; +use OCP\Mail\IAttachment; use OCP\Mail\IEMailTemplate; use OCP\Mail\IMailer; use OCP\ILogger; @@ -92,6 +93,27 @@ class Mailer implements IMailer { } /** + * @param string|null $data + * @param string|null $filename + * @param string|null $contentType + * @return IAttachment + * @since 13.0.0 + */ + public function createAttachment($data = null, $filename = null, $contentType = null) { + return new Attachment(\Swift_Attachment::newInstance($data, $filename, $contentType)); + } + + /** + * @param string $path + * @param string|null $contentType + * @return IAttachment + * @since 13.0.0 + */ + public function createAttachmentFromPath($path, $contentType = null) { + return new Attachment(\Swift_Attachment::fromPath($path, $contentType)); + } + + /** * Creates a new email template object * * @param string $emailId diff --git a/lib/private/Mail/Message.php b/lib/private/Mail/Message.php index b4d1e4dbe7a..dcd4a66e996 100644 --- a/lib/private/Mail/Message.php +++ b/lib/private/Mail/Message.php @@ -23,6 +23,7 @@ namespace OC\Mail; +use OCP\Mail\IAttachment; use OCP\Mail\IEMailTemplate; use OCP\Mail\IMessage; use Swift_Message; @@ -44,6 +45,17 @@ class Message implements IMessage { } /** + * @param IAttachment $attachment + * @return $this + * @since 13.0.0 + */ + public function attach(IAttachment $attachment) { + /** @var Attachment $attachment */ + $this->swiftMessage->attach($attachment->getSwiftAttachment()); + return $this; + } + + /** * SwiftMailer does currently not work with IDN domains, this function therefore converts the domains * FIXME: Remove this once SwiftMailer supports IDN * diff --git a/lib/private/Repair.php b/lib/private/Repair.php index 80cd3c7fd45..ac824095d53 100644 --- a/lib/private/Repair.php +++ b/lib/private/Repair.php @@ -41,6 +41,7 @@ use OC\Repair\NC11\MoveAvatars; use OC\Repair\NC12\InstallCoreBundle; use OC\Repair\NC12\UpdateLanguageCodes; use OC\Repair\NC12\RepairIdentityProofKeyFolders; +use OC\Repair\NC13\AddLogRotateJob; use OC\Repair\OldGroupMembershipShares; use OC\Repair\Owncloud\DropAccountTermsTable; use OC\Repair\Owncloud\SaveAccountsTableData; @@ -150,6 +151,7 @@ class Repair implements IOutput{ ), new RepairInvalidPaths(\OC::$server->getDatabaseConnection(), \OC::$server->getConfig()), new RepairIdentityProofKeyFolders(\OC::$server->getConfig(), \OC::$server->query(Factory::class), \OC::$server->getRootFolder()), + new AddLogRotateJob(\OC::$server->getJobList()), ]; } diff --git a/lib/private/Repair/NC13/AddLogRotateJob.php b/lib/private/Repair/NC13/AddLogRotateJob.php new file mode 100644 index 00000000000..c65ea47f02b --- /dev/null +++ b/lib/private/Repair/NC13/AddLogRotateJob.php @@ -0,0 +1,47 @@ +<?php +/** + * @copyright 2017, Roeland Jago Douma <roeland@famdouma.nl> + * + * @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/>. + * + */ +namespace OC\Repair\NC13; + +use OC\Log\Rotate; +use OCP\BackgroundJob\IJobList; +use OCP\Migration\IOutput; +use OCP\Migration\IRepairStep; + +class AddLogRotateJob implements IRepairStep { + + /** @var IJobList */ + private $jobList; + + public function __construct(IJobList $jobList) { + $this->jobList = $jobList; + } + + public function getName() { + return 'Add log rotate job'; + } + + public function run(IOutput $output) { + $this->jobList->add(Rotate::class); + } + +} diff --git a/lib/private/Server.php b/lib/private/Server.php index 1621a194693..c461d3842cd 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -533,8 +533,8 @@ class Server extends ServerContainer implements IServerContainer { $this->registerService(\OCP\Route\IRouter::class, function (Server $c) { $cacheFactory = $c->getMemCacheFactory(); $logger = $c->getLogger(); - if ($cacheFactory->isAvailable()) { - $router = new \OC\Route\CachingRouter($cacheFactory->create('route'), $logger); + if ($cacheFactory->isAvailableLowLatency()) { + $router = new \OC\Route\CachingRouter($cacheFactory->createLocal('route'), $logger); } else { $router = new \OC\Route\Router($logger); } diff --git a/lib/private/Setup.php b/lib/private/Setup.php index 5228d52b05f..4e1e4ece62d 100644 --- a/lib/private/Setup.php +++ b/lib/private/Setup.php @@ -44,6 +44,7 @@ use Exception; use OC\App\AppStore\Bundles\BundleFetcher; use OC\Authentication\Token\DefaultTokenCleanupJob; use OC\Authentication\Token\DefaultTokenProvider; +use OC\Log\Rotate; use OCP\Defaults; use OCP\IL10N; use OCP\ILogger; @@ -426,7 +427,9 @@ class Setup { } public static function installBackgroundJobs() { - \OC::$server->getJobList()->add(DefaultTokenCleanupJob::class); + $jobList = \OC::$server->getJobList(); + $jobList->add(DefaultTokenCleanupJob::class); + $jobList->add(Rotate::class); } /** diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php index 9245b9d4f51..379d87633ab 100644 --- a/lib/private/Share20/Manager.php +++ b/lib/private/Share20/Manager.php @@ -1395,7 +1395,7 @@ class Manager implements IManager { /** * Create a new share - * @return \OCP\Share\IShare; + * @return \OCP\Share\IShare */ public function newShare() { return new \OC\Share20\Share($this->rootFolder, $this->userManager); diff --git a/lib/private/SystemConfig.php b/lib/private/SystemConfig.php index 3610486140d..91afbeb8967 100644 --- a/lib/private/SystemConfig.php +++ b/lib/private/SystemConfig.php @@ -37,22 +37,30 @@ class SystemConfig { /** @var array */ protected $sensitiveValues = [ + 'instanceid' => true, + 'trusted_domains' => true, + 'datadirectory' => true, + 'overwrite.cli.url' => true, 'dbname' => true, + 'dbhost' => true, 'dbpassword' => true, 'dbuser' => true, 'mail_from_address' => true, 'mail_domain' => true, + 'mail_smtphost' => true, 'mail_smtpname' => true, 'mail_smtppassword' => true, 'passwordsalt' => true, 'secret' => true, 'updater.secret' => true, + 'trusted_proxies' => true, 'proxyuserpwd' => true, 'log.condition' => [ 'shared_secret' => true, ], 'license-key' => true, 'redis' => [ + 'host' => true, 'password' => true, ], 'objectstore' => [ diff --git a/lib/private/Tags.php b/lib/private/Tags.php index b63435ff838..1947f0c07e6 100644 --- a/lib/private/Tags.php +++ b/lib/private/Tags.php @@ -140,7 +140,7 @@ class Tags implements \OCP\ITags { /** * Check if any tags are saved for this type and user. * - * @return boolean. + * @return boolean */ public function isEmpty() { return count($this->tags) === 0; diff --git a/lib/private/legacy/app.php b/lib/private/legacy/app.php index efa2afd7356..49fac2f4d96 100644 --- a/lib/private/legacy/app.php +++ b/lib/private/legacy/app.php @@ -350,6 +350,7 @@ class OC_App { * * @param string $app app * @return bool + * @deprecated 13.0.0 use \OC::$server->getAppManager()->isEnabledForUser($appId) * * This function checks whether or not an app is enabled. */ @@ -869,21 +870,6 @@ class OC_App { return $appList; } - /** - * Returns the internal app ID or false - * @param string $ocsID - * @return string|false - */ - public static function getInternalAppIdByOcs($ocsID) { - if(is_numeric($ocsID)) { - $idArray = \OC::$server->getAppConfig()->getValues(false, 'ocsid'); - if(array_search($ocsID, $idArray)) { - return array_search($ocsID, $idArray); - } - } - return false; - } - public static function shouldUpgrade($app) { $versions = self::getAppVersions(); $currentVersion = OC_App::getAppVersion($app); @@ -1161,7 +1147,7 @@ class OC_App { * @return \OC\Files\View|false */ public static function getStorage($appId) { - if (OC_App::isEnabled($appId)) { //sanity check + if (\OC::$server->getAppManager()->isEnabledForUser($appId)) { //sanity check if (\OC::$server->getUserSession()->isLoggedIn()) { $view = new \OC\Files\View('/' . OC_User::getUser()); if (!$view->file_exists($appId)) { diff --git a/lib/private/legacy/image.php b/lib/private/legacy/image.php index 120b19d1cff..cd5ca7bb5ce 100644 --- a/lib/private/legacy/image.php +++ b/lib/private/legacy/image.php @@ -431,7 +431,7 @@ class OC_Image implements \OCP\IImage { * (I'm open for suggestions on better method name ;) * Fixes orientation based on EXIF data. * - * @return bool. + * @return bool */ public function fixOrientation() { $o = $this->getOrientation(); diff --git a/lib/private/legacy/json.php b/lib/private/legacy/json.php index 180dd7c448d..221a0047eb4 100644 --- a/lib/private/legacy/json.php +++ b/lib/private/legacy/json.php @@ -55,7 +55,7 @@ class OC_JSON{ * @suppress PhanDeprecatedFunction */ public static function checkAppEnabled($app) { - if( !OC_App::isEnabled($app)) { + if( !\OC::$server->getAppManager()->isEnabledForUser($app)) { $l = \OC::$server->getL10N('lib'); self::error(array( 'data' => array( 'message' => $l->t('Application is not enabled'), 'error' => 'application_not_enabled' ))); exit(); diff --git a/lib/private/legacy/template.php b/lib/private/legacy/template.php index 8c6185cd556..55df2dece11 100644 --- a/lib/private/legacy/template.php +++ b/lib/private/legacy/template.php @@ -297,7 +297,7 @@ class OC_Template extends \OC\Template\Base { * @suppress PhanAccessMethodInternal */ public static function printErrorPage( $error_msg, $hint = '' ) { - if (\OC_App::isEnabled('theming') && !\OC_App::isAppLoaded('theming')) { + if (\OC::$server->getAppManager()->isEnabledForUser('theming') && !\OC_App::isAppLoaded('theming')) { \OC_App::loadApp('theming'); } diff --git a/lib/private/legacy/template/functions.php b/lib/private/legacy/template/functions.php index bca16b48c1a..1ef3541e880 100644 --- a/lib/private/legacy/template/functions.php +++ b/lib/private/legacy/template/functions.php @@ -278,7 +278,7 @@ function human_file_size( $bytes ) { /** * Strips the timestamp of its time value * @param int $timestamp UNIX timestamp to strip - * @return $timestamp without time value + * @return int timestamp without time value */ function strip_time($timestamp){ $date = new \DateTime("@{$timestamp}"); diff --git a/lib/public/App.php b/lib/public/App.php index 06dde22b8d1..250d33bf01f 100644 --- a/lib/public/App.php +++ b/lib/public/App.php @@ -127,9 +127,10 @@ class App { * * This function checks whether or not an app is enabled. * @since 4.0.0 + * @deprecated 13.0.0 use \OC::$server->getAppManager()->isEnabledForUser($appId) */ public static function isEnabled( $app ) { - return \OC_App::isEnabled( $app ); + return \OC::$server->getAppManager()->isEnabledForUser( $app ); } /** diff --git a/lib/public/AppFramework/Http/DataDisplayResponse.php b/lib/public/AppFramework/Http/DataDisplayResponse.php index 820e00ff963..cfc4bd494f2 100644 --- a/lib/public/AppFramework/Http/DataDisplayResponse.php +++ b/lib/public/AppFramework/Http/DataDisplayResponse.php @@ -35,7 +35,7 @@ class DataDisplayResponse extends Response { /** * response data - * @var string; + * @var string */ protected $data; diff --git a/lib/public/Files/FileInfo.php b/lib/public/Files/FileInfo.php index f0f21087bbe..0b90fb8fbf2 100644 --- a/lib/public/Files/FileInfo.php +++ b/lib/public/Files/FileInfo.php @@ -174,7 +174,7 @@ interface FileInfo { /** * Check whether this is a file or a folder * - * @return \OCP\Files\FileInfo::TYPE_FILE|\OCP\Files\FileInfo::TYPE_FOLDER + * @return string \OCP\Files\FileInfo::TYPE_FILE|\OCP\Files\FileInfo::TYPE_FOLDER * @since 7.0.0 */ public function getType(); diff --git a/lib/public/IRequest.php b/lib/public/IRequest.php index 98d8f5bb83a..262b595acc7 100644 --- a/lib/public/IRequest.php +++ b/lib/public/IRequest.php @@ -69,6 +69,11 @@ interface IRequest { const USER_AGENT_CLIENT_ANDROID = '/^Mozilla\/5\.0 \(Android\) ownCloud\-android.*$/'; /** + * @since 13.0.0 + */ + const USER_AGENT_TALK_ANDROID = '/^Mozilla\/5\.0 \(Android\) Nextcloud\-Talk v.*$/'; + + /** * @since 9.1.0 */ const USER_AGENT_CLIENT_DESKTOP = '/^Mozilla\/5\.0 \([A-Za-z ]+\) (mirall|csyncoC)\/.*$/'; @@ -79,6 +84,11 @@ interface IRequest { const USER_AGENT_CLIENT_IOS = '/^Mozilla\/5\.0 \(iOS\) (ownCloud|Nextcloud)\-iOS.*$/'; /** + * @since 13.0.0 + */ + const USER_AGENT_TALK_IOS = '/^Mozilla\/5\.0 \(iOS\) Nextcloud\-Talk v.*$/'; + + /** * @param string $name * * @return string diff --git a/lib/public/Mail/IAttachment.php b/lib/public/Mail/IAttachment.php new file mode 100644 index 00000000000..32348e7a309 --- /dev/null +++ b/lib/public/Mail/IAttachment.php @@ -0,0 +1,53 @@ +<?php +/** + * @copyright Copyright (c) 2017 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/>. + * + */ + +namespace OCP\Mail; + +/** + * Interface IAttachment + * + * @package OCP\Mail + * @since 13.0.0 + */ +interface IAttachment { + + /** + * @param string $filename + * @return $this + * @since 13.0.0 + */ + public function setFilename($filename); + + /** + * @param string $contentType + * @return $this + * @since 13.0.0 + */ + public function setContentType($contentType); + + /** + * @param string $body + * @return $this + * @since 13.0.0 + */ + public function setBody($body); + +} diff --git a/lib/public/Mail/IMailer.php b/lib/public/Mail/IMailer.php index 35189c22a69..10096548256 100644 --- a/lib/public/Mail/IMailer.php +++ b/lib/public/Mail/IMailer.php @@ -54,6 +54,23 @@ interface IMailer { public function createMessage(); /** + * @param string|null $data + * @param string|null $filename + * @param string|null $contentType + * @return IAttachment + * @since 13.0.0 + */ + public function createAttachment($data = null, $filename = null, $contentType = null); + + /** + * @param string $path + * @param string|null $contentType + * @return IAttachment + * @since 13.0.0 + */ + public function createAttachmentFromPath($path, $contentType = null); + + /** * Creates a new email template object * * @param string $emailId diff --git a/lib/public/Mail/IMessage.php b/lib/public/Mail/IMessage.php index 20e4ea19c4c..e82b4ff93a9 100644 --- a/lib/public/Mail/IMessage.php +++ b/lib/public/Mail/IMessage.php @@ -22,12 +22,20 @@ namespace OCP\Mail; /** - * Class Message + * Interface IMessage * * @package OCP\Mail * @since 13.0.0 */ interface IMessage { + + /** + * @param IAttachment $attachment + * @return $this + * @since 13.0.0 + */ + public function attach(IAttachment $attachment); + /** * Set the from address of this message. * diff --git a/lib/public/Util.php b/lib/public/Util.php index e4ebdb5bfa7..04cdfe216d0 100644 --- a/lib/public/Util.php +++ b/lib/public/Util.php @@ -670,7 +670,7 @@ class Util { * Compare two strings to provide a natural sort * @param string $a first string to compare * @param string $b second string to compare - * @return -1 if $b comes before $a, 1 if $a comes before $b + * @return int -1 if $b comes before $a, 1 if $a comes before $b * or 0 if the strings are identical * @since 7.0.0 */ diff --git a/settings/Controller/EncryptionController.php b/settings/Controller/EncryptionController.php index 0c8dd529a7d..4ec6177f28f 100644 --- a/settings/Controller/EncryptionController.php +++ b/settings/Controller/EncryptionController.php @@ -26,6 +26,7 @@ namespace OC\Settings\Controller; use OC\Files\View; use OCA\Encryption\Migration; +use OCP\App\IAppManager; use OCP\IDBConnection; use OCP\IL10N; use OCP\AppFramework\Controller; @@ -57,6 +58,9 @@ class EncryptionController extends Controller { /** @var ILogger */ private $logger; + /** @var IAppManager */ + private $appManager; + /** * @param string $appName * @param IRequest $request @@ -66,6 +70,7 @@ class EncryptionController extends Controller { * @param IUserManager $userManager * @param View $view * @param ILogger $logger + * @param IAppManager $appManager */ public function __construct($appName, IRequest $request, @@ -74,7 +79,8 @@ class EncryptionController extends Controller { IDBConnection $connection, IUserManager $userManager, View $view, - ILogger $logger) { + ILogger $logger, + IAppManager $appManager) { parent::__construct($appName, $request); $this->l10n = $l10n; $this->config = $config; @@ -82,6 +88,7 @@ class EncryptionController extends Controller { $this->view = $view; $this->userManager = $userManager; $this->logger = $logger; + $this->appManager = $appManager; } /** @@ -89,13 +96,15 @@ class EncryptionController extends Controller { * @param View $view * @param IDBConnection $connection * @param ILogger $logger + * @param IAppManager $appManager * @return Migration */ protected function getMigration(IConfig $config, View $view, IDBConnection $connection, - ILogger $logger) { - return new Migration($config, $view, $connection, $logger); + ILogger $logger, + IAppManager $appManager) { + return new Migration($config, $view, $connection, $logger, $appManager); } /** @@ -111,7 +120,7 @@ class EncryptionController extends Controller { try { - $migration = $this->getMigration($this->config, $this->view, $this->connection, $this->logger); + $migration = $this->getMigration($this->config, $this->view, $this->connection, $this->logger, $this->appManager); $migration->reorganizeSystemFolderStructure(); $migration->updateDB(); diff --git a/settings/css/settings.scss b/settings/css/settings.scss index b6432c5a96e..9a315b79151 100644 --- a/settings/css/settings.scss +++ b/settings/css/settings.scss @@ -248,6 +248,8 @@ input { opacity: .75; } &.active { + box-shadow: inset 2px 0 $color-primary; + .menuitem-text { font-weight: 600; } @@ -417,42 +419,6 @@ table.nostyle { } /* USERS */ -#newgroup-init a span { - margin-left: 20px; - &:before { - position: absolute; - left: 12px; - top: -2px; - content: '+'; - font-weight: bold; - font-size: 150%; - } -} - -#newgroup-form { - height: 44px; -} - -#newgroupname { - margin: 0; - width: 100%; - padding: 12px 40px 12px 12px; - box-sizing: border-box; - background-color: transparent; - border: none; - border-bottom: 1px solid $color-border; - border-radius: 0; -} - -#newgroup-form .button { - position: absolute; - right: 0; - top: 0; - padding: 10px 20px; - background-color: transparent; - border: none; - opacity: .5; -} .isgroup { .groupname { @@ -466,44 +432,18 @@ table.nostyle { } } -.usercount { - float: left; - margin: 5px; -} - li.active { - span.utils .delete { - float: left; - position: relative; - opacity: 0.5; - top: -7px; - left: 7px; - width: 44px; - height: 44px; - } - .rename { - padding: 8px 14px 20px 14px; - top: 0px; - position: absolute; - width: 16px; - height: 16px; - opacity: 0.5; - display: inline-block !important; - } - span.utils .delete img { - margin: 14px; - } + .delete, .rename { - opacity: 0.5; - } - span.utils .delete:hover, .rename:hover { - opacity: 1; + display: block; } } -span.utils .delete, -.rename { - display: none; +.app-navigation-entry-utils { + .delete, + .rename { + display: none; + } } #usersearchform { @@ -1146,8 +1086,6 @@ table.grid td.date { } #selectGroups select { - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; box-sizing: border-box; display: inline-block; height: 36px; @@ -1253,7 +1191,14 @@ doesnotexist:-o-prefocus, .strengthify-wrapper { .settings-caption { font-weight: bold; line-height: 44px; - padding: 0 12px; + padding: 0 44px; white-space: nowrap; text-overflow: ellipsis; + // !important to overwrite specific hover and focus + opacity: .4 !important; + box-shadow: none !important; + + &:not(:first-child) { + margin-top: 22px; + } } diff --git a/settings/js/users/groups.js b/settings/js/users/groups.js index 073551c0d8e..522291a00d7 100644 --- a/settings/js/users/groups.js +++ b/settings/js/users/groups.js @@ -227,7 +227,7 @@ GroupList = { }, isAddGroupButtonVisible: function () { - return $('#newgroup-init').is(":visible"); + return !$('#newgroup-entry').hasClass('editing'); }, toggleAddGroup: function (event) { @@ -235,14 +235,12 @@ GroupList = { if (event) { event.stopPropagation(); } - $('#newgroup-form').show(); - $('#newgroup-init').hide(); - $('#newgroupname').focus(); + $('#newgroup-entry').addClass('editing'); + $('#newgroupname').select(); GroupList.handleAddGroupInput(''); } else { - $('#newgroup-form').hide(); - $('#newgroup-init').show(); + $('#newgroup-entry').removeClass('editing'); $('#newgroupname').val(''); } }, @@ -299,7 +297,7 @@ GroupList = { } // Call function for handling delete/undo - GroupDeleteHandler.mark(GroupList.getElementGID(this)); + GroupDeleteHandler.mark(GroupList.getElementGID($(this).parent())); }; $userGroupList.on('click', '.delete', deleteAction); @@ -340,7 +338,6 @@ $(document).ready( function () { } // Display or hide of Create Group List Element - $('#newgroup-form').hide(); $('#newgroup-init').on('click', function (e) { GroupList.toggleAddGroup(e); }); diff --git a/settings/js/users/users.js b/settings/js/users/users.js index 4a4faf13ec7..af41790a7c4 100644 --- a/settings/js/users/users.js +++ b/settings/js/users/users.js @@ -592,7 +592,7 @@ var UserList = { if (quota === 'other') { return; } - if ((quota !== 'default' && quota !== "none") && (!OC.Util.computerFileSize(quota))) { + if (quota !== 'default' && quota !== "none" && OC.Util.computerFileSize(quota) === null) { // the select component has added the bogus value, delete it again $select.find('option[selected]').remove(); OC.Notification.showTemporary(t('core', 'Invalid quota value "{val}"', {val: quota})); diff --git a/settings/l10n/af.js b/settings/l10n/af.js index 59d52e20267..0429ff29e96 100644 --- a/settings/l10n/af.js +++ b/settings/l10n/af.js @@ -70,7 +70,6 @@ OC.L10N.register( "Send email to new user" : "Stuur e-pos aan nuwe gebruiker", "E-Mail" : "E-pos", "Create" : "Skep", - "Group name" : "Groepnaam", "Everyone" : "Almal", "Default quota" : "Verstekkwota", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Voer asb. ’n verstekkwota in (bv.: “512 MB” of “12 GB”)", @@ -98,6 +97,7 @@ OC.L10N.register( "Subscribe to our twitter channel!" : "Teken in op ons twitterkanaal", "Subscribe to our news feed!" : "Teken in op ons nuusvoer!", "Subscribe to our newsletter!" : "Teken in op ons nuusbrief!", + "Group name" : "Groepnaam", "Follow us on Google+!" : "Volg ons op Google+!", "Follow us on Twitter!" : "Volg ons op Twitter!", "Check out our blog!" : "Besoek ons woernaal!" diff --git a/settings/l10n/af.json b/settings/l10n/af.json index 2c116a07041..7d6add2c874 100644 --- a/settings/l10n/af.json +++ b/settings/l10n/af.json @@ -68,7 +68,6 @@ "Send email to new user" : "Stuur e-pos aan nuwe gebruiker", "E-Mail" : "E-pos", "Create" : "Skep", - "Group name" : "Groepnaam", "Everyone" : "Almal", "Default quota" : "Verstekkwota", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Voer asb. ’n verstekkwota in (bv.: “512 MB” of “12 GB”)", @@ -96,6 +95,7 @@ "Subscribe to our twitter channel!" : "Teken in op ons twitterkanaal", "Subscribe to our news feed!" : "Teken in op ons nuusvoer!", "Subscribe to our newsletter!" : "Teken in op ons nuusbrief!", + "Group name" : "Groepnaam", "Follow us on Google+!" : "Volg ons op Google+!", "Follow us on Twitter!" : "Volg ons op Twitter!", "Check out our blog!" : "Besoek ons woernaal!" diff --git a/settings/l10n/ast.js b/settings/l10n/ast.js index 0a1efe53dec..9e946178e21 100644 --- a/settings/l10n/ast.js +++ b/settings/l10n/ast.js @@ -314,7 +314,6 @@ OC.L10N.register( "Create" : "Crear", "Admin Recovery Password" : "Recuperación de la contraseña d'alministración", "Enter the recovery password in order to recover the users files during password change" : "Introduz la contraseña de recuperación col envís de recuperar los ficheros de los usuarios mientres el cambéu de contraseña.", - "Group name" : "Nome del grupu", "Everyone" : "Toos", "Admins" : "Almins", "Default quota" : "Cuota por defeutu", @@ -372,6 +371,7 @@ OC.L10N.register( "Follow us on Google Plus!" : "¡Síguimos en Google Plus!", "Subscribe to our twitter channel!" : "¡Soscríbite a la nuesa canal de Twitter!", "Subscribe to our newsletter!" : "¡Soscríbite al nuesu boletín!", + "Group name" : "Nome del grupu", "You have now an %s account, you can add, protect, and share your data." : "Agora tienes una cuenta %s, pues amestar, protexer y compartir los tos datos.", "Verifying" : "Verificando", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "El que too tea configurao afayadizamente ye importante pa la seguranza y rindimientu de la to instancia. P'ayudate con ello, tamos faciendo delles comprobaciones automátiques. Mira la estaya Conseyos y trucos, y la documentación pa más información.", diff --git a/settings/l10n/ast.json b/settings/l10n/ast.json index bd662e49be6..de0e29c3e78 100644 --- a/settings/l10n/ast.json +++ b/settings/l10n/ast.json @@ -312,7 +312,6 @@ "Create" : "Crear", "Admin Recovery Password" : "Recuperación de la contraseña d'alministración", "Enter the recovery password in order to recover the users files during password change" : "Introduz la contraseña de recuperación col envís de recuperar los ficheros de los usuarios mientres el cambéu de contraseña.", - "Group name" : "Nome del grupu", "Everyone" : "Toos", "Admins" : "Almins", "Default quota" : "Cuota por defeutu", @@ -370,6 +369,7 @@ "Follow us on Google Plus!" : "¡Síguimos en Google Plus!", "Subscribe to our twitter channel!" : "¡Soscríbite a la nuesa canal de Twitter!", "Subscribe to our newsletter!" : "¡Soscríbite al nuesu boletín!", + "Group name" : "Nome del grupu", "You have now an %s account, you can add, protect, and share your data." : "Agora tienes una cuenta %s, pues amestar, protexer y compartir los tos datos.", "Verifying" : "Verificando", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "El que too tea configurao afayadizamente ye importante pa la seguranza y rindimientu de la to instancia. P'ayudate con ello, tamos faciendo delles comprobaciones automátiques. Mira la estaya Conseyos y trucos, y la documentación pa más información.", diff --git a/settings/l10n/bg.js b/settings/l10n/bg.js index 0359ad6be63..512eef7ab3d 100644 --- a/settings/l10n/bg.js +++ b/settings/l10n/bg.js @@ -184,7 +184,6 @@ OC.L10N.register( "Create" : "Създаване", "Admin Recovery Password" : "Възстановяване на администраторската парола", "Enter the recovery password in order to recover the users files during password change" : "Въведете паролата за възстановяване, за да възстановиш файловете на потребителите при промяна на паролата.", - "Group name" : "Име на група", "Everyone" : "Всички", "Admins" : "Администратори", "Default quota" : "Стандартна квота", @@ -239,6 +238,7 @@ OC.L10N.register( "Show First Run Wizard again" : "Покажи отново помощника за настройване", "Name" : "Име", "Subscribe to our newsletter!" : "Абонирайте се за нашата емисия!", - "Show last log in" : "Покажи последно вписване" + "Show last log in" : "Покажи последно вписване", + "Group name" : "Име на група" }, "nplurals=2; plural=(n != 1);"); diff --git a/settings/l10n/bg.json b/settings/l10n/bg.json index d90fcff92d7..f70f22a9d9e 100644 --- a/settings/l10n/bg.json +++ b/settings/l10n/bg.json @@ -182,7 +182,6 @@ "Create" : "Създаване", "Admin Recovery Password" : "Възстановяване на администраторската парола", "Enter the recovery password in order to recover the users files during password change" : "Въведете паролата за възстановяване, за да възстановиш файловете на потребителите при промяна на паролата.", - "Group name" : "Име на група", "Everyone" : "Всички", "Admins" : "Администратори", "Default quota" : "Стандартна квота", @@ -237,6 +236,7 @@ "Show First Run Wizard again" : "Покажи отново помощника за настройване", "Name" : "Име", "Subscribe to our newsletter!" : "Абонирайте се за нашата емисия!", - "Show last log in" : "Покажи последно вписване" + "Show last log in" : "Покажи последно вписване", + "Group name" : "Име на група" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/settings/l10n/ca.js b/settings/l10n/ca.js index 4ff0617fcf9..1439e92f285 100644 --- a/settings/l10n/ca.js +++ b/settings/l10n/ca.js @@ -321,7 +321,6 @@ OC.L10N.register( "Create" : "Crea", "Admin Recovery Password" : "Recuperació de contrasenya d'administrador", "Enter the recovery password in order to recover the users files during password change" : "Escriviu la contrasenya de recuperació per a poder recuperar els fitxers dels usuaris en canviar la contrasenya", - "Group name" : "Nom del grup", "Everyone" : "Tothom", "Admins" : "Administradors", "Disabled" : "Desactivat", @@ -383,6 +382,7 @@ OC.L10N.register( "Name" : "Nom", "Follow us on Google Plus!" : "Segueix-nos al Google Plus!", "Show last log in" : "Mostrar l'últim accés", + "Group name" : "Nom del grup", "You have now an %s account, you can add, protect, and share your data." : "Ara tens un compte %s, pot afegir, protegir i compartir les teves dades.", "Verifying" : "Verificant", "Follow us on Google+!" : "Segueix-nos al Google+!", diff --git a/settings/l10n/ca.json b/settings/l10n/ca.json index 87bc07bd6bd..50676c60aa0 100644 --- a/settings/l10n/ca.json +++ b/settings/l10n/ca.json @@ -319,7 +319,6 @@ "Create" : "Crea", "Admin Recovery Password" : "Recuperació de contrasenya d'administrador", "Enter the recovery password in order to recover the users files during password change" : "Escriviu la contrasenya de recuperació per a poder recuperar els fitxers dels usuaris en canviar la contrasenya", - "Group name" : "Nom del grup", "Everyone" : "Tothom", "Admins" : "Administradors", "Disabled" : "Desactivat", @@ -381,6 +380,7 @@ "Name" : "Nom", "Follow us on Google Plus!" : "Segueix-nos al Google Plus!", "Show last log in" : "Mostrar l'últim accés", + "Group name" : "Nom del grup", "You have now an %s account, you can add, protect, and share your data." : "Ara tens un compte %s, pot afegir, protegir i compartir les teves dades.", "Verifying" : "Verificant", "Follow us on Google+!" : "Segueix-nos al Google+!", diff --git a/settings/l10n/cs.js b/settings/l10n/cs.js index 9658971a021..687251622b7 100644 --- a/settings/l10n/cs.js +++ b/settings/l10n/cs.js @@ -365,7 +365,6 @@ OC.L10N.register( "Create" : "Vytvořit", "Admin Recovery Password" : "Heslo obnovy správce", "Enter the recovery password in order to recover the users files during password change" : "Zadejte heslo obnovy pro obnovení souborů uživatele při změně hesla", - "Group name" : "Jméno skupiny", "Everyone" : "Všichni", "Admins" : "Administrátoři", "Disabled" : "Zakázaní", @@ -440,6 +439,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "Odebírejte náš kanál s novinkami!", "Subscribe to our newsletter!" : "Odebírejte náš newsletter!", "Show last log in" : "Poslední přihlášení", + "Group name" : "Jméno skupiny", "You have now an %s account, you can add, protect, and share your data." : "Nyní máte %s účet, můžete přidat, ochránit a sdílet svá data.", "Verifying" : "Ověřování", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Pro optimální zabezpečení a výkon instance je důležitě, aby vše bylo správně nakonfigurováno. Abychom vám v tom pomohli, automaticky ověřujeme některá nastavení. Pro více informací nahlédněte do sekce Tipy a Triky a do dokumentace.", diff --git a/settings/l10n/cs.json b/settings/l10n/cs.json index b0cad8194cc..495a8bfbea2 100644 --- a/settings/l10n/cs.json +++ b/settings/l10n/cs.json @@ -363,7 +363,6 @@ "Create" : "Vytvořit", "Admin Recovery Password" : "Heslo obnovy správce", "Enter the recovery password in order to recover the users files during password change" : "Zadejte heslo obnovy pro obnovení souborů uživatele při změně hesla", - "Group name" : "Jméno skupiny", "Everyone" : "Všichni", "Admins" : "Administrátoři", "Disabled" : "Zakázaní", @@ -438,6 +437,7 @@ "Subscribe to our news feed!" : "Odebírejte náš kanál s novinkami!", "Subscribe to our newsletter!" : "Odebírejte náš newsletter!", "Show last log in" : "Poslední přihlášení", + "Group name" : "Jméno skupiny", "You have now an %s account, you can add, protect, and share your data." : "Nyní máte %s účet, můžete přidat, ochránit a sdílet svá data.", "Verifying" : "Ověřování", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Pro optimální zabezpečení a výkon instance je důležitě, aby vše bylo správně nakonfigurováno. Abychom vám v tom pomohli, automaticky ověřujeme některá nastavení. Pro více informací nahlédněte do sekce Tipy a Triky a do dokumentace.", diff --git a/settings/l10n/de.js b/settings/l10n/de.js index ab5a213b27f..6ffc87058fe 100644 --- a/settings/l10n/de.js +++ b/settings/l10n/de.js @@ -68,7 +68,7 @@ OC.L10N.register( "Your email address on %s was changed by an administrator." : "Deine E-Mail-Adresse auf %s wurde von einen Administrator geändert.", "Email address for %1$s changed on %2$s" : "E-Mail-Adresse für %1$s geändert auf %2$s", "Email address changed for %s" : "E-Mail-Adresse geändert für %s", - "The new email address is %s" : "Die neue E-Mail-Adressel lautet %s", + "The new email address is %s" : "Die neue E-Mail-Adresse lautet %s", "Your %s account was created" : "Dein %s-Konto wurde erstellt", "Welcome aboard" : "Willkommen an Bord", "Welcome aboard %s" : "Willkommen an Bord %s", @@ -101,7 +101,7 @@ OC.L10N.register( "Enable" : "Aktivieren", "Enabling app …" : "Aktiviere App…", "Error while enabling app" : "Beim Aktivieren der App ist ein Fehler aufgetreten", - "Error: This app can not be enabled because it makes the server unstable" : "ehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", + "Error: This app can not be enabled because it makes the server unstable" : "Fehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", "Error: Could not disable broken app" : " Fehler: Die beschädigte Anwendung konnte nicht deaktiviert werden ", "Error while disabling broken app" : "Beim Deaktivieren der defekten App ist ein Fehler aufgetreten", "No app updates available" : "Keine App-Aktualisierungen verfügbar", @@ -369,7 +369,6 @@ OC.L10N.register( "Create" : "Erstellen", "Admin Recovery Password" : "Admin-Passwort-Wiederherstellung", "Enter the recovery password in order to recover the users files during password change" : "Gib das Wiederherstellungspasswort ein, um die Benutzerdateien während der Passwortänderung wiederherzustellen", - "Group name" : "Gruppenname", "Everyone" : "Jeder", "Admins" : "Administratoren", "Disabled" : "Deaktiviert", @@ -444,6 +443,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "Abonniere unseren RSS-Feed!", "Subscribe to our newsletter!" : "Abonniere unseren Newsletter!", "Show last log in" : "Letzte Anmeldung anzeigen", + "Group name" : "Gruppenname", "You have now an %s account, you can add, protect, and share your data." : "Du hast jetzt ein %s-Konto. Du kannst Deine Daten hinzufügen, schützen und teilen.", "Verifying" : "Überprüfe", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Für die Sicherheit und Geschwindigkeit Deiner Installation ist es von großer Bedeutung, dass sie richtig konfiguriert ist. Um Dir hierbei zu helfen werden einige automatische Tests durchgeführt. Weitere Informationen findest Du im Tipps & Tricks- Abschnitt und in der Dokumentation.", diff --git a/settings/l10n/de.json b/settings/l10n/de.json index 4a6c7292c18..939caad194e 100644 --- a/settings/l10n/de.json +++ b/settings/l10n/de.json @@ -66,7 +66,7 @@ "Your email address on %s was changed by an administrator." : "Deine E-Mail-Adresse auf %s wurde von einen Administrator geändert.", "Email address for %1$s changed on %2$s" : "E-Mail-Adresse für %1$s geändert auf %2$s", "Email address changed for %s" : "E-Mail-Adresse geändert für %s", - "The new email address is %s" : "Die neue E-Mail-Adressel lautet %s", + "The new email address is %s" : "Die neue E-Mail-Adresse lautet %s", "Your %s account was created" : "Dein %s-Konto wurde erstellt", "Welcome aboard" : "Willkommen an Bord", "Welcome aboard %s" : "Willkommen an Bord %s", @@ -99,7 +99,7 @@ "Enable" : "Aktivieren", "Enabling app …" : "Aktiviere App…", "Error while enabling app" : "Beim Aktivieren der App ist ein Fehler aufgetreten", - "Error: This app can not be enabled because it makes the server unstable" : "ehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", + "Error: This app can not be enabled because it makes the server unstable" : "Fehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", "Error: Could not disable broken app" : " Fehler: Die beschädigte Anwendung konnte nicht deaktiviert werden ", "Error while disabling broken app" : "Beim Deaktivieren der defekten App ist ein Fehler aufgetreten", "No app updates available" : "Keine App-Aktualisierungen verfügbar", @@ -367,7 +367,6 @@ "Create" : "Erstellen", "Admin Recovery Password" : "Admin-Passwort-Wiederherstellung", "Enter the recovery password in order to recover the users files during password change" : "Gib das Wiederherstellungspasswort ein, um die Benutzerdateien während der Passwortänderung wiederherzustellen", - "Group name" : "Gruppenname", "Everyone" : "Jeder", "Admins" : "Administratoren", "Disabled" : "Deaktiviert", @@ -442,6 +441,7 @@ "Subscribe to our news feed!" : "Abonniere unseren RSS-Feed!", "Subscribe to our newsletter!" : "Abonniere unseren Newsletter!", "Show last log in" : "Letzte Anmeldung anzeigen", + "Group name" : "Gruppenname", "You have now an %s account, you can add, protect, and share your data." : "Du hast jetzt ein %s-Konto. Du kannst Deine Daten hinzufügen, schützen und teilen.", "Verifying" : "Überprüfe", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Für die Sicherheit und Geschwindigkeit Deiner Installation ist es von großer Bedeutung, dass sie richtig konfiguriert ist. Um Dir hierbei zu helfen werden einige automatische Tests durchgeführt. Weitere Informationen findest Du im Tipps & Tricks- Abschnitt und in der Dokumentation.", diff --git a/settings/l10n/de_DE.js b/settings/l10n/de_DE.js index aa5b35c3889..336a438402f 100644 --- a/settings/l10n/de_DE.js +++ b/settings/l10n/de_DE.js @@ -68,7 +68,7 @@ OC.L10N.register( "Your email address on %s was changed by an administrator." : "Ihre E-Mail-Adresse auf %s wurde von einem Administrator geändert.", "Email address for %1$s changed on %2$s" : "E-Mail-Adresse für %1$s geändert auf %2$s", "Email address changed for %s" : "E-Mail-Adresse geändert für %s", - "The new email address is %s" : "Die neue E-Mail-Adressel lautet %s", + "The new email address is %s" : "Die neue E-Mail-Adresse lautet %s", "Your %s account was created" : "Ihr %s-Konto wurde erstellt", "Welcome aboard" : "Willkommen an Bord", "Welcome aboard %s" : "Willkommen an Bord %s", @@ -101,7 +101,7 @@ OC.L10N.register( "Enable" : "Aktivieren", "Enabling app …" : "Aktiviere App…", "Error while enabling app" : "Beim Aktivieren der App ist ein Fehler aufgetreten", - "Error: This app can not be enabled because it makes the server unstable" : "ehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", + "Error: This app can not be enabled because it makes the server unstable" : "Fehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", "Error: Could not disable broken app" : " Fehler: Die beschädigte Anwendung konnte nicht deaktiviert werden ", "Error while disabling broken app" : "Beim Deaktivieren der defekten App ist ein Fehler aufgetreten", "No app updates available" : "Keine App-Aktualisierungen verfügbar", @@ -369,7 +369,6 @@ OC.L10N.register( "Create" : "Erstellen", "Admin Recovery Password" : "Admin-Passwort-Wiederherstellung", "Enter the recovery password in order to recover the users files during password change" : "Geben Sie das Wiederherstellungspasswort ein, um die Benutzerdateien während der Passwortänderung wiederherzustellen", - "Group name" : "Gruppenname", "Everyone" : "Jeder", "Admins" : "Administratoren", "Disabled" : "Deaktiviert", @@ -444,6 +443,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "Abonnieren Sie unseren RSS-Feed!", "Subscribe to our newsletter!" : "Abonnieren Sie unseren Newsletter!", "Show last log in" : "Letzte Anmeldung anzeigen", + "Group name" : "Gruppenname", "You have now an %s account, you can add, protect, and share your data." : "Sie haben jetzt ein %s-Konto. Sie können Ihre Daten hinzufügen, schützen und teilen.", "Verifying" : "Überprüfe", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Für die Sicherheit und Geschwindigkeit Deiner Installation ist es von großer Bedeutung, dass sie richtig konfiguriert ist. Um Ihnen hierbei zu helfen werden einige automatische Tests durchgeführt. Weitere Informationen finden Sie im Tipps & Tricks- Abschnitt und in der Dokumentation.", diff --git a/settings/l10n/de_DE.json b/settings/l10n/de_DE.json index 4e062144700..b6485921b44 100644 --- a/settings/l10n/de_DE.json +++ b/settings/l10n/de_DE.json @@ -66,7 +66,7 @@ "Your email address on %s was changed by an administrator." : "Ihre E-Mail-Adresse auf %s wurde von einem Administrator geändert.", "Email address for %1$s changed on %2$s" : "E-Mail-Adresse für %1$s geändert auf %2$s", "Email address changed for %s" : "E-Mail-Adresse geändert für %s", - "The new email address is %s" : "Die neue E-Mail-Adressel lautet %s", + "The new email address is %s" : "Die neue E-Mail-Adresse lautet %s", "Your %s account was created" : "Ihr %s-Konto wurde erstellt", "Welcome aboard" : "Willkommen an Bord", "Welcome aboard %s" : "Willkommen an Bord %s", @@ -99,7 +99,7 @@ "Enable" : "Aktivieren", "Enabling app …" : "Aktiviere App…", "Error while enabling app" : "Beim Aktivieren der App ist ein Fehler aufgetreten", - "Error: This app can not be enabled because it makes the server unstable" : "ehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", + "Error: This app can not be enabled because it makes the server unstable" : "Fehler: Diese App kann nicht aktiviert werden, da sie den Server instabil macht. ", "Error: Could not disable broken app" : " Fehler: Die beschädigte Anwendung konnte nicht deaktiviert werden ", "Error while disabling broken app" : "Beim Deaktivieren der defekten App ist ein Fehler aufgetreten", "No app updates available" : "Keine App-Aktualisierungen verfügbar", @@ -367,7 +367,6 @@ "Create" : "Erstellen", "Admin Recovery Password" : "Admin-Passwort-Wiederherstellung", "Enter the recovery password in order to recover the users files during password change" : "Geben Sie das Wiederherstellungspasswort ein, um die Benutzerdateien während der Passwortänderung wiederherzustellen", - "Group name" : "Gruppenname", "Everyone" : "Jeder", "Admins" : "Administratoren", "Disabled" : "Deaktiviert", @@ -442,6 +441,7 @@ "Subscribe to our news feed!" : "Abonnieren Sie unseren RSS-Feed!", "Subscribe to our newsletter!" : "Abonnieren Sie unseren Newsletter!", "Show last log in" : "Letzte Anmeldung anzeigen", + "Group name" : "Gruppenname", "You have now an %s account, you can add, protect, and share your data." : "Sie haben jetzt ein %s-Konto. Sie können Ihre Daten hinzufügen, schützen und teilen.", "Verifying" : "Überprüfe", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Für die Sicherheit und Geschwindigkeit Deiner Installation ist es von großer Bedeutung, dass sie richtig konfiguriert ist. Um Ihnen hierbei zu helfen werden einige automatische Tests durchgeführt. Weitere Informationen finden Sie im Tipps & Tricks- Abschnitt und in der Dokumentation.", diff --git a/settings/l10n/el.js b/settings/l10n/el.js index 84da8dbb5aa..7adc8179f77 100644 --- a/settings/l10n/el.js +++ b/settings/l10n/el.js @@ -332,7 +332,6 @@ OC.L10N.register( "Create" : "Δημιουργία", "Admin Recovery Password" : "Κωδικός Επαναφοράς Διαχειριστή ", "Enter the recovery password in order to recover the users files during password change" : "Εισάγετε το συνθηματικό ανάκτησης ώστε να ανακτήσετε τα αρχεία χρηστών κατά την αλλαγή συνθηματικού", - "Group name" : "Όνομα ομάδας", "Everyone" : "Όλοι", "Admins" : "Διαχειριστές", "Disabled" : "Απενεργοποιημένο", @@ -402,6 +401,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "Εγγραφείτε στην ροή των νέων μας!", "Subscribe to our newsletter!" : "Εγγραφείτε στο ενημερωτικό δελτίο μας!", "Show last log in" : "Εμφάνιση τελευταίας εισόδου", + "Group name" : "Όνομα ομάδας", "Verifying" : "Γίνεται επαλήθευση", "Follow us on Google+!" : "Ακολουθήστε μας στο Google+!", "Follow us on Twitter!" : "Ακολουθήστε μας στο Twitter!", diff --git a/settings/l10n/el.json b/settings/l10n/el.json index 6261c65896f..42982e23c58 100644 --- a/settings/l10n/el.json +++ b/settings/l10n/el.json @@ -330,7 +330,6 @@ "Create" : "Δημιουργία", "Admin Recovery Password" : "Κωδικός Επαναφοράς Διαχειριστή ", "Enter the recovery password in order to recover the users files during password change" : "Εισάγετε το συνθηματικό ανάκτησης ώστε να ανακτήσετε τα αρχεία χρηστών κατά την αλλαγή συνθηματικού", - "Group name" : "Όνομα ομάδας", "Everyone" : "Όλοι", "Admins" : "Διαχειριστές", "Disabled" : "Απενεργοποιημένο", @@ -400,6 +399,7 @@ "Subscribe to our news feed!" : "Εγγραφείτε στην ροή των νέων μας!", "Subscribe to our newsletter!" : "Εγγραφείτε στο ενημερωτικό δελτίο μας!", "Show last log in" : "Εμφάνιση τελευταίας εισόδου", + "Group name" : "Όνομα ομάδας", "Verifying" : "Γίνεται επαλήθευση", "Follow us on Google+!" : "Ακολουθήστε μας στο Google+!", "Follow us on Twitter!" : "Ακολουθήστε μας στο Twitter!", diff --git a/settings/l10n/en_GB.js b/settings/l10n/en_GB.js index bdb155285be..303be93bbcd 100644 --- a/settings/l10n/en_GB.js +++ b/settings/l10n/en_GB.js @@ -369,7 +369,6 @@ OC.L10N.register( "Create" : "Create", "Admin Recovery Password" : "Admin Recovery Password", "Enter the recovery password in order to recover the users files during password change" : "Enter the recovery password in order to recover the user's files during password change", - "Group name" : "Group name", "Everyone" : "Everyone", "Admins" : "Admins", "Disabled" : "Disabled", @@ -444,6 +443,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "Subscribe to our news feed!", "Subscribe to our newsletter!" : "Subscribe to our newsletter!", "Show last log in" : "Show last log in", + "Group name" : "Group name", "You have now an %s account, you can add, protect, and share your data." : "You have now an %s account, you can add, protect, and share your data.", "Verifying" : "Verifying", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information.", diff --git a/settings/l10n/en_GB.json b/settings/l10n/en_GB.json index cdd1e51aaf4..3da6efbceac 100644 --- a/settings/l10n/en_GB.json +++ b/settings/l10n/en_GB.json @@ -367,7 +367,6 @@ "Create" : "Create", "Admin Recovery Password" : "Admin Recovery Password", "Enter the recovery password in order to recover the users files during password change" : "Enter the recovery password in order to recover the user's files during password change", - "Group name" : "Group name", "Everyone" : "Everyone", "Admins" : "Admins", "Disabled" : "Disabled", @@ -442,6 +441,7 @@ "Subscribe to our news feed!" : "Subscribe to our news feed!", "Subscribe to our newsletter!" : "Subscribe to our newsletter!", "Show last log in" : "Show last log in", + "Group name" : "Group name", "You have now an %s account, you can add, protect, and share your data." : "You have now an %s account, you can add, protect, and share your data.", "Verifying" : "Verifying", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information.", diff --git a/settings/l10n/es.js b/settings/l10n/es.js index 198f420071b..187327d03a1 100644 --- a/settings/l10n/es.js +++ b/settings/l10n/es.js @@ -367,7 +367,6 @@ OC.L10N.register( "Create" : "Crear", "Admin Recovery Password" : "Recuperación de la contraseña de administración", "Enter the recovery password in order to recover the users files during password change" : "Introduzca la contraseña de recuperación a fin de recuperar los archivos de los usuarios durante el cambio de contraseña.", - "Group name" : "Nombre del grupo", "Everyone" : "Todos", "Admins" : "Administradores", "Disabled" : "Deshabilitado", @@ -442,6 +441,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "¡Suscríbete a nuestro feed de noticias!", "Subscribe to our newsletter!" : "¡Suscríbete a nuestro boletín!", "Show last log in" : "Mostrar el último inicio de sesión", + "Group name" : "Nombre del grupo", "You have now an %s account, you can add, protect, and share your data." : "Ahora tiene una cuenta %s, puede agregar, proteger, y compartir su información.", "Verifying" : "Verificando", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Es importante para la seguridad y buen funcionamiento de tu instancia que todo esté configurado correctamente. Para ayudarte con esto, vamos a hacer algunas comprobaciones automáticas. Por favor, comprueba la sección 'Sugerencias y trucos' y la documentación para más información.", diff --git a/settings/l10n/es.json b/settings/l10n/es.json index 5822e8053c6..e79c7cfca38 100644 --- a/settings/l10n/es.json +++ b/settings/l10n/es.json @@ -365,7 +365,6 @@ "Create" : "Crear", "Admin Recovery Password" : "Recuperación de la contraseña de administración", "Enter the recovery password in order to recover the users files during password change" : "Introduzca la contraseña de recuperación a fin de recuperar los archivos de los usuarios durante el cambio de contraseña.", - "Group name" : "Nombre del grupo", "Everyone" : "Todos", "Admins" : "Administradores", "Disabled" : "Deshabilitado", @@ -440,6 +439,7 @@ "Subscribe to our news feed!" : "¡Suscríbete a nuestro feed de noticias!", "Subscribe to our newsletter!" : "¡Suscríbete a nuestro boletín!", "Show last log in" : "Mostrar el último inicio de sesión", + "Group name" : "Nombre del grupo", "You have now an %s account, you can add, protect, and share your data." : "Ahora tiene una cuenta %s, puede agregar, proteger, y compartir su información.", "Verifying" : "Verificando", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Es importante para la seguridad y buen funcionamiento de tu instancia que todo esté configurado correctamente. Para ayudarte con esto, vamos a hacer algunas comprobaciones automáticas. Por favor, comprueba la sección 'Sugerencias y trucos' y la documentación para más información.", diff --git a/settings/l10n/es_AR.js b/settings/l10n/es_AR.js index 09548e9f313..ae5a31fea7d 100644 --- a/settings/l10n/es_AR.js +++ b/settings/l10n/es_AR.js @@ -342,7 +342,6 @@ OC.L10N.register( "Create" : "Crear", "Admin Recovery Password" : "Recuperación de la contraseña del administración", "Enter the recovery password in order to recover the users files during password change" : "Ingrese la contraseña de recuperación con la finalidad de recuperar los archivos de los usuarios al cambiar la contraseña.", - "Group name" : "Nombre del grupo", "Everyone" : "Todos", "Admins" : "Administradores", "Disabled" : "Deshabilitado", @@ -417,6 +416,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "¡Suscribase a nuestra fuente de noticias!", "Subscribe to our newsletter!" : "¡Suscribase a nuestro boletín!", "Show last log in" : "Mostrar el último inicio de sesión", + "Group name" : "Nombre del grupo", "You have now an %s account, you can add, protect, and share your data." : "Usted tiene ahora una cuenta %s, puede agregar, proteger y compartir sus datos. ", "Verifying" : "Verificando", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Es importante para la seguridad y desempeño de su instancia que todo esté configurado correctamente. Para ayudarlo con esto, estamos haciendo algunas verficaciones automáticas. Favor de consultar la sección de Consejos & Trucos de la documentación para más información. ", diff --git a/settings/l10n/es_AR.json b/settings/l10n/es_AR.json index bceb15e5c0f..534f89c71b2 100644 --- a/settings/l10n/es_AR.json +++ b/settings/l10n/es_AR.json @@ -340,7 +340,6 @@ "Create" : "Crear", "Admin Recovery Password" : "Recuperación de la contraseña del administración", "Enter the recovery password in order to recover the users files during password change" : "Ingrese la contraseña de recuperación con la finalidad de recuperar los archivos de los usuarios al cambiar la contraseña.", - "Group name" : "Nombre del grupo", "Everyone" : "Todos", "Admins" : "Administradores", "Disabled" : "Deshabilitado", @@ -415,6 +414,7 @@ "Subscribe to our news feed!" : "¡Suscribase a nuestra fuente de noticias!", "Subscribe to our newsletter!" : "¡Suscribase a nuestro boletín!", "Show last log in" : "Mostrar el último inicio de sesión", + "Group name" : "Nombre del grupo", "You have now an %s account, you can add, protect, and share your data." : "Usted tiene ahora una cuenta %s, puede agregar, proteger y compartir sus datos. ", "Verifying" : "Verificando", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Es importante para la seguridad y desempeño de su instancia que todo esté configurado correctamente. Para ayudarlo con esto, estamos haciendo algunas verficaciones automáticas. Favor de consultar la sección de Consejos & Trucos de la documentación para más información. ", diff --git a/settings/l10n/es_CO.js b/settings/l10n/es_CO.js new file mode 100644 index 00000000000..64396e1cfc8 --- /dev/null +++ b/settings/l10n/es_CO.js @@ -0,0 +1,457 @@ +OC.L10N.register( + "settings", + { + "{actor} changed your password" : "{actor} ha cambiado tu contraseña", + "You changed your password" : "Cambiaste tu contraseña", + "Your password was reset by an administrator" : "Tu contraseña ha sido restablecida por un adminsitrador", + "{actor} changed your email address" : "{actor} ha cambiado tu dirección de correo electrónico", + "You changed your email address" : "Cambiaste tu dirección de correo electrónico", + "Your email address was changed by an administrator" : "Tu dirección de correo electrónico ha sido cambiada por un administrador", + "Security" : "Seguridad", + "You successfully logged in using two-factor authentication (%1$s)" : "Has iniciado sesión exitosamente usando autenticación de dos-factores (%1$s)", + "A login attempt using two-factor authentication failed (%1$s)" : "Un intento de autenticación usando autenticación de dos-factores ha fallado (%1$s)", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "Tu <strong>contraseña</strong> o <strong>correo electrónico</strong> ha sido modificado", + "Your apps" : "Tus aplicaciones", + "Updates" : "Actualizaciones", + "Enabled apps" : "Aplicaciones habilitadas", + "Disabled apps" : "Aplicaciones deshabilitadas", + "App bundles" : "Paquetes de aplicación", + "Wrong password" : "Contraseña incorrecta", + "Saved" : "Guardado", + "No user supplied" : "No se proporcionó usuario alguno", + "Unable to change password" : "No fue posible cambiar la contraseña", + "Authentication error" : "Error de autenticación", + "Please provide an admin recovery password; otherwise, all user data will be lost." : "Por favor proporciona una contraseña de recuperación de administrador; de lo contrario toda la información del usuario se perderá. ", + "Wrong admin recovery password. Please check the password and try again." : "Contraseña de recuperación de administrador incorrecta. Por favor verificala e inténtalo de nuevo.", + "Backend doesn't support password change, but the user's encryption key was updated." : "El backend no soporta el cambio de contraseñas, pero la llave de encripción del usuario fue actualizada.", + "installing and updating apps via the app store or Federated Cloud Sharing" : "Instalando y actualizando aplicaciones por la tienda de aplicaciones o Compartido la Nube Federada", + "Federated Cloud Sharing" : "Compartir en la Nube Federada", + "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL está usando una versión anticuada (%s) de %s. Por favor actualiza tu sistema operativo o funciones tales como %s no funcionarán de forma confiable.", + "A problem occurred, please check your log files (Error: %s)" : "Se presentó un problema, por favor verifica tus archivos de bitácoras (Error: %s)", + "Migration Completed" : "Migración completada", + "Group already exists." : "El grupo ya existe.", + "Unable to add group." : "No fue posible agregar el grupo.", + "Unable to delete group." : "No fue posible borrar el grupo.", + "Invalid SMTP password." : "Constraseña SMTP inválida. ", + "Email setting test" : "Prueba de ajustes de correo", + "Well done, %s!" : "¡Bien hecho, %s!", + "If you received this email, the email configuration seems to be correct." : "Si has recibido este correo electrónico, la configuración del correo electrónico parece estar correcta. ", + "Email could not be sent. Check your mail server log" : "No fue posible enviar el correo electrónico. Por favor verfica la bitácora de tu servidor de correo", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Se presentó un problema al enviar el correo electrónico. Por favor revisa tus configuraciones (Error: %s)", + "You need to set your user email before being able to send test emails." : "Requieres establecer tu correo electrónico antes de poder enviar correos electrónicos de prueba. ", + "Invalid mail address" : "Dirección de correo inválida", + "No valid group selected" : "No se ha seleccionado un grupo válido", + "A user with that name already exists." : "Un usuario con ese nombre ya existe. ", + "To send a password link to the user an email address is required." : "Para enviar la liga a una contraseña al usuario, se requiere de una dirección de correo electrónico.", + "Unable to create user." : "No fue posible crear el usuario. ", + "Unable to delete user." : "No fue posible eliminar el usuario.", + "Error while enabling user." : "Se presentó un error al habilitar el usuario. ", + "Error while disabling user." : "Se presentó un error al deshabilitar el usuario.", + "In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "Para poder verificar tu cuenta de Twitter, publica el siguiente tweet en Twitter (por favor asegúrarte de publicar sin ninguna línea en blanco):", + "In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Para poder verificar tu sitio Web, agrega el siguiente contendio a tu web-root en '.well-known/CloudIdVerificationCode.txt' (por favor asegurate de que el texto completo este en una sóla línea):", + "Settings saved" : "Se han guardado las configuraciones ", + "Unable to change full name" : "No fue posible cambiar el nombre completo", + "Unable to change email address" : "No fue posible cambiar la dirección de correo electrónico", + "Your full name has been changed." : "Tu nombre completo ha sido cambiado.", + "Forbidden" : "Prohibido", + "Invalid user" : "Usuario inválido", + "Unable to change mail address" : "No fue posible cambiar la dirección de correo", + "Email saved" : "Correo electrónico guardado", + "%1$s changed your password on %2$s." : "%1$s cambió tu contraseña el %2$s.", + "Your password on %s was changed." : "Tu contraseña de %s fue cambiada. ", + "Your password on %s was reset by an administrator." : "Tu contraseña de %s fue restablecida por un administrador.", + "Password for %1$s changed on %2$s" : "La contraseña para %1$s fue cambiada el %2$s", + "Password changed for %s" : "La contraseña fue cambiada para %s", + "If you did not request this, please contact an administrator." : "Si no lo solicitaste, por favor contacta a un administrador. ", + "%1$s changed your email address on %2$s." : "%1$s cambió tu dirección de correo electrónico el %2$s.", + "Your email address on %s was changed." : "Tu dirección de correo electrónico en %s fue cambiada. ", + "Your email address on %s was changed by an administrator." : "Tu dirección de correo electrónico en %s fue cambiada por un adminsitrador. ", + "Email address for %1$s changed on %2$s" : "La dirección de correo electrónico para %1$s fue cambiada el %2$s", + "Email address changed for %s" : "La dirección de correo electrónico fue cambiada para %s", + "The new email address is %s" : "La nueva dirección de correo electrónico es %s", + "Your %s account was created" : "Tu cuenta %s ha sido creada", + "Welcome aboard" : "Bienvenido a bordo", + "Welcome aboard %s" : "Bienvenido a bordo %s", + "You now have an %s account, you can add, protect, and share your data." : "Ahora tienes una cuenta %s, puedes agregar, proteger y compartir tus datos.", + "Your username is: %s" : "Tu Usuario es: %s", + "Set your password" : "Establece tu contraseña", + "Go to %s" : "Ir a %s", + "Install Client" : "Instalar el cliente", + "Password confirmation is required" : "Se requiere la confirmación de la contraseña", + "Couldn't remove app." : "No fue posible eliminar la aplicación. ", + "Couldn't update app." : "No fue posible actualizar la aplicación.", + "Are you really sure you want add {domain} as trusted domain?" : "¿Realmente estás seguro que quieres agregar a {domain} como un dominio de confianza?", + "Add trusted domain" : "Agregar un dominio de confianza", + "Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración", + "Migration started …" : "La migración ha comenzado ...", + "Not saved" : "No guardado", + "Sending…" : "Enviando...", + "Email sent" : "Correo electrónico enviado", + "Official" : "Oficial", + "All" : "Todos", + "Update to %s" : "Actualizar a %s", + "No apps found for your version" : "No se encontraron aplicaciones para tu versión", + "The app will be downloaded from the app store" : "La aplicación será descargada de la tienda de aplicaciones <app store>", + "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Las aplicaciones oficiales son desarrolladas por y dentro de la comunidad. Ofrecen una funcionalidad centralizada y se encuentran listas para ser usadas en producción. ", + "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Las aplicaciones aprobadas son desarrolladas por desarrolladores de confianza y han pasado una verificación de seguridad. Se les brinda mantenimiento activamente en un repositorio de código abierto y los mantenedores las consideran estables para un uso casual a normal. ", + "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Esta aplicación no cuenta con una verificación contra temas de seguridad y es nueva o se sabe que es instable. Instalala bajo tu propio riesgo. ", + "Disabling app …" : "Deshabilitando la aplicación ...", + "Error while disabling app" : "Se presentó un error mientras se deshabilitaba la aplicación", + "Disable" : "Deshabilitar", + "Enable" : "Habilitar", + "Enabling app …" : "Habilitando aplicación ...", + "Error while enabling app" : "Se presentó un error al habilitar la aplicación", + "Error: This app can not be enabled because it makes the server unstable" : "Error: Esta aplicación no puede ser habilitada porque genera inestabilidad en el servidor", + "Error: Could not disable broken app" : "Error: No fue posible deshabilitar la aplicación rota", + "Error while disabling broken app" : "Se presentó un error al deshabilitar la aplicación rota", + "No app updates available" : "No hay actualizaciones disponibles de la aplicación ", + "Updating...." : "Actualizando....", + "Error while updating app" : "Se presentó un error al actualizar la aplicación", + "Updated" : "Actualizado", + "Removing …" : "Eliminando ...", + "Error while removing app" : "Se presentó un error al eliminar la aplicación", + "Remove" : "Eliminar", + "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ", + "App update" : "Actualización de la aplicación", + "Approved" : "Aprobado", + "Experimental" : "Experimental", + "No apps found for {query}" : "No se encontraron aplicaciones para {query}", + "Enable all" : "Habilitar todo", + "Allow filesystem access" : "Permitir acceso al sistema de archivos", + "Disconnect" : "Desconectar", + "Revoke" : "Revocar", + "Internet Explorer" : "Internet Explorer", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google Chrome", + "Safari" : "Safari", + "Google Chrome for Android" : "Google Chrome para Android", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", + "iOS Client" : "Cliente iOS", + "Android Client" : "Cliente Android", + "Sync client - {os}" : "Sync client - {os}", + "This session" : "Esta sesión", + "Copy" : "Copiar", + "Copied!" : "¡Copiado!", + "Not supported!" : "¡No soportado!", + "Press ⌘-C to copy." : "Presiona ⌘-C para copiar. ", + "Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.", + "Error while loading browser sessions and device tokens" : "Se presentó un error al cargar las sesiones de tu navegador y las fichas de los dispositivos.", + "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo", + "Error while deleting the token" : "Se presentó un error al borrar la ficha", + "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Se presentó un error. Por favor carga un certificado PEM con codificación ASCII", + "Valid until {date}" : "Válido hasta {date}", + "Delete" : "Borrar", + "Local" : "Local", + "Private" : "Privado", + "Only visible to local users" : "Visible sólo para usuarios locales", + "Only visible to you" : "Sólo visible para ti", + "Contacts" : "Contactos", + "Visible to local users and to trusted servers" : "Visible para usuarios locales y para servidores de confianza", + "Public" : "Público", + "Will be synced to a global and public address book" : "Será sincronizado a una libreta de direcciones global y pública", + "Verify" : "Verificar", + "Verifying …" : "Verificando ...", + "An error occured while changing your language. Please reload the page and try again." : "Se presentó un error al cambiar tu idioma. Por favor vuelve a cargar la página y vuelva a intentarlo. ", + "Select a profile picture" : "Selecciona una imagen de perfil", + "Very weak password" : "Contraseña muy débil", + "Weak password" : "Contraseña débil", + "So-so password" : "Contraseña aceptable", + "Good password" : "Buena contraseña", + "Strong password" : "Contraseña fuerte", + "Groups" : "Grupos", + "Unable to delete {objName}" : "No fue posible borrar {objName}", + "Error creating group: {message}" : "Se presentó un error al crear el grupo: {message}", + "A valid group name must be provided" : "Debes proporcionar un nombre de grupo válido", + "deleted {groupName}" : "borrado {groupName}", + "undo" : "deshacer", + "{size} used" : "{size} usado", + "never" : "nunca", + "deleted {userName}" : "borrado {userName}", + "No user found for <strong>{pattern}</strong>" : "No se encontraron usuarios para <strong>{pattern}</strong>", + "Unable to add user to group {group}" : "No fue posible agregar el usuario al grupo {group}", + "Unable to remove user from group {group}" : "No fue posible eliminar el usuario del grupo {group}", + "Add group" : "Agregar grupo", + "Invalid quota value \"{val}\"" : "Valor de cuota inválido \"{val}\"", + "no group" : "sin grupos", + "Password successfully changed" : "La contraseña se cambió exitosamente", + "Changing the password will result in data loss, because data recovery is not available for this user" : "El cambiar la contraseña puede generar pérdida de datos, porque la recuperación de datos no está disponible para este usuario", + "Could not change the users email" : "No fue posible cambiar el correo electrónico del usuario. ", + "Error while changing status of {user}" : "Se presentó un error al cambiar el estatus del usuario {user}", + "A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido", + "Error creating user: {message}" : "Se presentó un error al crear el usuario: {message}", + "A valid password must be provided" : "Se debe proporcionar una contraseña válida", + "A valid email must be provided" : "Se debe proporcionar un correo electrónico válido", + "Developer documentation" : "Documentación del desarrollador", + "View in store" : "Ver en la tienda", + "Limit to groups" : "Limitar a grupos", + "by %s" : "por %s", + "%s-licensed" : "%s-licensed", + "Documentation:" : "Documentación:", + "User documentation" : "Documentación del usuario", + "Admin documentation" : "Documentación del administrador", + "Visit website" : "Visita el sitio web", + "Report a bug" : "Reporta un detalle", + "Show description …" : "Mostrar descripción ...", + "Hide description …" : "Ocultar descripción ...", + "This app has an update available." : "Esta aplicación tiene una actualización disponible.", + "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.", + "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.", + "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:", + "Enable only for specific groups" : "Habilitar sólo para grupos específicos", + "SSL Root Certificates" : "Certificado SSL Raíz", + "Common Name" : "Nombre común", + "Valid until" : "Válido hasta", + "Issued By" : "Levantado Por", + "Valid until %s" : "Válido hasta %s", + "Import root certificate" : "Importar certificado raíz", + "Administrator documentation" : "Documentación del adminsitrador", + "Online documentation" : "Documentación en línea", + "Forum" : "Foro", + "Getting help" : "Obtener ayuda", + "Commercial support" : "Soporte comercial", + "None" : "Ninguno", + "Login" : "Iniciar sesión", + "Plain" : "Plano", + "NT LAN Manager" : "Administrador de LAN NT", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", + "Email server" : "Servidor de correo electrónico", + "Open documentation" : "Abrir documentación", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Es importante preparar este servidor para poder enviar correos electrónicos, como para restablecer contraseñas y notificaciones. ", + "Send mode" : "Modo de envío", + "Encryption" : "Encripción", + "From address" : "De la dirección", + "mail" : "correo", + "Authentication method" : "Método de autenticación", + "Authentication required" : "Autenticación requerida", + "Server address" : "Dirección del servidor", + "Port" : "Puerto", + "Credentials" : "Credenciales", + "SMTP Username" : "Usuario SMTP", + "SMTP Password" : "Contraseña SMTP", + "Store credentials" : "Almacenar credenciales", + "Test email settings" : "Probar las configuraciones de correo electrónico", + "Send email" : "Enviar correo electrónico", + "Server-side encryption" : "Encripción del lado del servidor", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ", + "Enable server-side encryption" : "Habilitar encripción del lado del servidor", + "Please read carefully before activating server-side encryption: " : "Por favor lee detenidamente antes de activar la encripción del lado de servidor:", + "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Una vez que la encripción se encuentre habilitada, todos lo archivos cargados al servidor desde ese momento en tiempo, se encriptarán en el servidor. Sólo será posible deshabilitar la encripción en una fecha posterior si el modulo de encripción activo soporta esa funcionalidad y si todas las preciondiciones están satisfechas (ejem. establecer una llave de recuperación).", + "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "La encripción por sí sola no garantiza la seguridad del sistema. Por favor consulta la documentación para mayores informes de cómo funciona la aplicación de encripción y de los casos de uso soportados. ", + "Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ", + "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ", + "This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?", + "Enable encryption" : "Habilitar encripción", + "No encryption module loaded, please enable an encryption module in the app menu." : "No se ha cargado un módulo de encripción, por favor habilita un módulo de encripción en el menú de la aplicación. ", + "Select default encryption module:" : "Selecciona el modulo de encripción predeterminado:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Necesitas migrar tus llaves de encripción de la encripción anterior (ownCloud <= 8.0) a la actual. Por favor habilita el \"Módulo de encripción predeterminado\" y ejecuta el comando 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Necesitas migar tus llaves de encripción de la encripción anterior (ownCloud <=8.0) a la actual. ", + "Start migration" : "Iniciar migración", + "Security & setup warnings" : "Advertencias de seguridad y configuración", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", + "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación de instalación ↗</a> en relación a las notas de configuración de PHP y la configuración de PHP en tu servidorr, especialmente cuando se usa php-fpm.", + "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", + "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", + "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", + "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "El bloqueo de archivos transaccional se encuentra deshabilitado, esto puede generar temas bajo ciertas condiciones. Habilita 'filelocking.enabled' en el archivo config.php para evitar problemas. Por favor consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentatcón ↗</a> para más información.", + "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", + "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", + "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", + "If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", + "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Por favor vuelve a verificar las <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">guías de instalación↗</a>, y comprueba que no haya errores o advertenicas en la <a href=\"%s\">bitácora</a>.", + "All checks passed." : "Pasaron todas las verificaciones. ", + "Background jobs" : "Trabajos en segundo plano", + "Last job ran %s." : "El último trabajo corrió %s.", + "Last job execution ran %s. Something seems wrong." : "La última ejecución del trabajo corrió %s. Algo parece estar mal. ", + "Background job didn’t run yet!" : "¡El trabajo de segundo plano aún no ha corrido!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "Para un desempeño ideal, es importante configurar los trabajos de fondo correctamente. Para instancias más grandes 'Cron' es la configuración recomendada. Por favor consulta la documentación para más información. ", + "Execute one task with each page loaded" : "Ejecutar una tarea con cada página cargada", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over HTTP." : "cron.php está registrado en un servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP. ", + "Use system cron service to call the cron.php file every 15 minutes." : "Usar el servicio cron del sistema para llamar al archivo cron.php cada 15 minutos. ", + "The cron.php needs to be executed by the system user \"%s\"." : "El cron.php necesita ser ejecutado por el usuario de sistema \"%s\".", + "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", + "Version" : "Versión", + "Sharing" : "Compartiendo", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ", + "Allow apps to use the Share API" : "Permitir que las aplicaciones usen el API para Compartir", + "Allow users to share via link" : "Permitir a los usuarios compartir mediante ligas", + "Allow public uploads" : "Permitir cargas públicas", + "Always ask for a password" : "Siempre pedir una contraseña", + "Enforce password protection" : "Forzar protección de contraseñas", + "Set default expiration date" : "Establecer la fecha de expiración predeterminada", + "Expire after " : "Expirar después de", + "days" : "días", + "Enforce expiration date" : "Forzar fecha de expiración", + "Allow resharing" : "Permitir volver a compartir", + "Allow sharing with groups" : "Permitir compartir con grupos", + "Restrict users to only share with users in their groups" : "Limitar a los usuarios a sólo compartir con otros usuarios en sus grupos", + "Exclude groups from sharing" : "Evitar que los grupos compartan", + "These groups will still be able to receive shares, but not to initiate them." : "Estos grupos aún podrán recibir elementos compartidos, pero no los podrán iniciar.", + "Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "Permitir el autocompletado de usuarios en la ventana de diálogo de compartir. Si esto está deshabilitado, se deberá ingresar el correo electrónico o nombre completo. ", + "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Mostrar el texto de exención de responsabilidad legal en la página de carga de ligas públicas. (Sólo se muestra cuando la lista de archivos está oculta.)", + "This text will be shown on the public link upload page when the file list is hidden." : "Este texto se mostrará en la página de carga de la liga pública cuando la lista de archivos esté oculta. ", + "Tips & tricks" : "Consejos & trucos", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", + "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "Para migrar a otra base de datos, usa la herramienta de la línea de comando 'occ db:convert-type', o consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación ↗</a>.", + "How to do backups" : "Cómo hacer respaldos", + "Advanced monitoring" : "Monitoreo avanzado", + "Performance tuning" : "Optimización de rendimiento", + "Improving the config.php" : "Mejorando la config.php", + "Theming" : "Tematizar", + "Check the security of your Nextcloud over our security scan" : "Verifica la seguridad de tu Nextcloud con nuestro escaneo de seguridad", + "Hardening and security guidance" : "Consejos de reforzamiento y seguridad", + "Personal" : "Personal", + "Administration" : "Administración", + "You are using <strong>%s</strong> of <strong>%s</strong>" : "Estás usando <strong>%s</strong> de <strong>%s</strong>", + "You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Estás usando <strong>%s</strong> de <strong>%s</strong> (<strong> %s %%</strong>)", + "Profile picture" : "Foto de perfil", + "Upload new" : "Cargar nuevo", + "Select from Files" : "Seleccionar desde Archivos", + "Remove image" : "Eliminar imagen", + "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", + "Picture provided by original account" : "Imagen proporcionada por la cuenta original ", + "Cancel" : "Cancelar", + "Choose as profile picture" : "Seleccionar como foto del perfil", + "Full name" : "Nombre completo", + "No display name set" : "No se ha establecido el nombre a desplegar", + "Email" : "Correo electrónico", + "Your email address" : "Tu dirección de correo electrónico", + "No email address set" : "No se ha establecido la dirección de correo electrónico", + "For password reset and notifications" : "Para restablecer contraseña y notificaciones", + "Phone number" : "Número de teléfono", + "Your phone number" : "Su número telefónico", + "Address" : "Dirección", + "Your postal address" : "Tu dirección postal", + "Website" : "Sitio web", + "It can take up to 24 hours before the account is displayed as verified." : "Puede tomar hasta 24 horas antes de que la cuenta se muestre como verificada. ", + "Link https://…" : "Liga https:// ...", + "Twitter" : "Twitter", + "Twitter handle @…" : "Cuenta de twitter @...", + "You are member of the following groups:" : "Eres miembro de los siguientes grupos:", + "Language" : "Idioma", + "Help translate" : "Ayuda a traducir", + "Password" : "Contraseña", + "Current password" : "Contraseña actual", + "New password" : "Nueva contraseña", + "Change password" : "Cambiar contraseña", + "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ", + "Device" : "Dispositivo", + "Last activity" : "Última actividad", + "App name" : "Nombre de la aplicación", + "Create new app password" : "Crear una nueva contraseña de aplicación", + "Use the credentials below to configure your app or device." : "Usa las siguientes credenciales para configurar tu aplicación o dispositivo. ", + "For security reasons this password will only be shown once." : "Por razones de seguridad esta contraseña sólo se mostrará una vez. ", + "Username" : "Usuario", + "Done" : "Terminado", + "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.", + "Follow us on Google+" : "Síguenos en Google+", + "Like our Facebook page" : "Da un Like a nuestra página de Facebook", + "Follow us on Twitter" : "Síguenos en Twitter", + "Check out our blog" : "Visita nuestro blog", + "Subscribe to our newsletter" : "Suscribete a nuestro boletín", + "Settings" : "Configuraciones ", + "Show storage location" : "Mostrar la ubicación del almacenamiento", + "Show user backend" : "Mostrar backend del usuario", + "Show last login" : "Mostrar último inicio de sesión", + "Show email address" : "Mostrar dirección de correo electrónico", + "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Cuando la contraseña de un usuario nuevo se deja en blanco, se envía un correo electrónico de activación con una liga para establecerla. ", + "E-Mail" : "Correo electrónico", + "Create" : "Crear", + "Admin Recovery Password" : "Recuperación de la contraseña del administrador", + "Enter the recovery password in order to recover the users files during password change" : "Ingresa la contraseña de recuperación con la finalidad de recuperar los archivos de los usuarios al cambiar la contraseña.", + "Everyone" : "Todos", + "Admins" : "Administradores", + "Disabled" : "Deshabilitado", + "Default quota" : "Cuota predeterminada", + "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Por favor indica la cuota de almacenamiento (ejem: \"512 MB\" ó \"12 GB\")", + "Unlimited" : "Ilimitado", + "Other" : "Otro", + "Group admin for" : "Administrador del grupo para", + "Quota" : "Cuota", + "Storage location" : "Úbicación del almacenamiento", + "User backend" : "Backend del usuario", + "Last login" : "Último inicio de sesión", + "change full name" : "cambiar el nombre completo", + "set new password" : "establecer nueva contraseña", + "change email address" : "cambiar la dirección de correo electrónico", + "Default" : "Predeterminado", + "Enabled" : "Habilitado", + "Not enabled" : "No habilitado", + "Please provide an admin recovery password, otherwise all user data will be lost" : "Por favor proporciona una contraseña de recuperación de administrador, de lo contrario se perderán todos los datos de usuario", + "Backend doesn't support password change, but the user's encryption key was successfully updated." : "El backend no soporta el cambio de contraseñas, pero la llave de encripción del usuario fue actualizada exitosamente.", + "test email settings" : "probar las configuraciones del correo electrónico", + "Invalid request" : "Solicitud inválida", + "Admins can't remove themself from the admin group" : "Los administradores no se pueden eliminar a ellos mismos del grupo de administrador", + "Unable to add user to group %s" : "No fue posible agregar el usuario al grupo %s", + "Unable to remove user from group %s" : "No fue posible eliminar el usuario del grupo %s", + "Sending..." : "Enviando...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Usted tiene %n actualización de la aplicación pendiente","Tienes %n actualizaciones de la aplicación pendientes"], + "Uninstalling ...." : "Desinstalando ...", + "Error while uninstalling app" : "Se presentó un error al desinstalar la aplicación", + "Uninstall" : "Desinstalar", + "__language_name__" : "Español (México)", + "Personal info" : "Información personal", + "Sessions" : "Sesiones", + "App passwords" : "Contraseñas de aplicación", + "Sync clients" : "Sincronizar clientes", + "This is used for sending out notifications." : "Esto se usa para enviar notificaciones", + "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Al parecer php no está correctamente configurado para consultar las variables de ambiente. La prueba con getenv(\"PATH\") solo está regresando una respuesta vacía. ", + "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Favor de consultar la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación de instalación ↗</a> para las notas de configuración de php en tu servidor, específicamente al usar php-fpm. ", + "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques de comentarios internos. Esto hará que varias aplicaciones principales sean inaccesibles. ", + "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s mas reciente. ", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Te recomendamos ámpliamente que habilites este módulo para obtener los mejores resultados en la detección de tipos MIME.", + "This means that there might be problems with certain characters in file names." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de los archivos.", + "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Te sugerimos ámpliamente instalar en tu sistema los paquetes requeridos para soportar alguno de los sigueintes locales: %s.", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si tu instalacion no fue hecha en la raíz del dominio y usa el cron del sistema, pueden presentarse temas con la generación de URLs. Para evitar estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere : \"%s\")", + "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "No fue posible ejecutar la tarea de cron con CLI. Se presentaron los siguientes errores técnicos:", + "Cron" : "Cron", + "Last cron job execution: %s." : "Última ejecución de tareas de cron: %s.", + "Last cron job execution: %s. Something seems wrong." : "Última ejecución de tareas de cron: %s. Algo parece estar mal. ", + "Cron was not executed yet!" : "¡Aún no han sido ejecutado el cron!", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registrado en el servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP.", + "Use system's cron service to call the cron.php file every 15 minutes." : "Usar el servicio de cron del sistema para llamar el archivo cron.php cada 15 minutos.", + "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión posix de PHP. Por favor consulta la {linkstart}documentación de PHP{linkend} para más detalles. ", + "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Permitir auto-completar el nombre de usuario en la ventana de diálogo. Si esta opción está deshabilitada, el nombre de usuario completo debe ser ingresado.", + "Uninstall app" : "Desinstalar la aplicación", + "Hey there,<br><br>just letting you know that you now have a %s account.<br><br>Your username: <strong>%s</strong><br>Access it: <strong><a href=\"%s\">%s</a></strong><br><br>" : "Hola,<br><br> sólo queremos informarte que ahora tienes una cuenta %s.<br><br> Tu usuario es: <strong>%s</strong> <br>Ingresa a ella: <strong><a href=\"%s\">%s</a></strong><br><br>", + "Cheers!" : "¡Saludos!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hola,\n\nsólo queremos informarte que ahora tienes una cuenta %s.\n\nTu usuario es: %s\n\nIngresa a ella: %s\n", + "For password recovery and notifications" : "Para recuperación de contraseña y notificaciones", + "Your website" : "Tu sitio web", + "Your Twitter handle" : "Tu cuenta de Twitter", + "Get the apps to sync your files" : "Obten las aplicaciones para sincronizar tus archivos", + "Desktop client" : "Cliente de escritorio", + "Android app" : "Aplicación android", + "iOS app" : "Aplicación iOS", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "¡Si deseas apoyar al proyecto {contributeopen} únete al desarrollo{linkclose} o {contributeopen} pasa la voz {linkclose}!", + "Show First Run Wizard again" : "Mostrar nuevamente el Asistente de Ejecución Inicial", + "Passcodes that give an app or device permissions to access your account." : "Los códigos de seguridad que le dan permisos a la aplicación o dispositivo para accesar a tu cuenta. ", + "Name" : "Nombre", + "Follow us on Google Plus!" : "¡Sígueos en Google Plus!", + "Like our facebook page!" : "¡Dale un me gusta a nuestra página de facebook!", + "Subscribe to our twitter channel!" : "¡Suscríbete a nuestro canal de twitter!", + "Subscribe to our news feed!" : "¡Suscríbete a nuestra fuente de noticias!", + "Subscribe to our newsletter!" : "¡Suscríbete a nuestro boletín!", + "Show last log in" : "Mostrar el último inicio de sesión", + "Group name" : "Nombre del grupo", + "You have now an %s account, you can add, protect, and share your data." : "Ahora tienes una cuenta %s, puedes agregar, proteger y compartir tus datos. ", + "Verifying" : "Verificando", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Es importante para la seguridad y desempeño de su instancia que todo esté configurado correctamente. Para ayudarlo con esto, estamos haciendo algunas verficaciones automáticas. Por favor consulta la sección de Consejos & Trucos de la documentación para más información. ", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Te recomendamos ámpliamente que habilites este módulo para obtener los mejores resultados en la detección de tipos MIME.", + "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "A continuación se presenta un listado de las sesiones, dispositivos y eventos que se han presentado en tu cuenta. ", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Aquí puedes generar contraseñas individuales para las aplicaciones para que no tengas que dar tu contraseña. También puedes revocalras individualmente. ", + "Follow us on Google+!" : "¡Síguenos en Google+!", + "Follow us on Twitter!" : "¡Síguenos en Twitter!", + "Check out our blog!" : "¡Visita nuestro blog!" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/settings/l10n/es_CO.json b/settings/l10n/es_CO.json new file mode 100644 index 00000000000..213f6bb1da2 --- /dev/null +++ b/settings/l10n/es_CO.json @@ -0,0 +1,455 @@ +{ "translations": { + "{actor} changed your password" : "{actor} ha cambiado tu contraseña", + "You changed your password" : "Cambiaste tu contraseña", + "Your password was reset by an administrator" : "Tu contraseña ha sido restablecida por un adminsitrador", + "{actor} changed your email address" : "{actor} ha cambiado tu dirección de correo electrónico", + "You changed your email address" : "Cambiaste tu dirección de correo electrónico", + "Your email address was changed by an administrator" : "Tu dirección de correo electrónico ha sido cambiada por un administrador", + "Security" : "Seguridad", + "You successfully logged in using two-factor authentication (%1$s)" : "Has iniciado sesión exitosamente usando autenticación de dos-factores (%1$s)", + "A login attempt using two-factor authentication failed (%1$s)" : "Un intento de autenticación usando autenticación de dos-factores ha fallado (%1$s)", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "Tu <strong>contraseña</strong> o <strong>correo electrónico</strong> ha sido modificado", + "Your apps" : "Tus aplicaciones", + "Updates" : "Actualizaciones", + "Enabled apps" : "Aplicaciones habilitadas", + "Disabled apps" : "Aplicaciones deshabilitadas", + "App bundles" : "Paquetes de aplicación", + "Wrong password" : "Contraseña incorrecta", + "Saved" : "Guardado", + "No user supplied" : "No se proporcionó usuario alguno", + "Unable to change password" : "No fue posible cambiar la contraseña", + "Authentication error" : "Error de autenticación", + "Please provide an admin recovery password; otherwise, all user data will be lost." : "Por favor proporciona una contraseña de recuperación de administrador; de lo contrario toda la información del usuario se perderá. ", + "Wrong admin recovery password. Please check the password and try again." : "Contraseña de recuperación de administrador incorrecta. Por favor verificala e inténtalo de nuevo.", + "Backend doesn't support password change, but the user's encryption key was updated." : "El backend no soporta el cambio de contraseñas, pero la llave de encripción del usuario fue actualizada.", + "installing and updating apps via the app store or Federated Cloud Sharing" : "Instalando y actualizando aplicaciones por la tienda de aplicaciones o Compartido la Nube Federada", + "Federated Cloud Sharing" : "Compartir en la Nube Federada", + "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL está usando una versión anticuada (%s) de %s. Por favor actualiza tu sistema operativo o funciones tales como %s no funcionarán de forma confiable.", + "A problem occurred, please check your log files (Error: %s)" : "Se presentó un problema, por favor verifica tus archivos de bitácoras (Error: %s)", + "Migration Completed" : "Migración completada", + "Group already exists." : "El grupo ya existe.", + "Unable to add group." : "No fue posible agregar el grupo.", + "Unable to delete group." : "No fue posible borrar el grupo.", + "Invalid SMTP password." : "Constraseña SMTP inválida. ", + "Email setting test" : "Prueba de ajustes de correo", + "Well done, %s!" : "¡Bien hecho, %s!", + "If you received this email, the email configuration seems to be correct." : "Si has recibido este correo electrónico, la configuración del correo electrónico parece estar correcta. ", + "Email could not be sent. Check your mail server log" : "No fue posible enviar el correo electrónico. Por favor verfica la bitácora de tu servidor de correo", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Se presentó un problema al enviar el correo electrónico. Por favor revisa tus configuraciones (Error: %s)", + "You need to set your user email before being able to send test emails." : "Requieres establecer tu correo electrónico antes de poder enviar correos electrónicos de prueba. ", + "Invalid mail address" : "Dirección de correo inválida", + "No valid group selected" : "No se ha seleccionado un grupo válido", + "A user with that name already exists." : "Un usuario con ese nombre ya existe. ", + "To send a password link to the user an email address is required." : "Para enviar la liga a una contraseña al usuario, se requiere de una dirección de correo electrónico.", + "Unable to create user." : "No fue posible crear el usuario. ", + "Unable to delete user." : "No fue posible eliminar el usuario.", + "Error while enabling user." : "Se presentó un error al habilitar el usuario. ", + "Error while disabling user." : "Se presentó un error al deshabilitar el usuario.", + "In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "Para poder verificar tu cuenta de Twitter, publica el siguiente tweet en Twitter (por favor asegúrarte de publicar sin ninguna línea en blanco):", + "In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Para poder verificar tu sitio Web, agrega el siguiente contendio a tu web-root en '.well-known/CloudIdVerificationCode.txt' (por favor asegurate de que el texto completo este en una sóla línea):", + "Settings saved" : "Se han guardado las configuraciones ", + "Unable to change full name" : "No fue posible cambiar el nombre completo", + "Unable to change email address" : "No fue posible cambiar la dirección de correo electrónico", + "Your full name has been changed." : "Tu nombre completo ha sido cambiado.", + "Forbidden" : "Prohibido", + "Invalid user" : "Usuario inválido", + "Unable to change mail address" : "No fue posible cambiar la dirección de correo", + "Email saved" : "Correo electrónico guardado", + "%1$s changed your password on %2$s." : "%1$s cambió tu contraseña el %2$s.", + "Your password on %s was changed." : "Tu contraseña de %s fue cambiada. ", + "Your password on %s was reset by an administrator." : "Tu contraseña de %s fue restablecida por un administrador.", + "Password for %1$s changed on %2$s" : "La contraseña para %1$s fue cambiada el %2$s", + "Password changed for %s" : "La contraseña fue cambiada para %s", + "If you did not request this, please contact an administrator." : "Si no lo solicitaste, por favor contacta a un administrador. ", + "%1$s changed your email address on %2$s." : "%1$s cambió tu dirección de correo electrónico el %2$s.", + "Your email address on %s was changed." : "Tu dirección de correo electrónico en %s fue cambiada. ", + "Your email address on %s was changed by an administrator." : "Tu dirección de correo electrónico en %s fue cambiada por un adminsitrador. ", + "Email address for %1$s changed on %2$s" : "La dirección de correo electrónico para %1$s fue cambiada el %2$s", + "Email address changed for %s" : "La dirección de correo electrónico fue cambiada para %s", + "The new email address is %s" : "La nueva dirección de correo electrónico es %s", + "Your %s account was created" : "Tu cuenta %s ha sido creada", + "Welcome aboard" : "Bienvenido a bordo", + "Welcome aboard %s" : "Bienvenido a bordo %s", + "You now have an %s account, you can add, protect, and share your data." : "Ahora tienes una cuenta %s, puedes agregar, proteger y compartir tus datos.", + "Your username is: %s" : "Tu Usuario es: %s", + "Set your password" : "Establece tu contraseña", + "Go to %s" : "Ir a %s", + "Install Client" : "Instalar el cliente", + "Password confirmation is required" : "Se requiere la confirmación de la contraseña", + "Couldn't remove app." : "No fue posible eliminar la aplicación. ", + "Couldn't update app." : "No fue posible actualizar la aplicación.", + "Are you really sure you want add {domain} as trusted domain?" : "¿Realmente estás seguro que quieres agregar a {domain} como un dominio de confianza?", + "Add trusted domain" : "Agregar un dominio de confianza", + "Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración", + "Migration started …" : "La migración ha comenzado ...", + "Not saved" : "No guardado", + "Sending…" : "Enviando...", + "Email sent" : "Correo electrónico enviado", + "Official" : "Oficial", + "All" : "Todos", + "Update to %s" : "Actualizar a %s", + "No apps found for your version" : "No se encontraron aplicaciones para tu versión", + "The app will be downloaded from the app store" : "La aplicación será descargada de la tienda de aplicaciones <app store>", + "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Las aplicaciones oficiales son desarrolladas por y dentro de la comunidad. Ofrecen una funcionalidad centralizada y se encuentran listas para ser usadas en producción. ", + "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Las aplicaciones aprobadas son desarrolladas por desarrolladores de confianza y han pasado una verificación de seguridad. Se les brinda mantenimiento activamente en un repositorio de código abierto y los mantenedores las consideran estables para un uso casual a normal. ", + "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Esta aplicación no cuenta con una verificación contra temas de seguridad y es nueva o se sabe que es instable. Instalala bajo tu propio riesgo. ", + "Disabling app …" : "Deshabilitando la aplicación ...", + "Error while disabling app" : "Se presentó un error mientras se deshabilitaba la aplicación", + "Disable" : "Deshabilitar", + "Enable" : "Habilitar", + "Enabling app …" : "Habilitando aplicación ...", + "Error while enabling app" : "Se presentó un error al habilitar la aplicación", + "Error: This app can not be enabled because it makes the server unstable" : "Error: Esta aplicación no puede ser habilitada porque genera inestabilidad en el servidor", + "Error: Could not disable broken app" : "Error: No fue posible deshabilitar la aplicación rota", + "Error while disabling broken app" : "Se presentó un error al deshabilitar la aplicación rota", + "No app updates available" : "No hay actualizaciones disponibles de la aplicación ", + "Updating...." : "Actualizando....", + "Error while updating app" : "Se presentó un error al actualizar la aplicación", + "Updated" : "Actualizado", + "Removing …" : "Eliminando ...", + "Error while removing app" : "Se presentó un error al eliminar la aplicación", + "Remove" : "Eliminar", + "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ", + "App update" : "Actualización de la aplicación", + "Approved" : "Aprobado", + "Experimental" : "Experimental", + "No apps found for {query}" : "No se encontraron aplicaciones para {query}", + "Enable all" : "Habilitar todo", + "Allow filesystem access" : "Permitir acceso al sistema de archivos", + "Disconnect" : "Desconectar", + "Revoke" : "Revocar", + "Internet Explorer" : "Internet Explorer", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google Chrome", + "Safari" : "Safari", + "Google Chrome for Android" : "Google Chrome para Android", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", + "iOS Client" : "Cliente iOS", + "Android Client" : "Cliente Android", + "Sync client - {os}" : "Sync client - {os}", + "This session" : "Esta sesión", + "Copy" : "Copiar", + "Copied!" : "¡Copiado!", + "Not supported!" : "¡No soportado!", + "Press ⌘-C to copy." : "Presiona ⌘-C para copiar. ", + "Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.", + "Error while loading browser sessions and device tokens" : "Se presentó un error al cargar las sesiones de tu navegador y las fichas de los dispositivos.", + "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo", + "Error while deleting the token" : "Se presentó un error al borrar la ficha", + "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Se presentó un error. Por favor carga un certificado PEM con codificación ASCII", + "Valid until {date}" : "Válido hasta {date}", + "Delete" : "Borrar", + "Local" : "Local", + "Private" : "Privado", + "Only visible to local users" : "Visible sólo para usuarios locales", + "Only visible to you" : "Sólo visible para ti", + "Contacts" : "Contactos", + "Visible to local users and to trusted servers" : "Visible para usuarios locales y para servidores de confianza", + "Public" : "Público", + "Will be synced to a global and public address book" : "Será sincronizado a una libreta de direcciones global y pública", + "Verify" : "Verificar", + "Verifying …" : "Verificando ...", + "An error occured while changing your language. Please reload the page and try again." : "Se presentó un error al cambiar tu idioma. Por favor vuelve a cargar la página y vuelva a intentarlo. ", + "Select a profile picture" : "Selecciona una imagen de perfil", + "Very weak password" : "Contraseña muy débil", + "Weak password" : "Contraseña débil", + "So-so password" : "Contraseña aceptable", + "Good password" : "Buena contraseña", + "Strong password" : "Contraseña fuerte", + "Groups" : "Grupos", + "Unable to delete {objName}" : "No fue posible borrar {objName}", + "Error creating group: {message}" : "Se presentó un error al crear el grupo: {message}", + "A valid group name must be provided" : "Debes proporcionar un nombre de grupo válido", + "deleted {groupName}" : "borrado {groupName}", + "undo" : "deshacer", + "{size} used" : "{size} usado", + "never" : "nunca", + "deleted {userName}" : "borrado {userName}", + "No user found for <strong>{pattern}</strong>" : "No se encontraron usuarios para <strong>{pattern}</strong>", + "Unable to add user to group {group}" : "No fue posible agregar el usuario al grupo {group}", + "Unable to remove user from group {group}" : "No fue posible eliminar el usuario del grupo {group}", + "Add group" : "Agregar grupo", + "Invalid quota value \"{val}\"" : "Valor de cuota inválido \"{val}\"", + "no group" : "sin grupos", + "Password successfully changed" : "La contraseña se cambió exitosamente", + "Changing the password will result in data loss, because data recovery is not available for this user" : "El cambiar la contraseña puede generar pérdida de datos, porque la recuperación de datos no está disponible para este usuario", + "Could not change the users email" : "No fue posible cambiar el correo electrónico del usuario. ", + "Error while changing status of {user}" : "Se presentó un error al cambiar el estatus del usuario {user}", + "A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido", + "Error creating user: {message}" : "Se presentó un error al crear el usuario: {message}", + "A valid password must be provided" : "Se debe proporcionar una contraseña válida", + "A valid email must be provided" : "Se debe proporcionar un correo electrónico válido", + "Developer documentation" : "Documentación del desarrollador", + "View in store" : "Ver en la tienda", + "Limit to groups" : "Limitar a grupos", + "by %s" : "por %s", + "%s-licensed" : "%s-licensed", + "Documentation:" : "Documentación:", + "User documentation" : "Documentación del usuario", + "Admin documentation" : "Documentación del administrador", + "Visit website" : "Visita el sitio web", + "Report a bug" : "Reporta un detalle", + "Show description …" : "Mostrar descripción ...", + "Hide description …" : "Ocultar descripción ...", + "This app has an update available." : "Esta aplicación tiene una actualización disponible.", + "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.", + "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.", + "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:", + "Enable only for specific groups" : "Habilitar sólo para grupos específicos", + "SSL Root Certificates" : "Certificado SSL Raíz", + "Common Name" : "Nombre común", + "Valid until" : "Válido hasta", + "Issued By" : "Levantado Por", + "Valid until %s" : "Válido hasta %s", + "Import root certificate" : "Importar certificado raíz", + "Administrator documentation" : "Documentación del adminsitrador", + "Online documentation" : "Documentación en línea", + "Forum" : "Foro", + "Getting help" : "Obtener ayuda", + "Commercial support" : "Soporte comercial", + "None" : "Ninguno", + "Login" : "Iniciar sesión", + "Plain" : "Plano", + "NT LAN Manager" : "Administrador de LAN NT", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", + "Email server" : "Servidor de correo electrónico", + "Open documentation" : "Abrir documentación", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Es importante preparar este servidor para poder enviar correos electrónicos, como para restablecer contraseñas y notificaciones. ", + "Send mode" : "Modo de envío", + "Encryption" : "Encripción", + "From address" : "De la dirección", + "mail" : "correo", + "Authentication method" : "Método de autenticación", + "Authentication required" : "Autenticación requerida", + "Server address" : "Dirección del servidor", + "Port" : "Puerto", + "Credentials" : "Credenciales", + "SMTP Username" : "Usuario SMTP", + "SMTP Password" : "Contraseña SMTP", + "Store credentials" : "Almacenar credenciales", + "Test email settings" : "Probar las configuraciones de correo electrónico", + "Send email" : "Enviar correo electrónico", + "Server-side encryption" : "Encripción del lado del servidor", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ", + "Enable server-side encryption" : "Habilitar encripción del lado del servidor", + "Please read carefully before activating server-side encryption: " : "Por favor lee detenidamente antes de activar la encripción del lado de servidor:", + "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Una vez que la encripción se encuentre habilitada, todos lo archivos cargados al servidor desde ese momento en tiempo, se encriptarán en el servidor. Sólo será posible deshabilitar la encripción en una fecha posterior si el modulo de encripción activo soporta esa funcionalidad y si todas las preciondiciones están satisfechas (ejem. establecer una llave de recuperación).", + "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "La encripción por sí sola no garantiza la seguridad del sistema. Por favor consulta la documentación para mayores informes de cómo funciona la aplicación de encripción y de los casos de uso soportados. ", + "Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ", + "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ", + "This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?", + "Enable encryption" : "Habilitar encripción", + "No encryption module loaded, please enable an encryption module in the app menu." : "No se ha cargado un módulo de encripción, por favor habilita un módulo de encripción en el menú de la aplicación. ", + "Select default encryption module:" : "Selecciona el modulo de encripción predeterminado:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Necesitas migrar tus llaves de encripción de la encripción anterior (ownCloud <= 8.0) a la actual. Por favor habilita el \"Módulo de encripción predeterminado\" y ejecuta el comando 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Necesitas migar tus llaves de encripción de la encripción anterior (ownCloud <=8.0) a la actual. ", + "Start migration" : "Iniciar migración", + "Security & setup warnings" : "Advertencias de seguridad y configuración", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", + "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación de instalación ↗</a> en relación a las notas de configuración de PHP y la configuración de PHP en tu servidorr, especialmente cuando se usa php-fpm.", + "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", + "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", + "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", + "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "El bloqueo de archivos transaccional se encuentra deshabilitado, esto puede generar temas bajo ciertas condiciones. Habilita 'filelocking.enabled' en el archivo config.php para evitar problemas. Por favor consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentatcón ↗</a> para más información.", + "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", + "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", + "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", + "If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", + "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Por favor vuelve a verificar las <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">guías de instalación↗</a>, y comprueba que no haya errores o advertenicas en la <a href=\"%s\">bitácora</a>.", + "All checks passed." : "Pasaron todas las verificaciones. ", + "Background jobs" : "Trabajos en segundo plano", + "Last job ran %s." : "El último trabajo corrió %s.", + "Last job execution ran %s. Something seems wrong." : "La última ejecución del trabajo corrió %s. Algo parece estar mal. ", + "Background job didn’t run yet!" : "¡El trabajo de segundo plano aún no ha corrido!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "Para un desempeño ideal, es importante configurar los trabajos de fondo correctamente. Para instancias más grandes 'Cron' es la configuración recomendada. Por favor consulta la documentación para más información. ", + "Execute one task with each page loaded" : "Ejecutar una tarea con cada página cargada", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over HTTP." : "cron.php está registrado en un servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP. ", + "Use system cron service to call the cron.php file every 15 minutes." : "Usar el servicio cron del sistema para llamar al archivo cron.php cada 15 minutos. ", + "The cron.php needs to be executed by the system user \"%s\"." : "El cron.php necesita ser ejecutado por el usuario de sistema \"%s\".", + "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", + "Version" : "Versión", + "Sharing" : "Compartiendo", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ", + "Allow apps to use the Share API" : "Permitir que las aplicaciones usen el API para Compartir", + "Allow users to share via link" : "Permitir a los usuarios compartir mediante ligas", + "Allow public uploads" : "Permitir cargas públicas", + "Always ask for a password" : "Siempre pedir una contraseña", + "Enforce password protection" : "Forzar protección de contraseñas", + "Set default expiration date" : "Establecer la fecha de expiración predeterminada", + "Expire after " : "Expirar después de", + "days" : "días", + "Enforce expiration date" : "Forzar fecha de expiración", + "Allow resharing" : "Permitir volver a compartir", + "Allow sharing with groups" : "Permitir compartir con grupos", + "Restrict users to only share with users in their groups" : "Limitar a los usuarios a sólo compartir con otros usuarios en sus grupos", + "Exclude groups from sharing" : "Evitar que los grupos compartan", + "These groups will still be able to receive shares, but not to initiate them." : "Estos grupos aún podrán recibir elementos compartidos, pero no los podrán iniciar.", + "Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "Permitir el autocompletado de usuarios en la ventana de diálogo de compartir. Si esto está deshabilitado, se deberá ingresar el correo electrónico o nombre completo. ", + "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Mostrar el texto de exención de responsabilidad legal en la página de carga de ligas públicas. (Sólo se muestra cuando la lista de archivos está oculta.)", + "This text will be shown on the public link upload page when the file list is hidden." : "Este texto se mostrará en la página de carga de la liga pública cuando la lista de archivos esté oculta. ", + "Tips & tricks" : "Consejos & trucos", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", + "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "Para migrar a otra base de datos, usa la herramienta de la línea de comando 'occ db:convert-type', o consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación ↗</a>.", + "How to do backups" : "Cómo hacer respaldos", + "Advanced monitoring" : "Monitoreo avanzado", + "Performance tuning" : "Optimización de rendimiento", + "Improving the config.php" : "Mejorando la config.php", + "Theming" : "Tematizar", + "Check the security of your Nextcloud over our security scan" : "Verifica la seguridad de tu Nextcloud con nuestro escaneo de seguridad", + "Hardening and security guidance" : "Consejos de reforzamiento y seguridad", + "Personal" : "Personal", + "Administration" : "Administración", + "You are using <strong>%s</strong> of <strong>%s</strong>" : "Estás usando <strong>%s</strong> de <strong>%s</strong>", + "You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Estás usando <strong>%s</strong> de <strong>%s</strong> (<strong> %s %%</strong>)", + "Profile picture" : "Foto de perfil", + "Upload new" : "Cargar nuevo", + "Select from Files" : "Seleccionar desde Archivos", + "Remove image" : "Eliminar imagen", + "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", + "Picture provided by original account" : "Imagen proporcionada por la cuenta original ", + "Cancel" : "Cancelar", + "Choose as profile picture" : "Seleccionar como foto del perfil", + "Full name" : "Nombre completo", + "No display name set" : "No se ha establecido el nombre a desplegar", + "Email" : "Correo electrónico", + "Your email address" : "Tu dirección de correo electrónico", + "No email address set" : "No se ha establecido la dirección de correo electrónico", + "For password reset and notifications" : "Para restablecer contraseña y notificaciones", + "Phone number" : "Número de teléfono", + "Your phone number" : "Su número telefónico", + "Address" : "Dirección", + "Your postal address" : "Tu dirección postal", + "Website" : "Sitio web", + "It can take up to 24 hours before the account is displayed as verified." : "Puede tomar hasta 24 horas antes de que la cuenta se muestre como verificada. ", + "Link https://…" : "Liga https:// ...", + "Twitter" : "Twitter", + "Twitter handle @…" : "Cuenta de twitter @...", + "You are member of the following groups:" : "Eres miembro de los siguientes grupos:", + "Language" : "Idioma", + "Help translate" : "Ayuda a traducir", + "Password" : "Contraseña", + "Current password" : "Contraseña actual", + "New password" : "Nueva contraseña", + "Change password" : "Cambiar contraseña", + "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ", + "Device" : "Dispositivo", + "Last activity" : "Última actividad", + "App name" : "Nombre de la aplicación", + "Create new app password" : "Crear una nueva contraseña de aplicación", + "Use the credentials below to configure your app or device." : "Usa las siguientes credenciales para configurar tu aplicación o dispositivo. ", + "For security reasons this password will only be shown once." : "Por razones de seguridad esta contraseña sólo se mostrará una vez. ", + "Username" : "Usuario", + "Done" : "Terminado", + "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.", + "Follow us on Google+" : "Síguenos en Google+", + "Like our Facebook page" : "Da un Like a nuestra página de Facebook", + "Follow us on Twitter" : "Síguenos en Twitter", + "Check out our blog" : "Visita nuestro blog", + "Subscribe to our newsletter" : "Suscribete a nuestro boletín", + "Settings" : "Configuraciones ", + "Show storage location" : "Mostrar la ubicación del almacenamiento", + "Show user backend" : "Mostrar backend del usuario", + "Show last login" : "Mostrar último inicio de sesión", + "Show email address" : "Mostrar dirección de correo electrónico", + "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Cuando la contraseña de un usuario nuevo se deja en blanco, se envía un correo electrónico de activación con una liga para establecerla. ", + "E-Mail" : "Correo electrónico", + "Create" : "Crear", + "Admin Recovery Password" : "Recuperación de la contraseña del administrador", + "Enter the recovery password in order to recover the users files during password change" : "Ingresa la contraseña de recuperación con la finalidad de recuperar los archivos de los usuarios al cambiar la contraseña.", + "Everyone" : "Todos", + "Admins" : "Administradores", + "Disabled" : "Deshabilitado", + "Default quota" : "Cuota predeterminada", + "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Por favor indica la cuota de almacenamiento (ejem: \"512 MB\" ó \"12 GB\")", + "Unlimited" : "Ilimitado", + "Other" : "Otro", + "Group admin for" : "Administrador del grupo para", + "Quota" : "Cuota", + "Storage location" : "Úbicación del almacenamiento", + "User backend" : "Backend del usuario", + "Last login" : "Último inicio de sesión", + "change full name" : "cambiar el nombre completo", + "set new password" : "establecer nueva contraseña", + "change email address" : "cambiar la dirección de correo electrónico", + "Default" : "Predeterminado", + "Enabled" : "Habilitado", + "Not enabled" : "No habilitado", + "Please provide an admin recovery password, otherwise all user data will be lost" : "Por favor proporciona una contraseña de recuperación de administrador, de lo contrario se perderán todos los datos de usuario", + "Backend doesn't support password change, but the user's encryption key was successfully updated." : "El backend no soporta el cambio de contraseñas, pero la llave de encripción del usuario fue actualizada exitosamente.", + "test email settings" : "probar las configuraciones del correo electrónico", + "Invalid request" : "Solicitud inválida", + "Admins can't remove themself from the admin group" : "Los administradores no se pueden eliminar a ellos mismos del grupo de administrador", + "Unable to add user to group %s" : "No fue posible agregar el usuario al grupo %s", + "Unable to remove user from group %s" : "No fue posible eliminar el usuario del grupo %s", + "Sending..." : "Enviando...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Usted tiene %n actualización de la aplicación pendiente","Tienes %n actualizaciones de la aplicación pendientes"], + "Uninstalling ...." : "Desinstalando ...", + "Error while uninstalling app" : "Se presentó un error al desinstalar la aplicación", + "Uninstall" : "Desinstalar", + "__language_name__" : "Español (México)", + "Personal info" : "Información personal", + "Sessions" : "Sesiones", + "App passwords" : "Contraseñas de aplicación", + "Sync clients" : "Sincronizar clientes", + "This is used for sending out notifications." : "Esto se usa para enviar notificaciones", + "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Al parecer php no está correctamente configurado para consultar las variables de ambiente. La prueba con getenv(\"PATH\") solo está regresando una respuesta vacía. ", + "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Favor de consultar la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación de instalación ↗</a> para las notas de configuración de php en tu servidor, específicamente al usar php-fpm. ", + "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques de comentarios internos. Esto hará que varias aplicaciones principales sean inaccesibles. ", + "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s mas reciente. ", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Te recomendamos ámpliamente que habilites este módulo para obtener los mejores resultados en la detección de tipos MIME.", + "This means that there might be problems with certain characters in file names." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de los archivos.", + "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Te sugerimos ámpliamente instalar en tu sistema los paquetes requeridos para soportar alguno de los sigueintes locales: %s.", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si tu instalacion no fue hecha en la raíz del dominio y usa el cron del sistema, pueden presentarse temas con la generación de URLs. Para evitar estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere : \"%s\")", + "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "No fue posible ejecutar la tarea de cron con CLI. Se presentaron los siguientes errores técnicos:", + "Cron" : "Cron", + "Last cron job execution: %s." : "Última ejecución de tareas de cron: %s.", + "Last cron job execution: %s. Something seems wrong." : "Última ejecución de tareas de cron: %s. Algo parece estar mal. ", + "Cron was not executed yet!" : "¡Aún no han sido ejecutado el cron!", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registrado en el servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP.", + "Use system's cron service to call the cron.php file every 15 minutes." : "Usar el servicio de cron del sistema para llamar el archivo cron.php cada 15 minutos.", + "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión posix de PHP. Por favor consulta la {linkstart}documentación de PHP{linkend} para más detalles. ", + "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Permitir auto-completar el nombre de usuario en la ventana de diálogo. Si esta opción está deshabilitada, el nombre de usuario completo debe ser ingresado.", + "Uninstall app" : "Desinstalar la aplicación", + "Hey there,<br><br>just letting you know that you now have a %s account.<br><br>Your username: <strong>%s</strong><br>Access it: <strong><a href=\"%s\">%s</a></strong><br><br>" : "Hola,<br><br> sólo queremos informarte que ahora tienes una cuenta %s.<br><br> Tu usuario es: <strong>%s</strong> <br>Ingresa a ella: <strong><a href=\"%s\">%s</a></strong><br><br>", + "Cheers!" : "¡Saludos!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hola,\n\nsólo queremos informarte que ahora tienes una cuenta %s.\n\nTu usuario es: %s\n\nIngresa a ella: %s\n", + "For password recovery and notifications" : "Para recuperación de contraseña y notificaciones", + "Your website" : "Tu sitio web", + "Your Twitter handle" : "Tu cuenta de Twitter", + "Get the apps to sync your files" : "Obten las aplicaciones para sincronizar tus archivos", + "Desktop client" : "Cliente de escritorio", + "Android app" : "Aplicación android", + "iOS app" : "Aplicación iOS", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "¡Si deseas apoyar al proyecto {contributeopen} únete al desarrollo{linkclose} o {contributeopen} pasa la voz {linkclose}!", + "Show First Run Wizard again" : "Mostrar nuevamente el Asistente de Ejecución Inicial", + "Passcodes that give an app or device permissions to access your account." : "Los códigos de seguridad que le dan permisos a la aplicación o dispositivo para accesar a tu cuenta. ", + "Name" : "Nombre", + "Follow us on Google Plus!" : "¡Sígueos en Google Plus!", + "Like our facebook page!" : "¡Dale un me gusta a nuestra página de facebook!", + "Subscribe to our twitter channel!" : "¡Suscríbete a nuestro canal de twitter!", + "Subscribe to our news feed!" : "¡Suscríbete a nuestra fuente de noticias!", + "Subscribe to our newsletter!" : "¡Suscríbete a nuestro boletín!", + "Show last log in" : "Mostrar el último inicio de sesión", + "Group name" : "Nombre del grupo", + "You have now an %s account, you can add, protect, and share your data." : "Ahora tienes una cuenta %s, puedes agregar, proteger y compartir tus datos. ", + "Verifying" : "Verificando", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Es importante para la seguridad y desempeño de su instancia que todo esté configurado correctamente. Para ayudarlo con esto, estamos haciendo algunas verficaciones automáticas. Por favor consulta la sección de Consejos & Trucos de la documentación para más información. ", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Te recomendamos ámpliamente que habilites este módulo para obtener los mejores resultados en la detección de tipos MIME.", + "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "A continuación se presenta un listado de las sesiones, dispositivos y eventos que se han presentado en tu cuenta. ", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Aquí puedes generar contraseñas individuales para las aplicaciones para que no tengas que dar tu contraseña. También puedes revocalras individualmente. ", + "Follow us on Google+!" : "¡Síguenos en Google+!", + "Follow us on Twitter!" : "¡Síguenos en Twitter!", + "Check out our blog!" : "¡Visita nuestro blog!" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/settings/l10n/es_MX.js b/settings/l10n/es_MX.js index f08bc9d8610..64396e1cfc8 100644 --- a/settings/l10n/es_MX.js +++ b/settings/l10n/es_MX.js @@ -369,7 +369,6 @@ OC.L10N.register( "Create" : "Crear", "Admin Recovery Password" : "Recuperación de la contraseña del administrador", "Enter the recovery password in order to recover the users files during password change" : "Ingresa la contraseña de recuperación con la finalidad de recuperar los archivos de los usuarios al cambiar la contraseña.", - "Group name" : "Nombre del grupo", "Everyone" : "Todos", "Admins" : "Administradores", "Disabled" : "Deshabilitado", @@ -444,6 +443,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "¡Suscríbete a nuestra fuente de noticias!", "Subscribe to our newsletter!" : "¡Suscríbete a nuestro boletín!", "Show last log in" : "Mostrar el último inicio de sesión", + "Group name" : "Nombre del grupo", "You have now an %s account, you can add, protect, and share your data." : "Ahora tienes una cuenta %s, puedes agregar, proteger y compartir tus datos. ", "Verifying" : "Verificando", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Es importante para la seguridad y desempeño de su instancia que todo esté configurado correctamente. Para ayudarlo con esto, estamos haciendo algunas verficaciones automáticas. Por favor consulta la sección de Consejos & Trucos de la documentación para más información. ", diff --git a/settings/l10n/es_MX.json b/settings/l10n/es_MX.json index 78697ffd645..213f6bb1da2 100644 --- a/settings/l10n/es_MX.json +++ b/settings/l10n/es_MX.json @@ -367,7 +367,6 @@ "Create" : "Crear", "Admin Recovery Password" : "Recuperación de la contraseña del administrador", "Enter the recovery password in order to recover the users files during password change" : "Ingresa la contraseña de recuperación con la finalidad de recuperar los archivos de los usuarios al cambiar la contraseña.", - "Group name" : "Nombre del grupo", "Everyone" : "Todos", "Admins" : "Administradores", "Disabled" : "Deshabilitado", @@ -442,6 +441,7 @@ "Subscribe to our news feed!" : "¡Suscríbete a nuestra fuente de noticias!", "Subscribe to our newsletter!" : "¡Suscríbete a nuestro boletín!", "Show last log in" : "Mostrar el último inicio de sesión", + "Group name" : "Nombre del grupo", "You have now an %s account, you can add, protect, and share your data." : "Ahora tienes una cuenta %s, puedes agregar, proteger y compartir tus datos. ", "Verifying" : "Verificando", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Es importante para la seguridad y desempeño de su instancia que todo esté configurado correctamente. Para ayudarlo con esto, estamos haciendo algunas verficaciones automáticas. Por favor consulta la sección de Consejos & Trucos de la documentación para más información. ", diff --git a/settings/l10n/eu.js b/settings/l10n/eu.js index c8ce2d2038a..ee358bffe70 100644 --- a/settings/l10n/eu.js +++ b/settings/l10n/eu.js @@ -311,7 +311,6 @@ OC.L10N.register( "Create" : "Sortu", "Admin Recovery Password" : "Administratzailearen pasahitza berreskuratzea", "Enter the recovery password in order to recover the users files during password change" : "Berreskuratze pasahitza idatzi pasahitz aldaketan erabiltzaileen fitxategiak berreskuratzeko", - "Group name" : "Taldearen izena", "Everyone" : "Edonor", "Admins" : "Administratzaileak", "Default quota" : "Kuota lehenetsia", @@ -372,6 +371,7 @@ OC.L10N.register( "Passcodes that give an app or device permissions to access your account." : "Zure kontuan sartzeko aplikazio edo gailuei baimena ematen dien pasahitzak.", "Name" : "Izena", "Show last log in" : "Erakutsi azkeneko saio hasiera", + "Group name" : "Taldearen izena", "You have now an %s account, you can add, protect, and share your data." : "Orain baduzu %s kontu bat, zure datuak gehitu, babestu eta parteka ditzakezu." }, "nplurals=2; plural=(n != 1);"); diff --git a/settings/l10n/eu.json b/settings/l10n/eu.json index 2c3315d1ca3..a3e9772330a 100644 --- a/settings/l10n/eu.json +++ b/settings/l10n/eu.json @@ -309,7 +309,6 @@ "Create" : "Sortu", "Admin Recovery Password" : "Administratzailearen pasahitza berreskuratzea", "Enter the recovery password in order to recover the users files during password change" : "Berreskuratze pasahitza idatzi pasahitz aldaketan erabiltzaileen fitxategiak berreskuratzeko", - "Group name" : "Taldearen izena", "Everyone" : "Edonor", "Admins" : "Administratzaileak", "Default quota" : "Kuota lehenetsia", @@ -370,6 +369,7 @@ "Passcodes that give an app or device permissions to access your account." : "Zure kontuan sartzeko aplikazio edo gailuei baimena ematen dien pasahitzak.", "Name" : "Izena", "Show last log in" : "Erakutsi azkeneko saio hasiera", + "Group name" : "Taldearen izena", "You have now an %s account, you can add, protect, and share your data." : "Orain baduzu %s kontu bat, zure datuak gehitu, babestu eta parteka ditzakezu." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/settings/l10n/fi.js b/settings/l10n/fi.js index c423725c222..25da4e4456e 100644 --- a/settings/l10n/fi.js +++ b/settings/l10n/fi.js @@ -12,6 +12,7 @@ OC.L10N.register( "A login attempt using two-factor authentication failed (%1$s)" : "Kirjautumisyritys kaksivaiheista tunnistautumista käyttäen epäonnistui (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "<strong>Salasanaasi</strong> tai <strong>sähköpostiosoitettasi</strong> muokattiin", "Your apps" : "Sovelluksesi", + "Updates" : "Päivitykset", "Enabled apps" : "Käytössä olevat sovellukset", "Disabled apps" : "Käytöstä poistetut sovellukset", "App bundles" : "Sovelluskokoelmat", @@ -22,6 +23,7 @@ OC.L10N.register( "Authentication error" : "Tunnistautumisvirhe", "Please provide an admin recovery password; otherwise, all user data will be lost." : "Anna ylläpitäjän palautussalasana; muuten kaikki käyttäjien data menetetään.", "Wrong admin recovery password. Please check the password and try again." : "Väärä ylläpitäjän salasana. Tarkista salasana ja yritä uudelleen.", + "Backend doesn't support password change, but the user's encryption key was updated." : "Taustaosa ei tue salasanan vaihtamista, mutta käyttäjän salausavain päivitettiin.", "installing and updating apps via the app store or Federated Cloud Sharing" : "Sovellusten asennus tai päivitys sovelluskaupasta tai federoidusta pilvijaosta", "Federated Cloud Sharing" : "Federoitu pilvijakaminen", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL käyttää vanhentunutta %s-versiota (%s). Päivitä käyttöjärjestelmäsi tai ominaisuudet kuten %s eivät toimi luotettavasti.", @@ -43,6 +45,10 @@ OC.L10N.register( "To send a password link to the user an email address is required." : "Salasanalinkin lähettämiseksi käyttäjälle vaaditaan sähköpostiosoite.", "Unable to create user." : "Käyttäjän luominen ei onnistunut.", "Unable to delete user." : "Käyttäjän poistaminen ei onnistunut.", + "Error while enabling user." : "Virhe ottaessa käyttäjää käyttöön.", + "Error while disabling user." : "Virhe poistaessa käyttäjää käytöstä.", + "In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "Jotta Twitter-tilisi on mahdollista vahvistaa, twiittaa seuraava viesti (varmista että lähetät viestin sellaisenaan ilman rivivaihtoja):", + "In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Jotta verkkosivustosi on mahdollista vahvistaa, aseta seuraava sisältö verkkosivustosi juureen '.well-known/CloudIdVerificationCode.txt' (varmista että koko teksti on yhdellä rivillä):", "Settings saved" : "Asetukset tallennettu", "Unable to change full name" : "Koko nimen muuttaminen epäonnistui", "Unable to change email address" : "Sähköpostiosoitteen vaihtaminen ei onnistunut", @@ -65,6 +71,7 @@ OC.L10N.register( "Your %s account was created" : "%s-tilisi luotiin", "Welcome aboard" : "Tervetuloa mukaan", "Welcome aboard %s" : "Tervetuloa mukaan %s", + "You now have an %s account, you can add, protect, and share your data." : "Sinulla on nyt %s-tili. Voit lisätä, suojata ja jakaa tietojasi.", "Your username is: %s" : "Käyttäjätunnuksesi on: %s", "Set your password" : "Aseta salasanasi", "Go to %s" : "Siirry %s-palveluun", @@ -93,7 +100,9 @@ OC.L10N.register( "Enable" : "Käytä", "Enabling app …" : "Otetaan sovellusta käyttöön...", "Error while enabling app" : "Virhe ottaessa sovellusta käyttöön", + "Error: This app can not be enabled because it makes the server unstable" : "Virhe: tätä sovellusta ei voi ottaa käyttöön, koska se tekee palvelimesta epävakaan", "Error while disabling broken app" : "Virhe rikkinäistä sovellusta käytöstä poistaessa", + "No app updates available" : "Sovelluspäivityksiä ei ole saatavilla", "Updating...." : "Päivitetään...", "Error while updating app" : "Virhe sovellusta päivittäessä", "Updated" : "Päivitetty", @@ -137,6 +146,9 @@ OC.L10N.register( "Visible to local users and to trusted servers" : "Näkyvillä vain paikallisille käyttäjille ja luotetuille palvelimille", "Public" : "Julkinen", "Will be synced to a global and public address book" : "Synkronoidaan maailmanlaajuiseen ja julkiseen osoitekirjaan", + "Verify" : "Vahvista", + "Verifying …" : "Vahvistetaan…", + "An error occured while changing your language. Please reload the page and try again." : "Kieltä vaihtaessa tapahtui virhe. Lataa sivu uudelleen ja yritä uudelleen.", "Select a profile picture" : "Valitse profiilikuva", "Very weak password" : "Erittäin heikko salasana", "Weak password" : "Heikko salasana", @@ -160,6 +172,7 @@ OC.L10N.register( "Password successfully changed" : "Salasana vaihdettiin onnistuneesti", "Changing the password will result in data loss, because data recovery is not available for this user" : "Salasanan muuttaminen johtaa tietojen häviämiseen, koska tietojen palautusta ei ole käytettävissä tämän käyttäjän kohdalla", "Could not change the users email" : "Käyttäjän sähköpostiosoitteen vaihtaminen epäonnistui", + "Error while changing status of {user}" : "Käyttäjän {user} tilaa muuttaessa tapahtui virhe", "A valid username must be provided" : "Anna kelvollinen käyttäjätunnus", "Error creating user: {message}" : "Virhe käyttäjää luotaessa: {message}", "A valid password must be provided" : "Anna kelvollinen salasana", @@ -218,6 +231,7 @@ OC.L10N.register( "Server-side encryption" : "Palvelinpään salaus", "Enable server-side encryption" : "Käytä palvelinpään salausta", "Please read carefully before activating server-side encryption: " : "Lue tarkasti, ennen kuin otat palvelinpään salauksen käyttöön:", + "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Salaus sellaisenaan ei takaa järjestelmäsi turvallisuutta. Tutustu dokumentaation saadaksesi lisätietoja, miten salaussovellus toimii ja nähdäksesi tuettuja käyttötapauksia.", "Be aware that encryption always increases the file size." : "Ota huomioon, että salaus kasvattaa aina tiedostojen kokoa.", "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Säännöllisten varmuuskopioiden ottaminen on erittäin tärkeää. Jos olet ottanut salauksen käyttöön, huolehdi salausavainten varmuuskopioinnista.", "This is the final warning: Do you really want to enable encryption?" : "Tämä on viimeinen varoitus: haluatko varmasti ottaa salauksen käyttöön?", @@ -228,14 +242,19 @@ OC.L10N.register( "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Sinun täytyy siirtää salausavaimet vanhasta salaustekniikasta (ownCloud <= 8.0) uuteen.", "Start migration" : "Käynnistä migraatio", "Security & setup warnings" : "Turvallisuus- ja asetusvaroitukset", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Tietoturvan ja suorituskyvyn vuoksi on tärkeää, että asennuksesi on määritetty oikein. Sen vuoksi teemme joitain automaattisia tarkistuksia. Lisätietoja on saatavilla dokumentaation \"Tips & Tricks\"-osiosta.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Vain luku -asetukset on otettu käyttöön. Tämä estää joidenkin asetusten määrittämisen selainkäyttöliittymän kautta. Lisäksi kyseinen tiedostoon tulee asettaa kirjoitusoikeus käsin joka päivityksen yhteydessä.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Tämä johtuu todennäköisesti välimuistista tai kiihdyttimestä kuten Zend OPcachesta tai eAcceleratorista.", + "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "PHP-moduuli 'fileinfo' puuttuu. Suosittelemme kyseisen moduulin ottamista käyttöön, jotta MIME-tyyppien havaitseminen toimii parhaalla mahdollisella tavalla.", "System locale can not be set to a one which supports UTF-8." : "Järjestelmän maa-asetusta ei voi asettaa UTF-8:aa tukevaksi.", + "This means that there might be problems with certain characters in filenames." : "Tämä tarkoittaa, että jotkin merkit saattavat aiheuttaa ongelmia tiedostojen nimissä.", "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Tutustu huolellisesti <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">asennusohjeisiin ↗</a> ja tarkista <a href=\"%s\">lokitiedostosta</a> mahdolliset virheet ja varoitukset.", "All checks passed." : "Läpäistiin kaikki tarkistukset.", "Background jobs" : "Taustatyöt", "Last job ran %s." : "Viimeisin työ suoritettu %s.", "Last job execution ran %s. Something seems wrong." : "Viimeisin cron-työn suoritus %s. Jokin vaikuttaa menneen pieleen.", + "Background job didn’t run yet!" : "Taustatyötä ei suoritettu vielä!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "Optimaalisen suorituskyvyn vuoksi on tärkeää määrittää taustatyöt oikein. Suuria asennuksia varten 'Cron' on suositeltava asetus. Lisätietoja on saatavilla dokumentaatiossa.", "Execute one task with each page loaded" : "Suorita yksi tehtävä jokaista ladattua sivua kohden", "Use system cron service to call the cron.php file every 15 minutes." : "Käytä järjestelmän cron-palvelua kutsuaksesi cron.php-tiedostoa 15 minuutin välein.", "The cron.php needs to be executed by the system user \"%s\"." : "Tiedosto cron.php tulee suorittaa järjestelmän käyttäjänä \"%s\".", @@ -256,9 +275,11 @@ OC.L10N.register( "Restrict users to only share with users in their groups" : "Salli käyttäjien jakaa vain omassa ryhmässä olevien henkilöiden kesken", "Exclude groups from sharing" : "Kiellä ryhmiä jakamasta", "These groups will still be able to receive shares, but not to initiate them." : "Nämä ryhmät kykenevät vastaanottamaan jakoja, mutta eivät kuitenkaan itse pysty luoda jakoja.", + "Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "Salli käyttäjätunnusten automaattinen täydentäminen jakoikkunassa. Jos tämä asetus on pois käytöstä, tulee käyttäjän kirjoittaa käyttäjätunnus tai sähköpostiosoite kokonaan.", "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Näytä vastuuvapauslauseke julkisen linkin lähetyssivulla. (Näytetään vain, kun tiedostolista on piilotettu.)", "This text will be shown on the public link upload page when the file list is hidden." : "Tämä teksti näytetään julkisen linkin lähetyssivulla, kun tiedostolista on piilotettu.", "Tips & tricks" : "Vinkit", + "This is particularly recommended when using the desktop client for file synchronisation." : "Tämä on suositeltavaa erityisesti silloin, kun työpöytäsovellusta käytetään tiedostojen synkronointiin.", "How to do backups" : "Kuinka tehdä varmuuskopioita", "Advanced monitoring" : "Edistynyt valvonta", "Performance tuning" : "Suorituskyvyn hienosäätö", @@ -266,6 +287,8 @@ OC.L10N.register( "Theming" : "Teemojen käyttö", "Check the security of your Nextcloud over our security scan" : "Tarkista Nextcloudisi tietoturva käyttäen tietoturvatarkistustamme", "Hardening and security guidance" : "Turvaamis- ja tietoturvaopas", + "Personal" : "Henkilökohtainen", + "Administration" : "Ylläpito", "You are using <strong>%s</strong> of <strong>%s</strong>" : "Käytössäsi on <strong>%s</strong>/<strong>%s</strong>", "You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Käytössäsi on <strong>%s</strong>/<strong>%s</strong> (<strong>%s %%</strong>)", "Profile picture" : "Profiilikuva", @@ -287,6 +310,7 @@ OC.L10N.register( "Address" : "Osoite", "Your postal address" : "Postiosoitteesi", "Website" : "Verkkosivusto", + "It can take up to 24 hours before the account is displayed as verified." : "Saattaa kestää jopa 24 tuntia, ennen kuin tili näytetään vahvistettuna.", "Link https://…" : "Linkki https://…", "Twitter" : "Twitter", "Twitter handle @…" : "Twitter-tunnus @…", @@ -323,7 +347,6 @@ OC.L10N.register( "Create" : "Luo", "Admin Recovery Password" : "Ylläpitäjän palautussalasana", "Enter the recovery password in order to recover the users files during password change" : "Anna palautussalasana, jotta käyttäjien tiedostot on mahdollista palauttaa salasanan muuttamisen yhteydessä", - "Group name" : "Ryhmän nimi", "Everyone" : "Kaikki", "Admins" : "Ylläpitäjät", "Disabled" : "Poistettu käytöstä", @@ -393,7 +416,11 @@ OC.L10N.register( "Subscribe to our news feed!" : "Tilaa uutissyötteemme!", "Subscribe to our newsletter!" : "Tilaa uutiskirjeemme!", "Show last log in" : "Näytä viimeisin sisäänkirjautuminen", + "Group name" : "Ryhmän nimi", "You have now an %s account, you can add, protect, and share your data." : "Sinulla on nyt %s-tili. Voit lisätä, suojata ja jakaa tiedostojasi.", + "Verifying" : "Vahvistetaan", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Tietoturvan ja suorituskyvyn vuoksi on tärkeää, että asennuksesi on määritetty oikein. Sen vuoksi teemme joitain automaattisia tarkistuksia. Lisätietoja on saatavilla dokumentaation \"Tips & Tricks\"-osiosta.", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "PHP-moduuli 'fileinfo' puuttuu. Suosittelemme kyseisen moduulin ottamista käyttöön, jotta MIME-tyyppien havaitseminen toimii parhaalla mahdollisella tavalla.", "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Voit luoda yksilöityjä salasanoja sovelluksille, jotta sinun ei tarvitse antaa henkilökohtaista salasanaasi niille. Voit myös poistaa niitä tarvittaessa.", "Follow us on Google+!" : "Seuraa meitä Google+:ssa!", "Follow us on Twitter!" : "Seuraa meitä Twitterissä!", diff --git a/settings/l10n/fi.json b/settings/l10n/fi.json index 868cbf93de2..e63fd75855f 100644 --- a/settings/l10n/fi.json +++ b/settings/l10n/fi.json @@ -10,6 +10,7 @@ "A login attempt using two-factor authentication failed (%1$s)" : "Kirjautumisyritys kaksivaiheista tunnistautumista käyttäen epäonnistui (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "<strong>Salasanaasi</strong> tai <strong>sähköpostiosoitettasi</strong> muokattiin", "Your apps" : "Sovelluksesi", + "Updates" : "Päivitykset", "Enabled apps" : "Käytössä olevat sovellukset", "Disabled apps" : "Käytöstä poistetut sovellukset", "App bundles" : "Sovelluskokoelmat", @@ -20,6 +21,7 @@ "Authentication error" : "Tunnistautumisvirhe", "Please provide an admin recovery password; otherwise, all user data will be lost." : "Anna ylläpitäjän palautussalasana; muuten kaikki käyttäjien data menetetään.", "Wrong admin recovery password. Please check the password and try again." : "Väärä ylläpitäjän salasana. Tarkista salasana ja yritä uudelleen.", + "Backend doesn't support password change, but the user's encryption key was updated." : "Taustaosa ei tue salasanan vaihtamista, mutta käyttäjän salausavain päivitettiin.", "installing and updating apps via the app store or Federated Cloud Sharing" : "Sovellusten asennus tai päivitys sovelluskaupasta tai federoidusta pilvijaosta", "Federated Cloud Sharing" : "Federoitu pilvijakaminen", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL käyttää vanhentunutta %s-versiota (%s). Päivitä käyttöjärjestelmäsi tai ominaisuudet kuten %s eivät toimi luotettavasti.", @@ -41,6 +43,10 @@ "To send a password link to the user an email address is required." : "Salasanalinkin lähettämiseksi käyttäjälle vaaditaan sähköpostiosoite.", "Unable to create user." : "Käyttäjän luominen ei onnistunut.", "Unable to delete user." : "Käyttäjän poistaminen ei onnistunut.", + "Error while enabling user." : "Virhe ottaessa käyttäjää käyttöön.", + "Error while disabling user." : "Virhe poistaessa käyttäjää käytöstä.", + "In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "Jotta Twitter-tilisi on mahdollista vahvistaa, twiittaa seuraava viesti (varmista että lähetät viestin sellaisenaan ilman rivivaihtoja):", + "In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Jotta verkkosivustosi on mahdollista vahvistaa, aseta seuraava sisältö verkkosivustosi juureen '.well-known/CloudIdVerificationCode.txt' (varmista että koko teksti on yhdellä rivillä):", "Settings saved" : "Asetukset tallennettu", "Unable to change full name" : "Koko nimen muuttaminen epäonnistui", "Unable to change email address" : "Sähköpostiosoitteen vaihtaminen ei onnistunut", @@ -63,6 +69,7 @@ "Your %s account was created" : "%s-tilisi luotiin", "Welcome aboard" : "Tervetuloa mukaan", "Welcome aboard %s" : "Tervetuloa mukaan %s", + "You now have an %s account, you can add, protect, and share your data." : "Sinulla on nyt %s-tili. Voit lisätä, suojata ja jakaa tietojasi.", "Your username is: %s" : "Käyttäjätunnuksesi on: %s", "Set your password" : "Aseta salasanasi", "Go to %s" : "Siirry %s-palveluun", @@ -91,7 +98,9 @@ "Enable" : "Käytä", "Enabling app …" : "Otetaan sovellusta käyttöön...", "Error while enabling app" : "Virhe ottaessa sovellusta käyttöön", + "Error: This app can not be enabled because it makes the server unstable" : "Virhe: tätä sovellusta ei voi ottaa käyttöön, koska se tekee palvelimesta epävakaan", "Error while disabling broken app" : "Virhe rikkinäistä sovellusta käytöstä poistaessa", + "No app updates available" : "Sovelluspäivityksiä ei ole saatavilla", "Updating...." : "Päivitetään...", "Error while updating app" : "Virhe sovellusta päivittäessä", "Updated" : "Päivitetty", @@ -135,6 +144,9 @@ "Visible to local users and to trusted servers" : "Näkyvillä vain paikallisille käyttäjille ja luotetuille palvelimille", "Public" : "Julkinen", "Will be synced to a global and public address book" : "Synkronoidaan maailmanlaajuiseen ja julkiseen osoitekirjaan", + "Verify" : "Vahvista", + "Verifying …" : "Vahvistetaan…", + "An error occured while changing your language. Please reload the page and try again." : "Kieltä vaihtaessa tapahtui virhe. Lataa sivu uudelleen ja yritä uudelleen.", "Select a profile picture" : "Valitse profiilikuva", "Very weak password" : "Erittäin heikko salasana", "Weak password" : "Heikko salasana", @@ -158,6 +170,7 @@ "Password successfully changed" : "Salasana vaihdettiin onnistuneesti", "Changing the password will result in data loss, because data recovery is not available for this user" : "Salasanan muuttaminen johtaa tietojen häviämiseen, koska tietojen palautusta ei ole käytettävissä tämän käyttäjän kohdalla", "Could not change the users email" : "Käyttäjän sähköpostiosoitteen vaihtaminen epäonnistui", + "Error while changing status of {user}" : "Käyttäjän {user} tilaa muuttaessa tapahtui virhe", "A valid username must be provided" : "Anna kelvollinen käyttäjätunnus", "Error creating user: {message}" : "Virhe käyttäjää luotaessa: {message}", "A valid password must be provided" : "Anna kelvollinen salasana", @@ -216,6 +229,7 @@ "Server-side encryption" : "Palvelinpään salaus", "Enable server-side encryption" : "Käytä palvelinpään salausta", "Please read carefully before activating server-side encryption: " : "Lue tarkasti, ennen kuin otat palvelinpään salauksen käyttöön:", + "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Salaus sellaisenaan ei takaa järjestelmäsi turvallisuutta. Tutustu dokumentaation saadaksesi lisätietoja, miten salaussovellus toimii ja nähdäksesi tuettuja käyttötapauksia.", "Be aware that encryption always increases the file size." : "Ota huomioon, että salaus kasvattaa aina tiedostojen kokoa.", "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Säännöllisten varmuuskopioiden ottaminen on erittäin tärkeää. Jos olet ottanut salauksen käyttöön, huolehdi salausavainten varmuuskopioinnista.", "This is the final warning: Do you really want to enable encryption?" : "Tämä on viimeinen varoitus: haluatko varmasti ottaa salauksen käyttöön?", @@ -226,14 +240,19 @@ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Sinun täytyy siirtää salausavaimet vanhasta salaustekniikasta (ownCloud <= 8.0) uuteen.", "Start migration" : "Käynnistä migraatio", "Security & setup warnings" : "Turvallisuus- ja asetusvaroitukset", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Tietoturvan ja suorituskyvyn vuoksi on tärkeää, että asennuksesi on määritetty oikein. Sen vuoksi teemme joitain automaattisia tarkistuksia. Lisätietoja on saatavilla dokumentaation \"Tips & Tricks\"-osiosta.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Vain luku -asetukset on otettu käyttöön. Tämä estää joidenkin asetusten määrittämisen selainkäyttöliittymän kautta. Lisäksi kyseinen tiedostoon tulee asettaa kirjoitusoikeus käsin joka päivityksen yhteydessä.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Tämä johtuu todennäköisesti välimuistista tai kiihdyttimestä kuten Zend OPcachesta tai eAcceleratorista.", + "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "PHP-moduuli 'fileinfo' puuttuu. Suosittelemme kyseisen moduulin ottamista käyttöön, jotta MIME-tyyppien havaitseminen toimii parhaalla mahdollisella tavalla.", "System locale can not be set to a one which supports UTF-8." : "Järjestelmän maa-asetusta ei voi asettaa UTF-8:aa tukevaksi.", + "This means that there might be problems with certain characters in filenames." : "Tämä tarkoittaa, että jotkin merkit saattavat aiheuttaa ongelmia tiedostojen nimissä.", "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Tutustu huolellisesti <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">asennusohjeisiin ↗</a> ja tarkista <a href=\"%s\">lokitiedostosta</a> mahdolliset virheet ja varoitukset.", "All checks passed." : "Läpäistiin kaikki tarkistukset.", "Background jobs" : "Taustatyöt", "Last job ran %s." : "Viimeisin työ suoritettu %s.", "Last job execution ran %s. Something seems wrong." : "Viimeisin cron-työn suoritus %s. Jokin vaikuttaa menneen pieleen.", + "Background job didn’t run yet!" : "Taustatyötä ei suoritettu vielä!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "Optimaalisen suorituskyvyn vuoksi on tärkeää määrittää taustatyöt oikein. Suuria asennuksia varten 'Cron' on suositeltava asetus. Lisätietoja on saatavilla dokumentaatiossa.", "Execute one task with each page loaded" : "Suorita yksi tehtävä jokaista ladattua sivua kohden", "Use system cron service to call the cron.php file every 15 minutes." : "Käytä järjestelmän cron-palvelua kutsuaksesi cron.php-tiedostoa 15 minuutin välein.", "The cron.php needs to be executed by the system user \"%s\"." : "Tiedosto cron.php tulee suorittaa järjestelmän käyttäjänä \"%s\".", @@ -254,9 +273,11 @@ "Restrict users to only share with users in their groups" : "Salli käyttäjien jakaa vain omassa ryhmässä olevien henkilöiden kesken", "Exclude groups from sharing" : "Kiellä ryhmiä jakamasta", "These groups will still be able to receive shares, but not to initiate them." : "Nämä ryhmät kykenevät vastaanottamaan jakoja, mutta eivät kuitenkaan itse pysty luoda jakoja.", + "Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "Salli käyttäjätunnusten automaattinen täydentäminen jakoikkunassa. Jos tämä asetus on pois käytöstä, tulee käyttäjän kirjoittaa käyttäjätunnus tai sähköpostiosoite kokonaan.", "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Näytä vastuuvapauslauseke julkisen linkin lähetyssivulla. (Näytetään vain, kun tiedostolista on piilotettu.)", "This text will be shown on the public link upload page when the file list is hidden." : "Tämä teksti näytetään julkisen linkin lähetyssivulla, kun tiedostolista on piilotettu.", "Tips & tricks" : "Vinkit", + "This is particularly recommended when using the desktop client for file synchronisation." : "Tämä on suositeltavaa erityisesti silloin, kun työpöytäsovellusta käytetään tiedostojen synkronointiin.", "How to do backups" : "Kuinka tehdä varmuuskopioita", "Advanced monitoring" : "Edistynyt valvonta", "Performance tuning" : "Suorituskyvyn hienosäätö", @@ -264,6 +285,8 @@ "Theming" : "Teemojen käyttö", "Check the security of your Nextcloud over our security scan" : "Tarkista Nextcloudisi tietoturva käyttäen tietoturvatarkistustamme", "Hardening and security guidance" : "Turvaamis- ja tietoturvaopas", + "Personal" : "Henkilökohtainen", + "Administration" : "Ylläpito", "You are using <strong>%s</strong> of <strong>%s</strong>" : "Käytössäsi on <strong>%s</strong>/<strong>%s</strong>", "You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Käytössäsi on <strong>%s</strong>/<strong>%s</strong> (<strong>%s %%</strong>)", "Profile picture" : "Profiilikuva", @@ -285,6 +308,7 @@ "Address" : "Osoite", "Your postal address" : "Postiosoitteesi", "Website" : "Verkkosivusto", + "It can take up to 24 hours before the account is displayed as verified." : "Saattaa kestää jopa 24 tuntia, ennen kuin tili näytetään vahvistettuna.", "Link https://…" : "Linkki https://…", "Twitter" : "Twitter", "Twitter handle @…" : "Twitter-tunnus @…", @@ -321,7 +345,6 @@ "Create" : "Luo", "Admin Recovery Password" : "Ylläpitäjän palautussalasana", "Enter the recovery password in order to recover the users files during password change" : "Anna palautussalasana, jotta käyttäjien tiedostot on mahdollista palauttaa salasanan muuttamisen yhteydessä", - "Group name" : "Ryhmän nimi", "Everyone" : "Kaikki", "Admins" : "Ylläpitäjät", "Disabled" : "Poistettu käytöstä", @@ -391,7 +414,11 @@ "Subscribe to our news feed!" : "Tilaa uutissyötteemme!", "Subscribe to our newsletter!" : "Tilaa uutiskirjeemme!", "Show last log in" : "Näytä viimeisin sisäänkirjautuminen", + "Group name" : "Ryhmän nimi", "You have now an %s account, you can add, protect, and share your data." : "Sinulla on nyt %s-tili. Voit lisätä, suojata ja jakaa tiedostojasi.", + "Verifying" : "Vahvistetaan", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Tietoturvan ja suorituskyvyn vuoksi on tärkeää, että asennuksesi on määritetty oikein. Sen vuoksi teemme joitain automaattisia tarkistuksia. Lisätietoja on saatavilla dokumentaation \"Tips & Tricks\"-osiosta.", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "PHP-moduuli 'fileinfo' puuttuu. Suosittelemme kyseisen moduulin ottamista käyttöön, jotta MIME-tyyppien havaitseminen toimii parhaalla mahdollisella tavalla.", "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Voit luoda yksilöityjä salasanoja sovelluksille, jotta sinun ei tarvitse antaa henkilökohtaista salasanaasi niille. Voit myös poistaa niitä tarvittaessa.", "Follow us on Google+!" : "Seuraa meitä Google+:ssa!", "Follow us on Twitter!" : "Seuraa meitä Twitterissä!", diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js index db62831e0b2..5ca8bb016c3 100644 --- a/settings/l10n/fr.js +++ b/settings/l10n/fr.js @@ -369,7 +369,6 @@ OC.L10N.register( "Create" : "Créer", "Admin Recovery Password" : "Mot de passe Administrateur de récupération", "Enter the recovery password in order to recover the users files during password change" : "Entrez le mot de passe de récupération pour récupérer les fichiers utilisateurs pendant le changement de mot de passe", - "Group name" : "Nom de groupe", "Everyone" : "Tout le monde", "Admins" : "Administrateurs", "Disabled" : "Désactivé", @@ -444,6 +443,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "Abonnez-vous à notre flux d'actualités!", "Subscribe to our newsletter!" : "Abonnez-vous à notre newsletter!", "Show last log in" : "Montrer la dernière connexion", + "Group name" : "Nom de groupe", "You have now an %s account, you can add, protect, and share your data." : "Vous avez maintenant un compte %s, vous pouvez désormais ajouter, protéger et partager vos données.", "Verifying" : "Vérification en cours", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Il est important pour la sécurité et la performance de votre instance que celle-ci soit correctement configurée. Afin de vous aider, votre instance Nextcloud effectue quelques vérifications automatiques. Pour de plus amples informations, veuillez consulter la section Trucs & Astuces, ainsi que la documentation Nextcloud.", diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json index c3eede358bc..24737a6cb5b 100644 --- a/settings/l10n/fr.json +++ b/settings/l10n/fr.json @@ -367,7 +367,6 @@ "Create" : "Créer", "Admin Recovery Password" : "Mot de passe Administrateur de récupération", "Enter the recovery password in order to recover the users files during password change" : "Entrez le mot de passe de récupération pour récupérer les fichiers utilisateurs pendant le changement de mot de passe", - "Group name" : "Nom de groupe", "Everyone" : "Tout le monde", "Admins" : "Administrateurs", "Disabled" : "Désactivé", @@ -442,6 +441,7 @@ "Subscribe to our news feed!" : "Abonnez-vous à notre flux d'actualités!", "Subscribe to our newsletter!" : "Abonnez-vous à notre newsletter!", "Show last log in" : "Montrer la dernière connexion", + "Group name" : "Nom de groupe", "You have now an %s account, you can add, protect, and share your data." : "Vous avez maintenant un compte %s, vous pouvez désormais ajouter, protéger et partager vos données.", "Verifying" : "Vérification en cours", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Il est important pour la sécurité et la performance de votre instance que celle-ci soit correctement configurée. Afin de vous aider, votre instance Nextcloud effectue quelques vérifications automatiques. Pour de plus amples informations, veuillez consulter la section Trucs & Astuces, ainsi que la documentation Nextcloud.", diff --git a/settings/l10n/hu.js b/settings/l10n/hu.js index af8bd13fbac..4de006ef3dc 100644 --- a/settings/l10n/hu.js +++ b/settings/l10n/hu.js @@ -369,7 +369,6 @@ OC.L10N.register( "Create" : "Létrehozás", "Admin Recovery Password" : "Adminisztrátori jelszó a fájlok visszanyerésére", "Enter the recovery password in order to recover the users files during password change" : "Adja meg az adatok visszanyeréséhez szükséges jelszót arra az esetre, ha a felhasználók megváltoztatják a jelszavukat", - "Group name" : "Csoport neve", "Everyone" : "Mindenki", "Admins" : "Adminisztrátorok", "Disabled" : "Kikapcsolva", @@ -444,6 +443,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "Iratkozz fel a hírfolyamunkra!", "Subscribe to our newsletter!" : "Iratkozz fel a hírlevelünkre!", "Show last log in" : "Utolsó bejelentkezés megjelenítése", + "Group name" : "Csoport neve", "You have now an %s account, you can add, protect, and share your data." : "Most már van egy %s fiókod, hozzáadhatod, védheted és megoszthatod az adataidat.", "Verifying" : "Ellenőrzés", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "A telepítésed biztonságához és megfelelő teljesítményéhez fontos, hogy minden beállítás helyes legyen. Ennek érdekében segítünk pár automatikus ellenőrzéssel. Kérlek tekintsd meg a tippek&trükkök részt a dokumentációban több információért.", diff --git a/settings/l10n/hu.json b/settings/l10n/hu.json index fbaff4b1308..96842d85442 100644 --- a/settings/l10n/hu.json +++ b/settings/l10n/hu.json @@ -367,7 +367,6 @@ "Create" : "Létrehozás", "Admin Recovery Password" : "Adminisztrátori jelszó a fájlok visszanyerésére", "Enter the recovery password in order to recover the users files during password change" : "Adja meg az adatok visszanyeréséhez szükséges jelszót arra az esetre, ha a felhasználók megváltoztatják a jelszavukat", - "Group name" : "Csoport neve", "Everyone" : "Mindenki", "Admins" : "Adminisztrátorok", "Disabled" : "Kikapcsolva", @@ -442,6 +441,7 @@ "Subscribe to our news feed!" : "Iratkozz fel a hírfolyamunkra!", "Subscribe to our newsletter!" : "Iratkozz fel a hírlevelünkre!", "Show last log in" : "Utolsó bejelentkezés megjelenítése", + "Group name" : "Csoport neve", "You have now an %s account, you can add, protect, and share your data." : "Most már van egy %s fiókod, hozzáadhatod, védheted és megoszthatod az adataidat.", "Verifying" : "Ellenőrzés", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "A telepítésed biztonságához és megfelelő teljesítményéhez fontos, hogy minden beállítás helyes legyen. Ennek érdekében segítünk pár automatikus ellenőrzéssel. Kérlek tekintsd meg a tippek&trükkök részt a dokumentációban több információért.", diff --git a/settings/l10n/ia.js b/settings/l10n/ia.js index 1a143a4b8a9..74a3956ace4 100644 --- a/settings/l10n/ia.js +++ b/settings/l10n/ia.js @@ -210,7 +210,6 @@ OC.L10N.register( "E-Mail" : "E-posta", "Create" : "Crear", "Admin Recovery Password" : "Recuperation de Contrasigno del Administrator", - "Group name" : "Nomine del gruppo", "Everyone" : "Totos", "Admins" : "Administratores", "Default quota" : "Quota predefinite", @@ -246,6 +245,7 @@ OC.L10N.register( "Name" : "Nomine", "Follow us on Google Plus!" : "Seque nos in Google Plus!", "Subscribe to our twitter channel!" : "Subscribe a nostre canal Twitter!", - "Subscribe to our news feed!" : "Subscribe a nostre syndication de novas!" + "Subscribe to our news feed!" : "Subscribe a nostre syndication de novas!", + "Group name" : "Nomine del gruppo" }, "nplurals=2; plural=(n != 1);"); diff --git a/settings/l10n/ia.json b/settings/l10n/ia.json index 78bbb510584..cb5bfd7ebdd 100644 --- a/settings/l10n/ia.json +++ b/settings/l10n/ia.json @@ -208,7 +208,6 @@ "E-Mail" : "E-posta", "Create" : "Crear", "Admin Recovery Password" : "Recuperation de Contrasigno del Administrator", - "Group name" : "Nomine del gruppo", "Everyone" : "Totos", "Admins" : "Administratores", "Default quota" : "Quota predefinite", @@ -244,6 +243,7 @@ "Name" : "Nomine", "Follow us on Google Plus!" : "Seque nos in Google Plus!", "Subscribe to our twitter channel!" : "Subscribe a nostre canal Twitter!", - "Subscribe to our news feed!" : "Subscribe a nostre syndication de novas!" + "Subscribe to our news feed!" : "Subscribe a nostre syndication de novas!", + "Group name" : "Nomine del gruppo" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/settings/l10n/is.js b/settings/l10n/is.js index 84100ac6784..910341cce17 100644 --- a/settings/l10n/is.js +++ b/settings/l10n/is.js @@ -12,6 +12,7 @@ OC.L10N.register( "A login attempt using two-factor authentication failed (%1$s)" : "Innskráning með tveggja-þrepa auðkenningu mistókst (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Breyting hefur orðið á <strong>lykilorði</strong> eða <strong>tölvupóstfangi</strong> þínu", "Your apps" : "Forritin þín", + "Updates" : "Uppfærslur", "Enabled apps" : "Virk forrit", "Disabled apps" : "Óvirk forrit", "App bundles" : "Forritavöndlar", @@ -103,6 +104,7 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "Villa: ekki er hægt að virkja þetta forrit því það gerir þjóninn óstöðugan.", "Error: Could not disable broken app" : "Villa: gat ekki gert bilaða forritið óvirkt", "Error while disabling broken app" : "Villa við að gera bilaða forritið óvirkt", + "No app updates available" : "Engar forritsuppfærslur tiltækar", "Updating...." : "Uppfæri...", "Error while updating app" : "Villa við að uppfæra forrit", "Updated" : "Uppfært", @@ -367,7 +369,6 @@ OC.L10N.register( "Create" : "Búa til", "Admin Recovery Password" : "Endurheimtulykilorð kerfisstjóra", "Enter the recovery password in order to recover the users files during password change" : "Settu inn endurheimtulykilorð til að endurheimta skrár notandans við breytingu á lykilorði", - "Group name" : "Heiti hóps", "Everyone" : "Allir", "Admins" : "Kerfisstjórar", "Disabled" : "Óvirkt", @@ -442,6 +443,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "Gerstu áskrifandi að fréttastraumi okkar!", "Subscribe to our newsletter!" : "Gerstu áskrifandi að fréttabréfinu okkar!", "Show last log in" : "Birta síðustu innskráningu", + "Group name" : "Heiti hóps", "You have now an %s account, you can add, protect, and share your data." : "Þú ert núna með %s aðgang, þú getur bætt við, varið og deilt gögnunum þínum.", "Verifying" : "Sannreyni", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Það er mikilvægt fyrir öryggi og afköst uppsetningarinnar þinnar að allt sé rétt stillt. Til að hjálpa við að svo sé, eru gerðar ýmsar sjálfvirkar prófanir. Skoðaðu 'Ábendingar og góð ráð' (Tips & Tricks) og hjálparskjölin til að sjá ítarlegar upplýsingar.", diff --git a/settings/l10n/is.json b/settings/l10n/is.json index 068547d07da..c2fb3310013 100644 --- a/settings/l10n/is.json +++ b/settings/l10n/is.json @@ -10,6 +10,7 @@ "A login attempt using two-factor authentication failed (%1$s)" : "Innskráning með tveggja-þrepa auðkenningu mistókst (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Breyting hefur orðið á <strong>lykilorði</strong> eða <strong>tölvupóstfangi</strong> þínu", "Your apps" : "Forritin þín", + "Updates" : "Uppfærslur", "Enabled apps" : "Virk forrit", "Disabled apps" : "Óvirk forrit", "App bundles" : "Forritavöndlar", @@ -101,6 +102,7 @@ "Error: This app can not be enabled because it makes the server unstable" : "Villa: ekki er hægt að virkja þetta forrit því það gerir þjóninn óstöðugan.", "Error: Could not disable broken app" : "Villa: gat ekki gert bilaða forritið óvirkt", "Error while disabling broken app" : "Villa við að gera bilaða forritið óvirkt", + "No app updates available" : "Engar forritsuppfærslur tiltækar", "Updating...." : "Uppfæri...", "Error while updating app" : "Villa við að uppfæra forrit", "Updated" : "Uppfært", @@ -365,7 +367,6 @@ "Create" : "Búa til", "Admin Recovery Password" : "Endurheimtulykilorð kerfisstjóra", "Enter the recovery password in order to recover the users files during password change" : "Settu inn endurheimtulykilorð til að endurheimta skrár notandans við breytingu á lykilorði", - "Group name" : "Heiti hóps", "Everyone" : "Allir", "Admins" : "Kerfisstjórar", "Disabled" : "Óvirkt", @@ -440,6 +441,7 @@ "Subscribe to our news feed!" : "Gerstu áskrifandi að fréttastraumi okkar!", "Subscribe to our newsletter!" : "Gerstu áskrifandi að fréttabréfinu okkar!", "Show last log in" : "Birta síðustu innskráningu", + "Group name" : "Heiti hóps", "You have now an %s account, you can add, protect, and share your data." : "Þú ert núna með %s aðgang, þú getur bætt við, varið og deilt gögnunum þínum.", "Verifying" : "Sannreyni", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Það er mikilvægt fyrir öryggi og afköst uppsetningarinnar þinnar að allt sé rétt stillt. Til að hjálpa við að svo sé, eru gerðar ýmsar sjálfvirkar prófanir. Skoðaðu 'Ábendingar og góð ráð' (Tips & Tricks) og hjálparskjölin til að sjá ítarlegar upplýsingar.", diff --git a/settings/l10n/it.js b/settings/l10n/it.js index a777f676c21..707e3046d9b 100644 --- a/settings/l10n/it.js +++ b/settings/l10n/it.js @@ -369,7 +369,6 @@ OC.L10N.register( "Create" : "Crea", "Admin Recovery Password" : "Password di ripristino amministrativa", "Enter the recovery password in order to recover the users files during password change" : "Digita la password di ripristino per recuperare i file degli utenti durante la modifica della password.", - "Group name" : "Nome del gruppo", "Everyone" : "Chiunque", "Admins" : "Amministratori", "Disabled" : "Disabilitati", @@ -444,6 +443,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "Iscriviti alla nostra fonte di notizie!", "Subscribe to our newsletter!" : "Iscriviti alla nostra newsletter!", "Show last log in" : "Mostra ultimo accesso", + "Group name" : "Nome del gruppo", "You have now an %s account, you can add, protect, and share your data." : "Ora hai un account %s, puoi aggiungere, proteggere e condividere i tuoi dati.", "Verifying" : "Verifica in corso", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "È importante per la sicurezza e le prestazioni della tua istanza che tutto sia configurato correttamente. Per aiutarti in questo senso, stiamo eseguendo qualche controllo automatico. Vedi la sezione Suggerimenti e trucchi e la documentazione per ulteriori informazioni.", diff --git a/settings/l10n/it.json b/settings/l10n/it.json index de93e12812f..22fb5d72e9d 100644 --- a/settings/l10n/it.json +++ b/settings/l10n/it.json @@ -367,7 +367,6 @@ "Create" : "Crea", "Admin Recovery Password" : "Password di ripristino amministrativa", "Enter the recovery password in order to recover the users files during password change" : "Digita la password di ripristino per recuperare i file degli utenti durante la modifica della password.", - "Group name" : "Nome del gruppo", "Everyone" : "Chiunque", "Admins" : "Amministratori", "Disabled" : "Disabilitati", @@ -442,6 +441,7 @@ "Subscribe to our news feed!" : "Iscriviti alla nostra fonte di notizie!", "Subscribe to our newsletter!" : "Iscriviti alla nostra newsletter!", "Show last log in" : "Mostra ultimo accesso", + "Group name" : "Nome del gruppo", "You have now an %s account, you can add, protect, and share your data." : "Ora hai un account %s, puoi aggiungere, proteggere e condividere i tuoi dati.", "Verifying" : "Verifica in corso", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "È importante per la sicurezza e le prestazioni della tua istanza che tutto sia configurato correttamente. Per aiutarti in questo senso, stiamo eseguendo qualche controllo automatico. Vedi la sezione Suggerimenti e trucchi e la documentazione per ulteriori informazioni.", diff --git a/settings/l10n/ja.js b/settings/l10n/ja.js index 4c2eda706e0..061700bd27d 100644 --- a/settings/l10n/ja.js +++ b/settings/l10n/ja.js @@ -355,7 +355,6 @@ OC.L10N.register( "Create" : "作成", "Admin Recovery Password" : "管理者リカバリパスワード", "Enter the recovery password in order to recover the users files during password change" : "パスワード変更時のユーザーのファイルを回復するため、リカバリパスワードを入力してください", - "Group name" : "グループ名", "Everyone" : "すべてのユーザー", "Admins" : "管理者", "Disabled" : "無効", @@ -430,6 +429,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "私たちのニュースフィードを購読!", "Subscribe to our newsletter!" : "ニュースレターを購読する!", "Show last log in" : "最終ログインを表示", + "Group name" : "グループ名", "You have now an %s account, you can add, protect, and share your data." : "今のアカウントは、%s です。データを追加、保護、共有できます。", "Verifying" : "検証中", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "PHP のモジュール 'fileinfo' が見つかりません。mimeタイプの検出を精度良く行うために、このモジュールを有効にすることを強くお勧めします。", diff --git a/settings/l10n/ja.json b/settings/l10n/ja.json index 931a38e4dcf..5b2d631ce94 100644 --- a/settings/l10n/ja.json +++ b/settings/l10n/ja.json @@ -353,7 +353,6 @@ "Create" : "作成", "Admin Recovery Password" : "管理者リカバリパスワード", "Enter the recovery password in order to recover the users files during password change" : "パスワード変更時のユーザーのファイルを回復するため、リカバリパスワードを入力してください", - "Group name" : "グループ名", "Everyone" : "すべてのユーザー", "Admins" : "管理者", "Disabled" : "無効", @@ -428,6 +427,7 @@ "Subscribe to our news feed!" : "私たちのニュースフィードを購読!", "Subscribe to our newsletter!" : "ニュースレターを購読する!", "Show last log in" : "最終ログインを表示", + "Group name" : "グループ名", "You have now an %s account, you can add, protect, and share your data." : "今のアカウントは、%s です。データを追加、保護、共有できます。", "Verifying" : "検証中", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "PHP のモジュール 'fileinfo' が見つかりません。mimeタイプの検出を精度良く行うために、このモジュールを有効にすることを強くお勧めします。", diff --git a/settings/l10n/ko.js b/settings/l10n/ko.js index fcd5bb431af..7f255f95a88 100644 --- a/settings/l10n/ko.js +++ b/settings/l10n/ko.js @@ -332,7 +332,6 @@ OC.L10N.register( "Create" : "만들기", "Admin Recovery Password" : "관리자 복구 암호", "Enter the recovery password in order to recover the users files during password change" : "암호 변경 시 변경된 사용자 파일을 복구하려면 복구 암호를 입력하십시오", - "Group name" : "그룹 이름", "Everyone" : "모두", "Admins" : "관리자", "Disabled" : "비활성화됨", @@ -407,6 +406,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "뉴스 피드를 구독하세요!", "Subscribe to our newsletter!" : "뉴스레터를 구독하세요!", "Show last log in" : "마지막 로그인 시간 보이기", + "Group name" : "그룹 이름", "You have now an %s account, you can add, protect, and share your data." : "새 %s 계정을 통해서 내 데이터를 추가, 보호, 공유할 수 있습니다.", "Verifying" : "확인 중", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "내 인스턴스가 올바르게 설정되어 있어야 시스템 보안과 성능을 보장할 수 있습니다. 설정 확인을 돕기 위해서 일부 항목을 자동으로 확인합니다. 더 많은 정보를 보려면 문서의 팁과 추가 정보 장을 참조하십시오.", diff --git a/settings/l10n/ko.json b/settings/l10n/ko.json index df8a7bd586c..0f8b4c6925b 100644 --- a/settings/l10n/ko.json +++ b/settings/l10n/ko.json @@ -330,7 +330,6 @@ "Create" : "만들기", "Admin Recovery Password" : "관리자 복구 암호", "Enter the recovery password in order to recover the users files during password change" : "암호 변경 시 변경된 사용자 파일을 복구하려면 복구 암호를 입력하십시오", - "Group name" : "그룹 이름", "Everyone" : "모두", "Admins" : "관리자", "Disabled" : "비활성화됨", @@ -405,6 +404,7 @@ "Subscribe to our news feed!" : "뉴스 피드를 구독하세요!", "Subscribe to our newsletter!" : "뉴스레터를 구독하세요!", "Show last log in" : "마지막 로그인 시간 보이기", + "Group name" : "그룹 이름", "You have now an %s account, you can add, protect, and share your data." : "새 %s 계정을 통해서 내 데이터를 추가, 보호, 공유할 수 있습니다.", "Verifying" : "확인 중", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "내 인스턴스가 올바르게 설정되어 있어야 시스템 보안과 성능을 보장할 수 있습니다. 설정 확인을 돕기 위해서 일부 항목을 자동으로 확인합니다. 더 많은 정보를 보려면 문서의 팁과 추가 정보 장을 참조하십시오.", diff --git a/settings/l10n/lv.js b/settings/l10n/lv.js index a2dcbc4968c..98e2edbc949 100644 --- a/settings/l10n/lv.js +++ b/settings/l10n/lv.js @@ -230,7 +230,6 @@ OC.L10N.register( "Create" : "Izveidot", "Admin Recovery Password" : "Administratora atgūšanas parole", "Enter the recovery password in order to recover the users files during password change" : "Ievadiet atgūšanas paroli, lai varētu atgūt lietotāja failus paroles maiņas laikā.", - "Group name" : "Grupas nosaukums", "Everyone" : "Visi", "Admins" : "Admins", "Default quota" : "Apjoms pēc noklusējuma", @@ -279,6 +278,7 @@ OC.L10N.register( "Name" : "Nosaukums", "Follow us on Google Plus!" : "Seko mums Google Plus!", "Subscribe to our newsletter!" : "Abonēt mūsu jaunumus!", - "Show last log in" : "Rādīt pēdējo autorizāciju" + "Show last log in" : "Rādīt pēdējo autorizāciju", + "Group name" : "Grupas nosaukums" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"); diff --git a/settings/l10n/lv.json b/settings/l10n/lv.json index 46c832a14aa..3cf703e9648 100644 --- a/settings/l10n/lv.json +++ b/settings/l10n/lv.json @@ -228,7 +228,6 @@ "Create" : "Izveidot", "Admin Recovery Password" : "Administratora atgūšanas parole", "Enter the recovery password in order to recover the users files during password change" : "Ievadiet atgūšanas paroli, lai varētu atgūt lietotāja failus paroles maiņas laikā.", - "Group name" : "Grupas nosaukums", "Everyone" : "Visi", "Admins" : "Admins", "Default quota" : "Apjoms pēc noklusējuma", @@ -277,6 +276,7 @@ "Name" : "Nosaukums", "Follow us on Google Plus!" : "Seko mums Google Plus!", "Subscribe to our newsletter!" : "Abonēt mūsu jaunumus!", - "Show last log in" : "Rādīt pēdējo autorizāciju" + "Show last log in" : "Rādīt pēdējo autorizāciju", + "Group name" : "Grupas nosaukums" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);" }
\ No newline at end of file diff --git a/settings/l10n/mn.js b/settings/l10n/mn.js index a6b31171d28..8ad5c343b15 100644 --- a/settings/l10n/mn.js +++ b/settings/l10n/mn.js @@ -88,7 +88,6 @@ OC.L10N.register( "Send email to new user" : "Шинэ хэрэглэгч рүү цахим шуудан илгээх", "E-Mail" : "Цахим шуудангийн хаяг", "Create" : "Шинээр үүсгэх", - "Group name" : "Бүлгийн нэр", "Everyone" : "Бүх хэрэглэгчид", "Admins" : "Админууд", "Disabled" : "Идэвхигүй", @@ -109,6 +108,7 @@ OC.L10N.register( "Uninstall app" : "Аппликэйшныг устгах", "Your website" : "Таны цахим хуудас", "Name" : "Нэр", - "Show last log in" : "Хамгийн сүүлд нэвтэрсэн огноог харуулах" + "Show last log in" : "Хамгийн сүүлд нэвтэрсэн огноог харуулах", + "Group name" : "Бүлгийн нэр" }, "nplurals=2; plural=(n != 1);"); diff --git a/settings/l10n/mn.json b/settings/l10n/mn.json index ece370349d1..bcb3e69a751 100644 --- a/settings/l10n/mn.json +++ b/settings/l10n/mn.json @@ -86,7 +86,6 @@ "Send email to new user" : "Шинэ хэрэглэгч рүү цахим шуудан илгээх", "E-Mail" : "Цахим шуудангийн хаяг", "Create" : "Шинээр үүсгэх", - "Group name" : "Бүлгийн нэр", "Everyone" : "Бүх хэрэглэгчид", "Admins" : "Админууд", "Disabled" : "Идэвхигүй", @@ -107,6 +106,7 @@ "Uninstall app" : "Аппликэйшныг устгах", "Your website" : "Таны цахим хуудас", "Name" : "Нэр", - "Show last log in" : "Хамгийн сүүлд нэвтэрсэн огноог харуулах" + "Show last log in" : "Хамгийн сүүлд нэвтэрсэн огноог харуулах", + "Group name" : "Бүлгийн нэр" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/settings/l10n/nb.js b/settings/l10n/nb.js index fd330f7e614..687f36bfe13 100644 --- a/settings/l10n/nb.js +++ b/settings/l10n/nb.js @@ -369,7 +369,6 @@ OC.L10N.register( "Create" : "Opprett", "Admin Recovery Password" : "Administrativt gjenopprettingspassord", "Enter the recovery password in order to recover the users files during password change" : "Legg inn gjenopprettingspassordet for å gjenopprette brukerfilene når passordet endres", - "Group name" : "Gruppenavn", "Everyone" : "Alle", "Admins" : "Administratorer", "Disabled" : "Avskrudd", @@ -444,6 +443,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "Abonner på vår nyhetsstrøm!", "Subscribe to our newsletter!" : "Abonner på vårt nyhetsbrev!", "Show last log in" : "Vis siste innlogging", + "Group name" : "Gruppenavn", "You have now an %s account, you can add, protect, and share your data." : "Du har nå en %s-konto, du kan legge til, beskytte og dele din data.", "Verifying" : "Bekrefter", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Det er viktig for sikkerheten og ytelsen på din installasjon at alt er satt opp rett. For å hjelpe deg er det satt i verk noen automatiske sjekker. Se \"Tips og triks\"-delen og i dokumentasjonen for mer informasjon", diff --git a/settings/l10n/nb.json b/settings/l10n/nb.json index 260cf766179..9e7d7bbc78b 100644 --- a/settings/l10n/nb.json +++ b/settings/l10n/nb.json @@ -367,7 +367,6 @@ "Create" : "Opprett", "Admin Recovery Password" : "Administrativt gjenopprettingspassord", "Enter the recovery password in order to recover the users files during password change" : "Legg inn gjenopprettingspassordet for å gjenopprette brukerfilene når passordet endres", - "Group name" : "Gruppenavn", "Everyone" : "Alle", "Admins" : "Administratorer", "Disabled" : "Avskrudd", @@ -442,6 +441,7 @@ "Subscribe to our news feed!" : "Abonner på vår nyhetsstrøm!", "Subscribe to our newsletter!" : "Abonner på vårt nyhetsbrev!", "Show last log in" : "Vis siste innlogging", + "Group name" : "Gruppenavn", "You have now an %s account, you can add, protect, and share your data." : "Du har nå en %s-konto, du kan legge til, beskytte og dele din data.", "Verifying" : "Bekrefter", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Det er viktig for sikkerheten og ytelsen på din installasjon at alt er satt opp rett. For å hjelpe deg er det satt i verk noen automatiske sjekker. Se \"Tips og triks\"-delen og i dokumentasjonen for mer informasjon", diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js index 3a055aa3632..26c547d6cd2 100644 --- a/settings/l10n/nl.js +++ b/settings/l10n/nl.js @@ -8,10 +8,11 @@ OC.L10N.register( "You changed your email address" : "Je wijzigde je e-mailadres", "Your email address was changed by an administrator" : "Je e-mailadres is gewijzigd door een beheerder", "Security" : "Beveiliging", - "You successfully logged in using two-factor authentication (%1$s)" : "Je bent succesvol ingelogd via tweefactot authenticatie (%1$s)", + "You successfully logged in using two-factor authentication (%1$s)" : "Je bent succesvol ingelogd via twee-factor authenticatie (%1$s)", "A login attempt using two-factor authentication failed (%1$s)" : "Een inlogpoging via tweefactor authenticatie is mislukt (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Je <strong>wachtwoord</strong> of <strong>e-mailadres</strong> is gewijzigd", "Your apps" : "Jouw apps", + "Updates" : "Updates", "Enabled apps" : "Ingeschakelde apps", "Disabled apps" : "Uitgeschakelde apps", "App bundles" : "App bundels", @@ -103,6 +104,7 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "Fout: Deze app kan niet ingeschakeld worden, omdat die de server onstabiel maakt", "Error: Could not disable broken app" : "Fout: Kan de beschadigde app niet uitschakelen", "Error while disabling broken app" : "Fout bij het uitschakelen van de beschadigde app", + "No app updates available" : "Geen app updates beschikbaar", "Updating...." : "Bijwerken....", "Error while updating app" : "Fout bij het bijwerken van de app", "Updated" : "Bijgewerkt", @@ -367,7 +369,6 @@ OC.L10N.register( "Create" : "Aanmaken", "Admin Recovery Password" : "Beheer herstel wachtwoord", "Enter the recovery password in order to recover the users files during password change" : "Voer het herstel wachtwoord in om de gebruikersbestanden terug te halen bij wachtwoordwijziging", - "Group name" : "Groepsnaam", "Everyone" : "Iedereen", "Admins" : "Beheerders", "Disabled" : "Uitgeschakeld", @@ -442,6 +443,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "Abonneer jezelf op onze nieuwsfeed!", "Subscribe to our newsletter!" : "Abonneer jezelf op onze nieuwsbrief!", "Show last log in" : "Toon laatste inlog", + "Group name" : "Groepsnaam", "You have now an %s account, you can add, protect, and share your data." : "Je hebt nu een %s account, je kan nu je data toevoegen, beschermen en delen.", "Verifying" : "Verifiëren", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Voor beveiliging en prestaties van je server is het belangrijk dat alles goed is geconfigureerd. Om je hierbij te helpen doen we paar automatische controles. Bekijk de Tips & Trucs sectie en de ocumentatie voor meer informatie.", diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json index f8e90285d13..7137c88f1bb 100644 --- a/settings/l10n/nl.json +++ b/settings/l10n/nl.json @@ -6,10 +6,11 @@ "You changed your email address" : "Je wijzigde je e-mailadres", "Your email address was changed by an administrator" : "Je e-mailadres is gewijzigd door een beheerder", "Security" : "Beveiliging", - "You successfully logged in using two-factor authentication (%1$s)" : "Je bent succesvol ingelogd via tweefactot authenticatie (%1$s)", + "You successfully logged in using two-factor authentication (%1$s)" : "Je bent succesvol ingelogd via twee-factor authenticatie (%1$s)", "A login attempt using two-factor authentication failed (%1$s)" : "Een inlogpoging via tweefactor authenticatie is mislukt (%1$s)", "Your <strong>password</strong> or <strong>email</strong> was modified" : "Je <strong>wachtwoord</strong> of <strong>e-mailadres</strong> is gewijzigd", "Your apps" : "Jouw apps", + "Updates" : "Updates", "Enabled apps" : "Ingeschakelde apps", "Disabled apps" : "Uitgeschakelde apps", "App bundles" : "App bundels", @@ -101,6 +102,7 @@ "Error: This app can not be enabled because it makes the server unstable" : "Fout: Deze app kan niet ingeschakeld worden, omdat die de server onstabiel maakt", "Error: Could not disable broken app" : "Fout: Kan de beschadigde app niet uitschakelen", "Error while disabling broken app" : "Fout bij het uitschakelen van de beschadigde app", + "No app updates available" : "Geen app updates beschikbaar", "Updating...." : "Bijwerken....", "Error while updating app" : "Fout bij het bijwerken van de app", "Updated" : "Bijgewerkt", @@ -365,7 +367,6 @@ "Create" : "Aanmaken", "Admin Recovery Password" : "Beheer herstel wachtwoord", "Enter the recovery password in order to recover the users files during password change" : "Voer het herstel wachtwoord in om de gebruikersbestanden terug te halen bij wachtwoordwijziging", - "Group name" : "Groepsnaam", "Everyone" : "Iedereen", "Admins" : "Beheerders", "Disabled" : "Uitgeschakeld", @@ -440,6 +441,7 @@ "Subscribe to our news feed!" : "Abonneer jezelf op onze nieuwsfeed!", "Subscribe to our newsletter!" : "Abonneer jezelf op onze nieuwsbrief!", "Show last log in" : "Toon laatste inlog", + "Group name" : "Groepsnaam", "You have now an %s account, you can add, protect, and share your data." : "Je hebt nu een %s account, je kan nu je data toevoegen, beschermen en delen.", "Verifying" : "Verifiëren", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Voor beveiliging en prestaties van je server is het belangrijk dat alles goed is geconfigureerd. Om je hierbij te helpen doen we paar automatische controles. Bekijk de Tips & Trucs sectie en de ocumentatie voor meer informatie.", diff --git a/settings/l10n/pl.js b/settings/l10n/pl.js index 4f38d4df973..f883efecd9f 100644 --- a/settings/l10n/pl.js +++ b/settings/l10n/pl.js @@ -369,7 +369,6 @@ OC.L10N.register( "Create" : "Utwórz", "Admin Recovery Password" : "Hasło klucza odzyskiwania", "Enter the recovery password in order to recover the users files during password change" : "Wpisz hasło odzyskiwania, aby odzyskać pliki użytkowników podczas zmiany hasła", - "Group name" : "Nazwa grupy", "Everyone" : "Wszyscy", "Admins" : "Administratorzy", "Disabled" : "Wyłączone", @@ -444,6 +443,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "Zapisz się do naszego kanału informacyjnego!", "Subscribe to our newsletter!" : "Zapisz się do naszego newslettera!", "Show last log in" : "Pokaż ostatni login", + "Group name" : "Nazwa grupy", "You have now an %s account, you can add, protect, and share your data." : "Masz teraz konto na %s, możesz edytować, chronić i współdzielić dane.", "Verifying" : "Sprawdzanie", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Poprawna konfiguracja jest ważna dla bezpieczeństwa i wydajności Twojej instancji. W celach pomocniczych przeprowadzane są automatyczne kontrole. Więcej informacji można znaleźć w dziale Wskazówki i Porady oraz w dokumentacji.", diff --git a/settings/l10n/pl.json b/settings/l10n/pl.json index 941e5d44091..e4f645e341e 100644 --- a/settings/l10n/pl.json +++ b/settings/l10n/pl.json @@ -367,7 +367,6 @@ "Create" : "Utwórz", "Admin Recovery Password" : "Hasło klucza odzyskiwania", "Enter the recovery password in order to recover the users files during password change" : "Wpisz hasło odzyskiwania, aby odzyskać pliki użytkowników podczas zmiany hasła", - "Group name" : "Nazwa grupy", "Everyone" : "Wszyscy", "Admins" : "Administratorzy", "Disabled" : "Wyłączone", @@ -442,6 +441,7 @@ "Subscribe to our news feed!" : "Zapisz się do naszego kanału informacyjnego!", "Subscribe to our newsletter!" : "Zapisz się do naszego newslettera!", "Show last log in" : "Pokaż ostatni login", + "Group name" : "Nazwa grupy", "You have now an %s account, you can add, protect, and share your data." : "Masz teraz konto na %s, możesz edytować, chronić i współdzielić dane.", "Verifying" : "Sprawdzanie", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Poprawna konfiguracja jest ważna dla bezpieczeństwa i wydajności Twojej instancji. W celach pomocniczych przeprowadzane są automatyczne kontrole. Więcej informacji można znaleźć w dziale Wskazówki i Porady oraz w dokumentacji.", diff --git a/settings/l10n/pt_BR.js b/settings/l10n/pt_BR.js index fcc04bf8449..f2012354a08 100644 --- a/settings/l10n/pt_BR.js +++ b/settings/l10n/pt_BR.js @@ -369,7 +369,6 @@ OC.L10N.register( "Create" : "Criar", "Admin Recovery Password" : "Senha de recuperação do administrador", "Enter the recovery password in order to recover the users files during password change" : "Digite a senha de recuperação para recuperar os arquivos dos usuários durante a mudança de senha.", - "Group name" : "Nome do grupo", "Everyone" : "Para todos", "Admins" : "Administradores", "Disabled" : "Desabilitado", @@ -444,6 +443,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "Assine nosso feed de notícias!", "Subscribe to our newsletter!" : "Inscreva-se para receber nosso boletim informativo!", "Show last log in" : "Mostrar o último acesso", + "Group name" : "Nome do grupo", "You have now an %s account, you can add, protect, and share your data." : "Agora que você tem uma conta %s, pode adicionar, proteger e compartilhar seus dados.", "Verifying" : "Verificando", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "É importante para a segurança e o desempenho de sua instância que tudo esteja configurado corretamente. Para ajudá-lo com isso, estamos fazendo algumas verificações automáticas. Consulte a seção Dicas e a documentação para obter mais informações.", diff --git a/settings/l10n/pt_BR.json b/settings/l10n/pt_BR.json index 6eddf7971c6..17b4149950f 100644 --- a/settings/l10n/pt_BR.json +++ b/settings/l10n/pt_BR.json @@ -367,7 +367,6 @@ "Create" : "Criar", "Admin Recovery Password" : "Senha de recuperação do administrador", "Enter the recovery password in order to recover the users files during password change" : "Digite a senha de recuperação para recuperar os arquivos dos usuários durante a mudança de senha.", - "Group name" : "Nome do grupo", "Everyone" : "Para todos", "Admins" : "Administradores", "Disabled" : "Desabilitado", @@ -442,6 +441,7 @@ "Subscribe to our news feed!" : "Assine nosso feed de notícias!", "Subscribe to our newsletter!" : "Inscreva-se para receber nosso boletim informativo!", "Show last log in" : "Mostrar o último acesso", + "Group name" : "Nome do grupo", "You have now an %s account, you can add, protect, and share your data." : "Agora que você tem uma conta %s, pode adicionar, proteger e compartilhar seus dados.", "Verifying" : "Verificando", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "É importante para a segurança e o desempenho de sua instância que tudo esteja configurado corretamente. Para ajudá-lo com isso, estamos fazendo algumas verificações automáticas. Consulte a seção Dicas e a documentação para obter mais informações.", diff --git a/settings/l10n/ru.js b/settings/l10n/ru.js index 8d63e2c97b3..8f09c657bf1 100644 --- a/settings/l10n/ru.js +++ b/settings/l10n/ru.js @@ -2,22 +2,23 @@ OC.L10N.register( "settings", { "{actor} changed your password" : "{actor} сменил ваш пароль", - "You changed your password" : "Вы сменили пароль", + "You changed your password" : "Вы изменили свой пароль", "Your password was reset by an administrator" : "Ваш пароль был сброшен администратором", - "{actor} changed your email address" : "{actor} сменил ваш адрес email", - "You changed your email address" : "Вы изменили свой адрес email", - "Your email address was changed by an administrator" : "Ваш адрес email был изменён администратором", + "{actor} changed your email address" : "{actor} сменил ваш адрес электронной почты", + "You changed your email address" : "Вы изменили свой адрес электронной почты", + "Your email address was changed by an administrator" : "Ваш адрес электронной почты был изменён администратором", "Security" : "Безопасность", "You successfully logged in using two-factor authentication (%1$s)" : "Вы успешно вошли в систему используя двухфакторную аутентификацию (%1$s)", "A login attempt using two-factor authentication failed (%1$s)" : "Сбой при попытке входа с использованием двухфакторной аутентификации (%1$s)", - "Your <strong>password</strong> or <strong>email</strong> was modified" : "Вашr <strong>пароль</strong> или <strong>email</strong> были изменены", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "Вашr <strong>пароль</strong> или <strong>адрес электронной почты</strong> были изменены", "Your apps" : "Ваши приложения", + "Updates" : "Обновления", "Enabled apps" : "Активные приложения", "Disabled apps" : "Отключённые приложения", "App bundles" : "Пакеты приложений", "Wrong password" : "Неправильный пароль", "Saved" : "Сохранено", - "No user supplied" : "Не выбран Пользователь", + "No user supplied" : "Не выбран пользователь", "Unable to change password" : "Невозможно изменить пароль", "Authentication error" : "Ошибка аутентификации", "Please provide an admin recovery password; otherwise, all user data will be lost." : "Введите пароль восстановления администратора, в противном случае все пользовательские данные будут утеряны.", @@ -26,16 +27,16 @@ OC.L10N.register( "installing and updating apps via the app store or Federated Cloud Sharing" : "установка и обновление приложений через магазин приложений или федерацию облачных хранилищ", "Federated Cloud Sharing" : "Федерация облачных хранилищ", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL использует устаревшую версию %s (%s). Пожалуйста, обновите Вашу операционную систему, иначе такие возможности, как %s, не будут работать корректно.", - "A problem occurred, please check your log files (Error: %s)" : "Возникла проблема, пожалуйста, проверьте ваши файлы журнала (Ошибка: %s)", + "A problem occurred, please check your log files (Error: %s)" : "Возникла проблема, пожалуйста, проверьте журнал ошибок (Ошибка: %s)", "Migration Completed" : "Миграция завершена", - "Group already exists." : "Группа уже существует.", + "Group already exists." : "Такая группа уже существует.", "Unable to add group." : "Невозможно добавить группу.", "Unable to delete group." : "Невозможно удалить группу.", "Invalid SMTP password." : "Неверный пароль SMTP.", "Email setting test" : "Проверка настроек электронной почты", "Well done, %s!" : "Отлично, %s!", "If you received this email, the email configuration seems to be correct." : "Если вы получили это сообщение, значит электронная почта настроена правильно.", - "Email could not be sent. Check your mail server log" : "Не удалось отправить email. Проверьте журнал почтового сервера", + "Email could not be sent. Check your mail server log" : "Не удалось отправить email. Проверьте журнал ошибок почтового сервера", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Во время отправки письма произошла ошибка. Пожалуйста проверьте настройки. (Ошибка: %s)", "You need to set your user email before being able to send test emails." : "Вы должны настроить ваш собственный адрес электронной почты прежде чем отправлять тестовые сообщения.", "Invalid mail address" : "Некорректный адрес электронной почты", @@ -62,9 +63,9 @@ OC.L10N.register( "Password for %1$s changed on %2$s" : "Пароль %1$s изменен на сервере %2$s", "Password changed for %s" : "Пароль изменён для %s", "If you did not request this, please contact an administrator." : "В случае, если вы не запрашивали это действие, свяжитесь с администратором.", - "%1$s changed your email address on %2$s." : "%1$s изменил ваш адрес эл.почты на сервере %2$s.", - "Your email address on %s was changed." : "Ваш адрес эл.почты на сервере %s был изменён.", - "Your email address on %s was changed by an administrator." : "Ваш адрес эл.почты на сервере %s был изменён администратором.", + "%1$s changed your email address on %2$s." : "%1$s изменил ваш адрес электронной почты на сервере %2$s.", + "Your email address on %s was changed." : "Ваш адрес электронной почты на сервере %s был изменён.", + "Your email address on %s was changed by an administrator." : "Ваш адрес электронной почты на сервере %s был изменён администратором.", "Email address for %1$s changed on %2$s" : "Адрес электронной почты %1$s изменён на %2$s", "Email address changed for %s" : "Адрес эл.почты был изменен для %s.", "The new email address is %s" : "Новый адрес эл.почты теперь %s", @@ -103,6 +104,7 @@ OC.L10N.register( "Error: This app can not be enabled because it makes the server unstable" : "Ошибка: это приложение не может быть включено, так как оно сделает сервер нестабильным", "Error: Could not disable broken app" : "Ошибка: невозможно отключить «сломанное» приложение", "Error while disabling broken app" : "Ошибка при отключении сломанного приложения", + "No app updates available" : "У приложений нет доступных обновлений", "Updating...." : "Обновление...", "Error while updating app" : "Ошибка при обновлении приложения", "Updated" : "Обновлено", @@ -117,7 +119,7 @@ OC.L10N.register( "Enable all" : "Включить все", "Allow filesystem access" : "Разрешить доступ к файловой системе", "Disconnect" : "Отключить", - "Revoke" : "Отменить", + "Revoke" : "Отозвать", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -163,7 +165,7 @@ OC.L10N.register( "Error creating group: {message}" : "Ошибка создания группы: {message}", "A valid group name must be provided" : "Введите правильное имя группы", "deleted {groupName}" : "удалена {groupName}", - "undo" : "отмена", + "undo" : "отмена операции", "{size} used" : "{size} использовано", "never" : "никогда", "deleted {userName}" : "удалён {userName}", @@ -175,7 +177,7 @@ OC.L10N.register( "no group" : "Без группы", "Password successfully changed" : "Пароль успешно изменен.", "Changing the password will result in data loss, because data recovery is not available for this user" : "Изменение пароля приведёт к потере данных, так как восстановление данных не доступно для этого пользователя", - "Could not change the users email" : "Невозможно изменить электронный адрес пользователя", + "Could not change the users email" : "Невозможно изменить адрес электронной почты пользователя", "Error while changing status of {user}" : "Ошибка изменения статуса пользователя {user}", "A valid username must be provided" : "Укажите правильное имя пользователя", "Error creating user: {message}" : "Ошибка создания пользователя: {message}", @@ -367,7 +369,6 @@ OC.L10N.register( "Create" : "Создать", "Admin Recovery Password" : "Пароль административного восстановления", "Enter the recovery password in order to recover the users files during password change" : "Введите пароль для того, чтобы восстановить файлы пользователей при смене пароля", - "Group name" : "Название группы", "Everyone" : "Все", "Admins" : "Администраторы", "Disabled" : "Отключено", @@ -442,6 +443,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "Подпишитесь на нашу ленту новостей!", "Subscribe to our newsletter!" : "Подписывайтесь на нашу новостную рассылку!", "Show last log in" : "Показывать последний вход в систему", + "Group name" : "Название группы", "You have now an %s account, you can add, protect, and share your data." : "Теперь у вас учётная запись на сервере %s. Вы можете добавлять, защищать, и делиться своими данными.", "Verifying" : "Производится проверка", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Для обеспечения безопасности и производительности важно, чтобы всё было настроено правильно. Чтобы помочь вам в этом, мы проводим некоторые автоматические проверки. Дополнительную информацию см. В разделе «Советы и рекомендации» и в документации.", diff --git a/settings/l10n/ru.json b/settings/l10n/ru.json index dae7cc617c6..036f4264fb3 100644 --- a/settings/l10n/ru.json +++ b/settings/l10n/ru.json @@ -1,21 +1,22 @@ { "translations": { "{actor} changed your password" : "{actor} сменил ваш пароль", - "You changed your password" : "Вы сменили пароль", + "You changed your password" : "Вы изменили свой пароль", "Your password was reset by an administrator" : "Ваш пароль был сброшен администратором", - "{actor} changed your email address" : "{actor} сменил ваш адрес email", - "You changed your email address" : "Вы изменили свой адрес email", - "Your email address was changed by an administrator" : "Ваш адрес email был изменён администратором", + "{actor} changed your email address" : "{actor} сменил ваш адрес электронной почты", + "You changed your email address" : "Вы изменили свой адрес электронной почты", + "Your email address was changed by an administrator" : "Ваш адрес электронной почты был изменён администратором", "Security" : "Безопасность", "You successfully logged in using two-factor authentication (%1$s)" : "Вы успешно вошли в систему используя двухфакторную аутентификацию (%1$s)", "A login attempt using two-factor authentication failed (%1$s)" : "Сбой при попытке входа с использованием двухфакторной аутентификации (%1$s)", - "Your <strong>password</strong> or <strong>email</strong> was modified" : "Вашr <strong>пароль</strong> или <strong>email</strong> были изменены", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "Вашr <strong>пароль</strong> или <strong>адрес электронной почты</strong> были изменены", "Your apps" : "Ваши приложения", + "Updates" : "Обновления", "Enabled apps" : "Активные приложения", "Disabled apps" : "Отключённые приложения", "App bundles" : "Пакеты приложений", "Wrong password" : "Неправильный пароль", "Saved" : "Сохранено", - "No user supplied" : "Не выбран Пользователь", + "No user supplied" : "Не выбран пользователь", "Unable to change password" : "Невозможно изменить пароль", "Authentication error" : "Ошибка аутентификации", "Please provide an admin recovery password; otherwise, all user data will be lost." : "Введите пароль восстановления администратора, в противном случае все пользовательские данные будут утеряны.", @@ -24,16 +25,16 @@ "installing and updating apps via the app store or Federated Cloud Sharing" : "установка и обновление приложений через магазин приложений или федерацию облачных хранилищ", "Federated Cloud Sharing" : "Федерация облачных хранилищ", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL использует устаревшую версию %s (%s). Пожалуйста, обновите Вашу операционную систему, иначе такие возможности, как %s, не будут работать корректно.", - "A problem occurred, please check your log files (Error: %s)" : "Возникла проблема, пожалуйста, проверьте ваши файлы журнала (Ошибка: %s)", + "A problem occurred, please check your log files (Error: %s)" : "Возникла проблема, пожалуйста, проверьте журнал ошибок (Ошибка: %s)", "Migration Completed" : "Миграция завершена", - "Group already exists." : "Группа уже существует.", + "Group already exists." : "Такая группа уже существует.", "Unable to add group." : "Невозможно добавить группу.", "Unable to delete group." : "Невозможно удалить группу.", "Invalid SMTP password." : "Неверный пароль SMTP.", "Email setting test" : "Проверка настроек электронной почты", "Well done, %s!" : "Отлично, %s!", "If you received this email, the email configuration seems to be correct." : "Если вы получили это сообщение, значит электронная почта настроена правильно.", - "Email could not be sent. Check your mail server log" : "Не удалось отправить email. Проверьте журнал почтового сервера", + "Email could not be sent. Check your mail server log" : "Не удалось отправить email. Проверьте журнал ошибок почтового сервера", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Во время отправки письма произошла ошибка. Пожалуйста проверьте настройки. (Ошибка: %s)", "You need to set your user email before being able to send test emails." : "Вы должны настроить ваш собственный адрес электронной почты прежде чем отправлять тестовые сообщения.", "Invalid mail address" : "Некорректный адрес электронной почты", @@ -60,9 +61,9 @@ "Password for %1$s changed on %2$s" : "Пароль %1$s изменен на сервере %2$s", "Password changed for %s" : "Пароль изменён для %s", "If you did not request this, please contact an administrator." : "В случае, если вы не запрашивали это действие, свяжитесь с администратором.", - "%1$s changed your email address on %2$s." : "%1$s изменил ваш адрес эл.почты на сервере %2$s.", - "Your email address on %s was changed." : "Ваш адрес эл.почты на сервере %s был изменён.", - "Your email address on %s was changed by an administrator." : "Ваш адрес эл.почты на сервере %s был изменён администратором.", + "%1$s changed your email address on %2$s." : "%1$s изменил ваш адрес электронной почты на сервере %2$s.", + "Your email address on %s was changed." : "Ваш адрес электронной почты на сервере %s был изменён.", + "Your email address on %s was changed by an administrator." : "Ваш адрес электронной почты на сервере %s был изменён администратором.", "Email address for %1$s changed on %2$s" : "Адрес электронной почты %1$s изменён на %2$s", "Email address changed for %s" : "Адрес эл.почты был изменен для %s.", "The new email address is %s" : "Новый адрес эл.почты теперь %s", @@ -101,6 +102,7 @@ "Error: This app can not be enabled because it makes the server unstable" : "Ошибка: это приложение не может быть включено, так как оно сделает сервер нестабильным", "Error: Could not disable broken app" : "Ошибка: невозможно отключить «сломанное» приложение", "Error while disabling broken app" : "Ошибка при отключении сломанного приложения", + "No app updates available" : "У приложений нет доступных обновлений", "Updating...." : "Обновление...", "Error while updating app" : "Ошибка при обновлении приложения", "Updated" : "Обновлено", @@ -115,7 +117,7 @@ "Enable all" : "Включить все", "Allow filesystem access" : "Разрешить доступ к файловой системе", "Disconnect" : "Отключить", - "Revoke" : "Отменить", + "Revoke" : "Отозвать", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -161,7 +163,7 @@ "Error creating group: {message}" : "Ошибка создания группы: {message}", "A valid group name must be provided" : "Введите правильное имя группы", "deleted {groupName}" : "удалена {groupName}", - "undo" : "отмена", + "undo" : "отмена операции", "{size} used" : "{size} использовано", "never" : "никогда", "deleted {userName}" : "удалён {userName}", @@ -173,7 +175,7 @@ "no group" : "Без группы", "Password successfully changed" : "Пароль успешно изменен.", "Changing the password will result in data loss, because data recovery is not available for this user" : "Изменение пароля приведёт к потере данных, так как восстановление данных не доступно для этого пользователя", - "Could not change the users email" : "Невозможно изменить электронный адрес пользователя", + "Could not change the users email" : "Невозможно изменить адрес электронной почты пользователя", "Error while changing status of {user}" : "Ошибка изменения статуса пользователя {user}", "A valid username must be provided" : "Укажите правильное имя пользователя", "Error creating user: {message}" : "Ошибка создания пользователя: {message}", @@ -365,7 +367,6 @@ "Create" : "Создать", "Admin Recovery Password" : "Пароль административного восстановления", "Enter the recovery password in order to recover the users files during password change" : "Введите пароль для того, чтобы восстановить файлы пользователей при смене пароля", - "Group name" : "Название группы", "Everyone" : "Все", "Admins" : "Администраторы", "Disabled" : "Отключено", @@ -440,6 +441,7 @@ "Subscribe to our news feed!" : "Подпишитесь на нашу ленту новостей!", "Subscribe to our newsletter!" : "Подписывайтесь на нашу новостную рассылку!", "Show last log in" : "Показывать последний вход в систему", + "Group name" : "Название группы", "You have now an %s account, you can add, protect, and share your data." : "Теперь у вас учётная запись на сервере %s. Вы можете добавлять, защищать, и делиться своими данными.", "Verifying" : "Производится проверка", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Для обеспечения безопасности и производительности важно, чтобы всё было настроено правильно. Чтобы помочь вам в этом, мы проводим некоторые автоматические проверки. Дополнительную информацию см. В разделе «Советы и рекомендации» и в документации.", diff --git a/settings/l10n/sk.js b/settings/l10n/sk.js index 78846a2de02..83f9a615d9f 100644 --- a/settings/l10n/sk.js +++ b/settings/l10n/sk.js @@ -1,25 +1,49 @@ OC.L10N.register( "settings", { + "{actor} changed your password" : "{actor} zmenil Vaše heslo", + "You changed your password" : "Zmenili ste si heslo", + "Your password was reset by an administrator" : "Vaše heslo bolo resetované administrátorom", + "{actor} changed your email address" : "{actor} zmenil Vašu emailovú adresu", + "You changed your email address" : "Zmenili ste si emailovú adresu", + "Your email address was changed by an administrator" : "Vaša emailová adresa bola zmenená administrátorom", + "Security" : "Zabezpečenie", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "Vaše <strong>heslo</strong> alebo <strong>email</strong> bolo zmenené", + "Your apps" : "Vaše aplikácie", + "Updates" : "Aktualizácie", + "Enabled apps" : "Povolené aplikácie", + "Disabled apps" : "Zakázané aplikácie", + "App bundles" : "Aplikačné balíky", "Wrong password" : "Nesprávne heslo", "Saved" : "Uložené", "No user supplied" : "Nebol uvedený používateľ", "Unable to change password" : "Zmena hesla sa nepodarila", "Authentication error" : "Chyba autentifikácie", + "Please provide an admin recovery password; otherwise, all user data will be lost." : "Zadajte administrátorské heslo pre obnovu, inak budú všetky používateľské dáta stratené.", "Wrong admin recovery password. Please check the password and try again." : "Chybné administrátorské heslo pre obnovu. Skontrolujte správnosť hesla a skúste to znovu.", + "Backend doesn't support password change, but the user's encryption key was updated." : "Backend nepodporuje zmenu hesla, ale šifrovací kľúč používateľa bol zmenený.", "Federated Cloud Sharing" : "Sprístupnenie prostredníctvom Federated Cloud", + "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL používa zastaralú %sverziu (%s). Prosím aktualizujte si operačný systém pretože %snebude fungovať spoľahlivo.", "A problem occurred, please check your log files (Error: %s)" : "Nastala chyba, skontrolujte prosím váš log súbor (Chyba: %s)", "Migration Completed" : "Migrácia ukončená", "Group already exists." : "Skupina už existuje.", "Unable to add group." : "Nie je možné pridať skupinu.", "Unable to delete group." : "Nie je možné zmazať skupinu.", + "Invalid SMTP password." : "Nesprávne heslo pre SMTP", + "Email setting test" : "Test nastavení emailu", + "Well done, %s!" : "Dobrá práca, %s!", + "If you received this email, the email configuration seems to be correct." : "Ak ste prijali tento email, emailová konfigurácia sa zdá byť správna.", + "Email could not be sent. Check your mail server log" : "Nepodarilo sa odoslať email. Skontrolujte log Vášho mail servera", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Vyskytol sa problém pri odosielaní emailu. Prosím, znovu skontrolujte svoje nastavenia. (Chyba: %s)", "You need to set your user email before being able to send test emails." : "Musíte nastaviť svoj používateľský email, než budete môcť odoslať testovací email.", "Invalid mail address" : "Neplatná emailová adresa", "No valid group selected" : "Nebola zvolená platná skupina", "A user with that name already exists." : "Používateľ s týmto menom už existuje.", + "To send a password link to the user an email address is required." : "Pre odoslanie linky pre nastavenie hesla používateľovi sa vyžaduje emailová adresa.", "Unable to create user." : "Nie je možné vytvoriť používateľa.", "Unable to delete user." : "Nie je možné zmazať používateľa.", + "Error while enabling user." : "Chyba pri povoľovaní používateľa.", + "Error while disabling user." : "Chyba pri zakázaní používateľa.", "Settings saved" : "Nastavenia uložené", "Unable to change full name" : "Nemožno zmeniť meno a priezvisko", "Unable to change email address" : "Nemožno zmeniť emailovú adresu", @@ -28,9 +52,22 @@ OC.L10N.register( "Invalid user" : "Neplatný používateľ", "Unable to change mail address" : "Nemožno zmeniť emailovú adresu", "Email saved" : "Email uložený", + "%1$s changed your password on %2$s." : "%1$szmenil Vaše heslo na %2$s", + "Your password on %s was changed." : "Vaše heslo na %sbolo zmenené.", + "Your password on %s was reset by an administrator." : "Vaše heslo na %sbolo resetované administrátorom.", + "Password for %1$s changed on %2$s" : "Heslo pre %1$sbolo zmenené na %2$s", + "Password changed for %s" : "Heslo zmenené pre %s", + "If you did not request this, please contact an administrator." : "Ak ste to nevyžadovali, prosím kontaktujte administrátora.", + "%1$s changed your email address on %2$s." : "%1$szmenil Vašu emailovú adresu na %2$s", + "Your email address on %s was changed." : "Vaša emailová adresa na %sbola zmenená.", + "Your email address on %s was changed by an administrator." : "Vaša emailová adresa na %s bola zmenená administrátorom.", + "Email address for %1$s changed on %2$s" : "Emailová adresa pre %1$szmenená na %2$s", + "Email address changed for %s" : "Emailová adresa zmenená pre %s", + "The new email address is %s" : "Nová emailová adresa je %s", "Your %s account was created" : "Váš účet %s bol vytvorený", "Welcome aboard" : "Vitajte na palube", "Welcome aboard %s" : "Vitajte na palube %s", + "You now have an %s account, you can add, protect, and share your data." : "Teraz máte účet %s, môžete pridávať, chrániť a sprístupňovať Vaše dáta.", "Your username is: %s" : "Vaše používateľské meno je: %s", "Set your password" : "Nastavte si heslo", "Go to %s" : "Prejsť na %s", @@ -43,11 +80,15 @@ OC.L10N.register( "Migration in progress. Please wait until the migration is finished" : "Prebieha migrácia. Počkajte prosím, kým sa skončí", "Migration started …" : "Migrácia spustená ...", "Not saved" : "Neuložené", + "Sending…" : "Odosielam...", "Email sent" : "Email odoslaný", "Official" : "Oficiálny", "All" : "Všetky", "Update to %s" : "Aktualizovať na %s", "No apps found for your version" : "Aplikácie pre vašu verziu sa nenašli", + "The app will be downloaded from the app store" : "Aplikácia bude stiahnutá z obchodu", + "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Oficiálne aplikácie sú vyvíjané komunitou. Poskytujú centrálnu funkcionalitu a sú pripravené pre produkčné nasadenie.", + "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Schválené aplikácie sú vyvíjané dôveryhodnými vývojármi a prešli zbežnou kontrolou bezpečnosti. Sú aktívne udržiavané v otvorenom repozitári a ich udržovatelia ich považujú za stabilné pre bežné použitie.", "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Táto aplikácia nie je skontrolovaná na bezpečnostné chyby, je nová, alebo patrí medzi nestabilné. Inštalácia na vlastné riziko.", "Disabling app …" : "Vypínanie aplikácie ...", "Error while disabling app" : "Chyba pri zakázaní aplikácie", @@ -55,15 +96,22 @@ OC.L10N.register( "Enable" : "Zapnúť", "Enabling app …" : "Povoľujem aplikáciu …", "Error while enabling app" : "Chyba pri povoľovaní aplikácie", + "Error: This app can not be enabled because it makes the server unstable" : "Chyba: aplikáciu nie je možné povoliť, lebo naruší stabilitu servera", + "Error: Could not disable broken app" : "Chyba: nebolo možné zakázať poškodenú aplikáciu", "Error while disabling broken app" : "Nastala chyba počas zakazovania poškodenej aplikácie", + "No app updates available" : "Nie sú dostupné žiadne aktualizácie aplikácií", "Updating...." : "Aktualizujem...", "Error while updating app" : "chyba pri aktualizácii aplikácie", "Updated" : "Aktualizované", + "Removing …" : "Odstraňujem ...", + "Error while removing app" : "Chyba pri odstraňovaní aplikácie", + "Remove" : "Odstrániť", "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikácia bola povolená, ale je potrebné ju aktualizovať. O 5 sekúnd budete presmerovaní na aktualizačnú stránku.", "App update" : "Aktualizácia aplikácie", "Approved" : "Schválené", "Experimental" : "Experimentálny", "No apps found for {query}" : "Žiadna aplikácia nebola nájdená pre {query}", + "Enable all" : "Povoliť všetko", "Allow filesystem access" : "Povoliť prístup ku súborovému systému", "Disconnect" : "Odpojiť", "Revoke" : "Odvolať", @@ -93,6 +141,9 @@ OC.L10N.register( "Visible to local users and to trusted servers" : "Viditeľné pre lokálnych používateľov a dôveryhodné servery", "Public" : "Verejné", "Will be synced to a global and public address book" : "Bude synchronizované s globálnym a verejným adresárom", + "Verify" : "Overiť", + "Verifying …" : "Overovanie ...", + "An error occured while changing your language. Please reload the page and try again." : "Počas zmeny jazyka sa vyskytla chyba. Prosím obnovte stránku a skúste znova.", "Select a profile picture" : "Vybrať avatara", "Very weak password" : "Veľmi slabé heslo", "Weak password" : "Slabé heslo", @@ -107,16 +158,22 @@ OC.L10N.register( "undo" : "vrátiť", "never" : "nikdy", "deleted {userName}" : "vymazané {userName}", + "No user found for <strong>{pattern}</strong>" : "<strong>{pattern}</strong> nenašlo žiadnych používateľov", + "Unable to add user to group {group}" : "Nie je možné pridať používateľa do skupiny {group}", + "Unable to remove user from group {group}" : "Nie je možné odstrániť používateľa zo skupiny {group}", "Add group" : "Pridať skupinu", "Invalid quota value \"{val}\"" : "Neplatná hodnota kvóty \"{val}\"", "Password successfully changed" : "Heslo úspešne zmenené", "Changing the password will result in data loss, because data recovery is not available for this user" : "Zmena hesla bude mať za následok stratu dát, pretože obnova dát nie je k dispozícii pre tohto používateľa", "Could not change the users email" : "Nemožno zmeniť email používateľa", + "Error while changing status of {user}" : "Chyba pri zmene stavu používateľa {user}", "A valid username must be provided" : "Musíte zadať platné používateľské meno", "Error creating user: {message}" : "Chyba pri vytváraní používateľa: {message}", "A valid password must be provided" : "Musíte zadať platné heslo", "A valid email must be provided" : "Musíte zadať platnú emailovú adresu", "Developer documentation" : "Dokumentácia vývojára", + "View in store" : "Zobraz v obchode", + "Limit to groups" : "Povoľ len pre skupiny", "by %s" : "od %s", "%s-licensed" : "%s-licencovaný", "Documentation:" : "Dokumentácia:", @@ -150,6 +207,7 @@ OC.L10N.register( "STARTTLS" : "STARTTLS", "Email server" : "Email server", "Open documentation" : "Otvoriť dokumentáciu", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Je dôležité nastaviť aby server vedel odosielať emaily, napríklad pre nastavenie hesla a notifikácie.", "Send mode" : "Mód odosielania", "Encryption" : "Šifrovanie", "From address" : "Z adresy", @@ -175,14 +233,29 @@ OC.L10N.register( "Select default encryption module:" : "Vybrať predvolený šifrovací modul:", "Start migration" : "Začať migráciu", "Security & setup warnings" : "Bezpečnosť a nastavenia upozornení", + "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Zdá sa že PHP nie je nastavené korektne na získanie premenných prostredia. Test s getenv(\"PATH\") vráti prázdnu odpoveď.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Konfigurácia je nastavená len na čítanie. Toto znemožňuje urobiť niektoré nastavenia prostredníctvom webového rozhrania. Okrem toho, súbor musí byť zapisovanie ručne povolené pre každú aktualizáciu.", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je zjavne nastavené, aby odstraňovalo bloky vloženej dokumentácie. To zneprístupní niekoľko základných aplikácií.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "To je pravdepodobne spôsobené cache/akcelerátorom ako napr. Zend OPcache alebo eAccelerator.", + "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "Chýba PHP modul 'fileinfo'. Dôrazne doporučujeme ho povoliť pre dosiahnutie najlepších výsledkov zisťovania MIME-typu.", "System locale can not be set to a one which supports UTF-8." : "Nie je možné nastaviť znakovú sadu, ktorá podporuje UTF-8.", + "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Dôrazne doporučujeme nainštalovať na váš systém požadované balíčky podporujúce jednu z nasledovných znakových sád: %s.", + "If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Inštalácia mimo koreňový priečinok domény a používanie systémového príkazu cron môže spôsobiť problém s generovaním správnej URL. Pre zabránenie týmto chybám nastavte prosím správnu cestu v svojom config.php súbore pre hodnotu \"overwrite.cli.url\" (Doporučujeme: \"%s\")", + "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Nebolo možné spustiť úlohu na pozadí pomocou CLI. Toto sú chyby:", "All checks passed." : "Všetky kontroly prešli úspešne.", + "Background jobs" : "Úlohy na pozadí", + "Last job ran %s." : "Úloha naposledy prebehla %s.", + "Last job execution ran %s. Something seems wrong." : "Úloha naposledy prebehla %s. Zdá sa, že niečo nie je v poriadku.", + "Background job didn’t run yet!" : "Úloha na pozadí ešte nebežala!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "Pre optimálny výkon je dôležité nakonfigurovať úlohy na pozadí správne. Pre väčšie inštancie sa odporúča 'Cron'. Viac informácií je možné nájsť v dokumentácii.", "Execute one task with each page loaded" : "Vykonať jednu úlohu s každým načítaní stránky", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over HTTP." : "cron.php je zaregistrované v službe webcron a zavolá cron.php každých 15 minút cez HTTP.", + "Use system cron service to call the cron.php file every 15 minutes." : "Použiť systémovú službu cron na spúšťanie súboru cron.php každých 15 minút.", "The cron.php needs to be executed by the system user \"%s\"." : "Je potrebné, aby cron.php bol spustený systémovým používateľom \"%s\".", + "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Pre spustenie potrebujete mať rozšírenie PHP POSIX. Viac detailov v {linkstart}PHP dokumentácii{linkend}.", "Version" : "Verzia", "Sharing" : "Sprístupňovanie", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Ako administrátor môžete nastaviť správanie sprístupňovania. Pre viac informácií pozrite dokumentáciu.", "Allow apps to use the Share API" : "Povoliť aplikáciám používať API pre sprístupňovanie", "Allow users to share via link" : "Povoliť používateľom sprístupňovanie obsahu pomocou odkazov", "Allow public uploads" : "Povoliť verejné nahrávanie súborov", @@ -197,14 +270,21 @@ OC.L10N.register( "Restrict users to only share with users in their groups" : "Povoliť používateľom sprístupňovanie obsahu len v rámci ich skupiny", "Exclude groups from sharing" : "Nesprístupniť obsah skupinám", "These groups will still be able to receive shares, but not to initiate them." : "Tieto skupiny nebudú mocť sprístupňovať obsah, môžu však stále čítať sprístupnené súbory", + "Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "Umožni automatické dopĺňanie používateľského mena pri sprístupňovaní. Ak je vypnuté, musí byť zadané celé meno alebo emailová adresa používateľa.", "Tips & tricks" : "Tipy a triky", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Ako databáza je použitá SQLite. Pre veľké inštalácie odporúčame prejsť na inú databázu.", + "This is particularly recommended when using the desktop client for file synchronisation." : "Toto odporúčame najmä pri používaní klientských aplikácií na synchronizáciu s desktopom.", "How to do backups" : "Ako vytvárať zálohy", "Advanced monitoring" : "Pokročilé sledovanie", "Performance tuning" : "Ladenie výkonu", "Improving the config.php" : "Zlepšenie config.php", "Theming" : "Vzhľady tém", + "Check the security of your Nextcloud over our security scan" : "Skontrolujte bezpečnosť Vášho Nextcloud-u s pomocou bezpečnostného scan-u", "Hardening and security guidance" : "Sprievodca vylepšením bezpečnosti", + "Personal" : "Osobné", + "Administration" : "Administrácia", "You are using <strong>%s</strong> of <strong>%s</strong>" : "Využívate <strong>%s</strong> z <strong>%s</strong>", + "You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Využívate <strong>%s</strong> z <strong>%s</strong>(<strong>%s%%</strong>)", "Profile picture" : "Avatar", "Upload new" : "Nahrať nový", "Select from Files" : "Vybrať zo súborov", @@ -224,6 +304,8 @@ OC.L10N.register( "Address" : "Adresa", "Your postal address" : "Vaša poštová adresa", "Website" : "Webstránka", + "It can take up to 24 hours before the account is displayed as verified." : "Môže trvať až 24 hodín než sa účet zobrazí ako overený.", + "Link https://…" : "Linka https://…", "Twitter" : "Twitter", "You are member of the following groups:" : "Ste členom nasledovných skupín:", "Language" : "Jazyk", @@ -241,19 +323,25 @@ OC.L10N.register( "For security reasons this password will only be shown once." : "Z dôvodu bezpečnosti toto heslo bude zobrazené iba jeden krát.", "Username" : "Používateľské meno", "Done" : "Hotovo", + "Follow us on Google+" : "Sleduj nás na Google₊", + "Like our Facebook page" : "Sleduj nás na Facebook-u", + "Follow us on Twitter" : "Sleduj nás na Twitter-i", + "Check out our blog" : "Pozri si náš blog", + "Subscribe to our newsletter" : "Prihlás sa na odber noviniek emailom", "Settings" : "Nastavenia", "Show storage location" : "Zobraziť umiestnenie úložiska", "Show user backend" : "Zobraziť backend používateľa", "Show last login" : "Zobraziť posledné prihlásenie", "Show email address" : "Zobraziť emailovú adresu", "Send email to new user" : "Odoslať email novému používateľovi", + "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Ak je heslo pre nového používateľa prázdne, odošle sa aktivačný email s linkou na nastavenie hesla.", "E-Mail" : "email", "Create" : "Vytvoriť", "Admin Recovery Password" : "Obnovenie hesla administrátora", "Enter the recovery password in order to recover the users files during password change" : "Zadajte heslo pre obnovenie súborov používateľa pri zmene hesla", - "Group name" : "Názov skupiny", "Everyone" : "Všetci", "Admins" : "Administrátori", + "Disabled" : "Zakázaný", "Default quota" : "Predvolená kvóta", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Prosím zadajte kvótu úložného priestoru (napr.: \"512 MB\" alebo \"12 GB\")", "Unlimited" : "Nelimitované", @@ -287,17 +375,21 @@ OC.L10N.register( "App passwords" : "Heslá aplikácie", "Sync clients" : "Klienti synchronizácie", "This is used for sending out notifications." : "Používa sa na odosielanie upozornení.", + "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Zdá sa že php nie je nastavené korektne na získanie premenných prostredia. Test s getenv(\"PATH\") vráti prázdnu odpoveď.", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je zjavne nastavené, aby odstraňovalo bloky vloženej dokumentácie. To zneprístupní niekoľko základných aplikácií.", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Chýba modul 'fileinfo'. Dôrazne doporučujeme ho povoliť pre dosiahnutie najlepších výsledkov zisťovania mime-typu.", "This means that there might be problems with certain characters in file names." : "To znamená, že sa môžu vyskytnúť problémy s niektorými znakmi v názvoch súborov.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Dôrazne doporučujeme nainštalovať na váš systém požadované balíčky podporujúce jednu z nasledovných znakových sád: %s.", "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Inštalácia mimo koreňový priečinok domény a používanie systémového príkazu cron môže spôsobiť problém s generovaním správnej URL. Pre zabránenie týmto chybám nastavte prosím správnu cestu v svojom config.php súbore pre hodnotu \"overwrite.cli.url\" (Doporučujeme: \"%s\")", + "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Nebolo možné spustiť úlohu na pozadí pomocou CLI. Toto sú chyby:", "Cron" : "Cron", "Last cron job execution: %s." : "Posledný cron prebehol: %s.", "Last cron job execution: %s. Something seems wrong." : "Posledný cron prebehol: %s. Zdá sa, že niečo nie je vporiadku.", "Cron was not executed yet!" : "Cron sa ešte nespustil!", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php je zaregistrovaná v službe WebCron a zavolá cron.php každých 15 minút cez http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Použiť systémovú službu cron na spúšťanie súboru cron.php každých 15 minút.", + "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Pre spustenie potrebujete mať rozšírenie PHP POSIX. Viac detailov v {linkstart}PHP dokumentácii{linkend}.", + "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Umožni automatické dopĺňanie používateľského mena pri sprístupňovaní. Ak je vypnuté, musí byť zadané celé meno používateľa.", "Uninstall app" : "Odinštalovať aplikáciu", "Hey there,<br><br>just letting you know that you now have a %s account.<br><br>Your username: <strong>%s</strong><br>Access it: <strong><a href=\"%s\">%s</a></strong><br><br>" : "Dobrý deň,<br><br>toto je oznámenie o novo vytvorenom účte %s.<br><br>Vaše používateľské meno: <strong>%s</strong><br>Prihlásiť sa môžete tu: <strong><a href=\"%s\">%s</a></strong><br><br>", "Cheers!" : "Pekný deň!", @@ -314,6 +406,17 @@ OC.L10N.register( "Passcodes that give an app or device permissions to access your account." : "Prístupové heslá, ktoré dovolia aplikáciam alebo zariadeniam prístup na váš účet.", "Name" : "Názov", "Follow us on Google Plus!" : "Sleduj nás na Google Plus!", - "Show last log in" : "Zobraziť posledné prihlásenie" + "Subscribe to our newsletter!" : "Prihlás sa na odber noviniek emailom!", + "Show last log in" : "Zobraziť posledné prihlásenie", + "Group name" : "Názov skupiny", + "You have now an %s account, you can add, protect, and share your data." : "Teraz máte účet %s, môžete pridávať, chrániť a sprístupňovať Vaše dáta.", + "Verifying" : "Overovanie", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Pre bezpečnosť a maximálny výkon Vašej inštancie je dôležité aby všetko bolo nakonfigurované korektne. Aby sme Vám pomohli, robíme nejaké automatizované kontroly. Pre viac informácií pozrite časť Tipy a Triky a dokumentáciu.", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "Chýba PHP modul 'fileinfo'. Dôrazne doporučujeme ho povoliť pre dosiahnutie najlepších výsledkov zisťovania MIME-typu.", + "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "Weboví, desktopoví, alebo mobilní klienti ktorí majú prístup na váš účet.", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Tu môžete vygenerovať individuálne heslá pre aplikácie takže nemusíte prezradiť Vaše heslo. Tieto heslá môžete kedykoľvek zrušiť.", + "Follow us on Google+!" : "Sleduj nás na Google₊!", + "Follow us on Twitter!" : "Sleduj nás na Twitter-i!", + "Check out our blog!" : "Pozri si náš blog!" }, "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/settings/l10n/sk.json b/settings/l10n/sk.json index 020fca7063e..99b8a2f4dec 100644 --- a/settings/l10n/sk.json +++ b/settings/l10n/sk.json @@ -1,23 +1,47 @@ { "translations": { + "{actor} changed your password" : "{actor} zmenil Vaše heslo", + "You changed your password" : "Zmenili ste si heslo", + "Your password was reset by an administrator" : "Vaše heslo bolo resetované administrátorom", + "{actor} changed your email address" : "{actor} zmenil Vašu emailovú adresu", + "You changed your email address" : "Zmenili ste si emailovú adresu", + "Your email address was changed by an administrator" : "Vaša emailová adresa bola zmenená administrátorom", + "Security" : "Zabezpečenie", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "Vaše <strong>heslo</strong> alebo <strong>email</strong> bolo zmenené", + "Your apps" : "Vaše aplikácie", + "Updates" : "Aktualizácie", + "Enabled apps" : "Povolené aplikácie", + "Disabled apps" : "Zakázané aplikácie", + "App bundles" : "Aplikačné balíky", "Wrong password" : "Nesprávne heslo", "Saved" : "Uložené", "No user supplied" : "Nebol uvedený používateľ", "Unable to change password" : "Zmena hesla sa nepodarila", "Authentication error" : "Chyba autentifikácie", + "Please provide an admin recovery password; otherwise, all user data will be lost." : "Zadajte administrátorské heslo pre obnovu, inak budú všetky používateľské dáta stratené.", "Wrong admin recovery password. Please check the password and try again." : "Chybné administrátorské heslo pre obnovu. Skontrolujte správnosť hesla a skúste to znovu.", + "Backend doesn't support password change, but the user's encryption key was updated." : "Backend nepodporuje zmenu hesla, ale šifrovací kľúč používateľa bol zmenený.", "Federated Cloud Sharing" : "Sprístupnenie prostredníctvom Federated Cloud", + "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL používa zastaralú %sverziu (%s). Prosím aktualizujte si operačný systém pretože %snebude fungovať spoľahlivo.", "A problem occurred, please check your log files (Error: %s)" : "Nastala chyba, skontrolujte prosím váš log súbor (Chyba: %s)", "Migration Completed" : "Migrácia ukončená", "Group already exists." : "Skupina už existuje.", "Unable to add group." : "Nie je možné pridať skupinu.", "Unable to delete group." : "Nie je možné zmazať skupinu.", + "Invalid SMTP password." : "Nesprávne heslo pre SMTP", + "Email setting test" : "Test nastavení emailu", + "Well done, %s!" : "Dobrá práca, %s!", + "If you received this email, the email configuration seems to be correct." : "Ak ste prijali tento email, emailová konfigurácia sa zdá byť správna.", + "Email could not be sent. Check your mail server log" : "Nepodarilo sa odoslať email. Skontrolujte log Vášho mail servera", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Vyskytol sa problém pri odosielaní emailu. Prosím, znovu skontrolujte svoje nastavenia. (Chyba: %s)", "You need to set your user email before being able to send test emails." : "Musíte nastaviť svoj používateľský email, než budete môcť odoslať testovací email.", "Invalid mail address" : "Neplatná emailová adresa", "No valid group selected" : "Nebola zvolená platná skupina", "A user with that name already exists." : "Používateľ s týmto menom už existuje.", + "To send a password link to the user an email address is required." : "Pre odoslanie linky pre nastavenie hesla používateľovi sa vyžaduje emailová adresa.", "Unable to create user." : "Nie je možné vytvoriť používateľa.", "Unable to delete user." : "Nie je možné zmazať používateľa.", + "Error while enabling user." : "Chyba pri povoľovaní používateľa.", + "Error while disabling user." : "Chyba pri zakázaní používateľa.", "Settings saved" : "Nastavenia uložené", "Unable to change full name" : "Nemožno zmeniť meno a priezvisko", "Unable to change email address" : "Nemožno zmeniť emailovú adresu", @@ -26,9 +50,22 @@ "Invalid user" : "Neplatný používateľ", "Unable to change mail address" : "Nemožno zmeniť emailovú adresu", "Email saved" : "Email uložený", + "%1$s changed your password on %2$s." : "%1$szmenil Vaše heslo na %2$s", + "Your password on %s was changed." : "Vaše heslo na %sbolo zmenené.", + "Your password on %s was reset by an administrator." : "Vaše heslo na %sbolo resetované administrátorom.", + "Password for %1$s changed on %2$s" : "Heslo pre %1$sbolo zmenené na %2$s", + "Password changed for %s" : "Heslo zmenené pre %s", + "If you did not request this, please contact an administrator." : "Ak ste to nevyžadovali, prosím kontaktujte administrátora.", + "%1$s changed your email address on %2$s." : "%1$szmenil Vašu emailovú adresu na %2$s", + "Your email address on %s was changed." : "Vaša emailová adresa na %sbola zmenená.", + "Your email address on %s was changed by an administrator." : "Vaša emailová adresa na %s bola zmenená administrátorom.", + "Email address for %1$s changed on %2$s" : "Emailová adresa pre %1$szmenená na %2$s", + "Email address changed for %s" : "Emailová adresa zmenená pre %s", + "The new email address is %s" : "Nová emailová adresa je %s", "Your %s account was created" : "Váš účet %s bol vytvorený", "Welcome aboard" : "Vitajte na palube", "Welcome aboard %s" : "Vitajte na palube %s", + "You now have an %s account, you can add, protect, and share your data." : "Teraz máte účet %s, môžete pridávať, chrániť a sprístupňovať Vaše dáta.", "Your username is: %s" : "Vaše používateľské meno je: %s", "Set your password" : "Nastavte si heslo", "Go to %s" : "Prejsť na %s", @@ -41,11 +78,15 @@ "Migration in progress. Please wait until the migration is finished" : "Prebieha migrácia. Počkajte prosím, kým sa skončí", "Migration started …" : "Migrácia spustená ...", "Not saved" : "Neuložené", + "Sending…" : "Odosielam...", "Email sent" : "Email odoslaný", "Official" : "Oficiálny", "All" : "Všetky", "Update to %s" : "Aktualizovať na %s", "No apps found for your version" : "Aplikácie pre vašu verziu sa nenašli", + "The app will be downloaded from the app store" : "Aplikácia bude stiahnutá z obchodu", + "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Oficiálne aplikácie sú vyvíjané komunitou. Poskytujú centrálnu funkcionalitu a sú pripravené pre produkčné nasadenie.", + "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Schválené aplikácie sú vyvíjané dôveryhodnými vývojármi a prešli zbežnou kontrolou bezpečnosti. Sú aktívne udržiavané v otvorenom repozitári a ich udržovatelia ich považujú za stabilné pre bežné použitie.", "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Táto aplikácia nie je skontrolovaná na bezpečnostné chyby, je nová, alebo patrí medzi nestabilné. Inštalácia na vlastné riziko.", "Disabling app …" : "Vypínanie aplikácie ...", "Error while disabling app" : "Chyba pri zakázaní aplikácie", @@ -53,15 +94,22 @@ "Enable" : "Zapnúť", "Enabling app …" : "Povoľujem aplikáciu …", "Error while enabling app" : "Chyba pri povoľovaní aplikácie", + "Error: This app can not be enabled because it makes the server unstable" : "Chyba: aplikáciu nie je možné povoliť, lebo naruší stabilitu servera", + "Error: Could not disable broken app" : "Chyba: nebolo možné zakázať poškodenú aplikáciu", "Error while disabling broken app" : "Nastala chyba počas zakazovania poškodenej aplikácie", + "No app updates available" : "Nie sú dostupné žiadne aktualizácie aplikácií", "Updating...." : "Aktualizujem...", "Error while updating app" : "chyba pri aktualizácii aplikácie", "Updated" : "Aktualizované", + "Removing …" : "Odstraňujem ...", + "Error while removing app" : "Chyba pri odstraňovaní aplikácie", + "Remove" : "Odstrániť", "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikácia bola povolená, ale je potrebné ju aktualizovať. O 5 sekúnd budete presmerovaní na aktualizačnú stránku.", "App update" : "Aktualizácia aplikácie", "Approved" : "Schválené", "Experimental" : "Experimentálny", "No apps found for {query}" : "Žiadna aplikácia nebola nájdená pre {query}", + "Enable all" : "Povoliť všetko", "Allow filesystem access" : "Povoliť prístup ku súborovému systému", "Disconnect" : "Odpojiť", "Revoke" : "Odvolať", @@ -91,6 +139,9 @@ "Visible to local users and to trusted servers" : "Viditeľné pre lokálnych používateľov a dôveryhodné servery", "Public" : "Verejné", "Will be synced to a global and public address book" : "Bude synchronizované s globálnym a verejným adresárom", + "Verify" : "Overiť", + "Verifying …" : "Overovanie ...", + "An error occured while changing your language. Please reload the page and try again." : "Počas zmeny jazyka sa vyskytla chyba. Prosím obnovte stránku a skúste znova.", "Select a profile picture" : "Vybrať avatara", "Very weak password" : "Veľmi slabé heslo", "Weak password" : "Slabé heslo", @@ -105,16 +156,22 @@ "undo" : "vrátiť", "never" : "nikdy", "deleted {userName}" : "vymazané {userName}", + "No user found for <strong>{pattern}</strong>" : "<strong>{pattern}</strong> nenašlo žiadnych používateľov", + "Unable to add user to group {group}" : "Nie je možné pridať používateľa do skupiny {group}", + "Unable to remove user from group {group}" : "Nie je možné odstrániť používateľa zo skupiny {group}", "Add group" : "Pridať skupinu", "Invalid quota value \"{val}\"" : "Neplatná hodnota kvóty \"{val}\"", "Password successfully changed" : "Heslo úspešne zmenené", "Changing the password will result in data loss, because data recovery is not available for this user" : "Zmena hesla bude mať za následok stratu dát, pretože obnova dát nie je k dispozícii pre tohto používateľa", "Could not change the users email" : "Nemožno zmeniť email používateľa", + "Error while changing status of {user}" : "Chyba pri zmene stavu používateľa {user}", "A valid username must be provided" : "Musíte zadať platné používateľské meno", "Error creating user: {message}" : "Chyba pri vytváraní používateľa: {message}", "A valid password must be provided" : "Musíte zadať platné heslo", "A valid email must be provided" : "Musíte zadať platnú emailovú adresu", "Developer documentation" : "Dokumentácia vývojára", + "View in store" : "Zobraz v obchode", + "Limit to groups" : "Povoľ len pre skupiny", "by %s" : "od %s", "%s-licensed" : "%s-licencovaný", "Documentation:" : "Dokumentácia:", @@ -148,6 +205,7 @@ "STARTTLS" : "STARTTLS", "Email server" : "Email server", "Open documentation" : "Otvoriť dokumentáciu", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Je dôležité nastaviť aby server vedel odosielať emaily, napríklad pre nastavenie hesla a notifikácie.", "Send mode" : "Mód odosielania", "Encryption" : "Šifrovanie", "From address" : "Z adresy", @@ -173,14 +231,29 @@ "Select default encryption module:" : "Vybrať predvolený šifrovací modul:", "Start migration" : "Začať migráciu", "Security & setup warnings" : "Bezpečnosť a nastavenia upozornení", + "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Zdá sa že PHP nie je nastavené korektne na získanie premenných prostredia. Test s getenv(\"PATH\") vráti prázdnu odpoveď.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Konfigurácia je nastavená len na čítanie. Toto znemožňuje urobiť niektoré nastavenia prostredníctvom webového rozhrania. Okrem toho, súbor musí byť zapisovanie ručne povolené pre každú aktualizáciu.", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je zjavne nastavené, aby odstraňovalo bloky vloženej dokumentácie. To zneprístupní niekoľko základných aplikácií.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "To je pravdepodobne spôsobené cache/akcelerátorom ako napr. Zend OPcache alebo eAccelerator.", + "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "Chýba PHP modul 'fileinfo'. Dôrazne doporučujeme ho povoliť pre dosiahnutie najlepších výsledkov zisťovania MIME-typu.", "System locale can not be set to a one which supports UTF-8." : "Nie je možné nastaviť znakovú sadu, ktorá podporuje UTF-8.", + "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Dôrazne doporučujeme nainštalovať na váš systém požadované balíčky podporujúce jednu z nasledovných znakových sád: %s.", + "If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Inštalácia mimo koreňový priečinok domény a používanie systémového príkazu cron môže spôsobiť problém s generovaním správnej URL. Pre zabránenie týmto chybám nastavte prosím správnu cestu v svojom config.php súbore pre hodnotu \"overwrite.cli.url\" (Doporučujeme: \"%s\")", + "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Nebolo možné spustiť úlohu na pozadí pomocou CLI. Toto sú chyby:", "All checks passed." : "Všetky kontroly prešli úspešne.", + "Background jobs" : "Úlohy na pozadí", + "Last job ran %s." : "Úloha naposledy prebehla %s.", + "Last job execution ran %s. Something seems wrong." : "Úloha naposledy prebehla %s. Zdá sa, že niečo nie je v poriadku.", + "Background job didn’t run yet!" : "Úloha na pozadí ešte nebežala!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "Pre optimálny výkon je dôležité nakonfigurovať úlohy na pozadí správne. Pre väčšie inštancie sa odporúča 'Cron'. Viac informácií je možné nájsť v dokumentácii.", "Execute one task with each page loaded" : "Vykonať jednu úlohu s každým načítaní stránky", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over HTTP." : "cron.php je zaregistrované v službe webcron a zavolá cron.php každých 15 minút cez HTTP.", + "Use system cron service to call the cron.php file every 15 minutes." : "Použiť systémovú službu cron na spúšťanie súboru cron.php každých 15 minút.", "The cron.php needs to be executed by the system user \"%s\"." : "Je potrebné, aby cron.php bol spustený systémovým používateľom \"%s\".", + "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Pre spustenie potrebujete mať rozšírenie PHP POSIX. Viac detailov v {linkstart}PHP dokumentácii{linkend}.", "Version" : "Verzia", "Sharing" : "Sprístupňovanie", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Ako administrátor môžete nastaviť správanie sprístupňovania. Pre viac informácií pozrite dokumentáciu.", "Allow apps to use the Share API" : "Povoliť aplikáciám používať API pre sprístupňovanie", "Allow users to share via link" : "Povoliť používateľom sprístupňovanie obsahu pomocou odkazov", "Allow public uploads" : "Povoliť verejné nahrávanie súborov", @@ -195,14 +268,21 @@ "Restrict users to only share with users in their groups" : "Povoliť používateľom sprístupňovanie obsahu len v rámci ich skupiny", "Exclude groups from sharing" : "Nesprístupniť obsah skupinám", "These groups will still be able to receive shares, but not to initiate them." : "Tieto skupiny nebudú mocť sprístupňovať obsah, môžu však stále čítať sprístupnené súbory", + "Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "Umožni automatické dopĺňanie používateľského mena pri sprístupňovaní. Ak je vypnuté, musí byť zadané celé meno alebo emailová adresa používateľa.", "Tips & tricks" : "Tipy a triky", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Ako databáza je použitá SQLite. Pre veľké inštalácie odporúčame prejsť na inú databázu.", + "This is particularly recommended when using the desktop client for file synchronisation." : "Toto odporúčame najmä pri používaní klientských aplikácií na synchronizáciu s desktopom.", "How to do backups" : "Ako vytvárať zálohy", "Advanced monitoring" : "Pokročilé sledovanie", "Performance tuning" : "Ladenie výkonu", "Improving the config.php" : "Zlepšenie config.php", "Theming" : "Vzhľady tém", + "Check the security of your Nextcloud over our security scan" : "Skontrolujte bezpečnosť Vášho Nextcloud-u s pomocou bezpečnostného scan-u", "Hardening and security guidance" : "Sprievodca vylepšením bezpečnosti", + "Personal" : "Osobné", + "Administration" : "Administrácia", "You are using <strong>%s</strong> of <strong>%s</strong>" : "Využívate <strong>%s</strong> z <strong>%s</strong>", + "You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Využívate <strong>%s</strong> z <strong>%s</strong>(<strong>%s%%</strong>)", "Profile picture" : "Avatar", "Upload new" : "Nahrať nový", "Select from Files" : "Vybrať zo súborov", @@ -222,6 +302,8 @@ "Address" : "Adresa", "Your postal address" : "Vaša poštová adresa", "Website" : "Webstránka", + "It can take up to 24 hours before the account is displayed as verified." : "Môže trvať až 24 hodín než sa účet zobrazí ako overený.", + "Link https://…" : "Linka https://…", "Twitter" : "Twitter", "You are member of the following groups:" : "Ste členom nasledovných skupín:", "Language" : "Jazyk", @@ -239,19 +321,25 @@ "For security reasons this password will only be shown once." : "Z dôvodu bezpečnosti toto heslo bude zobrazené iba jeden krát.", "Username" : "Používateľské meno", "Done" : "Hotovo", + "Follow us on Google+" : "Sleduj nás na Google₊", + "Like our Facebook page" : "Sleduj nás na Facebook-u", + "Follow us on Twitter" : "Sleduj nás na Twitter-i", + "Check out our blog" : "Pozri si náš blog", + "Subscribe to our newsletter" : "Prihlás sa na odber noviniek emailom", "Settings" : "Nastavenia", "Show storage location" : "Zobraziť umiestnenie úložiska", "Show user backend" : "Zobraziť backend používateľa", "Show last login" : "Zobraziť posledné prihlásenie", "Show email address" : "Zobraziť emailovú adresu", "Send email to new user" : "Odoslať email novému používateľovi", + "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Ak je heslo pre nového používateľa prázdne, odošle sa aktivačný email s linkou na nastavenie hesla.", "E-Mail" : "email", "Create" : "Vytvoriť", "Admin Recovery Password" : "Obnovenie hesla administrátora", "Enter the recovery password in order to recover the users files during password change" : "Zadajte heslo pre obnovenie súborov používateľa pri zmene hesla", - "Group name" : "Názov skupiny", "Everyone" : "Všetci", "Admins" : "Administrátori", + "Disabled" : "Zakázaný", "Default quota" : "Predvolená kvóta", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Prosím zadajte kvótu úložného priestoru (napr.: \"512 MB\" alebo \"12 GB\")", "Unlimited" : "Nelimitované", @@ -285,17 +373,21 @@ "App passwords" : "Heslá aplikácie", "Sync clients" : "Klienti synchronizácie", "This is used for sending out notifications." : "Používa sa na odosielanie upozornení.", + "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Zdá sa že php nie je nastavené korektne na získanie premenných prostredia. Test s getenv(\"PATH\") vráti prázdnu odpoveď.", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je zjavne nastavené, aby odstraňovalo bloky vloženej dokumentácie. To zneprístupní niekoľko základných aplikácií.", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Chýba modul 'fileinfo'. Dôrazne doporučujeme ho povoliť pre dosiahnutie najlepších výsledkov zisťovania mime-typu.", "This means that there might be problems with certain characters in file names." : "To znamená, že sa môžu vyskytnúť problémy s niektorými znakmi v názvoch súborov.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Dôrazne doporučujeme nainštalovať na váš systém požadované balíčky podporujúce jednu z nasledovných znakových sád: %s.", "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Inštalácia mimo koreňový priečinok domény a používanie systémového príkazu cron môže spôsobiť problém s generovaním správnej URL. Pre zabránenie týmto chybám nastavte prosím správnu cestu v svojom config.php súbore pre hodnotu \"overwrite.cli.url\" (Doporučujeme: \"%s\")", + "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Nebolo možné spustiť úlohu na pozadí pomocou CLI. Toto sú chyby:", "Cron" : "Cron", "Last cron job execution: %s." : "Posledný cron prebehol: %s.", "Last cron job execution: %s. Something seems wrong." : "Posledný cron prebehol: %s. Zdá sa, že niečo nie je vporiadku.", "Cron was not executed yet!" : "Cron sa ešte nespustil!", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php je zaregistrovaná v službe WebCron a zavolá cron.php každých 15 minút cez http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Použiť systémovú službu cron na spúšťanie súboru cron.php každých 15 minút.", + "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Pre spustenie potrebujete mať rozšírenie PHP POSIX. Viac detailov v {linkstart}PHP dokumentácii{linkend}.", + "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Umožni automatické dopĺňanie používateľského mena pri sprístupňovaní. Ak je vypnuté, musí byť zadané celé meno používateľa.", "Uninstall app" : "Odinštalovať aplikáciu", "Hey there,<br><br>just letting you know that you now have a %s account.<br><br>Your username: <strong>%s</strong><br>Access it: <strong><a href=\"%s\">%s</a></strong><br><br>" : "Dobrý deň,<br><br>toto je oznámenie o novo vytvorenom účte %s.<br><br>Vaše používateľské meno: <strong>%s</strong><br>Prihlásiť sa môžete tu: <strong><a href=\"%s\">%s</a></strong><br><br>", "Cheers!" : "Pekný deň!", @@ -312,6 +404,17 @@ "Passcodes that give an app or device permissions to access your account." : "Prístupové heslá, ktoré dovolia aplikáciam alebo zariadeniam prístup na váš účet.", "Name" : "Názov", "Follow us on Google Plus!" : "Sleduj nás na Google Plus!", - "Show last log in" : "Zobraziť posledné prihlásenie" + "Subscribe to our newsletter!" : "Prihlás sa na odber noviniek emailom!", + "Show last log in" : "Zobraziť posledné prihlásenie", + "Group name" : "Názov skupiny", + "You have now an %s account, you can add, protect, and share your data." : "Teraz máte účet %s, môžete pridávať, chrániť a sprístupňovať Vaše dáta.", + "Verifying" : "Overovanie", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Pre bezpečnosť a maximálny výkon Vašej inštancie je dôležité aby všetko bolo nakonfigurované korektne. Aby sme Vám pomohli, robíme nejaké automatizované kontroly. Pre viac informácií pozrite časť Tipy a Triky a dokumentáciu.", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "Chýba PHP modul 'fileinfo'. Dôrazne doporučujeme ho povoliť pre dosiahnutie najlepších výsledkov zisťovania MIME-typu.", + "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "Weboví, desktopoví, alebo mobilní klienti ktorí majú prístup na váš účet.", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Tu môžete vygenerovať individuálne heslá pre aplikácie takže nemusíte prezradiť Vaše heslo. Tieto heslá môžete kedykoľvek zrušiť.", + "Follow us on Google+!" : "Sleduj nás na Google₊!", + "Follow us on Twitter!" : "Sleduj nás na Twitter-i!", + "Check out our blog!" : "Pozri si náš blog!" },"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" }
\ No newline at end of file diff --git a/settings/l10n/sq.js b/settings/l10n/sq.js index a6d94e4c406..ab141131c0f 100644 --- a/settings/l10n/sq.js +++ b/settings/l10n/sq.js @@ -362,7 +362,6 @@ OC.L10N.register( "Create" : "Krijoje", "Admin Recovery Password" : "Fjalëkalim Rikthimesh Nga Përgjegjësi", "Enter the recovery password in order to recover the users files during password change" : "Jepni fjalëkalim rimarrje që të mund të rimerrni kartela përdoruesi gjatë ndryshimit të fjalëkalimit", - "Group name" : "Emri i grupit", "Everyone" : "Kushdo", "Admins" : "Administratorë", "Disabled" : "E çaktivizuar", @@ -437,6 +436,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "Abonohuni në kanalin tonë në twitter!", "Subscribe to our newsletter!" : "Abonohuni në buletinin tonë informativ!", "Show last log in" : "Shfaq hyrjen e fundit", + "Group name" : "Emri i grupit", "You have now an %s account, you can add, protect, and share your data." : "Ju keni tani një %s llogari, ju mund të shtoni, mbroni dhe shpërndanin të dhënat tuaja.", "Verifying" : "Duke verifikuar", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Është e rëndësishme për sigurinë dhe performancën e instancës tuaj që gjithçka të konfigurohet në mënyrë korrekte. Për t'ju ndihmuar me këtë ne po bëjmë disa kontrolle automatike. Ju lutemi shikoni seksionin e këshillave dhe dokumentacionin për më shumë informacion.", diff --git a/settings/l10n/sq.json b/settings/l10n/sq.json index 0e1e528862c..09d8665773f 100644 --- a/settings/l10n/sq.json +++ b/settings/l10n/sq.json @@ -360,7 +360,6 @@ "Create" : "Krijoje", "Admin Recovery Password" : "Fjalëkalim Rikthimesh Nga Përgjegjësi", "Enter the recovery password in order to recover the users files during password change" : "Jepni fjalëkalim rimarrje që të mund të rimerrni kartela përdoruesi gjatë ndryshimit të fjalëkalimit", - "Group name" : "Emri i grupit", "Everyone" : "Kushdo", "Admins" : "Administratorë", "Disabled" : "E çaktivizuar", @@ -435,6 +434,7 @@ "Subscribe to our news feed!" : "Abonohuni në kanalin tonë në twitter!", "Subscribe to our newsletter!" : "Abonohuni në buletinin tonë informativ!", "Show last log in" : "Shfaq hyrjen e fundit", + "Group name" : "Emri i grupit", "You have now an %s account, you can add, protect, and share your data." : "Ju keni tani një %s llogari, ju mund të shtoni, mbroni dhe shpërndanin të dhënat tuaja.", "Verifying" : "Duke verifikuar", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Është e rëndësishme për sigurinë dhe performancën e instancës tuaj që gjithçka të konfigurohet në mënyrë korrekte. Për t'ju ndihmuar me këtë ne po bëjmë disa kontrolle automatike. Ju lutemi shikoni seksionin e këshillave dhe dokumentacionin për më shumë informacion.", diff --git a/settings/l10n/sr.js b/settings/l10n/sr.js index dbb85d3e2b8..963df384de9 100644 --- a/settings/l10n/sr.js +++ b/settings/l10n/sr.js @@ -369,7 +369,6 @@ OC.L10N.register( "Create" : "Направи", "Admin Recovery Password" : "Администраторска лозинка за опоравак", "Enter the recovery password in order to recover the users files during password change" : "Унесите лозинку за опоравак корисничких фајлова током промене лозинке", - "Group name" : "Назив групе", "Everyone" : "Сви", "Admins" : "Администратори", "Disabled" : "Искључено", @@ -444,6 +443,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "Пријавите се на довод новина!", "Subscribe to our newsletter!" : "Пријавите се на наше новине!", "Show last log in" : "Прикажи последњу пријаву", + "Group name" : "Назив групе", "You have now an %s account, you can add, protect, and share your data." : "Сада имате %s налог, можете додавати, штитити и делити Ваше податке.", "Verifying" : "Проверавам", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Због безбедности и перформанси Ваше инстанце сервера, важно је да је све подешено исправно. Да бисмо Вам помогли у томе, радићемо неке аутоматске провере. Погледајте секцију са саветима и триковима, као и документацију за више информација.", diff --git a/settings/l10n/sr.json b/settings/l10n/sr.json index fbce5ecf57f..53f53c5ef0e 100644 --- a/settings/l10n/sr.json +++ b/settings/l10n/sr.json @@ -367,7 +367,6 @@ "Create" : "Направи", "Admin Recovery Password" : "Администраторска лозинка за опоравак", "Enter the recovery password in order to recover the users files during password change" : "Унесите лозинку за опоравак корисничких фајлова током промене лозинке", - "Group name" : "Назив групе", "Everyone" : "Сви", "Admins" : "Администратори", "Disabled" : "Искључено", @@ -442,6 +441,7 @@ "Subscribe to our news feed!" : "Пријавите се на довод новина!", "Subscribe to our newsletter!" : "Пријавите се на наше новине!", "Show last log in" : "Прикажи последњу пријаву", + "Group name" : "Назив групе", "You have now an %s account, you can add, protect, and share your data." : "Сада имате %s налог, можете додавати, штитити и делити Ваше податке.", "Verifying" : "Проверавам", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Због безбедности и перформанси Ваше инстанце сервера, важно је да је све подешено исправно. Да бисмо Вам помогли у томе, радићемо неке аутоматске провере. Погледајте секцију са саветима и триковима, као и документацију за више информација.", diff --git a/settings/l10n/sv.js b/settings/l10n/sv.js index 18b2f672caf..d1f2cee185b 100644 --- a/settings/l10n/sv.js +++ b/settings/l10n/sv.js @@ -369,7 +369,6 @@ OC.L10N.register( "Create" : "Skapa", "Admin Recovery Password" : "Återställningslösen för admin", "Enter the recovery password in order to recover the users files during password change" : "Ange återställningslösenordet för att återställa användarnas filer vid lösenordsbyte", - "Group name" : "Gruppnamn", "Everyone" : "Alla", "Admins" : "Administratörer", "Disabled" : "Inaktiverad", @@ -444,6 +443,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "Prenumerera på vårt nyhetsflöde!", "Subscribe to our newsletter!" : "Prenumerera på vårt nyhetsbrev!", "Show last log in" : "Visa senaste inloggning", + "Group name" : "Gruppnamn", "You have now an %s account, you can add, protect, and share your data." : "Du har nu ett %s-konto, du kan lägga till, skydda och dela din data.", "Verifying" : "Verifierar", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Det är viktigt för säkerhet och prestanda av din instans att allt är korrekt konfigurerat. För att hjälpa dig med det gör vi några automatiska kontroller. Vänligen se Tips & Tricks-sektionen och dokumentationen för mer information.", diff --git a/settings/l10n/sv.json b/settings/l10n/sv.json index 58480a7384f..bb2d32a0b47 100644 --- a/settings/l10n/sv.json +++ b/settings/l10n/sv.json @@ -367,7 +367,6 @@ "Create" : "Skapa", "Admin Recovery Password" : "Återställningslösen för admin", "Enter the recovery password in order to recover the users files during password change" : "Ange återställningslösenordet för att återställa användarnas filer vid lösenordsbyte", - "Group name" : "Gruppnamn", "Everyone" : "Alla", "Admins" : "Administratörer", "Disabled" : "Inaktiverad", @@ -442,6 +441,7 @@ "Subscribe to our news feed!" : "Prenumerera på vårt nyhetsflöde!", "Subscribe to our newsletter!" : "Prenumerera på vårt nyhetsbrev!", "Show last log in" : "Visa senaste inloggning", + "Group name" : "Gruppnamn", "You have now an %s account, you can add, protect, and share your data." : "Du har nu ett %s-konto, du kan lägga till, skydda och dela din data.", "Verifying" : "Verifierar", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Det är viktigt för säkerhet och prestanda av din instans att allt är korrekt konfigurerat. För att hjälpa dig med det gör vi några automatiska kontroller. Vänligen se Tips & Tricks-sektionen och dokumentationen för mer information.", diff --git a/settings/l10n/tr.js b/settings/l10n/tr.js index c5b687d8511..0c28ae9fe86 100644 --- a/settings/l10n/tr.js +++ b/settings/l10n/tr.js @@ -369,7 +369,6 @@ OC.L10N.register( "Create" : "Oluştur", "Admin Recovery Password" : "Yönetici Kurtarma Parolası", "Enter the recovery password in order to recover the users files during password change" : "Parola değiştirildiğinde kullanıcının dosyalarını kurtarmak için kullanılacak kurtarma parolasını yazın", - "Group name" : "Grup adı", "Everyone" : "Herkes", "Admins" : "Yöneticiler", "Disabled" : "Devre Dışı", @@ -444,6 +443,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "Haber akışımıza abone olun!", "Subscribe to our newsletter!" : " Bültenimize abone olun!", "Show last log in" : "Son oturum açma zamanı görüntülensin", + "Group name" : "Grup adı", "You have now an %s account, you can add, protect, and share your data." : "%s hesabınız açıldı. Verilerinizi ekleyip koruyabilir ve paylaşabilirsiniz.", "Verifying" : "Doğrulanıyor", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Kopyanızın güvenli ve yüksek başarımla çalışması için ayarların doğru yapılmış olması önemlidir. Bunu sağlamak için bazı otomatik denetimler yapılır. Ayrıntılı bilgi almak için İpuçları bölümüne ve belgelere bakın.", diff --git a/settings/l10n/tr.json b/settings/l10n/tr.json index 35bdd74ace2..14fdacaf3a6 100644 --- a/settings/l10n/tr.json +++ b/settings/l10n/tr.json @@ -367,7 +367,6 @@ "Create" : "Oluştur", "Admin Recovery Password" : "Yönetici Kurtarma Parolası", "Enter the recovery password in order to recover the users files during password change" : "Parola değiştirildiğinde kullanıcının dosyalarını kurtarmak için kullanılacak kurtarma parolasını yazın", - "Group name" : "Grup adı", "Everyone" : "Herkes", "Admins" : "Yöneticiler", "Disabled" : "Devre Dışı", @@ -442,6 +441,7 @@ "Subscribe to our news feed!" : "Haber akışımıza abone olun!", "Subscribe to our newsletter!" : " Bültenimize abone olun!", "Show last log in" : "Son oturum açma zamanı görüntülensin", + "Group name" : "Grup adı", "You have now an %s account, you can add, protect, and share your data." : "%s hesabınız açıldı. Verilerinizi ekleyip koruyabilir ve paylaşabilirsiniz.", "Verifying" : "Doğrulanıyor", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Kopyanızın güvenli ve yüksek başarımla çalışması için ayarların doğru yapılmış olması önemlidir. Bunu sağlamak için bazı otomatik denetimler yapılır. Ayrıntılı bilgi almak için İpuçları bölümüne ve belgelere bakın.", diff --git a/settings/l10n/zh_CN.js b/settings/l10n/zh_CN.js index 797673ac2fd..f53988b9875 100644 --- a/settings/l10n/zh_CN.js +++ b/settings/l10n/zh_CN.js @@ -369,7 +369,6 @@ OC.L10N.register( "Create" : "创建", "Admin Recovery Password" : "管理恢复密码", "Enter the recovery password in order to recover the users files during password change" : "输入恢复密码来在更改密码的时候恢复用户文件", - "Group name" : "分组名", "Everyone" : "所有人", "Admins" : "管理员", "Disabled" : "禁用", @@ -444,6 +443,7 @@ OC.L10N.register( "Subscribe to our news feed!" : "订阅我们 RSS 最新消息!", "Subscribe to our newsletter!" : "订阅我们的最新消息!", "Show last log in" : "显示最后登录", + "Group name" : "分组名", "You have now an %s account, you can add, protect, and share your data." : "你现在有%s个账户,你可以添加,保护和分享你的数据。", "Verifying" : "正在验证", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "为了您服务的安全和性能, 请将所有设置配置正确. 我们将会进行一些自动化检查以帮助您完成这项工作. 详情请查看 \"小提示\" 部分及相关文档.", diff --git a/settings/l10n/zh_CN.json b/settings/l10n/zh_CN.json index 52e5478ddc3..5a8f841e6d2 100644 --- a/settings/l10n/zh_CN.json +++ b/settings/l10n/zh_CN.json @@ -367,7 +367,6 @@ "Create" : "创建", "Admin Recovery Password" : "管理恢复密码", "Enter the recovery password in order to recover the users files during password change" : "输入恢复密码来在更改密码的时候恢复用户文件", - "Group name" : "分组名", "Everyone" : "所有人", "Admins" : "管理员", "Disabled" : "禁用", @@ -442,6 +441,7 @@ "Subscribe to our news feed!" : "订阅我们 RSS 最新消息!", "Subscribe to our newsletter!" : "订阅我们的最新消息!", "Show last log in" : "显示最后登录", + "Group name" : "分组名", "You have now an %s account, you can add, protect, and share your data." : "你现在有%s个账户,你可以添加,保护和分享你的数据。", "Verifying" : "正在验证", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "为了您服务的安全和性能, 请将所有设置配置正确. 我们将会进行一些自动化检查以帮助您完成这项工作. 详情请查看 \"小提示\" 部分及相关文档.", diff --git a/settings/templates/users/part.grouplist.php b/settings/templates/users/part.grouplist.php index 5dfd7836f6a..469ed94adb3 100644 --- a/settings/templates/users/part.grouplist.php +++ b/settings/templates/users/part.grouplist.php @@ -1,18 +1,16 @@ <ul id="usergrouplist" data-sort-groups="<?php p($_['sortGroups']); ?>"> <!-- Add new group --> <?php if ($_['isAdmin']) { ?> - <li id="newgroup-init"> - <a href="#"> - <span><?php p($l->t('Add group'))?></span> - </a> + <li id="newgroup-entry"> + <a href="#" class="icon-add" id="newgroup-init"><?php p($l->t('Add group'))?></a> + <div class="app-navigation-entry-edit" id="newgroup-form"> + <form> + <input type="text" id="newgroupname" placeholder="<?php p($l->t('Add group'))?>"> + <input type="submit" value="" class="icon-checkmark"> + </form> + </div> </li> <?php } ?> - <li id="newgroup-form" style="display: none"> - <form> - <input type="text" id="newgroupname" placeholder="<?php p($l->t('Group name')); ?> …" /> - <input type="submit" class="button icon-add" value="" /> - </form> - </li> <!-- Everyone --> <li id="everyonegroup" data-gid="_everyone" data-usercount="" class="isgroup"> <a href="#"> @@ -20,20 +18,22 @@ <?php p($l->t('Everyone')); ?> </span> </a> - <span class="utils"> - <span class="usercount" id="everyonecount"> - - </span> - </span> + <div class="app-navigation-entry-utils"> + <ul> + <li class="usercount app-navigation-entry-utils-counter" id="everyonecount"></li> + </ul> + </div> </li> <!-- The Admin Group --> <?php foreach($_["adminGroup"] as $adminGroup): ?> <li data-gid="admin" data-usercount="<?php if($adminGroup['usercount'] > 0) { p($adminGroup['usercount']); } ?>" class="isgroup"> <a href="#"><span class="groupname"><?php p($l->t('Admins')); ?></span></a> - <span class="utils"> - <span class="usercount"><?php if($adminGroup['usercount'] > 0) { p($adminGroup['usercount']); } ?></span> - </span> + <div class="app-navigation-entry-utils"> + <ul> + <li class="app-navigation-entry-utils-counter"><?php if($adminGroup['usercount'] > 0) { p($adminGroup['usercount']); } ?></li> + </ul> + </div> </li> <?php endforeach; ?> @@ -41,9 +41,11 @@ <?php $disabledUsersGroup = $_["disabledUsersGroup"] ?> <li data-gid="_disabledUsers" data-usercount="<?php if($disabledUsersGroup['usercount'] > 0) { p($disabledUsersGroup['usercount']); } ?>" class="isgroup"> <a href="#"><span class="groupname"><?php p($l->t('Disabled')); ?></span></a> - <span class="utils"> - <span class="usercount"><?php if($disabledUsersGroup['usercount'] > 0) { p($disabledUsersGroup['usercount']); } ?></span> - </span> + <div class="app-navigation-entry-utils"> + <ul> + <li class="app-navigation-entry-utils-counter"><?php if($disabledUsersGroup['usercount'] > 0) { p($disabledUsersGroup['usercount']); } ?></li> + </ul> + </div> </li> <!--List of Groups--> @@ -52,14 +54,16 @@ <a href="#" class="dorename"> <span class="groupname"><?php p($group['name']); ?></span> </a> - <span class="utils"> - <span class="usercount"><?php if($group['usercount'] > 0) { p($group['usercount']); } ?></span> - <?php if($_['isAdmin']): ?> - <a href="#" class="action delete" original-title="<?php p($l->t('Delete'))?>"> - <img src="<?php print_unescaped(image_path('core', 'actions/delete.svg')) ?>" /> - </a> - <?php endif; ?> - </span> + <div class="app-navigation-entry-utils"> + <ul> + <li class="app-navigation-entry-utils-counter"><?php if($group['usercount'] > 0) { p($group['usercount']); } ?></li> + <?php if($_['isAdmin']): ?> + <li class="app-navigation-entry-utils-menu-button delete"> + <button class="icon-delete"></button> + </li> + <?php endif; ?> + </ul> + </div> </li> <?php endforeach; ?> </ul> diff --git a/settings/users.php b/settings/users.php index 76c6b5848eb..2d949cb618c 100644 --- a/settings/users.php +++ b/settings/users.php @@ -41,6 +41,7 @@ OC_Util::checkSubAdminUser(); $userManager = \OC::$server->getUserManager(); $groupManager = \OC::$server->getGroupManager(); +$appManager = \OC::$server->getAppManager(); // Set the sort option: SORT_USERCOUNT or SORT_GROUPNAME $sortGroupsBy = \OC\Group\MetaData::SORT_USERCOUNT; @@ -51,7 +52,7 @@ if ($config->getSystemValue('sort_groups_by_name', false)) { $sortGroupsBy = \OC\Group\MetaData::SORT_GROUPNAME; } else { $isLDAPUsed = false; - if (\OC_App::isEnabled('user_ldap')) { + if ($appManager->isEnabledForUser('user_ldap')) { $isLDAPUsed = $groupManager->isBackendUsed('\OCA\User_LDAP\Group_LDAP') || $groupManager->isBackendUsed('\OCA\User_LDAP\Group_Proxy'); @@ -76,7 +77,7 @@ $groupsInfo = new \OC\Group\MetaData( $groupsInfo->setSorting($sortGroupsBy); list($adminGroup, $groups) = $groupsInfo->get(); -$recoveryAdminEnabled = OC_App::isEnabled('encryption') && +$recoveryAdminEnabled = $appManager->isEnabledForUser('encryption') && $config->getAppValue( 'encryption', 'recoveryAdminEnabled', '0'); if($isAdmin) { diff --git a/tests/Core/Controller/AvatarControllerTest.php b/tests/Core/Controller/AvatarControllerTest.php index 1a1f1130480..de568438022 100644 --- a/tests/Core/Controller/AvatarControllerTest.php +++ b/tests/Core/Controller/AvatarControllerTest.php @@ -85,16 +85,16 @@ class AvatarControllerTest extends \Test\TestCase { $this->avatarManager = $this->getMockBuilder('OCP\IAvatarManager')->getMock(); $this->cache = $this->getMockBuilder('OCP\ICache') ->disableOriginalConstructor()->getMock(); - $this->l = $this->getMockBuilder('OCP\IL10N')->getMock(); + $this->l = $this->getMockBuilder(IL10N::class)->getMock(); $this->l->method('t')->will($this->returnArgument(0)); - $this->userManager = $this->getMockBuilder('OCP\IUserManager')->getMock(); - $this->request = $this->getMockBuilder('OCP\IRequest')->getMock(); + $this->userManager = $this->getMockBuilder(IUserManager::class)->getMock(); + $this->request = $this->getMockBuilder(IRequest::class)->getMock(); $this->rootFolder = $this->getMockBuilder('OCP\Files\IRootFolder')->getMock(); - $this->logger = $this->getMockBuilder('OCP\ILogger')->getMock(); + $this->logger = $this->getMockBuilder(ILogger::class)->getMock(); $this->timeFactory = $this->getMockBuilder('OC\AppFramework\Utility\TimeFactory')->getMock(); $this->avatarMock = $this->getMockBuilder('OCP\IAvatar')->getMock(); - $this->userMock = $this->getMockBuilder('OCP\IUser')->getMock(); + $this->userMock = $this->getMockBuilder(IUser::class)->getMock(); $this->avatarController = new AvatarController( 'core', diff --git a/tests/Core/Controller/ChangePasswordControllerTest.php b/tests/Core/Controller/ChangePasswordControllerTest.php index ea3abb58e2f..851b5bd6c76 100644 --- a/tests/Core/Controller/ChangePasswordControllerTest.php +++ b/tests/Core/Controller/ChangePasswordControllerTest.php @@ -29,6 +29,7 @@ use OCP\AppFramework\Http\JSONResponse; use OCP\IGroupManager; use OCP\IL10N; use OCP\IRequest; +use OCP\IUser; use OCP\IUserManager; class ChangePasswordControllerTest extends \Test\TestCase { @@ -91,7 +92,7 @@ class ChangePasswordControllerTest extends \Test\TestCase { } public function testChangePersonalPasswordCommonPassword() { - $user = $this->getMockBuilder('OCP\IUser')->getMock(); + $user = $this->getMockBuilder(IUser::class)->getMock(); $this->userManager->expects($this->once()) ->method('checkPassword') ->with($this->userId, 'old') @@ -114,7 +115,7 @@ class ChangePasswordControllerTest extends \Test\TestCase { } public function testChangePersonalPasswordNoNewPassword() { - $user = $this->getMockBuilder('OCP\IUser')->getMock(); + $user = $this->getMockBuilder(IUser::class)->getMock(); $this->userManager->expects($this->once()) ->method('checkPassword') ->with($this->userId, 'old') @@ -130,7 +131,7 @@ class ChangePasswordControllerTest extends \Test\TestCase { } public function testChangePersonalPasswordCantSetPassword() { - $user = $this->getMockBuilder('OCP\IUser')->getMock(); + $user = $this->getMockBuilder(IUser::class)->getMock(); $this->userManager->expects($this->once()) ->method('checkPassword') ->with($this->userId, 'old') @@ -150,7 +151,7 @@ class ChangePasswordControllerTest extends \Test\TestCase { } public function testChangePersonalPassword() { - $user = $this->getMockBuilder('OCP\IUser')->getMock(); + $user = $this->getMockBuilder(IUser::class)->getMock(); $this->userManager->expects($this->once()) ->method('checkPassword') ->with($this->userId, 'old') diff --git a/tests/Core/Controller/LostControllerTest.php b/tests/Core/Controller/LostControllerTest.php index 196b1da352b..1e51de649e3 100644 --- a/tests/Core/Controller/LostControllerTest.php +++ b/tests/Core/Controller/LostControllerTest.php @@ -105,9 +105,9 @@ class LostControllerTest extends \Test\TestCase { })); $this->defaults = $this->getMockBuilder('\OCP\Defaults') ->disableOriginalConstructor()->getMock(); - $this->userManager = $this->getMockBuilder('\OCP\IUserManager') + $this->userManager = $this->getMockBuilder(IUserManager::class) ->disableOriginalConstructor()->getMock(); - $this->urlGenerator = $this->getMockBuilder('\OCP\IURLGenerator') + $this->urlGenerator = $this->getMockBuilder(IURLGenerator::class) ->disableOriginalConstructor()->getMock(); $this->mailer = $this->getMockBuilder('\OCP\Mail\IMailer') ->disableOriginalConstructor()->getMock(); @@ -115,7 +115,7 @@ class LostControllerTest extends \Test\TestCase { ->disableOriginalConstructor()->getMock(); $this->timeFactory = $this->getMockBuilder('\OCP\AppFramework\Utility\ITimeFactory') ->disableOriginalConstructor()->getMock(); - $this->request = $this->getMockBuilder('OCP\IRequest') + $this->request = $this->getMockBuilder(IRequest::class) ->disableOriginalConstructor()->getMock(); $this->encryptionManager = $this->getMockBuilder(IManager::class) ->disableOriginalConstructor()->getMock(); diff --git a/tests/Core/Middleware/TwoFactorMiddlewareTest.php b/tests/Core/Middleware/TwoFactorMiddlewareTest.php index 56022c78bdd..eb72b3e6796 100644 --- a/tests/Core/Middleware/TwoFactorMiddlewareTest.php +++ b/tests/Core/Middleware/TwoFactorMiddlewareTest.php @@ -22,8 +22,10 @@ namespace Test\Core\Middleware; +use OC\Authentication\TwoFactorAuth\Manager; use OC\Core\Middleware\TwoFactorMiddleware; use OC\AppFramework\Http\Request; +use OC\User\Session; use OCP\AppFramework\Controller; use OCP\AppFramework\Utility\IControllerMethodReflector; use OCP\IConfig; @@ -51,10 +53,10 @@ class TwoFactorMiddlewareTest extends TestCase { protected function setUp() { parent::setUp(); - $this->twoFactorManager = $this->getMockBuilder('\OC\Authentication\TwoFactorAuth\Manager') + $this->twoFactorManager = $this->getMockBuilder(Manager::class) ->disableOriginalConstructor() ->getMock(); - $this->userSession = $this->getMockBuilder('\OC\User\Session') + $this->userSession = $this->getMockBuilder(Session::class) ->disableOriginalConstructor() ->getMock(); $this->session = $this->createMock(ISession::class); diff --git a/tests/Settings/Controller/AdminSettingsControllerTest.php b/tests/Settings/Controller/AdminSettingsControllerTest.php index 51357f67a2d..d5650b397fa 100644 --- a/tests/Settings/Controller/AdminSettingsControllerTest.php +++ b/tests/Settings/Controller/AdminSettingsControllerTest.php @@ -25,6 +25,7 @@ namespace Tests\Settings\Controller; use OC\Settings\Admin\TipsTricks; use OC\Settings\Controller\AdminSettingsController; use OCP\AppFramework\Http\TemplateResponse; +use OCP\IConfig; use OCP\INavigationManager; use OCP\IRequest; use OCP\Settings\IManager; @@ -52,9 +53,9 @@ class AdminSettingsControllerTest extends TestCase { public function setUp() { parent::setUp(); - $this->request = $this->getMockBuilder('\OCP\IRequest')->getMock(); - $this->navigationManager = $this->getMockBuilder('\OCP\INavigationManager')->getMock(); - $this->settingsManager = $this->getMockBuilder('\OCP\Settings\IManager')->getMock(); + $this->request = $this->getMockBuilder(IRequest::class)->getMock(); + $this->navigationManager = $this->getMockBuilder(INavigationManager::class)->getMock(); + $this->settingsManager = $this->getMockBuilder(IManager::class)->getMock(); $this->adminSettingsController = new AdminSettingsController( 'settings', @@ -87,7 +88,7 @@ class AdminSettingsControllerTest extends TestCase { ->expects($this->once()) ->method('getAdminSettings') ->with('test') - ->willReturn([5 => new TipsTricks($this->getMockBuilder('\OCP\IConfig')->getMock())]); + ->willReturn([5 => new TipsTricks($this->getMockBuilder(IConfig::class)->getMock())]); $expected = new TemplateResponse('settings', 'settings/frame', ['forms' => ['personal' => [], 'admin' => []], 'content' => '']); $this->assertEquals($expected, $this->adminSettingsController->index('test')); diff --git a/tests/Settings/Controller/CertificateControllerTest.php b/tests/Settings/Controller/CertificateControllerTest.php index 48d34a1542b..fb5076dc012 100644 --- a/tests/Settings/Controller/CertificateControllerTest.php +++ b/tests/Settings/Controller/CertificateControllerTest.php @@ -51,10 +51,10 @@ class CertificateControllerTest extends \Test\TestCase { public function setUp() { parent::setUp(); - $this->request = $this->getMockBuilder('\OCP\IRequest')->getMock(); + $this->request = $this->getMockBuilder(IRequest::class)->getMock(); $this->certificateManager = $this->getMockBuilder('\OCP\ICertificateManager')->getMock(); $this->systemCertificateManager = $this->getMockBuilder('\OCP\ICertificateManager')->getMock(); - $this->l10n = $this->getMockBuilder('\OCP\IL10N')->getMock(); + $this->l10n = $this->getMockBuilder(IL10N::class)->getMock(); $this->appManager = $this->getMockBuilder('OCP\App\IAppManager')->getMock(); $this->certificateController = $this->getMockBuilder('OC\Settings\Controller\CertificateController') diff --git a/tests/Settings/Controller/CheckSetupControllerTest.php b/tests/Settings/Controller/CheckSetupControllerTest.php index 74eee3fea41..f0e203e714b 100644 --- a/tests/Settings/Controller/CheckSetupControllerTest.php +++ b/tests/Settings/Controller/CheckSetupControllerTest.php @@ -64,17 +64,17 @@ class CheckSetupControllerTest extends TestCase { public function setUp() { parent::setUp(); - $this->request = $this->getMockBuilder('\OCP\IRequest') + $this->request = $this->getMockBuilder(IRequest::class) ->disableOriginalConstructor()->getMock(); - $this->config = $this->getMockBuilder('\OCP\IConfig') + $this->config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor()->getMock(); - $this->clientService = $this->getMockBuilder('\OCP\Http\Client\IClientService') + $this->clientService = $this->getMockBuilder(IClientService::class) ->disableOriginalConstructor()->getMock(); $this->util = $this->getMockBuilder('\OC_Util') ->disableOriginalConstructor()->getMock(); - $this->urlGenerator = $this->getMockBuilder('\OCP\IURLGenerator') + $this->urlGenerator = $this->getMockBuilder(IURLGenerator::class) ->disableOriginalConstructor()->getMock(); - $this->l10n = $this->getMockBuilder('\OCP\IL10N') + $this->l10n = $this->getMockBuilder(IL10N::class) ->disableOriginalConstructor()->getMock(); $this->l10n->expects($this->any()) ->method('t') @@ -83,7 +83,7 @@ class CheckSetupControllerTest extends TestCase { })); $this->checker = $this->getMockBuilder('\OC\IntegrityCheck\Checker') ->disableOriginalConstructor()->getMock(); - $this->logger = $this->getMockBuilder('\OCP\ILogger')->getMock(); + $this->logger = $this->getMockBuilder(ILogger::class)->getMock(); $this->checkSetupController = $this->getMockBuilder('\OC\Settings\Controller\CheckSetupController') ->setConstructorArgs([ 'settings', diff --git a/tests/Settings/Controller/EncryptionControllerTest.php b/tests/Settings/Controller/EncryptionControllerTest.php index bbc2d7b6599..b15a71fc016 100644 --- a/tests/Settings/Controller/EncryptionControllerTest.php +++ b/tests/Settings/Controller/EncryptionControllerTest.php @@ -24,11 +24,14 @@ namespace Tests\Settings\Controller; use OC\DB\Connection; use OC\Files\View; use OC\Settings\Controller\EncryptionController; +use OCP\App\IAppManager; +use OCA\Encryption\Migration; use OCP\IConfig; use OCP\IL10N; use OCP\ILogger; use OCP\IRequest; use OCP\IUserManager; +use OCP\UserInterface; use Test\TestCase; /** @@ -51,32 +54,36 @@ class EncryptionControllerTest extends TestCase { private $view; /** @var ILogger */ private $logger; + /** @var IAppManager */ + private $appManager; /** @var EncryptionController */ private $encryptionController; public function setUp() { parent::setUp(); - $this->request = $this->getMockBuilder('\\OCP\\IRequest') + $this->request = $this->getMockBuilder(IRequest::class) ->disableOriginalConstructor()->getMock(); - $this->l10n = $this->getMockBuilder('\\OCP\\IL10N') + $this->l10n = $this->getMockBuilder(IL10N::class) ->disableOriginalConstructor()->getMock(); $this->l10n->expects($this->any()) ->method('t') ->will($this->returnCallback(function($message, array $replace) { return vsprintf($message, $replace); })); - $this->config = $this->getMockBuilder('\\OCP\\IConfig') + $this->config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor()->getMock(); - $this->connection = $this->getMockBuilder('\\OC\\DB\\Connection') + $this->connection = $this->getMockBuilder(Connection::class) ->disableOriginalConstructor()->getMock(); - $this->userManager = $this->getMockBuilder('\\OCP\\IUserManager') + $this->userManager = $this->getMockBuilder(IUserManager::class) ->disableOriginalConstructor()->getMock(); - $this->view = $this->getMockBuilder('\\OC\\Files\\View') + $this->view = $this->getMockBuilder(View::class) ->disableOriginalConstructor()->getMock(); - $this->logger = $this->getMockBuilder('\\OCP\\ILogger') + $this->logger = $this->getMockBuilder(ILogger::class) + ->disableOriginalConstructor()->getMock(); + $this->appManager = $this->getMockBuilder('\\OCP\\App\\IAppManager') ->disableOriginalConstructor()->getMock(); - $this->encryptionController = $this->getMockBuilder('\\OC\\Settings\\Controller\\EncryptionController') + $this->encryptionController = $this->getMockBuilder(EncryptionController::class) ->setConstructorArgs([ 'settings', $this->request, @@ -86,6 +93,7 @@ class EncryptionControllerTest extends TestCase { $this->userManager, $this->view, $this->logger, + $this->appManager, ]) ->setMethods(['getMigration']) ->getMock(); @@ -95,7 +103,7 @@ class EncryptionControllerTest extends TestCase { // we need to be able to autoload the class we're mocking \OC_App::registerAutoloading('encryption', \OC_App::getAppPath('encryption')); - $migration = $this->getMockBuilder('\\OCA\\Encryption\\Migration') + $migration = $this->getMockBuilder(Migration::class) ->disableOriginalConstructor()->getMock(); $this->encryptionController ->expects($this->once()) @@ -108,7 +116,7 @@ class EncryptionControllerTest extends TestCase { $migration ->expects($this->once()) ->method('updateDB'); - $backend = $this->getMockBuilder('\OCP\UserInterface') + $backend = $this->getMockBuilder(UserInterface::class) ->getMock(); $this->userManager ->expects($this->once()) diff --git a/tests/Settings/Controller/GroupsControllerTest.php b/tests/Settings/Controller/GroupsControllerTest.php index 340b39bf9dd..ecbfa9ea05e 100644 --- a/tests/Settings/Controller/GroupsControllerTest.php +++ b/tests/Settings/Controller/GroupsControllerTest.php @@ -10,8 +10,10 @@ namespace Tests\Settings\Controller; +use OC\Group\Group; use OC\Group\MetaData; use OC\Settings\Controller\GroupsController; +use OC\User\User; use OCP\AppFramework\Http; use OCP\AppFramework\Http\DataResponse; use OCP\IGroupManager; @@ -59,7 +61,7 @@ class GroupsControllerTest extends \Test\TestCase { * to test for subadmins. Thus the test always assumes you have admin permissions... */ public function testIndexSortByName() { - $firstGroup = $this->getMockBuilder('\OC\Group\Group') + $firstGroup = $this->getMockBuilder(Group::class) ->disableOriginalConstructor()->getMock(); $firstGroup ->method('getGID') @@ -67,7 +69,7 @@ class GroupsControllerTest extends \Test\TestCase { $firstGroup ->method('count') ->will($this->returnValue(12)); - $secondGroup = $this->getMockBuilder('\OC\Group\Group') + $secondGroup = $this->getMockBuilder(Group::class) ->disableOriginalConstructor()->getMock(); $secondGroup ->method('getGID') @@ -75,7 +77,7 @@ class GroupsControllerTest extends \Test\TestCase { $secondGroup ->method('count') ->will($this->returnValue(25)); - $thirdGroup = $this->getMockBuilder('\OC\Group\Group') + $thirdGroup = $this->getMockBuilder(Group::class) ->disableOriginalConstructor()->getMock(); $thirdGroup ->method('getGID') @@ -83,7 +85,7 @@ class GroupsControllerTest extends \Test\TestCase { $thirdGroup ->method('count') ->will($this->returnValue(14)); - $fourthGroup = $this->getMockBuilder('\OC\Group\Group') + $fourthGroup = $this->getMockBuilder(Group::class) ->disableOriginalConstructor()->getMock(); $fourthGroup ->method('getGID') @@ -98,7 +100,7 @@ class GroupsControllerTest extends \Test\TestCase { $groups[] = $thirdGroup; $groups[] = $fourthGroup; - $user = $this->getMockBuilder('\OC\User\User') + $user = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $this->userSession ->expects($this->once()) @@ -151,7 +153,7 @@ class GroupsControllerTest extends \Test\TestCase { * to test for subadmins. Thus the test always assumes you have admin permissions... */ public function testIndexSortbyCount() { - $firstGroup = $this->getMockBuilder('\OC\Group\Group') + $firstGroup = $this->getMockBuilder(Group::class) ->disableOriginalConstructor()->getMock(); $firstGroup ->method('getGID') @@ -159,7 +161,7 @@ class GroupsControllerTest extends \Test\TestCase { $firstGroup ->method('count') ->will($this->returnValue(12)); - $secondGroup = $this->getMockBuilder('\OC\Group\Group') + $secondGroup = $this->getMockBuilder(Group::class) ->disableOriginalConstructor()->getMock(); $secondGroup ->method('getGID') @@ -167,7 +169,7 @@ class GroupsControllerTest extends \Test\TestCase { $secondGroup ->method('count') ->will($this->returnValue(25)); - $thirdGroup = $this->getMockBuilder('\OC\Group\Group') + $thirdGroup = $this->getMockBuilder(Group::class) ->disableOriginalConstructor()->getMock(); $thirdGroup ->method('getGID') @@ -175,7 +177,7 @@ class GroupsControllerTest extends \Test\TestCase { $thirdGroup ->method('count') ->will($this->returnValue(14)); - $fourthGroup = $this->getMockBuilder('\OC\Group\Group') + $fourthGroup = $this->getMockBuilder(Group::class) ->disableOriginalConstructor()->getMock(); $fourthGroup ->method('getGID') @@ -190,7 +192,7 @@ class GroupsControllerTest extends \Test\TestCase { $groups[] = $thirdGroup; $groups[] = $fourthGroup; - $user = $this->getMockBuilder('\OC\User\User') + $user = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $this->userSession ->expects($this->once()) @@ -302,7 +304,7 @@ class GroupsControllerTest extends \Test\TestCase { } public function testDestroySuccessful() { - $group = $this->getMockBuilder('\OC\Group\Group') + $group = $this->getMockBuilder(Group::class) ->disableOriginalConstructor()->getMock(); $this->groupManager ->expects($this->once()) diff --git a/tests/Settings/Controller/UsersControllerTest.php b/tests/Settings/Controller/UsersControllerTest.php index cd08c834147..15c18fb7f08 100644 --- a/tests/Settings/Controller/UsersControllerTest.php +++ b/tests/Settings/Controller/UsersControllerTest.php @@ -11,9 +11,11 @@ namespace Tests\Settings\Controller; use OC\Accounts\AccountManager; +use OC\Group\Group; use OC\Group\Manager; use OC\Settings\Controller\UsersController; use OC\Settings\Mailer\NewUserMailHelper; +use OC\SubAdmin; use OCP\App\IAppManager; use OCP\AppFramework\Http; use OCP\AppFramework\Http\DataResponse; @@ -326,7 +328,7 @@ class UsersControllerTest extends \Test\TestCase { ->with('bar') ->will($this->returnValue($bar)); - $subadmin = $this->getMockBuilder('\OC\SubAdmin') + $subadmin = $this->getMockBuilder(SubAdmin::class) ->disableOriginalConstructor() ->getMock(); $subadmin @@ -546,19 +548,19 @@ class UsersControllerTest extends \Test\TestCase { ->with('admin') ->will($this->returnValue($admin)); - $subgroup1 = $this->getMockBuilder('\OCP\IGroup') + $subgroup1 = $this->getMockBuilder(IGroup::class) ->disableOriginalConstructor() ->getMock(); $subgroup1->expects($this->any()) ->method('getGID') ->will($this->returnValue('SubGroup1')); - $subgroup2 = $this->getMockBuilder('\OCP\IGroup') + $subgroup2 = $this->getMockBuilder(IGroup::class) ->disableOriginalConstructor() ->getMock(); $subgroup2->expects($this->any()) ->method('getGID') ->will($this->returnValue('SubGroup2')); - $subadmin = $this->getMockBuilder('\OC\SubAdmin') + $subadmin = $this->getMockBuilder(SubAdmin::class) ->disableOriginalConstructor() ->getMock(); $subadmin @@ -746,7 +748,7 @@ class UsersControllerTest extends \Test\TestCase { ->method('getUserGroupIds') ->will($this->onConsecutiveCalls(array('Users', 'Support'), array('admins', 'Support'), array('External Users'))); - $subadmin = $this->getMockBuilder('\OC\SubAdmin') + $subadmin = $this->getMockBuilder(SubAdmin::class) ->disableOriginalConstructor() ->getMock(); $subadmin->expects($this->any()) @@ -865,7 +867,7 @@ class UsersControllerTest extends \Test\TestCase { ->with('') ->will($this->returnValue([$user])); - $subadmin = $this->getMockBuilder('\OC\SubAdmin') + $subadmin = $this->getMockBuilder(SubAdmin::class) ->disableOriginalConstructor() ->getMock(); $subadmin->expects($this->once()) @@ -951,7 +953,7 @@ class UsersControllerTest extends \Test\TestCase { ->method('createUser') ->will($this->onConsecutiveCalls($user)); - $subadmin = $this->getMockBuilder('\OC\SubAdmin') + $subadmin = $this->getMockBuilder(SubAdmin::class) ->disableOriginalConstructor() ->getMock(); $subadmin @@ -1006,13 +1008,13 @@ class UsersControllerTest extends \Test\TestCase { $user->expects($this->any()) ->method('isEnabled') ->willReturn(true); - $existingGroup = $this->getMockBuilder('\OCP\IGroup') + $existingGroup = $this->getMockBuilder(IGroup::class) ->disableOriginalConstructor()->getMock(); $existingGroup ->expects($this->once()) ->method('addUser') ->with($user); - $newGroup = $this->getMockBuilder('\OCP\IGroup') + $newGroup = $this->getMockBuilder(IGroup::class) ->disableOriginalConstructor()->getMock(); $newGroup ->expects($this->once()) @@ -1038,7 +1040,7 @@ class UsersControllerTest extends \Test\TestCase { ->with($user) ->will($this->onConsecutiveCalls(array('NewGroup', 'ExistingGroup'))); - $subadmin = $this->getMockBuilder('\OC\SubAdmin') + $subadmin = $this->getMockBuilder(SubAdmin::class) ->disableOriginalConstructor() ->getMock(); $subadmin @@ -1358,7 +1360,7 @@ class UsersControllerTest extends \Test\TestCase { ->with('UserToDelete') ->will($this->returnValue($toDeleteUser)); - $subadmin = $this->getMockBuilder('\OC\SubAdmin') + $subadmin = $this->getMockBuilder(SubAdmin::class) ->disableOriginalConstructor() ->getMock(); $subadmin->expects($this->once()) @@ -1441,7 +1443,7 @@ class UsersControllerTest extends \Test\TestCase { ->with('UserToDelete') ->will($this->returnValue($toDeleteUser)); - $subadmin = $this->getMockBuilder('\OC\SubAdmin') + $subadmin = $this->getMockBuilder(SubAdmin::class) ->disableOriginalConstructor() ->getMock(); $subadmin->expects($this->once()) @@ -1487,7 +1489,7 @@ class UsersControllerTest extends \Test\TestCase { ->with('UserToDelete') ->will($this->returnValue($toDeleteUser)); - $subadmin = $this->getMockBuilder('\OC\SubAdmin') + $subadmin = $this->getMockBuilder(SubAdmin::class) ->disableOriginalConstructor() ->getMock(); $subadmin->expects($this->once()) @@ -1571,7 +1573,7 @@ class UsersControllerTest extends \Test\TestCase { ->expects($this->once()) ->method('createUser') ->will($this->onConsecutiveCalls($user)); - $subadmin = $this->getMockBuilder('\OC\SubAdmin') + $subadmin = $this->getMockBuilder(SubAdmin::class) ->disableOriginalConstructor() ->getMock(); $subadmin->expects($this->once()) @@ -1637,7 +1639,7 @@ class UsersControllerTest extends \Test\TestCase { list($user, $expectedResult) = $this->mockUser(); - $subadmin = $this->getMockBuilder('\OC\SubAdmin') + $subadmin = $this->getMockBuilder(SubAdmin::class) ->disableOriginalConstructor() ->getMock(); $subadmin->expects($this->once()) @@ -1684,7 +1686,7 @@ class UsersControllerTest extends \Test\TestCase { ) ->will($this->returnValue('1')); - $subadmin = $this->getMockBuilder('\OC\SubAdmin') + $subadmin = $this->getMockBuilder(SubAdmin::class) ->disableOriginalConstructor() ->getMock(); $subadmin->expects($this->once()) @@ -1722,7 +1724,7 @@ class UsersControllerTest extends \Test\TestCase { // without the master key enabled we use per-user keys -> restore is disabled $expectedResult['isRestoreDisabled'] = !$masterKeyEnabled; - $subadmin = $this->getMockBuilder('\OC\SubAdmin') + $subadmin = $this->getMockBuilder(SubAdmin::class) ->disableOriginalConstructor() ->getMock(); $subadmin->expects($this->once()) @@ -1779,7 +1781,7 @@ class UsersControllerTest extends \Test\TestCase { $expectedResult['isRestoreDisabled'] = true; - $subadmin = $this->getMockBuilder('\OC\SubAdmin') + $subadmin = $this->getMockBuilder(SubAdmin::class) ->disableOriginalConstructor() ->getMock(); $subadmin->expects($this->once()) @@ -1801,7 +1803,7 @@ class UsersControllerTest extends \Test\TestCase { list($user, $expectedResult) = $this->mockUser(); - $subadmin = $this->getMockBuilder('\OC\SubAdmin') + $subadmin = $this->getMockBuilder(SubAdmin::class) ->disableOriginalConstructor() ->getMock(); $subadmin->expects($this->once()) @@ -1853,21 +1855,21 @@ class UsersControllerTest extends \Test\TestCase { ->method('getUser') ->will($this->returnValue($user)); - $group1 = $this->getMockBuilder('\OC\Group\Group') + $group1 = $this->getMockBuilder(Group::class) ->disableOriginalConstructor()->getMock(); $group1 ->expects($this->once()) ->method('getUsers') ->will($this->returnValue(['foo' => 'M. Foo', 'admin' => 'S. Admin'])); - $group2 = $this->getMockBuilder('\OC\Group\Group') + $group2 = $this->getMockBuilder(Group::class) ->disableOriginalConstructor()->getMock(); $group2 ->expects($this->once()) ->method('getUsers') ->will($this->returnValue(['bar' => 'B. Ar'])); - $subadmin = $this->getMockBuilder('\OC\SubAdmin') + $subadmin = $this->getMockBuilder(SubAdmin::class) ->disableOriginalConstructor() ->getMock(); $subadmin @@ -1971,7 +1973,7 @@ class UsersControllerTest extends \Test\TestCase { ->willReturn($editUser); $this->accountManager->expects($this->any())->method('getUser')->willReturn([]); - $subadmin = $this->getMockBuilder('\OC\SubAdmin') + $subadmin = $this->getMockBuilder(SubAdmin::class) ->disableOriginalConstructor() ->getMock(); $subadmin @@ -2036,7 +2038,7 @@ class UsersControllerTest extends \Test\TestCase { ->with($user->getUID()) ->willReturn($user); - $subadmin = $this->getMockBuilder('\OC\SubAdmin') + $subadmin = $this->getMockBuilder(SubAdmin::class) ->disableOriginalConstructor() ->getMock(); $subadmin @@ -2437,7 +2439,7 @@ class UsersControllerTest extends \Test\TestCase { ->method('createUser') ->will($this->onConsecutiveCalls($user)); - $subadmin = $this->getMockBuilder('\OC\SubAdmin') + $subadmin = $this->getMockBuilder(SubAdmin::class) ->disableOriginalConstructor() ->getMock(); $subadmin @@ -2576,7 +2578,7 @@ class UsersControllerTest extends \Test\TestCase { } public function testDisableUserFailsDueSameUser() { - $user = $this->getMockBuilder('\OC\User\User') + $user = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $user->expects($this->once()) ->method('getUID') @@ -2599,7 +2601,7 @@ class UsersControllerTest extends \Test\TestCase { } public function testDisableUserFailsDueNoAdminAndNoSubadmin() { - $user = $this->getMockBuilder('\OC\User\User') + $user = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $user->expects($this->once()) ->method('getUID') @@ -2608,7 +2610,7 @@ class UsersControllerTest extends \Test\TestCase { ->expects($this->exactly(2)) ->method('getUser') ->will($this->returnValue($user)); - $user2 = $this->getMockBuilder('\OC\User\User') + $user2 = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $user2->expects($this->never()) ->method('setEnabled'); @@ -2618,7 +2620,7 @@ class UsersControllerTest extends \Test\TestCase { ->with('abc') ->willReturn($user2); - $subadmin = $this->createMock('\OC\SubAdmin'); + $subadmin = $this->createMock(SubAdmin::class); $subadmin->expects($this->once()) ->method('isUserAccessible') ->will($this->returnValue(false)); @@ -2641,7 +2643,7 @@ class UsersControllerTest extends \Test\TestCase { } public function testDisableUserFailsDueNoUser() { - $user = $this->getMockBuilder('\OC\User\User') + $user = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $user->expects($this->once()) ->method('getUID') @@ -2674,7 +2676,7 @@ class UsersControllerTest extends \Test\TestCase { } public function testDisableUserFailsDueNoUserForSubAdmin() { - $user = $this->getMockBuilder('\OC\User\User') + $user = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $user->expects($this->once()) ->method('getUID') @@ -2707,7 +2709,7 @@ class UsersControllerTest extends \Test\TestCase { } public function testDisableUserSuccessForAdmin() { - $user = $this->getMockBuilder('\OC\User\User') + $user = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $user->expects($this->once()) ->method('getUID') @@ -2716,7 +2718,7 @@ class UsersControllerTest extends \Test\TestCase { ->expects($this->exactly(1)) ->method('getUser') ->will($this->returnValue($user)); - $user2 = $this->getMockBuilder('\OC\User\User') + $user2 = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $user2->expects($this->once()) ->method('setEnabled') @@ -2745,7 +2747,7 @@ class UsersControllerTest extends \Test\TestCase { } public function testDisableUserSuccessForSubAdmin() { - $user = $this->getMockBuilder('\OC\User\User') + $user = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $user->expects($this->once()) ->method('getUID') @@ -2754,7 +2756,7 @@ class UsersControllerTest extends \Test\TestCase { ->expects($this->exactly(2)) ->method('getUser') ->will($this->returnValue($user)); - $user2 = $this->getMockBuilder('\OC\User\User') + $user2 = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $user2->expects($this->once()) ->method('setEnabled'); @@ -2764,7 +2766,7 @@ class UsersControllerTest extends \Test\TestCase { ->with('abc') ->willReturn($user2); - $subadmin = $this->createMock('\OC\SubAdmin'); + $subadmin = $this->createMock(SubAdmin::class); $subadmin->expects($this->once()) ->method('isUserAccessible') ->will($this->returnValue(true)); @@ -2787,7 +2789,7 @@ class UsersControllerTest extends \Test\TestCase { } public function testEnableUserFailsDueSameUser() { - $user = $this->getMockBuilder('\OC\User\User') + $user = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $user->expects($this->once()) ->method('getUID') @@ -2810,7 +2812,7 @@ class UsersControllerTest extends \Test\TestCase { } public function testEnableUserFailsDueNoAdminAndNoSubadmin() { - $user = $this->getMockBuilder('\OC\User\User') + $user = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $user->expects($this->once()) ->method('getUID') @@ -2819,7 +2821,7 @@ class UsersControllerTest extends \Test\TestCase { ->expects($this->exactly(2)) ->method('getUser') ->will($this->returnValue($user)); - $user2 = $this->getMockBuilder('\OC\User\User') + $user2 = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $user2->expects($this->never()) ->method('setEnabled'); @@ -2829,7 +2831,7 @@ class UsersControllerTest extends \Test\TestCase { ->with('abc') ->willReturn($user2); - $subadmin = $this->createMock('\OC\SubAdmin'); + $subadmin = $this->createMock(SubAdmin::class); $subadmin->expects($this->once()) ->method('isUserAccessible') ->will($this->returnValue(false)); @@ -2852,7 +2854,7 @@ class UsersControllerTest extends \Test\TestCase { } public function testEnableUserFailsDueNoUser() { - $user = $this->getMockBuilder('\OC\User\User') + $user = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $user->expects($this->once()) ->method('getUID') @@ -2885,7 +2887,7 @@ class UsersControllerTest extends \Test\TestCase { } public function testEnableUserFailsDueNoUserForSubAdmin() { - $user = $this->getMockBuilder('\OC\User\User') + $user = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $user->expects($this->once()) ->method('getUID') @@ -2918,7 +2920,7 @@ class UsersControllerTest extends \Test\TestCase { } public function testEnableUserSuccessForAdmin() { - $user = $this->getMockBuilder('\OC\User\User') + $user = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $user->expects($this->once()) ->method('getUID') @@ -2927,7 +2929,7 @@ class UsersControllerTest extends \Test\TestCase { ->expects($this->exactly(1)) ->method('getUser') ->will($this->returnValue($user)); - $user2 = $this->getMockBuilder('\OC\User\User') + $user2 = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $user2->expects($this->once()) ->method('setEnabled'); @@ -2955,7 +2957,7 @@ class UsersControllerTest extends \Test\TestCase { } public function testEnableUserSuccessForSubAdmin() { - $user = $this->getMockBuilder('\OC\User\User') + $user = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $user->expects($this->once()) ->method('getUID') @@ -2964,7 +2966,7 @@ class UsersControllerTest extends \Test\TestCase { ->expects($this->exactly(2)) ->method('getUser') ->will($this->returnValue($user)); - $user2 = $this->getMockBuilder('\OC\User\User') + $user2 = $this->getMockBuilder(User::class) ->disableOriginalConstructor()->getMock(); $user2->expects($this->once()) ->method('setEnabled') @@ -2975,7 +2977,7 @@ class UsersControllerTest extends \Test\TestCase { ->with('abc') ->willReturn($user2); - $subadmin = $this->createMock('\OC\SubAdmin'); + $subadmin = $this->createMock(SubAdmin::class); $subadmin->expects($this->once()) ->method('isUserAccessible') ->will($this->returnValue(true)); diff --git a/tests/Settings/Middleware/SubadminMiddlewareTest.php b/tests/Settings/Middleware/SubadminMiddlewareTest.php index b2724047750..834a3fedf23 100644 --- a/tests/Settings/Middleware/SubadminMiddlewareTest.php +++ b/tests/Settings/Middleware/SubadminMiddlewareTest.php @@ -34,9 +34,9 @@ class SubadminMiddlewareTest extends \Test\TestCase { protected function setUp() { parent::setUp(); - $this->reflector = $this->getMockBuilder('\OC\AppFramework\Utility\ControllerMethodReflector') + $this->reflector = $this->getMockBuilder(ControllerMethodReflector::class) ->disableOriginalConstructor()->getMock(); - $this->controller = $this->getMockBuilder('\OCP\AppFramework\Controller') + $this->controller = $this->getMockBuilder(Controller::class) ->disableOriginalConstructor()->getMock(); $this->subadminMiddlewareAsSubAdmin = new SubadminMiddleware($this->reflector, true); diff --git a/tests/acceptance/features/app-files.feature b/tests/acceptance/features/app-files.feature index 37e01bcada2..ac2d05fac2c 100644 --- a/tests/acceptance/features/app-files.feature +++ b/tests/acceptance/features/app-files.feature @@ -145,6 +145,14 @@ Feature: app-files Given I am logged in And I create a new folder named "A name alphabetically lower than welcome.txt" And I see that "A name alphabetically lower than welcome.txt" precedes "welcome.txt" in the file list + # To mark the file as favorite the file actions menu has to be shown but, as + # the details view is opened automatically when the folder is created, + # clicking on the menu trigger could fail if it is covered by the details + # view due to its opening animation. Instead of ensuring that the animations + # of the contents and the details view have both finished it is easier to + # close the details view and wait until it is closed before continuing. + And I close the details view + And I see that the details view is closed When I mark "welcome.txt" as favorite Then I see that "welcome.txt" is marked as favorite And I see that "welcome.txt" precedes "A name alphabetically lower than welcome.txt" in the file list @@ -153,6 +161,14 @@ Feature: app-files Given I am logged in And I create a new folder named "A name alphabetically lower than welcome.txt" And I see that "A name alphabetically lower than welcome.txt" precedes "welcome.txt" in the file list + # To mark the file as favorite the file actions menu has to be shown but, as + # the details view is opened automatically when the folder is created, + # clicking on the menu trigger could fail if it is covered by the details + # view due to its opening animation. Instead of ensuring that the animations + # of the contents and the details view have both finished it is easier to + # close the details view and wait until it is closed before continuing. + And I close the details view + And I see that the details view is closed And I mark "welcome.txt" as favorite And I see that "welcome.txt" is marked as favorite And I see that "welcome.txt" precedes "A name alphabetically lower than welcome.txt" in the file list diff --git a/tests/acceptance/features/bootstrap/FilesAppContext.php b/tests/acceptance/features/bootstrap/FilesAppContext.php index bb088c0a2c3..338823a9478 100644 --- a/tests/acceptance/features/bootstrap/FilesAppContext.php +++ b/tests/acceptance/features/bootstrap/FilesAppContext.php @@ -80,6 +80,15 @@ class FilesAppContext implements Context, ActorAwareInterface { /** * @return Locator */ + public static function closeDetailsViewButton() { + return Locator::forThe()->css(".icon-close")-> + descendantOf(self::currentSectionDetailsView())-> + describedAs("Close current section details view in Files app"); + } + + /** + * @return Locator + */ public static function fileDetailsInCurrentSectionDetailsViewWithText($fileDetailsText) { return Locator::forThe()->xpath("//span[normalize-space() = '$fileDetailsText']")-> descendantOf(self::fileDetailsInCurrentSectionDetailsView())-> @@ -278,16 +287,16 @@ class FilesAppContext implements Context, ActorAwareInterface { /** * @return Locator */ - public static function favoriteActionForFile($fileName) { - return Locator::forThe()->css(".action-favorite")->descendantOf(self::rowForFile($fileName))-> - describedAs("Favorite action for file $fileName in Files app"); + public static function favoriteMarkForFile($fileName) { + return Locator::forThe()->css(".favorite-mark")->descendantOf(self::rowForFile($fileName))-> + describedAs("Favorite mark for file $fileName in Files app"); } /** * @return Locator */ public static function notFavoritedStateIconForFile($fileName) { - return Locator::forThe()->css(".icon-star")->descendantOf(self::favoriteActionForFile($fileName))-> + return Locator::forThe()->css(".icon-star")->descendantOf(self::favoriteMarkForFile($fileName))-> describedAs("Not favorited state icon for file $fileName in Files app"); } @@ -295,7 +304,7 @@ class FilesAppContext implements Context, ActorAwareInterface { * @return Locator */ public static function favoritedStateIconForFile($fileName) { - return Locator::forThe()->css(".icon-starred")->descendantOf(self::favoriteActionForFile($fileName))-> + return Locator::forThe()->css(".icon-starred")->descendantOf(self::favoriteMarkForFile($fileName))-> describedAs("Favorited state icon for file $fileName in Files app"); } @@ -341,6 +350,20 @@ class FilesAppContext implements Context, ActorAwareInterface { /** * @return Locator */ + public static function addToFavoritesMenuItem() { + return self::fileActionsMenuItemFor("Add to favorites"); + } + + /** + * @return Locator + */ + public static function removeFromFavoritesMenuItem() { + return self::fileActionsMenuItemFor("Remove from favorites"); + } + + /** + * @return Locator + */ public static function viewFileInFolderMenuItem() { return self::fileActionsMenuItemFor("View in folder"); } @@ -374,6 +397,13 @@ class FilesAppContext implements Context, ActorAwareInterface { } /** + * @Given I close the details view + */ + public function iCloseTheDetailsView() { + $this->actor->find(self::closeDetailsViewButton(), 10)->click(); + } + + /** * @Given I open the input field for tags in the details view */ public function iOpenTheInputFieldForTagsInTheDetailsView() { @@ -393,7 +423,9 @@ class FilesAppContext implements Context, ActorAwareInterface { public function iMarkAsFavorite($fileName) { $this->iSeeThatIsNotMarkedAsFavorite($fileName); - $this->actor->find(self::favoriteActionForFile($fileName), 10)->click(); + $this->actor->find(self::fileActionsMenuButtonForFile($fileName), 10)->click(); + + $this->actor->find(self::addToFavoritesMenuItem(), 2)->click(); } /** @@ -402,7 +434,9 @@ class FilesAppContext implements Context, ActorAwareInterface { public function iUnmarkAsFavorite($fileName) { $this->iSeeThatIsMarkedAsFavorite($fileName); - $this->actor->find(self::favoriteActionForFile($fileName), 10)->click(); + $this->actor->find(self::fileActionsMenuButtonForFile($fileName), 10)->click(); + + $this->actor->find(self::removeFromFavoritesMenuItem(), 2)->click(); } /** diff --git a/tests/acceptance/run.sh b/tests/acceptance/run.sh index 1b68f8655ae..89fdda02630 100755 --- a/tests/acceptance/run.sh +++ b/tests/acceptance/run.sh @@ -138,7 +138,7 @@ function prepareDocker() { # Selenium server. # The container exits immediately if no command is given, so a Bash session # is created to prevent that. - docker run --detach --name=$NEXTCLOUD_LOCAL_CONTAINER --network=container:$SELENIUM_CONTAINER --interactive --tty nextcloudci/php7.0:php7.0-7 bash + docker run --detach --name=$NEXTCLOUD_LOCAL_CONTAINER --network=container:$SELENIUM_CONTAINER --interactive --tty nextcloudci/php7.1:php7.1-15 bash # Use the $TMPDIR or, if not set, fall back to /tmp. NEXTCLOUD_LOCAL_TAR="$($MKTEMP --tmpdir="${TMPDIR:-/tmp}" --suffix=.tar nextcloud-local-XXXXXXXXXX)" diff --git a/tests/lib/APITest.php b/tests/lib/APITest.php index c2a25d1306c..b1ac8fbb24f 100644 --- a/tests/lib/APITest.php +++ b/tests/lib/APITest.php @@ -8,6 +8,8 @@ namespace Test; +use OCP\IRequest; + class APITest extends \Test\TestCase { // Helps build a response variable @@ -71,7 +73,7 @@ class APITest extends \Test\TestCase { * @param bool $expected */ public function testIsV2($scriptName, $expected) { - $request = $this->getMockBuilder('\OCP\IRequest') + $request = $this->getMockBuilder(IRequest::class) ->disableOriginalConstructor() ->getMock(); $request diff --git a/tests/lib/Accounts/AccountsManagerTest.php b/tests/lib/Accounts/AccountsManagerTest.php index 6cefebdea86..c4add0244bd 100644 --- a/tests/lib/Accounts/AccountsManagerTest.php +++ b/tests/lib/Accounts/AccountsManagerTest.php @@ -71,7 +71,7 @@ class AccountsManagerTest extends TestCase { * @return \PHPUnit_Framework_MockObject_MockObject | AccountManager */ public function getInstance($mockedMethods = null) { - return $this->getMockBuilder('OC\Accounts\AccountManager') + return $this->getMockBuilder(AccountManager::class) ->setConstructorArgs([$this->connection, $this->eventDispatcher, $this->jobList]) ->setMethods($mockedMethods) ->getMock(); @@ -146,7 +146,7 @@ class AccountsManagerTest extends TestCase { * @param array $setData * @param IUser $askUser * @param array $expectedData - * @param book $userAlreadyExists + * @param bool $userAlreadyExists */ public function testGetUser($setUser, $setData, $askUser, $expectedData, $userAlreadyExists) { $accountManager = $this->getInstance(['buildDefaultUserRecord', 'insertNewUser', 'addMissingDefaultValues']); @@ -172,9 +172,9 @@ class AccountsManagerTest extends TestCase { } public function dataTestGetUser() { - $user1 = $this->getMockBuilder('OCP\IUser')->getMock(); + $user1 = $this->getMockBuilder(IUser::class)->getMock(); $user1->expects($this->any())->method('getUID')->willReturn('user1'); - $user2 = $this->getMockBuilder('OCP\IUser')->getMock(); + $user2 = $this->getMockBuilder(IUser::class)->getMock(); $user2->expects($this->any())->method('getUID')->willReturn('user2'); return [ ['user1', ['key' => 'value'], $user1, ['key' => 'value'], true], @@ -183,7 +183,7 @@ class AccountsManagerTest extends TestCase { } public function testUpdateExistingUser() { - $user = $this->getMockBuilder('OCP\IUser')->getMock(); + $user = $this->getMockBuilder(IUser::class)->getMock(); $user->expects($this->once())->method('getUID')->willReturn('uid'); $oldData = ['key' => 'value']; $newData = ['newKey' => 'newValue']; @@ -196,7 +196,7 @@ class AccountsManagerTest extends TestCase { } public function testInsertNewUser() { - $user = $this->getMockBuilder('OCP\IUser')->getMock(); + $user = $this->getMockBuilder(IUser::class)->getMock(); $uid = 'uid'; $data = ['key' => 'value']; diff --git a/tests/lib/Activity/ManagerTest.php b/tests/lib/Activity/ManagerTest.php index 13932f389f8..a1877d3fcc6 100644 --- a/tests/lib/Activity/ManagerTest.php +++ b/tests/lib/Activity/ManagerTest.php @@ -12,6 +12,7 @@ namespace Test\Activity; use OCP\IConfig; use OCP\IRequest; +use OCP\IUser; use OCP\IUserSession; use OCP\RichObjectStrings\IValidator; use Test\TestCase; @@ -247,7 +248,7 @@ class ManagerTest extends TestCase { } protected function mockUserSession($user) { - $mockUser = $this->getMockBuilder('\OCP\IUser') + $mockUser = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $mockUser->expects($this->any()) @@ -314,7 +315,7 @@ class ManagerTest extends TestCase { */ public function testPublish($author, $expected) { if ($author !== null) { - $authorObject = $this->getMockBuilder('OCP\IUser') + $authorObject = $this->getMockBuilder(IUser::class) ->disableOriginalConstructor() ->getMock(); $authorObject->expects($this->once()) diff --git a/tests/lib/App/DependencyAnalyzerTest.php b/tests/lib/App/DependencyAnalyzerTest.php index 65b45a002d4..081f6d767db 100644 --- a/tests/lib/App/DependencyAnalyzerTest.php +++ b/tests/lib/App/DependencyAnalyzerTest.php @@ -59,7 +59,7 @@ class DependencyAnalyzerTest extends TestCase { ->method('getOcVersion') ->will( $this->returnValue('8.0.2')); - $this->l10nMock = $this->getMockBuilder('\OCP\IL10N') + $this->l10nMock = $this->getMockBuilder(IL10N::class) ->disableOriginalConstructor() ->getMock(); $this->l10nMock->expects($this->any()) diff --git a/tests/lib/AppFramework/Controller/ApiControllerTest.php b/tests/lib/AppFramework/Controller/ApiControllerTest.php index 74231b8d6ac..b7172ab6a9f 100644 --- a/tests/lib/AppFramework/Controller/ApiControllerTest.php +++ b/tests/lib/AppFramework/Controller/ApiControllerTest.php @@ -26,6 +26,7 @@ namespace Test\AppFramework\Controller; use OC\AppFramework\Http\Request; use OCP\AppFramework\ApiController; +use OCP\IConfig; class ChildApiController extends ApiController {}; @@ -41,7 +42,7 @@ class ApiControllerTest extends \Test\TestCase { $this->getMockBuilder('\OCP\Security\ISecureRandom') ->disableOriginalConstructor() ->getMock(), - $this->getMockBuilder('\OCP\IConfig') + $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock() ); diff --git a/tests/lib/AppFramework/Controller/ControllerTest.php b/tests/lib/AppFramework/Controller/ControllerTest.php index 5c8124c5e7f..ca71e9154ef 100644 --- a/tests/lib/AppFramework/Controller/ControllerTest.php +++ b/tests/lib/AppFramework/Controller/ControllerTest.php @@ -29,6 +29,7 @@ use OCP\AppFramework\Controller; use OCP\AppFramework\Http\TemplateResponse; use OCP\AppFramework\Http\JSONResponse; use OCP\AppFramework\Http\DataResponse; +use OCP\IConfig; class ChildController extends Controller { @@ -79,7 +80,7 @@ class ControllerTest extends \Test\TestCase { $this->getMockBuilder('\OCP\Security\ISecureRandom') ->disableOriginalConstructor() ->getMock(), - $this->getMockBuilder('\OCP\IConfig') + $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock() ); diff --git a/tests/lib/AppFramework/Http/DispatcherTest.php b/tests/lib/AppFramework/Http/DispatcherTest.php index c2d73adfd7b..eb08d00e358 100644 --- a/tests/lib/AppFramework/Http/DispatcherTest.php +++ b/tests/lib/AppFramework/Http/DispatcherTest.php @@ -31,6 +31,7 @@ use OCP\AppFramework\Http; use OCP\AppFramework\Http\JSONResponse; use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\Controller; +use OCP\IConfig; class TestController extends Controller { @@ -301,7 +302,7 @@ class DispatcherTest extends \Test\TestCase { $this->getMockBuilder('\OCP\Security\ISecureRandom') ->disableOriginalConstructor() ->getMock(), - $this->getMockBuilder('\OCP\IConfig') + $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock() ); @@ -332,7 +333,7 @@ class DispatcherTest extends \Test\TestCase { $this->getMockBuilder('\OCP\Security\ISecureRandom') ->disableOriginalConstructor() ->getMock(), - $this->getMockBuilder('\OCP\IConfig') + $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock() ); @@ -366,7 +367,7 @@ class DispatcherTest extends \Test\TestCase { $this->getMockBuilder('\OCP\Security\ISecureRandom') ->disableOriginalConstructor() ->getMock(), - $this->getMockBuilder('\OCP\IConfig') + $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock() ); @@ -399,7 +400,7 @@ class DispatcherTest extends \Test\TestCase { $this->getMockBuilder('\OCP\Security\ISecureRandom') ->disableOriginalConstructor() ->getMock(), - $this->getMockBuilder('\OCP\IConfig') + $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock() ); @@ -433,7 +434,7 @@ class DispatcherTest extends \Test\TestCase { $this->getMockBuilder('\OCP\Security\ISecureRandom') ->disableOriginalConstructor() ->getMock(), - $this->getMockBuilder('\OCP\IConfig') + $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock() ); @@ -469,7 +470,7 @@ class DispatcherTest extends \Test\TestCase { $this->getMockBuilder('\OCP\Security\ISecureRandom') ->disableOriginalConstructor() ->getMock(), - $this->getMockBuilder('\OCP\IConfig') + $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock() ); diff --git a/tests/lib/AppFramework/Http/RequestTest.php b/tests/lib/AppFramework/Http/RequestTest.php index 40698ef8d73..d3f36a6d886 100644 --- a/tests/lib/AppFramework/Http/RequestTest.php +++ b/tests/lib/AppFramework/Http/RequestTest.php @@ -40,7 +40,7 @@ class RequestTest extends \Test\TestCase { stream_wrapper_register('fakeinput', 'Test\AppFramework\Http\RequestStream'); $this->secureRandom = $this->getMockBuilder('\OCP\Security\ISecureRandom')->getMock(); - $this->config = $this->getMockBuilder('\OCP\IConfig')->getMock(); + $this->config = $this->getMockBuilder(IConfig::class)->getMock(); $this->csrfTokenManager = $this->getMockBuilder('\OC\Security\CSRF\CsrfTokenManager') ->disableOriginalConstructor()->getMock(); } diff --git a/tests/lib/AppFramework/Middleware/MiddlewareDispatcherTest.php b/tests/lib/AppFramework/Middleware/MiddlewareDispatcherTest.php index f948e184f53..e71be9c5f16 100644 --- a/tests/lib/AppFramework/Middleware/MiddlewareDispatcherTest.php +++ b/tests/lib/AppFramework/Middleware/MiddlewareDispatcherTest.php @@ -29,6 +29,7 @@ use OC\AppFramework\Middleware\MiddlewareDispatcher; use OCP\AppFramework\Controller; use OCP\AppFramework\Middleware; use OCP\AppFramework\Http\Response; +use OCP\IConfig; // needed to test ordering @@ -133,7 +134,7 @@ class MiddlewareDispatcherTest extends \Test\TestCase { new Request( ['method' => 'GET'], $this->getMockBuilder('\OCP\Security\ISecureRandom')->getMock(), - $this->getMockBuilder('\OCP\IConfig')->getMock() + $this->getMockBuilder(IConfig::class)->getMock() ) ])->getMock(); } diff --git a/tests/lib/AppFramework/Middleware/MiddlewareTest.php b/tests/lib/AppFramework/Middleware/MiddlewareTest.php index c5c812839b2..07028745676 100644 --- a/tests/lib/AppFramework/Middleware/MiddlewareTest.php +++ b/tests/lib/AppFramework/Middleware/MiddlewareTest.php @@ -27,6 +27,7 @@ namespace Test\AppFramework\Middleware; use OC\AppFramework\Http\Request; use OCP\AppFramework\Middleware; use OCP\AppFramework\Http\Response; +use OCP\IConfig; class ChildMiddleware extends Middleware {}; @@ -59,7 +60,7 @@ class MiddlewareTest extends \Test\TestCase { new Request( [], $this->getMockBuilder('\OCP\Security\ISecureRandom')->getMock(), - $this->getMockBuilder('\OCP\IConfig')->getMock() + $this->getMockBuilder(IConfig::class)->getMock() ) ])->getMock(); $this->exception = new \Exception(); diff --git a/tests/lib/AppFramework/Middleware/Security/SecurityMiddlewareTest.php b/tests/lib/AppFramework/Middleware/Security/SecurityMiddlewareTest.php index 773cb2b196f..6b311c7ae15 100644 --- a/tests/lib/AppFramework/Middleware/Security/SecurityMiddlewareTest.php +++ b/tests/lib/AppFramework/Middleware/Security/SecurityMiddlewareTest.php @@ -37,6 +37,7 @@ use OC\Security\CSP\ContentSecurityPolicyManager; use OC\Security\CSP\ContentSecurityPolicyNonceManager; use OC\Security\CSRF\CsrfToken; use OC\Security\CSRF\CsrfTokenManager; +use OCP\App\IAppManager; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\EmptyContentSecurityPolicy; use OCP\AppFramework\Http\RedirectResponse; @@ -79,6 +80,8 @@ class SecurityMiddlewareTest extends \Test\TestCase { private $csrfTokenManager; /** @var ContentSecurityPolicyNonceManager|\PHPUnit_Framework_MockObject_MockObject */ private $cspNonceManager; + /** @var IAppManager|\PHPUnit_Framework_MockObject_MockObject */ + private $appManager; protected function setUp() { parent::setUp(); @@ -93,6 +96,10 @@ class SecurityMiddlewareTest extends \Test\TestCase { $this->contentSecurityPolicyManager = $this->createMock(ContentSecurityPolicyManager::class); $this->csrfTokenManager = $this->createMock(CsrfTokenManager::class); $this->cspNonceManager = $this->createMock(ContentSecurityPolicyNonceManager::class); + $this->appManager = $this->createMock(IAppManager::class); + $this->appManager->expects($this->any()) + ->method('isEnabledForUser') + ->willReturn(true); $this->middleware = $this->getMiddleware(true, true); $this->secException = new SecurityException('hey', false); $this->secAjaxException = new SecurityException('hey', true); @@ -116,7 +123,8 @@ class SecurityMiddlewareTest extends \Test\TestCase { $isAdminUser, $this->contentSecurityPolicyManager, $this->csrfTokenManager, - $this->cspNonceManager + $this->cspNonceManager, + $this->appManager ); } diff --git a/tests/lib/AppFramework/Middleware/SessionMiddlewareTest.php b/tests/lib/AppFramework/Middleware/SessionMiddlewareTest.php index 3c218bb53c7..8d097e3a8a1 100644 --- a/tests/lib/AppFramework/Middleware/SessionMiddlewareTest.php +++ b/tests/lib/AppFramework/Middleware/SessionMiddlewareTest.php @@ -17,6 +17,7 @@ use OC\AppFramework\Middleware\SessionMiddleware; use OC\AppFramework\Utility\ControllerMethodReflector; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\Response; +use OCP\IConfig; class SessionMiddlewareTest extends \Test\TestCase { @@ -36,7 +37,7 @@ class SessionMiddlewareTest extends \Test\TestCase { $this->request = new Request( [], $this->getMockBuilder('\OCP\Security\ISecureRandom')->getMock(), - $this->getMockBuilder('\OCP\IConfig')->getMock() + $this->getMockBuilder(IConfig::class)->getMock() ); $this->reflector = new ControllerMethodReflector(); $this->controller = $this->createMock(Controller::class); diff --git a/tests/lib/AppFramework/Routing/RoutingTest.php b/tests/lib/AppFramework/Routing/RoutingTest.php index d395584d011..76533fff014 100644 --- a/tests/lib/AppFramework/Routing/RoutingTest.php +++ b/tests/lib/AppFramework/Routing/RoutingTest.php @@ -5,6 +5,7 @@ namespace Test\AppFramework\Routing; use OC\AppFramework\DependencyInjection\DIContainer; use OC\AppFramework\Routing\RouteActionHandler; use OC\AppFramework\Routing\RouteConfig; +use OCP\ILogger; class RoutingTest extends \Test\TestCase { @@ -130,7 +131,7 @@ class RoutingTest extends \Test\TestCase // router mock $router = $this->getMockBuilder('\OC\Route\Router') ->setMethods(['create']) - ->setConstructorArgs([$this->getMockBuilder('\OCP\ILogger')->getMock()]) + ->setConstructorArgs([$this->getMockBuilder(ILogger::class)->getMock()]) ->getMock(); // load route configuration @@ -151,7 +152,7 @@ class RoutingTest extends \Test\TestCase // router mock $router = $this->getMockBuilder('\OC\Route\Router') ->setMethods(['create']) - ->setConstructorArgs([$this->getMockBuilder('\OCP\ILogger')->getMock()]) + ->setConstructorArgs([$this->getMockBuilder(ILogger::class)->getMock()]) ->getMock(); // load route configuration @@ -212,7 +213,7 @@ class RoutingTest extends \Test\TestCase // router mock $router = $this->getMockBuilder('\OC\Route\Router') ->setMethods(['create']) - ->setConstructorArgs([$this->getMockBuilder('\OCP\ILogger')->getMock()]) + ->setConstructorArgs([$this->getMockBuilder(ILogger::class)->getMock()]) ->getMock(); // we expect create to be called once: @@ -260,7 +261,7 @@ class RoutingTest extends \Test\TestCase // router mock $router = $this->getMockBuilder('\OC\Route\Router') ->setMethods(['create']) - ->setConstructorArgs([$this->getMockBuilder('\OCP\ILogger')->getMock()]) + ->setConstructorArgs([$this->getMockBuilder(ILogger::class)->getMock()]) ->getMock(); // we expect create to be called once: @@ -287,7 +288,7 @@ class RoutingTest extends \Test\TestCase // router mock $router = $this->getMockBuilder('\OC\Route\Router') ->setMethods(['create']) - ->setConstructorArgs([$this->getMockBuilder('\OCP\ILogger')->getMock()]) + ->setConstructorArgs([$this->getMockBuilder(ILogger::class)->getMock()]) ->getMock(); // route mocks diff --git a/tests/lib/BackgroundJob/JobTest.php b/tests/lib/BackgroundJob/JobTest.php index 7923eef11ef..ecd8bde8626 100644 --- a/tests/lib/BackgroundJob/JobTest.php +++ b/tests/lib/BackgroundJob/JobTest.php @@ -8,6 +8,8 @@ namespace Test\BackgroundJob; +use OCP\ILogger; + class JobTest extends \Test\TestCase { private $run = false; @@ -24,7 +26,7 @@ class JobTest extends \Test\TestCase { }); $jobList->add($job); - $logger = $this->getMockBuilder('OCP\ILogger') + $logger = $this->getMockBuilder(ILogger::class) ->disableOriginalConstructor() ->getMock(); $logger->expects($this->once()) diff --git a/tests/lib/CapabilitiesManagerTest.php b/tests/lib/CapabilitiesManagerTest.php index 139940eb306..8df385e6ef9 100644 --- a/tests/lib/CapabilitiesManagerTest.php +++ b/tests/lib/CapabilitiesManagerTest.php @@ -37,7 +37,7 @@ class CapabilitiesManagerTest extends TestCase { public function setUp() { parent::setUp(); - $this->logger = $this->getMockBuilder('OCP\ILogger')->getMock(); + $this->logger = $this->getMockBuilder(ILogger::class)->getMock(); $this->manager = new CapabilitiesManager($this->logger); } diff --git a/tests/lib/Collaboration/Collaborators/SearchResultTest.php b/tests/lib/Collaboration/Collaborators/SearchResultTest.php new file mode 100644 index 00000000000..90ea90237a1 --- /dev/null +++ b/tests/lib/Collaboration/Collaborators/SearchResultTest.php @@ -0,0 +1,105 @@ +<?php +/** + * @copyright Copyright (c) 2017 Joas Schilling + * + * @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/>. + * + */ + +namespace Test\Collaboration\Collaborators; + + +use OC\Collaboration\Collaborators\Search; +use OC\Collaboration\Collaborators\SearchResult; +use OCP\Collaboration\Collaborators\ISearch; +use OCP\Collaboration\Collaborators\ISearchPlugin; +use OCP\Collaboration\Collaborators\SearchResultType; +use OCP\IContainer; +use OCP\Share; +use Test\TestCase; + +class SearchResultTest extends TestCase { + /** @var IContainer|\PHPUnit_Framework_MockObject_MockObject */ + protected $container; + /** @var ISearch */ + protected $search; + + public function setUp() { + parent::setUp(); + + $this->container = $this->createMock(IContainer::class); + + $this->search = new Search($this->container); + } + + public function dataAddResultSet() { + return [ + [[], ['exact' => []]], + [['users' => ['exact' => null, 'loose' => []]], ['exact' => ['users' => []], 'users' => []]], + [['groups' => ['exact' => null, 'loose' => ['l1']]], ['exact' => ['groups' => []], 'groups' => ['l1']]], + [['users' => ['exact' => ['e1'], 'loose' => []]], ['exact' => ['users' => ['e1']], 'users' => []]], + ]; + } + + /** + * @dataProvider dataAddResultSet + * @param array $toAdd + * @param array $expected + */ + public function testAddResultSet(array $toAdd, array $expected) { + $result = new SearchResult(); + + foreach ($toAdd as $type => $results) { + $result->addResultSet(new SearchResultType($type), $results['loose'], $results['exact']); + } + + $this->assertEquals($expected, $result->asArray()); + } + + public function dataHasResult() { + $result = ['value' => ['shareWith' => 'l1']]; + return [ + [[],'users', 'n1', false], + [['users' => ['exact' => null, 'loose' => [$result]]], 'users', 'l1', true], + [['users' => ['exact' => null, 'loose' => [$result]]], 'users', 'l2', false], + [['users' => ['exact' => null, 'loose' => [$result]]], 'groups', 'l1', false], + [['users' => ['exact' => [$result], 'loose' => []]], 'users', 'l1', true], + [['users' => ['exact' => [$result], 'loose' => []]], 'users', 'l2', false], + [['users' => ['exact' => [$result], 'loose' => []]], 'groups', 'l1', false], + + ]; + } + + /** + * @dataProvider dataHasResult + * @param array $toAdd + * @param string $type + * @param string $id + * @param bool $expected + */ + public function testHasResult(array $toAdd, $type, $id, $expected) { + $result = new SearchResult(); + + foreach ($toAdd as $addType => $results) { + $result->addResultSet(new SearchResultType($addType), $results['loose'], $results['exact']); + } + + $this->assertSame($expected, $result->hasResult(new SearchResultType($type), $id)); + } + +} diff --git a/tests/lib/DB/MigratorTest.php b/tests/lib/DB/MigratorTest.php index e4f45c4bb86..ea718240c5e 100644 --- a/tests/lib/DB/MigratorTest.php +++ b/tests/lib/DB/MigratorTest.php @@ -41,6 +41,9 @@ class MigratorTest extends \Test\TestCase { /** @var string */ private $tableName; + /** @var string */ + private $tableNameTmp; + protected function setUp() { parent::setUp(); @@ -50,11 +53,23 @@ class MigratorTest extends \Test\TestCase { $this->markTestSkipped('DB migration tests are not supported on OCI'); } $this->manager = new \OC\DB\MDB2SchemaManager($this->connection); - $this->tableName = strtolower($this->getUniqueID($this->config->getSystemValue('dbtableprefix', 'oc_') . 'test_')); + $this->tableName = $this->getUniqueTableName(); + $this->tableNameTmp = $this->getUniqueTableName(); + } + + private function getUniqueTableName() { + return strtolower($this->getUniqueID($this->config->getSystemValue('dbtableprefix', 'oc_') . 'test_')); } protected function tearDown() { - $this->connection->exec('DROP TABLE ' . $this->tableName); + // Try to delete if exists (IF EXISTS NOT SUPPORTED IN ORACLE) + try { + $this->connection->exec('DROP TABLE ' . $this->connection->quoteIdentifier($this->tableNameTmp)); + } catch (\Doctrine\DBAL\DBALException $e) {} + + try { + $this->connection->exec('DROP TABLE ' . $this->connection->quoteIdentifier($this->tableName)); + } catch (\Doctrine\DBAL\DBALException $e) {} parent::tearDown(); } @@ -200,4 +215,24 @@ class MigratorTest extends \Test\TestCase { $this->assertTrue(true); } + + public function testAddingForeignKey() { + $startSchema = new Schema([], [], $this->getSchemaConfig()); + $table = $startSchema->createTable($this->tableName); + $table->addColumn('id', 'integer', ['autoincrement' => true]); + $table->addColumn('name', 'string'); + $table->setPrimaryKey(['id']); + + $fkName = "fkc"; + $tableFk = $startSchema->createTable($this->tableNameTmp); + $tableFk->addColumn('fk_id', 'integer'); + $tableFk->addColumn('name', 'string'); + $tableFk->addForeignKeyConstraint($this->tableName, array('fk_id'), array('id'), array(), $fkName); + + $migrator = $this->manager->getMigrator(); + $migrator->migrate($startSchema); + + + $this->assertTrue($startSchema->getTable($this->tableNameTmp)->hasForeignKey($fkName)); + } } diff --git a/tests/lib/DateTimeFormatterTest.php b/tests/lib/DateTimeFormatterTest.php index 85884c9bfb4..deb6a7c783c 100644 --- a/tests/lib/DateTimeFormatterTest.php +++ b/tests/lib/DateTimeFormatterTest.php @@ -46,10 +46,13 @@ class DateTimeFormatterTest extends TestCase { $deL10N = \OC::$server->getL10N('lib', 'de'); return array( array('seconds ago', $time, $time), + array('in a few seconds', $time + 5 , $time), array('1 minute ago', $this->getTimestampAgo($time, 30, 1), $time), array('15 minutes ago', $this->getTimestampAgo($time, 30, 15), $time), + array('in 15 minutes', $time, $this->getTimestampAgo($time, 30, 15)), array('1 hour ago', $this->getTimestampAgo($time, 30, 15, 1), $time), array('3 hours ago', $this->getTimestampAgo($time, 30, 15, 3), $time), + array('in 3 hours', $time, $this->getTimestampAgo($time, 30, 15, 3)), array('4 days ago', $this->getTimestampAgo($time, 30, 15, 3, 4), $time), array('seconds ago', new \DateTime('Wed, 02 Oct 2013 23:59:58 +0000'), new \DateTime('Wed, 02 Oct 2013 23:59:59 +0000')), @@ -86,9 +89,15 @@ class DateTimeFormatterTest extends TestCase { // Normal testing array('today', $this->getTimestampAgo($time, 30, 15), $time), array('yesterday', $this->getTimestampAgo($time, 0, 0, 0, 1), $time), + array('tomorrow', $time, $this->getTimestampAgo($time, 0, 0, 0, 1)), array('4 days ago', $this->getTimestampAgo($time, 0, 0, 0, 4), $time), + array('in 4 days', $time, $this->getTimestampAgo($time, 0, 0, 0, 4)), array('5 months ago', $this->getTimestampAgo($time, 0, 0, 0, 155), $time), + array('next month', $time, $this->getTimestampAgo($time, 0, 0, 0, 32)), + array('in 5 months', $time, $this->getTimestampAgo($time, 0, 0, 0, 155)), array('2 years ago', $this->getTimestampAgo($time, 0, 0, 0, 0, 2), $time), + array('next year', $time, $this->getTimestampAgo($time, 0, 0, 0, 0, 1)), + array('in 2 years', $time, $this->getTimestampAgo($time, 0, 0, 0, 0, 2)), // Test with compare timestamp array('today', $this->getTimestampAgo($time, 0, 0, 0, 0, 1), $this->getTimestampAgo($time, 0, 0, 0, 0, 1)), diff --git a/tests/lib/Encryption/DecryptAllTest.php b/tests/lib/Encryption/DecryptAllTest.php index 289e7de27ab..06c5e0e2df8 100644 --- a/tests/lib/Encryption/DecryptAllTest.php +++ b/tests/lib/Encryption/DecryptAllTest.php @@ -28,8 +28,13 @@ use OC\Encryption\Exceptions\DecryptionFailedException; use OC\Encryption\Manager; use OC\Files\FileInfo; use OC\Files\View; +use OCP\Files\Storage; use OCP\IUserManager; +use OCP\UserInterface; use Symfony\Component\Console\Formatter\OutputFormatterInterface; +use Symfony\Component\Console\Helper\ProgressBar; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; use Test\TestCase; /** @@ -65,17 +70,17 @@ class DecryptAllTest extends TestCase { public function setUp() { parent::setUp(); - $this->userManager = $this->getMockBuilder('OCP\IUserManager') + $this->userManager = $this->getMockBuilder(IUserManager::class) ->disableOriginalConstructor()->getMock(); $this->encryptionManager = $this->getMockBuilder('OC\Encryption\Manager') ->disableOriginalConstructor()->getMock(); - $this->view = $this->getMockBuilder('OC\Files\View') + $this->view = $this->getMockBuilder(View::class) ->disableOriginalConstructor()->getMock(); - $this->inputInterface = $this->getMockBuilder('Symfony\Component\Console\Input\InputInterface') + $this->inputInterface = $this->getMockBuilder(InputInterface::class) ->disableOriginalConstructor()->getMock(); - $this->outputInterface = $this->getMockBuilder('Symfony\Component\Console\Output\OutputInterface') + $this->outputInterface = $this->getMockBuilder(OutputInterface::class) ->disableOriginalConstructor()->getMock(); - $this->userInterface = $this->getMockBuilder('OCP\UserInterface') + $this->userInterface = $this->getMockBuilder(UserInterface::class) ->disableOriginalConstructor()->getMock(); $this->outputInterface->expects($this->any())->method('getFormatter') @@ -252,11 +257,11 @@ class DecryptAllTest extends TestCase { ->setMethods(['decryptFile']) ->getMock(); - $storage = $this->getMockBuilder('OCP\Files\Storage') + $storage = $this->getMockBuilder(Storage::class) ->disableOriginalConstructor()->getMock(); - $sharedStorage = $this->getMockBuilder('OCP\Files\Storage') + $sharedStorage = $this->getMockBuilder(Storage::class) ->disableOriginalConstructor()->getMock(); $sharedStorage->expects($this->once())->method('instanceOfStorage') @@ -295,7 +300,7 @@ class DecryptAllTest extends TestCase { ->method('decryptFile') ->with('/user1/files/foo/subfile'); - $progressBar = $this->getMockBuilder('Symfony\Component\Console\Helper\ProgressBar') + $progressBar = $this->getMockBuilder(ProgressBar::class) ->disableOriginalConstructor()->getMock(); $this->invokePrivate($instance, 'decryptUsersFiles', ['user1', $progressBar, '']); diff --git a/tests/lib/Encryption/EncryptionWrapperTest.php b/tests/lib/Encryption/EncryptionWrapperTest.php index 6a6a3db2f68..d20efa8821f 100644 --- a/tests/lib/Encryption/EncryptionWrapperTest.php +++ b/tests/lib/Encryption/EncryptionWrapperTest.php @@ -26,6 +26,7 @@ namespace Test\Encryption; use OC\Encryption\EncryptionWrapper; use OC\Encryption\Manager; use OC\Memcache\ArrayCache; +use OCP\Files\Storage; use OCP\ILogger; use Test\TestCase; @@ -59,7 +60,7 @@ class EncryptionWrapperTest extends TestCase { * @dataProvider provideWrapStorage */ public function testWrapStorage($expectedWrapped, $wrappedStorages) { - $storage = $this->getMockBuilder('OC\Files\Storage\Storage') + $storage = $this->getMockBuilder(Storage::class) ->disableOriginalConstructor() ->getMock(); diff --git a/tests/lib/Encryption/Keys/StorageTest.php b/tests/lib/Encryption/Keys/StorageTest.php index 4e9719351f3..cd8f1e9b953 100644 --- a/tests/lib/Encryption/Keys/StorageTest.php +++ b/tests/lib/Encryption/Keys/StorageTest.php @@ -24,6 +24,8 @@ namespace Test\Encryption\Keys; use OC\Encryption\Keys\Storage; +use OC\Files\View; +use OCP\IConfig; use Test\TestCase; class StorageTest extends TestCase { @@ -47,11 +49,11 @@ class StorageTest extends TestCase { ->disableOriginalConstructor() ->getMock(); - $this->view = $this->getMockBuilder('OC\Files\View') + $this->view = $this->getMockBuilder(View::class) ->disableOriginalConstructor() ->getMock(); - $this->config = $this->getMockBuilder('OCP\IConfig') + $this->config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock(); diff --git a/tests/lib/Encryption/UpdateTest.php b/tests/lib/Encryption/UpdateTest.php index b222bc42d7a..a8cbef70d75 100644 --- a/tests/lib/Encryption/UpdateTest.php +++ b/tests/lib/Encryption/UpdateTest.php @@ -24,6 +24,8 @@ namespace Test\Encryption; use OC\Encryption\Update; +use OC\Files\Mount\Manager; +use OC\Files\View; use Test\TestCase; class UpdateTest extends TestCase { @@ -55,11 +57,11 @@ class UpdateTest extends TestCase { protected function setUp() { parent::setUp(); - $this->view = $this->getMockBuilder('\OC\Files\View') + $this->view = $this->getMockBuilder(View::class) ->disableOriginalConstructor()->getMock(); $this->util = $this->getMockBuilder('\OC\Encryption\Util') ->disableOriginalConstructor()->getMock(); - $this->mountManager = $this->getMockBuilder('\OC\Files\Mount\Manager') + $this->mountManager = $this->getMockBuilder(Manager::class) ->disableOriginalConstructor()->getMock(); $this->encryptionManager = $this->getMockBuilder('\OC\Encryption\Manager') ->disableOriginalConstructor()->getMock(); diff --git a/tests/lib/Encryption/UtilTest.php b/tests/lib/Encryption/UtilTest.php index 609f6ae1e68..1e1b21d3671 100644 --- a/tests/lib/Encryption/UtilTest.php +++ b/tests/lib/Encryption/UtilTest.php @@ -3,7 +3,9 @@ namespace Test\Encryption; use OC\Encryption\Util; +use OC\Files\View; use OCP\Encryption\IEncryptionModule; +use OCP\IConfig; use Test\TestCase; class UtilTest extends TestCase { @@ -32,7 +34,7 @@ class UtilTest extends TestCase { public function setUp() { parent::setUp(); - $this->view = $this->getMockBuilder('OC\Files\View') + $this->view = $this->getMockBuilder(View::class) ->disableOriginalConstructor() ->getMock(); @@ -44,7 +46,7 @@ class UtilTest extends TestCase { ->disableOriginalConstructor() ->getMock(); - $this->config = $this->getMockBuilder('OCP\IConfig') + $this->config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock(); diff --git a/tests/lib/FileChunkingTest.php b/tests/lib/FileChunkingTest.php index cf0fed251a4..42fc820c5d0 100644 --- a/tests/lib/FileChunkingTest.php +++ b/tests/lib/FileChunkingTest.php @@ -47,7 +47,7 @@ class FileChunkingTest extends \Test\TestCase { * @param $expected */ public function testIsComplete($total, array $present, $expected) { - $fileChunking = $this->getMockBuilder('\OC_FileChunking') + $fileChunking = $this->getMockBuilder(\OC_FileChunking::class) ->setMethods(['getCache']) ->setConstructorArgs([[ 'name' => 'file', diff --git a/tests/lib/Files/Node/FolderTest.php b/tests/lib/Files/Node/FolderTest.php index ec043c7b81e..6479dad58d3 100644 --- a/tests/lib/Files/Node/FolderTest.php +++ b/tests/lib/Files/Node/FolderTest.php @@ -786,7 +786,7 @@ class FolderTest extends NodeTest { ->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager]) ->getMock(); /** @var \PHPUnit_Framework_MockObject_MockObject|\OC\Files\FileInfo $folderInfo */ - $folderInfo = $this->getMockBuilder('\OC\Files\FileInfo') + $folderInfo = $this->getMockBuilder(FileInfo::class) ->disableOriginalConstructor()->getMock(); $baseTime = 1000; @@ -847,7 +847,7 @@ class FolderTest extends NodeTest { ->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager]) ->getMock(); /** @var \PHPUnit_Framework_MockObject_MockObject|\OC\Files\FileInfo $folderInfo */ - $folderInfo = $this->getMockBuilder('\OC\Files\FileInfo') + $folderInfo = $this->getMockBuilder(FileInfo::class) ->disableOriginalConstructor()->getMock(); $baseTime = 1000; @@ -906,7 +906,7 @@ class FolderTest extends NodeTest { ->setConstructorArgs([$manager, $view, $this->user, $this->userMountCache, $this->logger, $this->userManager]) ->getMock(); /** @var \PHPUnit_Framework_MockObject_MockObject|\OC\Files\FileInfo $folderInfo */ - $folderInfo = $this->getMockBuilder('\OC\Files\FileInfo') + $folderInfo = $this->getMockBuilder(FileInfo::class) ->disableOriginalConstructor()->getMock(); $baseTime = 1000; diff --git a/tests/lib/Files/Node/NodeTest.php b/tests/lib/Files/Node/NodeTest.php index 5e18caa2014..9200ae69f75 100644 --- a/tests/lib/Files/Node/NodeTest.php +++ b/tests/lib/Files/Node/NodeTest.php @@ -9,11 +9,15 @@ namespace Test\Files\Node; use OC\Files\FileInfo; +use OC\Files\Mount\Manager; use OC\Files\View; use OCP\Files\Config\IUserMountCache; use OCP\Files\IRootFolder; use OCP\Files\Node; +use OCP\Files\Storage; +use OCP\IConfig; use OCP\ILogger; +use OCP\IURLGenerator; use OCP\IUserManager; use OCP\Files\NotFoundException; @@ -41,17 +45,18 @@ abstract class NodeTest extends \Test\TestCase { protected function setUp() { parent::setUp(); - $config = $this->getMockBuilder('\OCP\IConfig') + $config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock(); - $urlGenerator = $this->getMockBuilder('\OCP\IURLGenerator') + $urlGenerator = $this->getMockBuilder(IURLGenerator + ::class) ->disableOriginalConstructor() ->getMock(); $this->user = new \OC\User\User('', new \Test\Util\User\Dummy, null, $config, $urlGenerator); - $this->manager = $this->getMockBuilder('\OC\Files\Mount\Manager') + $this->manager = $this->getMockBuilder(Manager::class) ->disableOriginalConstructor() ->getMock(); - $this->view = $this->getMockBuilder('\OC\Files\View') + $this->view = $this->getMockBuilder(View::class) ->disableOriginalConstructor() ->getMock(); $this->userMountCache = $this->getMockBuilder('\OCP\Files\Config\IUserMountCache') @@ -88,7 +93,7 @@ abstract class NodeTest extends \Test\TestCase { protected abstract function getViewDeleteMethod(); protected function getMockStorage() { - $storage = $this->getMockBuilder('\OCP\Files\Storage') + $storage = $this->getMockBuilder(Storage::class) ->disableOriginalConstructor() ->getMock(); $storage->expects($this->any()) diff --git a/tests/lib/Files/Node/RootTest.php b/tests/lib/Files/Node/RootTest.php index fbc33cafcd8..fd050c8d90c 100644 --- a/tests/lib/Files/Node/RootTest.php +++ b/tests/lib/Files/Node/RootTest.php @@ -13,7 +13,9 @@ use OC\Files\FileInfo; use OC\Files\Mount\Manager; use OC\Files\Node\Folder; use OC\Files\View; +use OCP\IConfig; use OCP\ILogger; +use OCP\IURLGenerator; use OCP\IUser; use OCP\IUserManager; @@ -37,15 +39,15 @@ class RootTest extends \Test\TestCase { protected function setUp() { parent::setUp(); - $config = $this->getMockBuilder('\OCP\IConfig') + $config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock(); - $urlgenerator = $this->getMockBuilder('\OCP\IURLGenerator') + $urlgenerator = $this->getMockBuilder(IURLGenerator::class) ->disableOriginalConstructor() ->getMock(); $this->user = new \OC\User\User('', new \Test\Util\User\Dummy, null, $config, $urlgenerator); - $this->manager = $this->getMockBuilder('\OC\Files\Mount\Manager') + $this->manager = $this->getMockBuilder(Manager::class) ->disableOriginalConstructor() ->getMock(); $this->userMountCache = $this->getMockBuilder('\OCP\Files\Config\IUserMountCache') @@ -69,7 +71,7 @@ class RootTest extends \Test\TestCase { /** * @var \OC\Files\View | \PHPUnit_Framework_MockObject_MockObject $view */ - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->disableOriginalConstructor() ->getMock(); $root = new \OC\Files\Node\Root( @@ -105,7 +107,7 @@ class RootTest extends \Test\TestCase { /** * @var \OC\Files\View | \PHPUnit_Framework_MockObject_MockObject $view */ - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->disableOriginalConstructor() ->getMock(); $root = new \OC\Files\Node\Root( @@ -133,7 +135,7 @@ class RootTest extends \Test\TestCase { /** * @var \OC\Files\View | \PHPUnit_Framework_MockObject_MockObject $view */ - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->disableOriginalConstructor() ->getMock(); $root = new \OC\Files\Node\Root( @@ -155,7 +157,7 @@ class RootTest extends \Test\TestCase { /** * @var \OC\Files\View | \PHPUnit_Framework_MockObject_MockObject $view */ - $view = $this->getMockBuilder('\OC\Files\View') + $view = $this->getMockBuilder(View::class) ->disableOriginalConstructor() ->getMock(); $root = new \OC\Files\Node\Root( diff --git a/tests/lib/Files/Storage/Wrapper/EncryptionTest.php b/tests/lib/Files/Storage/Wrapper/EncryptionTest.php index 80d62b16578..c184752ff7e 100644 --- a/tests/lib/Files/Storage/Wrapper/EncryptionTest.php +++ b/tests/lib/Files/Storage/Wrapper/EncryptionTest.php @@ -16,6 +16,7 @@ use OCP\Encryption\IFile; use OCP\Encryption\Keys\IStorage; use OCP\Files\Cache\ICache; use OCP\Files\Mount\IMountPoint; +use OCP\IConfig; use OCP\ILogger; use Test\Files\Storage\Storage; @@ -120,7 +121,7 @@ class EncryptionTest extends Storage { ->willReturn($mockModule); $this->arrayCache = $this->createMock(ArrayCache::class); - $this->config = $this->getMockBuilder('\OCP\IConfig') + $this->config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock(); $this->groupManager = $this->getMockBuilder('\OC\Group\Manager') @@ -718,7 +719,7 @@ class EncryptionTest extends Storage { } public function testCopyBetweenStorageMinimumEncryptedVersion() { - $storage2 = $this->getMockBuilder('OCP\Files\Storage') + $storage2 = $this->getMockBuilder(Storage::class) ->disableOriginalConstructor() ->getMock(); @@ -767,7 +768,7 @@ class EncryptionTest extends Storage { * @param bool $expectedEncrypted */ public function testCopyBetweenStorage($encryptionEnabled, $mountPointEncryptionEnabled, $expectedEncrypted) { - $storage2 = $this->getMockBuilder('OCP\Files\Storage') + $storage2 = $this->getMockBuilder(Storage::class) ->disableOriginalConstructor() ->getMock(); @@ -829,11 +830,11 @@ class EncryptionTest extends Storage { */ public function testCopyBetweenStorageVersions($sourceInternalPath, $targetInternalPath, $copyResult, $encrypted) { - $sourceStorage = $this->getMockBuilder('OCP\Files\Storage') + $sourceStorage = $this->getMockBuilder(Storage::class) ->disableOriginalConstructor() ->getMock(); - $targetStorage = $this->getMockBuilder('OCP\Files\Storage') + $targetStorage = $this->getMockBuilder(Storage::class) ->disableOriginalConstructor() ->getMock(); diff --git a/tests/lib/Files/Storage/Wrapper/QuotaTest.php b/tests/lib/Files/Storage/Wrapper/QuotaTest.php index ee01d0c3f26..b796e767a7b 100644 --- a/tests/lib/Files/Storage/Wrapper/QuotaTest.php +++ b/tests/lib/Files/Storage/Wrapper/QuotaTest.php @@ -185,7 +185,7 @@ class QuotaTest extends \Test\Files\Storage\Storage { } public function testSpaceRoot() { - $storage = $this->getMockBuilder('\OC\Files\Storage\Local')->disableOriginalConstructor()->getMock(); + $storage = $this->getMockBuilder(Local::class)->disableOriginalConstructor()->getMock(); $cache = $this->getMockBuilder('\OC\Files\Cache\Cache')->disableOriginalConstructor()->getMock(); $storage->expects($this->once()) ->method('getCache') diff --git a/tests/lib/Files/Stream/EncryptionTest.php b/tests/lib/Files/Stream/EncryptionTest.php index 1dc9dca0aad..983428ee51d 100644 --- a/tests/lib/Files/Stream/EncryptionTest.php +++ b/tests/lib/Files/Stream/EncryptionTest.php @@ -4,6 +4,7 @@ namespace Test\Files\Stream; use OC\Files\View; use OC\Memcache\ArrayCache; +use OCP\IConfig; class EncryptionTest extends \Test\TestCase { @@ -29,7 +30,7 @@ class EncryptionTest extends \Test\TestCase { ->disableOriginalConstructor()->getMock(); $encStorage = $this->getMockBuilder('\OC\Files\Storage\Wrapper\Encryption') ->disableOriginalConstructor()->getMock(); - $config = $this->getMockBuilder('\OCP\IConfig') + $config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock(); $arrayCache = $this->createMock(ArrayCache::class); diff --git a/tests/lib/Files/Type/DetectionTest.php b/tests/lib/Files/Type/DetectionTest.php index 5c1f48a806e..1d01a96fcc0 100644 --- a/tests/lib/Files/Type/DetectionTest.php +++ b/tests/lib/Files/Type/DetectionTest.php @@ -21,7 +21,8 @@ namespace Test\Files\Type; -use \OC\Files\Type\Detection; +use OC\Files\Type\Detection; +use OCP\IURLGenerator; class DetectionTest extends \Test\TestCase { /** @var Detection */ @@ -83,6 +84,8 @@ class DetectionTest extends \Test\TestCase { $this->assertEquals('application/octet-stream', $this->detection->detectPath('..hidden')); $this->assertEquals('application/octet-stream', $this->detection->detectPath('foo')); $this->assertEquals('application/octet-stream', $this->detection->detectPath('')); + $this->assertEquals('image/png', $this->detection->detectPath('foo.png.ocTransferId123456789.part')); + $this->assertEquals('image/png', $this->detection->detectPath('foo.png.v1234567890')); } public function testDetectString() { @@ -107,7 +110,7 @@ class DetectionTest extends \Test\TestCase { */ //Mock UrlGenerator - $urlGenerator = $this->getMockBuilder('\OCP\IURLGenerator') + $urlGenerator = $this->getMockBuilder(IURLGenerator::class) ->disableOriginalConstructor() ->getMock(); @@ -126,7 +129,7 @@ class DetectionTest extends \Test\TestCase { * Test dir-shareed mimetype */ //Mock UrlGenerator - $urlGenerator = $this->getMockBuilder('\OCP\IURLGenerator') + $urlGenerator = $this->getMockBuilder(IURLGenerator::class) ->disableOriginalConstructor() ->getMock(); @@ -146,7 +149,7 @@ class DetectionTest extends \Test\TestCase { */ //Mock UrlGenerator - $urlGenerator = $this->getMockBuilder('\OCP\IURLGenerator') + $urlGenerator = $this->getMockBuilder(IURLGenerator::class) ->disableOriginalConstructor() ->getMock(); @@ -166,7 +169,7 @@ class DetectionTest extends \Test\TestCase { */ //Mock UrlGenerator - $urlGenerator = $this->getMockBuilder('\OCP\IURLGenerator') + $urlGenerator = $this->getMockBuilder(IURLGenerator::class) ->disableOriginalConstructor() ->getMock(); @@ -186,7 +189,7 @@ class DetectionTest extends \Test\TestCase { */ //Mock UrlGenerator - $urlGenerator = $this->getMockBuilder('\OCP\IURLGenerator') + $urlGenerator = $this->getMockBuilder(IURLGenerator::class) ->disableOriginalConstructor() ->getMock(); @@ -216,7 +219,7 @@ class DetectionTest extends \Test\TestCase { */ //Mock UrlGenerator - $urlGenerator = $this->getMockBuilder('\OCP\IURLGenerator') + $urlGenerator = $this->getMockBuilder(IURLGenerator::class) ->disableOriginalConstructor() ->getMock(); @@ -246,7 +249,7 @@ class DetectionTest extends \Test\TestCase { */ //Mock UrlGenerator - $urlGenerator = $this->getMockBuilder('\OCP\IURLGenerator') + $urlGenerator = $this->getMockBuilder(IURLGenerator::class) ->disableOriginalConstructor() ->getMock(); @@ -272,7 +275,7 @@ class DetectionTest extends \Test\TestCase { $mimetypealiases_dist->setContent(json_encode(['foo' => 'foobar/baz'], JSON_FORCE_OBJECT)); //Mock UrlGenerator - $urlGenerator = $this->getMockBuilder('\OCP\IURLGenerator') + $urlGenerator = $this->getMockBuilder(IURLGenerator::class) ->disableOriginalConstructor() ->getMock(); diff --git a/tests/lib/Files/ViewTest.php b/tests/lib/Files/ViewTest.php index cab8bd62739..33d5cc0a8a6 100644 --- a/tests/lib/Files/ViewTest.php +++ b/tests/lib/Files/ViewTest.php @@ -2350,7 +2350,7 @@ class ViewTest extends \Test\TestCase { return; } - $eventHandler = $this->getMockBuilder('\stdclass') + $eventHandler = $this->getMockBuilder(\stdclass::class) ->setMethods(['preCallback', 'postCallback']) ->getMock(); @@ -2425,7 +2425,7 @@ class ViewTest extends \Test\TestCase { Filesystem::getMountManager()->addMount($mount); // Listen for events - $eventHandler = $this->getMockBuilder('\stdclass') + $eventHandler = $this->getMockBuilder(\stdclass::class) ->setMethods(['umount', 'post_umount']) ->getMock(); $eventHandler->expects($this->once()) diff --git a/tests/lib/Group/GroupTest.php b/tests/lib/Group/GroupTest.php index c1824566733..c7cbbc2321b 100644 --- a/tests/lib/Group/GroupTest.php +++ b/tests/lib/Group/GroupTest.php @@ -10,6 +10,8 @@ namespace Test\Group; use OC\User\User; +use OCP\IConfig; +use OCP\IURLGenerator; class GroupTest extends \Test\TestCase { @@ -19,10 +21,10 @@ class GroupTest extends \Test\TestCase { * @return User */ private function newUser($uid, \OC\User\Backend $backend) { - $config = $this->getMockBuilder('\OCP\IConfig') + $config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock(); - $urlgenerator = $this->getMockBuilder('\OCP\IURLGenerator') + $urlgenerator = $this->getMockBuilder(IURLGenerator::class) ->disableOriginalConstructor() ->getMock(); diff --git a/tests/lib/HTTPHelperTest.php b/tests/lib/HTTPHelperTest.php index d241acb2f93..d39cc34c464 100644 --- a/tests/lib/HTTPHelperTest.php +++ b/tests/lib/HTTPHelperTest.php @@ -9,6 +9,7 @@ namespace Test; use OCP\Http\Client\IClientService; +use OCP\IConfig; class HTTPHelperTest extends \Test\TestCase { @@ -22,7 +23,7 @@ class HTTPHelperTest extends \Test\TestCase { protected function setUp() { parent::setUp(); - $this->config = $this->getMockBuilder('\OCP\IConfig') + $this->config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor()->getMock(); $this->clientService = $this->createMock(IClientService::class); $this->httpHelperMock = $this->getMockBuilder('\OC\HTTPHelper') diff --git a/tests/lib/LoggerTest.php b/tests/lib/LoggerTest.php index da9cedc9f56..3a30bbd1d3b 100644 --- a/tests/lib/LoggerTest.php +++ b/tests/lib/LoggerTest.php @@ -138,6 +138,32 @@ class LoggerTest extends TestCase { } } + /** + * @dataProvider userAndPasswordData + */ + public function testDetectclosure($user, $password) { + $a = function($user, $password) { + throw new \Exception('test'); + }; + + try { + $a($user, $password); + } catch (\Exception $e) { + $this->logger->logException($e); + } + $logLines = $this->getLogs(); + + foreach($logLines as $logLine) { + $log = explode('\n', $logLine); + unset($log[1]); // Remove `testDetectclosure(` because we are not testing this here, but the closure on stack trace 0 + $logLine = implode('\n', $log); + + $this->assertNotContains($user, $logLine); + $this->assertNotContains($password, $logLine); + $this->assertContains('{closure}(*** sensitive parameters replaced ***)', $logLine); + } + } + public function dataGetLogClass() { return [ ['file', \OC\Log\File::class], diff --git a/tests/lib/Memcache/FactoryTest.php b/tests/lib/Memcache/FactoryTest.php index 8607ea7de9b..ce6c25cd87f 100644 --- a/tests/lib/Memcache/FactoryTest.php +++ b/tests/lib/Memcache/FactoryTest.php @@ -20,6 +20,8 @@ */ namespace Test\Memcache; +use OCP\ILogger; + class Test_Factory_Available_Cache1 { public function __construct($prefix = '') { } @@ -114,7 +116,7 @@ class FactoryTest extends \Test\TestCase { */ public function testCacheAvailability($localCache, $distributedCache, $lockingCache, $expectedLocalCache, $expectedDistributedCache, $expectedLockingCache) { - $logger = $this->getMockBuilder('\OCP\ILogger')->getMock(); + $logger = $this->getMockBuilder(ILogger::class)->getMock(); $factory = new \OC\Memcache\Factory('abc', $logger, $localCache, $distributedCache, $lockingCache); $this->assertTrue(is_a($factory->createLocal(), $expectedLocalCache)); $this->assertTrue(is_a($factory->createDistributed(), $expectedDistributedCache)); @@ -126,7 +128,7 @@ class FactoryTest extends \Test\TestCase { * @expectedException \OC\HintException */ public function testCacheNotAvailableException($localCache, $distributedCache) { - $logger = $this->getMockBuilder('\OCP\ILogger')->getMock(); + $logger = $this->getMockBuilder(ILogger::class)->getMock(); new \OC\Memcache\Factory('abc', $logger, $localCache, $distributedCache); } } diff --git a/tests/lib/Migration/BackgroundRepairTest.php b/tests/lib/Migration/BackgroundRepairTest.php index 2de55f647e7..7a3a960074f 100644 --- a/tests/lib/Migration/BackgroundRepairTest.php +++ b/tests/lib/Migration/BackgroundRepairTest.php @@ -72,7 +72,7 @@ class BackgroundRepairTest extends TestCase { $this->jobList = $this->getMockBuilder('OC\BackgroundJob\JobList') ->disableOriginalConstructor() ->getMock(); - $this->logger = $this->getMockBuilder('OCP\ILogger') + $this->logger = $this->getMockBuilder(ILogger::class) ->disableOriginalConstructor() ->getMock(); $this->job = $this->getMockBuilder(BackgroundRepair::class) diff --git a/tests/lib/Notification/ManagerTest.php b/tests/lib/Notification/ManagerTest.php index e280838424b..cb6504b67e7 100644 --- a/tests/lib/Notification/ManagerTest.php +++ b/tests/lib/Notification/ManagerTest.php @@ -22,7 +22,10 @@ namespace Test\Notification; use OC\Notification\Manager; +use OCP\Notification\IApp; use OCP\Notification\IManager; +use OCP\Notification\INotification; +use OCP\Notification\INotifier; use OCP\RichObjectStrings\IValidator; use Test\TestCase; @@ -37,7 +40,7 @@ class ManagerTest extends TestCase { } public function testRegisterApp() { - $app = $this->getMockBuilder('OCP\Notification\IApp') + $app = $this->getMockBuilder(IApp::class) ->disableOriginalConstructor() ->getMock(); @@ -61,7 +64,7 @@ class ManagerTest extends TestCase { * @expectedException \InvalidArgumentException */ public function testRegisterAppInvalid() { - $notifier = $this->getMockBuilder('OCP\Notification\INotifier') + $notifier = $this->getMockBuilder(INotifier::class) ->disableOriginalConstructor() ->getMock(); @@ -75,7 +78,7 @@ class ManagerTest extends TestCase { } public function testRegisterNotifier() { - $notifier = $this->getMockBuilder('OCP\Notification\INotifier') + $notifier = $this->getMockBuilder(INotifier::class) ->disableOriginalConstructor() ->getMock(); @@ -107,7 +110,7 @@ class ManagerTest extends TestCase { * @expectedException \InvalidArgumentException */ public function testRegisterNotifierInvalid() { - $app = $this->getMockBuilder('OCP\Notification\IApp') + $app = $this->getMockBuilder(IApp::class) ->disableOriginalConstructor() ->getMock(); @@ -138,7 +141,7 @@ class ManagerTest extends TestCase { * @param mixed $data */ public function testRegisterNotifierInfoInvalid($data) { - $app = $this->getMockBuilder('OCP\Notification\IApp') + $app = $this->getMockBuilder(IApp::class) ->disableOriginalConstructor() ->getMock(); @@ -158,7 +161,7 @@ class ManagerTest extends TestCase { * @expectedExceptionMessage The given notifier ID test1 is already in use */ public function testRegisterNotifierInfoDuplicate() { - $app = $this->getMockBuilder('OCP\Notification\IApp') + $app = $this->getMockBuilder(IApp::class) ->disableOriginalConstructor() ->getMock(); @@ -184,7 +187,7 @@ class ManagerTest extends TestCase { public function testNotify() { /** @var \OCP\Notification\INotification|\PHPUnit_Framework_MockObject_MockObject $notification */ - $notification = $this->getMockBuilder('OCP\Notification\INotification') + $notification = $this->getMockBuilder(INotification::class) ->disableOriginalConstructor() ->getMock(); $notification->expects($this->once()) @@ -192,7 +195,7 @@ class ManagerTest extends TestCase { ->willReturn(true); /** @var \OCP\Notification\IApp|\PHPUnit_Framework_MockObject_MockObject $app */ - $app = $this->getMockBuilder('OCP\Notification\IApp') + $app = $this->getMockBuilder(IApp::class) ->disableOriginalConstructor() ->getMock(); $app->expects($this->once()) @@ -200,7 +203,7 @@ class ManagerTest extends TestCase { ->with($notification); /** @var \OCP\Notification\IApp|\PHPUnit_Framework_MockObject_MockObject $app2 */ - $app2 = $this->getMockBuilder('OCP\Notification\IApp') + $app2 = $this->getMockBuilder(IApp::class) ->disableOriginalConstructor() ->getMock(); $app2->expects($this->once()) @@ -222,7 +225,7 @@ class ManagerTest extends TestCase { */ public function testNotifyInvalid() { /** @var \OCP\Notification\INotification|\PHPUnit_Framework_MockObject_MockObject $notification */ - $notification = $this->getMockBuilder('OCP\Notification\INotification') + $notification = $this->getMockBuilder(INotification::class) ->disableOriginalConstructor() ->getMock(); $notification->expects($this->once()) @@ -234,14 +237,14 @@ class ManagerTest extends TestCase { public function testPrepare() { /** @var \OCP\Notification\INotification|\PHPUnit_Framework_MockObject_MockObject $notification */ - $notification = $this->getMockBuilder('OCP\Notification\INotification') + $notification = $this->getMockBuilder(INotification::class) ->disableOriginalConstructor() ->getMock(); $notification->expects($this->once()) ->method('isValidParsed') ->willReturn(true); /** @var \OCP\Notification\INotification|\PHPUnit_Framework_MockObject_MockObject $notification2 */ - $notification2 = $this->getMockBuilder('OCP\Notification\INotification') + $notification2 = $this->getMockBuilder(INotification::class) ->disableOriginalConstructor() ->getMock(); $notification2->expects($this->exactly(2)) @@ -249,7 +252,7 @@ class ManagerTest extends TestCase { ->willReturn(true); /** @var \OCP\Notification\IApp|\PHPUnit_Framework_MockObject_MockObject $notifier */ - $notifier = $this->getMockBuilder('OCP\Notification\INotifier') + $notifier = $this->getMockBuilder(INotifier::class) ->disableOriginalConstructor() ->getMock(); $notifier->expects($this->once()) @@ -258,7 +261,7 @@ class ManagerTest extends TestCase { ->willReturnArgument(0); /** @var \OCP\Notification\IApp|\PHPUnit_Framework_MockObject_MockObject $notifier2 */ - $notifier2 = $this->getMockBuilder('OCP\Notification\INotifier') + $notifier2 = $this->getMockBuilder(INotifier::class) ->disableOriginalConstructor() ->getMock(); $notifier2->expects($this->once()) @@ -285,7 +288,7 @@ class ManagerTest extends TestCase { */ public function testPrepareInvalid() { /** @var \OCP\Notification\INotification|\PHPUnit_Framework_MockObject_MockObject $notification */ - $notification = $this->getMockBuilder('OCP\Notification\INotification') + $notification = $this->getMockBuilder(INotification::class) ->disableOriginalConstructor() ->getMock(); $notification->expects($this->once()) @@ -293,7 +296,7 @@ class ManagerTest extends TestCase { ->willReturn(false); /** @var \OCP\Notification\IApp|\PHPUnit_Framework_MockObject_MockObject $notifier */ - $notifier = $this->getMockBuilder('OCP\Notification\INotifier') + $notifier = $this->getMockBuilder(INotifier::class) ->disableOriginalConstructor() ->getMock(); $notifier->expects($this->once()) @@ -312,7 +315,7 @@ class ManagerTest extends TestCase { public function testPrepareNotifierThrows() { /** @var \OCP\Notification\INotification|\PHPUnit_Framework_MockObject_MockObject $notification */ - $notification = $this->getMockBuilder('OCP\Notification\INotification') + $notification = $this->getMockBuilder(INotification::class) ->disableOriginalConstructor() ->getMock(); $notification->expects($this->once()) @@ -320,7 +323,7 @@ class ManagerTest extends TestCase { ->willReturn(true); /** @var \OCP\Notification\IApp|\PHPUnit_Framework_MockObject_MockObject $notifier */ - $notifier = $this->getMockBuilder('OCP\Notification\INotifier') + $notifier = $this->getMockBuilder(INotifier::class) ->disableOriginalConstructor() ->getMock(); $notifier->expects($this->once()) @@ -342,7 +345,7 @@ class ManagerTest extends TestCase { */ public function testPrepareNoNotifier() { /** @var \OCP\Notification\INotification|\PHPUnit_Framework_MockObject_MockObject $notification */ - $notification = $this->getMockBuilder('OCP\Notification\INotification') + $notification = $this->getMockBuilder(INotification::class) ->disableOriginalConstructor() ->getMock(); $notification->expects($this->once()) @@ -354,12 +357,12 @@ class ManagerTest extends TestCase { public function testMarkProcessed() { /** @var \OCP\Notification\INotification|\PHPUnit_Framework_MockObject_MockObject $notification */ - $notification = $this->getMockBuilder('OCP\Notification\INotification') + $notification = $this->getMockBuilder(INotification::class) ->disableOriginalConstructor() ->getMock(); /** @var \OCP\Notification\IApp|\PHPUnit_Framework_MockObject_MockObject $app */ - $app = $this->getMockBuilder('OCP\Notification\IApp') + $app = $this->getMockBuilder(IApp::class) ->disableOriginalConstructor() ->getMock(); $app->expects($this->once()) @@ -367,7 +370,7 @@ class ManagerTest extends TestCase { ->with($notification); /** @var \OCP\Notification\IApp|\PHPUnit_Framework_MockObject_MockObject $app2 */ - $app2 = $this->getMockBuilder('OCP\Notification\IApp') + $app2 = $this->getMockBuilder(IApp::class) ->disableOriginalConstructor() ->getMock(); $app2->expects($this->once()) @@ -386,12 +389,12 @@ class ManagerTest extends TestCase { public function testGetCount() { /** @var \OCP\Notification\INotification|\PHPUnit_Framework_MockObject_MockObject $notification */ - $notification = $this->getMockBuilder('OCP\Notification\INotification') + $notification = $this->getMockBuilder(INotification::class) ->disableOriginalConstructor() ->getMock(); /** @var \OCP\Notification\IApp|\PHPUnit_Framework_MockObject_MockObject $app */ - $app = $this->getMockBuilder('OCP\Notification\IApp') + $app = $this->getMockBuilder(IApp::class) ->disableOriginalConstructor() ->getMock(); $app->expects($this->once()) @@ -400,7 +403,7 @@ class ManagerTest extends TestCase { ->willReturn(21); /** @var \OCP\Notification\IApp|\PHPUnit_Framework_MockObject_MockObject $app2 */ - $app2 = $this->getMockBuilder('OCP\Notification\IApp') + $app2 = $this->getMockBuilder(IApp::class) ->disableOriginalConstructor() ->getMock(); $app2->expects($this->once()) diff --git a/tests/lib/Repair/CleanTagsTest.php b/tests/lib/Repair/CleanTagsTest.php index ac79907c525..115bce49f71 100644 --- a/tests/lib/Repair/CleanTagsTest.php +++ b/tests/lib/Repair/CleanTagsTest.php @@ -8,6 +8,7 @@ namespace Test\Repair; use OCP\DB\QueryBuilder\IQueryBuilder; +use OCP\IUserManager; use OCP\Migration\IOutput; /** @@ -41,7 +42,7 @@ class CleanTagsTest extends \Test\TestCase { ->disableOriginalConstructor() ->getMock(); - $this->userManager = $this->getMockBuilder('\OCP\IUserManager') + $this->userManager = $this->getMockBuilder(IUserManager::class) ->disableOriginalConstructor() ->getMock(); diff --git a/tests/lib/Repair/RepairInvalidSharesTest.php b/tests/lib/Repair/RepairInvalidSharesTest.php index fa75f58472a..0c67cc992ef 100644 --- a/tests/lib/Repair/RepairInvalidSharesTest.php +++ b/tests/lib/Repair/RepairInvalidSharesTest.php @@ -11,6 +11,7 @@ namespace Test\Repair; use OC\Repair\RepairInvalidShares; use OC\Share\Constants; +use OCP\IConfig; use OCP\Migration\IOutput; use OCP\Migration\IRepairStep; use Test\TestCase; @@ -33,7 +34,7 @@ class RepairInvalidSharesTest extends TestCase { protected function setUp() { parent::setUp(); - $config = $this->getMockBuilder('OCP\IConfig') + $config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock(); $config->expects($this->any()) diff --git a/tests/lib/Repair/RepairMimeTypesTest.php b/tests/lib/Repair/RepairMimeTypesTest.php index 6f3ed5ce318..b9d73d27d00 100644 --- a/tests/lib/Repair/RepairMimeTypesTest.php +++ b/tests/lib/Repair/RepairMimeTypesTest.php @@ -39,7 +39,7 @@ class RepairMimeTypesTest extends \Test\TestCase { $this->mimetypeLoader = \OC::$server->getMimeTypeLoader(); /** @var IConfig | \PHPUnit_Framework_MockObject_MockObject $config */ - $config = $this->getMockBuilder('OCP\IConfig') + $config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock(); $config->expects($this->any()) diff --git a/tests/lib/Security/CSRF/TokenStorage/SessionStorageTest.php b/tests/lib/Security/CSRF/TokenStorage/SessionStorageTest.php index d1e76684507..92a6557f8e3 100644 --- a/tests/lib/Security/CSRF/TokenStorage/SessionStorageTest.php +++ b/tests/lib/Security/CSRF/TokenStorage/SessionStorageTest.php @@ -31,7 +31,7 @@ class SessionStorageTest extends \Test\TestCase { public function setUp() { parent::setUp(); - $this->session = $this->getMockBuilder('\OCP\ISession') + $this->session = $this->getMockBuilder(ISession::class) ->disableOriginalConstructor()->getMock(); $this->sessionStorage = new \OC\Security\CSRF\TokenStorage\SessionStorage($this->session); } diff --git a/tests/lib/Security/CertificateManagerTest.php b/tests/lib/Security/CertificateManagerTest.php index 6bdb647abc5..2804ad99c0f 100644 --- a/tests/lib/Security/CertificateManagerTest.php +++ b/tests/lib/Security/CertificateManagerTest.php @@ -9,6 +9,7 @@ namespace Test\Security; use OC\Files\Storage\Temporary; +use OC\Files\View; use \OC\Security\CertificateManager; use OCP\IConfig; use OCP\ILogger; @@ -152,7 +153,7 @@ class CertificateManagerTest extends \Test\TestCase { $expected ) { - $view = $this->getMockBuilder('OC\Files\View') + $view = $this->getMockBuilder(View::class) ->disableOriginalConstructor()->getMock(); $config = $this->createMock(IConfig::class); diff --git a/tests/lib/Security/HasherTest.php b/tests/lib/Security/HasherTest.php index 913f4d703e8..5f7613a823d 100644 --- a/tests/lib/Security/HasherTest.php +++ b/tests/lib/Security/HasherTest.php @@ -9,6 +9,7 @@ namespace Test\Security; use OC\Security\Hasher; +use OCP\IConfig; /** * Class HasherTest @@ -75,13 +76,13 @@ class HasherTest extends \Test\TestCase { /** @var Hasher */ protected $hasher; - /** @var \OCP\IConfig */ + /** @var IConfig */ protected $config; protected function setUp() { parent::setUp(); - $this->config = $this->getMockBuilder('\OCP\IConfig') + $this->config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor()->getMock(); $this->hasher = new Hasher($this->config); diff --git a/tests/lib/Security/TrustedDomainHelperTest.php b/tests/lib/Security/TrustedDomainHelperTest.php index 1beb7a66717..25586a1bc27 100644 --- a/tests/lib/Security/TrustedDomainHelperTest.php +++ b/tests/lib/Security/TrustedDomainHelperTest.php @@ -21,7 +21,7 @@ class TrustedDomainHelperTest extends \Test\TestCase { protected function setUp() { parent::setUp(); - $this->config = $this->getMockBuilder('\OCP\IConfig')->getMock(); + $this->config = $this->getMockBuilder(IConfig::class)->getMock(); } /** diff --git a/tests/lib/Session/CryptoWrappingTest.php b/tests/lib/Session/CryptoWrappingTest.php index e1fadbf933f..f34148fb50e 100644 --- a/tests/lib/Session/CryptoWrappingTest.php +++ b/tests/lib/Session/CryptoWrappingTest.php @@ -22,6 +22,7 @@ namespace Test\Session; use OC\Session\CryptoSessionData; +use OCP\ISession; use Test\TestCase; class CryptoWrappingTest extends TestCase { @@ -37,7 +38,7 @@ class CryptoWrappingTest extends TestCase { protected function setUp() { parent::setUp(); - $this->wrappedSession = $this->getMockBuilder('OCP\ISession') + $this->wrappedSession = $this->getMockBuilder(ISession::class) ->disableOriginalConstructor() ->getMock(); $this->crypto = $this->getMockBuilder('OCP\Security\ICrypto') diff --git a/tests/lib/Settings/Admin/AdditionalTest.php b/tests/lib/Settings/Admin/AdditionalTest.php index 84c63f3aeb1..4a254da060b 100644 --- a/tests/lib/Settings/Admin/AdditionalTest.php +++ b/tests/lib/Settings/Admin/AdditionalTest.php @@ -36,7 +36,7 @@ class AdditionalTest extends TestCase { public function setUp() { parent::setUp(); - $this->config = $this->getMockBuilder('\OCP\IConfig')->getMock(); + $this->config = $this->getMockBuilder(IConfig::class)->getMock(); $this->admin = new Additional( $this->config diff --git a/tests/lib/Settings/Admin/EncryptionTest.php b/tests/lib/Settings/Admin/EncryptionTest.php index a5f483863e6..41196a9bc41 100644 --- a/tests/lib/Settings/Admin/EncryptionTest.php +++ b/tests/lib/Settings/Admin/EncryptionTest.php @@ -40,7 +40,7 @@ class EncryptionTest extends TestCase { public function setUp() { parent::setUp(); $this->manager = $this->getMockBuilder('\OC\Encryption\Manager')->disableOriginalConstructor()->getMock(); - $this->userManager = $this->getMockBuilder('\OCP\IUserManager')->getMock(); + $this->userManager = $this->getMockBuilder(IUserManager::class)->getMock(); $this->admin = new Encryption( $this->manager, diff --git a/tests/lib/Settings/Admin/ServerTest.php b/tests/lib/Settings/Admin/ServerTest.php index 106390f25a5..b8317540117 100644 --- a/tests/lib/Settings/Admin/ServerTest.php +++ b/tests/lib/Settings/Admin/ServerTest.php @@ -49,11 +49,11 @@ class ServerTest extends TestCase { public function setUp() { parent::setUp(); - $this->config = $this->getMockBuilder('\OCP\IConfig')->getMock(); + $this->config = $this->getMockBuilder(IConfig::class)->getMock(); $this->request = $this->createMock(IRequest::class); $this->dbConnection = $this->getMockBuilder('\OCP\IDBConnection')->getMock(); $this->lockingProvider = $this->getMockBuilder('\OCP\Lock\ILockingProvider')->getMock(); - $this->l10n = $this->getMockBuilder('\OCP\IL10N')->getMock(); + $this->l10n = $this->getMockBuilder(IL10N::class)->getMock(); $this->admin = new Server( $this->dbConnection, diff --git a/tests/lib/Settings/Admin/SharingTest.php b/tests/lib/Settings/Admin/SharingTest.php index d9aa14fecea..9498a1466d3 100644 --- a/tests/lib/Settings/Admin/SharingTest.php +++ b/tests/lib/Settings/Admin/SharingTest.php @@ -36,7 +36,7 @@ class SharingTest extends TestCase { public function setUp() { parent::setUp(); - $this->config = $this->getMockBuilder('\OCP\IConfig')->getMock(); + $this->config = $this->getMockBuilder(IConfig::class)->getMock(); $this->admin = new Sharing( $this->config diff --git a/tests/lib/Settings/Admin/TipsTricksTest.php b/tests/lib/Settings/Admin/TipsTricksTest.php index cbecd51ed55..2bbadab52cb 100644 --- a/tests/lib/Settings/Admin/TipsTricksTest.php +++ b/tests/lib/Settings/Admin/TipsTricksTest.php @@ -36,7 +36,7 @@ class TipsTrickTest extends TestCase { public function setUp() { parent::setUp(); - $this->config = $this->getMockBuilder('\OCP\IConfig')->getMock(); + $this->config = $this->getMockBuilder(IConfig::class)->getMock(); $this->admin = new TipsTricks( $this->config diff --git a/tests/lib/SystemTag/SystemTagManagerTest.php b/tests/lib/SystemTag/SystemTagManagerTest.php index 61fac99ca6c..f81bbaf1643 100644 --- a/tests/lib/SystemTag/SystemTagManagerTest.php +++ b/tests/lib/SystemTag/SystemTagManagerTest.php @@ -13,6 +13,7 @@ namespace Test\SystemTag; use OC\SystemTag\SystemTagManager; use OC\SystemTag\SystemTagObjectMapper; use OCP\IDBConnection; +use OCP\IUser; use OCP\SystemTag\ISystemTag; use OCP\SystemTag\ISystemTagManager; use Symfony\Component\EventDispatcher\EventDispatcherInterface; @@ -56,7 +57,7 @@ class SystemTagManagerTest extends TestCase { $this->dispatcher = $this->getMockBuilder('Symfony\Component\EventDispatcher\EventDispatcherInterface') ->getMock(); - $this->groupManager = $this->getMockBuilder('\OCP\IGroupManager')->getMock(); + $this->groupManager = $this->getMockBuilder(IGroupManager::class)->getMock(); $this->tagManager = new SystemTagManager( $this->connection, @@ -433,7 +434,7 @@ class SystemTagManagerTest extends TestCase { * @dataProvider visibilityCheckProvider */ public function testVisibilityCheck($userVisible, $userAssignable, $isAdmin, $expectedResult) { - $user = $this->getMockBuilder('\OCP\IUser')->getMock(); + $user = $this->getMockBuilder(IUser::class)->getMock(); $user->expects($this->any()) ->method('getUID') ->will($this->returnValue('test')); @@ -480,7 +481,7 @@ class SystemTagManagerTest extends TestCase { * @dataProvider assignabilityCheckProvider */ public function testAssignabilityCheck($userVisible, $userAssignable, $isAdmin, $expectedResult, $userGroupIds = [], $tagGroupIds = []) { - $user = $this->getMockBuilder('\OCP\IUser')->getMock(); + $user = $this->getMockBuilder(IUser::class)->getMock(); $user->expects($this->any()) ->method('getUID') ->will($this->returnValue('test')); diff --git a/tests/lib/TestCase.php b/tests/lib/TestCase.php index 818b3454c3a..64036084dc2 100644 --- a/tests/lib/TestCase.php +++ b/tests/lib/TestCase.php @@ -491,7 +491,7 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase { ->method('getName') ->willReturn('Nextcloud'); /** @var IL10N|\PHPUnit_Framework_MockObject_MockObject $l10n */ - $l10n = $this->getMockBuilder('\OCP\IL10N') + $l10n = $this->getMockBuilder(IL10N::class) ->disableOriginalConstructor()->getMock(); $l10n ->expects($this->any()) diff --git a/tests/lib/Updater/VersionCheckTest.php b/tests/lib/Updater/VersionCheckTest.php index 6f6c6c1ad0c..ff04aa17681 100644 --- a/tests/lib/Updater/VersionCheckTest.php +++ b/tests/lib/Updater/VersionCheckTest.php @@ -23,6 +23,7 @@ namespace Test\Updater; use OC\Updater\VersionCheck; +use OCP\Http\Client\IClientService; use OCP\IConfig; use OCP\Util; @@ -34,10 +35,10 @@ class VersionCheckTest extends \Test\TestCase { public function setUp() { parent::setUp(); - $this->config = $this->getMockBuilder('\OCP\IConfig') + $this->config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock(); - $clientService = $this->getMockBuilder('\OCP\Http\Client\IClientService') + $clientService = $this->getMockBuilder(IClientService::class) ->disableOriginalConstructor() ->getMock(); diff --git a/tests/lib/User/ManagerTest.php b/tests/lib/User/ManagerTest.php index 9520cd640fd..0d98a9825de 100644 --- a/tests/lib/User/ManagerTest.php +++ b/tests/lib/User/ManagerTest.php @@ -615,7 +615,7 @@ class ManagerTest extends TestCase { } public function testDeleteUser() { - $config = $this->getMockBuilder('OCP\IConfig') + $config = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock(); $config diff --git a/tests/lib/User/SessionTest.php b/tests/lib/User/SessionTest.php index c4d29b979ae..9cbac8dfc29 100644 --- a/tests/lib/User/SessionTest.php +++ b/tests/lib/User/SessionTest.php @@ -769,7 +769,7 @@ class SessionTest extends \Test\TestCase { $session = new Memory(''); $session->set('user_id', 'foo'); - $userSession = $this->getMockBuilder('\OC\User\Session') + $userSession = $this->getMockBuilder(Session::class) ->setConstructorArgs([$manager, $session, $this->timeFactory, $this->tokenProvider, $this->config, $this->random, $this->lockdownManager]) ->setMethods([ 'validateSession' @@ -950,7 +950,7 @@ class SessionTest extends \Test\TestCase { $token->setUid('fritz0'); $token->setLastCheck(100); // Needs check $user = $this->createMock(IUser::class); - $userSession = $this->getMockBuilder('\OC\User\Session') + $userSession = $this->getMockBuilder(Session::class) ->setMethods(['logout']) ->setConstructorArgs([$manager, $session, $this->timeFactory, $this->tokenProvider, $this->config, $this->random, $this->lockdownManager]) ->getMock(); @@ -980,7 +980,7 @@ class SessionTest extends \Test\TestCase { $session = $this->createMock(ISession::class); $timeFactory = $this->createMock(ITimeFactory::class); $tokenProvider = $this->createMock(IProvider::class); - $userSession = $this->getMockBuilder('\OC\User\Session') + $userSession = $this->getMockBuilder(Session::class) ->setConstructorArgs([$userManager, $session, $timeFactory, $tokenProvider, $this->config, $this->random, $this->lockdownManager]) ->setMethods(['logout']) ->getMock(); @@ -1027,7 +1027,7 @@ class SessionTest extends \Test\TestCase { $session = $this->createMock(ISession::class); $timeFactory = $this->createMock(ITimeFactory::class); $tokenProvider = $this->createMock(IProvider::class); - $userSession = $this->getMockBuilder('\OC\User\Session') + $userSession = $this->getMockBuilder(Session::class) ->setConstructorArgs([$userManager, $session, $timeFactory, $tokenProvider, $this->config, $this->random, $this->lockdownManager]) ->setMethods(['logout']) ->getMock(); diff --git a/tests/lib/User/UserTest.php b/tests/lib/User/UserTest.php index 089f30a1fef..acb171d92e3 100644 --- a/tests/lib/User/UserTest.php +++ b/tests/lib/User/UserTest.php @@ -276,7 +276,7 @@ class UserTest extends TestCase { ->method('implementsActions') ->will($this->returnValue(false)); - $allConfig = $this->getMockBuilder('\OCP\IConfig') + $allConfig = $this->getMockBuilder(IConfig::class) ->disableOriginalConstructor() ->getMock(); $allConfig->expects($this->any()) diff --git a/tests/lib/UtilTest.php b/tests/lib/UtilTest.php index 52d18571647..49dc4ddebb1 100644 --- a/tests/lib/UtilTest.php +++ b/tests/lib/UtilTest.php @@ -10,6 +10,8 @@ namespace Test; use OC_Util; use OCP\App\IAppManager; +use OCP\IConfig; +use OCP\IUser; /** * Class UtilTest @@ -259,9 +261,9 @@ class UtilTest extends \Test\TestCase { * @param bool $expected expected result */ function testIsSharingDisabledForUser($groups, $membership, $excludedGroups, $expected) { - $config = $this->getMockBuilder('OCP\IConfig')->disableOriginalConstructor()->getMock(); + $config = $this->getMockBuilder(IConfig::class)->disableOriginalConstructor()->getMock(); $groupManager = $this->getMockBuilder('OCP\IGroupManager')->disableOriginalConstructor()->getMock(); - $user = $this->getMockBuilder('OCP\IUser')->disableOriginalConstructor()->getMock(); + $user = $this->getMockBuilder(IUser::class)->disableOriginalConstructor()->getMock(); $config ->expects($this->at(0)) |