getDisplayName()); ?>
-t('Error while validating your second factor')); ?>
+ ++ +
t('Error while validating your second factor')); ?>
+"+(escaped?code:escape(code,true))+"\n
"}return''+(escaped?code:escape(code,true))+"\n
\n"};Renderer.prototype.blockquote=function(quote){return"\n"+quote+"\n"};Renderer.prototype.html=function(html){return html};Renderer.prototype.heading=function(text,level,raw){return"
\n":"
\n"};Renderer.prototype.list=function(body,ordered){var type=ordered?"ol":"ul";return"<"+type+">\n"+body+""+type+">\n"};Renderer.prototype.listitem=function(text){return"
"+text+"
\n"};Renderer.prototype.table=function(header,body){return""+text+"
"};Renderer.prototype.br=function(){return this.options.xhtml?"":"
"};Renderer.prototype.del=function(text){return"
"+escape(e.message+"",true)+""}throw e}}marked.options=marked.setOptions=function(opt){merge(marked.defaults,opt);return marked};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,sanitizer:null,mangle:true,smartLists:false,silent:false,highlight:null,langPrefix:"lang-",smartypants:false,headerPrefix:"",renderer:new Renderer,xhtml:false};marked.Parser=Parser;marked.parser=Parser.parse;marked.Renderer=Renderer;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;marked.parse=marked;if(typeof module!=="undefined"&&typeof exports==="object"){module.exports=marked}else if(typeof define==="function"&&define.amd){define(function(){return marked})}else{this.marked=marked}}).call(function(){return this||(typeof window!=="undefined"?window:global)}()); \ No newline at end of file diff --git a/cron.php b/cron.php index 6fdc7cb24d389a1a820bc84b59687b4308b9817c..c8eed3afbe7706063c75b03f2956cf38d6f722b2 100644 --- a/cron.php +++ b/cron.php @@ -30,6 +30,13 @@ * */ +// Show warning if a PHP version below 5.6.0 is used +if (version_compare(PHP_VERSION, '5.6.0') === -1) { + echo 'This version of Nextcloud requires at least PHP 5.6.0
'; + echo 'You are currently running ' . PHP_VERSION . '. Please update your PHP version.'; + return; +} + try { require_once __DIR__ . '/lib/base.php'; diff --git a/lib/base.php b/lib/base.php index 7bd14de56b662bb6b2eee3b3a655da2f6b0c65e7..3ba0755eaabf48a9c0fdfa62da00172d08efc6eb 100644 --- a/lib/base.php +++ b/lib/base.php @@ -281,6 +281,7 @@ class OC { // render error page $template = new OC_Template('', 'update.user', 'guest'); OC_Util::addScript('maintenance-check'); + OC_Util::addStyle('guest'); $template->printPage(); die(); } @@ -354,6 +355,8 @@ class OC { header('Status: 503 Service Temporarily Unavailable'); header('Retry-After: 120'); + OC_Util::addStyle('guest'); + // render error page $template = new OC_Template('', 'update.use-cli', 'guest'); $template->assign('productName', 'nextcloud'); // for now @@ -373,9 +376,9 @@ class OC { $oldTheme = $systemConfig->getValue('theme'); $systemConfig->setValue('theme', ''); - \OCP\Util::addScript('config'); // needed for web root - \OCP\Util::addScript('update'); - \OCP\Util::addStyle('update'); + OC_Util::addScript('config'); // needed for web root + OC_Util::addScript('update'); + OC_Util::addStyle('guest'); /** @var \OC\App\AppManager $appManager */ $appManager = \OC::$server->getAppManager(); @@ -666,12 +669,6 @@ class OC { OC\Log\ErrorHandler::register($debug); } - // register the stream wrappers - stream_wrapper_register('fakedir', 'OC\Files\Stream\Dir'); - stream_wrapper_register('static', 'OC\Files\Stream\StaticStream'); - stream_wrapper_register('close', 'OC\Files\Stream\Close'); - stream_wrapper_register('quota', 'OC\Files\Stream\Quota'); - \OC::$server->getEventLogger()->start('init_session', 'Initialize session'); OC_App::loadApps(array('session')); if (!self::$CLI) { @@ -711,6 +708,7 @@ class OC { exit(1); } else { OC_Response::setStatus(OC_Response::STATUS_SERVICE_UNAVAILABLE); + OC_Util::addStyle('guest'); OC_Template::printGuestPage('', 'error', array('errors' => $errors)); exit; } @@ -750,9 +748,6 @@ class OC { self::registerCacheHooks(); self::registerFilesystemHooks(); - if ($systemConfig->getValue('enable_previews', true)) { - self::registerPreviewHooks(); - } self::registerShareHooks(); self::registerLogRotate(); self::registerEncryptionWrapper(); @@ -791,23 +786,31 @@ class OC { && !\OC::$server->getTrustedDomainHelper()->isTrustedDomain($host) && self::$server->getConfig()->getSystemValue('installed', false) ) { - header('HTTP/1.1 400 Bad Request'); - header('Status: 400 Bad Request'); + // Allow access to CSS resources + $isScssRequest = false; + if(strpos($request->getPathInfo(), '/css/') === 0) { + $isScssRequest = true; + } - \OC::$server->getLogger()->warning( + if (!$isScssRequest) { + header('HTTP/1.1 400 Bad Request'); + header('Status: 400 Bad Request'); + + \OC::$server->getLogger()->warning( 'Trusted domain error. "{remoteAddress}" tried to access using "{host}" as host.', [ 'app' => 'core', 'remoteAddress' => $request->getRemoteAddress(), 'host' => $host, ] - ); + ); - $tmpl = new OCP\Template('core', 'untrustedDomain', 'guest'); - $tmpl->assign('domain', $host); - $tmpl->printPage(); + $tmpl = new OCP\Template('core', 'untrustedDomain', 'guest'); + $tmpl->assign('domain', $host); + $tmpl->printPage(); - exit(); + exit(); + } } \OC::$server->getEventLogger()->end('boot'); } @@ -881,7 +884,7 @@ class OC { 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 - \OCP\BackgroundJob::registerJob('OC\Log\Rotate', $systemConfig->getValue('logfile', $systemConfig->getValue('datadirectory', OC::$SERVERROOT . '/data') . '/nextcloud.log')); + \OC::$server->getJobList()->add('OC\Log\Rotate'); } } @@ -894,20 +897,6 @@ class OC { OC_Hook::connect('OC_Filesystem', 'rename', 'OC\Files\Filesystem', 'isBlacklisted'); } - /** - * register hooks for previews - */ - public static function registerPreviewHooks() { - OC_Hook::connect('OC_Filesystem', 'post_write', 'OC\Preview', 'post_write'); - OC_Hook::connect('OC_Filesystem', 'delete', 'OC\Preview', 'prepare_delete_files'); - OC_Hook::connect('\OCP\Versions', 'preDelete', 'OC\Preview', 'prepare_delete'); - OC_Hook::connect('\OCP\Trashbin', 'preDelete', 'OC\Preview', 'prepare_delete'); - OC_Hook::connect('OC_Filesystem', 'post_delete', 'OC\Preview', 'post_delete_files'); - OC_Hook::connect('\OCP\Versions', 'delete', 'OC\Preview', 'post_delete_versions'); - OC_Hook::connect('\OCP\Trashbin', 'delete', 'OC\Preview', 'post_delete'); - OC_Hook::connect('\OCP\Versions', 'rollback', 'OC\Preview', 'post_delete_versions'); - } - /** * register hooks for sharing */ diff --git a/lib/composer/autoload.php b/lib/composer/autoload.php index 610dbf34bca9674c414a523a87ccf973abeb4afa..6de0160c0b5b49b30ec4d803dcb04c3407a36020 100644 --- a/lib/composer/autoload.php +++ b/lib/composer/autoload.php @@ -2,6 +2,6 @@ // autoload.php @generated by Composer -require_once __DIR__ . '/composer' . '/autoload_real.php'; +require_once __DIR__ . '/composer/autoload_real.php'; return ComposerAutoloaderInit53792487c5a8370acc0b06b1a864ff4c::getLoader(); diff --git a/lib/composer/composer/ClassLoader.php b/lib/composer/composer/ClassLoader.php index ac67d302a1866f83aab0c3bff265cfbfe9318f51..4626994fd4d8ac4c5489670d85b09af1b6d8aab0 100644 --- a/lib/composer/composer/ClassLoader.php +++ b/lib/composer/composer/ClassLoader.php @@ -55,6 +55,7 @@ class ClassLoader private $classMap = array(); private $classMapAuthoritative = false; private $missingClasses = array(); + private $apcuPrefix; public function getPrefixes() { @@ -271,6 +272,26 @@ class ClassLoader 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. * @@ -313,11 +334,6 @@ class ClassLoader */ public function findFile($class) { - // work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731 - if ('\\' == $class[0]) { - $class = substr($class, 1); - } - // class map lookup if (isset($this->classMap[$class])) { return $this->classMap[$class]; @@ -325,6 +341,12 @@ class ClassLoader 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'); @@ -333,6 +355,10 @@ class ClassLoader $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; diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index dafa46bc996fcfddd09c7450f6a3820daa56cde5..4a345ed7a6dd440e414ee10f7ef9f81672854df0 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -9,8 +9,12 @@ return array( 'OCP\\API' => $baseDir . '/lib/public/API.php', 'OCP\\Activity\\IConsumer' => $baseDir . '/lib/public/Activity/IConsumer.php', 'OCP\\Activity\\IEvent' => $baseDir . '/lib/public/Activity/IEvent.php', + 'OCP\\Activity\\IEventMerger' => $baseDir . '/lib/public/Activity/IEventMerger.php', 'OCP\\Activity\\IExtension' => $baseDir . '/lib/public/Activity/IExtension.php', + 'OCP\\Activity\\IFilter' => $baseDir . '/lib/public/Activity/IFilter.php', 'OCP\\Activity\\IManager' => $baseDir . '/lib/public/Activity/IManager.php', + 'OCP\\Activity\\IProvider' => $baseDir . '/lib/public/Activity/IProvider.php', + 'OCP\\Activity\\ISetting' => $baseDir . '/lib/public/Activity/ISetting.php', 'OCP\\App' => $baseDir . '/lib/public/App.php', 'OCP\\AppFramework\\ApiController' => $baseDir . '/lib/public/AppFramework/ApiController.php', 'OCP\\AppFramework\\App' => $baseDir . '/lib/public/AppFramework/App.php', @@ -47,10 +51,15 @@ return array( 'OCP\\AppFramework\\QueryException' => $baseDir . '/lib/public/AppFramework/QueryException.php', 'OCP\\AppFramework\\Utility\\IControllerMethodReflector' => $baseDir . '/lib/public/AppFramework/Utility/IControllerMethodReflector.php', 'OCP\\AppFramework\\Utility\\ITimeFactory' => $baseDir . '/lib/public/AppFramework/Utility/ITimeFactory.php', + 'OCP\\App\\AppPathNotFoundException' => $baseDir . '/lib/public/App/AppPathNotFoundException.php', 'OCP\\App\\IAppManager' => $baseDir . '/lib/public/App/IAppManager.php', 'OCP\\App\\ManagerEvent' => $baseDir . '/lib/public/App/ManagerEvent.php', + 'OCP\\Authentication\\Exceptions\\CredentialsUnavailableException' => $baseDir . '/lib/public/Authentication/Exceptions/CredentialsUnavailableException.php', 'OCP\\Authentication\\IApacheBackend' => $baseDir . '/lib/public/Authentication/IApacheBackend.php', + 'OCP\\Authentication\\LoginCredentials\\ICredentials' => $baseDir . '/lib/public/Authentication/LoginCredentials/ICredentials.php', + 'OCP\\Authentication\\LoginCredentials\\IStore' => $baseDir . '/lib/public/Authentication/LoginCredentials/IStore.php', 'OCP\\Authentication\\TwoFactorAuth\\IProvider' => $baseDir . '/lib/public/Authentication/TwoFactorAuth/IProvider.php', + 'OCP\\Authentication\\TwoFactorAuth\\TwoFactorException' => $baseDir . '/lib/public/Authentication/TwoFactorAuth/TwoFactorException.php', 'OCP\\AutoloadNotAllowedException' => $baseDir . '/lib/public/AutoloadNotAllowedException.php', 'OCP\\BackgroundJob' => $baseDir . '/lib/public/BackgroundJob.php', 'OCP\\BackgroundJob\\IJob' => $baseDir . '/lib/public/BackgroundJob/IJob.php', @@ -102,6 +111,7 @@ return array( 'OCP\\Files\\Config\\IMountProvider' => $baseDir . '/lib/public/Files/Config/IMountProvider.php', 'OCP\\Files\\Config\\IMountProviderCollection' => $baseDir . '/lib/public/Files/Config/IMountProviderCollection.php', 'OCP\\Files\\Config\\IUserMountCache' => $baseDir . '/lib/public/Files/Config/IUserMountCache.php', + 'OCP\\Files\\EmptyFileNameException' => $baseDir . '/lib/public/Files/EmptyFileNameException.php', 'OCP\\Files\\EntityTooLargeException' => $baseDir . '/lib/public/Files/EntityTooLargeException.php', 'OCP\\Files\\File' => $baseDir . '/lib/public/Files/File.php', 'OCP\\Files\\FileInfo' => $baseDir . '/lib/public/Files/FileInfo.php', @@ -115,6 +125,7 @@ return array( 'OCP\\Files\\IRootFolder' => $baseDir . '/lib/public/Files/IRootFolder.php', 'OCP\\Files\\InvalidCharacterInPathException' => $baseDir . '/lib/public/Files/InvalidCharacterInPathException.php', 'OCP\\Files\\InvalidContentException' => $baseDir . '/lib/public/Files/InvalidContentException.php', + 'OCP\\Files\\InvalidDirectoryException' => $baseDir . '/lib/public/Files/InvalidDirectoryException.php', 'OCP\\Files\\InvalidPathException' => $baseDir . '/lib/public/Files/InvalidPathException.php', 'OCP\\Files\\LockNotAcquiredException' => $baseDir . '/lib/public/Files/LockNotAcquiredException.php', 'OCP\\Files\\Mount\\IMountManager' => $baseDir . '/lib/public/Files/Mount/IMountManager.php', @@ -123,6 +134,9 @@ return array( 'OCP\\Files\\NotEnoughSpaceException' => $baseDir . '/lib/public/Files/NotEnoughSpaceException.php', 'OCP\\Files\\NotFoundException' => $baseDir . '/lib/public/Files/NotFoundException.php', 'OCP\\Files\\NotPermittedException' => $baseDir . '/lib/public/Files/NotPermittedException.php', + 'OCP\\Files\\Notify\\IChange' => $baseDir . '/lib/public/Files/Notify/IChange.php', + 'OCP\\Files\\Notify\\INotifyHandler' => $baseDir . '/lib/public/Files/Notify/INotifyHandler.php', + 'OCP\\Files\\Notify\\IRenameChange' => $baseDir . '/lib/public/Files/Notify/IRenameChange.php', 'OCP\\Files\\ObjectStore\\IObjectStore' => $baseDir . '/lib/public/Files/ObjectStore/IObjectStore.php', 'OCP\\Files\\ReservedWordException' => $baseDir . '/lib/public/Files/ReservedWordException.php', 'OCP\\Files\\SimpleFS\\ISimpleFile' => $baseDir . '/lib/public/Files/SimpleFS/ISimpleFile.php', @@ -157,7 +171,6 @@ return array( 'OCP\\IDBConnection' => $baseDir . '/lib/public/IDBConnection.php', 'OCP\\IDateTimeFormatter' => $baseDir . '/lib/public/IDateTimeFormatter.php', 'OCP\\IDateTimeZone' => $baseDir . '/lib/public/IDateTimeZone.php', - 'OCP\\IDb' => $baseDir . '/lib/public/IDb.php', 'OCP\\IEventSource' => $baseDir . '/lib/public/IEventSource.php', 'OCP\\IGroup' => $baseDir . '/lib/public/IGroup.php', 'OCP\\IGroupManager' => $baseDir . '/lib/public/IGroupManager.php', @@ -201,6 +214,7 @@ return array( 'OCP\\PreConditionNotMetException' => $baseDir . '/lib/public/PreConditionNotMetException.php', 'OCP\\Preview\\IProvider' => $baseDir . '/lib/public/Preview/IProvider.php', 'OCP\\Response' => $baseDir . '/lib/public/Response.php', + 'OCP\\RichObjectStrings\\Definitions' => $baseDir . '/lib/public/RichObjectStrings/Definitions.php', 'OCP\\RichObjectStrings\\IValidator' => $baseDir . '/lib/public/RichObjectStrings/IValidator.php', 'OCP\\RichObjectStrings\\InvalidObjectExeption' => $baseDir . '/lib/public/RichObjectStrings/InvalidObjectExeption.php', 'OCP\\Route\\IRoute' => $baseDir . '/lib/public/Route/IRoute.php', @@ -217,6 +231,7 @@ return array( 'OCP\\Security\\ISecureRandom' => $baseDir . '/lib/public/Security/ISecureRandom.php', 'OCP\\Security\\StringUtils' => $baseDir . '/lib/public/Security/StringUtils.php', 'OCP\\Session\\Exceptions\\SessionNotAvailableException' => $baseDir . '/lib/public/Session/Exceptions/SessionNotAvailableException.php', + 'OCP\\Settings\\IIconSection' => $baseDir . '/lib/public/Settings/IIconSection.php', 'OCP\\Settings\\IManager' => $baseDir . '/lib/public/Settings/IManager.php', 'OCP\\Settings\\ISection' => $baseDir . '/lib/public/Settings/ISection.php', 'OCP\\Settings\\ISettings' => $baseDir . '/lib/public/Settings/ISettings.php', @@ -247,13 +262,17 @@ return array( 'OCP\\WorkflowEngine\\ICheck' => $baseDir . '/lib/public/WorkflowEngine/ICheck.php', 'OCP\\WorkflowEngine\\IManager' => $baseDir . '/lib/public/WorkflowEngine/IManager.php', 'OCP\\WorkflowEngine\\IOperation' => $baseDir . '/lib/public/WorkflowEngine/IOperation.php', + 'OC\\Accounts\\AccountManager' => $baseDir . '/lib/private/Accounts/AccountManager.php', + 'OC\\Accounts\\Hooks' => $baseDir . '/lib/private/Accounts/Hooks.php', 'OC\\Activity\\Event' => $baseDir . '/lib/private/Activity/Event.php', + 'OC\\Activity\\EventMerger' => $baseDir . '/lib/private/Activity/EventMerger.php', + 'OC\\Activity\\LegacyFilter' => $baseDir . '/lib/private/Activity/LegacyFilter.php', + 'OC\\Activity\\LegacySetting' => $baseDir . '/lib/private/Activity/LegacySetting.php', 'OC\\Activity\\Manager' => $baseDir . '/lib/private/Activity/Manager.php', 'OC\\AllConfig' => $baseDir . '/lib/private/AllConfig.php', 'OC\\AppConfig' => $baseDir . '/lib/private/AppConfig.php', 'OC\\AppFramework\\App' => $baseDir . '/lib/private/AppFramework/App.php', 'OC\\AppFramework\\Core\\API' => $baseDir . '/lib/private/AppFramework/Core/API.php', - 'OC\\AppFramework\\Db\\Db' => $baseDir . '/lib/private/AppFramework/Db/Db.php', 'OC\\AppFramework\\DependencyInjection\\DIContainer' => $baseDir . '/lib/private/AppFramework/DependencyInjection/DIContainer.php', 'OC\\AppFramework\\Http' => $baseDir . '/lib/private/AppFramework/Http.php', 'OC\\AppFramework\\Http\\Dispatcher' => $baseDir . '/lib/private/AppFramework/Http/Dispatcher.php', @@ -308,6 +327,8 @@ return array( 'OC\\Authentication\\Exceptions\\PasswordlessTokenException' => $baseDir . '/lib/private/Authentication/Exceptions/PasswordlessTokenException.php', 'OC\\Authentication\\Exceptions\\TwoFactorAuthRequiredException' => $baseDir . '/lib/private/Authentication/Exceptions/TwoFactorAuthRequiredException.php', 'OC\\Authentication\\Exceptions\\UserAlreadyLoggedInException' => $baseDir . '/lib/private/Authentication/Exceptions/UserAlreadyLoggedInException.php', + 'OC\\Authentication\\LoginCredentials\\Credentials' => $baseDir . '/lib/private/Authentication/LoginCredentials/Credentials.php', + 'OC\\Authentication\\LoginCredentials\\Store' => $baseDir . '/lib/private/Authentication/LoginCredentials/Store.php', 'OC\\Authentication\\Token\\DefaultToken' => $baseDir . '/lib/private/Authentication/Token/DefaultToken.php', 'OC\\Authentication\\Token\\DefaultTokenCleanupJob' => $baseDir . '/lib/private/Authentication/Token/DefaultTokenCleanupJob.php', 'OC\\Authentication\\Token\\DefaultTokenMapper' => $baseDir . '/lib/private/Authentication/Token/DefaultTokenMapper.php', @@ -409,6 +430,7 @@ return array( 'OC\\Core\\Command\\User\\ResetPassword' => $baseDir . '/core/Command/User/ResetPassword.php', 'OC\\Core\\Command\\User\\Setting' => $baseDir . '/core/Command/User/Setting.php', 'OC\\Core\\Controller\\AvatarController' => $baseDir . '/core/Controller/AvatarController.php', + 'OC\\Core\\Controller\\CssController' => $baseDir . '/core/Controller/CssController.php', 'OC\\Core\\Controller\\LoginController' => $baseDir . '/core/Controller/LoginController.php', 'OC\\Core\\Controller\\LostController' => $baseDir . '/core/Controller/LostController.php', 'OC\\Core\\Controller\\OCJSController' => $baseDir . '/core/Controller/OCJSController.php', @@ -513,10 +535,15 @@ return array( 'OC\\Files\\Node\\NonExistingFile' => $baseDir . '/lib/private/Files/Node/NonExistingFile.php', 'OC\\Files\\Node\\NonExistingFolder' => $baseDir . '/lib/private/Files/Node/NonExistingFolder.php', 'OC\\Files\\Node\\Root' => $baseDir . '/lib/private/Files/Node/Root.php', + 'OC\\Files\\Notify\\Change' => $baseDir . '/lib/private/Files/Notify/Change.php', + 'OC\\Files\\Notify\\RenameChange' => $baseDir . '/lib/private/Files/Notify/RenameChange.php', 'OC\\Files\\ObjectStore\\HomeObjectStoreStorage' => $baseDir . '/lib/private/Files/ObjectStore/HomeObjectStoreStorage.php', 'OC\\Files\\ObjectStore\\Mapper' => $baseDir . '/lib/private/Files/ObjectStore/Mapper.php', 'OC\\Files\\ObjectStore\\NoopScanner' => $baseDir . '/lib/private/Files/ObjectStore/NoopScanner.php', 'OC\\Files\\ObjectStore\\ObjectStoreStorage' => $baseDir . '/lib/private/Files/ObjectStore/ObjectStoreStorage.php', + 'OC\\Files\\ObjectStore\\S3' => $baseDir . '/lib/private/Files/ObjectStore/S3.php', + 'OC\\Files\\ObjectStore\\S3ConnectionTrait' => $baseDir . '/lib/private/Files/ObjectStore/S3ConnectionTrait.php', + 'OC\\Files\\ObjectStore\\StorageObjectStore' => $baseDir . '/lib/private/Files/ObjectStore/StorageObjectStore.php', 'OC\\Files\\ObjectStore\\Swift' => $baseDir . '/lib/private/Files/ObjectStore/Swift.php', 'OC\\Files\\SimpleFS\\SimpleFile' => $baseDir . '/lib/private/Files/SimpleFS/SimpleFile.php', 'OC\\Files\\SimpleFS\\SimpleFolder' => $baseDir . '/lib/private/Files/SimpleFS/SimpleFolder.php', @@ -539,11 +566,8 @@ return array( 'OC\\Files\\Storage\\Wrapper\\PermissionsMask' => $baseDir . '/lib/private/Files/Storage/Wrapper/PermissionsMask.php', 'OC\\Files\\Storage\\Wrapper\\Quota' => $baseDir . '/lib/private/Files/Storage/Wrapper/Quota.php', 'OC\\Files\\Storage\\Wrapper\\Wrapper' => $baseDir . '/lib/private/Files/Storage/Wrapper/Wrapper.php', - 'OC\\Files\\Stream\\Close' => $baseDir . '/lib/private/Files/Stream/Close.php', - 'OC\\Files\\Stream\\Dir' => $baseDir . '/lib/private/Files/Stream/Dir.php', 'OC\\Files\\Stream\\Encryption' => $baseDir . '/lib/private/Files/Stream/Encryption.php', 'OC\\Files\\Stream\\Quota' => $baseDir . '/lib/private/Files/Stream/Quota.php', - 'OC\\Files\\Stream\\StaticStream' => $baseDir . '/lib/private/Files/Stream/StaticStream.php', 'OC\\Files\\Type\\Detection' => $baseDir . '/lib/private/Files/Type/Detection.php', 'OC\\Files\\Type\\Loader' => $baseDir . '/lib/private/Files/Type/Loader.php', 'OC\\Files\\Type\\TemplateManager' => $baseDir . '/lib/private/Files/Type/TemplateManager.php', @@ -593,7 +617,6 @@ return array( 'OC\\Log\\Syslog' => $baseDir . '/lib/private/Log/Syslog.php', 'OC\\Mail\\Mailer' => $baseDir . '/lib/private/Mail/Mailer.php', 'OC\\Mail\\Message' => $baseDir . '/lib/private/Mail/Message.php', - 'OC\\Memcache\\APC' => $baseDir . '/lib/private/Memcache/APC.php', 'OC\\Memcache\\APCu' => $baseDir . '/lib/private/Memcache/APCu.php', 'OC\\Memcache\\ArrayCache' => $baseDir . '/lib/private/Memcache/ArrayCache.php', 'OC\\Memcache\\CADTrait' => $baseDir . '/lib/private/Memcache/CADTrait.php', @@ -615,11 +638,9 @@ return array( 'OC\\Notification\\Notification' => $baseDir . '/lib/private/Notification/Notification.php', 'OC\\OCS\\CoreCapabilities' => $baseDir . '/lib/private/OCS/CoreCapabilities.php', 'OC\\OCS\\Exception' => $baseDir . '/lib/private/OCS/Exception.php', - 'OC\\OCS\\Person' => $baseDir . '/lib/private/OCS/Person.php', 'OC\\OCS\\PrivateData' => $baseDir . '/lib/private/OCS/PrivateData.php', 'OC\\OCS\\Provider' => $baseDir . '/lib/private/OCS/Provider.php', 'OC\\OCS\\Result' => $baseDir . '/lib/private/OCS/Result.php', - 'OC\\Preview' => $baseDir . '/lib/private/Preview.php', 'OC\\PreviewManager' => $baseDir . '/lib/private/PreviewManager.php', 'OC\\PreviewNotAvailableException' => $baseDir . '/lib/private/PreviewNotAvailableException.php', 'OC\\Preview\\BMP' => $baseDir . '/lib/private/Preview/BMP.php', @@ -655,7 +676,6 @@ return array( 'OC\\Repair' => $baseDir . '/lib/private/Repair.php', 'OC\\RepairException' => $baseDir . '/lib/private/RepairException.php', 'OC\\Repair\\AssetCache' => $baseDir . '/lib/private/Repair/AssetCache.php', - 'OC\\Repair\\AvatarPermissions' => $baseDir . '/lib/private/Repair/AvatarPermissions.php', 'OC\\Repair\\CleanTags' => $baseDir . '/lib/private/Repair/CleanTags.php', 'OC\\Repair\\Collation' => $baseDir . '/lib/private/Repair/Collation.php', 'OC\\Repair\\DropOldJobs' => $baseDir . '/lib/private/Repair/DropOldJobs.php', @@ -663,15 +683,17 @@ return array( 'OC\\Repair\\FillETags' => $baseDir . '/lib/private/Repair/FillETags.php', 'OC\\Repair\\InnoDB' => $baseDir . '/lib/private/Repair/InnoDB.php', 'OC\\Repair\\MoveUpdaterStepFile' => $baseDir . '/lib/private/Repair/MoveUpdaterStepFile.php', + 'OC\\Repair\\NC11\\CleanPreviews' => $baseDir . '/lib/private/Repair/NC11/CleanPreviews.php', + 'OC\\Repair\\NC11\\CleanPreviewsBackgroundJob' => $baseDir . '/lib/private/Repair/NC11/CleanPreviewsBackgroundJob.php', + 'OC\\Repair\\NC11\\FixMountStorages' => $baseDir . '/lib/private/Repair/NC11/FixMountStorages.php', 'OC\\Repair\\NC11\\MoveAvatars' => $baseDir . '/lib/private/Repair/NC11/MoveAvatars.php', - 'OC\\Repair\\NC11\\MoveAvatarsBackgroundJob' => $baseDir . '/lib/private/Repair/NC11/MoveAvatarBackgroundJob.php', + 'OC\\Repair\\NC11\\MoveAvatarsBackgroundJob' => $baseDir . '/lib/private/Repair/NC11/MoveAvatarsBackgroundJob.php', 'OC\\Repair\\OldGroupMembershipShares' => $baseDir . '/lib/private/Repair/OldGroupMembershipShares.php', 'OC\\Repair\\Preview' => $baseDir . '/lib/private/Repair/Preview.php', 'OC\\Repair\\RemoveGetETagEntries' => $baseDir . '/lib/private/Repair/RemoveGetETagEntries.php', 'OC\\Repair\\RemoveOldShares' => $baseDir . '/lib/private/Repair/RemoveOldShares.php', 'OC\\Repair\\RemoveRootShares' => $baseDir . '/lib/private/Repair/RemoveRootShares.php', 'OC\\Repair\\RepairInvalidShares' => $baseDir . '/lib/private/Repair/RepairInvalidShares.php', - 'OC\\Repair\\RepairLegacyStorages' => $baseDir . '/lib/private/Repair/RepairLegacyStorages.php', 'OC\\Repair\\RepairMimeTypes' => $baseDir . '/lib/private/Repair/RepairMimeTypes.php', 'OC\\Repair\\RepairUnmergedShares' => $baseDir . '/lib/private/Repair/RepairUnmergedShares.php', 'OC\\Repair\\SearchLuceneTables' => $baseDir . '/lib/private/Repair/SearchLuceneTables.php', @@ -702,6 +724,9 @@ return array( 'OC\\Security\\CredentialsManager' => $baseDir . '/lib/private/Security/CredentialsManager.php', 'OC\\Security\\Crypto' => $baseDir . '/lib/private/Security/Crypto.php', 'OC\\Security\\Hasher' => $baseDir . '/lib/private/Security/Hasher.php', + 'OC\\Security\\IdentityProof\\Key' => $baseDir . '/lib/private/Security/IdentityProof/Key.php', + 'OC\\Security\\IdentityProof\\Manager' => $baseDir . '/lib/private/Security/IdentityProof/Manager.php', + 'OC\\Security\\IdentityProof\\Signer' => $baseDir . '/lib/private/Security/IdentityProof/Signer.php', 'OC\\Security\\SecureRandom' => $baseDir . '/lib/private/Security/SecureRandom.php', 'OC\\Security\\TrustedDomainHelper' => $baseDir . '/lib/private/Security/TrustedDomainHelper.php', 'OC\\Server' => $baseDir . '/lib/private/Server.php', @@ -715,8 +740,8 @@ return array( 'OC\\Session\\Session' => $baseDir . '/lib/private/Session/Session.php', 'OC\\Settings\\Admin\\Additional' => $baseDir . '/lib/private/Settings/Admin/Additional.php', 'OC\\Settings\\Admin\\Encryption' => $baseDir . '/lib/private/Settings/Admin/Encryption.php', - 'OC\\Settings\\Admin\\Logging' => $baseDir . '/lib/private/Settings/Admin/Logging.php', 'OC\\Settings\\Admin\\Server' => $baseDir . '/lib/private/Settings/Admin/Server.php', + 'OC\\Settings\\Admin\\ServerDevNotice' => $baseDir . '/lib/private/Settings/Admin/ServerDevNotice.php', 'OC\\Settings\\Admin\\Sharing' => $baseDir . '/lib/private/Settings/Admin/Sharing.php', 'OC\\Settings\\Admin\\TipsTricks' => $baseDir . '/lib/private/Settings/Admin/TipsTricks.php', 'OC\\Settings\\Application' => $baseDir . '/settings/Application.php', @@ -730,9 +755,11 @@ return array( 'OC\\Settings\\Controller\\GroupsController' => $baseDir . '/settings/Controller/GroupsController.php', 'OC\\Settings\\Controller\\LogSettingsController' => $baseDir . '/settings/Controller/LogSettingsController.php', 'OC\\Settings\\Controller\\MailSettingsController' => $baseDir . '/settings/Controller/MailSettingsController.php', + 'OC\\Settings\\Controller\\PersonalController' => $baseDir . '/settings/Controller/PersonalController.php', 'OC\\Settings\\Controller\\SecuritySettingsController' => $baseDir . '/settings/Controller/SecuritySettingsController.php', 'OC\\Settings\\Controller\\UsersController' => $baseDir . '/settings/Controller/UsersController.php', 'OC\\Settings\\Manager' => $baseDir . '/lib/private/Settings/Manager.php', + 'OC\\Settings\\Mapper' => $baseDir . '/lib/private/Settings/Mapper.php', 'OC\\Settings\\Middleware\\SubadminMiddleware' => $baseDir . '/settings/Middleware/SubadminMiddleware.php', 'OC\\Settings\\RemoveOrphaned' => $baseDir . '/lib/private/Settings/RemoveOrphaned.php', 'OC\\Settings\\Section' => $baseDir . '/lib/private/Settings/Section.php', @@ -774,6 +801,7 @@ return array( 'OC\\Template\\JSResourceLocator' => $baseDir . '/lib/private/Template/JSResourceLocator.php', 'OC\\Template\\ResourceLocator' => $baseDir . '/lib/private/Template/ResourceLocator.php', 'OC\\Template\\ResourceNotFoundException' => $baseDir . '/lib/private/Template/ResourceNotFoundException.php', + 'OC\\Template\\SCSSCacher' => $baseDir . '/lib/private/Template/SCSSCacher.php', 'OC\\Template\\TemplateFileLocator' => $baseDir . '/lib/private/Template/TemplateFileLocator.php', 'OC\\URLGenerator' => $baseDir . '/lib/private/URLGenerator.php', 'OC\\Updater' => $baseDir . '/lib/private/Updater.php', diff --git a/lib/composer/composer/autoload_real.php b/lib/composer/composer/autoload_real.php index 43d676069541035bb86b716e1ba3b31df1dfc781..b9f89d16ad7b093f804014c17ab21c88f0a73a92 100644 --- a/lib/composer/composer/autoload_real.php +++ b/lib/composer/composer/autoload_real.php @@ -23,7 +23,7 @@ class ComposerAutoloaderInit53792487c5a8370acc0b06b1a864ff4c self::$loader = $loader = new \Composer\Autoload\ClassLoader(); spl_autoload_unregister(array('ComposerAutoloaderInit53792487c5a8370acc0b06b1a864ff4c', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION'); + $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'; diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index 5b8356785bc6c3349ae2e6a94036ddb2abf3b7e4..f8d360fec4bee0c29ceab42bb756c8851ffa14a8 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -39,8 +39,12 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OCP\\API' => __DIR__ . '/../../..' . '/lib/public/API.php', 'OCP\\Activity\\IConsumer' => __DIR__ . '/../../..' . '/lib/public/Activity/IConsumer.php', 'OCP\\Activity\\IEvent' => __DIR__ . '/../../..' . '/lib/public/Activity/IEvent.php', + 'OCP\\Activity\\IEventMerger' => __DIR__ . '/../../..' . '/lib/public/Activity/IEventMerger.php', 'OCP\\Activity\\IExtension' => __DIR__ . '/../../..' . '/lib/public/Activity/IExtension.php', + 'OCP\\Activity\\IFilter' => __DIR__ . '/../../..' . '/lib/public/Activity/IFilter.php', 'OCP\\Activity\\IManager' => __DIR__ . '/../../..' . '/lib/public/Activity/IManager.php', + 'OCP\\Activity\\IProvider' => __DIR__ . '/../../..' . '/lib/public/Activity/IProvider.php', + 'OCP\\Activity\\ISetting' => __DIR__ . '/../../..' . '/lib/public/Activity/ISetting.php', 'OCP\\App' => __DIR__ . '/../../..' . '/lib/public/App.php', 'OCP\\AppFramework\\ApiController' => __DIR__ . '/../../..' . '/lib/public/AppFramework/ApiController.php', 'OCP\\AppFramework\\App' => __DIR__ . '/../../..' . '/lib/public/AppFramework/App.php', @@ -77,10 +81,15 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OCP\\AppFramework\\QueryException' => __DIR__ . '/../../..' . '/lib/public/AppFramework/QueryException.php', 'OCP\\AppFramework\\Utility\\IControllerMethodReflector' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Utility/IControllerMethodReflector.php', 'OCP\\AppFramework\\Utility\\ITimeFactory' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Utility/ITimeFactory.php', + 'OCP\\App\\AppPathNotFoundException' => __DIR__ . '/../../..' . '/lib/public/App/AppPathNotFoundException.php', 'OCP\\App\\IAppManager' => __DIR__ . '/../../..' . '/lib/public/App/IAppManager.php', 'OCP\\App\\ManagerEvent' => __DIR__ . '/../../..' . '/lib/public/App/ManagerEvent.php', + 'OCP\\Authentication\\Exceptions\\CredentialsUnavailableException' => __DIR__ . '/../../..' . '/lib/public/Authentication/Exceptions/CredentialsUnavailableException.php', 'OCP\\Authentication\\IApacheBackend' => __DIR__ . '/../../..' . '/lib/public/Authentication/IApacheBackend.php', + 'OCP\\Authentication\\LoginCredentials\\ICredentials' => __DIR__ . '/../../..' . '/lib/public/Authentication/LoginCredentials/ICredentials.php', + 'OCP\\Authentication\\LoginCredentials\\IStore' => __DIR__ . '/../../..' . '/lib/public/Authentication/LoginCredentials/IStore.php', 'OCP\\Authentication\\TwoFactorAuth\\IProvider' => __DIR__ . '/../../..' . '/lib/public/Authentication/TwoFactorAuth/IProvider.php', + 'OCP\\Authentication\\TwoFactorAuth\\TwoFactorException' => __DIR__ . '/../../..' . '/lib/public/Authentication/TwoFactorAuth/TwoFactorException.php', 'OCP\\AutoloadNotAllowedException' => __DIR__ . '/../../..' . '/lib/public/AutoloadNotAllowedException.php', 'OCP\\BackgroundJob' => __DIR__ . '/../../..' . '/lib/public/BackgroundJob.php', 'OCP\\BackgroundJob\\IJob' => __DIR__ . '/../../..' . '/lib/public/BackgroundJob/IJob.php', @@ -132,6 +141,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OCP\\Files\\Config\\IMountProvider' => __DIR__ . '/../../..' . '/lib/public/Files/Config/IMountProvider.php', 'OCP\\Files\\Config\\IMountProviderCollection' => __DIR__ . '/../../..' . '/lib/public/Files/Config/IMountProviderCollection.php', 'OCP\\Files\\Config\\IUserMountCache' => __DIR__ . '/../../..' . '/lib/public/Files/Config/IUserMountCache.php', + 'OCP\\Files\\EmptyFileNameException' => __DIR__ . '/../../..' . '/lib/public/Files/EmptyFileNameException.php', 'OCP\\Files\\EntityTooLargeException' => __DIR__ . '/../../..' . '/lib/public/Files/EntityTooLargeException.php', 'OCP\\Files\\File' => __DIR__ . '/../../..' . '/lib/public/Files/File.php', 'OCP\\Files\\FileInfo' => __DIR__ . '/../../..' . '/lib/public/Files/FileInfo.php', @@ -145,6 +155,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OCP\\Files\\IRootFolder' => __DIR__ . '/../../..' . '/lib/public/Files/IRootFolder.php', 'OCP\\Files\\InvalidCharacterInPathException' => __DIR__ . '/../../..' . '/lib/public/Files/InvalidCharacterInPathException.php', 'OCP\\Files\\InvalidContentException' => __DIR__ . '/../../..' . '/lib/public/Files/InvalidContentException.php', + 'OCP\\Files\\InvalidDirectoryException' => __DIR__ . '/../../..' . '/lib/public/Files/InvalidDirectoryException.php', 'OCP\\Files\\InvalidPathException' => __DIR__ . '/../../..' . '/lib/public/Files/InvalidPathException.php', 'OCP\\Files\\LockNotAcquiredException' => __DIR__ . '/../../..' . '/lib/public/Files/LockNotAcquiredException.php', 'OCP\\Files\\Mount\\IMountManager' => __DIR__ . '/../../..' . '/lib/public/Files/Mount/IMountManager.php', @@ -153,6 +164,9 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OCP\\Files\\NotEnoughSpaceException' => __DIR__ . '/../../..' . '/lib/public/Files/NotEnoughSpaceException.php', 'OCP\\Files\\NotFoundException' => __DIR__ . '/../../..' . '/lib/public/Files/NotFoundException.php', 'OCP\\Files\\NotPermittedException' => __DIR__ . '/../../..' . '/lib/public/Files/NotPermittedException.php', + 'OCP\\Files\\Notify\\IChange' => __DIR__ . '/../../..' . '/lib/public/Files/Notify/IChange.php', + 'OCP\\Files\\Notify\\INotifyHandler' => __DIR__ . '/../../..' . '/lib/public/Files/Notify/INotifyHandler.php', + 'OCP\\Files\\Notify\\IRenameChange' => __DIR__ . '/../../..' . '/lib/public/Files/Notify/IRenameChange.php', 'OCP\\Files\\ObjectStore\\IObjectStore' => __DIR__ . '/../../..' . '/lib/public/Files/ObjectStore/IObjectStore.php', 'OCP\\Files\\ReservedWordException' => __DIR__ . '/../../..' . '/lib/public/Files/ReservedWordException.php', 'OCP\\Files\\SimpleFS\\ISimpleFile' => __DIR__ . '/../../..' . '/lib/public/Files/SimpleFS/ISimpleFile.php', @@ -187,7 +201,6 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OCP\\IDBConnection' => __DIR__ . '/../../..' . '/lib/public/IDBConnection.php', 'OCP\\IDateTimeFormatter' => __DIR__ . '/../../..' . '/lib/public/IDateTimeFormatter.php', 'OCP\\IDateTimeZone' => __DIR__ . '/../../..' . '/lib/public/IDateTimeZone.php', - 'OCP\\IDb' => __DIR__ . '/../../..' . '/lib/public/IDb.php', 'OCP\\IEventSource' => __DIR__ . '/../../..' . '/lib/public/IEventSource.php', 'OCP\\IGroup' => __DIR__ . '/../../..' . '/lib/public/IGroup.php', 'OCP\\IGroupManager' => __DIR__ . '/../../..' . '/lib/public/IGroupManager.php', @@ -231,6 +244,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OCP\\PreConditionNotMetException' => __DIR__ . '/../../..' . '/lib/public/PreConditionNotMetException.php', 'OCP\\Preview\\IProvider' => __DIR__ . '/../../..' . '/lib/public/Preview/IProvider.php', 'OCP\\Response' => __DIR__ . '/../../..' . '/lib/public/Response.php', + 'OCP\\RichObjectStrings\\Definitions' => __DIR__ . '/../../..' . '/lib/public/RichObjectStrings/Definitions.php', 'OCP\\RichObjectStrings\\IValidator' => __DIR__ . '/../../..' . '/lib/public/RichObjectStrings/IValidator.php', 'OCP\\RichObjectStrings\\InvalidObjectExeption' => __DIR__ . '/../../..' . '/lib/public/RichObjectStrings/InvalidObjectExeption.php', 'OCP\\Route\\IRoute' => __DIR__ . '/../../..' . '/lib/public/Route/IRoute.php', @@ -247,6 +261,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OCP\\Security\\ISecureRandom' => __DIR__ . '/../../..' . '/lib/public/Security/ISecureRandom.php', 'OCP\\Security\\StringUtils' => __DIR__ . '/../../..' . '/lib/public/Security/StringUtils.php', 'OCP\\Session\\Exceptions\\SessionNotAvailableException' => __DIR__ . '/../../..' . '/lib/public/Session/Exceptions/SessionNotAvailableException.php', + 'OCP\\Settings\\IIconSection' => __DIR__ . '/../../..' . '/lib/public/Settings/IIconSection.php', 'OCP\\Settings\\IManager' => __DIR__ . '/../../..' . '/lib/public/Settings/IManager.php', 'OCP\\Settings\\ISection' => __DIR__ . '/../../..' . '/lib/public/Settings/ISection.php', 'OCP\\Settings\\ISettings' => __DIR__ . '/../../..' . '/lib/public/Settings/ISettings.php', @@ -277,13 +292,17 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OCP\\WorkflowEngine\\ICheck' => __DIR__ . '/../../..' . '/lib/public/WorkflowEngine/ICheck.php', 'OCP\\WorkflowEngine\\IManager' => __DIR__ . '/../../..' . '/lib/public/WorkflowEngine/IManager.php', 'OCP\\WorkflowEngine\\IOperation' => __DIR__ . '/../../..' . '/lib/public/WorkflowEngine/IOperation.php', + 'OC\\Accounts\\AccountManager' => __DIR__ . '/../../..' . '/lib/private/Accounts/AccountManager.php', + 'OC\\Accounts\\Hooks' => __DIR__ . '/../../..' . '/lib/private/Accounts/Hooks.php', 'OC\\Activity\\Event' => __DIR__ . '/../../..' . '/lib/private/Activity/Event.php', + 'OC\\Activity\\EventMerger' => __DIR__ . '/../../..' . '/lib/private/Activity/EventMerger.php', + 'OC\\Activity\\LegacyFilter' => __DIR__ . '/../../..' . '/lib/private/Activity/LegacyFilter.php', + 'OC\\Activity\\LegacySetting' => __DIR__ . '/../../..' . '/lib/private/Activity/LegacySetting.php', 'OC\\Activity\\Manager' => __DIR__ . '/../../..' . '/lib/private/Activity/Manager.php', 'OC\\AllConfig' => __DIR__ . '/../../..' . '/lib/private/AllConfig.php', 'OC\\AppConfig' => __DIR__ . '/../../..' . '/lib/private/AppConfig.php', 'OC\\AppFramework\\App' => __DIR__ . '/../../..' . '/lib/private/AppFramework/App.php', 'OC\\AppFramework\\Core\\API' => __DIR__ . '/../../..' . '/lib/private/AppFramework/Core/API.php', - 'OC\\AppFramework\\Db\\Db' => __DIR__ . '/../../..' . '/lib/private/AppFramework/Db/Db.php', 'OC\\AppFramework\\DependencyInjection\\DIContainer' => __DIR__ . '/../../..' . '/lib/private/AppFramework/DependencyInjection/DIContainer.php', 'OC\\AppFramework\\Http' => __DIR__ . '/../../..' . '/lib/private/AppFramework/Http.php', 'OC\\AppFramework\\Http\\Dispatcher' => __DIR__ . '/../../..' . '/lib/private/AppFramework/Http/Dispatcher.php', @@ -338,6 +357,8 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Authentication\\Exceptions\\PasswordlessTokenException' => __DIR__ . '/../../..' . '/lib/private/Authentication/Exceptions/PasswordlessTokenException.php', 'OC\\Authentication\\Exceptions\\TwoFactorAuthRequiredException' => __DIR__ . '/../../..' . '/lib/private/Authentication/Exceptions/TwoFactorAuthRequiredException.php', 'OC\\Authentication\\Exceptions\\UserAlreadyLoggedInException' => __DIR__ . '/../../..' . '/lib/private/Authentication/Exceptions/UserAlreadyLoggedInException.php', + 'OC\\Authentication\\LoginCredentials\\Credentials' => __DIR__ . '/../../..' . '/lib/private/Authentication/LoginCredentials/Credentials.php', + 'OC\\Authentication\\LoginCredentials\\Store' => __DIR__ . '/../../..' . '/lib/private/Authentication/LoginCredentials/Store.php', 'OC\\Authentication\\Token\\DefaultToken' => __DIR__ . '/../../..' . '/lib/private/Authentication/Token/DefaultToken.php', 'OC\\Authentication\\Token\\DefaultTokenCleanupJob' => __DIR__ . '/../../..' . '/lib/private/Authentication/Token/DefaultTokenCleanupJob.php', 'OC\\Authentication\\Token\\DefaultTokenMapper' => __DIR__ . '/../../..' . '/lib/private/Authentication/Token/DefaultTokenMapper.php', @@ -439,6 +460,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Core\\Command\\User\\ResetPassword' => __DIR__ . '/../../..' . '/core/Command/User/ResetPassword.php', 'OC\\Core\\Command\\User\\Setting' => __DIR__ . '/../../..' . '/core/Command/User/Setting.php', 'OC\\Core\\Controller\\AvatarController' => __DIR__ . '/../../..' . '/core/Controller/AvatarController.php', + 'OC\\Core\\Controller\\CssController' => __DIR__ . '/../../..' . '/core/Controller/CssController.php', 'OC\\Core\\Controller\\LoginController' => __DIR__ . '/../../..' . '/core/Controller/LoginController.php', 'OC\\Core\\Controller\\LostController' => __DIR__ . '/../../..' . '/core/Controller/LostController.php', 'OC\\Core\\Controller\\OCJSController' => __DIR__ . '/../../..' . '/core/Controller/OCJSController.php', @@ -543,10 +565,15 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Files\\Node\\NonExistingFile' => __DIR__ . '/../../..' . '/lib/private/Files/Node/NonExistingFile.php', 'OC\\Files\\Node\\NonExistingFolder' => __DIR__ . '/../../..' . '/lib/private/Files/Node/NonExistingFolder.php', 'OC\\Files\\Node\\Root' => __DIR__ . '/../../..' . '/lib/private/Files/Node/Root.php', + 'OC\\Files\\Notify\\Change' => __DIR__ . '/../../..' . '/lib/private/Files/Notify/Change.php', + 'OC\\Files\\Notify\\RenameChange' => __DIR__ . '/../../..' . '/lib/private/Files/Notify/RenameChange.php', 'OC\\Files\\ObjectStore\\HomeObjectStoreStorage' => __DIR__ . '/../../..' . '/lib/private/Files/ObjectStore/HomeObjectStoreStorage.php', 'OC\\Files\\ObjectStore\\Mapper' => __DIR__ . '/../../..' . '/lib/private/Files/ObjectStore/Mapper.php', 'OC\\Files\\ObjectStore\\NoopScanner' => __DIR__ . '/../../..' . '/lib/private/Files/ObjectStore/NoopScanner.php', 'OC\\Files\\ObjectStore\\ObjectStoreStorage' => __DIR__ . '/../../..' . '/lib/private/Files/ObjectStore/ObjectStoreStorage.php', + 'OC\\Files\\ObjectStore\\S3' => __DIR__ . '/../../..' . '/lib/private/Files/ObjectStore/S3.php', + 'OC\\Files\\ObjectStore\\S3ConnectionTrait' => __DIR__ . '/../../..' . '/lib/private/Files/ObjectStore/S3ConnectionTrait.php', + 'OC\\Files\\ObjectStore\\StorageObjectStore' => __DIR__ . '/../../..' . '/lib/private/Files/ObjectStore/StorageObjectStore.php', 'OC\\Files\\ObjectStore\\Swift' => __DIR__ . '/../../..' . '/lib/private/Files/ObjectStore/Swift.php', 'OC\\Files\\SimpleFS\\SimpleFile' => __DIR__ . '/../../..' . '/lib/private/Files/SimpleFS/SimpleFile.php', 'OC\\Files\\SimpleFS\\SimpleFolder' => __DIR__ . '/../../..' . '/lib/private/Files/SimpleFS/SimpleFolder.php', @@ -569,11 +596,8 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Files\\Storage\\Wrapper\\PermissionsMask' => __DIR__ . '/../../..' . '/lib/private/Files/Storage/Wrapper/PermissionsMask.php', 'OC\\Files\\Storage\\Wrapper\\Quota' => __DIR__ . '/../../..' . '/lib/private/Files/Storage/Wrapper/Quota.php', 'OC\\Files\\Storage\\Wrapper\\Wrapper' => __DIR__ . '/../../..' . '/lib/private/Files/Storage/Wrapper/Wrapper.php', - 'OC\\Files\\Stream\\Close' => __DIR__ . '/../../..' . '/lib/private/Files/Stream/Close.php', - 'OC\\Files\\Stream\\Dir' => __DIR__ . '/../../..' . '/lib/private/Files/Stream/Dir.php', 'OC\\Files\\Stream\\Encryption' => __DIR__ . '/../../..' . '/lib/private/Files/Stream/Encryption.php', 'OC\\Files\\Stream\\Quota' => __DIR__ . '/../../..' . '/lib/private/Files/Stream/Quota.php', - 'OC\\Files\\Stream\\StaticStream' => __DIR__ . '/../../..' . '/lib/private/Files/Stream/StaticStream.php', 'OC\\Files\\Type\\Detection' => __DIR__ . '/../../..' . '/lib/private/Files/Type/Detection.php', 'OC\\Files\\Type\\Loader' => __DIR__ . '/../../..' . '/lib/private/Files/Type/Loader.php', 'OC\\Files\\Type\\TemplateManager' => __DIR__ . '/../../..' . '/lib/private/Files/Type/TemplateManager.php', @@ -623,7 +647,6 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Log\\Syslog' => __DIR__ . '/../../..' . '/lib/private/Log/Syslog.php', 'OC\\Mail\\Mailer' => __DIR__ . '/../../..' . '/lib/private/Mail/Mailer.php', 'OC\\Mail\\Message' => __DIR__ . '/../../..' . '/lib/private/Mail/Message.php', - 'OC\\Memcache\\APC' => __DIR__ . '/../../..' . '/lib/private/Memcache/APC.php', 'OC\\Memcache\\APCu' => __DIR__ . '/../../..' . '/lib/private/Memcache/APCu.php', 'OC\\Memcache\\ArrayCache' => __DIR__ . '/../../..' . '/lib/private/Memcache/ArrayCache.php', 'OC\\Memcache\\CADTrait' => __DIR__ . '/../../..' . '/lib/private/Memcache/CADTrait.php', @@ -645,11 +668,9 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Notification\\Notification' => __DIR__ . '/../../..' . '/lib/private/Notification/Notification.php', 'OC\\OCS\\CoreCapabilities' => __DIR__ . '/../../..' . '/lib/private/OCS/CoreCapabilities.php', 'OC\\OCS\\Exception' => __DIR__ . '/../../..' . '/lib/private/OCS/Exception.php', - 'OC\\OCS\\Person' => __DIR__ . '/../../..' . '/lib/private/OCS/Person.php', 'OC\\OCS\\PrivateData' => __DIR__ . '/../../..' . '/lib/private/OCS/PrivateData.php', 'OC\\OCS\\Provider' => __DIR__ . '/../../..' . '/lib/private/OCS/Provider.php', 'OC\\OCS\\Result' => __DIR__ . '/../../..' . '/lib/private/OCS/Result.php', - 'OC\\Preview' => __DIR__ . '/../../..' . '/lib/private/Preview.php', 'OC\\PreviewManager' => __DIR__ . '/../../..' . '/lib/private/PreviewManager.php', 'OC\\PreviewNotAvailableException' => __DIR__ . '/../../..' . '/lib/private/PreviewNotAvailableException.php', 'OC\\Preview\\BMP' => __DIR__ . '/../../..' . '/lib/private/Preview/BMP.php', @@ -685,7 +706,6 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Repair' => __DIR__ . '/../../..' . '/lib/private/Repair.php', 'OC\\RepairException' => __DIR__ . '/../../..' . '/lib/private/RepairException.php', 'OC\\Repair\\AssetCache' => __DIR__ . '/../../..' . '/lib/private/Repair/AssetCache.php', - 'OC\\Repair\\AvatarPermissions' => __DIR__ . '/../../..' . '/lib/private/Repair/AvatarPermissions.php', 'OC\\Repair\\CleanTags' => __DIR__ . '/../../..' . '/lib/private/Repair/CleanTags.php', 'OC\\Repair\\Collation' => __DIR__ . '/../../..' . '/lib/private/Repair/Collation.php', 'OC\\Repair\\DropOldJobs' => __DIR__ . '/../../..' . '/lib/private/Repair/DropOldJobs.php', @@ -693,15 +713,17 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Repair\\FillETags' => __DIR__ . '/../../..' . '/lib/private/Repair/FillETags.php', 'OC\\Repair\\InnoDB' => __DIR__ . '/../../..' . '/lib/private/Repair/InnoDB.php', 'OC\\Repair\\MoveUpdaterStepFile' => __DIR__ . '/../../..' . '/lib/private/Repair/MoveUpdaterStepFile.php', + 'OC\\Repair\\NC11\\CleanPreviews' => __DIR__ . '/../../..' . '/lib/private/Repair/NC11/CleanPreviews.php', + 'OC\\Repair\\NC11\\CleanPreviewsBackgroundJob' => __DIR__ . '/../../..' . '/lib/private/Repair/NC11/CleanPreviewsBackgroundJob.php', + 'OC\\Repair\\NC11\\FixMountStorages' => __DIR__ . '/../../..' . '/lib/private/Repair/NC11/FixMountStorages.php', 'OC\\Repair\\NC11\\MoveAvatars' => __DIR__ . '/../../..' . '/lib/private/Repair/NC11/MoveAvatars.php', - 'OC\\Repair\\NC11\\MoveAvatarsBackgroundJob' => __DIR__ . '/../../..' . '/lib/private/Repair/NC11/MoveAvatarBackgroundJob.php', + 'OC\\Repair\\NC11\\MoveAvatarsBackgroundJob' => __DIR__ . '/../../..' . '/lib/private/Repair/NC11/MoveAvatarsBackgroundJob.php', 'OC\\Repair\\OldGroupMembershipShares' => __DIR__ . '/../../..' . '/lib/private/Repair/OldGroupMembershipShares.php', 'OC\\Repair\\Preview' => __DIR__ . '/../../..' . '/lib/private/Repair/Preview.php', 'OC\\Repair\\RemoveGetETagEntries' => __DIR__ . '/../../..' . '/lib/private/Repair/RemoveGetETagEntries.php', 'OC\\Repair\\RemoveOldShares' => __DIR__ . '/../../..' . '/lib/private/Repair/RemoveOldShares.php', 'OC\\Repair\\RemoveRootShares' => __DIR__ . '/../../..' . '/lib/private/Repair/RemoveRootShares.php', 'OC\\Repair\\RepairInvalidShares' => __DIR__ . '/../../..' . '/lib/private/Repair/RepairInvalidShares.php', - 'OC\\Repair\\RepairLegacyStorages' => __DIR__ . '/../../..' . '/lib/private/Repair/RepairLegacyStorages.php', 'OC\\Repair\\RepairMimeTypes' => __DIR__ . '/../../..' . '/lib/private/Repair/RepairMimeTypes.php', 'OC\\Repair\\RepairUnmergedShares' => __DIR__ . '/../../..' . '/lib/private/Repair/RepairUnmergedShares.php', 'OC\\Repair\\SearchLuceneTables' => __DIR__ . '/../../..' . '/lib/private/Repair/SearchLuceneTables.php', @@ -732,6 +754,9 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Security\\CredentialsManager' => __DIR__ . '/../../..' . '/lib/private/Security/CredentialsManager.php', 'OC\\Security\\Crypto' => __DIR__ . '/../../..' . '/lib/private/Security/Crypto.php', 'OC\\Security\\Hasher' => __DIR__ . '/../../..' . '/lib/private/Security/Hasher.php', + 'OC\\Security\\IdentityProof\\Key' => __DIR__ . '/../../..' . '/lib/private/Security/IdentityProof/Key.php', + 'OC\\Security\\IdentityProof\\Manager' => __DIR__ . '/../../..' . '/lib/private/Security/IdentityProof/Manager.php', + 'OC\\Security\\IdentityProof\\Signer' => __DIR__ . '/../../..' . '/lib/private/Security/IdentityProof/Signer.php', 'OC\\Security\\SecureRandom' => __DIR__ . '/../../..' . '/lib/private/Security/SecureRandom.php', 'OC\\Security\\TrustedDomainHelper' => __DIR__ . '/../../..' . '/lib/private/Security/TrustedDomainHelper.php', 'OC\\Server' => __DIR__ . '/../../..' . '/lib/private/Server.php', @@ -745,8 +770,8 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Session\\Session' => __DIR__ . '/../../..' . '/lib/private/Session/Session.php', 'OC\\Settings\\Admin\\Additional' => __DIR__ . '/../../..' . '/lib/private/Settings/Admin/Additional.php', 'OC\\Settings\\Admin\\Encryption' => __DIR__ . '/../../..' . '/lib/private/Settings/Admin/Encryption.php', - 'OC\\Settings\\Admin\\Logging' => __DIR__ . '/../../..' . '/lib/private/Settings/Admin/Logging.php', 'OC\\Settings\\Admin\\Server' => __DIR__ . '/../../..' . '/lib/private/Settings/Admin/Server.php', + 'OC\\Settings\\Admin\\ServerDevNotice' => __DIR__ . '/../../..' . '/lib/private/Settings/Admin/ServerDevNotice.php', 'OC\\Settings\\Admin\\Sharing' => __DIR__ . '/../../..' . '/lib/private/Settings/Admin/Sharing.php', 'OC\\Settings\\Admin\\TipsTricks' => __DIR__ . '/../../..' . '/lib/private/Settings/Admin/TipsTricks.php', 'OC\\Settings\\Application' => __DIR__ . '/../../..' . '/settings/Application.php', @@ -760,9 +785,11 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Settings\\Controller\\GroupsController' => __DIR__ . '/../../..' . '/settings/Controller/GroupsController.php', 'OC\\Settings\\Controller\\LogSettingsController' => __DIR__ . '/../../..' . '/settings/Controller/LogSettingsController.php', 'OC\\Settings\\Controller\\MailSettingsController' => __DIR__ . '/../../..' . '/settings/Controller/MailSettingsController.php', + 'OC\\Settings\\Controller\\PersonalController' => __DIR__ . '/../../..' . '/settings/Controller/PersonalController.php', 'OC\\Settings\\Controller\\SecuritySettingsController' => __DIR__ . '/../../..' . '/settings/Controller/SecuritySettingsController.php', 'OC\\Settings\\Controller\\UsersController' => __DIR__ . '/../../..' . '/settings/Controller/UsersController.php', 'OC\\Settings\\Manager' => __DIR__ . '/../../..' . '/lib/private/Settings/Manager.php', + 'OC\\Settings\\Mapper' => __DIR__ . '/../../..' . '/lib/private/Settings/Mapper.php', 'OC\\Settings\\Middleware\\SubadminMiddleware' => __DIR__ . '/../../..' . '/settings/Middleware/SubadminMiddleware.php', 'OC\\Settings\\RemoveOrphaned' => __DIR__ . '/../../..' . '/lib/private/Settings/RemoveOrphaned.php', 'OC\\Settings\\Section' => __DIR__ . '/../../..' . '/lib/private/Settings/Section.php', @@ -804,6 +831,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Template\\JSResourceLocator' => __DIR__ . '/../../..' . '/lib/private/Template/JSResourceLocator.php', 'OC\\Template\\ResourceLocator' => __DIR__ . '/../../..' . '/lib/private/Template/ResourceLocator.php', 'OC\\Template\\ResourceNotFoundException' => __DIR__ . '/../../..' . '/lib/private/Template/ResourceNotFoundException.php', + 'OC\\Template\\SCSSCacher' => __DIR__ . '/../../..' . '/lib/private/Template/SCSSCacher.php', 'OC\\Template\\TemplateFileLocator' => __DIR__ . '/../../..' . '/lib/private/Template/TemplateFileLocator.php', 'OC\\URLGenerator' => __DIR__ . '/../../..' . '/lib/private/URLGenerator.php', 'OC\\Updater' => __DIR__ . '/../../..' . '/lib/private/Updater.php', diff --git a/lib/l10n/bg_BG.js b/lib/l10n/bg_BG.js new file mode 100644 index 0000000000000000000000000000000000000000..955d4e68742e4af47801cd36064980d6de07516d --- /dev/null +++ b/lib/l10n/bg_BG.js @@ -0,0 +1,177 @@ +OC.L10N.register( + "lib", + { + "Cannot write into \"config\" directory!" : "Неуспешен опит за запис в \"config\" папката!", + "This can usually be fixed by giving the webserver write access to the config directory" : "Това може да бъде решено единствено като разрешиш на уеб сървъра да пише в config папката.", + "See %s" : "Вижте %s", + "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Това обикновено може да бъде оправено като %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", + "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s и %4$s", + "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s и %5$s", + "PHP %s or higher is required." : "Изисква се PHP %s или по-нова.", + "PHP with a version lower than %s is required." : "Необходим е PHP с версия по-ниска от %s.", + "Following databases are supported: %s" : "Следните бази данни са поддържани: %s", + "The command line tool %s could not be found" : "Конзолната команда %s не може да бъде намерена", + "The library %s is not available." : "Библиотеката %s не е налична", + "Library %s with a version higher than %s is required - available version %s." : "Необходима е библиотеката %s с версия по-висока от %s - налична версия %s. ", + "Library %s with a version lower than %s is required - available version %s." : "Необходима е библиотеката %s с версия по-ниска от %s - налична версия %s. ", + "Following platforms are supported: %s" : "Поддържани са следните платформи: %s", + "Unknown filetype" : "Непознат тип файл", + "Invalid image" : "Невалидно изображение.", + "today" : "днес", + "yesterday" : "вчера", + "_%n day ago_::_%n days ago_" : ["преди %n ден","преди %n дни"], + "last month" : "миналия месец", + "_%n month ago_::_%n months ago_" : ["преди %n месец","преди %n месеца"], + "last year" : "миналата година", + "_%n year ago_::_%n years ago_" : ["преди %n година","преди %n години"], + "_%n hour ago_::_%n hours ago_" : ["преди %n час","преди %n часа"], + "_%n minute ago_::_%n minutes ago_" : ["преди %n минута","преди %n минути"], + "seconds ago" : "преди секунди", + "File name contains at least one invalid character" : "Името на файла съдържа поне един невалиден символ", + "File name is too long" : "Името на файла е твърде дълго", + "APCu" : "APCu", + "Redis" : "Redis", + "Server settings" : "Настройки на сървъра", + "Sharing" : "Споделяне", + "Additional settings" : "Допълнителни настройки", + "%s enter the database username and name." : "%s въведете потребителско име и име за базата данни", + "%s enter the database username." : "%s въведете потребител за базата данни.", + "%s enter the database name." : "%s въведи име на базата данни.", + "%s you may not use dots in the database name" : "%s, не може да ползваш точки в името на базата данни.", + "Oracle username and/or password not valid" : "Невалидно Oracle потребителско име и/или парола.", + "DB Error: \"%s\"" : "Грешка в базата данни: \"%s\".", + "Offending command was: \"%s\"" : "Проблемната команда беше: \"%s\".", + "You need to enter either an existing account or the administrator." : "Необходимо е да въведеш съществуващ профил или като администратор.", + "Offending command was: \"%s\", name: %s, password: %s" : "Проблемната команда беше: \"%s\", име: %s, парола: %s.", + "PostgreSQL username and/or password not valid" : "Невалидно PostgreSQL потребителско име и/или парола.", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X не се подържа и %s няма да работи правилно на тази платформа. Използвайте го на свой собствен риск!", + "For the best results, please consider using a GNU/Linux server instead." : "За най-добри резултати, моля, помисли дали не бихте желали да използваште GNU/Linux сървър.", + "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Моля, премахтене настройката за open_basedir от вашия php.ini или преминете към 64-битово PHP.", + "Set an admin username." : "Задайте потребителско име за администратор.", + "Set an admin password." : "Задай парола за администратор.", + "Can't create or write into the data directory %s" : "Неуспешно създаване или записване в \"data\" папката %s", + "%s shared »%s« with you" : "%s сподели »%s« с теб", + "%s via %s" : "%s чрез %s", + "Sharing %s failed, because the backend does not allow shares from type %i" : "Неуспешно споделяне на %s , защото сървъра не позволява споделяне от тип $i.", + "Sharing %s failed, because the file does not exist" : "Неуспешно споделяне на %s, защото файлът не съществува.", + "You are not allowed to share %s" : "Не ти е разрешено да споделяш %s.", + "Sharing %s failed, because the user %s does not exist" : "Неуспешно споделяне на %s, защото потребител %s не съществува.", + "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Неуспешно споделяне на %s, защото %s не е член никоя от групите, в които е %s.", + "Sharing %s failed, because this item is already shared with %s" : "Неуспешно споделяне на %s, защото това съдържание е вече споделено с %s.", + "Sharing %s failed, because the group %s does not exist" : "Неупешно споделяне на %s, защото групата %s не съществува.", + "Sharing %s failed, because %s is not a member of the group %s" : "Неуспешно споделяне на %s, защото %s не е член на групата %s.", + "You need to provide a password to create a public link, only protected links are allowed" : "Трябва да зададеш парола, за да създадеш общодостъпен линк за споделяне, само защитени с пароли линкове са разрешени.", + "Sharing %s failed, because sharing with links is not allowed" : "Неуспешно споделяне на %s, защото споделянето посредством връзки не е разрешено.", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Неуспешно споделяне на на %s, не може бъде намерено %s. Може би сървъра в момента е недостъпен.", + "Share type %s is not valid for %s" : "Споделянето на тип %s не валидно за %s.", + "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Неуспешна промяна на правата за достъп за %s, защото промените надвишават правата на достъп дадени на %s.", + "Setting permissions for %s failed, because the item was not found" : "Неуспешна промяна на правата за достъп за %s, защото съдържанието не е открито.", + "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Неуспешно задаване на дата на изтичане. Споделни папки или файлове не могат да изтичат по-късно от %s след като са били споделени", + "Cannot set expiration date. Expiration date is in the past" : "Неуспешно задаване на дата на изтичане. Датата на изтичане е в миналото", + "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Споделянето на сървърния %s трябва да поддържа OCP\\Share_Backend интерфейс.", + "Sharing backend %s not found" : "Споделянето на сървърния %s не е открито.", + "Sharing backend for %s not found" : "Споделянето на сървъра за %s не е открито.", + "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Неуспешно споделяне на %s, защото промените надвишават правата на достъп дадени на %s.", + "Sharing %s failed, because resharing is not allowed" : "Неуспешно споделяне на %s, защото повторно споделяне не е разрешено.", + "Sharing %s failed, because the sharing backend for %s could not find its source" : "Неуспешно споделяне на %s, защото не е открит първоизточникът на %s, за да бъде споделяне по сървъра.", + "Sharing %s failed, because the file could not be found in the file cache" : "Неуспешно споделяне на %s, защото файлът не може да бъде намерен в кеша.", + "Could not find category \"%s\"" : "Невъзможно откриване на категорията \"%s\".", + "Sunday" : "неделя", + "Monday" : "понеделник", + "Tuesday" : "вторник", + "Wednesday" : "сряда", + "Thursday" : "четвъртък", + "Friday" : "петък", + "Saturday" : "събота", + "Sun." : "нед", + "Mon." : "пон", + "Tue." : "вт", + "Wed." : "ср", + "Thu." : "чет", + "Fri." : "пет", + "Sat." : "съб", + "Su" : "нд", + "Mo" : "пн", + "We" : "ср", + "Th" : "чт", + "Fr" : "пт", + "Sa" : "сб", + "January" : "януари", + "February" : "февруару", + "March" : "март", + "April" : "април", + "May" : "май", + "June" : "юни", + "July" : "юли", + "August" : "август", + "September" : "септември", + "October" : "октомври", + "November" : "ноември", + "December" : "декември", + "Jan." : "яну", + "Feb." : "фев", + "Mar." : "мар", + "Apr." : "апр", + "May." : "май", + "Jun." : "юни", + "Jul." : "юли", + "Aug." : "авг", + "Sep." : "сеп", + "Oct." : "окт", + "Nov." : "ное", + "Dec." : "дек", + "Apps" : "Приложения", + "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "Потребителските имена може да съдържат следните знаци: \"a-z\", \"A-Z\", \"0-9\" и \"_.@-'\"", + "A valid username must be provided" : "Трябва да въведете валидно потребителско.", + "Username contains whitespace at the beginning or at the end" : "Потребителското име започва или завършва с интервал.", + "A valid password must be provided" : "Трябва да въведете валидна парола.", + "The username is already being used" : "Потребителското име е вече заето.", + "Help" : "Помощ", + "Personal" : "Лични", + "Users" : "Потребители", + "Admin" : "Админ", + "No app name specified" : "Не е зададено име на преложението", + "a safe home for all your data" : "безопасен дом за всички ваши данни", + "Can't read file" : "Файлът не може да бъде прочетен", + "Application is not enabled" : "Приложението не е включено", + "Authentication error" : "Проблем с идентификацията", + "Token expired. Please reload page." : "Изтекла сесия. Моля, презареди страницата.", + "Unknown user" : "Непознат потребител", + "No database drivers (sqlite, mysql, or postgresql) installed." : "Липсват инсталирани драйвери за бази данни(sqlite, mysql или postgresql).", + "Cannot write into \"config\" directory" : "Неуспешен опит за запис в \"config\" папката.", + "Cannot write into \"apps\" directory" : "Писането в папка приложения не е възможно", + "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Това обикновено може да бъде оправено като %s даде разрешение на уеб сървъра да записва в app папката %s или като изключи магазина за приложения в config файла.", + "Cannot create \"data\" directory (%s)" : "Неуспешен опит за създаване на \"data\" папката (%s).", + "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Правата за достъп обикновено могат да бъдат оправени когато %s даде права на уеб сървъра да пише в root папката %s.", + "Setting locale to %s failed" : "Неуспешно задаване на %s като настройка език-държава.", + "Please install one of these locales on your system and restart your webserver." : "Моля, инсталирай едно от следните език-държава на сървъра и рестартирай уеб сървъра.", + "Please ask your server administrator to install the module." : "Моля, помолете вашия администратор да инсталира модула.", + "PHP module %s not installed." : "PHP модулът %s не е инсталиран.", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Това може да се дължи на cache/accelerator като Zend OPache или eAccelerator.", + "PHP modules have been installed, but they are still listed as missing?" : "PHP модулите са инсталирани, но все още се обявяват като липсващи?", + "Please ask your server administrator to restart the web server." : "Моля, поискай от своя администратор да рестартира уеб сървъра.", + "PostgreSQL >= 9 required" : "Изисква се PostgreSQL >= 9", + "Please upgrade your database version" : "Моля, обнови базата данни.", + "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Моля, променете правата за достъп на 0770, за да не може директорията да бъде видяна от други потребители.", + "Data directory (%s) is readable by other users" : "Data папката (%s) може да бъде разгледана от други потребители", + "Data directory (%s) is invalid" : "Data папката (%s) e невалидна", + "Please check that the data directory contains a file \".ocdata\" in its root." : "Моля, увери се, че data папката съдържа файл \".ocdata\" в себе си.", + "Could not obtain lock type %d on \"%s\"." : "Неуспешен опит за ексклузивен достъп от типa %d върху \"%s\".", + "App directory already exists" : "Папката на приложението вече съществува.", + "Can't create app folder. Please fix permissions. %s" : "Папката не може да бъде създадена. Моля, коригирайте правата. %s", + "No source specified when installing app" : "Не е посочен източник при инсталацията на приложението.", + "No href specified when installing app from http" : "Липсва съдържанието на връзката за инсталиране на приложението", + "No path specified when installing app from local file" : "Не е зададен пътя до локалния файл за инсталиране на приложението.", + "Archives of type %s are not supported" : "Архиви от тип %s не се подържат", + "Failed to open archive when installing app" : "Неуспешно отваряне на архив по време на инсталацията на приложението.", + "App does not provide an info.xml file" : "Приложенението не съдържа файла info.xml", + "App can't be installed because of not allowed code in the App" : "Приложението няма да бъде инсталирано, защото съдържа неразрешен код.", + "App can't be installed because it contains the
mbstring.func_overload
to 0
in your php.ini" : "Oprava problému spočíva v nastavení mbstring.func_overload
na 0
vo vašom php.ini",
+ "libxml2 2.7.0 is at least required. Currently %s is installed." : "Vyžadovaná verzia libxml2 je 2.7.0 a vyššia. Momentálne je nainštalovaná verzia %s.",
+ "To fix this issue update your libxml2 version and restart your web server." : "Pre vyriešenie tohto problému aktualizujte prosím verziu libxml2 a reštartujte webový server.",
+ "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.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP moduly boli nainštalované, ale stále sa tvária, že chýbajú?",
+ "Please ask your server administrator to restart the web server." : "Prosím, požiadajte administrátora vášho servera o reštartovanie webového servera.",
+ "PostgreSQL >= 9 required" : "Vyžadované PostgreSQL >= 9",
+ "Please upgrade your database version" : "Prosím, aktualizujte verziu svojej databázy",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Prosím, zmeňte oprávnenia na 0770, aby tento priečinok nemohli ostatní používatelia otvoriť.",
+ "Data directory (%s) is readable by other users" : "Priečinok dát (%s) je prístupný na čítanie ostatným používateľom",
+ "Data directory (%s) must be an absolute path" : "Priečinok dát (%s) musí byť zadaný ako absolútna cesta",
+ "Check the value of \"datadirectory\" in your configuration" : "Skontrolujte hodnotu \"datadirectory\" vo vašej konfigurácii",
+ "Data directory (%s) is invalid" : "Priečinok dát (%s) je neplatný",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Prosím, skontrolujte, či priečinok dát obsahuje súbor \".ocdata\".",
+ "Could not obtain lock type %d on \"%s\"." : "Nepodarilo sa získať zámok typu %d na „%s“.",
+ "4-byte characters are not supported in file names" : "V názve súbou nie sú podporované 4-bajtové znaky.",
+ "App directory already exists" : "Aplikačný priečinok už existuje",
+ "Can't create app folder. Please fix permissions. %s" : "Nemožno vytvoriť aplikačný priečinok. Prosím upravte povolenia. %s",
+ "Archive does not contain a directory named %s" : "Archív neobsahuje priečinok zvaný %s",
+ "No source specified when installing app" : "Nešpecifikovaný zdroj pri inštalácii aplikácie",
+ "No href specified when installing app from http" : "Nešpecifikovaný atribút \"href\" pri inštalácii aplikácie pomocou protokolu \"http\"",
+ "No path specified when installing app from local file" : "Nešpecifikovaná cesta pri inštalácii aplikácie z lokálneho súboru",
+ "Archives of type %s are not supported" : "Tento typ archívu %s nie je podporovaný",
+ "Failed to open archive when installing app" : "Zlyhanie pri otváraní archívu počas inštalácie aplikácie",
+ "App does not provide an info.xml file" : "Aplikácia neposkytuje súbor info.xml",
+ "App cannot be installed because appinfo file cannot be read." : "Aplikáciu nie je možné nainštalovať, lebo nebolo možné načítať súbor s informáciami o aplikácií.",
+ "Signature could not get checked. Please contact the app developer and check your admin screen." : "Nebolo možné skontrolovať podpis aplikácie. Kontaktujte prosím vývojára aplikácie a skontrolujte administrátorské nastavenia.",
+ "App can't be installed because of not allowed code in the App" : "Aplikácia nemôže byť nainštalovaná pre nepovolený kód v aplikácii",
+ "App can't be installed because it is not compatible with this version of the server" : "Aplikácia nie je kompatibilná s verziou servera, preto nemôže byť nainštalovaná",
+ "App can't be installed because it contains the mbstring.func_overload
to 0
in your php.ini" : "Oprava problému spočíva v nastavení mbstring.func_overload
na 0
vo vašom php.ini",
+ "libxml2 2.7.0 is at least required. Currently %s is installed." : "Vyžadovaná verzia libxml2 je 2.7.0 a vyššia. Momentálne je nainštalovaná verzia %s.",
+ "To fix this issue update your libxml2 version and restart your web server." : "Pre vyriešenie tohto problému aktualizujte prosím verziu libxml2 a reštartujte webový server.",
+ "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.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP moduly boli nainštalované, ale stále sa tvária, že chýbajú?",
+ "Please ask your server administrator to restart the web server." : "Prosím, požiadajte administrátora vášho servera o reštartovanie webového servera.",
+ "PostgreSQL >= 9 required" : "Vyžadované PostgreSQL >= 9",
+ "Please upgrade your database version" : "Prosím, aktualizujte verziu svojej databázy",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Prosím, zmeňte oprávnenia na 0770, aby tento priečinok nemohli ostatní používatelia otvoriť.",
+ "Data directory (%s) is readable by other users" : "Priečinok dát (%s) je prístupný na čítanie ostatným používateľom",
+ "Data directory (%s) must be an absolute path" : "Priečinok dát (%s) musí byť zadaný ako absolútna cesta",
+ "Check the value of \"datadirectory\" in your configuration" : "Skontrolujte hodnotu \"datadirectory\" vo vašej konfigurácii",
+ "Data directory (%s) is invalid" : "Priečinok dát (%s) je neplatný",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Prosím, skontrolujte, či priečinok dát obsahuje súbor \".ocdata\".",
+ "Could not obtain lock type %d on \"%s\"." : "Nepodarilo sa získať zámok typu %d na „%s“.",
+ "4-byte characters are not supported in file names" : "V názve súbou nie sú podporované 4-bajtové znaky.",
+ "App directory already exists" : "Aplikačný priečinok už existuje",
+ "Can't create app folder. Please fix permissions. %s" : "Nemožno vytvoriť aplikačný priečinok. Prosím upravte povolenia. %s",
+ "Archive does not contain a directory named %s" : "Archív neobsahuje priečinok zvaný %s",
+ "No source specified when installing app" : "Nešpecifikovaný zdroj pri inštalácii aplikácie",
+ "No href specified when installing app from http" : "Nešpecifikovaný atribút \"href\" pri inštalácii aplikácie pomocou protokolu \"http\"",
+ "No path specified when installing app from local file" : "Nešpecifikovaná cesta pri inštalácii aplikácie z lokálneho súboru",
+ "Archives of type %s are not supported" : "Tento typ archívu %s nie je podporovaný",
+ "Failed to open archive when installing app" : "Zlyhanie pri otváraní archívu počas inštalácie aplikácie",
+ "App does not provide an info.xml file" : "Aplikácia neposkytuje súbor info.xml",
+ "App cannot be installed because appinfo file cannot be read." : "Aplikáciu nie je možné nainštalovať, lebo nebolo možné načítať súbor s informáciami o aplikácií.",
+ "Signature could not get checked. Please contact the app developer and check your admin screen." : "Nebolo možné skontrolovať podpis aplikácie. Kontaktujte prosím vývojára aplikácie a skontrolujte administrátorské nastavenia.",
+ "App can't be installed because of not allowed code in the App" : "Aplikácia nemôže byť nainštalovaná pre nepovolený kód v aplikácii",
+ "App can't be installed because it is not compatible with this version of the server" : "Aplikácia nie je kompatibilná s verziou servera, preto nemôže byť nainštalovaná",
+ "App can't be installed because it contains the mbstring.func_overload
to 0
in your php.ini" : "Për ta ndrequr këtë problem, caktoni për mbstring.func_overload
vlerën 0
te php.ini juaj",
+ "libxml2 2.7.0 is at least required. Currently %s is installed." : "Lypset të paktën libxml2 2.7.0. Hëpërhë e instaluar është %s.",
+ "To fix this issue update your libxml2 version and restart your web server." : "Për të ndrequr këtë problem, përditësoni libxml2 dhe rinisni shërbyesin tuaj web.",
+ "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Me sa duket, PHP-ja është rregulluar që të heqë blloqe të brendshëm dokumentimi. Kjo do t’i nxjerrë nga funksionimi disa aplikacione bazë.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Kjo ka gjasa të jetë shkaktuar nga një fshehtinë/përshpejtues i tillë si Zend OPcache ose eAccelerator.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Modulet PHP janë instaluar, por tregohen ende sikur mungojnë?",
+ "Please ask your server administrator to restart the web server." : "Ju lutemi, kërkojini përgjegjësit të shërbyesit tuaj të rinisë shërbyesin web.",
+ "PostgreSQL >= 9 required" : "Lypset PostgreSQL >= 9",
+ "Please upgrade your database version" : "Ju lutemi, përmirësoni bazën tuaj të të dhënave me një version më të ri.",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Ju lutemi, kalojani lejet në 0770, që kështu atë drejtori të mos mund ta shfaqin përdorues të tjerë.",
+ "Data directory (%s) is readable by other users" : "Drejtoria e të dhënave (%s) është e lexueshme nga përdorues të tjerë",
+ "Data directory (%s) must be an absolute path" : "Drejtoria e të dhënave (%s) duhet të jepë një shteg absolut",
+ "Check the value of \"datadirectory\" in your configuration" : "Kontrolloni vlerën e \"datadirectory\" te formësimi juaj",
+ "Data directory (%s) is invalid" : "Drejtoria e të dhënave (%s) është e pavlefshme",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Ju lutemi, kontrolloni që drejtoria e të dhënave përmban në rrënjën e saj një kartelë \".ocdata\".",
+ "Could not obtain lock type %d on \"%s\"." : "S’u mor dot lloj kyçjeje %d në \"%s\".",
+ "Storage unauthorized. %s" : "Depozitë e paautorizuar. %s",
+ "Storage incomplete configuration. %s" : "Formësim jo i plotë i depozitës. %s",
+ "Storage connection error. %s" : "Gabim lidhje te depozita. %s",
+ "Storage is temporarily not available" : "Hapsira ruajtëse nuk është në dispozicion përkohësisht",
+ "Storage connection timeout. %s" : "Mbarim kohe lidhjeje për depozitën. %s",
+ "4-byte characters are not supported in file names" : "Shenjat 4-bajtshe nuk mbulohet në emra kartelash",
+ "App directory already exists" : "Drejtoria e aplikacionit ekziston tashmë",
+ "Can't create app folder. Please fix permissions. %s" : "S’krijohet dot dosje aplikacioni. Ju lutemi, ndreqni lejet. %s",
+ "Archive does not contain a directory named %s" : "Arkivi s’përmban një drejtori të quajtur %s",
+ "No source specified when installing app" : "S’u dha burim gjatë instalimit të aplikacionit",
+ "No href specified when installing app from http" : "S’u tregua href gjatë instalimit të aplikacionit nga http",
+ "No path specified when installing app from local file" : "S’u caktua shteg gjatë instalimit të aplikacionit prej kartele vendore",
+ "Archives of type %s are not supported" : "Nuk mbulohen arkivat e llojit %s",
+ "Failed to open archive when installing app" : "Dështoi në hapje arkivi teksa instalohej aplikacioni",
+ "App does not provide an info.xml file" : "Aplikacioni s’ofron kartele të vlefshme .xml",
+ "App cannot be installed because appinfo file cannot be read." : "Aplikacioni s’mund të instalohet, ngaqë s’lexohet dot kartela appinfo.",
+ "Signature could not get checked. Please contact the app developer and check your admin screen." : "Nënshkrimi s’u kontrollua dot. Ju lutemi, lidhuni me zhvilluesin e aplikacionit dhe kontrolloni te skena juaj e përgjegjësit.",
+ "App can't be installed because of not allowed code in the App" : "Aplikacioni s’mund të instalohet, për shkak kodi të palejuar te Aplikacioni",
+ "App can't be installed because it is not compatible with this version of the server" : "Aplikacioni nuk mund të instalohet sepse nuk përputhet me këtë version të serverit.",
+ "App can't be installed because it contains the mbstring.func_overload
to 0
in your php.ini" : "Për ta ndrequr këtë problem, caktoni për mbstring.func_overload
vlerën 0
te php.ini juaj",
+ "libxml2 2.7.0 is at least required. Currently %s is installed." : "Lypset të paktën libxml2 2.7.0. Hëpërhë e instaluar është %s.",
+ "To fix this issue update your libxml2 version and restart your web server." : "Për të ndrequr këtë problem, përditësoni libxml2 dhe rinisni shërbyesin tuaj web.",
+ "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Me sa duket, PHP-ja është rregulluar që të heqë blloqe të brendshëm dokumentimi. Kjo do t’i nxjerrë nga funksionimi disa aplikacione bazë.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Kjo ka gjasa të jetë shkaktuar nga një fshehtinë/përshpejtues i tillë si Zend OPcache ose eAccelerator.",
+ "PHP modules have been installed, but they are still listed as missing?" : "Modulet PHP janë instaluar, por tregohen ende sikur mungojnë?",
+ "Please ask your server administrator to restart the web server." : "Ju lutemi, kërkojini përgjegjësit të shërbyesit tuaj të rinisë shërbyesin web.",
+ "PostgreSQL >= 9 required" : "Lypset PostgreSQL >= 9",
+ "Please upgrade your database version" : "Ju lutemi, përmirësoni bazën tuaj të të dhënave me një version më të ri.",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Ju lutemi, kalojani lejet në 0770, që kështu atë drejtori të mos mund ta shfaqin përdorues të tjerë.",
+ "Data directory (%s) is readable by other users" : "Drejtoria e të dhënave (%s) është e lexueshme nga përdorues të tjerë",
+ "Data directory (%s) must be an absolute path" : "Drejtoria e të dhënave (%s) duhet të jepë një shteg absolut",
+ "Check the value of \"datadirectory\" in your configuration" : "Kontrolloni vlerën e \"datadirectory\" te formësimi juaj",
+ "Data directory (%s) is invalid" : "Drejtoria e të dhënave (%s) është e pavlefshme",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Ju lutemi, kontrolloni që drejtoria e të dhënave përmban në rrënjën e saj një kartelë \".ocdata\".",
+ "Could not obtain lock type %d on \"%s\"." : "S’u mor dot lloj kyçjeje %d në \"%s\".",
+ "Storage unauthorized. %s" : "Depozitë e paautorizuar. %s",
+ "Storage incomplete configuration. %s" : "Formësim jo i plotë i depozitës. %s",
+ "Storage connection error. %s" : "Gabim lidhje te depozita. %s",
+ "Storage is temporarily not available" : "Hapsira ruajtëse nuk është në dispozicion përkohësisht",
+ "Storage connection timeout. %s" : "Mbarim kohe lidhjeje për depozitën. %s",
+ "4-byte characters are not supported in file names" : "Shenjat 4-bajtshe nuk mbulohet në emra kartelash",
+ "App directory already exists" : "Drejtoria e aplikacionit ekziston tashmë",
+ "Can't create app folder. Please fix permissions. %s" : "S’krijohet dot dosje aplikacioni. Ju lutemi, ndreqni lejet. %s",
+ "Archive does not contain a directory named %s" : "Arkivi s’përmban një drejtori të quajtur %s",
+ "No source specified when installing app" : "S’u dha burim gjatë instalimit të aplikacionit",
+ "No href specified when installing app from http" : "S’u tregua href gjatë instalimit të aplikacionit nga http",
+ "No path specified when installing app from local file" : "S’u caktua shteg gjatë instalimit të aplikacionit prej kartele vendore",
+ "Archives of type %s are not supported" : "Nuk mbulohen arkivat e llojit %s",
+ "Failed to open archive when installing app" : "Dështoi në hapje arkivi teksa instalohej aplikacioni",
+ "App does not provide an info.xml file" : "Aplikacioni s’ofron kartele të vlefshme .xml",
+ "App cannot be installed because appinfo file cannot be read." : "Aplikacioni s’mund të instalohet, ngaqë s’lexohet dot kartela appinfo.",
+ "Signature could not get checked. Please contact the app developer and check your admin screen." : "Nënshkrimi s’u kontrollua dot. Ju lutemi, lidhuni me zhvilluesin e aplikacionit dhe kontrolloni te skena juaj e përgjegjësit.",
+ "App can't be installed because of not allowed code in the App" : "Aplikacioni s’mund të instalohet, për shkak kodi të palejuar te Aplikacioni",
+ "App can't be installed because it is not compatible with this version of the server" : "Aplikacioni nuk mund të instalohet sepse nuk përputhet me këtë version të serverit.",
+ "App can't be installed because it contains the mbstring.func_overload
to 0
in your php.ini" : "För att åtgärda detta problem sätt värdet mbstring.func_overload till code> 0 code> i din php.ini",
+ "libxml2 2.7.0 is at least required. Currently %s is installed." : "libxml2 2.7.0 är det minsta som krävs. För närvarande är %s installerat.",
+ "To fix this issue update your libxml2 version and restart your web server." : "För att åtgärda detta problem uppdatera libxml2 versionen och starta om din webbserver.",
+ "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP är tydligen inställt för att tömma \"inline doc blocks\". Detta kommer att göra flera kärnprogram otillgängliga.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Detta orsakas troligtvis av en cache/accelerator som t ex Zend OPchache eller eAccelerator.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP-moduler har installerats, men de listas fortfarande som saknade?",
+ "Please ask your server administrator to restart the web server." : "Vänligen be din serveradministratör att starta om webservern.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 krävs",
+ "Please upgrade your database version" : "Vänligen uppgradera din databas-version",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Vänligen ändra rättigheterna till 0770 så att katalogen inte kan listas utav andra användare.",
+ "Data directory (%s) is readable by other users" : "Datakatalogen (%s) kan läsas av andra användare",
+ "Data directory (%s) must be an absolute path" : "Datakatalogen (%s) måste vara hela sökvägen",
+ "Check the value of \"datadirectory\" in your configuration" : "Kontrollera värdet av \"datakatalog\" i din konfiguration",
+ "Data directory (%s) is invalid" : "Datakatlogen (%s) är ogiltig",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Vänligen kontrollera att datakatalogen innehåller filen \".ocdata\" i rooten.",
+ "Could not obtain lock type %d on \"%s\"." : "Kunde inte hämta låstyp %d på \"%s\".",
+ "Storage unauthorized. %s" : "Lagringsutrymme ej tillåtet. %s",
+ "Storage incomplete configuration. %s" : "Lagringsutrymme felaktigt inställt. %s",
+ "Storage connection error. %s" : "Lagringsutrymme lyckas inte ansluta. %s",
+ "Storage is temporarily not available" : "Lagringsutrymme är för tillfället inte tillgängligt",
+ "Storage connection timeout. %s" : "Lagringsutrymme lyckas inte ansluta \"timeout\". %s",
+ "4-byte characters are not supported in file names" : "4-bitars tecken är inte tillåtet i filnamn",
+ "App directory already exists" : "Appens mapp finns redan",
+ "Can't create app folder. Please fix permissions. %s" : "Kan inte skapa appens mapp. Var god åtgärda rättigheterna. %s",
+ "Archive does not contain a directory named %s" : "Arkivet innehåller inte en mapp vid namn %s",
+ "No source specified when installing app" : "Ingen källa angiven vid installation av app ",
+ "No href specified when installing app from http" : "Ingen href angiven vid installation av app från http",
+ "No path specified when installing app from local file" : "Ingen sökväg angiven vid installation av app från lokal fil",
+ "Archives of type %s are not supported" : "Arkiv av typen %s stöds ej",
+ "Failed to open archive when installing app" : "Kunde inte öppna arkivet när appen skulle installeras",
+ "App does not provide an info.xml file" : "Appen har ingen info.xml fil",
+ "App cannot be installed because appinfo file cannot be read." : "Appen kan inte installeras eftersom app-informationen inte kan läsas i filen.",
+ "Signature could not get checked. Please contact the app developer and check your admin screen." : "Signaturen kunde inte kontrolleras. Vänligen kontakta appens utvecklare och kontrollera administratörsinställningarna.",
+ "App can't be installed because of not allowed code in the App" : "Appen kan inte installeras eftersom att den innehåller otillåten kod",
+ "App can't be installed because it is not compatible with this version of the server" : "Appen kan inte installeras eftersom den inte är förenlig med den här versionen av servern",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Appen kan inte installeras eftersom att den innehåller etiketten true vilket inte är tillåtet för icke inkluderade appar",
+ "App can't be installed because the version in info.xml is not the same as the version reported from the app store" : "Appen kan inte installeras eftersom det är fel version på info.xml och stämmer inte överens med versionen från \"App Store\"",
+ "Logging" : "Loggning",
+ "Recommended" : "Rekomenderad",
+ "Microsoft Windows Platform is not supported" : "Microsoft Windows-plattformen stöds inte",
+ "Running Nextcloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself." : "Att köra en Nextcloud-Server på Microsoft Windows-plattformen stöds inte. Vi föreslår att du använder en Linux-server i en virtuell maskin om du inte har möjlighet att migrera själva servern.",
+ "Storage not available" : "Lagringsutrymme ej tillgängligt"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/sv.json b/lib/l10n/sv.json
new file mode 100644
index 0000000000000000000000000000000000000000..ac8d56e125f6531159d804bc14892907d9525572
--- /dev/null
+++ b/lib/l10n/sv.json
@@ -0,0 +1,231 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "Kan inte skriva till \"config\" katalogen!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "Detta kan vanligtvis åtgärdas genom att ge skrivrättigheter till config katalgogen",
+ "See %s" : "Se %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Detta kan vanligtvis åtgärdas genom att %s ger webbservern skrivrättigheter till konfigurations-katalogen %s.",
+ "The files of the app %$1s were not replaced correctly. Make sure it is a version compatible with the server." : "Filerna i appen %$1s ersattes inte korrekt. Se till att det är en version som är kompatibel med servern.",
+ "Sample configuration detected" : "Exempel-konfiguration detekterad",
+ "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" : "Det har detekterats att exempel-konfigurationen har kopierats. Detta kan förstöra din installation och stöds ej. Vänligen läs dokumentationen innan ändringar på config.php utförs",
+ "%1$s and %2$s" : "%1$s och %2$s",
+ "%1$s, %2$s and %3$s" : "%1$s, %2$s och %3$s",
+ "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s och %4$s",
+ "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s och %5$s",
+ "PHP %s or higher is required." : "PHP %s eller högre krävs.",
+ "PHP with a version lower than %s is required." : "PHP med version lägre än %s krävs.",
+ "%sbit or higher PHP required." : "%sbit eller nyare PHP-version krävs.",
+ "Following databases are supported: %s" : "Följande databastyper stödjs: %s",
+ "The command line tool %s could not be found" : "Kommandoradsverktyget %s hittades inte.",
+ "The library %s is not available." : "Biblioteket %s är inte tillgängligt.",
+ "Library %s with a version higher than %s is required - available version %s." : "Bibliotek %s med version högre än %s krävs - tillgänglig version %s.",
+ "Library %s with a version lower than %s is required - available version %s." : "Bibliotek %s med version lägre än %s krävs - tillgänglig version %s.",
+ "Following platforms are supported: %s" : "Följande plattformar stödjs: %s",
+ "Server version %s or higher is required." : "Serverversion %s eller nyare krävs.",
+ "Server version %s or lower is required." : "Serverversion %s eller äldre krävs.",
+ "Unknown filetype" : "Okänd filtyp",
+ "Invalid image" : "Ogiltig bild",
+ "Avatar image is not square" : "Profilbilden är inte fyrkantig/kvadrat",
+ "today" : "i dag",
+ "yesterday" : "i går",
+ "_%n day ago_::_%n days ago_" : ["%n dag sedan","%n dagar sedan"],
+ "last month" : "förra månaden",
+ "_%n month ago_::_%n months ago_" : ["%n månad sedan","%n månader sedan"],
+ "last year" : "förra året",
+ "_%n year ago_::_%n years ago_" : ["%n år sedan","%n år sedan"],
+ "_%n hour ago_::_%n hours ago_" : ["%n timme sedan","%n timmar sedan"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n minut sedan","%n minuter sedan"],
+ "seconds ago" : "sekunder sedan",
+ "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modulen med id: %s finns inte. Vänligen aktivera det i dina app-inställningar eller kontakta din administratör.",
+ "File name is a reserved word" : "Filnamnet är ett reserverat ord",
+ "File name contains at least one invalid character" : "Filnamnet innehåller minst ett ogiltigt tecken",
+ "File name is too long" : "Filnamnet är för långt",
+ "Dot files are not allowed" : "Dot filer är inte tillåtna",
+ "Empty filename is not allowed" : "Tomma filnamn är inte tillåtna",
+ "APCu" : "APCu",
+ "Redis" : "Redis",
+ "Server settings" : "Serverinställningar",
+ "Sharing" : "Delning",
+ "Encryption" : "Kryptering",
+ "Additional settings" : "Övriga inställningar",
+ "Tips & tricks" : "Knep & Trick",
+ "%s enter the database username and name." : "%s ange användarnamn och namn för databasen.",
+ "%s enter the database username." : "%s ange databasanvändare.",
+ "%s enter the database name." : "%s ange databasnamn",
+ "%s you may not use dots in the database name" : "%s du får inte använda punkter i databasnamnet",
+ "Oracle connection could not be established" : "Oracle-anslutning kunde inte etableras",
+ "Oracle username and/or password not valid" : "Oracle-användarnamnet och/eller lösenordet är felaktigt",
+ "DB Error: \"%s\"" : "DB fel: \"%s\"",
+ "Offending command was: \"%s\"" : "Det felaktiga kommandot var: \"%s\"",
+ "You need to enter either an existing account or the administrator." : "Du måste antingen ange ett befintligt konto eller administratör.",
+ "Offending command was: \"%s\", name: %s, password: %s" : "Det felande kommandot var: \"%s\", name: %s, password: %s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL-användarnamnet och/eller lösenordet är felaktigt",
+ "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X stöds inte och %s kommer inte att fungera korrekt på denna plattform. Använd på egen risk!",
+ "For the best results, please consider using a GNU/Linux server instead." : "För bästa resultat, överväg att använda en GNU/Linux server istället.",
+ "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." : "Det verkar som om denna %s instans körs på en 32-bitars PHP miljö och open_basedir har konfigurerats i php.ini. Detta kommer att leda till problem med filer över 4 GB och är verkligen inte rekommenderat!",
+ "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Ta bort open_basedir i din php.ini eller byt till 64-bitars PHP.",
+ "Set an admin username." : "Ange ett användarnamn för administratören.",
+ "Set an admin password." : "Ange ett administratörslösenord.",
+ "Can't create or write into the data directory %s" : "Kan inte skapa eller skriva till data-katalogen %s",
+ "Invalid Federated Cloud ID" : "Ogiltigt Federarat Moln-ID",
+ "%s shared »%s« with you" : "%s delade »%s« med dig",
+ "%s via %s" : "%s via %s",
+ "Sharing %s failed, because the backend does not allow shares from type %i" : "Misslyckades dela ut %s då backend inte tillåter delningar från typ %i",
+ "Sharing %s failed, because the file does not exist" : "Delning av %s misslyckades på grund av att filen inte existerar",
+ "You are not allowed to share %s" : "Du har inte rätt att dela %s",
+ "Sharing %s failed, because you can not share with yourself" : "Delning %s misslyckades därför att du inte kan dela med dig själv.",
+ "Sharing %s failed, because the user %s does not exist" : "Delning %s misslyckades därför att användaren %s inte existerar",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Delning %s misslyckades därför att användaren %s inte är medlem i någon utav de grupper som %s är medlem i",
+ "Sharing %s failed, because this item is already shared with %s" : "Delning %s misslyckades därför att objektet redan är delat med %s",
+ "Sharing %s failed, because this item is already shared with user %s" : "Delning %s misslyckades därför att detta redan är delat med användaren %s",
+ "Sharing %s failed, because the group %s does not exist" : "Delning %s misslyckades därför att gruppen %s inte existerar",
+ "Sharing %s failed, because %s is not a member of the group %s" : "Delning %s misslyckades därför att %s inte ingår i gruppen %s",
+ "You need to provide a password to create a public link, only protected links are allowed" : "Du måste ange ett lösenord för att skapa en offentlig länk, endast skyddade länkar är tillåtna",
+ "Sharing %s failed, because sharing with links is not allowed" : "Delning %s misslyckades därför att delning utav länkar inte är tillåtet",
+ "Not allowed to create a federated share with the same user" : "Ej tillåtet att skapa en förbundsdelning med samma användare",
+ "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Misslyckades dela ut %s, kan inte hitta %s, kanske är servern inte åtkomlig för närvarande.",
+ "Share type %s is not valid for %s" : "Delningstyp %s är inte giltig för %s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Misslyckades att sätta rättigheter för %s därför att rättigheterna överskrider de som är tillåtna för %s",
+ "Setting permissions for %s failed, because the item was not found" : "Att sätta rättigheterna för %s misslyckades därför att objektet inte hittades",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Kan inte sätta utgångsdatum. Utdelningar kan inte utgå senare än %s efter de har delats ut",
+ "Cannot set expiration date. Expiration date is in the past" : "Kan inte sätta utgångsdatum. Utgångsdatumet är i det förflutna.",
+ "Cannot clear expiration date. Shares are required to have an expiration date." : "Kan ej ta bort utgångsdatumet. Delningen kräver att det finns ett utgångsdatum.",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Delningsgränssnittet %s måste implementera gränssnittet OCP\\Share_Backend",
+ "Sharing backend %s not found" : "Delningsgränssnittet %s hittades inte",
+ "Sharing backend for %s not found" : "Delningsgränssnittet för %s hittades inte",
+ "Sharing failed, because the user %s is the original sharer" : "Delning misslyckades eftersom användaren %s redan är den som har delat detta.",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Delning %s misslyckades därför att rättigheterna överskrider de rättigheter som är tillåtna för %s",
+ "Sharing %s failed, because resharing is not allowed" : "Delning %s misslyckades därför att vidaredelning inte är tillåten",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "Delning %s misslyckades därför att delningsgränsnittet för %s inte kunde hitta sin källa",
+ "Sharing %s failed, because the file could not be found in the file cache" : "Delning %s misslyckades därför att filen inte kunde hittas i filcachen",
+ "Cannot increase permissions of %s" : "Kan ej öka behörigheterna för %s",
+ "Files can't be shared with delete permissions" : "Filerna kan ej delas med \"radera behörigheter\"",
+ "Files can't be shared with create permissions" : "Filerna kan ej delas med \"skapa behörigheter\"",
+ "Expiration date is in the past" : "Utgångsdatum är i det förflutna",
+ "Cannot set expiration date more than %s days in the future" : "Kan ej välja ett utgångsdatum längre fram än %s dagar",
+ "Could not find category \"%s\"" : "Kunde inte hitta kategorin \"%s\"",
+ "Sunday" : "Söndag",
+ "Monday" : "Måndag",
+ "Tuesday" : "Tisdag",
+ "Wednesday" : "Onsdag",
+ "Thursday" : "Torsdag",
+ "Friday" : "Fredag",
+ "Saturday" : "Lördag",
+ "Sun." : "Sön.",
+ "Mon." : "Mån.",
+ "Tue." : "Tis.",
+ "Wed." : "Ons.",
+ "Thu." : "Tors.",
+ "Fri." : "Fre.",
+ "Sat." : "Lör.",
+ "Su" : "Sö",
+ "Mo" : "Må",
+ "Tu" : "Ti",
+ "We" : "On",
+ "Th" : "To",
+ "Fr" : "Fr",
+ "Sa" : "Lö",
+ "January" : "Januari",
+ "February" : "Februari",
+ "March" : "Mars",
+ "April" : "April",
+ "May" : "Maj",
+ "June" : "Juni",
+ "July" : "Juli",
+ "August" : "Augusti",
+ "September" : "September",
+ "October" : "Oktober",
+ "November" : "November",
+ "December" : "December",
+ "Jan." : "Jan.",
+ "Feb." : "Feb.",
+ "Mar." : "Mar.",
+ "Apr." : "Apr.",
+ "May." : "Maj.",
+ "Jun." : "Jun.",
+ "Jul." : "Jul.",
+ "Aug." : "Aug.",
+ "Sep." : "Sep.",
+ "Oct." : "Okt.",
+ "Nov." : "Nov.",
+ "Dec." : "Dec.",
+ "Apps" : "Applikationer",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "Endast följande tecken är tillåtna i användarnamnet: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"",
+ "A valid username must be provided" : "Ett giltigt användarnamn måste anges",
+ "Username contains whitespace at the beginning or at the end" : "Användarnamnet består av ett mellanslag i början eller i slutet",
+ "A valid password must be provided" : "Ett giltigt lösenord måste anges",
+ "The username is already being used" : "Användarnamnet används redan",
+ "Login canceled by app" : "Inloggningen avbruten av appen",
+ "User disabled" : "Användare inaktiverad",
+ "Help" : "Hjälp",
+ "Personal" : "Personliga Inställningar",
+ "Users" : "Användare",
+ "Admin" : "Administration",
+ "App \"%s\" cannot be installed because appinfo file cannot be read." : "Applikationen \"%s\" kan ej installeras eftersom informationen från appen ej kunde läsas.",
+ "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "Applikationen \"%s\" kan ej installeras eftersom den inte är kompatibel med denna serverversion.",
+ "No app name specified" : "Inget appnamn angivet",
+ "App '%s' could not be installed!" : "Applikationen \"%s\" gick inte att installera!",
+ "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "Applikationen \"%s\" kan ej installeras eftersom följande kriterier inte är uppfyllda: %s",
+ "a safe home for all your data" : "En säker plats för dina filer och data",
+ "File is currently busy, please try again later" : "Filen är för tillfället upptagen, vänligen försök igen senare",
+ "Can't read file" : "Kan ej läsa filen",
+ "Application is not enabled" : "Applikationen är inte aktiverad",
+ "Authentication error" : "Fel vid autentisering",
+ "Token expired. Please reload page." : "Ogiltig token. Ladda om sidan.",
+ "Unknown user" : "Okänd användare",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "Inga databasdrivrutiner (sqlite, mysql, eller postgresql) installerade.",
+ "Cannot write into \"config\" directory" : "Kan inte skriva till \"config\" katalogen",
+ "Cannot write into \"apps\" directory" : "Kan inte skriva till \"apps\" katalogen!",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Detta kan vanligtvis åtgärdas genom att %s ger webbservern skrivrättigheter till applikationskatalogen %s eller stänga av app-butik i konfigurationsfilen.",
+ "Cannot create \"data\" directory (%s)" : "Kan inte skapa \"data\" katalog (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory." : "Detta kan vanligtvis åtgärdas genom att ge webbserver skrivåtkomst till rotkatalogen .",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Rättigheterna kan vanligtvis åtgärdas genom att %s ger webbservern skrivrättigheter till rootkatalogen %s.",
+ "Setting locale to %s failed" : "Sätta locale till %s misslyckades",
+ "Please install one of these locales on your system and restart your webserver." : "Vänligen installera en av dessa locale på din server och starta om dinn webbserver,",
+ "Please ask your server administrator to install the module." : "Vänligen be din administratör att installera modulen.",
+ "PHP module %s not installed." : "PHP modulen %s är inte installerad.",
+ "PHP setting \"%s\" is not set to \"%s\"." : "PHP inställning \"%s\" är inte inställd på \"%s\".",
+ "Adjusting this setting in php.ini will make Nextcloud run again" : "Att ändra denna inställning i php.ini kommer göra så att Nextcloud fungerar igen",
+ "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload är satt till \"%s\" istället för det förväntade värdet \"0\"",
+ "To fix this issue set mbstring.func_overload
to 0
in your php.ini" : "För att åtgärda detta problem sätt värdet mbstring.func_overload till code> 0 code> i din php.ini",
+ "libxml2 2.7.0 is at least required. Currently %s is installed." : "libxml2 2.7.0 är det minsta som krävs. För närvarande är %s installerat.",
+ "To fix this issue update your libxml2 version and restart your web server." : "För att åtgärda detta problem uppdatera libxml2 versionen och starta om din webbserver.",
+ "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP är tydligen inställt för att tömma \"inline doc blocks\". Detta kommer att göra flera kärnprogram otillgängliga.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Detta orsakas troligtvis av en cache/accelerator som t ex Zend OPchache eller eAccelerator.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP-moduler har installerats, men de listas fortfarande som saknade?",
+ "Please ask your server administrator to restart the web server." : "Vänligen be din serveradministratör att starta om webservern.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 krävs",
+ "Please upgrade your database version" : "Vänligen uppgradera din databas-version",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Vänligen ändra rättigheterna till 0770 så att katalogen inte kan listas utav andra användare.",
+ "Data directory (%s) is readable by other users" : "Datakatalogen (%s) kan läsas av andra användare",
+ "Data directory (%s) must be an absolute path" : "Datakatalogen (%s) måste vara hela sökvägen",
+ "Check the value of \"datadirectory\" in your configuration" : "Kontrollera värdet av \"datakatalog\" i din konfiguration",
+ "Data directory (%s) is invalid" : "Datakatlogen (%s) är ogiltig",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "Vänligen kontrollera att datakatalogen innehåller filen \".ocdata\" i rooten.",
+ "Could not obtain lock type %d on \"%s\"." : "Kunde inte hämta låstyp %d på \"%s\".",
+ "Storage unauthorized. %s" : "Lagringsutrymme ej tillåtet. %s",
+ "Storage incomplete configuration. %s" : "Lagringsutrymme felaktigt inställt. %s",
+ "Storage connection error. %s" : "Lagringsutrymme lyckas inte ansluta. %s",
+ "Storage is temporarily not available" : "Lagringsutrymme är för tillfället inte tillgängligt",
+ "Storage connection timeout. %s" : "Lagringsutrymme lyckas inte ansluta \"timeout\". %s",
+ "4-byte characters are not supported in file names" : "4-bitars tecken är inte tillåtet i filnamn",
+ "App directory already exists" : "Appens mapp finns redan",
+ "Can't create app folder. Please fix permissions. %s" : "Kan inte skapa appens mapp. Var god åtgärda rättigheterna. %s",
+ "Archive does not contain a directory named %s" : "Arkivet innehåller inte en mapp vid namn %s",
+ "No source specified when installing app" : "Ingen källa angiven vid installation av app ",
+ "No href specified when installing app from http" : "Ingen href angiven vid installation av app från http",
+ "No path specified when installing app from local file" : "Ingen sökväg angiven vid installation av app från lokal fil",
+ "Archives of type %s are not supported" : "Arkiv av typen %s stöds ej",
+ "Failed to open archive when installing app" : "Kunde inte öppna arkivet när appen skulle installeras",
+ "App does not provide an info.xml file" : "Appen har ingen info.xml fil",
+ "App cannot be installed because appinfo file cannot be read." : "Appen kan inte installeras eftersom app-informationen inte kan läsas i filen.",
+ "Signature could not get checked. Please contact the app developer and check your admin screen." : "Signaturen kunde inte kontrolleras. Vänligen kontakta appens utvecklare och kontrollera administratörsinställningarna.",
+ "App can't be installed because of not allowed code in the App" : "Appen kan inte installeras eftersom att den innehåller otillåten kod",
+ "App can't be installed because it is not compatible with this version of the server" : "Appen kan inte installeras eftersom den inte är förenlig med den här versionen av servern",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "Appen kan inte installeras eftersom att den innehåller etiketten true vilket inte är tillåtet för icke inkluderade appar",
+ "App can't be installed because the version in info.xml is not the same as the version reported from the app store" : "Appen kan inte installeras eftersom det är fel version på info.xml och stämmer inte överens med versionen från \"App Store\"",
+ "Logging" : "Loggning",
+ "Recommended" : "Rekomenderad",
+ "Microsoft Windows Platform is not supported" : "Microsoft Windows-plattformen stöds inte",
+ "Running Nextcloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself." : "Att köra en Nextcloud-Server på Microsoft Windows-plattformen stöds inte. Vi föreslår att du använder en Linux-server i en virtuell maskin om du inte har möjlighet att migrera själva servern.",
+ "Storage not available" : "Lagringsutrymme ej tillgängligt"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/lib/l10n/zh_CN.js b/lib/l10n/zh_CN.js
new file mode 100644
index 0000000000000000000000000000000000000000..e2c683b68bb3f21879d7887f145dfa10634b7c8c
--- /dev/null
+++ b/lib/l10n/zh_CN.js
@@ -0,0 +1,233 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "无法写入 \"config\" 目录!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "您可以设置 Web 服务器对 config 目录的写权限修复这个问题",
+ "See %s" : "查看 %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "您可以由 %s 设置 Web 服务器对 config 目录 %s 的写权限修复这个问题",
+ "The files of the app %$1s were not replaced correctly. Make sure it is a version compatible with the server." : "应用 %$1s 的文件替换不正确. 请确认版本与当前服务器兼容.",
+ "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 的样例文件直接复制使用. 这可能会破坏您的安装. 在对 config.php 进行修改之前请先阅读相关文档.",
+ "%1$s and %2$s" : "%1$s 和 %2$s",
+ "%1$s, %2$s and %3$s" : "%1$s, %2$s 和 %3$s",
+ "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s 和 %4$s",
+ "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s 和 %5$s",
+ "PHP %s or higher is required." : "要求 PHP 版本 %s 或者更高。",
+ "PHP with a version lower than %s is required." : "需要版本低于 %s 的PHP.",
+ "%sbit or higher PHP required." : "需要 %s 或更高版本的 PHP",
+ "Following databases are supported: %s" : "支持以下数据库: %s",
+ "The command line tool %s could not be found" : "命令行工具 %s 未找到",
+ "The library %s is not available." : "库文件 %s 不可用",
+ "Library %s with a version higher than %s is required - available version %s." : "%s 需要 %s 或更高的版本 - 可用版本 %s.",
+ "Library %s with a version lower than %s is required - available version %s." : "%s 需要 %s 或更低的版本 - 可用版本 %s.",
+ "Following platforms are supported: %s" : "支持以下平台:%s",
+ "Server version %s or higher is required." : "需要服务器版本 %s 或更高版本。",
+ "Server version %s or lower is required." : "需要服务器版本 %s 或更低版本。",
+ "Unknown filetype" : "未知的文件类型",
+ "Invalid image" : "无效的图像",
+ "Avatar image is not square" : "头像图像不是正方形",
+ "today" : "今天",
+ "yesterday" : "昨天",
+ "_%n day ago_::_%n days ago_" : ["%n 天前"],
+ "last month" : "上月",
+ "_%n month ago_::_%n months ago_" : ["%n 月前"],
+ "last year" : "去年",
+ "_%n year ago_::_%n years ago_" : ["%n 年前"],
+ "_%n hour ago_::_%n hours ago_" : ["%n 小时前"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n 分钟前"],
+ "seconds ago" : "秒前",
+ "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "ID 为 %s 的模块不存在. 请在应用设置中启用或联系您的管理员.",
+ "File name is a reserved word" : "文件名包含敏感字符",
+ "File name contains at least one invalid character" : "文件名中存在至少一个非法字符",
+ "File name is too long" : "文件名过长",
+ "Dot files are not allowed" : ".文件 不被允许",
+ "Empty filename is not allowed" : "不允许使用空名称。",
+ "APCu" : "APCu",
+ "Redis" : "Redis",
+ "Server settings" : "服务器设置",
+ "Sharing" : "分享",
+ "Encryption" : "加密",
+ "Additional settings" : "其他设置",
+ "Tips & tricks" : "小提示",
+ "%s enter the database username and name." : "%s 输入数据库用户名和名称.",
+ "%s enter the database username." : "%s 输入数据库用户名。",
+ "%s enter the database name." : "%s 输入数据库名称。",
+ "%s you may not use dots in the database name" : "%s 您不能在数据库名称中使用英文句号。",
+ "Oracle connection could not be established" : "不能建立甲骨文连接",
+ "Oracle username and/or password not valid" : "Oracle 数据库用户名和/或密码无效",
+ "DB Error: \"%s\"" : "数据库错误:\"%s\"",
+ "Offending command was: \"%s\"" : "冲突命令为:\"%s\"",
+ "You need to enter either an existing account or the administrator." : "你需要输入一个数据库中已有的账户或管理员账户。",
+ "Offending command was: \"%s\", name: %s, password: %s" : "冲突命令为:\"%s\",名称:%s,密码:%s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL 数据库用户名和/或密码无效",
+ "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X 不被支持并且 %s 在这个平台上无法正常工作。请自行承担风险!",
+ "For the best results, please consider using a GNU/Linux server instead." : "为了达到最好的效果,请考虑使用 GNU/Linux 服务器。",
+ "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "看起来这个 %s 实例运行在32位PHP环境中并且已在php.ini中配置open_basedir。这将在文件超过4GB时出现问题,我们极力反对这样做。",
+ "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "请删除php.ini中的open_basedir设置或切换到64位PHP。",
+ "Set an admin username." : "请设置一个管理员用户名。",
+ "Set an admin password." : "请设置一个管理员密码。",
+ "Can't create or write into the data directory %s" : "无法创建或写入数据目录 %s",
+ "Invalid Federated Cloud ID" : "无效的联合云ID",
+ "%s shared »%s« with you" : "%s 向您分享了 »%s«",
+ "%s via %s" : "%s 通过 %s",
+ "Sharing %s failed, because the backend does not allow shares from type %i" : "分享 %s 失败, 因为后端不允许分享 %i 类型",
+ "Sharing %s failed, because the file does not exist" : "分享 %s 失败, 因为文件不存在.",
+ "You are not allowed to share %s" : "您无权分享 %s",
+ "Sharing %s failed, because you can not share with yourself" : "分享 %s 失败, 因为您不能分享给自己",
+ "Sharing %s failed, because the user %s does not exist" : "分享 %s 失败, 因为用户 %s 不存在",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "分享 %s 失败, 因为用户 %s 不是 %s 所属的任何组的用户",
+ "Sharing %s failed, because this item is already shared with %s" : "分享 %s 失败, 因为该项已经分享给用户 %s",
+ "Sharing %s failed, because this item is already shared with user %s" : "分享 %s 失败, 因为该项已经分享给用户 %s",
+ "Sharing %s failed, because the group %s does not exist" : "分享 %s 失败, 因为 %s 分组不存在",
+ "Sharing %s failed, because %s is not a member of the group %s" : "分享 %s 失败, 因为 %s 不是 %s 分组的成员",
+ "You need to provide a password to create a public link, only protected links are allowed" : "链接分享需要密码, 您需要提供一个密码以创建公开连接",
+ "Sharing %s failed, because sharing with links is not allowed" : "分享 %s 失败, 因为不允许使用链接分享",
+ "Not allowed to create a federated share with the same user" : "不能给你自己分享文件",
+ "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "分享 %s 失败, 无法找到 %s, 该服务当前无法连接.",
+ "Share type %s is not valid for %s" : "%s 不是 %s 的合法共享类型",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "设置 %s 权限失败,因为权限超出了 %s 已有权限。",
+ "Setting permissions for %s failed, because the item was not found" : "设置 %s 的权限失败,因为未找到到对应项",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "无法设置过期时间. 过期时间不能晚于其分享时间 %s",
+ "Cannot set expiration date. Expiration date is in the past" : "无法设置过期时间. 过期时间不能为过去",
+ "Cannot clear expiration date. Shares are required to have an expiration date." : "无法清除过期时间. 每个分享必须有一个过期时间",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "分享后端 %s 必须实现 OCP\\Share_Backend 接口",
+ "Sharing backend %s not found" : "%s 的分享后端未找到",
+ "Sharing backend for %s not found" : "%s 的分享后端未找到",
+ "Sharing failed, because the user %s is the original sharer" : "分享失败, 因为用户 %s 是原始的分享者.",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "分享 %s 失败, 因为权限超过了 %s 的已有权限",
+ "Sharing %s failed, because resharing is not allowed" : "分享 %s 失败, 因为不允许二次共享",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "分享 %s 失败, 因为无法找到 %s 分享后端的来源",
+ "Sharing %s failed, because the file could not be found in the file cache" : "分享 %s 失败, 因为文件缓存中找不到该文件",
+ "Cannot increase permissions of %s" : "无法提升 %s 的权限",
+ "Files can't be shared with delete permissions" : "无法分享有删除权限的文件",
+ "Files can't be shared with create permissions" : "无法分享有创建权限的文件",
+ "Expiration date is in the past" : "到期日期已过.",
+ "Cannot set expiration date more than %s days in the future" : "无法将过期日期设置为超过 %s 天.",
+ "Could not find category \"%s\"" : "无法找到分类 \"%s\"",
+ "Sunday" : "星期日",
+ "Monday" : "星期一",
+ "Tuesday" : "星期二",
+ "Wednesday" : "星期三",
+ "Thursday" : "星期四",
+ "Friday" : "星期五",
+ "Saturday" : "星期六",
+ "Sun." : "周日",
+ "Mon." : "周一",
+ "Tue." : "周二",
+ "Wed." : "周三",
+ "Thu." : "周四",
+ "Fri." : "周五",
+ "Sat." : "周六",
+ "Su" : "日",
+ "Mo" : "一",
+ "Tu" : "二",
+ "We" : "三",
+ "Th" : "四",
+ "Fr" : "五",
+ "Sa" : "六",
+ "January" : "一月",
+ "February" : "二月",
+ "March" : "三月",
+ "April" : "四月",
+ "May" : "五月",
+ "June" : "六月",
+ "July" : "七月",
+ "August" : "八月",
+ "September" : "九月",
+ "October" : "十月",
+ "November" : "十一月",
+ "December" : "十二月",
+ "Jan." : "一月",
+ "Feb." : "二月",
+ "Mar." : "三月",
+ "Apr." : "四月",
+ "May." : "五月",
+ "Jun." : "六月",
+ "Jul." : "七月",
+ "Aug." : "八月",
+ "Sep." : "九月",
+ "Oct." : "十月",
+ "Nov." : "十一月",
+ "Dec." : "十二月",
+ "Apps" : "应用",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "在用户名中只允许使用以下字符:“a-z”,“A-Z”,“0-9”和\"_.@-'\"",
+ "A valid username must be provided" : "必须提供合法的用户名",
+ "Username contains whitespace at the beginning or at the end" : "用户名在开头或结尾处包含空格",
+ "A valid password must be provided" : "必须提供合法的密码",
+ "The username is already being used" : "用户名已被使用",
+ "Login canceled by app" : "已通过应用取消登录",
+ "User disabled" : "用户已禁用",
+ "Help" : "帮助",
+ "Personal" : "个人",
+ "Users" : "用户",
+ "Admin" : "管理",
+ "App \"%s\" cannot be installed because appinfo file cannot be read." : "无法安装应用\"%s\",因为无法读取appinfo文件.",
+ "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "应用程式 \"%s\" 无法安装,因为它与这个版本的服务器不兼容.",
+ "No app name specified" : "没有指定的 App 名称",
+ "App '%s' could not be installed!" : "应用程序 '%s' 无法被安装!",
+ "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "应用程序 \"%s\" 无法被安装,因为为满足下列依赖关系: %s",
+ "a safe home for all your data" : "给您所有的数据一个安全的家",
+ "File is currently busy, please try again later" : "文件当前正忙,请稍后再试",
+ "Can't read file" : "无法读取文件",
+ "Application is not enabled" : "应用程序未启用",
+ "Authentication error" : "认证出错",
+ "Token expired. Please reload page." : "Token 过期,请刷新页面。",
+ "Unknown user" : "未知用户",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "没有安装数据库驱动 (SQLite、MySQL 或 PostgreSQL)。",
+ "Cannot write into \"config\" directory" : "无法写入“config”目录",
+ "Cannot write into \"apps\" directory" : "无法写入“apps”目录",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "您可以由 %s 设置 Web 服务器对应用目录 %s 的写权限或在配置文件中禁用应用商店可以修复这个问题.",
+ "Cannot create \"data\" directory (%s)" : "无法创建“apps”目录 (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory." : "点击 设置 Web 服务器对根目录的写入权限 可修复这个问题.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "您可以由 %s 设置 Web 服务器对根目录 %s 的写权限可以修复这个问题.",
+ "Setting locale to %s failed" : "设置语言为 %s 失败",
+ "Please install one of these locales on your system and restart your webserver." : "请在您的系统中安装下述一种语言并重启 Web 服务器.",
+ "Please ask your server administrator to install the module." : "请联系服务器管理员安装模块.",
+ "PHP module %s not installed." : "PHP %s 模块未安装.",
+ "PHP setting \"%s\" is not set to \"%s\"." : "PHP 选项 \"%s\" 未设置为 \"%s\".",
+ "Adjusting this setting in php.ini will make Nextcloud run again" : "在 php.ini 中调整该设置将导致 Nextcloud 重新运行",
+ "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload 当前设置为 \"%s\", 预期值为 \"0\"",
+ "To fix this issue set mbstring.func_overload
to 0
in your php.ini" : "请在 php.ini 中设置 mbstring.func_overload
为 0
以解决该问题",
+ "libxml2 2.7.0 is at least required. Currently %s is installed." : "至少需要 libxml2 2.7.0. 当前安装 %s.",
+ "To fix this issue update your libxml2 version and restart your web server." : "升级您的 libxml2 版本然后重启 Web 服务器以解决该问题.",
+ "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP 被设置为移除内联块, 这将导致多个核心应用无法访问.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "这可能由缓存/加速器导致的, 例如 Zend OPcache 或 eAccelerator.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP 模块已经安装, 但仍然显示未安装?",
+ "Please ask your server administrator to restart the web server." : "请联系服务器管理员重启 Web 服务器.",
+ "PostgreSQL >= 9 required" : "要求 PostgreSQL >= 9",
+ "Please upgrade your database version" : "请升级您的数据库版本",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "请更改权限为 0770 以避免其他用户查看目录.",
+ "Data directory (%s) is readable by other users" : "数据目录 (%s) 能被其他用户读取",
+ "Data directory (%s) must be an absolute path" : "数据目录 (%s) 必须为绝对路径",
+ "Check the value of \"datadirectory\" in your configuration" : "请检查配置文件中 \"datadirectory\" 的值",
+ "Data directory (%s) is invalid" : "数据目录 (%s) 无效",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "请检查根目录下 data 目录中包含名为 \".ocdata\" 的文件.",
+ "Could not obtain lock type %d on \"%s\"." : "无法在 \"%s\" 上获取锁类型 %d.",
+ "Storage unauthorized. %s" : "存储认证失败. %s",
+ "Storage incomplete configuration. %s" : "存储未完成配置. %s",
+ "Storage connection error. %s" : "存储连接错误. %s",
+ "Storage is temporarily not available" : "存储暂时不可用",
+ "Storage connection timeout. %s" : "存储连接超时. %s",
+ "4-byte characters are not supported in file names" : "文件名中不支持 4 字节字符",
+ "App directory already exists" : "应用目录已经存在",
+ "Can't create app folder. Please fix permissions. %s" : "无法创建应用文件夹. 请修改权限. %s",
+ "Archive does not contain a directory named %s" : "压缩文件中不包含目录 %s",
+ "No source specified when installing app" : "安装应用时未指定来源",
+ "No href specified when installing app from http" : "从 http 安装应用时未指定链接",
+ "No path specified when installing app from local file" : "从本地文件安装应用时未指定路径",
+ "Archives of type %s are not supported" : "不支持 %s 的压缩格式",
+ "Failed to open archive when installing app" : "安装应用时打开文件失败",
+ "App does not provide an info.xml file" : "应用未提供 info.xml 文件",
+ "App cannot be installed because appinfo file cannot be read." : "无法安装应用, 因为无法读取应用信息文件",
+ "Signature could not get checked. Please contact the app developer and check your admin screen." : "签名检查失败. 请联系应用开发者并检查您的管理界面",
+ "App can't be installed because of not allowed code in the App" : "无法安装应用, 因为应用中包含不允许的代码",
+ "App can't be installed because it is not compatible with this version of the server" : "无法安装应用, 因为应用不兼容当前服务器的版本",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "无法安装应用, 因为应用包含 true 标签",
+ "App can't be installed because the version in info.xml is not the same as the version reported from the app store" : "无法安装应用, 因为 info.xml 中的版本与应用市场中的版本不同",
+ "Logging" : "日志",
+ "Recommended" : "推荐",
+ "Microsoft Windows Platform is not supported" : "不支持 Microsoft Windows 平台",
+ "Running Nextcloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself." : "不支持在 Microsoft Windows 平台运行 Nextcloud 服务器. 如果您没有迁移服务器的计划, 我们建议您在虚拟机中使用 Linux 服务器.",
+ "Storage not available" : "存储空间不可用"
+},
+"nplurals=1; plural=0;");
diff --git a/lib/l10n/zh_CN.json b/lib/l10n/zh_CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..f5b88f87ad909ddf1688d195ecb0bfd4645dc87a
--- /dev/null
+++ b/lib/l10n/zh_CN.json
@@ -0,0 +1,231 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "无法写入 \"config\" 目录!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "您可以设置 Web 服务器对 config 目录的写权限修复这个问题",
+ "See %s" : "查看 %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "您可以由 %s 设置 Web 服务器对 config 目录 %s 的写权限修复这个问题",
+ "The files of the app %$1s were not replaced correctly. Make sure it is a version compatible with the server." : "应用 %$1s 的文件替换不正确. 请确认版本与当前服务器兼容.",
+ "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 的样例文件直接复制使用. 这可能会破坏您的安装. 在对 config.php 进行修改之前请先阅读相关文档.",
+ "%1$s and %2$s" : "%1$s 和 %2$s",
+ "%1$s, %2$s and %3$s" : "%1$s, %2$s 和 %3$s",
+ "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s 和 %4$s",
+ "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s 和 %5$s",
+ "PHP %s or higher is required." : "要求 PHP 版本 %s 或者更高。",
+ "PHP with a version lower than %s is required." : "需要版本低于 %s 的PHP.",
+ "%sbit or higher PHP required." : "需要 %s 或更高版本的 PHP",
+ "Following databases are supported: %s" : "支持以下数据库: %s",
+ "The command line tool %s could not be found" : "命令行工具 %s 未找到",
+ "The library %s is not available." : "库文件 %s 不可用",
+ "Library %s with a version higher than %s is required - available version %s." : "%s 需要 %s 或更高的版本 - 可用版本 %s.",
+ "Library %s with a version lower than %s is required - available version %s." : "%s 需要 %s 或更低的版本 - 可用版本 %s.",
+ "Following platforms are supported: %s" : "支持以下平台:%s",
+ "Server version %s or higher is required." : "需要服务器版本 %s 或更高版本。",
+ "Server version %s or lower is required." : "需要服务器版本 %s 或更低版本。",
+ "Unknown filetype" : "未知的文件类型",
+ "Invalid image" : "无效的图像",
+ "Avatar image is not square" : "头像图像不是正方形",
+ "today" : "今天",
+ "yesterday" : "昨天",
+ "_%n day ago_::_%n days ago_" : ["%n 天前"],
+ "last month" : "上月",
+ "_%n month ago_::_%n months ago_" : ["%n 月前"],
+ "last year" : "去年",
+ "_%n year ago_::_%n years ago_" : ["%n 年前"],
+ "_%n hour ago_::_%n hours ago_" : ["%n 小时前"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n 分钟前"],
+ "seconds ago" : "秒前",
+ "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "ID 为 %s 的模块不存在. 请在应用设置中启用或联系您的管理员.",
+ "File name is a reserved word" : "文件名包含敏感字符",
+ "File name contains at least one invalid character" : "文件名中存在至少一个非法字符",
+ "File name is too long" : "文件名过长",
+ "Dot files are not allowed" : ".文件 不被允许",
+ "Empty filename is not allowed" : "不允许使用空名称。",
+ "APCu" : "APCu",
+ "Redis" : "Redis",
+ "Server settings" : "服务器设置",
+ "Sharing" : "分享",
+ "Encryption" : "加密",
+ "Additional settings" : "其他设置",
+ "Tips & tricks" : "小提示",
+ "%s enter the database username and name." : "%s 输入数据库用户名和名称.",
+ "%s enter the database username." : "%s 输入数据库用户名。",
+ "%s enter the database name." : "%s 输入数据库名称。",
+ "%s you may not use dots in the database name" : "%s 您不能在数据库名称中使用英文句号。",
+ "Oracle connection could not be established" : "不能建立甲骨文连接",
+ "Oracle username and/or password not valid" : "Oracle 数据库用户名和/或密码无效",
+ "DB Error: \"%s\"" : "数据库错误:\"%s\"",
+ "Offending command was: \"%s\"" : "冲突命令为:\"%s\"",
+ "You need to enter either an existing account or the administrator." : "你需要输入一个数据库中已有的账户或管理员账户。",
+ "Offending command was: \"%s\", name: %s, password: %s" : "冲突命令为:\"%s\",名称:%s,密码:%s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL 数据库用户名和/或密码无效",
+ "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X 不被支持并且 %s 在这个平台上无法正常工作。请自行承担风险!",
+ "For the best results, please consider using a GNU/Linux server instead." : "为了达到最好的效果,请考虑使用 GNU/Linux 服务器。",
+ "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "看起来这个 %s 实例运行在32位PHP环境中并且已在php.ini中配置open_basedir。这将在文件超过4GB时出现问题,我们极力反对这样做。",
+ "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "请删除php.ini中的open_basedir设置或切换到64位PHP。",
+ "Set an admin username." : "请设置一个管理员用户名。",
+ "Set an admin password." : "请设置一个管理员密码。",
+ "Can't create or write into the data directory %s" : "无法创建或写入数据目录 %s",
+ "Invalid Federated Cloud ID" : "无效的联合云ID",
+ "%s shared »%s« with you" : "%s 向您分享了 »%s«",
+ "%s via %s" : "%s 通过 %s",
+ "Sharing %s failed, because the backend does not allow shares from type %i" : "分享 %s 失败, 因为后端不允许分享 %i 类型",
+ "Sharing %s failed, because the file does not exist" : "分享 %s 失败, 因为文件不存在.",
+ "You are not allowed to share %s" : "您无权分享 %s",
+ "Sharing %s failed, because you can not share with yourself" : "分享 %s 失败, 因为您不能分享给自己",
+ "Sharing %s failed, because the user %s does not exist" : "分享 %s 失败, 因为用户 %s 不存在",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "分享 %s 失败, 因为用户 %s 不是 %s 所属的任何组的用户",
+ "Sharing %s failed, because this item is already shared with %s" : "分享 %s 失败, 因为该项已经分享给用户 %s",
+ "Sharing %s failed, because this item is already shared with user %s" : "分享 %s 失败, 因为该项已经分享给用户 %s",
+ "Sharing %s failed, because the group %s does not exist" : "分享 %s 失败, 因为 %s 分组不存在",
+ "Sharing %s failed, because %s is not a member of the group %s" : "分享 %s 失败, 因为 %s 不是 %s 分组的成员",
+ "You need to provide a password to create a public link, only protected links are allowed" : "链接分享需要密码, 您需要提供一个密码以创建公开连接",
+ "Sharing %s failed, because sharing with links is not allowed" : "分享 %s 失败, 因为不允许使用链接分享",
+ "Not allowed to create a federated share with the same user" : "不能给你自己分享文件",
+ "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "分享 %s 失败, 无法找到 %s, 该服务当前无法连接.",
+ "Share type %s is not valid for %s" : "%s 不是 %s 的合法共享类型",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "设置 %s 权限失败,因为权限超出了 %s 已有权限。",
+ "Setting permissions for %s failed, because the item was not found" : "设置 %s 的权限失败,因为未找到到对应项",
+ "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "无法设置过期时间. 过期时间不能晚于其分享时间 %s",
+ "Cannot set expiration date. Expiration date is in the past" : "无法设置过期时间. 过期时间不能为过去",
+ "Cannot clear expiration date. Shares are required to have an expiration date." : "无法清除过期时间. 每个分享必须有一个过期时间",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "分享后端 %s 必须实现 OCP\\Share_Backend 接口",
+ "Sharing backend %s not found" : "%s 的分享后端未找到",
+ "Sharing backend for %s not found" : "%s 的分享后端未找到",
+ "Sharing failed, because the user %s is the original sharer" : "分享失败, 因为用户 %s 是原始的分享者.",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "分享 %s 失败, 因为权限超过了 %s 的已有权限",
+ "Sharing %s failed, because resharing is not allowed" : "分享 %s 失败, 因为不允许二次共享",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "分享 %s 失败, 因为无法找到 %s 分享后端的来源",
+ "Sharing %s failed, because the file could not be found in the file cache" : "分享 %s 失败, 因为文件缓存中找不到该文件",
+ "Cannot increase permissions of %s" : "无法提升 %s 的权限",
+ "Files can't be shared with delete permissions" : "无法分享有删除权限的文件",
+ "Files can't be shared with create permissions" : "无法分享有创建权限的文件",
+ "Expiration date is in the past" : "到期日期已过.",
+ "Cannot set expiration date more than %s days in the future" : "无法将过期日期设置为超过 %s 天.",
+ "Could not find category \"%s\"" : "无法找到分类 \"%s\"",
+ "Sunday" : "星期日",
+ "Monday" : "星期一",
+ "Tuesday" : "星期二",
+ "Wednesday" : "星期三",
+ "Thursday" : "星期四",
+ "Friday" : "星期五",
+ "Saturday" : "星期六",
+ "Sun." : "周日",
+ "Mon." : "周一",
+ "Tue." : "周二",
+ "Wed." : "周三",
+ "Thu." : "周四",
+ "Fri." : "周五",
+ "Sat." : "周六",
+ "Su" : "日",
+ "Mo" : "一",
+ "Tu" : "二",
+ "We" : "三",
+ "Th" : "四",
+ "Fr" : "五",
+ "Sa" : "六",
+ "January" : "一月",
+ "February" : "二月",
+ "March" : "三月",
+ "April" : "四月",
+ "May" : "五月",
+ "June" : "六月",
+ "July" : "七月",
+ "August" : "八月",
+ "September" : "九月",
+ "October" : "十月",
+ "November" : "十一月",
+ "December" : "十二月",
+ "Jan." : "一月",
+ "Feb." : "二月",
+ "Mar." : "三月",
+ "Apr." : "四月",
+ "May." : "五月",
+ "Jun." : "六月",
+ "Jul." : "七月",
+ "Aug." : "八月",
+ "Sep." : "九月",
+ "Oct." : "十月",
+ "Nov." : "十一月",
+ "Dec." : "十二月",
+ "Apps" : "应用",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "在用户名中只允许使用以下字符:“a-z”,“A-Z”,“0-9”和\"_.@-'\"",
+ "A valid username must be provided" : "必须提供合法的用户名",
+ "Username contains whitespace at the beginning or at the end" : "用户名在开头或结尾处包含空格",
+ "A valid password must be provided" : "必须提供合法的密码",
+ "The username is already being used" : "用户名已被使用",
+ "Login canceled by app" : "已通过应用取消登录",
+ "User disabled" : "用户已禁用",
+ "Help" : "帮助",
+ "Personal" : "个人",
+ "Users" : "用户",
+ "Admin" : "管理",
+ "App \"%s\" cannot be installed because appinfo file cannot be read." : "无法安装应用\"%s\",因为无法读取appinfo文件.",
+ "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "应用程式 \"%s\" 无法安装,因为它与这个版本的服务器不兼容.",
+ "No app name specified" : "没有指定的 App 名称",
+ "App '%s' could not be installed!" : "应用程序 '%s' 无法被安装!",
+ "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "应用程序 \"%s\" 无法被安装,因为为满足下列依赖关系: %s",
+ "a safe home for all your data" : "给您所有的数据一个安全的家",
+ "File is currently busy, please try again later" : "文件当前正忙,请稍后再试",
+ "Can't read file" : "无法读取文件",
+ "Application is not enabled" : "应用程序未启用",
+ "Authentication error" : "认证出错",
+ "Token expired. Please reload page." : "Token 过期,请刷新页面。",
+ "Unknown user" : "未知用户",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "没有安装数据库驱动 (SQLite、MySQL 或 PostgreSQL)。",
+ "Cannot write into \"config\" directory" : "无法写入“config”目录",
+ "Cannot write into \"apps\" directory" : "无法写入“apps”目录",
+ "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "您可以由 %s 设置 Web 服务器对应用目录 %s 的写权限或在配置文件中禁用应用商店可以修复这个问题.",
+ "Cannot create \"data\" directory (%s)" : "无法创建“apps”目录 (%s)",
+ "This can usually be fixed by giving the webserver write access to the root directory." : "点击 设置 Web 服务器对根目录的写入权限 可修复这个问题.",
+ "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "您可以由 %s 设置 Web 服务器对根目录 %s 的写权限可以修复这个问题.",
+ "Setting locale to %s failed" : "设置语言为 %s 失败",
+ "Please install one of these locales on your system and restart your webserver." : "请在您的系统中安装下述一种语言并重启 Web 服务器.",
+ "Please ask your server administrator to install the module." : "请联系服务器管理员安装模块.",
+ "PHP module %s not installed." : "PHP %s 模块未安装.",
+ "PHP setting \"%s\" is not set to \"%s\"." : "PHP 选项 \"%s\" 未设置为 \"%s\".",
+ "Adjusting this setting in php.ini will make Nextcloud run again" : "在 php.ini 中调整该设置将导致 Nextcloud 重新运行",
+ "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload 当前设置为 \"%s\", 预期值为 \"0\"",
+ "To fix this issue set mbstring.func_overload
to 0
in your php.ini" : "请在 php.ini 中设置 mbstring.func_overload
为 0
以解决该问题",
+ "libxml2 2.7.0 is at least required. Currently %s is installed." : "至少需要 libxml2 2.7.0. 当前安装 %s.",
+ "To fix this issue update your libxml2 version and restart your web server." : "升级您的 libxml2 版本然后重启 Web 服务器以解决该问题.",
+ "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP 被设置为移除内联块, 这将导致多个核心应用无法访问.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "这可能由缓存/加速器导致的, 例如 Zend OPcache 或 eAccelerator.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP 模块已经安装, 但仍然显示未安装?",
+ "Please ask your server administrator to restart the web server." : "请联系服务器管理员重启 Web 服务器.",
+ "PostgreSQL >= 9 required" : "要求 PostgreSQL >= 9",
+ "Please upgrade your database version" : "请升级您的数据库版本",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "请更改权限为 0770 以避免其他用户查看目录.",
+ "Data directory (%s) is readable by other users" : "数据目录 (%s) 能被其他用户读取",
+ "Data directory (%s) must be an absolute path" : "数据目录 (%s) 必须为绝对路径",
+ "Check the value of \"datadirectory\" in your configuration" : "请检查配置文件中 \"datadirectory\" 的值",
+ "Data directory (%s) is invalid" : "数据目录 (%s) 无效",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "请检查根目录下 data 目录中包含名为 \".ocdata\" 的文件.",
+ "Could not obtain lock type %d on \"%s\"." : "无法在 \"%s\" 上获取锁类型 %d.",
+ "Storage unauthorized. %s" : "存储认证失败. %s",
+ "Storage incomplete configuration. %s" : "存储未完成配置. %s",
+ "Storage connection error. %s" : "存储连接错误. %s",
+ "Storage is temporarily not available" : "存储暂时不可用",
+ "Storage connection timeout. %s" : "存储连接超时. %s",
+ "4-byte characters are not supported in file names" : "文件名中不支持 4 字节字符",
+ "App directory already exists" : "应用目录已经存在",
+ "Can't create app folder. Please fix permissions. %s" : "无法创建应用文件夹. 请修改权限. %s",
+ "Archive does not contain a directory named %s" : "压缩文件中不包含目录 %s",
+ "No source specified when installing app" : "安装应用时未指定来源",
+ "No href specified when installing app from http" : "从 http 安装应用时未指定链接",
+ "No path specified when installing app from local file" : "从本地文件安装应用时未指定路径",
+ "Archives of type %s are not supported" : "不支持 %s 的压缩格式",
+ "Failed to open archive when installing app" : "安装应用时打开文件失败",
+ "App does not provide an info.xml file" : "应用未提供 info.xml 文件",
+ "App cannot be installed because appinfo file cannot be read." : "无法安装应用, 因为无法读取应用信息文件",
+ "Signature could not get checked. Please contact the app developer and check your admin screen." : "签名检查失败. 请联系应用开发者并检查您的管理界面",
+ "App can't be installed because of not allowed code in the App" : "无法安装应用, 因为应用中包含不允许的代码",
+ "App can't be installed because it is not compatible with this version of the server" : "无法安装应用, 因为应用不兼容当前服务器的版本",
+ "App can't be installed because it contains the true tag which is not allowed for non shipped apps" : "无法安装应用, 因为应用包含 true 标签",
+ "App can't be installed because the version in info.xml is not the same as the version reported from the app store" : "无法安装应用, 因为 info.xml 中的版本与应用市场中的版本不同",
+ "Logging" : "日志",
+ "Recommended" : "推荐",
+ "Microsoft Windows Platform is not supported" : "不支持 Microsoft Windows 平台",
+ "Running Nextcloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself." : "不支持在 Microsoft Windows 平台运行 Nextcloud 服务器. 如果您没有迁移服务器的计划, 我们建议您在虚拟机中使用 Linux 服务器.",
+ "Storage not available" : "存储空间不可用"
+},"pluralForm" :"nplurals=1; plural=0;"
+}
\ No newline at end of file
diff --git a/lib/l10n/zh_TW.js b/lib/l10n/zh_TW.js
index bdf63be8b5f24389eb1c134572328044db0d7b4b..f03e9849cb9beef8378083273998d7fff68ef6d1 100644
--- a/lib/l10n/zh_TW.js
+++ b/lib/l10n/zh_TW.js
@@ -221,8 +221,6 @@ OC.L10N.register(
"Recommended" : "建議",
"Microsoft Windows Platform is not supported" : "不支援微軟Windows系統",
"Running Nextcloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself." : "微軟Windows不支援Nextcloud伺服器,如果您一定要使用,我們建議您在虛擬機中安裝Linux版本伺服器。",
- "Storage not available" : "無法存取儲存空間",
- "App \"%s\" cannot be installed because it is not compatible with this version of Nextcloud." : "應用程式 \"%s\" 無法安裝,因為與此版本 Nextcloud 不相容",
- "App can't be installed because it is not compatible with this version of Nextcloud" : "應用程式無法安裝,因為與此版本 Nextcloud 不相容"
+ "Storage not available" : "無法存取儲存空間"
},
"nplurals=1; plural=0;");
diff --git a/lib/l10n/zh_TW.json b/lib/l10n/zh_TW.json
index e2f39b8c3b10242e7f6078601ba04f51cd908b51..7857eb4a7ea3db4b66f2e3fa0215abb4008386e1 100644
--- a/lib/l10n/zh_TW.json
+++ b/lib/l10n/zh_TW.json
@@ -219,8 +219,6 @@
"Recommended" : "建議",
"Microsoft Windows Platform is not supported" : "不支援微軟Windows系統",
"Running Nextcloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself." : "微軟Windows不支援Nextcloud伺服器,如果您一定要使用,我們建議您在虛擬機中安裝Linux版本伺服器。",
- "Storage not available" : "無法存取儲存空間",
- "App \"%s\" cannot be installed because it is not compatible with this version of Nextcloud." : "應用程式 \"%s\" 無法安裝,因為與此版本 Nextcloud 不相容",
- "App can't be installed because it is not compatible with this version of Nextcloud" : "應用程式無法安裝,因為與此版本 Nextcloud 不相容"
+ "Storage not available" : "無法存取儲存空間"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/lib/private/AllConfig.php b/lib/private/AllConfig.php
index 4e13d70371b7fd526b0c9ce8d11c03b7cf7ad663..1f59e677a542fe12ac505cd47b6e00e8554fb0e0 100644
--- a/lib/private/AllConfig.php
+++ b/lib/private/AllConfig.php
@@ -68,7 +68,7 @@ class AllConfig implements \OCP\IConfig {
/**
* @param SystemConfig $systemConfig
*/
- function __construct(SystemConfig $systemConfig) {
+ public function __construct(SystemConfig $systemConfig) {
$this->userCache = new CappedMemoryCache();
$this->systemConfig = $systemConfig;
}
@@ -358,12 +358,17 @@ class AllConfig implements \OCP\IConfig {
* ]
*/
private function getUserValues($userId) {
- // TODO - FIXME
- $this->fixDIInit();
-
if (isset($this->userCache[$userId])) {
return $this->userCache[$userId];
}
+ if ($userId === null || $userId === '') {
+ $this->userCache[$userId]=array();
+ return $this->userCache[$userId];
+ }
+
+ // TODO - FIXME
+ $this->fixDIInit();
+
$data = array();
$query = 'SELECT `appid`, `configkey`, `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ?';
$result = $this->connection->executeQuery($query, array($userId));
diff --git a/lib/private/App/AppManager.php b/lib/private/App/AppManager.php
index fca5c9b87ac202245f3d9c196567aac7d0edf815..6b819ef7ac14ac5d4b506c16509b7bd62a8e3f29 100644
--- a/lib/private/App/AppManager.php
+++ b/lib/private/App/AppManager.php
@@ -220,6 +220,21 @@ class AppManager implements IAppManager {
$this->clearAppsCache();
}
+ /**
+ * Whether a list of types contains a protected app type
+ *
+ * @param string[] $types
+ * @return bool
+ */
+ public function hasProtectedAppType($types) {
+ if (empty($types)) {
+ return false;
+ }
+
+ $protectedTypes = array_intersect($this->protectedAppTypes, $types);
+ return !empty($protectedTypes);
+ }
+
/**
* Enable an app only for specific groups
*
diff --git a/lib/private/App/AppStore/Fetcher/AppFetcher.php b/lib/private/App/AppStore/Fetcher/AppFetcher.php
index bbe75c723d53c0291cb84d7da5e0583a00d5d091..7c5efafc92facef3a67c98c85988fb92b04a96b9 100644
--- a/lib/private/App/AppStore/Fetcher/AppFetcher.php
+++ b/lib/private/App/AppStore/Fetcher/AppFetcher.php
@@ -28,9 +28,6 @@ use OCP\Http\Client\IClientService;
use OCP\IConfig;
class AppFetcher extends Fetcher {
- /** @var IConfig */
- private $config;
-
/**
* @param IAppData $appData
* @param IClientService $clientService
@@ -44,13 +41,13 @@ class AppFetcher extends Fetcher {
parent::__construct(
$appData,
$clientService,
- $timeFactory
+ $timeFactory,
+ $config
);
$this->fileName = 'apps.json';
- $this->config = $config;
- $versionArray = \OC_Util::getVersion();
+ $versionArray = explode('.', $this->config->getSystemValue('version'));
$this->endpointUrl = sprintf(
'https://apps.nextcloud.com/api/v1/platform/%d.%d.%d/apps.json',
$versionArray[0],
@@ -62,15 +59,14 @@ class AppFetcher extends Fetcher {
/**
* Only returns the latest compatible app release in the releases array
*
+ * @param string $ETag
+ * @param string $content
+ *
* @return array
*/
- protected function fetch() {
- $client = $this->clientService->newClient();
- $response = $client->get($this->endpointUrl);
- $responseJson = [];
- $responseJson['data'] = json_decode($response->getBody(), true);
- $responseJson['timestamp'] = $this->timeFactory->getTime();
- $response = $responseJson;
+ protected function fetch($ETag, $content) {
+ /** @var mixed[] $response */
+ $response = parent::fetch($ETag, $content);
$ncVersion = $this->config->getSystemValue('version');
$ncMajorVersion = explode('.', $ncVersion)[0];
diff --git a/lib/private/App/AppStore/Fetcher/CategoryFetcher.php b/lib/private/App/AppStore/Fetcher/CategoryFetcher.php
index 74201ec37379145efe9119a822b5368b438a15a5..8b79259a66af3fddcf169b730b6be1326a571c21 100644
--- a/lib/private/App/AppStore/Fetcher/CategoryFetcher.php
+++ b/lib/private/App/AppStore/Fetcher/CategoryFetcher.php
@@ -24,20 +24,24 @@ namespace OC\App\AppStore\Fetcher;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\Files\IAppData;
use OCP\Http\Client\IClientService;
+use OCP\IConfig;
class CategoryFetcher extends Fetcher {
/**
* @param IAppData $appData
* @param IClientService $clientService
* @param ITimeFactory $timeFactory
+ * @param IConfig $config
*/
public function __construct(IAppData $appData,
IClientService $clientService,
- ITimeFactory $timeFactory) {
+ ITimeFactory $timeFactory,
+ IConfig $config) {
parent::__construct(
$appData,
$clientService,
- $timeFactory
+ $timeFactory,
+ $config
);
$this->fileName = 'categories.json';
$this->endpointUrl = 'https://apps.nextcloud.com/api/v1/categories.json';
diff --git a/lib/private/App/AppStore/Fetcher/Fetcher.php b/lib/private/App/AppStore/Fetcher/Fetcher.php
index f82e1a253f69d8dd3294f1e152d7d3c63b3d66ab..dab79e11821dd5bb43cd7118f67d0bf20142c1d0 100644
--- a/lib/private/App/AppStore/Fetcher/Fetcher.php
+++ b/lib/private/App/AppStore/Fetcher/Fetcher.php
@@ -21,10 +21,12 @@
namespace OC\App\AppStore\Fetcher;
+use OCP\AppFramework\Http;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\Files\IAppData;
use OCP\Files\NotFoundException;
use OCP\Http\Client\IClientService;
+use OCP\IConfig;
abstract class Fetcher {
const INVALIDATE_AFTER_SECONDS = 300;
@@ -35,6 +37,8 @@ abstract class Fetcher {
protected $clientService;
/** @var ITimeFactory */
protected $timeFactory;
+ /** @var IConfig */
+ protected $config;
/** @var string */
protected $fileName;
/** @var string */
@@ -44,26 +48,52 @@ abstract class Fetcher {
* @param IAppData $appData
* @param IClientService $clientService
* @param ITimeFactory $timeFactory
+ * @param IConfig $config
*/
public function __construct(IAppData $appData,
IClientService $clientService,
- ITimeFactory $timeFactory) {
+ ITimeFactory $timeFactory,
+ IConfig $config) {
$this->appData = $appData;
$this->clientService = $clientService;
$this->timeFactory = $timeFactory;
+ $this->config = $config;
}
/**
* Fetches the response from the server
*
+ * @param string $ETag
+ * @param string $content
+ *
* @return array
*/
- protected function fetch() {
+ protected function fetch($ETag, $content) {
+ $options = [];
+
+ if ($ETag !== '') {
+ $options['headers'] = [
+ 'If-None-Match' => $ETag,
+ ];
+ }
+
$client = $this->clientService->newClient();
- $response = $client->get($this->endpointUrl);
+ $response = $client->get($this->endpointUrl, $options);
+
$responseJson = [];
- $responseJson['data'] = json_decode($response->getBody(), true);
+ if ($response->getStatusCode() === Http::STATUS_NOT_MODIFIED) {
+ $responseJson['data'] = json_decode($content, true);
+ } else {
+ $responseJson['data'] = json_decode($response->getBody(), true);
+ $ETag = $response->getHeader('ETag');
+ }
+
$responseJson['timestamp'] = $this->timeFactory->getTime();
+ $responseJson['ncversion'] = $this->config->getSystemValue('version');
+ if ($ETag !== '') {
+ $responseJson['ETag'] = $ETag;
+ }
+
return $responseJson;
}
@@ -75,15 +105,27 @@ abstract class Fetcher {
public function get() {
$rootFolder = $this->appData->getFolder('/');
+ $ETag = '';
+ $content = '';
+
try {
// File does already exists
$file = $rootFolder->getFile($this->fileName);
$jsonBlob = json_decode($file->getContent(), true);
if(is_array($jsonBlob)) {
- // If the timestamp is older than 300 seconds request the files new
- if((int)$jsonBlob['timestamp'] > ($this->timeFactory->getTime() - self::INVALIDATE_AFTER_SECONDS)) {
+ /*
+ * If the timestamp is older than 300 seconds request the files new
+ * If the version changed (update!) also refresh
+ */
+ if((int)$jsonBlob['timestamp'] > ($this->timeFactory->getTime() - self::INVALIDATE_AFTER_SECONDS) &&
+ isset($jsonBlob['ncversion']) && $jsonBlob['ncversion'] === $this->config->getSystemValue('version', '0.0.0')) {
return $jsonBlob['data'];
}
+
+ if (isset($jsonBlob['ETag'])) {
+ $ETag = $jsonBlob['ETag'];
+ $content = json_encode($jsonBlob['data']);
+ }
}
} catch (NotFoundException $e) {
// File does not already exists
@@ -92,7 +134,7 @@ abstract class Fetcher {
// Refresh the file content
try {
- $responseJson = $this->fetch();
+ $responseJson = $this->fetch($ETag, $content);
$file->putContent(json_encode($responseJson));
return json_decode($file->getContent(), true)['data'];
} catch (\Exception $e) {
diff --git a/lib/private/AppConfig.php b/lib/private/AppConfig.php
index d92e8965b5cc292f5793fac03beab2d8fcf0bdda..4e102522550b85e830e2addcd63f4e00bba72c01 100644
--- a/lib/private/AppConfig.php
+++ b/lib/private/AppConfig.php
@@ -1,5 +1,6 @@
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
* @author Arthur Schiwon
@@ -29,7 +30,9 @@
namespace OC;
+use OC\DB\OracleConnection;
use OCP\IAppConfig;
+use OCP\IConfig;
use OCP\IDBConnection;
/**
@@ -37,12 +40,25 @@ use OCP\IDBConnection;
* database.
*/
class AppConfig implements IAppConfig {
- /**
- * @var \OCP\IDBConnection $conn
- */
+
+ /** @var array[] */
+ protected $sensitiveValues = [
+ 'spreed' => [
+ 'turn_server_secret',
+ ],
+ 'user_ldap' => [
+ 'ldap_agent_password',
+ ],
+ ];
+
+ /** @var \OCP\IDBConnection */
protected $conn;
- private $cache = array();
+ /** @var array[] */
+ private $cache = [];
+
+ /** @var bool */
+ private $configLoaded = false;
/**
* @param IDBConnection $conn
@@ -85,6 +101,7 @@ class AppConfig implements IAppConfig {
*
* @param string $app the app we are looking for
* @return array an array of key names
+ * @deprecated 8.0.0 use method getAppKeys of \OCP\IConfig
*
* This function gets all keys of an app. Please note that the values are
* not returned.
@@ -112,6 +129,7 @@ class AppConfig implements IAppConfig {
* @param string $key key
* @param string $default = null, default value if the key does not exist
* @return string the value or $default
+ * @deprecated 8.0.0 use method getAppValue of \OCP\IConfig
*
* This function gets a value from the appconfig table. If the key does
* not exist the default value will be returned
@@ -146,6 +164,7 @@ class AppConfig implements IAppConfig {
* @param string $key key
* @param string|float|int $value value
* @return bool True if the value was inserted or updated, false if the value was the same
+ * @deprecated 8.0.0 use method setAppValue of \OCP\IConfig
*/
public function setValue($app, $key, $value) {
if (!$this->hasKey($app, $key)) {
@@ -182,7 +201,7 @@ class AppConfig implements IAppConfig {
* http://docs.oracle.com/cd/E11882_01/server.112/e26088/conditions002.htm#i1033286
* > Large objects (LOBs) are not supported in comparison conditions.
*/
- if (!($this->conn instanceof \OC\DB\OracleConnection)) {
+ if (!($this->conn instanceof OracleConnection)) {
// Only update the value when it is not the same
$sql->andWhere($sql->expr()->neq('configvalue', $sql->createParameter('configvalue')))
->setParameter('configvalue', $value);
@@ -200,7 +219,8 @@ class AppConfig implements IAppConfig {
*
* @param string $app app
* @param string $key key
- * @return boolean|null
+ * @return boolean
+ * @deprecated 8.0.0 use method deleteAppValue of \OCP\IConfig
*/
public function deleteKey($app, $key) {
$this->loadConfigValues();
@@ -214,13 +234,15 @@ class AppConfig implements IAppConfig {
$sql->execute();
unset($this->cache[$app][$key]);
+ return false;
}
/**
* Remove app from appconfig
*
* @param string $app app
- * @return boolean|null
+ * @return boolean
+ * @deprecated 8.0.0 use method deleteAppValue of \OCP\IConfig
*
* Removes all keys in appconfig belonging to the app.
*/
@@ -234,6 +256,7 @@ class AppConfig implements IAppConfig {
$sql->execute();
unset($this->cache[$app]);
+ return false;
}
/**
@@ -261,11 +284,31 @@ class AppConfig implements IAppConfig {
}
}
+ /**
+ * get all values of the app or and filters out sensitive data
+ *
+ * @param string $app
+ * @return array
+ */
+ public function getFilteredValues($app) {
+ $values = $this->getValues($app, false);
+
+ foreach ($this->sensitiveValues[$app] as $sensitiveKey) {
+ if (isset($values[$sensitiveKey])) {
+ $values[$sensitiveKey] = IConfig::SENSITIVE_VALUE;
+ }
+ }
+
+ return $values;
+ }
+
/**
* Load all the app config values
*/
protected function loadConfigValues() {
- if ($this->configLoaded) return;
+ if ($this->configLoaded) {
+ return;
+ }
$this->cache = [];
diff --git a/lib/private/AppFramework/Db/Db.php b/lib/private/AppFramework/Db/Db.php
deleted file mode 100644
index 5aacdc517a2f30eacda33927504c3359cf62e33d..0000000000000000000000000000000000000000
--- a/lib/private/AppFramework/Db/Db.php
+++ /dev/null
@@ -1,314 +0,0 @@
-
- * @author Joas Schilling
- * @author Morris Jobke
- * @author Robin Appelman
- * @author Robin McCorkell
- * @author Thomas Müller
- *
- * @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
- *
- */
-
-namespace OC\AppFramework\Db;
-
-use OCP\DB\QueryBuilder\IQueryBuilder;
-use OCP\IDb;
-use OCP\IDBConnection;
-use OCP\PreConditionNotMetException;
-use Doctrine\DBAL\Platforms\MySqlPlatform;
-
-/**
- * @deprecated use IDBConnection directly, will be removed in ownCloud 10
- * Small Facade for being able to inject the database connection for tests
- */
-class Db implements IDb {
- /**
- * @var IDBConnection
- */
- protected $connection;
-
- /**
- * @param IDBConnection $connection
- */
- public function __construct(IDBConnection $connection) {
- $this->connection = $connection;
- }
-
- /**
- * Gets the ExpressionBuilder for the connection.
- *
- * @return \OCP\DB\QueryBuilder\IQueryBuilder
- */
- public function getQueryBuilder() {
- return $this->connection->getQueryBuilder();
- }
-
- /**
- * Used to abstract the ownCloud database access away
- *
- * @param string $sql the sql query with ? placeholder for params
- * @param int $limit the maximum number of rows
- * @param int $offset from which row we want to start
- * @deprecated use prepare instead, will be removed in ownCloud 10
- * @return \OC_DB_StatementWrapper prepared SQL query
- */
- public function prepareQuery($sql, $limit = null, $offset = null) {
- $isManipulation = \OC_DB::isManipulation($sql);
- $statement = $this->connection->prepare($sql, $limit, $offset);
- return new \OC_DB_StatementWrapper($statement, $isManipulation);
- }
-
-
- /**
- * Used to get the id of the just inserted element
- *
- * @deprecated use lastInsertId instead, will be removed in ownCloud 10
- * @param string $tableName the name of the table where we inserted the item
- * @return int the id of the inserted element
- */
- public function getInsertId($tableName) {
- return $this->connection->lastInsertId($tableName);
- }
-
- /**
- * Used to abstract the ownCloud database access away
- * @param string $sql the sql query with ? placeholder for params
- * @param int $limit the maximum number of rows
- * @param int $offset from which row we want to start
- * @return \Doctrine\DBAL\Driver\Statement The prepared statement.
- */
- public function prepare($sql, $limit=null, $offset=null) {
- return $this->connection->prepare($sql, $limit, $offset);
- }
-
- /**
- * Executes an, optionally parameterized, SQL query.
- *
- * If the query is parameterized, a prepared statement is used.
- * If an SQLLogger is configured, the execution is logged.
- *
- * @param string $query The SQL query to execute.
- * @param string[] $params The parameters to bind to the query, if any.
- * @param array $types The types the previous parameters are in.
- * @return \Doctrine\DBAL\Driver\Statement The executed statement.
- */
- public function executeQuery($query, array $params = array(), $types = array()) {
- return $this->connection->executeQuery($query, $params, $types);
- }
-
- /**
- * Executes an SQL INSERT/UPDATE/DELETE query with the given parameters
- * and returns the number of affected rows.
- *
- * This method supports PDO binding types as well as DBAL mapping types.
- *
- * @param string $query The SQL query.
- * @param array $params The query parameters.
- * @param array $types The parameter types.
- * @return integer The number of affected rows.
- */
- public function executeUpdate($query, array $params = array(), array $types = array()) {
- return $this->connection->executeUpdate($query, $params, $types);
- }
-
- /**
- * Used to get the id of the just inserted element
- * @param string $table the name of the table where we inserted the item
- * @return int the id of the inserted element
- */
- public function lastInsertId($table = null) {
- return $this->connection->lastInsertId($table);
- }
-
- /**
- * Insert a row if the matching row does not exists.
- *
- * @param string $table The table name (will replace *PREFIX* with the actual prefix)
- * @param array $input data that should be inserted into the table (column name => value)
- * @param array|null $compare List of values that should be checked for "if not exists"
- * If this is null or an empty array, all keys of $input will be compared
- * Please note: text fields (clob) must not be used in the compare array
- * @return int number of inserted rows
- * @throws \Doctrine\DBAL\DBALException
- */
- public function insertIfNotExist($table, $input, array $compare = null) {
- return $this->connection->insertIfNotExist($table, $input, $compare);
- }
-
- /**
- * Insert or update a row value
- *
- * @param string $table
- * @param array $keys (column name => value)
- * @param array $values (column name => value)
- * @param array $updatePreconditionValues ensure values match preconditions (column name => value)
- * @return int number of new rows
- * @throws \Doctrine\DBAL\DBALException
- * @throws PreConditionNotMetException
- */
- public function setValues($table, array $keys, array $values, array $updatePreconditionValues = []) {
- return $this->connection->setValues($table, $keys, $values, $updatePreconditionValues);
- }
-
- /**
- * @inheritdoc
- */
- public function lockTable($tableName) {
- $this->connection->lockTable($tableName);
- }
-
- /**
- * @inheritdoc
- */
- public function unlockTable() {
- $this->connection->unlockTable();
- }
-
- /**
- * Start a transaction
- */
- public function beginTransaction() {
- $this->connection->beginTransaction();
- }
-
- /**
- * Check if a transaction is active
- *
- * @return bool
- */
- public function inTransaction() {
- return $this->connection->inTransaction();
- }
-
- /**
- * Commit the database changes done during a transaction that is in progress
- */
- public function commit() {
- $this->connection->commit();
- }
-
- /**
- * Rollback the database changes done during a transaction that is in progress
- */
- public function rollBack() {
- $this->connection->rollBack();
- }
-
- /**
- * Gets the error code and message as a string for logging
- * @return string
- */
- public function getError() {
- return $this->connection->getError();
- }
-
- /**
- * Fetch the SQLSTATE associated with the last database operation.
- *
- * @return integer The last error code.
- */
- public function errorCode() {
- return $this->connection->errorCode();
- }
-
- /**
- * Fetch extended error information associated with the last database operation.
- *
- * @return array The last error information.
- */
- public function errorInfo() {
- return $this->connection->errorInfo();
- }
-
- /**
- * Establishes the connection with the database.
- *
- * @return bool
- */
- public function connect() {
- return $this->connection->connect();
- }
-
- /**
- * Close the database connection
- */
- public function close() {
- $this->connection->close();
- }
-
- /**
- * Quotes a given input parameter.
- *
- * @param mixed $input Parameter to be quoted.
- * @param int $type Type of the parameter.
- * @return string The quoted parameter.
- */
- public function quote($input, $type = IQueryBuilder::PARAM_STR) {
- return $this->connection->quote($input, $type);
- }
-
- /**
- * Gets the DatabasePlatform instance that provides all the metadata about
- * the platform this driver connects to.
- *
- * @return \Doctrine\DBAL\Platforms\AbstractPlatform The database platform.
- */
- public function getDatabasePlatform() {
- return $this->connection->getDatabasePlatform();
- }
-
- /**
- * Drop a table from the database if it exists
- *
- * @param string $table table name without the prefix
- */
- public function dropTable($table) {
- $this->connection->dropTable($table);
- }
-
- /**
- * Check if a table exists
- *
- * @param string $table table name without the prefix
- * @return bool
- */
- public function tableExists($table) {
- return $this->connection->tableExists($table);
- }
-
- /**
- * Espace a parameter to be used in a LIKE query
- *
- * @param string $param
- * @return string
- */
- public function escapeLikeParameter($param) {
- return $this->connection->escapeLikeParameter($param);
- }
-
- /**
- * Check whether or not the current database support 4byte wide unicode
- *
- * @return bool
- * @since 11.0.0
- */
- public function supports4ByteText() {
- return $this->connection->supports4ByteText();
- }
-}
diff --git a/lib/private/AppFramework/DependencyInjection/DIContainer.php b/lib/private/AppFramework/DependencyInjection/DIContainer.php
index 148a15172ac3da4664b88e0a5eb14ec8ebcae7a6..0879b3e9330e12f584b90abb98f6610f12e425d1 100644
--- a/lib/private/AppFramework/DependencyInjection/DIContainer.php
+++ b/lib/private/AppFramework/DependencyInjection/DIContainer.php
@@ -43,8 +43,10 @@ use OC\AppFramework\Middleware\OCSMiddleware;
use OC\AppFramework\Middleware\Security\SecurityMiddleware;
use OC\AppFramework\Middleware\SessionMiddleware;
use OC\AppFramework\Utility\SimpleContainer;
+use OC\AppFramework\Utility\TimeFactory;
use OC\Core\Middleware\TwoFactorMiddleware;
use OC\RichObjectStrings\Validator;
+use OC\Security\Bruteforce\Throttler;
use OCP\AppFramework\IApi;
use OCP\AppFramework\IAppContainer;
use OCP\Files\IAppData;
@@ -91,6 +93,10 @@ class DIContainer extends SimpleContainer implements IAppContainer {
return new Output($this->getServer()->getWebRoot());
});
+ $this->registerService(\OCP\Authentication\LoginCredentials\IStore::class, function() {
+ return $this->getServer()->query(\OCP\Authentication\LoginCredentials\IStore::class);
+ });
+
$this->registerService('OCP\\IAvatarManager', function($c) {
return $this->getServer()->getAvatarManager();
});
@@ -134,10 +140,6 @@ class DIContainer extends SimpleContainer implements IAppContainer {
return $this->getServer()->getDateTimeFormatter();
});
- $this->registerService('OCP\\IDb', function($c) {
- return $this->getServer()->getDb();
- });
-
$this->registerService('OCP\\IDBConnection', function($c) {
return $this->getServer()->getDatabaseConnection();
});
@@ -380,20 +382,25 @@ class DIContainer extends SimpleContainer implements IAppContainer {
*/
$app = $this;
$this->registerService('SecurityMiddleware', function($c) use ($app){
+ /** @var \OC\Server $server */
+ $server = $app->getServer();
+
return new SecurityMiddleware(
$c['Request'],
$c['ControllerMethodReflector'],
- $app->getServer()->getNavigationManager(),
- $app->getServer()->getURLGenerator(),
- $app->getServer()->getLogger(),
- $app->getServer()->getSession(),
+ $server->getNavigationManager(),
+ $server->getURLGenerator(),
+ $server->getLogger(),
+ $server->getSession(),
$c['AppName'],
$app->isLoggedIn(),
$app->isAdminUser(),
- $app->getServer()->getContentSecurityPolicyManager(),
- $app->getServer()->getCsrfTokenManager(),
- $app->getServer()->getContentSecurityPolicyNonceManager()
+ $server->getContentSecurityPolicyManager(),
+ $server->getCsrfTokenManager(),
+ $server->getContentSecurityPolicyNonceManager(),
+ $server->getBruteForceThrottler()
);
+
});
$this->registerService('CORSMiddleware', function($c) {
diff --git a/lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php b/lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php
index d60d5749d571662740026f086c1b690d8d09b8dd..edba6a3e75928b8459f7bc8aeb21711e65718331 100644
--- a/lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php
+++ b/lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php
@@ -36,6 +36,7 @@ use OC\AppFramework\Middleware\Security\Exceptions\NotConfirmedException;
use OC\AppFramework\Middleware\Security\Exceptions\NotLoggedInException;
use OC\AppFramework\Middleware\Security\Exceptions\StrictCookieMissingException;
use OC\AppFramework\Utility\ControllerMethodReflector;
+use OC\Security\Bruteforce\Throttler;
use OC\Security\CSP\ContentSecurityPolicyManager;
use OC\Security\CSP\ContentSecurityPolicyNonceManager;
use OC\Security\CSRF\CsrfTokenManager;
@@ -87,6 +88,8 @@ class SecurityMiddleware extends Middleware {
private $csrfTokenManager;
/** @var ContentSecurityPolicyNonceManager */
private $cspNonceManager;
+ /** @var Throttler */
+ private $throttler;
/**
* @param IRequest $request
@@ -101,6 +104,7 @@ class SecurityMiddleware extends Middleware {
* @param ContentSecurityPolicyManager $contentSecurityPolicyManager
* @param CSRFTokenManager $csrfTokenManager
* @param ContentSecurityPolicyNonceManager $cspNonceManager
+ * @param Throttler $throttler
*/
public function __construct(IRequest $request,
ControllerMethodReflector $reflector,
@@ -113,7 +117,8 @@ class SecurityMiddleware extends Middleware {
$isAdminUser,
ContentSecurityPolicyManager $contentSecurityPolicyManager,
CsrfTokenManager $csrfTokenManager,
- ContentSecurityPolicyNonceManager $cspNonceManager) {
+ ContentSecurityPolicyNonceManager $cspNonceManager,
+ Throttler $throttler) {
$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->throttler = $throttler;
}
@@ -185,6 +191,12 @@ class SecurityMiddleware extends Middleware {
}
}
+ if($this->reflector->hasAnnotation('BruteForceProtection')) {
+ $action = $this->reflector->getAnnotationParameter('BruteForceProtection');
+ $this->throttler->sleepDelay($this->request->getRemoteAddress(), $action);
+ $this->throttler->registerAttempt($action, $this->request->getRemoteAddress());
+ }
+
/**
* FIXME: Use DI once available
* Checks if app is enabled (also includes a check whether user is allowed to access the resource)
diff --git a/lib/private/AppFramework/Utility/ControllerMethodReflector.php b/lib/private/AppFramework/Utility/ControllerMethodReflector.php
index 33a117d812178df647b2d6113c9f1ae7502ac447..034fc3a17590756bd02efb2d15746c6723cf2ed3 100644
--- a/lib/private/AppFramework/Utility/ControllerMethodReflector.php
+++ b/lib/private/AppFramework/Utility/ControllerMethodReflector.php
@@ -55,8 +55,10 @@ class ControllerMethodReflector implements IControllerMethodReflector{
$docs = $reflection->getDocComment();
// extract everything prefixed by @ and first letter uppercase
- preg_match_all('/@([A-Z]\w+)/', $docs, $matches);
- $this->annotations = $matches[1];
+ preg_match_all('/^\h+\*\h+@(?P[A-Z]\w+)(\h+(?P\w+))?$/m', $docs, $matches);
+ foreach($matches['annotation'] as $key => $annontation) {
+ $this->annotations[$annontation] = $matches['parameter'][$key];
+ }
// extract type parameter information
preg_match_all('/@param\h+(?P\w+)\h+\$(?P\w+)/', $docs, $matches);
@@ -112,7 +114,22 @@ class ControllerMethodReflector implements IControllerMethodReflector{
* @return bool true if the annotation is found
*/
public function hasAnnotation($name){
- return in_array($name, $this->annotations);
+ return array_key_exists($name, $this->annotations);
+ }
+
+
+ /**
+ * Get optional annotation parameter
+ * @param string $name the name of the annotation
+ * @return string
+ */
+ public function getAnnotationParameter($name){
+ $parameter = '';
+ if($this->hasAnnotation($name)) {
+ $parameter = $this->annotations[$name];
+ }
+
+ return $parameter;
}
diff --git a/lib/private/Archive/TAR.php b/lib/private/Archive/TAR.php
index bbd24bd05a1fe203077b890b4a058fdaa6f36a54..07ccd09f3996f767af0cc2413c59bb5e315515c8 100644
--- a/lib/private/Archive/TAR.php
+++ b/lib/private/Archive/TAR.php
@@ -33,6 +33,8 @@
namespace OC\Archive;
+use Icewind\Streams\CallbackWrapper;
+
class TAR extends Archive {
const PLAIN = 0;
const GZIP = 1;
@@ -359,22 +361,19 @@ class TAR extends Archive {
if ($mode == 'r' or $mode == 'rb') {
return fopen($tmpFile, $mode);
} else {
- \OC\Files\Stream\Close::registerCallback($tmpFile, array($this, 'writeBack'));
- self::$tempFiles[$tmpFile] = $path;
- return fopen('close://' . $tmpFile, $mode);
+ $handle = fopen($tmpFile, $mode);
+ return CallbackWrapper::wrap($handle, null, null, function () use ($path, $tmpFile) {
+ $this->writeBack($tmpFile, $path);
+ });
}
}
- private static $tempFiles = array();
-
/**
* write back temporary files
*/
- function writeBack($tmpFile) {
- if (isset(self::$tempFiles[$tmpFile])) {
- $this->addFile(self::$tempFiles[$tmpFile], $tmpFile);
- unlink($tmpFile);
- }
+ function writeBack($tmpFile, $path) {
+ $this->addFile($path, $tmpFile);
+ unlink($tmpFile);
}
/**
diff --git a/lib/private/Archive/ZIP.php b/lib/private/Archive/ZIP.php
index 9e9fe40b2b471728bc7f3162d5bf1e51d88a4c66..0ed0f48acc4599375f3b4c92e9a4e87ed0311e04 100644
--- a/lib/private/Archive/ZIP.php
+++ b/lib/private/Archive/ZIP.php
@@ -31,6 +31,8 @@
namespace OC\Archive;
+use Icewind\Streams\CallbackWrapper;
+
class ZIP extends Archive{
/**
* @var \ZipArchive zip
@@ -198,24 +200,22 @@ class ZIP extends Archive{
$ext='';
}
$tmpFile=\OCP\Files::tmpFile($ext);
- \OC\Files\Stream\Close::registerCallback($tmpFile, array($this, 'writeBack'));
if($this->fileExists($path)) {
$this->extractFile($path, $tmpFile);
}
- self::$tempFiles[$tmpFile]=$path;
- return fopen('close://'.$tmpFile, $mode);
+ $handle = fopen($tmpFile, $mode);
+ return CallbackWrapper::wrap($handle, null, null, function () use ($path, $tmpFile) {
+ $this->writeBack($tmpFile, $path);
+ });
}
}
- private static $tempFiles=array();
/**
* write back temporary files
*/
- function writeBack($tmpFile) {
- if(isset(self::$tempFiles[$tmpFile])) {
- $this->addFile(self::$tempFiles[$tmpFile], $tmpFile);
- unlink($tmpFile);
- }
+ function writeBack($tmpFile, $path) {
+ $this->addFile($path, $tmpFile);
+ unlink($tmpFile);
}
/**
diff --git a/lib/private/Authentication/LoginCredentials/Credentials.php b/lib/private/Authentication/LoginCredentials/Credentials.php
new file mode 100644
index 0000000000000000000000000000000000000000..9314b7489dbc98392aeeda393997e1299059724d
--- /dev/null
+++ b/lib/private/Authentication/LoginCredentials/Credentials.php
@@ -0,0 +1,72 @@
+
+ *
+ * @author 2016 Christoph Wurst
+ *
+ * @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 .
+ *
+ */
+
+namespace OC\Authentication\LoginCredentials;
+
+use OCP\Authentication\LoginCredentials\ICredentials;
+
+class Credentials implements ICredentials {
+
+ /** @var string */
+ private $uid;
+
+ /** @var string */
+ private $loginName;
+
+ /** @var string */
+ private $password;
+
+ /**
+ * @param string $uid
+ * @param string $loginName
+ * @param string $password
+ */
+ public function __construct($uid, $loginName, $password) {
+ $this->uid = $uid;
+ $this->loginName = $loginName;
+ $this->password = $password;
+ }
+
+ /**
+ * @return string
+ */
+ public function getUID() {
+ return $this->uid;
+ }
+
+ /**
+ * @return string
+ */
+ public function getLoginName() {
+ return $this->loginName;
+ }
+
+ /**
+ * @return string
+ */
+ public function getPassword() {
+ return $this->password;
+ }
+
+}
diff --git a/lib/private/Authentication/LoginCredentials/Store.php b/lib/private/Authentication/LoginCredentials/Store.php
new file mode 100644
index 0000000000000000000000000000000000000000..e44c88c7aea291416401755dbfe8e3da4bf1913a
--- /dev/null
+++ b/lib/private/Authentication/LoginCredentials/Store.php
@@ -0,0 +1,120 @@
+
+ *
+ * @author 2016 Christoph Wurst
+ *
+ * @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 .
+ *
+ */
+
+namespace OC\Authentication\LoginCredentials;
+
+use OC\Authentication\Exceptions\InvalidTokenException;
+use OC\Authentication\Exceptions\PasswordlessTokenException;
+use OC\Authentication\Token\IProvider;
+use OCP\Authentication\Exceptions\CredentialsUnavailableException;
+use OCP\Authentication\LoginCredentials\ICredentials;
+use OCP\Authentication\LoginCredentials\IStore;
+use OCP\ILogger;
+use OCP\ISession;
+use OCP\Session\Exceptions\SessionNotAvailableException;
+use OCP\Util;
+
+class Store implements IStore {
+
+ /** @var ISession */
+ private $session;
+
+ /** @var ILogger */
+ private $logger;
+
+ /** @var IProvider|null */
+ private $tokenProvider;
+
+ /**
+ * @param ISession $session
+ * @param ILogger $logger
+ * @param IProvider $tokenProvider
+ */
+ public function __construct(ISession $session, ILogger $logger, IProvider $tokenProvider = null) {
+ $this->session = $session;
+ $this->logger = $logger;
+ $this->tokenProvider = $tokenProvider;
+
+ Util::connectHook('OC_User', 'post_login', $this, 'authenticate');
+ }
+
+ /**
+ * Hook listener on post login
+ *
+ * @param array $params
+ */
+ public function authenticate(array $params) {
+ $this->session->set('login_credentials', json_encode($params));
+ }
+
+ /**
+ * Replace the session implementation
+ *
+ * @param ISession $session
+ */
+ public function setSession(ISession $session) {
+ $this->session = $session;
+ }
+
+ /**
+ * @since 12
+ *
+ * @return ICredentials the login credentials of the current user
+ * @throws CredentialsUnavailableException
+ */
+ public function getLoginCredentials() {
+ if (is_null($this->tokenProvider)) {
+ throw new CredentialsUnavailableException();
+ }
+
+ $trySession = false;
+ try {
+ $sessionId = $this->session->getId();
+ $token = $this->tokenProvider->getToken($sessionId);
+
+ $uid = $token->getUID();
+ $user = $token->getLoginName();
+ $password = $this->tokenProvider->getPassword($token, $sessionId);
+
+ return new Credentials($uid, $user, $password);
+ } catch (SessionNotAvailableException $ex) {
+ $this->logger->debug('could not get login credentials because session is unavailable', ['app' => 'core']);
+ } catch (InvalidTokenException $ex) {
+ $this->logger->debug('could not get login credentials because the token is invalid', ['app' => 'core']);
+ $trySession = true;
+ } catch (PasswordlessTokenException $ex) {
+ $this->logger->debug('could not get login credentials because the token has no password', ['app' => 'core']);
+ $trySession = true;
+ }
+
+ if ($trySession && $this->session->exists('login_credentials')) {
+ $creds = json_decode($this->session->get('login_credentials'));
+ return new Credentials($creds->uid, $creds->uid, $creds->password);
+ }
+
+ // If we reach this line, an exception was thrown.
+ throw new CredentialsUnavailableException();
+ }
+
+}
diff --git a/lib/private/Authentication/TwoFactorAuth/Manager.php b/lib/private/Authentication/TwoFactorAuth/Manager.php
index 48792aa685b1efc5f0c648742cc5fea4125e36e2..1d0deada69657c3b9ceef349213b8e2bb9dffa85 100644
--- a/lib/private/Authentication/TwoFactorAuth/Manager.php
+++ b/lib/private/Authentication/TwoFactorAuth/Manager.php
@@ -1,4 +1,5 @@
appManager = $appManager;
$this->session = $session;
$this->config = $config;
+ $this->activityManager = $activityManager;
+ $this->logger = $logger;
}
/**
@@ -184,10 +198,39 @@ class Manager {
}
$this->session->remove(self::SESSION_UID_KEY);
$this->session->remove(self::REMEMBER_LOGIN);
+
+ $this->publishEvent($user, 'twofactor_success', [
+ 'provider' => $provider->getDisplayName(),
+ ]);
+ } else {
+ $this->publishEvent($user, 'twofactor_failed', [
+ 'provider' => $provider->getDisplayName(),
+ ]);
}
return $passed;
}
+ /**
+ * Push a 2fa event the user's activity stream
+ *
+ * @param IUser $user
+ * @param string $event
+ */
+ private function publishEvent(IUser $user, $event, array $params) {
+ $activity = $this->activityManager->generateEvent();
+ $activity->setApp('twofactor_generic')
+ ->setType('twofactor')
+ ->setAuthor($user->getUID())
+ ->setAffectedUser($user->getUID())
+ ->setSubject($event, $params);
+ try {
+ $this->activityManager->publish($activity);
+ } catch (Exception $e) {
+ $this->logger->warning('could not publish backup code creation activity', ['app' => 'twofactor_backupcodes']);
+ $this->logger->logException($e, ['app' => 'twofactor_backupcodes']);
+ }
+ }
+
/**
* Check if the currently logged in user needs to pass 2FA
*
diff --git a/lib/private/Console/TimestampFormatter.php b/lib/private/Console/TimestampFormatter.php
index 5b292439a4c3643a0ef598937a58163973ef9825..66dd38e6ac32510fd3abd3cee73f5583480e6fc3 100644
--- a/lib/private/Console/TimestampFormatter.php
+++ b/lib/private/Console/TimestampFormatter.php
@@ -97,11 +97,11 @@ class TimestampFormatter implements OutputFormatterInterface {
*/
public function format($message) {
- $timeZone = $this->config->getSystemValue('logtimezone', null);
+ $timeZone = $this->config->getSystemValue('logtimezone', 'UTC');
$timeZone = $timeZone !== null ? new \DateTimeZone($timeZone) : null;
$time = new \DateTime('now', $timeZone);
- $timestampInfo = $time->format($this->config->getSystemValue('logdateformat', 'c'));
+ $timestampInfo = $time->format($this->config->getSystemValue('logdateformat', \DateTime::ATOM));
return $timestampInfo . ' ' . $this->formatter->format($message);
}
diff --git a/lib/private/DB/QueryBuilder/ExpressionBuilder/ExpressionBuilder.php b/lib/private/DB/QueryBuilder/ExpressionBuilder/ExpressionBuilder.php
index f9170e97a025765f51f365f336436a6ed5cea37d..f172260df79e8d6b1516efb8bb39b8ec9ecbfd8b 100644
--- a/lib/private/DB/QueryBuilder/ExpressionBuilder/ExpressionBuilder.php
+++ b/lib/private/DB/QueryBuilder/ExpressionBuilder/ExpressionBuilder.php
@@ -30,6 +30,8 @@ use OC\DB\QueryBuilder\Literal;
use OC\DB\QueryBuilder\QueryFunction;
use OC\DB\QueryBuilder\QuoteHelper;
use OCP\DB\QueryBuilder\IExpressionBuilder;
+use OCP\DB\QueryBuilder\ILiteral;
+use OCP\DB\QueryBuilder\IQueryFunction;
use OCP\IDBConnection;
class ExpressionBuilder implements IExpressionBuilder {
@@ -39,12 +41,16 @@ class ExpressionBuilder implements IExpressionBuilder {
/** @var QuoteHelper */
protected $helper;
+ /** @var IDBConnection */
+ protected $connection;
+
/**
* Initializes a new ExpressionBuilder.
*
* @param \OCP\IDBConnection $connection
*/
public function __construct(IDBConnection $connection) {
+ $this->connection = $connection;
$this->helper = new QuoteHelper();
$this->expressionBuilder = new DoctrineExpressionBuilder($connection);
}
@@ -344,13 +350,43 @@ class ExpressionBuilder implements IExpressionBuilder {
return $this->expressionBuilder->notIn($x, $y);
}
+ /**
+ * Binary AND Operator copies a bit to the result if it exists in both operands.
+ *
+ * @param string|ILiteral $x The field or value to check
+ * @param int $y Bitmap that must be set
+ * @return IQueryFunction
+ * @since 12.0.0
+ */
+ public function bitwiseAnd($x, $y) {
+ return new QueryFunction($this->connection->getDatabasePlatform()->getBitAndComparisonExpression(
+ $this->helper->quoteColumnName($x),
+ $y
+ ));
+ }
+
+ /**
+ * Binary OR Operator copies a bit if it exists in either operand.
+ *
+ * @param string|ILiteral $x The field or value to check
+ * @param int $y Bitmap that must be set
+ * @return IQueryFunction
+ * @since 12.0.0
+ */
+ public function bitwiseOr($x, $y) {
+ return new QueryFunction($this->connection->getDatabasePlatform()->getBitOrComparisonExpression(
+ $this->helper->quoteColumnName($x),
+ $y
+ ));
+ }
+
/**
* Quotes a given input parameter.
*
* @param mixed $input The parameter to be quoted.
* @param mixed|null $type One of the IQueryBuilder::PARAM_* constants
*
- * @return Literal
+ * @return ILiteral
*/
public function literal($input, $type = null) {
return new Literal($this->expressionBuilder->literal($input, $type));
diff --git a/lib/private/Encryption/Keys/Storage.php b/lib/private/Encryption/Keys/Storage.php
index 8149ffe9dcefb8364e6b6820d638eae8476d0a41..e8d152581fe193906498c8acdac064e8fb5021e5 100644
--- a/lib/private/Encryption/Keys/Storage.php
+++ b/lib/private/Encryption/Keys/Storage.php
@@ -51,6 +51,9 @@ class Storage implements IStorage {
/** @var string */
private $encryption_base_dir;
+ /** @var string */
+ private $backup_base_dir;
+
/** @var array */
private $keyCache = [];
@@ -64,6 +67,7 @@ class Storage implements IStorage {
$this->encryption_base_dir = '/files_encryption';
$this->keys_base_dir = $this->encryption_base_dir .'/keys';
+ $this->backup_base_dir = $this->encryption_base_dir .'/backup';
$this->root_dir = $this->util->getKeyStorageRoot();
}
@@ -286,6 +290,37 @@ class Storage implements IStorage {
return false;
}
+ /**
+ * backup keys of a given encryption module
+ *
+ * @param string $encryptionModuleId
+ * @param string $purpose
+ * @param string $uid
+ * @return bool
+ * @since 12.0.0
+ */
+ public function backupUserKeys($encryptionModuleId, $purpose, $uid) {
+ $source = $uid . $this->encryption_base_dir . '/' . $encryptionModuleId;
+ $backupDir = $uid . $this->backup_base_dir;
+ if (!$this->view->file_exists($backupDir)) {
+ $this->view->mkdir($backupDir);
+ }
+
+ $backupDir = $backupDir . '/' . $purpose . '.' . $encryptionModuleId . '.' . $this->getTimestamp();
+ $this->view->mkdir($backupDir);
+
+ return $this->view->copy($source, $backupDir);
+ }
+
+ /**
+ * get the current timestamp
+ *
+ * @return int
+ */
+ protected function getTimestamp() {
+ return time();
+ }
+
/**
* get system wide path and detect mount points
*
diff --git a/lib/private/Files/Cache/Cache.php b/lib/private/Files/Cache/Cache.php
index 3a3f51488e6c701238ae5f4b5d897fd7aeb85c55..a966d621c58d4e617c461b2545b24ff1e250a0af 100644
--- a/lib/private/Files/Cache/Cache.php
+++ b/lib/private/Files/Cache/Cache.php
@@ -142,7 +142,7 @@ class Cache implements ICache {
}
return $data;
} else {
- return self::cacheEntryFromData($data, $this->storageId, $this->mimetypeLoader);
+ return self::cacheEntryFromData($data, $this->mimetypeLoader);
}
}
@@ -150,11 +150,10 @@ class Cache implements ICache {
* Create a CacheEntry from database row
*
* @param array $data
- * @param string $storageId
* @param IMimeTypeLoader $mimetypeLoader
* @return CacheEntry
*/
- public static function cacheEntryFromData($data, $storageId, IMimeTypeLoader $mimetypeLoader) {
+ public static function cacheEntryFromData($data, IMimeTypeLoader $mimetypeLoader) {
//fix types
$data['fileid'] = (int)$data['fileid'];
$data['parent'] = (int)$data['parent'];
@@ -163,7 +162,7 @@ class Cache implements ICache {
$data['storage_mtime'] = (int)$data['storage_mtime'];
$data['encryptedVersion'] = (int)$data['encrypted'];
$data['encrypted'] = (bool)$data['encrypted'];
- $data['storage'] = $storageId;
+ $data['storage_id'] = $data['storage'];
$data['mimetype'] = $mimetypeLoader->getMimetypeById($data['mimetype']);
$data['mimepart'] = $mimetypeLoader->getMimetypeById($data['mimepart']);
if ($data['storage_mtime'] == 0) {
diff --git a/lib/private/Files/Config/UserMountCache.php b/lib/private/Files/Config/UserMountCache.php
index c9a701d24b6a7dd21f60db88c93041e045cb51d3..423eb5c423dfbece0ed0f15c35ae17925911cff5 100644
--- a/lib/private/Files/Config/UserMountCache.php
+++ b/lib/private/Files/Config/UserMountCache.php
@@ -141,7 +141,11 @@ class UserMountCache implements IUserMountCache {
foreach ($cachedMounts as $cachedMount) {
if (
$newMount->getRootId() === $cachedMount->getRootId() &&
- ($newMount->getMountPoint() !== $cachedMount->getMountPoint() || $newMount->getMountId() !== $cachedMount->getMountId())
+ (
+ $newMount->getMountPoint() !== $cachedMount->getMountPoint() ||
+ $newMount->getStorageId() !== $cachedMount->getStorageId() ||
+ $newMount->getMountId() !== $cachedMount->getMountId()
+ )
) {
$changed[] = $newMount;
}
@@ -169,6 +173,7 @@ class UserMountCache implements IUserMountCache {
$builder = $this->connection->getQueryBuilder();
$query = $builder->update('mounts')
+ ->set('storage_id', $builder->createNamedParameter($mount->getStorageId()))
->set('mount_point', $builder->createNamedParameter($mount->getMountPoint()))
->set('mount_id', $builder->createNamedParameter($mount->getMountId(), IQueryBuilder::PARAM_INT))
->where($builder->expr()->eq('user_id', $builder->createNamedParameter($mount->getUser()->getUID())))
diff --git a/lib/private/Files/Mount/LocalHomeMountProvider.php b/lib/private/Files/Mount/LocalHomeMountProvider.php
index 23bbfcd5ffad3efde2f3c802eac165d587484cbb..9057f62995f31efb0113f22ab26021bb8df65a88 100644
--- a/lib/private/Files/Mount/LocalHomeMountProvider.php
+++ b/lib/private/Files/Mount/LocalHomeMountProvider.php
@@ -39,9 +39,6 @@ class LocalHomeMountProvider implements IHomeMountProvider {
*/
public function getHomeMountForUser(IUser $user, IStorageFactory $loader) {
$arguments = ['user' => $user];
- if (\OC\Files\Cache\Storage::exists('local::' . $user->getHome() . '/')) {
- $arguments['legacy'] = true;
- }
return new MountPoint('\OC\Files\Storage\Home', '/' . $user->getUID(), $arguments, $loader);
}
}
diff --git a/lib/private/Files/Node/File.php b/lib/private/Files/Node/File.php
index c4430b9181daf0bd2fc68f9685326c3039c4d66d..4bfa5d583f78938abf86fec10c3601dfe6a52eef 100644
--- a/lib/private/Files/Node/File.php
+++ b/lib/private/Files/Node/File.php
@@ -29,6 +29,16 @@ namespace OC\Files\Node;
use OCP\Files\NotPermittedException;
class File extends Node implements \OCP\Files\File {
+ /**
+ * Creates a Folder that represents a non-existing path
+ *
+ * @param string $path path
+ * @return string non-existing node class
+ */
+ protected function createNonExistingNode($path) {
+ return new NonExistingFile($this->root, $this->view, $path);
+ }
+
/**
* @return string
* @throws \OCP\Files\NotPermittedException
@@ -113,52 +123,6 @@ class File extends Node implements \OCP\Files\File {
}
}
- /**
- * @param string $targetPath
- * @throws \OCP\Files\NotPermittedException
- * @return \OC\Files\Node\Node
- */
- public function copy($targetPath) {
- $targetPath = $this->normalizePath($targetPath);
- $parent = $this->root->get(dirname($targetPath));
- if ($parent instanceof Folder and $this->isValidPath($targetPath) and $parent->isCreatable()) {
- $nonExisting = new NonExistingFile($this->root, $this->view, $targetPath);
- $this->root->emit('\OC\Files', 'preCopy', array($this, $nonExisting));
- $this->root->emit('\OC\Files', 'preWrite', array($nonExisting));
- $this->view->copy($this->path, $targetPath);
- $targetNode = $this->root->get($targetPath);
- $this->root->emit('\OC\Files', 'postCopy', array($this, $targetNode));
- $this->root->emit('\OC\Files', 'postWrite', array($targetNode));
- return $targetNode;
- } else {
- throw new NotPermittedException();
- }
- }
-
- /**
- * @param string $targetPath
- * @throws \OCP\Files\NotPermittedException
- * @return \OC\Files\Node\Node
- */
- public function move($targetPath) {
- $targetPath = $this->normalizePath($targetPath);
- $parent = $this->root->get(dirname($targetPath));
- if ($parent instanceof Folder and $this->isValidPath($targetPath) and $parent->isCreatable()) {
- $nonExisting = new NonExistingFile($this->root, $this->view, $targetPath);
- $this->root->emit('\OC\Files', 'preRename', array($this, $nonExisting));
- $this->root->emit('\OC\Files', 'preWrite', array($nonExisting));
- $this->view->rename($this->path, $targetPath);
- $targetNode = $this->root->get($targetPath);
- $this->root->emit('\OC\Files', 'postRename', array($this, $targetNode));
- $this->root->emit('\OC\Files', 'postWrite', array($targetNode));
- $this->path = $targetPath;
- $this->fileInfo = null;
- return $targetNode;
- } else {
- throw new NotPermittedException();
- }
- }
-
/**
* @param string $type
* @param bool $raw
diff --git a/lib/private/Files/Node/Folder.php b/lib/private/Files/Node/Folder.php
index 288a02ef2071807962b520a6fc28167158101fa0..fd907f708f39376810c7dba042780c2aca568c83 100644
--- a/lib/private/Files/Node/Folder.php
+++ b/lib/private/Files/Node/Folder.php
@@ -35,6 +35,16 @@ use OCP\Files\NotFoundException;
use OCP\Files\NotPermittedException;
class Folder extends Node implements \OCP\Files\Folder {
+ /**
+ * Creates a Folder that represents a non-existing path
+ *
+ * @param string $path path
+ * @return string non-existing node class
+ */
+ protected function createNonExistingNode($path) {
+ return new NonExistingFolder($this->root, $this->view, $path);
+ }
+
/**
* @param string $path path relative to the folder
* @return string
@@ -325,51 +335,6 @@ class Folder extends Node implements \OCP\Files\Folder {
}
}
- /**
- * @param string $targetPath
- * @throws \OCP\Files\NotPermittedException
- * @return \OC\Files\Node\Node
- */
- public function copy($targetPath) {
- $targetPath = $this->normalizePath($targetPath);
- $parent = $this->root->get(dirname($targetPath));
- if ($parent instanceof Folder and $this->isValidPath($targetPath) and $parent->isCreatable()) {
- $nonExisting = new NonExistingFolder($this->root, $this->view, $targetPath);
- $this->root->emit('\OC\Files', 'preCopy', array($this, $nonExisting));
- $this->root->emit('\OC\Files', 'preWrite', array($nonExisting));
- $this->view->copy($this->path, $targetPath);
- $targetNode = $this->root->get($targetPath);
- $this->root->emit('\OC\Files', 'postCopy', array($this, $targetNode));
- $this->root->emit('\OC\Files', 'postWrite', array($targetNode));
- return $targetNode;
- } else {
- throw new NotPermittedException('No permission to copy to path');
- }
- }
-
- /**
- * @param string $targetPath
- * @throws \OCP\Files\NotPermittedException
- * @return \OC\Files\Node\Node
- */
- public function move($targetPath) {
- $targetPath = $this->normalizePath($targetPath);
- $parent = $this->root->get(dirname($targetPath));
- if ($parent instanceof Folder and $this->isValidPath($targetPath) and $parent->isCreatable()) {
- $nonExisting = new NonExistingFolder($this->root, $this->view, $targetPath);
- $this->root->emit('\OC\Files', 'preRename', array($this, $nonExisting));
- $this->root->emit('\OC\Files', 'preWrite', array($nonExisting));
- $this->view->rename($this->path, $targetPath);
- $targetNode = $this->root->get($targetPath);
- $this->root->emit('\OC\Files', 'postRename', array($this, $targetNode));
- $this->root->emit('\OC\Files', 'postWrite', array($targetNode));
- $this->path = $targetPath;
- return $targetNode;
- } else {
- throw new NotPermittedException('No permission to move to path');
- }
- }
-
/**
* Add a suffix to the name in case the file exists
*
diff --git a/lib/private/Files/Node/Node.php b/lib/private/Files/Node/Node.php
index 226c182622f2b9a953acf5d80c93fe41261f517b..e00debe69032663af17f80359b19a33d79d90be8 100644
--- a/lib/private/Files/Node/Node.php
+++ b/lib/private/Files/Node/Node.php
@@ -33,6 +33,7 @@ use OCP\Files\InvalidPathException;
use OCP\Files\NotFoundException;
use OCP\Files\NotPermittedException;
+// FIXME: this class really should be abstract
class Node implements \OCP\Files\Node {
/**
* @var \OC\Files\View $view
@@ -56,7 +57,7 @@ class Node implements \OCP\Files\Node {
/**
* @param \OC\Files\View $view
- * @param \OC\Files\Node\Root $root
+ * @param \OCP\Files\IRootFolder $root
* @param string $path
* @param FileInfo $fileInfo
*/
@@ -67,6 +68,16 @@ class Node implements \OCP\Files\Node {
$this->fileInfo = $fileInfo;
}
+ /**
+ * Creates a Node of the same type that represents a non-existing path
+ *
+ * @param string $path path
+ * @return string non-existing node class
+ */
+ protected function createNonExistingNode($path) {
+ throw new \Exception('Must be implemented by subclasses');
+ }
+
/**
* Returns the matching file info
*
@@ -106,27 +117,10 @@ class Node implements \OCP\Files\Node {
return ($this->getPermissions() & $permissions) === $permissions;
}
- /**
- * @param string $targetPath
- * @throws \OCP\Files\NotPermittedException
- * @return \OC\Files\Node\Node
- */
- public function move($targetPath) {
- return;
- }
-
public function delete() {
return;
}
- /**
- * @param string $targetPath
- * @return \OC\Files\Node\Node
- */
- public function copy($targetPath) {
- return;
- }
-
/**
* @param int $mtime
* @throws \OCP\Files\NotPermittedException
@@ -381,4 +375,54 @@ class Node implements \OCP\Files\Node {
public function unlock($type) {
$this->view->unlockFile($this->path, $type);
}
+
+ /**
+ * @param string $targetPath
+ * @throws \OCP\Files\NotPermittedException if copy not allowed or failed
+ * @return \OC\Files\Node\Node
+ */
+ public function copy($targetPath) {
+ $targetPath = $this->normalizePath($targetPath);
+ $parent = $this->root->get(dirname($targetPath));
+ if ($parent instanceof Folder and $this->isValidPath($targetPath) and $parent->isCreatable()) {
+ $nonExisting = $this->createNonExistingNode($targetPath);
+ $this->root->emit('\OC\Files', 'preCopy', [$this, $nonExisting]);
+ $this->root->emit('\OC\Files', 'preWrite', [$nonExisting]);
+ if (!$this->view->copy($this->path, $targetPath)) {
+ throw new NotPermittedException('Could not copy ' . $this->path . ' to ' . $targetPath);
+ }
+ $targetNode = $this->root->get($targetPath);
+ $this->root->emit('\OC\Files', 'postCopy', [$this, $targetNode]);
+ $this->root->emit('\OC\Files', 'postWrite', [$targetNode]);
+ return $targetNode;
+ } else {
+ throw new NotPermittedException('No permission to copy to path ' . $targetPath);
+ }
+ }
+
+ /**
+ * @param string $targetPath
+ * @throws \OCP\Files\NotPermittedException if move not allowed or failed
+ * @return \OC\Files\Node\Node
+ */
+ public function move($targetPath) {
+ $targetPath = $this->normalizePath($targetPath);
+ $parent = $this->root->get(dirname($targetPath));
+ if ($parent instanceof Folder and $this->isValidPath($targetPath) and $parent->isCreatable()) {
+ $nonExisting = $this->createNonExistingNode($targetPath);
+ $this->root->emit('\OC\Files', 'preRename', [$this, $nonExisting]);
+ $this->root->emit('\OC\Files', 'preWrite', [$nonExisting]);
+ if (!$this->view->rename($this->path, $targetPath)) {
+ throw new NotPermittedException('Could not move ' . $this->path . ' to ' . $targetPath);
+ }
+ $targetNode = $this->root->get($targetPath);
+ $this->root->emit('\OC\Files', 'postRename', [$this, $targetNode]);
+ $this->root->emit('\OC\Files', 'postWrite', [$targetNode]);
+ $this->path = $targetPath;
+ return $targetNode;
+ } else {
+ throw new NotPermittedException('No permission to move to path ' . $targetPath);
+ }
+ }
+
}
diff --git a/lib/private/Files/Notify/Change.php b/lib/private/Files/Notify/Change.php
new file mode 100644
index 0000000000000000000000000000000000000000..78cc007b27dad2c0ac4a62274db9e631196be133
--- /dev/null
+++ b/lib/private/Files/Notify/Change.php
@@ -0,0 +1,65 @@
+
+ *
+ * @author Robin Appelman
+ *
+ * @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 .
+ *
+ */
+
+namespace OC\Files\Notify;
+
+use OCP\Files\Notify\IChange;
+
+class Change implements IChange {
+ /** @var int */
+ private $type;
+
+ /** @var string */
+ private $path;
+
+ /**
+ * Change constructor.
+ *
+ * @param int $type
+ * @param string $path
+ */
+ public function __construct($type, $path) {
+ $this->type = $type;
+ $this->path = $path;
+ }
+
+ /**
+ * Get the type of the change
+ *
+ * @return int IChange::ADDED, IChange::REMOVED, IChange::MODIFIED or IChange::RENAMED
+ */
+ public function getType() {
+ return $this->type;
+ }
+
+ /**
+ * Get the path of the file that was changed relative to the root of the storage
+ *
+ * Note, for rename changes this path is the old path for the file
+ *
+ * @return mixed
+ */
+ public function getPath() {
+ return $this->path;
+ }
+}
diff --git a/lib/private/Files/Notify/RenameChange.php b/lib/private/Files/Notify/RenameChange.php
new file mode 100644
index 0000000000000000000000000000000000000000..b83dffa0cb2d8667b5cf236bb88e7f86dfa8e9dd
--- /dev/null
+++ b/lib/private/Files/Notify/RenameChange.php
@@ -0,0 +1,52 @@
+
+ *
+ * @author Robin Appelman
+ *
+ * @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 .
+ *
+ */
+
+namespace OC\Files\Notify;
+
+use OCP\Files\Notify\IRenameChange;
+
+class RenameChange extends Change implements IRenameChange {
+ /** @var string */
+ private $targetPath;
+
+ /**
+ * Change constructor.
+ *
+ * @param int $type
+ * @param string $path
+ * @param string $targetPath
+ */
+ public function __construct($type, $path, $targetPath) {
+ parent::__construct($type, $path);
+ $this->targetPath = $targetPath;
+ }
+
+ /**
+ * Get the new path of the renamed file relative to the storage root
+ *
+ * @return string
+ */
+ public function getTargetPath() {
+ return $this->targetPath;
+ }
+}
diff --git a/lib/private/Files/ObjectStore/ObjectStoreStorage.php b/lib/private/Files/ObjectStore/ObjectStoreStorage.php
index 2dcf830cc1e7f06d9bf1163c9b9685059ea3ee06..ab77c21e6c4830137419c7612374440f086f98e8 100644
--- a/lib/private/Files/ObjectStore/ObjectStoreStorage.php
+++ b/lib/private/Files/ObjectStore/ObjectStoreStorage.php
@@ -25,16 +25,12 @@
namespace OC\Files\ObjectStore;
+use Icewind\Streams\CallbackWrapper;
use Icewind\Streams\IteratorDirectory;
use OC\Files\Cache\CacheEntry;
use OCP\Files\ObjectStore\IObjectStore;
class ObjectStoreStorage extends \OC\Files\Storage\Common {
-
- /**
- * @var array
- */
- private static $tmpFiles = array();
/**
* @var \OCP\Files\ObjectStore\IObjectStore $objectStore
*/
@@ -291,14 +287,14 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common {
$ext = '';
}
$tmpFile = \OC::$server->getTempManager()->getTemporaryFile($ext);
- \OC\Files\Stream\Close::registerCallback($tmpFile, array($this, 'writeBack'));
if ($this->file_exists($path)) {
$source = $this->fopen($path, 'r');
file_put_contents($tmpFile, $source);
}
- self::$tmpFiles[$tmpFile] = $path;
-
- return fopen('close://' . $tmpFile, $mode);
+ $handle = fopen($tmpFile, $mode);
+ return CallbackWrapper::wrap($handle, null, null, function () use ($path, $tmpFile) {
+ $this->writeBack($tmpFile, $path);
+ });
}
return false;
}
@@ -368,12 +364,7 @@ class ObjectStoreStorage extends \OC\Files\Storage\Common {
return true;
}
- public function writeBack($tmpFile) {
- if (!isset(self::$tmpFiles[$tmpFile])) {
- return;
- }
-
- $path = self::$tmpFiles[$tmpFile];
+ public function writeBack($tmpFile, $path) {
$stat = $this->stat($path);
if (empty($stat)) {
// create new file
diff --git a/lib/private/Files/Storage/Common.php b/lib/private/Files/Storage/Common.php
index 5561f6a889b8b359d7c93d658b5641c94503c326..f3e3cb9e58c6d587a58febcca99b9d8a1d97061a 100644
--- a/lib/private/Files/Storage/Common.php
+++ b/lib/private/Files/Storage/Common.php
@@ -436,10 +436,14 @@ abstract class Common implements Storage, ILockingStorage {
* @return bool
*/
public function test() {
- if ($this->stat('')) {
- return true;
+ try {
+ if ($this->stat('')) {
+ return true;
+ }
+ return false;
+ } catch (\Exception $e) {
+ return false;
}
- return false;
}
/**
diff --git a/lib/private/Files/Storage/DAV.php b/lib/private/Files/Storage/DAV.php
index ea4bbba2748c03320749857182def651e5d200b3..3b89a66d6a2ceab97f346bbd03b03df7edf72d82 100644
--- a/lib/private/Files/Storage/DAV.php
+++ b/lib/private/Files/Storage/DAV.php
@@ -36,6 +36,7 @@ namespace OC\Files\Storage;
use Exception;
use GuzzleHttp\Exception\RequestException;
use GuzzleHttp\Message\ResponseInterface;
+use Icewind\Streams\CallbackWrapper;
use OC\Files\Filesystem;
use OC\Files\Stream\Close;
use Icewind\Streams\IteratorDirectory;
@@ -48,7 +49,6 @@ use OCP\Files\StorageInvalidException;
use OCP\Files\StorageNotAvailableException;
use OCP\Util;
use Sabre\DAV\Client;
-use Sabre\DAV\Exception\NotFound;
use Sabre\DAV\Xml\Property\ResourceType;
use Sabre\HTTP\ClientException;
use Sabre\HTTP\ClientHttpException;
@@ -77,8 +77,6 @@ class DAV extends Common {
private $client;
/** @var ArrayCache */
private $statCache;
- /** @var array */
- private static $tempFiles = [];
/** @var \OCP\Http\Client\IClientService */
private $httpClientService;
@@ -203,13 +201,15 @@ class DAV extends Common {
$this->init();
$path = $this->cleanPath($path);
try {
- $response = $this->client->propfind(
+ $response = $this->client->propFind(
$this->encodePath($path),
- array(),
+ [],
1
);
- $id = md5('webdav' . $this->root . $path);
- $content = array();
+ if ($response === false) {
+ return false;
+ }
+ $content = [];
$files = array_keys($response);
array_shift($files); //the first entry is the current directory
@@ -226,13 +226,6 @@ class DAV extends Common {
$content[] = $file;
}
return IteratorDirectory::wrap($content);
- } catch (ClientHttpException $e) {
- if ($e->getHttpStatus() === 404) {
- $this->statCache->clear($path . '/');
- $this->statCache->set($path, false);
- return false;
- }
- $this->convertException($e, $path);
} catch (\Exception $e) {
$this->convertException($e, $path);
}
@@ -247,22 +240,18 @@ class DAV extends Common {
*
* @param string $path path to propfind
*
- * @return array propfind response
+ * @return array|boolean propfind response or false if the entry was not found
*
- * @throws NotFound
+ * @throws ClientHttpException
*/
protected function propfind($path) {
$path = $this->cleanPath($path);
$cachedResponse = $this->statCache->get($path);
- if ($cachedResponse === false) {
- // we know it didn't exist
- throw new NotFound();
- }
// we either don't know it, or we know it exists but need more details
if (is_null($cachedResponse) || $cachedResponse === true) {
$this->init();
try {
- $response = $this->client->propfind(
+ $response = $this->client->propFind(
$this->encodePath($path),
array(
'{DAV:}getlastmodified',
@@ -275,11 +264,15 @@ class DAV extends Common {
)
);
$this->statCache->set($path, $response);
- } catch (NotFound $e) {
- // remember that this path did not exist
- $this->statCache->clear($path . '/');
- $this->statCache->set($path, false);
- throw $e;
+ } catch (ClientHttpException $e) {
+ if ($e->getHttpStatus() === 404) {
+ $this->statCache->clear($path . '/');
+ $this->statCache->set($path, false);
+ return false;
+ }
+ $this->convertException($e, $path);
+ } catch (\Exception $e) {
+ $this->convertException($e, $path);
}
} else {
$response = $cachedResponse;
@@ -291,17 +284,15 @@ class DAV extends Common {
public function filetype($path) {
try {
$response = $this->propfind($path);
- $responseType = array();
+ if ($response === false) {
+ return false;
+ }
+ $responseType = [];
if (isset($response["{DAV:}resourcetype"])) {
/** @var ResourceType[] $response */
$responseType = $response["{DAV:}resourcetype"]->getValue();
}
return (count($responseType) > 0 and $responseType[0] == "{DAV:}collection") ? 'dir' : 'file';
- } catch (ClientHttpException $e) {
- if ($e->getHttpStatus() === 404) {
- return false;
- }
- $this->convertException($e, $path);
} catch (\Exception $e) {
$this->convertException($e, $path);
}
@@ -320,13 +311,7 @@ class DAV extends Common {
return true;
}
// need to get from server
- $this->propfind($path);
- return true; //no 404 exception
- } catch (ClientHttpException $e) {
- if ($e->getHttpStatus() === 404) {
- return false;
- }
- $this->convertException($e, $path);
+ return ($this->propfind($path) !== false);
} catch (\Exception $e) {
$this->convertException($e, $path);
}
@@ -409,20 +394,19 @@ class DAV extends Common {
}
$tmpFile = $tempManager->getTemporaryFile($ext);
}
- Close::registerCallback($tmpFile, array($this, 'writeBack'));
- self::$tempFiles[$tmpFile] = $path;
- return fopen('close://' . $tmpFile, $mode);
+ $handle = fopen($tmpFile, $mode);
+ return CallbackWrapper::wrap($handle, null, null, function () use ($path, $tmpFile) {
+ $this->writeBack($tmpFile, $path);
+ });
}
}
/**
* @param string $tmpFile
*/
- public function writeBack($tmpFile) {
- if (isset(self::$tempFiles[$tmpFile])) {
- $this->uploadFile($tmpFile, self::$tempFiles[$tmpFile]);
- unlink($tmpFile);
- }
+ public function writeBack($tmpFile, $path) {
+ $this->uploadFile($tmpFile, $path);
+ unlink($tmpFile);
}
/** {@inheritdoc} */
@@ -431,7 +415,10 @@ class DAV extends Common {
$path = $this->cleanPath($path);
try {
// TODO: cacheable ?
- $response = $this->client->propfind($this->encodePath($path), array('{DAV:}quota-available-bytes'));
+ $response = $this->client->propfind($this->encodePath($path), ['{DAV:}quota-available-bytes']);
+ if ($response === false) {
+ return FileInfo::SPACE_UNKNOWN;
+ }
if (isset($response['{DAV:}quota-available-bytes'])) {
return (int)$response['{DAV:}quota-available-bytes'];
} else {
@@ -457,6 +444,9 @@ class DAV extends Common {
$this->client->proppatch($this->encodePath($path), ['{DAV:}lastmodified' => $mtime]);
// non-owncloud clients might not have accepted the property, need to recheck it
$response = $this->client->propfind($this->encodePath($path), ['{DAV:}getlastmodified'], 0);
+ if ($response === false) {
+ return false;
+ }
if (isset($response['{DAV:}getlastmodified'])) {
$remoteMtime = strtotime($response['{DAV:}getlastmodified']);
if ($remoteMtime !== $mtime) {
@@ -579,15 +569,13 @@ class DAV extends Common {
public function stat($path) {
try {
$response = $this->propfind($path);
- return array(
+ if (!$response) {
+ return false;
+ }
+ return [
'mtime' => strtotime($response['{DAV:}getlastmodified']),
'size' => (int)isset($response['{DAV:}getcontentlength']) ? $response['{DAV:}getcontentlength'] : 0,
- );
- } catch (ClientHttpException $e) {
- if ($e->getHttpStatus() === 404) {
- return array();
- }
- $this->convertException($e, $path);
+ ];
} catch (\Exception $e) {
$this->convertException($e, $path);
}
@@ -598,7 +586,10 @@ class DAV extends Common {
public function getMimeType($path) {
try {
$response = $this->propfind($path);
- $responseType = array();
+ if ($response === false) {
+ return false;
+ }
+ $responseType = [];
if (isset($response["{DAV:}resourcetype"])) {
/** @var ResourceType[] $response */
$responseType = $response["{DAV:}resourcetype"]->getValue();
@@ -611,11 +602,6 @@ class DAV extends Common {
} else {
return false;
}
- } catch (ClientHttpException $e) {
- if ($e->getHttpStatus() === 404) {
- return false;
- }
- $this->convertException($e, $path);
} catch (\Exception $e) {
$this->convertException($e, $path);
}
@@ -706,6 +692,9 @@ class DAV extends Common {
$this->init();
$path = $this->cleanPath($path);
$response = $this->propfind($path);
+ if ($response === false) {
+ return 0;
+ }
if (isset($response['{http://owncloud.org/ns}permissions'])) {
return $this->parsePermissions($response['{http://owncloud.org/ns}permissions']);
} else if ($this->is_dir($path)) {
@@ -722,6 +711,9 @@ class DAV extends Common {
$this->init();
$path = $this->cleanPath($path);
$response = $this->propfind($path);
+ if ($response === false) {
+ return null;
+ }
if (isset($response['{DAV:}getetag'])) {
return trim($response['{DAV:}getetag'], '"');
}
@@ -765,6 +757,13 @@ class DAV extends Common {
// force refresh for $path
$this->statCache->remove($path);
$response = $this->propfind($path);
+ if ($response === false) {
+ if ($path === '') {
+ // if root is gone it means the storage is not available
+ throw new StorageNotAvailableException(get_class($e) . ': ' . $e->getMessage());
+ }
+ return false;
+ }
if (isset($response['{DAV:}getetag'])) {
$cachedData = $this->getCache()->get($path);
$etag = null;
@@ -787,7 +786,7 @@ class DAV extends Common {
return $remoteMtime > $time;
}
} catch (ClientHttpException $e) {
- if ($e->getHttpStatus() === 404 || $e->getHttpStatus() === 405) {
+ if ($e->getHttpStatus() === 405) {
if ($path === '') {
// if root is gone it means the storage is not available
throw new StorageNotAvailableException(get_class($e) . ': ' . $e->getMessage());
diff --git a/lib/private/Files/Storage/Home.php b/lib/private/Files/Storage/Home.php
index e5ba0f9dfe43329b6ea97a13690f83688e600c1f..57b3234932406715d3b5ed043336476852b05746 100644
--- a/lib/private/Files/Storage/Home.php
+++ b/lib/private/Files/Storage/Home.php
@@ -44,19 +44,12 @@ class Home extends Local implements \OCP\Files\IHomeStorage {
/**
* Construct a Home storage instance
* @param array $arguments array with "user" containing the
- * storage owner and "legacy" containing "true" if the storage is
- * a legacy storage with "local::" URL instead of the new "home::" one.
+ * storage owner
*/
public function __construct($arguments) {
$this->user = $arguments['user'];
$datadir = $this->user->getHome();
- if (isset($arguments['legacy']) && $arguments['legacy']) {
- // legacy home id (<= 5.0.12)
- $this->id = 'local::' . $datadir . '/';
- }
- else {
- $this->id = 'home::' . $this->user->getUID();
- }
+ $this->id = 'home::' . $this->user->getUID();
parent::__construct(array('datadir' => $datadir));
}
diff --git a/lib/private/Files/Storage/Local.php b/lib/private/Files/Storage/Local.php
index 4fe7dcafbbfcb44263dee0604845f9d2555a5b97..80d48680be13841bc2a0c95d77c818a87c00035a 100644
--- a/lib/private/Files/Storage/Local.php
+++ b/lib/private/Files/Storage/Local.php
@@ -205,18 +205,7 @@ class Local extends \OC\Files\Storage\Common {
}
public function file_get_contents($path) {
- // file_get_contents() has a memory leak: https://bugs.php.net/bug.php?id=61961
- $fileName = $this->getSourcePath($path);
-
- $fileSize = filesize($fileName);
- if ($fileSize === 0) {
- return '';
- }
-
- $handle = fopen($fileName, 'rb');
- $content = fread($handle, $fileSize);
- fclose($handle);
- return $content;
+ return file_get_contents($this->getSourcePath($path));
}
public function file_put_contents($path, $data) {
diff --git a/lib/private/Files/Stream/Close.php b/lib/private/Files/Stream/Close.php
deleted file mode 100644
index 7cc9903c9124bf713929752a9a8b9b1cc2c4f728..0000000000000000000000000000000000000000
--- a/lib/private/Files/Stream/Close.php
+++ /dev/null
@@ -1,119 +0,0 @@
-
- * @author Morris Jobke
- * @author Robin Appelman
- *
- * @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
- *
- */
-
-namespace OC\Files\Stream;
-
-/**
- * stream wrapper that provides a callback on stream close
- */
-class Close {
- private static $callBacks = array();
- private $path = '';
- private $source;
- private static $open = array();
-
- public function stream_open($path, $mode, $options, &$opened_path) {
- $path = substr($path, strlen('close://'));
- $this->path = $path;
- $this->source = fopen($path, $mode);
- if (is_resource($this->source)) {
- $this->meta = stream_get_meta_data($this->source);
- }
- self::$open[] = $path;
- return is_resource($this->source);
- }
-
- public function stream_seek($offset, $whence = SEEK_SET) {
- return fseek($this->source, $offset, $whence) === 0;
- }
-
- public function stream_tell() {
- return ftell($this->source);
- }
-
- public function stream_read($count) {
- return fread($this->source, $count);
- }
-
- public function stream_write($data) {
- return fwrite($this->source, $data);
- }
-
- public function stream_set_option($option, $arg1, $arg2) {
- switch ($option) {
- case STREAM_OPTION_BLOCKING:
- stream_set_blocking($this->source, $arg1);
- break;
- case STREAM_OPTION_READ_TIMEOUT:
- stream_set_timeout($this->source, $arg1, $arg2);
- break;
- case STREAM_OPTION_WRITE_BUFFER:
- stream_set_write_buffer($this->source, $arg1, $arg2);
- }
- }
-
- public function stream_stat() {
- return fstat($this->source);
- }
-
- public function stream_lock($mode) {
- flock($this->source, $mode);
- }
-
- public function stream_flush() {
- return fflush($this->source);
- }
-
- public function stream_eof() {
- return feof($this->source);
- }
-
- public function url_stat($path) {
- $path = substr($path, strlen('close://'));
- if (file_exists($path)) {
- return stat($path);
- } else {
- return false;
- }
- }
-
- public function stream_close() {
- fclose($this->source);
- if (isset(self::$callBacks[$this->path])) {
- call_user_func(self::$callBacks[$this->path], $this->path);
- }
- }
-
- public function unlink($path) {
- $path = substr($path, strlen('close://'));
- return unlink($path);
- }
-
- /**
- * @param string $path
- */
- public static function registerCallback($path, $callback) {
- self::$callBacks[$path] = $callback;
- }
-}
diff --git a/lib/private/Files/Stream/Dir.php b/lib/private/Files/Stream/Dir.php
deleted file mode 100644
index f8f6b1fa89a18158af7e20ec3c3b296e80de0ec1..0000000000000000000000000000000000000000
--- a/lib/private/Files/Stream/Dir.php
+++ /dev/null
@@ -1,67 +0,0 @@
-
- * @author Morris Jobke
- * @author Robin Appelman
- *
- * @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
- *
- */
-
-namespace OC\Files\Stream;
-
-class Dir {
- private static $dirs = array();
- private $name;
- private $index;
-
- public function dir_opendir($path, $options) {
- $this->name = substr($path, strlen('fakedir://'));
- $this->index = 0;
- if (!isset(self::$dirs[$this->name])) {
- self::$dirs[$this->name] = array();
- }
- return true;
- }
-
- public function dir_readdir() {
- if ($this->index >= count(self::$dirs[$this->name])) {
- return false;
- }
- $filename = self::$dirs[$this->name][$this->index];
- $this->index++;
- return $filename;
- }
-
- public function dir_closedir() {
- $this->name = '';
- return true;
- }
-
- public function dir_rewinddir() {
- $this->index = 0;
- return true;
- }
-
- /**
- * @param string $path
- * @param string[] $content
- */
- public static function register($path, $content) {
- self::$dirs[$path] = $content;
- }
-}
diff --git a/lib/private/Files/Stream/Quota.php b/lib/private/Files/Stream/Quota.php
index f064ca6c0112d77b573593aa11cba63b36df8c0c..624a2021b9cd58990bed8012989a40385323926a 100644
--- a/lib/private/Files/Stream/Quota.php
+++ b/lib/private/Files/Stream/Quota.php
@@ -25,61 +25,44 @@
namespace OC\Files\Stream;
+use Icewind\Streams\Wrapper;
+
/**
* stream wrapper limits the amount of data that can be written to a stream
*
- * usage: void \OC\Files\Stream\Quota::register($id, $stream, $limit)
- * or: resource \OC\Files\Stream\Quota::wrap($stream, $limit)
+ * usage: resource \OC\Files\Stream\Quota::wrap($stream, $limit)
*/
-class Quota {
- private static $streams = array();
-
- /**
- * @var resource $source
- */
- private $source;
-
+class Quota extends Wrapper {
/**
* @var int $limit
*/
private $limit;
- /**
- * @param string $id
- * @param resource $stream
- * @param int $limit
- */
- public static function register($id, $stream, $limit) {
- self::$streams[$id] = array($stream, $limit);
- }
-
- /**
- * remove all registered streams
- */
- public static function clear() {
- self::$streams = array();
- }
-
/**
* @param resource $stream
* @param int $limit
* @return resource
*/
static public function wrap($stream, $limit) {
- $id = uniqid();
- self::register($id, $stream, $limit);
- $meta = stream_get_meta_data($stream);
- return fopen('quota://' . $id, $meta['mode']);
+ $context = stream_context_create(array(
+ 'quota' => array(
+ 'source' => $stream,
+ 'limit' => $limit
+ )
+ ));
+ return Wrapper::wrapSource($stream, $context, 'quota', self::class);
}
public function stream_open($path, $mode, $options, &$opened_path) {
- $id = substr($path, strlen('quota://'));
- if (isset(self::$streams[$id])) {
- list($this->source, $this->limit) = self::$streams[$id];
- return true;
- } else {
- return false;
- }
+ $context = $this->loadContext('quota');
+ $this->source = $context['source'];
+ $this->limit = $context['limit'];
+
+ return true;
+ }
+
+ public function dir_opendir($path, $options) {
+ return false;
}
public function stream_seek($offset, $whence = SEEK_SET) {
@@ -103,10 +86,6 @@ class Quota {
return fseek($this->source, $offset, $whence) === 0;
}
- public function stream_tell() {
- return ftell($this->source);
- }
-
public function stream_read($count) {
$this->limit -= $count;
return fread($this->source, $count);
@@ -121,37 +100,4 @@ class Quota {
$this->limit -= $size;
return fwrite($this->source, $data);
}
-
- public function stream_set_option($option, $arg1, $arg2) {
- switch ($option) {
- case STREAM_OPTION_BLOCKING:
- stream_set_blocking($this->source, $arg1);
- break;
- case STREAM_OPTION_READ_TIMEOUT:
- stream_set_timeout($this->source, $arg1, $arg2);
- break;
- case STREAM_OPTION_WRITE_BUFFER:
- stream_set_write_buffer($this->source, $arg1, $arg2);
- }
- }
-
- public function stream_stat() {
- return fstat($this->source);
- }
-
- public function stream_lock($mode) {
- return flock($this->source, $mode);
- }
-
- public function stream_flush() {
- return fflush($this->source);
- }
-
- public function stream_eof() {
- return feof($this->source);
- }
-
- public function stream_close() {
- fclose($this->source);
- }
}
diff --git a/lib/private/Files/Stream/StaticStream.php b/lib/private/Files/Stream/StaticStream.php
deleted file mode 100644
index 3c91b23fd36f556378a33c690bf5e34b3b65fc5c..0000000000000000000000000000000000000000
--- a/lib/private/Files/Stream/StaticStream.php
+++ /dev/null
@@ -1,171 +0,0 @@
-
- * @author Robin Appelman
- *
- * @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
- *
- */
-
-namespace OC\Files\Stream;
-
-class StaticStream {
- const MODE_FILE = 0100000;
-
- public $context;
- protected static $data = array();
-
- protected $path = '';
- protected $pointer = 0;
- protected $writable = false;
-
- public function stream_close() {
- }
-
- public function stream_eof() {
- return $this->pointer >= strlen(self::$data[$this->path]);
- }
-
- public function stream_flush() {
- }
-
- public static function clear() {
- self::$data = array();
- }
-
- public function stream_open($path, $mode, $options, &$opened_path) {
- switch ($mode[0]) {
- case 'r':
- if (!isset(self::$data[$path])) return false;
- $this->path = $path;
- $this->writable = isset($mode[1]) && $mode[1] == '+';
- break;
- case 'w':
- self::$data[$path] = '';
- $this->path = $path;
- $this->writable = true;
- break;
- case 'a':
- if (!isset(self::$data[$path])) self::$data[$path] = '';
- $this->path = $path;
- $this->writable = true;
- $this->pointer = strlen(self::$data[$path]);
- break;
- case 'x':
- if (isset(self::$data[$path])) return false;
- $this->path = $path;
- $this->writable = true;
- break;
- case 'c':
- if (!isset(self::$data[$path])) self::$data[$path] = '';
- $this->path = $path;
- $this->writable = true;
- break;
- default:
- return false;
- }
- $opened_path = $this->path;
- return true;
- }
-
- public function stream_read($count) {
- $bytes = min(strlen(self::$data[$this->path]) - $this->pointer, $count);
- $data = substr(self::$data[$this->path], $this->pointer, $bytes);
- $this->pointer += $bytes;
- return $data;
- }
-
- public function stream_seek($offset, $whence = SEEK_SET) {
- $len = strlen(self::$data[$this->path]);
- switch ($whence) {
- case SEEK_SET:
- if ($offset <= $len) {
- $this->pointer = $offset;
- return true;
- }
- break;
- case SEEK_CUR:
- if ($this->pointer + $offset <= $len) {
- $this->pointer += $offset;
- return true;
- }
- break;
- case SEEK_END:
- if ($len + $offset <= $len) {
- $this->pointer = $len + $offset;
- return true;
- }
- break;
- }
- return false;
- }
-
- public function stream_stat() {
- return $this->url_stat($this->path);
- }
-
- public function stream_tell() {
- return $this->pointer;
- }
-
- public function stream_write($data) {
- if (!$this->writable) return 0;
- $size = strlen($data);
- if ($this->stream_eof()) {
- self::$data[$this->path] .= $data;
- } else {
- self::$data[$this->path] = substr_replace(
- self::$data[$this->path],
- $data,
- $this->pointer
- );
- }
- $this->pointer += $size;
- return $size;
- }
-
- public function unlink($path) {
- if (isset(self::$data[$path])) {
- unset(self::$data[$path]);
- }
- return true;
- }
-
- public function url_stat($path) {
- if (isset(self::$data[$path])) {
- $size = strlen(self::$data[$path]);
- $time = time();
- $data = array(
- 'dev' => 0,
- 'ino' => 0,
- 'mode' => self::MODE_FILE | 0777,
- 'nlink' => 1,
- 'uid' => 0,
- 'gid' => 0,
- 'rdev' => '',
- 'size' => $size,
- 'atime' => $time,
- 'mtime' => $time,
- 'ctime' => $time,
- 'blksize' => -1,
- 'blocks' => -1,
- );
- return array_values($data) + $data;
- }
- return false;
- }
-}
diff --git a/lib/private/Files/Type/Detection.php b/lib/private/Files/Type/Detection.php
index 84d727ebb0e9a8e21c97729eaa886053645aef3e..cd4ddc2f06745313dce2c6360697410599d4ca7e 100644
--- a/lib/private/Files/Type/Detection.php
+++ b/lib/private/Files/Type/Detection.php
@@ -167,6 +167,10 @@ class Detection implements IMimeTypeDetector {
$this->loadMappings();
$fileName = basename($path);
+
+ // remove leading dot on hidden files with a file extension
+ $fileName = ltrim($fileName, '.');
+
// note: leading dot doesn't qualify as extension
if (strpos($fileName, '.') > 0) {
//try to guess the type by the file extension
diff --git a/lib/private/Files/Utils/Scanner.php b/lib/private/Files/Utils/Scanner.php
index d26c601be1aed3497b86036abe0c561a4c62e1bb..98e2c3c8ca2a655a1fb5ddb5d19966e8b106975a 100644
--- a/lib/private/Files/Utils/Scanner.php
+++ b/lib/private/Files/Utils/Scanner.php
@@ -31,6 +31,7 @@ use OC\Files\Filesystem;
use OC\ForbiddenException;
use OC\Hooks\PublicEmitter;
use OC\Lock\DBLockingProvider;
+use OCA\Files_Sharing\SharedStorage;
use OCP\Files\Storage\IStorage;
use OCP\Files\StorageNotAvailableException;
use OCP\ILogger;
@@ -118,14 +119,19 @@ class Scanner extends PublicEmitter {
public function backgroundScan($dir) {
$mounts = $this->getMounts($dir);
foreach ($mounts as $mount) {
- if (is_null($mount->getStorage())) {
+ $storage = $mount->getStorage();
+ if (is_null($storage)) {
continue;
}
// don't scan the root storage
- if ($mount->getStorage()->instanceOfStorage('\OC\Files\Storage\Local') && $mount->getMountPoint() === '/') {
+ if ($storage->instanceOfStorage('\OC\Files\Storage\Local') && $mount->getMountPoint() === '/') {
+ continue;
+ }
+
+ // don't scan received local shares, these can be scanned when scanning the owner's storage
+ if ($storage->instanceOfStorage(SharedStorage::class)) {
continue;
}
- $storage = $mount->getStorage();
$scanner = $storage->getScanner();
$this->attachListener($mount);
@@ -156,10 +162,10 @@ class Scanner extends PublicEmitter {
}
$mounts = $this->getMounts($dir);
foreach ($mounts as $mount) {
- if (is_null($mount->getStorage())) {
+ $storage = $mount->getStorage();
+ if (is_null($storage)) {
continue;
}
- $storage = $mount->getStorage();
// if the home storage isn't writable then the scanner is run as the wrong user
if ($storage->instanceOfStorage('\OC\Files\Storage\Home') and
(!$storage->isCreatable('') or !$storage->isCreatable('files'))
@@ -171,6 +177,11 @@ class Scanner extends PublicEmitter {
}
}
+
+ // don't scan received local shares, these can be scanned when scanning the owner's storage
+ if ($storage->instanceOfStorage(SharedStorage::class)) {
+ continue;
+ }
$relativePath = $mount->getInternalPath($dir);
$scanner = $storage->getScanner();
$scanner->setUseTransactions(false);
diff --git a/lib/private/Files/View.php b/lib/private/Files/View.php
index 6facc7b9462caa771d18b395503fef7b0fc0956b..db21d400b39ea20f573fe2134e058d2fad7d0a89 100644
--- a/lib/private/Files/View.php
+++ b/lib/private/Files/View.php
@@ -931,39 +931,36 @@ class View {
/**
* @param string $path
- * @param string $mode
+ * @param string $mode 'r' or 'w'
* @return resource
*/
public function fopen($path, $mode) {
+ $mode = str_replace('b', '', $mode); // the binary flag is a windows only feature which we do not support
$hooks = array();
switch ($mode) {
case 'r':
- case 'rb':
$hooks[] = 'read';
break;
case 'r+':
- case 'rb+':
case 'w+':
- case 'wb+':
case 'x+':
- case 'xb+':
case 'a+':
- case 'ab+':
$hooks[] = 'read';
$hooks[] = 'write';
break;
case 'w':
- case 'wb':
case 'x':
- case 'xb':
case 'a':
- case 'ab':
$hooks[] = 'write';
break;
default:
\OCP\Util::writeLog('core', 'invalid mode (' . $mode . ') for ' . $path, \OCP\Util::ERROR);
}
+ if ($mode !== 'r' && $mode !== 'w') {
+ \OC::$server->getLogger()->info('Trying to open a file with a mode other than "r" or "w" can cause severe performance issues with some backends');
+ }
+
return $this->basicOperation('fopen', $path, $hooks, $mode);
}
@@ -1005,7 +1002,7 @@ class View {
// Create the directories if any
if (!$this->file_exists($filePath)) {
$result = $this->createParentDirectories($filePath);
- if($result === false) {
+ if ($result === false) {
return false;
}
}
@@ -1149,6 +1146,8 @@ class View {
$unlockLater = false;
if ($this->lockingEnabled && $operation === 'fopen' && is_resource($result)) {
$unlockLater = true;
+ // make sure our unlocking callback will still be called if connection is aborted
+ ignore_user_abort(true);
$result = CallbackWrapper::wrap($result, null, null, function () use ($hooks, $path) {
if (in_array('write', $hooks)) {
$this->unlockFile($path, ILockingProvider::LOCK_EXCLUSIVE);
@@ -1357,7 +1356,7 @@ class View {
//add the sizes of other mount points to the folder
$extOnly = ($includeMountPoints === 'ext');
$mounts = Filesystem::getMountManager()->findIn($path);
- $info->setSubMounts(array_filter($mounts, function(IMountPoint $mount) use ($extOnly) {
+ $info->setSubMounts(array_filter($mounts, function (IMountPoint $mount) use ($extOnly) {
$subStorage = $mount->getStorage();
return !($extOnly && $subStorage instanceof \OCA\Files_Sharing\SharedStorage);
}));
@@ -2106,13 +2105,13 @@ class View {
private function createParentDirectories($filePath) {
$directoryParts = explode('/', $filePath);
$directoryParts = array_filter($directoryParts);
- foreach($directoryParts as $key => $part) {
+ foreach ($directoryParts as $key => $part) {
$currentPathElements = array_slice($directoryParts, 0, $key);
$currentPath = '/' . implode('/', $currentPathElements);
- if($this->is_file($currentPath)) {
+ if ($this->is_file($currentPath)) {
return false;
}
- if(!$this->file_exists($currentPath)) {
+ if (!$this->file_exists($currentPath)) {
$this->mkdir($currentPath);
}
}
diff --git a/lib/private/Group/Backend.php b/lib/private/Group/Backend.php
index 14c36d934225a57b80015e84cea41565d773b2a4..1e8d62f5e42cb64f8ed23d65b6f7bebcddec9031 100644
--- a/lib/private/Group/Backend.php
+++ b/lib/private/Group/Backend.php
@@ -31,23 +31,14 @@ abstract class Backend implements \OCP\GroupInterface {
*/
const NOT_IMPLEMENTED = -501;
- /**
- * actions that user backends can define
- */
- const CREATE_GROUP = 0x00000001;
- const DELETE_GROUP = 0x00000010;
- const ADD_TO_GROUP = 0x00000100;
- const REMOVE_FROM_GOUP = 0x00001000;
- //OBSOLETE const GET_DISPLAYNAME = 0x00010000;
- const COUNT_USERS = 0x00100000;
-
- protected $possibleActions = array(
+ protected $possibleActions = [
self::CREATE_GROUP => 'createGroup',
self::DELETE_GROUP => 'deleteGroup',
self::ADD_TO_GROUP => 'addToGroup',
self::REMOVE_FROM_GOUP => 'removeFromGroup',
self::COUNT_USERS => 'countUsersInGroup',
- );
+ self::GROUP_DETAILS => 'getGroupDetails',
+ ];
/**
* Get all supported actions
diff --git a/lib/private/Group/Database.php b/lib/private/Group/Database.php
index e4144fdbe200e3b2cdf4753878b424d5e8250270..8be24fc50de978e34916d31b4f769cb2bb0feb1d 100644
--- a/lib/private/Group/Database.php
+++ b/lib/private/Group/Database.php
@@ -202,6 +202,11 @@ class Database extends \OC\Group\Backend {
* if the user exists at all.
*/
public function getUserGroups( $uid ) {
+ //guests has empty or null $uid
+ if ($uid === null || $uid === '') {
+ return [];
+ }
+
$this->fixDI();
// No magic!
diff --git a/lib/private/Group/Group.php b/lib/private/Group/Group.php
index 9379d604c48c4f772f8c6a78ad1347e4b63abe8f..69dce21569496b226481d182b82f84b02ea8f7e1 100644
--- a/lib/private/Group/Group.php
+++ b/lib/private/Group/Group.php
@@ -31,6 +31,9 @@ namespace OC\Group;
use OCP\IGroup;
class Group implements IGroup {
+ /** @var null|string */
+ protected $displayName;
+
/**
* @var string $id
*/
@@ -66,18 +69,27 @@ class Group implements IGroup {
* @param \OC\Group\Backend[] $backends
* @param \OC\User\Manager $userManager
* @param \OC\Hooks\PublicEmitter $emitter
+ * @param string $displayName
*/
- public function __construct($gid, $backends, $userManager, $emitter = null) {
+ public function __construct($gid, $backends, $userManager, $emitter = null, $displayName = null) {
$this->gid = $gid;
$this->backends = $backends;
$this->userManager = $userManager;
$this->emitter = $emitter;
+ $this->displayName = $displayName;
}
public function getGID() {
return $this->gid;
}
+ public function getDisplayName() {
+ if (is_null($this->displayName)) {
+ return $this->gid;
+ }
+ return $this->displayName;
+ }
+
/**
* get all users in the group
*
diff --git a/lib/private/Group/Manager.php b/lib/private/Group/Manager.php
index 31911138985bb930a11aeb146ca6a4f319307d66..944598a829688cedd82ff7ea76ebae4c570aa2ab 100644
--- a/lib/private/Group/Manager.php
+++ b/lib/private/Group/Manager.php
@@ -155,19 +155,29 @@ class Manager extends PublicEmitter implements IGroupManager {
/**
* @param string $gid
+ * @param string $displayName
* @return \OCP\IGroup
*/
- protected function getGroupObject($gid) {
+ protected function getGroupObject($gid, $displayName = null) {
$backends = array();
foreach ($this->backends as $backend) {
- if ($backend->groupExists($gid)) {
+ if ($backend->implementsActions(\OC\Group\Backend::GROUP_DETAILS)) {
+ $groupData = $backend->getGroupDetails($gid);
+ if (is_array($groupData)) {
+ // take the display name from the first backend that has a non-null one
+ if (is_null($displayName) && isset($groupData['displayName'])) {
+ $displayName = $groupData['displayName'];
+ }
+ $backends[] = $backend;
+ }
+ } else if ($backend->groupExists($gid)) {
$backends[] = $backend;
}
}
if (count($backends) === 0) {
return null;
}
- $this->cachedGroups[$gid] = new Group($gid, $backends, $this->userManager, $this);
+ $this->cachedGroups[$gid] = new Group($gid, $backends, $this->userManager, $this, $displayName);
return $this->cachedGroups[$gid];
}
diff --git a/lib/private/Http/Client/Client.php b/lib/private/Http/Client/Client.php
index 8e1821113037a8a6a193d7ac21f6e3614c374acb..4697f2e038c918b54770b548c472ceff049a1240 100644
--- a/lib/private/Http/Client/Client.php
+++ b/lib/private/Http/Client/Client.php
@@ -77,9 +77,10 @@ class Client implements IClient {
}
}
- $this->client->setDefaultOption('headers/User-Agent', 'ownCloud Server Crawler');
- if ($this->getProxyUri() !== '') {
- $this->client->setDefaultOption('proxy', $this->getProxyUri());
+ $this->client->setDefaultOption('headers/User-Agent', 'Nextcloud Server Crawler');
+ $proxyUri = $this->getProxyUri();
+ if ($proxyUri !== '') {
+ $this->client->setDefaultOption('proxy', $proxyUri);
}
}
@@ -93,10 +94,10 @@ class Client implements IClient {
$proxyUserPwd = $this->config->getSystemValue('proxyuserpwd', null);
$proxyUri = '';
- if (!is_null($proxyUserPwd)) {
+ if ($proxyUserPwd !== null) {
$proxyUri .= $proxyUserPwd . '@';
}
- if (!is_null($proxyHost)) {
+ if ($proxyHost !== null) {
$proxyUri .= $proxyHost;
}
diff --git a/lib/private/IntegrityCheck/Checker.php b/lib/private/IntegrityCheck/Checker.php
index 102fe42a99d216859f81583f33183185dc4220c4..419f989fa0fa8e36d87d55503d066f3954c02423 100644
--- a/lib/private/IntegrityCheck/Checker.php
+++ b/lib/private/IntegrityCheck/Checker.php
@@ -96,12 +96,8 @@ class Checker {
* @return bool
*/
public function isCodeCheckEnforced() {
- $signedChannels = [
- 'daily',
- 'testing',
- 'stable',
- ];
- if(!in_array($this->environmentHelper->getChannel(), $signedChannels, true)) {
+ $notSignedChannels = [ '', 'git'];
+ if (in_array($this->environmentHelper->getChannel(), $notSignedChannels, true)) {
return false;
}
@@ -115,7 +111,7 @@ class Checker {
} else {
$isIntegrityCheckDisabled = false;
}
- if($isIntegrityCheckDisabled === true) {
+ if ($isIntegrityCheckDisabled === true) {
return false;
}
@@ -271,16 +267,23 @@ class Checker {
public function writeAppSignature($path,
X509 $certificate,
RSA $privateKey) {
- if(!is_dir($path)) {
- throw new \Exception('Directory does not exist.');
- }
- $iterator = $this->getFolderIterator($path);
- $hashes = $this->generateHashes($iterator, $path);
- $signature = $this->createSignatureData($hashes, $certificate, $privateKey);
- $this->fileAccessHelper->file_put_contents(
- $path . '/appinfo/signature.json',
+ $appInfoDir = $path . '/appinfo';
+ try {
+ $this->fileAccessHelper->assertDirectoryExists($appInfoDir);
+
+ $iterator = $this->getFolderIterator($path);
+ $hashes = $this->generateHashes($iterator, $path);
+ $signature = $this->createSignatureData($hashes, $certificate, $privateKey);
+ $this->fileAccessHelper->file_put_contents(
+ $appInfoDir . '/signature.json',
json_encode($signature, JSON_PRETTY_PRINT)
- );
+ );
+ } catch (\Exception $e){
+ if (!$this->fileAccessHelper->is_writable($appInfoDir)) {
+ throw new \Exception($appInfoDir . ' is not writable');
+ }
+ throw $e;
+ }
}
/**
@@ -289,17 +292,28 @@ class Checker {
* @param X509 $certificate
* @param RSA $rsa
* @param string $path
+ * @throws \Exception
*/
public function writeCoreSignature(X509 $certificate,
RSA $rsa,
$path) {
- $iterator = $this->getFolderIterator($path, $path);
- $hashes = $this->generateHashes($iterator, $path);
- $signatureData = $this->createSignatureData($hashes, $certificate, $rsa);
- $this->fileAccessHelper->file_put_contents(
- $path . '/core/signature.json',
+ $coreDir = $path . '/core';
+ try {
+
+ $this->fileAccessHelper->assertDirectoryExists($coreDir);
+ $iterator = $this->getFolderIterator($path, $path);
+ $hashes = $this->generateHashes($iterator, $path);
+ $signatureData = $this->createSignatureData($hashes, $certificate, $rsa);
+ $this->fileAccessHelper->file_put_contents(
+ $coreDir . '/signature.json',
json_encode($signatureData, JSON_PRETTY_PRINT)
- );
+ );
+ } catch (\Exception $e){
+ if (!$this->fileAccessHelper->is_writable($coreDir)) {
+ throw new \Exception($coreDir . ' is not writable');
+ }
+ throw $e;
+ }
}
/**
diff --git a/lib/private/IntegrityCheck/Helpers/FileAccessHelper.php b/lib/private/IntegrityCheck/Helpers/FileAccessHelper.php
index 9e2b76ce11a6219215690d784db90b32546f4bb9..a7e378c165e2dd09bdc6e7613298663dc5e66c05 100644
--- a/lib/private/IntegrityCheck/Helpers/FileAccessHelper.php
+++ b/lib/private/IntegrityCheck/Helpers/FileAccessHelper.php
@@ -53,10 +53,33 @@ class FileAccessHelper {
* Wrapper around file_put_contents($filename, $data)
*
* @param string $filename
- * @param $data
- * @return int|false
+ * @param string $data
+ * @return int
+ * @throws \Exception
*/
public function file_put_contents($filename, $data) {
- return file_put_contents($filename, $data);
+ $bytesWritten = @file_put_contents($filename, $data);
+ if ($bytesWritten === false || $bytesWritten !== strlen($data)){
+ throw new \Exception('Failed to write into ' . $filename);
+ }
+ return $bytesWritten;
+ }
+
+ /**
+ * @param string $path
+ * @return bool
+ */
+ public function is_writable($path) {
+ return is_writable($path);
+ }
+
+ /**
+ * @param string $path
+ * @throws \Exception
+ */
+ public function assertDirectoryExists($path) {
+ if (!is_dir($path)) {
+ throw new \Exception('Directory ' . $path . ' does not exist.');
+ }
}
}
diff --git a/lib/private/Log.php b/lib/private/Log.php
index ef1b70d3cb921e6d2acaac55c1dbfff37ef3804a..fddd359312736acacfa757b9cdf3f650923bf959 100644
--- a/lib/private/Log.php
+++ b/lib/private/Log.php
@@ -106,12 +106,8 @@ class Log implements ILogger {
// FIXME: Add this for backwards compatibility, should be fixed at some point probably
if($logger === null) {
- // TODO: Drop backwards compatibility for config in the future
$logType = $this->config->getValue('log_type', 'file');
- if($logType==='owncloud') {
- $logType = 'file';
- }
- $this->logger = 'OC\\Log\\'.ucfirst($logType);
+ $this->logger = static::getLogClass($logType);
call_user_func(array($this->logger, 'init'));
} else {
$this->logger = $logger;
@@ -327,4 +323,26 @@ class Log implements ILogger {
$msg .= ': ' . json_encode($exception);
$this->error($msg, $context);
}
+
+ /**
+ * @param string $logType
+ * @return string
+ * @internal
+ */
+ public static function getLogClass($logType) {
+ switch (strtolower($logType)) {
+ case 'errorlog':
+ return \OC\Log\Errorlog::class;
+ case 'syslog':
+ return \OC\Log\Syslog::class;
+ case 'file':
+ return \OC\Log\File::class;
+
+ // Backwards compatibility for old and fallback for unknown log types
+ case 'owncloud':
+ case 'nextcloud':
+ default:
+ return \OC\Log\File::class;
+ }
+ }
}
diff --git a/lib/private/Log/File.php b/lib/private/Log/File.php
index 904aa1d93f1febad36bd25690247c55802e1f0ee..be8b72b3a3fcbb5a59134fb4101bc51737047e1b 100644
--- a/lib/private/Log/File.php
+++ b/lib/private/Log/File.php
@@ -75,8 +75,8 @@ class File {
$config = \OC::$server->getSystemConfig();
// default to ISO8601
- $format = $config->getValue('logdateformat', 'c');
- $logTimeZone = $config->getValue( "logtimezone", 'UTC' );
+ $format = $config->getValue('logdateformat', \DateTime::ATOM);
+ $logTimeZone = $config->getValue('logtimezone', 'UTC');
try {
$timezone = new \DateTimeZone($logTimeZone);
} catch (\Exception $e) {
diff --git a/lib/private/Log/Rotate.php b/lib/private/Log/Rotate.php
index 6c87c16737832c64ef344f259d32f6eb927230fb..866068433ffe09b9f7bf7c6d63c1bd1a8904357d 100644
--- a/lib/private/Log/Rotate.php
+++ b/lib/private/Log/Rotate.php
@@ -32,7 +32,9 @@ namespace OC\Log;
*/
class Rotate extends \OC\BackgroundJob\Job {
private $max_log_size;
- public function run($logFile) {
+ public function run($dummy) {
+ $systemConfig = \OC::$server->getSystemConfig();
+ $logFile = $systemConfig->getValue('logfile', $systemConfig->getValue('datadirectory', \OC::$SERVERROOT . '/data') . '/nextcloud.log');
$this->max_log_size = \OC::$server->getConfig()->getSystemValue('log_rotate_size', false);
if ($this->max_log_size) {
$filesize = @filesize($logFile);
diff --git a/lib/private/Mail/Mailer.php b/lib/private/Mail/Mailer.php
index df8fa80f2c2cbaa79a2981826e96d96115371472..e704e8e3490549ef1b6d2b80784272ba2687df76 100644
--- a/lib/private/Mail/Mailer.php
+++ b/lib/private/Mail/Mailer.php
@@ -200,7 +200,7 @@ class Mailer implements IMailer {
* @return \Swift_SendmailTransport
*/
protected function getSendMailInstance() {
- switch ($this->config->getSystemValue('mail_smtpmode', 'sendmail')) {
+ switch ($this->config->getSystemValue('mail_smtpmode', 'php')) {
case 'qmail':
$binaryPath = '/var/qmail/bin/sendmail';
break;
diff --git a/lib/private/Memcache/APC.php b/lib/private/Memcache/APC.php
deleted file mode 100644
index 7db6d64b085f81e37faeb6865cd95ef81f0768ab..0000000000000000000000000000000000000000
--- a/lib/private/Memcache/APC.php
+++ /dev/null
@@ -1,136 +0,0 @@
-
- * @author Clark Tomlinson
- * @author Morris Jobke
- * @author Otto Sabart
- * @author Robin Appelman
- *
- * @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
- *
- */
-
-namespace OC\Memcache;
-
-use OCP\IMemcache;
-
-class APC extends Cache implements IMemcache {
- use CASTrait {
- cas as casEmulated;
- }
-
- use CADTrait;
-
- public function get($key) {
- $result = apc_fetch($this->getPrefix() . $key, $success);
- if (!$success) {
- return null;
- }
- return $result;
- }
-
- public function set($key, $value, $ttl = 0) {
- return apc_store($this->getPrefix() . $key, $value, $ttl);
- }
-
- public function hasKey($key) {
- return apc_exists($this->getPrefix() . $key);
- }
-
- public function remove($key) {
- return apc_delete($this->getPrefix() . $key);
- }
-
- public function clear($prefix = '') {
- $ns = $this->getPrefix() . $prefix;
- $ns = preg_quote($ns, '/');
- $iter = new \APCIterator('user', '/^' . $ns . '/', APC_ITER_KEY);
- return apc_delete($iter);
- }
-
- /**
- * Set a value in the cache if it's not already stored
- *
- * @param string $key
- * @param mixed $value
- * @param int $ttl Time To Live in seconds. Defaults to 60*60*24
- * @return bool
- */
- public function add($key, $value, $ttl = 0) {
- return apc_add($this->getPrefix() . $key, $value, $ttl);
- }
-
- /**
- * Increase a stored number
- *
- * @param string $key
- * @param int $step
- * @return int | bool
- */
- public function inc($key, $step = 1) {
- $this->add($key, 0);
- return apc_inc($this->getPrefix() . $key, $step);
- }
-
- /**
- * Decrease a stored number
- *
- * @param string $key
- * @param int $step
- * @return int | bool
- */
- public function dec($key, $step = 1) {
- return apc_dec($this->getPrefix() . $key, $step);
- }
-
- /**
- * Compare and set
- *
- * @param string $key
- * @param mixed $old
- * @param mixed $new
- * @return bool
- */
- public function cas($key, $old, $new) {
- // apc only does cas for ints
- if (is_int($old) and is_int($new)) {
- return apc_cas($this->getPrefix() . $key, $old, $new);
- } else {
- return $this->casEmulated($key, $old, $new);
- }
- }
-
- static public function isAvailable() {
- if (!extension_loaded('apc')) {
- return false;
- } elseif (!\OC::$server->getIniWrapper()->getBool('apc.enabled')) {
- return false;
- } elseif (!\OC::$server->getIniWrapper()->getBool('apc.enable_cli') && \OC::$CLI) {
- return false;
- } else {
- return true;
- }
- }
-}
-
-if (!function_exists('apc_exists')) {
- function apc_exists($keys) {
- $result = false;
- apc_fetch($keys, $result);
- return $result;
- }
-}
diff --git a/lib/private/Memcache/Factory.php b/lib/private/Memcache/Factory.php
index f3841d316795b57134908a626daa9b959b755d31..8e62e020faae662e760424b38145ae39c0a29b4f 100644
--- a/lib/private/Memcache/Factory.php
+++ b/lib/private/Memcache/Factory.php
@@ -83,7 +83,7 @@ class Factory implements ICacheFactory {
$missingCacheMessage = 'Memcache {class} not available for {use} cache';
$missingCacheHint = 'Is the matching PHP module installed and enabled?';
- if (!$localCacheClass::isAvailable()) {
+ if (!class_exists($localCacheClass) || !$localCacheClass::isAvailable()) {
if (\OC::$CLI && !defined('PHPUNIT_RUN')) {
// CLI should not hard-fail on broken memcache
$this->logger->info($missingCacheMessage, [
@@ -98,7 +98,7 @@ class Factory implements ICacheFactory {
]), $missingCacheHint);
}
}
- if (!$distributedCacheClass::isAvailable()) {
+ if (!class_exists($distributedCacheClass) || !$distributedCacheClass::isAvailable()) {
if (\OC::$CLI && !defined('PHPUNIT_RUN')) {
// CLI should not hard-fail on broken memcache
$this->logger->info($missingCacheMessage, [
@@ -113,7 +113,7 @@ class Factory implements ICacheFactory {
]), $missingCacheHint);
}
}
- if (!($lockingCacheClass && $lockingCacheClass::isAvailable())) {
+ if (!($lockingCacheClass && class_exists($distributedCacheClass) && $lockingCacheClass::isAvailable())) {
// don't fallback since the fallback might not be suitable for storing lock
$lockingCacheClass = self::NULL_CACHE;
}
diff --git a/lib/private/Memcache/Memcached.php b/lib/private/Memcache/Memcached.php
index 12f457393744acc28accd5543b7bda6f3a2ed7a5..bf07fd0e6e717a7e7807c311fc89a5001ae8dcbe 100644
--- a/lib/private/Memcache/Memcached.php
+++ b/lib/private/Memcache/Memcached.php
@@ -46,16 +46,6 @@ class Memcached extends Cache implements IMemcache {
parent::__construct($prefix);
if (is_null(self::$cache)) {
self::$cache = new \Memcached();
- $servers = \OC::$server->getSystemConfig()->getValue('memcached_servers');
- if (!$servers) {
- $server = \OC::$server->getSystemConfig()->getValue('memcached_server');
- if ($server) {
- $servers = array($server);
- } else {
- $servers = array(array('localhost', 11211));
- }
- }
- self::$cache->addServers($servers);
$defaultOptions = [
\Memcached::OPT_CONNECT_TIMEOUT => 50,
@@ -71,7 +61,7 @@ class Memcached extends Cache implements IMemcache {
\Memcached::OPT_LIBKETAMA_COMPATIBLE => true,
// Enable Binary Protocol
- \Memcached::OPT_BINARY_PROTOCOL => true,
+ //\Memcached::OPT_BINARY_PROTOCOL => true,
];
// by default enable igbinary serializer if available
if (\Memcached::HAVE_IGBINARY) {
@@ -85,6 +75,17 @@ class Memcached extends Cache implements IMemcache {
} else {
throw new HintException("Expected 'memcached_options' config to be an array, got $options");
}
+
+ $servers = \OC::$server->getSystemConfig()->getValue('memcached_servers');
+ if (!$servers) {
+ $server = \OC::$server->getSystemConfig()->getValue('memcached_server');
+ if ($server) {
+ $servers = [$server];
+ } else {
+ $servers = [['localhost', 11211]];
+ }
+ }
+ self::$cache->addServers($servers);
}
}
@@ -110,7 +111,9 @@ class Memcached extends Cache implements IMemcache {
} else {
$result = self::$cache->set($this->getNamespace() . $key, $value);
}
- $this->verifyReturnCode();
+ if ($result !== true) {
+ $this->verifyReturnCode();
+ }
return $result;
}
diff --git a/lib/private/NavigationManager.php b/lib/private/NavigationManager.php
index 3e9ddfc6466b97f958b854748b2dc3773a261874..f7bc02943a38558a451b31289c852d006aa2fca6 100644
--- a/lib/private/NavigationManager.php
+++ b/lib/private/NavigationManager.php
@@ -1,6 +1,6 @@
* @author Joas Schilling
@@ -26,13 +26,46 @@
namespace OC;
+use OC\App\AppManager;
+use OCP\App\IAppManager;
+use OCP\IGroupManager;
+use OCP\INavigationManager;
+use OCP\IURLGenerator;
+use OCP\IUserSession;
+use OCP\L10N\IFactory;
+
/**
* Manages the ownCloud navigation
*/
-class NavigationManager implements \OCP\INavigationManager {
- protected $entries = array();
- protected $closureEntries = array();
+
+class NavigationManager implements INavigationManager {
+ protected $entries = [];
+ protected $closureEntries = [];
protected $activeEntry;
+ /** @var bool */
+ protected $init = false;
+ /** @var IAppManager|AppManager */
+ protected $appManager;
+ /** @var IURLGenerator */
+ private $urlGenerator;
+ /** @var IFactory */
+ private $l10nFac;
+ /** @var IUserSession */
+ private $userSession;
+ /** @var IGroupManager */
+ private $groupManager;
+
+ public function __construct(IAppManager $appManager = null,
+ IURLGenerator $urlGenerator = null,
+ IFactory $l10nFac = null,
+ IUserSession $userSession = null,
+ IGroupManager$groupManager = null) {
+ $this->appManager = $appManager;
+ $this->urlGenerator = $urlGenerator;
+ $this->l10nFac = $l10nFac;
+ $this->userSession = $userSession;
+ $this->groupManager = $groupManager;
+ }
/**
* Creates a new navigation entry
@@ -60,6 +93,7 @@ class NavigationManager implements \OCP\INavigationManager {
* @return array an array of the added entries
*/
public function getAll() {
+ $this->init();
foreach ($this->closureEntries as $c) {
$this->add($c());
}
@@ -71,8 +105,9 @@ class NavigationManager implements \OCP\INavigationManager {
* removes all the entries
*/
public function clear() {
- $this->entries = array();
- $this->closureEntries = array();
+ $this->entries = [];
+ $this->closureEntries = [];
+ $this->init = false;
}
/**
@@ -93,4 +128,64 @@ class NavigationManager implements \OCP\INavigationManager {
public function getActiveEntry() {
return $this->activeEntry;
}
+
+ private function init() {
+ if ($this->init) {
+ return;
+ }
+ $this->init = true;
+ if (is_null($this->appManager)) {
+ return;
+ }
+ foreach ($this->appManager->getInstalledApps() as $app) {
+ // load plugins and collections from info.xml
+ $info = $this->appManager->getAppInfo($app);
+ if (!isset($info['navigation'])) {
+ continue;
+ }
+ $nav = $info['navigation'];
+ if (!isset($nav['name'])) {
+ continue;
+ }
+ if (!isset($nav['route'])) {
+ continue;
+ }
+ $role = isset($nav['@attributes']['role']) ? $nav['@attributes']['role'] : 'all';
+ if ($role === 'admin' && !$this->isAdmin()) {
+ continue;
+ }
+ $l = $this->l10nFac->get($app);
+ $order = isset($nav['order']) ? $nav['order'] : 100;
+ $route = $this->urlGenerator->linkToRoute($nav['route']);
+ $icon = isset($nav['icon']) ? $nav['icon'] : 'app.svg';
+ foreach ([$icon, "$app.svg"] as $i) {
+ try {
+ $icon = $this->urlGenerator->imagePath($app, $i);
+ break;
+ } catch (\RuntimeException $ex) {
+ // no icon? - ignore it then
+ }
+ }
+ if (is_null($icon)) {
+ $icon = $this->urlGenerator->imagePath('core', 'default-app-icon');
+ }
+
+ $this->add([
+ 'id' => $app,
+ 'order' => $order,
+ 'href' => $route,
+ 'icon' => $icon,
+ 'name' => $l->t($nav['name']),
+ ]);
+ }
+ }
+
+ private function isAdmin() {
+ $user = $this->userSession->getUser();
+ if ($user !== null) {
+ return $this->groupManager->isAdmin($user->getUID());
+ }
+ return false;
+ }
+
}
diff --git a/lib/private/Preview.php b/lib/private/Preview.php
deleted file mode 100644
index caa1e89baccee4247b39ed7cef77dadd10fc94d2..0000000000000000000000000000000000000000
--- a/lib/private/Preview.php
+++ /dev/null
@@ -1,1349 +0,0 @@
-
- * @author Frank Karlitschek
- * @author Georg Ehrke
- * @author Joas Schilling
- * @author Jörn Friedrich Dreyer
- * @author Lukas Reschke
- * @author Morris Jobke
- * @author Olivier Paroz
- * @author Robin Appelman
- * @author Roeland Jago Douma
- * @author Thomas Müller
- * @author Tobias Kaminsky
- *
- * @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
- *
- */
-namespace OC;
-
-use OC\Preview\Provider;
-use OCP\Files\FileInfo;
-use OCP\Files\NotFoundException;
-
-class Preview {
- //the thumbnail folder
- const THUMBNAILS_FOLDER = 'thumbnails';
-
- const MODE_FILL = 'fill';
- const MODE_COVER = 'cover';
-
- //config
- private $maxScaleFactor;
- /** @var int maximum width allowed for a preview */
- private $configMaxWidth;
- /** @var int maximum height allowed for a preview */
- private $configMaxHeight;
-
- //fileview object
- private $fileView = null;
- private $userView = null;
-
- //vars
- private $file;
- private $maxX;
- private $maxY;
- private $scalingUp;
- private $mimeType;
- private $keepAspect = false;
- private $mode = self::MODE_FILL;
-
- //used to calculate the size of the preview to generate
- /** @var int $maxPreviewWidth max width a preview can have */
- private $maxPreviewWidth;
- /** @var int $maxPreviewHeight max height a preview can have */
- private $maxPreviewHeight;
- /** @var int $previewWidth calculated width of the preview we're looking for */
- private $previewWidth;
- /** @var int $previewHeight calculated height of the preview we're looking for */
- private $previewHeight;
-
- //filemapper used for deleting previews
- // index is path, value is fileinfo
- static public $deleteFileMapper = array();
- static public $deleteChildrenMapper = array();
-
- /**
- * preview images object
- *
- * @var \OCP\IImage
- */
- private $preview;
-
- /**
- * @var \OCP\Files\FileInfo
- */
- protected $info;
-
- /**
- * check if thumbnail or bigger version of thumbnail of file is cached
- *
- * @param string $user userid - if no user is given, OC_User::getUser will be used
- * @param string $root path of root
- * @param string $file The path to the file where you want a thumbnail from
- * @param int $maxX The maximum X size of the thumbnail. It can be smaller depending on the
- * shape of the image
- * @param int $maxY The maximum Y size of the thumbnail. It can be smaller depending on the
- * shape of the image
- * @param bool $scalingUp Disable/Enable upscaling of previews
- *
- * @throws \Exception
- * @return mixed (bool / string)
- * false if thumbnail does not exist
- * path to thumbnail if thumbnail exists
- */
- public function __construct(
- $user = '',
- $root = '/',
- $file = '', $maxX = 1,
- $maxY = 1,
- $scalingUp = true
- ) {
- //init fileviews
- if ($user === '') {
- $user = \OC_User::getUser();
- }
- $this->fileView = new \OC\Files\View('/' . $user . '/' . $root);
- $this->userView = new \OC\Files\View('/' . $user);
-
- //set config
- $sysConfig = \OC::$server->getConfig();
- $this->configMaxWidth = $sysConfig->getSystemValue('preview_max_x', 2048);
- $this->configMaxHeight = $sysConfig->getSystemValue('preview_max_y', 2048);
- $this->maxScaleFactor = $sysConfig->getSystemValue('preview_max_scale_factor', 1);
-
- //save parameters
- $this->setFile($file);
- $this->setMaxX((int)$maxX);
- $this->setMaxY((int)$maxY);
- $this->setScalingup($scalingUp);
-
- $this->preview = null;
-
- //check if there are preview backends
- if (!\OC::$server->getPreviewManager()
- ->hasProviders()
- && \OC::$server->getConfig()
- ->getSystemValue('enable_previews', true)
- ) {
- \OCP\Util::writeLog('core', 'No preview providers exist', \OCP\Util::ERROR);
- throw new \Exception('No preview providers');
- }
- }
-
- /**
- * returns the path of the file you want a thumbnail from
- *
- * @return string
- */
- public function getFile() {
- return $this->file;
- }
-
- /**
- * returns the max width of the preview
- *
- * @return integer
- */
- public function getMaxX() {
- return $this->maxX;
- }
-
- /**
- * returns the max height of the preview
- *
- * @return integer
- */
- public function getMaxY() {
- return $this->maxY;
- }
-
- /**
- * returns whether or not scalingup is enabled
- *
- * @return bool
- */
- public function getScalingUp() {
- return $this->scalingUp;
- }
-
- /**
- * returns the name of the thumbnailfolder
- *
- * @return string
- */
- public function getThumbnailsFolder() {
- return self::THUMBNAILS_FOLDER;
- }
-
- /**
- * returns the max scale factor
- *
- * @return string
- */
- public function getMaxScaleFactor() {
- return $this->maxScaleFactor;
- }
-
- /**
- * returns the max width set in ownCloud's config
- *
- * @return integer
- */
- public function getConfigMaxX() {
- return $this->configMaxWidth;
- }
-
- /**
- * returns the max height set in ownCloud's config
- *
- * @return integer
- */
- public function getConfigMaxY() {
- return $this->configMaxHeight;
- }
-
- /**
- * Returns the FileInfo object associated with the file to preview
- *
- * @return false|Files\FileInfo|\OCP\Files\FileInfo
- */
- protected function getFileInfo() {
- $absPath = $this->fileView->getAbsolutePath($this->file);
- $absPath = Files\Filesystem::normalizePath($absPath);
- if (array_key_exists($absPath, self::$deleteFileMapper)) {
- $this->info = self::$deleteFileMapper[$absPath];
- } else if (!$this->info) {
- $this->info = $this->fileView->getFileInfo($this->file);
- }
-
- return $this->info;
- }
-
-
- /**
- * @return array|null
- */
- private function getChildren() {
- $absPath = $this->fileView->getAbsolutePath($this->file);
- $absPath = Files\Filesystem::normalizePath($absPath);
-
- if (array_key_exists($absPath, self::$deleteChildrenMapper)) {
- return self::$deleteChildrenMapper[$absPath];
- }
-
- return null;
- }
-
- /**
- * Sets the path of the file you want a preview of
- *
- * @param string $file
- * @param \OCP\Files\FileInfo|null $info
- *
- * @return \OC\Preview
- */
- public function setFile($file, $info = null) {
- $this->file = $file;
- $this->info = $info;
-
- if ($file !== '') {
- $this->getFileInfo();
- if ($this->info instanceof \OCP\Files\FileInfo) {
- $this->mimeType = $this->info->getMimetype();
- }
- }
-
- return $this;
- }
-
- /**
- * Forces the use of a specific media type
- *
- * @param string $mimeType
- */
- public function setMimetype($mimeType) {
- $this->mimeType = $mimeType;
- }
-
- /**
- * Sets the max width of the preview. It's capped by the maximum allowed size set in the
- * configuration
- *
- * @param int $maxX
- *
- * @throws \Exception
- * @return \OC\Preview
- */
- public function setMaxX($maxX = 1) {
- if ($maxX <= 0) {
- throw new \Exception('Cannot set width of 0 or smaller!');
- }
- $configMaxX = $this->getConfigMaxX();
- $maxX = $this->limitMaxDim($maxX, $configMaxX, 'maxX');
- $this->maxX = $maxX;
-
- return $this;
- }
-
- /**
- * Sets the max height of the preview. It's capped by the maximum allowed size set in the
- * configuration
- *
- * @param int $maxY
- *
- * @throws \Exception
- * @return \OC\Preview
- */
- public function setMaxY($maxY = 1) {
- if ($maxY <= 0) {
- throw new \Exception('Cannot set height of 0 or smaller!');
- }
- $configMaxY = $this->getConfigMaxY();
- $maxY = $this->limitMaxDim($maxY, $configMaxY, 'maxY');
- $this->maxY = $maxY;
-
- return $this;
- }
-
- /**
- * Sets whether we're allowed to scale up when generating a preview. It's capped by the maximum
- * allowed scale factor set in the configuration
- *
- * @param bool $scalingUp
- *
- * @return \OC\Preview
- */
- public function setScalingup($scalingUp) {
- if ($this->getMaxScaleFactor() === 1) {
- $scalingUp = false;
- }
- $this->scalingUp = $scalingUp;
-
- return $this;
- }
-
- /**
- * Set whether to cover or fill the specified dimensions
- *
- * @param string $mode
- *
- * @return \OC\Preview
- */
- public function setMode($mode) {
- $this->mode = $mode;
-
- return $this;
- }
-
- /**
- * Sets whether we need to generate a preview which keeps the aspect ratio of the original file
- *
- * @param bool $keepAspect
- *
- * @return \OC\Preview
- */
- public function setKeepAspect($keepAspect) {
- $this->keepAspect = $keepAspect;
-
- return $this;
- }
-
- /**
- * Makes sure we were given a file to preview and that it exists in the filesystem
- *
- * @return bool
- */
- public function isFileValid() {
- $file = $this->getFile();
- if ($file === '') {
- \OCP\Util::writeLog('core', 'No filename passed', \OCP\Util::DEBUG);
-
- return false;
- }
-
- if (!$this->getFileInfo() instanceof FileInfo) {
- \OCP\Util::writeLog('core', 'File:"' . $file . '" not found', \OCP\Util::DEBUG);
-
- return false;
- }
-
- return true;
- }
-
- /**
- * Deletes the preview of a file with specific width and height
- *
- * This should never delete the max preview, use deleteAllPreviews() instead
- *
- * @return bool
- */
- public function deletePreview() {
- $fileInfo = $this->getFileInfo();
- if ($fileInfo !== null && $fileInfo !== false) {
- $fileId = $fileInfo->getId();
-
- $previewPath = $this->buildCachePath($fileId);
- if (!strpos($previewPath, 'max')) {
- return $this->userView->unlink($previewPath);
- }
- }
-
- return false;
- }
-
- /**
- * Deletes all previews of a file
- */
- public function deleteAllPreviews() {
- $thumbnailMount = $this->userView->getMount($this->getThumbnailsFolder());
- $propagator = $thumbnailMount->getStorage()->getPropagator();
- $propagator->beginBatch();
-
- $toDelete = $this->getChildren();
- $toDelete[] = $this->getFileInfo();
-
- foreach ($toDelete as $delete) {
- if ($delete instanceof FileInfo) {
- /** @var \OCP\Files\FileInfo $delete */
- $fileId = $delete->getId();
-
- // getId() might return null, e.g. when the file is a
- // .ocTransferId*.part file from chunked file upload.
- if (!empty($fileId)) {
- $previewPath = $this->getPreviewPath($fileId);
- $this->userView->rmdir($previewPath);
- }
- }
- }
-
- $propagator->commitBatch();
- }
-
- /**
- * Checks if a preview matching the asked dimensions or a bigger version is already cached
- *
- * * We first retrieve the size of the max preview since this is what we be used to create
- * all our preview. If it doesn't exist we return false, so that it can be generated
- * * Using the dimensions of the max preview, we calculate what the size of the new
- * thumbnail should be
- * * And finally, we look for a suitable candidate in the cache
- *
- * @param int $fileId fileId of the original file we need a preview of
- *
- * @return string|false path to the cached preview if it exists or false
- */
- public function isCached($fileId) {
- if (is_null($fileId)) {
- return false;
- }
-
- /**
- * Phase 1: Looking for the max preview
- */
- $previewPath = $this->getPreviewPath($fileId);
- // We currently can't look for a single file due to bugs related to #16478
- $allThumbnails = $this->userView->getDirectoryContent($previewPath);
- list($maxPreviewWidth, $maxPreviewHeight) = $this->getMaxPreviewSize($allThumbnails);
-
- // Only use the cache if we have a max preview
- if (!is_null($maxPreviewWidth) && !is_null($maxPreviewHeight)) {
-
- /**
- * Phase 2: Calculating the size of the preview we need to send back
- */
- $this->maxPreviewWidth = $maxPreviewWidth;
- $this->maxPreviewHeight = $maxPreviewHeight;
-
- list($previewWidth, $previewHeight) = $this->simulatePreviewDimensions();
- if (empty($previewWidth) || empty($previewHeight)) {
- return false;
- }
-
- $this->previewWidth = $previewWidth;
- $this->previewHeight = $previewHeight;
-
- /**
- * Phase 3: We look for a preview of the exact size
- */
- // This gives us a calculated path to a preview of asked dimensions
- // thumbnailFolder/fileId/-(-max|-with-aspect).png
- $preview = $this->buildCachePath($fileId, $previewWidth, $previewHeight);
-
- // This checks if we have a preview of those exact dimensions in the cache
- if ($this->thumbnailSizeExists($allThumbnails, basename($preview))) {
- return $preview;
- }
-
- /**
- * Phase 4: We look for a larger preview, matching the aspect ratio
- */
- if (($this->getMaxX() >= $maxPreviewWidth)
- && ($this->getMaxY() >= $maxPreviewHeight)
- ) {
- // The preview we-re looking for is the exact size or larger than the max preview,
- // so return that
- return $this->buildCachePath($fileId, $maxPreviewWidth, $maxPreviewHeight);
- } else {
- // The last resort is to look for something bigger than what we've calculated,
- // but still smaller than the max preview
- return $this->isCachedBigger($fileId, $allThumbnails);
- }
- }
-
- return false;
- }
-
- /**
- * Returns the dimensions of the max preview
- *
- * @param FileInfo[] $allThumbnails the list of all our cached thumbnails
- *
- * @return int[]
- */
- private function getMaxPreviewSize($allThumbnails) {
- $maxPreviewX = null;
- $maxPreviewY = null;
-
- foreach ($allThumbnails as $thumbnail) {
- $name = $thumbnail['name'];
- if (strpos($name, 'max')) {
- list($maxPreviewX, $maxPreviewY) = $this->getDimensionsFromFilename($name);
- break;
- }
- }
-
- return [$maxPreviewX, $maxPreviewY];
- }
-
- /**
- * Check if a specific thumbnail size is cached
- *
- * @param FileInfo[] $allThumbnails the list of all our cached thumbnails
- * @param string $name
- * @return bool
- */
- private function thumbnailSizeExists(array $allThumbnails, $name) {
-
- foreach ($allThumbnails as $thumbnail) {
- if ($name === $thumbnail->getName()) {
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * Determines the size of the preview we should be looking for in the cache
- *
- * @return integer[]
- */
- private function simulatePreviewDimensions() {
- $askedWidth = $this->getMaxX();
- $askedHeight = $this->getMaxY();
-
- if ($this->keepAspect) {
- list($newPreviewWidth, $newPreviewHeight) =
- $this->applyAspectRatio($askedWidth, $askedHeight);
- } else {
- list($newPreviewWidth, $newPreviewHeight) = $this->fixSize($askedWidth, $askedHeight);
- }
-
- return [(int)$newPreviewWidth, (int)$newPreviewHeight];
- }
-
- /**
- * Resizes the boundaries to match the aspect ratio
- *
- * @param int $askedWidth
- * @param int $askedHeight
- *
- * @param int $originalWidth
- * @param int $originalHeight
- * @return integer[]
- */
- private function applyAspectRatio($askedWidth, $askedHeight, $originalWidth = 0, $originalHeight = 0) {
- if (!$originalWidth) {
- $originalWidth = $this->maxPreviewWidth;
- }
- if (!$originalHeight) {
- $originalHeight = $this->maxPreviewHeight;
- }
- $originalRatio = $originalWidth / $originalHeight;
- // Defines the box in which the preview has to fit
- $scaleFactor = $this->scalingUp ? $this->maxScaleFactor : 1;
- $askedWidth = min($askedWidth, $originalWidth * $scaleFactor);
- $askedHeight = min($askedHeight, $originalHeight * $scaleFactor);
-
- if ($askedWidth / $originalRatio < $askedHeight) {
- // width restricted
- $askedHeight = round($askedWidth / $originalRatio);
- } else {
- $askedWidth = round($askedHeight * $originalRatio);
- }
-
- return [(int)$askedWidth, (int)$askedHeight];
- }
-
- /**
- * Resizes the boundaries to cover the area
- *
- * @param int $askedWidth
- * @param int $askedHeight
- * @param int $previewWidth
- * @param int $previewHeight
- * @return integer[]
- */
- private function applyCover($askedWidth, $askedHeight, $previewWidth, $previewHeight) {
- $originalRatio = $previewWidth / $previewHeight;
- // Defines the box in which the preview has to fit
- $scaleFactor = $this->scalingUp ? $this->maxScaleFactor : 1;
- $askedWidth = min($askedWidth, $previewWidth * $scaleFactor);
- $askedHeight = min($askedHeight, $previewHeight * $scaleFactor);
-
- if ($askedWidth / $originalRatio > $askedHeight) {
- // height restricted
- $askedHeight = round($askedWidth / $originalRatio);
- } else {
- $askedWidth = round($askedHeight * $originalRatio);
- }
-
- return [(int)$askedWidth, (int)$askedHeight];
- }
-
- /**
- * Makes sure an upscaled preview doesn't end up larger than the max dimensions defined in the
- * config
- *
- * @param int $askedWidth
- * @param int $askedHeight
- *
- * @return integer[]
- */
- private function fixSize($askedWidth, $askedHeight) {
- if ($this->scalingUp) {
- $askedWidth = min($this->configMaxWidth, $askedWidth);
- $askedHeight = min($this->configMaxHeight, $askedHeight);
- }
-
- return [(int)$askedWidth, (int)$askedHeight];
- }
-
- /**
- * Checks if a bigger version of a file preview is cached and if not
- * return the preview of max allowed dimensions
- *
- * @param int $fileId fileId of the original image
- * @param FileInfo[] $allThumbnails the list of all our cached thumbnails
- *
- * @return string path to bigger thumbnail
- */
- private function isCachedBigger($fileId, $allThumbnails) {
- // This is used to eliminate any thumbnail narrower than what we need
- $maxX = $this->getMaxX();
-
- //array for usable cached thumbnails
- $possibleThumbnails = $this->getPossibleThumbnails($allThumbnails);
-
- foreach ($possibleThumbnails as $width => $path) {
- if ($width < $maxX) {
- continue;
- } else {
- return $path;
- }
- }
-
- // At this stage, we didn't find a preview, so we return the max preview
- return $this->buildCachePath($fileId, $this->maxPreviewWidth, $this->maxPreviewHeight);
- }
-
- /**
- * Get possible bigger thumbnails of the given image with the proper aspect ratio
- *
- * @param FileInfo[] $allThumbnails the list of all our cached thumbnails
- *
- * @return string[] an array of paths to bigger thumbnails
- */
- private function getPossibleThumbnails($allThumbnails) {
- if ($this->keepAspect) {
- $wantedAspectRatio = (float)($this->maxPreviewWidth / $this->maxPreviewHeight);
- } else {
- $wantedAspectRatio = (float)($this->getMaxX() / $this->getMaxY());
- }
-
- //array for usable cached thumbnails
- $possibleThumbnails = array();
- foreach ($allThumbnails as $thumbnail) {
- $name = rtrim($thumbnail['name'], '.png');
- list($x, $y, $aspectRatio) = $this->getDimensionsFromFilename($name);
- if (abs($aspectRatio - $wantedAspectRatio) >= 0.000001
- || $this->unscalable($x, $y)
- ) {
- continue;
- }
- $possibleThumbnails[$x] = $thumbnail['path'];
- }
-
- ksort($possibleThumbnails);
-
- return $possibleThumbnails;
- }
-
- /**
- * Looks at the preview filename from the cache and extracts the size of the preview
- *
- * @param string $name
- *
- * @return array
- */
- private function getDimensionsFromFilename($name) {
- $size = explode('-', $name);
- $x = (int)$size[0];
- $y = (int)$size[1];
- $aspectRatio = (float)($x / $y);
-
- return array($x, $y, $aspectRatio);
- }
-
- /**
- * @param int $x
- * @param int $y
- *
- * @return bool
- */
- private function unscalable($x, $y) {
-
- $maxX = $this->getMaxX();
- $maxY = $this->getMaxY();
- $scalingUp = $this->getScalingUp();
- $maxScaleFactor = $this->getMaxScaleFactor();
-
- if ($x < $maxX || $y < $maxY) {
- if ($scalingUp) {
- $scaleFactor = $maxX / $x;
- if ($scaleFactor > $maxScaleFactor) {
- return true;
- }
- } else {
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * Returns a preview of a file
- *
- * The cache is searched first and if nothing usable was found then a preview is
- * generated by one of the providers
- *
- * @return \OCP\IImage
- */
- public function getPreview() {
- if (!is_null($this->preview) && $this->preview->valid()) {
- return $this->preview;
- }
-
- $this->preview = null;
- $fileInfo = $this->getFileInfo();
- if ($fileInfo === null || $fileInfo === false || !$fileInfo->isReadable()) {
- return new \OC_Image();
- }
-
- $fileId = $fileInfo->getId();
- $cached = $this->isCached($fileId);
- if ($cached) {
- $this->getCachedPreview($fileId, $cached);
- }
-
- if (is_null($this->preview)) {
- $this->generatePreview($fileId);
- }
-
- // We still don't have a preview, so we send back an empty object
- if (is_null($this->preview)) {
- $this->preview = new \OC_Image();
- }
-
- return $this->preview;
- }
-
- /**
- * Sends the preview, including the headers to client which requested it
- *
- * @param null|string $mimeTypeForHeaders the media type to use when sending back the reply
- *
- * @throws NotFoundException
- * @throws PreviewNotAvailableException
- */
- public function showPreview($mimeTypeForHeaders = null) {
- // Check if file is valid
- if ($this->isFileValid() === false) {
- throw new NotFoundException('File not found.');
- }
-
- if (is_null($this->preview)) {
- $this->getPreview();
- }
- if ($this->preview instanceof \OCP\IImage) {
- if ($this->preview->valid()) {
- \OCP\Response::enableCaching(3600 * 24); // 24 hours
- } else {
- $this->getMimeIcon();
- }
- $this->preview->show($mimeTypeForHeaders);
- }
- }
-
- /**
- * Retrieves the preview from the cache and resizes it if necessary
- *
- * @param int $fileId fileId of the original image
- * @param string $cached the path to the cached preview
- */
- private function getCachedPreview($fileId, $cached) {
- $stream = $this->userView->fopen($cached, 'r');
- $this->preview = null;
- if ($stream) {
- $image = new \OC_Image();
- $image->loadFromFileHandle($stream);
-
- $this->preview = $image->valid() ? $image : null;
-
- if (!is_null($this->preview)) {
- // Size of the preview we calculated
- $maxX = $this->previewWidth;
- $maxY = $this->previewHeight;
- // Size of the preview we retrieved from the cache
- $previewX = (int)$this->preview->width();
- $previewY = (int)$this->preview->height();
-
- // We don't have an exact match
- if ($previewX !== $maxX || $previewY !== $maxY) {
- $this->resizeAndStore($fileId);
- }
- }
-
- fclose($stream);
- }
- }
-
- /**
- * Resizes, crops, fixes orientation and stores in the cache
- *
- * @param int $fileId fileId of the original image
- */
- private function resizeAndStore($fileId) {
- $image = $this->preview;
- if (!($image instanceof \OCP\IImage)) {
- \OCP\Util::writeLog(
- 'core', '$this->preview is not an instance of \OCP\IImage', \OCP\Util::DEBUG
- );
-
- return;
- }
- $previewWidth = (int)$image->width();
- $previewHeight = (int)$image->height();
- $askedWidth = $this->getMaxX();
- $askedHeight = $this->getMaxY();
-
- if ($this->mode === self::MODE_COVER) {
- list($askedWidth, $askedHeight) =
- $this->applyCover($askedWidth, $askedHeight, $previewWidth, $previewHeight);
- }
-
- /**
- * Phase 1: If required, adjust boundaries to keep aspect ratio
- */
- if ($this->keepAspect) {
- list($askedWidth, $askedHeight) =
- $this->applyAspectRatio($askedWidth, $askedHeight, $previewWidth, $previewHeight);
- }
-
- /**
- * Phase 2: Resizes preview to try and match requirements.
- * Takes the scaling ratio into consideration
- */
- list($newPreviewWidth, $newPreviewHeight) = $this->scale(
- $image, $askedWidth, $askedHeight, $previewWidth, $previewHeight
- );
-
- // The preview has been resized and should now have the asked dimensions
- if ($newPreviewWidth === $askedWidth && $newPreviewHeight === $askedHeight) {
- $this->storePreview($fileId, $newPreviewWidth, $newPreviewHeight);
-
- return;
- }
-
- /**
- * Phase 3: We're still not there yet, so we're clipping and filling
- * to match the asked dimensions
- */
- // It turns out the scaled preview is now too big, so we crop the image
- if ($newPreviewWidth >= $askedWidth && $newPreviewHeight >= $askedHeight) {
- $this->crop($image, $askedWidth, $askedHeight, $newPreviewWidth, $newPreviewHeight);
- $this->storePreview($fileId, $askedWidth, $askedHeight);
-
- return;
- }
-
- // At least one dimension of the scaled preview is too small,
- // so we fill the space with a transparent background
- if (($newPreviewWidth < $askedWidth || $newPreviewHeight < $askedHeight)) {
- $this->cropAndFill(
- $image, $askedWidth, $askedHeight, $newPreviewWidth, $newPreviewHeight
- );
- $this->storePreview($fileId, $askedWidth, $askedHeight);
-
- return;
- }
-
- // The preview is smaller, but we can't touch it
- $this->storePreview($fileId, $newPreviewWidth, $newPreviewHeight);
- }
-
- /**
- * Calculates the new dimensions of the preview
- *
- * The new dimensions can be larger or smaller than the ones of the preview we have to resize
- *
- * @param \OCP\IImage $image
- * @param int $askedWidth
- * @param int $askedHeight
- * @param int $previewWidth
- * @param int $previewHeight
- *
- * @return int[]
- */
- private function scale($image, $askedWidth, $askedHeight, $previewWidth, $previewHeight) {
- $scalingUp = $this->getScalingUp();
- $maxScaleFactor = $this->getMaxScaleFactor();
-
- $factorX = $askedWidth / $previewWidth;
- $factorY = $askedHeight / $previewHeight;
-
- if ($factorX >= $factorY) {
- $factor = $factorX;
- } else {
- $factor = $factorY;
- }
-
- if ($scalingUp === false) {
- if ($factor > 1) {
- $factor = 1;
- }
- }
-
- // We cap when upscaling
- if (!is_null($maxScaleFactor)) {
- if ($factor > $maxScaleFactor) {
- \OCP\Util::writeLog(
- 'core', 'scale factor reduced from ' . $factor . ' to ' . $maxScaleFactor,
- \OCP\Util::DEBUG
- );
- $factor = $maxScaleFactor;
- }
- }
-
- $newPreviewWidth = round($previewWidth * $factor);
- $newPreviewHeight = round($previewHeight * $factor);
-
- $image->preciseResize($newPreviewWidth, $newPreviewHeight);
- $this->preview = $image;
-
- return [$newPreviewWidth, $newPreviewHeight];
- }
-
- /**
- * Crops a preview which is larger than the dimensions we've received
- *
- * @param \OCP\IImage $image
- * @param int $askedWidth
- * @param int $askedHeight
- * @param int $previewWidth
- * @param int $previewHeight
- */
- private function crop($image, $askedWidth, $askedHeight, $previewWidth, $previewHeight = null) {
- $cropX = floor(abs($askedWidth - $previewWidth) * 0.5);
- //don't crop previews on the Y axis, this sucks if it's a document.
- //$cropY = floor(abs($y - $newPreviewHeight) * 0.5);
- $cropY = 0;
- $image->crop($cropX, $cropY, $askedWidth, $askedHeight);
- $this->preview = $image;
- }
-
- /**
- * Crops an image if it's larger than the dimensions we've received and fills the empty space
- * with a transparent background
- *
- * @param \OCP\IImage $image
- * @param int $askedWidth
- * @param int $askedHeight
- * @param int $previewWidth
- * @param int $previewHeight
- */
- private function cropAndFill($image, $askedWidth, $askedHeight, $previewWidth, $previewHeight) {
- if ($previewWidth > $askedWidth) {
- $cropX = floor(($previewWidth - $askedWidth) * 0.5);
- $image->crop($cropX, 0, $askedWidth, $previewHeight);
- $previewWidth = $askedWidth;
- }
-
- if ($previewHeight > $askedHeight) {
- $cropY = floor(($previewHeight - $askedHeight) * 0.5);
- $image->crop(0, $cropY, $previewWidth, $askedHeight);
- $previewHeight = $askedHeight;
- }
-
- // Creates a transparent background
- $backgroundLayer = imagecreatetruecolor($askedWidth, $askedHeight);
- imagealphablending($backgroundLayer, false);
- $transparency = imagecolorallocatealpha($backgroundLayer, 0, 0, 0, 127);
- imagefill($backgroundLayer, 0, 0, $transparency);
- imagesavealpha($backgroundLayer, true);
-
- $image = $image->resource();
-
- $mergeX = floor(abs($askedWidth - $previewWidth) * 0.5);
- $mergeY = floor(abs($askedHeight - $previewHeight) * 0.5);
-
- // Pastes the preview on top of the background
- imagecopy(
- $backgroundLayer, $image, $mergeX, $mergeY, 0, 0, $previewWidth,
- $previewHeight
- );
-
- $image = new \OC_Image($backgroundLayer);
-
- $this->preview = $image;
- }
-
- /**
- * Saves a preview in the cache to speed up future calls
- *
- * Do not nullify the preview as it might send the whole process in a loop
- *
- * @param int $fileId fileId of the original image
- * @param int $previewWidth
- * @param int $previewHeight
- */
- private function storePreview($fileId, $previewWidth, $previewHeight) {
- if (empty($previewWidth) || empty($previewHeight)) {
- \OCP\Util::writeLog(
- 'core', 'Cannot save preview of dimension ' . $previewWidth . 'x' . $previewHeight,
- \OCP\Util::DEBUG
- );
-
- } else {
- $cachePath = $this->buildCachePath($fileId, $previewWidth, $previewHeight);
- $this->userView->file_put_contents($cachePath, $this->preview->data());
- }
- }
-
- /**
- * Returns the path to a preview based on its dimensions and aspect
- *
- * @param int $fileId
- * @param int|null $maxX
- * @param int|null $maxY
- *
- * @return string
- */
- private function buildCachePath($fileId, $maxX = null, $maxY = null) {
- if (is_null($maxX)) {
- $maxX = $this->getMaxX();
- }
- if (is_null($maxY)) {
- $maxY = $this->getMaxY();
- }
-
- $previewPath = $this->getPreviewPath($fileId);
- $previewPath = $previewPath . strval($maxX) . '-' . strval($maxY);
- $isMaxPreview =
- ($maxX === $this->maxPreviewWidth && $maxY === $this->maxPreviewHeight) ? true : false;
- if ($isMaxPreview) {
- $previewPath .= '-max';
- }
- if ($this->keepAspect && !$isMaxPreview) {
- $previewPath .= '-with-aspect';
- }
- if ($this->mode === self::MODE_COVER) {
- $previewPath .= '-cover';
- }
- $previewPath .= '.png';
-
- return $previewPath;
- }
-
- /**
- * Returns the path to the folder where the previews are stored, identified by the fileId
- *
- * @param int $fileId
- *
- * @return string
- */
- private function getPreviewPath($fileId) {
- return $this->getThumbnailsFolder() . '/' . $fileId . '/';
- }
-
- /**
- * Asks the provider to send a preview of the file which respects the maximum dimensions
- * defined in the configuration and after saving it in the cache, it is then resized to the
- * asked dimensions
- *
- * This is only called once in order to generate a large PNG of dimensions defined in the
- * configuration file. We'll be able to quickly resize it later on.
- * We never upscale the original conversion as this will be done later by the resizing
- * operation
- *
- * @param int $fileId fileId of the original image
- */
- private function generatePreview($fileId) {
- $file = $this->getFile();
- $preview = null;
-
- $previewProviders = \OC::$server->getPreviewManager()
- ->getProviders();
- foreach ($previewProviders as $supportedMimeType => $providers) {
- if (!preg_match($supportedMimeType, $this->mimeType)) {
- continue;
- }
-
- foreach ($providers as $closure) {
- $provider = $closure();
- if (!($provider instanceof \OCP\Preview\IProvider)) {
- continue;
- }
-
- \OCP\Util::writeLog(
- 'core', 'Generating preview for "' . $file . '" with "' . get_class($provider)
- . '"', \OCP\Util::DEBUG
- );
-
- /** @var $provider Provider */
- $preview = $provider->getThumbnail(
- $file, $this->configMaxWidth, $this->configMaxHeight, $scalingUp = false,
- $this->fileView
- );
-
- if (!($preview instanceof \OCP\IImage)) {
- continue;
- }
-
- $this->preview = $preview;
- $previewPath = $this->getPreviewPath($fileId);
-
- if ($this->userView->is_dir($this->getThumbnailsFolder() . '/') === false) {
- $this->userView->mkdir($this->getThumbnailsFolder() . '/');
- }
-
- if ($this->userView->is_dir($previewPath) === false) {
- $this->userView->mkdir($previewPath);
- }
-
- // This stores our large preview so that it can be used in subsequent resizing requests
- $this->storeMaxPreview($previewPath);
-
- break 2;
- }
- }
-
- // The providers have been kind enough to give us a preview
- if ($preview) {
- $this->resizeAndStore($fileId);
- }
- }
-
- /**
- * Defines the media icon, for the media type of the original file, as the preview
- * @throws PreviewNotAvailableException
- */
- private function getMimeIcon() {
- $image = new \OC_Image();
- $mimeIconWebPath = \OC::$server->getMimeTypeDetector()->mimeTypeIcon($this->mimeType);
- if (empty(\OC::$WEBROOT)) {
- $mimeIconServerPath = \OC::$SERVERROOT . $mimeIconWebPath;
- } else {
- $mimeIconServerPath = str_replace(\OC::$WEBROOT, \OC::$SERVERROOT, $mimeIconWebPath);
- }
- // we can't load SVGs into an image
- if (substr($mimeIconWebPath, -4) === '.svg') {
- throw new PreviewNotAvailableException('SVG mimetype cannot be rendered');
- }
- $image->loadFromFile($mimeIconServerPath);
-
- $this->preview = $image;
- }
-
- /**
- * Stores the max preview in the cache
- *
- * @param string $previewPath path to the preview
- */
- private function storeMaxPreview($previewPath) {
- $maxPreviewExists = false;
- $preview = $this->preview;
-
- $allThumbnails = $this->userView->getDirectoryContent($previewPath);
- // This is so that the cache doesn't need emptying when upgrading
- // Can be replaced by an upgrade script...
- foreach ($allThumbnails as $thumbnail) {
- $name = rtrim($thumbnail['name'], '.png');
- if (strpos($name, 'max')) {
- $maxPreviewExists = true;
- break;
- }
- }
- // We haven't found the max preview, so we create it
- if (!$maxPreviewExists) {
- $previewWidth = $preview->width();
- $previewHeight = $preview->height();
- $previewPath = $previewPath . strval($previewWidth) . '-' . strval($previewHeight);
- $previewPath .= '-max.png';
- $this->userView->file_put_contents($previewPath, $preview->data());
- $this->maxPreviewWidth = $previewWidth;
- $this->maxPreviewHeight = $previewHeight;
- }
- }
-
- /**
- * Limits a dimension to the maximum dimension provided as argument
- *
- * @param int $dim
- * @param int $maxDim
- * @param string $dimName
- *
- * @return integer
- */
- private function limitMaxDim($dim, $maxDim, $dimName) {
- if (!is_null($maxDim)) {
- if ($dim > $maxDim) {
- \OCP\Util::writeLog(
- 'core', $dimName . ' reduced from ' . $dim . ' to ' . $maxDim, \OCP\Util::DEBUG
- );
- $dim = $maxDim;
- }
- }
-
- return $dim;
- }
-
- /**
- * @param array $args
- */
- public static function post_write($args) {
- self::post_delete($args, 'files/');
- }
-
- /**
- * @param array $args
- */
- public static function prepare_delete_files($args) {
- self::prepare_delete($args, 'files/');
- }
-
- /**
- * @param array $args
- * @param string $prefix
- */
- public static function prepare_delete(array $args, $prefix = '') {
- $path = $args['path'];
- if (substr($path, 0, 1) === '/') {
- $path = substr($path, 1);
- }
-
- $view = new \OC\Files\View('/' . \OC_User::getUser() . '/' . $prefix);
-
- $absPath = Files\Filesystem::normalizePath($view->getAbsolutePath($path));
- $fileInfo = $view->getFileInfo($path);
- if ($fileInfo === false) {
- return;
- }
- self::addPathToDeleteFileMapper($absPath, $fileInfo);
- if ($view->is_dir($path)) {
- $children = self::getAllChildren($view, $path);
- self::$deleteChildrenMapper[$absPath] = $children;
- }
- }
-
- /**
- * @param string $absolutePath
- * @param \OCP\Files\FileInfo $info
- */
- private static function addPathToDeleteFileMapper($absolutePath, $info) {
- self::$deleteFileMapper[$absolutePath] = $info;
- }
-
- /**
- * @param \OC\Files\View $view
- * @param string $path
- *
- * @return array
- */
- private static function getAllChildren($view, $path) {
- $children = $view->getDirectoryContent($path);
- $childrensFiles = array();
-
- $fakeRootLength = strlen($view->getRoot());
-
- for ($i = 0; $i < count($children); $i++) {
- $child = $children[$i];
-
- $childsPath = substr($child->getPath(), $fakeRootLength);
-
- if ($view->is_dir($childsPath)) {
- $children = array_merge(
- $children,
- $view->getDirectoryContent($childsPath)
- );
- } else {
- $childrensFiles[] = $child;
- }
- }
-
- return $childrensFiles;
- }
-
- /**
- * @param array $args
- */
- public static function post_delete_files($args) {
- self::post_delete($args, 'files/');
- }
-
- /**
- * @param array $args
- */
- public static function post_delete_versions($args) {
- self::post_delete($args, 'files/');
- }
-
- /**
- * @param array $args
- * @param string $prefix
- */
- public static function post_delete($args, $prefix = '') {
- $path = Files\Filesystem::normalizePath($args['path']);
-
- $preview = new Preview(\OC_User::getUser(), $prefix, $path);
- $preview->deleteAllPreviews();
- }
-
-}
diff --git a/lib/private/PreviewManager.php b/lib/private/PreviewManager.php
index 36b3730a720cdcb62017d649631176b27ca942ff..8c5a7ad29f1aa9f862c70b6cec0b940bd60fd58c 100644
--- a/lib/private/PreviewManager.php
+++ b/lib/private/PreviewManager.php
@@ -68,6 +68,9 @@ class PreviewManager implements IPreview {
/** @var array */
protected $defaultProviders;
+ /** @var string */
+ protected $userId;
+
/**
* PreviewManager constructor.
*
@@ -75,15 +78,18 @@ class PreviewManager implements IPreview {
* @param IRootFolder $rootFolder
* @param IAppData $appData
* @param EventDispatcherInterface $eventDispatcher
+ * @param string $userId
*/
public function __construct(IConfig $config,
IRootFolder $rootFolder,
IAppData $appData,
- EventDispatcherInterface $eventDispatcher) {
+ EventDispatcherInterface $eventDispatcher,
+ $userId) {
$this->config = $config;
$this->rootFolder = $rootFolder;
$this->appData = $appData;
$this->eventDispatcher = $eventDispatcher;
+ $this->userId = $userId;
}
/**
@@ -144,10 +150,22 @@ class PreviewManager implements IPreview {
* @param int $maxY The maximum Y size of the thumbnail. It can be smaller depending on the shape of the image
* @param boolean $scaleUp Scale smaller images up to the thumbnail size or not. Might look ugly
* @return \OCP\IImage
+ * @deprecated 11 Use getPreview
*/
public function createPreview($file, $maxX = 100, $maxY = 75, $scaleUp = false) {
- $preview = new \OC\Preview('', '/', $file, $maxX, $maxY, $scaleUp);
- return $preview->getPreview();
+ try {
+ $userRoot = $this->rootFolder->getUserFolder($this->userId)->getParent();
+ $node = $userRoot->get($file);
+ if (!($file instanceof File)) {
+ throw new NotFoundException();
+ }
+
+ $preview = $this->getPreview($node, $maxX, $maxY);
+ } catch (\Exception $e) {
+ return new \OC_Image();
+ }
+
+ return new \OC_Image($preview->getContent());
}
/**
diff --git a/lib/private/Repair.php b/lib/private/Repair.php
index c212ea90744afc46e58dccbceb662d382889b822..e8d466cd844c7e81bf14e9435da73f8cf1c4b0cb 100644
--- a/lib/private/Repair.php
+++ b/lib/private/Repair.php
@@ -31,12 +31,12 @@
namespace OC;
use OC\Repair\AssetCache;
-use OC\Repair\AvatarPermissions;
use OC\Repair\CleanTags;
use OC\Repair\Collation;
use OC\Repair\DropOldJobs;
use OC\Repair\MoveUpdaterStepFile;
use OC\Repair\NC11\CleanPreviews;
+use OC\Repair\NC11\FixMountStorages;
use OC\Repair\NC11\MoveAvatars;
use OC\Repair\OldGroupMembershipShares;
use OC\Repair\RemoveGetETagEntries;
@@ -47,7 +47,6 @@ use OC\Repair\SqliteAutoincrement;
use OC\Repair\DropOldTables;
use OC\Repair\FillETags;
use OC\Repair\InnoDB;
-use OC\Repair\RepairLegacyStorages;
use OC\Repair\RepairMimeTypes;
use OC\Repair\SearchLuceneTables;
use OC\Repair\UpdateOutdatedOcsIds;
@@ -132,7 +131,6 @@ class Repair implements IOutput{
return [
new Collation(\OC::$server->getConfig(), \OC::$server->getLogger(), \OC::$server->getDatabaseConnection(), false),
new RepairMimeTypes(\OC::$server->getConfig()),
- new RepairLegacyStorages(\OC::$server->getConfig(), \OC::$server->getDatabaseConnection()),
new AssetCache(),
new FillETags(\OC::$server->getDatabaseConnection()),
new CleanTags(\OC::$server->getDatabaseConnection(), \OC::$server->getUserManager()),
@@ -143,7 +141,6 @@ class Repair implements IOutput{
new RepairInvalidShares(\OC::$server->getConfig(), \OC::$server->getDatabaseConnection()),
new SharePropagation(\OC::$server->getConfig()),
new RemoveOldShares(\OC::$server->getDatabaseConnection()),
- new AvatarPermissions(\OC::$server->getDatabaseConnection()),
new RemoveRootShares(\OC::$server->getDatabaseConnection(), \OC::$server->getUserManager(), \OC::$server->getLazyRootFolder()),
new RepairUnmergedShares(
\OC::$server->getConfig(),
@@ -161,6 +158,7 @@ class Repair implements IOutput{
\OC::$server->getUserManager(),
\OC::$server->getConfig()
),
+ new FixMountStorages(\OC::$server->getDatabaseConnection()),
];
}
diff --git a/lib/private/Repair/AvatarPermissions.php b/lib/private/Repair/AvatarPermissions.php
deleted file mode 100644
index 9d75062358cdf7ef6d3564a0d3fc4bc18611f249..0000000000000000000000000000000000000000
--- a/lib/private/Repair/AvatarPermissions.php
+++ /dev/null
@@ -1,116 +0,0 @@
-
- *
- * @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
- *
- */
-namespace OC\Repair;
-
-use Doctrine\DBAL\Platforms\OraclePlatform;
-use OCP\IDBConnection;
-use OCP\Migration\IOutput;
-use OCP\Migration\IRepairStep;
-
-/**
- * Class AvatarPermissions
- *
- * @package OC\Repair
- */
-class AvatarPermissions implements IRepairStep {
- /** @var IDBConnection */
- private $connection;
-
- /**
- * AvatarPermissions constructor.
- *
- * @param IDBConnection $connection
- */
- public function __construct(IDBConnection $connection) {
- $this->connection = $connection;
- }
-
- /**
- * @return string
- */
- public function getName() {
- return 'Fix permissions so avatars can be stored again';
- }
-
- /**
- * @param IOutput $output
- */
- public function run(IOutput $output) {
- $output->startProgress(2);
- $this->fixUserRootPermissions();
- $output->advance();
- $this->fixAvatarPermissions();
- $output->finishProgress();
- }
-
- /**
- * Make sure all user roots have permissions 23 (all but share)
- */
- protected function fixUserRootPermissions() {
- $qb = $this->connection->getQueryBuilder();
- $qb2 = $this->connection->getQueryBuilder();
-
- $qb->select('numeric_id')
- ->from('storages')
- ->where($qb->expr()->like('id', $qb2->createParameter('like')));
-
- if ($this->connection->getDatabasePlatform() instanceof OraclePlatform) {
- // '' is null on oracle
- $path = $qb2->expr()->isNull('path');
- } else {
- $path = $qb2->expr()->eq('path', $qb2->createNamedParameter(''));
- }
-
- $qb2->update('filecache')
- ->set('permissions', $qb2->createNamedParameter(23))
- ->where($path)
- ->andWhere($qb2->expr()->in('storage', $qb2->createFunction($qb->getSQL())))
- ->andWhere($qb2->expr()->neq('permissions', $qb2->createNamedParameter(23)))
- ->setParameter('like', 'home::%');
-
-
- $qb2->execute();
- }
-
- /**
- * Make sure all avatar files in the user roots have permission 27
- */
- protected function fixAvatarPermissions() {
- $qb = $this->connection->getQueryBuilder();
- $qb2 = $this->connection->getQueryBuilder();
-
- $qb->select('numeric_id')
- ->from('storages')
- ->where($qb->expr()->like('id', $qb2->createParameter('like')));
-
- $qb2->update('filecache')
- ->set('permissions', $qb2->createNamedParameter(27))
- ->where($qb2->expr()->like('path', $qb2->createNamedParameter('avatar.%')))
- ->andWhere($qb2->expr()->in('storage', $qb2->createFunction($qb->getSQL())))
- ->andWhere($qb2->expr()->neq('permissions', $qb2->createNamedParameter(27)))
- ->setParameter('like', 'home::%');
-
- $qb2->execute();
- }
-
-}
-
diff --git a/lib/private/Repair/Collation.php b/lib/private/Repair/Collation.php
index 54de1a719bd2289b51bb35c93b78699a703d016e..a3535fb33a296969ef91917feb08da8eab4e3cb8 100644
--- a/lib/private/Repair/Collation.php
+++ b/lib/private/Repair/Collation.php
@@ -75,6 +75,18 @@ class Collation implements IRepairStep {
$tables = $this->getAllNonUTF8BinTables($this->connection);
foreach ($tables as $table) {
+ $output->info("Change row format for $table ...");
+ $query = $this->connection->prepare('ALTER TABLE `' . $table . '` ROW_FORMAT = DYNAMIC;');
+ try {
+ $query->execute();
+ } catch (DriverException $e) {
+ // Just log this
+ $this->logger->logException($e);
+ if (!$this->ignoreFailures) {
+ throw $e;
+ }
+ }
+
$output->info("Change collation for $table ...");
$query = $this->connection->prepare('ALTER TABLE `' . $table . '` CONVERT TO CHARACTER SET ' . $characterSet . ' COLLATE ' . $characterSet . '_bin;');
try {
diff --git a/lib/private/Repair/MoveUpdaterStepFile.php b/lib/private/Repair/MoveUpdaterStepFile.php
index fabaff40d246d2922e09522ed27424093b2d231c..feb8a291282965ee7a485534f85b9f426c10ae17 100644
--- a/lib/private/Repair/MoveUpdaterStepFile.php
+++ b/lib/private/Repair/MoveUpdaterStepFile.php
@@ -44,7 +44,7 @@ class MoveUpdaterStepFile implements IRepairStep {
public function run(IOutput $output) {
- $dataDir = $this->config->getSystemValue('datadirectory', \OC::$SERVERROOT);
+ $dataDir = $this->config->getSystemValue('datadirectory', \OC::$SERVERROOT . '/data');
$instanceId = $this->config->getSystemValue('instanceid', null);
if(!is_string($instanceId) || empty($instanceId)) {
diff --git a/lib/private/Repair/NC11/FixMountStorages.php b/lib/private/Repair/NC11/FixMountStorages.php
new file mode 100644
index 0000000000000000000000000000000000000000..d57a356dff9e5d9ef7260ed8c3ef39908c8e0923
--- /dev/null
+++ b/lib/private/Repair/NC11/FixMountStorages.php
@@ -0,0 +1,78 @@
+
+ *
+ * @author Joas Schilling
+ *
+ * @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 .
+ *
+ */
+namespace OC\Repair\NC11;
+
+use OCP\DB\QueryBuilder\IQueryBuilder;
+use OCP\IDBConnection;
+use OCP\Migration\IOutput;
+use OCP\Migration\IRepairStep;
+
+class FixMountStorages implements IRepairStep {
+
+ /** @var IDBConnection */
+ private $db;
+
+ /**
+ * @param IDBConnection $db
+ */
+ public function __construct(IDBConnection $db) {
+ $this->db = $db;
+ }
+
+ /**
+ * @return string
+ */
+ public function getName() {
+ return 'Fix potential broken mount points';
+ }
+
+ public function run(IOutput $output) {
+ $query = $this->db->getQueryBuilder();
+ $query->select('m.id', 'f.storage')
+ ->from('mounts', 'm')
+ ->leftJoin('m', 'filecache', 'f', $query->expr()->eq('m.root_id', 'f.fileid'))
+ ->where($query->expr()->neq('m.storage_id', 'f.storage'));
+
+ $update = $this->db->getQueryBuilder();
+ $update->update('mounts')
+ ->set('storage_id', $update->createParameter('storage'))
+ ->where($query->expr()->eq('id', $update->createParameter('mount')));
+
+ $result = $query->execute();
+ $entriesUpdated = 0;
+ while ($row = $result->fetch()) {
+ $update->setParameter('storage', $row['storage'], IQueryBuilder::PARAM_INT)
+ ->setParameter('mount', $row['id'], IQueryBuilder::PARAM_INT);
+ $update->execute();
+ $entriesUpdated++;
+ }
+ $result->closeCursor();
+
+ if ($entriesUpdated > 0) {
+ $output->info($entriesUpdated . ' mounts updated');
+ return;
+ }
+
+ $output->info('No mounts updated');
+ }
+}
diff --git a/lib/private/Repair/NC11/MoveAvatarBackgroundJob.php b/lib/private/Repair/NC11/MoveAvatarsBackgroundJob.php
similarity index 100%
rename from lib/private/Repair/NC11/MoveAvatarBackgroundJob.php
rename to lib/private/Repair/NC11/MoveAvatarsBackgroundJob.php
diff --git a/lib/private/Repair/RepairInvalidShares.php b/lib/private/Repair/RepairInvalidShares.php
index 6cb690057bb3a76317f6b17a9f372cd2799cffb0..04624c910dd928cdf997905c852a8528e1330471 100644
--- a/lib/private/Repair/RepairInvalidShares.php
+++ b/lib/private/Repair/RepairInvalidShares.php
@@ -27,6 +27,7 @@ namespace OC\Repair;
use OCP\Migration\IOutput;
use OCP\Migration\IRepairStep;
+use Doctrine\DBAL\Platforms\OraclePlatform;
/**
* Repairs shares with invalid data
@@ -91,6 +92,26 @@ class RepairInvalidShares implements IRepairStep {
}
}
+ /**
+ * Adjust file share permissions
+ */
+ private function adjustFileSharePermissions(IOutput $out) {
+ $mask = \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_SHARE;
+ $builder = $this->connection->getQueryBuilder();
+
+ $permsFunc = $builder->expr()->bitwiseAnd('permissions', $mask);
+ $builder
+ ->update('share')
+ ->set('permissions', $permsFunc)
+ ->where($builder->expr()->eq('item_type', $builder->expr()->literal('file')))
+ ->andWhere($builder->expr()->neq('permissions', $permsFunc));
+
+ $updatedEntries = $builder->execute();
+ if ($updatedEntries > 0) {
+ $out->info('Fixed file share permissions for ' . $updatedEntries . ' shares');
+ }
+ }
+
/**
* Remove shares where the parent share does not exist anymore
*/
@@ -137,6 +158,9 @@ class RepairInvalidShares implements IRepairStep {
// this situation was only possible before 9.1
$this->addShareLinkDeletePermission($out);
}
+ if (version_compare($ocVersionFromBeforeUpdate, '12.0.0.11', '<')) {
+ $this->adjustFileSharePermissions($out);
+ }
$this->removeSharesNonExistingParent($out);
}
diff --git a/lib/private/Repair/RepairLegacyStorages.php b/lib/private/Repair/RepairLegacyStorages.php
deleted file mode 100644
index 228bdb67fe8907a295a06944a9bc868224aae331..0000000000000000000000000000000000000000
--- a/lib/private/Repair/RepairLegacyStorages.php
+++ /dev/null
@@ -1,257 +0,0 @@
-
- * @author Joas Schilling
- * @author Morris Jobke
- * @author Thomas Müller
- * @author Vincent Petry
- *
- * @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
- *
- */
-
-namespace OC\Repair;
-
-use OC\Files\Cache\Storage;
-use OC\RepairException;
-use OCP\Migration\IOutput;
-use OCP\Migration\IRepairStep;
-
-class RepairLegacyStorages implements IRepairStep{
- /**
- * @var \OCP\IConfig
- */
- protected $config;
-
- /**
- * @var \OCP\IDBConnection
- */
- protected $connection;
-
- protected $findStorageInCacheStatement;
- protected $renameStorageStatement;
-
- /**
- * @param \OCP\IConfig $config
- * @param \OCP\IDBConnection $connection
- */
- public function __construct($config, $connection) {
- $this->connection = $connection;
- $this->config = $config;
-
- $this->findStorageInCacheStatement = $this->connection->prepare(
- 'SELECT DISTINCT `storage` FROM `*PREFIX*filecache`'
- . ' WHERE `storage` in (?, ?)'
- );
- $this->renameStorageStatement = $this->connection->prepare(
- 'UPDATE `*PREFIX*storages`'
- . ' SET `id` = ?'
- . ' WHERE `id` = ?'
- );
- }
-
- public function getName() {
- return 'Repair legacy storages';
- }
-
- /**
- * Extracts the user id from a legacy storage id
- *
- * @param string $storageId legacy storage id in the
- * format "local::/path/to/datadir/userid"
- * @return string user id extracted from the storage id
- */
- private function extractUserId($storageId) {
- $storageId = rtrim($storageId, '/');
- $pos = strrpos($storageId, '/');
- return substr($storageId, $pos + 1);
- }
-
- /**
- * Fix the given legacy storage by renaming the old id
- * to the new id. If the new id already exists, whichever
- * storage that has data in the file cache will be used.
- * If both have data, nothing will be done and false is
- * returned.
- *
- * @param string $oldId old storage id
- * @param int $oldNumericId old storage numeric id
- * @param string $userId
- * @return bool true if fixed, false otherwise
- * @throws RepairException
- */
- private function fixLegacyStorage($oldId, $oldNumericId, $userId = null) {
- // check whether the new storage already exists
- if (is_null($userId)) {
- $userId = $this->extractUserId($oldId);
- }
- $newId = 'home::' . $userId;
-
- // check if target id already exists
- $newNumericId = Storage::getNumericStorageId($newId);
- if (!is_null($newNumericId)) {
- $newNumericId = (int)$newNumericId;
- // try and resolve the conflict
- // check which one of "local::" or "home::" needs to be kept
- $this->findStorageInCacheStatement->execute(array($oldNumericId, $newNumericId));
- $row1 = $this->findStorageInCacheStatement->fetch();
- $row2 = $this->findStorageInCacheStatement->fetch();
- $this->findStorageInCacheStatement->closeCursor();
- if ($row2 !== false) {
- // two results means both storages have data, not auto-fixable
- throw new RepairException(
- 'Could not automatically fix legacy storage '
- . '"' . $oldId . '" => "' . $newId . '"'
- . ' because they both have data.'
- );
- }
- if ($row1 === false || (int)$row1['storage'] === $oldNumericId) {
- // old storage has data, then delete the empty new id
- $toDelete = $newId;
- } else if ((int)$row1['storage'] === $newNumericId) {
- // new storage has data, then delete the empty old id
- $toDelete = $oldId;
- } else {
- // unknown case, do not continue
- return false;
- }
-
- // delete storage including file cache
- Storage::remove($toDelete);
-
- // if we deleted the old id, the new id will be used
- // automatically
- if ($toDelete === $oldId) {
- // nothing more to do
- return true;
- }
- }
-
- // rename old id to new id
- $newId = Storage::adjustStorageId($newId);
- $oldId = Storage::adjustStorageId($oldId);
- $rowCount = $this->renameStorageStatement->execute(array($newId, $oldId));
- $this->renameStorageStatement->closeCursor();
- return ($rowCount === 1);
- }
-
- /**
- * Converts legacy home storage ids in the format
- * "local::/data/dir/path/userid/" to the new format "home::userid"
- */
- public function run(IOutput $out) {
- // only run once
- if ($this->config->getAppValue('core', 'repairlegacystoragesdone') === 'yes') {
- return;
- }
-
- $dataDir = $this->config->getSystemValue('datadirectory', \OC::$SERVERROOT . '/data/');
- $dataDir = rtrim($dataDir, '/') . '/';
- $dataDirId = 'local::' . $dataDir;
-
- $count = 0;
- $hasWarnings = false;
-
- $this->connection->beginTransaction();
-
- // note: not doing a direct UPDATE with the REPLACE function
- // because regexp search/extract is needed and it is not guaranteed
- // to work on all database types
- $sql = 'SELECT `id`, `numeric_id` FROM `*PREFIX*storages`'
- . ' WHERE `id` LIKE ?'
- . ' ORDER BY `id`';
- $result = $this->connection->executeQuery($sql, array($this->connection->escapeLikeParameter($dataDirId) . '%'));
-
- while ($row = $result->fetch()) {
- $currentId = $row['id'];
- // one entry is the datadir itself
- if ($currentId === $dataDirId) {
- continue;
- }
-
- try {
- if ($this->fixLegacyStorage($currentId, (int)$row['numeric_id'])) {
- $count++;
- }
- }
- catch (RepairException $e) {
- $hasWarnings = true;
- $out->warning('Could not repair legacy storage ' . $currentId . ' automatically.');
- }
- }
-
- // check for md5 ids, not in the format "prefix::"
- $sql = 'SELECT COUNT(*) AS "c" FROM `*PREFIX*storages`'
- . ' WHERE `id` NOT LIKE \'%::%\'';
- $result = $this->connection->executeQuery($sql);
- $row = $result->fetch();
-
- // find at least one to make sure it's worth
- // querying the user list
- if ((int)$row['c'] > 0) {
- $userManager = \OC::$server->getUserManager();
-
- // use chunks to avoid caching too many users in memory
- $limit = 30;
- $offset = 0;
-
- do {
- // query the next page of users
- $results = $userManager->search('', $limit, $offset);
- $storageIds = array();
- foreach ($results as $uid => $userObject) {
- $storageId = $dataDirId . $uid . '/';
- if (strlen($storageId) <= 64) {
- // skip short storage ids as they were handled in the previous section
- continue;
- }
- $storageIds[$uid] = $storageId;
- }
-
- if (count($storageIds) > 0) {
- // update the storages of these users
- foreach ($storageIds as $uid => $storageId) {
- $numericId = Storage::getNumericStorageId($storageId);
- try {
- if (!is_null($numericId) && $this->fixLegacyStorage($storageId, (int)$numericId)) {
- $count++;
- }
- }
- catch (RepairException $e) {
- $hasWarnings = true;
- $out->warning('Could not repair legacy storage ' . $storageId . ' automatically.');
- }
- }
- }
- $offset += $limit;
- } while (count($results) >= $limit);
- }
-
- $out->info('Updated ' . $count . ' legacy home storage ids');
-
- $this->connection->commit();
-
- Storage::getGlobalCache()->clearCache();
-
- if ($hasWarnings) {
- $out->warning('Some legacy storages could not be repaired. Please manually fix them then re-run ./occ maintenance:repair');
- } else {
- // if all were done, no need to redo the repair during next upgrade
- $this->config->setAppValue('core', 'repairlegacystoragesdone', 'yes');
- }
- }
-}
diff --git a/lib/private/Security/Bruteforce/Throttler.php b/lib/private/Security/Bruteforce/Throttler.php
index 031c5ffd411cd4d706858420ba77cdf076eca613..765f109fdb3b1ea7a4f6b72eb4777a52fd63641e 100644
--- a/lib/private/Security/Bruteforce/Throttler.php
+++ b/lib/private/Security/Bruteforce/Throttler.php
@@ -189,9 +189,10 @@ class Throttler {
* Get the throttling delay (in milliseconds)
*
* @param string $ip
+ * @param string $action optionally filter by action
* @return int
*/
- public function getDelay($ip) {
+ public function getDelay($ip, $action = '') {
$cutoffTime = (new \DateTime())
->sub($this->getCutoff(43200))
->getTimestamp();
@@ -201,6 +202,11 @@ class Throttler {
->from('bruteforce_attempts')
->where($qb->expr()->gt('occurred', $qb->createNamedParameter($cutoffTime)))
->andWhere($qb->expr()->eq('subnet', $qb->createNamedParameter($this->getSubnet($ip))));
+
+ if ($action !== '') {
+ $qb->andWhere($qb->expr()->eq('action', $qb->createNamedParameter($action)));
+ }
+
$attempts = count($qb->execute()->fetchAll());
if ($attempts === 0) {
@@ -225,10 +231,11 @@ class Throttler {
* Will sleep for the defined amount of time
*
* @param string $ip
+ * @param string $action optionally filter by action
* @return int the time spent sleeping
*/
- public function sleepDelay($ip) {
- $delay = $this->getDelay($ip);
+ public function sleepDelay($ip, $action = '') {
+ $delay = $this->getDelay($ip, $action);
usleep($delay * 1000);
return $delay;
}
diff --git a/lib/private/Security/CSP/ContentSecurityPolicyNonceManager.php b/lib/private/Security/CSP/ContentSecurityPolicyNonceManager.php
index 284700566d69d03003d9809149b2b3ee5be34822..85ae127f5f1be7b7d25e19f70f2d9aa929cc1585 100644
--- a/lib/private/Security/CSP/ContentSecurityPolicyNonceManager.php
+++ b/lib/private/Security/CSP/ContentSecurityPolicyNonceManager.php
@@ -69,8 +69,6 @@ class ContentSecurityPolicyNonceManager {
Request::USER_AGENT_CHROME,
// Firefox 45+
'/^Mozilla\/5\.0 \([^)]+\) Gecko\/[0-9.]+ Firefox\/(4[5-9]|[5-9][0-9])\.[0-9.]+$/',
- // Safari 10+
- '/^Mozilla\/5\.0 \([^)]+\) AppleWebKit\/[0-9.]+ \(KHTML, like Gecko\) Version\/1[0-9.]+ Safari\/[0-9.A-Z]+$/',
];
if($this->request->isUserAgent($browserWhitelist)) {
diff --git a/lib/private/Security/CertificateManager.php b/lib/private/Security/CertificateManager.php
index f7bf0df58c5fff139c009d5250af302fa0ab7a25..461ef9457a7e1f69b40190dee9db2f9f58d01885 100644
--- a/lib/private/Security/CertificateManager.php
+++ b/lib/private/Security/CertificateManager.php
@@ -30,6 +30,7 @@ namespace OC\Security;
use OC\Files\Filesystem;
use OCP\ICertificateManager;
use OCP\IConfig;
+use OCP\ILogger;
/**
* Manage trusted certificates for users
@@ -50,15 +51,22 @@ class CertificateManager implements ICertificateManager {
*/
protected $config;
+ /**
+ * @var ILogger
+ */
+ protected $logger;
+
/**
* @param string $uid
* @param \OC\Files\View $view relative to data/
* @param IConfig $config
+ * @param ILogger $logger
*/
- public function __construct($uid, \OC\Files\View $view, IConfig $config) {
+ public function __construct($uid, \OC\Files\View $view, IConfig $config, ILogger $logger) {
$this->uid = $uid;
$this->view = $view;
$this->config = $config;
+ $this->logger = $logger;
}
/**
@@ -104,6 +112,13 @@ class CertificateManager implements ICertificateManager {
$this->view->mkdir($path);
}
+ $defaultCertificates = file_get_contents(\OC::$SERVERROOT . '/resources/config/ca-bundle.crt');
+ if (strlen($defaultCertificates) < 1024) { // sanity check to verify that we have some content for our bundle
+ // log as exception so we have a stacktrace
+ $this->logger->logException(new \Exception('Shipped ca-bundle is empty, refusing to create certificate bundle'));
+ return;
+ }
+
$fhCerts = $this->view->fopen($path . '/rootcerts.crt', 'w');
// Write user certificates
@@ -117,7 +132,6 @@ class CertificateManager implements ICertificateManager {
}
// Append the default certificates
- $defaultCertificates = file_get_contents(\OC::$SERVERROOT . '/resources/config/ca-bundle.crt');
fwrite($fhCerts, $defaultCertificates);
// Append the system certificate bundle
@@ -203,7 +217,7 @@ class CertificateManager implements ICertificateManager {
}
if ($this->needsRebundling($uid)) {
if (is_null($uid)) {
- $manager = new CertificateManager(null, $this->view, $this->config);
+ $manager = new CertificateManager(null, $this->view, $this->config, $this->logger);
$manager->createCertificateBundle();
} else {
$this->createCertificateBundle();
diff --git a/lib/private/Server.php b/lib/private/Server.php
index 2c0aac9b43cb7c00ea7c127a9afd2c001d2baf4e..3c716ae6ce6d2649b3f0c5e843eacf1a346f16cc 100644
--- a/lib/private/Server.php
+++ b/lib/private/Server.php
@@ -45,8 +45,8 @@ use bantu\IniGetWrapper\IniGetWrapper;
use OC\App\AppStore\Fetcher\AppFetcher;
use OC\App\AppStore\Fetcher\CategoryFetcher;
use OC\AppFramework\Http\Request;
-use OC\AppFramework\Db\Db;
use OC\AppFramework\Utility\TimeFactory;
+use OC\Authentication\LoginCredentials\Store;
use OC\Command\AsyncBus;
use OC\Diagnostics\EventLogger;
use OC\Diagnostics\NullEventLogger;
@@ -90,6 +90,7 @@ use OC\Security\TrustedDomainHelper;
use OC\Session\CryptoWrapper;
use OC\Tagging\TagMapper;
use OCA\Theming\ThemingDefaults;
+use OCP\Authentication\LoginCredentials\IStore;
use OCP\IL10N;
use OCP\IServerContainer;
use OCP\RichObjectStrings\IValidator;
@@ -125,7 +126,8 @@ class Server extends ServerContainer implements IServerContainer {
$c->getConfig(),
$c->getRootFolder(),
$c->getAppDataDir('preview'),
- $c->getEventDispatcher()
+ $c->getEventDispatcher(),
+ $c->getSession()->get('user_id')
);
});
@@ -246,6 +248,17 @@ class Server extends ServerContainer implements IServerContainer {
});
return $groupManager;
});
+ $this->registerService(Store::class, function(Server $c) {
+ $session = $c->getSession();
+ if (\OC::$server->getSystemConfig()->getValue('installed', false)) {
+ $tokenProvider = $c->query('OC\Authentication\Token\IProvider');
+ } else {
+ $tokenProvider = null;
+ }
+ $logger = $c->getLogger();
+ return new Store($session, $logger, $tokenProvider);
+ });
+ $this->registerAlias(IStore::class, Store::class);
$this->registerService('OC\Authentication\Token\DefaultTokenMapper', function (Server $c) {
$dbConnection = $c->getDatabaseConnection();
return new Authentication\Token\DefaultTokenMapper($dbConnection);
@@ -313,11 +326,15 @@ class Server extends ServerContainer implements IServerContainer {
});
$this->registerService(\OC\Authentication\TwoFactorAuth\Manager::class, function (Server $c) {
- return new \OC\Authentication\TwoFactorAuth\Manager($c->getAppManager(), $c->getSession(), $c->getConfig());
+ return new \OC\Authentication\TwoFactorAuth\Manager($c->getAppManager(), $c->getSession(), $c->getConfig(), $c->getActivityManager(), $c->getLogger());
});
- $this->registerService('NavigationManager', function ($c) {
- return new \OC\NavigationManager();
+ $this->registerService('NavigationManager', function (Server $c) {
+ return new \OC\NavigationManager($c->getAppManager(),
+ $c->getURLGenerator(),
+ $c->getL10NFactory(),
+ $c->getUserSession(),
+ $c->getGroupManager());
});
$this->registerService('AllConfig', function (Server $c) {
return new \OC\AllConfig(
@@ -361,7 +378,8 @@ class Server extends ServerContainer implements IServerContainer {
return new CategoryFetcher(
$this->getAppDataDir('appstore'),
$this->getHTTPClientService(),
- $this->query(TimeFactory::class)
+ $this->query(TimeFactory::class),
+ $this->getConfig()
);
});
$this->registerService('UserCache', function ($c) {
@@ -376,7 +394,7 @@ class Server extends ServerContainer implements IServerContainer {
$version = implode(',', $v);
$instanceId = \OC_Util::getInstanceId();
$path = \OC::$SERVERROOT;
- $prefix = md5($instanceId . '-' . $version . '-' . $path);
+ $prefix = md5($instanceId . '-' . $version . '-' . $path . '-' . \OC::$WEBROOT);
return new \OC\Memcache\Factory($prefix, $c->getLogger(),
$config->getSystemValue('memcache.local', null),
$config->getSystemValue('memcache.distributed', null),
@@ -418,9 +436,8 @@ class Server extends ServerContainer implements IServerContainer {
);
});
$this->registerService('Logger', function (Server $c) {
- $logClass = $c->query('AllConfig')->getSystemValue('log_type', 'file');
- // TODO: Drop backwards compatibility for config in the future
- $logger = 'OC\\Log\\' . ucfirst($logClass=='owncloud' ? 'file' : $logClass);
+ $logType = $c->query('AllConfig')->getSystemValue('log_type', 'file');
+ $logger = Log::getLogClass($logType);
call_user_func(array($logger, 'init'));
return new Log($logger);
@@ -470,9 +487,6 @@ class Server extends ServerContainer implements IServerContainer {
$connection->getConfiguration()->setSQLLogger($c->getQueryLogger());
return $connection;
});
- $this->registerService('Db', function (Server $c) {
- return new Db($c->getDatabaseConnection());
- });
$this->registerService('HTTPHelper', function (Server $c) {
$config = $c->getConfig();
return new HTTPHelper(
@@ -485,7 +499,7 @@ class Server extends ServerContainer implements IServerContainer {
$uid = $user ? $user : null;
return new ClientService(
$c->getConfig(),
- new \OC\Security\CertificateManager($uid, new View(), $c->getConfig())
+ new \OC\Security\CertificateManager($uid, new View(), $c->getConfig(), $c->getLogger())
);
});
$this->registerService('EventLogger', function (Server $c) {
@@ -794,7 +808,9 @@ class Server extends ServerContainer implements IServerContainer {
$c->getConfig(),
$c->getEncryptionManager(),
$c->getUserManager(),
- $c->getLockingProvider()
+ $c->getLockingProvider(),
+ new \OC\Settings\Mapper($c->getDatabaseConnection()),
+ $c->getURLGenerator()
);
return $manager;
});
@@ -900,7 +916,6 @@ class Server extends ServerContainer implements IServerContainer {
return $this->query('SystemTagObjectMapper');
}
-
/**
* Returns the avatar manager, used for avatar functionality
*
@@ -998,7 +1013,8 @@ class Server extends ServerContainer implements IServerContainer {
*/
public function setSession(\OCP\ISession $session) {
$this->query(SessionStorage::class)->setSession($session);
- return $this->query('UserSession')->setSession($session);
+ $this->query('UserSession')->setSession($session);
+ $this->query(Store::class)->setSession($session);
}
/**
@@ -1198,16 +1214,6 @@ class Server extends ServerContainer implements IServerContainer {
return $this->query('CredentialsManager');
}
- /**
- * Returns an instance of the db facade
- *
- * @deprecated use getDatabaseConnection, will be removed in ownCloud 10
- * @return \OCP\IDb
- */
- public function getDb() {
- return $this->query('Db');
- }
-
/**
* Returns an instance of the HTTP helper class
*
@@ -1233,7 +1239,7 @@ class Server extends ServerContainer implements IServerContainer {
}
$userId = $user->getUID();
}
- return new CertificateManager($userId, new View(), $this->getConfig());
+ return new CertificateManager($userId, new View(), $this->getConfig(), $this->getLogger());
}
/**
diff --git a/lib/private/Settings/Admin/Encryption.php b/lib/private/Settings/Admin/Encryption.php
index 6e93407f1a39120a17fa13b0381e25adbdb380c1..63020c6bce7087b064e3a0720f5f7b102f321352 100644
--- a/lib/private/Settings/Admin/Encryption.php
+++ b/lib/private/Settings/Admin/Encryption.php
@@ -23,23 +23,23 @@
namespace OC\Settings\Admin;
-use OC\Encryption\Manager;
use OCP\AppFramework\Http\TemplateResponse;
+use OCP\Encryption\IManager;
use OCP\IUserManager;
use OCP\Settings\ISettings;
class Encryption implements ISettings {
- /** @var Manager */
+ /** @var IManager */
private $manager;
/** @var IUserManager */
private $userManager;
/**
- * @param Manager $manager
+ * @param IManager $manager
* @param IUserManager $userManager
*/
- public function __construct(Manager $manager, IUserManager $userManager) {
+ public function __construct(IManager $manager, IUserManager $userManager) {
$this->manager = $manager;
$this->userManager = $userManager;
}
diff --git a/lib/private/Settings/Manager.php b/lib/private/Settings/Manager.php
index 990750848d33f7d33a784ef4deddfbbc7a093b65..7a339b94199e44a7b807f2adffcd0757c91c8d6d 100644
--- a/lib/private/Settings/Manager.php
+++ b/lib/private/Settings/Manager.php
@@ -29,6 +29,7 @@ use OCP\IConfig;
use OCP\IDBConnection;
use OCP\IL10N;
use OCP\ILogger;
+use OCP\IURLGenerator;
use OCP\IUserManager;
use OCP\Lock\ILockingProvider;
use OCP\Settings\ISettings;
@@ -43,6 +44,8 @@ class Manager implements IManager {
private $log;
/** @var IDBConnection */
private $dbc;
+ /** @var Mapper */
+ private $mapper;
/** @var IL10N */
private $l;
/** @var IConfig */
@@ -53,6 +56,8 @@ class Manager implements IManager {
private $userManager;
/** @var ILockingProvider */
private $lockingProvider;
+ /** @var IURLGenerator */
+ private $url;
/**
* @param ILogger $log
@@ -62,6 +67,8 @@ class Manager implements IManager {
* @param EncryptionManager $encryptionManager
* @param IUserManager $userManager
* @param ILockingProvider $lockingProvider
+ * @param Mapper $mapper
+ * @param IURLGenerator $url
*/
public function __construct(
ILogger $log,
@@ -70,25 +77,29 @@ class Manager implements IManager {
IConfig $config,
EncryptionManager $encryptionManager,
IUserManager $userManager,
- ILockingProvider $lockingProvider
+ ILockingProvider $lockingProvider,
+ Mapper $mapper,
+ IURLGenerator $url
) {
$this->log = $log;
$this->dbc = $dbc;
+ $this->mapper = $mapper;
$this->l = $l;
$this->config = $config;
$this->encryptionManager = $encryptionManager;
$this->userManager = $userManager;
$this->lockingProvider = $lockingProvider;
+ $this->url = $url;
}
/**
* @inheritdoc
*/
public function setupSettings(array $settings) {
- if(isset($settings[IManager::KEY_ADMIN_SECTION])) {
+ if (isset($settings[IManager::KEY_ADMIN_SECTION])) {
$this->setupAdminSection($settings[IManager::KEY_ADMIN_SECTION]);
}
- if(isset($settings[IManager::KEY_ADMIN_SETTINGS])) {
+ if (isset($settings[IManager::KEY_ADMIN_SETTINGS])) {
$this->setupAdminSettings($settings[IManager::KEY_ADMIN_SETTINGS]);
}
}
@@ -104,50 +115,33 @@ class Manager implements IManager {
public function onAppDisabled($appId) {
$appInfo = \OC_App::getAppInfo($appId); // hello static legacy
- if(isset($appInfo['settings'][IManager::KEY_ADMIN_SECTION])) {
- $this->remove(self::TABLE_ADMIN_SECTIONS, trim($appInfo['settings'][IManager::KEY_ADMIN_SECTION], '\\'));
+ if (isset($appInfo['settings'][IManager::KEY_ADMIN_SECTION])) {
+ $this->mapper->remove(self::TABLE_ADMIN_SECTIONS, trim($appInfo['settings'][IManager::KEY_ADMIN_SECTION], '\\'));
}
- if(isset($appInfo['settings'][IManager::KEY_ADMIN_SETTINGS])) {
- $this->remove(self::TABLE_ADMIN_SETTINGS, trim($appInfo['settings'][IManager::KEY_ADMIN_SETTINGS], '\\'));
+ if (isset($appInfo['settings'][IManager::KEY_ADMIN_SETTINGS])) {
+ $this->mapper->remove(self::TABLE_ADMIN_SETTINGS, trim($appInfo['settings'][IManager::KEY_ADMIN_SETTINGS], '\\'));
}
}
public function checkForOrphanedClassNames() {
- $tables = [ self::TABLE_ADMIN_SECTIONS, self::TABLE_ADMIN_SETTINGS ];
+ $tables = [self::TABLE_ADMIN_SECTIONS, self::TABLE_ADMIN_SETTINGS];
foreach ($tables as $table) {
- $classes = $this->getClasses($table);
- foreach($classes as $className) {
+ $classes = $this->mapper->getClasses($table);
+ foreach ($classes as $className) {
try {
\OC::$server->query($className);
} catch (QueryException $e) {
- $this->remove($table, $className);
+ $this->mapper->remove($table, $className);
}
}
}
}
- /**
- * returns the registerd classes in the given table
- *
- * @param $table
- * @return string[]
- */
- private function getClasses($table) {
- $q = $this->dbc->getQueryBuilder();
- $resultStatement = $q->select('class')
- ->from($table)
- ->execute();
- $data = $resultStatement->fetchAll();
- $resultStatement->closeCursor();
-
- return array_map(function($row) { return $row['class']; }, $data);
- }
-
/**
* @param string $sectionClassName
*/
private function setupAdminSection($sectionClassName) {
- if(!class_exists($sectionClassName)) {
+ if (!class_exists($sectionClassName)) {
$this->log->debug('Could not find admin section class ' . $sectionClassName);
return;
}
@@ -158,14 +152,14 @@ class Manager implements IManager {
return;
}
- if(!$section instanceof ISection) {
+ if (!$section instanceof ISection) {
$this->log->error(
'Admin section instance must implement \OCP\ISection. Invalid class: {class}',
['class' => $sectionClassName]
);
return;
}
- if(!$this->hasAdminSection(get_class($section))) {
+ if (!$this->hasAdminSection(get_class($section))) {
$this->addAdminSection($section);
} else {
$this->updateAdminSection($section);
@@ -173,7 +167,7 @@ class Manager implements IManager {
}
private function addAdminSection(ISection $section) {
- $this->add(self::TABLE_ADMIN_SECTIONS, [
+ $this->mapper->add(self::TABLE_ADMIN_SECTIONS, [
'id' => $section->getID(),
'class' => get_class($section),
'priority' => $section->getPriority(),
@@ -181,28 +175,15 @@ class Manager implements IManager {
}
private function addAdminSettings(ISettings $settings) {
- $this->add(self::TABLE_ADMIN_SETTINGS, [
+ $this->mapper->add(self::TABLE_ADMIN_SETTINGS, [
'class' => get_class($settings),
'section' => $settings->getSection(),
'priority' => $settings->getPriority(),
]);
}
- /**
- * @param string $table
- * @param array $values
- */
- private function add($table, array $values) {
- $query = $this->dbc->getQueryBuilder();
- $values = array_map(function($value) use ($query) {
- return $query->createNamedParameter($value);
- }, $values);
- $query->insert($table)->values($values);
- $query->execute();
- }
-
private function updateAdminSettings(ISettings $settings) {
- $this->update(
+ $this->mapper->update(
self::TABLE_ADMIN_SETTINGS,
'class',
get_class($settings),
@@ -214,35 +195,23 @@ class Manager implements IManager {
}
private function updateAdminSection(ISection $section) {
- $this->update(
+ $this->mapper->update(
self::TABLE_ADMIN_SECTIONS,
'class',
get_class($section),
[
- 'id' => $section->getID(),
+ 'id' => $section->getID(),
'priority' => $section->getPriority(),
]
);
}
- private function update($table, $idCol, $id, $values) {
- $query = $this->dbc->getQueryBuilder();
- $query->update($table);
- foreach($values as $key => $value) {
- $query->set($key, $query->createNamedParameter($value));
- }
- $query
- ->where($query->expr()->eq($idCol, $query->createParameter($idCol)))
- ->setParameter($idCol, $id)
- ->execute();
- }
-
/**
* @param string $className
* @return bool
*/
private function hasAdminSection($className) {
- return $this->has(self::TABLE_ADMIN_SECTIONS, $className);
+ return $this->mapper->has(self::TABLE_ADMIN_SECTIONS, $className);
}
/**
@@ -250,44 +219,11 @@ class Manager implements IManager {
* @return bool
*/
private function hasAdminSettings($className) {
- return $this->has(self::TABLE_ADMIN_SETTINGS, $className);
- }
-
- /**
- * @param string $table
- * @param string $className
- * @return bool
- */
- private function has($table, $className) {
- $query = $this->dbc->getQueryBuilder();
- $query->select('class')
- ->from($table)
- ->where($query->expr()->eq('class', $query->createNamedParameter($className)))
- ->setMaxResults(1);
-
- $result = $query->execute();
- $row = $result->fetch();
- $result->closeCursor();
-
- return (bool) $row;
- }
-
- /**
- * deletes an settings or admin entry from the given table
- *
- * @param $table
- * @param $className
- */
- private function remove($table, $className) {
- $query = $this->dbc->getQueryBuilder();
- $query->delete($table)
- ->where($query->expr()->eq('class', $query->createNamedParameter($className)));
-
- $query->execute();
+ return $this->mapper->has(self::TABLE_ADMIN_SETTINGS, $className);
}
private function setupAdminSettings($settingsClassName) {
- if(!class_exists($settingsClassName)) {
+ if (!class_exists($settingsClassName)) {
$this->log->debug('Could not find admin section class ' . $settingsClassName);
return;
}
@@ -300,14 +236,14 @@ class Manager implements IManager {
return;
}
- if(!$settings instanceof ISettings) {
+ if (!$settings instanceof ISettings) {
$this->log->error(
'Admin section instance must implement \OCP\Settings\ISection. Invalid class: {class}',
['class' => $settingsClassName]
);
return;
}
- if(!$this->hasAdminSettings(get_class($settings))) {
+ if (!$this->hasAdminSettings(get_class($settings))) {
$this->addAdminSettings($settings);
} else {
$this->updateAdminSettings($settings);
@@ -329,24 +265,17 @@ class Manager implements IManager {
public function getAdminSections() {
// built-in sections
$sections = [
- 0 => [new Section('server', $this->l->t('Server settings'), 0)],
- 5 => [new Section('sharing', $this->l->t('Sharing'), 0)],
- 45 => [new Section('encryption', $this->l->t('Encryption'), 0)],
- 98 => [new Section('additional', $this->l->t('Additional settings'), 0)],
- 99 => [new Section('tips-tricks', $this->l->t('Tips & tricks'), 0)],
+ 0 => [new Section('server', $this->l->t('Server settings'), 0, $this->url->imagePath('settings', 'admin.svg'))],
+ 5 => [new Section('sharing', $this->l->t('Sharing'), 0, $this->url->imagePath('core', 'actions/share.svg'))],
+ 45 => [new Section('encryption', $this->l->t('Encryption'), 0, $this->url->imagePath('core', 'actions/password.svg'))],
+ 98 => [new Section('additional', $this->l->t('Additional settings'), 0, $this->url->imagePath('core', 'actions/settings-dark.svg'))],
+ 99 => [new Section('tips-tricks', $this->l->t('Tips & tricks'), 0, $this->url->imagePath('settings', 'help.svg'))],
];
- $query = $this->dbc->getQueryBuilder();
- $query->selectDistinct('s.class')
- ->addSelect('s.priority')
- ->from(self::TABLE_ADMIN_SECTIONS, 's')
- ->from(self::TABLE_ADMIN_SETTINGS, 'f')
- ->where($query->expr()->eq('s.id', 'f.section'))
- ;
- $result = $query->execute();
+ $rows = $this->mapper->getAdminSectionsFromDB();
- while($row = $result->fetch()) {
- if(!isset($sections[$row['priority']])) {
+ foreach ($rows as $row) {
+ if (!isset($sections[$row['priority']])) {
$sections[$row['priority']] = [];
}
try {
@@ -355,38 +284,42 @@ class Manager implements IManager {
// skip
}
}
- $result->closeCursor();
ksort($sections);
+
return $sections;
}
+ /**
+ * @param string $section
+ * @return ISection[]
+ */
private function getBuiltInAdminSettings($section) {
$forms = [];
try {
- if($section === 'server') {
+ if ($section === 'server') {
/** @var ISettings $form */
$form = new Admin\Server($this->dbc, $this->config, $this->lockingProvider, $this->l);
$forms[$form->getPriority()] = [$form];
$form = new Admin\ServerDevNotice();
$forms[$form->getPriority()] = [$form];
}
- if($section === 'encryption') {
+ if ($section === 'encryption') {
/** @var ISettings $form */
$form = new Admin\Encryption($this->encryptionManager, $this->userManager);
$forms[$form->getPriority()] = [$form];
}
- if($section === 'sharing') {
+ if ($section === 'sharing') {
/** @var ISettings $form */
$form = new Admin\Sharing($this->config);
$forms[$form->getPriority()] = [$form];
}
- if($section === 'additional') {
+ if ($section === 'additional') {
/** @var ISettings $form */
$form = new Admin\Additional($this->config);
$forms[$form->getPriority()] = [$form];
}
- if($section === 'tips-tricks') {
+ if ($section === 'tips-tricks') {
/** @var ISettings $form */
$form = new Admin\TipsTricks($this->config);
$forms[$form->getPriority()] = [$form];
@@ -397,16 +330,15 @@ class Manager implements IManager {
return $forms;
}
- private function getAdminSettingsFromDB($section, &$settings) {
- $query = $this->dbc->getQueryBuilder();
- $query->select(['class', 'priority'])
- ->from(self::TABLE_ADMIN_SETTINGS)
- ->where($query->expr()->eq('section', $this->dbc->getQueryBuilder()->createParameter('section')))
- ->setParameter('section', $section);
+ /**
+ * @inheritdoc
+ */
+ public function getAdminSettings($section) {
+ $settings = $this->getBuiltInAdminSettings($section);
+ $dbRows = $this->mapper->getAdminSettingsFromDB($section);
- $result = $query->execute();
- while($row = $result->fetch()) {
- if(!isset($settings[$row['priority']])) {
+ foreach ($dbRows as $row) {
+ if (!isset($settings[$row['priority']])) {
$settings[$row['priority']] = [];
}
try {
@@ -415,17 +347,8 @@ class Manager implements IManager {
// skip
}
}
- $result->closeCursor();
ksort($settings);
- }
-
- /**
- * @inheritdoc
- */
- public function getAdminSettings($section) {
- $settings = $this->getBuiltInAdminSettings($section);
- $this->getAdminSettingsFromDB($section, $settings);
return $settings;
}
}
diff --git a/lib/private/Settings/Mapper.php b/lib/private/Settings/Mapper.php
new file mode 100644
index 0000000000000000000000000000000000000000..2525f2c98541be24c75df8278ba43e8c3c6c7311
--- /dev/null
+++ b/lib/private/Settings/Mapper.php
@@ -0,0 +1,163 @@
+
+ *
+ * @author Robin Appelman
+ *
+ * @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 .
+ *
+ */
+
+namespace OC\Settings;
+
+use OCP\IDBConnection;
+
+class Mapper {
+ const TABLE_ADMIN_SETTINGS = 'admin_settings';
+ const TABLE_ADMIN_SECTIONS = 'admin_sections';
+
+ /** @var IDBConnection */
+ private $dbc;
+
+ /**
+ * @param IDBConnection $dbc
+ */
+ public function __construct(IDBConnection $dbc) {
+ $this->dbc = $dbc;
+ }
+
+ /**
+ * Get the configured admin settings from the database for the provided section
+ *
+ * @param string $section
+ * @return array[] [['class' => string, 'priority' => int], ...]
+ */
+ public function getAdminSettingsFromDB($section) {
+ $query = $this->dbc->getQueryBuilder();
+ $query->select(['class', 'priority'])
+ ->from(self::TABLE_ADMIN_SETTINGS)
+ ->where($query->expr()->eq('section', $this->dbc->getQueryBuilder()->createParameter('section')))
+ ->setParameter('section', $section);
+
+ $result = $query->execute();
+ return $result->fetchAll();
+ }
+
+ /**
+ * Get the configured admin sections from the database
+ *
+ * @return array[] [['class' => string, 'priority' => int], ...]
+ */
+ public function getAdminSectionsFromDB() {
+ $query = $this->dbc->getQueryBuilder();
+ $query->selectDistinct('s.class')
+ ->addSelect('s.priority')
+ ->from(self::TABLE_ADMIN_SECTIONS, 's')
+ ->from(self::TABLE_ADMIN_SETTINGS, 'f')
+ ->where($query->expr()->eq('s.id', 'f.section'));
+ $result = $query->execute();
+ return array_map(function ($row) {
+ $row['priority'] = (int)$row['priority'];
+ return $row;
+ }, $result->fetchAll());
+ }
+
+ /**
+ * @param string $table Mapper::TABLE_ADMIN_SECTIONS or Mapper::TABLE_ADMIN_SETTINGS
+ * @param array $values
+ */
+ public function add($table, array $values) {
+ $query = $this->dbc->getQueryBuilder();
+ $values = array_map(function ($value) use ($query) {
+ return $query->createNamedParameter($value);
+ }, $values);
+ $query->insert($table)->values($values);
+ $query->execute();
+ }
+
+ /**
+ * returns the registered classes in the given table
+ *
+ * @param $table Mapper::TABLE_ADMIN_SECTIONS or Mapper::TABLE_ADMIN_SETTINGS
+ * @return string[]
+ */
+ public function getClasses($table) {
+ $q = $this->dbc->getQueryBuilder();
+ $resultStatement = $q->select('class')
+ ->from($table)
+ ->execute();
+ $data = $resultStatement->fetchAll();
+ $resultStatement->closeCursor();
+
+ return array_map(function ($row) {
+ return $row['class'];
+ }, $data);
+ }
+
+ /**
+ * Check if a class is configured in the database
+ *
+ * @param string $table Mapper::TABLE_ADMIN_SECTIONS or Mapper::TABLE_ADMIN_SETTINGS
+ * @param string $className
+ * @return bool
+ */
+ public function has($table, $className) {
+ $query = $this->dbc->getQueryBuilder();
+ $query->select('class')
+ ->from($table)
+ ->where($query->expr()->eq('class', $query->createNamedParameter($className)))
+ ->setMaxResults(1);
+
+ $result = $query->execute();
+ $row = $result->fetch();
+ $result->closeCursor();
+
+ return (bool)$row;
+ }
+
+ /**
+ * deletes an settings or admin entry from the given table
+ *
+ * @param $table Mapper::TABLE_ADMIN_SECTIONS or Mapper::TABLE_ADMIN_SETTINGS
+ * @param $className
+ */
+ public function remove($table, $className) {
+ $query = $this->dbc->getQueryBuilder();
+ $query->delete($table)
+ ->where($query->expr()->eq('class', $query->createNamedParameter($className)));
+
+ $query->execute();
+ }
+
+ /**
+ * @param $table Mapper::TABLE_ADMIN_SECTIONS or Mapper::TABLE_ADMIN_SETTINGS
+ * @param $idCol
+ * @param $id
+ * @param $values
+ */
+ public function update($table, $idCol, $id, $values) {
+ $query = $this->dbc->getQueryBuilder();
+ $query->update($table);
+ foreach ($values as $key => $value) {
+ $query->set($key, $query->createNamedParameter($value));
+ }
+ $query
+ ->where($query->expr()->eq($idCol, $query->createParameter($idCol)))
+ ->setParameter($idCol, $id)
+ ->execute();
+ }
+
+}
diff --git a/lib/private/Settings/Section.php b/lib/private/Settings/Section.php
index b3cf242279fc24722a4fdf423a7d50f3b647d713..c89a3999c4e7ed1ad4ad79ab650e410d887a4044 100644
--- a/lib/private/Settings/Section.php
+++ b/lib/private/Settings/Section.php
@@ -23,25 +23,29 @@
namespace OC\Settings;
-use OCP\Settings\ISection;
+use OCP\Settings\IIconSection;
-class Section implements ISection {
+class Section implements IIconSection {
/** @var string */
private $id;
/** @var string */
private $name;
/** @var int */
private $priority;
+ /** @var string */
+ private $icon;
/**
* @param string $id
* @param string $name
* @param int $priority
+ * @param string $icon
*/
- public function __construct($id, $name, $priority) {
+ public function __construct($id, $name, $priority, $icon = '') {
$this->id = $id;
$this->name = $name;
$this->priority = $priority;
+ $this->icon = $icon;
}
/**
@@ -74,4 +78,15 @@ class Section implements ISection {
public function getPriority() {
return $this->priority;
}
+
+ /**
+ * returns the relative path to an 16*16 icon describing the section.
+ * e.g. '/core/img/places/files.svg'
+ *
+ * @returns string
+ * @since 12
+ */
+ public function getIcon() {
+ return $this->icon;
+ }
}
diff --git a/lib/private/Setup.php b/lib/private/Setup.php
index 81a5343fe2103b1412128ff0419f5efbb9c18ac7..d99977676846a6eaf7ce002d9e9f3aafd23572ee 100644
--- a/lib/private/Setup.php
+++ b/lib/private/Setup.php
@@ -125,8 +125,8 @@ class Setup {
public function getSupportedDatabases($allowAllDatabases = false) {
$availableDatabases = array(
'sqlite' => array(
- 'type' => 'class',
- 'call' => 'SQLite3',
+ 'type' => 'pdo',
+ 'call' => 'sqlite',
'name' => 'SQLite'
),
'mysql' => array(
@@ -163,9 +163,7 @@ class Setup {
$type = $availableDatabases[$database]['type'];
$call = $availableDatabases[$database]['call'];
- if($type === 'class') {
- $working = $this->class_exists($call);
- } elseif ($type === 'function') {
+ if ($type === 'function') {
$working = $this->is_callable($call);
} elseif($type === 'pdo') {
$working = in_array($call, $this->getAvailableDbDriversForPdo(), TRUE);
diff --git a/lib/private/Setup/MySQL.php b/lib/private/Setup/MySQL.php
index d1399c8821c05c05635a1a195281f718b45897d5..bafb3866b762394afa69fba86b5fdbcf9194464a 100644
--- a/lib/private/Setup/MySQL.php
+++ b/lib/private/Setup/MySQL.php
@@ -35,7 +35,7 @@ class MySQL extends AbstractDatabase {
public function setupDatabase($username) {
//check if the database user has admin right
- $connection = $this->connect();
+ $connection = $this->connect(['dbname' => null]);
$this->createSpecificUser($username, $connection);
@@ -152,7 +152,7 @@ class MySQL extends AbstractDatabase {
};
}
} catch (\Exception $ex) {
- $this->logger->error('Specific user creation failed: {error}', [
+ $this->logger->info('Can not create a new MySQL user, will continue with the provided user: {error}', [
'app' => 'mysql.setup',
'error' => $ex->getMessage()
]);
diff --git a/lib/private/Setup/PostgreSQL.php b/lib/private/Setup/PostgreSQL.php
index 085e8609ab286b098ab644ac6d098a5bc540173d..c01e5bc0332bc623eae6bb30d93446a719476c42 100644
--- a/lib/private/Setup/PostgreSQL.php
+++ b/lib/private/Setup/PostgreSQL.php
@@ -150,14 +150,16 @@ class PostgreSQL extends AbstractDatabase {
}
private function createDBUser(IDBConnection $connection) {
+ $dbUser = $this->dbUser;
try {
- if ($this->userExists($connection)) {
- // change the password
- $query = $connection->prepare("ALTER ROLE " . addslashes($this->dbUser) . " WITH CREATEDB PASSWORD '" . addslashes($this->dbPassword) . "'");
- } else {
- // create the user
- $query = $connection->prepare("CREATE USER " . addslashes($this->dbUser) . " CREATEDB PASSWORD '" . addslashes($this->dbPassword) . "'");
- }
+ $i = 1;
+ while ($this->userExists($connection)) {
+ $i++;
+ $this->dbUser = $dbUser . $i;
+ };
+
+ // create the user
+ $query = $connection->prepare("CREATE USER " . addslashes($this->dbUser) . " CREATEDB PASSWORD '" . addslashes($this->dbPassword) . "'");
$query->execute();
} catch (DatabaseException $e) {
$this->logger->error('Error while trying to create database user');
diff --git a/lib/private/Setup/Sqlite.php b/lib/private/Setup/Sqlite.php
index 63b970be42e585f695686654cfaccad64b3ce0a8..4d860103b6018f33e7b5648eb77f63c04c326f49 100644
--- a/lib/private/Setup/Sqlite.php
+++ b/lib/private/Setup/Sqlite.php
@@ -33,7 +33,7 @@ class Sqlite extends AbstractDatabase {
}
public function setupDatabase($username) {
- $datadir = \OC::$server->getSystemConfig()->getValue('datadirectory');
+ $datadir = \OC::$server->getSystemConfig()->getValue('datadirectory', \OC::$SERVERROOT . '/data');
//delete the old sqlite database first, might cause infinte loops otherwise
if(file_exists("$datadir/owncloud.db")) {
diff --git a/lib/private/Share20/DefaultShareProvider.php b/lib/private/Share20/DefaultShareProvider.php
index 7a60295017104004d2ff8c63df09c7f49502e82b..23e8db34d7f4e1919174b47029b2d23c74f1e149 100644
--- a/lib/private/Share20/DefaultShareProvider.php
+++ b/lib/private/Share20/DefaultShareProvider.php
@@ -162,7 +162,6 @@ class DefaultShareProvider implements IShareProvider {
$this->dbConn->beginTransaction();
$qb->execute();
$id = $this->dbConn->lastInsertId('*PREFIX*share');
- $this->dbConn->commit();
// Now fetch the inserted share and create a complete share object
$qb = $this->dbConn->getQueryBuilder();
@@ -172,6 +171,7 @@ class DefaultShareProvider implements IShareProvider {
$cursor = $qb->execute();
$data = $cursor->fetch();
+ $this->dbConn->commit();
$cursor->closeCursor();
if ($data === false) {
@@ -853,7 +853,6 @@ class DefaultShareProvider implements IShareProvider {
$entryData['permissions'] = $entryData['f_permissions'];
$entryData['parent'] = $entryData['f_parent'];;
$share->setNodeCacheEntry(Cache::cacheEntryFromData($entryData,
- $entryData['storage_string_id'],
\OC::$server->getMimeTypeLoader()));
}
diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php
index cd1d52c3bbf46a54c5942c2177993fa32542d289..acc142f62be597064a5dfe2bec6909bca779c06e 100644
--- a/lib/private/Share20/Manager.php
+++ b/lib/private/Share20/Manager.php
@@ -587,7 +587,6 @@ class Manager implements IManager {
$share->setPassword($this->hasher->hash($share->getPassword()));
}
} else if ($share->getShareType() === \OCP\Share::SHARE_TYPE_EMAIL) {
- $this->linkCreateChecks($share);
$share->setToken(
$this->secureRandom->generate(
\OC\Share\Constants::TOKEN_LENGTH,
@@ -1055,8 +1054,10 @@ class Manager implements IManager {
public function getShareByToken($token) {
$share = null;
try {
- $provider = $this->factory->getProviderForType(\OCP\Share::SHARE_TYPE_LINK);
- $share = $provider->getShareByToken($token);
+ if($this->shareApiAllowLinks()) {
+ $provider = $this->factory->getProviderForType(\OCP\Share::SHARE_TYPE_LINK);
+ $share = $provider->getShareByToken($token);
+ }
} catch (ProviderException $e) {
} catch (ShareNotFound $e) {
}
@@ -1072,7 +1073,7 @@ class Manager implements IManager {
}
}
- // If it is not a link share try to fetch a federated share by token
+ // If it is not a link share try to fetch a mail share by token
if ($share === null && $this->shareProviderExists(\OCP\Share::SHARE_TYPE_EMAIL)) {
try {
$provider = $this->factory->getProviderForType(\OCP\Share::SHARE_TYPE_EMAIL);
diff --git a/lib/private/SubAdmin.php b/lib/private/SubAdmin.php
index 9a2beed09fe5c300dcfba7ab81b1a2f51d2bb317..0650c7c6c01285330f3f55a7955c6ceeb178f706 100644
--- a/lib/private/SubAdmin.php
+++ b/lib/private/SubAdmin.php
@@ -188,7 +188,7 @@ class SubAdmin extends PublicEmitter {
* @param IGroup $group
* @return bool
*/
- public function isSubAdminofGroup(IUser $user, IGroup $group) {
+ public function isSubAdminOfGroup(IUser $user, IGroup $group) {
$qb = $this->dbConn->getQueryBuilder();
/*
diff --git a/lib/private/SystemConfig.php b/lib/private/SystemConfig.php
index 1029a6619ffd2a920f83b0bfadfb71f39d920aab..e5f1adaf00464cbc08ec8f9de164218617f13c02 100644
--- a/lib/private/SystemConfig.php
+++ b/lib/private/SystemConfig.php
@@ -44,7 +44,6 @@ class SystemConfig {
'passwordsalt' => true,
'secret' => true,
'updater.secret' => true,
- 'ldap_agent_password' => true,
'proxyuserpwd' => true,
'log.condition' => [
'shared_secret' => true,
diff --git a/lib/private/Template/CSSResourceLocator.php b/lib/private/Template/CSSResourceLocator.php
index ffeaf765ff54692f35dc2248431078ca98fe6d0a..3a474a1ecfd935873cfa892f62175fbf36666770 100644
--- a/lib/private/Template/CSSResourceLocator.php
+++ b/lib/private/Template/CSSResourceLocator.php
@@ -25,23 +25,46 @@
namespace OC\Template;
+use OCP\ILogger;
+
class CSSResourceLocator extends ResourceLocator {
+
+ /** @var SCSSCacher */
+ protected $scssCacher;
+
+ /**
+ * @param ILogger $logger
+ * @param string $theme
+ * @param array $core_map
+ * @param array $party_map
+ * @param SCSSCacher $scssCacher
+ */
+ public function __construct(ILogger $logger, $theme, $core_map, $party_map, $scssCacher) {
+ $this->scssCacher = $scssCacher;
+
+ parent::__construct($logger, $theme, $core_map, $party_map);
+ }
+
/**
* @param string $style
*/
public function doFind($style) {
+ $app = substr($style, 0, strpos($style, '/'));
if (strpos($style, '3rdparty') === 0
&& $this->appendIfExist($this->thirdpartyroot, $style.'.css')
+ || $this->cacheAndAppendScssIfExist($this->serverroot, $style.'.scss', $app)
+ || $this->cacheAndAppendScssIfExist($this->serverroot, 'core/'.$style.'.scss')
|| $this->appendIfExist($this->serverroot, $style.'.css')
|| $this->appendIfExist($this->serverroot, 'core/'.$style.'.css')
) {
return;
}
- $app = substr($style, 0, strpos($style, '/'));
$style = substr($style, strpos($style, '/')+1);
$app_path = \OC_App::getAppPath($app);
$app_url = \OC_App::getAppWebPath($app);
- $this->append($app_path, $style.'.css', $app_url);
+ if(!$this->cacheAndAppendScssIfExist($app_path, $style.'.scss', $app)) {
+ $this->append($app_path, $style.'.css', $app_url);
+ }
}
/**
@@ -53,4 +76,29 @@ class CSSResourceLocator extends ResourceLocator {
|| $this->appendIfExist($this->serverroot, $theme_dir.$style.'.css')
|| $this->appendIfExist($this->serverroot, $theme_dir.'core/'.$style.'.css');
}
+
+ /**
+ * cache and append the scss $file if exist at $root
+ *
+ * @param string $root path to check
+ * @param string $file the filename
+ * @return bool True if the resource was found and cached, false otherwise
+ */
+ protected function cacheAndAppendScssIfExist($root, $file, $app = 'core') {
+ if (is_file($root.'/'.$file)) {
+ if($this->scssCacher !== null) {
+ if($this->scssCacher->process($root, $file, $app)) {
+ $this->append($root, $this->scssCacher->getCachedSCSS($app, $file), false);
+ return true;
+ } else {
+ $this->logger->warning('Failed to compile and/or save '.$root.'/'.$file, ['app' => 'core']);
+ return false;
+ }
+ } else {
+ $this->logger->debug('Scss is disabled for '.$root.'/'.$file.', ignoring', ['app' => 'core']);
+ return true;
+ }
+ }
+ return false;
+ }
}
diff --git a/lib/private/Template/ResourceLocator.php b/lib/private/Template/ResourceLocator.php
old mode 100644
new mode 100755
index 420317d27ac8a8424bc20b97c478106c068b4aab..e22ebdcab7d7d4257577a46b61ce9789aed50921
--- a/lib/private/Template/ResourceLocator.php
+++ b/lib/private/Template/ResourceLocator.php
@@ -75,7 +75,7 @@ abstract class ResourceLocator {
$this->doFind($resource);
} catch (ResourceNotFoundException $e) {
$resourceApp = substr($resource, 0, strpos($resource, '/'));
- $this->logger->error('Could not find resource file "' . $e->getResourcePath() . '"', ['app' => $resourceApp]);
+ $this->logger->debug('Could not find resource file "' . $e->getResourcePath() . '"', ['app' => $resourceApp]);
}
}
if (!empty($this->theme)) {
@@ -84,7 +84,7 @@ abstract class ResourceLocator {
$this->doFindTheme($resource);
} catch (ResourceNotFoundException $e) {
$resourceApp = substr($resource, 0, strpos($resource, '/'));
- $this->logger->error('Could not find resource file "' . $e->getResourcePath() . '"', ['app' => $resourceApp]);
+ $this->logger->debug('Could not find resource file "' . $e->getResourcePath() . '"', ['app' => $resourceApp]);
}
}
}
diff --git a/lib/private/Template/SCSSCacher.php b/lib/private/Template/SCSSCacher.php
new file mode 100644
index 0000000000000000000000000000000000000000..d6f5a2c6fd3fc0f5d8b3766dd4fab3c940432aaa
--- /dev/null
+++ b/lib/private/Template/SCSSCacher.php
@@ -0,0 +1,190 @@
+.
+ *
+ */
+
+namespace OC\Template;
+
+use Leafo\ScssPhp\Compiler;
+use Leafo\ScssPhp\Exception\ParserException;
+use Leafo\ScssPhp\Formatter\Crunched;
+use Leafo\ScssPhp\Formatter\Expanded;
+use OC\SystemConfig;
+use OCP\Files\IAppData;
+use OCP\Files\NotFoundException;
+use OCP\Files\SimpleFS\ISimpleFolder;
+use OCP\ILogger;
+use OCP\IURLGenerator;
+
+class SCSSCacher {
+
+ /** @var ILogger */
+ protected $logger;
+
+ /** @var IAppData */
+ protected $appData;
+
+ /** @var IURLGenerator */
+ protected $urlGenerator;
+
+ /** @var SystemConfig */
+ protected $systemConfig;
+
+ /**
+ * @param ILogger $logger
+ * @param IAppData $appData
+ * @param IURLGenerator $urlGenerator
+ * @param SystemConfig $systemConfig
+ */
+ public function __construct(ILogger $logger, IAppData $appData, IURLGenerator $urlGenerator, SystemConfig $systemConfig) {
+ $this->logger = $logger;
+ $this->appData = $appData;
+ $this->urlGenerator = $urlGenerator;
+ $this->systemConfig = $systemConfig;
+ }
+
+ /**
+ * Process the caching process if needed
+ * @param string $root Root path to the nextcloud installation
+ * @param string $file
+ * @param string $app The app name
+ * @return boolean
+ */
+ public function process($root, $file, $app) {
+ $path = explode('/', $root . '/' . $file);
+
+ $fileNameSCSS = array_pop($path);
+ $fileNameCSS = str_replace('.scss', '.css', $fileNameSCSS);
+
+ $path = implode('/', $path);
+
+ $webDir = explode('/', $file);
+ array_pop($webDir);
+ $webDir = implode('/', $webDir);
+
+ try {
+ $folder = $this->appData->getFolder($app);
+ } catch(NotFoundException $e) {
+ // creating css appdata folder
+ $folder = $this->appData->newFolder($app);
+ }
+
+ if($this->isCached($fileNameCSS, $fileNameSCSS, $folder, $path)) {
+ return true;
+ } else {
+ return $this->cache($path, $fileNameCSS, $fileNameSCSS, $folder, $webDir);
+ }
+ }
+
+ /**
+ * Check if the file is cached or not
+ * @param string $fileNameCSS
+ * @param string $fileNameSCSS
+ * @param ISimpleFolder $folder
+ * @param string $path
+ * @return boolean
+ */
+ private function isCached($fileNameCSS, $fileNameSCSS, ISimpleFolder $folder, $path) {
+ try{
+ $cachedFile = $folder->getFile($fileNameCSS);
+ if( $cachedFile->getMTime() > filemtime($path.'/'.$fileNameSCSS)
+ && $cachedFile->getSize() > 0 ) {
+ return true;
+ }
+ } catch(NotFoundException $e) {
+ return false;
+ }
+ return false;
+ }
+
+ /**
+ * Cache the file with AppData
+ * @param string $path
+ * @param string $fileNameCSS
+ * @param string $fileNameSCSS
+ * @param ISimpleFolder $folder
+ * @param string $webDir
+ * @return boolean
+ */
+ private function cache($path, $fileNameCSS, $fileNameSCSS, ISimpleFolder $folder, $webDir) {
+ $scss = new Compiler();
+ $scss->setImportPaths($path);
+ if($this->systemConfig->getValue('debug')) {
+ // Debug mode
+ $scss->setFormatter(Expanded::class);
+ $scss->setLineNumberStyle(Compiler::LINE_COMMENTS);
+ } else {
+ // Compression
+ $scss->setFormatter(Crunched::class);
+ }
+
+ try {
+ $cachedfile = $folder->getFile($fileNameCSS);
+ } catch(NotFoundException $e) {
+ $cachedfile = $folder->newFile($fileNameCSS);
+ }
+
+ // Compile
+ try {
+ $compiledScss = $scss->compile('@import "'.$fileNameSCSS.'";');
+ } catch(ParserException $e) {
+ $this->logger->error($e, ['app' => 'core']);
+ return false;
+ }
+
+ try {
+ $cachedfile->putContent($this->rebaseUrls($compiledScss, $webDir));
+ $this->logger->debug($webDir.'/'.$fileNameSCSS.' compiled and successfully cached', ['app' => 'core']);
+ return true;
+ } catch(NotFoundException $e) {
+ return false;
+ }
+ }
+
+ /**
+ * Add the correct uri prefix to make uri valid again
+ * @param string $css
+ * @param string $webDir
+ * @return string
+ */
+ private function rebaseUrls($css, $webDir) {
+ $re = '/url\([\'"]([\.\w?=\/-]*)[\'"]\)/x';
+ // OC\Route\Router:75
+ if(($this->systemConfig->getValue('htaccess.IgnoreFrontController', false) === true || getenv('front_controller_active') === 'true')) {
+ $subst = 'url(\'../../'.$webDir.'/$1\')';
+ } else {
+ $subst = 'url(\'../../../'.$webDir.'/$1\')';
+ }
+ return preg_replace($re, $subst, $css);
+ }
+
+ /**
+ * Return the cached css file uri
+ * @param string $appName the app name
+ * @param string $fileName
+ * @return string
+ */
+ public function getCachedSCSS($appName, $fileName) {
+ $tmpfileLoc = explode('/', $fileName);
+ $fileName = array_pop($tmpfileLoc);
+ $fileName = str_replace('.scss', '.css', $fileName);
+
+ return substr($this->urlGenerator->linkToRoute('core.Css.getCss', array('fileName' => $fileName, 'appName' => $appName)), strlen(\OC::$WEBROOT) + 1);
+ }
+}
diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php
index 8919f14216e9c4fc1ad4e751b9e5c1fe478db9ca..7ded109f76bcb57421c2f0282e76822e208459d1 100644
--- a/lib/private/TemplateLayout.php
+++ b/lib/private/TemplateLayout.php
@@ -35,15 +35,8 @@
*/
namespace OC;
-use Assetic\Asset\AssetCollection;
-use Assetic\Asset\FileAsset;
-use Assetic\AssetWriter;
-use Assetic\Filter\CssImportFilter;
-use Assetic\Filter\CssMinFilter;
-use Assetic\Filter\CssRewriteFilter;
-use Assetic\Filter\JSqueezeFilter;
-use Assetic\Filter\SeparatorFilter;
use OC\Template\JSConfigHelper;
+use OC\Template\SCSSCacher;
class TemplateLayout extends \OC_Template {
@@ -164,11 +157,18 @@ class TemplateLayout extends \OC_Template {
foreach($jsFiles as $info) {
$web = $info[1];
$file = $info[2];
- $this->append( 'jsfiles', $web.'/'.$file . '?v=' . self::$versionHash);
+ $this->append( 'jsfiles', $web.'/'.$file . $this->getVersionHashSuffix() );
}
- // Add the css files
- $cssFiles = self::findStylesheetFiles(\OC_Util::$styles);
+ // Do not initialise scss appdata until we have a fully installed instance
+ // Do not load scss for update, errors, installation or login page
+ if(\OC::$server->getSystemConfig()->getValue('installed', false)
+ && !\OCP\Util::needUpgrade()
+ && strpos(\OC::$server->getRequest()->getRequestUri(), \OC::$server->getURLGenerator()->linkToRoute('core.login.tryLogin')) !== 0) {
+ $cssFiles = self::findStylesheetFiles(\OC_Util::$styles);
+ } else {
+ $cssFiles = self::findStylesheetFiles(\OC_Util::$styles, false);
+ }
$this->assign('cssfiles', array());
$this->assign('printcssfiles', []);
$this->assign('versionHash', self::$versionHash);
@@ -177,26 +177,47 @@ class TemplateLayout extends \OC_Template {
$file = $info[2];
if (substr($file, -strlen('print.css')) === 'print.css') {
- $this->append( 'printcssfiles', $web.'/'.$file . '?v=' . self::$versionHash);
+ $this->append( 'printcssfiles', $web.'/'.$file . $this->getVersionHashSuffix() );
} else {
- $this->append( 'cssfiles', $web.'/'.$file . '?v=' . self::$versionHash);
+ $this->append( 'cssfiles', $web.'/'.$file . $this->getVersionHashSuffix() );
}
}
}
+ protected function getVersionHashSuffix() {
+ if(\OC::$server->getConfig()->getSystemValue('debug', false)) {
+ // allows chrome workspace mapping in debug mode
+ return "";
+ }
+
+ return '?v=' . self::$versionHash;
+ }
+
/**
* @param array $styles
* @return array
*/
- static public function findStylesheetFiles($styles) {
+ static public function findStylesheetFiles($styles, $compileScss = true) {
// Read the selected theme from the config file
$theme = \OC_Util::getTheme();
+ if($compileScss) {
+ $SCSSCacher = new SCSSCacher(
+ \OC::$server->getLogger(),
+ \OC::$server->getAppDataDir('css'),
+ \OC::$server->getURLGenerator(),
+ \OC::$server->getSystemConfig()
+ );
+ } else {
+ $SCSSCacher = null;
+ }
+
$locator = new \OC\Template\CSSResourceLocator(
\OC::$server->getLogger(),
$theme,
array( \OC::$SERVERROOT => \OC::$WEBROOT ),
- array( \OC::$SERVERROOT => \OC::$WEBROOT ));
+ array( \OC::$SERVERROOT => \OC::$WEBROOT ),
+ $SCSSCacher);
$locator->find($styles);
return $locator->getResources();
}
diff --git a/lib/private/Updater.php b/lib/private/Updater.php
index e30777227ccd8461725c08cf7d8963dac50376b8..a66d49941cd88d8ac24213bec2298b9af8f8073a 100644
--- a/lib/private/Updater.php
+++ b/lib/private/Updater.php
@@ -82,6 +82,12 @@ class Updater extends BasicEmitter {
$this->log = $log;
$this->config = $config;
$this->checker = $checker;
+
+ // If at least PHP 7.0.0 is used we don't need to disable apps as we catch
+ // fatal errors and exceptions and disable the app just instead.
+ if(version_compare(phpversion(), '7.0.0', '>=')) {
+ $this->skip3rdPartyAppsDisable = true;
+ }
}
/**
diff --git a/lib/private/User/Database.php b/lib/private/User/Database.php
index 28cb33028584878f9a83656f301645333dbf1e22..a281572ad55848836dee2013ce791ec7b344274c 100644
--- a/lib/private/User/Database.php
+++ b/lib/private/User/Database.php
@@ -238,6 +238,12 @@ class Database extends Backend implements IUserBackend {
*/
private function loadUser($uid) {
if (!isset($this->cache[$uid])) {
+ //guests $uid could be NULL or ''
+ if ($uid === null || $uid === '') {
+ $this->cache[$uid]=false;
+ return true;
+ }
+
$query = \OC_DB::prepare('SELECT `uid`, `displayname` FROM `*PREFIX*users` WHERE LOWER(`uid`) = LOWER(?)');
$result = $query->execute(array($uid));
diff --git a/lib/private/User/Session.php b/lib/private/User/Session.php
index 36bd45521cfdefefa49d476fb1d0e33c511ceac2..2ebe895a592c99bdc72acbd2607973c871438fa5 100644
--- a/lib/private/User/Session.php
+++ b/lib/private/User/Session.php
@@ -317,7 +317,7 @@ class Session implements IUserSession, Emitter {
$password,
IRequest $request,
OC\Security\Bruteforce\Throttler $throttler) {
- $currentDelay = $throttler->sleepDelay($request->getRemoteAddress());
+ $currentDelay = $throttler->sleepDelay($request->getRemoteAddress(), 'login');
if ($this->manager instanceof PublicEmitter) {
$this->manager->emit('\OC\User', 'preLogin', array($user, $password));
@@ -338,7 +338,7 @@ class Session implements IUserSession, Emitter {
$throttler->registerAttempt('login', $request->getRemoteAddress(), ['uid' => $user]);
if($currentDelay === 0) {
- $throttler->sleepDelay($request->getRemoteAddress());
+ $throttler->sleepDelay($request->getRemoteAddress(), 'login');
}
return false;
}
@@ -744,6 +744,7 @@ class Session implements IUserSession, Emitter {
//login
$this->setUser($user);
+ $this->setLoginName($this->tokenProvider->getToken($sessionId)->getLoginName());
$user->updateLastLoginTimestamp();
$this->manager->emit('\OC\User', 'postRememberedLogin', [$user]);
return true;
@@ -768,7 +769,7 @@ class Session implements IUserSession, Emitter {
try {
$this->tokenProvider->invalidateToken($this->session->getId());
} catch (SessionNotAvailableException $ex) {
-
+
}
}
$this->setUser(null);
diff --git a/lib/private/User/User.php b/lib/private/User/User.php
index 3cc6dc3b7ed62f2b1f95d8fdf0fcf5d12e84e2da..c37bb59028ee4206dbc71fd16f43764cce47733c 100644
--- a/lib/private/User/User.php
+++ b/lib/private/User/User.php
@@ -197,6 +197,8 @@ class User implements IUser {
if ($this->emitter) {
$this->emitter->emit('\OC\User', 'preDelete', array($this));
}
+ // get the home now because it won't return it after user deletion
+ $homePath = $this->getHome();
$result = $this->backend->deleteUser($this->uid);
if ($result) {
@@ -210,7 +212,11 @@ class User implements IUser {
\OC::$server->getConfig()->deleteAllUserValues($this->uid);
// Delete user files in /data/
- \OC_Helper::rmdirr($this->getHome());
+ if ($homePath !== false) {
+ // FIXME: this operates directly on FS, should use View instead...
+ // also this is not testable/mockable...
+ \OC_Helper::rmdirr($homePath);
+ }
// Delete the users entry in the storage table
Storage::remove('home::' . $this->uid);
@@ -261,7 +267,7 @@ class User implements IUser {
if ($this->backend->implementsActions(Backend::GET_HOME) and $home = $this->backend->getHome($this->uid)) {
$this->home = $home;
} elseif ($this->config) {
- $this->home = $this->config->getSystemValue('datadirectory') . '/' . $this->uid;
+ $this->home = $this->config->getSystemValue('datadirectory', \OC::$SERVERROOT . '/data') . '/' . $this->uid;
} else {
$this->home = \OC::$SERVERROOT . '/data/' . $this->uid;
}
diff --git a/lib/private/legacy/app.php b/lib/private/legacy/app.php
index adf29601ac6d142b5ccbbd20085e82264f3d07f3..a475b895d9fdf601d551fa0562aa7676058ac569 100644
--- a/lib/private/legacy/app.php
+++ b/lib/private/legacy/app.php
@@ -273,9 +273,17 @@ class OC_App {
$appTypes = implode(',', $appData['types']);
} else {
$appTypes = '';
+ $appData['types'] = [];
}
\OC::$server->getAppConfig()->setValue($app, 'types', $appTypes);
+
+ if (\OC::$server->getAppManager()->hasProtectedAppType($appData['types'])) {
+ $enabled = \OC::$server->getAppConfig()->getValue($app, 'enabled', 'yes');
+ if ($enabled !== 'yes' && $enabled !== 'no') {
+ \OC::$server->getAppConfig()->setValue($app, 'enabled', 'yes');
+ }
+ }
}
/**
@@ -1296,43 +1304,21 @@ class OC_App {
$data['summary'] = self::findBestL10NOption($data['summary'], $lang);
}
if ($lang && isset($data['description']) && is_array($data['description'])) {
- $data['description'] = self::findBestL10NOption($data['description'], $lang);
- }
-
- // just modify the description if it is available
- // otherwise this will create a $data element with an empty 'description'
- if (isset($data['description'])) {
- if (is_string($data['description'])) {
- // sometimes the description contains line breaks and they are then also
- // shown in this way in the app management which isn't wanted as HTML
- // manages line breaks itself
-
- // first of all we split on empty lines
- $paragraphs = preg_split("!\n[[:space:]]*\n!mu", $data['description']);
-
- $result = [];
- foreach ($paragraphs as $value) {
- // replace multiple whitespace (tabs, space, newlines) inside a paragraph
- // with a single space - also trims whitespace
- $result[] = trim(preg_replace('![[:space:]]+!mu', ' ', $value));
- }
-
- // join the single paragraphs with a empty line in between
- $data['description'] = implode("\n\n", $result);
-
- } else {
- $data['description'] = '';
- }
+ $data['description'] = trim(self::findBestL10NOption($data['description'], $lang));
+ } else if (isset($data['description']) && is_string($data['description'])) {
+ $data['description'] = trim($data['description']);
+ } else {
+ $data['description'] = '';
}
return $data;
}
/**
- * @param $config
- * @param $l
- * @param $info
- * @throws Exception
+ * @param \OCP\IConfig $config
+ * @param \OCP\IL10N $l
+ * @param array $info
+ * @throws \Exception
*/
protected static function checkAppDependencies($config, $l, $info) {
$dependencyAnalyzer = new DependencyAnalyzer(new Platform($config), $l);
diff --git a/lib/private/legacy/files.php b/lib/private/legacy/files.php
index b6c6857a1bfaae70cb9cfefc5c34b90faa2aff97..8c9adad0d4986322bad840034e7d1168a4d3da86 100644
--- a/lib/private/legacy/files.php
+++ b/lib/private/legacy/files.php
@@ -148,6 +148,7 @@ class OC_Files {
$streamer->sendHeaders($name);
$executionTime = intval(OC::$server->getIniWrapper()->getNumeric('max_execution_time'));
set_time_limit(0);
+ ignore_user_abort(true);
if ($getType === self::ZIP_FILES) {
foreach ($files as $file) {
$file = $dir . '/' . $file;
diff --git a/lib/private/legacy/helper.php b/lib/private/legacy/helper.php
index 9c4bc895fb946d7961e0b1651d7eea3007ab9f51..dfe2e09afff4ebfd5b000a5f32ed000739eac2e9 100644
--- a/lib/private/legacy/helper.php
+++ b/lib/private/legacy/helper.php
@@ -52,6 +52,7 @@ class OC_Helper {
/**
* Creates an absolute url for public use
+ *
* @param string $service id
* @param bool $add_slash
* @return string the url
@@ -62,13 +63,14 @@ class OC_Helper {
if ($service === 'files') {
$url = OC::$server->getURLGenerator()->getAbsoluteURL('/s');
} else {
- $url = OC::$server->getURLGenerator()->getAbsoluteURL(OC::$server->getURLGenerator()->linkTo('', 'public.php').'?service='.$service);
+ $url = OC::$server->getURLGenerator()->getAbsoluteURL(OC::$server->getURLGenerator()->linkTo('', 'public.php') . '?service=' . $service);
}
return $url . (($add_slash && $service[strlen($service) - 1] != '/') ? '/' : '');
}
/**
* Make a human file size
+ *
* @param int $bytes file size in bytes
* @return string a human readable file size
*
@@ -104,6 +106,7 @@ class OC_Helper {
/**
* Make a php file size
+ *
* @param int $bytes file size in bytes
* @return string a php parseable file size
*
@@ -130,6 +133,7 @@ class OC_Helper {
/**
* Make a computer file size
+ *
* @param string $str file size in human readable format
* @return float a file size in bytes
*
@@ -172,6 +176,7 @@ class OC_Helper {
/**
* Recursive copying of folders
+ *
* @param string $src source folder
* @param string $dest target folder
*
@@ -194,6 +199,7 @@ class OC_Helper {
/**
* Recursive deletion of folders
+ *
* @param string $dir path to the folder
* @param bool $deleteSelf if set to false only the content of the folder will be deleted
* @return bool
@@ -393,6 +399,7 @@ class OC_Helper {
/**
* performs a search in a nested array
+ *
* @param array $haystack the array to be searched
* @param string $needle the search string
* @param string $index optional, only search this key name
@@ -425,7 +432,7 @@ class OC_Helper {
* @return int number of bytes representing
*/
public static function maxUploadFilesize($dir, $freeSpace = null) {
- if (is_null($freeSpace) || $freeSpace < 0){
+ if (is_null($freeSpace) || $freeSpace < 0) {
$freeSpace = self::freeSpace($dir);
}
return min($freeSpace, self::uploadLimit());
@@ -443,7 +450,7 @@ class OC_Helper {
$freeSpace = max($freeSpace, 0);
return $freeSpace;
} else {
- return (INF > 0)? INF: PHP_INT_MAX; // work around https://bugs.php.net/bug.php?id=69188
+ return (INF > 0) ? INF : PHP_INT_MAX; // work around https://bugs.php.net/bug.php?id=69188
}
}
@@ -510,7 +517,7 @@ class OC_Helper {
if (empty($paths)) {
$paths = '/usr/local/bin /usr/bin /opt/bin /bin';
} else {
- $paths = str_replace(':',' ',getenv('PATH'));
+ $paths = str_replace(':', ' ', getenv('PATH'));
}
$command = 'find ' . $paths . ' -name ' . escapeshellarg($program) . ' 2> /dev/null';
exec($command, $output, $returnCode);
@@ -533,6 +540,12 @@ class OC_Helper {
* @throws \OCP\Files\NotFoundException
*/
public static function getStorageInfo($path, $rootInfo = null) {
+ $memcache = \OC::$server->getMemCacheFactory()->create('storageInfo');
+ $cacheKey = $rootInfo ? '__root__' . md5($path) : md5($path);
+ $cached = $memcache->get($cacheKey);
+ if (is_array($cached)) {
+ return $cached;
+ }
// return storage info without adding mount points
$includeExtStorage = \OC::$server->getSystemConfig()->getValue('quota_include_external_storage', false);
@@ -597,10 +610,20 @@ class OC_Helper {
$ownerId = $storage->getOwner($path);
$ownerDisplayName = '';
$owner = \OC::$server->getUserManager()->get($ownerId);
- if($owner) {
+ if ($owner) {
$ownerDisplayName = $owner->getDisplayName();
}
+ $memcache->set($cacheKey, [
+ 'free' => $free,
+ 'used' => $used,
+ 'quota' => $quota,
+ 'total' => $total,
+ 'relative' => $relative,
+ 'owner' => $ownerId,
+ 'ownerDisplayName' => $ownerDisplayName,
+ ], 5 * 60);
+
return [
'free' => $free,
'used' => $used,
@@ -645,6 +668,7 @@ class OC_Helper {
/**
* Returns whether the config file is set manually to read-only
+ *
* @return bool
*/
public static function isReadOnlyConfigEnabled() {
diff --git a/lib/private/legacy/user.php b/lib/private/legacy/user.php
index ed0d14a1ab91b39928c2a073b7a361044c25fc6a..0a52be7565d102b612713b941fed863ac2df8cc5 100644
--- a/lib/private/legacy/user.php
+++ b/lib/private/legacy/user.php
@@ -125,9 +125,16 @@ class OC_User {
* setup the configured backends in config.php
*/
public static function setupBackends() {
- OC_App::loadApps(array('prelogin'));
- $backends = \OC::$server->getSystemConfig()->getValue('user_backends', array());
+ OC_App::loadApps(['prelogin']);
+ $backends = \OC::$server->getSystemConfig()->getValue('user_backends', []);
+ if (isset($backends['default']) && !$backends['default']) {
+ // clear default backends
+ self::clearBackends();
+ }
foreach ($backends as $i => $config) {
+ if (!is_array($config)) {
+ continue;
+ }
$class = $config['class'];
$arguments = $config['arguments'];
if (class_exists($class)) {
diff --git a/lib/private/legacy/util.php b/lib/private/legacy/util.php
index 55dc5ae7c15194a24c14482f87ebd33015ef5d44..5ef1130d361b3588797e8792c13ada128ff53c3e 100644
--- a/lib/private/legacy/util.php
+++ b/lib/private/legacy/util.php
@@ -1001,27 +1001,6 @@ class OC_Util {
}
}
- /**
- * Check if it is allowed to remember login.
- *
- * @note Every app can set 'rememberlogin' to 'false' to disable the remember login feature
- *
- * @return bool
- */
- public static function rememberLoginAllowed() {
-
- $apps = OC_App::getEnabledApps();
-
- foreach ($apps as $app) {
- $appInfo = OC_App::getAppInfo($app);
- if (isset($appInfo['rememberlogin']) && $appInfo['rememberlogin'] === 'false') {
- return false;
- }
-
- }
- return true;
- }
-
/**
* Check if the user is a subadmin, redirects to home if not
*
@@ -1381,12 +1360,12 @@ class OC_Util {
}
/**
- * A human readable string is generated based on version, channel and build number
+ * A human readable string is generated based on version and build number
*
* @return string
*/
public static function getHumanVersion() {
- $version = OC_Util::getVersionString() . ' (' . OC_Util::getChannel() . ')';
+ $version = OC_Util::getVersionString();
$build = OC_Util::getBuild();
if (!empty($build) and OC_Util::getChannel() === 'daily') {
$version .= ' Build:' . $build;
diff --git a/lib/public/Activity/IManager.php b/lib/public/Activity/IManager.php
index 2fe38ddb8d8e07c3f718409b6bde86faa74054f8..f5b495807c5790f35af8fb0812520a70168f1892 100644
--- a/lib/public/Activity/IManager.php
+++ b/lib/public/Activity/IManager.php
@@ -64,6 +64,7 @@ interface IManager {
* - setSubject()
*
* @param IEvent $event
+ * @throws \BadMethodCallException if required values have not been set
* @since 8.2.0
*/
public function publish(IEvent $event);
diff --git a/lib/public/App/IAppManager.php b/lib/public/App/IAppManager.php
index 057a964ce0a66fb2aac59db913f8a30f2661f103..72c99777124a945ec15606c661d9d416d288f47d 100644
--- a/lib/public/App/IAppManager.php
+++ b/lib/public/App/IAppManager.php
@@ -61,6 +61,15 @@ interface IAppManager {
*/
public function enableApp($appId);
+ /**
+ * Whether a list of types contains a protected app type
+ *
+ * @param string[] $types
+ * @return bool
+ * @since 12.0.0
+ */
+ public function hasProtectedAppType($types);
+
/**
* Enable an app only for specific groups
*
diff --git a/lib/public/AppFramework/Db/Mapper.php b/lib/public/AppFramework/Db/Mapper.php
index aa3d9cdde37cd3210c74d63fd2b64af5ea23316a..611791a436436849d96151132a6bfecd53c7e20b 100644
--- a/lib/public/AppFramework/Db/Mapper.php
+++ b/lib/public/AppFramework/Db/Mapper.php
@@ -28,7 +28,6 @@
namespace OCP\AppFramework\Db;
use OCP\IDBConnection;
-use OCP\IDb;
/**
@@ -229,11 +228,7 @@ abstract class Mapper {
* @since 7.0.0
*/
protected function execute($sql, array $params=[], $limit=null, $offset=null){
- if ($this->db instanceof IDb) {
- $query = $this->db->prepareQuery($sql, $limit, $offset);
- } else {
- $query = $this->db->prepare($sql, $limit, $offset);
- }
+ $query = $this->db->prepare($sql, $limit, $offset);
if ($this->isAssocArray($params)) {
foreach ($params as $key => $param) {
@@ -251,15 +246,6 @@ abstract class Mapper {
$result = $query->execute();
- // this is only for backwards compatibility reasons and can be removed
- // in owncloud 10. IDb returns a StatementWrapper from execute, PDO,
- // Doctrine and IDbConnection don't so this needs to be done in order
- // to stay backwards compatible for the things that rely on the
- // StatementWrapper being returned
- if ($result instanceof \OC_DB_StatementWrapper) {
- return $result;
- }
-
return $query;
}
diff --git a/lib/public/AppFramework/Http/Response.php b/lib/public/AppFramework/Http/Response.php
index 8591d6abc68e3cb7b9d6345c7f026b4f9abe4dee..051e68f314491bfdeefefdbc5d76bc4df76e0e01 100644
--- a/lib/public/AppFramework/Http/Response.php
+++ b/lib/public/AppFramework/Http/Response.php
@@ -43,11 +43,11 @@ use OCP\AppFramework\Http;
class Response {
/**
- * Headers - defaults to ['Cache-Control' => 'no-cache, must-revalidate']
+ * Headers - defaults to ['Cache-Control' => 'no-cache, no-store, must-revalidate']
* @var array
*/
private $headers = array(
- 'Cache-Control' => 'no-cache, must-revalidate'
+ 'Cache-Control' => 'no-cache, no-store, must-revalidate'
);
diff --git a/lib/public/Authentication/Exceptions/CredentialsUnavailableException.php b/lib/public/Authentication/Exceptions/CredentialsUnavailableException.php
new file mode 100644
index 0000000000000000000000000000000000000000..9f9e38103f7965fbb317246991ae37fa0d14344d
--- /dev/null
+++ b/lib/public/Authentication/Exceptions/CredentialsUnavailableException.php
@@ -0,0 +1,34 @@
+
+ *
+ * @author 2016 Christoph Wurst
+ *
+ * @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 .
+ *
+ */
+
+namespace OCP\Authentication\Exceptions;
+
+use Exception;
+
+/**
+ * @since 12
+ */
+class CredentialsUnavailableException extends Exception {
+
+}
diff --git a/lib/public/Authentication/LoginCredentials/ICredentials.php b/lib/public/Authentication/LoginCredentials/ICredentials.php
new file mode 100644
index 0000000000000000000000000000000000000000..c5ef9574398dfc4369273d23e7b3a568f9984e10
--- /dev/null
+++ b/lib/public/Authentication/LoginCredentials/ICredentials.php
@@ -0,0 +1,58 @@
+
+ *
+ * @author 2016 Christoph Wurst
+ *
+ * @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 .
+ *
+ */
+
+namespace OCP\Authentication\LoginCredentials;
+
+/**
+ * @since 12
+ */
+interface ICredentials {
+
+ /**
+ * Get the user UID
+ *
+ * @since 12
+ *
+ * @return string
+ */
+ public function getUID();
+
+ /**
+ * Get the login name the users used to login
+ *
+ * @since 12
+ *
+ * @return string
+ */
+ public function getLoginName();
+
+ /**
+ * Get the password
+ *
+ * @since 12
+ *
+ * @return string
+ */
+ public function getPassword();
+}
diff --git a/lib/public/Authentication/LoginCredentials/IStore.php b/lib/public/Authentication/LoginCredentials/IStore.php
new file mode 100644
index 0000000000000000000000000000000000000000..4787b16d982f21a02afaeb6c298e05cbb017d899
--- /dev/null
+++ b/lib/public/Authentication/LoginCredentials/IStore.php
@@ -0,0 +1,44 @@
+
+ *
+ * @author 2016 Christoph Wurst
+ *
+ * @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 .
+ *
+ */
+
+namespace OCP\Authentication\LoginCredentials;
+
+use OCP\Authentication\Exceptions\CredentialsUnavailableException;
+
+/**
+ * @since 12
+ */
+interface IStore {
+
+ /**
+ * Get login credentials of the currently logged in user
+ *
+ * @since 12
+ *
+ * @throws CredentialsUnavailableException
+ * @return ICredentials the login credentials of the current user
+ */
+ public function getLoginCredentials();
+
+}
diff --git a/lib/public/Authentication/TwoFactorAuth/TwoFactorException.php b/lib/public/Authentication/TwoFactorAuth/TwoFactorException.php
new file mode 100644
index 0000000000000000000000000000000000000000..76e728b6ab04c1f815259cb8c97bece258fdc377
--- /dev/null
+++ b/lib/public/Authentication/TwoFactorAuth/TwoFactorException.php
@@ -0,0 +1,38 @@
+
+ * @copyright Copyright (c) 2016, ownCloud GmbH.
+ *
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see
+ *
+ */
+
+namespace OCP\Authentication\TwoFactorAuth;
+
+use Exception;
+
+/**
+ * Two Factor Authentication failed
+ *
+ * It defines an Exception a 2FA app can
+ * throw in case of an error. The 2FA Controller will catch this exception and
+ * display this error.
+ *
+ * @since 12
+ */
+class TwoFactorException extends Exception {
+
+}
diff --git a/lib/public/DB/QueryBuilder/IExpressionBuilder.php b/lib/public/DB/QueryBuilder/IExpressionBuilder.php
index 8164c738ca53b7cb26b7d2237d71149cd7887d11..c123875b80312b324b7037fc104793c3d3715b57 100644
--- a/lib/public/DB/QueryBuilder/IExpressionBuilder.php
+++ b/lib/public/DB/QueryBuilder/IExpressionBuilder.php
@@ -305,6 +305,27 @@ interface IExpressionBuilder {
*/
public function notIn($x, $y, $type = null);
+
+ /**
+ * Creates a bitwise AND comparison
+ *
+ * @param string|ILiteral $x The field or value to check
+ * @param int $y Bitmap that must be set
+ * @return IQueryFunction
+ * @since 12.0.0
+ */
+ public function bitwiseAnd($x, $y);
+
+ /**
+ * Creates a bitwise OR comparison
+ *
+ * @param string|ILiteral $x The field or value to check
+ * @param int $y Bitmap that must be set
+ * @return IQueryFunction
+ * @since 12.0.0
+ */
+ public function bitwiseOr($x, $y);
+
/**
* Quotes a given input parameter.
*
diff --git a/lib/public/Encryption/Keys/IStorage.php b/lib/public/Encryption/Keys/IStorage.php
index e17de04316b8fe19abb1cccc416c050201575fc5..c96d1573b385110ba7654f16a31132045be4d87f 100644
--- a/lib/public/Encryption/Keys/IStorage.php
+++ b/lib/public/Encryption/Keys/IStorage.php
@@ -170,4 +170,14 @@ interface IStorage {
*/
public function copyKeys($source, $target);
+ /**
+ * backup keys of a given encryption module
+ *
+ * @param string $encryptionModuleId
+ * @param string $purpose
+ * @param string $uid
+ * @return bool
+ * @since 12.0.0
+ */
+ public function backupUserKeys($encryptionModuleId, $purpose, $uid);
}
diff --git a/lib/public/Files/Cache/IScanner.php b/lib/public/Files/Cache/IScanner.php
index 60282996232488238e2d1e791f98258ac6c63b7f..8aa4dc04aa90a4a6bc0a0ddb205ede5f4a6537e1 100644
--- a/lib/public/Files/Cache/IScanner.php
+++ b/lib/public/Files/Cache/IScanner.php
@@ -32,6 +32,7 @@ interface IScanner {
const SCAN_RECURSIVE = true;
const SCAN_SHALLOW = false;
+ const REUSE_NONE = 0;
const REUSE_ETAG = 1;
const REUSE_SIZE = 2;
diff --git a/lib/public/Files/Notify/IChange.php b/lib/public/Files/Notify/IChange.php
new file mode 100644
index 0000000000000000000000000000000000000000..1e6aaa8abe09f0e5f49638ec20fcfdfefee4c1d3
--- /dev/null
+++ b/lib/public/Files/Notify/IChange.php
@@ -0,0 +1,56 @@
+
+ *
+ * @author Robin Appelman
+ *
+ * @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 .
+ *
+ */
+
+namespace OCP\Files\Notify;
+
+/**
+ * Represents a detected change in the storage
+ *
+ * @since 12.0.0
+ */
+interface IChange {
+ const ADDED = 1;
+ const REMOVED = 2;
+ const MODIFIED = 3;
+ const RENAMED = 4;
+
+ /**
+ * Get the type of the change
+ *
+ * @return int IChange::ADDED, IChange::REMOVED, IChange::MODIFIED or IChange::RENAMED
+ *
+ * @since 12.0.0
+ */
+ public function getType();
+
+ /**
+ * Get the path of the file that was changed relative to the root of the storage
+ *
+ * Note, for rename changes this path is the old path for the file
+ *
+ * @return mixed
+ *
+ * @since 12.0.0
+ */
+ public function getPath();
+}
diff --git a/lib/public/Files/Notify/INotifyHandler.php b/lib/public/Files/Notify/INotifyHandler.php
new file mode 100644
index 0000000000000000000000000000000000000000..7e0e6a610d8681a8d558adb9cc845cd422c1fb9a
--- /dev/null
+++ b/lib/public/Files/Notify/INotifyHandler.php
@@ -0,0 +1,64 @@
+
+ *
+ * @author Robin Appelman
+ *
+ * @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 .
+ *
+ */
+
+namespace OCP\Files\Notify;
+
+/**
+ * Provides access to detected changes in the storage by either actively listening
+ * or getting the list of changes that happened in the background
+ *
+ * @since 12.0.0
+ */
+interface INotifyHandler {
+ /**
+ * Start listening for update notifications
+ *
+ * The provided callback will be called for every incoming notification with the following parameters
+ * - IChange|IRenameChange $change
+ *
+ * Note that this call is blocking and will not exit on it's own, to stop listening for notifications return `false` from the callback
+ *
+ * @param callable $callback
+ *
+ * @since 12.0.0
+ */
+ public function listen(callable $callback);
+
+ /**
+ * Get all changes detected since the start of the notify process or the last call to getChanges
+ *
+ * @return IChange[]
+ *
+ * @since 12.0.0
+ */
+ public function getChanges();
+
+ /**
+ * Stop listening for changes
+ *
+ * Note that any pending changes will be discarded
+ *
+ * @since 12.0.0
+ */
+ public function stop();
+}
diff --git a/lib/public/Files/Notify/IRenameChange.php b/lib/public/Files/Notify/IRenameChange.php
new file mode 100644
index 0000000000000000000000000000000000000000..c95499a7e7460968a52f796644aafc6481f1ac05
--- /dev/null
+++ b/lib/public/Files/Notify/IRenameChange.php
@@ -0,0 +1,40 @@
+
+ *
+ * @author Robin Appelman
+ *
+ * @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 .
+ *
+ */
+
+namespace OCP\Files\Notify;
+
+/**
+ * Represents a detected rename change
+ *
+ * @since 12.0.0
+ */
+interface IRenameChange extends IChange {
+ /**
+ * Get the new path of the renamed file relative to the storage root
+ *
+ * @return string
+ *
+ * @since 12.0.0
+ */
+ public function getTargetPath();
+}
diff --git a/lib/public/Files/Storage/INotifyStorage.php b/lib/public/Files/Storage/INotifyStorage.php
index e99124abdfdcd33da36d938adcb1aa0ae742f5a9..c6fdd44724fdf4b1afee75c8ca1611ef16949997 100644
--- a/lib/public/Files/Storage/INotifyStorage.php
+++ b/lib/public/Files/Storage/INotifyStorage.php
@@ -23,6 +23,8 @@
namespace OCP\Files\Storage;
+use OCP\Files\Notify\INotifyHandler;
+
/**
* Storage backend that support active notifications
*
@@ -48,6 +50,17 @@ interface INotifyStorage {
* @param callable $callback
*
* @since 9.1.0
+ * @deprecated 12.0.0 use INotifyStorage::notify()->listen() instead
*/
public function listen($path, callable $callback);
+
+ /**
+ * Start the notification handler for this storage
+ *
+ * @param $path
+ * @return INotifyHandler
+ *
+ * @since 12.0.0
+ */
+ public function notify($path);
}
diff --git a/lib/public/Files/Storage/IStorage.php b/lib/public/Files/Storage/IStorage.php
index b806dc3b7d12458e8a51db63b836b8a1ddd45cf6..27b8f1d0697f12da4905453dad1d60baaec800d6 100644
--- a/lib/public/Files/Storage/IStorage.php
+++ b/lib/public/Files/Storage/IStorage.php
@@ -383,7 +383,7 @@ interface IStorage {
public function verifyPath($path, $fileName);
/**
- * @param \OCP\Files\Storage $sourceStorage
+ * @param \OCP\Files\Storage|\OCP\Files\Storage\IStorage $sourceStorage
* @param string $sourceInternalPath
* @param string $targetInternalPath
* @return bool
@@ -392,7 +392,7 @@ interface IStorage {
public function copyFromStorage(\OCP\Files\Storage $sourceStorage, $sourceInternalPath, $targetInternalPath);
/**
- * @param \OCP\Files\Storage $sourceStorage
+ * @param \OCP\Files\Storage|\OCP\Files\Storage\IStorage $sourceStorage
* @param string $sourceInternalPath
* @param string $targetInternalPath
* @return bool
diff --git a/lib/public/GroupInterface.php b/lib/public/GroupInterface.php
index 6f456f51fd788614d8dc7b7ef10b65158f83a9a8..97837e50b16e553914576a0780885be69f042a3a 100644
--- a/lib/public/GroupInterface.php
+++ b/lib/public/GroupInterface.php
@@ -40,6 +40,18 @@ namespace OCP;
*/
interface GroupInterface {
+ /**
+ * actions that user backends can define
+ */
+ const CREATE_GROUP = 0x00000001;
+ const DELETE_GROUP = 0x00000010;
+ const ADD_TO_GROUP = 0x00000100;
+ const REMOVE_FROM_GOUP = 0x00001000; // oops
+ const REMOVE_FROM_GROUP = 0x00001000;
+ //OBSOLETE const GET_DISPLAYNAME = 0x00010000;
+ const COUNT_USERS = 0x00100000;
+ const GROUP_DETAILS = 0x01000000;
+
/**
* Check if backend implements actions
* @param int $actions bitwise-or'ed actions
diff --git a/lib/public/IAppConfig.php b/lib/public/IAppConfig.php
index 01aca47ad816fa118904ed27feb68a1ee3ee8c18..4a92a224840017b3f4efaf4cad630bac8f6bccf4 100644
--- a/lib/public/IAppConfig.php
+++ b/lib/public/IAppConfig.php
@@ -86,6 +86,15 @@ interface IAppConfig {
*/
public function getValues($app, $key);
+ /**
+ * get all values of the app or and filters out sensitive data
+ *
+ * @param string $app
+ * @return array
+ * @since 12.0.0
+ */
+ public function getFilteredValues($app);
+
/**
* sets a value in the appconfig
* @param string $app app
diff --git a/lib/public/IDb.php b/lib/public/IDb.php
deleted file mode 100644
index bb04cf540fa1ab994dfa39a1a74983e5a20b14eb..0000000000000000000000000000000000000000
--- a/lib/public/IDb.php
+++ /dev/null
@@ -1,54 +0,0 @@
-
- * @author Morris Jobke
- *
- * @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
- *
- */
-
-namespace OCP;
-
-
-/**
- * Small Facade for being able to inject the database connection for tests
- * @since 7.0.0 - extends IDBConnection was added in 8.1.0
- */
-interface IDb extends IDBConnection {
-
-
- /**
- * Used to abstract the owncloud database access away
- * @param string $sql the sql query with ? placeholder for params
- * @param int $limit the maximum number of rows
- * @param int $offset from which row we want to start
- * @return \OC_DB_StatementWrapper prepared SQL query
- * @since 7.0.0
- */
- public function prepareQuery($sql, $limit=null, $offset=null);
-
-
- /**
- * Used to get the id of the just inserted element
- * @param string $tableName the name of the table where we inserted the item
- * @return int the id of the inserted element
- * @since 7.0.0
- */
- public function getInsertId($tableName);
-
-
-}
diff --git a/lib/public/IGroup.php b/lib/public/IGroup.php
index d5fcbcc5cd99fe1ccc8a713b31e539fa94c3686c..0cc62e9a8ed9cd2deaa926ff33b871e5174aac55 100644
--- a/lib/public/IGroup.php
+++ b/lib/public/IGroup.php
@@ -4,6 +4,7 @@
*
* @author Morris Jobke
* @author Robin Appelman
+ * @author Vincent Petry
*
* @license AGPL-3.0
*
@@ -36,6 +37,14 @@ interface IGroup {
*/
public function getGID();
+ /**
+ * Returns the group display name
+ *
+ * @return string
+ * @since 9.2
+ */
+ public function getDisplayName();
+
/**
* get all users in the group
*
diff --git a/lib/public/IPreview.php b/lib/public/IPreview.php
index a1a03fee3e1da0df72d7fbe78fbb1e784fe755bf..207539b1170f95d285d73baa57ff80b822c6116c 100644
--- a/lib/public/IPreview.php
+++ b/lib/public/IPreview.php
@@ -86,7 +86,7 @@ interface IPreview {
* @param boolean $scaleUp Scale smaller images up to the thumbnail size or not. Might look ugly
* @return \OCP\IImage
* @since 6.0.0
- * @deprecated 9.2.0 Use getPreview
+ * @deprecated 11 Use getPreview
*/
public function createPreview($file, $maxX = 100, $maxY = 75, $scaleUp = false);
diff --git a/lib/public/IServerContainer.php b/lib/public/IServerContainer.php
index 354e39bd8f981ea7bc64ef577464652126a85b4d..87628be01f71d8a67b0724b38a6158272ceeeff8 100644
--- a/lib/public/IServerContainer.php
+++ b/lib/public/IServerContainer.php
@@ -191,14 +191,6 @@ interface IServerContainer {
*/
public function getCredentialsManager();
- /**
- * Returns an instance of the db facade
- * @deprecated 8.1.0 use getDatabaseConnection, will be removed in ownCloud 10
- * @return \OCP\IDb
- * @since 7.0.0
- */
- public function getDb();
-
/**
* Returns the app config manager
*
diff --git a/lib/public/RichObjectStrings/Definitions.php b/lib/public/RichObjectStrings/Definitions.php
index fbde439c47aa4474ad59d0a17061705c17158334..f1208ae0f2cb4f96db1b68140df6315041678d63 100644
--- a/lib/public/RichObjectStrings/Definitions.php
+++ b/lib/public/RichObjectStrings/Definitions.php
@@ -152,6 +152,31 @@ class Definitions {
],
],
],
+ 'call' => [
+ 'author' => 'Nextcloud',
+ 'app' => 'spreed',
+ 'since' => '11.0.2',
+ 'parameters' => [
+ 'id' => [
+ 'since' => '11.0.2',
+ 'required' => true,
+ 'description' => 'The id used to identify the call on the instance',
+ 'example' => '42',
+ ],
+ 'name' => [
+ 'since' => '11.0.2',
+ 'required' => true,
+ 'description' => 'The display name of the call which should be used in the visual representation',
+ 'example' => 'Company call',
+ ],
+ 'call-type' => [
+ 'since' => '11.0.2',
+ 'required' => true,
+ 'description' => 'The type of the call: one2one, group or public',
+ 'example' => 'one2one',
+ ],
+ ],
+ ],
'email' => [
'author' => 'Nextcloud',
'app' => 'sharebymail',
@@ -191,7 +216,7 @@ class Definitions {
'path' => [
'since' => '11.0.0',
'required' => true,
- 'description' => 'The full path of the file for the user',
+ 'description' => 'The full path of the file for the user, should not start with a slash',
'example' => 'path/to/file.txt',
],
'link' => [
diff --git a/lib/public/Settings/IIconSection.php b/lib/public/Settings/IIconSection.php
new file mode 100644
index 0000000000000000000000000000000000000000..089b9b094e98c1d416d1593a6722e3d9b221c73e
--- /dev/null
+++ b/lib/public/Settings/IIconSection.php
@@ -0,0 +1,38 @@
+
+ *
+ * @author Joas Schilling
+ *
+ * @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 .
+ *
+ */
+
+namespace OCP\Settings;
+
+/**
+ * @since 12
+ */
+interface IIconSection extends ISection {
+ /**
+ * returns the relative path to an 16*16 icon describing the section.
+ * e.g. '/core/img/places/files.svg'
+ *
+ * @returns string
+ * @since 12
+ */
+ public function getIcon();
+}
diff --git a/lib/public/Settings/ISection.php b/lib/public/Settings/ISection.php
index 5edf5de0ca4f5e8ab46e2d1b5c6887c40f81fc80..3c08b74bdc9e6ef1b68467895957971f7c79e449 100644
--- a/lib/public/Settings/ISection.php
+++ b/lib/public/Settings/ISection.php
@@ -24,6 +24,7 @@
namespace OCP\Settings;
/**
+ * @deprecated 12 Use IIconSection instead
* @since 9.1
*/
interface ISection {
diff --git a/ocs/v1.php b/ocs/v1.php
index 5aec27ad981c3b20e13f2506a42092c3e4cfae76..79e74f20cdf44615215c32773415c0d3790d8fb4 100644
--- a/ocs/v1.php
+++ b/ocs/v1.php
@@ -65,8 +65,10 @@ try {
} catch (MethodNotAllowedException $e) {
OC_API::setContentType();
OC_Response::setStatus(405);
-} catch (\OC\OCS\Exception $ex) {
+ exit();
+} catch (Exception $ex) {
OC_API::respond($ex->getResult(), OC_API::requestedFormat());
+ exit();
}
/*
diff --git a/resources/config/ca-bundle.crt b/resources/config/ca-bundle.crt
index aee4163d27460c4c2f103d8a697b4f3a21e988b3..cce0e5835ee32ca8e724c69256b8a778c4776f8b 100644
--- a/resources/config/ca-bundle.crt
+++ b/resources/config/ca-bundle.crt
@@ -1,20 +1,20 @@
##
## Bundle of CA Root Certificates
##
-## Certificate data from Mozilla as of: Wed Sep 7 08:44:30 2016
+## Certificate data from Mozilla as of: Wed Nov 2 04:12:05 2016 GMT
##
## This is a bundle of X.509 certificates of public Certificate Authorities
## (CA). These were automatically extracted from Mozilla's root certificates
## file (certdata.txt). This file can be found in the mozilla source tree:
-## http://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt
+## https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt
##
## It contains the certificates in PEM format and therefore
## can be directly used with curl / libcurl / php_curl, or with
## an Apache+mod_ssl webserver for SSL client authentication.
## Just configure this file as the SSLCACertificateFile.
##
-## Conversion done with mk-ca-bundle.pl version 1.26.
-## SHA256: 01bbf1ecdd693f554ff4dcbe15880b3e6c33188a956c15ff845d313ca69cfeb8
+## Conversion done with mk-ca-bundle.pl version 1.27.
+## SHA256: 17e2a90c8a5cfd6a675b3475d3d467e1ab1fe0d5397e907b08206182389caa08
##
@@ -1764,7 +1764,7 @@ AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
-----END CERTIFICATE-----
NetLock Arany (Class Gold) Főtanúsítvány
-============================================
+========================================
-----BEGIN CERTIFICATE-----
MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G
A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610
@@ -2280,7 +2280,7 @@ Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
-----END CERTIFICATE-----
Certinomis - Autorité Racine
-=============================
+============================
-----BEGIN CERTIFICATE-----
MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg
@@ -3675,7 +3675,7 @@ ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
-----END CERTIFICATE-----
TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5
-=========================================================
+====================================================
-----BEGIN CERTIFICATE-----
MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN
BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
@@ -3699,7 +3699,7 @@ B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU=
-----END CERTIFICATE-----
TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H6
-=========================================================
+====================================================
-----BEGIN CERTIFICATE-----
MIIEJjCCAw6gAwIBAgIGfaHyZeyKMA0GCSqGSIb3DQEBCwUAMIGxMQswCQYDVQQGEwJUUjEPMA0G
A1UEBwwGQW5rYXJhMU0wSwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
@@ -4034,3 +4034,33 @@ BgNVHSMEGDAWgBRHd8MUi2I5DMlv4VBN0BBY3JWIbTAKBggqhkjOPQQDAwNpADBmAjEAj6jcnboM
BBf6Fek9LykBl7+BFjNAk2z8+e2AcG+qj9uEwov1NcoG3GRvaBbhj5G5AjEA2Euly8LQCGzpGPta
3U1fJAuwACEl74+nBCZx4nxp5V2a+EEfOzmTk51V6s2N8fvB
-----END CERTIFICATE-----
+
+ISRG Root X1
+============
+-----BEGIN CERTIFICATE-----
+MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAwTzELMAkGA1UE
+BhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQD
+EwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQG
+EwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMT
+DElTUkcgUm9vdCBYMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54r
+Vygch77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+0TM8ukj1
+3Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6UA5/TR5d8mUgjU+g4rk8K
+b4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sWT8KOEUt+zwvo/7V3LvSye0rgTBIlDHCN
+Aymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyHB5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ
+4Q7e2RCOFvu396j3x+UCB5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf
+1b0SHzUvKBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWnOlFu
+hjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTnjh8BCNAw1FtxNrQH
+usEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbwqHyGO0aoSCqI3Haadr8faqU9GY/r
+OPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CIrU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4G
+A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY
+9umbbjANBgkqhkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
+ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ3BebYhtF8GaV
+0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KKNFtY2PwByVS5uCbMiogziUwt
+hDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJw
+TdwJx4nLCgdNbOhdjsnvzqvHu7UrTkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nx
+e5AW0wdeRlN8NwdCjNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZA
+JzVcoyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq4RgqsahD
+YVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPAmRGunUHBcnWEvgJBQl9n
+JEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57demyPxgcYxn/eR44/KJ4EBs+lVDR3veyJ
+m+kXQ99b21/+jh5Xos1AnX5iItreGCc=
+-----END CERTIFICATE-----
diff --git a/resources/config/mimetypemapping.dist.json b/resources/config/mimetypemapping.dist.json
index a49a04e43f2d84059d9278f4e88da640b26ad912..99638b6c02dc321a42685be386da8165e05ce908 100644
--- a/resources/config/mimetypemapping.dist.json
+++ b/resources/config/mimetypemapping.dist.json
@@ -78,6 +78,7 @@
"key": ["application/x-iwork-keynote-sffkey"],
"keynote": ["application/x-iwork-keynote-sffkey"],
"kra": ["application/x-krita"],
+ "ldif": ["text/x-ldif"],
"lwp": ["application/vnd.lotus-wordpro"],
"m2t": ["video/mp2t"],
"m4a": ["audio/mp4"],
@@ -142,6 +143,7 @@
"rss": ["application/rss+xml"],
"rtf": ["text/rtf"],
"rw2": ["image/x-dcraw"],
+ "schema": ["text/plain"],
"sgf": ["application/sgf"],
"sh-lib": ["text/x-shellscript"],
"sh": ["text/x-shellscript"],
diff --git a/settings/Application.php b/settings/Application.php
index d907cd666fb76ce41b1f0a4033aabd085c0845dd..44747c2f6817ed9903288a6d5c7dac1b0905456a 100644
--- a/settings/Application.php
+++ b/settings/Application.php
@@ -106,7 +106,8 @@ class Application extends App {
return new CategoryFetcher(
$server->getAppDataDir('appstore'),
$server->getHTTPClientService(),
- $server->query(TimeFactory::class)
+ $server->query(TimeFactory::class),
+ $server->getConfig()
);
});
}
diff --git a/settings/Controller/AdminSettingsController.php b/settings/Controller/AdminSettingsController.php
index ef70caf56902fd30dbb425fcbff8268f9599ed65..4bc986e708e701ca4281f128a411c74f59bc1a03 100644
--- a/settings/Controller/AdminSettingsController.php
+++ b/settings/Controller/AdminSettingsController.php
@@ -28,7 +28,9 @@ use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\INavigationManager;
use OCP\IRequest;
+use OCP\Settings\IIconSection;
use OCP\Settings\IManager as ISettingsManager;
+use OCP\Settings\ISection;
use OCP\Template;
/**
@@ -133,10 +135,16 @@ class AdminSettingsController extends Controller {
/** @var \OC\Settings\Section[] $prioritizedSections */
foreach($sections as $prioritizedSections) {
foreach ($prioritizedSections as $section) {
+ $icon = '';
+ if ($section instanceof IIconSection) {
+ $icon = $section->getIcon();
+ }
+
$templateParameters[] = [
'anchor' => $section->getID(),
'section-name' => $section->getName(),
'active' => $section->getID() === $currentSection,
+ 'icon' => $icon,
];
}
}
diff --git a/settings/Controller/UsersController.php b/settings/Controller/UsersController.php
index 28b8d2648d99de90358fa370dd9dba02a0417ee1..43a3843249911bd33ce986294cc388ce5c49f688 100644
--- a/settings/Controller/UsersController.php
+++ b/settings/Controller/UsersController.php
@@ -346,13 +346,12 @@ class UsersController extends Controller {
}
if (empty($groups)) {
- $groups = $this->groupManager->getSubAdmin()->getSubAdminsGroups($currentUser);
- // New class returns IGroup[] so convert back
- $gids = [];
- foreach ($groups as $group) {
- $gids[] = $group->getGID();
- }
- $groups = $gids;
+ return new DataResponse(
+ array(
+ 'message' => $this->l10n->t('No valid group selected'),
+ ),
+ Http::STATUS_FORBIDDEN
+ );
}
}
@@ -380,7 +379,7 @@ class UsersController extends Controller {
);
}
- if($user instanceof User) {
+ if($user instanceof IUser) {
if($groups !== null) {
foreach($groups as $groupName) {
$group = $this->groupManager->get($groupName);
diff --git a/settings/ajax/togglegroups.php b/settings/ajax/togglegroups.php
deleted file mode 100644
index b9958bef0c986ad13ed689961a034c42c527f85b..0000000000000000000000000000000000000000
--- a/settings/ajax/togglegroups.php
+++ /dev/null
@@ -1,92 +0,0 @@
-
- * @author Christopher Schäpers
- * @author Georg Ehrke
- * @author Jakob Sack
- * @author Lukas Reschke
- * @author Robin Appelman
- * @author Thomas Müller
- *
- * @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
- *
- */
-OC_JSON::checkSubAdminUser();
-OCP\JSON::callCheck();
-
-$lastConfirm = (int) \OC::$server->getSession()->get('last-password-confirm');
-if ($lastConfirm < (time() - 30 * 60 + 15)) { // allow 15 seconds delay
- $l = \OC::$server->getL10N('core');
- OC_JSON::error(array( 'data' => array( 'message' => $l->t('Password confirmation is required'))));
- exit();
-}
-
-$success = true;
-$username = (string)$_POST['username'];
-$group = (string)$_POST['group'];
-
-if($username === OC_User::getUser() && $group === "admin" && OC_User::isAdminUser($username)) {
- $l = \OC::$server->getL10N('core');
- OC_JSON::error(array( 'data' => array( 'message' => $l->t('Admins can\'t remove themself from the admin group'))));
- exit();
-}
-
-$isUserAccessible = false;
-$isGroupAccessible = false;
-$currentUserObject = \OC::$server->getUserSession()->getUser();
-$targetUserObject = \OC::$server->getUserManager()->get($username);
-$targetGroupObject = \OC::$server->getGroupManager()->get($group);
-if($targetUserObject !== null && $currentUserObject !== null && $targetGroupObject !== null) {
- $isUserAccessible = \OC::$server->getGroupManager()->getSubAdmin()->isUserAccessible($currentUserObject, $targetUserObject);
- $isGroupAccessible = \OC::$server->getGroupManager()->getSubAdmin()->isSubAdminofGroup($currentUserObject, $targetGroupObject);
-}
-
-if(!OC_User::isAdminUser(OC_User::getUser())
- && (!$isUserAccessible
- || !$isGroupAccessible)) {
- $l = \OC::$server->getL10N('core');
- OC_JSON::error(array( 'data' => array( 'message' => $l->t('Authentication error') )));
- exit();
-}
-
-if(!OC_Group::groupExists($group)) {
- OC_Group::createGroup($group);
-}
-
-$l = \OC::$server->getL10N('settings');
-
-$error = $l->t("Unable to add user to group %s", $group);
-$action = "add";
-
-// Toggle group
-if( OC_Group::inGroup( $username, $group )) {
- $action = "remove";
- $error = $l->t("Unable to remove user from group %s", $group);
- $success = OC_Group::removeFromGroup( $username, $group );
- $usersInGroup=OC_Group::usersInGroup($group);
-}
-else{
- $success = OC_Group::addToGroup( $username, $group );
-}
-
-// Return Success story
-if( $success ) {
- OC_JSON::success(array("data" => array( "username" => $username, "action" => $action, "groupname" => $group )));
-}
-else{
- OC_JSON::error(array("data" => array( "message" => $error )));
-}
diff --git a/settings/css/settings.css b/settings/css/settings.css
index 46394d3f03d8d41f02f977acdceff37093a92949..c0c79ca65efafec89c11c3d6300889a3e7c90f3a 100644
--- a/settings/css/settings.css
+++ b/settings/css/settings.css
@@ -7,6 +7,26 @@ input#openid, input#webdav { width:20em; }
/* PERSONAL */
+/* icons for sidebar */
+.nav-icon-personal-settings {
+ background-image: url('../img/personal.svg?v=1');
+}
+.nav-icon-sessions {
+ background-image: url('../img/toggle-filelist.svg?v=1');
+}
+.nav-icon-apppasswords {
+ background-image: url('../img/password.svg?v=1');
+}
+.nav-icon-clientsbox {
+ background-image: url('../img/change.svg?v=1');
+}
+.nav-icon-federated-cloud {
+ background-image: url('../img/share.svg?v=1');
+}
+.nav-icon-second-factor-backup-codes {
+ background-image: url('../img/password.svg?v=1');
+}
+
#avatarform {
width: 160px;
padding-right: 0;
@@ -104,7 +124,7 @@ input#openid, input#webdav { width:20em; }
}
#personal-settings-container > div > form span[class^="icon-checkmark"] {
position: absolute;
- left: 239px;
+ left: 228px;
top: 82px;
pointer-events: none;
}
@@ -399,7 +419,7 @@ table.grid th, table.grid td {
font-weight: normal;
}
td.name, td.password { padding-left:.8em; }
-td.password>img,td.displayName>img, td.remove>a, td.quota>img { visibility:hidden; }
+td.password>img,td.displayName>img, td.remove>a, td.quota>img { visibility:hidden; vertical-align: middle;}
td.password, td.quota, td.displayName { width:12em; cursor:pointer; }
td.password>span, td.quota>span, rd.displayName>span { margin-right: 1.2em; color: #C7C7C7; }
span.usersLastLoginTooltip { white-space: nowrap; }
@@ -492,6 +512,12 @@ input.userFilter {width: 200px;}
/* APPS */
+#app-content > svg.app-filter {
+ float: left;
+ height: 0;
+ width: 0;
+}
+
.appinfo { margin: 1em 40px; }
#app-navigation .appwarning {
background: #fcc;
@@ -542,6 +568,10 @@ span.version {
flex-wrap: wrap;
align-content: flex-start;
}
+#apps-list.hidden {
+ display: none;
+}
+
#apps-list .section {
position: relative;
flex: 0 0 auto;
@@ -551,6 +581,26 @@ span.version {
flex-basis: 90%;
}
+#apps-list .app-description p {
+ margin: 10px 0;
+}
+#apps-list .app-description ul {
+ list-style: disc;
+}
+#apps-list .app-description ol {
+ list-style: decimal;
+}
+#apps-list .app-description > ul,
+#apps-list .app-description > ol {
+ margin-left: 19px;
+}
+#apps-list .app-description ol ol,
+#apps-list .app-description ol ul,
+#apps-list .app-description ul ol,
+#apps-list .app-description ul ul {
+ padding-left: 15px;
+}
+
@media (min-width: 1601px) {
#apps-list .section {
width: 22%;
@@ -634,9 +684,6 @@ form.section {
.app-description {
clear: both;
}
-.app-description pre {
- white-space: pre-line;
-}
#apps-list .groups-enable {
margin-top: 8px;
@@ -686,6 +733,17 @@ table.grid td.date{
}
/* ADMIN */
+
+/* Navigation icons */
+#app-navigation img {
+ margin-bottom: -3px;
+ margin-right: 6px;
+ width: 16px;
+}
+#app-navigation li span.no-icon {
+ padding-left: 32px;
+}
+
#security-warning li {
list-style: initial;
margin: 10px 0;
@@ -787,9 +845,9 @@ span.indeterminate {
/* PASSWORD */
#passwordform .strengthify-wrapper {
position: absolute;
- left: 186px;
- width: 131px;
- margin-top: -7px;
+ left: 0;
+ width: 130px;
+ margin-top: -6px;
}
/* OPERA hack for strengthify*/
diff --git a/settings/img/change.svg b/settings/img/change.svg
new file mode 100644
index 0000000000000000000000000000000000000000..cbc5d982b30ab101006cbdacc7916a8909937aae
--- /dev/null
+++ b/settings/img/change.svg
@@ -0,0 +1,5 @@
+
+
diff --git a/settings/img/password.svg b/settings/img/password.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3d161917f6ec67150e599522b5f4a49f4e4df1ce
--- /dev/null
+++ b/settings/img/password.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/settings/img/share.svg b/settings/img/share.svg
new file mode 100644
index 0000000000000000000000000000000000000000..68f2100e490e73ab50cbb4b841e47a58cd1dab83
--- /dev/null
+++ b/settings/img/share.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/settings/img/toggle-filelist.svg b/settings/img/toggle-filelist.svg
new file mode 100644
index 0000000000000000000000000000000000000000..47f019057ea66ee1ad3d0f75348308c102c066be
--- /dev/null
+++ b/settings/img/toggle-filelist.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/settings/js/apps.js b/settings/js/apps.js
index de35cd53672834c49eb80bb0ca2636789c19b125..1538e71a491afc9a2b49b53a66c3972a3c24299c 100644
--- a/settings/js/apps.js
+++ b/settings/js/apps.js
@@ -19,6 +19,8 @@ Handlebars.registerHelper('level', function() {
OC.Settings = OC.Settings || {};
OC.Settings.Apps = OC.Settings.Apps || {
+ markedOptions: {},
+
setupGroupsSelect: function($elements) {
OC.Settings.setupGroupsSelect($elements, {
placeholder: t('core', 'All')
@@ -186,6 +188,25 @@ OC.Settings.Apps = OC.Settings.Apps || {
app.author = app.author['@value'];
}
+ // Parse markdown in app description
+ app.description = DOMPurify.sanitize(
+ marked(app.description.trim(), OC.Settings.Apps.markedOptions),
+ {
+ SAFE_FOR_JQUERY: true,
+ ALLOWED_TAGS: [
+ 'strong',
+ 'p',
+ 'a',
+ 'ul',
+ 'ol',
+ 'li',
+ 'em',
+ 'del',
+ 'blockquote'
+ ]
+ }
+ );
+
var html = template(app);
if (selector) {
selector.html(html);
@@ -271,7 +292,7 @@ OC.Settings.Apps = OC.Settings.Apps || {
OC.Settings.Apps.hideErrorMessage(appId);
groups = groups || [];
var appItem = $('div#app-'+appId+'');
- element.val(t('settings','Please wait....'));
+ element.val(t('settings','Enabling app …'));
if(active && !groups.length) {
$.post(OC.filePath('settings','ajax','disableapp.php'),{appid:appId},function(result) {
if(!result || result.status !== 'success') {
@@ -633,6 +654,50 @@ OC.Settings.Apps = OC.Settings.Apps || {
* Initializes the apps list
*/
initialize: function($el) {
+
+ var renderer = new marked.Renderer();
+ renderer.link = function(href, title, text) {
+ try {
+ var prot = decodeURIComponent(unescape(href))
+ .replace(/[^\w:]/g, '')
+ .toLowerCase();
+ } catch (e) {
+ return '';
+ }
+
+ if (prot.indexOf('http:') !== 0 && prot.indexOf('https:') !== 0) {
+ return '';
+ }
+
+ var out = '' + text + '';
+ return out;
+ };
+ renderer.image = function(href, title, text) {
+ if (text) {
+ return text;
+ }
+ return title;
+ };
+ renderer.blockquote = function(quote) {
+ return quote;
+ };
+
+ OC.Settings.Apps.markedOptions = {
+ renderer: renderer,
+ gfm: false,
+ highlight: false,
+ tables: false,
+ breaks: false,
+ pedantic: false,
+ sanitize: true,
+ smartLists: true,
+ smartypants: false
+ };
+
OC.Plugins.register('OCA.Search', OC.Settings.Apps.Search);
OC.Settings.Apps.loadCategories();
OC.Util.History.addOnPopStateHandler(_.bind(this._onPopState, this));
diff --git a/settings/js/federationscopemenu.js b/settings/js/federationscopemenu.js
index 0862556a2c33ff9f99ec3212e2f2ad3a1f6c50f7..872f59c5de8608052815edf9b17f0ebcb15b6822 100644
--- a/settings/js/federationscopemenu.js
+++ b/settings/js/federationscopemenu.js
@@ -37,7 +37,7 @@
*/
var FederationScopeMenu = OC.Backbone.View.extend({
tagName: 'div',
- className: 'federationScopeMenu popovermenu bubble hidden open menu',
+ className: 'federationScopeMenu popovermenu bubble hidden menu',
field: undefined,
_scopes: undefined,
diff --git a/settings/js/users/groups.js b/settings/js/users/groups.js
index cfe01c17530940609eedcd52463b553c102e1fdf..aac1609bce7a1c7b3263514c2ae3b03673c160f1 100644
--- a/settings/js/users/groups.js
+++ b/settings/js/users/groups.js
@@ -225,7 +225,9 @@ GroupList = {
toggleAddGroup: function (event) {
if (GroupList.isAddGroupButtonVisible()) {
- event.stopPropagation();
+ if (event) {
+ event.stopPropagation();
+ }
$('#newgroup-form').show();
$('#newgroup-init').hide();
$('#newgroupname').focus();
diff --git a/settings/js/users/users.js b/settings/js/users/users.js
index 0e3067db7c74052d0e6580fedc821e6f452bcb1d..3cf7b5e810a183a2ed3ceb87440b1b211d0d8576 100644
--- a/settings/js/users/users.js
+++ b/settings/js/users/users.js
@@ -420,42 +420,63 @@ var UserList = {
var $element = $(element);
- var checkHandler = null;
+ var addUserToGroup = null,
+ removeUserFromGroup = null;
if(user) { // Only if in a user row, and not the #newusergroups select
- checkHandler = function (group) {
- if (user === OC.currentUser && group === 'admin') {
+ var handleUserGroupMembership = function (group, add) {
+ if (user === OC.getCurrentUser().uid && group === 'admin') {
return false;
}
if (!OC.isUserAdmin() && checked.length === 1 && checked[0] === group) {
return false;
}
- $.post(
- OC.filePath('settings', 'ajax', 'togglegroups.php'),
- {
- username: user,
- group: group
+
+ if (add && OC.isUserAdmin() && UserList.availableGroups.indexOf(group) === -1) {
+ GroupList.createGroup(group);
+ if (UserList.availableGroups.indexOf(group) === -1) {
+ UserList.availableGroups.push(group);
+ }
+ }
+
+ $.ajax({
+ url: OC.linkToOCS('cloud/users/' + user , 2) + 'groups',
+ data: {
+ groupid: group
},
- function (response) {
- if (response.status === 'success') {
- GroupList.update();
- var groupName = response.data.groupname;
- if (UserList.availableGroups.indexOf(groupName) === -1 &&
- response.data.action === 'add'
- ) {
- UserList.availableGroups.push(groupName);
- }
+ type: add ? 'POST' : 'DELETE',
+ beforeSend: function (request) {
+ request.setRequestHeader('Accept', 'application/json');
+ },
+ success: function() {
+ GroupList.update();
+ if (add && UserList.availableGroups.indexOf(group) === -1) {
+ UserList.availableGroups.push(group);
+ }
- if (response.data.action === 'add') {
- GroupList.incGroupCount(groupName);
- } else {
- GroupList.decGroupCount(groupName);
- }
+ if (add) {
+ GroupList.incGroupCount(group);
+ } else {
+ GroupList.decGroupCount(group);
}
- if (response.data.message) {
- OC.Notification.show(response.data.message);
+ },
+ error: function() {
+ if (add) {
+ OC.Notification.show(t('settings', 'Unable to add user to group {group}', {
+ group: group
+ }));
+ } else {
+ OC.Notification.show(t('settings', 'Unable to remove user from group {group}', {
+ group: group
+ }));
}
}
- );
+ });
+ };
+ addUserToGroup = function (group) {
+ return handleUserGroupMembership(group, true);
+ };
+ removeUserFromGroup = function (group) {
+ return handleUserGroupMembership(group, false);
};
}
var addGroup = function (select, group) {
@@ -473,8 +494,8 @@ var UserList = {
createText: label,
selectedFirst: true,
checked: checked,
- oncheck: checkHandler,
- onuncheck: checkHandler,
+ oncheck: addUserToGroup,
+ onuncheck: removeUserFromGroup,
minWidth: 100
});
},
@@ -704,9 +725,9 @@ $(document).ready(function () {
blurFunction = _.bind(blurFunction, $input);
if(isRestoreDisabled) {
$tr.addClass('row-warning');
- // add tipsy if the password change could cause data loss - no recovery enabled
- $input.tipsy({gravity:'s'});
+ // add tooltip if the password change could cause data loss - no recovery enabled
$input.attr('title', t('settings', 'Changing the password will result in data loss, because data recovery is not available for this user'));
+ $input.tooltip({placement:'bottom'});
}
$td.find('img').hide();
$td.children('span').replaceWith($input);
diff --git a/settings/l10n/ar.js b/settings/l10n/ar.js
index f9a316a51ab1efa1c16c16f4d673f914af8af283..7567276456ca5399871a6a09e1ef531d7d8fa9ae 100644
--- a/settings/l10n/ar.js
+++ b/settings/l10n/ar.js
@@ -15,13 +15,9 @@ OC.L10N.register(
"Unable to change full name" : "لم يتم التمكن من تغيير اسمك الكامل",
"Your full name has been changed." : "اسمك الكامل تم تغييره.",
"Email saved" : "تم حفظ البريد الإلكتروني",
- "Admins can't remove themself from the admin group" : "لا يستطيع المدير إزالة حسابه من مجموعة المديرين",
- "Unable to add user to group %s" : "فشل إضافة المستخدم الى المجموعة %s",
- "Unable to remove user from group %s" : "فشل إزالة المستخدم من المجموعة %s",
"Couldn't update app." : "تعذر تحديث التطبيق.",
"Sending..." : "جاري الارسال ...",
"All" : "الكل",
- "Please wait...." : "الرجاء الانتظار ...",
"Error while disabling app" : "خطا عند تعطيل البرنامج",
"Disable" : "إيقاف",
"Enable" : "تفعيل",
@@ -66,7 +62,6 @@ OC.L10N.register(
"days" : "أيام",
"Allow resharing" : "السماح بإعادة المشاركة ",
"Documentation:" : "التوثيق",
- "Uninstall App" : "أزالة تطبيق",
"Valid until" : "صالح حتى",
"Forum" : "منتدى",
"Profile picture" : "صورة الملف الشخصي",
@@ -97,7 +92,11 @@ OC.L10N.register(
"set new password" : "اعداد كلمة مرور جديدة",
"Default" : "افتراضي",
"Language changed" : "تم تغيير اللغة",
+ "Admins can't remove themself from the admin group" : "لا يستطيع المدير إزالة حسابه من مجموعة المديرين",
+ "Unable to add user to group %s" : "فشل إضافة المستخدم الى المجموعة %s",
+ "Unable to remove user from group %s" : "فشل إزالة المستخدم من المجموعة %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "هل أنت متأكد انك تريد إضافة \"{domain}\" كنطاق موثوق فيه.",
+ "Please wait...." : "الرجاء الانتظار ...",
"Everything (fatal issues, errors, warnings, info, debug)" : "كل شيء (مشاكل فادحة, اخطاء , تحذيرات , معلومات , تصحيح الاخطاء)",
"Info, warnings, errors and fatal issues" : "معلومات , تحذيرات , اخطاء , مشاكل فادحة ",
"Warnings, errors and fatal issues" : "تحذيرات , اخطاء , مشاكل فادحة ",
@@ -109,6 +108,7 @@ OC.L10N.register(
"Less" : "أقل",
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "قاعدة البيانات المستخدمة هي SQLite. ننصح باستخدام قاعدة بيانات أخرى للحصول على أداء افضل.",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "استخدام SQLite غير مناسب خاصتا اذا تم استخدام برنامج المزامنة على الجهاز الشخصي.",
+ "Uninstall App" : "أزالة تطبيق",
"Group" : "مجموعة"
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
diff --git a/settings/l10n/ar.json b/settings/l10n/ar.json
index 913ee8bdc91039ec47c2030632e19986a21eac20..a44eebfbfa89c8b5339bb0be94529d68c71328d9 100644
--- a/settings/l10n/ar.json
+++ b/settings/l10n/ar.json
@@ -13,13 +13,9 @@
"Unable to change full name" : "لم يتم التمكن من تغيير اسمك الكامل",
"Your full name has been changed." : "اسمك الكامل تم تغييره.",
"Email saved" : "تم حفظ البريد الإلكتروني",
- "Admins can't remove themself from the admin group" : "لا يستطيع المدير إزالة حسابه من مجموعة المديرين",
- "Unable to add user to group %s" : "فشل إضافة المستخدم الى المجموعة %s",
- "Unable to remove user from group %s" : "فشل إزالة المستخدم من المجموعة %s",
"Couldn't update app." : "تعذر تحديث التطبيق.",
"Sending..." : "جاري الارسال ...",
"All" : "الكل",
- "Please wait...." : "الرجاء الانتظار ...",
"Error while disabling app" : "خطا عند تعطيل البرنامج",
"Disable" : "إيقاف",
"Enable" : "تفعيل",
@@ -64,7 +60,6 @@
"days" : "أيام",
"Allow resharing" : "السماح بإعادة المشاركة ",
"Documentation:" : "التوثيق",
- "Uninstall App" : "أزالة تطبيق",
"Valid until" : "صالح حتى",
"Forum" : "منتدى",
"Profile picture" : "صورة الملف الشخصي",
@@ -95,7 +90,11 @@
"set new password" : "اعداد كلمة مرور جديدة",
"Default" : "افتراضي",
"Language changed" : "تم تغيير اللغة",
+ "Admins can't remove themself from the admin group" : "لا يستطيع المدير إزالة حسابه من مجموعة المديرين",
+ "Unable to add user to group %s" : "فشل إضافة المستخدم الى المجموعة %s",
+ "Unable to remove user from group %s" : "فشل إزالة المستخدم من المجموعة %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "هل أنت متأكد انك تريد إضافة \"{domain}\" كنطاق موثوق فيه.",
+ "Please wait...." : "الرجاء الانتظار ...",
"Everything (fatal issues, errors, warnings, info, debug)" : "كل شيء (مشاكل فادحة, اخطاء , تحذيرات , معلومات , تصحيح الاخطاء)",
"Info, warnings, errors and fatal issues" : "معلومات , تحذيرات , اخطاء , مشاكل فادحة ",
"Warnings, errors and fatal issues" : "تحذيرات , اخطاء , مشاكل فادحة ",
@@ -107,6 +106,7 @@
"Less" : "أقل",
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "قاعدة البيانات المستخدمة هي SQLite. ننصح باستخدام قاعدة بيانات أخرى للحصول على أداء افضل.",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "استخدام SQLite غير مناسب خاصتا اذا تم استخدام برنامج المزامنة على الجهاز الشخصي.",
+ "Uninstall App" : "أزالة تطبيق",
"Group" : "مجموعة"
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
}
\ No newline at end of file
diff --git a/settings/l10n/ast.js b/settings/l10n/ast.js
index 6a169af7467bd4a712e84a6d15a0ac0db4689e3b..5c0a54c40834fa526381b9f48d9c77e67632b2bf 100644
--- a/settings/l10n/ast.js
+++ b/settings/l10n/ast.js
@@ -18,14 +18,10 @@ OC.L10N.register(
"Your full name has been changed." : "Camudóse'l nome completu.",
"Email saved" : "Corréu-e guardáu",
"Couldn't remove app." : "Nun pudo desaniciase l'aplicación.",
- "Admins can't remove themself from the admin group" : "Los alministradores nun puen desaniciase a ellos mesmos del grupu d'alministrador",
- "Unable to add user to group %s" : "Nun pudo amestase l'usuariu al grupu %s",
- "Unable to remove user from group %s" : "Nun pudo desaniciase al usuariu del grupu %s",
"Couldn't update app." : "Nun pudo anovase l'aplicación.",
"Add trusted domain" : "Amestar dominiu de confianza",
"Sending..." : "Unviando...",
"All" : "Toos",
- "Please wait...." : "Espera, por favor....",
"Error while disabling app" : "Fallu mientres se desactivaba l'aplicación",
"Disable" : "Desactivar",
"Enable" : "Activar",
@@ -99,7 +95,6 @@ OC.L10N.register(
"These groups will still be able to receive shares, but not to initiate them." : "Estos grupos van poder siguir recibiendo conteníos compartíos, pero nun van poder anicialos",
"Documentation:" : "Documentación:",
"Enable only for specific groups" : "Habilitar namái pa grupos específicos",
- "Uninstall App" : "Desinstalar aplicación",
"Cheers!" : "¡Salú!",
"Forum" : "Foru",
"Profile picture" : "Semeya de perfil",
@@ -133,7 +128,11 @@ OC.L10N.register(
"set new password" : "afitar nueva contraseña",
"Default" : "Predetermináu",
"Language changed" : "Camudóse la llingua",
+ "Admins can't remove themself from the admin group" : "Los alministradores nun puen desaniciase a ellos mesmos del grupu d'alministrador",
+ "Unable to add user to group %s" : "Nun pudo amestase l'usuariu al grupu %s",
+ "Unable to remove user from group %s" : "Nun pudo desaniciase al usuariu del grupu %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "¿De xuru que quies amestar \"{domain}\" como dominiu de confianza?",
+ "Please wait...." : "Espera, por favor....",
"Everything (fatal issues, errors, warnings, info, debug)" : "Too (Información, Avisos, Fallos, debug y problemes fatales)",
"Info, warnings, errors and fatal issues" : "Información, Avisos, Fallos y problemes fatales",
"Warnings, errors and fatal issues" : "Avisos, fallos y problemes fatales",
@@ -143,8 +142,7 @@ OC.L10N.register(
"More" : "Más",
"Less" : "Menos",
"Allow users to send mail notification for shared files" : "Permitir a los usuarios unviar mensaxes de notificación pa ficheros compartíos",
- "Group" : "Grupu",
- "External Storage" : "Almacenamientu esternu",
- "Updates" : "Anovamientos"
+ "Uninstall App" : "Desinstalar aplicación",
+ "Group" : "Grupu"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/ast.json b/settings/l10n/ast.json
index 3a703d0ef84e4c429681380f9a7e723540649381..847b3822dc3988f4672ff202f4b3e1e0221d149e 100644
--- a/settings/l10n/ast.json
+++ b/settings/l10n/ast.json
@@ -16,14 +16,10 @@
"Your full name has been changed." : "Camudóse'l nome completu.",
"Email saved" : "Corréu-e guardáu",
"Couldn't remove app." : "Nun pudo desaniciase l'aplicación.",
- "Admins can't remove themself from the admin group" : "Los alministradores nun puen desaniciase a ellos mesmos del grupu d'alministrador",
- "Unable to add user to group %s" : "Nun pudo amestase l'usuariu al grupu %s",
- "Unable to remove user from group %s" : "Nun pudo desaniciase al usuariu del grupu %s",
"Couldn't update app." : "Nun pudo anovase l'aplicación.",
"Add trusted domain" : "Amestar dominiu de confianza",
"Sending..." : "Unviando...",
"All" : "Toos",
- "Please wait...." : "Espera, por favor....",
"Error while disabling app" : "Fallu mientres se desactivaba l'aplicación",
"Disable" : "Desactivar",
"Enable" : "Activar",
@@ -97,7 +93,6 @@
"These groups will still be able to receive shares, but not to initiate them." : "Estos grupos van poder siguir recibiendo conteníos compartíos, pero nun van poder anicialos",
"Documentation:" : "Documentación:",
"Enable only for specific groups" : "Habilitar namái pa grupos específicos",
- "Uninstall App" : "Desinstalar aplicación",
"Cheers!" : "¡Salú!",
"Forum" : "Foru",
"Profile picture" : "Semeya de perfil",
@@ -131,7 +126,11 @@
"set new password" : "afitar nueva contraseña",
"Default" : "Predetermináu",
"Language changed" : "Camudóse la llingua",
+ "Admins can't remove themself from the admin group" : "Los alministradores nun puen desaniciase a ellos mesmos del grupu d'alministrador",
+ "Unable to add user to group %s" : "Nun pudo amestase l'usuariu al grupu %s",
+ "Unable to remove user from group %s" : "Nun pudo desaniciase al usuariu del grupu %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "¿De xuru que quies amestar \"{domain}\" como dominiu de confianza?",
+ "Please wait...." : "Espera, por favor....",
"Everything (fatal issues, errors, warnings, info, debug)" : "Too (Información, Avisos, Fallos, debug y problemes fatales)",
"Info, warnings, errors and fatal issues" : "Información, Avisos, Fallos y problemes fatales",
"Warnings, errors and fatal issues" : "Avisos, fallos y problemes fatales",
@@ -141,8 +140,7 @@
"More" : "Más",
"Less" : "Menos",
"Allow users to send mail notification for shared files" : "Permitir a los usuarios unviar mensaxes de notificación pa ficheros compartíos",
- "Group" : "Grupu",
- "External Storage" : "Almacenamientu esternu",
- "Updates" : "Anovamientos"
+ "Uninstall App" : "Desinstalar aplicación",
+ "Group" : "Grupu"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/az.js b/settings/l10n/az.js
index 33da041addb19536908f0b2d74ce08045d87eb35..a48f28672bc808000271ab274301606dccaed400 100644
--- a/settings/l10n/az.js
+++ b/settings/l10n/az.js
@@ -32,16 +32,12 @@ OC.L10N.register(
"Unable to change mail address" : "Mail ünvanını dəyişmək olmur",
"Email saved" : "Məktub yadda saxlanıldı",
"Couldn't remove app." : "Proqram təminatını silmək mümkün olmadı.",
- "Admins can't remove themself from the admin group" : "İnzibatçılar özlərini inzibatçı qrupundan silə bilməz",
- "Unable to add user to group %s" : "İstifadəçini %s qrupuna əlavə etmək mümkün olmadı",
- "Unable to remove user from group %s" : "İstifadəçini %s qrupundan silmək mümkün olmadı",
"Couldn't update app." : "Proqram təminatını yeniləmək mümkün deyil.",
"Add trusted domain" : "İnamlı domainlərə əlavə et",
"Sending..." : "Göndərilir...",
"All" : "Hamısı",
"Update to %s" : "Yenilə bunadək %s",
"No apps found for your version" : "Sizin versiya üçün proqram tapılmadı",
- "Please wait...." : "Xahiş olunur gözləyəsiniz.",
"Error while disabling app" : "Proqram təminatını dayandırdıqda səhv baş verdi",
"Disable" : "Dayandır",
"Enable" : "İşə sal",
@@ -134,7 +130,6 @@ OC.L10N.register(
"Hide description …" : "Açıqlamanı gizlət ...",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Bu proqram yüklənə bilməz ona görə ki, göstərilən asılılıqlar yerinə yetirilməyib:",
"Enable only for specific groups" : "Yalnız spesifik qruplara izin ver",
- "Uninstall App" : "Proqram təminatını sil",
"Common Name" : "Ümumi ad",
"Valid until" : "Vaxtadək keçərlidir",
"Issued By" : "Tərəfindən yaradılıb",
@@ -186,7 +181,11 @@ OC.L10N.register(
"Default" : "Susmaya görə",
"log-level out of allowed range" : "jurnal-səviyyəsi izin verilən aralıqdan kənardır",
"Language changed" : "Dil dəyişdirildi",
+ "Admins can't remove themself from the admin group" : "İnzibatçılar özlərini inzibatçı qrupundan silə bilməz",
+ "Unable to add user to group %s" : "İstifadəçini %s qrupuna əlavə etmək mümkün olmadı",
+ "Unable to remove user from group %s" : "İstifadəçini %s qrupundan silmək mümkün olmadı",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "\"{domain}\" adını inamlı domainlər siyahısına əlavə etməyinizdən əminsinizmi?",
+ "Please wait...." : "Xahiş olunur gözləyəsiniz.",
"Everything (fatal issues, errors, warnings, info, debug)" : "Hər şey(ən pis hadisələr, səhvlər, xəbərdarlıqlar, məlmat, araşdırma səhvləri)",
"Info, warnings, errors and fatal issues" : "Məlmat, xəbərdarlıqlar, səhvlər və ən pis hadisələr",
"Warnings, errors and fatal issues" : "Xəbərdarlıqlar, səhvlər və ən pis hadisələr",
@@ -201,10 +200,9 @@ OC.L10N.register(
"Allow users to send mail notification for shared files to other users" : "İstifadəçilərə etdikləri paylaşımı digər istifadəçilərə mail vasitəsilə xəbərdarlıq göndərilməsinə izin verin",
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLinte verilənlər bazası kimi istifadə edilir. Geniş tətbiq üçün, biz məsləhət görürük ki, arxa sonluqda fərqli verilənlər bazasından istifadə edəsiniz. ",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Xüsusilə fayl sinxronizasiyası üçün desktop client-dən istifadə edilərsə, SQLite məsləhət görülmür.",
+ "Uninstall App" : "Proqram təminatını sil",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Ey ora,
ancaq deyirik ki, sizin artiq %s hesabınız var.
Sizin istifadəçi adınız: %s
Yetkilidir: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Ey ora,\n\nancaq deyirik ki, sizin artiq %s hesabınız var.\n\nizin istifadəçi adınız: %s\nYetkilidir: %s\n\n",
- "Group" : "Qrup",
- "External Storage" : "Kənar depo",
- "Updates" : "Yenilənmələr"
+ "Group" : "Qrup"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/az.json b/settings/l10n/az.json
index c786765bc3ebb3ae19e072d3108d5b8691b1de2a..c1c57e15a07f8ddf4ad6537b3a9a9894f78ad9a6 100644
--- a/settings/l10n/az.json
+++ b/settings/l10n/az.json
@@ -30,16 +30,12 @@
"Unable to change mail address" : "Mail ünvanını dəyişmək olmur",
"Email saved" : "Məktub yadda saxlanıldı",
"Couldn't remove app." : "Proqram təminatını silmək mümkün olmadı.",
- "Admins can't remove themself from the admin group" : "İnzibatçılar özlərini inzibatçı qrupundan silə bilməz",
- "Unable to add user to group %s" : "İstifadəçini %s qrupuna əlavə etmək mümkün olmadı",
- "Unable to remove user from group %s" : "İstifadəçini %s qrupundan silmək mümkün olmadı",
"Couldn't update app." : "Proqram təminatını yeniləmək mümkün deyil.",
"Add trusted domain" : "İnamlı domainlərə əlavə et",
"Sending..." : "Göndərilir...",
"All" : "Hamısı",
"Update to %s" : "Yenilə bunadək %s",
"No apps found for your version" : "Sizin versiya üçün proqram tapılmadı",
- "Please wait...." : "Xahiş olunur gözləyəsiniz.",
"Error while disabling app" : "Proqram təminatını dayandırdıqda səhv baş verdi",
"Disable" : "Dayandır",
"Enable" : "İşə sal",
@@ -132,7 +128,6 @@
"Hide description …" : "Açıqlamanı gizlət ...",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Bu proqram yüklənə bilməz ona görə ki, göstərilən asılılıqlar yerinə yetirilməyib:",
"Enable only for specific groups" : "Yalnız spesifik qruplara izin ver",
- "Uninstall App" : "Proqram təminatını sil",
"Common Name" : "Ümumi ad",
"Valid until" : "Vaxtadək keçərlidir",
"Issued By" : "Tərəfindən yaradılıb",
@@ -184,7 +179,11 @@
"Default" : "Susmaya görə",
"log-level out of allowed range" : "jurnal-səviyyəsi izin verilən aralıqdan kənardır",
"Language changed" : "Dil dəyişdirildi",
+ "Admins can't remove themself from the admin group" : "İnzibatçılar özlərini inzibatçı qrupundan silə bilməz",
+ "Unable to add user to group %s" : "İstifadəçini %s qrupuna əlavə etmək mümkün olmadı",
+ "Unable to remove user from group %s" : "İstifadəçini %s qrupundan silmək mümkün olmadı",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "\"{domain}\" adını inamlı domainlər siyahısına əlavə etməyinizdən əminsinizmi?",
+ "Please wait...." : "Xahiş olunur gözləyəsiniz.",
"Everything (fatal issues, errors, warnings, info, debug)" : "Hər şey(ən pis hadisələr, səhvlər, xəbərdarlıqlar, məlmat, araşdırma səhvləri)",
"Info, warnings, errors and fatal issues" : "Məlmat, xəbərdarlıqlar, səhvlər və ən pis hadisələr",
"Warnings, errors and fatal issues" : "Xəbərdarlıqlar, səhvlər və ən pis hadisələr",
@@ -199,10 +198,9 @@
"Allow users to send mail notification for shared files to other users" : "İstifadəçilərə etdikləri paylaşımı digər istifadəçilərə mail vasitəsilə xəbərdarlıq göndərilməsinə izin verin",
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLinte verilənlər bazası kimi istifadə edilir. Geniş tətbiq üçün, biz məsləhət görürük ki, arxa sonluqda fərqli verilənlər bazasından istifadə edəsiniz. ",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Xüsusilə fayl sinxronizasiyası üçün desktop client-dən istifadə edilərsə, SQLite məsləhət görülmür.",
+ "Uninstall App" : "Proqram təminatını sil",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Ey ora,
ancaq deyirik ki, sizin artiq %s hesabınız var.
Sizin istifadəçi adınız: %s
Yetkilidir: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Ey ora,\n\nancaq deyirik ki, sizin artiq %s hesabınız var.\n\nizin istifadəçi adınız: %s\nYetkilidir: %s\n\n",
- "Group" : "Qrup",
- "External Storage" : "Kənar depo",
- "Updates" : "Yenilənmələr"
+ "Group" : "Qrup"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/bg_BG.js b/settings/l10n/bg_BG.js
index 3a97ceb0093ce07e0a38a7108ebe22fc15f1d00c..b92b3642b7a799f22734fc71ecb3495227509dc5 100644
--- a/settings/l10n/bg_BG.js
+++ b/settings/l10n/bg_BG.js
@@ -32,16 +32,12 @@ OC.L10N.register(
"Unable to change mail address" : "Неуспешна промяна на адрес на електронна поща",
"Email saved" : "Имейлът е запазен",
"Couldn't remove app." : "Приложението не бе премахнато.",
- "Admins can't remove themself from the admin group" : "Администраторите не могат да премахват себе си от групата \"admin\".",
- "Unable to add user to group %s" : "Неуспешно добавяне на потребител към групата %s.",
- "Unable to remove user from group %s" : "Неуспешно премахване на потребител от групата %s.",
"Couldn't update app." : "Приложението не бе обновено.",
"Add trusted domain" : "Добавяне на сигурен домейн",
"Sending..." : "Изпращане...",
"All" : "Всички",
"Update to %s" : "Обнови до %s",
"No apps found for your version" : "Няма намерени приложения за версията, която ползвате",
- "Please wait...." : "Моля, изчакайте....",
"Error while disabling app" : "Грешка при изключване на приложението",
"Disable" : "Изключване",
"Enable" : "Включване",
@@ -163,7 +159,6 @@ OC.L10N.register(
"Hide description …" : "Скрии описание ...",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Приложението не може да бъде инсталирано, защото следните зависимости не са удовлетворени:",
"Enable only for specific groups" : "Включи само за определени групи",
- "Uninstall App" : "Премахни приложението",
"Common Name" : "Познато Име",
"Valid until" : "Валиден до",
"Issued By" : "Издаден от",
@@ -207,6 +202,7 @@ OC.L10N.register(
"Name" : "Име",
"Username" : "Потребител",
"Done" : "Завършен",
+ "Subscribe to our newsletter!" : "Абонирайте се за нашата емисия!",
"Show storage location" : "Покажи мястото на хранилището",
"Show last log in" : "Покажи последно вписване",
"Send email to new user" : "Изпращай писмо към нов потребител",
@@ -230,7 +226,11 @@ OC.L10N.register(
"Default" : "Стандарт",
"log-level out of allowed range" : "Ниво на проследяване \\(log-level\\) e извън допустимия обхват",
"Language changed" : "Езикът е променен",
+ "Admins can't remove themself from the admin group" : "Администраторите не могат да премахват себе си от групата \"admin\".",
+ "Unable to add user to group %s" : "Неуспешно добавяне на потребител към групата %s.",
+ "Unable to remove user from group %s" : "Неуспешно премахване на потребител от групата %s.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Сигурен/на ли сте, че искате \"{domain}\" да бъде добавен като сигурен домейн?",
+ "Please wait...." : "Моля, изчакайте....",
"iPhone" : "iPhone",
"Everything (fatal issues, errors, warnings, info, debug)" : "Всичко (фатални проблеми, грешки, предупреждения, информация, дебъгване)",
"Info, warnings, errors and fatal issues" : "информация, предупреждения, грешки и фатални проблеми",
@@ -246,16 +246,13 @@ OC.L10N.register(
"Allow users to send mail notification for shared files to other users" : "Разреши на потребителите да изпращат уведомителни писма за споделени файлове към други потребители.",
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite е използваната база данни. За по-големи инсталации Ви препоръчваме да изберете друг сървър за бази данни.",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Използването на SQLite не се препоръчва, особено ако ползвате клиента за настолен компютър.",
+ "Uninstall App" : "Премахни приложението",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Здрасти,
Само да ти кажа, че имаш %s профил
Потребителя ти е: %s
Достъпи го: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Здрасти,\n\nСамо да ти кажа, че имаш %s профил.\n\nПотребителя ти е: %s\nДостъпи го: %s\n",
"Group" : "Група",
"Default Quota" : "Стандартна квота",
"Group Admin for" : "Групов Администратор за",
"Storage Location" : "Дисково пространство",
- "Last Login" : "Последно вписване",
- "Redis" : "Redis",
- "External Storage" : "Външно хранилище",
- "Updates" : "Обновления",
- "An error occurred: {message}" : "Възникна грешка: {message}"
+ "Last Login" : "Последно вписване"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/bg_BG.json b/settings/l10n/bg_BG.json
index 64d76926da1871505f45428c3d1d7003ee7ea1eb..ec1e46f77195df32f5534ac9d81287027eece3dc 100644
--- a/settings/l10n/bg_BG.json
+++ b/settings/l10n/bg_BG.json
@@ -30,16 +30,12 @@
"Unable to change mail address" : "Неуспешна промяна на адрес на електронна поща",
"Email saved" : "Имейлът е запазен",
"Couldn't remove app." : "Приложението не бе премахнато.",
- "Admins can't remove themself from the admin group" : "Администраторите не могат да премахват себе си от групата \"admin\".",
- "Unable to add user to group %s" : "Неуспешно добавяне на потребител към групата %s.",
- "Unable to remove user from group %s" : "Неуспешно премахване на потребител от групата %s.",
"Couldn't update app." : "Приложението не бе обновено.",
"Add trusted domain" : "Добавяне на сигурен домейн",
"Sending..." : "Изпращане...",
"All" : "Всички",
"Update to %s" : "Обнови до %s",
"No apps found for your version" : "Няма намерени приложения за версията, която ползвате",
- "Please wait...." : "Моля, изчакайте....",
"Error while disabling app" : "Грешка при изключване на приложението",
"Disable" : "Изключване",
"Enable" : "Включване",
@@ -161,7 +157,6 @@
"Hide description …" : "Скрии описание ...",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Приложението не може да бъде инсталирано, защото следните зависимости не са удовлетворени:",
"Enable only for specific groups" : "Включи само за определени групи",
- "Uninstall App" : "Премахни приложението",
"Common Name" : "Познато Име",
"Valid until" : "Валиден до",
"Issued By" : "Издаден от",
@@ -205,6 +200,7 @@
"Name" : "Име",
"Username" : "Потребител",
"Done" : "Завършен",
+ "Subscribe to our newsletter!" : "Абонирайте се за нашата емисия!",
"Show storage location" : "Покажи мястото на хранилището",
"Show last log in" : "Покажи последно вписване",
"Send email to new user" : "Изпращай писмо към нов потребител",
@@ -228,7 +224,11 @@
"Default" : "Стандарт",
"log-level out of allowed range" : "Ниво на проследяване \\(log-level\\) e извън допустимия обхват",
"Language changed" : "Езикът е променен",
+ "Admins can't remove themself from the admin group" : "Администраторите не могат да премахват себе си от групата \"admin\".",
+ "Unable to add user to group %s" : "Неуспешно добавяне на потребител към групата %s.",
+ "Unable to remove user from group %s" : "Неуспешно премахване на потребител от групата %s.",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Сигурен/на ли сте, че искате \"{domain}\" да бъде добавен като сигурен домейн?",
+ "Please wait...." : "Моля, изчакайте....",
"iPhone" : "iPhone",
"Everything (fatal issues, errors, warnings, info, debug)" : "Всичко (фатални проблеми, грешки, предупреждения, информация, дебъгване)",
"Info, warnings, errors and fatal issues" : "информация, предупреждения, грешки и фатални проблеми",
@@ -244,16 +244,13 @@
"Allow users to send mail notification for shared files to other users" : "Разреши на потребителите да изпращат уведомителни писма за споделени файлове към други потребители.",
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite е използваната база данни. За по-големи инсталации Ви препоръчваме да изберете друг сървър за бази данни.",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Използването на SQLite не се препоръчва, особено ако ползвате клиента за настолен компютър.",
+ "Uninstall App" : "Премахни приложението",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Здрасти,
Само да ти кажа, че имаш %s профил
Потребителя ти е: %s
Достъпи го: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Здрасти,\n\nСамо да ти кажа, че имаш %s профил.\n\nПотребителя ти е: %s\nДостъпи го: %s\n",
"Group" : "Група",
"Default Quota" : "Стандартна квота",
"Group Admin for" : "Групов Администратор за",
"Storage Location" : "Дисково пространство",
- "Last Login" : "Последно вписване",
- "Redis" : "Redis",
- "External Storage" : "Външно хранилище",
- "Updates" : "Обновления",
- "An error occurred: {message}" : "Възникна грешка: {message}"
+ "Last Login" : "Последно вписване"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/bn_BD.js b/settings/l10n/bn_BD.js
index 9d08bd440a79457574297a05629dad4295283e82..195745a1b8e5e12ebdea027f7f283131c17cd136 100644
--- a/settings/l10n/bn_BD.js
+++ b/settings/l10n/bn_BD.js
@@ -12,9 +12,6 @@ OC.L10N.register(
"Your full name has been changed." : "আপনার পূর্ণ নাম পরিবর্তন করা হয়েছে।",
"Email saved" : "ই-মেইল সংরক্ষন করা হয়েছে",
"Couldn't remove app." : "অ্যাপ অপসারণ করা গেলনা",
- "Admins can't remove themself from the admin group" : "প্রশাসকবৃন্দ তাদেরকে প্রশাসক গোষ্ঠী থেকে মুছে ফেলতে পারবেন না",
- "Unable to add user to group %s" : " %s গোষ্ঠীতে ব্যবহারকারী যোগ করা সম্ভব হলো না ",
- "Unable to remove user from group %s" : "%s গোষ্ঠী থেকে ব্যবহারকারীকে অপসারণ করা সম্ভব হলো না",
"Couldn't update app." : "অ্যাপ নবায়ন করা গেলনা।",
"All" : "সবাই",
"Error while disabling app" : "অ্যাপ অকার্যকর করতে সমস্যা দেখা দিয়েছে ",
@@ -72,9 +69,11 @@ OC.L10N.register(
"set new password" : "নতুন কূটশব্দ নির্ধারণ করুন",
"Default" : "পূর্বনির্ধারিত",
"Language changed" : "ভাষা পরিবর্তন করা হয়েছে",
+ "Admins can't remove themself from the admin group" : "প্রশাসকবৃন্দ তাদেরকে প্রশাসক গোষ্ঠী থেকে মুছে ফেলতে পারবেন না",
+ "Unable to add user to group %s" : " %s গোষ্ঠীতে ব্যবহারকারী যোগ করা সম্ভব হলো না ",
+ "Unable to remove user from group %s" : "%s গোষ্ঠী থেকে ব্যবহারকারীকে অপসারণ করা সম্ভব হলো না",
"More" : "বেশী",
"Less" : "কম",
- "Group" : "গোষ্ঠীসমূহ",
- "External Storage" : "বাহ্যিক সংরক্ষণাগার"
+ "Group" : "গোষ্ঠীসমূহ"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/bn_BD.json b/settings/l10n/bn_BD.json
index 4a6d100e842c2b5e2e91e336e9e847461c976333..6c6794cbe265a4571af5364ee3713c87b888d455 100644
--- a/settings/l10n/bn_BD.json
+++ b/settings/l10n/bn_BD.json
@@ -10,9 +10,6 @@
"Your full name has been changed." : "আপনার পূর্ণ নাম পরিবর্তন করা হয়েছে।",
"Email saved" : "ই-মেইল সংরক্ষন করা হয়েছে",
"Couldn't remove app." : "অ্যাপ অপসারণ করা গেলনা",
- "Admins can't remove themself from the admin group" : "প্রশাসকবৃন্দ তাদেরকে প্রশাসক গোষ্ঠী থেকে মুছে ফেলতে পারবেন না",
- "Unable to add user to group %s" : " %s গোষ্ঠীতে ব্যবহারকারী যোগ করা সম্ভব হলো না ",
- "Unable to remove user from group %s" : "%s গোষ্ঠী থেকে ব্যবহারকারীকে অপসারণ করা সম্ভব হলো না",
"Couldn't update app." : "অ্যাপ নবায়ন করা গেলনা।",
"All" : "সবাই",
"Error while disabling app" : "অ্যাপ অকার্যকর করতে সমস্যা দেখা দিয়েছে ",
@@ -70,9 +67,11 @@
"set new password" : "নতুন কূটশব্দ নির্ধারণ করুন",
"Default" : "পূর্বনির্ধারিত",
"Language changed" : "ভাষা পরিবর্তন করা হয়েছে",
+ "Admins can't remove themself from the admin group" : "প্রশাসকবৃন্দ তাদেরকে প্রশাসক গোষ্ঠী থেকে মুছে ফেলতে পারবেন না",
+ "Unable to add user to group %s" : " %s গোষ্ঠীতে ব্যবহারকারী যোগ করা সম্ভব হলো না ",
+ "Unable to remove user from group %s" : "%s গোষ্ঠী থেকে ব্যবহারকারীকে অপসারণ করা সম্ভব হলো না",
"More" : "বেশী",
"Less" : "কম",
- "Group" : "গোষ্ঠীসমূহ",
- "External Storage" : "বাহ্যিক সংরক্ষণাগার"
+ "Group" : "গোষ্ঠীসমূহ"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/bs.js b/settings/l10n/bs.js
index 4e0745f6c21c684381f6e8dc64425c16d36aace2..f1d6d4a48e7fd1173c17e4078f8d66bb0015f175 100644
--- a/settings/l10n/bs.js
+++ b/settings/l10n/bs.js
@@ -28,15 +28,11 @@ OC.L10N.register(
"Unable to change mail address" : "Nemoguće je izmjeniti adresu e-pošte",
"Email saved" : "E-pošta je spremljena",
"Couldn't remove app." : "Nije moguće ukloniti aplikaciju.",
- "Admins can't remove themself from the admin group" : "Administratori ne mogu sami sebe ukloniti iz admin grupe",
- "Unable to add user to group %s" : "Dodavanje korisnika grupi %s nije moguće",
- "Unable to remove user from group %s" : "Uklanjanje korisnika iz grupe %s nije moguće",
"Couldn't update app." : "Ažuriranje aplikacije nije moguće.",
"Add trusted domain" : "Dodaj pouzdanu domenu",
"Sending..." : "Slanje...",
"All" : "Sve",
"Update to %s" : "Ažuriraj na %s",
- "Please wait...." : "Molim pričekajte...",
"Error while disabling app" : "Greška pri onemogućavanju aplikacije",
"Disable" : "Onemogući",
"Enable" : "Omogući",
@@ -115,7 +111,6 @@ OC.L10N.register(
"Documentation:" : "Dokumentacija:",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Ova aplikacija se ne može instalirati zbog slijedećih neispunjenih ovisnosti:",
"Enable only for specific groups" : "Omogućite samo za specifične grupe",
- "Uninstall App" : "Deinstaliraj aplikaciju",
"Common Name" : "Opće Ime",
"Valid until" : "Validno do",
"Issued By" : "Izdano od",
@@ -160,7 +155,11 @@ OC.L10N.register(
"change email address" : "promjeni adresu e-pošte",
"Default" : "Zadano",
"Language changed" : "Jezik je promijenjen",
+ "Admins can't remove themself from the admin group" : "Administratori ne mogu sami sebe ukloniti iz admin grupe",
+ "Unable to add user to group %s" : "Dodavanje korisnika grupi %s nije moguće",
+ "Unable to remove user from group %s" : "Uklanjanje korisnika iz grupe %s nije moguće",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Jeste li zaista sigurni da želite dodati \"{domain}\" kao pouzdanu domenu?",
+ "Please wait...." : "Molim pričekajte...",
"Everything (fatal issues, errors, warnings, info, debug)" : "Sve (fatalni problemi, greške, upozorenja, info, ispravljanje pogrešaka)",
"Info, warnings, errors and fatal issues" : "Informacije, upozorenja, greške i fatalni problemi",
"Warnings, errors and fatal issues" : "Upozorenja, greške i fatalni problemi",
@@ -171,8 +170,8 @@ OC.L10N.register(
"Less" : "Manje",
"Allow users to send mail notification for shared files" : "Dozvoli korisnicima slanje notifikacijske e-pošte za podijeljene datoteke",
"Allow users to send mail notification for shared files to other users" : "Dozvoli korisnicima slanje notifikacijske e-pošte za podijeljene datoteke ka ostalim korisnicima",
+ "Uninstall App" : "Deinstaliraj aplikaciju",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hej,
samo da javim da sad imate %s račum.
Vaše korisničko ime: %s
Pristupite mu: %s
",
- "Group" : "Grupa",
- "Updates" : "Ažuriranja"
+ "Group" : "Grupa"
},
"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/settings/l10n/bs.json b/settings/l10n/bs.json
index 4329671aca7e985dede0ad1e278dd3c111769245..b45efaeea0caecb1e713dc72bda0d26994adb792 100644
--- a/settings/l10n/bs.json
+++ b/settings/l10n/bs.json
@@ -26,15 +26,11 @@
"Unable to change mail address" : "Nemoguće je izmjeniti adresu e-pošte",
"Email saved" : "E-pošta je spremljena",
"Couldn't remove app." : "Nije moguće ukloniti aplikaciju.",
- "Admins can't remove themself from the admin group" : "Administratori ne mogu sami sebe ukloniti iz admin grupe",
- "Unable to add user to group %s" : "Dodavanje korisnika grupi %s nije moguće",
- "Unable to remove user from group %s" : "Uklanjanje korisnika iz grupe %s nije moguće",
"Couldn't update app." : "Ažuriranje aplikacije nije moguće.",
"Add trusted domain" : "Dodaj pouzdanu domenu",
"Sending..." : "Slanje...",
"All" : "Sve",
"Update to %s" : "Ažuriraj na %s",
- "Please wait...." : "Molim pričekajte...",
"Error while disabling app" : "Greška pri onemogućavanju aplikacije",
"Disable" : "Onemogući",
"Enable" : "Omogući",
@@ -113,7 +109,6 @@
"Documentation:" : "Dokumentacija:",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Ova aplikacija se ne može instalirati zbog slijedećih neispunjenih ovisnosti:",
"Enable only for specific groups" : "Omogućite samo za specifične grupe",
- "Uninstall App" : "Deinstaliraj aplikaciju",
"Common Name" : "Opće Ime",
"Valid until" : "Validno do",
"Issued By" : "Izdano od",
@@ -158,7 +153,11 @@
"change email address" : "promjeni adresu e-pošte",
"Default" : "Zadano",
"Language changed" : "Jezik je promijenjen",
+ "Admins can't remove themself from the admin group" : "Administratori ne mogu sami sebe ukloniti iz admin grupe",
+ "Unable to add user to group %s" : "Dodavanje korisnika grupi %s nije moguće",
+ "Unable to remove user from group %s" : "Uklanjanje korisnika iz grupe %s nije moguće",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Jeste li zaista sigurni da želite dodati \"{domain}\" kao pouzdanu domenu?",
+ "Please wait...." : "Molim pričekajte...",
"Everything (fatal issues, errors, warnings, info, debug)" : "Sve (fatalni problemi, greške, upozorenja, info, ispravljanje pogrešaka)",
"Info, warnings, errors and fatal issues" : "Informacije, upozorenja, greške i fatalni problemi",
"Warnings, errors and fatal issues" : "Upozorenja, greške i fatalni problemi",
@@ -169,8 +168,8 @@
"Less" : "Manje",
"Allow users to send mail notification for shared files" : "Dozvoli korisnicima slanje notifikacijske e-pošte za podijeljene datoteke",
"Allow users to send mail notification for shared files to other users" : "Dozvoli korisnicima slanje notifikacijske e-pošte za podijeljene datoteke ka ostalim korisnicima",
+ "Uninstall App" : "Deinstaliraj aplikaciju",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hej,
samo da javim da sad imate %s račum.
Vaše korisničko ime: %s
Pristupite mu: %s
",
- "Group" : "Grupa",
- "Updates" : "Ažuriranja"
+ "Group" : "Grupa"
},"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/settings/l10n/ca.js b/settings/l10n/ca.js
index 4476465edeeddc7661e73ca1771920e51bbc468a..917f5d41e4e91c58c5d2f1e3fe7b44b4fe32a228 100644
--- a/settings/l10n/ca.js
+++ b/settings/l10n/ca.js
@@ -34,9 +34,6 @@ OC.L10N.register(
"Unable to change mail address" : "No es pot canviar l'adreça de correu electrònic",
"Email saved" : "S'ha desat el correu electrònic",
"Couldn't remove app." : "No s'ha pogut eliminar l'aplicació",
- "Admins can't remove themself from the admin group" : "Els administradors no es poden eliminar del grup admin",
- "Unable to add user to group %s" : "No es pot afegir l'usuari al grup %s",
- "Unable to remove user from group %s" : "No es pot eliminar l'usuari del grup %s",
"Couldn't update app." : "No s'ha pogut actualitzar l'aplicació.",
"Add trusted domain" : "Afegir domini de confiança",
"Migration in progress. Please wait until the migration is finished" : "Migració en progrés. Si us plau, espereu fins que finalitzi la migració",
@@ -46,7 +43,6 @@ OC.L10N.register(
"All" : "Tots",
"Update to %s" : "Actualitzar a %s",
"No apps found for your version" : "No s'han trobat aplicacions per la seva versió",
- "Please wait...." : "Espereu...",
"Error while disabling app" : "Error en desactivar l'aplicació",
"Disable" : "Desactiva",
"Enable" : "Habilita",
@@ -152,7 +148,6 @@ OC.L10N.register(
"Hide description …" : "Amagar descripció...",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Aquesta aplicació no es pot instal·lar perquè les següents dependències no es compleixen:",
"Enable only for specific groups" : "Activa només per grups específics",
- "Uninstall App" : "Desinstal·la l'aplicació",
"Common Name" : "Nom comú",
"Valid until" : "Valid fins",
"Issued By" : "Emès Per",
@@ -206,7 +201,11 @@ OC.L10N.register(
"Default" : "Per defecte",
"log-level out of allowed range" : "Nivell d'autenticació fora del rang permès",
"Language changed" : "S'ha canviat l'idioma",
+ "Admins can't remove themself from the admin group" : "Els administradors no es poden eliminar del grup admin",
+ "Unable to add user to group %s" : "No es pot afegir l'usuari al grup %s",
+ "Unable to remove user from group %s" : "No es pot eliminar l'usuari del grup %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Esteu seguir que voleu afegir \"{domain}\" com a un domini de confiança?",
+ "Please wait...." : "Espereu...",
"Everything (fatal issues, errors, warnings, info, debug)" : "Tot (problemes fatals, errors, avisos, informació, depuració)",
"Info, warnings, errors and fatal issues" : "Informació, avisos, errors i problemes fatals",
"Warnings, errors and fatal issues" : "Avisos, errors i problemes fatals",
@@ -222,13 +221,9 @@ OC.L10N.register(
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "S'utilitza SQLite com a base de dades. Per a instal·lacions mes grans es recomana canviar a un altre sistema de base de dades.",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "L'ús de SQLite està desaconsellat especialment quan s'usa el client d'escriptori per sincronitzar els fitxers.",
"Experimental applications ahead" : "A partir d'aquest punt hi ha aplicacions experimentals",
+ "Uninstall App" : "Desinstal·la l'aplicació",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Què tal?,
aquest missatge és per fer-li saber que ara té uncompte %s.
El seu nom d'usuari: %s
Accedeixi en: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hola, què tal?,\n\nAquest missatge és per fer-li saber que ara té un compte %s.\n\n El seu nom d'usuari: %s\nAccedeixi en: %s\n\n",
- "Group" : "Grup",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Emmagatzemament extern",
- "Updates" : "Actualitzacions",
- "An error occurred: {message}" : "S'ha produït un error: {message}"
+ "Group" : "Grup"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/ca.json b/settings/l10n/ca.json
index 28fffa032442a4c835057febd290cc080367bb3c..67b310b196e69812b35ad3759f9c44febcde4986 100644
--- a/settings/l10n/ca.json
+++ b/settings/l10n/ca.json
@@ -32,9 +32,6 @@
"Unable to change mail address" : "No es pot canviar l'adreça de correu electrònic",
"Email saved" : "S'ha desat el correu electrònic",
"Couldn't remove app." : "No s'ha pogut eliminar l'aplicació",
- "Admins can't remove themself from the admin group" : "Els administradors no es poden eliminar del grup admin",
- "Unable to add user to group %s" : "No es pot afegir l'usuari al grup %s",
- "Unable to remove user from group %s" : "No es pot eliminar l'usuari del grup %s",
"Couldn't update app." : "No s'ha pogut actualitzar l'aplicació.",
"Add trusted domain" : "Afegir domini de confiança",
"Migration in progress. Please wait until the migration is finished" : "Migració en progrés. Si us plau, espereu fins que finalitzi la migració",
@@ -44,7 +41,6 @@
"All" : "Tots",
"Update to %s" : "Actualitzar a %s",
"No apps found for your version" : "No s'han trobat aplicacions per la seva versió",
- "Please wait...." : "Espereu...",
"Error while disabling app" : "Error en desactivar l'aplicació",
"Disable" : "Desactiva",
"Enable" : "Habilita",
@@ -150,7 +146,6 @@
"Hide description …" : "Amagar descripció...",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Aquesta aplicació no es pot instal·lar perquè les següents dependències no es compleixen:",
"Enable only for specific groups" : "Activa només per grups específics",
- "Uninstall App" : "Desinstal·la l'aplicació",
"Common Name" : "Nom comú",
"Valid until" : "Valid fins",
"Issued By" : "Emès Per",
@@ -204,7 +199,11 @@
"Default" : "Per defecte",
"log-level out of allowed range" : "Nivell d'autenticació fora del rang permès",
"Language changed" : "S'ha canviat l'idioma",
+ "Admins can't remove themself from the admin group" : "Els administradors no es poden eliminar del grup admin",
+ "Unable to add user to group %s" : "No es pot afegir l'usuari al grup %s",
+ "Unable to remove user from group %s" : "No es pot eliminar l'usuari del grup %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Esteu seguir que voleu afegir \"{domain}\" com a un domini de confiança?",
+ "Please wait...." : "Espereu...",
"Everything (fatal issues, errors, warnings, info, debug)" : "Tot (problemes fatals, errors, avisos, informació, depuració)",
"Info, warnings, errors and fatal issues" : "Informació, avisos, errors i problemes fatals",
"Warnings, errors and fatal issues" : "Avisos, errors i problemes fatals",
@@ -220,13 +219,9 @@
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "S'utilitza SQLite com a base de dades. Per a instal·lacions mes grans es recomana canviar a un altre sistema de base de dades.",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "L'ús de SQLite està desaconsellat especialment quan s'usa el client d'escriptori per sincronitzar els fitxers.",
"Experimental applications ahead" : "A partir d'aquest punt hi ha aplicacions experimentals",
+ "Uninstall App" : "Desinstal·la l'aplicació",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Què tal?,
aquest missatge és per fer-li saber que ara té uncompte %s.
El seu nom d'usuari: %s
Accedeixi en: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hola, què tal?,\n\nAquest missatge és per fer-li saber que ara té un compte %s.\n\n El seu nom d'usuari: %s\nAccedeixi en: %s\n\n",
- "Group" : "Grup",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Emmagatzemament extern",
- "Updates" : "Actualitzacions",
- "An error occurred: {message}" : "S'ha produït un error: {message}"
+ "Group" : "Grup"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/cs_CZ.js b/settings/l10n/cs_CZ.js
index c3ee85073fdfcf030483e1ab7f1c8360e1fa106f..ebc36fcd11997d9dfa82aac80bf617b654dc4314 100644
--- a/settings/l10n/cs_CZ.js
+++ b/settings/l10n/cs_CZ.js
@@ -25,12 +25,14 @@ OC.L10N.register(
"You need to set your user email before being able to send test emails." : "Pro možnost odeslání zkušebních emailů musíte nejprve nastavit svou emailovou adresu.",
"Invalid request" : "Neplatný požadavek",
"Invalid mail address" : "Neplatná emailová adresa",
+ "No valid group selected" : "Není vybrána platná skupina",
"A user with that name already exists." : "Uživatel tohoto jména již existuje.",
"Unable to create user." : "Nelze vytvořit uživatele.",
"Your %s account was created" : "Účet %s byl vytvořen",
"Unable to delete user." : "Nelze smazat uživatele.",
"Settings saved" : "Nastavení uloženo",
"Unable to change full name" : "Nelze změnit celé jméno",
+ "Unable to change email address" : "Nepodařilo se změnit e-mailovou adresu",
"Your full name has been changed." : "Vaše celé jméno bylo změněno.",
"Forbidden" : "Zakázáno",
"Invalid user" : "Neplatný uživatel",
@@ -38,9 +40,6 @@ OC.L10N.register(
"Email saved" : "Email uložen",
"Password confirmation is required" : "Je vyžadováno potvrzení hesla",
"Couldn't remove app." : "Nepodařilo se odebrat aplikaci.",
- "Admins can't remove themself from the admin group" : "Správci se nemohou odebrat sami ze skupiny správců",
- "Unable to add user to group %s" : "Nelze přidat uživatele do skupiny %s",
- "Unable to remove user from group %s" : "Nelze odebrat uživatele ze skupiny %s",
"Couldn't update app." : "Nelze aktualizovat aplikaci.",
"Are you really sure you want add {domain} as trusted domain?" : "Jste si jisti, že chcete přidat {domain} mezi důvěryhodné domény?",
"Add trusted domain" : "Přidat důvěryhodnou doménu",
@@ -57,7 +56,7 @@ OC.L10N.register(
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Oficiální aplikace jsou vyvíjeny komunitou. Poskytují klíčovou funkcionalitu a jsou připravené na produkční nasazení.",
"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é aplikace jsou vyvíjeny důvěryhodnými vývojáři a prošly zběžným bezpečnostním prověřením. Jsou aktivně udržovány v repozitáři s otevřeným kódem a jejich správci je považují za stabilní pro občasné až normální použití.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "U této aplikace nebyla provedena kontrola na bezpečnostní problémy. Aplikace je nová nebo nestabilní. Instalujte pouze na vlastní nebezpečí.",
- "Please wait...." : "Čekejte prosím...",
+ "Enabling app …" : "Povolování aplikace …",
"Error while disabling app" : "Chyba při zakazování aplikace",
"Disable" : "Zakázat",
"Enable" : "Povolit",
@@ -85,6 +84,8 @@ OC.L10N.register(
"Google Chrome" : "Google Chrome",
"Safari" : "Safari",
"Google Chrome for Android" : "Google Chrome pro Android",
+ "iPhone iOS" : "iPhone iOS",
+ "iPad iOS" : "iPad iOS",
"iOS Client" : "iOS klient",
"Android Client" : "Android klient",
"Sync client - {os}" : "Sync klient - {os}",
@@ -122,6 +123,8 @@ OC.L10N.register(
"undo" : "vrátit zpět",
"never" : "nikdy",
"deleted {userName}" : "smazán {userName}",
+ "Unable to add user to group {group}" : "Nelze přidat uživatele do skupiny {group}",
+ "Unable to remove user from group {group}" : "Nelze odebrat uživatele ze skupiny {group}",
"Add group" : "Přidat skupinu",
"Invalid quota value \"{val}\"" : "Neplatná hodnota kvóty \"{val}\"",
"no group" : "není ve skupině",
@@ -244,14 +247,16 @@ OC.L10N.register(
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Tato aplikace nemá nastavenou žádnou maximální verzi Nextcloudu. To se v budoucnu projeví jako chyba.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Tuto aplikaci nelze nainstalovat, protože nejsou splněny následující závislosti:",
"Enable only for specific groups" : "Povolit pouze pro vybrané skupiny",
- "Uninstall App" : "Odinstalovat aplikaci",
+ "Uninstall app" : "Odinstalovat aplikaci",
"SSL Root Certificates" : "Kořenové certifikáty SSL",
"Common Name" : "Common Name",
"Valid until" : "Platný do",
"Issued By" : "Vydal",
"Valid until %s" : "Platný do %s",
"Import root certificate" : "Import kořenového certifikátu",
+ "Hey there,
just letting you know that you now have a %s account.
Your username: %s
Access it: %s
" : "Vítej,
jen ti dáváme vědět, že nyní máš %s účet.
Tvé uživatelské jméno: %s
Přístup: %s
",
"Cheers!" : "Ať slouží!",
+ "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Vítej,\n\njen ti dáváme vědět, že nyní máš %s účet.\n\nTvé uživatelské jméno: %s\nPřístup: %s\n\n",
"Administrator documentation" : "Dokumentace administrátora",
"Online documentation" : "Online dokumentace",
"Forum" : "Fórum",
@@ -336,7 +341,11 @@ OC.L10N.register(
"Default" : "Výchozí",
"log-level out of allowed range" : "úroveň logování z povoleného rozpětí",
"Language changed" : "Jazyk byl změněn",
+ "Admins can't remove themself from the admin group" : "Správci se nemohou odebrat sami ze skupiny správců",
+ "Unable to add user to group %s" : "Nelze přidat uživatele do skupiny %s",
+ "Unable to remove user from group %s" : "Nelze odebrat uživatele ze skupiny %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Jste si jisti, že chcete přidat \"{domain}\" mezi důvěryhodné domény?",
+ "Please wait...." : "Čekejte prosím...",
"iPhone" : "iPhone",
"add group" : "přidat skupinu",
"Everything (fatal issues, errors, warnings, info, debug)" : "Vše (fatální problémy, chyby, varování, informační, ladící)",
@@ -356,6 +365,7 @@ OC.L10N.register(
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Obzvláště při používání klientské aplikace pro synchronizaci s desktopem není SQLite doporučeno.",
"Experimental applications ahead" : "Experimentální aplikace v pořadí",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimentální aplikace nejsou prověřovány na bezpečnostní chyby, mohou být nestabilní a velmi se měnit. Jejich instalací můžete způsobit ztrátu dat nebo bezpečnostní problémy.",
+ "Uninstall App" : "Odinstalovat aplikaci",
"Enable experimental apps" : "Povolit experimentální aplikace",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Ahoj,
toto je oznámení o nově vytvořeném %s účtu.
Uživatelské jméno: %s
Přihlásit se dá zde: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Ahoj,\n\ntoto je oznámení o nově vytvořeném %s účtu.\n\nUživatelské jméno: %s\nPřihlásit se dá zde: %s\n",
@@ -367,24 +377,6 @@ OC.L10N.register(
"Group Admin for" : "Správce skupiny pro",
"Storage Location" : "Úložiště dat",
"User Backend" : "Uživatelé vedeni pomocí",
- "Last Login" : "Poslední přihlášení",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Externí úložiště",
- "Updates" : "Aktualizace",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "Oficiální aplikace jsou vyvíjeny Nextcloud komunitou. Poskytují klíčové funkce Nextcloud a jsou připravené na produkční nasazení.",
- "No apps found for \"{query}\"" : "Nebyly nalezeny žádné aplikace pro \"{query}\"",
- "An error occurred: {message}" : "Nastala chyba: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Zkontrolujte prosím konfiguraci php podle instalační dokumentace ↗, hlavně při použití php-fpm.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Vaše databáze neběží s úrovní izolace transakcí \"READ COMMITED\". Toto může způsobit problémy při paralelním spouštění více akcí současně.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Server běží v prostředí Microsoft Windows. Pro optimální uživatelské pohodlí doporučujeme přejít na Linux.",
- "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 documentation ↗ for more information." : "Transakční uzamykání souborů je vypnuto, což může vést k problémům s \"race\" podmínkami. Pro zabránění těmto problémům povolte 'filelocking.enabled' v souboru config.php. Více informací lze nalézt v dokumentaci ↗.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Prosím překontrolujte instalační pokyny ↗ a zkontrolujte jakékoliv chyby a varování v logu.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "Šifrování samotné ještě negarantuje bezpečnost systému. Přečtěte si prosím Nextcloud dokumentaci, chcete-li se dozvědět více informací o tom, jak aplikace pro šifrování funguje a jaké jsou podporované případy použití.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Pro migraci na jinou databázi použijte v příkazovém řádku nástroj: 'occ db:convert-type' nebo nahlédněte do dokumentace ↗.",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Tato aplikace nemá nastavenou žádnou nejnižší podporovanou verzi Nextcloud. Toto bude hlášeno jako chyba ve verzi Nextcloud 11 a pozdější.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Tato aplikace nemá nastavenou žádnou nejvyšší podporovanou verzi Nextcloud. Toto bude hlášeno jako chyba ve verzi Nextcloud 11 a pozdější.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Chcete-li projekt podpořit\n\t\tpřipojte se k vývoji\n\t\tnebo\n\t\tpomáhejte ostatním uživatelům!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Vyvíjeno {communityopen}Nextcloud komunitou{linkclose}, {githubopen}zdrojový kód{linkclose} je licencován pod {licenseopen}AGPL{linkclose}."
+ "Last Login" : "Poslední přihlášení"
},
"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
diff --git a/settings/l10n/cs_CZ.json b/settings/l10n/cs_CZ.json
index 5deae26789057cf77da416f0ce3d595ddfad8626..7e73f9f69898f3ee77c3f87a3e77fc050413fa2f 100644
--- a/settings/l10n/cs_CZ.json
+++ b/settings/l10n/cs_CZ.json
@@ -23,12 +23,14 @@
"You need to set your user email before being able to send test emails." : "Pro možnost odeslání zkušebních emailů musíte nejprve nastavit svou emailovou adresu.",
"Invalid request" : "Neplatný požadavek",
"Invalid mail address" : "Neplatná emailová adresa",
+ "No valid group selected" : "Není vybrána platná skupina",
"A user with that name already exists." : "Uživatel tohoto jména již existuje.",
"Unable to create user." : "Nelze vytvořit uživatele.",
"Your %s account was created" : "Účet %s byl vytvořen",
"Unable to delete user." : "Nelze smazat uživatele.",
"Settings saved" : "Nastavení uloženo",
"Unable to change full name" : "Nelze změnit celé jméno",
+ "Unable to change email address" : "Nepodařilo se změnit e-mailovou adresu",
"Your full name has been changed." : "Vaše celé jméno bylo změněno.",
"Forbidden" : "Zakázáno",
"Invalid user" : "Neplatný uživatel",
@@ -36,9 +38,6 @@
"Email saved" : "Email uložen",
"Password confirmation is required" : "Je vyžadováno potvrzení hesla",
"Couldn't remove app." : "Nepodařilo se odebrat aplikaci.",
- "Admins can't remove themself from the admin group" : "Správci se nemohou odebrat sami ze skupiny správců",
- "Unable to add user to group %s" : "Nelze přidat uživatele do skupiny %s",
- "Unable to remove user from group %s" : "Nelze odebrat uživatele ze skupiny %s",
"Couldn't update app." : "Nelze aktualizovat aplikaci.",
"Are you really sure you want add {domain} as trusted domain?" : "Jste si jisti, že chcete přidat {domain} mezi důvěryhodné domény?",
"Add trusted domain" : "Přidat důvěryhodnou doménu",
@@ -55,7 +54,7 @@
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Oficiální aplikace jsou vyvíjeny komunitou. Poskytují klíčovou funkcionalitu a jsou připravené na produkční nasazení.",
"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é aplikace jsou vyvíjeny důvěryhodnými vývojáři a prošly zběžným bezpečnostním prověřením. Jsou aktivně udržovány v repozitáři s otevřeným kódem a jejich správci je považují za stabilní pro občasné až normální použití.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "U této aplikace nebyla provedena kontrola na bezpečnostní problémy. Aplikace je nová nebo nestabilní. Instalujte pouze na vlastní nebezpečí.",
- "Please wait...." : "Čekejte prosím...",
+ "Enabling app …" : "Povolování aplikace …",
"Error while disabling app" : "Chyba při zakazování aplikace",
"Disable" : "Zakázat",
"Enable" : "Povolit",
@@ -83,6 +82,8 @@
"Google Chrome" : "Google Chrome",
"Safari" : "Safari",
"Google Chrome for Android" : "Google Chrome pro Android",
+ "iPhone iOS" : "iPhone iOS",
+ "iPad iOS" : "iPad iOS",
"iOS Client" : "iOS klient",
"Android Client" : "Android klient",
"Sync client - {os}" : "Sync klient - {os}",
@@ -120,6 +121,8 @@
"undo" : "vrátit zpět",
"never" : "nikdy",
"deleted {userName}" : "smazán {userName}",
+ "Unable to add user to group {group}" : "Nelze přidat uživatele do skupiny {group}",
+ "Unable to remove user from group {group}" : "Nelze odebrat uživatele ze skupiny {group}",
"Add group" : "Přidat skupinu",
"Invalid quota value \"{val}\"" : "Neplatná hodnota kvóty \"{val}\"",
"no group" : "není ve skupině",
@@ -242,14 +245,16 @@
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Tato aplikace nemá nastavenou žádnou maximální verzi Nextcloudu. To se v budoucnu projeví jako chyba.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Tuto aplikaci nelze nainstalovat, protože nejsou splněny následující závislosti:",
"Enable only for specific groups" : "Povolit pouze pro vybrané skupiny",
- "Uninstall App" : "Odinstalovat aplikaci",
+ "Uninstall app" : "Odinstalovat aplikaci",
"SSL Root Certificates" : "Kořenové certifikáty SSL",
"Common Name" : "Common Name",
"Valid until" : "Platný do",
"Issued By" : "Vydal",
"Valid until %s" : "Platný do %s",
"Import root certificate" : "Import kořenového certifikátu",
+ "Hey there,
just letting you know that you now have a %s account.
Your username: %s
Access it: %s
" : "Vítej,
jen ti dáváme vědět, že nyní máš %s účet.
Tvé uživatelské jméno: %s
Přístup: %s
",
"Cheers!" : "Ať slouží!",
+ "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Vítej,\n\njen ti dáváme vědět, že nyní máš %s účet.\n\nTvé uživatelské jméno: %s\nPřístup: %s\n\n",
"Administrator documentation" : "Dokumentace administrátora",
"Online documentation" : "Online dokumentace",
"Forum" : "Fórum",
@@ -334,7 +339,11 @@
"Default" : "Výchozí",
"log-level out of allowed range" : "úroveň logování z povoleného rozpětí",
"Language changed" : "Jazyk byl změněn",
+ "Admins can't remove themself from the admin group" : "Správci se nemohou odebrat sami ze skupiny správců",
+ "Unable to add user to group %s" : "Nelze přidat uživatele do skupiny %s",
+ "Unable to remove user from group %s" : "Nelze odebrat uživatele ze skupiny %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Jste si jisti, že chcete přidat \"{domain}\" mezi důvěryhodné domény?",
+ "Please wait...." : "Čekejte prosím...",
"iPhone" : "iPhone",
"add group" : "přidat skupinu",
"Everything (fatal issues, errors, warnings, info, debug)" : "Vše (fatální problémy, chyby, varování, informační, ladící)",
@@ -354,6 +363,7 @@
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Obzvláště při používání klientské aplikace pro synchronizaci s desktopem není SQLite doporučeno.",
"Experimental applications ahead" : "Experimentální aplikace v pořadí",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimentální aplikace nejsou prověřovány na bezpečnostní chyby, mohou být nestabilní a velmi se měnit. Jejich instalací můžete způsobit ztrátu dat nebo bezpečnostní problémy.",
+ "Uninstall App" : "Odinstalovat aplikaci",
"Enable experimental apps" : "Povolit experimentální aplikace",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Ahoj,
toto je oznámení o nově vytvořeném %s účtu.
Uživatelské jméno: %s
Přihlásit se dá zde: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Ahoj,\n\ntoto je oznámení o nově vytvořeném %s účtu.\n\nUživatelské jméno: %s\nPřihlásit se dá zde: %s\n",
@@ -365,24 +375,6 @@
"Group Admin for" : "Správce skupiny pro",
"Storage Location" : "Úložiště dat",
"User Backend" : "Uživatelé vedeni pomocí",
- "Last Login" : "Poslední přihlášení",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Externí úložiště",
- "Updates" : "Aktualizace",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "Oficiální aplikace jsou vyvíjeny Nextcloud komunitou. Poskytují klíčové funkce Nextcloud a jsou připravené na produkční nasazení.",
- "No apps found for \"{query}\"" : "Nebyly nalezeny žádné aplikace pro \"{query}\"",
- "An error occurred: {message}" : "Nastala chyba: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Zkontrolujte prosím konfiguraci php podle instalační dokumentace ↗, hlavně při použití php-fpm.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Vaše databáze neběží s úrovní izolace transakcí \"READ COMMITED\". Toto může způsobit problémy při paralelním spouštění více akcí současně.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Server běží v prostředí Microsoft Windows. Pro optimální uživatelské pohodlí doporučujeme přejít na Linux.",
- "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 documentation ↗ for more information." : "Transakční uzamykání souborů je vypnuto, což může vést k problémům s \"race\" podmínkami. Pro zabránění těmto problémům povolte 'filelocking.enabled' v souboru config.php. Více informací lze nalézt v dokumentaci ↗.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Prosím překontrolujte instalační pokyny ↗ a zkontrolujte jakékoliv chyby a varování v logu.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "Šifrování samotné ještě negarantuje bezpečnost systému. Přečtěte si prosím Nextcloud dokumentaci, chcete-li se dozvědět více informací o tom, jak aplikace pro šifrování funguje a jaké jsou podporované případy použití.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Pro migraci na jinou databázi použijte v příkazovém řádku nástroj: 'occ db:convert-type' nebo nahlédněte do dokumentace ↗.",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Tato aplikace nemá nastavenou žádnou nejnižší podporovanou verzi Nextcloud. Toto bude hlášeno jako chyba ve verzi Nextcloud 11 a pozdější.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Tato aplikace nemá nastavenou žádnou nejvyšší podporovanou verzi Nextcloud. Toto bude hlášeno jako chyba ve verzi Nextcloud 11 a pozdější.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Chcete-li projekt podpořit\n\t\tpřipojte se k vývoji\n\t\tnebo\n\t\tpomáhejte ostatním uživatelům!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Vyvíjeno {communityopen}Nextcloud komunitou{linkclose}, {githubopen}zdrojový kód{linkclose} je licencován pod {licenseopen}AGPL{linkclose}."
+ "Last Login" : "Poslední přihlášení"
},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
}
\ No newline at end of file
diff --git a/settings/l10n/da.js b/settings/l10n/da.js
index 7879562cb115c77ec956cc732031e53284b3c945..474007513ced979d508931dedc524fd2945ea67e 100644
--- a/settings/l10n/da.js
+++ b/settings/l10n/da.js
@@ -36,9 +36,6 @@ OC.L10N.register(
"Unable to change mail address" : "Kan ikke ændre mailadresse",
"Email saved" : "E-mailadressen er gemt",
"Couldn't remove app." : "Kunne ikke fjerne app'en.",
- "Admins can't remove themself from the admin group" : "Administratorer kan ikke fjerne dem selv fra admin gruppen",
- "Unable to add user to group %s" : "Brugeren kan ikke tilføjes til gruppen %s",
- "Unable to remove user from group %s" : "Brugeren kan ikke fjernes fra gruppen %s",
"Couldn't update app." : "Kunne ikke opdatere app'en.",
"Add trusted domain" : "Tilføj et domæne som du har tillid til",
"Migration in progress. Please wait until the migration is finished" : "Immigration er i gang. Vent venligst indtil overflytningen er afsluttet",
@@ -50,7 +47,6 @@ OC.L10N.register(
"No apps found for your version" : "Ingen apps fundet til din verion",
"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." : "Godkendte programmer er udviklet af betroet udviklere som har bestået en let sikkerheds gennemgang. De er aktivt vedligeholdt i et åben kode lager og udviklerne vurdere programmet til at være stabilt for normalt brug.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Dette program er ikke kontrolleret for sikkerhedsproblemer, og er nyt eller kendt for at være ustabilt. Installer på eget ansvar.",
- "Please wait...." : "Vent venligst...",
"Error while disabling app" : "Kunne ikke deaktivere app",
"Disable" : "Deaktiver",
"Enable" : "Aktiver",
@@ -168,7 +164,6 @@ OC.L10N.register(
"Hide description …" : "Skjul beskrivelse",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Dette program kan ikke installeres, da følgende afhængigheder ikke imødekommes:",
"Enable only for specific groups" : "Aktivér kun for udvalgte grupper",
- "Uninstall App" : "Afinstallér app",
"Common Name" : "Almindeligt navn",
"Valid until" : "Gyldig indtil",
"Issued By" : "Udstedt af",
@@ -226,7 +221,11 @@ OC.L10N.register(
"Default" : "Standard",
"log-level out of allowed range" : "niveau for logregistrering går ud over tilladte interval",
"Language changed" : "Sprog ændret",
+ "Admins can't remove themself from the admin group" : "Administratorer kan ikke fjerne dem selv fra admin gruppen",
+ "Unable to add user to group %s" : "Brugeren kan ikke tilføjes til gruppen %s",
+ "Unable to remove user from group %s" : "Brugeren kan ikke fjernes fra gruppen %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Sikker på at du vil tilføje \"{domain}\" som et domæne du har tiilid til?",
+ "Please wait...." : "Vent venligst...",
"Everything (fatal issues, errors, warnings, info, debug)" : "Alt (alvorlige fejl, fejl, advarsler, info, debug)",
"Info, warnings, errors and fatal issues" : "Info, advarsler, fejl og alvorlige fejl",
"Warnings, errors and fatal issues" : "Advarsler, fejl og alvorlige fejl",
@@ -243,14 +242,10 @@ OC.L10N.register(
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Brug af SQLite frarådes især når skrivebordsklienten anvendes til filsynkronisering.",
"Experimental applications ahead" : "Kommende eksperimentale programmer",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Eksperimentale programmer er ikke undersøgt for sikkerheds problemer. Kendt for at være ustabil og stadig under intensiv udvikling. Installering af disse programmer kan medføre datatab og/eller udgøre en sikkerhedsrisiko.",
+ "Uninstall App" : "Afinstallér app",
"Enable experimental apps" : "Aktiver eksperimentale programmer",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hejsa,
dette er blot en besked om, at du nu har en %s-konto.
Dit brugernavn: %s
Tilgå den: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hejsa,\n\ndette er blot en besked om, at du nu har en %s-konto.\n\nDit brugernavn: %s\nTilgå den: %s\n\n",
- "Group" : "Gruppe",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Ekstern opbevaring",
- "Updates" : "Opdateringer",
- "An error occurred: {message}" : "Der opstod en fejl:{message}"
+ "Group" : "Gruppe"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/da.json b/settings/l10n/da.json
index 112eaa65253fa3b9dd3bcb8274b4b17766a54020..70af6ed51a07ab1e965e2c02ab5e9758ed8a8489 100644
--- a/settings/l10n/da.json
+++ b/settings/l10n/da.json
@@ -34,9 +34,6 @@
"Unable to change mail address" : "Kan ikke ændre mailadresse",
"Email saved" : "E-mailadressen er gemt",
"Couldn't remove app." : "Kunne ikke fjerne app'en.",
- "Admins can't remove themself from the admin group" : "Administratorer kan ikke fjerne dem selv fra admin gruppen",
- "Unable to add user to group %s" : "Brugeren kan ikke tilføjes til gruppen %s",
- "Unable to remove user from group %s" : "Brugeren kan ikke fjernes fra gruppen %s",
"Couldn't update app." : "Kunne ikke opdatere app'en.",
"Add trusted domain" : "Tilføj et domæne som du har tillid til",
"Migration in progress. Please wait until the migration is finished" : "Immigration er i gang. Vent venligst indtil overflytningen er afsluttet",
@@ -48,7 +45,6 @@
"No apps found for your version" : "Ingen apps fundet til din verion",
"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." : "Godkendte programmer er udviklet af betroet udviklere som har bestået en let sikkerheds gennemgang. De er aktivt vedligeholdt i et åben kode lager og udviklerne vurdere programmet til at være stabilt for normalt brug.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Dette program er ikke kontrolleret for sikkerhedsproblemer, og er nyt eller kendt for at være ustabilt. Installer på eget ansvar.",
- "Please wait...." : "Vent venligst...",
"Error while disabling app" : "Kunne ikke deaktivere app",
"Disable" : "Deaktiver",
"Enable" : "Aktiver",
@@ -166,7 +162,6 @@
"Hide description …" : "Skjul beskrivelse",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Dette program kan ikke installeres, da følgende afhængigheder ikke imødekommes:",
"Enable only for specific groups" : "Aktivér kun for udvalgte grupper",
- "Uninstall App" : "Afinstallér app",
"Common Name" : "Almindeligt navn",
"Valid until" : "Gyldig indtil",
"Issued By" : "Udstedt af",
@@ -224,7 +219,11 @@
"Default" : "Standard",
"log-level out of allowed range" : "niveau for logregistrering går ud over tilladte interval",
"Language changed" : "Sprog ændret",
+ "Admins can't remove themself from the admin group" : "Administratorer kan ikke fjerne dem selv fra admin gruppen",
+ "Unable to add user to group %s" : "Brugeren kan ikke tilføjes til gruppen %s",
+ "Unable to remove user from group %s" : "Brugeren kan ikke fjernes fra gruppen %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Sikker på at du vil tilføje \"{domain}\" som et domæne du har tiilid til?",
+ "Please wait...." : "Vent venligst...",
"Everything (fatal issues, errors, warnings, info, debug)" : "Alt (alvorlige fejl, fejl, advarsler, info, debug)",
"Info, warnings, errors and fatal issues" : "Info, advarsler, fejl og alvorlige fejl",
"Warnings, errors and fatal issues" : "Advarsler, fejl og alvorlige fejl",
@@ -241,14 +240,10 @@
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Brug af SQLite frarådes især når skrivebordsklienten anvendes til filsynkronisering.",
"Experimental applications ahead" : "Kommende eksperimentale programmer",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Eksperimentale programmer er ikke undersøgt for sikkerheds problemer. Kendt for at være ustabil og stadig under intensiv udvikling. Installering af disse programmer kan medføre datatab og/eller udgøre en sikkerhedsrisiko.",
+ "Uninstall App" : "Afinstallér app",
"Enable experimental apps" : "Aktiver eksperimentale programmer",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hejsa,
dette er blot en besked om, at du nu har en %s-konto.
Dit brugernavn: %s
Tilgå den: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hejsa,\n\ndette er blot en besked om, at du nu har en %s-konto.\n\nDit brugernavn: %s\nTilgå den: %s\n\n",
- "Group" : "Gruppe",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Ekstern opbevaring",
- "Updates" : "Opdateringer",
- "An error occurred: {message}" : "Der opstod en fejl:{message}"
+ "Group" : "Gruppe"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/de.js b/settings/l10n/de.js
index 2c72885908238fbf43bf555e06a44bbb75860382..fdbb8cab3b320d3be71878fb07eaf13fd7dee6c9 100644
--- a/settings/l10n/de.js
+++ b/settings/l10n/de.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"You need to set your user email before being able to send test emails." : "Zunächst muss die Benutzer-E-Mail-Adresse angegeben werden, bevor Test-E-Mails verschickt werden können.",
"Invalid request" : "Fehlerhafte Anfrage",
"Invalid mail address" : "Ungültige E-Mail-Adresse",
+ "No valid group selected" : "Keine gültige Gruppe ausgewählt",
"A user with that name already exists." : "Ein Benutzer mit diesem Namen existiert bereits.",
"Unable to create user." : "Benutzer konnte nicht erstellt werden.",
"Your %s account was created" : "Dein %s-Konto wurde erstellt",
@@ -39,13 +40,10 @@ OC.L10N.register(
"Email saved" : "E-Mail-Adresse gespeichert",
"Password confirmation is required" : "Passwortbestätigung ist erforderlich",
"Couldn't remove app." : "Die App konnte nicht entfernt werden.",
- "Admins can't remove themself from the admin group" : "Administratoren können sich nicht selbst aus der Admin-Gruppe löschen.",
- "Unable to add user to group %s" : "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden",
- "Unable to remove user from group %s" : "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden",
"Couldn't update app." : "Die App konnte nicht aktualisiert werden.",
"Are you really sure you want add {domain} as trusted domain?" : "Bist du sicher, dass du {domain} als vertrauenswürdige Domain hinzufügen möchtest?",
"Add trusted domain" : "Vertrauenswürdige Domain hinzufügen",
- "Migration in progress. Please wait until the migration is finished" : "Migration läuft. Bitte warte, bis die Migrationabgeschlossen ist",
+ "Migration in progress. Please wait until the migration is finished" : "Migration läuft. Bitte warte, bis die Migration abgeschlossen ist",
"Migration started …" : "Migration begonnen…",
"Not saved" : "Nicht gespeichert",
"Sending..." : "Senden…",
@@ -58,7 +56,7 @@ OC.L10N.register(
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Offizielle Apps werden von und innerhalb der Community entwickelt. Sie stellen die zentralen Funktionen bereit und sind für den produktiven Einsatz geeignet.",
"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." : "Geprüfte Apps werden von vertrauenswürdigen Entwicklern entwickelt und haben eine oberflächliche Sicherheitsprüfung durchlaufen. Sie werden innerhalb eines offenen Code-Repositorys aktiv gepflegt und ihre Betreuer erachten sie als stabil genug für für den gelegentlichen bis normalen Einsatz.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Diese App ist nicht auf Sicherheitsprobleme hin überprüft und ist neu oder bekanntermaßen instabil. Die Installation erfolgt auf eigenes Risiko.",
- "Please wait...." : "Bitte warten…",
+ "Enabling app …" : "Aktiviere App ...",
"Error while disabling app" : "Beim Deaktivieren der App ist ein Fehler aufgetreten",
"Disable" : "Deaktivieren",
"Enable" : "Aktivieren",
@@ -88,8 +86,8 @@ OC.L10N.register(
"Google Chrome for Android" : "Google Chrome für Android",
"iPhone iOS" : "iPhone iOS",
"iPad iOS" : "iPad iOS",
- "iOS Client" : "iOS Client",
- "Android Client" : "Android Client",
+ "iOS Client" : "iOS-Client",
+ "Android Client" : "Android-Client",
"Sync client - {os}" : "Sync-Client - {os}",
"This session" : "Diese Sitzung",
"Copy" : "Kopieren",
@@ -125,6 +123,8 @@ OC.L10N.register(
"undo" : "rückgängig machen",
"never" : "niemals",
"deleted {userName}" : "{userName} gelöscht",
+ "Unable to add user to group {group}" : "Benutzer kann nicht zur Gruppe {group} hinzugefügt werden ",
+ "Unable to remove user from group {group}" : "Benutzer kann nicht aus der Gruppe {group} entfernt werden ",
"Add group" : "Gruppe hinzufügen",
"Invalid quota value \"{val}\"" : "Ungültiger Grenzwert \"{val}\"",
"no group" : "Keine Gruppe",
@@ -139,7 +139,7 @@ OC.L10N.register(
"Unlimited" : "Unbegrenzt",
"Personal info" : "Persönliche Informationen",
"Sessions" : "Sitzungen",
- "App passwords" : "App-Passwörter",
+ "App passwords" : "App-PINs",
"Sync clients" : "Sync-Clients",
"None" : "Nichts",
"Login" : "Anmelden",
@@ -247,7 +247,7 @@ OC.L10N.register(
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine obere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Die App kann nicht installiert werden, weil die folgenden Abhängigkeiten nicht erfüllt sind:",
"Enable only for specific groups" : "Nur für bestimmte Gruppen aktivieren",
- "Uninstall App" : "App deinstallieren",
+ "Uninstall app" : "App deinstallieren",
"SSL Root Certificates" : "SSL Root Zertifikate",
"Common Name" : "Allgemeiner Name",
"Valid until" : "Gültig bis",
@@ -276,7 +276,7 @@ OC.L10N.register(
"Email" : "E-Mail",
"Your email address" : "Deine E-Mail-Adresse",
"No email address set" : "Keine E-Mail-Adresse angegeben",
- "For password recovery and notifications" : "Für Passwort Wiederherstellung und Benachrichtigungen",
+ "For password recovery and notifications" : "Für Passwort-Wiederherstellung und Benachrichtigungen",
"Phone number" : "Telefonnummer",
"Your phone number" : "Deine Telefonnummer",
"Address" : "Adresse",
@@ -341,7 +341,11 @@ OC.L10N.register(
"Default" : "Standard",
"log-level out of allowed range" : "Log-Level außerhalb des erlaubten Bereichs",
"Language changed" : "Sprache geändert",
+ "Admins can't remove themself from the admin group" : "Administratoren können sich nicht selbst aus der Admin-Gruppe löschen.",
+ "Unable to add user to group %s" : "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden",
+ "Unable to remove user from group %s" : "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Bist du sicher, dass du „{domain}“ als vertrauenswürdige Domain hinzufügen möchtest?",
+ "Please wait...." : "Bitte warten…",
"iPhone" : "iPhone",
"add group" : "Gruppe hinzufügen",
"Everything (fatal issues, errors, warnings, info, debug)" : "Alles (fatale Probleme, Fehler, Warnungen, Infos, Debug-Meldungen)",
@@ -361,6 +365,7 @@ OC.L10N.register(
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Insbesondere bei der Nutzung des Desktop Clients zur Dateisynchronisierung wird vom Einsatz von SQLite abgeraten.",
"Experimental applications ahead" : "Experimentelle Apps nachfolgend",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimentelle Apps sind nicht auf Sicherheitsprobleme hin überprüft, sind neu oder bekanntermaßen instabil und befinden sich in intensiver Entwicklung. Ihre Installation kann Datenverlust oder Sicherheitslücken hervorrufen.",
+ "Uninstall App" : "App deinstallieren",
"Enable experimental apps" : "Experimentelle Apps aktivieren",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hallo,
hier nur kurz die Mitteilung, dass du jetzt ein %s-Konto hast.
Dein Benutzername: %s
Zugriff: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hallo,\n\nhier nur kurz die Mitteilung, dass du jetzt ein %s-Konto hast.\n\nDein Benutzername: %s\nLoslegen: %s\n\n",
@@ -372,24 +377,6 @@ OC.L10N.register(
"Group Admin for" : "Gruppenadministrator für",
"Storage Location" : "Speicherort",
"User Backend" : "Benutzer-Backend",
- "Last Login" : "Letzte Anmeldung",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Externer Speicher",
- "Updates" : "Updates",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "Offizielle Apps werden von und innerhalb der Community entwickelt. Sie stellen die zentralen Funktionen bereit und sind für den produktiven Einsatz geeignet.",
- "No apps found for \"{query}\"" : "Keine Applikationen für \"{query}\" gefunden",
- "An error occurred: {message}" : "Ein Fehler ist aufgetreten: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Bitte die Installationsdokumentation ↗auf Hinweise zur PHP-Konfiguration durchlesen, sowie die PHP-Konfiguration des Servers überprüfen, insbesondere dann, wenn PHP-FPM eingesetzt wird.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Deine Datenbank läuft nicht mit der \"READ COMMITED\" Transaktionsisolationsstufe. Dies kann Probleme hervorrufen, wenn mehrere Aktionen parallel ausgeführt werden.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Dein Server wird mit Microsoft Windows betrieben. Für ein optimales Nutzungserlebnis empfehlen wir dringend Linux.",
- "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 documentation ↗ for more information." : "Transaktionales Sperren ist deaktiviert, was zu Problemen mit Laufzeitbedingungen führen kann. 'filelocking.enabled' in der config.php aktivieren, um diese Probleme zu vermeiden. Weitere Informationen findest du in unserer Dokumentation ↗.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Bitte überprüfe noch einmal die Installationsanleitungen ↗ und kontrolliere das Log auf mögliche Fehler oder Warnungen.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "Verschlüsselung alleine garantiert nicht die Systemsicherheit. Bitte lesen Sie in der Dokumentation nach, wie die Verschlüsselungs-App funktioniert und welche Anwendungsfälle unterstützt werden.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Um zu einer anderen Datenbank zu migrieren, benutze bitte die Kommandozeile: 'occ db:convert-type', oder in die Dokumentation ↗ schauen.",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Für diese App wurde keine untere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Für diese App wurde keine obere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Wenn du das Projekt unterstützen möchtest\n⇥⇥hilf uns bei der Weiterentwicklung\n⇥⇥oder\n⇥⇥hilf anderen Nutzern!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Entwickelt von der {communityopen}Nextcloud Community{linkclose}. Der {githubopen}Quellcode{linkclose} ist unter {licenseopen}AGPL{linkclose} verfügbar."
+ "Last Login" : "Letzte Anmeldung"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/de.json b/settings/l10n/de.json
index 349c71916f02840b5239f53444c33dd53486ee79..b451209d753234792075280a913bdf286e6d239e 100644
--- a/settings/l10n/de.json
+++ b/settings/l10n/de.json
@@ -23,6 +23,7 @@
"You need to set your user email before being able to send test emails." : "Zunächst muss die Benutzer-E-Mail-Adresse angegeben werden, bevor Test-E-Mails verschickt werden können.",
"Invalid request" : "Fehlerhafte Anfrage",
"Invalid mail address" : "Ungültige E-Mail-Adresse",
+ "No valid group selected" : "Keine gültige Gruppe ausgewählt",
"A user with that name already exists." : "Ein Benutzer mit diesem Namen existiert bereits.",
"Unable to create user." : "Benutzer konnte nicht erstellt werden.",
"Your %s account was created" : "Dein %s-Konto wurde erstellt",
@@ -37,13 +38,10 @@
"Email saved" : "E-Mail-Adresse gespeichert",
"Password confirmation is required" : "Passwortbestätigung ist erforderlich",
"Couldn't remove app." : "Die App konnte nicht entfernt werden.",
- "Admins can't remove themself from the admin group" : "Administratoren können sich nicht selbst aus der Admin-Gruppe löschen.",
- "Unable to add user to group %s" : "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden",
- "Unable to remove user from group %s" : "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden",
"Couldn't update app." : "Die App konnte nicht aktualisiert werden.",
"Are you really sure you want add {domain} as trusted domain?" : "Bist du sicher, dass du {domain} als vertrauenswürdige Domain hinzufügen möchtest?",
"Add trusted domain" : "Vertrauenswürdige Domain hinzufügen",
- "Migration in progress. Please wait until the migration is finished" : "Migration läuft. Bitte warte, bis die Migrationabgeschlossen ist",
+ "Migration in progress. Please wait until the migration is finished" : "Migration läuft. Bitte warte, bis die Migration abgeschlossen ist",
"Migration started …" : "Migration begonnen…",
"Not saved" : "Nicht gespeichert",
"Sending..." : "Senden…",
@@ -56,7 +54,7 @@
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Offizielle Apps werden von und innerhalb der Community entwickelt. Sie stellen die zentralen Funktionen bereit und sind für den produktiven Einsatz geeignet.",
"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." : "Geprüfte Apps werden von vertrauenswürdigen Entwicklern entwickelt und haben eine oberflächliche Sicherheitsprüfung durchlaufen. Sie werden innerhalb eines offenen Code-Repositorys aktiv gepflegt und ihre Betreuer erachten sie als stabil genug für für den gelegentlichen bis normalen Einsatz.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Diese App ist nicht auf Sicherheitsprobleme hin überprüft und ist neu oder bekanntermaßen instabil. Die Installation erfolgt auf eigenes Risiko.",
- "Please wait...." : "Bitte warten…",
+ "Enabling app …" : "Aktiviere App ...",
"Error while disabling app" : "Beim Deaktivieren der App ist ein Fehler aufgetreten",
"Disable" : "Deaktivieren",
"Enable" : "Aktivieren",
@@ -86,8 +84,8 @@
"Google Chrome for Android" : "Google Chrome für Android",
"iPhone iOS" : "iPhone iOS",
"iPad iOS" : "iPad iOS",
- "iOS Client" : "iOS Client",
- "Android Client" : "Android Client",
+ "iOS Client" : "iOS-Client",
+ "Android Client" : "Android-Client",
"Sync client - {os}" : "Sync-Client - {os}",
"This session" : "Diese Sitzung",
"Copy" : "Kopieren",
@@ -123,6 +121,8 @@
"undo" : "rückgängig machen",
"never" : "niemals",
"deleted {userName}" : "{userName} gelöscht",
+ "Unable to add user to group {group}" : "Benutzer kann nicht zur Gruppe {group} hinzugefügt werden ",
+ "Unable to remove user from group {group}" : "Benutzer kann nicht aus der Gruppe {group} entfernt werden ",
"Add group" : "Gruppe hinzufügen",
"Invalid quota value \"{val}\"" : "Ungültiger Grenzwert \"{val}\"",
"no group" : "Keine Gruppe",
@@ -137,7 +137,7 @@
"Unlimited" : "Unbegrenzt",
"Personal info" : "Persönliche Informationen",
"Sessions" : "Sitzungen",
- "App passwords" : "App-Passwörter",
+ "App passwords" : "App-PINs",
"Sync clients" : "Sync-Clients",
"None" : "Nichts",
"Login" : "Anmelden",
@@ -245,7 +245,7 @@
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine obere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Die App kann nicht installiert werden, weil die folgenden Abhängigkeiten nicht erfüllt sind:",
"Enable only for specific groups" : "Nur für bestimmte Gruppen aktivieren",
- "Uninstall App" : "App deinstallieren",
+ "Uninstall app" : "App deinstallieren",
"SSL Root Certificates" : "SSL Root Zertifikate",
"Common Name" : "Allgemeiner Name",
"Valid until" : "Gültig bis",
@@ -274,7 +274,7 @@
"Email" : "E-Mail",
"Your email address" : "Deine E-Mail-Adresse",
"No email address set" : "Keine E-Mail-Adresse angegeben",
- "For password recovery and notifications" : "Für Passwort Wiederherstellung und Benachrichtigungen",
+ "For password recovery and notifications" : "Für Passwort-Wiederherstellung und Benachrichtigungen",
"Phone number" : "Telefonnummer",
"Your phone number" : "Deine Telefonnummer",
"Address" : "Adresse",
@@ -339,7 +339,11 @@
"Default" : "Standard",
"log-level out of allowed range" : "Log-Level außerhalb des erlaubten Bereichs",
"Language changed" : "Sprache geändert",
+ "Admins can't remove themself from the admin group" : "Administratoren können sich nicht selbst aus der Admin-Gruppe löschen.",
+ "Unable to add user to group %s" : "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden",
+ "Unable to remove user from group %s" : "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Bist du sicher, dass du „{domain}“ als vertrauenswürdige Domain hinzufügen möchtest?",
+ "Please wait...." : "Bitte warten…",
"iPhone" : "iPhone",
"add group" : "Gruppe hinzufügen",
"Everything (fatal issues, errors, warnings, info, debug)" : "Alles (fatale Probleme, Fehler, Warnungen, Infos, Debug-Meldungen)",
@@ -359,6 +363,7 @@
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Insbesondere bei der Nutzung des Desktop Clients zur Dateisynchronisierung wird vom Einsatz von SQLite abgeraten.",
"Experimental applications ahead" : "Experimentelle Apps nachfolgend",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimentelle Apps sind nicht auf Sicherheitsprobleme hin überprüft, sind neu oder bekanntermaßen instabil und befinden sich in intensiver Entwicklung. Ihre Installation kann Datenverlust oder Sicherheitslücken hervorrufen.",
+ "Uninstall App" : "App deinstallieren",
"Enable experimental apps" : "Experimentelle Apps aktivieren",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hallo,
hier nur kurz die Mitteilung, dass du jetzt ein %s-Konto hast.
Dein Benutzername: %s
Zugriff: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hallo,\n\nhier nur kurz die Mitteilung, dass du jetzt ein %s-Konto hast.\n\nDein Benutzername: %s\nLoslegen: %s\n\n",
@@ -370,24 +375,6 @@
"Group Admin for" : "Gruppenadministrator für",
"Storage Location" : "Speicherort",
"User Backend" : "Benutzer-Backend",
- "Last Login" : "Letzte Anmeldung",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Externer Speicher",
- "Updates" : "Updates",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "Offizielle Apps werden von und innerhalb der Community entwickelt. Sie stellen die zentralen Funktionen bereit und sind für den produktiven Einsatz geeignet.",
- "No apps found for \"{query}\"" : "Keine Applikationen für \"{query}\" gefunden",
- "An error occurred: {message}" : "Ein Fehler ist aufgetreten: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Bitte die Installationsdokumentation ↗auf Hinweise zur PHP-Konfiguration durchlesen, sowie die PHP-Konfiguration des Servers überprüfen, insbesondere dann, wenn PHP-FPM eingesetzt wird.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Deine Datenbank läuft nicht mit der \"READ COMMITED\" Transaktionsisolationsstufe. Dies kann Probleme hervorrufen, wenn mehrere Aktionen parallel ausgeführt werden.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Dein Server wird mit Microsoft Windows betrieben. Für ein optimales Nutzungserlebnis empfehlen wir dringend Linux.",
- "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 documentation ↗ for more information." : "Transaktionales Sperren ist deaktiviert, was zu Problemen mit Laufzeitbedingungen führen kann. 'filelocking.enabled' in der config.php aktivieren, um diese Probleme zu vermeiden. Weitere Informationen findest du in unserer Dokumentation ↗.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Bitte überprüfe noch einmal die Installationsanleitungen ↗ und kontrolliere das Log auf mögliche Fehler oder Warnungen.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "Verschlüsselung alleine garantiert nicht die Systemsicherheit. Bitte lesen Sie in der Dokumentation nach, wie die Verschlüsselungs-App funktioniert und welche Anwendungsfälle unterstützt werden.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Um zu einer anderen Datenbank zu migrieren, benutze bitte die Kommandozeile: 'occ db:convert-type', oder in die Dokumentation ↗ schauen.",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Für diese App wurde keine untere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Für diese App wurde keine obere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Wenn du das Projekt unterstützen möchtest\n⇥⇥hilf uns bei der Weiterentwicklung\n⇥⇥oder\n⇥⇥hilf anderen Nutzern!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Entwickelt von der {communityopen}Nextcloud Community{linkclose}. Der {githubopen}Quellcode{linkclose} ist unter {licenseopen}AGPL{linkclose} verfügbar."
+ "Last Login" : "Letzte Anmeldung"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/de_DE.js b/settings/l10n/de_DE.js
index 97b3efdcdb2961679576215a1067694bdcc4be9c..edb78c317c5663bb5ddeb197b77cce036b0bb9a9 100644
--- a/settings/l10n/de_DE.js
+++ b/settings/l10n/de_DE.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"You need to set your user email before being able to send test emails." : "Sie müssen Ihre Benutzer-E-Mail-Adresse einstellen, bevor Sie Test-E-Mails versenden können.",
"Invalid request" : "Ungültige Anforderung",
"Invalid mail address" : "Ungültige E-Mail-Adresse",
+ "No valid group selected" : "Keine gültige Gruppe ausgewählt",
"A user with that name already exists." : "Ein Benutzer mit diesem Namen existiert bereits.",
"Unable to create user." : "Benutzer konnte nicht erstellt werden.",
"Your %s account was created" : "Ihr %s-Konto wurde erstellt",
@@ -39,9 +40,6 @@ OC.L10N.register(
"Email saved" : "E-Mail-Adresse gespeichert",
"Password confirmation is required" : "Passwortbestätigung ist erforderlich",
"Couldn't remove app." : "Die App konnte nicht entfernt werden.",
- "Admins can't remove themself from the admin group" : "Administratoren können sich nicht selbst aus der admin-Gruppe löschen",
- "Unable to add user to group %s" : "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden",
- "Unable to remove user from group %s" : "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden",
"Couldn't update app." : "Die App konnte nicht aktualisiert werden.",
"Are you really sure you want add {domain} as trusted domain?" : "Sind Sie sich wirklich sicher, dass Sie {domain} als vertrauenswürdige Domain hinzufügen möchten?",
"Add trusted domain" : "Vertrauenswürdige Domain hinzufügen",
@@ -52,13 +50,13 @@ OC.L10N.register(
"Official" : "Offiziell",
"All" : "Alle",
"Update to %s" : "Aktualisierung auf %s",
- "_You have %n app update pending_::_You have %n app updates pending_" : ["Sie haben %n Aktualisierung verfügbar","Es sind %n App-Aktualisierungen für Sie verfügbar"],
+ "_You have %n app update pending_::_You have %n app updates pending_" : ["Es ist %n App-Aktualisierung verfügbar","Es sind %n App-Aktualisierungen verfügbar"],
"No apps found for your version" : "Es wurden keine Apps für Ihre Version gefunden",
"The app will be downloaded from the app store" : "Die App wird aus dem App-Store heruntergeladen",
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Offizielle Apps werden von und innerhalb der Community entwickelt. Sie stellen die zentralen Funktionen bereit und sind für den produktiven Einsatz geeignet.",
"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." : "Geprüfte Apps werden von vertrauenswürdigen Entwicklern entwickelt und haben eine oberflächliche Sicherheitsprüfung durchlaufen. Sie werden innerhalb eines offenen Code-Repositorys aktiv gepflegt und ihre Betreuer erachten sie als stabil genug für für den gelegentlichen bis normalen Einsatz.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Diese App ist nicht auf Sicherheitsprobleme hin überprüft und ist neu oder bekanntermaßen instabil. Die Installation erfolgt auf eigenes Risiko.",
- "Please wait...." : "Bitte warten…",
+ "Enabling app …" : "Aktiviere App ...",
"Error while disabling app" : "Beim Deaktivieren der App ist ein Fehler aufgetreten",
"Disable" : "Deaktivieren",
"Enable" : "Aktivieren",
@@ -125,6 +123,8 @@ OC.L10N.register(
"undo" : "rückgängig machen",
"never" : "niemals",
"deleted {userName}" : "{userName} gelöscht",
+ "Unable to add user to group {group}" : "Benutzer kann nicht zur Gruppe {group} hinzugefügt werden ",
+ "Unable to remove user from group {group}" : "Benutzer kann nicht aus der Gruppe {group} entfernt werden ",
"Add group" : "Gruppe hinzufügen",
"Invalid quota value \"{val}\"" : "Ungültiger Grenzwert \"{val}\"",
"no group" : "Keine Gruppe",
@@ -139,7 +139,7 @@ OC.L10N.register(
"Unlimited" : "Unbegrenzt",
"Personal info" : "Persönliche Informationen",
"Sessions" : "Sitzungen",
- "App passwords" : "App-Passwörter",
+ "App passwords" : "App-PINs",
"Sync clients" : "Sync-Clients",
"None" : "Keine",
"Login" : "Anmelden",
@@ -198,8 +198,8 @@ OC.L10N.register(
"Cron" : "Cron",
"Last cron job execution: %s." : "Letzte Cron-Job-Ausführung: %s.",
"Last cron job execution: %s. Something seems wrong." : "Letzte Cron-Job-Ausführung: %s. Möglicherweise liegt ein Fehler vor.",
- "Cron was not executed yet!" : "Cron wurde bis jetzt noch nicht ausgeführt!",
- "Execute one task with each page loaded" : "Eine Aufgabe bei jedem Laden der Seite ausführen",
+ "Cron was not executed yet!" : "Cron wurde bislang noch nicht ausgeführt!",
+ "Execute one task with each page loaded" : "Eine Aufgabe bei jedem Laden einer Seite ausführen",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Benutzen Sie den systemeigenen Cron-Dienst, um die cron.php alle 15 Minuten aufzurufen.",
"The cron.php needs to be executed by the system user \"%s\"." : "Die cron.php muss durch den Systemnutzer \"%s\" ausgeführt werden.",
@@ -236,18 +236,18 @@ OC.L10N.register(
"by %s" : "von %s",
"%s-licensed" : "%s-Lizensiert",
"Documentation:" : "Dokumentation:",
- "User documentation" : "Dokumentation für Benutzer",
- "Admin documentation" : "Dokumentation für Administratoren",
+ "User documentation" : "Benutzer-Dokumentation",
+ "Admin documentation" : "Administratoren-Dokumentation",
"Visit website" : "Webseite besuchen",
"Report a bug" : "Melden Sie einen technischen Fehler",
"Show description …" : "Beschreibung anzeigen…",
"Hide description …" : "Beschreibung ausblenden…",
- "This app has an update available." : "Es ist eine Aktualisierung für diese Anwendung verfügbar.",
+ "This app has an update available." : "Für diese Anwendung ist eine Aktualisierung verfügbar.",
"This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine untere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.",
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine obere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Diese App kann nicht installiert werden, weil die folgenden Abhängigkeiten nicht erfüllt sind:",
"Enable only for specific groups" : "Nur für bestimmte Gruppen aktivieren",
- "Uninstall App" : "App deinstallieren",
+ "Uninstall app" : "App deinstallieren",
"SSL Root Certificates" : "SSL Root Zertifikate",
"Common Name" : "Allgemeiner Name",
"Valid until" : "Gültig bis",
@@ -276,7 +276,7 @@ OC.L10N.register(
"Email" : "E-Mail",
"Your email address" : "Ihre E-Mail-Adresse",
"No email address set" : "Keine E-Mail-Adresse angegeben",
- "For password recovery and notifications" : "Für Passwort Wiederherstellung und Benachrichtigungen",
+ "For password recovery and notifications" : "Für Passwort-Wiederherstellung und Benachrichtigungen",
"Phone number" : "Telefonnummer",
"Your phone number" : "Ihre Telefonnummer",
"Address" : "Adresse",
@@ -341,7 +341,11 @@ OC.L10N.register(
"Default" : "Standard",
"log-level out of allowed range" : "Log-Level außerhalb des erlaubten Bereichs",
"Language changed" : "Sprache geändert",
+ "Admins can't remove themself from the admin group" : "Administratoren können sich nicht selbst aus der admin-Gruppe löschen",
+ "Unable to add user to group %s" : "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden",
+ "Unable to remove user from group %s" : "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Sind Sie sich wirklich sicher, dass Sie »{domain}« als vertrauenswürdige Domain hinzufügen möchten?",
+ "Please wait...." : "Bitte warten…",
"iPhone" : "iPhone",
"add group" : "Gruppe hinzufügen",
"Everything (fatal issues, errors, warnings, info, debug)" : "Alles (fatale Probleme, Fehler, Warnungen, Infos, Fehlerdiagnose)",
@@ -361,6 +365,7 @@ OC.L10N.register(
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Insbesondere bei der Nutzung des Desktop Clients zur Dateisynchronisierung wird vom Einsatz von SQLite abgeraten.",
"Experimental applications ahead" : "Experimentelle Apps nachfolgend",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimentelle Apps sind nicht auf Sicherheitsprobleme hin überprüft, sind neu oder bekanntermaßen instabil und befinden sich in intensiver Entwicklung. Ihre Installation kann Datenverlust oder Sicherheitslücken hervorrufen.",
+ "Uninstall App" : "App deinstallieren",
"Enable experimental apps" : "Experimentelle Apps aktivieren",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hallo,
hier nur kurz die Mitteilung, dass Sie jetzt ein %s-Konto haben.
Ihr Benutzername: %s
Greifen Sie darauf zu: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hallo,\n\nhier nur kurz die Mitteilung, dass Sie jetzt ein %s-Konto haben.\n\nIhr Benutzername: %s\nGreifen Sie darauf zu: %s\n\n",
@@ -372,24 +377,6 @@ OC.L10N.register(
"Group Admin for" : "Gruppenadministrator für",
"Storage Location" : "Speicherort",
"User Backend" : "Benutzer-Backend",
- "Last Login" : "Letzte Anmeldung",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Externer Speicher",
- "Updates" : "Updates",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "Offizielle Apps werden von und innerhalb der Nextcloud-Community entwickelt. Sie stellen die zentralen Funktionen bereit und sind für den produktiven Einsatz geeignet.",
- "No apps found for \"{query}\"" : "Keine Applikationen für \"{query}\" gefunden",
- "An error occurred: {message}" : "Ein Fehler ist aufgetreten: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Bitte schauen Sie in der Installationsdokumentation ↗auf Hinweise zur PHP-Konfiguration, sowie die PHP-Konfiguration ihres Servers, insbesondere dann, wenn Sie PHP-FPM einsetzen.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "ihre Datenbank läuft nicht mit der \"READ COMMITED\" Transaktionsisolationsstufe. Dies kann Probleme hervorrufen, wenn mehrere Aktionen parallel ausgeführt werden.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Ihr Server wird mit Microsoft Windows betrieben. Für ein optimales Nutzungserlebnis empfehlen wir dringend Linux.",
- "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 documentation ↗ for more information." : "Transaktionales Sperren ist deaktiviert, was zu Problemen mit Laufzeitbedingungen führen kann. Aktivieren Sie 'filelocking.enabled' in der config.php diese Probleme zu vermeiden. Weitere Informationen finden Sie in unserer Dokumentation ↗.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Bitte überprüfen Sie noch einmal die Installationsanleitungen ↗ und kontrollieren Sie das Log auf mögliche Fehler oder Warnungen.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "Verschlüsselung alleine garantiert nicht die Systemsicherheit. Bitte lesen Sie in der Dokumentation nach, wie die Verschlüsselungs-App funktioniert und welche Anwendungsfälle unterstützt werden.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Um zu einer anderen Datenbank zu migrieren, benutzen Sie bitte die Kommandozeile: 'occ db:convert-type', oder in die Dokumentation ↗ schauen.",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Für diese App wurde keine untere Versionsgrenze für Nextcloud gesetzt. Dies wird ab Nextcloud 11 als Fehler behandelt.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Für diese App wurde keine obere Versionsgrenze für Nextcloud gesetzt. Dies wird ab Nextcloud 11 als Fehler behandelt.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Wenn Sie das Projekt unterstützen möchten\n⇥⇥helfen Sie uns bei der Weiterentwicklung\n⇥⇥oder\n⇥⇥helfen Sie anderen Nutzern!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Entwickelt von der {communityopen}Nextcloud Community{linkclose}. Der {githubopen}Quellcode{linkclose} ist unter {licenseopen}AGPL{linkclose} verfügbar."
+ "Last Login" : "Letzte Anmeldung"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/de_DE.json b/settings/l10n/de_DE.json
index ca67df83f5d31a329411f8aebbc8320ef87815ff..b52a89d8a412a42060f012b99a27ea2d393dda82 100644
--- a/settings/l10n/de_DE.json
+++ b/settings/l10n/de_DE.json
@@ -23,6 +23,7 @@
"You need to set your user email before being able to send test emails." : "Sie müssen Ihre Benutzer-E-Mail-Adresse einstellen, bevor Sie Test-E-Mails versenden können.",
"Invalid request" : "Ungültige Anforderung",
"Invalid mail address" : "Ungültige E-Mail-Adresse",
+ "No valid group selected" : "Keine gültige Gruppe ausgewählt",
"A user with that name already exists." : "Ein Benutzer mit diesem Namen existiert bereits.",
"Unable to create user." : "Benutzer konnte nicht erstellt werden.",
"Your %s account was created" : "Ihr %s-Konto wurde erstellt",
@@ -37,9 +38,6 @@
"Email saved" : "E-Mail-Adresse gespeichert",
"Password confirmation is required" : "Passwortbestätigung ist erforderlich",
"Couldn't remove app." : "Die App konnte nicht entfernt werden.",
- "Admins can't remove themself from the admin group" : "Administratoren können sich nicht selbst aus der admin-Gruppe löschen",
- "Unable to add user to group %s" : "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden",
- "Unable to remove user from group %s" : "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden",
"Couldn't update app." : "Die App konnte nicht aktualisiert werden.",
"Are you really sure you want add {domain} as trusted domain?" : "Sind Sie sich wirklich sicher, dass Sie {domain} als vertrauenswürdige Domain hinzufügen möchten?",
"Add trusted domain" : "Vertrauenswürdige Domain hinzufügen",
@@ -50,13 +48,13 @@
"Official" : "Offiziell",
"All" : "Alle",
"Update to %s" : "Aktualisierung auf %s",
- "_You have %n app update pending_::_You have %n app updates pending_" : ["Sie haben %n Aktualisierung verfügbar","Es sind %n App-Aktualisierungen für Sie verfügbar"],
+ "_You have %n app update pending_::_You have %n app updates pending_" : ["Es ist %n App-Aktualisierung verfügbar","Es sind %n App-Aktualisierungen verfügbar"],
"No apps found for your version" : "Es wurden keine Apps für Ihre Version gefunden",
"The app will be downloaded from the app store" : "Die App wird aus dem App-Store heruntergeladen",
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Offizielle Apps werden von und innerhalb der Community entwickelt. Sie stellen die zentralen Funktionen bereit und sind für den produktiven Einsatz geeignet.",
"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." : "Geprüfte Apps werden von vertrauenswürdigen Entwicklern entwickelt und haben eine oberflächliche Sicherheitsprüfung durchlaufen. Sie werden innerhalb eines offenen Code-Repositorys aktiv gepflegt und ihre Betreuer erachten sie als stabil genug für für den gelegentlichen bis normalen Einsatz.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Diese App ist nicht auf Sicherheitsprobleme hin überprüft und ist neu oder bekanntermaßen instabil. Die Installation erfolgt auf eigenes Risiko.",
- "Please wait...." : "Bitte warten…",
+ "Enabling app …" : "Aktiviere App ...",
"Error while disabling app" : "Beim Deaktivieren der App ist ein Fehler aufgetreten",
"Disable" : "Deaktivieren",
"Enable" : "Aktivieren",
@@ -123,6 +121,8 @@
"undo" : "rückgängig machen",
"never" : "niemals",
"deleted {userName}" : "{userName} gelöscht",
+ "Unable to add user to group {group}" : "Benutzer kann nicht zur Gruppe {group} hinzugefügt werden ",
+ "Unable to remove user from group {group}" : "Benutzer kann nicht aus der Gruppe {group} entfernt werden ",
"Add group" : "Gruppe hinzufügen",
"Invalid quota value \"{val}\"" : "Ungültiger Grenzwert \"{val}\"",
"no group" : "Keine Gruppe",
@@ -137,7 +137,7 @@
"Unlimited" : "Unbegrenzt",
"Personal info" : "Persönliche Informationen",
"Sessions" : "Sitzungen",
- "App passwords" : "App-Passwörter",
+ "App passwords" : "App-PINs",
"Sync clients" : "Sync-Clients",
"None" : "Keine",
"Login" : "Anmelden",
@@ -196,8 +196,8 @@
"Cron" : "Cron",
"Last cron job execution: %s." : "Letzte Cron-Job-Ausführung: %s.",
"Last cron job execution: %s. Something seems wrong." : "Letzte Cron-Job-Ausführung: %s. Möglicherweise liegt ein Fehler vor.",
- "Cron was not executed yet!" : "Cron wurde bis jetzt noch nicht ausgeführt!",
- "Execute one task with each page loaded" : "Eine Aufgabe bei jedem Laden der Seite ausführen",
+ "Cron was not executed yet!" : "Cron wurde bislang noch nicht ausgeführt!",
+ "Execute one task with each page loaded" : "Eine Aufgabe bei jedem Laden einer Seite ausführen",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php ist als Webcron-Dienst registriert, der die cron.php alle 15 Minuten per HTTP aufruft.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Benutzen Sie den systemeigenen Cron-Dienst, um die cron.php alle 15 Minuten aufzurufen.",
"The cron.php needs to be executed by the system user \"%s\"." : "Die cron.php muss durch den Systemnutzer \"%s\" ausgeführt werden.",
@@ -234,18 +234,18 @@
"by %s" : "von %s",
"%s-licensed" : "%s-Lizensiert",
"Documentation:" : "Dokumentation:",
- "User documentation" : "Dokumentation für Benutzer",
- "Admin documentation" : "Dokumentation für Administratoren",
+ "User documentation" : "Benutzer-Dokumentation",
+ "Admin documentation" : "Administratoren-Dokumentation",
"Visit website" : "Webseite besuchen",
"Report a bug" : "Melden Sie einen technischen Fehler",
"Show description …" : "Beschreibung anzeigen…",
"Hide description …" : "Beschreibung ausblenden…",
- "This app has an update available." : "Es ist eine Aktualisierung für diese Anwendung verfügbar.",
+ "This app has an update available." : "Für diese Anwendung ist eine Aktualisierung verfügbar.",
"This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine untere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.",
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Für diese App wurde keine obere Versionsgrenze für Nextcloud gesetzt. Dies wird zukünftig als Fehler behandelt.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Diese App kann nicht installiert werden, weil die folgenden Abhängigkeiten nicht erfüllt sind:",
"Enable only for specific groups" : "Nur für bestimmte Gruppen aktivieren",
- "Uninstall App" : "App deinstallieren",
+ "Uninstall app" : "App deinstallieren",
"SSL Root Certificates" : "SSL Root Zertifikate",
"Common Name" : "Allgemeiner Name",
"Valid until" : "Gültig bis",
@@ -274,7 +274,7 @@
"Email" : "E-Mail",
"Your email address" : "Ihre E-Mail-Adresse",
"No email address set" : "Keine E-Mail-Adresse angegeben",
- "For password recovery and notifications" : "Für Passwort Wiederherstellung und Benachrichtigungen",
+ "For password recovery and notifications" : "Für Passwort-Wiederherstellung und Benachrichtigungen",
"Phone number" : "Telefonnummer",
"Your phone number" : "Ihre Telefonnummer",
"Address" : "Adresse",
@@ -339,7 +339,11 @@
"Default" : "Standard",
"log-level out of allowed range" : "Log-Level außerhalb des erlaubten Bereichs",
"Language changed" : "Sprache geändert",
+ "Admins can't remove themself from the admin group" : "Administratoren können sich nicht selbst aus der admin-Gruppe löschen",
+ "Unable to add user to group %s" : "Der Benutzer konnte nicht zur Gruppe %s hinzugefügt werden",
+ "Unable to remove user from group %s" : "Der Benutzer konnte nicht aus der Gruppe %s entfernt werden",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Sind Sie sich wirklich sicher, dass Sie »{domain}« als vertrauenswürdige Domain hinzufügen möchten?",
+ "Please wait...." : "Bitte warten…",
"iPhone" : "iPhone",
"add group" : "Gruppe hinzufügen",
"Everything (fatal issues, errors, warnings, info, debug)" : "Alles (fatale Probleme, Fehler, Warnungen, Infos, Fehlerdiagnose)",
@@ -359,6 +363,7 @@
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Insbesondere bei der Nutzung des Desktop Clients zur Dateisynchronisierung wird vom Einsatz von SQLite abgeraten.",
"Experimental applications ahead" : "Experimentelle Apps nachfolgend",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimentelle Apps sind nicht auf Sicherheitsprobleme hin überprüft, sind neu oder bekanntermaßen instabil und befinden sich in intensiver Entwicklung. Ihre Installation kann Datenverlust oder Sicherheitslücken hervorrufen.",
+ "Uninstall App" : "App deinstallieren",
"Enable experimental apps" : "Experimentelle Apps aktivieren",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hallo,
hier nur kurz die Mitteilung, dass Sie jetzt ein %s-Konto haben.
Ihr Benutzername: %s
Greifen Sie darauf zu: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hallo,\n\nhier nur kurz die Mitteilung, dass Sie jetzt ein %s-Konto haben.\n\nIhr Benutzername: %s\nGreifen Sie darauf zu: %s\n\n",
@@ -370,24 +375,6 @@
"Group Admin for" : "Gruppenadministrator für",
"Storage Location" : "Speicherort",
"User Backend" : "Benutzer-Backend",
- "Last Login" : "Letzte Anmeldung",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Externer Speicher",
- "Updates" : "Updates",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "Offizielle Apps werden von und innerhalb der Nextcloud-Community entwickelt. Sie stellen die zentralen Funktionen bereit und sind für den produktiven Einsatz geeignet.",
- "No apps found for \"{query}\"" : "Keine Applikationen für \"{query}\" gefunden",
- "An error occurred: {message}" : "Ein Fehler ist aufgetreten: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Bitte schauen Sie in der Installationsdokumentation ↗auf Hinweise zur PHP-Konfiguration, sowie die PHP-Konfiguration ihres Servers, insbesondere dann, wenn Sie PHP-FPM einsetzen.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "ihre Datenbank läuft nicht mit der \"READ COMMITED\" Transaktionsisolationsstufe. Dies kann Probleme hervorrufen, wenn mehrere Aktionen parallel ausgeführt werden.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Ihr Server wird mit Microsoft Windows betrieben. Für ein optimales Nutzungserlebnis empfehlen wir dringend Linux.",
- "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 documentation ↗ for more information." : "Transaktionales Sperren ist deaktiviert, was zu Problemen mit Laufzeitbedingungen führen kann. Aktivieren Sie 'filelocking.enabled' in der config.php diese Probleme zu vermeiden. Weitere Informationen finden Sie in unserer Dokumentation ↗.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Bitte überprüfen Sie noch einmal die Installationsanleitungen ↗ und kontrollieren Sie das Log auf mögliche Fehler oder Warnungen.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "Verschlüsselung alleine garantiert nicht die Systemsicherheit. Bitte lesen Sie in der Dokumentation nach, wie die Verschlüsselungs-App funktioniert und welche Anwendungsfälle unterstützt werden.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Um zu einer anderen Datenbank zu migrieren, benutzen Sie bitte die Kommandozeile: 'occ db:convert-type', oder in die Dokumentation ↗ schauen.",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Für diese App wurde keine untere Versionsgrenze für Nextcloud gesetzt. Dies wird ab Nextcloud 11 als Fehler behandelt.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Für diese App wurde keine obere Versionsgrenze für Nextcloud gesetzt. Dies wird ab Nextcloud 11 als Fehler behandelt.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Wenn Sie das Projekt unterstützen möchten\n⇥⇥helfen Sie uns bei der Weiterentwicklung\n⇥⇥oder\n⇥⇥helfen Sie anderen Nutzern!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Entwickelt von der {communityopen}Nextcloud Community{linkclose}. Der {githubopen}Quellcode{linkclose} ist unter {licenseopen}AGPL{linkclose} verfügbar."
+ "Last Login" : "Letzte Anmeldung"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/el.js b/settings/l10n/el.js
index 131765857ac22cdfeaaca4ebd9c2e623f65c8390..053632812e2d327ee7b87cbaa72f36f71a477201 100644
--- a/settings/l10n/el.js
+++ b/settings/l10n/el.js
@@ -36,9 +36,6 @@ OC.L10N.register(
"Unable to change mail address" : "Αδυναμία αλλαγής διεύθυνσης αλληλογραφίας",
"Email saved" : "Το email αποθηκεύτηκε ",
"Couldn't remove app." : "Αδυναμία αφαίρεσης εφαρμογής.",
- "Admins can't remove themself from the admin group" : "Οι διαχειριστές δεν μπορούν να αφαιρέσουν τους εαυτούς τους από την ομάδα των διαχειριστών",
- "Unable to add user to group %s" : "Αδυναμία προσθήκη χρήστη στην ομάδα %s",
- "Unable to remove user from group %s" : "Αδυναμία αφαίρεσης χρήστη από την ομάδα %s",
"Couldn't update app." : "Αδυναμία ενημέρωσης εφαρμογής",
"Add trusted domain" : "Προσθέστε αξιόπιστη περιοχή",
"Migration in progress. Please wait until the migration is finished" : "Μετάβαση σε εξέλιξη. Παρακαλούμε περιμένετε μέχρι να ολοκληρωθεί η μετάβαση",
@@ -51,7 +48,6 @@ OC.L10N.register(
"No apps found for your version" : "Δεν βρέθηκαν εφαρμογές για αυτή την έκδοση",
"Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Οι εγκεκριμένες εφαρμογές αναπτύχθηκαν από αξιόπιστους προγραμματιστές και έχουν περάσει έναν συνοπτικό έλεγχο ασφαλείας. Διατηρούνται ενεργά σε ένα αποθετήριο ανοιχτού κώδικα και οι συντηρητές θεωρούν οτι είναι σταθερές για κανονική χρήση.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Η εφαρμογή αυτή δεν ελέγχεται για θέματα ασφάλειας και είναι νέα ή είναι γνωστό ότι είναι ασταθής. Η εγκατάσταση γίνεται με δική σας ευθύνη.",
- "Please wait...." : "Παρακαλώ περιμένετε...",
"Error while disabling app" : "Σφάλμα κατά την απενεργοποίηση εισόδου",
"Disable" : "Απενεργοποίηση",
"Enable" : "Ενεργοποίηση",
@@ -206,7 +202,7 @@ OC.L10N.register(
"This app has an update available." : "Αυτή η εφαρμογή έχει διαθέσιμη ενημέρωση.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Αυτή η εφαρμογή δεν μπορεί να εγκατασταθεί διότι δεν εκπληρώνονται οι ακόλουθες εξαρτήσεις:",
"Enable only for specific groups" : "Ενεργοποίηση μόνο για καθορισμένες ομάδες",
- "Uninstall App" : "Απεγκατάσταση Εφαρμογής",
+ "Uninstall app" : "Απεγκατάσταση εφαρμογης",
"SSL Root Certificates" : "Πιστοποιητικά SSL του Root",
"Common Name" : "Κοινό Όνομα",
"Valid until" : "Έγκυρο έως",
@@ -233,6 +229,8 @@ OC.L10N.register(
"Your email address" : "Η διεύθυνση ηλ. ταχυδρομείου σας",
"No email address set" : "Δεν ορίστηκε διεύθυνση email",
"For password recovery and notifications" : "Η ανάκτηση του συνθηματικού και οι ειδοποιήσεις",
+ "Website" : "Ιστοσελίδα",
+ "Twitter" : "Twitter",
"You are member of the following groups:" : "Είστε μέλος των ακόλουθων ομάδων:",
"Password" : "Συνθηματικό",
"Current password" : "Τρέχων συνθηματικό",
@@ -281,7 +279,11 @@ OC.L10N.register(
"Default" : "Προκαθορισμένο",
"log-level out of allowed range" : "Το επίπεδο καταγραφής είναι εκτός του επιτρεπόμενου πεδίου",
"Language changed" : "Η γλώσσα άλλαξε",
+ "Admins can't remove themself from the admin group" : "Οι διαχειριστές δεν μπορούν να αφαιρέσουν τους εαυτούς τους από την ομάδα των διαχειριστών",
+ "Unable to add user to group %s" : "Αδυναμία προσθήκη χρήστη στην ομάδα %s",
+ "Unable to remove user from group %s" : "Αδυναμία αφαίρεσης χρήστη από την ομάδα %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Είστε πραγματικά σίγουροι ότι θέλετε να προσθέσετε το \"{domain}\" σαν αξιόπιστη περιοχή;",
+ "Please wait...." : "Παρακαλώ περιμένετε...",
"iPhone" : "iPhone",
"add group" : "προσθήκη ομάδας",
"Everything (fatal issues, errors, warnings, info, debug)" : "Όλα (καίρια ζητήματα, σφάλματα, προειδοποιήσεις, πληροφορίες, αποσφαλμάτωση)",
@@ -300,6 +302,7 @@ OC.L10N.register(
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Ειδικά όταν χρησιμοποιείτε τον πελάτη για συγχρονισμό στον υπολογιστή σας, δεν συνίσταται η χρήση της SQLite.",
"Experimental applications ahead" : "Πειραματικές εφαρμογές",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Οι πειραματικές εφαρμογές δεν ελέγχονται για θέματα ασφάλειας, είναι ασταθείς και υπό συνεχή εξέλιξη. Η εγκατάσταση τους μπορεί να προκαλέσει απώλεια δεδομένων ή παραβιάσεις της ασφάλειας.",
+ "Uninstall App" : "Απεγκατάσταση Εφαρμογής",
"Enable experimental apps" : "Ενεργοποίηση πειραματικών εφαρμογών",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Χαίρεται,
απλά σας κάνουμε γνωστό ότι διαθέτετε έναν %s λογαριασμό.
Το όνομά σας είναι: %s
Έχετε πρόσβαση: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Χαίρεται, \nαπλά σας κάνουμε γνωστό ότι διαθέτετε έναν %s λογαριασμό.\nΤο όνομά σας είναι: %s\nΈχετε πρόσβαση: %s\n",
@@ -310,17 +313,6 @@ OC.L10N.register(
"Full Name" : "Πλήρες όνομα",
"Storage Location" : "Τοποθεσία αποθηκευτικού χώρου",
"User Backend" : "Σύστημα υποστήριξης χρήστη",
- "Last Login" : "Τελευταία είσοδος",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Εξωτερικό Αποθηκευτικό Μέσο",
- "Updates" : "Ενημερώσεις",
- "No apps found for \"{query}\"" : "Δεν βρέθηκαν εφαρμογές για \"{query}\"",
- "An error occurred: {message}" : "Παρουσιάστηκε σφάλμα: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Παρακαλούμε ελέγξτε την τεκμηρίωση εγκατάστασης ↗ για τις σημειώσεις ρυθμίσεων php και για τις ρυθμίσεις της php του διακομιστή, ειδικότερα όταν χρησιμοποιείτε το php-fpm.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Ο διακομιστής σας εκτελείται σε Microsoft Windows. Σας συνιστούμε το Linux για μια βέλτιστη εμπειρία χρήστη.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Παρακαλώ ελέγξτε διπλά τα εγχειρίδια εγκατάστασης ↗, και ελέγξτε για σφάλματα ή προειδοποιήσεις στο ιστορικό.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "Μονάχα η κρυπτογράφηση δεν σας εγγυάται την ασφάλεια του συστήματος. Παρακαλώ δείτε στην τεκμηρίωση του Nextcloud για περισσότερες πληροφορίες σχετικά με τον τρόπο που δουλεύει η εφαρμογή κρυπτογράφησης, και τις υποστηριζόμενες περιπτώσεις.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Για να μεταφερθείτε σε άλλη βάση δεδομένων χρησιμοποιήστε το εργαλείο της γραμμής εντολών: 'occ db:convert-type', ή δείτε στην τεκμηρίωση ↗."
+ "Last Login" : "Τελευταία είσοδος"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/el.json b/settings/l10n/el.json
index 3360d1b1c648fa9cb7b683f0637da3010470e683..bfb69683f6984bf256d29704ec00a51bd2b3ee5b 100644
--- a/settings/l10n/el.json
+++ b/settings/l10n/el.json
@@ -34,9 +34,6 @@
"Unable to change mail address" : "Αδυναμία αλλαγής διεύθυνσης αλληλογραφίας",
"Email saved" : "Το email αποθηκεύτηκε ",
"Couldn't remove app." : "Αδυναμία αφαίρεσης εφαρμογής.",
- "Admins can't remove themself from the admin group" : "Οι διαχειριστές δεν μπορούν να αφαιρέσουν τους εαυτούς τους από την ομάδα των διαχειριστών",
- "Unable to add user to group %s" : "Αδυναμία προσθήκη χρήστη στην ομάδα %s",
- "Unable to remove user from group %s" : "Αδυναμία αφαίρεσης χρήστη από την ομάδα %s",
"Couldn't update app." : "Αδυναμία ενημέρωσης εφαρμογής",
"Add trusted domain" : "Προσθέστε αξιόπιστη περιοχή",
"Migration in progress. Please wait until the migration is finished" : "Μετάβαση σε εξέλιξη. Παρακαλούμε περιμένετε μέχρι να ολοκληρωθεί η μετάβαση",
@@ -49,7 +46,6 @@
"No apps found for your version" : "Δεν βρέθηκαν εφαρμογές για αυτή την έκδοση",
"Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Οι εγκεκριμένες εφαρμογές αναπτύχθηκαν από αξιόπιστους προγραμματιστές και έχουν περάσει έναν συνοπτικό έλεγχο ασφαλείας. Διατηρούνται ενεργά σε ένα αποθετήριο ανοιχτού κώδικα και οι συντηρητές θεωρούν οτι είναι σταθερές για κανονική χρήση.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Η εφαρμογή αυτή δεν ελέγχεται για θέματα ασφάλειας και είναι νέα ή είναι γνωστό ότι είναι ασταθής. Η εγκατάσταση γίνεται με δική σας ευθύνη.",
- "Please wait...." : "Παρακαλώ περιμένετε...",
"Error while disabling app" : "Σφάλμα κατά την απενεργοποίηση εισόδου",
"Disable" : "Απενεργοποίηση",
"Enable" : "Ενεργοποίηση",
@@ -204,7 +200,7 @@
"This app has an update available." : "Αυτή η εφαρμογή έχει διαθέσιμη ενημέρωση.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Αυτή η εφαρμογή δεν μπορεί να εγκατασταθεί διότι δεν εκπληρώνονται οι ακόλουθες εξαρτήσεις:",
"Enable only for specific groups" : "Ενεργοποίηση μόνο για καθορισμένες ομάδες",
- "Uninstall App" : "Απεγκατάσταση Εφαρμογής",
+ "Uninstall app" : "Απεγκατάσταση εφαρμογης",
"SSL Root Certificates" : "Πιστοποιητικά SSL του Root",
"Common Name" : "Κοινό Όνομα",
"Valid until" : "Έγκυρο έως",
@@ -231,6 +227,8 @@
"Your email address" : "Η διεύθυνση ηλ. ταχυδρομείου σας",
"No email address set" : "Δεν ορίστηκε διεύθυνση email",
"For password recovery and notifications" : "Η ανάκτηση του συνθηματικού και οι ειδοποιήσεις",
+ "Website" : "Ιστοσελίδα",
+ "Twitter" : "Twitter",
"You are member of the following groups:" : "Είστε μέλος των ακόλουθων ομάδων:",
"Password" : "Συνθηματικό",
"Current password" : "Τρέχων συνθηματικό",
@@ -279,7 +277,11 @@
"Default" : "Προκαθορισμένο",
"log-level out of allowed range" : "Το επίπεδο καταγραφής είναι εκτός του επιτρεπόμενου πεδίου",
"Language changed" : "Η γλώσσα άλλαξε",
+ "Admins can't remove themself from the admin group" : "Οι διαχειριστές δεν μπορούν να αφαιρέσουν τους εαυτούς τους από την ομάδα των διαχειριστών",
+ "Unable to add user to group %s" : "Αδυναμία προσθήκη χρήστη στην ομάδα %s",
+ "Unable to remove user from group %s" : "Αδυναμία αφαίρεσης χρήστη από την ομάδα %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Είστε πραγματικά σίγουροι ότι θέλετε να προσθέσετε το \"{domain}\" σαν αξιόπιστη περιοχή;",
+ "Please wait...." : "Παρακαλώ περιμένετε...",
"iPhone" : "iPhone",
"add group" : "προσθήκη ομάδας",
"Everything (fatal issues, errors, warnings, info, debug)" : "Όλα (καίρια ζητήματα, σφάλματα, προειδοποιήσεις, πληροφορίες, αποσφαλμάτωση)",
@@ -298,6 +300,7 @@
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Ειδικά όταν χρησιμοποιείτε τον πελάτη για συγχρονισμό στον υπολογιστή σας, δεν συνίσταται η χρήση της SQLite.",
"Experimental applications ahead" : "Πειραματικές εφαρμογές",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Οι πειραματικές εφαρμογές δεν ελέγχονται για θέματα ασφάλειας, είναι ασταθείς και υπό συνεχή εξέλιξη. Η εγκατάσταση τους μπορεί να προκαλέσει απώλεια δεδομένων ή παραβιάσεις της ασφάλειας.",
+ "Uninstall App" : "Απεγκατάσταση Εφαρμογής",
"Enable experimental apps" : "Ενεργοποίηση πειραματικών εφαρμογών",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Χαίρεται,
απλά σας κάνουμε γνωστό ότι διαθέτετε έναν %s λογαριασμό.
Το όνομά σας είναι: %s
Έχετε πρόσβαση: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Χαίρεται, \nαπλά σας κάνουμε γνωστό ότι διαθέτετε έναν %s λογαριασμό.\nΤο όνομά σας είναι: %s\nΈχετε πρόσβαση: %s\n",
@@ -308,17 +311,6 @@
"Full Name" : "Πλήρες όνομα",
"Storage Location" : "Τοποθεσία αποθηκευτικού χώρου",
"User Backend" : "Σύστημα υποστήριξης χρήστη",
- "Last Login" : "Τελευταία είσοδος",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Εξωτερικό Αποθηκευτικό Μέσο",
- "Updates" : "Ενημερώσεις",
- "No apps found for \"{query}\"" : "Δεν βρέθηκαν εφαρμογές για \"{query}\"",
- "An error occurred: {message}" : "Παρουσιάστηκε σφάλμα: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Παρακαλούμε ελέγξτε την τεκμηρίωση εγκατάστασης ↗ για τις σημειώσεις ρυθμίσεων php και για τις ρυθμίσεις της php του διακομιστή, ειδικότερα όταν χρησιμοποιείτε το php-fpm.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Ο διακομιστής σας εκτελείται σε Microsoft Windows. Σας συνιστούμε το Linux για μια βέλτιστη εμπειρία χρήστη.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Παρακαλώ ελέγξτε διπλά τα εγχειρίδια εγκατάστασης ↗, και ελέγξτε για σφάλματα ή προειδοποιήσεις στο ιστορικό.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "Μονάχα η κρυπτογράφηση δεν σας εγγυάται την ασφάλεια του συστήματος. Παρακαλώ δείτε στην τεκμηρίωση του Nextcloud για περισσότερες πληροφορίες σχετικά με τον τρόπο που δουλεύει η εφαρμογή κρυπτογράφησης, και τις υποστηριζόμενες περιπτώσεις.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Για να μεταφερθείτε σε άλλη βάση δεδομένων χρησιμοποιήστε το εργαλείο της γραμμής εντολών: 'occ db:convert-type', ή δείτε στην τεκμηρίωση ↗."
+ "Last Login" : "Τελευταία είσοδος"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/en_GB.js b/settings/l10n/en_GB.js
index af8e8b307965d8bd214556858dbcb8e63cc027ad..930205ba49467869a9f261ac08bda75b928c9e81 100644
--- a/settings/l10n/en_GB.js
+++ b/settings/l10n/en_GB.js
@@ -36,9 +36,6 @@ OC.L10N.register(
"Unable to change mail address" : "Unable to change mail address",
"Email saved" : "Email saved",
"Couldn't remove app." : "Couldn't remove app.",
- "Admins can't remove themself from the admin group" : "Admins can't remove themselves from the admin group",
- "Unable to add user to group %s" : "Unable to add user to group %s",
- "Unable to remove user from group %s" : "Unable to remove user from group %s",
"Couldn't update app." : "Couldn't update app.",
"Add trusted domain" : "Add trusted domain",
"Migration in progress. Please wait until the migration is finished" : "Migration in progress. Please wait until the migration is finished",
@@ -53,7 +50,6 @@ OC.L10N.register(
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Official apps are developed by the community. They offer additional functionality and are ready for production use.",
"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." : "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "This app is not checked for security issues and is new or known to be unstable. Install at your own risk.",
- "Please wait...." : "Please wait....",
"Error while disabling app" : "Error whilst disabling app",
"Disable" : "Disable",
"Enable" : "Enable",
@@ -201,7 +197,6 @@ OC.L10N.register(
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "This app has no maximum Nextcloud version assigned. This will cause an error in the future.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "This app cannot be installed because the following dependencies are not fulfilled:",
"Enable only for specific groups" : "Enable only for specific groups",
- "Uninstall App" : "Uninstall App",
"SSL Root Certificates" : "SSL Root Certificates",
"Common Name" : "Common Name",
"Valid until" : "Valid until",
@@ -266,7 +261,11 @@ OC.L10N.register(
"Default" : "Default",
"log-level out of allowed range" : "log-level out of allowed range",
"Language changed" : "Language changed",
+ "Admins can't remove themself from the admin group" : "Admins can't remove themselves from the admin group",
+ "Unable to add user to group %s" : "Unable to add user to group %s",
+ "Unable to remove user from group %s" : "Unable to remove user from group %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Are you really sure you want add \"{domain}\" as a trusted domain?",
+ "Please wait...." : "Please wait....",
"Everything (fatal issues, errors, warnings, info, debug)" : "Everything (fatal issues, errors, warnings, info, debug)",
"Info, warnings, errors and fatal issues" : "Info, warnings, errors and fatal issues",
"Warnings, errors and fatal issues" : "Warnings, errors and fatal issues",
@@ -284,14 +283,10 @@ OC.L10N.register(
"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.",
"Experimental applications ahead" : "Experimental applications ahead",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches.",
+ "Uninstall App" : "Uninstall App",
"Enable experimental apps" : "Enable experimental apps",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n",
- "Group" : "Group",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "External Storage",
- "Updates" : "Updates",
- "An error occurred: {message}" : "An error occurred: {message}"
+ "Group" : "Group"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/en_GB.json b/settings/l10n/en_GB.json
index 4c52e4a801054e8fe8b6989e9f22e6121a728037..0584f6a5bb1538bee831a2c20e32468ef9fa8c00 100644
--- a/settings/l10n/en_GB.json
+++ b/settings/l10n/en_GB.json
@@ -34,9 +34,6 @@
"Unable to change mail address" : "Unable to change mail address",
"Email saved" : "Email saved",
"Couldn't remove app." : "Couldn't remove app.",
- "Admins can't remove themself from the admin group" : "Admins can't remove themselves from the admin group",
- "Unable to add user to group %s" : "Unable to add user to group %s",
- "Unable to remove user from group %s" : "Unable to remove user from group %s",
"Couldn't update app." : "Couldn't update app.",
"Add trusted domain" : "Add trusted domain",
"Migration in progress. Please wait until the migration is finished" : "Migration in progress. Please wait until the migration is finished",
@@ -51,7 +48,6 @@
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Official apps are developed by the community. They offer additional functionality and are ready for production use.",
"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." : "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "This app is not checked for security issues and is new or known to be unstable. Install at your own risk.",
- "Please wait...." : "Please wait....",
"Error while disabling app" : "Error whilst disabling app",
"Disable" : "Disable",
"Enable" : "Enable",
@@ -199,7 +195,6 @@
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "This app has no maximum Nextcloud version assigned. This will cause an error in the future.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "This app cannot be installed because the following dependencies are not fulfilled:",
"Enable only for specific groups" : "Enable only for specific groups",
- "Uninstall App" : "Uninstall App",
"SSL Root Certificates" : "SSL Root Certificates",
"Common Name" : "Common Name",
"Valid until" : "Valid until",
@@ -264,7 +259,11 @@
"Default" : "Default",
"log-level out of allowed range" : "log-level out of allowed range",
"Language changed" : "Language changed",
+ "Admins can't remove themself from the admin group" : "Admins can't remove themselves from the admin group",
+ "Unable to add user to group %s" : "Unable to add user to group %s",
+ "Unable to remove user from group %s" : "Unable to remove user from group %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Are you really sure you want add \"{domain}\" as a trusted domain?",
+ "Please wait...." : "Please wait....",
"Everything (fatal issues, errors, warnings, info, debug)" : "Everything (fatal issues, errors, warnings, info, debug)",
"Info, warnings, errors and fatal issues" : "Info, warnings, errors and fatal issues",
"Warnings, errors and fatal issues" : "Warnings, errors and fatal issues",
@@ -282,14 +281,10 @@
"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.",
"Experimental applications ahead" : "Experimental applications ahead",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches.",
+ "Uninstall App" : "Uninstall App",
"Enable experimental apps" : "Enable experimental apps",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n",
- "Group" : "Group",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "External Storage",
- "Updates" : "Updates",
- "An error occurred: {message}" : "An error occurred: {message}"
+ "Group" : "Group"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/eo.js b/settings/l10n/eo.js
index 8d5599ee9703dd2d8db3ef61ccf239f095bdf580..57bacd60c5019de0f89df5f222e26dc08338de3a 100644
--- a/settings/l10n/eo.js
+++ b/settings/l10n/eo.js
@@ -14,13 +14,9 @@ OC.L10N.register(
"Unable to change full name" : "Ne eblis ŝanĝi la plenan nomon",
"Your full name has been changed." : "Via plena nomo ŝanĝitas.",
"Email saved" : "La retpoŝtadreso konserviĝis",
- "Admins can't remove themself from the admin group" : "Administrantoj ne povas forigi sin mem el la administra grupo.",
- "Unable to add user to group %s" : "Ne eblis aldoni la uzanton al la grupo %s",
- "Unable to remove user from group %s" : "Ne eblis forigi la uzantan el la grupo %s",
"Couldn't update app." : "Ne eblis ĝisdatigi la aplikaĵon.",
"Sending..." : "Sendante...",
"All" : "Ĉio",
- "Please wait...." : "Bonvolu atendi...",
"Error while disabling app" : "Eraris malkapabligo de aplikaĵo",
"Disable" : "Malkapabligi",
"Enable" : "Kapabligi",
@@ -85,7 +81,6 @@ OC.L10N.register(
"Show description …" : "Montri priskribon...",
"Hide description …" : "Malmontri priskribon...",
"Enable only for specific groups" : "Kapabligi nur por specifajn grupojn",
- "Uninstall App" : "Malinstali aplikaĵon",
"Common Name" : "Komuna nomo",
"Valid until" : "Valida ĝis",
"Valid until %s" : "Valida ĝis %s",
@@ -126,6 +121,10 @@ OC.L10N.register(
"change email address" : "ŝanĝi retpoŝtadreson",
"Default" : "Defaŭlta",
"Language changed" : "La lingvo estas ŝanĝita",
+ "Admins can't remove themself from the admin group" : "Administrantoj ne povas forigi sin mem el la administra grupo.",
+ "Unable to add user to group %s" : "Ne eblis aldoni la uzanton al la grupo %s",
+ "Unable to remove user from group %s" : "Ne eblis forigi la uzantan el la grupo %s",
+ "Please wait...." : "Bonvolu atendi...",
"Everything (fatal issues, errors, warnings, info, debug)" : "Ĉio (fatalaĵoj, eraroj, avertoj, informoj, sencimigaj mesaĝoj)",
"Info, warnings, errors and fatal issues" : "Informoj, avertoj, eraroj kaj fatalaĵoj",
"Warnings, errors and fatal issues" : "Avertoj, eraroj kaj fatalaĵoj",
@@ -137,8 +136,7 @@ OC.L10N.register(
"More" : "Pli",
"Less" : "Malpli",
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite uziĝas kiel datumbazo. Por pli grandaj instaloj ni rekomendas ŝanĝi ĝin per malsama datumbazomotoro.",
- "Group" : "Grupo",
- "External Storage" : "Malena memorilo",
- "Updates" : "Ĝisdatigoj"
+ "Uninstall App" : "Malinstali aplikaĵon",
+ "Group" : "Grupo"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/eo.json b/settings/l10n/eo.json
index db55cf74440ad6075a6af5cb529008d1fbeb8735..adb48f15be543bfaea0e438f6790fdcd020b8183 100644
--- a/settings/l10n/eo.json
+++ b/settings/l10n/eo.json
@@ -12,13 +12,9 @@
"Unable to change full name" : "Ne eblis ŝanĝi la plenan nomon",
"Your full name has been changed." : "Via plena nomo ŝanĝitas.",
"Email saved" : "La retpoŝtadreso konserviĝis",
- "Admins can't remove themself from the admin group" : "Administrantoj ne povas forigi sin mem el la administra grupo.",
- "Unable to add user to group %s" : "Ne eblis aldoni la uzanton al la grupo %s",
- "Unable to remove user from group %s" : "Ne eblis forigi la uzantan el la grupo %s",
"Couldn't update app." : "Ne eblis ĝisdatigi la aplikaĵon.",
"Sending..." : "Sendante...",
"All" : "Ĉio",
- "Please wait...." : "Bonvolu atendi...",
"Error while disabling app" : "Eraris malkapabligo de aplikaĵo",
"Disable" : "Malkapabligi",
"Enable" : "Kapabligi",
@@ -83,7 +79,6 @@
"Show description …" : "Montri priskribon...",
"Hide description …" : "Malmontri priskribon...",
"Enable only for specific groups" : "Kapabligi nur por specifajn grupojn",
- "Uninstall App" : "Malinstali aplikaĵon",
"Common Name" : "Komuna nomo",
"Valid until" : "Valida ĝis",
"Valid until %s" : "Valida ĝis %s",
@@ -124,6 +119,10 @@
"change email address" : "ŝanĝi retpoŝtadreson",
"Default" : "Defaŭlta",
"Language changed" : "La lingvo estas ŝanĝita",
+ "Admins can't remove themself from the admin group" : "Administrantoj ne povas forigi sin mem el la administra grupo.",
+ "Unable to add user to group %s" : "Ne eblis aldoni la uzanton al la grupo %s",
+ "Unable to remove user from group %s" : "Ne eblis forigi la uzantan el la grupo %s",
+ "Please wait...." : "Bonvolu atendi...",
"Everything (fatal issues, errors, warnings, info, debug)" : "Ĉio (fatalaĵoj, eraroj, avertoj, informoj, sencimigaj mesaĝoj)",
"Info, warnings, errors and fatal issues" : "Informoj, avertoj, eraroj kaj fatalaĵoj",
"Warnings, errors and fatal issues" : "Avertoj, eraroj kaj fatalaĵoj",
@@ -135,8 +134,7 @@
"More" : "Pli",
"Less" : "Malpli",
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite uziĝas kiel datumbazo. Por pli grandaj instaloj ni rekomendas ŝanĝi ĝin per malsama datumbazomotoro.",
- "Group" : "Grupo",
- "External Storage" : "Malena memorilo",
- "Updates" : "Ĝisdatigoj"
+ "Uninstall App" : "Malinstali aplikaĵon",
+ "Group" : "Grupo"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/es.js b/settings/l10n/es.js
index e7ac03ebd1406a079a74db2244cc54d4452f1fcb..946576aba14fabaec9054168069d87487e9d1e93 100644
--- a/settings/l10n/es.js
+++ b/settings/l10n/es.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"You need to set your user email before being able to send test emails." : "Tiene que configurar su dirección de correo electrónico antes de poder enviar mensajes de prueba.",
"Invalid request" : "Petición no válida",
"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." : "Ya existe un usuario con ese nombre.",
"Unable to create user." : "No se pudo crear el usuario.",
"Your %s account was created" : "Se ha creado su cuenta de %s",
@@ -39,9 +40,6 @@ OC.L10N.register(
"Email saved" : "Correo electrónico guardado",
"Password confirmation is required" : "Se requiere confirmar la contraseña",
"Couldn't remove app." : "No se pudo eliminar la aplicación.",
- "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 se pudo añadir el usuario al grupo %s",
- "Unable to remove user from group %s" : "No se pudo eliminar al usuario del grupo %s",
"Couldn't update app." : "No se pudo actualizar la aplicación.",
"Are you really sure you want add {domain} as trusted domain?" : "¿Está realmente seguro de que quiere añadir {domain} como dominio de confianza?",
"Add trusted domain" : "Agregar dominio de confianza",
@@ -58,7 +56,7 @@ OC.L10N.register(
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Las apps oficiales están desarrolladas por y dentro de la comunidad. Ofrecen una funcionalidad central y están preparadas para uso 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 las desarrollan desarrolladores de confianza y han pasado un control de seguridad superficial. Estas se mantienen activamente en un repositorio de código abierto y sus encargados las consideran estables para un uso normal.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "No se han verificado los posibles problemas de seguridad de esta app. Es nueva o bien es conocida por ser inestable. Instálela bajo su propio riesgo.",
- "Please wait...." : "Espere, por favor....",
+ "Enabling app …" : "Activando app ...",
"Error while disabling app" : "Error mientras se desactivaba la aplicación",
"Disable" : "Desactivar",
"Enable" : "Activar",
@@ -125,6 +123,8 @@ OC.L10N.register(
"undo" : "deshacer",
"never" : "nunca",
"deleted {userName}" : "borrado {userName}",
+ "Unable to add user to group {group}" : "No se puede añadir el usuario al grupo {group}",
+ "Unable to remove user from group {group}" : "No se puede eliminar el usuario del grupo {group}",
"Add group" : "Añadir grupo",
"Invalid quota value \"{val}\"" : "Valor de cuota inválido \"{val}\"",
"no group" : "sin grupo",
@@ -247,7 +247,7 @@ OC.L10N.register(
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta app no tiene 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 instalarse porque las siguientes dependencias no están cumplimentadas:",
"Enable only for specific groups" : "Activar solamente para grupos específicos",
- "Uninstall App" : "Desinstalar aplicación",
+ "Uninstall app" : "Desinstalar aplicación",
"SSL Root Certificates" : "Raíz de certificados SSL ",
"Common Name" : "Nombre común",
"Valid until" : "Válido hasta",
@@ -296,6 +296,7 @@ OC.L10N.register(
"Desktop client" : "Cliente de escritorio",
"Android app" : "Aplicación de Android",
"iOS app" : "La aplicación de iOS",
+ "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Si deseas apoyar el proyecto, ¡{contributeopen}únete al desarrollo{linkclose} o {contributeopen}difúnde la palabra{linkclose}!",
"Show First Run Wizard again" : "Mostrar nuevamente el Asistente de ejecución inicial",
"Web, desktop and mobile clients currently logged in to your account." : "Clientes web, móviles y de escritorio actualmente conectados a tu cuenta.",
"Device" : "Dispositivo",
@@ -308,8 +309,12 @@ OC.L10N.register(
"For security reasons this password will only be shown once." : "Para seguridad, esta contraseña será mostrado solamente una vez.",
"Username" : "Nombre de usuario",
"Done" : "Hecho",
+ "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud{linkclose}, el {githubopen}código fuente{linkclose} está licenciado bajo la {licenseopen}AGPL{linkclose}.",
"Follow us on Google Plus!" : "¡Síganos en Google+!",
+ "Like our facebook page!" : "¡Da a Me gusta en 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 nuestro feed de noticias!",
+ "Subscribe to our newsletter!" : "¡Suscríbete a nuestro boletín!",
"Show storage location" : "Mostrar la ubicación del almacenamiento",
"Show last log in" : "Mostrar el último inicio de sesión",
"Show user backend" : "Mostrar motor de usuario",
@@ -336,7 +341,11 @@ OC.L10N.register(
"Default" : "Predeterminado",
"log-level out of allowed range" : "Nivel de autenticación fuera del rango permitido",
"Language changed" : "Idioma cambiado",
+ "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 se pudo añadir el usuario al grupo %s",
+ "Unable to remove user from group %s" : "No se pudo eliminar al usuario del grupo %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "¿Está seguro de querer agregar \"{domain}\" como un dominio de confianza?",
+ "Please wait...." : "Espere, por favor....",
"iPhone" : "iPhone",
"add group" : "añadir grupo",
"Everything (fatal issues, errors, warnings, info, debug)" : "Todo (Información, Avisos, Errores, debug y problemas fatales)",
@@ -356,22 +365,18 @@ OC.L10N.register(
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "El uso de SQLite está desaconsejado especialmente cuando se usa el cliente de escritorio para sincronizar los ficheros.",
"Experimental applications ahead" : "Aplicaciones experimentales más adelante",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Las aplicaciones experimentales no están verificadas por problemas de seguridad, recientes o conocidas por ser inestables y/o bajo un fuerte desarrollo. Instalándolas pueden causar pérdida de datos o violación de seguridades.",
+ "Uninstall App" : "Desinstalar aplicación",
"Enable experimental apps" : "Habilitar aplicaciones experimentales",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "¿Qué tal?,
este mensaje es para hacerle saber que ahora tiene una %s cuenta.
Su nombre de usuario: %s
Acceda en: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hola, ¿qué tal?,\n\nEste mensaje es para hacerle saber que ahora tiene una cuenta %s.\n\nSu nombre de usuario: %s\nAcceda en: %s\n\n",
"If you want to support the project\n\t\tjoin development\n\t\t \n\t\tspread the word!" : "If you want to support the project\n\t\túnase al desarrollo\n\t\to\n\t\tdifunda la palabra.",
"Add Group" : "Agregar grupo",
"Group" : "Grupo",
+ "Default Quota" : "Cuota por defecto.",
"Full Name" : "Nombre completo",
"Group Admin for" : "Grupo administrador para",
"Storage Location" : "Ubicación de almacenamiento",
"User Backend" : "Usuario de backend",
- "Last Login" : "Último inicio de sesión",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Almacenamiento externo",
- "Updates" : "Actualizaciones",
- "No apps found for \"{query}\"" : "No se han encontrado apps para {query}",
- "An error occurred: {message}" : "Ocurrió un error: {message}"
+ "Last Login" : "Último inicio de sesión"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/es.json b/settings/l10n/es.json
index 2ad9f67d3f114335b42bc4e83c09dabf6cd30cf5..c410fb3a2793020683aa5e69e8f897fc7e4a12b3 100644
--- a/settings/l10n/es.json
+++ b/settings/l10n/es.json
@@ -23,6 +23,7 @@
"You need to set your user email before being able to send test emails." : "Tiene que configurar su dirección de correo electrónico antes de poder enviar mensajes de prueba.",
"Invalid request" : "Petición no válida",
"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." : "Ya existe un usuario con ese nombre.",
"Unable to create user." : "No se pudo crear el usuario.",
"Your %s account was created" : "Se ha creado su cuenta de %s",
@@ -37,9 +38,6 @@
"Email saved" : "Correo electrónico guardado",
"Password confirmation is required" : "Se requiere confirmar la contraseña",
"Couldn't remove app." : "No se pudo eliminar la aplicación.",
- "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 se pudo añadir el usuario al grupo %s",
- "Unable to remove user from group %s" : "No se pudo eliminar al usuario del grupo %s",
"Couldn't update app." : "No se pudo actualizar la aplicación.",
"Are you really sure you want add {domain} as trusted domain?" : "¿Está realmente seguro de que quiere añadir {domain} como dominio de confianza?",
"Add trusted domain" : "Agregar dominio de confianza",
@@ -56,7 +54,7 @@
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Las apps oficiales están desarrolladas por y dentro de la comunidad. Ofrecen una funcionalidad central y están preparadas para uso 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 las desarrollan desarrolladores de confianza y han pasado un control de seguridad superficial. Estas se mantienen activamente en un repositorio de código abierto y sus encargados las consideran estables para un uso normal.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "No se han verificado los posibles problemas de seguridad de esta app. Es nueva o bien es conocida por ser inestable. Instálela bajo su propio riesgo.",
- "Please wait...." : "Espere, por favor....",
+ "Enabling app …" : "Activando app ...",
"Error while disabling app" : "Error mientras se desactivaba la aplicación",
"Disable" : "Desactivar",
"Enable" : "Activar",
@@ -123,6 +121,8 @@
"undo" : "deshacer",
"never" : "nunca",
"deleted {userName}" : "borrado {userName}",
+ "Unable to add user to group {group}" : "No se puede añadir el usuario al grupo {group}",
+ "Unable to remove user from group {group}" : "No se puede eliminar el usuario del grupo {group}",
"Add group" : "Añadir grupo",
"Invalid quota value \"{val}\"" : "Valor de cuota inválido \"{val}\"",
"no group" : "sin grupo",
@@ -245,7 +245,7 @@
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta app no tiene 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 instalarse porque las siguientes dependencias no están cumplimentadas:",
"Enable only for specific groups" : "Activar solamente para grupos específicos",
- "Uninstall App" : "Desinstalar aplicación",
+ "Uninstall app" : "Desinstalar aplicación",
"SSL Root Certificates" : "Raíz de certificados SSL ",
"Common Name" : "Nombre común",
"Valid until" : "Válido hasta",
@@ -294,6 +294,7 @@
"Desktop client" : "Cliente de escritorio",
"Android app" : "Aplicación de Android",
"iOS app" : "La aplicación de iOS",
+ "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Si deseas apoyar el proyecto, ¡{contributeopen}únete al desarrollo{linkclose} o {contributeopen}difúnde la palabra{linkclose}!",
"Show First Run Wizard again" : "Mostrar nuevamente el Asistente de ejecución inicial",
"Web, desktop and mobile clients currently logged in to your account." : "Clientes web, móviles y de escritorio actualmente conectados a tu cuenta.",
"Device" : "Dispositivo",
@@ -306,8 +307,12 @@
"For security reasons this password will only be shown once." : "Para seguridad, esta contraseña será mostrado solamente una vez.",
"Username" : "Nombre de usuario",
"Done" : "Hecho",
+ "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud{linkclose}, el {githubopen}código fuente{linkclose} está licenciado bajo la {licenseopen}AGPL{linkclose}.",
"Follow us on Google Plus!" : "¡Síganos en Google+!",
+ "Like our facebook page!" : "¡Da a Me gusta en 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 nuestro feed de noticias!",
+ "Subscribe to our newsletter!" : "¡Suscríbete a nuestro boletín!",
"Show storage location" : "Mostrar la ubicación del almacenamiento",
"Show last log in" : "Mostrar el último inicio de sesión",
"Show user backend" : "Mostrar motor de usuario",
@@ -334,7 +339,11 @@
"Default" : "Predeterminado",
"log-level out of allowed range" : "Nivel de autenticación fuera del rango permitido",
"Language changed" : "Idioma cambiado",
+ "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 se pudo añadir el usuario al grupo %s",
+ "Unable to remove user from group %s" : "No se pudo eliminar al usuario del grupo %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "¿Está seguro de querer agregar \"{domain}\" como un dominio de confianza?",
+ "Please wait...." : "Espere, por favor....",
"iPhone" : "iPhone",
"add group" : "añadir grupo",
"Everything (fatal issues, errors, warnings, info, debug)" : "Todo (Información, Avisos, Errores, debug y problemas fatales)",
@@ -354,22 +363,18 @@
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "El uso de SQLite está desaconsejado especialmente cuando se usa el cliente de escritorio para sincronizar los ficheros.",
"Experimental applications ahead" : "Aplicaciones experimentales más adelante",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Las aplicaciones experimentales no están verificadas por problemas de seguridad, recientes o conocidas por ser inestables y/o bajo un fuerte desarrollo. Instalándolas pueden causar pérdida de datos o violación de seguridades.",
+ "Uninstall App" : "Desinstalar aplicación",
"Enable experimental apps" : "Habilitar aplicaciones experimentales",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "¿Qué tal?,
este mensaje es para hacerle saber que ahora tiene una %s cuenta.
Su nombre de usuario: %s
Acceda en: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hola, ¿qué tal?,\n\nEste mensaje es para hacerle saber que ahora tiene una cuenta %s.\n\nSu nombre de usuario: %s\nAcceda en: %s\n\n",
"If you want to support the project\n\t\tjoin development\n\t\t \n\t\tspread the word!" : "If you want to support the project\n\t\túnase al desarrollo\n\t\to\n\t\tdifunda la palabra.",
"Add Group" : "Agregar grupo",
"Group" : "Grupo",
+ "Default Quota" : "Cuota por defecto.",
"Full Name" : "Nombre completo",
"Group Admin for" : "Grupo administrador para",
"Storage Location" : "Ubicación de almacenamiento",
"User Backend" : "Usuario de backend",
- "Last Login" : "Último inicio de sesión",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Almacenamiento externo",
- "Updates" : "Actualizaciones",
- "No apps found for \"{query}\"" : "No se han encontrado apps para {query}",
- "An error occurred: {message}" : "Ocurrió un error: {message}"
+ "Last Login" : "Último inicio de sesión"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/es_AR.js b/settings/l10n/es_AR.js
index d98c87764a6ca8f2c056274b2565c52dbbf8473e..a557cec74b1933b606cf939776e05a7066595604 100644
--- a/settings/l10n/es_AR.js
+++ b/settings/l10n/es_AR.js
@@ -16,13 +16,9 @@ OC.L10N.register(
"Unable to change full name" : "Imposible cambiar el nombre completo",
"Your full name has been changed." : "Su nombre completo ha sido cambiado.",
"Email saved" : "e-mail guardado",
- "Admins can't remove themself from the admin group" : "Los administradores no se pueden quitar a si mismos del grupo 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 es posible borrar al usuario del grupo %s",
"Couldn't update app." : "No se pudo actualizar la App.",
"Sending..." : "Enviando...",
"All" : "Todos",
- "Please wait...." : "Por favor, esperá....",
"Error while disabling app" : "Se ha producido un error mientras se deshabilitaba la aplicación",
"Disable" : "Desactivar",
"Enable" : "Activar",
@@ -104,6 +100,10 @@ OC.L10N.register(
"set new password" : "Configurar nueva contraseña",
"Default" : "Predeterminado",
"Language changed" : "Idioma cambiado",
+ "Admins can't remove themself from the admin group" : "Los administradores no se pueden quitar a si mismos del grupo 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 es posible borrar al usuario del grupo %s",
+ "Please wait...." : "Por favor, esperá....",
"Everything (fatal issues, errors, warnings, info, debug)" : "Todo (notificaciones fatales, errores, advertencias, info, debug)",
"Info, warnings, errors and fatal issues" : "Info, advertencias, errores y notificaciones fatales",
"Warnings, errors and fatal issues" : "Advertencias, errores y notificaciones fatales",
@@ -113,9 +113,6 @@ OC.L10N.register(
"More" : "Más",
"Less" : "Menos",
"Allow users to send mail notification for shared files" : "Habilitar a los usuarios para enviar notificaciones por correo para archivos compartidos",
- "Group" : "Grupo",
- "APCu" : "APCu",
- "External Storage" : "Almacenamiento externo",
- "Updates" : "Actualizaciones"
+ "Group" : "Grupo"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/es_AR.json b/settings/l10n/es_AR.json
index a6bbbdba0548e519d8659ca68213b89006b93008..2d6ed9b8c32830d83efa619989b3786730425ef1 100644
--- a/settings/l10n/es_AR.json
+++ b/settings/l10n/es_AR.json
@@ -14,13 +14,9 @@
"Unable to change full name" : "Imposible cambiar el nombre completo",
"Your full name has been changed." : "Su nombre completo ha sido cambiado.",
"Email saved" : "e-mail guardado",
- "Admins can't remove themself from the admin group" : "Los administradores no se pueden quitar a si mismos del grupo 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 es posible borrar al usuario del grupo %s",
"Couldn't update app." : "No se pudo actualizar la App.",
"Sending..." : "Enviando...",
"All" : "Todos",
- "Please wait...." : "Por favor, esperá....",
"Error while disabling app" : "Se ha producido un error mientras se deshabilitaba la aplicación",
"Disable" : "Desactivar",
"Enable" : "Activar",
@@ -102,6 +98,10 @@
"set new password" : "Configurar nueva contraseña",
"Default" : "Predeterminado",
"Language changed" : "Idioma cambiado",
+ "Admins can't remove themself from the admin group" : "Los administradores no se pueden quitar a si mismos del grupo 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 es posible borrar al usuario del grupo %s",
+ "Please wait...." : "Por favor, esperá....",
"Everything (fatal issues, errors, warnings, info, debug)" : "Todo (notificaciones fatales, errores, advertencias, info, debug)",
"Info, warnings, errors and fatal issues" : "Info, advertencias, errores y notificaciones fatales",
"Warnings, errors and fatal issues" : "Advertencias, errores y notificaciones fatales",
@@ -111,9 +111,6 @@
"More" : "Más",
"Less" : "Menos",
"Allow users to send mail notification for shared files" : "Habilitar a los usuarios para enviar notificaciones por correo para archivos compartidos",
- "Group" : "Grupo",
- "APCu" : "APCu",
- "External Storage" : "Almacenamiento externo",
- "Updates" : "Actualizaciones"
+ "Group" : "Grupo"
},"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 bd7b9dc7c9a74701a7deda69fff9e9e0c819dfd4..c07e9a94267e3bde1c08e46eb086f4f6cdf27033 100644
--- a/settings/l10n/es_MX.js
+++ b/settings/l10n/es_MX.js
@@ -14,12 +14,8 @@ OC.L10N.register(
"Unable to change full name" : "No se puede cambiar el nombre completo",
"Your full name has been changed." : "Se ha cambiado su nombre completo.",
"Email saved" : "Correo electrónico guardado",
- "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 se pudo añadir el usuario al grupo %s",
- "Unable to remove user from group %s" : "No se pudo eliminar al usuario del grupo %s",
"Couldn't update app." : "No se pudo actualizar la aplicación.",
"All" : "Todos",
- "Please wait...." : "Espere, por favor....",
"Error while disabling app" : "Error mientras se desactivaba la aplicación",
"Disable" : "Desactivar",
"Enable" : "Activar",
@@ -80,6 +76,10 @@ OC.L10N.register(
"set new password" : "establecer nueva contraseña",
"Default" : "Predeterminado",
"Language changed" : "Idioma cambiado",
+ "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 se pudo añadir el usuario al grupo %s",
+ "Unable to remove user from group %s" : "No se pudo eliminar al usuario del grupo %s",
+ "Please wait...." : "Espere, por favor....",
"Everything (fatal issues, errors, warnings, info, debug)" : "Todo (Información, Avisos, Errores, debug y problemas fatales)",
"Info, warnings, errors and fatal issues" : "Información, Avisos, Errores y problemas fatales",
"Warnings, errors and fatal issues" : "Advertencias, errores y problemas fatales",
@@ -87,7 +87,6 @@ OC.L10N.register(
"Fatal issues only" : "Problemas fatales solamente",
"Log" : "Registro",
"More" : "Más",
- "Less" : "Menos",
- "External Storage" : "Almacenamiento externo"
+ "Less" : "Menos"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/es_MX.json b/settings/l10n/es_MX.json
index 79ea5692cd21d4c7e8300b119f8ae5f003be4d35..0eca2bb49aeb6f524f569db39e4cabab39f74ea2 100644
--- a/settings/l10n/es_MX.json
+++ b/settings/l10n/es_MX.json
@@ -12,12 +12,8 @@
"Unable to change full name" : "No se puede cambiar el nombre completo",
"Your full name has been changed." : "Se ha cambiado su nombre completo.",
"Email saved" : "Correo electrónico guardado",
- "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 se pudo añadir el usuario al grupo %s",
- "Unable to remove user from group %s" : "No se pudo eliminar al usuario del grupo %s",
"Couldn't update app." : "No se pudo actualizar la aplicación.",
"All" : "Todos",
- "Please wait...." : "Espere, por favor....",
"Error while disabling app" : "Error mientras se desactivaba la aplicación",
"Disable" : "Desactivar",
"Enable" : "Activar",
@@ -78,6 +74,10 @@
"set new password" : "establecer nueva contraseña",
"Default" : "Predeterminado",
"Language changed" : "Idioma cambiado",
+ "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 se pudo añadir el usuario al grupo %s",
+ "Unable to remove user from group %s" : "No se pudo eliminar al usuario del grupo %s",
+ "Please wait...." : "Espere, por favor....",
"Everything (fatal issues, errors, warnings, info, debug)" : "Todo (Información, Avisos, Errores, debug y problemas fatales)",
"Info, warnings, errors and fatal issues" : "Información, Avisos, Errores y problemas fatales",
"Warnings, errors and fatal issues" : "Advertencias, errores y problemas fatales",
@@ -85,7 +85,6 @@
"Fatal issues only" : "Problemas fatales solamente",
"Log" : "Registro",
"More" : "Más",
- "Less" : "Menos",
- "External Storage" : "Almacenamiento externo"
+ "Less" : "Menos"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/et_EE.js b/settings/l10n/et_EE.js
index 2c259f5626ff8c3145c4feb029c0339c40a0f011..58ebcc50cd36678e8b650d5093cef7aa5fe37576 100644
--- a/settings/l10n/et_EE.js
+++ b/settings/l10n/et_EE.js
@@ -30,9 +30,6 @@ OC.L10N.register(
"Unable to change mail address" : "E-posti aadressi muutmine ebaõnnestus",
"Email saved" : "Kiri on salvestatud",
"Couldn't remove app." : "Ei suutnud rakendit eemaldada.",
- "Admins can't remove themself from the admin group" : "Administraatorid ei saa ise end admin grupist eemaldada",
- "Unable to add user to group %s" : "Kasutajat ei saa lisada gruppi %s",
- "Unable to remove user from group %s" : "Kasutajat ei saa eemaldada grupist %s",
"Couldn't update app." : "Rakenduse uuendamine ebaõnnestus.",
"Add trusted domain" : "Lis ausaldusväärne domeen",
"Migration in progress. Please wait until the migration is finished" : "Kolimine on käimas. Palun oota, kuni see on lõpetatud",
@@ -42,7 +39,6 @@ OC.L10N.register(
"All" : "Kõik",
"Update to %s" : "Uuenda versioonile %s",
"No apps found for your version" : "Sinu versiooni jaoks ei leitud ühtegi rakendust",
- "Please wait...." : "Palun oota...",
"Error while disabling app" : "Viga rakenduse keelamisel",
"Disable" : "Lülita välja",
"Enable" : "Lülita sisse",
@@ -145,7 +141,6 @@ OC.L10N.register(
"Show description …" : "Näita kirjeldist ...",
"Hide description …" : "Peida kirjeldus ...",
"Enable only for specific groups" : "Luba ainult kindlad grupid",
- "Uninstall App" : "Eemada rakend",
"SSL Root Certificates" : "SLL Juur sertifikaadid",
"Common Name" : "Üldnimetus",
"Valid until" : "Kehtib kuni",
@@ -199,7 +194,11 @@ OC.L10N.register(
"change email address" : "muuda e-posti aadressi",
"Default" : "Vaikeväärtus",
"Language changed" : "Keel on muudetud",
+ "Admins can't remove themself from the admin group" : "Administraatorid ei saa ise end admin grupist eemaldada",
+ "Unable to add user to group %s" : "Kasutajat ei saa lisada gruppi %s",
+ "Unable to remove user from group %s" : "Kasutajat ei saa eemaldada grupist %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Oled sa kindel, et soovid lisada domeeni \"{domain}\" usaldusväärseks domeeniks?",
+ "Please wait...." : "Palun oota...",
"Everything (fatal issues, errors, warnings, info, debug)" : "Kõik (tõsised probleemid, veateated, hoiatused, info, veatuvastus)",
"Info, warnings, errors and fatal issues" : "Info, hoiatused, veateted ja tõsised probleemid",
"Warnings, errors and fatal issues" : "Hoiatused, veateated ja tõsised probleemid",
@@ -213,11 +212,8 @@ OC.L10N.register(
"The logfile is bigger than 100 MB. Downloading it may take some time!" : "Logifail on suurem kui 100 MB. Allalaadimine võib veidi aega võtta!",
"Allow users to send mail notification for shared files" : "Luba kasutajatel saata e-posti teavitusi jagatud failide kohta",
"Experimental applications ahead" : "Ees on katsetusjärgus rakendused",
+ "Uninstall App" : "Eemada rakend",
"Enable experimental apps" : "Luba katsetusjärgus rakenduste kasutamine",
- "Group" : "Grupp",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Väline salvestuskoht",
- "Updates" : "Uuendused"
+ "Group" : "Grupp"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/et_EE.json b/settings/l10n/et_EE.json
index 03a4c54f9c0d3a14625b73af18eb97ab1cee5665..d8732c4e33808f58de09f3882dfea938ba36887b 100644
--- a/settings/l10n/et_EE.json
+++ b/settings/l10n/et_EE.json
@@ -28,9 +28,6 @@
"Unable to change mail address" : "E-posti aadressi muutmine ebaõnnestus",
"Email saved" : "Kiri on salvestatud",
"Couldn't remove app." : "Ei suutnud rakendit eemaldada.",
- "Admins can't remove themself from the admin group" : "Administraatorid ei saa ise end admin grupist eemaldada",
- "Unable to add user to group %s" : "Kasutajat ei saa lisada gruppi %s",
- "Unable to remove user from group %s" : "Kasutajat ei saa eemaldada grupist %s",
"Couldn't update app." : "Rakenduse uuendamine ebaõnnestus.",
"Add trusted domain" : "Lis ausaldusväärne domeen",
"Migration in progress. Please wait until the migration is finished" : "Kolimine on käimas. Palun oota, kuni see on lõpetatud",
@@ -40,7 +37,6 @@
"All" : "Kõik",
"Update to %s" : "Uuenda versioonile %s",
"No apps found for your version" : "Sinu versiooni jaoks ei leitud ühtegi rakendust",
- "Please wait...." : "Palun oota...",
"Error while disabling app" : "Viga rakenduse keelamisel",
"Disable" : "Lülita välja",
"Enable" : "Lülita sisse",
@@ -143,7 +139,6 @@
"Show description …" : "Näita kirjeldist ...",
"Hide description …" : "Peida kirjeldus ...",
"Enable only for specific groups" : "Luba ainult kindlad grupid",
- "Uninstall App" : "Eemada rakend",
"SSL Root Certificates" : "SLL Juur sertifikaadid",
"Common Name" : "Üldnimetus",
"Valid until" : "Kehtib kuni",
@@ -197,7 +192,11 @@
"change email address" : "muuda e-posti aadressi",
"Default" : "Vaikeväärtus",
"Language changed" : "Keel on muudetud",
+ "Admins can't remove themself from the admin group" : "Administraatorid ei saa ise end admin grupist eemaldada",
+ "Unable to add user to group %s" : "Kasutajat ei saa lisada gruppi %s",
+ "Unable to remove user from group %s" : "Kasutajat ei saa eemaldada grupist %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Oled sa kindel, et soovid lisada domeeni \"{domain}\" usaldusväärseks domeeniks?",
+ "Please wait...." : "Palun oota...",
"Everything (fatal issues, errors, warnings, info, debug)" : "Kõik (tõsised probleemid, veateated, hoiatused, info, veatuvastus)",
"Info, warnings, errors and fatal issues" : "Info, hoiatused, veateted ja tõsised probleemid",
"Warnings, errors and fatal issues" : "Hoiatused, veateated ja tõsised probleemid",
@@ -211,11 +210,8 @@
"The logfile is bigger than 100 MB. Downloading it may take some time!" : "Logifail on suurem kui 100 MB. Allalaadimine võib veidi aega võtta!",
"Allow users to send mail notification for shared files" : "Luba kasutajatel saata e-posti teavitusi jagatud failide kohta",
"Experimental applications ahead" : "Ees on katsetusjärgus rakendused",
+ "Uninstall App" : "Eemada rakend",
"Enable experimental apps" : "Luba katsetusjärgus rakenduste kasutamine",
- "Group" : "Grupp",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Väline salvestuskoht",
- "Updates" : "Uuendused"
+ "Group" : "Grupp"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/eu.js b/settings/l10n/eu.js
index 31e6a91a8d234df4c8411c861bbaa02a246f2c83..ac332f20a21d7de56dcaa12e8c921ebc41c79b23 100644
--- a/settings/l10n/eu.js
+++ b/settings/l10n/eu.js
@@ -29,15 +29,11 @@ OC.L10N.register(
"Unable to change mail address" : "Ezin izan da posta helbidea aldatu",
"Email saved" : "Eposta gorde da",
"Couldn't remove app." : "Ezin izan da aplikazioa ezabatu..",
- "Admins can't remove themself from the admin group" : "Kudeatzaileak ezin du bere burua kendu kudeatzaile taldetik",
- "Unable to add user to group %s" : "Ezin izan da erabiltzailea %s taldera gehitu",
- "Unable to remove user from group %s" : "Ezin izan da erabiltzailea %s taldetik ezabatu",
"Couldn't update app." : "Ezin izan da aplikazioa eguneratu.",
"Add trusted domain" : "Gehitu domeinu fidagarria",
"Sending..." : "Bidaltzen...",
"All" : "Denak",
"Update to %s" : "Eguneratu %sra",
- "Please wait...." : "Itxoin mesedez...",
"Error while disabling app" : "Erroea izan da aplikazioa desgaitzerakoan",
"Disable" : "Ez-gaitu",
"Enable" : "Gaitu",
@@ -118,7 +114,6 @@ OC.L10N.register(
"Documentation:" : "Dokumentazioa:",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Aplikazioa ezin da instalatu hurrengo menpekotasunak betetzen ez direlako:",
"Enable only for specific groups" : "Baimendu bakarri talde espezifikoetarako",
- "Uninstall App" : "Desinstalatu aplikazioa",
"Common Name" : "Izen arrunta",
"Valid until" : "Data hau arte baliogarria",
"Issued By" : "Honek bidalita",
@@ -167,7 +162,11 @@ OC.L10N.register(
"Default" : "Lehenetsia",
"log-level out of allowed range" : "erregistro-maila baimendutako tartetik at",
"Language changed" : "Hizkuntza aldatuta",
+ "Admins can't remove themself from the admin group" : "Kudeatzaileak ezin du bere burua kendu kudeatzaile taldetik",
+ "Unable to add user to group %s" : "Ezin izan da erabiltzailea %s taldera gehitu",
+ "Unable to remove user from group %s" : "Ezin izan da erabiltzailea %s taldetik ezabatu",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Ziur zaude gehitu nahi duzula \"{domain}\" domeinu fidagarri gisa?",
+ "Please wait...." : "Itxoin mesedez...",
"Everything (fatal issues, errors, warnings, info, debug)" : "Dena (arazo larriak, erroreak, abisuak, informazioa, arazketa)",
"Info, warnings, errors and fatal issues" : "Informazioa, abisuak, erroreak eta arazo larriak.",
"Warnings, errors and fatal issues" : "Abisuak, erroreak eta arazo larriak",
@@ -179,10 +178,9 @@ OC.L10N.register(
"Less" : "Gutxiago",
"Allow users to send mail notification for shared files" : "Baimendu erabiltzaileak epostako jakinarazpenak bidaltzen partekatutako fitxategientzat",
"Allow users to send mail notification for shared files to other users" : "Baimendu erabiltzaileak beste erabiltzaileei epostako jakinarazpenak bidaltzen partekatutako fitxategientzat",
+ "Uninstall App" : "Desinstalatu aplikazioa",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Kaixo,
orain %s kontu bat duzula esateko besterik ez.
Zure erabiltzailea: %s
Sar zaitez: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Kaixo,\n\norain %s kontu bat duzula esateko besterik ez.\n\nZure erabiltzailea: %s\nSar zaitez: %s\n\n",
- "Group" : "Taldea",
- "External Storage" : "Kanpoko biltegiratzea",
- "Updates" : "Eguneraketak"
+ "Group" : "Taldea"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/eu.json b/settings/l10n/eu.json
index 7575079f23e823dd5289e570d3826cb72d9acb23..a7d45148ef3599a35c3469ed6153e1b0d8a538f6 100644
--- a/settings/l10n/eu.json
+++ b/settings/l10n/eu.json
@@ -27,15 +27,11 @@
"Unable to change mail address" : "Ezin izan da posta helbidea aldatu",
"Email saved" : "Eposta gorde da",
"Couldn't remove app." : "Ezin izan da aplikazioa ezabatu..",
- "Admins can't remove themself from the admin group" : "Kudeatzaileak ezin du bere burua kendu kudeatzaile taldetik",
- "Unable to add user to group %s" : "Ezin izan da erabiltzailea %s taldera gehitu",
- "Unable to remove user from group %s" : "Ezin izan da erabiltzailea %s taldetik ezabatu",
"Couldn't update app." : "Ezin izan da aplikazioa eguneratu.",
"Add trusted domain" : "Gehitu domeinu fidagarria",
"Sending..." : "Bidaltzen...",
"All" : "Denak",
"Update to %s" : "Eguneratu %sra",
- "Please wait...." : "Itxoin mesedez...",
"Error while disabling app" : "Erroea izan da aplikazioa desgaitzerakoan",
"Disable" : "Ez-gaitu",
"Enable" : "Gaitu",
@@ -116,7 +112,6 @@
"Documentation:" : "Dokumentazioa:",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Aplikazioa ezin da instalatu hurrengo menpekotasunak betetzen ez direlako:",
"Enable only for specific groups" : "Baimendu bakarri talde espezifikoetarako",
- "Uninstall App" : "Desinstalatu aplikazioa",
"Common Name" : "Izen arrunta",
"Valid until" : "Data hau arte baliogarria",
"Issued By" : "Honek bidalita",
@@ -165,7 +160,11 @@
"Default" : "Lehenetsia",
"log-level out of allowed range" : "erregistro-maila baimendutako tartetik at",
"Language changed" : "Hizkuntza aldatuta",
+ "Admins can't remove themself from the admin group" : "Kudeatzaileak ezin du bere burua kendu kudeatzaile taldetik",
+ "Unable to add user to group %s" : "Ezin izan da erabiltzailea %s taldera gehitu",
+ "Unable to remove user from group %s" : "Ezin izan da erabiltzailea %s taldetik ezabatu",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Ziur zaude gehitu nahi duzula \"{domain}\" domeinu fidagarri gisa?",
+ "Please wait...." : "Itxoin mesedez...",
"Everything (fatal issues, errors, warnings, info, debug)" : "Dena (arazo larriak, erroreak, abisuak, informazioa, arazketa)",
"Info, warnings, errors and fatal issues" : "Informazioa, abisuak, erroreak eta arazo larriak.",
"Warnings, errors and fatal issues" : "Abisuak, erroreak eta arazo larriak",
@@ -177,10 +176,9 @@
"Less" : "Gutxiago",
"Allow users to send mail notification for shared files" : "Baimendu erabiltzaileak epostako jakinarazpenak bidaltzen partekatutako fitxategientzat",
"Allow users to send mail notification for shared files to other users" : "Baimendu erabiltzaileak beste erabiltzaileei epostako jakinarazpenak bidaltzen partekatutako fitxategientzat",
+ "Uninstall App" : "Desinstalatu aplikazioa",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Kaixo,
orain %s kontu bat duzula esateko besterik ez.
Zure erabiltzailea: %s
Sar zaitez: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Kaixo,\n\norain %s kontu bat duzula esateko besterik ez.\n\nZure erabiltzailea: %s\nSar zaitez: %s\n\n",
- "Group" : "Taldea",
- "External Storage" : "Kanpoko biltegiratzea",
- "Updates" : "Eguneraketak"
+ "Group" : "Taldea"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/fa.js b/settings/l10n/fa.js
index 1adb0a40646555cfdacdfc93bc2eb63ae52cbc7b..712d52864e2fe6ff9bab2260e0e237519ebb0d3a 100644
--- a/settings/l10n/fa.js
+++ b/settings/l10n/fa.js
@@ -28,9 +28,6 @@ OC.L10N.register(
"Unable to change mail address" : "تغییر آدرس ایمیل امکانپذیر نیست",
"Email saved" : "ایمیل ذخیره شد",
"Couldn't remove app." : "امکان حذف برنامه وجود ندارد.",
- "Admins can't remove themself from the admin group" : "مدیران نمی توانند خود را از گروه مدیریت حذف کنند",
- "Unable to add user to group %s" : "امکان افزودن کاربر به گروه %s نیست",
- "Unable to remove user from group %s" : "امکان حذف کاربر از گروه %s نیست",
"Couldn't update app." : "برنامه را نمی توان به هنگام ساخت.",
"Add trusted domain" : "افزودن دامنه مورد اعتماد",
"Migration in progress. Please wait until the migration is finished" : "مهاجرت در حال اجراست. لطفا تا اتمام مهاجرت صبر کنید",
@@ -40,7 +37,6 @@ OC.L10N.register(
"All" : "همه",
"Update to %s" : "بروزرسانی به %s",
"No apps found for your version" : "هیچ برنامهای برای نسخهی شما یافت نشد",
- "Please wait...." : "لطفا صبر کنید ...",
"Error while disabling app" : "خطا در هنگام غیر فعال سازی برنامه",
"Disable" : "غیرفعال",
"Enable" : "فعال",
@@ -139,7 +135,6 @@ OC.L10N.register(
"Hide description …" : "عدم نمایش توضیحات...",
"This app cannot be installed because the following dependencies are not fulfilled:" : "امکان نصب این برنامه وجود ندارد، این پیشنیازها انجام نشدهاند:",
"Enable only for specific groups" : "فعال سازی تنها برای گروه های خاص",
- "Uninstall App" : "حذف برنامه",
"Common Name" : "نام مشترک",
"Valid until" : "متعبر تا",
"Issued By" : "صدور توسط",
@@ -191,6 +186,10 @@ OC.L10N.register(
"change email address" : "تغییر آدرس ایمیل ",
"Default" : "پیش فرض",
"Language changed" : "زبان تغییر کرد",
+ "Admins can't remove themself from the admin group" : "مدیران نمی توانند خود را از گروه مدیریت حذف کنند",
+ "Unable to add user to group %s" : "امکان افزودن کاربر به گروه %s نیست",
+ "Unable to remove user from group %s" : "امکان حذف کاربر از گروه %s نیست",
+ "Please wait...." : "لطفا صبر کنید ...",
"Everything (fatal issues, errors, warnings, info, debug)" : "همه موارد (مشکلات مهلک، خطاها، اخطارها، اطلاعات، خطایابی)",
"Info, warnings, errors and fatal issues" : "اطلاعات، اخطارها، خطاها، مشکلات اساسی",
"Warnings, errors and fatal issues" : "اخطارها، خطاها، مشکلات مهلک",
@@ -201,12 +200,8 @@ OC.L10N.register(
"More" : "بیشتر",
"Less" : "کمتر",
"Allow users to send mail notification for shared files" : "اجازه به کاربران برای ارسال ایمیل نوتیفیکیشن برای فایلهای به اشتراکگذاشته شده",
+ "Uninstall App" : "حذف برنامه",
"Enable experimental apps" : "فعالسازی برنامههای آزمایشی",
- "Group" : "گروه",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "حافظه خارجی",
- "Updates" : "به روز رسانی ها",
- "An error occurred: {message}" : "یک خطا رخداده است: {message}"
+ "Group" : "گروه"
},
"nplurals=1; plural=0;");
diff --git a/settings/l10n/fa.json b/settings/l10n/fa.json
index 812459d288373cbaf00f3e4c542e886d56ba6930..33fcfe51a9949183aace9d5eadc72cdcc2328f8d 100644
--- a/settings/l10n/fa.json
+++ b/settings/l10n/fa.json
@@ -26,9 +26,6 @@
"Unable to change mail address" : "تغییر آدرس ایمیل امکانپذیر نیست",
"Email saved" : "ایمیل ذخیره شد",
"Couldn't remove app." : "امکان حذف برنامه وجود ندارد.",
- "Admins can't remove themself from the admin group" : "مدیران نمی توانند خود را از گروه مدیریت حذف کنند",
- "Unable to add user to group %s" : "امکان افزودن کاربر به گروه %s نیست",
- "Unable to remove user from group %s" : "امکان حذف کاربر از گروه %s نیست",
"Couldn't update app." : "برنامه را نمی توان به هنگام ساخت.",
"Add trusted domain" : "افزودن دامنه مورد اعتماد",
"Migration in progress. Please wait until the migration is finished" : "مهاجرت در حال اجراست. لطفا تا اتمام مهاجرت صبر کنید",
@@ -38,7 +35,6 @@
"All" : "همه",
"Update to %s" : "بروزرسانی به %s",
"No apps found for your version" : "هیچ برنامهای برای نسخهی شما یافت نشد",
- "Please wait...." : "لطفا صبر کنید ...",
"Error while disabling app" : "خطا در هنگام غیر فعال سازی برنامه",
"Disable" : "غیرفعال",
"Enable" : "فعال",
@@ -137,7 +133,6 @@
"Hide description …" : "عدم نمایش توضیحات...",
"This app cannot be installed because the following dependencies are not fulfilled:" : "امکان نصب این برنامه وجود ندارد، این پیشنیازها انجام نشدهاند:",
"Enable only for specific groups" : "فعال سازی تنها برای گروه های خاص",
- "Uninstall App" : "حذف برنامه",
"Common Name" : "نام مشترک",
"Valid until" : "متعبر تا",
"Issued By" : "صدور توسط",
@@ -189,6 +184,10 @@
"change email address" : "تغییر آدرس ایمیل ",
"Default" : "پیش فرض",
"Language changed" : "زبان تغییر کرد",
+ "Admins can't remove themself from the admin group" : "مدیران نمی توانند خود را از گروه مدیریت حذف کنند",
+ "Unable to add user to group %s" : "امکان افزودن کاربر به گروه %s نیست",
+ "Unable to remove user from group %s" : "امکان حذف کاربر از گروه %s نیست",
+ "Please wait...." : "لطفا صبر کنید ...",
"Everything (fatal issues, errors, warnings, info, debug)" : "همه موارد (مشکلات مهلک، خطاها، اخطارها، اطلاعات، خطایابی)",
"Info, warnings, errors and fatal issues" : "اطلاعات، اخطارها، خطاها، مشکلات اساسی",
"Warnings, errors and fatal issues" : "اخطارها، خطاها، مشکلات مهلک",
@@ -199,12 +198,8 @@
"More" : "بیشتر",
"Less" : "کمتر",
"Allow users to send mail notification for shared files" : "اجازه به کاربران برای ارسال ایمیل نوتیفیکیشن برای فایلهای به اشتراکگذاشته شده",
+ "Uninstall App" : "حذف برنامه",
"Enable experimental apps" : "فعالسازی برنامههای آزمایشی",
- "Group" : "گروه",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "حافظه خارجی",
- "Updates" : "به روز رسانی ها",
- "An error occurred: {message}" : "یک خطا رخداده است: {message}"
+ "Group" : "گروه"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/settings/l10n/fi_FI.js b/settings/l10n/fi_FI.js
index cecd6bb5bd44635be37e23b4a98f1ba9fb5cb7ab..dc9a7672601baa39ed75bbcd2adfa7e0bf2e8981 100644
--- a/settings/l10n/fi_FI.js
+++ b/settings/l10n/fi_FI.js
@@ -35,9 +35,6 @@ OC.L10N.register(
"Unable to change mail address" : "Sähköpostiosoitteen vaihtaminen ei onnistunut",
"Email saved" : "Sähköposti tallennettu",
"Couldn't remove app." : "Sovelluksen poistaminen epäonnistui.",
- "Admins can't remove themself from the admin group" : "Ylläpitäjät eivät poistaa omia tunnuksiaan ylläpitäjien ryhmästä",
- "Unable to add user to group %s" : "Käyttäjän tai ryhmän %s lisääminen ei onnistu",
- "Unable to remove user from group %s" : "Käyttäjän poistaminen ryhmästä %s ei onnistu",
"Couldn't update app." : "Sovelluksen päivitys epäonnistui.",
"Add trusted domain" : "Lisää luotettu toimialue",
"Migration in progress. Please wait until the migration is finished" : "Migraatio on kesken. Odota kunnes migraatio valmistuu",
@@ -51,7 +48,6 @@ OC.L10N.register(
"The app will be downloaded from the app store" : "Sovellus ladataan sovelluskaupasta",
"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." : "Hyväksytyt sovellukset on kehitetty luotettujen kehittäjien toimesta. Hyväksytyille sovelluksille on suoritettu pintapuolinen turvallisuustarkastus. Sovelluksia ylläpidetään avoimen koodin tietovarastoissa. Sovellusten kehittäjät mieltävät sovellukset vakaiksi ja valmiiksi tavalliseen käyttöön.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Tätä sovellusta ei ole tarkistettu tietoturvauhkien varalta. Sovellus on uusi ja mahdollisesti tiedostettu epävakaaksi. Asenna omalla vastuulla.",
- "Please wait...." : "Odota hetki...",
"Error while disabling app" : "Virhe poistaessa sovellusta käytöstä",
"Disable" : "Poista käytöstä",
"Enable" : "Käytä",
@@ -183,7 +179,6 @@ OC.L10N.register(
"This app has an update available." : "Tähän sovellukseen on päivitys saatavilla.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Tätä sovellusta ei voi asentaa, koska seuraavat riippuvuudet eivät täyty:",
"Enable only for specific groups" : "Salli vain tietyille ryhmille",
- "Uninstall App" : "Poista sovelluksen asennus",
"SSL Root Certificates" : "SSL-juurivarmenteet",
"Common Name" : "Yleinen nimi",
"Valid until" : "Kelvollinen",
@@ -247,7 +242,11 @@ OC.L10N.register(
"Default" : "Oletus",
"log-level out of allowed range" : "lokitaso ei sallittujen rajojen sisäpuolella",
"Language changed" : "Kieli on vaihdettu",
+ "Admins can't remove themself from the admin group" : "Ylläpitäjät eivät poistaa omia tunnuksiaan ylläpitäjien ryhmästä",
+ "Unable to add user to group %s" : "Käyttäjän tai ryhmän %s lisääminen ei onnistu",
+ "Unable to remove user from group %s" : "Käyttäjän poistaminen ryhmästä %s ei onnistu",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Haluatko varmasti liittää kohteen \"{domain}\" luotetuksi toimialueeksi?",
+ "Please wait...." : "Odota hetki...",
"Everything (fatal issues, errors, warnings, info, debug)" : "Kaikki (vakavat ongelmat, virheet, varoitukset, tiedot, vianjäljitys)",
"Info, warnings, errors and fatal issues" : "Tiedot, varoitukset, virheet ja vakavat ongelmat",
"Warnings, errors and fatal issues" : "Varoitukset, virheet ja vakavat ongelmat",
@@ -265,14 +264,10 @@ OC.L10N.register(
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Varsinkin työpöytäsovelluksen tiedostosynkronointia käyttäessä SQLiten käyttö ei ole suositeltavaa.",
"Experimental applications ahead" : "Kokeellisia sovelluksia edessä",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Kokeellisia sovelluksia ei ole tarkistettu tietoturvauhkien varalta. Sovellukset ovat uusia, ne saattavat olla epävakaita ja ovat nopean kehityksen alaisia. Kokeellisten sovellusten asentaminen saattaa aiheuttaa tietojen katoamista tai tietoturvauhkia.",
+ "Uninstall App" : "Poista sovelluksen asennus",
"Enable experimental apps" : "Käytä kokeiluasteella olevia sovelluksia",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hei
Sinulla on nyt %s-tili.
Käyttäjätunnus: %s
Aloita käyttö: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hei\n\nSinulla on nyt %s-tili.\n\nKäyttäjätunnuksesi: %s\nAloita käyttö: %s\n\n",
- "Group" : "Ryhmä",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Erillinen tallennusväline",
- "Updates" : "Päivitykset",
- "An error occurred: {message}" : "Tapahtui virhe: {message}"
+ "Group" : "Ryhmä"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/fi_FI.json b/settings/l10n/fi_FI.json
index 46b8c602950b6fb7bb3bcd4f134838963ea2d794..c241717a60403f65e4428b95a7b50ae7cee96064 100644
--- a/settings/l10n/fi_FI.json
+++ b/settings/l10n/fi_FI.json
@@ -33,9 +33,6 @@
"Unable to change mail address" : "Sähköpostiosoitteen vaihtaminen ei onnistunut",
"Email saved" : "Sähköposti tallennettu",
"Couldn't remove app." : "Sovelluksen poistaminen epäonnistui.",
- "Admins can't remove themself from the admin group" : "Ylläpitäjät eivät poistaa omia tunnuksiaan ylläpitäjien ryhmästä",
- "Unable to add user to group %s" : "Käyttäjän tai ryhmän %s lisääminen ei onnistu",
- "Unable to remove user from group %s" : "Käyttäjän poistaminen ryhmästä %s ei onnistu",
"Couldn't update app." : "Sovelluksen päivitys epäonnistui.",
"Add trusted domain" : "Lisää luotettu toimialue",
"Migration in progress. Please wait until the migration is finished" : "Migraatio on kesken. Odota kunnes migraatio valmistuu",
@@ -49,7 +46,6 @@
"The app will be downloaded from the app store" : "Sovellus ladataan sovelluskaupasta",
"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." : "Hyväksytyt sovellukset on kehitetty luotettujen kehittäjien toimesta. Hyväksytyille sovelluksille on suoritettu pintapuolinen turvallisuustarkastus. Sovelluksia ylläpidetään avoimen koodin tietovarastoissa. Sovellusten kehittäjät mieltävät sovellukset vakaiksi ja valmiiksi tavalliseen käyttöön.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Tätä sovellusta ei ole tarkistettu tietoturvauhkien varalta. Sovellus on uusi ja mahdollisesti tiedostettu epävakaaksi. Asenna omalla vastuulla.",
- "Please wait...." : "Odota hetki...",
"Error while disabling app" : "Virhe poistaessa sovellusta käytöstä",
"Disable" : "Poista käytöstä",
"Enable" : "Käytä",
@@ -181,7 +177,6 @@
"This app has an update available." : "Tähän sovellukseen on päivitys saatavilla.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Tätä sovellusta ei voi asentaa, koska seuraavat riippuvuudet eivät täyty:",
"Enable only for specific groups" : "Salli vain tietyille ryhmille",
- "Uninstall App" : "Poista sovelluksen asennus",
"SSL Root Certificates" : "SSL-juurivarmenteet",
"Common Name" : "Yleinen nimi",
"Valid until" : "Kelvollinen",
@@ -245,7 +240,11 @@
"Default" : "Oletus",
"log-level out of allowed range" : "lokitaso ei sallittujen rajojen sisäpuolella",
"Language changed" : "Kieli on vaihdettu",
+ "Admins can't remove themself from the admin group" : "Ylläpitäjät eivät poistaa omia tunnuksiaan ylläpitäjien ryhmästä",
+ "Unable to add user to group %s" : "Käyttäjän tai ryhmän %s lisääminen ei onnistu",
+ "Unable to remove user from group %s" : "Käyttäjän poistaminen ryhmästä %s ei onnistu",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Haluatko varmasti liittää kohteen \"{domain}\" luotetuksi toimialueeksi?",
+ "Please wait...." : "Odota hetki...",
"Everything (fatal issues, errors, warnings, info, debug)" : "Kaikki (vakavat ongelmat, virheet, varoitukset, tiedot, vianjäljitys)",
"Info, warnings, errors and fatal issues" : "Tiedot, varoitukset, virheet ja vakavat ongelmat",
"Warnings, errors and fatal issues" : "Varoitukset, virheet ja vakavat ongelmat",
@@ -263,14 +262,10 @@
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Varsinkin työpöytäsovelluksen tiedostosynkronointia käyttäessä SQLiten käyttö ei ole suositeltavaa.",
"Experimental applications ahead" : "Kokeellisia sovelluksia edessä",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Kokeellisia sovelluksia ei ole tarkistettu tietoturvauhkien varalta. Sovellukset ovat uusia, ne saattavat olla epävakaita ja ovat nopean kehityksen alaisia. Kokeellisten sovellusten asentaminen saattaa aiheuttaa tietojen katoamista tai tietoturvauhkia.",
+ "Uninstall App" : "Poista sovelluksen asennus",
"Enable experimental apps" : "Käytä kokeiluasteella olevia sovelluksia",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hei
Sinulla on nyt %s-tili.
Käyttäjätunnus: %s
Aloita käyttö: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hei\n\nSinulla on nyt %s-tili.\n\nKäyttäjätunnuksesi: %s\nAloita käyttö: %s\n\n",
- "Group" : "Ryhmä",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Erillinen tallennusväline",
- "Updates" : "Päivitykset",
- "An error occurred: {message}" : "Tapahtui virhe: {message}"
+ "Group" : "Ryhmä"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js
index ec4c11ff7cc4cbf5cfb1cd39025ed78ffb13fcdf..c20a4acace50027223475fdf076d1b22cf3d7cf7 100644
--- a/settings/l10n/fr.js
+++ b/settings/l10n/fr.js
@@ -25,12 +25,13 @@ OC.L10N.register(
"You need to set your user email before being able to send test emails." : "Vous devez définir une adresse e-mail dans vos paramètres personnels avant de pouvoir envoyer des e-mails de test.",
"Invalid request" : "Requête non valide",
"Invalid mail address" : "Adresse e-mail non valide",
+ "No valid group selected" : "Aucun groupe valide sélectionné",
"A user with that name already exists." : "Un utilisateur à ce nom existe déjà.",
"Unable to create user." : "Impossible de créer l'utilisateur.",
"Your %s account was created" : "Votre compte %s a été créé",
"Unable to delete user." : "Impossible de supprimer l'utilisateur.",
"Settings saved" : "Paramètres sauvegardés",
- "Unable to change full name" : "Impossible de changer le nom complet",
+ "Unable to change full name" : "Impossible de modifier le nom complet",
"Unable to change email address" : "Impossible de modifier l'adresse e-mail",
"Your full name has been changed." : "Votre nom complet a été modifié.",
"Forbidden" : "Interdit",
@@ -39,9 +40,6 @@ OC.L10N.register(
"Email saved" : "E-mail sauvegardé",
"Password confirmation is required" : "Confirmation par mot de passe est requise",
"Couldn't remove app." : "Impossible de supprimer l'application.",
- "Admins can't remove themself from the admin group" : "Les administrateurs ne peuvent pas se retirer eux-mêmes du groupe admin",
- "Unable to add user to group %s" : "Impossible d'ajouter l'utilisateur au groupe %s",
- "Unable to remove user from group %s" : "Impossible de supprimer l'utilisateur du groupe %s",
"Couldn't update app." : "Impossible de mettre à jour l'application",
"Are you really sure you want add {domain} as trusted domain?" : "Êtes-vous vraiment sûr de vouloir ajouter {domain} comme domaine de confiance ?",
"Add trusted domain" : "Ajouter un domaine de confiance",
@@ -58,7 +56,7 @@ OC.L10N.register(
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Les applications officielles sont développées par et dans la communauté. Elles offrent les fonctionnalités indispensables et sont prêtes pour être utilisées en production.",
"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." : "Les applications approuvées sont créées par des développeurs de confiance et ont passé les tests de sécurité. Elles sont activement maintenues et leur code source est ouvert. Leurs développeurs les considèrent stables pour une utilisation normale.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Cette application est nouvelle ou instable, et sa sécurité n'a pas été vérifiée. Installez-la à vos risques et périls!",
- "Please wait...." : "Veuillez patienter…",
+ "Enabling app …" : "Activation de l'application...",
"Error while disabling app" : "Erreur lors de la désactivation de l'application",
"Disable" : "Désactiver",
"Enable" : "Activer",
@@ -120,11 +118,13 @@ OC.L10N.register(
"Groups" : "Groupes",
"Unable to delete {objName}" : "Impossible de supprimer {objName}",
"Error creating group: {message}" : "Erreur lors de la création du groupe : {message}",
- "A valid group name must be provided" : "Vous devez spécifier un nom de groupe valide",
+ "A valid group name must be provided" : "Vous devez indiquer un nom de groupe valide",
"deleted {groupName}" : "{groupName} supprimé",
"undo" : "annuler",
"never" : "jamais",
"deleted {userName}" : "{userName} supprimé",
+ "Unable to add user to group {group}" : "Impossible d'ajouter l'utilisateur au groupe {group}",
+ "Unable to remove user from group {group}" : "Impossible de supprimer l'utilisateur du groupe {group}",
"Add group" : "Ajouter un groupe",
"Invalid quota value \"{val}\"" : "Valeur de quota invalide \"{val}\"",
"no group" : "aucun groupe",
@@ -203,14 +203,14 @@ OC.L10N.register(
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "Utilisez un service webcron pour exécuter cron.php toutes les 15 minutes par HTTP",
"Use system's cron service to call the cron.php file every 15 minutes." : "Utilisez le service cron du système pour appeler le fichier cron.php toutes les 15 minutes.",
"The cron.php needs to be executed by the system user \"%s\"." : "Le cron.php doit être exécuté par l'utilisateur système \"%s\".",
- "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Pour l'executer, vous devez avoir l'extension PHP posix. Regarder la {linkstart}documentation PHP{linkend} pour plus de détails.",
+ "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Pour l'exécuter, vous devez avoir l'extension PHP posix. Regarder la {linkstart}documentation PHP{linkend} pour plus de détails.",
"Version" : "Version",
"Sharing" : "Partage",
"Allow apps to use the Share API" : "Autoriser les applications à utiliser l'API de partage",
"Allow users to share via link" : "Autoriser les utilisateurs à partager par lien",
"Allow public uploads" : "Autoriser les téléversements publics",
"Enforce password protection" : "Imposer la protection par mot de passe",
- "Set default expiration date" : "Spécifier une date d'expiration par défaut",
+ "Set default expiration date" : "Indiquer une date d'expiration par défaut",
"Expire after " : "Expiration après ",
"days" : "jours",
"Enforce expiration date" : "Imposer la date d'expiration",
@@ -220,8 +220,8 @@ OC.L10N.register(
"Exclude groups from sharing" : "Empêcher certains groupes de partager",
"These groups will still be able to receive shares, but not to initiate them." : "Ces groupes ne pourront plus initier de partage, mais ils pourront toujours rejoindre les partages faits par d'autres. ",
"Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Activer l'autocomplétion des noms d'utilisateurs dans la fenêtre de partage. Si cette option est désactivée, les noms complets doivent être indiqués.",
- "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Afficher les conditions d'utilisation sur la page publique de téléversement. (Visible seulement quand la liste des fichiers est masquée.)",
- "This text will be shown on the public link upload page when the file list is hidden." : "Ce texte sera visible sur la page publique de téléversement quand la liste des fichiers est masquée.",
+ "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Afficher les conditions d'utilisation sur la page publique de téléversement (seulement lorsque la liste des fichiers est masquée).",
+ "This text will be shown on the public link upload page when the file list is hidden." : "Ce texte sera affiché sur la page publique de téléversement lorsque la liste des fichiers est masquée.",
"Tips & tricks" : "Trucs et astuces",
"SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite est actuellement utilisé comme système de gestion de base de données. Pour des installations plus volumineuses, nous vous recommandons de migrer vers un autre système de gestion de base de données.",
"This is particularly recommended when using the desktop client for file synchronisation." : "C'est particulièrement recommandé lorsque l'on utilise un client bureau pour la synchronisation des fichiers.",
@@ -247,7 +247,7 @@ OC.L10N.register(
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Cette application n'a pas de version maximum Nextcloud exigée. Ce sera considéré comme une erreur à l'avenir.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Cette application ne peut être installée à cause de ces dépendances non satisfaites :",
"Enable only for specific groups" : "Activer uniquement pour certains groupes",
- "Uninstall App" : "Désinstaller l'application",
+ "Uninstall app" : "Désinstaller l'application",
"SSL Root Certificates" : "Certificats Racines SSL",
"Common Name" : "Nom d'usage",
"Valid until" : "Valide jusqu'à",
@@ -299,9 +299,9 @@ OC.L10N.register(
"If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Si vous voulez apporter votre appui au projet {contributeopen}joignez-vous à son développement{linkclose} ou {contributeopen}passez le mot{linkclose}!",
"Show First Run Wizard again" : "Revoir la fenêtre d'accueil affichée lors de votre première connexion",
"Web, desktop and mobile clients currently logged in to your account." : "Clients web, desktop et mobiles actuellement connectés sur votre compte.",
- "Device" : "Périphérique",
+ "Device" : "Appareil",
"Last activity" : "Dernière activité",
- "Passcodes that give an app or device permissions to access your account." : "Un mot de passe d'application est un mot de passe qui autorise une application ou un périphérique d'accéder à votre compte.",
+ "Passcodes that give an app or device permissions to access your account." : "Codes de sécurité autorisant une application ou un appareil à accéder à votre compte.",
"Name" : "Nom",
"App name" : "Nom de l'application",
"Create new app password" : "Créer un nouveau mot de passe d'application",
@@ -341,7 +341,11 @@ OC.L10N.register(
"Default" : "Défaut",
"log-level out of allowed range" : "niveau de journalisation hors borne",
"Language changed" : "Langue changée",
+ "Admins can't remove themself from the admin group" : "Les administrateurs ne peuvent pas se retirer eux-mêmes du groupe admin",
+ "Unable to add user to group %s" : "Impossible d'ajouter l'utilisateur au groupe %s",
+ "Unable to remove user from group %s" : "Impossible de supprimer l'utilisateur du groupe %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Êtes-vous vraiment sûr de vouloir ajouter \"{domain}\" comme domaine de confiance ?",
+ "Please wait...." : "Veuillez patienter…",
"iPhone" : "iPhone",
"add group" : "ajouter groupe",
"Everything (fatal issues, errors, warnings, info, debug)" : "Tout (erreurs fatales, erreurs, avertissements, informations, debogage)",
@@ -361,10 +365,11 @@ OC.L10N.register(
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "L'utilisation de SQLite est particulièrement déconseillée si vous utilisez le client de bureau pour synchroniser vos données.",
"Experimental applications ahead" : "Attention! Applications expérimentales",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Les applications expérimentales n'ont pas fait l'objet de tests de sécurité, sont encore en développement et peuvent être instables. Les installer peut causer des pertes de données ou des failles de sécurité. ",
+ "Uninstall App" : "Désinstaller l'application",
"Enable experimental apps" : "Activer les applications expérimentales",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Bonjour,
Un compte %s a été créé pour vous.
Votre nom d'utilisateur est : %s
Visitez votre compte : %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Bonjour,
Un compte %s a été créé pour vous.
Votre nom d'utilisateur est : %s
Visitez votre compte : %s
\n",
- "If you want to support the project\n\t\tjoin development\n\t\t \n\t\tspread the word!" : "Si vous voulez appuyer ce projet\nrejoindre le dévellopement\n \npartager!",
+ "If you want to support the project\n\t\tjoin development\n\t\t \n\t\tspread the word!" : "Si vous voulez appuyer ce projet\nrejoindre le développement\n \npartager!",
"Add Group" : "Ajouter groupe",
"Group" : "Groupe",
"Default Quota" : "Quota par défaut",
@@ -372,24 +377,6 @@ OC.L10N.register(
"Group Admin for" : "Groupe admin pour",
"Storage Location" : "Emplacement de stockage",
"User Backend" : "Retour utilisateur",
- "Last Login" : "Dernière connexion",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Stockage externe",
- "Updates" : "Mises à jour",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "Les applications officielles sont développées par et pour al communauté Nextcloud. Elles offrent les fonctionnalités indispensables et sont prêtes pour être utilisées en production.",
- "No apps found for \"{query}\"" : "Aucune application trouvée pour \"{query}\"",
- "An error occurred: {message}" : "Une erreur est survenue : {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Veuillez consulter la documentation d'installation ↗ pour savoir comment configurer php sur votre serveur, en particulier en cas d'utilisation de php-fpm.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Votre base de données ne fonctionne pas avec le niveau d'isolation de transaction \"READ COMMITED\". Ceci peut causer des problèmes quand plusieurs actions sont exécutées en parallèle.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Votre serveur fonctionne actuellement sur une plateforme Microsoft Windows. Nous vous recommandons fortement d'utiliser une plateforme Linux pour une expérience utilisateur optimale.",
- "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 documentation ↗ for more information." : "Le verrouillage transactionnel des fichiers est désactivé, cela peut causer des conflits en cas d'accès concurrent. Configurez 'filelocking.enabled' dans config.php pour éviter ces problèmes. Consultez la documentation ↗ pour plus d'informations.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Consultez les guides d'installation ↗, et cherchez des erreurs ou avertissements dans les logs.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "Le chiffrement seul ne garantit pas la sécurité du système. Veuillez consulter la documentation pour plus d'informations sur comment les applications de chiffrement fonctionnent et les cas d'utilisations supportés.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Pour migrer vers une autre base de données utiliser la ligne de commande: 'occ db:convert-type', ou regardez la documentation",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Cette application n'a pas de version maximum Nextcloud exigée. Ce sera considéré comme une erreur dans Nextcloud 11 et supérieur.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Cette application n'a pas de version maximum Nextcloud exigée. Ce sera considéré comme une erreur dans Nextcloud 11 et supérieur.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Si vous voulez supporter le projet\nrejoindre le dévellopement\nou\naider les autres utilisateurs!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Développé par la {communityopen}communauté Nextcloud{linkclose}, le {githubopen}code source{linkclose} est sous licence {licenseopen}AGPL{linkclose}."
+ "Last Login" : "Dernière connexion"
},
"nplurals=2; plural=(n > 1);");
diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json
index 296a67524ff6daad503855bd28b13d7b5d4a30ab..16ad7a7d882ea2ae22869e6441c0891461ab52d8 100644
--- a/settings/l10n/fr.json
+++ b/settings/l10n/fr.json
@@ -23,12 +23,13 @@
"You need to set your user email before being able to send test emails." : "Vous devez définir une adresse e-mail dans vos paramètres personnels avant de pouvoir envoyer des e-mails de test.",
"Invalid request" : "Requête non valide",
"Invalid mail address" : "Adresse e-mail non valide",
+ "No valid group selected" : "Aucun groupe valide sélectionné",
"A user with that name already exists." : "Un utilisateur à ce nom existe déjà.",
"Unable to create user." : "Impossible de créer l'utilisateur.",
"Your %s account was created" : "Votre compte %s a été créé",
"Unable to delete user." : "Impossible de supprimer l'utilisateur.",
"Settings saved" : "Paramètres sauvegardés",
- "Unable to change full name" : "Impossible de changer le nom complet",
+ "Unable to change full name" : "Impossible de modifier le nom complet",
"Unable to change email address" : "Impossible de modifier l'adresse e-mail",
"Your full name has been changed." : "Votre nom complet a été modifié.",
"Forbidden" : "Interdit",
@@ -37,9 +38,6 @@
"Email saved" : "E-mail sauvegardé",
"Password confirmation is required" : "Confirmation par mot de passe est requise",
"Couldn't remove app." : "Impossible de supprimer l'application.",
- "Admins can't remove themself from the admin group" : "Les administrateurs ne peuvent pas se retirer eux-mêmes du groupe admin",
- "Unable to add user to group %s" : "Impossible d'ajouter l'utilisateur au groupe %s",
- "Unable to remove user from group %s" : "Impossible de supprimer l'utilisateur du groupe %s",
"Couldn't update app." : "Impossible de mettre à jour l'application",
"Are you really sure you want add {domain} as trusted domain?" : "Êtes-vous vraiment sûr de vouloir ajouter {domain} comme domaine de confiance ?",
"Add trusted domain" : "Ajouter un domaine de confiance",
@@ -56,7 +54,7 @@
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Les applications officielles sont développées par et dans la communauté. Elles offrent les fonctionnalités indispensables et sont prêtes pour être utilisées en production.",
"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." : "Les applications approuvées sont créées par des développeurs de confiance et ont passé les tests de sécurité. Elles sont activement maintenues et leur code source est ouvert. Leurs développeurs les considèrent stables pour une utilisation normale.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Cette application est nouvelle ou instable, et sa sécurité n'a pas été vérifiée. Installez-la à vos risques et périls!",
- "Please wait...." : "Veuillez patienter…",
+ "Enabling app …" : "Activation de l'application...",
"Error while disabling app" : "Erreur lors de la désactivation de l'application",
"Disable" : "Désactiver",
"Enable" : "Activer",
@@ -118,11 +116,13 @@
"Groups" : "Groupes",
"Unable to delete {objName}" : "Impossible de supprimer {objName}",
"Error creating group: {message}" : "Erreur lors de la création du groupe : {message}",
- "A valid group name must be provided" : "Vous devez spécifier un nom de groupe valide",
+ "A valid group name must be provided" : "Vous devez indiquer un nom de groupe valide",
"deleted {groupName}" : "{groupName} supprimé",
"undo" : "annuler",
"never" : "jamais",
"deleted {userName}" : "{userName} supprimé",
+ "Unable to add user to group {group}" : "Impossible d'ajouter l'utilisateur au groupe {group}",
+ "Unable to remove user from group {group}" : "Impossible de supprimer l'utilisateur du groupe {group}",
"Add group" : "Ajouter un groupe",
"Invalid quota value \"{val}\"" : "Valeur de quota invalide \"{val}\"",
"no group" : "aucun groupe",
@@ -201,14 +201,14 @@
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "Utilisez un service webcron pour exécuter cron.php toutes les 15 minutes par HTTP",
"Use system's cron service to call the cron.php file every 15 minutes." : "Utilisez le service cron du système pour appeler le fichier cron.php toutes les 15 minutes.",
"The cron.php needs to be executed by the system user \"%s\"." : "Le cron.php doit être exécuté par l'utilisateur système \"%s\".",
- "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Pour l'executer, vous devez avoir l'extension PHP posix. Regarder la {linkstart}documentation PHP{linkend} pour plus de détails.",
+ "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Pour l'exécuter, vous devez avoir l'extension PHP posix. Regarder la {linkstart}documentation PHP{linkend} pour plus de détails.",
"Version" : "Version",
"Sharing" : "Partage",
"Allow apps to use the Share API" : "Autoriser les applications à utiliser l'API de partage",
"Allow users to share via link" : "Autoriser les utilisateurs à partager par lien",
"Allow public uploads" : "Autoriser les téléversements publics",
"Enforce password protection" : "Imposer la protection par mot de passe",
- "Set default expiration date" : "Spécifier une date d'expiration par défaut",
+ "Set default expiration date" : "Indiquer une date d'expiration par défaut",
"Expire after " : "Expiration après ",
"days" : "jours",
"Enforce expiration date" : "Imposer la date d'expiration",
@@ -218,8 +218,8 @@
"Exclude groups from sharing" : "Empêcher certains groupes de partager",
"These groups will still be able to receive shares, but not to initiate them." : "Ces groupes ne pourront plus initier de partage, mais ils pourront toujours rejoindre les partages faits par d'autres. ",
"Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Activer l'autocomplétion des noms d'utilisateurs dans la fenêtre de partage. Si cette option est désactivée, les noms complets doivent être indiqués.",
- "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Afficher les conditions d'utilisation sur la page publique de téléversement. (Visible seulement quand la liste des fichiers est masquée.)",
- "This text will be shown on the public link upload page when the file list is hidden." : "Ce texte sera visible sur la page publique de téléversement quand la liste des fichiers est masquée.",
+ "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Afficher les conditions d'utilisation sur la page publique de téléversement (seulement lorsque la liste des fichiers est masquée).",
+ "This text will be shown on the public link upload page when the file list is hidden." : "Ce texte sera affiché sur la page publique de téléversement lorsque la liste des fichiers est masquée.",
"Tips & tricks" : "Trucs et astuces",
"SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite est actuellement utilisé comme système de gestion de base de données. Pour des installations plus volumineuses, nous vous recommandons de migrer vers un autre système de gestion de base de données.",
"This is particularly recommended when using the desktop client for file synchronisation." : "C'est particulièrement recommandé lorsque l'on utilise un client bureau pour la synchronisation des fichiers.",
@@ -245,7 +245,7 @@
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Cette application n'a pas de version maximum Nextcloud exigée. Ce sera considéré comme une erreur à l'avenir.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Cette application ne peut être installée à cause de ces dépendances non satisfaites :",
"Enable only for specific groups" : "Activer uniquement pour certains groupes",
- "Uninstall App" : "Désinstaller l'application",
+ "Uninstall app" : "Désinstaller l'application",
"SSL Root Certificates" : "Certificats Racines SSL",
"Common Name" : "Nom d'usage",
"Valid until" : "Valide jusqu'à",
@@ -297,9 +297,9 @@
"If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Si vous voulez apporter votre appui au projet {contributeopen}joignez-vous à son développement{linkclose} ou {contributeopen}passez le mot{linkclose}!",
"Show First Run Wizard again" : "Revoir la fenêtre d'accueil affichée lors de votre première connexion",
"Web, desktop and mobile clients currently logged in to your account." : "Clients web, desktop et mobiles actuellement connectés sur votre compte.",
- "Device" : "Périphérique",
+ "Device" : "Appareil",
"Last activity" : "Dernière activité",
- "Passcodes that give an app or device permissions to access your account." : "Un mot de passe d'application est un mot de passe qui autorise une application ou un périphérique d'accéder à votre compte.",
+ "Passcodes that give an app or device permissions to access your account." : "Codes de sécurité autorisant une application ou un appareil à accéder à votre compte.",
"Name" : "Nom",
"App name" : "Nom de l'application",
"Create new app password" : "Créer un nouveau mot de passe d'application",
@@ -339,7 +339,11 @@
"Default" : "Défaut",
"log-level out of allowed range" : "niveau de journalisation hors borne",
"Language changed" : "Langue changée",
+ "Admins can't remove themself from the admin group" : "Les administrateurs ne peuvent pas se retirer eux-mêmes du groupe admin",
+ "Unable to add user to group %s" : "Impossible d'ajouter l'utilisateur au groupe %s",
+ "Unable to remove user from group %s" : "Impossible de supprimer l'utilisateur du groupe %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Êtes-vous vraiment sûr de vouloir ajouter \"{domain}\" comme domaine de confiance ?",
+ "Please wait...." : "Veuillez patienter…",
"iPhone" : "iPhone",
"add group" : "ajouter groupe",
"Everything (fatal issues, errors, warnings, info, debug)" : "Tout (erreurs fatales, erreurs, avertissements, informations, debogage)",
@@ -359,10 +363,11 @@
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "L'utilisation de SQLite est particulièrement déconseillée si vous utilisez le client de bureau pour synchroniser vos données.",
"Experimental applications ahead" : "Attention! Applications expérimentales",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Les applications expérimentales n'ont pas fait l'objet de tests de sécurité, sont encore en développement et peuvent être instables. Les installer peut causer des pertes de données ou des failles de sécurité. ",
+ "Uninstall App" : "Désinstaller l'application",
"Enable experimental apps" : "Activer les applications expérimentales",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Bonjour,
Un compte %s a été créé pour vous.
Votre nom d'utilisateur est : %s
Visitez votre compte : %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Bonjour,
Un compte %s a été créé pour vous.
Votre nom d'utilisateur est : %s
Visitez votre compte : %s
\n",
- "If you want to support the project\n\t\tjoin development\n\t\t \n\t\tspread the word!" : "Si vous voulez appuyer ce projet\nrejoindre le dévellopement\n \npartager!",
+ "If you want to support the project\n\t\tjoin development\n\t\t \n\t\tspread the word!" : "Si vous voulez appuyer ce projet\nrejoindre le développement\n \npartager!",
"Add Group" : "Ajouter groupe",
"Group" : "Groupe",
"Default Quota" : "Quota par défaut",
@@ -370,24 +375,6 @@
"Group Admin for" : "Groupe admin pour",
"Storage Location" : "Emplacement de stockage",
"User Backend" : "Retour utilisateur",
- "Last Login" : "Dernière connexion",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Stockage externe",
- "Updates" : "Mises à jour",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "Les applications officielles sont développées par et pour al communauté Nextcloud. Elles offrent les fonctionnalités indispensables et sont prêtes pour être utilisées en production.",
- "No apps found for \"{query}\"" : "Aucune application trouvée pour \"{query}\"",
- "An error occurred: {message}" : "Une erreur est survenue : {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Veuillez consulter la documentation d'installation ↗ pour savoir comment configurer php sur votre serveur, en particulier en cas d'utilisation de php-fpm.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Votre base de données ne fonctionne pas avec le niveau d'isolation de transaction \"READ COMMITED\". Ceci peut causer des problèmes quand plusieurs actions sont exécutées en parallèle.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Votre serveur fonctionne actuellement sur une plateforme Microsoft Windows. Nous vous recommandons fortement d'utiliser une plateforme Linux pour une expérience utilisateur optimale.",
- "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 documentation ↗ for more information." : "Le verrouillage transactionnel des fichiers est désactivé, cela peut causer des conflits en cas d'accès concurrent. Configurez 'filelocking.enabled' dans config.php pour éviter ces problèmes. Consultez la documentation ↗ pour plus d'informations.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Consultez les guides d'installation ↗, et cherchez des erreurs ou avertissements dans les logs.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "Le chiffrement seul ne garantit pas la sécurité du système. Veuillez consulter la documentation pour plus d'informations sur comment les applications de chiffrement fonctionnent et les cas d'utilisations supportés.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Pour migrer vers une autre base de données utiliser la ligne de commande: 'occ db:convert-type', ou regardez la documentation",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Cette application n'a pas de version maximum Nextcloud exigée. Ce sera considéré comme une erreur dans Nextcloud 11 et supérieur.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Cette application n'a pas de version maximum Nextcloud exigée. Ce sera considéré comme une erreur dans Nextcloud 11 et supérieur.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Si vous voulez supporter le projet\nrejoindre le dévellopement\nou\naider les autres utilisateurs!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Développé par la {communityopen}communauté Nextcloud{linkclose}, le {githubopen}code source{linkclose} est sous licence {licenseopen}AGPL{linkclose}."
+ "Last Login" : "Dernière connexion"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/gl.js b/settings/l10n/gl.js
index d1c0d0cd7b845f8e7fd0f3180004d8c4a94d6ba7..609782e501feac8476eb86e62456173a7cac42db 100644
--- a/settings/l10n/gl.js
+++ b/settings/l10n/gl.js
@@ -36,9 +36,6 @@ OC.L10N.register(
"Unable to change mail address" : "Non é posíbel cambiar o enderezo de correo.",
"Email saved" : "Correo gardado",
"Couldn't remove app." : "Non foi posíbel retirar a aplicación.",
- "Admins can't remove themself from the admin group" : "Os administradores non poden eliminarse a si mesmos do grupo admin",
- "Unable to add user to group %s" : "Non é posíbel engadir o usuario ao grupo %s",
- "Unable to remove user from group %s" : "Non é posíbel eliminar o usuario do grupo %s",
"Couldn't update app." : "Non foi posíbel actualizar a aplicación.",
"Add trusted domain" : "Engadir dominio de confianza",
"Migration in progress. Please wait until the migration is finished" : "A migración está en proceso. Agarde a que remate.",
@@ -50,7 +47,6 @@ OC.L10N.register(
"No apps found for your version" : "Non se atoparon aplicativos para esta versió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." : "As aplicacións aprobadas son desenvolvidas por desenvolvedores de confianza e pasaron un control de seguridade superficial. Mantéñense activamente nun repositorio de código aberto e os seus mantedores consideran que son estábeis para uso casual normal.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "A esta aplicación non se lle fixeron comprobacións de seguridade, ademais é nova ou coñecida por ser inestábel. Instálea baixo a súa responsabilidade.",
- "Please wait...." : "Agarde...",
"Error while disabling app" : "Produciuse un erro ao desactivar a aplicación",
"Disable" : "Desactivar",
"Enable" : "Activar",
@@ -163,7 +159,6 @@ OC.L10N.register(
"Hide description …" : "Agochar a descrición ...",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Non é posíbel instalar esta aplicación por mor de non cumprirse as dependencias:",
"Enable only for specific groups" : "Activar só para grupos específicos",
- "Uninstall App" : "Desinstalar unha aplicación",
"Common Name" : "Nome común",
"Valid until" : "Válido ata",
"Issued By" : "Fornecido por",
@@ -218,7 +213,11 @@ OC.L10N.register(
"Default" : "Predeterminado",
"log-level out of allowed range" : "o nivel do rexistro está fora do intervalo admitido",
"Language changed" : "O idioma cambiou",
+ "Admins can't remove themself from the admin group" : "Os administradores non poden eliminarse a si mesmos do grupo admin",
+ "Unable to add user to group %s" : "Non é posíbel engadir o usuario ao grupo %s",
+ "Unable to remove user from group %s" : "Non é posíbel eliminar o usuario do grupo %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Confirma que quere engadir «{domain}» como dominio de confianza?",
+ "Please wait...." : "Agarde...",
"Everything (fatal issues, errors, warnings, info, debug)" : "Todo (incidencias críticas, erros, avisos, información, depuración)",
"Info, warnings, errors and fatal issues" : "Información, avisos, erros e incidencias críticas",
"Warnings, errors and fatal issues" : "Avisos, erros e incidencias críticas",
@@ -235,14 +234,10 @@ OC.L10N.register(
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Concretamente, se emprega o cliente de escritorio para sincronización, desaconsellámoslle o uso de SQLite",
"Experimental applications ahead" : "Ante as aplicacións experimentais",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "As aplicacións experimentais, novas ou coñecidas por ser inestábeis e en forte desenvolvemento, non se lles fan comprobacións de seguridade. A súa instalación pode provocar a perda de datos o violacións de seguridade.",
+ "Uninstall App" : "Desinstalar unha aplicación",
"Enable experimental apps" : "Activar as aplicacións experimentais",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Ola,
Só facerlle saber que dispón da conta %s.
O seu nome de usuario: %s
Para acceder a ela: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Ola,\n\nSó facerlle saber que dispón da conta %s.\n\nO seu nome de usuario: %s\nPara acceder a ela: %s\n",
- "Group" : "Grupo",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Almacenamento externo",
- "Updates" : "Actualizacións",
- "An error occurred: {message}" : "Produciuse un erro: {message}"
+ "Group" : "Grupo"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/gl.json b/settings/l10n/gl.json
index 429abd4287b8e54013acd89337cfdde0da017b72..4d81d6bfab15cdf3d2c1ecaf24c46fd7f7244cbf 100644
--- a/settings/l10n/gl.json
+++ b/settings/l10n/gl.json
@@ -34,9 +34,6 @@
"Unable to change mail address" : "Non é posíbel cambiar o enderezo de correo.",
"Email saved" : "Correo gardado",
"Couldn't remove app." : "Non foi posíbel retirar a aplicación.",
- "Admins can't remove themself from the admin group" : "Os administradores non poden eliminarse a si mesmos do grupo admin",
- "Unable to add user to group %s" : "Non é posíbel engadir o usuario ao grupo %s",
- "Unable to remove user from group %s" : "Non é posíbel eliminar o usuario do grupo %s",
"Couldn't update app." : "Non foi posíbel actualizar a aplicación.",
"Add trusted domain" : "Engadir dominio de confianza",
"Migration in progress. Please wait until the migration is finished" : "A migración está en proceso. Agarde a que remate.",
@@ -48,7 +45,6 @@
"No apps found for your version" : "Non se atoparon aplicativos para esta versió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." : "As aplicacións aprobadas son desenvolvidas por desenvolvedores de confianza e pasaron un control de seguridade superficial. Mantéñense activamente nun repositorio de código aberto e os seus mantedores consideran que son estábeis para uso casual normal.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "A esta aplicación non se lle fixeron comprobacións de seguridade, ademais é nova ou coñecida por ser inestábel. Instálea baixo a súa responsabilidade.",
- "Please wait...." : "Agarde...",
"Error while disabling app" : "Produciuse un erro ao desactivar a aplicación",
"Disable" : "Desactivar",
"Enable" : "Activar",
@@ -161,7 +157,6 @@
"Hide description …" : "Agochar a descrición ...",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Non é posíbel instalar esta aplicación por mor de non cumprirse as dependencias:",
"Enable only for specific groups" : "Activar só para grupos específicos",
- "Uninstall App" : "Desinstalar unha aplicación",
"Common Name" : "Nome común",
"Valid until" : "Válido ata",
"Issued By" : "Fornecido por",
@@ -216,7 +211,11 @@
"Default" : "Predeterminado",
"log-level out of allowed range" : "o nivel do rexistro está fora do intervalo admitido",
"Language changed" : "O idioma cambiou",
+ "Admins can't remove themself from the admin group" : "Os administradores non poden eliminarse a si mesmos do grupo admin",
+ "Unable to add user to group %s" : "Non é posíbel engadir o usuario ao grupo %s",
+ "Unable to remove user from group %s" : "Non é posíbel eliminar o usuario do grupo %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Confirma que quere engadir «{domain}» como dominio de confianza?",
+ "Please wait...." : "Agarde...",
"Everything (fatal issues, errors, warnings, info, debug)" : "Todo (incidencias críticas, erros, avisos, información, depuración)",
"Info, warnings, errors and fatal issues" : "Información, avisos, erros e incidencias críticas",
"Warnings, errors and fatal issues" : "Avisos, erros e incidencias críticas",
@@ -233,14 +232,10 @@
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Concretamente, se emprega o cliente de escritorio para sincronización, desaconsellámoslle o uso de SQLite",
"Experimental applications ahead" : "Ante as aplicacións experimentais",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "As aplicacións experimentais, novas ou coñecidas por ser inestábeis e en forte desenvolvemento, non se lles fan comprobacións de seguridade. A súa instalación pode provocar a perda de datos o violacións de seguridade.",
+ "Uninstall App" : "Desinstalar unha aplicación",
"Enable experimental apps" : "Activar as aplicacións experimentais",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Ola,
Só facerlle saber que dispón da conta %s.
O seu nome de usuario: %s
Para acceder a ela: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Ola,\n\nSó facerlle saber que dispón da conta %s.\n\nO seu nome de usuario: %s\nPara acceder a ela: %s\n",
- "Group" : "Grupo",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Almacenamento externo",
- "Updates" : "Actualizacións",
- "An error occurred: {message}" : "Produciuse un erro: {message}"
+ "Group" : "Grupo"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/he.js b/settings/l10n/he.js
index 1f3cb6ac36c4ddd5d904899ee3f78a291994f19b..8e9e253832730bfc424a2503d9861374e945e831 100644
--- a/settings/l10n/he.js
+++ b/settings/l10n/he.js
@@ -36,9 +36,6 @@ OC.L10N.register(
"Unable to change mail address" : "לא ניתן לשנות כתובת דואר אלקטרוני",
"Email saved" : "הדואר האלקטרוני נשמר",
"Couldn't remove app." : "לא ניתן להסיר את היישום.",
- "Admins can't remove themself from the admin group" : "מנהלים לא יכולים להסיר את עצמם מקבוצת המנהלים",
- "Unable to add user to group %s" : "לא ניתן להוסיף משתמש לקבוצה %s",
- "Unable to remove user from group %s" : "לא ניתן להסיר משתמש מהקבוצה %s",
"Couldn't update app." : "לא ניתן לעדכן את היישום.",
"Add trusted domain" : "הוספת שם מתחם מהימן",
"Migration in progress. Please wait until the migration is finished" : "המרה בביצוע. יש להמתין עד סיום ההמרה",
@@ -52,7 +49,6 @@ OC.L10N.register(
"The app will be downloaded from the app store" : "היישום ירד מחנות היישומים",
"Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "יישומים מאושרים מפותחים על ידי מפתחים מהימנים ועברו בדיקת הבטחה ראשונית. הם נשמרים באופן פעיל במאגר קוד פתוח והמתזקים שלהם מייעדים אותם לשימוש מזדמן ורגיל.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "יישום זה לא נבדק לבעיות אבטחה והוא חדש או ידוע כלא יציב. התקנת יישום זה הנה על אחריותך בלבד.",
- "Please wait...." : "נא להמתין…",
"Error while disabling app" : "אירעה שגיאה בעת נטרול היישום",
"Disable" : "ניטרול",
"Enable" : "הפעלה",
@@ -196,7 +192,6 @@ OC.L10N.register(
"This app has an update available." : "ליישום זה קיים עדכון זמין.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "לא ניתן להתקין את יישום זה כיוון שייחסי התלות הבאים לא התקיימו:",
"Enable only for specific groups" : "אפשר רק לקבוצות מסויימות",
- "Uninstall App" : "הסרת יישום",
"SSL Root Certificates" : "אישורי אבטחת SSL לנתיב יסוד",
"Common Name" : "שם משותף",
"Valid until" : "בתוקף עד",
@@ -260,7 +255,11 @@ OC.L10N.register(
"Default" : "ברירת מחדל",
"log-level out of allowed range" : "גודל הלוג מעבר לרמה המותרת",
"Language changed" : "שפה השתנתה",
+ "Admins can't remove themself from the admin group" : "מנהלים לא יכולים להסיר את עצמם מקבוצת המנהלים",
+ "Unable to add user to group %s" : "לא ניתן להוסיף משתמש לקבוצה %s",
+ "Unable to remove user from group %s" : "לא ניתן להסיר משתמש מהקבוצה %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "האם באמת להוסיף \"{domain}\" כשם מתחם מהימן?",
+ "Please wait...." : "נא להמתין…",
"Everything (fatal issues, errors, warnings, info, debug)" : "הכול (נושאים חמורים, שגיאות, אזהרות, מידע, ניפוי שגיאות)",
"Info, warnings, errors and fatal issues" : "מידע, אזהרות, שגיאות ונושאים חמורים",
"Warnings, errors and fatal issues" : "אזהרות, שגיאות ונושאים חמורים",
@@ -278,14 +277,10 @@ OC.L10N.register(
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "במיוחד כאשר משתמשים במחשב שולחני לסנכרון קבצים השימוש ב SQLite אינו מומלץ.",
"Experimental applications ahead" : "ישומים ניסיוניים לפנים",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "יישומים ניסיוניים לא נבדקו לבעיות אבטחה, חדשים או ידועים כלא יציבים ותחת פיתוח כבד. התקנה שלהם עלולה להוביל לאיבוד מידע או לפרצות אבטחה.",
+ "Uninstall App" : "הסרת יישום",
"Enable experimental apps" : "אפשר יישומים ניסיוניים",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "שלום,
רק רצינו להודיע שעכשיו יש לך %s חשבון.
Your שם משתמש: %s
כניסה: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "שלום,\n\nרק רצינו להודיע שעכשיו יש לך %s חשבון.\n\nשם המשתמש שלך: %s\nכניסה: %s\n\n",
- "Group" : "קבוצה",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "אחסון חיצוני",
- "Updates" : "עדכונים",
- "An error occurred: {message}" : "אירעה שגיאה: {message}"
+ "Group" : "קבוצה"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/he.json b/settings/l10n/he.json
index b69e4f63d4f6af757e16f8b5fb7eccfe69e1f50f..3eace55b4b80b2134abfa28bffab84f8e2435af4 100644
--- a/settings/l10n/he.json
+++ b/settings/l10n/he.json
@@ -34,9 +34,6 @@
"Unable to change mail address" : "לא ניתן לשנות כתובת דואר אלקטרוני",
"Email saved" : "הדואר האלקטרוני נשמר",
"Couldn't remove app." : "לא ניתן להסיר את היישום.",
- "Admins can't remove themself from the admin group" : "מנהלים לא יכולים להסיר את עצמם מקבוצת המנהלים",
- "Unable to add user to group %s" : "לא ניתן להוסיף משתמש לקבוצה %s",
- "Unable to remove user from group %s" : "לא ניתן להסיר משתמש מהקבוצה %s",
"Couldn't update app." : "לא ניתן לעדכן את היישום.",
"Add trusted domain" : "הוספת שם מתחם מהימן",
"Migration in progress. Please wait until the migration is finished" : "המרה בביצוע. יש להמתין עד סיום ההמרה",
@@ -50,7 +47,6 @@
"The app will be downloaded from the app store" : "היישום ירד מחנות היישומים",
"Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "יישומים מאושרים מפותחים על ידי מפתחים מהימנים ועברו בדיקת הבטחה ראשונית. הם נשמרים באופן פעיל במאגר קוד פתוח והמתזקים שלהם מייעדים אותם לשימוש מזדמן ורגיל.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "יישום זה לא נבדק לבעיות אבטחה והוא חדש או ידוע כלא יציב. התקנת יישום זה הנה על אחריותך בלבד.",
- "Please wait...." : "נא להמתין…",
"Error while disabling app" : "אירעה שגיאה בעת נטרול היישום",
"Disable" : "ניטרול",
"Enable" : "הפעלה",
@@ -194,7 +190,6 @@
"This app has an update available." : "ליישום זה קיים עדכון זמין.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "לא ניתן להתקין את יישום זה כיוון שייחסי התלות הבאים לא התקיימו:",
"Enable only for specific groups" : "אפשר רק לקבוצות מסויימות",
- "Uninstall App" : "הסרת יישום",
"SSL Root Certificates" : "אישורי אבטחת SSL לנתיב יסוד",
"Common Name" : "שם משותף",
"Valid until" : "בתוקף עד",
@@ -258,7 +253,11 @@
"Default" : "ברירת מחדל",
"log-level out of allowed range" : "גודל הלוג מעבר לרמה המותרת",
"Language changed" : "שפה השתנתה",
+ "Admins can't remove themself from the admin group" : "מנהלים לא יכולים להסיר את עצמם מקבוצת המנהלים",
+ "Unable to add user to group %s" : "לא ניתן להוסיף משתמש לקבוצה %s",
+ "Unable to remove user from group %s" : "לא ניתן להסיר משתמש מהקבוצה %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "האם באמת להוסיף \"{domain}\" כשם מתחם מהימן?",
+ "Please wait...." : "נא להמתין…",
"Everything (fatal issues, errors, warnings, info, debug)" : "הכול (נושאים חמורים, שגיאות, אזהרות, מידע, ניפוי שגיאות)",
"Info, warnings, errors and fatal issues" : "מידע, אזהרות, שגיאות ונושאים חמורים",
"Warnings, errors and fatal issues" : "אזהרות, שגיאות ונושאים חמורים",
@@ -276,14 +275,10 @@
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "במיוחד כאשר משתמשים במחשב שולחני לסנכרון קבצים השימוש ב SQLite אינו מומלץ.",
"Experimental applications ahead" : "ישומים ניסיוניים לפנים",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "יישומים ניסיוניים לא נבדקו לבעיות אבטחה, חדשים או ידועים כלא יציבים ותחת פיתוח כבד. התקנה שלהם עלולה להוביל לאיבוד מידע או לפרצות אבטחה.",
+ "Uninstall App" : "הסרת יישום",
"Enable experimental apps" : "אפשר יישומים ניסיוניים",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "שלום,
רק רצינו להודיע שעכשיו יש לך %s חשבון.
Your שם משתמש: %s
כניסה: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "שלום,\n\nרק רצינו להודיע שעכשיו יש לך %s חשבון.\n\nשם המשתמש שלך: %s\nכניסה: %s\n\n",
- "Group" : "קבוצה",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "אחסון חיצוני",
- "Updates" : "עדכונים",
- "An error occurred: {message}" : "אירעה שגיאה: {message}"
+ "Group" : "קבוצה"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/hr.js b/settings/l10n/hr.js
index 6fdcdf760d1910d48e05f3b617d67e3f888eb56b..267befb6645f5d46eea587388a2f8ded23f5accc 100644
--- a/settings/l10n/hr.js
+++ b/settings/l10n/hr.js
@@ -17,14 +17,10 @@ OC.L10N.register(
"Your full name has been changed." : "Vaše puno ime je promijenjeno.",
"Email saved" : "E-pošta spremljena",
"Couldn't remove app." : "Nije moguće ukloniti app.",
- "Admins can't remove themself from the admin group" : "Administratori ne mogu sami sebe ukloniti iz admin grupe",
- "Unable to add user to group %s" : "Dodavanje korisnika grupi %s nije moguće",
- "Unable to remove user from group %s" : "Uklanjanje korisnika iz grupe %s nije moguće",
"Couldn't update app." : "Ažuriranje aplikacija nije moguće",
"Add trusted domain" : "Dodajte pouzdanu domenu",
"Sending..." : "Slanje...",
"All" : "Sve",
- "Please wait...." : "Molimo pričekajte...",
"Error while disabling app" : "Pogreška pri onemogućavanju app",
"Disable" : "Onemogućite",
"Enable" : "Omogućite",
@@ -98,7 +94,6 @@ OC.L10N.register(
"These groups will still be able to receive shares, but not to initiate them." : "Ove će grupe još uvijek moći primati dijeljene resurse, ali ne i inicirati ih",
"Documentation:" : "Dokumentacija:",
"Enable only for specific groups" : "Omogućite samo za specifične grupe",
- "Uninstall App" : "Deinstalirajte app",
"Common Name" : "Common Name",
"Valid until" : "Valid until",
"Issued By" : "Issued By",
@@ -135,7 +130,11 @@ OC.L10N.register(
"set new password" : "postavite novu lozinku",
"Default" : "Zadano",
"Language changed" : "Promjena jezika",
+ "Admins can't remove themself from the admin group" : "Administratori ne mogu sami sebe ukloniti iz admin grupe",
+ "Unable to add user to group %s" : "Dodavanje korisnika grupi %s nije moguće",
+ "Unable to remove user from group %s" : "Uklanjanje korisnika iz grupe %s nije moguće",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Jeste li doista sigurni da želite dodati \"{domain}\" kao pouzdanu domenu?",
+ "Please wait...." : "Molimo pričekajte...",
"Everything (fatal issues, errors, warnings, info, debug)" : "Sve (kobni problemi, pogreške, upozorenja, ispravljanje pogrešaka)",
"Info, warnings, errors and fatal issues" : "Informacije, upozorenja, pogreške i kobni problemi",
"Warnings, errors and fatal issues" : "Upozorenja, pogreške i kobni problemi",
@@ -145,8 +144,7 @@ OC.L10N.register(
"More" : "Više",
"Less" : "Manje",
"Allow users to send mail notification for shared files" : "Dopustite korisnicima slanje notifikacijske e-pošte za podijeljene datoteke",
- "Group" : "Grupa",
- "External Storage" : "Vanjsko spremište",
- "Updates" : "nadogradnje"
+ "Uninstall App" : "Deinstalirajte app",
+ "Group" : "Grupa"
},
"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/settings/l10n/hr.json b/settings/l10n/hr.json
index ecfff147b4d543e14d00b79e2fb9fa1606f4856a..22f56cf81f4972e2d6378e5babf27ec23af93d8f 100644
--- a/settings/l10n/hr.json
+++ b/settings/l10n/hr.json
@@ -15,14 +15,10 @@
"Your full name has been changed." : "Vaše puno ime je promijenjeno.",
"Email saved" : "E-pošta spremljena",
"Couldn't remove app." : "Nije moguće ukloniti app.",
- "Admins can't remove themself from the admin group" : "Administratori ne mogu sami sebe ukloniti iz admin grupe",
- "Unable to add user to group %s" : "Dodavanje korisnika grupi %s nije moguće",
- "Unable to remove user from group %s" : "Uklanjanje korisnika iz grupe %s nije moguće",
"Couldn't update app." : "Ažuriranje aplikacija nije moguće",
"Add trusted domain" : "Dodajte pouzdanu domenu",
"Sending..." : "Slanje...",
"All" : "Sve",
- "Please wait...." : "Molimo pričekajte...",
"Error while disabling app" : "Pogreška pri onemogućavanju app",
"Disable" : "Onemogućite",
"Enable" : "Omogućite",
@@ -96,7 +92,6 @@
"These groups will still be able to receive shares, but not to initiate them." : "Ove će grupe još uvijek moći primati dijeljene resurse, ali ne i inicirati ih",
"Documentation:" : "Dokumentacija:",
"Enable only for specific groups" : "Omogućite samo za specifične grupe",
- "Uninstall App" : "Deinstalirajte app",
"Common Name" : "Common Name",
"Valid until" : "Valid until",
"Issued By" : "Issued By",
@@ -133,7 +128,11 @@
"set new password" : "postavite novu lozinku",
"Default" : "Zadano",
"Language changed" : "Promjena jezika",
+ "Admins can't remove themself from the admin group" : "Administratori ne mogu sami sebe ukloniti iz admin grupe",
+ "Unable to add user to group %s" : "Dodavanje korisnika grupi %s nije moguće",
+ "Unable to remove user from group %s" : "Uklanjanje korisnika iz grupe %s nije moguće",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Jeste li doista sigurni da želite dodati \"{domain}\" kao pouzdanu domenu?",
+ "Please wait...." : "Molimo pričekajte...",
"Everything (fatal issues, errors, warnings, info, debug)" : "Sve (kobni problemi, pogreške, upozorenja, ispravljanje pogrešaka)",
"Info, warnings, errors and fatal issues" : "Informacije, upozorenja, pogreške i kobni problemi",
"Warnings, errors and fatal issues" : "Upozorenja, pogreške i kobni problemi",
@@ -143,8 +142,7 @@
"More" : "Više",
"Less" : "Manje",
"Allow users to send mail notification for shared files" : "Dopustite korisnicima slanje notifikacijske e-pošte za podijeljene datoteke",
- "Group" : "Grupa",
- "External Storage" : "Vanjsko spremište",
- "Updates" : "nadogradnje"
+ "Uninstall App" : "Deinstalirajte app",
+ "Group" : "Grupa"
},"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/settings/l10n/hu_HU.js b/settings/l10n/hu_HU.js
index 5dbce3a57d4d514dc26e487609c97be805a954ab..73883a1107d9b6fdd2a9b45189120a5ad2b554e9 100644
--- a/settings/l10n/hu_HU.js
+++ b/settings/l10n/hu_HU.js
@@ -39,9 +39,6 @@ OC.L10N.register(
"Email saved" : "E-mail elmentve!",
"Password confirmation is required" : "Jelszó megerősítés szükséges",
"Couldn't remove app." : "Az alkalmazást nem sikerült eltávolítani.",
- "Admins can't remove themself from the admin group" : "Adminisztrátorok nem távolíthatják el magukat az admin csoportból.",
- "Unable to add user to group %s" : "A felhasználó nem adható hozzá ehhez a csoporthoz: %s",
- "Unable to remove user from group %s" : "A felhasználó nem távolítható el ebből a csoportból: %s",
"Couldn't update app." : "Az alkalmazás frissítése nem sikerült.",
"Are you really sure you want add {domain} as trusted domain?" : "Biztos, hogy hozzá akarod adni ezt a megbízható domainekhez: {domain} ?",
"Add trusted domain" : "Megbízható tartomány hozzáadása",
@@ -58,7 +55,7 @@ OC.L10N.register(
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "A hivatalos alkalmazásokat a közösség fejleszti. Ezek adják a központi funkcionalitásokat és éles rendszerekben használhatóak.",
"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." : "A jóváhagyott alkalmazásokat megbízható fejlesztők készítik, amik megfelelnek a felületes biztonsági ellenőrzésnek. Nyílt forráskódú tárolóban aktívan karbantartják és biztosítják a stabil használatot.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Ez az alkalmazás még nincs biztonságilag ellenőrizve és vagy új, vagy ismert instabil. Telepítés csak saját felelősségre!",
- "Please wait...." : "Kérlek várj...",
+ "Enabling app …" : "Alkalmazás engedélyezése ...",
"Error while disabling app" : "Hiba az alkalmazás letiltása közben",
"Disable" : "Letiltás",
"Enable" : "Engedélyezés",
@@ -247,7 +244,7 @@ OC.L10N.register(
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ennek az alkalmazásnak nincs maximum szükséges Nextcloud verziója megadva. Ez hiba lesz a jövőben.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Ezt az alkalmazást nem lehet telepíteni, mert a következő függőségek hiányoznak:",
"Enable only for specific groups" : "Csak bizonyos csoportok számára tegyük elérhetővé",
- "Uninstall App" : "Alkalmazás eltávolítása",
+ "Uninstall app" : "Alkalmazás eltávolítása",
"SSL Root Certificates" : "SSL Root tanusítványok",
"Common Name" : "Általános Név",
"Valid until" : "Érvényes",
@@ -341,7 +338,11 @@ OC.L10N.register(
"Default" : "Alapértelmezett",
"log-level out of allowed range" : "A naplózási szint a megengedett terjedelmen kívül van.",
"Language changed" : "A nyelv megváltozott",
+ "Admins can't remove themself from the admin group" : "Adminisztrátorok nem távolíthatják el magukat az admin csoportból.",
+ "Unable to add user to group %s" : "A felhasználó nem adható hozzá ehhez a csoporthoz: %s",
+ "Unable to remove user from group %s" : "A felhasználó nem távolítható el ebből a csoportból: %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Biztos abban, hogy hozzá akarja adni \"{domain}\"-t a megbízható tartományokhoz?",
+ "Please wait...." : "Kérlek várj...",
"iPhone" : "iPhone",
"add group" : "csoport hozzáadása",
"Everything (fatal issues, errors, warnings, info, debug)" : "Minden (végzetes hibák, hibák, figyelmeztetések, információk, hibakeresési üzenetek)",
@@ -361,6 +362,7 @@ OC.L10N.register(
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Amikor az asztali klienset használja fálj szinkronizációra, akkor az SQLite használata nem ajánlott.",
"Experimental applications ahead" : "Kísérleti alkalmazások",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "A kísérleti alkalmazások nincsenek biztonsági ellenőrizve, ismert vagy ismeretlen hibák lehetnek bennük és aktív fejlesztés alatt állnak. A telepítésük adatvesztéshez vezethet, vagy biztonsági kockázata lehet.",
+ "Uninstall App" : "Alkalmazás eltávolítása",
"Enable experimental apps" : "Kísérleti alkalmazások engedélyezése",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Üdv!
Értesítünk, hogy van egy %s fiókja.
Felhasználónév: %s
Hozzáférés: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Üdv!\n\nÉrtesítünk, hogy van egy %s fiókja.\n\nFelhasználónév: %s\nHozzáférés: %s\n\n",
@@ -372,24 +374,6 @@ OC.L10N.register(
"Group Admin for" : "Csoport Adminisztrátor itt",
"Storage Location" : "A háttértár helye",
"User Backend" : "Felhasználói háttér",
- "Last Login" : "Utolsó bejelentkezés",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Külső tárolási szolgáltatások becsatolása",
- "Updates" : "Frissítések",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "A hivatalos alkalmazásokat a Nextcloud közösség fejleszti. Ezek adják a Nextcloud központi funkcionalitásait és éles rendszerekben használhatóak.",
- "No apps found for \"{query}\"" : "\"{query}\" keresésre nincs találat",
- "An error occurred: {message}" : "Hiba történt: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Kérjük, ellenőrizd a telepítési dokumentációt ↗ a PHP konfigurációs beállításaival kapcsolatban, főleg ha PHP-FPM-et használsz.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Az adatbázisa nem tud \"READ COMMITED\" tranzakció elkülinítési szinttel. Ez problémákat okozhat ha több egyidejű esemény van végrehajtva.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "A szervered Microsoft Windowson fut. A legjobb felhasználói élményért erősen javasoljuk, hogy Linuxot használj.",
- "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 documentation ↗ for more information." : "Tranzakcionális fájl lezárás tiltva van, ez problémákat okozhat versenyhelyzetben. Engedélyezze a 'filelocking.enabled' beállítást a config.php -ben, hogy elkerüld ezeket a problémákat. Nézd meg a dokumentációt ↗ bővebb információért.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Kérjük, ellenőrizd a telepítési dokumentációt ↗ és a naplót, hogy tartalmaz-e bármilyen hibát vagy figyelmeztetést.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "A titkosítás önmagában nem garantálja a rendszer biztonságát. Kérlek olvassa el a Nextcloud dokumentációt, hogy további információkat szerezhess a titkosítási alkalmazás működéséről, és a támogatott lehetőségekről.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Más adatbázisról való áttéréshez használd ezt a parancssort: 'occ db:convert-type', vagy nézd meg a dokumentációt ↗.",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Ennek az alkalmazásnak nincs minimum szükséges Nextcloud verziója megadva. A Nextcloud 11-et követően ez hibát fog okozni.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Ennek az alkalmazásnak nincs maximum szükséges Nextcloud verziója megadva. A Nextcloud 11-et követően ez hibát fog okozni.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Ha támogatni szeretnéd a projektet \n\t\tcsatlakozz a fejlesztéshez\n\t\tvagy\n\t\tsegítsd a többi felhasználót!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Fejlesztve a {communityopen}Nextcloud közösség{linkclose} által, a {githubopen}forráskód{linkclose} az {licenseopen}AGPL{linkclose} licensz alá tartozik."
+ "Last Login" : "Utolsó bejelentkezés"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/hu_HU.json b/settings/l10n/hu_HU.json
index 518271f63ee9300949b34c42d932c8a6d8cac227..aad4e32d97173e52a2da63d62ef1b67d4139fdcc 100644
--- a/settings/l10n/hu_HU.json
+++ b/settings/l10n/hu_HU.json
@@ -37,9 +37,6 @@
"Email saved" : "E-mail elmentve!",
"Password confirmation is required" : "Jelszó megerősítés szükséges",
"Couldn't remove app." : "Az alkalmazást nem sikerült eltávolítani.",
- "Admins can't remove themself from the admin group" : "Adminisztrátorok nem távolíthatják el magukat az admin csoportból.",
- "Unable to add user to group %s" : "A felhasználó nem adható hozzá ehhez a csoporthoz: %s",
- "Unable to remove user from group %s" : "A felhasználó nem távolítható el ebből a csoportból: %s",
"Couldn't update app." : "Az alkalmazás frissítése nem sikerült.",
"Are you really sure you want add {domain} as trusted domain?" : "Biztos, hogy hozzá akarod adni ezt a megbízható domainekhez: {domain} ?",
"Add trusted domain" : "Megbízható tartomány hozzáadása",
@@ -56,7 +53,7 @@
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "A hivatalos alkalmazásokat a közösség fejleszti. Ezek adják a központi funkcionalitásokat és éles rendszerekben használhatóak.",
"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." : "A jóváhagyott alkalmazásokat megbízható fejlesztők készítik, amik megfelelnek a felületes biztonsági ellenőrzésnek. Nyílt forráskódú tárolóban aktívan karbantartják és biztosítják a stabil használatot.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Ez az alkalmazás még nincs biztonságilag ellenőrizve és vagy új, vagy ismert instabil. Telepítés csak saját felelősségre!",
- "Please wait...." : "Kérlek várj...",
+ "Enabling app …" : "Alkalmazás engedélyezése ...",
"Error while disabling app" : "Hiba az alkalmazás letiltása közben",
"Disable" : "Letiltás",
"Enable" : "Engedélyezés",
@@ -245,7 +242,7 @@
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ennek az alkalmazásnak nincs maximum szükséges Nextcloud verziója megadva. Ez hiba lesz a jövőben.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Ezt az alkalmazást nem lehet telepíteni, mert a következő függőségek hiányoznak:",
"Enable only for specific groups" : "Csak bizonyos csoportok számára tegyük elérhetővé",
- "Uninstall App" : "Alkalmazás eltávolítása",
+ "Uninstall app" : "Alkalmazás eltávolítása",
"SSL Root Certificates" : "SSL Root tanusítványok",
"Common Name" : "Általános Név",
"Valid until" : "Érvényes",
@@ -339,7 +336,11 @@
"Default" : "Alapértelmezett",
"log-level out of allowed range" : "A naplózási szint a megengedett terjedelmen kívül van.",
"Language changed" : "A nyelv megváltozott",
+ "Admins can't remove themself from the admin group" : "Adminisztrátorok nem távolíthatják el magukat az admin csoportból.",
+ "Unable to add user to group %s" : "A felhasználó nem adható hozzá ehhez a csoporthoz: %s",
+ "Unable to remove user from group %s" : "A felhasználó nem távolítható el ebből a csoportból: %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Biztos abban, hogy hozzá akarja adni \"{domain}\"-t a megbízható tartományokhoz?",
+ "Please wait...." : "Kérlek várj...",
"iPhone" : "iPhone",
"add group" : "csoport hozzáadása",
"Everything (fatal issues, errors, warnings, info, debug)" : "Minden (végzetes hibák, hibák, figyelmeztetések, információk, hibakeresési üzenetek)",
@@ -359,6 +360,7 @@
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Amikor az asztali klienset használja fálj szinkronizációra, akkor az SQLite használata nem ajánlott.",
"Experimental applications ahead" : "Kísérleti alkalmazások",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "A kísérleti alkalmazások nincsenek biztonsági ellenőrizve, ismert vagy ismeretlen hibák lehetnek bennük és aktív fejlesztés alatt állnak. A telepítésük adatvesztéshez vezethet, vagy biztonsági kockázata lehet.",
+ "Uninstall App" : "Alkalmazás eltávolítása",
"Enable experimental apps" : "Kísérleti alkalmazások engedélyezése",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Üdv!
Értesítünk, hogy van egy %s fiókja.
Felhasználónév: %s
Hozzáférés: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Üdv!\n\nÉrtesítünk, hogy van egy %s fiókja.\n\nFelhasználónév: %s\nHozzáférés: %s\n\n",
@@ -370,24 +372,6 @@
"Group Admin for" : "Csoport Adminisztrátor itt",
"Storage Location" : "A háttértár helye",
"User Backend" : "Felhasználói háttér",
- "Last Login" : "Utolsó bejelentkezés",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Külső tárolási szolgáltatások becsatolása",
- "Updates" : "Frissítések",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "A hivatalos alkalmazásokat a Nextcloud közösség fejleszti. Ezek adják a Nextcloud központi funkcionalitásait és éles rendszerekben használhatóak.",
- "No apps found for \"{query}\"" : "\"{query}\" keresésre nincs találat",
- "An error occurred: {message}" : "Hiba történt: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Kérjük, ellenőrizd a telepítési dokumentációt ↗ a PHP konfigurációs beállításaival kapcsolatban, főleg ha PHP-FPM-et használsz.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Az adatbázisa nem tud \"READ COMMITED\" tranzakció elkülinítési szinttel. Ez problémákat okozhat ha több egyidejű esemény van végrehajtva.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "A szervered Microsoft Windowson fut. A legjobb felhasználói élményért erősen javasoljuk, hogy Linuxot használj.",
- "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 documentation ↗ for more information." : "Tranzakcionális fájl lezárás tiltva van, ez problémákat okozhat versenyhelyzetben. Engedélyezze a 'filelocking.enabled' beállítást a config.php -ben, hogy elkerüld ezeket a problémákat. Nézd meg a dokumentációt ↗ bővebb információért.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Kérjük, ellenőrizd a telepítési dokumentációt ↗ és a naplót, hogy tartalmaz-e bármilyen hibát vagy figyelmeztetést.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "A titkosítás önmagában nem garantálja a rendszer biztonságát. Kérlek olvassa el a Nextcloud dokumentációt, hogy további információkat szerezhess a titkosítási alkalmazás működéséről, és a támogatott lehetőségekről.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Más adatbázisról való áttéréshez használd ezt a parancssort: 'occ db:convert-type', vagy nézd meg a dokumentációt ↗.",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Ennek az alkalmazásnak nincs minimum szükséges Nextcloud verziója megadva. A Nextcloud 11-et követően ez hibát fog okozni.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Ennek az alkalmazásnak nincs maximum szükséges Nextcloud verziója megadva. A Nextcloud 11-et követően ez hibát fog okozni.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Ha támogatni szeretnéd a projektet \n\t\tcsatlakozz a fejlesztéshez\n\t\tvagy\n\t\tsegítsd a többi felhasználót!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Fejlesztve a {communityopen}Nextcloud közösség{linkclose} által, a {githubopen}forráskód{linkclose} az {licenseopen}AGPL{linkclose} licensz alá tartozik."
+ "Last Login" : "Utolsó bejelentkezés"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/hy.js b/settings/l10n/hy.js
index 0f45f06c9c415b2dee0ec08acb92508216b451b4..b97727b3be23f09a31f767788b1569da507f21d2 100644
--- a/settings/l10n/hy.js
+++ b/settings/l10n/hy.js
@@ -24,7 +24,6 @@ OC.L10N.register(
"Username" : "Օգտանուն",
"Other" : "Այլ",
"Language changed" : "Լեզուն փոխվեց",
- "Group" : "Խումբ",
- "Updates" : "Թարմացումներ"
+ "Group" : "Խումբ"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/hy.json b/settings/l10n/hy.json
index 510df5f3d723c0ff2e1e3608f79090c07b7a0b36..7c007f317a19a2e10b95b0072643b246948b6b1d 100644
--- a/settings/l10n/hy.json
+++ b/settings/l10n/hy.json
@@ -22,7 +22,6 @@
"Username" : "Օգտանուն",
"Other" : "Այլ",
"Language changed" : "Լեզուն փոխվեց",
- "Group" : "Խումբ",
- "Updates" : "Թարմացումներ"
+ "Group" : "Խումբ"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/ia.js b/settings/l10n/ia.js
new file mode 100644
index 0000000000000000000000000000000000000000..d5e36dc56dd6c0408102ef6b73751ce64b6bb2f2
--- /dev/null
+++ b/settings/l10n/ia.js
@@ -0,0 +1,10 @@
+OC.L10N.register(
+ "settings",
+ {
+ "Enabled" : "Activate",
+ "Wrong password" : "Contrasigno incorrecte",
+ "Saved" : "Salveguardate",
+ "Authentication error" : "Error in authentication",
+ "Email sent" : "Message de e-posta inviate"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/ia.json b/settings/l10n/ia.json
new file mode 100644
index 0000000000000000000000000000000000000000..eb2c0321440ce7d37a5e379de062b5bbd2d054fa
--- /dev/null
+++ b/settings/l10n/ia.json
@@ -0,0 +1,8 @@
+{ "translations": {
+ "Enabled" : "Activate",
+ "Wrong password" : "Contrasigno incorrecte",
+ "Saved" : "Salveguardate",
+ "Authentication error" : "Error in authentication",
+ "Email sent" : "Message de e-posta inviate"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+}
\ No newline at end of file
diff --git a/settings/l10n/id.js b/settings/l10n/id.js
index 96f5c162a5be594e98f7d3f06a85f80002e2489c..42829f7a6793a3d49a28d9e4cccf106e149b8724 100644
--- a/settings/l10n/id.js
+++ b/settings/l10n/id.js
@@ -36,9 +36,6 @@ OC.L10N.register(
"Unable to change mail address" : "Tidak dapat mengubah alamat email",
"Email saved" : "Email disimpan",
"Couldn't remove app." : "Tidak dapat menghapus aplikasi.",
- "Admins can't remove themself from the admin group" : "Admin tidak dapat menghapus dirinya sendiri dari grup admin",
- "Unable to add user to group %s" : "Tidak dapat menambahkan pengguna ke grup %s",
- "Unable to remove user from group %s" : "Tidak dapat menghapus pengguna dari grup %s",
"Couldn't update app." : "Tidak dapat memperbarui aplikasi.",
"Add trusted domain" : "Tambah domain terpercaya",
"Migration in progress. Please wait until the migration is finished" : "Migrasi sedang dalam proses. Mohon tunggu sampai migrasi selesai.",
@@ -53,7 +50,6 @@ OC.L10N.register(
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Aplikasi resmi dikembangkan oleh dan didalam komunitas. Mereka menawarkan fungsi sentral dan siap untuk penggunaan produksi.",
"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." : "Aplikasi tersetujui dikembangkan oleh pengembang terpercaya dan telah lulus pemeriksaan keamanan. Mereka secara aktif dipelihara direpositori kode terbuka dan pemelihara sudah memastikan mereka stabil untuk penggunaan normal.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Apl ini belum diperiksa masalah keamanannya dan masih baru atau biasanya tidak stabil. Instal dengan resiko Anda sendiri.",
- "Please wait...." : "Mohon tunggu....",
"Error while disabling app" : "Terjadi kesalahan saat menonaktifkan aplikasi",
"Disable" : "Nonaktifkan",
"Enable" : "Aktifkan",
@@ -218,7 +214,6 @@ OC.L10N.register(
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Aplikasi ini tidak mempunyai versi maksimum Nextcloud yang ditetapkan. Di masa depan nanti ini akan menjadi kesalahan.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Apl ini tidak dapat diinstal karena ketergantungan berikut belum terpenuhi:",
"Enable only for specific groups" : "Aktifkan hanya untuk grup tertentu",
- "Uninstall App" : "Copot aplikasi",
"SSL Root Certificates" : "Sertifikat Root SSL",
"Common Name" : "Nama umum",
"Valid until" : "Berlaku sampai",
@@ -294,7 +289,11 @@ OC.L10N.register(
"Default" : "Default",
"log-level out of allowed range" : "level-log melebihi batas yang diizinkan",
"Language changed" : "Bahasa telah diubah",
+ "Admins can't remove themself from the admin group" : "Admin tidak dapat menghapus dirinya sendiri dari grup admin",
+ "Unable to add user to group %s" : "Tidak dapat menambahkan pengguna ke grup %s",
+ "Unable to remove user from group %s" : "Tidak dapat menghapus pengguna dari grup %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Apakah Anda yakin ingin menambahkan \"{domain}\" sebagai domain terpercaya?",
+ "Please wait...." : "Mohon tunggu....",
"iPhone" : "iPhone",
"add group" : "tambah grup",
"Everything (fatal issues, errors, warnings, info, debug)" : "Semuanya (Masalah fatal, kesalahan, peringatan, info, debug)",
@@ -314,6 +313,7 @@ OC.L10N.register(
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Terutama saat menggunakan klien desktop untuk sinkronisasi berkas, penggunaan SQLite tidak disarankan.",
"Experimental applications ahead" : "Aplikasi percobaan terdepan",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Aplikasi percobaan belum diperiksa untuk masalah keamanan, baru atau dikenal tidak stabil dan dalam proses pengembangan. Menginstalnya dapat menyebabkan kehilangan data atau penerobosan keamanan.",
+ "Uninstall App" : "Copot aplikasi",
"Enable experimental apps" : "Aktifkan aplikasi percobaan",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hai,
sekedar memberi tahu bahwa Andaa sekarang memiliki akun %s.
Nama Pengguna Anda: %s
Akses di: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hai,\n\nsekedar memberi tahu bahwa Andaa sekarang memiliki akun %s.\n\nNama Pengguna Anda: %s\nAkses di: %s\n",
@@ -324,24 +324,6 @@ OC.L10N.register(
"Group Admin for" : "Grup Admin untuk",
"Storage Location" : "Lokasi Penyimpanan",
"User Backend" : "Backend Pengguna",
- "Last Login" : "Log Masuk Terakhir",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Penyimpanan Eksternal",
- "Updates" : "Pembaruan",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "Aplikasi resmi dikembangkan oleh dan didalam komunitas Nextcloud. Mereka menawarkan fungsi sentral untuk Nextcloud dan siap untuk penggunaan produksi.",
- "No apps found for \"{query}\"" : "Tidak ditemukan aplikasi untuk \"{query}\"",
- "An error occurred: {message}" : "Sebuah kesalahan yang muncul: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Mohon cek dokumentasi instalasi↗ untuk catatan konfigurasi php dan konfigurasi PHP server Anda, khususnya saat menggunakan php-fpm.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Database Anda tidak dijalankan dengan isolasi transaksi level \"READ COMMITED\". Ini dapat menyebabkan masalah saat banyak tindakan dilakukan secara paralel.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Server Anda dijalankan di Microsoft Windows. Kami sangat menyarankan Linux untuk mendapatkan pengalaman pengguna yang optimal.",
- "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 documentation ↗ for more information." : "Penguncian berkas transaksional nonaktif, ini dapat menyebabkan masalah dengan kondisi tertentu. Aktifkan 'filelocking.enabled' dalam config.php untuk menghindari masalah ini. Lihat dokumentasi ↗ untuk informasi lebih lanjut.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Mohon cek petunjuk instalasi ↗, dan cek masalah atau peringatan di log.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "Enkripsi saja tidak dapat menjamin keamanan sistem. Silakan lihat dokumentasi Nextcloud untuk informasi lebih lanjut dalam bagaimana aplikasi enkripsi bekerja, dan kasus pendukung.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Untuk migrasi ke database lain, gunakan alat command line: 'occ db:convert-type', atau lihat dokumentasi ↗.",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Aplikasi ini tidak mempunyai versi minimum Nextcloud yang ditetapkan. Ini akan menjadi kesalahan dalam Nextcloud 11 atau versi yang lebih tinggi.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Aplikasi ini tidak mempunyai versi maksimum Nextcloud yang ditetapkan. Ini akan menjadi kesalahan dalam Nextcloud 11 atau versi yang lebih tinggi.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Apabila Anda ingin mendukung proyek ini\n\t\tikuti pengembangannya\n\t\tatau\n\t\tbantu pengguna lainnya!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Dikembangkan oleh {commmunityopen}komunitas Nextcloud{linkclose}, {githubopen}sumber kode{linkclose} dilisensikan dibawah {licenseopen}AGPL{linkclose}."
+ "Last Login" : "Log Masuk Terakhir"
},
"nplurals=1; plural=0;");
diff --git a/settings/l10n/id.json b/settings/l10n/id.json
index bca26730533b7d299054e9ddcb20ae331158ffad..4b9ed65bd57fd396bfdc213cfd3e383bf3b054d9 100644
--- a/settings/l10n/id.json
+++ b/settings/l10n/id.json
@@ -34,9 +34,6 @@
"Unable to change mail address" : "Tidak dapat mengubah alamat email",
"Email saved" : "Email disimpan",
"Couldn't remove app." : "Tidak dapat menghapus aplikasi.",
- "Admins can't remove themself from the admin group" : "Admin tidak dapat menghapus dirinya sendiri dari grup admin",
- "Unable to add user to group %s" : "Tidak dapat menambahkan pengguna ke grup %s",
- "Unable to remove user from group %s" : "Tidak dapat menghapus pengguna dari grup %s",
"Couldn't update app." : "Tidak dapat memperbarui aplikasi.",
"Add trusted domain" : "Tambah domain terpercaya",
"Migration in progress. Please wait until the migration is finished" : "Migrasi sedang dalam proses. Mohon tunggu sampai migrasi selesai.",
@@ -51,7 +48,6 @@
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Aplikasi resmi dikembangkan oleh dan didalam komunitas. Mereka menawarkan fungsi sentral dan siap untuk penggunaan produksi.",
"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." : "Aplikasi tersetujui dikembangkan oleh pengembang terpercaya dan telah lulus pemeriksaan keamanan. Mereka secara aktif dipelihara direpositori kode terbuka dan pemelihara sudah memastikan mereka stabil untuk penggunaan normal.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Apl ini belum diperiksa masalah keamanannya dan masih baru atau biasanya tidak stabil. Instal dengan resiko Anda sendiri.",
- "Please wait...." : "Mohon tunggu....",
"Error while disabling app" : "Terjadi kesalahan saat menonaktifkan aplikasi",
"Disable" : "Nonaktifkan",
"Enable" : "Aktifkan",
@@ -216,7 +212,6 @@
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Aplikasi ini tidak mempunyai versi maksimum Nextcloud yang ditetapkan. Di masa depan nanti ini akan menjadi kesalahan.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Apl ini tidak dapat diinstal karena ketergantungan berikut belum terpenuhi:",
"Enable only for specific groups" : "Aktifkan hanya untuk grup tertentu",
- "Uninstall App" : "Copot aplikasi",
"SSL Root Certificates" : "Sertifikat Root SSL",
"Common Name" : "Nama umum",
"Valid until" : "Berlaku sampai",
@@ -292,7 +287,11 @@
"Default" : "Default",
"log-level out of allowed range" : "level-log melebihi batas yang diizinkan",
"Language changed" : "Bahasa telah diubah",
+ "Admins can't remove themself from the admin group" : "Admin tidak dapat menghapus dirinya sendiri dari grup admin",
+ "Unable to add user to group %s" : "Tidak dapat menambahkan pengguna ke grup %s",
+ "Unable to remove user from group %s" : "Tidak dapat menghapus pengguna dari grup %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Apakah Anda yakin ingin menambahkan \"{domain}\" sebagai domain terpercaya?",
+ "Please wait...." : "Mohon tunggu....",
"iPhone" : "iPhone",
"add group" : "tambah grup",
"Everything (fatal issues, errors, warnings, info, debug)" : "Semuanya (Masalah fatal, kesalahan, peringatan, info, debug)",
@@ -312,6 +311,7 @@
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Terutama saat menggunakan klien desktop untuk sinkronisasi berkas, penggunaan SQLite tidak disarankan.",
"Experimental applications ahead" : "Aplikasi percobaan terdepan",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Aplikasi percobaan belum diperiksa untuk masalah keamanan, baru atau dikenal tidak stabil dan dalam proses pengembangan. Menginstalnya dapat menyebabkan kehilangan data atau penerobosan keamanan.",
+ "Uninstall App" : "Copot aplikasi",
"Enable experimental apps" : "Aktifkan aplikasi percobaan",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hai,
sekedar memberi tahu bahwa Andaa sekarang memiliki akun %s.
Nama Pengguna Anda: %s
Akses di: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hai,\n\nsekedar memberi tahu bahwa Andaa sekarang memiliki akun %s.\n\nNama Pengguna Anda: %s\nAkses di: %s\n",
@@ -322,24 +322,6 @@
"Group Admin for" : "Grup Admin untuk",
"Storage Location" : "Lokasi Penyimpanan",
"User Backend" : "Backend Pengguna",
- "Last Login" : "Log Masuk Terakhir",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Penyimpanan Eksternal",
- "Updates" : "Pembaruan",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "Aplikasi resmi dikembangkan oleh dan didalam komunitas Nextcloud. Mereka menawarkan fungsi sentral untuk Nextcloud dan siap untuk penggunaan produksi.",
- "No apps found for \"{query}\"" : "Tidak ditemukan aplikasi untuk \"{query}\"",
- "An error occurred: {message}" : "Sebuah kesalahan yang muncul: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Mohon cek dokumentasi instalasi↗ untuk catatan konfigurasi php dan konfigurasi PHP server Anda, khususnya saat menggunakan php-fpm.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Database Anda tidak dijalankan dengan isolasi transaksi level \"READ COMMITED\". Ini dapat menyebabkan masalah saat banyak tindakan dilakukan secara paralel.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Server Anda dijalankan di Microsoft Windows. Kami sangat menyarankan Linux untuk mendapatkan pengalaman pengguna yang optimal.",
- "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 documentation ↗ for more information." : "Penguncian berkas transaksional nonaktif, ini dapat menyebabkan masalah dengan kondisi tertentu. Aktifkan 'filelocking.enabled' dalam config.php untuk menghindari masalah ini. Lihat dokumentasi ↗ untuk informasi lebih lanjut.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Mohon cek petunjuk instalasi ↗, dan cek masalah atau peringatan di log.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "Enkripsi saja tidak dapat menjamin keamanan sistem. Silakan lihat dokumentasi Nextcloud untuk informasi lebih lanjut dalam bagaimana aplikasi enkripsi bekerja, dan kasus pendukung.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Untuk migrasi ke database lain, gunakan alat command line: 'occ db:convert-type', atau lihat dokumentasi ↗.",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Aplikasi ini tidak mempunyai versi minimum Nextcloud yang ditetapkan. Ini akan menjadi kesalahan dalam Nextcloud 11 atau versi yang lebih tinggi.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Aplikasi ini tidak mempunyai versi maksimum Nextcloud yang ditetapkan. Ini akan menjadi kesalahan dalam Nextcloud 11 atau versi yang lebih tinggi.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Apabila Anda ingin mendukung proyek ini\n\t\tikuti pengembangannya\n\t\tatau\n\t\tbantu pengguna lainnya!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Dikembangkan oleh {commmunityopen}komunitas Nextcloud{linkclose}, {githubopen}sumber kode{linkclose} dilisensikan dibawah {licenseopen}AGPL{linkclose}."
+ "Last Login" : "Log Masuk Terakhir"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/settings/l10n/is.js b/settings/l10n/is.js
index 356ca42c2dd572ae122761b903c28970f7608b59..dd3906735893c9d7ace8372d2ca2d14f0ce3ba32 100644
--- a/settings/l10n/is.js
+++ b/settings/l10n/is.js
@@ -36,9 +36,6 @@ OC.L10N.register(
"Unable to change mail address" : "Get ekki breytt tölvupóstfangi",
"Email saved" : "Tölvupóstfang vistað",
"Couldn't remove app." : "Gat ekki fjarlægt forrit.",
- "Admins can't remove themself from the admin group" : "Stjórnendur geta ekki fjarlægt sjálfa sig úr stjórnendahóp",
- "Unable to add user to group %s" : "Ekki tókst að bæta notanda við hópinn %s",
- "Unable to remove user from group %s" : "Ekki tókst að fjarlægja notanda úr hópnum %s",
"Couldn't update app." : "Gat ekki uppfært forrit.",
"Add trusted domain" : "Bæta við treystu léni",
"Migration in progress. Please wait until the migration is finished" : "Yfirfærsla er í gangi. Dokaðu við þar til henni er lokið",
@@ -54,7 +51,6 @@ OC.L10N.register(
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Opinber forrit eru þróuð af og innan samfélagsins. Þau bjóða upp á ýmsa kjarnaeiginleika og eru tilbúin til notkunar í raunvinnslu.",
"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." : "Samþykkt forrit eru þróuð af treystum forriturum og hafa gengist undir lauslegar öryggisprófanir. Þau eru í virku viðhaldi í opnum hugbúnaðarsöfnum og umsjónarmenn þeirra dæma þau nógu stöðug til notkunar í allri venjulegri vinnslu.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Þetta forrit hefur ekki verið öryggisprófað, er nýtt erða þekkt fyrir ótöðugleika við vissar aðstæður. Uppsetning er á þína ábyrgð.",
- "Please wait...." : "Andartak....",
"Error while disabling app" : "Villa við að afvirkja forrit",
"Disable" : "Gera óvirkt",
"Enable" : "Virkja",
@@ -217,7 +213,6 @@ OC.L10N.register(
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Þetta vorrit er ekki með tiltekna neina hámarksútgáfu Nextcloud. Þetta mun gefa villu í framtíðinni.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Ekki var hægt að setja upp forritið þar sem eftirfarandi kerfiskröfur eru ekki uppfylltar:",
"Enable only for specific groups" : "Einungis fyrir sérstaka hópa",
- "Uninstall App" : "Fjarlægja/Henda út forriti",
"SSL Root Certificates" : "SSL-rótarskilríki",
"Common Name" : "Almennt heiti",
"Valid until" : "Gildir til",
@@ -298,7 +293,11 @@ OC.L10N.register(
"Default" : "Sjálfgefið",
"log-level out of allowed range" : "annálsstig utan leyfðra marka",
"Language changed" : "Tungumáli breytt",
+ "Admins can't remove themself from the admin group" : "Stjórnendur geta ekki fjarlægt sjálfa sig úr stjórnendahóp",
+ "Unable to add user to group %s" : "Ekki tókst að bæta notanda við hópinn %s",
+ "Unable to remove user from group %s" : "Ekki tókst að fjarlægja notanda úr hópnum %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Ertu viss um að þú viljir bæta \"{domain}\" við sem treystu léni?",
+ "Please wait...." : "Andartak....",
"iPhone" : "iPhone",
"add group" : "bæta við hópi",
"Everything (fatal issues, errors, warnings, info, debug)" : "Allt (aflúsun, upplýsingar, viðvaranir, villur og alvarlegar aðvaranir)",
@@ -318,6 +317,7 @@ OC.L10N.register(
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Sérstaklega þegar tölvu forrit er notað til samræmingar þá er ekki mælt með notkunn SQLite.",
"Experimental applications ahead" : "Forrit á tilraunastigi fyrst",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Tilraunaforrit eru ekki yfirfarin með tilliti til öryggisvandamála, þau eru þekkt fyrir að vera óstöðug og þróast hratt. Uppsetning þeirra getur valdið gagnatapi og öryggisbrestum.",
+ "Uninstall App" : "Fjarlægja/Henda út forriti",
"Enable experimental apps" : "Virkja forrit á tilraunastigi",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hæ þú,
bara að láta þig vita að þú átt núna %s aðgang.
Notandanafnið þitt: %s
Tengstu honum: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hæ þú,\n\nbara að láta þig vita að þú átt núna %s aðgang.\n\nNotandanafnið þitt: %s\nTengstu honum: %s\n\n",
@@ -329,23 +329,6 @@ OC.L10N.register(
"Group Admin for" : "Hópstjóri fyrir",
"Storage Location" : "Staðsetning gagnageymslu",
"User Backend" : "Bakendi notanda",
- "Last Login" : "Síðasta innskráning",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Ytri gagnageymsla",
- "Updates" : "Uppfærslur",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "Opinber forrit eru þróuð af og innan Nextcloud samfélagsins. Þau virka með kjarnaeiginleikum Nextcloud og eru tilbúin til notkunar í raunvinnslu.",
- "No apps found for \"{query}\"" : "Engin forrit fundust fyrir \"{query}\"",
- "An error occurred: {message}" : "Villa kom upp: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Endilega skoðaðu hjálparskjöl uppsetningarinnar ↗ varðandi athugasemdir vegna uppsetningar PHP og sjálfa uppsetningu PHP-þjónsins, Sérstaklega ef þú notar php-fpm.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Gagnagrunnurinn keyrir ekki með \"READ COMMITED\" færsluaðgreiningarstiginu. Þetta getur valdið vandamálum þegar margar aðgerðir eru keyrðar í einu.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Þjónninn þinn er keyrandi á Microsoft Windows. Við mælum sterklega með Linux til að njóta sem best allra eiginleika fyrir notendurna.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Yfirfarðu vandlega uppsetningarleiðbeiningarnar ↗, og athugaðu hvort nokkrar villumeldingar eða aðvaranir séu í annálnum.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "Dulritun ein og sér tryggir ekki öryggi kerfisins. Endilega skoðaðu hjálparskjölin um hvernig dulritunarforritið virkar, og dæmi um hvaða uppsetningar eru studdar.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Til að yfirfæra í annan gagnagrunn skaltu nota skipanalínutólið: 'occ db:convert-type', eða lesa hjálparskjölin ↗.",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Þetta vorrit er ekki með tiltekna neina lágmarksútgáfu Nextcloud. Þetta mun gefa villu í Nextcloud 11 og nýrri.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Þetta vorrit er ekki með tiltekna neina hámarksútgáfu Nextcloud. Þetta mun gefa villu í Nextcloud 11 og nýrri.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Ef þú vilt styðja við verkefnið\n\t\ttaktu þátt í þróuninni\n\t\teða\n\t\thjálpaðu öðrum notendum!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Þróað af {communityopen}Nextcloud samfélaginu{linkclose}, {githubopen}grunnkóðinn{linkclose} er gefinn út með {licenseopen}AGPL{linkclose} notkunarleyfinu."
+ "Last Login" : "Síðasta innskráning"
},
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/settings/l10n/is.json b/settings/l10n/is.json
index b4df1b0e76f6af19be09f2cd1d55bfd8d2922079..f5bf0bee0b9ab00a91b5f7aa082dc07c5ea68832 100644
--- a/settings/l10n/is.json
+++ b/settings/l10n/is.json
@@ -34,9 +34,6 @@
"Unable to change mail address" : "Get ekki breytt tölvupóstfangi",
"Email saved" : "Tölvupóstfang vistað",
"Couldn't remove app." : "Gat ekki fjarlægt forrit.",
- "Admins can't remove themself from the admin group" : "Stjórnendur geta ekki fjarlægt sjálfa sig úr stjórnendahóp",
- "Unable to add user to group %s" : "Ekki tókst að bæta notanda við hópinn %s",
- "Unable to remove user from group %s" : "Ekki tókst að fjarlægja notanda úr hópnum %s",
"Couldn't update app." : "Gat ekki uppfært forrit.",
"Add trusted domain" : "Bæta við treystu léni",
"Migration in progress. Please wait until the migration is finished" : "Yfirfærsla er í gangi. Dokaðu við þar til henni er lokið",
@@ -52,7 +49,6 @@
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Opinber forrit eru þróuð af og innan samfélagsins. Þau bjóða upp á ýmsa kjarnaeiginleika og eru tilbúin til notkunar í raunvinnslu.",
"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." : "Samþykkt forrit eru þróuð af treystum forriturum og hafa gengist undir lauslegar öryggisprófanir. Þau eru í virku viðhaldi í opnum hugbúnaðarsöfnum og umsjónarmenn þeirra dæma þau nógu stöðug til notkunar í allri venjulegri vinnslu.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Þetta forrit hefur ekki verið öryggisprófað, er nýtt erða þekkt fyrir ótöðugleika við vissar aðstæður. Uppsetning er á þína ábyrgð.",
- "Please wait...." : "Andartak....",
"Error while disabling app" : "Villa við að afvirkja forrit",
"Disable" : "Gera óvirkt",
"Enable" : "Virkja",
@@ -215,7 +211,6 @@
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Þetta vorrit er ekki með tiltekna neina hámarksútgáfu Nextcloud. Þetta mun gefa villu í framtíðinni.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Ekki var hægt að setja upp forritið þar sem eftirfarandi kerfiskröfur eru ekki uppfylltar:",
"Enable only for specific groups" : "Einungis fyrir sérstaka hópa",
- "Uninstall App" : "Fjarlægja/Henda út forriti",
"SSL Root Certificates" : "SSL-rótarskilríki",
"Common Name" : "Almennt heiti",
"Valid until" : "Gildir til",
@@ -296,7 +291,11 @@
"Default" : "Sjálfgefið",
"log-level out of allowed range" : "annálsstig utan leyfðra marka",
"Language changed" : "Tungumáli breytt",
+ "Admins can't remove themself from the admin group" : "Stjórnendur geta ekki fjarlægt sjálfa sig úr stjórnendahóp",
+ "Unable to add user to group %s" : "Ekki tókst að bæta notanda við hópinn %s",
+ "Unable to remove user from group %s" : "Ekki tókst að fjarlægja notanda úr hópnum %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Ertu viss um að þú viljir bæta \"{domain}\" við sem treystu léni?",
+ "Please wait...." : "Andartak....",
"iPhone" : "iPhone",
"add group" : "bæta við hópi",
"Everything (fatal issues, errors, warnings, info, debug)" : "Allt (aflúsun, upplýsingar, viðvaranir, villur og alvarlegar aðvaranir)",
@@ -316,6 +315,7 @@
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Sérstaklega þegar tölvu forrit er notað til samræmingar þá er ekki mælt með notkunn SQLite.",
"Experimental applications ahead" : "Forrit á tilraunastigi fyrst",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Tilraunaforrit eru ekki yfirfarin með tilliti til öryggisvandamála, þau eru þekkt fyrir að vera óstöðug og þróast hratt. Uppsetning þeirra getur valdið gagnatapi og öryggisbrestum.",
+ "Uninstall App" : "Fjarlægja/Henda út forriti",
"Enable experimental apps" : "Virkja forrit á tilraunastigi",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hæ þú,
bara að láta þig vita að þú átt núna %s aðgang.
Notandanafnið þitt: %s
Tengstu honum: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hæ þú,\n\nbara að láta þig vita að þú átt núna %s aðgang.\n\nNotandanafnið þitt: %s\nTengstu honum: %s\n\n",
@@ -327,23 +327,6 @@
"Group Admin for" : "Hópstjóri fyrir",
"Storage Location" : "Staðsetning gagnageymslu",
"User Backend" : "Bakendi notanda",
- "Last Login" : "Síðasta innskráning",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Ytri gagnageymsla",
- "Updates" : "Uppfærslur",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "Opinber forrit eru þróuð af og innan Nextcloud samfélagsins. Þau virka með kjarnaeiginleikum Nextcloud og eru tilbúin til notkunar í raunvinnslu.",
- "No apps found for \"{query}\"" : "Engin forrit fundust fyrir \"{query}\"",
- "An error occurred: {message}" : "Villa kom upp: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Endilega skoðaðu hjálparskjöl uppsetningarinnar ↗ varðandi athugasemdir vegna uppsetningar PHP og sjálfa uppsetningu PHP-þjónsins, Sérstaklega ef þú notar php-fpm.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Gagnagrunnurinn keyrir ekki með \"READ COMMITED\" færsluaðgreiningarstiginu. Þetta getur valdið vandamálum þegar margar aðgerðir eru keyrðar í einu.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Þjónninn þinn er keyrandi á Microsoft Windows. Við mælum sterklega með Linux til að njóta sem best allra eiginleika fyrir notendurna.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Yfirfarðu vandlega uppsetningarleiðbeiningarnar ↗, og athugaðu hvort nokkrar villumeldingar eða aðvaranir séu í annálnum.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "Dulritun ein og sér tryggir ekki öryggi kerfisins. Endilega skoðaðu hjálparskjölin um hvernig dulritunarforritið virkar, og dæmi um hvaða uppsetningar eru studdar.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Til að yfirfæra í annan gagnagrunn skaltu nota skipanalínutólið: 'occ db:convert-type', eða lesa hjálparskjölin ↗.",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Þetta vorrit er ekki með tiltekna neina lágmarksútgáfu Nextcloud. Þetta mun gefa villu í Nextcloud 11 og nýrri.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Þetta vorrit er ekki með tiltekna neina hámarksútgáfu Nextcloud. Þetta mun gefa villu í Nextcloud 11 og nýrri.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Ef þú vilt styðja við verkefnið\n\t\ttaktu þátt í þróuninni\n\t\teða\n\t\thjálpaðu öðrum notendum!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Þróað af {communityopen}Nextcloud samfélaginu{linkclose}, {githubopen}grunnkóðinn{linkclose} er gefinn út með {licenseopen}AGPL{linkclose} notkunarleyfinu."
+ "Last Login" : "Síðasta innskráning"
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
}
\ No newline at end of file
diff --git a/settings/l10n/it.js b/settings/l10n/it.js
index d81471d7a5faf977aecc4c08dafeee277f60bed8..727e98fa77414a00c3c126985ea67c15671ffb55 100644
--- a/settings/l10n/it.js
+++ b/settings/l10n/it.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"You need to set your user email before being able to send test emails." : "Devi impostare l'indirizzo del tuo utente prima di poter provare l'invio delle email.",
"Invalid request" : "Richiesta non valida",
"Invalid mail address" : "Indirizzo email non valido",
+ "No valid group selected" : "Nessun gruppo valido selezionato",
"A user with that name already exists." : "Un utente con quel nome esiste già.",
"Unable to create user." : "Impossibile creare l'utente.",
"Your %s account was created" : "Il tuo account %s è stato creato",
@@ -39,9 +40,6 @@ OC.L10N.register(
"Email saved" : "Email salvata",
"Password confirmation is required" : "La conferma della password è richiesta",
"Couldn't remove app." : "Impossibile rimuovere l'applicazione.",
- "Admins can't remove themself from the admin group" : "Gli amministratori non possono rimuovere se stessi dal gruppo di amministrazione",
- "Unable to add user to group %s" : "Impossibile aggiungere l'utente al gruppo %s",
- "Unable to remove user from group %s" : "Impossibile rimuovere l'utente dal gruppo %s",
"Couldn't update app." : "Impossibile aggiornate l'applicazione.",
"Are you really sure you want add {domain} as trusted domain?" : "Sei davvero sicuro di voler aggiungere {domain} come dominio attendibile?",
"Add trusted domain" : "Aggiungi dominio attendibile",
@@ -58,7 +56,7 @@ OC.L10N.register(
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Le applicazioni ufficiali sono sviluppate dalla comunità. Esse offrono nuove funzionalità e sono pronte per l'uso in produzione.",
"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." : "Le applicazioni approvate sono sviluppate da sviluppatori affidabili e hanno passato un rapido controllo di sicurezza. Sono attivamente mantenute in un deposito aperto del codice e i loro responsabili le ritengono pronte sia per un utilizzo casuale che per un utilizzo continuativo.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Questa applicazione non è stata sottoposta a controlli di sicurezza, è nuova o notoriamente instabile. Installala a tuo rischio.",
- "Please wait...." : "Attendere...",
+ "Enabling app …" : "Abilitazione applicazione...",
"Error while disabling app" : "Errore durante la disattivazione",
"Disable" : "Disabilita",
"Enable" : "Abilita",
@@ -125,6 +123,8 @@ OC.L10N.register(
"undo" : "annulla",
"never" : "mai",
"deleted {userName}" : "{userName} eliminato",
+ "Unable to add user to group {group}" : "Impossibile aggiungere l'utente al gruppo {group}",
+ "Unable to remove user from group {group}" : "Impossibile rimuovere l'utente dal gruppo {group}",
"Add group" : "Aggiungi gruppo",
"Invalid quota value \"{val}\"" : "Valore di quota \"{val}\" non valido",
"no group" : "nessun gruppo",
@@ -247,7 +247,7 @@ OC.L10N.register(
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Questa applicazione non contiene l'informazione della versione massima di Nextcloud richiesta. In futuro ciò sarà considerato un errore.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Questa applicazione non può essere installata perché le seguenti dipendenze non sono soddisfatte:",
"Enable only for specific groups" : "Abilita solo per gruppi specifici",
- "Uninstall App" : "Disinstalla applicazione",
+ "Uninstall app" : "Disinstalla applicazione",
"SSL Root Certificates" : "Certificati radice SSL",
"Common Name" : "Nome comune",
"Valid until" : "Valido fino al",
@@ -341,7 +341,11 @@ OC.L10N.register(
"Default" : "Predefinito",
"log-level out of allowed range" : "livello di log fuori dall'intervallo consentito",
"Language changed" : "Lingua modificata",
+ "Admins can't remove themself from the admin group" : "Gli amministratori non possono rimuovere se stessi dal gruppo di amministrazione",
+ "Unable to add user to group %s" : "Impossibile aggiungere l'utente al gruppo %s",
+ "Unable to remove user from group %s" : "Impossibile rimuovere l'utente dal gruppo %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Sei sicuro di voler aggiungere \"{domain}\" come dominio attendibile?",
+ "Please wait...." : "Attendere...",
"iPhone" : "iPhone",
"add group" : "aggiungi gruppo",
"Everything (fatal issues, errors, warnings, info, debug)" : "Tutto (problemi gravi, errori, avvisi, informazioni, debug)",
@@ -361,6 +365,7 @@ OC.L10N.register(
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "In particolar modo, quando si utilizza il client desktop per la sincronizzazione dei file, l'uso di SQLite è sconsigliato.",
"Experimental applications ahead" : "Prima le applicazioni sperimentali",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Le applicazioni sperimentali non sono sottoposte a controlli di sicurezza, sono nuove o notoriamente instabili e sotto sviluppo intensivo. La loro installazione può causare perdite di dati o problemi di sicurezza.",
+ "Uninstall App" : "Disinstalla applicazione",
"Enable experimental apps" : "Abilita le applicazioni sperimentali",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Ciao,
volevo informarti che ora hai un account %s.
Il tuo nome utente: %s
Accedi: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Ciao,\n\nvolevo informarti che ora hai un account %s.\n\nIl tuo nome utente: %s\nAccedi: %s\n\n",
@@ -372,24 +377,6 @@ OC.L10N.register(
"Group Admin for" : "Gruppo di amministrazione per",
"Storage Location" : "Posizione di archiviazione",
"User Backend" : "Motore utente",
- "Last Login" : "Ultimo accesso",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Archiviazione esterna",
- "Updates" : "Aggiornamenti",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "Le applicazioni ufficiali sono sviluppate dalla comunità di Nextcloud. Esse offrono le funzionalità principali di Nextcloud e sono pronte per l'uso in produzione.",
- "No apps found for \"{query}\"" : "Nessuna applicazione trovata per \"{query}\"",
- "An error occurred: {message}" : "Si è verificato un errore: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Controlla la documentazione di installazione↗ per le note di configurazione di php e la configurazione del tuo server, in particolare quando utilizzi php-fpm.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Il tuo database non è in esecuzione con il livello di isolamento delle transazioni \"READ COMMITTED\". Ciò può causare problemi quando diverse azioni sono eseguite in parallelo.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Il tuo server è in esecuzione su Microsoft Windows. Consigliamo vivamente Linux per un'esperienza utente ottimale.",
- "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 documentation ↗ for more information." : "Il blocco del file transazionale è disabilitato, ciò potrebbe comportare problemi di race condition. Abilita 'filelocking.enabled' nel config-php per evitare questi problemi. Vedi la documentazione ↗ per ulteriori informazioni.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Leggi attentamente le guide d'installazione ↗, e controlla gli errori o gli avvisi nel log.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "La sola cifratura non garantisce la sicurezza del sistema. Leggi la documentazione di Nextcloud per ulteriori informazioni sul funzionamento dell'applicazione di cifratura e sui casi d'uso supportati.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Per migrare a un altro database, usa lo strumento da riga di comando: 'occ db:convert-type', o leggi la documentazione ↗.",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Questa applicazione non contiene l'informazione della versione minima di Nextcloud richiesta. In Nextcloud 11 e successive, ciò sarà considerato un errore.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Questa applicazione non contiene l'informazione della versione massima di Nextcloud richiesta. In Nextcloud 11 e successive, ciò sarà considerato un errore.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Se desideri supportare il progetto\n\t\tcontribuisci allo sviluppo\n\t\to\n\t\taiuta gli altri utenti!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Sviluppato dalla {communityopen}comunità di Nextcloud{linkclose}, il {githubopen}codice sorgente{linkclose} è rilasciato nei termini della licenza {licenseopen}AGPL{linkclose}."
+ "Last Login" : "Ultimo accesso"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/it.json b/settings/l10n/it.json
index 44437586f9d6182a8cf4e390f353da72a5e6d521..01b584d12d02be3ab3062bcc5600c02b53dcc94f 100644
--- a/settings/l10n/it.json
+++ b/settings/l10n/it.json
@@ -23,6 +23,7 @@
"You need to set your user email before being able to send test emails." : "Devi impostare l'indirizzo del tuo utente prima di poter provare l'invio delle email.",
"Invalid request" : "Richiesta non valida",
"Invalid mail address" : "Indirizzo email non valido",
+ "No valid group selected" : "Nessun gruppo valido selezionato",
"A user with that name already exists." : "Un utente con quel nome esiste già.",
"Unable to create user." : "Impossibile creare l'utente.",
"Your %s account was created" : "Il tuo account %s è stato creato",
@@ -37,9 +38,6 @@
"Email saved" : "Email salvata",
"Password confirmation is required" : "La conferma della password è richiesta",
"Couldn't remove app." : "Impossibile rimuovere l'applicazione.",
- "Admins can't remove themself from the admin group" : "Gli amministratori non possono rimuovere se stessi dal gruppo di amministrazione",
- "Unable to add user to group %s" : "Impossibile aggiungere l'utente al gruppo %s",
- "Unable to remove user from group %s" : "Impossibile rimuovere l'utente dal gruppo %s",
"Couldn't update app." : "Impossibile aggiornate l'applicazione.",
"Are you really sure you want add {domain} as trusted domain?" : "Sei davvero sicuro di voler aggiungere {domain} come dominio attendibile?",
"Add trusted domain" : "Aggiungi dominio attendibile",
@@ -56,7 +54,7 @@
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Le applicazioni ufficiali sono sviluppate dalla comunità. Esse offrono nuove funzionalità e sono pronte per l'uso in produzione.",
"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." : "Le applicazioni approvate sono sviluppate da sviluppatori affidabili e hanno passato un rapido controllo di sicurezza. Sono attivamente mantenute in un deposito aperto del codice e i loro responsabili le ritengono pronte sia per un utilizzo casuale che per un utilizzo continuativo.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Questa applicazione non è stata sottoposta a controlli di sicurezza, è nuova o notoriamente instabile. Installala a tuo rischio.",
- "Please wait...." : "Attendere...",
+ "Enabling app …" : "Abilitazione applicazione...",
"Error while disabling app" : "Errore durante la disattivazione",
"Disable" : "Disabilita",
"Enable" : "Abilita",
@@ -123,6 +121,8 @@
"undo" : "annulla",
"never" : "mai",
"deleted {userName}" : "{userName} eliminato",
+ "Unable to add user to group {group}" : "Impossibile aggiungere l'utente al gruppo {group}",
+ "Unable to remove user from group {group}" : "Impossibile rimuovere l'utente dal gruppo {group}",
"Add group" : "Aggiungi gruppo",
"Invalid quota value \"{val}\"" : "Valore di quota \"{val}\" non valido",
"no group" : "nessun gruppo",
@@ -245,7 +245,7 @@
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Questa applicazione non contiene l'informazione della versione massima di Nextcloud richiesta. In futuro ciò sarà considerato un errore.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Questa applicazione non può essere installata perché le seguenti dipendenze non sono soddisfatte:",
"Enable only for specific groups" : "Abilita solo per gruppi specifici",
- "Uninstall App" : "Disinstalla applicazione",
+ "Uninstall app" : "Disinstalla applicazione",
"SSL Root Certificates" : "Certificati radice SSL",
"Common Name" : "Nome comune",
"Valid until" : "Valido fino al",
@@ -339,7 +339,11 @@
"Default" : "Predefinito",
"log-level out of allowed range" : "livello di log fuori dall'intervallo consentito",
"Language changed" : "Lingua modificata",
+ "Admins can't remove themself from the admin group" : "Gli amministratori non possono rimuovere se stessi dal gruppo di amministrazione",
+ "Unable to add user to group %s" : "Impossibile aggiungere l'utente al gruppo %s",
+ "Unable to remove user from group %s" : "Impossibile rimuovere l'utente dal gruppo %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Sei sicuro di voler aggiungere \"{domain}\" come dominio attendibile?",
+ "Please wait...." : "Attendere...",
"iPhone" : "iPhone",
"add group" : "aggiungi gruppo",
"Everything (fatal issues, errors, warnings, info, debug)" : "Tutto (problemi gravi, errori, avvisi, informazioni, debug)",
@@ -359,6 +363,7 @@
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "In particolar modo, quando si utilizza il client desktop per la sincronizzazione dei file, l'uso di SQLite è sconsigliato.",
"Experimental applications ahead" : "Prima le applicazioni sperimentali",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Le applicazioni sperimentali non sono sottoposte a controlli di sicurezza, sono nuove o notoriamente instabili e sotto sviluppo intensivo. La loro installazione può causare perdite di dati o problemi di sicurezza.",
+ "Uninstall App" : "Disinstalla applicazione",
"Enable experimental apps" : "Abilita le applicazioni sperimentali",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Ciao,
volevo informarti che ora hai un account %s.
Il tuo nome utente: %s
Accedi: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Ciao,\n\nvolevo informarti che ora hai un account %s.\n\nIl tuo nome utente: %s\nAccedi: %s\n\n",
@@ -370,24 +375,6 @@
"Group Admin for" : "Gruppo di amministrazione per",
"Storage Location" : "Posizione di archiviazione",
"User Backend" : "Motore utente",
- "Last Login" : "Ultimo accesso",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Archiviazione esterna",
- "Updates" : "Aggiornamenti",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "Le applicazioni ufficiali sono sviluppate dalla comunità di Nextcloud. Esse offrono le funzionalità principali di Nextcloud e sono pronte per l'uso in produzione.",
- "No apps found for \"{query}\"" : "Nessuna applicazione trovata per \"{query}\"",
- "An error occurred: {message}" : "Si è verificato un errore: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Controlla la documentazione di installazione↗ per le note di configurazione di php e la configurazione del tuo server, in particolare quando utilizzi php-fpm.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Il tuo database non è in esecuzione con il livello di isolamento delle transazioni \"READ COMMITTED\". Ciò può causare problemi quando diverse azioni sono eseguite in parallelo.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Il tuo server è in esecuzione su Microsoft Windows. Consigliamo vivamente Linux per un'esperienza utente ottimale.",
- "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 documentation ↗ for more information." : "Il blocco del file transazionale è disabilitato, ciò potrebbe comportare problemi di race condition. Abilita 'filelocking.enabled' nel config-php per evitare questi problemi. Vedi la documentazione ↗ per ulteriori informazioni.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Leggi attentamente le guide d'installazione ↗, e controlla gli errori o gli avvisi nel log.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "La sola cifratura non garantisce la sicurezza del sistema. Leggi la documentazione di Nextcloud per ulteriori informazioni sul funzionamento dell'applicazione di cifratura e sui casi d'uso supportati.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Per migrare a un altro database, usa lo strumento da riga di comando: 'occ db:convert-type', o leggi la documentazione ↗.",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Questa applicazione non contiene l'informazione della versione minima di Nextcloud richiesta. In Nextcloud 11 e successive, ciò sarà considerato un errore.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Questa applicazione non contiene l'informazione della versione massima di Nextcloud richiesta. In Nextcloud 11 e successive, ciò sarà considerato un errore.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Se desideri supportare il progetto\n\t\tcontribuisci allo sviluppo\n\t\to\n\t\taiuta gli altri utenti!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Sviluppato dalla {communityopen}comunità di Nextcloud{linkclose}, il {githubopen}codice sorgente{linkclose} è rilasciato nei termini della licenza {licenseopen}AGPL{linkclose}."
+ "Last Login" : "Ultimo accesso"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/ja.js b/settings/l10n/ja.js
index 3c3dfb7b7bfbd58aa151f027df947bc8b915118f..3eac52bbfd5bdd9ad5b477edfa531863cffc5c3a 100644
--- a/settings/l10n/ja.js
+++ b/settings/l10n/ja.js
@@ -39,9 +39,6 @@ OC.L10N.register(
"Email saved" : "メールアドレスを保存しました",
"Password confirmation is required" : "パスワードの確認が必要です",
"Couldn't remove app." : "アプリが削除できませんでした。",
- "Admins can't remove themself from the admin group" : "管理者は自身を管理者グループから削除できません。",
- "Unable to add user to group %s" : "ユーザーをグループ %s に追加できません",
- "Unable to remove user from group %s" : "ユーザーをグループ %s から削除できません",
"Couldn't update app." : "アプリをアップデートできませんでした。",
"Are you really sure you want add {domain} as trusted domain?" : "{domain} を信頼できるドメインとして追加してもよろしいですか?",
"Add trusted domain" : "信頼するドメイン名に追加",
@@ -58,7 +55,7 @@ OC.L10N.register(
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "公式アプリは ownCloud コミュニティにより開発されています。公式アプリは ownCloud の中心的な機能を提供し、製品として可能です。",
"Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "承認されたアプリは信頼された開発者により開発され、大まかなセキュリティチェックに合格しています。アプリは積極的にオープンソースコードレポジトリでメンテナンスされ、メンテナは通常の用途では安定していると考えます。",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "このアプリはセキュリティチェックされていません、新規アプリか安定性が確認されていないアプリです。自己責任でインストールしてください。",
- "Please wait...." : "しばらくお待ちください...",
+ "Enabling app …" : "アプリを有効 ...",
"Error while disabling app" : "アプリ無効化中にエラーが発生",
"Disable" : "無効にする",
"Enable" : "有効にする",
@@ -125,6 +122,8 @@ OC.L10N.register(
"undo" : "元に戻す",
"never" : "なし",
"deleted {userName}" : "{userName} を削除しました",
+ "Unable to add user to group {group}" : "ユーザーを {group} グループに追加できません",
+ "Unable to remove user from group {group}" : "ユーザーを {group} グループから削除できません",
"Add group" : "グループを追加する",
"Invalid quota value \"{val}\"" : "クオータ値 \"{val}\" は不正な値です。",
"no group" : "グループなし",
@@ -247,14 +246,16 @@ OC.L10N.register(
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "このアプリは Nextcloud バージョンの上限が指定されていません.将来、エラーが発生する可能性があります.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "次の依存関係が満たされないためこのアプリをインストールできません:",
"Enable only for specific groups" : "特定のグループのみ有効に",
- "Uninstall App" : "アプリをアンインストール",
+ "Uninstall app" : "アプリをアンインストール",
"SSL Root Certificates" : "SSLルート証明書",
"Common Name" : "コモンネーム",
"Valid until" : "有効期限",
"Issued By" : "発行元",
"Valid until %s" : "%s まで有効",
"Import root certificate" : "ルート証明書をインポート",
+ "Hey there,
just letting you know that you now have a %s account.
Your username: %s
Access it: %s
" : "こんにちは、
あなたのアカウント %s が利用できるようになりました。
ユーザー名: %s
接続URL: %s
",
"Cheers!" : "それでは!",
+ "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "こんにちは、\n\nあなたのアカウント %s が利用できるようになりました。\n\nユーザー名: %s\n接続URL: %s\n\n",
"Administrator documentation" : "管理者ドキュメント",
"Online documentation" : "オンラインドキュメント",
"Forum" : "フォーラム",
@@ -339,7 +340,11 @@ OC.L10N.register(
"Default" : "デフォルト",
"log-level out of allowed range" : "ログレベルが許可された範囲を超えています",
"Language changed" : "言語が変更されました",
+ "Admins can't remove themself from the admin group" : "管理者は自身を管理者グループから削除できません。",
+ "Unable to add user to group %s" : "ユーザーをグループ %s に追加できません",
+ "Unable to remove user from group %s" : "ユーザーをグループ %s から削除できません",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "\"{domain}\" を信頼するドメインに追加してもよろしいでしょうか?",
+ "Please wait...." : "しばらくお待ちください...",
"iPhone" : "iPhone",
"add group" : "グループを追加する",
"Everything (fatal issues, errors, warnings, info, debug)" : "すべて (致命的な問題、エラー、警告、情報、デバッグ)",
@@ -359,6 +364,7 @@ OC.L10N.register(
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "特にデスクトップクライアントをファイル同期に使用する場合,SQLiteは非推奨です.",
"Experimental applications ahead" : "実験的なアプリケーションを試す",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "実験的なアプリは、脆弱性についてチェックされていませんし、不安定であったり、激しく開発中です。それらをインストールすると、データの損失やセキュリティ侵害を引き起こす可能性があります。",
+ "Uninstall App" : "アプリをアンインストール",
"Enable experimental apps" : "実験的なアプリを有効にする",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "こんにちは、
あなたのアカウント %s が利用可能になったことをお知らせします。
ユーザー名: %s
以下のURLからアクセス: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "こんにちは、\n\nあなたのアカウント %s が利用可能になったことをお知らせします。\n\nユーザー名: %s\n接続URL: %s\n\n",
@@ -370,24 +376,6 @@ OC.L10N.register(
"Group Admin for" : "グループの管理者",
"Storage Location" : "ストレージの場所",
"User Backend" : "ユーザーバックエンド",
- "Last Login" : "最終ログイン",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "外部ストレージ",
- "Updates" : "アップデート",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "公式アプリはNextcloudコミュニティによって開発されています。コミュニティでは、Nextcloudの中心的な機能を提供し、プロダクションでの使用に備えています。",
- "No apps found for \"{query}\"" : "{query} のアプリは見つかりませんでした",
- "An error occurred: {message}" : "エラーが発生しました: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "php-fpmを使用している場合は特に、お使いのサーバのPHP設定とPHP設定の注意点については、インストールマニュアル↗を確認してください。",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "あなたのデータベースは \"READ COMMITED\" トランザクション分離レベルで動作していません。このことにより複数のアクションが平行して実行される場合に問題が起こる可能性があります。",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "サーバーはMicrosoft Windows上で動作しています。最適なユーザーエクスペリエンスのためにLinuxを強くお勧めします。",
- "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 documentation ↗ for more information." : "ファイルの書き込み時のロックが無効になっていると、競合時に問題が発生する可能性があります。 config.phpで 'filelocking.enabled'を有効にして、これらの問題を回避してください。詳細については、ドキュメントを参照してください。",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "インストールガイドを再確認し、ログ a>のエラーや警告を確認してください>。",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "暗号化だけではシステムのセキュリティを保証するものではありません。暗号化アプリケーションの仕組みとサポートされているユースケースについては、Nextcloudのドキュメントを参照してください。",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "他のデータベースに移行する場合はコマンドラインツール: 'occ db:convert-type' を使うか、ドキュメント ↗を参照してください。",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "このアプリは、最小NextCloudのバージョンが割り当てられていません。これは、Nextcloud 11以降ではエラーになります。",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "このアプリは、割り当てられた最大NextCloudバージョンがありません。これは、Nextcloud 11以降ではエラーになります。",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "このプロジェクトを応援するには、\n\t\t開発に参加\n\t\tまたは、\n\t\t他の人を助ける!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "{communityopen}Nextcloud community{linkclose} による開発されています。{githubopen}source code{linkclose} は、 {licenseopen}AGPL{linkclose} ライセンスで提供されています。"
+ "Last Login" : "最終ログイン"
},
"nplurals=1; plural=0;");
diff --git a/settings/l10n/ja.json b/settings/l10n/ja.json
index 5aac59fb1731726e81fc6efdd418b3eddd5f702d..2aad81aeaf6a0e49236d997121f023828dbf5c7f 100644
--- a/settings/l10n/ja.json
+++ b/settings/l10n/ja.json
@@ -37,9 +37,6 @@
"Email saved" : "メールアドレスを保存しました",
"Password confirmation is required" : "パスワードの確認が必要です",
"Couldn't remove app." : "アプリが削除できませんでした。",
- "Admins can't remove themself from the admin group" : "管理者は自身を管理者グループから削除できません。",
- "Unable to add user to group %s" : "ユーザーをグループ %s に追加できません",
- "Unable to remove user from group %s" : "ユーザーをグループ %s から削除できません",
"Couldn't update app." : "アプリをアップデートできませんでした。",
"Are you really sure you want add {domain} as trusted domain?" : "{domain} を信頼できるドメインとして追加してもよろしいですか?",
"Add trusted domain" : "信頼するドメイン名に追加",
@@ -56,7 +53,7 @@
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "公式アプリは ownCloud コミュニティにより開発されています。公式アプリは ownCloud の中心的な機能を提供し、製品として可能です。",
"Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "承認されたアプリは信頼された開発者により開発され、大まかなセキュリティチェックに合格しています。アプリは積極的にオープンソースコードレポジトリでメンテナンスされ、メンテナは通常の用途では安定していると考えます。",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "このアプリはセキュリティチェックされていません、新規アプリか安定性が確認されていないアプリです。自己責任でインストールしてください。",
- "Please wait...." : "しばらくお待ちください...",
+ "Enabling app …" : "アプリを有効 ...",
"Error while disabling app" : "アプリ無効化中にエラーが発生",
"Disable" : "無効にする",
"Enable" : "有効にする",
@@ -123,6 +120,8 @@
"undo" : "元に戻す",
"never" : "なし",
"deleted {userName}" : "{userName} を削除しました",
+ "Unable to add user to group {group}" : "ユーザーを {group} グループに追加できません",
+ "Unable to remove user from group {group}" : "ユーザーを {group} グループから削除できません",
"Add group" : "グループを追加する",
"Invalid quota value \"{val}\"" : "クオータ値 \"{val}\" は不正な値です。",
"no group" : "グループなし",
@@ -245,14 +244,16 @@
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "このアプリは Nextcloud バージョンの上限が指定されていません.将来、エラーが発生する可能性があります.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "次の依存関係が満たされないためこのアプリをインストールできません:",
"Enable only for specific groups" : "特定のグループのみ有効に",
- "Uninstall App" : "アプリをアンインストール",
+ "Uninstall app" : "アプリをアンインストール",
"SSL Root Certificates" : "SSLルート証明書",
"Common Name" : "コモンネーム",
"Valid until" : "有効期限",
"Issued By" : "発行元",
"Valid until %s" : "%s まで有効",
"Import root certificate" : "ルート証明書をインポート",
+ "Hey there,
just letting you know that you now have a %s account.
Your username: %s
Access it: %s
" : "こんにちは、
あなたのアカウント %s が利用できるようになりました。
ユーザー名: %s
接続URL: %s
",
"Cheers!" : "それでは!",
+ "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "こんにちは、\n\nあなたのアカウント %s が利用できるようになりました。\n\nユーザー名: %s\n接続URL: %s\n\n",
"Administrator documentation" : "管理者ドキュメント",
"Online documentation" : "オンラインドキュメント",
"Forum" : "フォーラム",
@@ -337,7 +338,11 @@
"Default" : "デフォルト",
"log-level out of allowed range" : "ログレベルが許可された範囲を超えています",
"Language changed" : "言語が変更されました",
+ "Admins can't remove themself from the admin group" : "管理者は自身を管理者グループから削除できません。",
+ "Unable to add user to group %s" : "ユーザーをグループ %s に追加できません",
+ "Unable to remove user from group %s" : "ユーザーをグループ %s から削除できません",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "\"{domain}\" を信頼するドメインに追加してもよろしいでしょうか?",
+ "Please wait...." : "しばらくお待ちください...",
"iPhone" : "iPhone",
"add group" : "グループを追加する",
"Everything (fatal issues, errors, warnings, info, debug)" : "すべて (致命的な問題、エラー、警告、情報、デバッグ)",
@@ -357,6 +362,7 @@
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "特にデスクトップクライアントをファイル同期に使用する場合,SQLiteは非推奨です.",
"Experimental applications ahead" : "実験的なアプリケーションを試す",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "実験的なアプリは、脆弱性についてチェックされていませんし、不安定であったり、激しく開発中です。それらをインストールすると、データの損失やセキュリティ侵害を引き起こす可能性があります。",
+ "Uninstall App" : "アプリをアンインストール",
"Enable experimental apps" : "実験的なアプリを有効にする",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "こんにちは、
あなたのアカウント %s が利用可能になったことをお知らせします。
ユーザー名: %s
以下のURLからアクセス: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "こんにちは、\n\nあなたのアカウント %s が利用可能になったことをお知らせします。\n\nユーザー名: %s\n接続URL: %s\n\n",
@@ -368,24 +374,6 @@
"Group Admin for" : "グループの管理者",
"Storage Location" : "ストレージの場所",
"User Backend" : "ユーザーバックエンド",
- "Last Login" : "最終ログイン",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "外部ストレージ",
- "Updates" : "アップデート",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "公式アプリはNextcloudコミュニティによって開発されています。コミュニティでは、Nextcloudの中心的な機能を提供し、プロダクションでの使用に備えています。",
- "No apps found for \"{query}\"" : "{query} のアプリは見つかりませんでした",
- "An error occurred: {message}" : "エラーが発生しました: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "php-fpmを使用している場合は特に、お使いのサーバのPHP設定とPHP設定の注意点については、インストールマニュアル↗を確認してください。",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "あなたのデータベースは \"READ COMMITED\" トランザクション分離レベルで動作していません。このことにより複数のアクションが平行して実行される場合に問題が起こる可能性があります。",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "サーバーはMicrosoft Windows上で動作しています。最適なユーザーエクスペリエンスのためにLinuxを強くお勧めします。",
- "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 documentation ↗ for more information." : "ファイルの書き込み時のロックが無効になっていると、競合時に問題が発生する可能性があります。 config.phpで 'filelocking.enabled'を有効にして、これらの問題を回避してください。詳細については、ドキュメントを参照してください。",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "インストールガイドを再確認し、ログ a>のエラーや警告を確認してください>。",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "暗号化だけではシステムのセキュリティを保証するものではありません。暗号化アプリケーションの仕組みとサポートされているユースケースについては、Nextcloudのドキュメントを参照してください。",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "他のデータベースに移行する場合はコマンドラインツール: 'occ db:convert-type' を使うか、ドキュメント ↗を参照してください。",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "このアプリは、最小NextCloudのバージョンが割り当てられていません。これは、Nextcloud 11以降ではエラーになります。",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "このアプリは、割り当てられた最大NextCloudバージョンがありません。これは、Nextcloud 11以降ではエラーになります。",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "このプロジェクトを応援するには、\n\t\t開発に参加\n\t\tまたは、\n\t\t他の人を助ける!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "{communityopen}Nextcloud community{linkclose} による開発されています。{githubopen}source code{linkclose} は、 {licenseopen}AGPL{linkclose} ライセンスで提供されています。"
+ "Last Login" : "最終ログイン"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/settings/l10n/ka_GE.js b/settings/l10n/ka_GE.js
index f1add7c6928b5862a6d1dfb012cc2dce984348ac..131f1beb0f32f10bad7da911f752682b6b27c2aa 100644
--- a/settings/l10n/ka_GE.js
+++ b/settings/l10n/ka_GE.js
@@ -5,12 +5,8 @@ OC.L10N.register(
"Email sent" : "იმეილი გაიგზავნა",
"Invalid request" : "არასწორი მოთხოვნა",
"Email saved" : "იმეილი შენახულია",
- "Admins can't remove themself from the admin group" : "ადმინისტრატორებს არ შეუძლიათ საკუთარი თავის წაშლა ადმინ ჯგუფიდან",
- "Unable to add user to group %s" : "მომხმარებლის დამატება ვერ მოხეხდა ჯგუფში %s",
- "Unable to remove user from group %s" : "მომხმარებლის წაშლა ვერ მოხეხდა ჯგუფიდან %s",
"Couldn't update app." : "ვერ მოხერხდა აპლიკაციის განახლება.",
"All" : "ყველა",
- "Please wait...." : "დაიცადეთ....",
"Disable" : "გამორთვა",
"Enable" : "ჩართვა",
"Updating...." : "მიმდინარეობს განახლება....",
@@ -57,9 +53,12 @@ OC.L10N.register(
"set new password" : "დააყენეთ ახალი პაროლი",
"Default" : "საწყისი პარამეტრები",
"Language changed" : "ენა შეცვლილია",
+ "Admins can't remove themself from the admin group" : "ადმინისტრატორებს არ შეუძლიათ საკუთარი თავის წაშლა ადმინ ჯგუფიდან",
+ "Unable to add user to group %s" : "მომხმარებლის დამატება ვერ მოხეხდა ჯგუფში %s",
+ "Unable to remove user from group %s" : "მომხმარებლის წაშლა ვერ მოხეხდა ჯგუფიდან %s",
+ "Please wait...." : "დაიცადეთ....",
"Log" : "ლოგი",
"More" : "უფრო მეტი",
- "Less" : "უფრო ნაკლები",
- "External Storage" : "ექსტერნალ საცავი"
+ "Less" : "უფრო ნაკლები"
},
"nplurals=1; plural=0;");
diff --git a/settings/l10n/ka_GE.json b/settings/l10n/ka_GE.json
index 219160111e055b8948744402f246be49ba2f420c..d2953e86a98fcd4b5950954bb30efb97e73676c9 100644
--- a/settings/l10n/ka_GE.json
+++ b/settings/l10n/ka_GE.json
@@ -3,12 +3,8 @@
"Email sent" : "იმეილი გაიგზავნა",
"Invalid request" : "არასწორი მოთხოვნა",
"Email saved" : "იმეილი შენახულია",
- "Admins can't remove themself from the admin group" : "ადმინისტრატორებს არ შეუძლიათ საკუთარი თავის წაშლა ადმინ ჯგუფიდან",
- "Unable to add user to group %s" : "მომხმარებლის დამატება ვერ მოხეხდა ჯგუფში %s",
- "Unable to remove user from group %s" : "მომხმარებლის წაშლა ვერ მოხეხდა ჯგუფიდან %s",
"Couldn't update app." : "ვერ მოხერხდა აპლიკაციის განახლება.",
"All" : "ყველა",
- "Please wait...." : "დაიცადეთ....",
"Disable" : "გამორთვა",
"Enable" : "ჩართვა",
"Updating...." : "მიმდინარეობს განახლება....",
@@ -55,9 +51,12 @@
"set new password" : "დააყენეთ ახალი პაროლი",
"Default" : "საწყისი პარამეტრები",
"Language changed" : "ენა შეცვლილია",
+ "Admins can't remove themself from the admin group" : "ადმინისტრატორებს არ შეუძლიათ საკუთარი თავის წაშლა ადმინ ჯგუფიდან",
+ "Unable to add user to group %s" : "მომხმარებლის დამატება ვერ მოხეხდა ჯგუფში %s",
+ "Unable to remove user from group %s" : "მომხმარებლის წაშლა ვერ მოხეხდა ჯგუფიდან %s",
+ "Please wait...." : "დაიცადეთ....",
"Log" : "ლოგი",
"More" : "უფრო მეტი",
- "Less" : "უფრო ნაკლები",
- "External Storage" : "ექსტერნალ საცავი"
+ "Less" : "უფრო ნაკლები"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/settings/l10n/km.js b/settings/l10n/km.js
index 45b9fbe09453d5b4abff1d28049a9d8e7a216818..5c604f03c49aaffcc79d23a0b16d6195db6728d0 100644
--- a/settings/l10n/km.js
+++ b/settings/l10n/km.js
@@ -10,13 +10,9 @@ OC.L10N.register(
"You need to set your user email before being able to send test emails." : "អ្នកត្រូវតែកំណត់អ៊ីមែលរបស់អ្នកមុននឹងអាចផ្ញើអ៊ីមែលសាកល្បងបាន។",
"Invalid request" : "សំណើមិនត្រឹមត្រូវ",
"Email saved" : "បានរក្សាទុកអ៊ីមែល",
- "Admins can't remove themself from the admin group" : "អ្នកគ្រប់គ្រងមិនអាចលុបខ្លួនឯងចេញពីក្រុមអ្នកគ្រប់គ្រងឡើយ",
- "Unable to add user to group %s" : "មិនអាចបន្ថែមអ្នកប្រើទៅក្រុម %s",
- "Unable to remove user from group %s" : "មិនអាចដកអ្នកប្រើចេញពីក្រុម %s",
"Couldn't update app." : "មិនអាចធ្វើបច្ចុប្បន្នភាពកម្មវិធី។",
"Sending..." : "កំពុងផ្ញើ...",
"All" : "ទាំងអស់",
- "Please wait...." : "សូមរង់ចាំ....",
"Error while disabling app" : "មានកំហុសពេលកំពុងបិទកម្មវិធី",
"Disable" : "បិទ",
"Enable" : "បើក",
@@ -74,9 +70,12 @@ OC.L10N.register(
"set new password" : "កំណត់ពាក្យសម្ងាត់ថ្មី",
"Default" : "លំនាំដើម",
"Language changed" : "បានប្ដូរភាសា",
+ "Admins can't remove themself from the admin group" : "អ្នកគ្រប់គ្រងមិនអាចលុបខ្លួនឯងចេញពីក្រុមអ្នកគ្រប់គ្រងឡើយ",
+ "Unable to add user to group %s" : "មិនអាចបន្ថែមអ្នកប្រើទៅក្រុម %s",
+ "Unable to remove user from group %s" : "មិនអាចដកអ្នកប្រើចេញពីក្រុម %s",
+ "Please wait...." : "សូមរង់ចាំ....",
"Log" : "Log",
"More" : "ច្រើនទៀត",
- "Less" : "តិច",
- "External Storage" : "ឃ្លាំងផ្ទុកខាងក្រៅ"
+ "Less" : "តិច"
},
"nplurals=1; plural=0;");
diff --git a/settings/l10n/km.json b/settings/l10n/km.json
index ae778387a74b0f87364510cc3579f11b5796e743..00f212fc43636a4a7a30c82fc153bdaacde76e97 100644
--- a/settings/l10n/km.json
+++ b/settings/l10n/km.json
@@ -8,13 +8,9 @@
"You need to set your user email before being able to send test emails." : "អ្នកត្រូវតែកំណត់អ៊ីមែលរបស់អ្នកមុននឹងអាចផ្ញើអ៊ីមែលសាកល្បងបាន។",
"Invalid request" : "សំណើមិនត្រឹមត្រូវ",
"Email saved" : "បានរក្សាទុកអ៊ីមែល",
- "Admins can't remove themself from the admin group" : "អ្នកគ្រប់គ្រងមិនអាចលុបខ្លួនឯងចេញពីក្រុមអ្នកគ្រប់គ្រងឡើយ",
- "Unable to add user to group %s" : "មិនអាចបន្ថែមអ្នកប្រើទៅក្រុម %s",
- "Unable to remove user from group %s" : "មិនអាចដកអ្នកប្រើចេញពីក្រុម %s",
"Couldn't update app." : "មិនអាចធ្វើបច្ចុប្បន្នភាពកម្មវិធី។",
"Sending..." : "កំពុងផ្ញើ...",
"All" : "ទាំងអស់",
- "Please wait...." : "សូមរង់ចាំ....",
"Error while disabling app" : "មានកំហុសពេលកំពុងបិទកម្មវិធី",
"Disable" : "បិទ",
"Enable" : "បើក",
@@ -72,9 +68,12 @@
"set new password" : "កំណត់ពាក្យសម្ងាត់ថ្មី",
"Default" : "លំនាំដើម",
"Language changed" : "បានប្ដូរភាសា",
+ "Admins can't remove themself from the admin group" : "អ្នកគ្រប់គ្រងមិនអាចលុបខ្លួនឯងចេញពីក្រុមអ្នកគ្រប់គ្រងឡើយ",
+ "Unable to add user to group %s" : "មិនអាចបន្ថែមអ្នកប្រើទៅក្រុម %s",
+ "Unable to remove user from group %s" : "មិនអាចដកអ្នកប្រើចេញពីក្រុម %s",
+ "Please wait...." : "សូមរង់ចាំ....",
"Log" : "Log",
"More" : "ច្រើនទៀត",
- "Less" : "តិច",
- "External Storage" : "ឃ្លាំងផ្ទុកខាងក្រៅ"
+ "Less" : "តិច"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/settings/l10n/kn.js b/settings/l10n/kn.js
index 987c79e5674d6ab142560a7a39aa153ba2d86d6c..441cc3e1ee6fd3d43c80a1de082b8e84c7ffa3cc 100644
--- a/settings/l10n/kn.js
+++ b/settings/l10n/kn.js
@@ -26,13 +26,9 @@ OC.L10N.register(
"Unable to change mail address" : "ಇ-ಅಂಚೆ ವಿಳಾಸ ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ",
"Email saved" : "ಇ-ಅಂಚೆಯನ್ನು ಉಳಿಸಿದೆ",
"Couldn't remove app." : "ಅಳಿಸುವಾಗ ಏನೊ ಲೋಪವಾಗಿದೆ",
- "Admins can't remove themself from the admin group" : "ನಿರ್ವಾಹಕರು ನಿರ್ವಹಣೆ ಗುಂಪಿನಿಂದ ತಮ್ಮನ್ನೇ ತಾವು ತೆಗೆದುಹಾಕಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಿಲ್ಲ",
- "Unable to add user to group %s" : "%s ಗುಂಪಿಗೆ ಹೂಸ ಬಳಕೆದಾರನನ್ನು ಸೇರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ",
- "Unable to remove user from group %s" : "%s ಗುಂಪು ಬಳಕೆದಾರ ತೆಗೆದುಹಾಕಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ",
"Couldn't update app." : " ಕಾಯಕ್ರಮವನ್ನು ನವೀಕರಿಸಲ ಸಾದ್ಯವಾಗುತ್ತಿಲ್ಲ.",
"Sending..." : "ಕಳುಹಿಸಲಾಗುತ್ತಿದೆ ...",
"All" : "ಎಲ್ಲಾ",
- "Please wait...." : "ದಯವಿಟ್ಟು ನಿರೀಕ್ಷಿಸಿ ....",
"Error while disabling app" : "ಕಾರ್ಯಕ್ರಮವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವಾಗ ಏನೊ ಲೋಪವಾಗಿದೆ",
"Disable" : "ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ",
"Enable" : "ಸಕ್ರಿಯಗೊಳಿಸು",
@@ -84,7 +80,6 @@ OC.L10N.register(
"Enforce expiration date" : "ಮುಕ್ತಾಯ ದಿನಾಂಕವನ್ನು ಬಲವ೦ತವಾಗಿ ಜಾರಿಗೆ ಮಾಡಿ",
"Documentation:" : "ದಾಖಲೆ:",
"Enable only for specific groups" : "ಕೇವಲ ನಿರ್ದಿಷ್ಟ ಗುಂಪುಗಳಿಗೆ ಸಕ್ರಿಯಗೊಳಿಸಿ",
- "Uninstall App" : "ಅಳಿಸಿ",
"Cheers!" : "ಆನಂದಿಸಿ !",
"Forum" : "ವೇದಿಕೆ",
"Cancel" : "ರದ್ದು",
@@ -109,6 +104,10 @@ OC.L10N.register(
"change email address" : "ಇ-ಅಂಚೆ ವಿಳಾಸ ಬದಲಾಯಿಸಿ",
"Default" : "ಆರಂಭದ ಪ್ರತಿ",
"Language changed" : "ಭಾಷೆಯನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ",
+ "Admins can't remove themself from the admin group" : "ನಿರ್ವಾಹಕರು ನಿರ್ವಹಣೆ ಗುಂಪಿನಿಂದ ತಮ್ಮನ್ನೇ ತಾವು ತೆಗೆದುಹಾಕಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಿಲ್ಲ",
+ "Unable to add user to group %s" : "%s ಗುಂಪಿಗೆ ಹೂಸ ಬಳಕೆದಾರನನ್ನು ಸೇರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ",
+ "Unable to remove user from group %s" : "%s ಗುಂಪು ಬಳಕೆದಾರ ತೆಗೆದುಹಾಕಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ",
+ "Please wait...." : "ದಯವಿಟ್ಟು ನಿರೀಕ್ಷಿಸಿ ....",
"Everything (fatal issues, errors, warnings, info, debug)" : "ಎಲ್ಲ ರೀತಿಗಳು (ವಿನಾಶಕ ಸಮಸ್ಯೆಗಳು, ದೋಷಗಳು, ಎಚ್ಚರಿಕೆಗಳನ್ನು, ಮಾಹಿತಿ, ಇತರೆ )",
"Info, warnings, errors and fatal issues" : "ಮಾಹಿತಿ, ಎಚ್ಚರಿಕೆ, ದೋಷಗಳು ಮತ್ತು ಮಾರಕ ಸಮಸ್ಯೆಗಳು",
"Warnings, errors and fatal issues" : "ಎಚ್ಚರಿಕೆ, ದೋಷಗಳು ಮತ್ತು ಮಾರಕ ಸಮಸ್ಯೆಗಳು",
@@ -117,6 +116,7 @@ OC.L10N.register(
"Log" : "ಹಿನ್ನೆಲೆಯ ದಾಖಲೆ",
"More" : "ಇನ್ನಷ್ಟು",
"Less" : "ಕಡಿಮೆ",
+ "Uninstall App" : "ಅಳಿಸಿ",
"Group" : "ಗುಂಪು"
},
"nplurals=1; plural=0;");
diff --git a/settings/l10n/kn.json b/settings/l10n/kn.json
index 76adf1ff84097357fa5b20e755428ac5317589a5..76d068bfb5a0140c34d65cfa22047d91d55a8300 100644
--- a/settings/l10n/kn.json
+++ b/settings/l10n/kn.json
@@ -24,13 +24,9 @@
"Unable to change mail address" : "ಇ-ಅಂಚೆ ವಿಳಾಸ ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ",
"Email saved" : "ಇ-ಅಂಚೆಯನ್ನು ಉಳಿಸಿದೆ",
"Couldn't remove app." : "ಅಳಿಸುವಾಗ ಏನೊ ಲೋಪವಾಗಿದೆ",
- "Admins can't remove themself from the admin group" : "ನಿರ್ವಾಹಕರು ನಿರ್ವಹಣೆ ಗುಂಪಿನಿಂದ ತಮ್ಮನ್ನೇ ತಾವು ತೆಗೆದುಹಾಕಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಿಲ್ಲ",
- "Unable to add user to group %s" : "%s ಗುಂಪಿಗೆ ಹೂಸ ಬಳಕೆದಾರನನ್ನು ಸೇರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ",
- "Unable to remove user from group %s" : "%s ಗುಂಪು ಬಳಕೆದಾರ ತೆಗೆದುಹಾಕಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ",
"Couldn't update app." : " ಕಾಯಕ್ರಮವನ್ನು ನವೀಕರಿಸಲ ಸಾದ್ಯವಾಗುತ್ತಿಲ್ಲ.",
"Sending..." : "ಕಳುಹಿಸಲಾಗುತ್ತಿದೆ ...",
"All" : "ಎಲ್ಲಾ",
- "Please wait...." : "ದಯವಿಟ್ಟು ನಿರೀಕ್ಷಿಸಿ ....",
"Error while disabling app" : "ಕಾರ್ಯಕ್ರಮವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವಾಗ ಏನೊ ಲೋಪವಾಗಿದೆ",
"Disable" : "ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ",
"Enable" : "ಸಕ್ರಿಯಗೊಳಿಸು",
@@ -82,7 +78,6 @@
"Enforce expiration date" : "ಮುಕ್ತಾಯ ದಿನಾಂಕವನ್ನು ಬಲವ೦ತವಾಗಿ ಜಾರಿಗೆ ಮಾಡಿ",
"Documentation:" : "ದಾಖಲೆ:",
"Enable only for specific groups" : "ಕೇವಲ ನಿರ್ದಿಷ್ಟ ಗುಂಪುಗಳಿಗೆ ಸಕ್ರಿಯಗೊಳಿಸಿ",
- "Uninstall App" : "ಅಳಿಸಿ",
"Cheers!" : "ಆನಂದಿಸಿ !",
"Forum" : "ವೇದಿಕೆ",
"Cancel" : "ರದ್ದು",
@@ -107,6 +102,10 @@
"change email address" : "ಇ-ಅಂಚೆ ವಿಳಾಸ ಬದಲಾಯಿಸಿ",
"Default" : "ಆರಂಭದ ಪ್ರತಿ",
"Language changed" : "ಭಾಷೆಯನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ",
+ "Admins can't remove themself from the admin group" : "ನಿರ್ವಾಹಕರು ನಿರ್ವಹಣೆ ಗುಂಪಿನಿಂದ ತಮ್ಮನ್ನೇ ತಾವು ತೆಗೆದುಹಾಕಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಿಲ್ಲ",
+ "Unable to add user to group %s" : "%s ಗುಂಪಿಗೆ ಹೂಸ ಬಳಕೆದಾರನನ್ನು ಸೇರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ",
+ "Unable to remove user from group %s" : "%s ಗುಂಪು ಬಳಕೆದಾರ ತೆಗೆದುಹಾಕಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ",
+ "Please wait...." : "ದಯವಿಟ್ಟು ನಿರೀಕ್ಷಿಸಿ ....",
"Everything (fatal issues, errors, warnings, info, debug)" : "ಎಲ್ಲ ರೀತಿಗಳು (ವಿನಾಶಕ ಸಮಸ್ಯೆಗಳು, ದೋಷಗಳು, ಎಚ್ಚರಿಕೆಗಳನ್ನು, ಮಾಹಿತಿ, ಇತರೆ )",
"Info, warnings, errors and fatal issues" : "ಮಾಹಿತಿ, ಎಚ್ಚರಿಕೆ, ದೋಷಗಳು ಮತ್ತು ಮಾರಕ ಸಮಸ್ಯೆಗಳು",
"Warnings, errors and fatal issues" : "ಎಚ್ಚರಿಕೆ, ದೋಷಗಳು ಮತ್ತು ಮಾರಕ ಸಮಸ್ಯೆಗಳು",
@@ -115,6 +114,7 @@
"Log" : "ಹಿನ್ನೆಲೆಯ ದಾಖಲೆ",
"More" : "ಇನ್ನಷ್ಟು",
"Less" : "ಕಡಿಮೆ",
+ "Uninstall App" : "ಅಳಿಸಿ",
"Group" : "ಗುಂಪು"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/settings/l10n/ko.js b/settings/l10n/ko.js
index 2eb47bab7a8f213ebfa73351a0e0f4958479e144..adaff000a694739bd7add202e81fbd25cc486cd0 100644
--- a/settings/l10n/ko.js
+++ b/settings/l10n/ko.js
@@ -29,17 +29,18 @@ OC.L10N.register(
"Unable to create user." : "사용자를 만들 수 없습니다.",
"Your %s account was created" : "%s 계정을 등록했습니다",
"Unable to delete user." : "사용자를 삭제할 수 없습니다.",
+ "Settings saved" : "설정 저장됨",
"Unable to change full name" : "전체 이름을 변경할 수 없음",
+ "Unable to change email address" : "이메일 주소를 변경할 수 없음",
"Your full name has been changed." : "전체 이름이 변경되었습니다.",
"Forbidden" : "거부됨",
"Invalid user" : "잘못된 사용자",
"Unable to change mail address" : "이메일 주소를 변경할 수 없음",
"Email saved" : "이메일 저장됨",
+ "Password confirmation is required" : "암호 확인이 필요합니다",
"Couldn't remove app." : "앱을 삭제할 수 없습니다.",
- "Admins can't remove themself from the admin group" : "관리자 자신을 관리자 그룹에서 삭제할 수 없음",
- "Unable to add user to group %s" : "그룹 %s에 사용자를 추가할 수 없음",
- "Unable to remove user from group %s" : "그룹 %s에서 사용자를 삭제할 수 없음",
"Couldn't update app." : "앱을 업데이트할 수 없습니다.",
+ "Are you really sure you want add {domain} as trusted domain?" : "신뢰할 수 있는 도메인 목록에 {domain}을(를) 추가하시겠습니까?",
"Add trusted domain" : "신뢰할 수 있는 도메인 추가",
"Migration in progress. Please wait until the migration is finished" : "이전 작업 중입니다. 작업이 완료될 때까지 기다려 주십시오",
"Migration started …" : "이전 시작됨...",
@@ -51,9 +52,9 @@ OC.L10N.register(
"_You have %n app update pending_::_You have %n app updates pending_" : ["앱 %n개 업데이트 대기 중"],
"No apps found for your version" : "설치된 버전에 대한 앱 없음",
"The app will be downloaded from the app store" : "이 앱은 앱 스토어에서 다운로드 할 것",
+ "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "커뮤니티가 개발한 공식 앱입니다. 이 앱은 Nextcloud의 핵심 기능이며 프로덕션 환경에서 사용할 수 있습니다.",
"Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "승인된 앱은 신뢰할 수 있는 개발자가 개발하며 보안 검사를 통과했습니다. 열린 코드 저장소에서 관리되며 일반적인 환경에서 사용할 수 있는 수준으로 관리됩니다.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "이 앱의 보안 문제가 점검되지 않았고, 출시된 지 얼마 지나지 않았거나 아직 불안정합니다. 본인 책임 하에 설치하십시오.",
- "Please wait...." : "기다려 주십시오....",
"Error while disabling app" : "앱을 비활성화하는 중 오류 발생",
"Disable" : "사용 안함",
"Enable" : "사용함",
@@ -71,24 +72,40 @@ OC.L10N.register(
"App update" : "앱 업데이트",
"Approved" : "승인됨",
"Experimental" : "실험적",
+ "No apps found for {query}" : "{query}에 대한 앱을 찾을 수 없습니다",
+ "Allow filesystem access" : "파일시스템 접근 허용",
"Disconnect" : "연결 해제",
+ "Revoke" : "취소",
"Internet Explorer" : "인터넷 익스플로러",
"Edge" : "엣지",
"Firefox" : "파이어 폭스",
"Google Chrome" : "구글 크롬",
"Safari" : "사파리",
"Google Chrome for Android" : "안드로이드 용 구글 크롬",
+ "iPhone iOS" : "iPhone iOS",
+ "iPad iOS" : "iPad iOS",
"iOS Client" : "아이폰 OS 클라이언트",
"Android Client" : "안드로이드 클라이언트",
"Sync client - {os}" : "동기화 클라이언트 - {os}",
"This session" : "이 세션",
+ "Copy" : "복사",
"Copied!" : "복사됨!",
"Not supported!" : "지원하지 않음!",
"Press ⌘-C to copy." : "⌘-C 복사",
"Press Ctrl-C to copy." : "Ctrl-C 복사",
+ "Error while loading browser sessions and device tokens" : "웹 브라우저 세션과 장치 토큰을 불러오는 중 오류가 발생했습니다",
+ "Error while creating device token" : "장치 토큰을 만드는 중 오류가 발생했습니다",
+ "Error while deleting the token" : "토큰을 삭제하는 중 오류가 발생했습니다",
"An error occurred. Please upload an ASCII-encoded PEM certificate." : "오류가 발생했습니다. ASCII로 인코딩된 PEM 인증서를 업로드하십시오.",
"Valid until {date}" : "{date}까지 유효함",
"Delete" : "삭제",
+ "Local" : "로컬",
+ "Private" : "개인",
+ "Only visible to local users" : "로컬 사용자만 보임",
+ "Only visible to you" : "나만 보임",
+ "Contacts" : "연락처",
+ "Visible to local users and to trusted servers" : "로컬 사용자와 신뢰된 서버에게 보이기",
+ "Public" : "공개",
"Select a profile picture" : "프로필 사진 선택",
"Very weak password" : "매우 약한 암호",
"Weak password" : "약한 암호",
@@ -108,6 +125,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" : "사용자 이메일을 변경할 수 없습니다",
"A valid username must be provided" : "올바른 사용자 이름을 입력해야 함",
"Error creating user: {message}" : "사용자 생성 오류: {message}",
"A valid password must be provided" : "올바른 암호를 입력해야 함",
@@ -122,6 +140,8 @@ OC.L10N.register(
"Login" : "로그인",
"Plain" : "일반",
"NT LAN Manager" : "NT LAN 관리자",
+ "SSL/TLS" : "SSL/TLS",
+ "STARTTLS" : "STARTTLS",
"Email server" : "이메일 서버",
"Open documentation" : "문서 열기",
"This is used for sending out notifications." : "알림을 보낼 때 사용됩니다.",
@@ -143,6 +163,7 @@ OC.L10N.register(
"Enable server-side encryption" : "서버 측 암호화 사용",
"Please read carefully before activating server-side encryption: " : "서버 측 암호화를 활성화하기 전에 읽어 보십시오:",
"Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "암호화를 사용하면, 사용하기 시작한 시간 이후에 서버에 업로드된 모든 파일이 암호화됩니다. 나중에 암호화를 사용하지 않으려면 사용하고 있는 암호화 모듈에서 비활성화를 지원해야 하고 모든 사전 조건(예: 복구 키 설정)을 만족해야 합니다.",
+ "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." : "암호화만으로 시스템의 보안을 보장할 수 없습니다. 암호화 응용 프로그램 작동 방식 및 지원되는 사용 사례에 대한 자세한 내용은 설명서를 참조하십시오.",
"Be aware that encryption always increases the file size." : "암호화된 파일의 크기는 항상 커집니다.",
"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." : "데이터를 주기적으로 백업하는 것을 추천하며, 암호화를 사용하고 있다면 데이터와 더불어 암호화 키도 백업하십시오.",
"This is the final warning: Do you really want to enable encryption?" : "마지막 경고입니다. 암호화를 활성화하시겠습니까?",
@@ -154,16 +175,20 @@ OC.L10N.register(
"Start migration" : "이전 시작",
"Security & setup warnings" : "보안 및 설치 경고",
"php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php가 시스템 환경 변수를 올바르게 조회할 수 있도록 설정되지 않았습니다. getenv(\"PATH\")의 값이 비어 있습니다.",
+ "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "서버 PHP 설정(특히 php-fpm 사용시)에 관한 내용은 설치 가이드 ↗를 참고하십시오.",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "읽기 전용 설정이 활성화되었습니다. 이 상태에서는 웹 인터페이스를 통하여 일부 설정을 변경할 수 없습니다. 또한 매 업데이트마다 파일을 쓸 수 있는 상태로 변경해야 합니다.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP에서 인라인 doc 블록을 삭제하도록 설정되어 있습니다. 일부 코어 앱에 접근할 수 없을 수도 있습니다.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Zend OPcache, eAccelerator 같은 캐시/가속기 문제일 수도 있습니다.",
+ "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "데이터베이스가 \"READ COMMITTED\" 트랜잭션 격리 수준에서 실행되고 있지 않습니다. 여러 작업이 동시에 실행될 때 문제가 발생할 수 있습니다.",
+ "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s 버전보다 낮은 %2$s 버전이 설치되어있습니다. 안정성과 성능을 위해 %1$s 버전으로 업데이트하시기를 권장합니다.",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP 모듈 'fileinfo'가 존재하지 않습니다. MIME 형식 감지 결과를 향상시키기 위하여 이 모듈을 활성화하는 것을 추천합니다.",
+ "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "트랜잭션 파일 잠금이 비활성화되어있어 동시 접근시 문제가 발생할 수 있습니다. config.php에서 'filelocking.enabled'를 활성화하여 이 문제를 해결할 수 있습니다. 자세한 내용은 사용 설명서 ↗를 참고하십시오.",
"System locale can not be set to a one which supports UTF-8." : "UTF-8을 지원하는 시스템 로케일을 사용할 수 없습니다.",
"This means that there might be problems with certain characters in file names." : "파일 이름의 일부 문자에 문제가 생길 수도 있습니다.",
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "다음 중 하나 이상의 로케일을 지원하기 위하여 필요한 패키지를 시스템에 설치하는 것을 추천합니다: %s.",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "도메인의 루트 디렉터리 아래에 설치되어 있지 않고 시스템 cron을 사용한다면 URL 생성에 문제가 발생할 수도 있습니다. 이 문제를 해결하려면 설치본의 웹 루트 경로에 있는 config.php 파일의 \"overwrite.cli.url\" 옵션을 변경하십시오(제안: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "CLI로 cronjob을 실행할 수 없었습니다. 다음 기술적 오류가 발생했습니다:",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "설치 가이드를 ↗ 확인하고 로그에 오류 또는 경고를 확인하시기 바랍니다.",
+ "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "설치 가이드 ↗를 확인하고 로그에 오류 또는 경고를 확인하시기 바랍니다.",
"All checks passed." : "모든 검사를 통과했습니다.",
"Cron" : "Cron",
"Last cron job execution: %s." : "마지막 cron 작업 실행: %s.",
@@ -172,6 +197,8 @@ OC.L10N.register(
"Execute one task with each page loaded" : "개별 페이지를 불러올 때마다 실행",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php는 webcron 서비스에 등록되어 HTTP로 15분마다 cron.php에 접근합니다.",
"Use system's cron service to call the cron.php file every 15 minutes." : "시스템의 cron 서비스를 통하여 15분마다 cron.php 파일을 실행합니다.",
+ "The cron.php needs to be executed by the system user \"%s\"." : "cron.php는 시스템 사용자 \"%s\"가 실행해야합니다.",
+ "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "실행하려면 PHP POSIX 확장이 필요합니다. 자세한 내용은 {linkstart}PHP 사용 설명서{linkend}를 참고하십시오.",
"Version" : "버전",
"Sharing" : "공유",
"Allow apps to use the Share API" : "앱에서 공유 API를 사용할 수 있도록 허용",
@@ -191,6 +218,9 @@ OC.L10N.register(
"Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "공개 링크 업로드 페이지에 고지 사항 텍스트를 표시합니다. (파일리스트가 숨겨져있는 경우에만 표시)",
"This text will be shown on the public link upload page when the file list is hidden." : "파일 목록이 숨겨져 있으면 이 텍스트는 공개 링크 업로드 페이지에 표시됩니다.",
"Tips & tricks" : "팁과 추가 정보",
+ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "현재 백엔드 데이터베이스로 SQLite를 사용하고 있습니다. 대규모의 파일을 관리하려고 한다면 다른 데이터베이스 백엔드로 전환할 것을 권장합니다.",
+ "This is particularly recommended when using the desktop client for file synchronisation." : "특히 파일 동기화를 위해 데스크톱 클라이언트를 사용할 예정인 경우 권장됩니다.",
+ "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "다른 데이터베이스로 마이그레이션하려면 'occ db:convert-type' 명령행 도구를 사용하거나 사용 설명서 ↗를 참고하시기 바랍니다.",
"How to do backups" : "백업 방법",
"Advanced monitoring" : "고급 모니터링",
"Performance tuning" : "성능 튜닝",
@@ -207,19 +237,23 @@ OC.L10N.register(
"Show description …" : "설명 보기...",
"Hide description …" : "설명 숨기기...",
"This app has an update available." : "이 앱을 업데이트할 수 있습니다.",
+ "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "이 앱은 Nextcloud 최소 버전을 지정하지 않았습니다. Nextcloud 11 이후에는 오류로 처리됩니다.",
+ "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "이 앱은 Nextcloud 최대 버전을 지정하지 않았습니다. Nextcloud 11 이후에는 오류로 처리됩니다.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "다음 의존성을 만족할 수 없기 때문에 이 앱을 설치할 수 없습니다:",
"Enable only for specific groups" : "특정 그룹에만 허용",
- "Uninstall App" : "앱 제거",
"SSL Root Certificates" : "SSL 루트 인증서",
"Common Name" : "공통 이름",
"Valid until" : "만료 기간:",
"Issued By" : "발급자:",
"Valid until %s" : "%s까지 유효함",
"Import root certificate" : "루트 인증서 가져오기",
+ "Hey there,
just letting you know that you now have a %s account.
Your username: %s
Access it: %s
" : "안녕하세요.
%s 계정을 사용할 수 있음을 알려 드립니다.
사용자 이름: %s
접근 링크: %s
",
"Cheers!" : "감사합니다!",
+ "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "안녕하세요.\n\n%s 계정을 사용할 수 있음을 알려 드립니다.\n\n사용자 이름: %s\n접근 링크: %s\n\n",
"Administrator documentation" : "관리자 문서",
"Online documentation" : "온라인 문서",
"Forum" : "포럼",
+ "Getting help" : "도움 얻기",
"Commercial support" : "상용 지원",
"You are using %s of %s" : "현재 %s / %s을(를) 사용중입니다.",
"Profile picture" : "프로필 사진",
@@ -236,6 +270,14 @@ OC.L10N.register(
"Your email address" : "이메일 주소",
"No email address set" : "이메일 주소가 설정되지 않음",
"For password recovery and notifications" : "암호 복구와 알림에 사용",
+ "Phone number" : "휴대폰 번호",
+ "Your phone number" : "내 휴대폰 번호",
+ "Address" : "주소",
+ "Your postal address" : "내 우편 번호",
+ "Website" : "웹 사이트",
+ "Your website" : "내 웹 사이트",
+ "Twitter" : "트위터",
+ "Your Twitter handle" : "내 트위터",
"You are member of the following groups:" : "다음 그룹의 구성원입니다:",
"Password" : "암호",
"Current password" : "현재 암호",
@@ -247,9 +289,12 @@ OC.L10N.register(
"Desktop client" : "데스크톱 클라이언트",
"Android app" : "Android 앱",
"iOS app" : "iOS 앱",
+ "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "이 프로젝트를 지원하려면 {contributeopen}개발에 참여{linkclose}하거나 {contributeopen}주변에 알려주세요{linkclose}!",
"Show First Run Wizard again" : "첫 실행 마법사 다시 보이기",
+ "Web, desktop and mobile clients currently logged in to your account." : "사용자 계정으로 로그인된 웹, 데스크톱, 모바일 클라이언트 목록입니다.",
"Device" : "장치",
"Last activity" : "최근 활동",
+ "Passcodes that give an app or device permissions to access your account." : "앱 암호는 앱이나 장치가 사용자 계정에 접근할 수 있도록 해줍니다.",
"Name" : "이름",
"App name" : "앱 이름",
"Create new app password" : "새로운 앱 암호 만들기",
@@ -257,6 +302,12 @@ OC.L10N.register(
"For security reasons this password will only be shown once." : "보안상의 이유로 이 암호는 한 번만 표시됩니다.",
"Username" : "사용자 이름",
"Done" : "완료",
+ "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "{communityopen}Nextcloud 커뮤니티{linkclose}에서 개발, {githubopen}소스 코드{linkclose}는 {licenseopen}AGPL{linkclose} 라이선스를 따릅니다.",
+ "Follow us on Google Plus!" : "Google Plus를 팔로우하세요!",
+ "Like our facebook page!" : "Facebook 페이지에서 좋아요를 눌러주세요!",
+ "Subscribe to our twitter channel!" : "Twitter 채널을 구독하세요!",
+ "Subscribe to our news feed!" : "뉴스 피드를 구독하세요!",
+ "Subscribe to our newsletter!" : "뉴스 레터를 구독하세요!",
"Show storage location" : "저장소 위치 보이기",
"Show last log in" : "마지막 로그인 시간 보이기",
"Show user backend" : "사용자 백엔드 보이기",
@@ -266,6 +317,7 @@ 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" : "기본 할당량",
@@ -282,7 +334,11 @@ OC.L10N.register(
"Default" : "기본값",
"log-level out of allowed range" : "로그 단계가 허용 범위를 벗어남",
"Language changed" : "언어가 변경됨",
+ "Admins can't remove themself from the admin group" : "관리자 자신을 관리자 그룹에서 삭제할 수 없음",
+ "Unable to add user to group %s" : "그룹 %s에 사용자를 추가할 수 없음",
+ "Unable to remove user from group %s" : "그룹 %s에서 사용자를 삭제할 수 없음",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "신뢰할 수 있는 도메인 목록에 \"{domain}\"을(를) 추가하시겠습니까?",
+ "Please wait...." : "기다려 주십시오....",
"iPhone" : "아이폰",
"add group" : "그룹 추가",
"Everything (fatal issues, errors, warnings, info, debug)" : "모두 (치명적 문제, 오류, 경고, 정보, 디버그)",
@@ -302,9 +358,11 @@ OC.L10N.register(
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "특히 파일 동기화를 위해 데스크톱 클라이언트를 사용할 예정이면, SQLite를 사용하지 않는 것이 좋습니다.",
"Experimental applications ahead" : "실험적인 앱 사용 예정",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "실험적인 앱은 보안 문제 검사를 통과하지 않았으며, 아직 새롭거나, 불안정하거나, 개발 중일 수도 있습니다. 이러한 앱을 설치하면 데이터 손실 및 보안 문제가 발생할 수도 있습니다.",
+ "Uninstall App" : "앱 제거",
"Enable experimental apps" : "실험적인 앱 사용",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "안녕하세요.
%s 계정을 사용할 수 있음을 알려 드립니다.
사용자 이름: %s
접근 링크: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "안녕하세요.\n\n%s 계정을 사용할 수 있음을 알려 드립니다.\n\n사용자 이름: %s\n접근 링크: %s\n\n",
+ "If you want to support the project\n\t\tjoin development\n\t\t \n\t\tspread the word!" : "이 프로젝트를 지원하려면 개발에 참여하거나 주변에 알려주세요!",
"Add Group" : "그룹 추가",
"Group" : "그룹",
"Default Quota" : "기본 할당량",
@@ -312,11 +370,6 @@ OC.L10N.register(
"Group Admin for" : "다음 그룹의 관리자:",
"Storage Location" : "저장소 위치",
"User Backend" : "사용자 백엔드",
- "Last Login" : "마지막 로그인",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "외부 저장소",
- "Updates" : "업데이트",
- "An error occurred: {message}" : "오류 발생: {message}"
+ "Last Login" : "마지막 로그인"
},
"nplurals=1; plural=0;");
diff --git a/settings/l10n/ko.json b/settings/l10n/ko.json
index dbbb165e86b36c205567b6101472ecbdfb5e3d98..08934a74bd5953cd5703db6a0a6202400cff8ef7 100644
--- a/settings/l10n/ko.json
+++ b/settings/l10n/ko.json
@@ -27,17 +27,18 @@
"Unable to create user." : "사용자를 만들 수 없습니다.",
"Your %s account was created" : "%s 계정을 등록했습니다",
"Unable to delete user." : "사용자를 삭제할 수 없습니다.",
+ "Settings saved" : "설정 저장됨",
"Unable to change full name" : "전체 이름을 변경할 수 없음",
+ "Unable to change email address" : "이메일 주소를 변경할 수 없음",
"Your full name has been changed." : "전체 이름이 변경되었습니다.",
"Forbidden" : "거부됨",
"Invalid user" : "잘못된 사용자",
"Unable to change mail address" : "이메일 주소를 변경할 수 없음",
"Email saved" : "이메일 저장됨",
+ "Password confirmation is required" : "암호 확인이 필요합니다",
"Couldn't remove app." : "앱을 삭제할 수 없습니다.",
- "Admins can't remove themself from the admin group" : "관리자 자신을 관리자 그룹에서 삭제할 수 없음",
- "Unable to add user to group %s" : "그룹 %s에 사용자를 추가할 수 없음",
- "Unable to remove user from group %s" : "그룹 %s에서 사용자를 삭제할 수 없음",
"Couldn't update app." : "앱을 업데이트할 수 없습니다.",
+ "Are you really sure you want add {domain} as trusted domain?" : "신뢰할 수 있는 도메인 목록에 {domain}을(를) 추가하시겠습니까?",
"Add trusted domain" : "신뢰할 수 있는 도메인 추가",
"Migration in progress. Please wait until the migration is finished" : "이전 작업 중입니다. 작업이 완료될 때까지 기다려 주십시오",
"Migration started …" : "이전 시작됨...",
@@ -49,9 +50,9 @@
"_You have %n app update pending_::_You have %n app updates pending_" : ["앱 %n개 업데이트 대기 중"],
"No apps found for your version" : "설치된 버전에 대한 앱 없음",
"The app will be downloaded from the app store" : "이 앱은 앱 스토어에서 다운로드 할 것",
+ "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "커뮤니티가 개발한 공식 앱입니다. 이 앱은 Nextcloud의 핵심 기능이며 프로덕션 환경에서 사용할 수 있습니다.",
"Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "승인된 앱은 신뢰할 수 있는 개발자가 개발하며 보안 검사를 통과했습니다. 열린 코드 저장소에서 관리되며 일반적인 환경에서 사용할 수 있는 수준으로 관리됩니다.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "이 앱의 보안 문제가 점검되지 않았고, 출시된 지 얼마 지나지 않았거나 아직 불안정합니다. 본인 책임 하에 설치하십시오.",
- "Please wait...." : "기다려 주십시오....",
"Error while disabling app" : "앱을 비활성화하는 중 오류 발생",
"Disable" : "사용 안함",
"Enable" : "사용함",
@@ -69,24 +70,40 @@
"App update" : "앱 업데이트",
"Approved" : "승인됨",
"Experimental" : "실험적",
+ "No apps found for {query}" : "{query}에 대한 앱을 찾을 수 없습니다",
+ "Allow filesystem access" : "파일시스템 접근 허용",
"Disconnect" : "연결 해제",
+ "Revoke" : "취소",
"Internet Explorer" : "인터넷 익스플로러",
"Edge" : "엣지",
"Firefox" : "파이어 폭스",
"Google Chrome" : "구글 크롬",
"Safari" : "사파리",
"Google Chrome for Android" : "안드로이드 용 구글 크롬",
+ "iPhone iOS" : "iPhone iOS",
+ "iPad iOS" : "iPad iOS",
"iOS Client" : "아이폰 OS 클라이언트",
"Android Client" : "안드로이드 클라이언트",
"Sync client - {os}" : "동기화 클라이언트 - {os}",
"This session" : "이 세션",
+ "Copy" : "복사",
"Copied!" : "복사됨!",
"Not supported!" : "지원하지 않음!",
"Press ⌘-C to copy." : "⌘-C 복사",
"Press Ctrl-C to copy." : "Ctrl-C 복사",
+ "Error while loading browser sessions and device tokens" : "웹 브라우저 세션과 장치 토큰을 불러오는 중 오류가 발생했습니다",
+ "Error while creating device token" : "장치 토큰을 만드는 중 오류가 발생했습니다",
+ "Error while deleting the token" : "토큰을 삭제하는 중 오류가 발생했습니다",
"An error occurred. Please upload an ASCII-encoded PEM certificate." : "오류가 발생했습니다. ASCII로 인코딩된 PEM 인증서를 업로드하십시오.",
"Valid until {date}" : "{date}까지 유효함",
"Delete" : "삭제",
+ "Local" : "로컬",
+ "Private" : "개인",
+ "Only visible to local users" : "로컬 사용자만 보임",
+ "Only visible to you" : "나만 보임",
+ "Contacts" : "연락처",
+ "Visible to local users and to trusted servers" : "로컬 사용자와 신뢰된 서버에게 보이기",
+ "Public" : "공개",
"Select a profile picture" : "프로필 사진 선택",
"Very weak password" : "매우 약한 암호",
"Weak password" : "약한 암호",
@@ -106,6 +123,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" : "사용자 이메일을 변경할 수 없습니다",
"A valid username must be provided" : "올바른 사용자 이름을 입력해야 함",
"Error creating user: {message}" : "사용자 생성 오류: {message}",
"A valid password must be provided" : "올바른 암호를 입력해야 함",
@@ -120,6 +138,8 @@
"Login" : "로그인",
"Plain" : "일반",
"NT LAN Manager" : "NT LAN 관리자",
+ "SSL/TLS" : "SSL/TLS",
+ "STARTTLS" : "STARTTLS",
"Email server" : "이메일 서버",
"Open documentation" : "문서 열기",
"This is used for sending out notifications." : "알림을 보낼 때 사용됩니다.",
@@ -141,6 +161,7 @@
"Enable server-side encryption" : "서버 측 암호화 사용",
"Please read carefully before activating server-side encryption: " : "서버 측 암호화를 활성화하기 전에 읽어 보십시오:",
"Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "암호화를 사용하면, 사용하기 시작한 시간 이후에 서버에 업로드된 모든 파일이 암호화됩니다. 나중에 암호화를 사용하지 않으려면 사용하고 있는 암호화 모듈에서 비활성화를 지원해야 하고 모든 사전 조건(예: 복구 키 설정)을 만족해야 합니다.",
+ "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." : "암호화만으로 시스템의 보안을 보장할 수 없습니다. 암호화 응용 프로그램 작동 방식 및 지원되는 사용 사례에 대한 자세한 내용은 설명서를 참조하십시오.",
"Be aware that encryption always increases the file size." : "암호화된 파일의 크기는 항상 커집니다.",
"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." : "데이터를 주기적으로 백업하는 것을 추천하며, 암호화를 사용하고 있다면 데이터와 더불어 암호화 키도 백업하십시오.",
"This is the final warning: Do you really want to enable encryption?" : "마지막 경고입니다. 암호화를 활성화하시겠습니까?",
@@ -152,16 +173,20 @@
"Start migration" : "이전 시작",
"Security & setup warnings" : "보안 및 설치 경고",
"php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php가 시스템 환경 변수를 올바르게 조회할 수 있도록 설정되지 않았습니다. getenv(\"PATH\")의 값이 비어 있습니다.",
+ "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "서버 PHP 설정(특히 php-fpm 사용시)에 관한 내용은 설치 가이드 ↗를 참고하십시오.",
"The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "읽기 전용 설정이 활성화되었습니다. 이 상태에서는 웹 인터페이스를 통하여 일부 설정을 변경할 수 없습니다. 또한 매 업데이트마다 파일을 쓸 수 있는 상태로 변경해야 합니다.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP에서 인라인 doc 블록을 삭제하도록 설정되어 있습니다. 일부 코어 앱에 접근할 수 없을 수도 있습니다.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Zend OPcache, eAccelerator 같은 캐시/가속기 문제일 수도 있습니다.",
+ "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "데이터베이스가 \"READ COMMITTED\" 트랜잭션 격리 수준에서 실행되고 있지 않습니다. 여러 작업이 동시에 실행될 때 문제가 발생할 수 있습니다.",
+ "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s 버전보다 낮은 %2$s 버전이 설치되어있습니다. 안정성과 성능을 위해 %1$s 버전으로 업데이트하시기를 권장합니다.",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP 모듈 'fileinfo'가 존재하지 않습니다. MIME 형식 감지 결과를 향상시키기 위하여 이 모듈을 활성화하는 것을 추천합니다.",
+ "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "트랜잭션 파일 잠금이 비활성화되어있어 동시 접근시 문제가 발생할 수 있습니다. config.php에서 'filelocking.enabled'를 활성화하여 이 문제를 해결할 수 있습니다. 자세한 내용은 사용 설명서 ↗를 참고하십시오.",
"System locale can not be set to a one which supports UTF-8." : "UTF-8을 지원하는 시스템 로케일을 사용할 수 없습니다.",
"This means that there might be problems with certain characters in file names." : "파일 이름의 일부 문자에 문제가 생길 수도 있습니다.",
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "다음 중 하나 이상의 로케일을 지원하기 위하여 필요한 패키지를 시스템에 설치하는 것을 추천합니다: %s.",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "도메인의 루트 디렉터리 아래에 설치되어 있지 않고 시스템 cron을 사용한다면 URL 생성에 문제가 발생할 수도 있습니다. 이 문제를 해결하려면 설치본의 웹 루트 경로에 있는 config.php 파일의 \"overwrite.cli.url\" 옵션을 변경하십시오(제안: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "CLI로 cronjob을 실행할 수 없었습니다. 다음 기술적 오류가 발생했습니다:",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "설치 가이드를 ↗ 확인하고 로그에 오류 또는 경고를 확인하시기 바랍니다.",
+ "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "설치 가이드 ↗를 확인하고 로그에 오류 또는 경고를 확인하시기 바랍니다.",
"All checks passed." : "모든 검사를 통과했습니다.",
"Cron" : "Cron",
"Last cron job execution: %s." : "마지막 cron 작업 실행: %s.",
@@ -170,6 +195,8 @@
"Execute one task with each page loaded" : "개별 페이지를 불러올 때마다 실행",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php는 webcron 서비스에 등록되어 HTTP로 15분마다 cron.php에 접근합니다.",
"Use system's cron service to call the cron.php file every 15 minutes." : "시스템의 cron 서비스를 통하여 15분마다 cron.php 파일을 실행합니다.",
+ "The cron.php needs to be executed by the system user \"%s\"." : "cron.php는 시스템 사용자 \"%s\"가 실행해야합니다.",
+ "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "실행하려면 PHP POSIX 확장이 필요합니다. 자세한 내용은 {linkstart}PHP 사용 설명서{linkend}를 참고하십시오.",
"Version" : "버전",
"Sharing" : "공유",
"Allow apps to use the Share API" : "앱에서 공유 API를 사용할 수 있도록 허용",
@@ -189,6 +216,9 @@
"Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "공개 링크 업로드 페이지에 고지 사항 텍스트를 표시합니다. (파일리스트가 숨겨져있는 경우에만 표시)",
"This text will be shown on the public link upload page when the file list is hidden." : "파일 목록이 숨겨져 있으면 이 텍스트는 공개 링크 업로드 페이지에 표시됩니다.",
"Tips & tricks" : "팁과 추가 정보",
+ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "현재 백엔드 데이터베이스로 SQLite를 사용하고 있습니다. 대규모의 파일을 관리하려고 한다면 다른 데이터베이스 백엔드로 전환할 것을 권장합니다.",
+ "This is particularly recommended when using the desktop client for file synchronisation." : "특히 파일 동기화를 위해 데스크톱 클라이언트를 사용할 예정인 경우 권장됩니다.",
+ "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "다른 데이터베이스로 마이그레이션하려면 'occ db:convert-type' 명령행 도구를 사용하거나 사용 설명서 ↗를 참고하시기 바랍니다.",
"How to do backups" : "백업 방법",
"Advanced monitoring" : "고급 모니터링",
"Performance tuning" : "성능 튜닝",
@@ -205,19 +235,23 @@
"Show description …" : "설명 보기...",
"Hide description …" : "설명 숨기기...",
"This app has an update available." : "이 앱을 업데이트할 수 있습니다.",
+ "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "이 앱은 Nextcloud 최소 버전을 지정하지 않았습니다. Nextcloud 11 이후에는 오류로 처리됩니다.",
+ "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "이 앱은 Nextcloud 최대 버전을 지정하지 않았습니다. Nextcloud 11 이후에는 오류로 처리됩니다.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "다음 의존성을 만족할 수 없기 때문에 이 앱을 설치할 수 없습니다:",
"Enable only for specific groups" : "특정 그룹에만 허용",
- "Uninstall App" : "앱 제거",
"SSL Root Certificates" : "SSL 루트 인증서",
"Common Name" : "공통 이름",
"Valid until" : "만료 기간:",
"Issued By" : "발급자:",
"Valid until %s" : "%s까지 유효함",
"Import root certificate" : "루트 인증서 가져오기",
+ "Hey there,
just letting you know that you now have a %s account.
Your username: %s
Access it: %s
" : "안녕하세요.
%s 계정을 사용할 수 있음을 알려 드립니다.
사용자 이름: %s
접근 링크: %s
",
"Cheers!" : "감사합니다!",
+ "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "안녕하세요.\n\n%s 계정을 사용할 수 있음을 알려 드립니다.\n\n사용자 이름: %s\n접근 링크: %s\n\n",
"Administrator documentation" : "관리자 문서",
"Online documentation" : "온라인 문서",
"Forum" : "포럼",
+ "Getting help" : "도움 얻기",
"Commercial support" : "상용 지원",
"You are using %s of %s" : "현재 %s / %s을(를) 사용중입니다.",
"Profile picture" : "프로필 사진",
@@ -234,6 +268,14 @@
"Your email address" : "이메일 주소",
"No email address set" : "이메일 주소가 설정되지 않음",
"For password recovery and notifications" : "암호 복구와 알림에 사용",
+ "Phone number" : "휴대폰 번호",
+ "Your phone number" : "내 휴대폰 번호",
+ "Address" : "주소",
+ "Your postal address" : "내 우편 번호",
+ "Website" : "웹 사이트",
+ "Your website" : "내 웹 사이트",
+ "Twitter" : "트위터",
+ "Your Twitter handle" : "내 트위터",
"You are member of the following groups:" : "다음 그룹의 구성원입니다:",
"Password" : "암호",
"Current password" : "현재 암호",
@@ -245,9 +287,12 @@
"Desktop client" : "데스크톱 클라이언트",
"Android app" : "Android 앱",
"iOS app" : "iOS 앱",
+ "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "이 프로젝트를 지원하려면 {contributeopen}개발에 참여{linkclose}하거나 {contributeopen}주변에 알려주세요{linkclose}!",
"Show First Run Wizard again" : "첫 실행 마법사 다시 보이기",
+ "Web, desktop and mobile clients currently logged in to your account." : "사용자 계정으로 로그인된 웹, 데스크톱, 모바일 클라이언트 목록입니다.",
"Device" : "장치",
"Last activity" : "최근 활동",
+ "Passcodes that give an app or device permissions to access your account." : "앱 암호는 앱이나 장치가 사용자 계정에 접근할 수 있도록 해줍니다.",
"Name" : "이름",
"App name" : "앱 이름",
"Create new app password" : "새로운 앱 암호 만들기",
@@ -255,6 +300,12 @@
"For security reasons this password will only be shown once." : "보안상의 이유로 이 암호는 한 번만 표시됩니다.",
"Username" : "사용자 이름",
"Done" : "완료",
+ "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "{communityopen}Nextcloud 커뮤니티{linkclose}에서 개발, {githubopen}소스 코드{linkclose}는 {licenseopen}AGPL{linkclose} 라이선스를 따릅니다.",
+ "Follow us on Google Plus!" : "Google Plus를 팔로우하세요!",
+ "Like our facebook page!" : "Facebook 페이지에서 좋아요를 눌러주세요!",
+ "Subscribe to our twitter channel!" : "Twitter 채널을 구독하세요!",
+ "Subscribe to our news feed!" : "뉴스 피드를 구독하세요!",
+ "Subscribe to our newsletter!" : "뉴스 레터를 구독하세요!",
"Show storage location" : "저장소 위치 보이기",
"Show last log in" : "마지막 로그인 시간 보이기",
"Show user backend" : "사용자 백엔드 보이기",
@@ -264,6 +315,7 @@
"Create" : "만들기",
"Admin Recovery Password" : "관리자 복구 암호",
"Enter the recovery password in order to recover the users files during password change" : "암호 변경 시 변경된 사용자 파일을 복구하려면 복구 암호를 입력하십시오",
+ "Group name" : "그룹 이름",
"Everyone" : "모두",
"Admins" : "관리자",
"Default quota" : "기본 할당량",
@@ -280,7 +332,11 @@
"Default" : "기본값",
"log-level out of allowed range" : "로그 단계가 허용 범위를 벗어남",
"Language changed" : "언어가 변경됨",
+ "Admins can't remove themself from the admin group" : "관리자 자신을 관리자 그룹에서 삭제할 수 없음",
+ "Unable to add user to group %s" : "그룹 %s에 사용자를 추가할 수 없음",
+ "Unable to remove user from group %s" : "그룹 %s에서 사용자를 삭제할 수 없음",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "신뢰할 수 있는 도메인 목록에 \"{domain}\"을(를) 추가하시겠습니까?",
+ "Please wait...." : "기다려 주십시오....",
"iPhone" : "아이폰",
"add group" : "그룹 추가",
"Everything (fatal issues, errors, warnings, info, debug)" : "모두 (치명적 문제, 오류, 경고, 정보, 디버그)",
@@ -300,9 +356,11 @@
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "특히 파일 동기화를 위해 데스크톱 클라이언트를 사용할 예정이면, SQLite를 사용하지 않는 것이 좋습니다.",
"Experimental applications ahead" : "실험적인 앱 사용 예정",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "실험적인 앱은 보안 문제 검사를 통과하지 않았으며, 아직 새롭거나, 불안정하거나, 개발 중일 수도 있습니다. 이러한 앱을 설치하면 데이터 손실 및 보안 문제가 발생할 수도 있습니다.",
+ "Uninstall App" : "앱 제거",
"Enable experimental apps" : "실험적인 앱 사용",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "안녕하세요.
%s 계정을 사용할 수 있음을 알려 드립니다.
사용자 이름: %s
접근 링크: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "안녕하세요.\n\n%s 계정을 사용할 수 있음을 알려 드립니다.\n\n사용자 이름: %s\n접근 링크: %s\n\n",
+ "If you want to support the project\n\t\tjoin development\n\t\t \n\t\tspread the word!" : "이 프로젝트를 지원하려면 개발에 참여하거나 주변에 알려주세요!",
"Add Group" : "그룹 추가",
"Group" : "그룹",
"Default Quota" : "기본 할당량",
@@ -310,11 +368,6 @@
"Group Admin for" : "다음 그룹의 관리자:",
"Storage Location" : "저장소 위치",
"User Backend" : "사용자 백엔드",
- "Last Login" : "마지막 로그인",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "외부 저장소",
- "Updates" : "업데이트",
- "An error occurred: {message}" : "오류 발생: {message}"
+ "Last Login" : "마지막 로그인"
},"pluralForm" :"nplurals=1; plural=0;"
}
\ No newline at end of file
diff --git a/settings/l10n/lb.js b/settings/l10n/lb.js
index 5f5bbb6cbc2fb3ba41ce43259b7fc4962055bf29..9a1d28e770fa20f0af6cee5d421493e00199e7a5 100644
--- a/settings/l10n/lb.js
+++ b/settings/l10n/lb.js
@@ -8,8 +8,6 @@ OC.L10N.register(
"Email sent" : "Email geschéckt",
"Invalid request" : "Ongülteg Requête",
"Email saved" : "E-mail gespäichert",
- "Admins can't remove themself from the admin group" : "Admins kennen sech selwer net aus enger Admin Group läschen.",
- "Unable to add user to group %s" : "Onmeiglech User an Grupp ze sätzen %s",
"All" : "All",
"Disable" : "Ofschalten",
"Enable" : "Aschalten",
@@ -49,12 +47,11 @@ OC.L10N.register(
"Other" : "Aner",
"Quota" : "Quota",
"Language changed" : "Sprooch huet geännert",
+ "Admins can't remove themself from the admin group" : "Admins kennen sech selwer net aus enger Admin Group läschen.",
+ "Unable to add user to group %s" : "Onmeiglech User an Grupp ze sätzen %s",
"Log" : "Log",
"More" : "Méi",
"Less" : "Manner",
- "Group" : "Grupp",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "Updates" : "Updates"
+ "Group" : "Grupp"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/lb.json b/settings/l10n/lb.json
index 5a0cae2af06832f3149083fdddd2834b95b6f5ba..cd241c5539aaece2fd1bbbd0d7ec2bb520db4341 100644
--- a/settings/l10n/lb.json
+++ b/settings/l10n/lb.json
@@ -6,8 +6,6 @@
"Email sent" : "Email geschéckt",
"Invalid request" : "Ongülteg Requête",
"Email saved" : "E-mail gespäichert",
- "Admins can't remove themself from the admin group" : "Admins kennen sech selwer net aus enger Admin Group läschen.",
- "Unable to add user to group %s" : "Onmeiglech User an Grupp ze sätzen %s",
"All" : "All",
"Disable" : "Ofschalten",
"Enable" : "Aschalten",
@@ -47,12 +45,11 @@
"Other" : "Aner",
"Quota" : "Quota",
"Language changed" : "Sprooch huet geännert",
+ "Admins can't remove themself from the admin group" : "Admins kennen sech selwer net aus enger Admin Group läschen.",
+ "Unable to add user to group %s" : "Onmeiglech User an Grupp ze sätzen %s",
"Log" : "Log",
"More" : "Méi",
"Less" : "Manner",
- "Group" : "Grupp",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "Updates" : "Updates"
+ "Group" : "Grupp"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/lt_LT.js b/settings/l10n/lt_LT.js
index 349e6a32051bf535532a11d6ff78c58d8ec421f5..6d564652550f8a823671368fadd227d12b3a6fc3 100644
--- a/settings/l10n/lt_LT.js
+++ b/settings/l10n/lt_LT.js
@@ -29,16 +29,14 @@ OC.L10N.register(
"Email saved" : "El. paštas įrašytas",
"Password confirmation is required" : "Reikalingas slaptažodžio patvirtinimas",
"Couldn't remove app." : "Nepavyko pašalinti programėlės.",
- "Admins can't remove themself from the admin group" : "Administratoriai negali pašalinti savęs iš administratorių grupės",
- "Unable to add user to group %s" : "Nepavyko pridėti naudotojo į grupę %s",
- "Unable to remove user from group %s" : "Nepavyko pašalinti naudotojo iš grupės %s",
"Couldn't update app." : "Nepavyko atnaujinti programėlės.",
- "Not saved" : "Neišsaugota",
+ "Add trusted domain" : "Pridėti patikimą domeną",
+ "Not saved" : "Neįrašyta",
"Sending..." : "Siunčiama...",
"Official" : "Oficiali",
"All" : "Viskas",
"Update to %s" : "Atnaujinti į %s",
- "Please wait...." : "Prašome palaukti...",
+ "Enabling app …" : "Programėlė įjungiama",
"Error while disabling app" : "Klaida, išjungiant programėlę",
"Disable" : "Išjungti",
"Enable" : "Įjungti",
@@ -46,8 +44,11 @@ OC.L10N.register(
"Updating...." : "Atnaujinama...",
"Error while updating app" : "Įvyko klaida atnaujinant programą",
"Updated" : "Atnaujinta",
+ "Uninstalling ...." : "Išdiegiama...",
+ "Uninstall" : "Išdiegti",
"Approved" : "Patvirtinta",
"Experimental" : "Eksperimentinė",
+ "Disconnect" : "Atjungti",
"Internet Explorer" : "Internet Explorer",
"Edge" : "Edge",
"Firefox" : "Firefox",
@@ -67,6 +68,7 @@ OC.L10N.register(
"Only visible to local users" : "Matoma tik vietiniams naudotojams",
"Only visible to you" : "Matoma tik jums",
"Visible to local users and to trusted servers" : "Matoma tik vietiniams naudotojams ir patikimiems serveriams",
+ "Public" : "Viešai",
"Select a profile picture" : "Pasirinkite profilio paveikslą",
"Very weak password" : "Labai silpnas slaptažodis",
"Weak password" : "Silpnas slaptažodis",
@@ -76,6 +78,7 @@ OC.L10N.register(
"Groups" : "Grupės",
"undo" : "anuliuoti",
"never" : "niekada",
+ "Add group" : "Pridėti grupę",
"Password successfully changed" : "Slaptažodis sėkmingai pakeistas",
"Changing the password will result in data loss, because data recovery is not available for this user" : "Slaptažodžio pakeitimas sąlygos duomenų praradimą, kadangi šiam naudotojui nėra prieinamas duomenų atkūrimas",
"A valid username must be provided" : "Privalo būti pateiktas tinkamas naudotojo vardas",
@@ -160,18 +163,16 @@ OC.L10N.register(
"set new password" : "nustatyti naują slaptažodį",
"Default" : "Numatytasis",
"Language changed" : "Kalba pakeista",
+ "Admins can't remove themself from the admin group" : "Administratoriai negali pašalinti savęs iš administratorių grupės",
+ "Unable to add user to group %s" : "Nepavyko pridėti naudotojo į grupę %s",
+ "Unable to remove user from group %s" : "Nepavyko pašalinti naudotojo iš grupės %s",
+ "Please wait...." : "Prašome palaukti...",
"iPhone" : "iPhone",
"Fatal issues only" : "Tik lemtingosios klaidos",
"Log" : "Žurnalas",
"More" : "Daugiau",
"Less" : "Mažiau",
"The logfile is bigger than 100 MB. Downloading it may take some time!" : "Žurnalo failo dydis yra daugiau nei 100 MB. Jo atsiuntimas gali šiek tiek užtrukti!",
- "Group" : "Grupė",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Išorinės saugyklos",
- "Updates" : "Atnaujinimai",
- "An error occurred: {message}" : "Įvyko klaida: {message}",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Jeigu norite palaikyti projektą, tuomet\n\t\tprisijunkite prie kūrimo\n\t\tarba\n\t\tpadėkite kitiems naudotojams!"
+ "Group" : "Grupė"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/settings/l10n/lt_LT.json b/settings/l10n/lt_LT.json
index 98b3fc749b497b277278767642af33ef3bc2299b..85d13b491707bedc94fdd35c5975cc891d0a17cc 100644
--- a/settings/l10n/lt_LT.json
+++ b/settings/l10n/lt_LT.json
@@ -27,16 +27,14 @@
"Email saved" : "El. paštas įrašytas",
"Password confirmation is required" : "Reikalingas slaptažodžio patvirtinimas",
"Couldn't remove app." : "Nepavyko pašalinti programėlės.",
- "Admins can't remove themself from the admin group" : "Administratoriai negali pašalinti savęs iš administratorių grupės",
- "Unable to add user to group %s" : "Nepavyko pridėti naudotojo į grupę %s",
- "Unable to remove user from group %s" : "Nepavyko pašalinti naudotojo iš grupės %s",
"Couldn't update app." : "Nepavyko atnaujinti programėlės.",
- "Not saved" : "Neišsaugota",
+ "Add trusted domain" : "Pridėti patikimą domeną",
+ "Not saved" : "Neįrašyta",
"Sending..." : "Siunčiama...",
"Official" : "Oficiali",
"All" : "Viskas",
"Update to %s" : "Atnaujinti į %s",
- "Please wait...." : "Prašome palaukti...",
+ "Enabling app …" : "Programėlė įjungiama",
"Error while disabling app" : "Klaida, išjungiant programėlę",
"Disable" : "Išjungti",
"Enable" : "Įjungti",
@@ -44,8 +42,11 @@
"Updating...." : "Atnaujinama...",
"Error while updating app" : "Įvyko klaida atnaujinant programą",
"Updated" : "Atnaujinta",
+ "Uninstalling ...." : "Išdiegiama...",
+ "Uninstall" : "Išdiegti",
"Approved" : "Patvirtinta",
"Experimental" : "Eksperimentinė",
+ "Disconnect" : "Atjungti",
"Internet Explorer" : "Internet Explorer",
"Edge" : "Edge",
"Firefox" : "Firefox",
@@ -65,6 +66,7 @@
"Only visible to local users" : "Matoma tik vietiniams naudotojams",
"Only visible to you" : "Matoma tik jums",
"Visible to local users and to trusted servers" : "Matoma tik vietiniams naudotojams ir patikimiems serveriams",
+ "Public" : "Viešai",
"Select a profile picture" : "Pasirinkite profilio paveikslą",
"Very weak password" : "Labai silpnas slaptažodis",
"Weak password" : "Silpnas slaptažodis",
@@ -74,6 +76,7 @@
"Groups" : "Grupės",
"undo" : "anuliuoti",
"never" : "niekada",
+ "Add group" : "Pridėti grupę",
"Password successfully changed" : "Slaptažodis sėkmingai pakeistas",
"Changing the password will result in data loss, because data recovery is not available for this user" : "Slaptažodžio pakeitimas sąlygos duomenų praradimą, kadangi šiam naudotojui nėra prieinamas duomenų atkūrimas",
"A valid username must be provided" : "Privalo būti pateiktas tinkamas naudotojo vardas",
@@ -158,18 +161,16 @@
"set new password" : "nustatyti naują slaptažodį",
"Default" : "Numatytasis",
"Language changed" : "Kalba pakeista",
+ "Admins can't remove themself from the admin group" : "Administratoriai negali pašalinti savęs iš administratorių grupės",
+ "Unable to add user to group %s" : "Nepavyko pridėti naudotojo į grupę %s",
+ "Unable to remove user from group %s" : "Nepavyko pašalinti naudotojo iš grupės %s",
+ "Please wait...." : "Prašome palaukti...",
"iPhone" : "iPhone",
"Fatal issues only" : "Tik lemtingosios klaidos",
"Log" : "Žurnalas",
"More" : "Daugiau",
"Less" : "Mažiau",
"The logfile is bigger than 100 MB. Downloading it may take some time!" : "Žurnalo failo dydis yra daugiau nei 100 MB. Jo atsiuntimas gali šiek tiek užtrukti!",
- "Group" : "Grupė",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Išorinės saugyklos",
- "Updates" : "Atnaujinimai",
- "An error occurred: {message}" : "Įvyko klaida: {message}",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Jeigu norite palaikyti projektą, tuomet\n\t\tprisijunkite prie kūrimo\n\t\tarba\n\t\tpadėkite kitiems naudotojams!"
+ "Group" : "Grupė"
},"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/settings/l10n/lv.js b/settings/l10n/lv.js
index e45d4c215778bf187f8a88aabbf0dcaca07561a2..382c9cc1818e42941b3c07376a1ff4bd431e9967 100644
--- a/settings/l10n/lv.js
+++ b/settings/l10n/lv.js
@@ -1,7 +1,7 @@
OC.L10N.register(
"settings",
{
- "Enabled" : "Pievienots",
+ "Enabled" : "Iespējots",
"Not enabled" : "Nav pievienots",
"Wrong password" : "Nepareiza parole",
"Saved" : "Saglabāts",
@@ -10,47 +10,88 @@ OC.L10N.register(
"Authentication error" : "Autentifikācijas kļūda",
"Please provide an admin recovery password, otherwise all user data will be lost" : "Lūdzu ievadiet administratora atjaunošanas paroli, citādi visi lietotāja dati tiks zaudēti",
"Wrong admin recovery password. Please check the password and try again." : "Nepareiza administratora atjaunošanas parole. Lūdzu pārbaudiet paroli un mēģiniet vēlreiz.",
+ "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Aizmugursistēmas neatbalsta paroles maiņu, bet lietotāja šifrēšanas atslēga ir veiksmīgi atjaunināta.",
+ "installing and updating apps via the app store or Federated Cloud Sharing" : "programmu instalēšana un atjaunināšana, izmantojot programmu veikalu vai Federatīvajām Cloud koplietošanu",
"Federated Cloud Sharing" : "Federatīva mākoņkoplietošana",
+ "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL izmanto novecojušu %s versiju (%s). Lūdzu, atjauniniet operētājsistēmu vai funkcijām, piem., %s nedarbosies pareizi.",
+ "A problem occurred, please check your log files (Error: %s)" : "Radusies problēma, lūdzu, pārbaudiet žurnāla failus (Kļūda: %s)",
+ "Migration Completed" : "Migrācija ir pabeigta",
"Group already exists." : "Grupa jau eksistē.",
"Unable to add group." : "Nevar pievienot grupu.",
"Unable to delete group." : "Nevar izdzēst grupu.",
"test email settings" : "testēt e-pasta iestatījumus",
+ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Radās kļūda, nosūtot e-pastu. Lūdzu, pārskatiet savus iestatījumus. (Kļūda: %s)",
"Email sent" : "Vēstule nosūtīta",
"You need to set your user email before being able to send test emails." : "Nepieciešams norādīt sava lietotāja e-pasta adresi, lai nosūtīta testa e-pastus.",
"Invalid request" : "Nederīgs vaicājums",
"Invalid mail address" : "Nepareiza e-pasta adrese",
+ "No valid group selected" : "Atlasītā grupa nav derīga",
"A user with that name already exists." : "Jau pastāv lietotājs ar šo vārdu.",
"Unable to create user." : "Nevar izveidot lietotāju.",
"Your %s account was created" : "Konts %s ir izveidots",
"Unable to delete user." : "Nevar izdzēst lietotāju.",
+ "Settings saved" : "Iestatījumi saglabāti",
"Unable to change full name" : "Nav iespējams nomainīt jūsu pilno vārdu",
+ "Unable to change email address" : "Nevar mainīt e-pasta adresi",
"Your full name has been changed." : "Jūsu pilnais vārds tika mainīts.",
"Forbidden" : "Pieeja liegta",
"Invalid user" : "Nepareizs lietotājs",
"Unable to change mail address" : "Nevar nomainīt e-pasta adresi",
"Email saved" : "E-pasts tika saglabāts",
- "Couldn't remove app." : "Nebija iespējams atslēgt lietoni.",
- "Admins can't remove themself from the admin group" : "Administratori nevar izņemt paši sevi no administratoru grupas",
- "Unable to add user to group %s" : "Nevar pievienot lietotāju grupai %s",
- "Unable to remove user from group %s" : "Nevar izņemt lietotāju no grupas %s",
- "Couldn't update app." : "Nevarēja atjaunināt lietotni.",
+ "Password confirmation is required" : "Nepieciešams paroles apstiprinājums",
+ "Couldn't remove app." : "Nebija iespējams atslēgt programmu.",
+ "Couldn't update app." : "Nevarēja atjaunināt programmu.",
+ "Are you really sure you want add {domain} as trusted domain?" : "Tu tiešām esi pārliecināta, ka vēlies pievienot {domain} kā uzticamu domēnu?",
"Add trusted domain" : "Pievienot uzticamu domēnu",
+ "Migration in progress. Please wait until the migration is finished" : "Notiek migrācija. Lūdzu, pagaidiet, līdz migrēšana ir pabeigta",
+ "Migration started …" : "Uzsākta migrācija...",
+ "Not saved" : "Nav saglabāts",
"Sending..." : "Sūta...",
"All" : "Visi",
- "No apps found for your version" : "Neatrada aplikāciju jūsu versijai",
- "Please wait...." : "Lūdzu, uzgaidiet....",
- "Error while disabling app" : "Kļūda, atvienojot lietotni",
+ "Update to %s" : "Atjaunināts uz %s",
+ "No apps found for your version" : "Neatrada programmu jūsu versijai",
+ "Error while disabling app" : "Kļūda, atvienojot programmu",
"Disable" : "Deaktivēt",
"Enable" : "Aktivēt",
- "Error while enabling app" : "Kļūda, pievienojot lietotni",
+ "Error while enabling app" : "Kļūda, pievienojot programmu",
"Updating...." : "Atjaunina....",
- "Error while updating app" : "Kļūda, atjauninot lietotni",
+ "Error while updating app" : "Kļūda, atjauninot programmu",
"Updated" : "Atjaunināta",
"Uninstalling ...." : "Atinstalē ....",
- "Error while uninstalling app" : "Kļūda, atinstalējot lietotni",
+ "Error while uninstalling app" : "Kļūda, atinstalējot programmu",
"Uninstall" : "Atinstalēt",
+ "App update" : "Programmu atjaunināšana",
+ "Approved" : "Apstiprināts",
+ "Experimental" : "Eksperimentāls",
+ "Disconnect" : "Atvienot",
+ "Revoke" : "Atsaukt",
+ "Internet Explorer" : "Internet Explorer",
+ "Edge" : "Edge",
+ "Firefox" : "Firefox",
+ "Google Chrome" : "Google Chrome",
+ "Safari" : "Safari",
+ "Google Chrome for Android" : "Google Chrome for Android",
+ "iPhone iOS" : "iPhone iOS",
+ "iPad iOS" : "iPad iOS",
+ "iOS Client" : "iOS Klients",
+ "Android Client" : "Android Klients",
+ "Sync client - {os}" : "Sync klients - {os}",
+ "This session" : "Šajā sesijā",
+ "Copy" : "Kopēt",
+ "Copied!" : "Nokopēts!",
+ "Not supported!" : "Nav atbalstīts!",
+ "Press ⌘-C to copy." : "Spied ⌘-C lai kopētu.",
+ "Press Ctrl-C to copy." : "Spied Ctrl-C lai kopētu.",
"Valid until {date}" : "Valīds līdz {date}",
"Delete" : "Dzēst",
+ "Local" : "Lokāls",
+ "Private" : "Privāts",
+ "Only visible to local users" : "Redzami tikai lokālajiem lietotājiem",
+ "Only visible to you" : "Redzams tikai jums",
+ "Contacts" : "Kontakti",
+ "Visible to local users and to trusted servers" : "Redzama uz vietējiem lietotājiem un uzticamiem serveriem",
+ "Public" : "Publisks",
+ "Will be synced to a global and public address book" : "Tiks sinhronizēts ar globālu un publisku adrešu grāmatu",
"Select a profile picture" : "Izvēlieties profila attēlu",
"Very weak password" : "Ļoti vāja parole",
"Weak password" : "Vāja parole",
@@ -59,58 +100,131 @@ OC.L10N.register(
"Strong password" : "Lieliska parole",
"Groups" : "Grupas",
"Unable to delete {objName}" : "Nevar izdzēst {objName}",
+ "Error creating group: {message}" : "Kļūda, veidojot grupu: {message}",
"A valid group name must be provided" : "Jānorāda derīgs grupas nosaukums",
"deleted {groupName}" : "grupa {groupName} dzēsta",
"undo" : "atsaukt",
"never" : "nekad",
"deleted {userName}" : "lietotājs {userName} dzēsts",
+ "Unable to add user to group {group}" : "Nevar pievienot lietotāju grupai {group}",
+ "Unable to remove user from group {group}" : "Nevar noņemt lietotāju no grupas {group}",
+ "Add group" : "Pievienot grupu",
+ "Invalid quota value \"{val}\"" : "Nederīga kvotas vērtība \"{val}\"",
+ "no group" : "neviena grupa",
+ "Password successfully changed" : "Parole veiksmīgi nomainīta",
+ "Could not change the users email" : "Nevarēja mainīt lietotāja e-pasta adrese",
"A valid username must be provided" : "Jānorāda derīgs lietotājvārds",
+ "Error creating user: {message}" : "Kļūda, veidojot lietotāju: {message}",
"A valid password must be provided" : "Jānorāda derīga parole",
"A valid email must be provided" : "Jānorāda derīga e-pasta adrese",
"__language_name__" : "Latviešu",
"Unlimited" : "Neierobežota",
+ "Personal info" : "Personiskā informācija",
+ "Sessions" : "Sesijas",
+ "App passwords" : "Programmu paroles",
"Sync clients" : "Sinhronizācijas lietotnes",
"None" : "Nav",
"Login" : "Ierakstīties",
"Plain" : "vienkāršs teksts",
"NT LAN Manager" : "NT LAN Pārvaldnieks",
+ "SSL/TLS" : "SSL/TLS",
+ "STARTTLS" : "STARTTLS",
+ "Email server" : "E-pasta serveris",
"Open documentation" : "Atvērt dokumentāciju",
+ "This is used for sending out notifications." : "Tas tiek izmantots, izsūtot paziņojumus.",
+ "Send mode" : "Sūtīšanas metode",
"Encryption" : "Šifrēšana",
"From address" : "No adreses",
+ "mail" : "e-pasts",
+ "Authentication method" : "Autentifikācijas metode",
+ "Authentication required" : "Nepieciešama autentifikācija",
"Server address" : "Servera adrese",
"Port" : "Ports",
"Credentials" : "Akreditācijas dati",
"SMTP Username" : "SMTP lietotājvārds",
"SMTP Password" : "SMTP parole",
+ "Store credentials" : "Saglabāt akreditācijas datus",
"Test email settings" : "Izmēģināt e-pasta iestatījumus",
"Send email" : "Sūtīt e-pastu",
+ "Please read carefully before activating server-side encryption: " : "Lūdzu, izlasiet uzmanīgi pirms aktivējiet servera šifrēšanu:",
+ "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." : "Šifrēšana vien negarantē sistēmas drošību. Skatiet dokumentāciju, lai iegūtu papildinformāciju par šifrēšanas programmu izmantošana, kā arī citu darbību gadījumos.",
+ "Be aware that encryption always increases the file size." : "Jāapzinās, ka šifrēšanas vienmēr palielina faila lielumu.",
+ "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." : "Vienmēr ir ieteicams regulāri veidot dublējumkopijas datu šifrēšanas gadījumam, pārliecinieties, lai dublētu, šifrēšanas atslēgas ir kopā ar jūsu datiem.",
+ "This is the final warning: Do you really want to enable encryption?" : "Šis ir pēdējais brīdinājums: vai tiešām vēlaties iespējot šifrēšanu?",
"Enable encryption" : "Ieslēgt šifrēšanu",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Nav ielādēts šifrēšanas moduļis, lūdzu, aktivizējiet šifrēšanas moduli programmu izvēlnē.",
+ "Select default encryption module:" : "Atlasiet noklusēto šifrēšanas moduli:",
+ "Start migration" : "Sākt migrāciju",
+ "Security & setup warnings" : "Drošības un iestatījumu brīdinājumi",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Trūkst PHP modulis “fileinfo”. Mēs iesakām to aktivēt, lai pēc iespējas labāk noteiktu mime tipus.",
+ "All checks passed." : "Visas pārbaudes veiksmīgas.",
"Cron" : "Cron",
"Execute one task with each page loaded" : "Izpildīt vienu uzdevumu ar katru ielādēto lapu",
"Version" : "Versija",
"Sharing" : "Dalīšanās",
- "Allow apps to use the Share API" : "Ļaut lietotnēm izmantot koplietošanas API",
+ "Allow apps to use the Share API" : "Ļaut programmām izmantot koplietošanas API",
"Allow users to share via link" : "Ļaut lietotājiem koplietot caur saitēm",
"Allow public uploads" : "Atļaut publisko augšupielādi",
+ "Enforce password protection" : "Ieviest paroles aizsardzību",
+ "Set default expiration date" : "Iestatīt noklusējuma beigu datumu",
"Expire after " : "Nederīga pēc",
"days" : "dienas",
+ "Enforce expiration date" : "Uzspiest beigu termiņu",
"Allow resharing" : "Atļaut atkārtotu koplietošanu",
+ "Allow sharing with groups" : "Atļaut koplietošanu ar grupu",
+ "Restrict users to only share with users in their groups" : "Ierobežot lietotājiem koplietot tikai ar lietotājiem savās grupās",
+ "Exclude groups from sharing" : "Izslēgt grupu no koplietošanas",
+ "This is particularly recommended when using the desktop client for file synchronisation." : "Tas ir īpaši ieteicams, ja, izmantojot darbvirsmas klientu, lai veiktu failu sinhronizāciju.",
+ "How to do backups" : "Kā veikt dublēšanu",
+ "Advanced monitoring" : "Papildu uzraudzība",
+ "Performance tuning" : "Veiktspējas uzstādīšana",
+ "Improving the config.php" : "Uzlabot config.php",
+ "Theming" : "Dizains",
+ "Hardening and security guidance" : "Aizsardzības un drošības norādījumi",
+ "Developer documentation" : "Izstrādātāja dokumentācija",
+ "%s-licensed" : "%s-licencēts",
"Documentation:" : "Dokumentācija:",
"User documentation" : "Lietotāja dokumentācija",
"Admin documentation" : "Administratora dokumentācija",
+ "Visit website" : "Apmeklējiet vietni",
+ "Report a bug" : "Ziņot par kļūdu",
"Show description …" : "Rādīt aprakstu …",
"Hide description …" : "Slēpt aprakstu …",
+ "This app has an update available." : "Šai programmai ir pieejams jauninājums",
+ "Enable only for specific groups" : "Iespējot tikai konkrētām grupām",
+ "Uninstall app" : "Atinstalēt programmu",
+ "SSL Root Certificates" : "SSL Root Sertifikāti",
+ "Valid until" : "Derīgs līdz",
+ "Issued By" : "Izsniedza",
+ "Valid until %s" : "Derīgs līdz %s",
+ "Import root certificate" : "Importēt root sertifikātu",
+ "Cheers!" : "Priekā!",
+ "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hei,\n\nvienkārši Jūsu zināšanai, ka Jums tagad ir %s konts.\n\nJūsu lietotājvārds: %s\nPiekļuve: %s\n\n",
+ "Administrator documentation" : "Administratora dokumentācija",
"Online documentation" : "Tiešsaistes dokumentācija",
"Forum" : "Forums",
+ "Getting help" : "Saņemt palīdzību",
"You are using %s of %s" : "Jūs izmantojiet %s no %s",
"Profile picture" : "Profila attēls",
"Upload new" : "Ielādēt jaunu",
+ "Select from Files" : "Izvēlēties no faila",
"Remove image" : "Novākt attēlu",
+ "png or jpg, max. 20 MB" : "png vai jpg, max. 20 MB",
"Cancel" : "Atcelt",
+ "Choose as profile picture" : "Izvēlēties kā profila attēlu",
"Full name" : "Pilns vārds",
+ "No display name set" : "Nav norādīts ekrāna vārds",
"Email" : "E-pasts",
"Your email address" : "Jūsu e-pasta adrese",
+ "No email address set" : "Nav norādīts e-pasts",
+ "For password recovery and notifications" : "Paroles atjaunošanai un paziņojumiem",
+ "Phone number" : "Tālruņa numurs",
+ "Your phone number" : "Jūsu tālruņa numurs",
+ "Address" : "Adrese",
+ "Your postal address" : "Jūsu pasta adrese",
+ "Website" : "Mājaslapa",
+ "Your website" : "Jūsu mājaslapa",
+ "Twitter" : "Twitter",
"You are member of the following groups:" : "Jūs esat šādu grupu biedrs:",
"Password" : "Parole",
"Current password" : "Pašreizējā parole",
@@ -118,37 +232,75 @@ OC.L10N.register(
"Change password" : "Mainīt paroli",
"Language" : "Valoda",
"Help translate" : "Palīdzi tulkot",
- "Get the apps to sync your files" : "Saņem lietotnes, lai sinhronizētu savas datnes",
+ "Get the apps to sync your files" : "Saņem programmu, lai sinhronizētu savas datnes",
"Desktop client" : "Darbvirsmas klients",
- "Android app" : "Android lietotne",
- "iOS app" : "iOS lietotne",
+ "Android app" : "Android programma",
+ "iOS app" : "iOS programma",
"Show First Run Wizard again" : "Vēlreiz rādīt pirmās palaišanas vedni",
+ "Device" : "Ierīce",
+ "Last activity" : "Pēdējā aktivitāte",
"Name" : "Nosaukums",
+ "App name" : "Programmas nosaukums",
+ "Create new app password" : "Izveidot jaunu programmas paroli",
+ "Use the credentials below to configure your app or device." : "Izmantot akreditācijas datus, lai konfigurētu savu programmu vai ierīci.",
+ "For security reasons this password will only be shown once." : "Drošības apsvērumu dēļ šī parole, tiks parādīta tikai vienreiz.",
"Username" : "Lietotājvārds",
"Done" : "Pabeigts",
+ "Follow us on Google Plus!" : "Seko mums Google Plus!",
+ "Subscribe to our newsletter!" : "Abonēt mūsu jaunumus!",
+ "Show storage location" : "Rādīt krātuves atrašanās vietu",
+ "Show last log in" : "Rādīt pēdējo autorizāciju",
"Send email to new user" : "Sūtīt e-pastu jaunajam lietotājam",
"Show email address" : "Rādīt e-pasta adreses",
"E-Mail" : "E-pasts",
"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",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Lūdzu, ievadiet krātuves kvotu (piem: \"512 MB\" vai \"12 GB\")",
"Other" : "Cits",
+ "Group admin for" : "Admin grupa",
"Quota" : "Apjoms",
+ "Storage location" : "Krātuves atrašanās vieta",
+ "Last login" : "Pēdējā pieteikšanās",
+ "change full name" : "mainīt vārdu",
"set new password" : "iestatīt jaunu paroli",
+ "change email address" : "mainīt e-pasta adresi",
"Default" : "Noklusējuma",
+ "log-level out of allowed range" : "žurnāla-līmenis ārpus atļautā diapazona",
"Language changed" : "Valoda tika nomainīta",
+ "Admins can't remove themself from the admin group" : "Administratori nevar izņemt paši sevi no administratoru grupas",
+ "Unable to add user to group %s" : "Nevar pievienot lietotāju grupai %s",
+ "Unable to remove user from group %s" : "Nevar izņemt lietotāju no grupas %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Vai esat pārliecināts, ka vēlaties pievienot \"{domain}\" kā uzticamu domēnu?",
+ "Please wait...." : "Lūdzu, uzgaidiet....",
+ "iPhone" : "iPhone",
+ "add group" : "pievienot grupu",
"Everything (fatal issues, errors, warnings, info, debug)" : "Viss (letālas problēmas, kļūdas, brīdinājumi, informatīvas ziņas, atkļūdošanas paziņojumi)",
"Info, warnings, errors and fatal issues" : "Informatīvas ziņas, brīdinājumi, kļūdas un letālas problēmas",
"Warnings, errors and fatal issues" : "Brīdinājumi, kļūdas un letālas problēmas",
"Errors and fatal issues" : "Kļūdas un letālas problēmas",
"Fatal issues only" : "Tikai letālas problēmas",
"Log" : "Žurnāls",
+ "What to log" : "Ko pierakstīt",
+ "Download logfile" : "Lejupielādēt žurnālfailu",
"More" : "Vairāk",
"Less" : "Mazāk",
+ "The logfile is bigger than 100 MB. Downloading it may take some time!" : "Šis žurnālfails ir lielāks par 100 MB. Lejupielāde var aizņemt kādu laiku.",
+ "Allow users to send mail notification for shared files" : "Atļaut lietotājiem nosūtīt e-pasta paziņojumu par koplietojamiem failiem",
+ "Allow users to send mail notification for shared files to other users" : "Atļaut lietotājiem nosūtīt e-pasta paziņojumu par koplietojamiem failiem citiem lietotājiem",
+ "Uninstall App" : "Atinstalēt programmu",
+ "Enable experimental apps" : "Atļaut eksperimentālās programmas",
+ "If you want to support the project\n\t\tjoin development\n\t\t \n\t\tspread the word!" : "Ja vēlaties atbalstīt projektu\n\t\tpievienoties attīstībai\n\t\t \n\t\tizplatīt vārdu!",
+ "Add Group" : "Pievienot grupu",
"Group" : "Grupa",
- "External Storage" : "Ārējā krātuve",
- "Updates" : "Atjauninājumi",
- "An error occurred: {message}" : "Notika kļūda: {message}"
+ "Default Quota" : "Apjoms pēc noklusējuma",
+ "Full Name" : "Pilns vārds",
+ "Group Admin for" : "Admin grupa",
+ "Storage Location" : "Krātuves atrašanās vieta",
+ "Last Login" : "Pēdējā pieteikšanās"
},
"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 73fb1390eb76aa724e1e96db947e9e1cd9ed5f23..36e1576c80005ad6bfbf681caf0236744c3e9e11 100644
--- a/settings/l10n/lv.json
+++ b/settings/l10n/lv.json
@@ -1,5 +1,5 @@
{ "translations": {
- "Enabled" : "Pievienots",
+ "Enabled" : "Iespējots",
"Not enabled" : "Nav pievienots",
"Wrong password" : "Nepareiza parole",
"Saved" : "Saglabāts",
@@ -8,47 +8,88 @@
"Authentication error" : "Autentifikācijas kļūda",
"Please provide an admin recovery password, otherwise all user data will be lost" : "Lūdzu ievadiet administratora atjaunošanas paroli, citādi visi lietotāja dati tiks zaudēti",
"Wrong admin recovery password. Please check the password and try again." : "Nepareiza administratora atjaunošanas parole. Lūdzu pārbaudiet paroli un mēģiniet vēlreiz.",
+ "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Aizmugursistēmas neatbalsta paroles maiņu, bet lietotāja šifrēšanas atslēga ir veiksmīgi atjaunināta.",
+ "installing and updating apps via the app store or Federated Cloud Sharing" : "programmu instalēšana un atjaunināšana, izmantojot programmu veikalu vai Federatīvajām Cloud koplietošanu",
"Federated Cloud Sharing" : "Federatīva mākoņkoplietošana",
+ "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL izmanto novecojušu %s versiju (%s). Lūdzu, atjauniniet operētājsistēmu vai funkcijām, piem., %s nedarbosies pareizi.",
+ "A problem occurred, please check your log files (Error: %s)" : "Radusies problēma, lūdzu, pārbaudiet žurnāla failus (Kļūda: %s)",
+ "Migration Completed" : "Migrācija ir pabeigta",
"Group already exists." : "Grupa jau eksistē.",
"Unable to add group." : "Nevar pievienot grupu.",
"Unable to delete group." : "Nevar izdzēst grupu.",
"test email settings" : "testēt e-pasta iestatījumus",
+ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Radās kļūda, nosūtot e-pastu. Lūdzu, pārskatiet savus iestatījumus. (Kļūda: %s)",
"Email sent" : "Vēstule nosūtīta",
"You need to set your user email before being able to send test emails." : "Nepieciešams norādīt sava lietotāja e-pasta adresi, lai nosūtīta testa e-pastus.",
"Invalid request" : "Nederīgs vaicājums",
"Invalid mail address" : "Nepareiza e-pasta adrese",
+ "No valid group selected" : "Atlasītā grupa nav derīga",
"A user with that name already exists." : "Jau pastāv lietotājs ar šo vārdu.",
"Unable to create user." : "Nevar izveidot lietotāju.",
"Your %s account was created" : "Konts %s ir izveidots",
"Unable to delete user." : "Nevar izdzēst lietotāju.",
+ "Settings saved" : "Iestatījumi saglabāti",
"Unable to change full name" : "Nav iespējams nomainīt jūsu pilno vārdu",
+ "Unable to change email address" : "Nevar mainīt e-pasta adresi",
"Your full name has been changed." : "Jūsu pilnais vārds tika mainīts.",
"Forbidden" : "Pieeja liegta",
"Invalid user" : "Nepareizs lietotājs",
"Unable to change mail address" : "Nevar nomainīt e-pasta adresi",
"Email saved" : "E-pasts tika saglabāts",
- "Couldn't remove app." : "Nebija iespējams atslēgt lietoni.",
- "Admins can't remove themself from the admin group" : "Administratori nevar izņemt paši sevi no administratoru grupas",
- "Unable to add user to group %s" : "Nevar pievienot lietotāju grupai %s",
- "Unable to remove user from group %s" : "Nevar izņemt lietotāju no grupas %s",
- "Couldn't update app." : "Nevarēja atjaunināt lietotni.",
+ "Password confirmation is required" : "Nepieciešams paroles apstiprinājums",
+ "Couldn't remove app." : "Nebija iespējams atslēgt programmu.",
+ "Couldn't update app." : "Nevarēja atjaunināt programmu.",
+ "Are you really sure you want add {domain} as trusted domain?" : "Tu tiešām esi pārliecināta, ka vēlies pievienot {domain} kā uzticamu domēnu?",
"Add trusted domain" : "Pievienot uzticamu domēnu",
+ "Migration in progress. Please wait until the migration is finished" : "Notiek migrācija. Lūdzu, pagaidiet, līdz migrēšana ir pabeigta",
+ "Migration started …" : "Uzsākta migrācija...",
+ "Not saved" : "Nav saglabāts",
"Sending..." : "Sūta...",
"All" : "Visi",
- "No apps found for your version" : "Neatrada aplikāciju jūsu versijai",
- "Please wait...." : "Lūdzu, uzgaidiet....",
- "Error while disabling app" : "Kļūda, atvienojot lietotni",
+ "Update to %s" : "Atjaunināts uz %s",
+ "No apps found for your version" : "Neatrada programmu jūsu versijai",
+ "Error while disabling app" : "Kļūda, atvienojot programmu",
"Disable" : "Deaktivēt",
"Enable" : "Aktivēt",
- "Error while enabling app" : "Kļūda, pievienojot lietotni",
+ "Error while enabling app" : "Kļūda, pievienojot programmu",
"Updating...." : "Atjaunina....",
- "Error while updating app" : "Kļūda, atjauninot lietotni",
+ "Error while updating app" : "Kļūda, atjauninot programmu",
"Updated" : "Atjaunināta",
"Uninstalling ...." : "Atinstalē ....",
- "Error while uninstalling app" : "Kļūda, atinstalējot lietotni",
+ "Error while uninstalling app" : "Kļūda, atinstalējot programmu",
"Uninstall" : "Atinstalēt",
+ "App update" : "Programmu atjaunināšana",
+ "Approved" : "Apstiprināts",
+ "Experimental" : "Eksperimentāls",
+ "Disconnect" : "Atvienot",
+ "Revoke" : "Atsaukt",
+ "Internet Explorer" : "Internet Explorer",
+ "Edge" : "Edge",
+ "Firefox" : "Firefox",
+ "Google Chrome" : "Google Chrome",
+ "Safari" : "Safari",
+ "Google Chrome for Android" : "Google Chrome for Android",
+ "iPhone iOS" : "iPhone iOS",
+ "iPad iOS" : "iPad iOS",
+ "iOS Client" : "iOS Klients",
+ "Android Client" : "Android Klients",
+ "Sync client - {os}" : "Sync klients - {os}",
+ "This session" : "Šajā sesijā",
+ "Copy" : "Kopēt",
+ "Copied!" : "Nokopēts!",
+ "Not supported!" : "Nav atbalstīts!",
+ "Press ⌘-C to copy." : "Spied ⌘-C lai kopētu.",
+ "Press Ctrl-C to copy." : "Spied Ctrl-C lai kopētu.",
"Valid until {date}" : "Valīds līdz {date}",
"Delete" : "Dzēst",
+ "Local" : "Lokāls",
+ "Private" : "Privāts",
+ "Only visible to local users" : "Redzami tikai lokālajiem lietotājiem",
+ "Only visible to you" : "Redzams tikai jums",
+ "Contacts" : "Kontakti",
+ "Visible to local users and to trusted servers" : "Redzama uz vietējiem lietotājiem un uzticamiem serveriem",
+ "Public" : "Publisks",
+ "Will be synced to a global and public address book" : "Tiks sinhronizēts ar globālu un publisku adrešu grāmatu",
"Select a profile picture" : "Izvēlieties profila attēlu",
"Very weak password" : "Ļoti vāja parole",
"Weak password" : "Vāja parole",
@@ -57,58 +98,131 @@
"Strong password" : "Lieliska parole",
"Groups" : "Grupas",
"Unable to delete {objName}" : "Nevar izdzēst {objName}",
+ "Error creating group: {message}" : "Kļūda, veidojot grupu: {message}",
"A valid group name must be provided" : "Jānorāda derīgs grupas nosaukums",
"deleted {groupName}" : "grupa {groupName} dzēsta",
"undo" : "atsaukt",
"never" : "nekad",
"deleted {userName}" : "lietotājs {userName} dzēsts",
+ "Unable to add user to group {group}" : "Nevar pievienot lietotāju grupai {group}",
+ "Unable to remove user from group {group}" : "Nevar noņemt lietotāju no grupas {group}",
+ "Add group" : "Pievienot grupu",
+ "Invalid quota value \"{val}\"" : "Nederīga kvotas vērtība \"{val}\"",
+ "no group" : "neviena grupa",
+ "Password successfully changed" : "Parole veiksmīgi nomainīta",
+ "Could not change the users email" : "Nevarēja mainīt lietotāja e-pasta adrese",
"A valid username must be provided" : "Jānorāda derīgs lietotājvārds",
+ "Error creating user: {message}" : "Kļūda, veidojot lietotāju: {message}",
"A valid password must be provided" : "Jānorāda derīga parole",
"A valid email must be provided" : "Jānorāda derīga e-pasta adrese",
"__language_name__" : "Latviešu",
"Unlimited" : "Neierobežota",
+ "Personal info" : "Personiskā informācija",
+ "Sessions" : "Sesijas",
+ "App passwords" : "Programmu paroles",
"Sync clients" : "Sinhronizācijas lietotnes",
"None" : "Nav",
"Login" : "Ierakstīties",
"Plain" : "vienkāršs teksts",
"NT LAN Manager" : "NT LAN Pārvaldnieks",
+ "SSL/TLS" : "SSL/TLS",
+ "STARTTLS" : "STARTTLS",
+ "Email server" : "E-pasta serveris",
"Open documentation" : "Atvērt dokumentāciju",
+ "This is used for sending out notifications." : "Tas tiek izmantots, izsūtot paziņojumus.",
+ "Send mode" : "Sūtīšanas metode",
"Encryption" : "Šifrēšana",
"From address" : "No adreses",
+ "mail" : "e-pasts",
+ "Authentication method" : "Autentifikācijas metode",
+ "Authentication required" : "Nepieciešama autentifikācija",
"Server address" : "Servera adrese",
"Port" : "Ports",
"Credentials" : "Akreditācijas dati",
"SMTP Username" : "SMTP lietotājvārds",
"SMTP Password" : "SMTP parole",
+ "Store credentials" : "Saglabāt akreditācijas datus",
"Test email settings" : "Izmēģināt e-pasta iestatījumus",
"Send email" : "Sūtīt e-pastu",
+ "Please read carefully before activating server-side encryption: " : "Lūdzu, izlasiet uzmanīgi pirms aktivējiet servera šifrēšanu:",
+ "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." : "Šifrēšana vien negarantē sistēmas drošību. Skatiet dokumentāciju, lai iegūtu papildinformāciju par šifrēšanas programmu izmantošana, kā arī citu darbību gadījumos.",
+ "Be aware that encryption always increases the file size." : "Jāapzinās, ka šifrēšanas vienmēr palielina faila lielumu.",
+ "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." : "Vienmēr ir ieteicams regulāri veidot dublējumkopijas datu šifrēšanas gadījumam, pārliecinieties, lai dublētu, šifrēšanas atslēgas ir kopā ar jūsu datiem.",
+ "This is the final warning: Do you really want to enable encryption?" : "Šis ir pēdējais brīdinājums: vai tiešām vēlaties iespējot šifrēšanu?",
"Enable encryption" : "Ieslēgt šifrēšanu",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Nav ielādēts šifrēšanas moduļis, lūdzu, aktivizējiet šifrēšanas moduli programmu izvēlnē.",
+ "Select default encryption module:" : "Atlasiet noklusēto šifrēšanas moduli:",
+ "Start migration" : "Sākt migrāciju",
+ "Security & setup warnings" : "Drošības un iestatījumu brīdinājumi",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Trūkst PHP modulis “fileinfo”. Mēs iesakām to aktivēt, lai pēc iespējas labāk noteiktu mime tipus.",
+ "All checks passed." : "Visas pārbaudes veiksmīgas.",
"Cron" : "Cron",
"Execute one task with each page loaded" : "Izpildīt vienu uzdevumu ar katru ielādēto lapu",
"Version" : "Versija",
"Sharing" : "Dalīšanās",
- "Allow apps to use the Share API" : "Ļaut lietotnēm izmantot koplietošanas API",
+ "Allow apps to use the Share API" : "Ļaut programmām izmantot koplietošanas API",
"Allow users to share via link" : "Ļaut lietotājiem koplietot caur saitēm",
"Allow public uploads" : "Atļaut publisko augšupielādi",
+ "Enforce password protection" : "Ieviest paroles aizsardzību",
+ "Set default expiration date" : "Iestatīt noklusējuma beigu datumu",
"Expire after " : "Nederīga pēc",
"days" : "dienas",
+ "Enforce expiration date" : "Uzspiest beigu termiņu",
"Allow resharing" : "Atļaut atkārtotu koplietošanu",
+ "Allow sharing with groups" : "Atļaut koplietošanu ar grupu",
+ "Restrict users to only share with users in their groups" : "Ierobežot lietotājiem koplietot tikai ar lietotājiem savās grupās",
+ "Exclude groups from sharing" : "Izslēgt grupu no koplietošanas",
+ "This is particularly recommended when using the desktop client for file synchronisation." : "Tas ir īpaši ieteicams, ja, izmantojot darbvirsmas klientu, lai veiktu failu sinhronizāciju.",
+ "How to do backups" : "Kā veikt dublēšanu",
+ "Advanced monitoring" : "Papildu uzraudzība",
+ "Performance tuning" : "Veiktspējas uzstādīšana",
+ "Improving the config.php" : "Uzlabot config.php",
+ "Theming" : "Dizains",
+ "Hardening and security guidance" : "Aizsardzības un drošības norādījumi",
+ "Developer documentation" : "Izstrādātāja dokumentācija",
+ "%s-licensed" : "%s-licencēts",
"Documentation:" : "Dokumentācija:",
"User documentation" : "Lietotāja dokumentācija",
"Admin documentation" : "Administratora dokumentācija",
+ "Visit website" : "Apmeklējiet vietni",
+ "Report a bug" : "Ziņot par kļūdu",
"Show description …" : "Rādīt aprakstu …",
"Hide description …" : "Slēpt aprakstu …",
+ "This app has an update available." : "Šai programmai ir pieejams jauninājums",
+ "Enable only for specific groups" : "Iespējot tikai konkrētām grupām",
+ "Uninstall app" : "Atinstalēt programmu",
+ "SSL Root Certificates" : "SSL Root Sertifikāti",
+ "Valid until" : "Derīgs līdz",
+ "Issued By" : "Izsniedza",
+ "Valid until %s" : "Derīgs līdz %s",
+ "Import root certificate" : "Importēt root sertifikātu",
+ "Cheers!" : "Priekā!",
+ "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hei,\n\nvienkārši Jūsu zināšanai, ka Jums tagad ir %s konts.\n\nJūsu lietotājvārds: %s\nPiekļuve: %s\n\n",
+ "Administrator documentation" : "Administratora dokumentācija",
"Online documentation" : "Tiešsaistes dokumentācija",
"Forum" : "Forums",
+ "Getting help" : "Saņemt palīdzību",
"You are using %s of %s" : "Jūs izmantojiet %s no %s",
"Profile picture" : "Profila attēls",
"Upload new" : "Ielādēt jaunu",
+ "Select from Files" : "Izvēlēties no faila",
"Remove image" : "Novākt attēlu",
+ "png or jpg, max. 20 MB" : "png vai jpg, max. 20 MB",
"Cancel" : "Atcelt",
+ "Choose as profile picture" : "Izvēlēties kā profila attēlu",
"Full name" : "Pilns vārds",
+ "No display name set" : "Nav norādīts ekrāna vārds",
"Email" : "E-pasts",
"Your email address" : "Jūsu e-pasta adrese",
+ "No email address set" : "Nav norādīts e-pasts",
+ "For password recovery and notifications" : "Paroles atjaunošanai un paziņojumiem",
+ "Phone number" : "Tālruņa numurs",
+ "Your phone number" : "Jūsu tālruņa numurs",
+ "Address" : "Adrese",
+ "Your postal address" : "Jūsu pasta adrese",
+ "Website" : "Mājaslapa",
+ "Your website" : "Jūsu mājaslapa",
+ "Twitter" : "Twitter",
"You are member of the following groups:" : "Jūs esat šādu grupu biedrs:",
"Password" : "Parole",
"Current password" : "Pašreizējā parole",
@@ -116,37 +230,75 @@
"Change password" : "Mainīt paroli",
"Language" : "Valoda",
"Help translate" : "Palīdzi tulkot",
- "Get the apps to sync your files" : "Saņem lietotnes, lai sinhronizētu savas datnes",
+ "Get the apps to sync your files" : "Saņem programmu, lai sinhronizētu savas datnes",
"Desktop client" : "Darbvirsmas klients",
- "Android app" : "Android lietotne",
- "iOS app" : "iOS lietotne",
+ "Android app" : "Android programma",
+ "iOS app" : "iOS programma",
"Show First Run Wizard again" : "Vēlreiz rādīt pirmās palaišanas vedni",
+ "Device" : "Ierīce",
+ "Last activity" : "Pēdējā aktivitāte",
"Name" : "Nosaukums",
+ "App name" : "Programmas nosaukums",
+ "Create new app password" : "Izveidot jaunu programmas paroli",
+ "Use the credentials below to configure your app or device." : "Izmantot akreditācijas datus, lai konfigurētu savu programmu vai ierīci.",
+ "For security reasons this password will only be shown once." : "Drošības apsvērumu dēļ šī parole, tiks parādīta tikai vienreiz.",
"Username" : "Lietotājvārds",
"Done" : "Pabeigts",
+ "Follow us on Google Plus!" : "Seko mums Google Plus!",
+ "Subscribe to our newsletter!" : "Abonēt mūsu jaunumus!",
+ "Show storage location" : "Rādīt krātuves atrašanās vietu",
+ "Show last log in" : "Rādīt pēdējo autorizāciju",
"Send email to new user" : "Sūtīt e-pastu jaunajam lietotājam",
"Show email address" : "Rādīt e-pasta adreses",
"E-Mail" : "E-pasts",
"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",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Lūdzu, ievadiet krātuves kvotu (piem: \"512 MB\" vai \"12 GB\")",
"Other" : "Cits",
+ "Group admin for" : "Admin grupa",
"Quota" : "Apjoms",
+ "Storage location" : "Krātuves atrašanās vieta",
+ "Last login" : "Pēdējā pieteikšanās",
+ "change full name" : "mainīt vārdu",
"set new password" : "iestatīt jaunu paroli",
+ "change email address" : "mainīt e-pasta adresi",
"Default" : "Noklusējuma",
+ "log-level out of allowed range" : "žurnāla-līmenis ārpus atļautā diapazona",
"Language changed" : "Valoda tika nomainīta",
+ "Admins can't remove themself from the admin group" : "Administratori nevar izņemt paši sevi no administratoru grupas",
+ "Unable to add user to group %s" : "Nevar pievienot lietotāju grupai %s",
+ "Unable to remove user from group %s" : "Nevar izņemt lietotāju no grupas %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Vai esat pārliecināts, ka vēlaties pievienot \"{domain}\" kā uzticamu domēnu?",
+ "Please wait...." : "Lūdzu, uzgaidiet....",
+ "iPhone" : "iPhone",
+ "add group" : "pievienot grupu",
"Everything (fatal issues, errors, warnings, info, debug)" : "Viss (letālas problēmas, kļūdas, brīdinājumi, informatīvas ziņas, atkļūdošanas paziņojumi)",
"Info, warnings, errors and fatal issues" : "Informatīvas ziņas, brīdinājumi, kļūdas un letālas problēmas",
"Warnings, errors and fatal issues" : "Brīdinājumi, kļūdas un letālas problēmas",
"Errors and fatal issues" : "Kļūdas un letālas problēmas",
"Fatal issues only" : "Tikai letālas problēmas",
"Log" : "Žurnāls",
+ "What to log" : "Ko pierakstīt",
+ "Download logfile" : "Lejupielādēt žurnālfailu",
"More" : "Vairāk",
"Less" : "Mazāk",
+ "The logfile is bigger than 100 MB. Downloading it may take some time!" : "Šis žurnālfails ir lielāks par 100 MB. Lejupielāde var aizņemt kādu laiku.",
+ "Allow users to send mail notification for shared files" : "Atļaut lietotājiem nosūtīt e-pasta paziņojumu par koplietojamiem failiem",
+ "Allow users to send mail notification for shared files to other users" : "Atļaut lietotājiem nosūtīt e-pasta paziņojumu par koplietojamiem failiem citiem lietotājiem",
+ "Uninstall App" : "Atinstalēt programmu",
+ "Enable experimental apps" : "Atļaut eksperimentālās programmas",
+ "If you want to support the project\n\t\tjoin development\n\t\t \n\t\tspread the word!" : "Ja vēlaties atbalstīt projektu\n\t\tpievienoties attīstībai\n\t\t \n\t\tizplatīt vārdu!",
+ "Add Group" : "Pievienot grupu",
"Group" : "Grupa",
- "External Storage" : "Ārējā krātuve",
- "Updates" : "Atjauninājumi",
- "An error occurred: {message}" : "Notika kļūda: {message}"
+ "Default Quota" : "Apjoms pēc noklusējuma",
+ "Full Name" : "Pilns vārds",
+ "Group Admin for" : "Admin grupa",
+ "Storage Location" : "Krātuves atrašanās vieta",
+ "Last Login" : "Pēdējā pieteikšanās"
},"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/mk.js b/settings/l10n/mk.js
index 769ad1df48b26a2856c3bee74da0906f1995dc0f..b4ddc9551026d62bd513efa9c4ee7d4e6dc6022a 100644
--- a/settings/l10n/mk.js
+++ b/settings/l10n/mk.js
@@ -33,9 +33,6 @@ OC.L10N.register(
"Unable to change mail address" : "Не можам да ја променам електронската адреса/пошта",
"Email saved" : "Електронската пошта е снимена",
"Couldn't remove app." : "Не можам да ја отстранам апликацијата.",
- "Admins can't remove themself from the admin group" : "Администраторите неможе да се избришат себеси од админ групата",
- "Unable to add user to group %s" : "Неможе да додадам корисник во група %s",
- "Unable to remove user from group %s" : "Неможе да избришам корисник од група %s",
"Couldn't update app." : "Не можам да ја надградам апликацијата.",
"Add trusted domain" : "Додади доверлив домејн",
"Migration started …" : "Миграцијата е започнаа ...",
@@ -44,7 +41,6 @@ OC.L10N.register(
"All" : "Сите",
"Update to %s" : "Надгради на %s",
"No apps found for your version" : "За вашата верзија не се пронајдени апликации",
- "Please wait...." : "Ве молам почекајте ...",
"Error while disabling app" : "Грешка при исклучувањето на апликацијата",
"Disable" : "Оневозможи",
"Enable" : "Овозможи",
@@ -164,6 +160,10 @@ OC.L10N.register(
"Default" : "Предефиниран",
"log-level out of allowed range" : "нивото на логирање е надвор од дозволениот опсег",
"Language changed" : "Јазикот е сменет",
+ "Admins can't remove themself from the admin group" : "Администраторите неможе да се избришат себеси од админ групата",
+ "Unable to add user to group %s" : "Неможе да додадам корисник во група %s",
+ "Unable to remove user from group %s" : "Неможе да избришам корисник од група %s",
+ "Please wait...." : "Ве молам почекајте ...",
"Info, warnings, errors and fatal issues" : "Информации, предупредувања, грешки и фатални работи",
"Warnings, errors and fatal issues" : "Предупредувања, грешки и фатални работи",
"Errors and fatal issues" : "Грешки и фатални работи",
@@ -173,9 +173,6 @@ OC.L10N.register(
"Download logfile" : "Преземи ја датотеката со логови",
"More" : "Повеќе",
"Less" : "Помалку",
- "Group" : "Група",
- "External Storage" : "Надворешно складиште",
- "Updates" : "Ажурирања",
- "An error occurred: {message}" : "Се случи грешка: {message}"
+ "Group" : "Група"
},
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
diff --git a/settings/l10n/mk.json b/settings/l10n/mk.json
index 76c4994e0ee1b8a9b3bc3fc587c2af08838dc910..cbb05bbd3800c7982786e84f866fa7f68deda26b 100644
--- a/settings/l10n/mk.json
+++ b/settings/l10n/mk.json
@@ -31,9 +31,6 @@
"Unable to change mail address" : "Не можам да ја променам електронската адреса/пошта",
"Email saved" : "Електронската пошта е снимена",
"Couldn't remove app." : "Не можам да ја отстранам апликацијата.",
- "Admins can't remove themself from the admin group" : "Администраторите неможе да се избришат себеси од админ групата",
- "Unable to add user to group %s" : "Неможе да додадам корисник во група %s",
- "Unable to remove user from group %s" : "Неможе да избришам корисник од група %s",
"Couldn't update app." : "Не можам да ја надградам апликацијата.",
"Add trusted domain" : "Додади доверлив домејн",
"Migration started …" : "Миграцијата е започнаа ...",
@@ -42,7 +39,6 @@
"All" : "Сите",
"Update to %s" : "Надгради на %s",
"No apps found for your version" : "За вашата верзија не се пронајдени апликации",
- "Please wait...." : "Ве молам почекајте ...",
"Error while disabling app" : "Грешка при исклучувањето на апликацијата",
"Disable" : "Оневозможи",
"Enable" : "Овозможи",
@@ -162,6 +158,10 @@
"Default" : "Предефиниран",
"log-level out of allowed range" : "нивото на логирање е надвор од дозволениот опсег",
"Language changed" : "Јазикот е сменет",
+ "Admins can't remove themself from the admin group" : "Администраторите неможе да се избришат себеси од админ групата",
+ "Unable to add user to group %s" : "Неможе да додадам корисник во група %s",
+ "Unable to remove user from group %s" : "Неможе да избришам корисник од група %s",
+ "Please wait...." : "Ве молам почекајте ...",
"Info, warnings, errors and fatal issues" : "Информации, предупредувања, грешки и фатални работи",
"Warnings, errors and fatal issues" : "Предупредувања, грешки и фатални работи",
"Errors and fatal issues" : "Грешки и фатални работи",
@@ -171,9 +171,6 @@
"Download logfile" : "Преземи ја датотеката со логови",
"More" : "Повеќе",
"Less" : "Помалку",
- "Group" : "Група",
- "External Storage" : "Надворешно складиште",
- "Updates" : "Ажурирања",
- "An error occurred: {message}" : "Се случи грешка: {message}"
+ "Group" : "Група"
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
}
\ No newline at end of file
diff --git a/settings/l10n/nb_NO.js b/settings/l10n/nb_NO.js
index 27af749b5dcc2c528fa91977d4749f0520dbdde4..32cc38f7759704e48b64be6c3b2e2a418f4d4f18 100644
--- a/settings/l10n/nb_NO.js
+++ b/settings/l10n/nb_NO.js
@@ -36,9 +36,6 @@ OC.L10N.register(
"Unable to change mail address" : "Kan ikke endre epost-adresse",
"Email saved" : "Epost lagret",
"Couldn't remove app." : "Klarte ikke å fjerne app.",
- "Admins can't remove themself from the admin group" : "Admin kan ikke flytte seg selv fra admingruppen",
- "Unable to add user to group %s" : "Kan ikke legge bruker til gruppen %s",
- "Unable to remove user from group %s" : "Kan ikke slette bruker fra gruppen %s",
"Couldn't update app." : "Kunne ikke oppdatere app.",
"Add trusted domain" : "Legg til et klarert domene",
"Migration in progress. Please wait until the migration is finished" : "Migrering utføres. Vent til migreringen er ferdig.",
@@ -54,7 +51,6 @@ OC.L10N.register(
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Offisielle apper er utviklet av og innenfor miljøet, de byr på sentral funksjonalitet og er klare for bruk i produksjon.",
"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." : "Godkjente apper er utviklet av tiltrodde utviklere og har gjennomgått en rask sikkerhetssjekk. De vedlikeholdes aktivt i et åpent kode-depot og utviklerne anser dem for å være stabile for tidvis eller normal bruk.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Denne appen er ikke sjekket for sikkerhetsproblemer og er ny eller ansett for å være ustabil. Installer på egen risiko.",
- "Please wait...." : "Vennligst vent...",
"Error while disabling app" : "Deaktivering av app feilet",
"Disable" : "Deaktiver ",
"Enable" : "Aktiver",
@@ -84,6 +80,7 @@ OC.L10N.register(
"Android Client" : "Android klient",
"Sync client - {os}" : "Synkroniseringsklient - {os}",
"This session" : "Denne økten",
+ "Copy" : "Kopier",
"Copied!" : "Kopiert!",
"Not supported!" : "Ikke støttet!",
"Press ⌘-C to copy." : "Trykk ⌘-C for å kopiere",
@@ -94,6 +91,7 @@ OC.L10N.register(
"An error occurred. Please upload an ASCII-encoded PEM certificate." : "Det oppstod en feil. Vennligst last opp et ASCII-kodet PEM-sertifikat.",
"Valid until {date}" : "Gyldig til {date}",
"Delete" : "Slett",
+ "Private" : "Privat",
"Select a profile picture" : "Velg et profilbilde",
"Very weak password" : "Veldig svakt passord",
"Weak password" : "Svakt passord",
@@ -226,7 +224,6 @@ OC.L10N.register(
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Denne appen har ingen høyeste versjon av Nextcloud definert. Dette vil være en feil i fremtiden.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Denne appen kan ikke installeres fordi følgende avhengigheter ikke er tilfredsstilt:",
"Enable only for specific groups" : "Aktiver kun for visse grupper",
- "Uninstall App" : "Avinstaller app",
"SSL Root Certificates" : "SSL rotsertifikater",
"Common Name" : "Vanlig navn",
"Valid until" : "Gyldig til",
@@ -309,7 +306,11 @@ OC.L10N.register(
"Default" : "Standard",
"log-level out of allowed range" : "Loggnivå utenfor tillatt område",
"Language changed" : "Språk endret",
+ "Admins can't remove themself from the admin group" : "Admin kan ikke flytte seg selv fra admingruppen",
+ "Unable to add user to group %s" : "Kan ikke legge bruker til gruppen %s",
+ "Unable to remove user from group %s" : "Kan ikke slette bruker fra gruppen %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Ønsker du virkelig å legge til \"{domain}\" som klarert domene?",
+ "Please wait...." : "Vennligst vent...",
"iPhone" : "iPhone",
"add group" : "legg til gruppe",
"Everything (fatal issues, errors, warnings, info, debug)" : "Alt (fatale problemer, feil, advarsler, info, debug)",
@@ -329,6 +330,7 @@ OC.L10N.register(
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "SQLite er spesielt frarådet om man bruker desktopklienten til filsynkronisering",
"Experimental applications ahead" : "Eksperimentelle applikasjoner forut",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Eksperimentelle apper er ikke sjekket for sikkerhetsproblemer. De er nye eller de anses som ustabile og under stadig utvikling. Å installere slike apper kan forårsake tap av data eller brudd på sikkerheten.",
+ "Uninstall App" : "Avinstaller app",
"Enable experimental apps" : "Aktiver eksperimentelle apper",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hei,
vil bare informere om at du nå har en %s-konto.
Brukernavnet ditt: %s
Gå dit: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hei,\n\nVil bare informere om at du nå har en %s-konto.\n\nBrukernavnet ditt: %s\nGå dit: %s\n\n",
@@ -340,24 +342,6 @@ OC.L10N.register(
"Group Admin for" : "Gruppeadministrator for",
"Storage Location" : "Lagringsplassering",
"User Backend" : "Bruker-tjener",
- "Last Login" : "Siste innlogging",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Ekstern lagring",
- "Updates" : "Oppdateringer",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "Offisielle apper er utviklet av og innenfor miljøet, de byr på sentral funksjonalitet og er klare for bruk i produksjon.",
- "No apps found for \"{query}\"" : "Ingen apper funnet for \"{query}\"",
- "An error occurred: {message}" : "Det oppstod en feil: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Vennligst sjekk installasjonsdokumentasjonen ↗ etter php konfigurasjonsnotater og konfigurering av php på tjeneren din, særlig om du bruker php-fpm.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Din database kjører ikke med \"READ COMMITED\" transaksjonsisolering. Dette kan lage problemer når flere handlinger kjøres i paralell.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Serveren din kjører på Microsoft Windows. Vi anbefaler sterkt Linux for en optimal brukeropplevelse.",
- "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 documentation ↗ for more information." : "Transaksjonsbasert fil-låsing er deaktivert. Dette kan føre til konflikt. Aktiver \"filelocking.enabled\" i config.php for å unngå disse problemene. Se dokumentasjonen ↗ for mer informasjon.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Vennligst dobbeltsjekk installasjonsveiledningen ↗, og se etter feil og advarsler i loggen.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "Krypteringen alene gir ikke noen garanti for systemets sikkerhet. Vennligst se i Nextcloud dokumentasjonen for mer informasjon om hvordan krypteringsappen virker, og de fungerende brukeeksemplene.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "For å migrere til en annen database, bruk kommandolinjeverktøyet: 'occ db:convert-type', eller les i dokumentasjonen ↗.",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Denne appen har ingen laveste versjon av Nextcloud definert. Dette vil være en feil i Nextcloud 11 og senere.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Denne appen har ingen maksimum versjon av Nextcloud definert. Dette vil være en feil i Nextcloud 11 og senere.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Hvis du vil støtte prosjektet \n\t\tdelta i utviklingen\n\t\tor\n\t\thjelp andre brukere!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Utviklet av {communityopen}Nextcloud mijøet{linkclose}, {githubopen}kildekoden{linkclose} er lisensiert under {licenseopen}AGPL{linkclose}."
+ "Last Login" : "Siste innlogging"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/nb_NO.json b/settings/l10n/nb_NO.json
index 09552049cdba94a82b1c4f4072649034b93ebb5c..dc153fc66f6e2939d9c4bd55880a057961961d63 100644
--- a/settings/l10n/nb_NO.json
+++ b/settings/l10n/nb_NO.json
@@ -34,9 +34,6 @@
"Unable to change mail address" : "Kan ikke endre epost-adresse",
"Email saved" : "Epost lagret",
"Couldn't remove app." : "Klarte ikke å fjerne app.",
- "Admins can't remove themself from the admin group" : "Admin kan ikke flytte seg selv fra admingruppen",
- "Unable to add user to group %s" : "Kan ikke legge bruker til gruppen %s",
- "Unable to remove user from group %s" : "Kan ikke slette bruker fra gruppen %s",
"Couldn't update app." : "Kunne ikke oppdatere app.",
"Add trusted domain" : "Legg til et klarert domene",
"Migration in progress. Please wait until the migration is finished" : "Migrering utføres. Vent til migreringen er ferdig.",
@@ -52,7 +49,6 @@
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Offisielle apper er utviklet av og innenfor miljøet, de byr på sentral funksjonalitet og er klare for bruk i produksjon.",
"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." : "Godkjente apper er utviklet av tiltrodde utviklere og har gjennomgått en rask sikkerhetssjekk. De vedlikeholdes aktivt i et åpent kode-depot og utviklerne anser dem for å være stabile for tidvis eller normal bruk.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Denne appen er ikke sjekket for sikkerhetsproblemer og er ny eller ansett for å være ustabil. Installer på egen risiko.",
- "Please wait...." : "Vennligst vent...",
"Error while disabling app" : "Deaktivering av app feilet",
"Disable" : "Deaktiver ",
"Enable" : "Aktiver",
@@ -82,6 +78,7 @@
"Android Client" : "Android klient",
"Sync client - {os}" : "Synkroniseringsklient - {os}",
"This session" : "Denne økten",
+ "Copy" : "Kopier",
"Copied!" : "Kopiert!",
"Not supported!" : "Ikke støttet!",
"Press ⌘-C to copy." : "Trykk ⌘-C for å kopiere",
@@ -92,6 +89,7 @@
"An error occurred. Please upload an ASCII-encoded PEM certificate." : "Det oppstod en feil. Vennligst last opp et ASCII-kodet PEM-sertifikat.",
"Valid until {date}" : "Gyldig til {date}",
"Delete" : "Slett",
+ "Private" : "Privat",
"Select a profile picture" : "Velg et profilbilde",
"Very weak password" : "Veldig svakt passord",
"Weak password" : "Svakt passord",
@@ -224,7 +222,6 @@
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Denne appen har ingen høyeste versjon av Nextcloud definert. Dette vil være en feil i fremtiden.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Denne appen kan ikke installeres fordi følgende avhengigheter ikke er tilfredsstilt:",
"Enable only for specific groups" : "Aktiver kun for visse grupper",
- "Uninstall App" : "Avinstaller app",
"SSL Root Certificates" : "SSL rotsertifikater",
"Common Name" : "Vanlig navn",
"Valid until" : "Gyldig til",
@@ -307,7 +304,11 @@
"Default" : "Standard",
"log-level out of allowed range" : "Loggnivå utenfor tillatt område",
"Language changed" : "Språk endret",
+ "Admins can't remove themself from the admin group" : "Admin kan ikke flytte seg selv fra admingruppen",
+ "Unable to add user to group %s" : "Kan ikke legge bruker til gruppen %s",
+ "Unable to remove user from group %s" : "Kan ikke slette bruker fra gruppen %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Ønsker du virkelig å legge til \"{domain}\" som klarert domene?",
+ "Please wait...." : "Vennligst vent...",
"iPhone" : "iPhone",
"add group" : "legg til gruppe",
"Everything (fatal issues, errors, warnings, info, debug)" : "Alt (fatale problemer, feil, advarsler, info, debug)",
@@ -327,6 +328,7 @@
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "SQLite er spesielt frarådet om man bruker desktopklienten til filsynkronisering",
"Experimental applications ahead" : "Eksperimentelle applikasjoner forut",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Eksperimentelle apper er ikke sjekket for sikkerhetsproblemer. De er nye eller de anses som ustabile og under stadig utvikling. Å installere slike apper kan forårsake tap av data eller brudd på sikkerheten.",
+ "Uninstall App" : "Avinstaller app",
"Enable experimental apps" : "Aktiver eksperimentelle apper",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hei,
vil bare informere om at du nå har en %s-konto.
Brukernavnet ditt: %s
Gå dit: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hei,\n\nVil bare informere om at du nå har en %s-konto.\n\nBrukernavnet ditt: %s\nGå dit: %s\n\n",
@@ -338,24 +340,6 @@
"Group Admin for" : "Gruppeadministrator for",
"Storage Location" : "Lagringsplassering",
"User Backend" : "Bruker-tjener",
- "Last Login" : "Siste innlogging",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Ekstern lagring",
- "Updates" : "Oppdateringer",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "Offisielle apper er utviklet av og innenfor miljøet, de byr på sentral funksjonalitet og er klare for bruk i produksjon.",
- "No apps found for \"{query}\"" : "Ingen apper funnet for \"{query}\"",
- "An error occurred: {message}" : "Det oppstod en feil: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Vennligst sjekk installasjonsdokumentasjonen ↗ etter php konfigurasjonsnotater og konfigurering av php på tjeneren din, særlig om du bruker php-fpm.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Din database kjører ikke med \"READ COMMITED\" transaksjonsisolering. Dette kan lage problemer når flere handlinger kjøres i paralell.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Serveren din kjører på Microsoft Windows. Vi anbefaler sterkt Linux for en optimal brukeropplevelse.",
- "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 documentation ↗ for more information." : "Transaksjonsbasert fil-låsing er deaktivert. Dette kan føre til konflikt. Aktiver \"filelocking.enabled\" i config.php for å unngå disse problemene. Se dokumentasjonen ↗ for mer informasjon.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Vennligst dobbeltsjekk installasjonsveiledningen ↗, og se etter feil og advarsler i loggen.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "Krypteringen alene gir ikke noen garanti for systemets sikkerhet. Vennligst se i Nextcloud dokumentasjonen for mer informasjon om hvordan krypteringsappen virker, og de fungerende brukeeksemplene.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "For å migrere til en annen database, bruk kommandolinjeverktøyet: 'occ db:convert-type', eller les i dokumentasjonen ↗.",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Denne appen har ingen laveste versjon av Nextcloud definert. Dette vil være en feil i Nextcloud 11 og senere.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Denne appen har ingen maksimum versjon av Nextcloud definert. Dette vil være en feil i Nextcloud 11 og senere.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Hvis du vil støtte prosjektet \n\t\tdelta i utviklingen\n\t\tor\n\t\thjelp andre brukere!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Utviklet av {communityopen}Nextcloud mijøet{linkclose}, {githubopen}kildekoden{linkclose} er lisensiert under {licenseopen}AGPL{linkclose}."
+ "Last Login" : "Siste innlogging"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js
index 2875154fbd2ca711e2d3fbe5ae052c1df3a8c25f..91f2987d33af2c85cfafda2d28a8176d6e903ab8 100644
--- a/settings/l10n/nl.js
+++ b/settings/l10n/nl.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"You need to set your user email before being able to send test emails." : "Je moet je e-mailadres invoeren voordat je testberichten kunt versturen.",
"Invalid request" : "Ongeldige aanvraag",
"Invalid mail address" : "Ongeldig e-mailadres",
+ "No valid group selected" : "Geen geldige groep geselecteerd",
"A user with that name already exists." : "Er bestaat al een gebruiker met die naam.",
"Unable to create user." : "Kan gebruiker niet aanmaken.",
"Your %s account was created" : "Je %s account is aangemaakt",
@@ -39,9 +40,6 @@ OC.L10N.register(
"Email saved" : "E-mail opgeslagen",
"Password confirmation is required" : "Wachtwoordbevestiging vereist",
"Couldn't remove app." : "Kon app niet verwijderen.",
- "Admins can't remove themself from the admin group" : "Admins kunnen zichzelf niet uit de admin groep verwijderen",
- "Unable to add user to group %s" : "Niet in staat om gebruiker toe te voegen aan groep %s",
- "Unable to remove user from group %s" : "Niet in staat om gebruiker te verwijderen uit groep %s",
"Couldn't update app." : "Kon de app niet bijwerken.",
"Are you really sure you want add {domain} as trusted domain?" : "Bent u er zeker van om {domain} als vertrouwd domein toe te voegen?",
"Add trusted domain" : "Vertrouwd domein toevoegen",
@@ -58,7 +56,7 @@ OC.L10N.register(
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Officiële apps worden ontwikkeld door en binnen de community. Ze bieden centrale functionaliteit en zijn klaar voor productie.",
"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." : "Goedgekeurde apps zijn ontwikkeld door vertrouwde ontwikkelaars en hebben een beveiligingscontrole ondergaan. Ze worden actief onderhouden in een open code repository en hun ontwikkelaars vinden ze stabiel genoeg voor informeel of normaal gebruik.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Deze app is niet gecontroleerd op beveiligingsproblemen en is nieuw of staat bekend als onstabiel. Installeren op eigen risico.",
- "Please wait...." : "Even geduld a.u.b.",
+ "Enabling app …" : "Activeren app ...",
"Error while disabling app" : "Fout tijdens het uitzetten van de app",
"Disable" : "Uitschakelen",
"Enable" : "Activeer",
@@ -125,6 +123,8 @@ OC.L10N.register(
"undo" : "ongedaan maken",
"never" : "geen",
"deleted {userName}" : "verwijderd {userName}",
+ "Unable to add user to group {group}" : "Kan niet worden toegevoegd aan gebruikersgroep {group}",
+ "Unable to remove user from group {group}" : "Gebruiker kan niet worden verwijderd van groep {group}",
"Add group" : "Groep toevoegen",
"Invalid quota value \"{val}\"" : "Ongeldige quota waarde \"{val}\"",
"no group" : "geen groep",
@@ -247,7 +247,7 @@ OC.L10N.register(
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Deze app heeft geen maximum Nextcloud versie toegewezen gekregen. In de toekomst wordt dit wordt een fout.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Deze app kan niet worden geïnstalleerd, omdat de volgende afhankelijkheden niet zijn ingevuld:",
"Enable only for specific groups" : "Alleen voor bepaalde groepen activeren",
- "Uninstall App" : "De-installeren app",
+ "Uninstall app" : "De-installeren app",
"SSL Root Certificates" : "SSL Root Certificaten",
"Common Name" : "Common Name",
"Valid until" : "Geldig tot",
@@ -341,7 +341,11 @@ OC.L10N.register(
"Default" : "Standaard",
"log-level out of allowed range" : "loggingniveau buiten toegestane bereik",
"Language changed" : "Taal aangepast",
+ "Admins can't remove themself from the admin group" : "Admins kunnen zichzelf niet uit de admin groep verwijderen",
+ "Unable to add user to group %s" : "Niet in staat om gebruiker toe te voegen aan groep %s",
+ "Unable to remove user from group %s" : "Niet in staat om gebruiker te verwijderen uit groep %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Weet je zeker dat je \"{domain}\" als een vertrouwd domein wilt toevoegen?",
+ "Please wait...." : "Even geduld a.u.b.",
"iPhone" : "iPhone",
"add group" : "groep toevoegen",
"Everything (fatal issues, errors, warnings, info, debug)" : "Alles (fatale problemen, fouten, waarschuwingen, info, debug)",
@@ -361,6 +365,7 @@ OC.L10N.register(
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Vooral wanneer de desktop client wordt gebruik voor bestandssynchronisatie wordt gebruik van sqlite afgeraden.",
"Experimental applications ahead" : "Experimentele applicaties vooraan",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimentele apps zijn niet gecontroleerd op beveiligingsproblemen, zijn nieuw of staan bekend als instabiel en worden volop ontwikkeld. Installatie kan leiden tot gegevensverlies of beveiligingsincidenten.",
+ "Uninstall App" : "De-installeren app",
"Enable experimental apps" : "Inschakelen experimentele apps",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hallo daar,
we willen je laten weten dat je nu een %s account hebt.
Je gebruikersnaam: %s
Ga naar: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hallo,\n\nwe willen je laten weten dat je nu een %s account hebt.\n\nJe gebruikersnaam: %s\nGa naar: %s\n\n",
@@ -372,24 +377,6 @@ OC.L10N.register(
"Group Admin for" : "Groepsbeheerder voor",
"Storage Location" : "Opslaglocatie",
"User Backend" : "Backend gebruiker",
- "Last Login" : "Laatste inlog",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Externe opslag",
- "Updates" : "Updates",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "Officiële apps worden ontwikkeld door en binnen de Nextcloud community. Ze bieden cruciale functionaliteit voor Nextcloud en zijn klaar voor productie.",
- "No apps found for \"{query}\"" : "Geen apps gevonden voor {query}",
- "An error occurred: {message}" : "Er heeft zich een fout voorgedaan: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Lees de installatiedocumentatie ↗ voor php configuratienotities en de php configuratie van je server, zeker bij gebruik van php-fpm.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Je database draait niet met \"READ COMMITED\" transactie isolatie niveau. Dit kan problemen opleveren als er meerdere acties tegelijkertijd worden uitgevoerd.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Je server draait op Microsoft Windows. We adviseren je om een linux server te gebruiken voor een optimale gebruikerservaring.",
- "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 documentation ↗ for more information." : "Transactionele bestandlocking is gedeactiveerd, dat zou kunnen leiden tot versiebeheerproblemen. Schakel 'filelocking enabled' in config.php in om deze problemen te voorkomen. Zie de documentatie ↗ voor meer informatie.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Lees de installatiehandleiding ↗ goed door en controleer op fouten en waarschuwingen in de logging.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "Versleuteling alleen garandeert geen beveiliging van het systeem. Lees de Nextcloud documentatie voor meer achtergronden over de werking van de crypto app en de relevante use cases.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Om te migreren naar een andere database moet u de commandoregel tool gebruiken: 'occ db:convert-type', of lees de documentatie ↗.",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Deze app heeft geen minimum Nextcloud versie toegewezen gekregen. Dit wordt een fout in Nextcloud 11 en later.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Deze app heeft geen maximum Nextcloud versie toegewezen gekregen. Dit wordt een fout in Nextcloud 11 en later.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Als je dit project wilt ondersteunen\n\t\thelp mee met ontwikkelen\n\t\tof\n\t\thelp andere gebruikers!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Ontwikkeld door de {communityopen}Nextcloud community{linkclose}, de {githubopen}broncode{linkclose} is gelicenseerd onder de {licenseopen}AGPL{linkclose}."
+ "Last Login" : "Laatste inlog"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json
index 7cc83b182fef78a1b78f1cf1a9b2f5e1d2678643..68b8e1ab060dc37e377e8142f77a29c2c09aa1b1 100644
--- a/settings/l10n/nl.json
+++ b/settings/l10n/nl.json
@@ -23,6 +23,7 @@
"You need to set your user email before being able to send test emails." : "Je moet je e-mailadres invoeren voordat je testberichten kunt versturen.",
"Invalid request" : "Ongeldige aanvraag",
"Invalid mail address" : "Ongeldig e-mailadres",
+ "No valid group selected" : "Geen geldige groep geselecteerd",
"A user with that name already exists." : "Er bestaat al een gebruiker met die naam.",
"Unable to create user." : "Kan gebruiker niet aanmaken.",
"Your %s account was created" : "Je %s account is aangemaakt",
@@ -37,9 +38,6 @@
"Email saved" : "E-mail opgeslagen",
"Password confirmation is required" : "Wachtwoordbevestiging vereist",
"Couldn't remove app." : "Kon app niet verwijderen.",
- "Admins can't remove themself from the admin group" : "Admins kunnen zichzelf niet uit de admin groep verwijderen",
- "Unable to add user to group %s" : "Niet in staat om gebruiker toe te voegen aan groep %s",
- "Unable to remove user from group %s" : "Niet in staat om gebruiker te verwijderen uit groep %s",
"Couldn't update app." : "Kon de app niet bijwerken.",
"Are you really sure you want add {domain} as trusted domain?" : "Bent u er zeker van om {domain} als vertrouwd domein toe te voegen?",
"Add trusted domain" : "Vertrouwd domein toevoegen",
@@ -56,7 +54,7 @@
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Officiële apps worden ontwikkeld door en binnen de community. Ze bieden centrale functionaliteit en zijn klaar voor productie.",
"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." : "Goedgekeurde apps zijn ontwikkeld door vertrouwde ontwikkelaars en hebben een beveiligingscontrole ondergaan. Ze worden actief onderhouden in een open code repository en hun ontwikkelaars vinden ze stabiel genoeg voor informeel of normaal gebruik.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Deze app is niet gecontroleerd op beveiligingsproblemen en is nieuw of staat bekend als onstabiel. Installeren op eigen risico.",
- "Please wait...." : "Even geduld a.u.b.",
+ "Enabling app …" : "Activeren app ...",
"Error while disabling app" : "Fout tijdens het uitzetten van de app",
"Disable" : "Uitschakelen",
"Enable" : "Activeer",
@@ -123,6 +121,8 @@
"undo" : "ongedaan maken",
"never" : "geen",
"deleted {userName}" : "verwijderd {userName}",
+ "Unable to add user to group {group}" : "Kan niet worden toegevoegd aan gebruikersgroep {group}",
+ "Unable to remove user from group {group}" : "Gebruiker kan niet worden verwijderd van groep {group}",
"Add group" : "Groep toevoegen",
"Invalid quota value \"{val}\"" : "Ongeldige quota waarde \"{val}\"",
"no group" : "geen groep",
@@ -245,7 +245,7 @@
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Deze app heeft geen maximum Nextcloud versie toegewezen gekregen. In de toekomst wordt dit wordt een fout.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Deze app kan niet worden geïnstalleerd, omdat de volgende afhankelijkheden niet zijn ingevuld:",
"Enable only for specific groups" : "Alleen voor bepaalde groepen activeren",
- "Uninstall App" : "De-installeren app",
+ "Uninstall app" : "De-installeren app",
"SSL Root Certificates" : "SSL Root Certificaten",
"Common Name" : "Common Name",
"Valid until" : "Geldig tot",
@@ -339,7 +339,11 @@
"Default" : "Standaard",
"log-level out of allowed range" : "loggingniveau buiten toegestane bereik",
"Language changed" : "Taal aangepast",
+ "Admins can't remove themself from the admin group" : "Admins kunnen zichzelf niet uit de admin groep verwijderen",
+ "Unable to add user to group %s" : "Niet in staat om gebruiker toe te voegen aan groep %s",
+ "Unable to remove user from group %s" : "Niet in staat om gebruiker te verwijderen uit groep %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Weet je zeker dat je \"{domain}\" als een vertrouwd domein wilt toevoegen?",
+ "Please wait...." : "Even geduld a.u.b.",
"iPhone" : "iPhone",
"add group" : "groep toevoegen",
"Everything (fatal issues, errors, warnings, info, debug)" : "Alles (fatale problemen, fouten, waarschuwingen, info, debug)",
@@ -359,6 +363,7 @@
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Vooral wanneer de desktop client wordt gebruik voor bestandssynchronisatie wordt gebruik van sqlite afgeraden.",
"Experimental applications ahead" : "Experimentele applicaties vooraan",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimentele apps zijn niet gecontroleerd op beveiligingsproblemen, zijn nieuw of staan bekend als instabiel en worden volop ontwikkeld. Installatie kan leiden tot gegevensverlies of beveiligingsincidenten.",
+ "Uninstall App" : "De-installeren app",
"Enable experimental apps" : "Inschakelen experimentele apps",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hallo daar,
we willen je laten weten dat je nu een %s account hebt.
Je gebruikersnaam: %s
Ga naar: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hallo,\n\nwe willen je laten weten dat je nu een %s account hebt.\n\nJe gebruikersnaam: %s\nGa naar: %s\n\n",
@@ -370,24 +375,6 @@
"Group Admin for" : "Groepsbeheerder voor",
"Storage Location" : "Opslaglocatie",
"User Backend" : "Backend gebruiker",
- "Last Login" : "Laatste inlog",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Externe opslag",
- "Updates" : "Updates",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "Officiële apps worden ontwikkeld door en binnen de Nextcloud community. Ze bieden cruciale functionaliteit voor Nextcloud en zijn klaar voor productie.",
- "No apps found for \"{query}\"" : "Geen apps gevonden voor {query}",
- "An error occurred: {message}" : "Er heeft zich een fout voorgedaan: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Lees de installatiedocumentatie ↗ voor php configuratienotities en de php configuratie van je server, zeker bij gebruik van php-fpm.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Je database draait niet met \"READ COMMITED\" transactie isolatie niveau. Dit kan problemen opleveren als er meerdere acties tegelijkertijd worden uitgevoerd.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Je server draait op Microsoft Windows. We adviseren je om een linux server te gebruiken voor een optimale gebruikerservaring.",
- "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 documentation ↗ for more information." : "Transactionele bestandlocking is gedeactiveerd, dat zou kunnen leiden tot versiebeheerproblemen. Schakel 'filelocking enabled' in config.php in om deze problemen te voorkomen. Zie de documentatie ↗ voor meer informatie.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Lees de installatiehandleiding ↗ goed door en controleer op fouten en waarschuwingen in de logging.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "Versleuteling alleen garandeert geen beveiliging van het systeem. Lees de Nextcloud documentatie voor meer achtergronden over de werking van de crypto app en de relevante use cases.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Om te migreren naar een andere database moet u de commandoregel tool gebruiken: 'occ db:convert-type', of lees de documentatie ↗.",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Deze app heeft geen minimum Nextcloud versie toegewezen gekregen. Dit wordt een fout in Nextcloud 11 en later.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Deze app heeft geen maximum Nextcloud versie toegewezen gekregen. Dit wordt een fout in Nextcloud 11 en later.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Als je dit project wilt ondersteunen\n\t\thelp mee met ontwikkelen\n\t\tof\n\t\thelp andere gebruikers!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Ontwikkeld door de {communityopen}Nextcloud community{linkclose}, de {githubopen}broncode{linkclose} is gelicenseerd onder de {licenseopen}AGPL{linkclose}."
+ "Last Login" : "Laatste inlog"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/nn_NO.js b/settings/l10n/nn_NO.js
index cef991514b199c2ab818673f438aee0188fa574d..a3715eaf4d8956f064d066927971ba6a113db491 100644
--- a/settings/l10n/nn_NO.js
+++ b/settings/l10n/nn_NO.js
@@ -10,12 +10,8 @@ OC.L10N.register(
"Email sent" : "E-post sendt",
"Invalid request" : "Ugyldig førespurnad",
"Email saved" : "E-postadresse lagra",
- "Admins can't remove themself from the admin group" : "Administratorar kan ikkje fjerna seg sjølve frå admin-gruppa",
- "Unable to add user to group %s" : "Klarte ikkje leggja til brukaren til gruppa %s",
- "Unable to remove user from group %s" : "Klarte ikkje fjerna brukaren frå gruppa %s",
"Couldn't update app." : "Klarte ikkje oppdatera programmet.",
"All" : "Alle",
- "Please wait...." : "Ver venleg og vent …",
"Error while disabling app" : "Klarte ikkje å skru av programmet",
"Disable" : "Slå av",
"Enable" : "Slå på",
@@ -73,6 +69,10 @@ OC.L10N.register(
"set new password" : "lag nytt passord",
"Default" : "Standard",
"Language changed" : "Språk endra",
+ "Admins can't remove themself from the admin group" : "Administratorar kan ikkje fjerna seg sjølve frå admin-gruppa",
+ "Unable to add user to group %s" : "Klarte ikkje leggja til brukaren til gruppa %s",
+ "Unable to remove user from group %s" : "Klarte ikkje fjerna brukaren frå gruppa %s",
+ "Please wait...." : "Ver venleg og vent …",
"Log" : "Logg",
"More" : "Meir",
"Less" : "Mindre",
diff --git a/settings/l10n/nn_NO.json b/settings/l10n/nn_NO.json
index 2872655fd16b3636d939e2fb7ac10074b9cff5a1..940aa42c3b1f59f3e9848ea72eb3292c858486db 100644
--- a/settings/l10n/nn_NO.json
+++ b/settings/l10n/nn_NO.json
@@ -8,12 +8,8 @@
"Email sent" : "E-post sendt",
"Invalid request" : "Ugyldig førespurnad",
"Email saved" : "E-postadresse lagra",
- "Admins can't remove themself from the admin group" : "Administratorar kan ikkje fjerna seg sjølve frå admin-gruppa",
- "Unable to add user to group %s" : "Klarte ikkje leggja til brukaren til gruppa %s",
- "Unable to remove user from group %s" : "Klarte ikkje fjerna brukaren frå gruppa %s",
"Couldn't update app." : "Klarte ikkje oppdatera programmet.",
"All" : "Alle",
- "Please wait...." : "Ver venleg og vent …",
"Error while disabling app" : "Klarte ikkje å skru av programmet",
"Disable" : "Slå av",
"Enable" : "Slå på",
@@ -71,6 +67,10 @@
"set new password" : "lag nytt passord",
"Default" : "Standard",
"Language changed" : "Språk endra",
+ "Admins can't remove themself from the admin group" : "Administratorar kan ikkje fjerna seg sjølve frå admin-gruppa",
+ "Unable to add user to group %s" : "Klarte ikkje leggja til brukaren til gruppa %s",
+ "Unable to remove user from group %s" : "Klarte ikkje fjerna brukaren frå gruppa %s",
+ "Please wait...." : "Ver venleg og vent …",
"Log" : "Logg",
"More" : "Meir",
"Less" : "Mindre",
diff --git a/settings/l10n/pl.js b/settings/l10n/pl.js
index daeb2258589d00ca2c2c3881a5275562489394e4..b746aadd750492f0b1f2cf885659de858409cbf9 100644
--- a/settings/l10n/pl.js
+++ b/settings/l10n/pl.js
@@ -19,6 +19,7 @@ OC.L10N.register(
"Unable to add group." : "Nie można dodać grupy.",
"Unable to delete group." : "Nie można usunąć grupy.",
"test email settings" : "przetestuj ustawienia email",
+ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Wystąpił błąd podczas wysyłania wiadomości e-mail. Proszę zmienić swoje ustawienia. (Error: %s)",
"Email sent" : "E-mail wysłany",
"You need to set your user email before being able to send test emails." : "Musisz najpierw ustawić użytkownika e-mail, aby móc wysyłać wiadomości testowe.",
"Invalid request" : "Nieprawidłowe żądanie",
@@ -27,17 +28,18 @@ OC.L10N.register(
"Unable to create user." : "Nie można utworzyć użytkownika.",
"Your %s account was created" : "Twoje konto %s zostało stworzone",
"Unable to delete user." : "Nie można usunąć użytkownika.",
+ "Settings saved" : "Ustawienia zachowane",
"Unable to change full name" : "Nie można zmienić pełnej nazwy",
+ "Unable to change email address" : "Nie można zmienić adresu e-mail",
"Your full name has been changed." : "Twoja pełna nazwa została zmieniona.",
"Forbidden" : "Zabronione",
"Invalid user" : "Nieprawidłowy użytkownik",
"Unable to change mail address" : "Nie można zmienić adresu email",
"Email saved" : "E-mail zapisany",
+ "Password confirmation is required" : "Wymagane jest potwierdzenie hasła",
"Couldn't remove app." : "Nie można usunąć aplikacji.",
- "Admins can't remove themself from the admin group" : "Administratorzy nie mogą usunąć siebie samych z grupy administratorów",
- "Unable to add user to group %s" : "Nie można dodać użytkownika do grupy %s",
- "Unable to remove user from group %s" : "Nie można usunąć użytkownika z grupy %s",
"Couldn't update app." : "Nie można uaktualnić aplikacji.",
+ "Are you really sure you want add {domain} as trusted domain?" : "Czy jesteś pewien/pewna że chcesz dodać \"{domain}\" jako zaufaną domenę?",
"Add trusted domain" : "Dodaj zaufaną domenę",
"Migration in progress. Please wait until the migration is finished" : "Trwa migracja. Proszę poczekać, aż migracja dobiegnie końca.",
"Migration started …" : "Migracja rozpoczęta...",
@@ -46,33 +48,43 @@ OC.L10N.register(
"Official" : "Oficjalny",
"All" : "Wszystkie",
"Update to %s" : "Uaktualnij do %s",
- "_You have %n app update pending_::_You have %n app updates pending_" : ["Masz %n oczekującą aktualizację aplikacji","Masz %n oczekujące aktualizacje aplikacji","Masz %n oczekujących aktualizacji aplikacji"],
+ "_You have %n app update pending_::_You have %n app updates pending_" : ["Masz %n oczekującą aktualizację aplikacji","Masz %n oczekujące aktualizacje aplikacji","Masz %n oczekujących aktualizacji aplikacji","Masz %n oczekujących aktualizacji aplikacji"],
"No apps found for your version" : "Nie znaleziono aplikacji dla twojej wersji",
- "Please wait...." : "Proszę czekać...",
+ "The app will be downloaded from the app store" : "Aplikacja zostanie pobrana z App Store",
"Error while disabling app" : "Błąd podczas wyłączania aplikacji",
"Disable" : "Wyłącz",
"Enable" : "Włącz",
"Error while enabling app" : "Błąd podczas włączania aplikacji",
+ "Error: this app cannot be enabled because it makes the server unstable" : "Błąd: ta aplikacja nie może być włączona, ponieważ sprawia, że serwer jest niestabilny",
+ "Error: could not disable broken app" : "Błąd: nie można wyłączyć zepsutą aplikację",
+ "Error while disabling broken app" : "Błąd podczas wyłączania zepsutej aplikacji",
"Updating...." : "Aktualizacja w toku...",
"Error while updating app" : "Błąd podczas aktualizacji aplikacji",
"Updated" : "Zaktualizowano",
"Uninstalling ...." : "Odinstalowywanie....",
"Error while uninstalling app" : "Błąd przy odinstalowywaniu aplikacji",
"Uninstall" : "Odinstaluj",
+ "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikacja została włączona i musi być aktualizowana. Zostaniesz przekierowany na stronę aktualizacji za 5 sekund.",
"App update" : "Aktualizacja aplikacji",
"Approved" : "Zatwierdzony",
"Experimental" : "Eksperymentalny",
+ "No apps found for {query}" : "Nie znaleziono aplikacji dla {query}",
+ "Allow filesystem access" : "Zezwalaj na dostęp do systemu plików",
"Disconnect" : "Odłącz",
+ "Revoke" : "Cofnij",
"Internet Explorer" : "Internet Explorer",
"Edge" : "Edge",
"Firefox" : "Firefox",
"Google Chrome" : "Google Chrome",
"Safari" : "Safari",
"Google Chrome for Android" : "Google Chrome dla Android",
+ "iPhone iOS" : "iPhone iOS",
+ "iPad iOS" : "iPad iOS",
"iOS Client" : "Klient iOS",
"Android Client" : "Klient Android",
"Sync client - {os}" : "Klient synchronizacji - {os}",
"This session" : "Ta sesja",
+ "Copy" : "Skopiuj",
"Copied!" : "Skopiowano!",
"Not supported!" : "Nieobsługiwany!",
"Press ⌘-C to copy." : "Wciśnij ⌘-C by skopiować.",
@@ -80,8 +92,17 @@ OC.L10N.register(
"Error while loading browser sessions and device tokens" : "Błąd podczas ładowania sesji przeglądarek i tokenów urządzeń",
"Error while creating device token" : "Błąd podczas tworzenia tokena urządzenia.",
"Error while deleting the token" : "Błąd podczas usuwania tokena.",
+ "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Wystąpił błąd. Proszę przesłać certyfikat PEM w kodowaniu ASCII.",
"Valid until {date}" : "Ważny do {date}",
"Delete" : "Usuń",
+ "Local" : "Lokalny",
+ "Private" : "Prywatny",
+ "Only visible to local users" : "Widoczne tylko dla użytkowników lokalnych",
+ "Only visible to you" : "Widoczne tylko dla Ciebie",
+ "Contacts" : "Kontakty",
+ "Visible to local users and to trusted servers" : "Widoczne dla lokalnych użytkowników i zaufanych serwerów",
+ "Public" : "Publiczny",
+ "Will be synced to a global and public address book" : "Będą zsynchronizowane z globalną i publiczną książką adresową",
"Select a profile picture" : "Wybierz zdjęcie profilu",
"Very weak password" : "Bardzo słabe hasło",
"Weak password" : "Słabe hasło",
@@ -97,9 +118,11 @@ OC.L10N.register(
"never" : "nigdy",
"deleted {userName}" : "usunięto {userName}",
"Add group" : "Dodaj grupę",
+ "Invalid quota value \"{val}\"" : "Nieprawidłowa wartość quota \"{val}\"",
"no group" : "brak grupy",
"Password successfully changed" : "Zmiana hasła udana.",
"Changing the password will result in data loss, because data recovery is not available for this user" : "Zmiana hasła spowoduje utratę danych, ponieważ odzyskiwanie danych nie jest włączone dla tego użytkownika",
+ "Could not change the users email" : "Nie można zmienić adresu e-mail użytkowników",
"A valid username must be provided" : "Należy podać prawidłową nazwę użytkownika",
"Error creating user: {message}" : "Błąd podczas tworzenia użytkownika: {message}",
"A valid password must be provided" : "Należy podać prawidłowe hasło",
@@ -135,10 +158,13 @@ OC.L10N.register(
"Send email" : "Wyślij email",
"Server-side encryption" : "Szyfrowanie po stronie serwera",
"Enable server-side encryption" : "Włącz szyfrowanie po stronie serwera",
+ "Please read carefully before activating server-side encryption: " : "Proszę przeczytać uważnie przed aktywowaniem szyfrowania po stronie serwera:",
"Be aware that encryption always increases the file size." : "Należy pamiętać, że szyfrowanie zawsze zwiększa rozmiar pliku.",
"This is the final warning: Do you really want to enable encryption?" : "To ostatnie ostrzeżenie: Czy na pewno chcesz włączyć szyfrowanie?",
"Enable encryption" : "Włącz szyfrowanie",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Moduł szyfrowania nie jest załadowany, należy włączyć moduł szyfrowania w menu aplikacji.",
"Select default encryption module:" : "Wybierz domyślny moduł szyfrujący:",
+ "Start migration" : "Rozpocznij migrację",
"Security & setup warnings" : "Ostrzeżenia bezpieczeństwa i konfiguracji",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Wygląda na to, że ustawienia PHP ucinają bloki wklejonych dokumentów. To sprawi, że niektóre wbudowane aplikacje będą niedostępne.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dzieje się tak prawdopodobnie przez cache lub akcelerator taki jak Zend OPcache lub eAccelerator.",
@@ -146,6 +172,8 @@ OC.L10N.register(
"System locale can not be set to a one which supports UTF-8." : "Ustawienia regionalne systemu nie można ustawić na jeden, który obsługuje UTF-8.",
"This means that there might be problems with certain characters in file names." : "Oznacza to, że mogą być problemy z niektórymi znakami w nazwach plików.",
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Zalecamy instalację na Twoim systemie komponentów wymaganych do obsługi języków: %s",
+ "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Nie było możliwe do wykonania przez cron CLI. Pojawiły się następujące błędy techniczne:",
+ "All checks passed." : "Wszystkie testy przeszły poprawnie.",
"Cron" : "Cron",
"Last cron job execution: %s." : "Ostatnie wykonanie zadania przez cron: %s.",
"Last cron job execution: %s. Something seems wrong." : "Ostatnie wykonanie zadania przez cron: %s. Wydaje się być błędny.",
@@ -153,6 +181,7 @@ OC.L10N.register(
"Execute one task with each page loaded" : "Wykonuj jedno zadanie wraz z każdą wczytaną stroną",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php jest zarejestrowany w serwisie webcron do uruchamiania cron.php raz na 15 minut przez http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Użyj systemowej usługi cron do wywoływania cron.php co 15 minut.",
+ "The cron.php needs to be executed by the system user \"%s\"." : "Cron.php musi być wykonywany przez użytkownika systemu \"%s\".",
"Version" : "Wersja",
"Sharing" : "Udostępnianie",
"Allow apps to use the Share API" : "Zezwalaj aplikacjom na korzystanie z API udostępniania",
@@ -170,6 +199,7 @@ OC.L10N.register(
"These groups will still be able to receive shares, but not to initiate them." : "Grupy te nadal będą mogli otrzymywać udostępnione udziały, ale nie do ich inicjowania.",
"Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Pozwól użytkownikowi na autouzupełnianie w oknie użytkownika. Jeśli ta opcja jest wyłączona, to pełna nazwa musi być wprowadzona.",
"Tips & tricks" : "Porady i wskazówki",
+ "This is particularly recommended when using the desktop client for file synchronisation." : "Jest to szczególnie zalecane w przypadku korzystania z desktopowego klienta do synchronizacji plików.",
"How to do backups" : "Jak zrobić kopie zapasowe",
"Advanced monitoring" : "Zaawansowane monitorowanie",
"Performance tuning" : "Podnoszenie wydajności",
@@ -177,6 +207,7 @@ OC.L10N.register(
"Theming" : "Motyw",
"Hardening and security guidance" : "Kierowanie i wzmacnianie bezpieczeństwa",
"Developer documentation" : "Dokumentacja dewelopera",
+ "by %s" : "przez %s",
"Documentation:" : "Dokumentacja:",
"User documentation" : "Dokumentacja użytkownika",
"Admin documentation" : "Dokumentacja Administratora",
@@ -185,9 +216,10 @@ OC.L10N.register(
"Show description …" : "Pokaż opis ...",
"Hide description …" : "Ukryj opis ...",
"This app has an update available." : "Ta aplikacja ma dostępną aktualizację.",
+ "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ta aplikacja nie ma przypisanej minimalnej wersji Nextcloud. W przyszłości będzie to błąd.",
+ "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ta aplikacja nie ma przypisanej maksymalnej wersji Nextcloud. W przyszłości będzie to błąd.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Ta aplikacja nie może być zainstalowana, ponieważ nie są spełnione następujące zależności:",
"Enable only for specific groups" : "Włącz tylko dla określonych grup",
- "Uninstall App" : "Odinstaluj aplikację",
"Common Name" : "Nazwa CN",
"Valid until" : "Ważny do",
"Issued By" : "Wydany przez",
@@ -197,6 +229,7 @@ OC.L10N.register(
"Administrator documentation" : "Dokumentacja Administratora",
"Online documentation" : "Dokumentacja Online",
"Forum" : "Forum",
+ "Getting help" : "Otrzymać pomoc",
"Commercial support" : "Wsparcie komercyjne",
"You are using %s of %s" : "Używasz %s z %s",
"Profile picture" : "Zdjęcie profilu",
@@ -204,6 +237,7 @@ OC.L10N.register(
"Select from Files" : "Wybierz z Plików",
"Remove image" : "Usuń zdjęcie",
"png or jpg, max. 20 MB" : "png lub jpg, maks. 20 MB",
+ "Picture provided by original account" : "Zdjęcie dostarczone przez oryginalne konto",
"Cancel" : "Anuluj",
"Choose as profile picture" : "Wybierz zdjęcie profilu",
"Full name" : "Pełna nazwa",
@@ -212,6 +246,13 @@ OC.L10N.register(
"Your email address" : "Twój adres e-mail",
"No email address set" : "Brak adresu email",
"For password recovery and notifications" : "W celu odzyskania hasła i powiadomień",
+ "Phone number" : "Numer telefonu",
+ "Your phone number" : "Twój numer telefonu",
+ "Address" : "Adres",
+ "Your postal address" : "Twój kod pocztowy",
+ "Website" : "Strona WWW",
+ "Your website" : "Twoja strona WWW",
+ "Twitter" : "Twitter",
"You are member of the following groups:" : "Jesteś członkiem następujących grup:",
"Password" : "Hasło",
"Current password" : "Bieżące hasło",
@@ -232,10 +273,14 @@ OC.L10N.register(
"App name" : "Nazwa aplikacji",
"Create new app password" : "Utwórz nowe hasło do aplikacji",
"Use the credentials below to configure your app or device." : "Skonfiguruj aplikację lub urządzenie, aby skorzystać z poniższego poświadczenia.",
+ "For security reasons this password will only be shown once." : "Ze względów bezpieczeństwa hasło zostanie pokazane tylko raz.",
"Username" : "Nazwa użytkownika",
"Done" : "Ukończono",
"Follow us on Google Plus!" : "Śledź nas na Google Plus!",
"Like our facebook page!" : "Polub naszą stronę na Facebook!",
+ "Subscribe to our twitter channel!" : "Zapisz się do naszego kanału na Twitterze!",
+ "Subscribe to our news feed!" : "Zapisz się do naszego kanału informacyjnego!",
+ "Subscribe to our newsletter!" : "Zapisz się do naszego newslettera!",
"Show storage location" : "Pokaż miejsce przechowywania",
"Show last log in" : "Pokaż ostatni login",
"Show user backend" : "Pokaż moduł użytkownika",
@@ -245,6 +290,7 @@ 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",
"Default quota" : "Domyślny udział",
@@ -253,6 +299,7 @@ OC.L10N.register(
"Group admin for" : "Grupa admin dla",
"Quota" : "Udział",
"Storage location" : "Lokalizacja magazynu",
+ "User backend" : "Moduł użytkownika",
"Last login" : "Ostatnio zalogowany",
"change full name" : "Zmień pełna nazwę",
"set new password" : "ustaw nowe hasło",
@@ -260,7 +307,11 @@ OC.L10N.register(
"Default" : "Domyślny",
"log-level out of allowed range" : "wartość log-level spoza dozwolonego zakresu",
"Language changed" : "Zmieniono język",
+ "Admins can't remove themself from the admin group" : "Administratorzy nie mogą usunąć siebie samych z grupy administratorów",
+ "Unable to add user to group %s" : "Nie można dodać użytkownika do grupy %s",
+ "Unable to remove user from group %s" : "Nie można usunąć użytkownika z grupy %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Czy jesteś pewien/pewna że chcesz dodać \"{domain}\" jako zaufaną domenę?",
+ "Please wait...." : "Proszę czekać...",
"iPhone" : "iPhone",
"add group" : "dodaj grupę",
"Everything (fatal issues, errors, warnings, info, debug)" : "Wszystko (Informacje, ostrzeżenia, błędy i poważne problemy, debug)",
@@ -276,6 +327,7 @@ OC.L10N.register(
"The logfile is bigger than 100 MB. Downloading it may take some time!" : "Plik log jest większy niż 100MB. Ściąganie może trochę potrwać!",
"Allow users to send mail notification for shared files" : "Zezwól użytkownikom na wysyłanie powiadomień email dla udostępnionych plików",
"Allow users to send mail notification for shared files to other users" : "Zezwalaj użytkownikom na wysyłanie powiadomień pocztą dla współdzielonych plików do innych użytkowników",
+ "Uninstall App" : "Odinstaluj aplikację",
"Enable experimental apps" : "Włącz eksperymentalne aplikacje",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Witaj,
informujemy, że teraz masz konto na %s .
Twoja nazwa użytkownika: %s
Dostęp pod adresem: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Witaj,\n\ninformujemy, że teraz masz konto na %s .\n\nTwoja nazwa użytkownika:: %s\nDostęp pod adresem: %s\n\n",
@@ -283,13 +335,9 @@ OC.L10N.register(
"Group" : "Grupa",
"Default Quota" : "Domyślny udział",
"Full Name" : "Pełna nazwa",
+ "Group Admin for" : "Grupa Admin dla",
"Storage Location" : "Lokalizacja magazynu",
- "Last Login" : "Ostatnio zalogowany",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Zewnętrzna zasoby dyskowe",
- "Updates" : "Aktualizacje",
- "An error occurred: {message}" : "Wystąpił błąd: {message}",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Twój serwer działa na platformie Windows. Zalecamy Linuxa dla optymalnych doświadczeń użytkownika."
+ "User Backend" : "Moduł użytkownika",
+ "Last Login" : "Ostatnio zalogowany"
},
"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/settings/l10n/pl.json b/settings/l10n/pl.json
index 035dcea7514f87bef77ed0f430abb8add2027286..e060b28d5ed087455b97be9beee4acabf64e7b1d 100644
--- a/settings/l10n/pl.json
+++ b/settings/l10n/pl.json
@@ -17,6 +17,7 @@
"Unable to add group." : "Nie można dodać grupy.",
"Unable to delete group." : "Nie można usunąć grupy.",
"test email settings" : "przetestuj ustawienia email",
+ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Wystąpił błąd podczas wysyłania wiadomości e-mail. Proszę zmienić swoje ustawienia. (Error: %s)",
"Email sent" : "E-mail wysłany",
"You need to set your user email before being able to send test emails." : "Musisz najpierw ustawić użytkownika e-mail, aby móc wysyłać wiadomości testowe.",
"Invalid request" : "Nieprawidłowe żądanie",
@@ -25,17 +26,18 @@
"Unable to create user." : "Nie można utworzyć użytkownika.",
"Your %s account was created" : "Twoje konto %s zostało stworzone",
"Unable to delete user." : "Nie można usunąć użytkownika.",
+ "Settings saved" : "Ustawienia zachowane",
"Unable to change full name" : "Nie można zmienić pełnej nazwy",
+ "Unable to change email address" : "Nie można zmienić adresu e-mail",
"Your full name has been changed." : "Twoja pełna nazwa została zmieniona.",
"Forbidden" : "Zabronione",
"Invalid user" : "Nieprawidłowy użytkownik",
"Unable to change mail address" : "Nie można zmienić adresu email",
"Email saved" : "E-mail zapisany",
+ "Password confirmation is required" : "Wymagane jest potwierdzenie hasła",
"Couldn't remove app." : "Nie można usunąć aplikacji.",
- "Admins can't remove themself from the admin group" : "Administratorzy nie mogą usunąć siebie samych z grupy administratorów",
- "Unable to add user to group %s" : "Nie można dodać użytkownika do grupy %s",
- "Unable to remove user from group %s" : "Nie można usunąć użytkownika z grupy %s",
"Couldn't update app." : "Nie można uaktualnić aplikacji.",
+ "Are you really sure you want add {domain} as trusted domain?" : "Czy jesteś pewien/pewna że chcesz dodać \"{domain}\" jako zaufaną domenę?",
"Add trusted domain" : "Dodaj zaufaną domenę",
"Migration in progress. Please wait until the migration is finished" : "Trwa migracja. Proszę poczekać, aż migracja dobiegnie końca.",
"Migration started …" : "Migracja rozpoczęta...",
@@ -44,33 +46,43 @@
"Official" : "Oficjalny",
"All" : "Wszystkie",
"Update to %s" : "Uaktualnij do %s",
- "_You have %n app update pending_::_You have %n app updates pending_" : ["Masz %n oczekującą aktualizację aplikacji","Masz %n oczekujące aktualizacje aplikacji","Masz %n oczekujących aktualizacji aplikacji"],
+ "_You have %n app update pending_::_You have %n app updates pending_" : ["Masz %n oczekującą aktualizację aplikacji","Masz %n oczekujące aktualizacje aplikacji","Masz %n oczekujących aktualizacji aplikacji","Masz %n oczekujących aktualizacji aplikacji"],
"No apps found for your version" : "Nie znaleziono aplikacji dla twojej wersji",
- "Please wait...." : "Proszę czekać...",
+ "The app will be downloaded from the app store" : "Aplikacja zostanie pobrana z App Store",
"Error while disabling app" : "Błąd podczas wyłączania aplikacji",
"Disable" : "Wyłącz",
"Enable" : "Włącz",
"Error while enabling app" : "Błąd podczas włączania aplikacji",
+ "Error: this app cannot be enabled because it makes the server unstable" : "Błąd: ta aplikacja nie może być włączona, ponieważ sprawia, że serwer jest niestabilny",
+ "Error: could not disable broken app" : "Błąd: nie można wyłączyć zepsutą aplikację",
+ "Error while disabling broken app" : "Błąd podczas wyłączania zepsutej aplikacji",
"Updating...." : "Aktualizacja w toku...",
"Error while updating app" : "Błąd podczas aktualizacji aplikacji",
"Updated" : "Zaktualizowano",
"Uninstalling ...." : "Odinstalowywanie....",
"Error while uninstalling app" : "Błąd przy odinstalowywaniu aplikacji",
"Uninstall" : "Odinstaluj",
+ "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Aplikacja została włączona i musi być aktualizowana. Zostaniesz przekierowany na stronę aktualizacji za 5 sekund.",
"App update" : "Aktualizacja aplikacji",
"Approved" : "Zatwierdzony",
"Experimental" : "Eksperymentalny",
+ "No apps found for {query}" : "Nie znaleziono aplikacji dla {query}",
+ "Allow filesystem access" : "Zezwalaj na dostęp do systemu plików",
"Disconnect" : "Odłącz",
+ "Revoke" : "Cofnij",
"Internet Explorer" : "Internet Explorer",
"Edge" : "Edge",
"Firefox" : "Firefox",
"Google Chrome" : "Google Chrome",
"Safari" : "Safari",
"Google Chrome for Android" : "Google Chrome dla Android",
+ "iPhone iOS" : "iPhone iOS",
+ "iPad iOS" : "iPad iOS",
"iOS Client" : "Klient iOS",
"Android Client" : "Klient Android",
"Sync client - {os}" : "Klient synchronizacji - {os}",
"This session" : "Ta sesja",
+ "Copy" : "Skopiuj",
"Copied!" : "Skopiowano!",
"Not supported!" : "Nieobsługiwany!",
"Press ⌘-C to copy." : "Wciśnij ⌘-C by skopiować.",
@@ -78,8 +90,17 @@
"Error while loading browser sessions and device tokens" : "Błąd podczas ładowania sesji przeglądarek i tokenów urządzeń",
"Error while creating device token" : "Błąd podczas tworzenia tokena urządzenia.",
"Error while deleting the token" : "Błąd podczas usuwania tokena.",
+ "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Wystąpił błąd. Proszę przesłać certyfikat PEM w kodowaniu ASCII.",
"Valid until {date}" : "Ważny do {date}",
"Delete" : "Usuń",
+ "Local" : "Lokalny",
+ "Private" : "Prywatny",
+ "Only visible to local users" : "Widoczne tylko dla użytkowników lokalnych",
+ "Only visible to you" : "Widoczne tylko dla Ciebie",
+ "Contacts" : "Kontakty",
+ "Visible to local users and to trusted servers" : "Widoczne dla lokalnych użytkowników i zaufanych serwerów",
+ "Public" : "Publiczny",
+ "Will be synced to a global and public address book" : "Będą zsynchronizowane z globalną i publiczną książką adresową",
"Select a profile picture" : "Wybierz zdjęcie profilu",
"Very weak password" : "Bardzo słabe hasło",
"Weak password" : "Słabe hasło",
@@ -95,9 +116,11 @@
"never" : "nigdy",
"deleted {userName}" : "usunięto {userName}",
"Add group" : "Dodaj grupę",
+ "Invalid quota value \"{val}\"" : "Nieprawidłowa wartość quota \"{val}\"",
"no group" : "brak grupy",
"Password successfully changed" : "Zmiana hasła udana.",
"Changing the password will result in data loss, because data recovery is not available for this user" : "Zmiana hasła spowoduje utratę danych, ponieważ odzyskiwanie danych nie jest włączone dla tego użytkownika",
+ "Could not change the users email" : "Nie można zmienić adresu e-mail użytkowników",
"A valid username must be provided" : "Należy podać prawidłową nazwę użytkownika",
"Error creating user: {message}" : "Błąd podczas tworzenia użytkownika: {message}",
"A valid password must be provided" : "Należy podać prawidłowe hasło",
@@ -133,10 +156,13 @@
"Send email" : "Wyślij email",
"Server-side encryption" : "Szyfrowanie po stronie serwera",
"Enable server-side encryption" : "Włącz szyfrowanie po stronie serwera",
+ "Please read carefully before activating server-side encryption: " : "Proszę przeczytać uważnie przed aktywowaniem szyfrowania po stronie serwera:",
"Be aware that encryption always increases the file size." : "Należy pamiętać, że szyfrowanie zawsze zwiększa rozmiar pliku.",
"This is the final warning: Do you really want to enable encryption?" : "To ostatnie ostrzeżenie: Czy na pewno chcesz włączyć szyfrowanie?",
"Enable encryption" : "Włącz szyfrowanie",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Moduł szyfrowania nie jest załadowany, należy włączyć moduł szyfrowania w menu aplikacji.",
"Select default encryption module:" : "Wybierz domyślny moduł szyfrujący:",
+ "Start migration" : "Rozpocznij migrację",
"Security & setup warnings" : "Ostrzeżenia bezpieczeństwa i konfiguracji",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Wygląda na to, że ustawienia PHP ucinają bloki wklejonych dokumentów. To sprawi, że niektóre wbudowane aplikacje będą niedostępne.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Dzieje się tak prawdopodobnie przez cache lub akcelerator taki jak Zend OPcache lub eAccelerator.",
@@ -144,6 +170,8 @@
"System locale can not be set to a one which supports UTF-8." : "Ustawienia regionalne systemu nie można ustawić na jeden, który obsługuje UTF-8.",
"This means that there might be problems with certain characters in file names." : "Oznacza to, że mogą być problemy z niektórymi znakami w nazwach plików.",
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Zalecamy instalację na Twoim systemie komponentów wymaganych do obsługi języków: %s",
+ "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Nie było możliwe do wykonania przez cron CLI. Pojawiły się następujące błędy techniczne:",
+ "All checks passed." : "Wszystkie testy przeszły poprawnie.",
"Cron" : "Cron",
"Last cron job execution: %s." : "Ostatnie wykonanie zadania przez cron: %s.",
"Last cron job execution: %s. Something seems wrong." : "Ostatnie wykonanie zadania przez cron: %s. Wydaje się być błędny.",
@@ -151,6 +179,7 @@
"Execute one task with each page loaded" : "Wykonuj jedno zadanie wraz z każdą wczytaną stroną",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php jest zarejestrowany w serwisie webcron do uruchamiania cron.php raz na 15 minut przez http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Użyj systemowej usługi cron do wywoływania cron.php co 15 minut.",
+ "The cron.php needs to be executed by the system user \"%s\"." : "Cron.php musi być wykonywany przez użytkownika systemu \"%s\".",
"Version" : "Wersja",
"Sharing" : "Udostępnianie",
"Allow apps to use the Share API" : "Zezwalaj aplikacjom na korzystanie z API udostępniania",
@@ -168,6 +197,7 @@
"These groups will still be able to receive shares, but not to initiate them." : "Grupy te nadal będą mogli otrzymywać udostępnione udziały, ale nie do ich inicjowania.",
"Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Pozwól użytkownikowi na autouzupełnianie w oknie użytkownika. Jeśli ta opcja jest wyłączona, to pełna nazwa musi być wprowadzona.",
"Tips & tricks" : "Porady i wskazówki",
+ "This is particularly recommended when using the desktop client for file synchronisation." : "Jest to szczególnie zalecane w przypadku korzystania z desktopowego klienta do synchronizacji plików.",
"How to do backups" : "Jak zrobić kopie zapasowe",
"Advanced monitoring" : "Zaawansowane monitorowanie",
"Performance tuning" : "Podnoszenie wydajności",
@@ -175,6 +205,7 @@
"Theming" : "Motyw",
"Hardening and security guidance" : "Kierowanie i wzmacnianie bezpieczeństwa",
"Developer documentation" : "Dokumentacja dewelopera",
+ "by %s" : "przez %s",
"Documentation:" : "Dokumentacja:",
"User documentation" : "Dokumentacja użytkownika",
"Admin documentation" : "Dokumentacja Administratora",
@@ -183,9 +214,10 @@
"Show description …" : "Pokaż opis ...",
"Hide description …" : "Ukryj opis ...",
"This app has an update available." : "Ta aplikacja ma dostępną aktualizację.",
+ "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ta aplikacja nie ma przypisanej minimalnej wersji Nextcloud. W przyszłości będzie to błąd.",
+ "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ta aplikacja nie ma przypisanej maksymalnej wersji Nextcloud. W przyszłości będzie to błąd.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Ta aplikacja nie może być zainstalowana, ponieważ nie są spełnione następujące zależności:",
"Enable only for specific groups" : "Włącz tylko dla określonych grup",
- "Uninstall App" : "Odinstaluj aplikację",
"Common Name" : "Nazwa CN",
"Valid until" : "Ważny do",
"Issued By" : "Wydany przez",
@@ -195,6 +227,7 @@
"Administrator documentation" : "Dokumentacja Administratora",
"Online documentation" : "Dokumentacja Online",
"Forum" : "Forum",
+ "Getting help" : "Otrzymać pomoc",
"Commercial support" : "Wsparcie komercyjne",
"You are using %s of %s" : "Używasz %s z %s",
"Profile picture" : "Zdjęcie profilu",
@@ -202,6 +235,7 @@
"Select from Files" : "Wybierz z Plików",
"Remove image" : "Usuń zdjęcie",
"png or jpg, max. 20 MB" : "png lub jpg, maks. 20 MB",
+ "Picture provided by original account" : "Zdjęcie dostarczone przez oryginalne konto",
"Cancel" : "Anuluj",
"Choose as profile picture" : "Wybierz zdjęcie profilu",
"Full name" : "Pełna nazwa",
@@ -210,6 +244,13 @@
"Your email address" : "Twój adres e-mail",
"No email address set" : "Brak adresu email",
"For password recovery and notifications" : "W celu odzyskania hasła i powiadomień",
+ "Phone number" : "Numer telefonu",
+ "Your phone number" : "Twój numer telefonu",
+ "Address" : "Adres",
+ "Your postal address" : "Twój kod pocztowy",
+ "Website" : "Strona WWW",
+ "Your website" : "Twoja strona WWW",
+ "Twitter" : "Twitter",
"You are member of the following groups:" : "Jesteś członkiem następujących grup:",
"Password" : "Hasło",
"Current password" : "Bieżące hasło",
@@ -230,10 +271,14 @@
"App name" : "Nazwa aplikacji",
"Create new app password" : "Utwórz nowe hasło do aplikacji",
"Use the credentials below to configure your app or device." : "Skonfiguruj aplikację lub urządzenie, aby skorzystać z poniższego poświadczenia.",
+ "For security reasons this password will only be shown once." : "Ze względów bezpieczeństwa hasło zostanie pokazane tylko raz.",
"Username" : "Nazwa użytkownika",
"Done" : "Ukończono",
"Follow us on Google Plus!" : "Śledź nas na Google Plus!",
"Like our facebook page!" : "Polub naszą stronę na Facebook!",
+ "Subscribe to our twitter channel!" : "Zapisz się do naszego kanału na Twitterze!",
+ "Subscribe to our news feed!" : "Zapisz się do naszego kanału informacyjnego!",
+ "Subscribe to our newsletter!" : "Zapisz się do naszego newslettera!",
"Show storage location" : "Pokaż miejsce przechowywania",
"Show last log in" : "Pokaż ostatni login",
"Show user backend" : "Pokaż moduł użytkownika",
@@ -243,6 +288,7 @@
"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",
"Default quota" : "Domyślny udział",
@@ -251,6 +297,7 @@
"Group admin for" : "Grupa admin dla",
"Quota" : "Udział",
"Storage location" : "Lokalizacja magazynu",
+ "User backend" : "Moduł użytkownika",
"Last login" : "Ostatnio zalogowany",
"change full name" : "Zmień pełna nazwę",
"set new password" : "ustaw nowe hasło",
@@ -258,7 +305,11 @@
"Default" : "Domyślny",
"log-level out of allowed range" : "wartość log-level spoza dozwolonego zakresu",
"Language changed" : "Zmieniono język",
+ "Admins can't remove themself from the admin group" : "Administratorzy nie mogą usunąć siebie samych z grupy administratorów",
+ "Unable to add user to group %s" : "Nie można dodać użytkownika do grupy %s",
+ "Unable to remove user from group %s" : "Nie można usunąć użytkownika z grupy %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Czy jesteś pewien/pewna że chcesz dodać \"{domain}\" jako zaufaną domenę?",
+ "Please wait...." : "Proszę czekać...",
"iPhone" : "iPhone",
"add group" : "dodaj grupę",
"Everything (fatal issues, errors, warnings, info, debug)" : "Wszystko (Informacje, ostrzeżenia, błędy i poważne problemy, debug)",
@@ -274,6 +325,7 @@
"The logfile is bigger than 100 MB. Downloading it may take some time!" : "Plik log jest większy niż 100MB. Ściąganie może trochę potrwać!",
"Allow users to send mail notification for shared files" : "Zezwól użytkownikom na wysyłanie powiadomień email dla udostępnionych plików",
"Allow users to send mail notification for shared files to other users" : "Zezwalaj użytkownikom na wysyłanie powiadomień pocztą dla współdzielonych plików do innych użytkowników",
+ "Uninstall App" : "Odinstaluj aplikację",
"Enable experimental apps" : "Włącz eksperymentalne aplikacje",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Witaj,
informujemy, że teraz masz konto na %s .
Twoja nazwa użytkownika: %s
Dostęp pod adresem: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Witaj,\n\ninformujemy, że teraz masz konto na %s .\n\nTwoja nazwa użytkownika:: %s\nDostęp pod adresem: %s\n\n",
@@ -281,13 +333,9 @@
"Group" : "Grupa",
"Default Quota" : "Domyślny udział",
"Full Name" : "Pełna nazwa",
+ "Group Admin for" : "Grupa Admin dla",
"Storage Location" : "Lokalizacja magazynu",
- "Last Login" : "Ostatnio zalogowany",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Zewnętrzna zasoby dyskowe",
- "Updates" : "Aktualizacje",
- "An error occurred: {message}" : "Wystąpił błąd: {message}",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "Twój serwer działa na platformie Windows. Zalecamy Linuxa dla optymalnych doświadczeń użytkownika."
+ "User Backend" : "Moduł użytkownika",
+ "Last Login" : "Ostatnio zalogowany"
},"pluralForm" :"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
}
\ No newline at end of file
diff --git a/settings/l10n/pt_BR.js b/settings/l10n/pt_BR.js
index ce8433c25b7efdcbaacf9e60b6c71b6875691548..e7a42c40addb2c0df492bea00eb7473e9d606b0c 100644
--- a/settings/l10n/pt_BR.js
+++ b/settings/l10n/pt_BR.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"You need to set your user email before being able to send test emails." : "Você precisa configurar seu e-mail de usuário antes de ser capaz de enviar e-mails de teste.",
"Invalid request" : "Pedido inválido",
"Invalid mail address" : "Endereço de e-mail inválido",
+ "No valid group selected" : "Nenhum grupo válido foi selecionado",
"A user with that name already exists." : "Um usuário com esse nome já existe.",
"Unable to create user." : "Não é possível criar usuário.",
"Your %s account was created" : "Sua conta %s foi criada",
@@ -39,9 +40,6 @@ OC.L10N.register(
"Email saved" : "E-mail salvo",
"Password confirmation is required" : "A confirmação da senha é necessária",
"Couldn't remove app." : "Não foi possível remover aplicativos.",
- "Admins can't remove themself from the admin group" : "Administradores não pode remover a si mesmos do grupo de administração",
- "Unable to add user to group %s" : "Não foi possível adicionar usuário ao grupo %s",
- "Unable to remove user from group %s" : "Não foi possível remover usuário do grupo %s",
"Couldn't update app." : "Não foi possível atualizar a app.",
"Are you really sure you want add {domain} as trusted domain?" : "Tem certeza que deseja adicionar {domain} como um domínio confiável",
"Add trusted domain" : "Adicionar domínio confiável",
@@ -58,7 +56,7 @@ OC.L10N.register(
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Aplicativos oficiais são desenvolvidos pela comunidade e dentro da comunidade. Eles oferecem funcionalidades centrais e estão prontos para uso em produção.",
"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." : "Aplicativos aprovados são desenvolvidos pelos desenvolvedores confiáveis e passaram por uma verificação de segurança superficial. Eles são ativamente mantidos em um repositório de código aberto e seus mantenedores consideram que eles para sejam estáveis para um casual uso normal.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Este aplicativo não foi verificado para as questões de segurança e é novo ou conhecido por ser instável. Instale por seu próprio risco.",
- "Please wait...." : "Por favor, aguarde...",
+ "Enabling app …" : "Ativando app ...",
"Error while disabling app" : "Erro enquanto desabilitava o aplicativo",
"Disable" : "Desabilitar",
"Enable" : "Habilitar",
@@ -125,6 +123,8 @@ OC.L10N.register(
"undo" : "desfazer",
"never" : "nunca",
"deleted {userName}" : "eliminado {userName}",
+ "Unable to add user to group {group}" : "Não é possível adicionar usuário ao grupo {group}",
+ "Unable to remove user from group {group}" : "Não é possível remover usuário do grupo {group}",
"Add group" : "Adicionar grupo",
"Invalid quota value \"{val}\"" : "Valor da quota inválido \"{val}\"",
"no group" : "nenhum grupo",
@@ -247,7 +247,7 @@ OC.L10N.register(
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Este aplicativo não possui versão máxima atribuida para uso no Nextcloud. Isto poderá se converter em um erro no futuro.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Este aplicativo não pode ser instalado porque as seguintes dependências não forão cumpridas:",
"Enable only for specific groups" : "Ativar apenas para grupos específicos",
- "Uninstall App" : "Desinstalar Aplicativo",
+ "Uninstall app" : "Desinstalando app",
"SSL Root Certificates" : "Certificados Raiz SSL",
"Common Name" : "Nome",
"Valid until" : "Válido até",
@@ -341,7 +341,11 @@ OC.L10N.register(
"Default" : "Padrão",
"log-level out of allowed range" : "log-nível acima do permitido",
"Language changed" : "Idioma alterado",
+ "Admins can't remove themself from the admin group" : "Administradores não pode remover a si mesmos do grupo de administração",
+ "Unable to add user to group %s" : "Não foi possível adicionar usuário ao grupo %s",
+ "Unable to remove user from group %s" : "Não foi possível remover usuário do grupo %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Deseja realemente adicionar \"{domain}\" como domínio confiável?",
+ "Please wait...." : "Por favor, aguarde...",
"iPhone" : "iPhone",
"add group" : "adicionar grupo",
"Everything (fatal issues, errors, warnings, info, debug)" : "Tudo (questões fatais, erros, avisos, informações, depuração)",
@@ -361,6 +365,7 @@ OC.L10N.register(
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Especialmente quando se utiliza o cliente de desktop para sincronização de arquivos o uso de SQLite é desencorajado.",
"Experimental applications ahead" : "Aplicações experimentais à frente",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Aplicativos experimentais não são marcados por questões de segurança, por serem novos ou conhecidos como instáveis e sob forte desenvolvimento. Instalá-los pode causar perda de dados ou falhas de segurança.",
+ "Uninstall App" : "Desinstalar Aplicativo",
"Enable experimental apps" : "Habilitar aplicativos experimentais",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Olá,
somente para lembrar que agora você tem uma conta %s.
Seu nome de usuário é: %s
Acesse em: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Olá,\n\nsomente para lembrar que agora você tem uma conta %s.\n\nSeu nome de usuário é: %s\nAcesse em: %s\n\n",
@@ -372,24 +377,6 @@ OC.L10N.register(
"Group Admin for" : "Grupo Admin para",
"Storage Location" : "Local de Armazenamento",
"User Backend" : "Administrador do Usuário",
- "Last Login" : "Último Login",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Armazenamento externo",
- "Updates" : "Atualizações",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "Aplicativos oficiais são desenvolvidos por e dentro da comunidade Nextcloud. Eles oferecem funcionalidade central para Nextcloud e está pronto para uso em produção.",
- "No apps found for \"{query}\"" : "Nenhum aplicativo encontrado para \"{query}\"",
- "An error occurred: {message}" : "Ocorreu um erro: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Por favor verifique o documento de instalação ↗ para as notas de configuração do PHP e a configuração do PHP do seu servidor, especialmente ao usar php-fpm.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Seu banco de dados não é executado com nível de isolamento de transação \"READ COMMITTED\" . Isto pode causar problemas quando várias ações são executadas em paralelo.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "O servidor está em execução no Microsoft Windows. É altamente recomendável Linux para uma experiência ideal de para o usuário.",
- "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 documentation ↗ for more information." : "O bloqueio de arquivos transacionais está desativado, isso pode levar a problemas com as condições de execução. Ative 'file locking.enabled' em config.php para evitar esses problemas. Veja a documentação ↗ para mais informações.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifique o guia de instalação ↗, e verifique qualquer erro ou advertência no log.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "Criptografia por si só não garante a segurança do sistema. Por favor consulte a documentação Nextcloud para obter mais informações sobre como o aplicativo de criptografia funciona, e os casos de uso suportados.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar para outro banco de dados usar a ferramenta de linha de comando: 'occ db:convert-type', ou consulte a documentação ↗.",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Este aplicativo não tem nenhuma versão mínima atribuída ao Nextcloud. Isto será um erro no Nextcloud 11 e posterior.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Este aplicativo não tem nenhuma versão máxima atribuída ao Nextcloud. Isto será um erro no Nextcloud 11 e posterior.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Se quiser dar suporte ao projeto\n\t\tjunte-se ao desenvolvimento\n\t\tou\n\t\tajude outros usuários!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desenvolvido pela {communityopen}comunidade Nextcloud {linkclose}, e {githubopen}source code{linkclose} licenciado sob {licenseopen}AGPL{linkclose}."
+ "Last Login" : "Último Login"
},
"nplurals=2; plural=(n > 1);");
diff --git a/settings/l10n/pt_BR.json b/settings/l10n/pt_BR.json
index b828e7559b8c91a9a93dff2ad794cc83f62011a4..86d9c215b5c97882dc0b49782ccb0f2f7c6fba65 100644
--- a/settings/l10n/pt_BR.json
+++ b/settings/l10n/pt_BR.json
@@ -23,6 +23,7 @@
"You need to set your user email before being able to send test emails." : "Você precisa configurar seu e-mail de usuário antes de ser capaz de enviar e-mails de teste.",
"Invalid request" : "Pedido inválido",
"Invalid mail address" : "Endereço de e-mail inválido",
+ "No valid group selected" : "Nenhum grupo válido foi selecionado",
"A user with that name already exists." : "Um usuário com esse nome já existe.",
"Unable to create user." : "Não é possível criar usuário.",
"Your %s account was created" : "Sua conta %s foi criada",
@@ -37,9 +38,6 @@
"Email saved" : "E-mail salvo",
"Password confirmation is required" : "A confirmação da senha é necessária",
"Couldn't remove app." : "Não foi possível remover aplicativos.",
- "Admins can't remove themself from the admin group" : "Administradores não pode remover a si mesmos do grupo de administração",
- "Unable to add user to group %s" : "Não foi possível adicionar usuário ao grupo %s",
- "Unable to remove user from group %s" : "Não foi possível remover usuário do grupo %s",
"Couldn't update app." : "Não foi possível atualizar a app.",
"Are you really sure you want add {domain} as trusted domain?" : "Tem certeza que deseja adicionar {domain} como um domínio confiável",
"Add trusted domain" : "Adicionar domínio confiável",
@@ -56,7 +54,7 @@
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Aplicativos oficiais são desenvolvidos pela comunidade e dentro da comunidade. Eles oferecem funcionalidades centrais e estão prontos para uso em produção.",
"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." : "Aplicativos aprovados são desenvolvidos pelos desenvolvedores confiáveis e passaram por uma verificação de segurança superficial. Eles são ativamente mantidos em um repositório de código aberto e seus mantenedores consideram que eles para sejam estáveis para um casual uso normal.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Este aplicativo não foi verificado para as questões de segurança e é novo ou conhecido por ser instável. Instale por seu próprio risco.",
- "Please wait...." : "Por favor, aguarde...",
+ "Enabling app …" : "Ativando app ...",
"Error while disabling app" : "Erro enquanto desabilitava o aplicativo",
"Disable" : "Desabilitar",
"Enable" : "Habilitar",
@@ -123,6 +121,8 @@
"undo" : "desfazer",
"never" : "nunca",
"deleted {userName}" : "eliminado {userName}",
+ "Unable to add user to group {group}" : "Não é possível adicionar usuário ao grupo {group}",
+ "Unable to remove user from group {group}" : "Não é possível remover usuário do grupo {group}",
"Add group" : "Adicionar grupo",
"Invalid quota value \"{val}\"" : "Valor da quota inválido \"{val}\"",
"no group" : "nenhum grupo",
@@ -245,7 +245,7 @@
"This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Este aplicativo não possui versão máxima atribuida para uso no Nextcloud. Isto poderá se converter em um erro no futuro.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Este aplicativo não pode ser instalado porque as seguintes dependências não forão cumpridas:",
"Enable only for specific groups" : "Ativar apenas para grupos específicos",
- "Uninstall App" : "Desinstalar Aplicativo",
+ "Uninstall app" : "Desinstalando app",
"SSL Root Certificates" : "Certificados Raiz SSL",
"Common Name" : "Nome",
"Valid until" : "Válido até",
@@ -339,7 +339,11 @@
"Default" : "Padrão",
"log-level out of allowed range" : "log-nível acima do permitido",
"Language changed" : "Idioma alterado",
+ "Admins can't remove themself from the admin group" : "Administradores não pode remover a si mesmos do grupo de administração",
+ "Unable to add user to group %s" : "Não foi possível adicionar usuário ao grupo %s",
+ "Unable to remove user from group %s" : "Não foi possível remover usuário do grupo %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Deseja realemente adicionar \"{domain}\" como domínio confiável?",
+ "Please wait...." : "Por favor, aguarde...",
"iPhone" : "iPhone",
"add group" : "adicionar grupo",
"Everything (fatal issues, errors, warnings, info, debug)" : "Tudo (questões fatais, erros, avisos, informações, depuração)",
@@ -359,6 +363,7 @@
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Especialmente quando se utiliza o cliente de desktop para sincronização de arquivos o uso de SQLite é desencorajado.",
"Experimental applications ahead" : "Aplicações experimentais à frente",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Aplicativos experimentais não são marcados por questões de segurança, por serem novos ou conhecidos como instáveis e sob forte desenvolvimento. Instalá-los pode causar perda de dados ou falhas de segurança.",
+ "Uninstall App" : "Desinstalar Aplicativo",
"Enable experimental apps" : "Habilitar aplicativos experimentais",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Olá,
somente para lembrar que agora você tem uma conta %s.
Seu nome de usuário é: %s
Acesse em: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Olá,\n\nsomente para lembrar que agora você tem uma conta %s.\n\nSeu nome de usuário é: %s\nAcesse em: %s\n\n",
@@ -370,24 +375,6 @@
"Group Admin for" : "Grupo Admin para",
"Storage Location" : "Local de Armazenamento",
"User Backend" : "Administrador do Usuário",
- "Last Login" : "Último Login",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Armazenamento externo",
- "Updates" : "Atualizações",
- "Official apps are developed by and within the Nextcloud community. They offer functionality central to Nextcloud and are ready for production use." : "Aplicativos oficiais são desenvolvidos por e dentro da comunidade Nextcloud. Eles oferecem funcionalidade central para Nextcloud e está pronto para uso em produção.",
- "No apps found for \"{query}\"" : "Nenhum aplicativo encontrado para \"{query}\"",
- "An error occurred: {message}" : "Ocorreu um erro: {message}",
- "Please check the installation documentation ↗ for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Por favor verifique o documento de instalação ↗ para as notas de configuração do PHP e a configuração do PHP do seu servidor, especialmente ao usar php-fpm.",
- "Your database does not run with \"READ COMMITED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Seu banco de dados não é executado com nível de isolamento de transação \"READ COMMITTED\" . Isto pode causar problemas quando várias ações são executadas em paralelo.",
- "Your server is running on Microsoft Windows. We highly recommend Linux for optimal user experience." : "O servidor está em execução no Microsoft Windows. É altamente recomendável Linux para uma experiência ideal de para o usuário.",
- "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 documentation ↗ for more information." : "O bloqueio de arquivos transacionais está desativado, isso pode levar a problemas com as condições de execução. Ative 'file locking.enabled' em config.php para evitar esses problemas. Veja a documentação ↗ para mais informações.",
- "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifique o guia de instalação ↗, e verifique qualquer erro ou advertência no log.",
- "Encryption alone does not guarantee security of the system. Please see Nextcloud documentation for more information about how the encryption app works, and the supported use cases." : "Criptografia por si só não garante a segurança do sistema. Por favor consulte a documentação Nextcloud para obter mais informações sobre como o aplicativo de criptografia funciona, e os casos de uso suportados.",
- "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar para outro banco de dados usar a ferramenta de linha de comando: 'occ db:convert-type', ou consulte a documentação ↗.",
- "This app has no minimum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Este aplicativo não tem nenhuma versão mínima atribuída ao Nextcloud. Isto será um erro no Nextcloud 11 e posterior.",
- "This app has no maximum Nextcloud version assigned. This will be an error in Nextcloud 11 and later." : "Este aplicativo não tem nenhuma versão máxima atribuída ao Nextcloud. Isto será um erro no Nextcloud 11 e posterior.",
- "If you want to support the project\n\t\tjoin development\n\t\tor\n\t\thelp other users!" : "Se quiser dar suporte ao projeto\n\t\tjunte-se ao desenvolvimento\n\t\tou\n\t\tajude outros usuários!",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desenvolvido pela {communityopen}comunidade Nextcloud {linkclose}, e {githubopen}source code{linkclose} licenciado sob {licenseopen}AGPL{linkclose}."
+ "Last Login" : "Último Login"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/pt_PT.js b/settings/l10n/pt_PT.js
index 680dee23011b4141d3bf4cd64dc8c97b501a9226..3662b709bc936598820f791bc1f8a312ad6aff5b 100644
--- a/settings/l10n/pt_PT.js
+++ b/settings/l10n/pt_PT.js
@@ -36,9 +36,6 @@ OC.L10N.register(
"Unable to change mail address" : "Não foi possível alterar o teu endereço de email",
"Email saved" : "E-mail guardado",
"Couldn't remove app." : "Não foi possível remover a aplicação.",
- "Admins can't remove themself from the admin group" : "Os administradores não se podem remover a eles próprios do grupo 'admin'.",
- "Unable to add user to group %s" : "Não é possível adicionar o utilizador ao grupo %s",
- "Unable to remove user from group %s" : "Não é possível remover o utilizador do grupo %s",
"Couldn't update app." : "Não foi possível atualizar a app.",
"Add trusted domain" : "Adicionar domínio confiável ",
"Migration in progress. Please wait until the migration is finished" : "Migração em progresso. Por favor, aguarde até que a mesma esteja concluída..",
@@ -52,7 +49,6 @@ OC.L10N.register(
"The app will be downloaded from the app store" : "A aplicação será descarregada da loja de aplicações",
"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." : "As aplicações aprovadas são desenvolvidas por developers de confiança e passaram numa verificação de segurança. São mantidas ativamente num repositório de código aberto e quem as mantém considera-as estáveis para 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 aplicação não foi verificada por problemas de segurança e é nova ou conhecida por ser instável. Instale-a por sua conta e risco.",
- "Please wait...." : "Por favor, aguarde...",
"Error while disabling app" : "Ocorreu um erro enquanto desativava a app",
"Disable" : "Desativar",
"Enable" : "Ativar",
@@ -194,7 +190,6 @@ OC.L10N.register(
"This app has an update available." : "Esta aplicação tem uma atualização disponível.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicação não pode ser instalada porque as seguintes dependências não podem ser realizadas:",
"Enable only for specific groups" : "Activar só para grupos específicos",
- "Uninstall App" : "Desinstalar aplicação",
"SSL Root Certificates" : "Certificados SSL Root",
"Common Name" : "Nome Comum",
"Valid until" : "Válido até",
@@ -256,7 +251,11 @@ OC.L10N.register(
"Default" : "Padrão",
"log-level out of allowed range" : "log-level fora do alcance permitido",
"Language changed" : "Idioma alterado",
+ "Admins can't remove themself from the admin group" : "Os administradores não se podem remover a eles próprios do grupo 'admin'.",
+ "Unable to add user to group %s" : "Não é possível adicionar o utilizador ao grupo %s",
+ "Unable to remove user from group %s" : "Não é possível remover o utilizador do grupo %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Você tem certeza que quer adicionar \"{domain}\" como domínio confiável?",
+ "Please wait...." : "Por favor, aguarde...",
"Everything (fatal issues, errors, warnings, info, debug)" : "Tudo (problemas fatais, erros, avisos, informação, depuração)",
"Info, warnings, errors and fatal issues" : "Informação, avisos, erros e problemas fatais",
"Warnings, errors and fatal issues" : "Avisos, erros e problemas fatais",
@@ -274,14 +273,10 @@ OC.L10N.register(
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "O uso de SQLite é desencorajado especialmente se estiver a pensar em dar uso ao cliente desktop para sincronizar os seus ficheiros no seu computador.",
"Experimental applications ahead" : "Aplicações experimentais de futuro",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "As apps experimentais não estão selecionadas para problemas de segurança, nova ou conhecida como instável e em forte desenvolvimento. Ao instalá-las pode causar a perda de dados ou quebra de segurança.",
+ "Uninstall App" : "Desinstalar aplicação",
"Enable experimental apps" : "Ativar apps experimentais",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Olá,
apenas para informar que você tem uma conta %s.
O seu nome de utilizador: %s
Acesse à sua conta: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Olá,\n\napenas para informar que você tem uma conta %s.\n\nO seu nome de utilizador: %s\nAcesse à sua conta: %s\n\n",
- "Group" : "Grupo",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Armazenamento Externo",
- "Updates" : "Atualizações",
- "An error occurred: {message}" : "Ocorreu um erro: {message}"
+ "Group" : "Grupo"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/pt_PT.json b/settings/l10n/pt_PT.json
index 0deefe93119467adbabe3de7f56a1367c2a6fbd3..28f83d064dde065a239728adbbe9e8eb040ce401 100644
--- a/settings/l10n/pt_PT.json
+++ b/settings/l10n/pt_PT.json
@@ -34,9 +34,6 @@
"Unable to change mail address" : "Não foi possível alterar o teu endereço de email",
"Email saved" : "E-mail guardado",
"Couldn't remove app." : "Não foi possível remover a aplicação.",
- "Admins can't remove themself from the admin group" : "Os administradores não se podem remover a eles próprios do grupo 'admin'.",
- "Unable to add user to group %s" : "Não é possível adicionar o utilizador ao grupo %s",
- "Unable to remove user from group %s" : "Não é possível remover o utilizador do grupo %s",
"Couldn't update app." : "Não foi possível atualizar a app.",
"Add trusted domain" : "Adicionar domínio confiável ",
"Migration in progress. Please wait until the migration is finished" : "Migração em progresso. Por favor, aguarde até que a mesma esteja concluída..",
@@ -50,7 +47,6 @@
"The app will be downloaded from the app store" : "A aplicação será descarregada da loja de aplicações",
"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." : "As aplicações aprovadas são desenvolvidas por developers de confiança e passaram numa verificação de segurança. São mantidas ativamente num repositório de código aberto e quem as mantém considera-as estáveis para 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 aplicação não foi verificada por problemas de segurança e é nova ou conhecida por ser instável. Instale-a por sua conta e risco.",
- "Please wait...." : "Por favor, aguarde...",
"Error while disabling app" : "Ocorreu um erro enquanto desativava a app",
"Disable" : "Desativar",
"Enable" : "Ativar",
@@ -192,7 +188,6 @@
"This app has an update available." : "Esta aplicação tem uma atualização disponível.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicação não pode ser instalada porque as seguintes dependências não podem ser realizadas:",
"Enable only for specific groups" : "Activar só para grupos específicos",
- "Uninstall App" : "Desinstalar aplicação",
"SSL Root Certificates" : "Certificados SSL Root",
"Common Name" : "Nome Comum",
"Valid until" : "Válido até",
@@ -254,7 +249,11 @@
"Default" : "Padrão",
"log-level out of allowed range" : "log-level fora do alcance permitido",
"Language changed" : "Idioma alterado",
+ "Admins can't remove themself from the admin group" : "Os administradores não se podem remover a eles próprios do grupo 'admin'.",
+ "Unable to add user to group %s" : "Não é possível adicionar o utilizador ao grupo %s",
+ "Unable to remove user from group %s" : "Não é possível remover o utilizador do grupo %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Você tem certeza que quer adicionar \"{domain}\" como domínio confiável?",
+ "Please wait...." : "Por favor, aguarde...",
"Everything (fatal issues, errors, warnings, info, debug)" : "Tudo (problemas fatais, erros, avisos, informação, depuração)",
"Info, warnings, errors and fatal issues" : "Informação, avisos, erros e problemas fatais",
"Warnings, errors and fatal issues" : "Avisos, erros e problemas fatais",
@@ -272,14 +271,10 @@
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "O uso de SQLite é desencorajado especialmente se estiver a pensar em dar uso ao cliente desktop para sincronizar os seus ficheiros no seu computador.",
"Experimental applications ahead" : "Aplicações experimentais de futuro",
"Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "As apps experimentais não estão selecionadas para problemas de segurança, nova ou conhecida como instável e em forte desenvolvimento. Ao instalá-las pode causar a perda de dados ou quebra de segurança.",
+ "Uninstall App" : "Desinstalar aplicação",
"Enable experimental apps" : "Ativar apps experimentais",
"Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Olá,
apenas para informar que você tem uma conta %s.
O seu nome de utilizador: %s
Acesse à sua conta: %s
",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Olá,\n\napenas para informar que você tem uma conta %s.\n\nO seu nome de utilizador: %s\nAcesse à sua conta: %s\n\n",
- "Group" : "Grupo",
- "APCu" : "APCu",
- "Redis" : "Redis",
- "External Storage" : "Armazenamento Externo",
- "Updates" : "Atualizações",
- "An error occurred: {message}" : "Ocorreu um erro: {message}"
+ "Group" : "Grupo"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
\ No newline at end of file
diff --git a/settings/l10n/ro.js b/settings/l10n/ro.js
index 14ca21c54e66f396d8aa98080f0775497a3b52e4..d6a2d9976862a7355663e1aa19cb31ebeb65be5c 100644
--- a/settings/l10n/ro.js
+++ b/settings/l10n/ro.js
@@ -32,9 +32,6 @@ OC.L10N.register(
"Unable to change mail address" : "Nu s-a putut schimba adresa email",
"Email saved" : "E-mail salvat",
"Couldn't remove app." : "Nu s-a putut înlătura aplicația.",
- "Admins can't remove themself from the admin group" : "Administratorii nu se pot șterge singuri din grupul adminnistrativ",
- "Unable to add user to group %s" : "Nu s-a putut adăuga utilizatorul în grupul %s",
- "Unable to remove user from group %s" : "Nu s-a putut elimina utilizatorul din grupul %s",
"Couldn't update app." : "Aplicaţia nu s-a putut actualiza.",
"Add trusted domain" : "Adaugă domeniu de încredere",
"Migration in progress. Please wait until the migration is finished" : "Migrare în progres. Așteaptă până când migrarea este finalizată",
@@ -45,7 +42,6 @@ OC.L10N.register(
"_You have %n app update pending_::_You have %n app updates pending_" : ["Ai %n actualizare de aplicație în așteptare","Ai %n actualizări de aplicație în așteptare","Ai %n actualizări de aplicație în așteptare"],
"No apps found for your version" : "Nu au fost găsite aplicații pentru versiunea ta",
"The app will be downloaded from the app store" : "Aplicația va fi descărcată din magazin",
- "Please wait...." : "Aşteptaţi vă rog....",
"Error while disabling app" : "Eroare în timpul dezactivării aplicației",
"Disable" : "Dezactivați",
"Enable" : "Activare",
@@ -145,7 +141,6 @@ OC.L10N.register(
"Hide description …" : "Ascunde descriere ...",
"This app has an update available." : "Este disponibilă o actualizare pentru această aplicație.",
"Enable only for specific groups" : "Activează doar pentru grupuri specifice",
- "Uninstall App" : "Dezinstalează aplicația",
"SSL Root Certificates" : "Certificate SSL rădăcină",
"Common Name" : "Nume comun",
"Valid until" : "Valabil până la",
@@ -190,6 +185,10 @@ OC.L10N.register(
"Default" : "Implicită",
"log-level out of allowed range" : "NIvelul de logare este în afara plajei admise",
"Language changed" : "Limba a fost schimbată",
+ "Admins can't remove themself from the admin group" : "Administratorii nu se pot șterge singuri din grupul adminnistrativ",
+ "Unable to add user to group %s" : "Nu s-a putut adăuga utilizatorul în grupul %s",
+ "Unable to remove user from group %s" : "Nu s-a putut elimina utilizatorul din grupul %s",
+ "Please wait...." : "Aşteptaţi vă rog....",
"Everything (fatal issues, errors, warnings, info, debug)" : "Tot (erori fatale, erori, avertizări, informări, depanare)",
"Info, warnings, errors and fatal issues" : "Informări, avertizări, erori și erori fatale",
"Warnings, errors and fatal issues" : "Avertizări, erori și erori fatale",
@@ -204,11 +203,8 @@ OC.L10N.register(
"Allow users to send mail notification for shared files" : "Permite utilizatorilor sa expedieze notificări prin e-mail pentru dosarele comune",
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite e folosit ca o bază de date. Pentru instalări mari recomandăm folosirea unei alte baze de date.",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "În special atunci când este folosit clientul desktop pentru sincronizarea fișierelor, utilizarea SQLite este nerecomandată.",
+ "Uninstall App" : "Dezinstalează aplicația",
"Enable experimental apps" : "Activează aplicațiile experimentale",
- "Group" : "Grup",
- "Redis" : "Redis",
- "External Storage" : "Stocare externă",
- "Updates" : "Actualizări",
- "An error occurred: {message}" : "A apărut o eroare: {message}"
+ "Group" : "Grup"
},
"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/settings/l10n/ro.json b/settings/l10n/ro.json
index a0ede124ba2adc43f2fa95c3bcc2834514c55c74..3edcf42290f099ce2e961f5c251dc63d31836d11 100644
--- a/settings/l10n/ro.json
+++ b/settings/l10n/ro.json
@@ -30,9 +30,6 @@
"Unable to change mail address" : "Nu s-a putut schimba adresa email",
"Email saved" : "E-mail salvat",
"Couldn't remove app." : "Nu s-a putut înlătura aplicația.",
- "Admins can't remove themself from the admin group" : "Administratorii nu se pot șterge singuri din grupul adminnistrativ",
- "Unable to add user to group %s" : "Nu s-a putut adăuga utilizatorul în grupul %s",
- "Unable to remove user from group %s" : "Nu s-a putut elimina utilizatorul din grupul %s",
"Couldn't update app." : "Aplicaţia nu s-a putut actualiza.",
"Add trusted domain" : "Adaugă domeniu de încredere",
"Migration in progress. Please wait until the migration is finished" : "Migrare în progres. Așteaptă până când migrarea este finalizată",
@@ -43,7 +40,6 @@
"_You have %n app update pending_::_You have %n app updates pending_" : ["Ai %n actualizare de aplicație în așteptare","Ai %n actualizări de aplicație în așteptare","Ai %n actualizări de aplicație în așteptare"],
"No apps found for your version" : "Nu au fost găsite aplicații pentru versiunea ta",
"The app will be downloaded from the app store" : "Aplicația va fi descărcată din magazin",
- "Please wait...." : "Aşteptaţi vă rog....",
"Error while disabling app" : "Eroare în timpul dezactivării aplicației",
"Disable" : "Dezactivați",
"Enable" : "Activare",
@@ -143,7 +139,6 @@
"Hide description …" : "Ascunde descriere ...",
"This app has an update available." : "Este disponibilă o actualizare pentru această aplicație.",
"Enable only for specific groups" : "Activează doar pentru grupuri specifice",
- "Uninstall App" : "Dezinstalează aplicația",
"SSL Root Certificates" : "Certificate SSL rădăcină",
"Common Name" : "Nume comun",
"Valid until" : "Valabil până la",
@@ -188,6 +183,10 @@
"Default" : "Implicită",
"log-level out of allowed range" : "NIvelul de logare este în afara plajei admise",
"Language changed" : "Limba a fost schimbată",
+ "Admins can't remove themself from the admin group" : "Administratorii nu se pot șterge singuri din grupul adminnistrativ",
+ "Unable to add user to group %s" : "Nu s-a putut adăuga utilizatorul în grupul %s",
+ "Unable to remove user from group %s" : "Nu s-a putut elimina utilizatorul din grupul %s",
+ "Please wait...." : "Aşteptaţi vă rog....",
"Everything (fatal issues, errors, warnings, info, debug)" : "Tot (erori fatale, erori, avertizări, informări, depanare)",
"Info, warnings, errors and fatal issues" : "Informări, avertizări, erori și erori fatale",
"Warnings, errors and fatal issues" : "Avertizări, erori și erori fatale",
@@ -202,11 +201,8 @@
"Allow users to send mail notification for shared files" : "Permite utilizatorilor sa expedieze notificări prin e-mail pentru dosarele comune",
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite e folosit ca o bază de date. Pentru instalări mari recomandăm folosirea unei alte baze de date.",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "În special atunci când este folosit clientul desktop pentru sincronizarea fișierelor, utilizarea SQLite este nerecomandată.",
+ "Uninstall App" : "Dezinstalează aplicația",
"Enable experimental apps" : "Activează aplicațiile experimentale",
- "Group" : "Grup",
- "Redis" : "Redis",
- "External Storage" : "Stocare externă",
- "Updates" : "Actualizări",
- "An error occurred: {message}" : "A apărut o eroare: {message}"
+ "Group" : "Grup"
},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
}
\ No newline at end of file
diff --git a/settings/l10n/ru.js b/settings/l10n/ru.js
index fc6a289e9a20e247d52a013d1e86d0f2bce20bfe..6c5ad892fdab044684ee44ab5ff620ae09531b41 100644
--- a/settings/l10n/ru.js
+++ b/settings/l10n/ru.js
@@ -22,24 +22,26 @@ OC.L10N.register(
"test email settings" : "проверить настройки почты",
"A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Во время отправки письма произошла ошибка. Пожалуйста проверьте настройки. (Ошибка: %s)",
"Email sent" : "Письмо отправлено",
- "You need to set your user email before being able to send test emails." : "Вы должны настроить свой адрес электронной почты прежде чем отправлять тестовые сообщения.",
+ "You need to set your user email before being able to send test emails." : "Вы должны настроить ваш собственный адрес электронной почты прежде чем отправлять тестовые сообщения.",
"Invalid request" : "Неправильный запрос",
"Invalid mail address" : "Некорректный адрес электронной почты",
+ "No valid group selected" : "Не выбрана верная группа",
"A user with that name already exists." : "Пользователь с таким именем уже существует.",
"Unable to create user." : "Невозможно создать пользователя.",
"Your %s account was created" : "Учетная запись %s создана",
"Unable to delete user." : "Невозможно удалить пользователя.",
+ "Settings saved" : "Настройки сохранены",
"Unable to change full name" : "Невозможно изменить полное имя",
+ "Unable to change email address" : "Невозможно изменить адрес электронной почты",
"Your full name has been changed." : "Ваше полное имя было изменено.",
"Forbidden" : "Запрещено",
"Invalid user" : "Неверный пользователь",
"Unable to change mail address" : "Невозможно изменить адрес электронной почты",
"Email saved" : "Адрес сохранен",
+ "Password confirmation is required" : "Требуется подтверждение пароля",
"Couldn't remove app." : "Не удалось удалить приложение.",
- "Admins can't remove themself from the admin group" : "Администратор не может удалить сам себя из группы администраторов",
- "Unable to add user to group %s" : "Невозможно добавить пользователя в группу %s",
- "Unable to remove user from group %s" : "Невозможно удалить пользователя из группы %s",
"Couldn't update app." : "Невозможно обновить приложение",
+ "Are you really sure you want add {domain} as trusted domain?" : "Вы действительно хотите добавить домен {domain} как доверенный?",
"Add trusted domain" : "Добавить доверенный домен",
"Migration in progress. Please wait until the migration is finished" : "Миграция в процессе. Пожалуйста, подождите завершения миграции",
"Migration started …" : "Начата миграция ...",
@@ -48,15 +50,15 @@ OC.L10N.register(
"Official" : "Официальное",
"All" : "Все",
"Update to %s" : "Обновить до %s",
- "_You have %n app update pending_::_You have %n app updates pending_" : ["%n обновление в очереди","%n обновлений в очереди","%n обновлений в очереди","У вас есть %n доступных обновлений"],
+ "_You have %n app update pending_::_You have %n app updates pending_" : ["У вас есть %n доступное обновление","У вас есть %n доступных обновления","У вас есть %n доступных обновлений","У вас есть %n доступных обновлений"],
"No apps found for your version" : "Не найдено приложений для вашей версии",
"The app will be downloaded from the app store" : "Приложение будет скачано из магазина приложений",
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Официальные приложения разработаны вместе с сообществом. Они предлагают базовую функциональность и готовы для использования.",
"Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Подтвержденные приложения разработаны доверенными разработчиками и прошли краткую проверку на наличие проблем с безопасностью. Они активно поддерживаются в открытых репозиториях и сопровождающие их разработчики подтверждают, что приложения достаточно стабильны для нормальной работы.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Это приложение не проверялось на наличие проблем с безопасностью, также оно может работать нестабильно. Устанавливайте на свой страх и риск.",
- "Please wait...." : "Пожалуйста подождите...",
+ "Enabling app …" : "Включение приложения",
"Error while disabling app" : "Ошибка при отключении приложения",
- "Disable" : "Выключить",
+ "Disable" : "Отключить",
"Enable" : "Включить",
"Error while enabling app" : "Ошибка при включении приложения",
"Error: this app cannot be enabled because it makes the server unstable" : "Ошибка: это приложение не может быть включено, так как оно делает сервер нестабильным",
@@ -73,16 +75,22 @@ OC.L10N.register(
"Approved" : "Подтвержденное",
"Experimental" : "Экспериментальное",
"No apps found for {query}" : "Приложения не найдены по {query}",
+ "Allow filesystem access" : "Разрешить доступ к файловой системе",
"Disconnect" : "Отключить",
+ "Revoke" : "Отменить",
+ "Internet Explorer" : "Internet Explorer",
"Edge" : "Edge",
"Firefox" : "Firefox",
"Google Chrome" : "Google Chrome",
"Safari" : "Safari",
"Google Chrome for Android" : "Google Chrome для Android",
+ "iPhone iOS" : "iPhone iOS",
+ "iPad iOS" : "iPad iOS",
"iOS Client" : "Клиент iOS",
"Android Client" : "Клиент Android",
"Sync client - {os}" : "Клиент синхронизации - {os}",
"This session" : "Эта сессия",
+ "Copy" : "Копировать",
"Copied!" : "Скопировано!",
"Not supported!" : "Не поддерживается!",
"Press ⌘-C to copy." : "Нажмите ⌘-C для копирования.",
@@ -93,6 +101,14 @@ OC.L10N.register(
"An error occurred. Please upload an ASCII-encoded PEM certificate." : "Произошла ошибка. Пожалуйста загрузите сертификат PEM в ASCII кодировке.",
"Valid until {date}" : "Действительно до {дата}",
"Delete" : "Удалить",
+ "Local" : "Локально",
+ "Private" : "Закрытый",
+ "Only visible to local users" : "Виден только локальным пользователям",
+ "Only visible to you" : "Виден только вам",
+ "Contacts" : "Контакты",
+ "Visible to local users and to trusted servers" : "Виден локальным пользователям и доверенным серверам",
+ "Public" : "Открытый",
+ "Will be synced to a global and public address book" : "Будет синхронизирован с глобальной и открытой адресной книгой",
"Select a profile picture" : "Выберите аватар",
"Very weak password" : "Очень слабый пароль",
"Weak password" : "Слабый пароль",
@@ -107,11 +123,14 @@ OC.L10N.register(
"undo" : "отмена",
"never" : "никогда",
"deleted {userName}" : "удалён {userName}",
+ "Unable to add user to group {group}" : "Невозможно добавить пользователя в группу {group}",
+ "Unable to remove user from group {group}" : "Невозможно удалить пользователя из группы {group}",
"Add group" : "Добавить группу",
"Invalid quota value \"{val}\"" : "Недопустимая величина квоты \"{val}\"",
"no group" : "Без группы",
"Password successfully changed" : "Пароль успешно изменен.",
"Changing the password will result in data loss, because data recovery is not available for this user" : "Изменение пароля приведёт к потере данных, так как восстановление данных не доступно для этого пользователя",
+ "Could not change the users email" : "Невозможно изменить электронный адрес пользователя",
"A valid username must be provided" : "Укажите правильное имя пользователя",
"Error creating user: {message}" : "Ошибка создания пользователя: {message}",
"A valid password must be provided" : "Должен быть указан правильный пароль",
@@ -126,6 +145,7 @@ OC.L10N.register(
"Login" : "Логин",
"Plain" : "Простой",
"NT LAN Manager" : "Менеджер NT LAN",
+ "SSL/TLS" : "SSL/TLS",
"STARTTLS" : "STARTTLS",
"Email server" : "Почтовый сервер",
"Open documentation" : "Открыть документацию",
@@ -182,6 +202,8 @@ OC.L10N.register(
"Execute one task with each page loaded" : "Выполнять одно задание с каждой загруженной страницей",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php зарегистрирован в webcron и будет вызываться каждые 15 минут по http.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Использовать системный cron для вызова cron.php каждые 15 минут.",
+ "The cron.php needs to be executed by the system user \"%s\"." : "cron.php должен исполняться из под пользователя \"%s\".",
+ "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Для запуска вам необходимо расширение PHP posix. Для более подробной информации смотрите {linkstart}PHP документацию{linkend}",
"Version" : "Версия",
"Sharing" : "Общий доступ",
"Allow apps to use the Share API" : "Позволить приложениям использовать API общего доступа",
@@ -201,6 +223,8 @@ OC.L10N.register(
"Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Показать текст об отказе на странице загрузки публичной ссылки (Показывать только когда список файлов скрыт)",
"This text will be shown on the public link upload page when the file list is hidden." : "Этот текст будет показан при переходе по публичной ссылке на загрузку при скрытом списке файлов",
"Tips & tricks" : "Советы и трюки",
+ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "В качестве базы данных используется SQLite. Для больших установок мы рекомендуем переключиться на другую серверную базу данных.",
+ "This is particularly recommended when using the desktop client for file synchronisation." : "Рекомендуется при синхронизации файлов с использованием клиента для ПК.",
"To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Для миграции на другую базу данных используйте команду: 'occ db:convert-type' или обратитесь к a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">документации ↗
just letting you know that you now have a %s account.
Your username: %s
Access it: %s
" : "Здравствуйте,
просто хотим сообщить, что теперь у вас есть учетная запись на %s.
Ваше имя пользователя: %s
Зайти: %s
", "Cheers!" : "Удачи!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Здравствуйте,\n\nПросто хотим сообщить, что теперь у вас есть учетная запись на %s.\n\nИмя пользователя: %s\nЗайти: %s\n", "Administrator documentation" : "Документация администратора", "Online documentation" : "Online-документация", "Forum" : "Форум", + "Getting help" : "Помощь", "Commercial support" : "Коммерческая поддержка", "You are using %s of %s" : "Вы используете %s из %s", "Profile picture" : "Аватар", @@ -250,6 +277,14 @@ OC.L10N.register( "Your email address" : "Ваш адрес электронной почты", "No email address set" : "Адрес не указан", "For password recovery and notifications" : "Для восстановления пароля и уведомлений", + "Phone number" : "Номер телефона", + "Your phone number" : "Ваш номер телефона", + "Address" : "Адрес", + "Your postal address" : "Ваш почтовый адрес", + "Website" : "Сайт", + "Your website" : "Ваш сайт", + "Twitter" : "Twitter", + "Your Twitter handle" : "Ваше имя в Twiter", "You are member of the following groups:" : "Вы являетесь членом следующих групп:", "Password" : "Пароль", "Current password" : "Текущий пароль", @@ -261,6 +296,7 @@ OC.L10N.register( "Desktop client" : "Клиент для ПК", "Android app" : "Android приложение", "iOS app" : "iOS приложение", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Если хотите поддержать проект - {contributeopen}присоединяйтесь к разработке{linkclose} или {contributeopen}расскажите о нем другим{linkclose}!", "Show First Run Wizard again" : "Показать помощник настройки снова", "Web, desktop and mobile clients currently logged in to your account." : "Веб, настольные и мобильные клиенты, которые в настоящий момент авторизованы вашей учётной записью.", "Device" : "Устройство", @@ -288,6 +324,7 @@ 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" : "Квота по умолчанию", @@ -304,7 +341,11 @@ OC.L10N.register( "Default" : "По умолчанию", "log-level out of allowed range" : "уровень журнала вышел за разрешенный диапазон", "Language changed" : "Язык изменён", + "Admins can't remove themself from the admin group" : "Администратор не может удалить сам себя из группы администраторов", + "Unable to add user to group %s" : "Невозможно добавить пользователя в группу %s", + "Unable to remove user from group %s" : "Невозможно удалить пользователя из группы %s", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Вы действительно хотите добавить домен \"{domain}\" как доверенный?", + "Please wait...." : "Пожалуйста подождите...", "iPhone" : "iPhone", "add group" : "Добавить группу", "Everything (fatal issues, errors, warnings, info, debug)" : "Все (критические проблемы, ошибки, предупреждения, информационные, отладочные)", @@ -324,10 +365,11 @@ OC.L10N.register( "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Особенно вызывает сомнение использование SQLite при синхронизации файлов с использованием клиента для ПК.", "Experimental applications ahead" : "Экспериментальные приложения", "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Экспериментальные приложения не проверялись на наличие уязвимостей безопасности, они также могут быть нестабильны, т.к. находятся в активной разработке. Их установка может повлечь потерю информации или нарушение безопасности.", + "Uninstall App" : "Удалить приложение", "Enable experimental apps" : "Включить экспериментальные приложения", "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Здравствуйте,
просто хотим сообщить, что теперь у вас есть учетная запись на %s.
Ваше имя пользователя: %s
Зайти: %s
", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Здравствуйте,\n\nПросто хотим сообщить, что теперь у вас есть учетная запись на %s.\n\nИмя пользователя: %s\nЗайти: %s\n", - "If you want to support the project\n\t\tjoin development\n\t\t
just letting you know that you now have a %s account.
Your username: %s
Access it: %s
" : "Здравствуйте,
просто хотим сообщить, что теперь у вас есть учетная запись на %s.
Ваше имя пользователя: %s
Зайти: %s
", "Cheers!" : "Удачи!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Здравствуйте,\n\nПросто хотим сообщить, что теперь у вас есть учетная запись на %s.\n\nИмя пользователя: %s\nЗайти: %s\n", "Administrator documentation" : "Документация администратора", "Online documentation" : "Online-документация", "Forum" : "Форум", + "Getting help" : "Помощь", "Commercial support" : "Коммерческая поддержка", "You are using %s of %s" : "Вы используете %s из %s", "Profile picture" : "Аватар", @@ -248,6 +275,14 @@ "Your email address" : "Ваш адрес электронной почты", "No email address set" : "Адрес не указан", "For password recovery and notifications" : "Для восстановления пароля и уведомлений", + "Phone number" : "Номер телефона", + "Your phone number" : "Ваш номер телефона", + "Address" : "Адрес", + "Your postal address" : "Ваш почтовый адрес", + "Website" : "Сайт", + "Your website" : "Ваш сайт", + "Twitter" : "Twitter", + "Your Twitter handle" : "Ваше имя в Twiter", "You are member of the following groups:" : "Вы являетесь членом следующих групп:", "Password" : "Пароль", "Current password" : "Текущий пароль", @@ -259,6 +294,7 @@ "Desktop client" : "Клиент для ПК", "Android app" : "Android приложение", "iOS app" : "iOS приложение", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Если хотите поддержать проект - {contributeopen}присоединяйтесь к разработке{linkclose} или {contributeopen}расскажите о нем другим{linkclose}!", "Show First Run Wizard again" : "Показать помощник настройки снова", "Web, desktop and mobile clients currently logged in to your account." : "Веб, настольные и мобильные клиенты, которые в настоящий момент авторизованы вашей учётной записью.", "Device" : "Устройство", @@ -286,6 +322,7 @@ "Create" : "Создать", "Admin Recovery Password" : "Пароль административного восстановления", "Enter the recovery password in order to recover the users files during password change" : "Введите пароль для того, чтобы восстановить файлы пользователей при смене пароля", + "Group name" : "Название группы", "Everyone" : "Все", "Admins" : "Администраторы", "Default quota" : "Квота по умолчанию", @@ -302,7 +339,11 @@ "Default" : "По умолчанию", "log-level out of allowed range" : "уровень журнала вышел за разрешенный диапазон", "Language changed" : "Язык изменён", + "Admins can't remove themself from the admin group" : "Администратор не может удалить сам себя из группы администраторов", + "Unable to add user to group %s" : "Невозможно добавить пользователя в группу %s", + "Unable to remove user from group %s" : "Невозможно удалить пользователя из группы %s", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Вы действительно хотите добавить домен \"{domain}\" как доверенный?", + "Please wait...." : "Пожалуйста подождите...", "iPhone" : "iPhone", "add group" : "Добавить группу", "Everything (fatal issues, errors, warnings, info, debug)" : "Все (критические проблемы, ошибки, предупреждения, информационные, отладочные)", @@ -322,10 +363,11 @@ "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Особенно вызывает сомнение использование SQLite при синхронизации файлов с использованием клиента для ПК.", "Experimental applications ahead" : "Экспериментальные приложения", "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Экспериментальные приложения не проверялись на наличие уязвимостей безопасности, они также могут быть нестабильны, т.к. находятся в активной разработке. Их установка может повлечь потерю информации или нарушение безопасности.", + "Uninstall App" : "Удалить приложение", "Enable experimental apps" : "Включить экспериментальные приложения", "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Здравствуйте,
просто хотим сообщить, что теперь у вас есть учетная запись на %s.
Ваше имя пользователя: %s
Зайти: %s
", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Здравствуйте,\n\nПросто хотим сообщить, что теперь у вас есть учетная запись на %s.\n\nИмя пользователя: %s\nЗайти: %s\n", - "If you want to support the project\n\t\tjoin development\n\t\t
just letting you know that you now have a %s account.
Your username: %s
Access it: %s
" : "Dobrý deň,
toto je oznámenie o novo vytvorenom účte %s.
Vaše používateľské meno: %s
Prihlásiť sa môžete tu: %s
", "Cheers!" : "Pekný deň!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Dobrý deň,\n\ntoto je oznámenie o novo vytvorenom účte %s.\n\nVaše používateľské meno: %s\nPrihlásiť sa môžete tu: %s\n\n", "Administrator documentation" : "Príručka administrátora", "Online documentation" : "Online príručka", "Forum" : "Fórum", + "Getting help" : "Získať pomoc", "Commercial support" : "Komerčná podpora", + "You are using %s of %s" : "Využívate %s z %s", "Profile picture" : "Avatar", "Upload new" : "Nahrať nový", + "Select from Files" : "Vybrať zo súborov", "Remove image" : "Zmazať obrázok", + "png or jpg, max. 20 MB" : "png alebo jpg, max. 20 MB", + "Picture provided by original account" : "Obrázok poskytnutý originálnym účtom", "Cancel" : "Zrušiť", + "Choose as profile picture" : "Použiť ako obrázok avatara", "Full name" : "Meno a priezvisko", "No display name set" : "Zobrazované meno nie je nastavené", "Email" : "Email", "Your email address" : "Vaša emailová adresa", "No email address set" : "Emailová adresa nie je nastavená", + "For password recovery and notifications" : "Pre obnovu hesla a oznámenia", + "Phone number" : "Telefónne číslo", + "Your phone number" : "Vaše telefónne číslo", + "Address" : "Adresa", + "Your postal address" : "Vaša poštová adresa", + "Website" : "Webstránka", + "Your website" : "Vaša webstránka", + "Twitter" : "Twitter", "You are member of the following groups:" : "Ste členom nasledovných skupín:", "Password" : "Heslo", "Current password" : "Aktuálne heslo", @@ -184,10 +261,20 @@ OC.L10N.register( "Desktop client" : "Desktopový klient", "Android app" : "Android aplikácia", "iOS app" : "iOS aplikácia", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Ak chcete podporiť projekt {contributeopen}zapojte sa do vývoja{linkclose}, alebo {contributeopen}dajte o nás vedieť{linkclose}!", "Show First Run Wizard again" : "Znovu zobraziť sprievodcu prvým spustením", + "Web, desktop and mobile clients currently logged in to your account." : "Weboví, desktopoví, alebo mobilní klienti práve prihlásení na váš účet.", + "Device" : "Zariadenie", + "Last activity" : "Posledná aktivita", + "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", + "App name" : "Názov aplikácie", + "Create new app password" : "Vytvoriť nové heslo aplikácie", + "Use the credentials below to configure your app or device." : "Pre konfiguráciu vašej aplikácie, alebo zariadenia použite nižšie uvedené prihlasovacie údaje.", + "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 Plus!" : "Sleduj nás na Google Plus!", "Show storage location" : "Zobraziť umiestnenie úložiska", "Show last log in" : "Zobraziť posledné prihlásenie", "Show user backend" : "Zobraziť backend používateľa", @@ -197,24 +284,37 @@ OC.L10N.register( "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", + "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\")", "Other" : "Iné", + "Group admin for" : "Administrátor skupiny pre", "Quota" : "Kvóta", + "Storage location" : "Umiestnenie úložiska", + "User backend" : "Backend používateľa", + "Last login" : "Posledné prihlásenie", "change full name" : "zmeniť meno a priezvisko", "set new password" : "nastaviť nové heslo", "change email address" : "zmeniť emailovú adresu", "Default" : "Predvolené", "log-level out of allowed range" : "úroveň logovania z povoleného rozpätia", "Language changed" : "Jazyk zmenený", + "Admins can't remove themself from the admin group" : "Administrátori nesmú odstrániť sami seba zo skupiny admin", + "Unable to add user to group %s" : "Nie je možné pridať používateľa do skupiny %s", + "Unable to remove user from group %s" : "Nie je možné odstrániť používateľa zo skupiny %s", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Ste si istí, že chcete pridať \"{domain}\" medzi dôveryhodné domény?", + "Please wait...." : "Čakajte prosím...", + "iPhone" : "iPhone", + "add group" : "pridať skupinu", "Everything (fatal issues, errors, warnings, info, debug)" : "Všetko (fatálne problémy, chyby, upozornenia, info, debug)", "Info, warnings, errors and fatal issues" : "Info, upozornenia, chyby a fatálne problémy", "Warnings, errors and fatal issues" : "Upozornenia, chyby a fatálne problémy", "Errors and fatal issues" : "Chyby a fatálne problémy", "Fatal issues only" : "Len fatálne problémy", "Log" : "Záznam", + "What to log" : "Čo sa má zaznamenávať", "Download logfile" : "Stiahnuť súbor logu", "More" : "Viac", "Less" : "Menej", @@ -225,13 +325,17 @@ OC.L10N.register( "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Najmä pri používaní aplikácie na synchronizáciu s desktopom nie je databáza SQLite doporučená.", "Experimental applications ahead" : "Experimentálna aplikácia v poradí", "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimentálne aplikácie nie sú preverované na bezpečnostné chyby, môžu byť nestabilné a veľmi sa meniť. Ich inštaláciou môžete spôsobiť stratu dát alebo bezpečnostné problémy.", + "Uninstall App" : "Odinštalovanie aplikácie", "Enable experimental apps" : "Povoliť experimentálne aplikácie", "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Dobrý deň,
toto je oznámenie o novo vytvorenom účte %s.
Vaše používateľské meno: %s
Prihlásiť sa môžete tu: %s
", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Ahoj,\n\ntoto je oznámenie o novo vytvorenom účte %s.\n\nVaše používateľské meno: %s\nPrihlásiť sa môžete tu: %s\n\n", + "Add Group" : "Pridať skupinu", "Group" : "Skupina", - "APCu" : "APCu", - "Redis" : "Redis", - "External Storage" : "Externé úložisko", - "Updates" : "Aktualizácie" + "Default Quota" : "Predvolená kvóta", + "Full Name" : "Meno a priezvisko", + "Group Admin for" : "Administrátor skupiny pre", + "Storage Location" : "Umiestnenie úložiska", + "User Backend" : "Backend používateľa", + "Last Login" : "Posledné prihlásenie" }, "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/settings/l10n/sk_SK.json b/settings/l10n/sk_SK.json index 2f588591ed628b12e732ef4cf36d40f8c4ff4cea..227e9b1b0617309aa6476ee459f914071a0d62ca 100644 --- a/settings/l10n/sk_SK.json +++ b/settings/l10n/sk_SK.json @@ -25,40 +25,76 @@ "Unable to create user." : "Nie je možné vytvoriť používateľa.", "Your %s account was created" : "Váš účet %s bol vytvorený", "Unable to delete user." : "Nie je možné zmazať 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", "Your full name has been changed." : "Vaše meno a priezvisko bolo zmenené.", "Forbidden" : "Zakázané", "Invalid user" : "Neplatný používateľ", "Unable to change mail address" : "Nemožno zmeniť emailovú adresu", "Email saved" : "Email uložený", + "Password confirmation is required" : "Vyžaduje sa overenie heslom", "Couldn't remove app." : "Nemožno odstrániť aplikáciu.", - "Admins can't remove themself from the admin group" : "Administrátori nesmú odstrániť sami seba zo skupiny admin", - "Unable to add user to group %s" : "Nie je možné pridať používateľa do skupiny %s", - "Unable to remove user from group %s" : "Nie je možné odstrániť používateľa zo skupiny %s", "Couldn't update app." : "Nemožno aktualizovať aplikáciu.", + "Are you really sure you want add {domain} as trusted domain?" : "Ste si istí, že chcete pridať {domain} medzi dôveryhodné domény?", "Add trusted domain" : "Pridať dôveryhodnú doménu", "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...", "Official" : "Oficiálny", "All" : "Všetky", "Update to %s" : "Aktualizovať na %s", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Prebieha aktualizácia %n aplikácie","Prebieha aktualizácia %n aplikácií","Prebieha aktualizácia %n aplikácií"], "No apps found for your version" : "Aplikácie pre vašu verziu sa nenašli", - "Please wait...." : "Čakajte prosím...", + "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.", + "Enabling app …" : "Povoľujem aplikáciu …", "Error while disabling app" : "Chyba pri zakázaní aplikácie", "Disable" : "Zakázať", "Enable" : "Zapnúť", "Error while enabling app" : "Chyba pri povoľovaní aplikácie", + "Error: this app cannot 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", "Updating...." : "Aktualizujem...", "Error while updating app" : "chyba pri aktualizácii aplikácie", "Updated" : "Aktualizované", "Uninstalling ...." : "Prebieha odinštalovanie...", "Error while uninstalling app" : "Chyba pri odinštalovaní aplikácie", "Uninstall" : "Odinštalácia", + "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}", + "Allow filesystem access" : "Povoliť prístup ku súborovému systému", + "Disconnect" : "Odpojiť", + "Revoke" : "Odvolať", + "Internet Explorer" : "Internet Explorer", + "Firefox" : "Firefox", + "Google Chrome" : "Google Chrome", + "Safari" : "Safari", + "Google Chrome for Android" : "Google Chrome pre Android", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", + "iOS Client" : "iOS Klient", + "Android Client" : "Android Klient", + "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.", + "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Vyskytla sa chyba. Nahrajte prosím PEM certifikát v ASCII kódovaní.", "Valid until {date}" : "Platný do {date}", "Delete" : "Zmazať", + "Local" : "Lokálny", + "Private" : "Súkromný", + "Only visible to local users" : "Viditeľné iba pre lokálnych používateľov", + "Only visible to you" : "Viditeľné iba pre seba", + "Contacts" : "Kontakty", + "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", "Select a profile picture" : "Vybrať avatara", "Very weak password" : "Veľmi slabé heslo", "Weak password" : "Slabé heslo", @@ -67,23 +103,32 @@ "Strong password" : "Silné heslo", "Groups" : "Skupiny", "Unable to delete {objName}" : "Nemožno vymazať {objName}", + "Error creating group: {message}" : "Chyba pri vytváraní skupiny: {message}", "A valid group name must be provided" : "Musíte zadať platný názov skupiny", "deleted {groupName}" : "vymazaná {groupName}", "undo" : "vrátiť", "never" : "nikdy", "deleted {userName}" : "vymazané {userName}", + "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", "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", "__language_name__" : "Slovensky", "Unlimited" : "Nelimitované", "Personal info" : "Osobné informácie", + "App passwords" : "Heslá aplikácie", "Sync clients" : "Klienti synchronizácie", "None" : "Žiadny", "Login" : "Prihlásenie", "Plain" : "Neformátovaný", "NT LAN Manager" : "NT LAN Manager", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", "Email server" : "Email server", "Open documentation" : "Otvoriť dokumentáciu", "This is used for sending out notifications." : "Používa sa na odosielanie upozornení.", @@ -103,7 +148,12 @@ "Send email" : "Odoslať email", "Server-side encryption" : "Šifrovanie na serveri", "Enable server-side encryption" : "Povoliť šifrovanie na serveri", + "Please read carefully before activating server-side encryption: " : "Prečítajte prosím pozorne pred použitím šifrovania na serveri:", + "Be aware that encryption always increases the file size." : "Majte na vedomí, že šifrovanie vždy zväčší veľkosť súborov.", + "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." : "Je dobré vytvárať pravidelné zálohy vašich dát, uistite sa, že v prípade šifrovania spolu s vašimi dátami zálohujete aj šifrovacie kľúče.", + "This is the final warning: Do you really want to enable encryption?" : "Toto je posledné varovanie: Vážne si prajete povoliť šifrovanie?", "Enable encryption" : "Povoliť šifrovanie", + "No encryption module loaded, please enable an encryption module in the app menu." : "Nebol načítaný žiadny šifrovací modul, povoľte prosím šifrovací modul v menu aplikácií.", "Select default encryption module:" : "Vybrať predvolený šifrovací modul:", "Start migration" : "Začať migráciu", "Security & setup warnings" : "Bezpečnosť a nastavenia upozornení", @@ -115,6 +165,7 @@ "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\")", + "All checks passed." : "Všetky kontroly prešli úspešne.", "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.", @@ -122,6 +173,7 @@ "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'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.", + "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\".", "Version" : "Verzia", "Sharing" : "Sprístupňovanie", "Allow apps to use the Share API" : "Povoliť aplikáciám používať API pre sprístupňovanie", @@ -133,6 +185,7 @@ "days" : "dni", "Enforce expiration date" : "Vynútiť dátum expirácie", "Allow resharing" : "Povoliť sprístupňovanie ďalej", + "Allow sharing with groups" : "Povoliť sprístupnenie so skupinami", "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", @@ -144,33 +197,57 @@ "Theming" : "Vzhľady tém", "Hardening and security guidance" : "Sprievodca vylepšením bezpečnosti", "Developer documentation" : "Dokumentácia vývojára", + "by %s" : "od %s", + "%s-licensed" : "%s-licencovaný", "Documentation:" : "Dokumentácia:", "User documentation" : "Príručka používateľa", "Admin documentation" : "Príručka administrátora", + "Visit website" : "Navštíviť webstránku", + "Report a bug" : "Nahlásiť chybu", "Show description …" : "Zobraziť popis …", "Hide description …" : "Skryť popis …", + "This app has an update available." : "Pre túto aplikáciu je dostupná aktualizácia.", + "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Pre túto aplikáciu nie je zadaná minimálna verzia Nextcloudu. Toto v budúcnosti spôsobí chybu.", + "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Pre túto aplikáciu nie je zadaná maximálna verzia Nextcloudu. Toto v budúcnosti spôsobí chybu.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Túto aplikáciu nemožno nainštalovať, pretože nie sú splnené nasledovné závislosti:", "Enable only for specific groups" : "Povoliť len pre vybrané skupiny", - "Uninstall App" : "Odinštalovanie aplikácie", + "Uninstall app" : "Odinštalovať aplikáciu", + "SSL Root Certificates" : "Koreňové certifikáty SSL", "Common Name" : "Bežný názov", "Valid until" : "Platný do", "Issued By" : "Vydal", "Valid until %s" : "Platný do %s", "Import root certificate" : "Importovať koreňový certifikát", + "Hey there,
just letting you know that you now have a %s account.
Your username: %s
Access it: %s
" : "Dobrý deň,
toto je oznámenie o novo vytvorenom účte %s.
Vaše používateľské meno: %s
Prihlásiť sa môžete tu: %s
", "Cheers!" : "Pekný deň!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Dobrý deň,\n\ntoto je oznámenie o novo vytvorenom účte %s.\n\nVaše používateľské meno: %s\nPrihlásiť sa môžete tu: %s\n\n", "Administrator documentation" : "Príručka administrátora", "Online documentation" : "Online príručka", "Forum" : "Fórum", + "Getting help" : "Získať pomoc", "Commercial support" : "Komerčná podpora", + "You are using %s of %s" : "Využívate %s z %s", "Profile picture" : "Avatar", "Upload new" : "Nahrať nový", + "Select from Files" : "Vybrať zo súborov", "Remove image" : "Zmazať obrázok", + "png or jpg, max. 20 MB" : "png alebo jpg, max. 20 MB", + "Picture provided by original account" : "Obrázok poskytnutý originálnym účtom", "Cancel" : "Zrušiť", + "Choose as profile picture" : "Použiť ako obrázok avatara", "Full name" : "Meno a priezvisko", "No display name set" : "Zobrazované meno nie je nastavené", "Email" : "Email", "Your email address" : "Vaša emailová adresa", "No email address set" : "Emailová adresa nie je nastavená", + "For password recovery and notifications" : "Pre obnovu hesla a oznámenia", + "Phone number" : "Telefónne číslo", + "Your phone number" : "Vaše telefónne číslo", + "Address" : "Adresa", + "Your postal address" : "Vaša poštová adresa", + "Website" : "Webstránka", + "Your website" : "Vaša webstránka", + "Twitter" : "Twitter", "You are member of the following groups:" : "Ste členom nasledovných skupín:", "Password" : "Heslo", "Current password" : "Aktuálne heslo", @@ -182,10 +259,20 @@ "Desktop client" : "Desktopový klient", "Android app" : "Android aplikácia", "iOS app" : "iOS aplikácia", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Ak chcete podporiť projekt {contributeopen}zapojte sa do vývoja{linkclose}, alebo {contributeopen}dajte o nás vedieť{linkclose}!", "Show First Run Wizard again" : "Znovu zobraziť sprievodcu prvým spustením", + "Web, desktop and mobile clients currently logged in to your account." : "Weboví, desktopoví, alebo mobilní klienti práve prihlásení na váš účet.", + "Device" : "Zariadenie", + "Last activity" : "Posledná aktivita", + "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", + "App name" : "Názov aplikácie", + "Create new app password" : "Vytvoriť nové heslo aplikácie", + "Use the credentials below to configure your app or device." : "Pre konfiguráciu vašej aplikácie, alebo zariadenia použite nižšie uvedené prihlasovacie údaje.", + "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 Plus!" : "Sleduj nás na Google Plus!", "Show storage location" : "Zobraziť umiestnenie úložiska", "Show last log in" : "Zobraziť posledné prihlásenie", "Show user backend" : "Zobraziť backend používateľa", @@ -195,24 +282,37 @@ "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", + "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\")", "Other" : "Iné", + "Group admin for" : "Administrátor skupiny pre", "Quota" : "Kvóta", + "Storage location" : "Umiestnenie úložiska", + "User backend" : "Backend používateľa", + "Last login" : "Posledné prihlásenie", "change full name" : "zmeniť meno a priezvisko", "set new password" : "nastaviť nové heslo", "change email address" : "zmeniť emailovú adresu", "Default" : "Predvolené", "log-level out of allowed range" : "úroveň logovania z povoleného rozpätia", "Language changed" : "Jazyk zmenený", + "Admins can't remove themself from the admin group" : "Administrátori nesmú odstrániť sami seba zo skupiny admin", + "Unable to add user to group %s" : "Nie je možné pridať používateľa do skupiny %s", + "Unable to remove user from group %s" : "Nie je možné odstrániť používateľa zo skupiny %s", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Ste si istí, že chcete pridať \"{domain}\" medzi dôveryhodné domény?", + "Please wait...." : "Čakajte prosím...", + "iPhone" : "iPhone", + "add group" : "pridať skupinu", "Everything (fatal issues, errors, warnings, info, debug)" : "Všetko (fatálne problémy, chyby, upozornenia, info, debug)", "Info, warnings, errors and fatal issues" : "Info, upozornenia, chyby a fatálne problémy", "Warnings, errors and fatal issues" : "Upozornenia, chyby a fatálne problémy", "Errors and fatal issues" : "Chyby a fatálne problémy", "Fatal issues only" : "Len fatálne problémy", "Log" : "Záznam", + "What to log" : "Čo sa má zaznamenávať", "Download logfile" : "Stiahnuť súbor logu", "More" : "Viac", "Less" : "Menej", @@ -223,13 +323,17 @@ "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Najmä pri používaní aplikácie na synchronizáciu s desktopom nie je databáza SQLite doporučená.", "Experimental applications ahead" : "Experimentálna aplikácia v poradí", "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimentálne aplikácie nie sú preverované na bezpečnostné chyby, môžu byť nestabilné a veľmi sa meniť. Ich inštaláciou môžete spôsobiť stratu dát alebo bezpečnostné problémy.", + "Uninstall App" : "Odinštalovanie aplikácie", "Enable experimental apps" : "Povoliť experimentálne aplikácie", "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Dobrý deň,
toto je oznámenie o novo vytvorenom účte %s.
Vaše používateľské meno: %s
Prihlásiť sa môžete tu: %s
", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Ahoj,\n\ntoto je oznámenie o novo vytvorenom účte %s.\n\nVaše používateľské meno: %s\nPrihlásiť sa môžete tu: %s\n\n", + "Add Group" : "Pridať skupinu", "Group" : "Skupina", - "APCu" : "APCu", - "Redis" : "Redis", - "External Storage" : "Externé úložisko", - "Updates" : "Aktualizácie" + "Default Quota" : "Predvolená kvóta", + "Full Name" : "Meno a priezvisko", + "Group Admin for" : "Administrátor skupiny pre", + "Storage Location" : "Umiestnenie úložiska", + "User Backend" : "Backend používateľa", + "Last Login" : "Posledné prihlásenie" },"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" } \ No newline at end of file diff --git a/settings/l10n/sl.js b/settings/l10n/sl.js index 4cec0ddce20b98775178999da52d80ef29d5cf68..35b1758f16b9a82dda58fc4e617dad85d57f2643 100644 --- a/settings/l10n/sl.js +++ b/settings/l10n/sl.js @@ -35,9 +35,6 @@ OC.L10N.register( "Unable to change mail address" : "Ni mogoče spremeniti naslova elektronske pošte.", "Email saved" : "Elektronski naslov je shranjen", "Couldn't remove app." : "Ni mogoče odstraniti programa.", - "Admins can't remove themself from the admin group" : "Skrbnikov ni mogoče odstraniti iz skupine skrbnikov (admin)", - "Unable to add user to group %s" : "Uporabnika ni mogoče dodati k skupini %s", - "Unable to remove user from group %s" : "Uporabnika ni mogoče odstraniti iz skupine %s", "Couldn't update app." : "Programa ni mogoče posodobiti.", "Add trusted domain" : "Dodaj varno domeno", "Migration in progress. Please wait until the migration is finished" : "V teku je selitev. Počakajte, da se zaključi.", @@ -49,7 +46,6 @@ OC.L10N.register( "_You have %n app update pending_::_You have %n app updates pending_" : ["Na čakanju je %n posodobitev","Na čakanju sta %n posodobitvi","Na čakanju so %n posodobitve","Na čakanju je %n posodobitev"], "No apps found for your version" : "Za to različico ni na voljo noben vstavek", "The app will be downloaded from the app store" : "Program bo prejet iz zbirke programov", - "Please wait...." : "Počakajte ...", "Error while disabling app" : "Napaka onemogočanja programa", "Disable" : "Onemogoči", "Enable" : "Omogoči", @@ -180,7 +176,6 @@ OC.L10N.register( "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ta aplikacija nima določene maksimalne NextCloud verzije. V prihodnosti bo to napaka.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Programa ni mogoče namestiti zaradi nerešenih odvisnosti:", "Enable only for specific groups" : "Omogoči le za posamezne skupine", - "Uninstall App" : "Odstrani program", "SSL Root Certificates" : "Korenska potrdila SSL", "Common Name" : "Splošno ime", "Valid until" : "Veljavno do", @@ -244,7 +239,11 @@ OC.L10N.register( "Default" : "Privzeto", "log-level out of allowed range" : "stopnja zapisovanja je izven dovoljenega območja", "Language changed" : "Jezik je spremenjen", + "Admins can't remove themself from the admin group" : "Skrbnikov ni mogoče odstraniti iz skupine skrbnikov (admin)", + "Unable to add user to group %s" : "Uporabnika ni mogoče dodati k skupini %s", + "Unable to remove user from group %s" : "Uporabnika ni mogoče odstraniti iz skupine %s", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Ali ste prepričani, da želite dodati \"{domain}\" kot varno domeno?", + "Please wait...." : "Počakajte ...", "Everything (fatal issues, errors, warnings, info, debug)" : "Vse (podrobnosti, opozorila, hrošče, napake in usodne dogodke)", "Info, warnings, errors and fatal issues" : "Podrobnosti, opozorila, napake in usodne dogodke", "Warnings, errors and fatal issues" : "Opozorila, napake in usodne dogodke", @@ -261,14 +260,10 @@ OC.L10N.register( "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "Uporabljena zbirka je SQLite. Za obsežnejše sisteme je priporočljiv prehod na drugo vrsto zbirke.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Uporaba SQLite ni priporočljiva iz varnostnih razlogov, to še posebej velja, če se sistem krajevno usklajuje z namizjem prek odjemalca.", "Experimental applications ahead" : "Preizkusni programi", + "Uninstall App" : "Odstrani program", "Enable experimental apps" : "Omogoči preizkusne programe", "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Pozdravljeni,
obveščamo vas, da je račun %s pripravljen.
Uporabniško ime: %s
Dostop: %s
", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Pozdravljeni,\n\nobveščamo vas, da je račun %s pripravljen.\n\nUporabniško ime: %s\nDostop: %s\n", - "Group" : "Skupina", - "APCu" : "APCu", - "Redis" : "Redis", - "External Storage" : "Zunanja podatkovna shramba", - "Updates" : "Posodobitve", - "An error occurred: {message}" : "Prišlo je do napake: {message}" + "Group" : "Skupina" }, "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"); diff --git a/settings/l10n/sl.json b/settings/l10n/sl.json index 7fb4fdd940249a16fcefb9e03e913950faa3b13b..e4a83311a03bb0ca590bf3ae3c21552de97eab84 100644 --- a/settings/l10n/sl.json +++ b/settings/l10n/sl.json @@ -33,9 +33,6 @@ "Unable to change mail address" : "Ni mogoče spremeniti naslova elektronske pošte.", "Email saved" : "Elektronski naslov je shranjen", "Couldn't remove app." : "Ni mogoče odstraniti programa.", - "Admins can't remove themself from the admin group" : "Skrbnikov ni mogoče odstraniti iz skupine skrbnikov (admin)", - "Unable to add user to group %s" : "Uporabnika ni mogoče dodati k skupini %s", - "Unable to remove user from group %s" : "Uporabnika ni mogoče odstraniti iz skupine %s", "Couldn't update app." : "Programa ni mogoče posodobiti.", "Add trusted domain" : "Dodaj varno domeno", "Migration in progress. Please wait until the migration is finished" : "V teku je selitev. Počakajte, da se zaključi.", @@ -47,7 +44,6 @@ "_You have %n app update pending_::_You have %n app updates pending_" : ["Na čakanju je %n posodobitev","Na čakanju sta %n posodobitvi","Na čakanju so %n posodobitve","Na čakanju je %n posodobitev"], "No apps found for your version" : "Za to različico ni na voljo noben vstavek", "The app will be downloaded from the app store" : "Program bo prejet iz zbirke programov", - "Please wait...." : "Počakajte ...", "Error while disabling app" : "Napaka onemogočanja programa", "Disable" : "Onemogoči", "Enable" : "Omogoči", @@ -178,7 +174,6 @@ "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ta aplikacija nima določene maksimalne NextCloud verzije. V prihodnosti bo to napaka.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Programa ni mogoče namestiti zaradi nerešenih odvisnosti:", "Enable only for specific groups" : "Omogoči le za posamezne skupine", - "Uninstall App" : "Odstrani program", "SSL Root Certificates" : "Korenska potrdila SSL", "Common Name" : "Splošno ime", "Valid until" : "Veljavno do", @@ -242,7 +237,11 @@ "Default" : "Privzeto", "log-level out of allowed range" : "stopnja zapisovanja je izven dovoljenega območja", "Language changed" : "Jezik je spremenjen", + "Admins can't remove themself from the admin group" : "Skrbnikov ni mogoče odstraniti iz skupine skrbnikov (admin)", + "Unable to add user to group %s" : "Uporabnika ni mogoče dodati k skupini %s", + "Unable to remove user from group %s" : "Uporabnika ni mogoče odstraniti iz skupine %s", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Ali ste prepričani, da želite dodati \"{domain}\" kot varno domeno?", + "Please wait...." : "Počakajte ...", "Everything (fatal issues, errors, warnings, info, debug)" : "Vse (podrobnosti, opozorila, hrošče, napake in usodne dogodke)", "Info, warnings, errors and fatal issues" : "Podrobnosti, opozorila, napake in usodne dogodke", "Warnings, errors and fatal issues" : "Opozorila, napake in usodne dogodke", @@ -259,14 +258,10 @@ "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "Uporabljena zbirka je SQLite. Za obsežnejše sisteme je priporočljiv prehod na drugo vrsto zbirke.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Uporaba SQLite ni priporočljiva iz varnostnih razlogov, to še posebej velja, če se sistem krajevno usklajuje z namizjem prek odjemalca.", "Experimental applications ahead" : "Preizkusni programi", + "Uninstall App" : "Odstrani program", "Enable experimental apps" : "Omogoči preizkusne programe", "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Pozdravljeni,
obveščamo vas, da je račun %s pripravljen.
Uporabniško ime: %s
Dostop: %s
", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Pozdravljeni,\n\nobveščamo vas, da je račun %s pripravljen.\n\nUporabniško ime: %s\nDostop: %s\n", - "Group" : "Skupina", - "APCu" : "APCu", - "Redis" : "Redis", - "External Storage" : "Zunanja podatkovna shramba", - "Updates" : "Posodobitve", - "An error occurred: {message}" : "Prišlo je do napake: {message}" + "Group" : "Skupina" },"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);" } \ No newline at end of file diff --git a/settings/l10n/sq.js b/settings/l10n/sq.js index d419481a36f1e43d900ca831a9a6b937b899b3a1..0f55b61956ebeb2a4b175fc5df25d83f485e51d6 100644 --- a/settings/l10n/sq.js +++ b/settings/l10n/sq.js @@ -26,23 +26,25 @@ OC.L10N.register( "Invalid request" : "Kërkesë e pavlefshme", "Invalid mail address" : "Adresë email e pavlefshme", "A user with that name already exists." : "Ka tashmë një përdorues me këtë emër.", - "Unable to create user." : "S’arrin të krijojë përdoruesi.", + "Unable to create user." : "S’u arrit krijimi i përdoruesit.", "Your %s account was created" : "Llogaria juaj %s u krijua", "Unable to delete user." : "S’arrin të fshijë përdorues.", + "Settings saved" : "Konfigurimet u ruajtën", "Unable to change full name" : "S’arrin të ndryshojë emrin e plotë", + "Unable to change email address" : "Nuk mund të ndryshohet adresa e email-it", "Your full name has been changed." : "Emri juaj i plotë u ndryshua.", "Forbidden" : "E ndaluar", "Invalid user" : "Përdorues i pavlefshëm", "Unable to change mail address" : "S’arrin të ndryshojë adresë email", "Email saved" : "Email-i u ruajt", + "Password confirmation is required" : "Kërkohet konfirmimi i fjalëkalimit", "Couldn't remove app." : "S’hoqi dot aplikacionin.", - "Admins can't remove themself from the admin group" : "Administratorët s’mund të heqin veten prej grupit admin", - "Unable to add user to group %s" : "S’arrin të shtojë përdorues te grupi %s", - "Unable to remove user from group %s" : "S’arrin të heqë përdorues nga grupi %s", "Couldn't update app." : "S’përditësoi dot aplikacionin.", + "Are you really sure you want add {domain} as trusted domain?" : "Jeni i sigurt se doni ta shtoni {domain} si një domain të besuar?", "Add trusted domain" : "Shtoni përkatësi të besuar", "Migration in progress. Please wait until the migration is finished" : "Migrimi në rrugë e sipër. Ju lutemi, pritni, teksa migrimi përfundon", "Migration started …" : "Migrimi filloi …", + "Not saved" : "Nuk u ruajt", "Sending..." : "Po dërgohet…", "Official" : "Zyrtare", "All" : "Krejt", @@ -50,9 +52,10 @@ OC.L10N.register( "_You have %n app update pending_::_You have %n app updates pending_" : ["Keni %n përditësim aplikacioni në pritje","Keni %n përditësime aplikacionesh në pritje"], "No apps found for your version" : "S’u gjetën aplikacione për versionin tuaj", "The app will be downloaded from the app store" : "Aplikacioni do të shkarkohet nga shitorja e aplikacioneve", + "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Aplikacionet zyrtare zhvillohen nga komuniteti dhe brenta tij. Ato ofrojnë funksionalitet qëndror dhe janë gati për përdorim.", "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." : "Aplikacionet e miratuara ndërtohen nga zhvillues të besuar dhe kanë kaluar një kontroll të përciptë sigurie. Mirëmbahen aktivisht në një depo të hapur kodi dhe mirëmbajtësit e tyre i konsiderojnë të qëndrueshme për përdorime nga të rastit deri në ato normale.", "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Ky aplikacion s’është kontrolluar për probleme sigurie dhe është i ri ose i njohur si i paqëndrueshëm. Instalojeni duke e mbajtur vetë përgjegjësinë.", - "Please wait...." : "Ju lutemi, prisni…", + "Enabling app …" : "Duke aktivizuar aplikacionin ...", "Error while disabling app" : "Gabim në çaktivizimin e aplikacionit", "Disable" : "Çaktivizoje", "Enable" : "Aktivizoje", @@ -71,13 +74,40 @@ OC.L10N.register( "Approved" : "Të miratuara", "Experimental" : "Eksperimentale", "No apps found for {query}" : "S’u gjetën aplikacione për {query}", + "Allow filesystem access" : "Lejo aksesin e sistemit të skedarëve", "Disconnect" : "Shkëputu", + "Revoke" : "Anulo", + "Internet Explorer" : "Internet Explorer", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google Chrome", + "Safari" : "Safari", + "Google Chrome for Android" : "Google Chrome për Android", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", + "iOS Client" : "Klient iOS", + "Android Client" : "Klient Android", + "Sync client - {os}" : "Sinkronizo klientin - {os}", + "This session" : "Ky sesion", + "Copy" : "Kopjo", + "Copied!" : "U kopjua!", + "Not supported!" : "Nuk suportohet!", + "Press ⌘-C to copy." : "Shtyp ⌘-C për të kopjuar.", + "Press Ctrl-C to copy." : "Shtyp Ctrl-C për të kopjuar.", "Error while loading browser sessions and device tokens" : "Gabim gjatë ngarkimit të sesioneve të shfletuesit dhe token-ësh pajisjesh", "Error while creating device token" : "Gabim gjatë krijimit të token-ëve të pajisjejeve", "Error while deleting the token" : "Gabim gjatë fshirjes së token-it", "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Ndodhi një gabim. Ju lutemi, ngarkoni një dëshmi PEM të koduar me ASCII.", "Valid until {date}" : "E vlefshme deri më {date}", "Delete" : "Fshije", + "Local" : "Lokale", + "Private" : "Private", + "Only visible to local users" : "E dukshme vetëm për përdoruesit lokal", + "Only visible to you" : "E dukshme vetëm për ju", + "Contacts" : "Kontaktet", + "Visible to local users and to trusted servers" : "E dukshme për përdoruesit lokal dhe serverat e besuar", + "Public" : "Publiku", + "Will be synced to a global and public address book" : "Do të sinkronizohet te një libër adresash publik dhe global", "Select a profile picture" : "Përzgjidhni një foto profili", "Very weak password" : "Fjalëkalim shumë i dobët", "Weak password" : "Fjalëkalim i dobët", @@ -92,7 +122,12 @@ OC.L10N.register( "undo" : "zhbëje", "never" : "kurrë", "deleted {userName}" : "u fshi {userName}", + "Add group" : "Shto grup", + "Invalid quota value \"{val}\"" : "Vlera e kuotës \"{val}\" e pavlefshme", + "no group" : "asnjë grup", + "Password successfully changed" : "Fjalëkalimi u ndryshua me sukses", "Changing the password will result in data loss, because data recovery is not available for this user" : "Ndryshimi i fjalëkalimit do të sjellë humbje të dhënash, ngaqë rikthimi i të dhënave s’është i përdorshëm për këtë përdorues", + "Could not change the users email" : "Nuk mund të ndryshohej email-i i përdoruesëve", "A valid username must be provided" : "Duhet dhënë një emër të vlefshëm përdoruesi", "Error creating user: {message}" : "Gabim gjatë krijimit të përdoruesit: {message}", "A valid password must be provided" : "Duhet dhënë një fjalëkalim i vlefshëm", @@ -107,6 +142,8 @@ OC.L10N.register( "Login" : "Hyrje", "Plain" : "E thjeshtë", "NT LAN Manager" : "Përgjegjës Rrjeti NT", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", "Email server" : "Shërbyes email-esh", "Open documentation" : "Hapni dokumentimin", "This is used for sending out notifications." : "Ky përdoret për të dërguar njoftime.", @@ -128,6 +165,7 @@ OC.L10N.register( "Enable server-side encryption" : "Aktivizo fshehtëzim më anë të shërbyesit", "Please read carefully before activating server-side encryption: " : "Ju lutemi, lexoni me kujdes përpara aktivizimit të fshehtëzimeve më anë shërbyesi: ", "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." : "Pasi të jetë aktivizuar fshehtëzimi, krejt kartelat e ngarkuara te shërbyesi nga kjo pikë e tutje do të fshehtëzohen pasi të jenë depozituar në shërbyes. Çaktivizimi i fshehtëzimit në një datë të mëvonshme do të jetë i mundur vetëm nëse moduli aktiv i fshehtëzimeve e mbulon këtë funksion, dhe nëse plotësohen krejt parakushtet (p.sh. caktimi i një kyçi rimarrjesh).", + "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." : "Vetëm shifrimi nuk garaton sigurinë e sistemit. Ju lutem shikoni dokumentimin për më shumë informacion mbi mënyrën si applikacioni punon, dhe përdorimin e rasteve të suportuara.", "Be aware that encryption always increases the file size." : "Kini parasysh që fshehtëzimi e rrit gjithnjë madhësinë e kartelës.", "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." : "Është gjithmonë ide e mirë të krijohen kopjeruajtje të rregullta të të dhënave tuaja, në rast fshehtëzimi sigurohuni që bëni kopjeruajtje të kyçeve të fshehtëzimit, tok me të dhënat tuaja.", "This is the final warning: Do you really want to enable encryption?" : "Ky është sinjalizimi përfundimtar: Doni vërtet të aktivizohet fshehtëzimi?", @@ -143,6 +181,7 @@ OC.L10N.register( "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." : "Rregullimi Vetëm-Lexim u aktivizua. Kjo parandalon rregullimin e disa parametrave përmes ndërfaqes web. Më tej, për çdo përditësim kartela lyp të kalohet dorazi si e shkrueshme.", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Duket se PHP-ja është rregulluar që të heqë blloqe të brendshme dokumentimi. Kjo do t’i bëjë të papërdrshme disa aplikacione bazë.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Kjo ka gjasa të jetë shkaktuar nga një fshehtinë/përshpejtues i tillë si Zend OPcache ose eAccelerator.", + "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Baza juaj e të dhënave nuk ekzekutohet me nivelin \"READ COMMITED\" e izolimit për ndërveprimet. Kjo mund të shkaktojë probleme, kur kryhen paralelisht disa veprime njëherësh.", "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "Ka të instaluar %1$s nën versionin %2$s, për arsye qëndrueshmërie dhe performance këshillojmë të përditësohet me një version %1$s më të ri.", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Moduli PHP 'fileinfo' mungon. Ju këshillojmë me forcë ta aktivizoni këtë modul, për të patur përfundimet më të mira në zbulim llojesh 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 documentation ↗ for more information." : "Kyçja e kartelave gjatë transaksioneve është e çaktivizuar, kjo mund të sjellë probleme me gjendje race conditions. Që të shmangni këto probleme, aktivizoni 'filelocking.enabled' te config.php. Për më tepër të dhëna, shihni dokumentimin ↗.", @@ -151,6 +190,7 @@ OC.L10N.register( "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Këshillojmë me forcë instalimin në sistemin tuaj të paketave të domosdoshme për mbulim të një prej vendoreve vijuese: %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\")" : "Nëse instalimi juaj nuk është bërë në rrënjë të përkatësisë dhe përdor cron sistemi, mund të ketë probleme me prodhimin e URL-së. Që të shmangen këto probleme, ju lutemi, jepini mundësisë \"overwrite.cli.url\" te kartela juaj config.php vlerën e shtegut webroot të instalimit tuaj (E këshillueshme: \"%s\")", "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "S’qe e mundur të përmbushej akti cron përmes CLI-së. U shfaqën gabimet teknike vijuese:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Ju lutem riverifikoni udhëzuesin e instalimit ,, dhe kontrolloni për ndonjë gabim apo njoftim paraprak në log.", "All checks passed." : "I kaloi krejt kontrollet.", "Cron" : "Cron", "Last cron job execution: %s." : "Përmbushja e fundit e aktit cron: %s.", @@ -159,6 +199,8 @@ OC.L10N.register( "Execute one task with each page loaded" : "Kryeni vetëm një veprim me secilën prej faqeve të ngarkuara", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php është regjistruar te një shërbim webcron që ta aktivizojë cron.php-në çdo 15 minuta përmes http-je.", "Use system's cron service to call the cron.php file every 15 minutes." : "Përdorni shërbimin cron të sistemit që ta aktivizojë cron.php-në çdo 15 minuta.", + "The cron.php needs to be executed by the system user \"%s\"." : "con.php duhet të ekzekutohet bga përdoruesi i sistemit \"%s\".", + "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Për të bërë këtë ekzekutim ju duhet shtesa PHP posix. Shikoni {linkstart} dokumentacionin e PHP {linkend} pë më shumë detaje.", "Version" : "Version", "Sharing" : "Ndarje me të tjerët", "Allow apps to use the Share API" : "Lejoni aplikacionet të përdorin API Share", @@ -175,7 +217,11 @@ OC.L10N.register( "Exclude groups from sharing" : "Përjashtoni grupe nga ndarjet", "These groups will still be able to receive shares, but not to initiate them." : "Këto grupe prapë do të jenë në gjendje të marrin ndarje nga të tjerët, por jo të fillojnë të tilla.", "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Lejo vetëplotësim emra përdoruesish te dialogu i ndarjeve me të tjerët. Nëse kjo është e çaktivizuar, do të duhet të jepen emra përdoruesish.", + "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Shfaqni tekstin e mospranimit në linkun publik të faqes së ngarkuar. (Shfaqet vetëm kur lista e skedarit është e fshehur.)", + "This text will be shown on the public link upload page when the file list is hidden." : "Ky tekst do të shfaqet në linkun publik të faqes së ngarkuar kur lista e skedarit të jetë e fshehur.", "Tips & tricks" : "Ndihmëza & rrengje", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite po përdoret si bazë të dhënash e programit klient. Për instalime më të ngarkuara, këshillojmë të kalohet në një program tjetër klient baze të dhënash.", + "This is particularly recommended when using the desktop client for file synchronisation." : "Kjo është veçanërisht e rekomanduar gjatë përdorimit të desktopit të klientit për sinkronizimin skedari. ", "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Për të kaluar te një tjetër bazë të dhënash përdorni mjetin rresht urdhrash: 'occ db:convert-type', ose shihni dokumentimin ↗.", "How to do backups" : "Si të bëhen kopjeruajtje", "Advanced monitoring" : "Mbikëqyrje e mëtejshme", @@ -194,19 +240,24 @@ OC.L10N.register( "Show description …" : "Shfaq përshkrim …", "Hide description …" : "Fshihe përshkrimin …", "This app has an update available." : "Ka gati një përditësim për këtë aplikacion.", + "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Ky aplikacion nuk ka të caktuar një minimum versioni të Nextcloud. Ky do të jetë një gabim në të ardhmen.", + "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Ky aplikacion nuk ka të caktuar një maksimum versioni të Nextcloud. Ky do të jetë një gabim në të ardhmen.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Ky aplikacion s’mund të instalohet, ngaqë për të nuk plotësohen varësitë vijuese:", "Enable only for specific groups" : "Aktivizoje vetëm për grupe të veçantë", - "Uninstall App" : "Çinstaloje Aplikacionin", + "Uninstall app" : "Çinstaloje Aplikacionin", "SSL Root Certificates" : "Dëshmi SSL Rrënjë", "Common Name" : "Emër i Rëndomtë", "Valid until" : "E vlefshme deri më", "Issued By" : "Lëshuar Nga", "Valid until %s" : "E vlefshme deri më %s", "Import root certificate" : "Importoni dëshmi rrënjë", + "Hey there,
just letting you know that you now have a %s account.
Your username: %s
Access it: %s
" : "Njatjeta,
thjesht po ju bëjmë të ditur që tani keni një llogari %s.
Emri juaj i përdoruesit: %s
Hyni në të te: %s
", "Cheers!" : "Gëzuar!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Njatjeta,\n\nthjesht po ju bëjmë të ditur që tani keni një llogari %s.\n\nEmri juaj i përdoruesit: %s\nHyni në të te: %s\n\n", "Administrator documentation" : "Dokumentim për përgjegjës", "Online documentation" : "Dokumentim në Internet", "Forum" : "Forum", + "Getting help" : "Kërkoni ndihmë", "Commercial support" : "Asistencë komerciale", "You are using %s of %s" : "Po përdorni %s nga %s", "Profile picture" : "Foto profili", @@ -223,6 +274,14 @@ OC.L10N.register( "Your email address" : "Adresa juaj email", "No email address set" : "S’është caktuar adresë email", "For password recovery and notifications" : "Për rimarrje fjalëkalimesh dhe njoftime ", + "Phone number" : "Numri i telefonit", + "Your phone number" : "Numri juaj i telefonit", + "Address" : "Adresa", + "Your postal address" : "Adresa juaj postale", + "Website" : "Website", + "Your website" : "Website-i juaj", + "Twitter" : "Twitter", + "Your Twitter handle" : "Emri i përdoruesit tuaj në Twitter", "You are member of the following groups:" : "Jeni anëtar i grupeve vijuese:", "Password" : "Fjalëkalim", "Current password" : "Fjalëkalimi i tanishëm", @@ -234,12 +293,25 @@ OC.L10N.register( "Desktop client" : "Klient desktopi", "Android app" : "Aplikacion për Android", "iOS app" : "Aplikacion për iOS", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Nëse doni të mbështesni projektin {contributeopen} bashkohu me grupin e zhvillimit {linkclose} ose {contributeopen} përhap fjalën {linkclose}!", "Show First Run Wizard again" : "Shfaqe sërish Ndihmësin e Herës së Parë", + "Web, desktop and mobile clients currently logged in to your account." : "Klientë në rrjet, desktop dhe celular kanë hyrë aktualisht në llogarinë tuaj.", + "Device" : "Pajisje", + "Last activity" : "Aktiviteti i fundit", + "Passcodes that give an app or device permissions to access your account." : "Fjalëkalimet të cilat i japin një aplikacioni ose pajisje lejen për të aksesuar llogarinë tuaj.", "Name" : "Emër", "App name" : "Emër aplikacioni", "Create new app password" : "Krijoni fjalëkalim aplikacioni të ri", + "Use the credentials below to configure your app or device." : "Përdorni kredencialet e mëposhtme për të konfiguruar aplikacionin apo pajisjen tuaj.", + "For security reasons this password will only be shown once." : "Për arsye siguri ky fjalëkalim do të shofaqet vetëm një herv.", "Username" : "Emër përdoruesi", "Done" : "U bë", + "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Zhvilluar nga {communityopen}komuniteti Nextcloud {linkclose}, {githubopen}kodi i hapur{linkclose} iështë licensuar sipar {licenseopen}AGPL{linkclose}.", + "Follow us on Google Plus!" : "Na ndiqni në Google Plus!", + "Like our facebook page!" : "Pëlqeni faqen tonë në facebook!", + "Subscribe to our twitter channel!" : "Abonohuni në kanalin tonë në twitter!", + "Subscribe to our news feed!" : "Abonohuni në kanalin tonë në twitter!", + "Subscribe to our newsletter!" : "Abonohuni në buletinin tonë informativ!", "Show storage location" : "Shfaq vendndodhje depozite", "Show last log in" : "Shfaq hyrjen e fundit", "Show user backend" : "Shfaq programin klient të përdoruesit", @@ -249,18 +321,30 @@ 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ë", + "Default quota" : "Kuota Parazgjedhje", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Ju lutemi, jepni kuotë depozitimi (psh: \"512 MB\" ose \"12 GB\")", "Other" : "Tjetër", + "Group admin for" : "Administratori i grupit për", "Quota" : "Kuota", + "Storage location" : "Vendndodhje Depozite", + "User backend" : "Program klient i përdoruesit", + "Last login" : "Hyrja e fundit", "change full name" : "ndryshoni emrin e plotë", "set new password" : "caktoni fjalëkalim të ri", "change email address" : "ndryshoni adresën email", "Default" : "Parazgjedhje", "log-level out of allowed range" : "nivel regjistrimi jashtë intervalit të lejuar", "Language changed" : "Gjuha u ndryshua", + "Admins can't remove themself from the admin group" : "Administratorët s’mund të heqin veten prej grupit admin", + "Unable to add user to group %s" : "S’arrin të shtojë përdorues te grupi %s", + "Unable to remove user from group %s" : "S’arrin të heqë përdorues nga grupi %s", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Jeni vërtet i sigurt se doni të shtoni \"{domain}\" si përkatësi të besuar?", + "Please wait...." : "Ju lutemi, prisni…", + "iPhone" : "iPhone", + "add group" : "shtoni grup", "Everything (fatal issues, errors, warnings, info, debug)" : "Gjithçka (probleme fatale, gabime, sinjalizime, të dhëna, diagnostikim)", "Info, warnings, errors and fatal issues" : "Të dhëna, sinjalizime, gabime dhe probleme fatale", "Warnings, errors and fatal issues" : "Sinjalizime, gabime dhe probleme fatale", @@ -278,14 +362,18 @@ OC.L10N.register( "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Përdorimi i SQLite-it nuk këshillohet veçanërisht kur përdoret klienti desktop për njëkohësim kartelash.", "Experimental applications ahead" : "Keni përpara aplikacione eksperimentale", "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Aplikacionet eksperimentale nuk kontrollohen për probleme sigurie, mund të jenë të rinj ose të njohur si të paqëndrueshëm, dhe nën zhvillim intensiv. Instalimi i tyre mund të shkaktojë humbje të dhënash ose cenim të sigurisë.", + "Uninstall App" : "Çinstaloje Aplikacionin", "Enable experimental apps" : "Aktivizo aplikacione eksperimentale", "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Njatjeta,
thjesht po ju bëjmë të ditur që tani keni një llogar %s.
Emri juaj i përdoruesit: %s
Hyni në të te: %s
", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Njatjeta,\n\nthjesht po ju bëjmë të ditur që tani keni një llogari %s.\n\nEmri juaj i përdoruesit: %s\nHyni në të te: %s\n\n", + "If you want to support the project\n\t\tjoin development\n\t\t
just letting you know that you now have a %s account.
Your username: %s
Access it: %s
" : "Njatjeta,
thjesht po ju bëjmë të ditur që tani keni një llogari %s.
Emri juaj i përdoruesit: %s
Hyni në të te: %s
", "Cheers!" : "Gëzuar!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Njatjeta,\n\nthjesht po ju bëjmë të ditur që tani keni një llogari %s.\n\nEmri juaj i përdoruesit: %s\nHyni në të te: %s\n\n", "Administrator documentation" : "Dokumentim për përgjegjës", "Online documentation" : "Dokumentim në Internet", "Forum" : "Forum", + "Getting help" : "Kërkoni ndihmë", "Commercial support" : "Asistencë komerciale", "You are using %s of %s" : "Po përdorni %s nga %s", "Profile picture" : "Foto profili", @@ -221,6 +272,14 @@ "Your email address" : "Adresa juaj email", "No email address set" : "S’është caktuar adresë email", "For password recovery and notifications" : "Për rimarrje fjalëkalimesh dhe njoftime ", + "Phone number" : "Numri i telefonit", + "Your phone number" : "Numri juaj i telefonit", + "Address" : "Adresa", + "Your postal address" : "Adresa juaj postale", + "Website" : "Website", + "Your website" : "Website-i juaj", + "Twitter" : "Twitter", + "Your Twitter handle" : "Emri i përdoruesit tuaj në Twitter", "You are member of the following groups:" : "Jeni anëtar i grupeve vijuese:", "Password" : "Fjalëkalim", "Current password" : "Fjalëkalimi i tanishëm", @@ -232,12 +291,25 @@ "Desktop client" : "Klient desktopi", "Android app" : "Aplikacion për Android", "iOS app" : "Aplikacion për iOS", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Nëse doni të mbështesni projektin {contributeopen} bashkohu me grupin e zhvillimit {linkclose} ose {contributeopen} përhap fjalën {linkclose}!", "Show First Run Wizard again" : "Shfaqe sërish Ndihmësin e Herës së Parë", + "Web, desktop and mobile clients currently logged in to your account." : "Klientë në rrjet, desktop dhe celular kanë hyrë aktualisht në llogarinë tuaj.", + "Device" : "Pajisje", + "Last activity" : "Aktiviteti i fundit", + "Passcodes that give an app or device permissions to access your account." : "Fjalëkalimet të cilat i japin një aplikacioni ose pajisje lejen për të aksesuar llogarinë tuaj.", "Name" : "Emër", "App name" : "Emër aplikacioni", "Create new app password" : "Krijoni fjalëkalim aplikacioni të ri", + "Use the credentials below to configure your app or device." : "Përdorni kredencialet e mëposhtme për të konfiguruar aplikacionin apo pajisjen tuaj.", + "For security reasons this password will only be shown once." : "Për arsye siguri ky fjalëkalim do të shofaqet vetëm një herv.", "Username" : "Emër përdoruesi", "Done" : "U bë", + "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Zhvilluar nga {communityopen}komuniteti Nextcloud {linkclose}, {githubopen}kodi i hapur{linkclose} iështë licensuar sipar {licenseopen}AGPL{linkclose}.", + "Follow us on Google Plus!" : "Na ndiqni në Google Plus!", + "Like our facebook page!" : "Pëlqeni faqen tonë në facebook!", + "Subscribe to our twitter channel!" : "Abonohuni në kanalin tonë në twitter!", + "Subscribe to our news feed!" : "Abonohuni në kanalin tonë në twitter!", + "Subscribe to our newsletter!" : "Abonohuni në buletinin tonë informativ!", "Show storage location" : "Shfaq vendndodhje depozite", "Show last log in" : "Shfaq hyrjen e fundit", "Show user backend" : "Shfaq programin klient të përdoruesit", @@ -247,18 +319,30 @@ "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ë", + "Default quota" : "Kuota Parazgjedhje", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Ju lutemi, jepni kuotë depozitimi (psh: \"512 MB\" ose \"12 GB\")", "Other" : "Tjetër", + "Group admin for" : "Administratori i grupit për", "Quota" : "Kuota", + "Storage location" : "Vendndodhje Depozite", + "User backend" : "Program klient i përdoruesit", + "Last login" : "Hyrja e fundit", "change full name" : "ndryshoni emrin e plotë", "set new password" : "caktoni fjalëkalim të ri", "change email address" : "ndryshoni adresën email", "Default" : "Parazgjedhje", "log-level out of allowed range" : "nivel regjistrimi jashtë intervalit të lejuar", "Language changed" : "Gjuha u ndryshua", + "Admins can't remove themself from the admin group" : "Administratorët s’mund të heqin veten prej grupit admin", + "Unable to add user to group %s" : "S’arrin të shtojë përdorues te grupi %s", + "Unable to remove user from group %s" : "S’arrin të heqë përdorues nga grupi %s", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Jeni vërtet i sigurt se doni të shtoni \"{domain}\" si përkatësi të besuar?", + "Please wait...." : "Ju lutemi, prisni…", + "iPhone" : "iPhone", + "add group" : "shtoni grup", "Everything (fatal issues, errors, warnings, info, debug)" : "Gjithçka (probleme fatale, gabime, sinjalizime, të dhëna, diagnostikim)", "Info, warnings, errors and fatal issues" : "Të dhëna, sinjalizime, gabime dhe probleme fatale", "Warnings, errors and fatal issues" : "Sinjalizime, gabime dhe probleme fatale", @@ -276,14 +360,18 @@ "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Përdorimi i SQLite-it nuk këshillohet veçanërisht kur përdoret klienti desktop për njëkohësim kartelash.", "Experimental applications ahead" : "Keni përpara aplikacione eksperimentale", "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Aplikacionet eksperimentale nuk kontrollohen për probleme sigurie, mund të jenë të rinj ose të njohur si të paqëndrueshëm, dhe nën zhvillim intensiv. Instalimi i tyre mund të shkaktojë humbje të dhënash ose cenim të sigurisë.", + "Uninstall App" : "Çinstaloje Aplikacionin", "Enable experimental apps" : "Aktivizo aplikacione eksperimentale", "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Njatjeta,
thjesht po ju bëjmë të ditur që tani keni një llogar %s.
Emri juaj i përdoruesit: %s
Hyni në të te: %s
", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Njatjeta,\n\nthjesht po ju bëjmë të ditur që tani keni një llogari %s.\n\nEmri juaj i përdoruesit: %s\nHyni në të te: %s\n\n", + "If you want to support the project\n\t\tjoin development\n\t\t
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Поздрав,
само вас обавештавам да сад имате %s налог.
Ваше корисничко име: %s
Приступите му на: %s
", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Поздрав.\n\nСамо да знате да сада имате %s налог.\n\nВаше корисничко име: %s\nПриступите му на: %s\n", - "Group" : "Група", - "APCu" : "APCu", - "Redis" : "Redis", - "External Storage" : "Спољашње складиште", - "Updates" : "Ажурирања" + "Group" : "Група" }, "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/settings/l10n/sr.json b/settings/l10n/sr.json index 20567600fbda99f07d78ec2d6d6b320b9dd4dbda..399d1df09a352881b7e4fde3fba1bd58fa29dd62 100644 --- a/settings/l10n/sr.json +++ b/settings/l10n/sr.json @@ -32,9 +32,6 @@ "Unable to change mail address" : "Не могу да изменим е-адресу", "Email saved" : "Е-порука сачувана", "Couldn't remove app." : "Не могу да уклоним апликацију.", - "Admins can't remove themself from the admin group" : "Администратор не може себе да уклони из admin групе", - "Unable to add user to group %s" : "Не могу да додам корисника у групу %s", - "Unable to remove user from group %s" : "Не могу да уклоним корисника из групе %s", "Couldn't update app." : "Не могу да ажурирам апликацију.", "Add trusted domain" : "Додај поуздан домен", "Migration in progress. Please wait until the migration is finished" : "Пресељење је у току. Сачекајте док се не заврши", @@ -46,7 +43,6 @@ "No apps found for your version" : "Нема апликација за вашу верзију", "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Одобрене апликације су развили проверени програмери и апликације су прошле основне безбедносне провере. Оне се активно одржавају у репозиторијуму за апликације отвореног кода и њихови одржаватељи сматрају да су стабилне за уобичајену употребу.", "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Ова апликација није проверена по питању безбедности и нова је или зна да буде нестабилна. Инсталирате је на сопствену одговорност.", - "Please wait...." : "Сачекајте…", "Error while disabling app" : "Грешка при искључивању апликације", "Disable" : "Искључи", "Enable" : "Укључи", @@ -159,7 +155,6 @@ "Hide description …" : "Сакриј опис…", "This app cannot be installed because the following dependencies are not fulfilled:" : "Апликација се не може инсталирати јер следеће зависности нису испуњене:", "Enable only for specific groups" : "Укључи само за одређене групе", - "Uninstall App" : "Деинсталирај апликацију", "Common Name" : "Уобичајено име", "Valid until" : "Важи до", "Issued By" : "Издавач", @@ -214,7 +209,11 @@ "Default" : "Подразумевано", "log-level out of allowed range" : "ниво бележења је ван дозвољеног опсега", "Language changed" : "Језик је промењен", + "Admins can't remove themself from the admin group" : "Администратор не може себе да уклони из admin групе", + "Unable to add user to group %s" : "Не могу да додам корисника у групу %s", + "Unable to remove user from group %s" : "Не могу да уклоним корисника из групе %s", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Да ли заиста желите да додате „{domain}“ као поуздан домен?", + "Please wait...." : "Сачекајте…", "Everything (fatal issues, errors, warnings, info, debug)" : "Све (фаталне проблеме, грешке, упозорења, информације, отклањање грешака)", "Info, warnings, errors and fatal issues" : "Информације, упозорења, грешке и фатални проблеми", "Warnings, errors and fatal issues" : "Упозорења, грешке и фатални проблеми", @@ -231,13 +230,10 @@ "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Нарочито ако се користи клијент програм у графичком окружењу, коришћење СКуЛајта није препоручљиво.", "Experimental applications ahead" : "Експериментална апликација", "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Експерименталне апликације се непроверене што се тиче безбедности и могу бити нестабилне и недовршене. Инсталирање може довести до губитка података или нарушавања безбедности.", + "Uninstall App" : "Деинсталирај апликацију", "Enable experimental apps" : "Укључи експерименталне апликације", "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Поздрав,
само вас обавештавам да сад имате %s налог.
Ваше корисничко име: %s
Приступите му на: %s
", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Поздрав.\n\nСамо да знате да сада имате %s налог.\n\nВаше корисничко име: %s\nПриступите му на: %s\n", - "Group" : "Група", - "APCu" : "APCu", - "Redis" : "Redis", - "External Storage" : "Спољашње складиште", - "Updates" : "Ажурирања" + "Group" : "Група" },"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/settings/l10n/sv.js b/settings/l10n/sv.js index 2d9d3f205fec1009273a8aa3bd05b7e436be4731..964c65427cdba4ddb7fc3959a717c619e50bd1cc 100644 --- a/settings/l10n/sv.js +++ b/settings/l10n/sv.js @@ -10,9 +10,9 @@ OC.L10N.register( "Authentication error" : "Fel vid autentisering", "Please provide an admin recovery password, otherwise all user data will be lost" : "Ange ett återställningslösenord för administratören. Annars kommer all användardata förloras", "Wrong admin recovery password. Please check the password and try again." : "Felaktigt återställningslösenord för administratör. Kolla lösenordet och prova igen.", - "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Backend stödjer ej lösenordsbyte, men användarens ändring av krypteringsnyckel lyckades.", - "installing and updating apps via the app store or Federated Cloud Sharing" : "installering och uppdatering utav applikationer eller Federate Cloud delning.", - "Federated Cloud Sharing" : "Federate Cloud delning", + "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Backend stödjer inte lösenordsbyte, men användarens ändring av krypteringsnyckel lyckades.", + "installing and updating apps via the app store or Federated Cloud Sharing" : "installering och uppdatering utav applikationer eller Federerad Moln-delning.", + "Federated Cloud Sharing" : "Federerad Moln-delning", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL använder en föråldrad %s version (%s). Var god uppdatera ditt operativsystem annars kan funktioner som %s sluta fungera pålitligt.", "A problem occurred, please check your log files (Error: %s)" : "Ett problem uppstod, var god kontrollera loggfiler (Error: %s)", "Migration Completed" : "Migrering Färdigställd", @@ -29,20 +29,22 @@ OC.L10N.register( "Unable to create user." : "Kan inte skapa användare.", "Your %s account was created" : "Ditt %s konto skapades", "Unable to delete user." : "Kan inte radera användare.", - "Unable to change full name" : "Kunde inte ändra hela namnet", + "Settings saved" : "Inställningar sparade", + "Unable to change full name" : "Kunde inte ändra namn", + "Unable to change email address" : "Kunde inte ändra e-postadress", "Your full name has been changed." : "Hela ditt namn har ändrats", "Forbidden" : "Förbjuden", "Invalid user" : "Ogiltig användare", "Unable to change mail address" : "Kan inte ändra e-postadress", "Email saved" : "E-post sparad", + "Password confirmation is required" : "Lösenordsbekräftelse krävs", "Couldn't remove app." : "Kunde inte ta bort applikationen.", - "Admins can't remove themself from the admin group" : "Administratörer kan inte ta bort sig själva från admingruppen", - "Unable to add user to group %s" : "Kan inte lägga till användare i gruppen %s", - "Unable to remove user from group %s" : "Kan inte radera användare från gruppen %s", "Couldn't update app." : "Kunde inte uppdatera appen.", + "Are you really sure you want add {domain} as trusted domain?" : "Är du verkligen säker att du vill lägga till (domain) som tillförlitlig domän?", "Add trusted domain" : "Lägg till betrodd domän", "Migration in progress. Please wait until the migration is finished" : "Migrering pågår. Var god vänta tills migreringen är färdigställd.", "Migration started …" : "Migrering påbörjad ...", + "Not saved" : "Inte sparad", "Sending..." : "Skickar ...", "Official" : "Officiell", "All" : "Alla", @@ -50,15 +52,16 @@ OC.L10N.register( "_You have %n app update pending_::_You have %n app updates pending_" : ["Du har %n applikationsuppdatering väntandes.","Du har %n applikationsuppdateringar väntandes."], "No apps found for your version" : "Inga appar funna för din version", "The app will be downloaded from the app store" : "Appen kommer hämtas från appstore", + "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Officiella appar är utvecklade av Nextclouds community. De erbjuder central funktionalitet och är redo för att användas i produktion.", "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." : "Godkända appar är utvecklade av betrodda utvecklare och har genomgått enklare säkerhetstester. De är aktivt utvecklade i ett öppet kodbibliotek och deras underhållare anser dom stabila nog för enklare till normalt användande.", "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Denna applikation är ej kontrollerad för säkerhetsbrister och är ny eller känd att orsaka instabilitetsproblem. Installera på egen risk.", - "Please wait...." : "Var god vänta ...", + "Enabling app …" : "Aktiverar app ...", "Error while disabling app" : "Fel vid inaktivering av app", - "Disable" : "Deaktivera", + "Disable" : "Inaktivera", "Enable" : "Aktivera", "Error while enabling app" : "Fel vid aktivering av app", "Error: this app cannot be enabled because it makes the server unstable" : "Fel uppstod: Denna applikation kan ej startas för det gör servern ostabil.", - "Error: could not disable broken app" : "Fel: Gick ej att inaktivera trasig applikation.", + "Error: could not disable broken app" : "Fel: Gick inte att inaktivera trasig applikation.", "Error while disabling broken app" : "Fel under inaktivering av trasig applikation.", "Updating...." : "Uppdaterar ...", "Error while updating app" : "Fel uppstod vid uppdatering av appen", @@ -71,13 +74,40 @@ OC.L10N.register( "Approved" : "Godkänd", "Experimental" : "Experimentiell", "No apps found for {query}" : "Inga applikationer funna för {query}", + "Allow filesystem access" : "Tillåt åtkomst till filsystemet", "Disconnect" : "Koppla från", + "Revoke" : "Återkalla", + "Internet Explorer" : "Internet Explorer", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google Chrome", + "Safari" : "Safari", + "Google Chrome for Android" : "Google Chrome för Android", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", + "iOS Client" : "iOS-app", + "Android Client" : "Android-app", + "Sync client - {os}" : "Synk-klient - (os)", + "This session" : "Denna session ", + "Copy" : "Kopiera", + "Copied!" : "Kopierad!", + "Not supported!" : "Stöds ej!", + "Press ⌘-C to copy." : "Tryck ⌘-C för att kopiera.", + "Press Ctrl-C to copy." : "Tryck Ctrl-C för att kopiera.", "Error while loading browser sessions and device tokens" : "Fel vid inläsning av webbläsarsessioner och enhetstoken.", "Error while creating device token" : "Fel vid skapande av enhetstoken", "Error while deleting the token" : "Fel vid borttagning av token", "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Ett fel uppstod. Var god ladda upp ett ASCII-kodad PEM certifikat.", "Valid until {date}" : "Giltig t.o.m. {date}", "Delete" : "Radera", + "Local" : "Lokal", + "Private" : "Privat", + "Only visible to local users" : "Endast synlig för lokala användare", + "Only visible to you" : "Endast synlig för dig", + "Contacts" : "Kontakter", + "Visible to local users and to trusted servers" : "Synlig för lokala användare och tillförlitliga servrar", + "Public" : "Offentlig", + "Will be synced to a global and public address book" : "Kommer att synkroniseras till global och offentlig adressbok", "Select a profile picture" : "Välj en profilbild", "Very weak password" : "Väldigt svagt lösenord", "Weak password" : "Svagt lösenord", @@ -92,20 +122,28 @@ OC.L10N.register( "undo" : "ångra", "never" : "aldrig", "deleted {userName}" : "raderade {userName}", + "Add group" : "Lägg till grupp", + "Invalid quota value \"{val}\"" : "Ogiltigt quota värde \"{val}\"", + "no group" : "ingen grupp", + "Password successfully changed" : "Ändringen av lösenordet lyckades.", "Changing the password will result in data loss, because data recovery is not available for this user" : "Ändring utav lösenord kommer resultera i förlorad data, eftersom dataåterställning ej är tillgängligt för denna användare.", + "Could not change the users email" : "Kunde inte ändra användarens e-postadress", "A valid username must be provided" : "Ett giltigt användarnamn måste anges", "Error creating user: {message}" : "Fel uppstod när användare skulle skapas: {message}", "A valid password must be provided" : "Ett giltigt lösenord måste anges", "A valid email must be provided" : "En giltig e-postadress måste anges", "__language_name__" : "Svenska", - "Unlimited" : "Obegränsad", + "Unlimited" : "Obegränsat", "Personal info" : "Personlig information", "Sessions" : "Sessioner", + "App passwords" : "Applösenord", "Sync clients" : "Synk-klienter", "None" : "Ingen", "Login" : "Logga in", "Plain" : "Enkel", "NT LAN Manager" : "NT LAN Manager", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", "Email server" : "E-post server", "Open documentation" : "Öppna dokumentation", "This is used for sending out notifications." : "Detta används för att skicka ut notifieringar.", @@ -127,12 +165,13 @@ OC.L10N.register( "Enable server-side encryption" : "Aktivera kryptering på server.", "Please read carefully before activating server-side encryption: " : "OBS: Var god läs noga innan kryptering aktiveras på servern.", "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." : "När kryptering är aktiverat, så kommer alla filer som laddas upp till servern från den tidpunkt och frammåt bli krypterad på servern. Det kommer bara vara möjligt att inaktivera kryptering vid ett senare tillfälle om krypteringsmodulen stödjer den funktionen och alla förvillkor (exempelvis använder återställningsnyckel) är mötta.", + "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." : "Enbart kryptering garanterar inte säkerhet i systemet. Vänligen se dokumentationen för ytterligare information om hur krypteringsappen fungerar, och de supporterade användarfallen.", "Be aware that encryption always increases the file size." : "OBS! Observera att kryptering alltid ökar filstorleken", "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." : "Det är alltid en god ide att skapa regelbundna säkerhetskopior av din data, om kryptering används var säker på att även krypteringsnycklarna säkerhetskopieras tillsammans med din data.", "This is the final warning: Do you really want to enable encryption?" : "Detta är en slutgiltig varning: Vill du verkligen aktivera kryptering?", "Enable encryption" : "Aktivera kryptering", "No encryption module loaded, please enable an encryption module in the app menu." : "Ingen krypteringsmodul laddad, var god aktivera krypteringsmodulen i applikationsmenyn.", - "Select default encryption module:" : "Välj standard krypteringsmodul:", + "Select default encryption module:" : "Välj krypteringsmodul:", "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'" : "Du behöver migrera dina krypteringsnycklar från den gamla krypteringen (owncloud <= 8.0) till den nya. Var god aktivera \"Default encryption module\" och kör 'occ encryption:migrate'.", "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Du behöver migrera dina krypteringsnycklar från den gamla krypteringen (owncloud <= 8.0) till den nya.", "Start migration" : "Starta migrering", @@ -142,25 +181,29 @@ OC.L10N.register( "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." : "Läs-bara konfigureringen har blivit aktiv. Detta förhindrar att några konfigureringar kan sättas via web-gränssnittet.", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP är tydligen inställd för att rensa inline doc block. Detta kommer att göra flera kärnapplikationer otillgängliga.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Detta orsakas troligtvis av en cache/accelerator som t ex Zend OPchache eller eAccelerator.", + "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Din databas kör inte \"READ COMMITED\" transaktionsisoleringsnvån. Detta kan orsaka problem när flera åtgärder körs parallellt.", "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s under version %2$s är installerad, för stabilitet och prestanda rekommenderar vi uppdatering till en nyare %1$s version.", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP-modulen 'fileinfo' saknas. Vi rekommenderar starkt att aktivera den här modulen för att kunna upptäcka korrekt mime-typ.", - "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 documentation ↗ for more information." : "Transactional file locking är inaktiverad, detta kan innebära konkurrenstillstånd. Aktivera \"filelocking.enabled' i config.php för att undvika dessa problem. Se dokumentationen ↗ för mer information.", + "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 documentation ↗ for more information." : "\"Transactional file locking\" är inaktiverad, detta kan innebära konkurrenstillstånd. Aktivera \"filelocking.enabled' i config.php för att undvika dessa problem. Se dokumentationen ↗ för mer information.", "System locale can not be set to a one which supports UTF-8." : "Systemspråk kan inte ställas in till ett som stödjer UTF-8.", "This means that there might be problems with certain characters in file names." : "Detta betyder att där kan komma att uppstå problem med vissa tecken i filnamn.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Vi rekommenderar starkt att installera de nödvändiga paketen på ditt system för att stödja en av följande språkversioner: %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\")" : "Om din installation inte installerades på roten av domänen och använder system cron så kan det uppstå problem med URL-genereringen. För att undvika dessa problem, var vänlig sätt \"overwrite.cli.url\"-inställningen i din config.php-fil till webbrotsökvägen av din installation (Föreslagen: \"%s\")", "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Det var ej möjligt att exekvera cronjob via CLI. Följande tekniska fel har uppstått:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Var god att dubbelkolla installationsguiden ↗, och kolla efter några ändringar eller varningar i loggfilen.", "All checks passed." : "Alla kontroller lyckades!", "Cron" : "Cron", - "Last cron job execution: %s." : "Sista cron kördes %s", - "Last cron job execution: %s. Something seems wrong." : "Sista cron kördes %s. Något verkar vara fel.", + "Last cron job execution: %s." : "Sista cron kördes för %s", + "Last cron job execution: %s. Something seems wrong." : "Sista cron kördes för %s. Något verkar vara fel.", "Cron was not executed yet!" : "Cron har inte körts ännu!", "Execute one task with each page loaded" : "Exekvera en uppgift vid varje sidladdning", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php är registrerad som en webcron service att ropa på cron.php varje 15 minuter över http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Använd systemets cron-tjänst för att anropa cron.php var 15:e minut.", + "The cron.php needs to be executed by the system user \"%s\"." : "Cron.php behöver exekveras av systemanvändaren \"%s\".", + "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "För att köra detta behöver du PHP posix tillägget. Se {linkstart}PHP dokumentationen{linkend} för ytterligare detaljer.", "Version" : "Version", "Sharing" : "Dela", - "Allow apps to use the Share API" : "Tillåt applikationer att använda delat API", + "Allow apps to use the Share API" : "Tillåt applikationer att använda API för delning", "Allow users to share via link" : "Tillåt användare att dela via länk", "Allow public uploads" : "Tillåt offentlig uppladdning", "Enforce password protection" : "Tillämpa lösenordskydd", @@ -174,7 +217,11 @@ OC.L10N.register( "Exclude groups from sharing" : "Exkludera grupp från att dela", "These groups will still be able to receive shares, but not to initiate them." : "Dessa grupper kommer fortfarande kunna ta emot delningar, men inte skapa delningar.", "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Tillåt användarnamn att autokompletteras i delningsfönstret. Om det är inaktiverat krävs fullständigt användarnamn i rutan.", + "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Visa friskrivningstext på offentliga uppladdningssidan. (Visas endast när fil-listan är gömd.)", + "This text will be shown on the public link upload page when the file list is hidden." : "Denna text kommer att visa på den offentliga uppladdnings-sidan när fil-listan är gömd.", "Tips & tricks" : "Tips & tricks", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite används som databas. För större installationer så rekommenderar vi ett byte till en annan databasbackend.", + "This is particularly recommended when using the desktop client for file synchronisation." : "Detta rekommenderas speciellt när skrivbordsklienten används för att synkronisera filer.", "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "För att migrera till en annan databas använd kommandoverktyget 'occ db:convert-type' eller se dokumentationen ↗", "How to do backups" : "Hur man skapar säkerhetskopior", "Advanced monitoring" : "Advancerad bevakning", @@ -182,7 +229,7 @@ OC.L10N.register( "Improving the config.php" : "Förbättra config.php", "Theming" : "Teman", "Hardening and security guidance" : "Säkerhetsriktlinjer", - "Developer documentation" : "Utvecklar dokumentation", + "Developer documentation" : "Utvecklardokumentation", "by %s" : "av %s", "%s-licensed" : "%s-licensierad.", "Documentation:" : "Dokumentation:", @@ -193,19 +240,24 @@ OC.L10N.register( "Show description …" : "Visa beskrivning", "Hide description …" : "Dölj beskrivning", "This app has an update available." : "Denna applikation har en uppdatering tillgänglig.", + "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Denna app har ingen max Nextcloudversion tilldelad. Detta kommer att innebära ett problem i framtiden.", + "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Denna app har ingen minimum Nextcloudversion tilldelad. Detta kommer att innebära ett problem i framtiden.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Denna applikation kan inte installeras då följande beroenden inte är uppfyllda: %s", "Enable only for specific groups" : "Aktivera endast för specifika grupper", - "Uninstall App" : "Avinstallera applikation", + "Uninstall app" : "Avinstallera app", "SSL Root Certificates" : "SSL Root certifikat", "Common Name" : "Vanligt namn", "Valid until" : "Giltigt till", "Issued By" : "Utfärdat av", "Valid until %s" : "Giltigt till %s", "Import root certificate" : "Importera root certifikat", + "Hey there,
just letting you know that you now have a %s account.
Your username: %s
Access it: %s
" : "Hej där,
Tänkte bara informera om att du du nu har ett %s konto.
Ditt användarnamn: %s
Logga in: %s
", "Cheers!" : "Ha de fint!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hej där,\n\nTänkte bara informera om att du nu har ett %s konto.\n\nDitt användarnamn: %s\nLogga in: %s\n\n", "Administrator documentation" : "Administratörsdokumentation", "Online documentation" : "Online dokumentation", "Forum" : "Forum", + "Getting help" : "Få hjälp", "Commercial support" : "Kommersiell support", "You are using %s of %s" : "Du använder %s av %s", "Profile picture" : "Profilbild", @@ -216,12 +268,20 @@ OC.L10N.register( "Picture provided by original account" : "Bild gjordes tillgänglig av orginal konto", "Cancel" : "Avbryt", "Choose as profile picture" : "Välj som profilbild", - "Full name" : "Fullständigt namn", + "Full name" : "Namn", "No display name set" : "Inget visningsnamn angivet", "Email" : "E-post", "Your email address" : "Din e-postadress", "No email address set" : "Ingen e-postadress angiven", "For password recovery and notifications" : "För lösenordsåterställning och notifieringar", + "Phone number" : "Telefonnummer", + "Your phone number" : "Ditt telefonnummer", + "Address" : "Adress", + "Your postal address" : "Din postadress", + "Website" : "Webbsida", + "Your website" : "Din webbsida", + "Twitter" : "Twitter", + "Your Twitter handle" : "Ditt Twitterkonto", "You are member of the following groups:" : "Du är medlem i följande grupper:", "Password" : "Lösenord", "Current password" : "Nuvarande lösenord", @@ -233,10 +293,25 @@ OC.L10N.register( "Desktop client" : "Skrivbordsklient", "Android app" : "Android-app", "iOS app" : "iOS-app", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Om du vill stödja projektet {contributeopen}, delta i utvecklinngen{linkclose} eller {contributeopen}sprida det vidare{linkclose}!", "Show First Run Wizard again" : "Visa Första uppstarts-guiden igen", + "Web, desktop and mobile clients currently logged in to your account." : "Webb, skrivbordsklienter och mobila klienter som är inloggade på ditt konto just nu.", + "Device" : "Enhet", + "Last activity" : "Senaste aktivitet", + "Passcodes that give an app or device permissions to access your account." : "Lösenordskod som ger en applikation eller enhet rättigheter att ansluta till ditt konto.", "Name" : "Namn", + "App name" : "Appnamn", + "Create new app password" : "Skapa nytt applösenord", + "Use the credentials below to configure your app or device." : "Använd följande autentiseringsuppgifter för att konfigurera din app eller enhet", + "For security reasons this password will only be shown once." : "Av säkerhetsskäl kommer lösenordet endast att visas en gång", "Username" : "Användarnamn", "Done" : "Färdig", + "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Utvecklat av {communityopen}Nextclouds community{linkclose}, {githubopen}källkoden{linkclose} är licensierad enligt {licenseopen}AGPL-standard{linkclose}.", + "Follow us on Google Plus!" : "Fälj oss på Google Plus!", + "Like our facebook page!" : "Gilla vår Facebooksida!", + "Subscribe to our twitter channel!" : "Prenumerera på vårt Twitterkonto!", + "Subscribe to our news feed!" : "Prenumerera på vårt nyhetsflöde!", + "Subscribe to our newsletter!" : "Prenumerera på vårt nyhetsbrev!", "Show storage location" : "Visa lagringsplats", "Show last log in" : "Visa senaste inloggning", "Show user backend" : "Visa användar-backend", @@ -244,20 +319,32 @@ OC.L10N.register( "Show email address" : "Visa e-postadress", "E-Mail" : "E-post", "Create" : "Skapa", - "Admin Recovery Password" : "Admin-återställningslösenord", + "Admin Recovery Password" : "Admin-återställningslösen", "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", - "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Var god skriv in lagringskvot (ex: \"512MB\" eller \"12 GB\")", + "Default quota" : "Förvalt lagringsutrymme", + "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Ange storlek på lagringsutrymmet (t.ex: \"512 MB\" eller \"12 GB\")", "Other" : "Annat", - "Quota" : "Kvot", - "change full name" : "ändra hela namnet", + "Group admin for" : "Gruppadministratör för", + "Quota" : "Lagringsutrymme", + "Storage location" : "Lagringsplats", + "User backend" : "Användarbackend", + "Last login" : "Senaste inloggning", + "change full name" : "ändra namn", "set new password" : "ange nytt lösenord", "change email address" : "ändra e-postadress", "Default" : "Förvald", "log-level out of allowed range" : "logg-nivå utanför tillåtet område", "Language changed" : "Språk ändrades", + "Admins can't remove themself from the admin group" : "Administratörer kan inte ta bort sig själva från admingruppen", + "Unable to add user to group %s" : "Kan inte lägga till användare i gruppen %s", + "Unable to remove user from group %s" : "Kan inte radera användare från gruppen %s", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Är du verkligen säker på att du vill lägga till \"{domain}\" som en trusted domian?", + "Please wait...." : "Var god vänta ...", + "iPhone" : "iPhone", + "add group" : "lägg till grupp", "Everything (fatal issues, errors, warnings, info, debug)" : "Allting (allvarliga fel, fel, varningar, info, debug)", "Info, warnings, errors and fatal issues" : "Info, varningar och allvarliga fel", "Warnings, errors and fatal issues" : "Varningar, fel och allvarliga fel", @@ -265,24 +352,28 @@ OC.L10N.register( "Fatal issues only" : "Endast allvarliga fel", "Log" : "Logg", "What to log" : "Vad som ska loggas", - "Download logfile" : "Ladda ner loggfil", + "Download logfile" : "Ladda ned loggfil", "More" : "Mer", "Less" : "Mindre", - "The logfile is bigger than 100 MB. Downloading it may take some time!" : "Logfilen är större än 100 MB. Nerladdningen kan ta en stund!", + "The logfile is bigger than 100 MB. Downloading it may take some time!" : "Logfilen är större än 100 MB. Nedladdningen kan ta en stund!", "Allow users to send mail notification for shared files" : "Tillåt användare att skicka mailnotifieringar för delade filer", "Allow users to send mail notification for shared files to other users" : "Tillåt användare att skicka mejlnotifiering för delade filer till andra användare", "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite används som databas. För större installationer så rekommenderar vi ett byte till en annan databasmotor.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Speciellt när desktop klienten för filsynkronisering används så avråds användande av SQLite.", "Experimental applications ahead" : "Experimentiella applikationer framför", "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimentella applikationer är ej kontrollerade för säkerhetsproblem, nya eller kända att vara instabila och under föränderlig utveckling. Installation utav dessa kan orsaka dataförlust eller säkerhetsbrott.", + "Uninstall App" : "Avinstallera applikation", "Enable experimental apps" : "Aktivera experimentiella applikationer", - "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hej där,
vill bara informera dig om att du nu har ett %s konto.
Ditt användarnamn: %s
Accessa det genom: %s
", - "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hej där,\n\nvill bara informera dig om att du nu har ett %s konto.\n\nDitt användarnamn: %s\nAccessa det genom: %s\n", + "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hej där,
Tänkte bara informera dig om att du nu har ett %s konto.
Ditt användarnamn: %s
Accessa det här: %s
", + "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hej där,\n\nTänkte bara informera dig om att du nu har ett %s konto.\n\nDitt användarnamn: %s\nAccessa det här: %s\n", + "If you want to support the project\n\t\tjoin development\n\t\t
just letting you know that you now have a %s account.
Your username: %s
Access it: %s
" : "Hej där,
Tänkte bara informera om att du du nu har ett %s konto.
Ditt användarnamn: %s
Logga in: %s
", "Cheers!" : "Ha de fint!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hej där,\n\nTänkte bara informera om att du nu har ett %s konto.\n\nDitt användarnamn: %s\nLogga in: %s\n\n", "Administrator documentation" : "Administratörsdokumentation", "Online documentation" : "Online dokumentation", "Forum" : "Forum", + "Getting help" : "Få hjälp", "Commercial support" : "Kommersiell support", "You are using %s of %s" : "Du använder %s av %s", "Profile picture" : "Profilbild", @@ -214,12 +266,20 @@ "Picture provided by original account" : "Bild gjordes tillgänglig av orginal konto", "Cancel" : "Avbryt", "Choose as profile picture" : "Välj som profilbild", - "Full name" : "Fullständigt namn", + "Full name" : "Namn", "No display name set" : "Inget visningsnamn angivet", "Email" : "E-post", "Your email address" : "Din e-postadress", "No email address set" : "Ingen e-postadress angiven", "For password recovery and notifications" : "För lösenordsåterställning och notifieringar", + "Phone number" : "Telefonnummer", + "Your phone number" : "Ditt telefonnummer", + "Address" : "Adress", + "Your postal address" : "Din postadress", + "Website" : "Webbsida", + "Your website" : "Din webbsida", + "Twitter" : "Twitter", + "Your Twitter handle" : "Ditt Twitterkonto", "You are member of the following groups:" : "Du är medlem i följande grupper:", "Password" : "Lösenord", "Current password" : "Nuvarande lösenord", @@ -231,10 +291,25 @@ "Desktop client" : "Skrivbordsklient", "Android app" : "Android-app", "iOS app" : "iOS-app", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Om du vill stödja projektet {contributeopen}, delta i utvecklinngen{linkclose} eller {contributeopen}sprida det vidare{linkclose}!", "Show First Run Wizard again" : "Visa Första uppstarts-guiden igen", + "Web, desktop and mobile clients currently logged in to your account." : "Webb, skrivbordsklienter och mobila klienter som är inloggade på ditt konto just nu.", + "Device" : "Enhet", + "Last activity" : "Senaste aktivitet", + "Passcodes that give an app or device permissions to access your account." : "Lösenordskod som ger en applikation eller enhet rättigheter att ansluta till ditt konto.", "Name" : "Namn", + "App name" : "Appnamn", + "Create new app password" : "Skapa nytt applösenord", + "Use the credentials below to configure your app or device." : "Använd följande autentiseringsuppgifter för att konfigurera din app eller enhet", + "For security reasons this password will only be shown once." : "Av säkerhetsskäl kommer lösenordet endast att visas en gång", "Username" : "Användarnamn", "Done" : "Färdig", + "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Utvecklat av {communityopen}Nextclouds community{linkclose}, {githubopen}källkoden{linkclose} är licensierad enligt {licenseopen}AGPL-standard{linkclose}.", + "Follow us on Google Plus!" : "Fälj oss på Google Plus!", + "Like our facebook page!" : "Gilla vår Facebooksida!", + "Subscribe to our twitter channel!" : "Prenumerera på vårt Twitterkonto!", + "Subscribe to our news feed!" : "Prenumerera på vårt nyhetsflöde!", + "Subscribe to our newsletter!" : "Prenumerera på vårt nyhetsbrev!", "Show storage location" : "Visa lagringsplats", "Show last log in" : "Visa senaste inloggning", "Show user backend" : "Visa användar-backend", @@ -242,20 +317,32 @@ "Show email address" : "Visa e-postadress", "E-Mail" : "E-post", "Create" : "Skapa", - "Admin Recovery Password" : "Admin-återställningslösenord", + "Admin Recovery Password" : "Admin-återställningslösen", "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", - "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Var god skriv in lagringskvot (ex: \"512MB\" eller \"12 GB\")", + "Default quota" : "Förvalt lagringsutrymme", + "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Ange storlek på lagringsutrymmet (t.ex: \"512 MB\" eller \"12 GB\")", "Other" : "Annat", - "Quota" : "Kvot", - "change full name" : "ändra hela namnet", + "Group admin for" : "Gruppadministratör för", + "Quota" : "Lagringsutrymme", + "Storage location" : "Lagringsplats", + "User backend" : "Användarbackend", + "Last login" : "Senaste inloggning", + "change full name" : "ändra namn", "set new password" : "ange nytt lösenord", "change email address" : "ändra e-postadress", "Default" : "Förvald", "log-level out of allowed range" : "logg-nivå utanför tillåtet område", "Language changed" : "Språk ändrades", + "Admins can't remove themself from the admin group" : "Administratörer kan inte ta bort sig själva från admingruppen", + "Unable to add user to group %s" : "Kan inte lägga till användare i gruppen %s", + "Unable to remove user from group %s" : "Kan inte radera användare från gruppen %s", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Är du verkligen säker på att du vill lägga till \"{domain}\" som en trusted domian?", + "Please wait...." : "Var god vänta ...", + "iPhone" : "iPhone", + "add group" : "lägg till grupp", "Everything (fatal issues, errors, warnings, info, debug)" : "Allting (allvarliga fel, fel, varningar, info, debug)", "Info, warnings, errors and fatal issues" : "Info, varningar och allvarliga fel", "Warnings, errors and fatal issues" : "Varningar, fel och allvarliga fel", @@ -263,24 +350,28 @@ "Fatal issues only" : "Endast allvarliga fel", "Log" : "Logg", "What to log" : "Vad som ska loggas", - "Download logfile" : "Ladda ner loggfil", + "Download logfile" : "Ladda ned loggfil", "More" : "Mer", "Less" : "Mindre", - "The logfile is bigger than 100 MB. Downloading it may take some time!" : "Logfilen är större än 100 MB. Nerladdningen kan ta en stund!", + "The logfile is bigger than 100 MB. Downloading it may take some time!" : "Logfilen är större än 100 MB. Nedladdningen kan ta en stund!", "Allow users to send mail notification for shared files" : "Tillåt användare att skicka mailnotifieringar för delade filer", "Allow users to send mail notification for shared files to other users" : "Tillåt användare att skicka mejlnotifiering för delade filer till andra användare", "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite används som databas. För större installationer så rekommenderar vi ett byte till en annan databasmotor.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Speciellt när desktop klienten för filsynkronisering används så avråds användande av SQLite.", "Experimental applications ahead" : "Experimentiella applikationer framför", "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Experimentella applikationer är ej kontrollerade för säkerhetsproblem, nya eller kända att vara instabila och under föränderlig utveckling. Installation utav dessa kan orsaka dataförlust eller säkerhetsbrott.", + "Uninstall App" : "Avinstallera applikation", "Enable experimental apps" : "Aktivera experimentiella applikationer", - "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hej där,
vill bara informera dig om att du nu har ett %s konto.
Ditt användarnamn: %s
Accessa det genom: %s
", - "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hej där,\n\nvill bara informera dig om att du nu har ett %s konto.\n\nDitt användarnamn: %s\nAccessa det genom: %s\n", + "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Hej där,
Tänkte bara informera dig om att du nu har ett %s konto.
Ditt användarnamn: %s
Accessa det här: %s
", + "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hej där,\n\nTänkte bara informera dig om att du nu har ett %s konto.\n\nDitt användarnamn: %s\nAccessa det här: %s\n", + "If you want to support the project\n\t\tjoin development\n\t\t
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "นี่คุณ
อยากจะแจ้งให้คุณทราบว่าขณะนี้คุณมีบัญชี %s
ชื่อผู้ใช้ของคุณคือ: %s
เข้าไปงานได้ที่: %s
", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "นี่คุณ\n\nอยากให้คุณทราบว่าขณะนี้คุณมี %s บัญชี\n\nชื่อผู้ใช้ของคุณ: %s\nดูได้ที่: %s\n", - "Group" : "กลุ่ม", - "APCu" : "APCu", - "Redis" : "Redis", - "External Storage" : "พื้นทีจัดเก็บข้อมูลจากภายนอก", - "Updates" : "อัพเดท", - "An error occurred: {message}" : "เกิดข้อผิดพลาด: {message}" + "Group" : "กลุ่ม" }, "nplurals=1; plural=0;"); diff --git a/settings/l10n/th_TH.json b/settings/l10n/th_TH.json index e926161b59279f565def3ad49ab3d1202163a762..e3cc8835b531edd87c8da52a5ae6085432036b35 100644 --- a/settings/l10n/th_TH.json +++ b/settings/l10n/th_TH.json @@ -34,9 +34,6 @@ "Unable to change mail address" : "ไม่สามารถที่จะเปลี่ยนที่อยู่อีเมล", "Email saved" : "อีเมลถูกบันทึกแล้ว", "Couldn't remove app." : "ไม่สามารถลบแอพฯ", - "Admins can't remove themself from the admin group" : "ผู้ดูแลระบบไม่สามารถลบตัวเองออกจากกลุ่มผู้ดูแลได้", - "Unable to add user to group %s" : "ไม่สามารถเพิ่มผู้ใช้งานเข้าไปที่กลุ่ม %s ได้", - "Unable to remove user from group %s" : "ไม่สามารถลบผู้ใช้งานออกจากกลุ่ม %s ได้", "Couldn't update app." : "ไม่สามารถอัพเดทแอปฯ", "Add trusted domain" : "เพิ่มโดเมนที่เชื่อถือได้", "Migration in progress. Please wait until the migration is finished" : "ในระหว่างดำเนินการโยกย้าย กรุณารอสักครู่จนกว่าการโยกย้ายจะเสร็จสิ้น", @@ -50,7 +47,6 @@ "The app will be downloaded from the app store" : "แอพฯจะดาวน์โหลดได้จากแอพสโตร์", "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "แอพพลิเคชันได้รับการอนุมัติและพัฒนาโดยนักพัฒนาที่น่าเชื่อถือและได้ผ่านการตรวจสอบความปลอดภัยคร่าวๆ พวกเขาจะได้รับการบำรุงรักษาอย่างดีในการเก็บข้อมูลรหัสเปิด มันอาจยังไม่เสถียรพอสำหรับการเปิดใช้งานปกติ", "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "แอพฯ นี้ไม่ได้ตรวจสอบปัญหาด้านความปลอดภัยและเป็นแอพฯใหม่หรือที่รู้จักกันคือจะไม่เสถียร ติดตั้งบนความเสี่ยงของคุณเอง", - "Please wait...." : "กรุณารอสักครู่...", "Error while disabling app" : "เกิดข้อผิดพลาดขณะปิดการใช้งานแอพพลิเคชัน", "Disable" : "ปิดใช้งาน", "Enable" : "เปิดใช้งาน", @@ -182,7 +178,6 @@ "Hide description …" : "ซ่อนรายละเอียด ...", "This app cannot be installed because the following dependencies are not fulfilled:" : "ไม่สามารถติดตั้งแอพฯนี้เพราะไม่มีตัวอ้างอิงต่อไปนี้:", "Enable only for specific groups" : "เปิดใช้งานเพียงเฉพาะกลุ่ม", - "Uninstall App" : "ถอนการติดตั้งแอพฯ", "SSL Root Certificates" : "ใบรับรอง SSL", "Common Name" : "ชื่อทั่วไป", "Valid until" : "ใช้ได้จนถึง", @@ -244,7 +239,11 @@ "Default" : "ค่าเริ่มต้น", "log-level out of allowed range" : "ระดับ-บันทึก ไม่ได้อยู่ในช่วงที่ได้รับอนุญาต", "Language changed" : "เปลี่ยนภาษาเรียบร้อยแล้ว", + "Admins can't remove themself from the admin group" : "ผู้ดูแลระบบไม่สามารถลบตัวเองออกจากกลุ่มผู้ดูแลได้", + "Unable to add user to group %s" : "ไม่สามารถเพิ่มผู้ใช้งานเข้าไปที่กลุ่ม %s ได้", + "Unable to remove user from group %s" : "ไม่สามารถลบผู้ใช้งานออกจากกลุ่ม %s ได้", "Are you really sure you want add \"{domain}\" as trusted domain?" : "คุณแน่ใจจริงๆ ว่าคุณต้องการเพิ่ม \"{domain}\" เป็นโดเมนที่เชื่อถือได้?", + "Please wait...." : "กรุณารอสักครู่...", "Everything (fatal issues, errors, warnings, info, debug)" : "ทุกอย่าง (ปัญหาร้ายแรง ข้อผิดพลาด คำเตือน ข้อมูล การแก้ปัญหา)", "Info, warnings, errors and fatal issues" : "ข้อมูล คำเตือน ข้อผิดพลาดและปัญหาร้ายแรง", "Warnings, errors and fatal issues" : "คำเตือนข้อผิดพลาดและปัญหาที่ร้ายแรง", @@ -262,14 +261,10 @@ "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "โดยเฉพาะอย่างยิ่งเมื่อใช้ไคลเอนต์เดสก์ทอปสำหรับการประสานข้อมูลโดย SQLite", "Experimental applications ahead" : "การใช้งานก่อนการทดลอง", "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "การทดลองแอพพลิเคชันไม่ได้ถูกตรวจสอบปัญหาด้านความปลอดภัย การติดตั้งพวกเขาสามารถก่อให้เกิดการสูญเสียข้อมูลหรือการละเมิดความปลอดภัย", + "Uninstall App" : "ถอนการติดตั้งแอพฯ", "Enable experimental apps" : "เปิดใช้งานแอพพลิเคชั่นทดลอง", "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "นี่คุณ
อยากจะแจ้งให้คุณทราบว่าขณะนี้คุณมีบัญชี %s
ชื่อผู้ใช้ของคุณคือ: %s
เข้าไปงานได้ที่: %s
", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "นี่คุณ\n\nอยากให้คุณทราบว่าขณะนี้คุณมี %s บัญชี\n\nชื่อผู้ใช้ของคุณ: %s\nดูได้ที่: %s\n", - "Group" : "กลุ่ม", - "APCu" : "APCu", - "Redis" : "Redis", - "External Storage" : "พื้นทีจัดเก็บข้อมูลจากภายนอก", - "Updates" : "อัพเดท", - "An error occurred: {message}" : "เกิดข้อผิดพลาด: {message}" + "Group" : "กลุ่ม" },"pluralForm" :"nplurals=1; plural=0;" } \ No newline at end of file diff --git a/settings/l10n/tr.js b/settings/l10n/tr.js index 299a33b7a26ecd5f649c3742c23bb23ea3671bc9..418854fb4dcef3a1490e5406682e2df1e40194f9 100644 --- a/settings/l10n/tr.js +++ b/settings/l10n/tr.js @@ -36,9 +36,6 @@ OC.L10N.register( "Unable to change mail address" : "Posta adresini değiştirme başarısız", "Email saved" : "E-posta kaydedildi", "Couldn't remove app." : "Uygulama kaldırılamadı.", - "Admins can't remove themself from the admin group" : "Yöneticiler kendilerini admin grubundan kaldıramaz", - "Unable to add user to group %s" : "Kullanıcı %s grubuna eklenemiyor", - "Unable to remove user from group %s" : "%s grubundan kullanıcı kaldırılamıyor", "Couldn't update app." : "Uygulama güncellenemedi.", "Add trusted domain" : "Güvenilir alan adı ekle", "Migration in progress. Please wait until the migration is finished" : "Taşınma sürüyor. Lütfen taşınma tamamlanana kadar bekleyin", @@ -53,7 +50,6 @@ OC.L10N.register( "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Resmi uygulamalar topluluk tarafından geliştirilmiştir. Merkezi işlevleri yerine getirdikleri gibi kullanıma da hazırdırlar.", "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." : "Onaylanan uygulamalar güvenilir geliştiriciler tarafından geliştirilir ve detaylı olmayan bir güvenlik kontrolünden geçirilir. Bunlar açık kaynak kod deposunda bulunmakta ve normal kullanım için kararlı oldukları varsayılmaktadır.", "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Bu uygulama güvenlik kontrolünden geçmedi veya yeni ya da kararsız olarak bilinmektedir. Kendiniz bu riski alarak yükleyebilirsiniz.", - "Please wait...." : "Lütfen bekleyin....", "Error while disabling app" : "Uygulama devre dışı bırakılırken hata", "Disable" : "Devre Dışı Bırak", "Enable" : "Etkinleştir", @@ -213,7 +209,6 @@ OC.L10N.register( "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Bu uygulama için atanan en yüksek Nextcloud sürümü bulunmuyor. Bu ileride bir hata olacaktır.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Bu uygulama, aşağıdaki bağımlılıklar sağlanmadığından yüklenemiyor:", "Enable only for specific groups" : "Sadece belirli gruplar için etkinleştir", - "Uninstall App" : "Uygulamayı Kaldır", "SSL Root Certificates" : "SSL Kök Sertifikaları", "Common Name" : "Ortak Ad", "Valid until" : "Geçerlilik", @@ -287,7 +282,11 @@ OC.L10N.register( "Default" : "Öntanımlı", "log-level out of allowed range" : "günlük seviyesi izin verilen aralık dışında", "Language changed" : "Dil değiştirildi", + "Admins can't remove themself from the admin group" : "Yöneticiler kendilerini admin grubundan kaldıramaz", + "Unable to add user to group %s" : "Kullanıcı %s grubuna eklenemiyor", + "Unable to remove user from group %s" : "%s grubundan kullanıcı kaldırılamıyor", "Are you really sure you want add \"{domain}\" as trusted domain?" : "\"{domain}\" alan adını güvenilir alan adı olarak eklemek istediğinizden emin misiniz?", + "Please wait...." : "Lütfen bekleyin....", "iPhone" : "iPhone", "Everything (fatal issues, errors, warnings, info, debug)" : "Her şey (Ciddi sorunlar, hatalar, uyarılar, bilgi, hata ayıklama)", "Info, warnings, errors and fatal issues" : "Bilgi, uyarılar, hatalar ve ciddi sorunlar", @@ -306,14 +305,10 @@ OC.L10N.register( "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Özellikle dosya eşitleme için masaüstü istemcisi kullanılırken SQLite kullanımı önerilmez.", "Experimental applications ahead" : "İlerideki deneysel uygulamalar", "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Deneysel uygulamalar güvenlik açısından denetlenmemiş, yeni veya kararsız olmaya açık ya da geliştirilme aşamasında olan uygulamalardır. Yüklemek veri kaybı veya güvenlik açıklarına sebep olabilir.", + "Uninstall App" : "Uygulamayı Kaldır", "Enable experimental apps" : "Deneysel uygulamaları etkinleştir", "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Merhaba,
Sadece artık bir %s hesabınızın olduğunu söylemek istedim.
Kullanıcı adınız: %s
Şuradan erişin: %s
", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Merhaba,\n\nSadece, artık bir %s hesabınızın olduğunu söylemek istedim.\n\nKullanıcı adınız: %s\nErişim: %s\n\n", - "Group" : "Grup", - "APCu" : "APCu", - "Redis" : "Redis", - "External Storage" : "Harici Depolama", - "Updates" : "Güncellemeler", - "An error occurred: {message}" : "Bir hata oluştu: {message}" + "Group" : "Grup" }, "nplurals=2; plural=(n > 1);"); diff --git a/settings/l10n/tr.json b/settings/l10n/tr.json index 4051f85b81c357e917b76672385b3c3051804636..4472e7f824232056c1bc04311774b7afba87a98c 100644 --- a/settings/l10n/tr.json +++ b/settings/l10n/tr.json @@ -34,9 +34,6 @@ "Unable to change mail address" : "Posta adresini değiştirme başarısız", "Email saved" : "E-posta kaydedildi", "Couldn't remove app." : "Uygulama kaldırılamadı.", - "Admins can't remove themself from the admin group" : "Yöneticiler kendilerini admin grubundan kaldıramaz", - "Unable to add user to group %s" : "Kullanıcı %s grubuna eklenemiyor", - "Unable to remove user from group %s" : "%s grubundan kullanıcı kaldırılamıyor", "Couldn't update app." : "Uygulama güncellenemedi.", "Add trusted domain" : "Güvenilir alan adı ekle", "Migration in progress. Please wait until the migration is finished" : "Taşınma sürüyor. Lütfen taşınma tamamlanana kadar bekleyin", @@ -51,7 +48,6 @@ "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Resmi uygulamalar topluluk tarafından geliştirilmiştir. Merkezi işlevleri yerine getirdikleri gibi kullanıma da hazırdırlar.", "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." : "Onaylanan uygulamalar güvenilir geliştiriciler tarafından geliştirilir ve detaylı olmayan bir güvenlik kontrolünden geçirilir. Bunlar açık kaynak kod deposunda bulunmakta ve normal kullanım için kararlı oldukları varsayılmaktadır.", "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Bu uygulama güvenlik kontrolünden geçmedi veya yeni ya da kararsız olarak bilinmektedir. Kendiniz bu riski alarak yükleyebilirsiniz.", - "Please wait...." : "Lütfen bekleyin....", "Error while disabling app" : "Uygulama devre dışı bırakılırken hata", "Disable" : "Devre Dışı Bırak", "Enable" : "Etkinleştir", @@ -211,7 +207,6 @@ "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Bu uygulama için atanan en yüksek Nextcloud sürümü bulunmuyor. Bu ileride bir hata olacaktır.", "This app cannot be installed because the following dependencies are not fulfilled:" : "Bu uygulama, aşağıdaki bağımlılıklar sağlanmadığından yüklenemiyor:", "Enable only for specific groups" : "Sadece belirli gruplar için etkinleştir", - "Uninstall App" : "Uygulamayı Kaldır", "SSL Root Certificates" : "SSL Kök Sertifikaları", "Common Name" : "Ortak Ad", "Valid until" : "Geçerlilik", @@ -285,7 +280,11 @@ "Default" : "Öntanımlı", "log-level out of allowed range" : "günlük seviyesi izin verilen aralık dışında", "Language changed" : "Dil değiştirildi", + "Admins can't remove themself from the admin group" : "Yöneticiler kendilerini admin grubundan kaldıramaz", + "Unable to add user to group %s" : "Kullanıcı %s grubuna eklenemiyor", + "Unable to remove user from group %s" : "%s grubundan kullanıcı kaldırılamıyor", "Are you really sure you want add \"{domain}\" as trusted domain?" : "\"{domain}\" alan adını güvenilir alan adı olarak eklemek istediğinizden emin misiniz?", + "Please wait...." : "Lütfen bekleyin....", "iPhone" : "iPhone", "Everything (fatal issues, errors, warnings, info, debug)" : "Her şey (Ciddi sorunlar, hatalar, uyarılar, bilgi, hata ayıklama)", "Info, warnings, errors and fatal issues" : "Bilgi, uyarılar, hatalar ve ciddi sorunlar", @@ -304,14 +303,10 @@ "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Özellikle dosya eşitleme için masaüstü istemcisi kullanılırken SQLite kullanımı önerilmez.", "Experimental applications ahead" : "İlerideki deneysel uygulamalar", "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Deneysel uygulamalar güvenlik açısından denetlenmemiş, yeni veya kararsız olmaya açık ya da geliştirilme aşamasında olan uygulamalardır. Yüklemek veri kaybı veya güvenlik açıklarına sebep olabilir.", + "Uninstall App" : "Uygulamayı Kaldır", "Enable experimental apps" : "Deneysel uygulamaları etkinleştir", "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Merhaba,
Sadece artık bir %s hesabınızın olduğunu söylemek istedim.
Kullanıcı adınız: %s
Şuradan erişin: %s
", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Merhaba,\n\nSadece, artık bir %s hesabınızın olduğunu söylemek istedim.\n\nKullanıcı adınız: %s\nErişim: %s\n\n", - "Group" : "Grup", - "APCu" : "APCu", - "Redis" : "Redis", - "External Storage" : "Harici Depolama", - "Updates" : "Güncellemeler", - "An error occurred: {message}" : "Bir hata oluştu: {message}" + "Group" : "Grup" },"pluralForm" :"nplurals=2; plural=(n > 1);" } \ No newline at end of file diff --git a/settings/l10n/ug.js b/settings/l10n/ug.js index 23c82ac55cea2915b97e7da50c3b0182e5c4e3a1..c93f085439de1d0ae6e6c0acea21b55bf05b290f 100644 --- a/settings/l10n/ug.js +++ b/settings/l10n/ug.js @@ -4,12 +4,8 @@ OC.L10N.register( "Authentication error" : "سالاھىيەت دەلىللەش خاتالىقى", "Invalid request" : "ئىناۋەتسىز ئىلتىماس", "Email saved" : "تورخەت ساقلاندى", - "Admins can't remove themself from the admin group" : "باشقۇرغۇچى ئۆزىنى باشقۇرۇش گۇرۇپپىسىدىن چىقىرىۋېتەلمەيدۇ", - "Unable to add user to group %s" : "ئىشلەتكۈچىنى %s گۇرۇپپىغا قوشالمايدۇ", - "Unable to remove user from group %s" : "ئىشلەتكۈچىنى %s گۇرۇپپىدىن چىقىرىۋېتەلمەيدۇ", "Couldn't update app." : "ئەپنى يېڭىلىيالمايدۇ.", "All" : "ھەممىسى", - "Please wait...." : "سەل كۈتۈڭ…", "Disable" : "چەكلە", "Enable" : "قوزغات", "Updating...." : "يېڭىلاۋاتىدۇ…", @@ -47,6 +43,10 @@ OC.L10N.register( "set new password" : "يېڭى ئىم تەڭشە", "Default" : "كۆڭۈلدىكى", "Language changed" : "تىل ئۆزگەردى", + "Admins can't remove themself from the admin group" : "باشقۇرغۇچى ئۆزىنى باشقۇرۇش گۇرۇپپىسىدىن چىقىرىۋېتەلمەيدۇ", + "Unable to add user to group %s" : "ئىشلەتكۈچىنى %s گۇرۇپپىغا قوشالمايدۇ", + "Unable to remove user from group %s" : "ئىشلەتكۈچىنى %s گۇرۇپپىدىن چىقىرىۋېتەلمەيدۇ", + "Please wait...." : "سەل كۈتۈڭ…", "Log" : "خاتىرە", "More" : "تېخىمۇ كۆپ", "Less" : "ئاز" diff --git a/settings/l10n/ug.json b/settings/l10n/ug.json index 5130f148f2662406833ec04c27111f95c26d8bcd..70a46e94da034e3ddb8ce32b5b24baaa98c34851 100644 --- a/settings/l10n/ug.json +++ b/settings/l10n/ug.json @@ -2,12 +2,8 @@ "Authentication error" : "سالاھىيەت دەلىللەش خاتالىقى", "Invalid request" : "ئىناۋەتسىز ئىلتىماس", "Email saved" : "تورخەت ساقلاندى", - "Admins can't remove themself from the admin group" : "باشقۇرغۇچى ئۆزىنى باشقۇرۇش گۇرۇپپىسىدىن چىقىرىۋېتەلمەيدۇ", - "Unable to add user to group %s" : "ئىشلەتكۈچىنى %s گۇرۇپپىغا قوشالمايدۇ", - "Unable to remove user from group %s" : "ئىشلەتكۈچىنى %s گۇرۇپپىدىن چىقىرىۋېتەلمەيدۇ", "Couldn't update app." : "ئەپنى يېڭىلىيالمايدۇ.", "All" : "ھەممىسى", - "Please wait...." : "سەل كۈتۈڭ…", "Disable" : "چەكلە", "Enable" : "قوزغات", "Updating...." : "يېڭىلاۋاتىدۇ…", @@ -45,6 +41,10 @@ "set new password" : "يېڭى ئىم تەڭشە", "Default" : "كۆڭۈلدىكى", "Language changed" : "تىل ئۆزگەردى", + "Admins can't remove themself from the admin group" : "باشقۇرغۇچى ئۆزىنى باشقۇرۇش گۇرۇپپىسىدىن چىقىرىۋېتەلمەيدۇ", + "Unable to add user to group %s" : "ئىشلەتكۈچىنى %s گۇرۇپپىغا قوشالمايدۇ", + "Unable to remove user from group %s" : "ئىشلەتكۈچىنى %s گۇرۇپپىدىن چىقىرىۋېتەلمەيدۇ", + "Please wait...." : "سەل كۈتۈڭ…", "Log" : "خاتىرە", "More" : "تېخىمۇ كۆپ", "Less" : "ئاز" diff --git a/settings/l10n/uk.js b/settings/l10n/uk.js index 1df27fc1acc43f4014c00a52f9b506db1fa0249a..0ba5efbf720d60b10148acafed46598741a3a4bc 100644 --- a/settings/l10n/uk.js +++ b/settings/l10n/uk.js @@ -36,9 +36,6 @@ OC.L10N.register( "Unable to change mail address" : "Неможливо поміняти email адресу", "Email saved" : "Адресу збережено", "Couldn't remove app." : "Неможливо видалити додаток.", - "Admins can't remove themself from the admin group" : "Адміністратор не може видалити себе з групи адміністраторів", - "Unable to add user to group %s" : "Не вдалося додати користувача у групу %s", - "Unable to remove user from group %s" : "Не вдалося видалити користувача із групи %s", "Couldn't update app." : "Не вдалося оновити додаток. ", "Add trusted domain" : "Додати довірений домен", "Migration in progress. Please wait until the migration is finished" : "Міграція триває. Будь ласка, зачекайте доки процес міграції завершиться", @@ -50,7 +47,6 @@ OC.L10N.register( "No apps found for your version" : "Немає застосунків для вашої версії", "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Схвалені додатки розроблені довіреними розробниками і пройшли незалежну перевірку безпеки. Їх активно супроводжують у репозиторії з відкритим кодом, а їх розробники стежать, щоб вони були стабільні й прийнятні для повсякденного використання.", "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Ця програма не перевірена на вразливості безпеки і є новою або нестабільною. Встановлюйте її на власний ризик.", - "Please wait...." : "Зачекайте, будь ласка...", "Error while disabling app" : "Помилка вимикання додатка", "Disable" : "Вимкнути", "Enable" : "Увімкнути", @@ -163,7 +159,6 @@ OC.L10N.register( "Hide description …" : "Сховати деталі ...", "This app cannot be installed because the following dependencies are not fulfilled:" : "Ця програма не може бути встановлено, так як наступні залежності не будуть виконані:", "Enable only for specific groups" : "Включити тільки для конкретних груп", - "Uninstall App" : "Видалити додаток", "Common Name" : "Ім'я:", "Valid until" : "Дійсно до", "Issued By" : "Виданий", @@ -220,7 +215,11 @@ OC.L10N.register( "Default" : "За замовчуванням", "log-level out of allowed range" : "рівень протоколювання перевищує дозволені межі", "Language changed" : "Мову змінено", + "Admins can't remove themself from the admin group" : "Адміністратор не може видалити себе з групи адміністраторів", + "Unable to add user to group %s" : "Не вдалося додати користувача у групу %s", + "Unable to remove user from group %s" : "Не вдалося видалити користувача із групи %s", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Ви дійсно бажаєте додати \"{domain}\" як довірений домен?", + "Please wait...." : "Зачекайте, будь ласка...", "Everything (fatal issues, errors, warnings, info, debug)" : "Усі (критичні проблеми, помилки, попередження, інформаційні, налагодження)", "Info, warnings, errors and fatal issues" : "Інформаційні, попередження, помилки та критичні проблеми", "Warnings, errors and fatal issues" : "Попередження, помилки та критичні проблеми", @@ -237,13 +236,10 @@ OC.L10N.register( "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Особливо сумнівне використання SQLite при синхронізації файлів з використанням клієнта для ПК.", "Experimental applications ahead" : "Спершу експериментальні додатки", "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Експериментальні додатки не перевірені на наявність проблем безпеки, нові або нестабільні і в процесі активної розробки. Встановлення їх може спричинити втрату даних або дірки в безпеці.", + "Uninstall App" : "Видалити додаток", "Enable experimental apps" : "Увімкнути експериментальні застосунки", "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Агов,
просто щоб ви знали, у вас є аккаунт %s.
Ваше ім'я користувача: %s
Перейдіть сюди: %s
", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Агов,\n\nпросто щоб ви знали, у вас є аккаунт %s.\n\nВаше ім'я користувача: %s\nПерейдіть сюди: %s\n\n", - "Group" : "Група", - "Redis" : "Redis", - "External Storage" : "Зовнішні сховища", - "Updates" : "Оновлення", - "An error occurred: {message}" : "Сталася помилка: {message}" + "Group" : "Група" }, "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/settings/l10n/uk.json b/settings/l10n/uk.json index e660970f1ecb11a6ff7575121407c411ea1e476e..948dc4de7ee1e49f22ed8bf434c49bc5129f7bb5 100644 --- a/settings/l10n/uk.json +++ b/settings/l10n/uk.json @@ -34,9 +34,6 @@ "Unable to change mail address" : "Неможливо поміняти email адресу", "Email saved" : "Адресу збережено", "Couldn't remove app." : "Неможливо видалити додаток.", - "Admins can't remove themself from the admin group" : "Адміністратор не може видалити себе з групи адміністраторів", - "Unable to add user to group %s" : "Не вдалося додати користувача у групу %s", - "Unable to remove user from group %s" : "Не вдалося видалити користувача із групи %s", "Couldn't update app." : "Не вдалося оновити додаток. ", "Add trusted domain" : "Додати довірений домен", "Migration in progress. Please wait until the migration is finished" : "Міграція триває. Будь ласка, зачекайте доки процес міграції завершиться", @@ -48,7 +45,6 @@ "No apps found for your version" : "Немає застосунків для вашої версії", "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Схвалені додатки розроблені довіреними розробниками і пройшли незалежну перевірку безпеки. Їх активно супроводжують у репозиторії з відкритим кодом, а їх розробники стежать, щоб вони були стабільні й прийнятні для повсякденного використання.", "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Ця програма не перевірена на вразливості безпеки і є новою або нестабільною. Встановлюйте її на власний ризик.", - "Please wait...." : "Зачекайте, будь ласка...", "Error while disabling app" : "Помилка вимикання додатка", "Disable" : "Вимкнути", "Enable" : "Увімкнути", @@ -161,7 +157,6 @@ "Hide description …" : "Сховати деталі ...", "This app cannot be installed because the following dependencies are not fulfilled:" : "Ця програма не може бути встановлено, так як наступні залежності не будуть виконані:", "Enable only for specific groups" : "Включити тільки для конкретних груп", - "Uninstall App" : "Видалити додаток", "Common Name" : "Ім'я:", "Valid until" : "Дійсно до", "Issued By" : "Виданий", @@ -218,7 +213,11 @@ "Default" : "За замовчуванням", "log-level out of allowed range" : "рівень протоколювання перевищує дозволені межі", "Language changed" : "Мову змінено", + "Admins can't remove themself from the admin group" : "Адміністратор не може видалити себе з групи адміністраторів", + "Unable to add user to group %s" : "Не вдалося додати користувача у групу %s", + "Unable to remove user from group %s" : "Не вдалося видалити користувача із групи %s", "Are you really sure you want add \"{domain}\" as trusted domain?" : "Ви дійсно бажаєте додати \"{domain}\" як довірений домен?", + "Please wait...." : "Зачекайте, будь ласка...", "Everything (fatal issues, errors, warnings, info, debug)" : "Усі (критичні проблеми, помилки, попередження, інформаційні, налагодження)", "Info, warnings, errors and fatal issues" : "Інформаційні, попередження, помилки та критичні проблеми", "Warnings, errors and fatal issues" : "Попередження, помилки та критичні проблеми", @@ -235,13 +234,10 @@ "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Особливо сумнівне використання SQLite при синхронізації файлів з використанням клієнта для ПК.", "Experimental applications ahead" : "Спершу експериментальні додатки", "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "Експериментальні додатки не перевірені на наявність проблем безпеки, нові або нестабільні і в процесі активної розробки. Встановлення їх може спричинити втрату даних або дірки в безпеці.", + "Uninstall App" : "Видалити додаток", "Enable experimental apps" : "Увімкнути експериментальні застосунки", "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "Агов,
просто щоб ви знали, у вас є аккаунт %s.
Ваше ім'я користувача: %s
Перейдіть сюди: %s
", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Агов,\n\nпросто щоб ви знали, у вас є аккаунт %s.\n\nВаше ім'я користувача: %s\nПерейдіть сюди: %s\n\n", - "Group" : "Група", - "Redis" : "Redis", - "External Storage" : "Зовнішні сховища", - "Updates" : "Оновлення", - "An error occurred: {message}" : "Сталася помилка: {message}" + "Group" : "Група" },"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/settings/l10n/vi.js b/settings/l10n/vi.js index 7ebe8f3a66861afd306d8e9f1d352d728774fe50..cd73020bddb2bbabde8aa672beefac8d14f2a7d9 100644 --- a/settings/l10n/vi.js +++ b/settings/l10n/vi.js @@ -9,12 +9,8 @@ OC.L10N.register( "Unable to change full name" : "Họ và tên không thể đổi ", "Your full name has been changed." : "Họ và tên đã được thay đổi.", "Email saved" : "Lưu email", - "Admins can't remove themself from the admin group" : "Quản trị viên không thể loại bỏ chính họ khỏi nhóm quản lý", - "Unable to add user to group %s" : "Không thể thêm người dùng vào nhóm %s", - "Unable to remove user from group %s" : "Không thể xóa người dùng từ nhóm %s", "Couldn't update app." : "Không thể cập nhật ứng dụng", "All" : "Tất cả", - "Please wait...." : "Xin hãy đợi...", "Disable" : "Tắt", "Enable" : "Bật", "Updating...." : "Đang cập nhật...", @@ -63,10 +59,13 @@ OC.L10N.register( "set new password" : "đặt mật khẩu mới", "Default" : "Mặc định", "Language changed" : "Ngôn ngữ đã được thay đổi", + "Admins can't remove themself from the admin group" : "Quản trị viên không thể loại bỏ chính họ khỏi nhóm quản lý", + "Unable to add user to group %s" : "Không thể thêm người dùng vào nhóm %s", + "Unable to remove user from group %s" : "Không thể xóa người dùng từ nhóm %s", + "Please wait...." : "Xin hãy đợi...", "Log" : "Log", "More" : "hơn", "Less" : "ít", - "Group" : "N", - "External Storage" : "Lưu trữ ngoài" + "Group" : "N" }, "nplurals=1; plural=0;"); diff --git a/settings/l10n/vi.json b/settings/l10n/vi.json index bdbe044ba1a074535dc2f8755d5ae95677c23065..cd1a4245ca06cf3c59739c46e0ee2363d03612c3 100644 --- a/settings/l10n/vi.json +++ b/settings/l10n/vi.json @@ -7,12 +7,8 @@ "Unable to change full name" : "Họ và tên không thể đổi ", "Your full name has been changed." : "Họ và tên đã được thay đổi.", "Email saved" : "Lưu email", - "Admins can't remove themself from the admin group" : "Quản trị viên không thể loại bỏ chính họ khỏi nhóm quản lý", - "Unable to add user to group %s" : "Không thể thêm người dùng vào nhóm %s", - "Unable to remove user from group %s" : "Không thể xóa người dùng từ nhóm %s", "Couldn't update app." : "Không thể cập nhật ứng dụng", "All" : "Tất cả", - "Please wait...." : "Xin hãy đợi...", "Disable" : "Tắt", "Enable" : "Bật", "Updating...." : "Đang cập nhật...", @@ -61,10 +57,13 @@ "set new password" : "đặt mật khẩu mới", "Default" : "Mặc định", "Language changed" : "Ngôn ngữ đã được thay đổi", + "Admins can't remove themself from the admin group" : "Quản trị viên không thể loại bỏ chính họ khỏi nhóm quản lý", + "Unable to add user to group %s" : "Không thể thêm người dùng vào nhóm %s", + "Unable to remove user from group %s" : "Không thể xóa người dùng từ nhóm %s", + "Please wait...." : "Xin hãy đợi...", "Log" : "Log", "More" : "hơn", "Less" : "ít", - "Group" : "N", - "External Storage" : "Lưu trữ ngoài" + "Group" : "N" },"pluralForm" :"nplurals=1; plural=0;" } \ No newline at end of file diff --git a/settings/l10n/zh_CN.js b/settings/l10n/zh_CN.js index efbb86447ddad3bfc99228ce57b9aa988ac4092f..9392b2d92e1250b9c7915039472e14111e0c2647 100644 --- a/settings/l10n/zh_CN.js +++ b/settings/l10n/zh_CN.js @@ -3,58 +3,63 @@ OC.L10N.register( { "Enabled" : "开启", "Not enabled" : "未启用", - "Wrong password" : "错误密码", + "Wrong password" : "密码错误", "Saved" : "已保存", "No user supplied" : "没有满足的用户", - "Unable to change password" : "不能更改密码", + "Unable to change password" : "无法修改密码", "Authentication error" : "认证错误", - "Please provide an admin recovery password, otherwise all user data will be lost" : "请提供管理员恢复密码,否则所有用户的数据都将遗失。", - "Wrong admin recovery password. Please check the password and try again." : "错误的管理员恢复密码。请检查密码并重试。", - "Backend doesn't support password change, but the user's encryption key was successfully updated." : "后端不支持密码更改,但用户的加密密钥已成功更新。", + "Please provide an admin recovery password, otherwise all user data will be lost" : "请提供管理员恢复密码, 否则所有用户的数据都将丢失.", + "Wrong admin recovery password. Please check the password and try again." : "错误的管理员恢复密码. 请检查密码并重试.", + "Backend doesn't support password change, but the user's encryption key was successfully updated." : "后端不支持修改密码, 但用户的加密密钥已成功更新.", "installing and updating apps via the app store or Federated Cloud Sharing" : "通过应用程序商店或联合云共享安装和更新应用程序", "Federated Cloud Sharing" : "联合云共享", - "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL使用了过时 %s 版本 (%s)。请更新你的操作系统或功能比如 %s 将无法可靠地工作。", - "A problem occurred, please check your log files (Error: %s)" : "出现了故障,请检查你的日志文件 (错误: %s)", + "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)", "Migration Completed" : "迁移完成", - "Group already exists." : "组已经存在。", - "Unable to add group." : "无法添加组。", - "Unable to delete group." : "无法删除组", + "Group already exists." : "分组已经存在.", + "Unable to add group." : "无法添加分组.", + "Unable to delete group." : "无法删除分组.", "test email settings" : "测试电子邮件设置", - "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "在发送电子邮件时出现问题。请修改您的设置。 (错误: %s)", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "在发送电子邮件时出现问题. 请修正您的设置. (错误: %s)", "Email sent" : "邮件已发送", - "You need to set your user email before being able to send test emails." : "在发送测试邮件前您需要设置您的用户电子邮件。", + "You need to set your user email before being able to send test emails." : "在发送测试邮件前您需要设置您的电子邮件地址.", "Invalid request" : "无效请求", "Invalid mail address" : "无效的电子邮件地址", - "A user with that name already exists." : "使用该名称的用户已存在。", - "Unable to create user." : "无法创建用户。", + "No valid group selected" : "没有选择有效的分组", + "A user with that name already exists." : "使用该名称的用户已存在.", + "Unable to create user." : "无法创建用户.", "Your %s account was created" : "你的帐户 %s 已创建", - "Unable to delete user." : "不能删除用户", + "Unable to delete user." : "无法删除用户", + "Settings saved" : "设置已保存", "Unable to change full name" : "无法修改全名", - "Your full name has been changed." : "您的全名已修改。", + "Unable to change email address" : "无法修改电子邮箱地址", + "Your full name has been changed." : "您的全名已修改.", "Forbidden" : "被禁止", - "Invalid user" : "用户无效", - "Unable to change mail address" : "无法更改邮箱地址", + "Invalid user" : "无效用户", + "Unable to change mail address" : "无法修改电子邮箱地址", "Email saved" : "电子邮件已保存", - "Couldn't remove app." : "无法删除应用。", - "Admins can't remove themself from the admin group" : "管理员不能将自己移出管理组。", - "Unable to add user to group %s" : "无法把用户增加到组 %s", - "Unable to remove user from group %s" : "无法从组%s中移除用户", - "Couldn't update app." : "无法更新应用。", - "Add trusted domain" : "添加信任域", - "Migration in progress. Please wait until the migration is finished" : "迁移正在进行中。请等待,直到完成迁移", + "Password confirmation is required" : "需要密码确认", + "Couldn't remove app." : "无法删除应用.", + "Couldn't update app." : "无法更新应用.", + "Are you really sure you want add {domain} as trusted domain?" : "您确定将 {domain} 添加为信任的域名么?", + "Add trusted domain" : "添加信任域名", + "Migration in progress. Please wait until the migration is finished" : "正在进行迁移. 请稍等, 直到迁移完成", "Migration started …" : "迁移开始...", + "Not saved" : "未保存", "Sending..." : "正在发送...", "Official" : "官方", "All" : "全部", "Update to %s" : "更新为 %s", "_You have %n app update pending_::_You have %n app updates pending_" : ["%n 个应用正在等待升级"], "No apps found for your version" : "未找到适合当前版本的应用", - "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "已认可的应用是由值得信赖的开发商开发,并已通过了一个粗略的安全检查。他们放在一个开放的代码库并且维护人员认为他们是稳定的差不多可以正常使用。", - "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "此应用未检查安全问题,它是新的或已知是不稳定的。安装风险自担。", - "Please wait...." : "请稍等....", + "The app will be downloaded from the app store" : "该应用将从应用商店下载", + "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "官方应用由社区和内部开发. 其可以提供核心功能并保证生产用途.", + "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "认证应用由值得信赖的开发者开发, 并通过了一个粗略的安全检查. 其在开放的代码库中活跃地维护, 他们的维护者认为在普通用途足够稳定.", + "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "此应用没有检查安全问题, 它是新的或已知不稳定的. 安装风险自担.", + "Enabling app …" : "正在启用应用程序...", "Error while disabling app" : "禁用应用时出错", "Disable" : "禁用", - "Enable" : "开启", + "Enable" : "启用", "Error while enabling app" : "启用应用时出错", "Error: this app cannot be enabled because it makes the server unstable" : "错误: 无法启用应用因为它会导致服务器不稳定", "Error: could not disable broken app" : "错误: 无法禁用损坏的应用", @@ -62,31 +67,70 @@ OC.L10N.register( "Updating...." : "正在更新....", "Error while updating app" : "更新应用时出错", "Updated" : "已更新", - "Uninstalling ...." : "卸载中....", + "Uninstalling ...." : "正在卸载....", "Error while uninstalling app" : "卸载应用时发生了一个错误", "Uninstall" : "卸载", - "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "该应用已启用,但是需要更新。5秒后将跳转到更新页面。", - "App update" : "应用更新", - "Approved" : "已认可", + "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "该应用已启用, 但是需要更新. 5秒后将跳转到更新页面.", + "App update" : "更新应用", + "Approved" : "已认证", "Experimental" : "实验", - "An error occurred. Please upload an ASCII-encoded PEM certificate." : "出现了一个错误。请上传 ASCII 编码的 PEM 证书。", + "No apps found for {query}" : "找不到符合 {query} 的应用", + "Allow filesystem access" : "允许访问文件系统", + "Disconnect" : "断开连接", + "Revoke" : "撤销", + "Internet Explorer" : "Internet Explorer", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google Chrome", + "Safari" : "Safari", + "Google Chrome for Android" : "Google Chrome for Android", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", + "iOS Client" : "iOS 客户端", + "Android Client" : "Android 客户端", + "Sync client - {os}" : "同步客户端 - {os}", + "This session" : "当前会话", + "Copy" : "复制", + "Copied!" : "已复制!", + "Not supported!" : "不支持!", + "Press ⌘-C to copy." : "按 ⌘-C 键复制.", + "Press Ctrl-C to copy." : "按 Ctrl-C 复制.", + "Error while loading browser sessions and device tokens" : "加载浏览器会话和设备令牌时出错", + "Error while creating device token" : "创建设备令牌时出错", + "Error while deleting the token" : "删除令牌时出错", + "An error occurred. Please upload an ASCII-encoded PEM certificate." : "出现了一个错误. 请上传 ASCII 编码的 PEM 证书.", "Valid until {date}" : "有效期至 {date}", "Delete" : "删除", + "Local" : "本地", + "Private" : "私有", + "Only visible to local users" : "仅对本地用户可见", + "Only visible to you" : "仅您自己可见", + "Contacts" : "联系人", + "Visible to local users and to trusted servers" : "仅对本地用户和信任的服务器可见", + "Public" : "公开", + "Will be synced to a global and public address book" : "将同步到全局和公开地址簿中", "Select a profile picture" : "选择头像", "Very weak password" : "非常弱的密码", "Weak password" : "弱密码", "So-so password" : "一般强度的密码", "Good password" : "较强的密码", "Strong password" : "强密码", - "Groups" : "组", + "Groups" : "分组", "Unable to delete {objName}" : "无法删除 {objName}", - "Error creating group: {message}" : "创建组时出错: {message}", - "A valid group name must be provided" : "请提供一个有效的组名称", + "Error creating group: {message}" : "创建分组时出错: {message}", + "A valid group name must be provided" : "请提供一个有效的分组名称", "deleted {groupName}" : "已删除 {groupName}", "undo" : "撤销", "never" : "从不", "deleted {userName}" : "已删除 {userName}", - "Changing the password will result in data loss, because data recovery is not available for this user" : "更改密码会导致数据丢失,因为数据恢复不适用于此用户", + "Unable to add user to group {group}" : "无法将用户添加到分组 {group}", + "Unable to remove user from group {group}" : "无法从分组 {group} 中移除用户", + "Add group" : "添加分组", + "Invalid quota value \"{val}\"" : "无效的配额值 \"{val}\"", + "no group" : "没有分组", + "Password successfully changed" : "密码修改成功", + "Changing the password will result in data loss, because data recovery is not available for this user" : "修改密码会导致数据丢失, 因为数据恢复不适用于此用户", + "Could not change the users email" : "无法修改用户电子邮箱地址", "A valid username must be provided" : "必须提供合法的用户名", "Error creating user: {message}" : "创建用户出错: {message}", "A valid password must be provided" : "必须提供合法的密码", @@ -94,14 +138,18 @@ OC.L10N.register( "__language_name__" : "简体中文", "Unlimited" : "无限", "Personal info" : "个人信息", - "Sync clients" : "客户端", + "Sessions" : "会话", + "App passwords" : "应用密码", + "Sync clients" : "同步客户端", "None" : "无", "Login" : "登录", - "Plain" : "Plain", + "Plain" : "明文", "NT LAN Manager" : "NT LAN 管理器", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", "Email server" : "电子邮件服务器", "Open documentation" : "打开文档", - "This is used for sending out notifications." : "这被用于发送通知。", + "This is used for sending out notifications." : "这被用于发送通知.", "Send mode" : "发送模式", "Encryption" : "加密", "From address" : "来自地址", @@ -118,39 +166,47 @@ OC.L10N.register( "Send email" : "发送邮件", "Server-side encryption" : "服务器端加密", "Enable server-side encryption" : "启用服务器端加密", - "Please read carefully before activating server-side encryption: " : "在激活服务器端加密之前,请仔细阅读:", - "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "一旦加密被启用,之后上传到服务器的所有文件都将服务器上加密。只有当启用状态的加密模块支持解密并且所有的先决条件(例如,设定恢复键)得到满足时才能解除加密。", - "Be aware that encryption always increases the file size." : "请注意,加密会增加文件大小。", - "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." : "定期备份数据有利于保证数据完整,并且确保备份您的加密数据和加密密钥。", - "This is the final warning: Do you really want to enable encryption?" : "这是最后一次警告:你真的想启用加密?", + "Please read carefully before activating server-side encryption: " : "在激活服务器端加密之前, 请仔细阅读:", + "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "一旦加密被启用, 之后上传到服务器的所有文件都将服务器上加密. 只有当启用状态的加密模块支持解密并且所有前提都满足时 (例如: 设定恢复密钥) 才能解除加密.", + "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." : "单独的加密不能保证系统的安全性. 请参考加密应用工作原理和支持的用例的文档获取更多信息", + "Be aware that encryption always increases the file size." : "请注意, 加密会增加文件大小.", + "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." : "定期备份数据有助于保证数据完整, 并且确保备份您的加密数据和加密密钥.", + "This is the final warning: Do you really want to enable encryption?" : "这是最后一次警告: 你确定要启用加密?", "Enable encryption" : "启用加密", - "No encryption module loaded, please enable an encryption module in the app menu." : "没有加载加密模块,请在 APP 应用菜单中启用加密模块。", - "Select default encryption module:" : "选择默认的加密模块:", - "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'" : "你需要升级你的加密密钥 (旧版 ownCloud <= 8.0) 。 请在应用中启用 \\\"Default encryption module\\\" 并运行 'occ encryption:migrate'", - "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "您需要将加密密钥从旧版(ownCloud<=8.0)迁移到新版。", + "No encryption module loaded, please enable an encryption module in the app menu." : "没有加载加密模块, 请在 APP 应用菜单中启用加密模块.", + "Select default encryption module:" : "选择默认的加密模块:", + "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'" : "您需要从旧版本 (ownCloud <= 8.0) 迁移您的加密密钥. 请在应用中启用 \\\"Default encryption module\\\" 并运行 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "您需要从旧版本 (ownCloud<=8.0) 迁移您的加密密钥.", "Start migration" : "开始迁移", "Security & setup warnings" : "安全及设置警告", - "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP 似乎没有设置好查询的系统环境变量。 用 getenv(\\\"PATH\\\") 测试只返回一个空值。", - "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." : "只读配置已启用。这样可防止通过 WEB 接口设置一些配置。此外,每次更新后该文件需要手动设置为可写。", - "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP 被设置为移除行内
just letting you know that you now have a %s account.
Your username: %s
Access it: %s
" : "您好,
您刚刚创建了 %s 账户
您的用户名: %s
现在访问: %s
", + "Cheers!" : "干杯!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "您好,\n\n您刚刚创建了 %s 账户.\n\n您的用户名: %s\n现在访问: %s\n", "Administrator documentation" : "管理员文档", "Online documentation" : "在线文档", "Forum" : "论坛", + "Getting help" : "获取帮助", "Commercial support" : "商业支持", - "Profile picture" : "联系人图片", - "Upload new" : "上传新的", + "You are using %s of %s" : "您正在使用 %s of %s", + "Profile picture" : "账户头像", + "Upload new" : "上传", "Select from Files" : "选择文件", - "Remove image" : "移除图片", - "png or jpg, max. 20 MB" : "png或jpg格式最大不超过20MB大小", + "Remove image" : "删除图片", + "png or jpg, max. 20 MB" : "png 或 jpg 格式, 不超过 20MB", "Picture provided by original account" : "原始账户图片", "Cancel" : "取消", - "Choose as profile picture" : "选择图片", + "Choose as profile picture" : "选择个人头像", "Full name" : "全名", "No display name set" : "不显示名称设置", "Email" : "电子邮件", "Your email address" : "您的电子邮件", "No email address set" : "尚未设置 Email 地址", - "For password recovery and notifications" : "用户恢复密码通知", - "You are member of the following groups:" : "您是以下组的成员:", + "For password recovery and notifications" : "用于密码恢复和通知", + "Phone number" : "电话号码", + "Your phone number" : "您的电话号码", + "Address" : "地址", + "Your postal address" : "您的邮寄地址", + "Website" : "网站", + "Your website" : "您的网站", + "Twitter" : "Twitter", + "Your Twitter handle" : "您的 Twitter 账号", + "You are member of the following groups:" : "您是以下组的成员:", "Password" : "密码", "Current password" : "当前密码", "New password" : "新密码", "Change password" : "修改密码", "Language" : "语言", "Help translate" : "帮助翻译", - "Get the apps to sync your files" : "安装应用进行文件同步", + "Get the apps to sync your files" : "下载应用同步您的文件", "Desktop client" : "桌面客户端", "Android app" : "Android 应用", "iOS app" : "iOS 应用", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "如果您想支持这个项目 {contributeopen}一起开发{linkclose} 或 {contributeopen}帮助传播{linkclose}!", "Show First Run Wizard again" : "再次显示首次运行向导", + "Web, desktop and mobile clients currently logged in to your account." : "您账号当前登录的 Web 页面, 桌面和客户端客户端.", + "Device" : "设备", + "Last activity" : "最后活跃", + "Passcodes that give an app or device permissions to access your account." : "Passcodes 可以使应用或设备访问您的账号.", "Name" : "名称", + "App name" : "应用名", + "Create new app password" : "创建新应用密码", + "Use the credentials below to configure your app or device." : "使用下述凭据配置您的应用或设备.", + "For security reasons this password will only be shown once." : "由于安全原因, 密码仅会显示一次.", "Username" : "用户名", + "Done" : "完成", + "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "由 {communityopen}Nextcloud community{linkclose} 开发, {githubopen}源代码{linkclose} 基于 {licenseopen}AGPL{linkclose} 许可协议.", + "Follow us on Google Plus!" : "在 Google+ 上关注我们!", + "Like our facebook page!" : "点赞我们 facebook 页面!", + "Subscribe to our twitter channel!" : "关注我们的 twitter!", + "Subscribe to our news feed!" : "订阅我们 RSS 最新消息!", + "Subscribe to our newsletter!" : "订阅我们的最新消息!", "Show storage location" : "显示存储位置", "Show last log in" : "显示最后登录", - "Show user backend" : "显示用户后端", + "Show user backend" : "显示用户来源", "Send email to new user" : "发送电子邮件给新用户", "Show email address" : "显示邮件地址", "E-Mail" : "E-Mail", "Create" : "创建", "Admin Recovery Password" : "管理恢复密码", "Enter the recovery password in order to recover the users files during password change" : "输入恢复密码来在更改密码的时候恢复用户文件", + "Group name" : "分组名", "Everyone" : "所有人", "Admins" : "管理员", - "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "请输入存储限额 (ex: \"512 MB\" or \"12 GB\")", + "Default quota" : "默认配额", + "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "请输入存储配额 (例如: \"512 MB\" 或 \"12 GB\")", "Other" : "其它", + "Group admin for" : "分组管理员", "Quota" : "配额", + "Storage location" : "存储位置", + "User backend" : "用户来源", + "Last login" : "最后登录", "change full name" : "更改全名", "set new password" : "设置新密码", "change email address" : "修改电子邮箱地址", "Default" : "默认", "log-level out of allowed range" : "日志级别超出允许的范围", "Language changed" : "语言已修改", - "Are you really sure you want add \"{domain}\" as trusted domain?" : "你真的希望添加 \"{domain}\" 为信任域?", - "Everything (fatal issues, errors, warnings, info, debug)" : "所有(灾难性问题,错误,警告,信息,调试)", - "Info, warnings, errors and fatal issues" : "信息,警告,错误和灾难性问题", - "Warnings, errors and fatal issues" : "警告,错误和灾难性问题", + "Admins can't remove themself from the admin group" : "管理员不能将自己移出管理组", + "Unable to add user to group %s" : "无法将用户添加到分组 %s", + "Unable to remove user from group %s" : "无法从分组 %s 中移除用户", + "Are you really sure you want add \"{domain}\" as trusted domain?" : "您确定将 \"{domain}\" 添加为信任的域名么?", + "Please wait...." : "请稍等....", + "iPhone" : "iPhone", + "add group" : "添加分组", + "Everything (fatal issues, errors, warnings, info, debug)" : "全部 (灾难性问题, 错误, 警告, 信息, 调试)", + "Info, warnings, errors and fatal issues" : "信息, 警告, 错误和灾难性问题", + "Warnings, errors and fatal issues" : "警告, 错误和灾难性问题", "Errors and fatal issues" : "错误和灾难性问题", "Fatal issues only" : "仅灾难性问题", "Log" : "日志", @@ -252,21 +358,25 @@ OC.L10N.register( "Download logfile" : "下载日志文件", "More" : "更多", "Less" : "更少", - "The logfile is bigger than 100 MB. Downloading it may take some time!" : "日志文件超过 100 MB。下载可能需要一些时间!", + "The logfile is bigger than 100 MB. Downloading it may take some time!" : "日志文件超过了 100 MB. 下载可能需要一些时间!", "Allow users to send mail notification for shared files" : "允许用户发送共享文件的邮件通知", "Allow users to send mail notification for shared files to other users" : "允许用户发送共享文件的邮件通知给其他用户", - "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite 被用作数据库。对于较大数据量的安装和使用,我们建议您切换到不同的数据库后端。", - "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "特别当使用桌面客户端来同步文件时,不鼓励使用 SQLite 。", + "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite 被用作数据库. 对于较大数据量的安装和使用, 我们建议您切换到不同的数据库后端.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "特别当使用桌面客户端同步文件时, 不建议使用 SQLite.", "Experimental applications ahead" : "未来的实验应用", - "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "实验应用程序没有在安全性的问题上作过多检查,新的或已知的不稳定 BUG 都在开发中。安装它们可能会导致数据丢失或安全漏洞。", + "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "实验性应用程序没有检查安全性问题, 它是新的或已知不稳定的. 安装它们可能会导致数据丢失或安全漏洞.", + "Uninstall App" : "卸载应用", "Enable experimental apps" : "启用实验性应用程序", "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "亲,
现在我们为你开通了 %s 私有云帐户。
你的用户名: %s
访问网址: %s
", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "亲,\\n\\n 现在我们为你开通了 %s 私有去帐户。\\n\\n 你的用户名: %s\\n 访问网址: %s\\n 你的初始密码需要咨询系统管理员。或者你也可以在登录页面输入任意密码登录,\\n登录窗口将出现忘记密码链接,点击通过注册邮箱重设初始密码。\\n\\n", + "If you want to support the project\n\t\tjoin development\n\t\t
just letting you know that you now have a %s account.
Your username: %s
Access it: %s
" : "您好,
您刚刚创建了 %s 账户
您的用户名: %s
现在访问: %s
", + "Cheers!" : "干杯!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "您好,\n\n您刚刚创建了 %s 账户.\n\n您的用户名: %s\n现在访问: %s\n", "Administrator documentation" : "管理员文档", "Online documentation" : "在线文档", "Forum" : "论坛", + "Getting help" : "获取帮助", "Commercial support" : "商业支持", - "Profile picture" : "联系人图片", - "Upload new" : "上传新的", + "You are using %s of %s" : "您正在使用 %s of %s", + "Profile picture" : "账户头像", + "Upload new" : "上传", "Select from Files" : "选择文件", - "Remove image" : "移除图片", - "png or jpg, max. 20 MB" : "png或jpg格式最大不超过20MB大小", + "Remove image" : "删除图片", + "png or jpg, max. 20 MB" : "png 或 jpg 格式, 不超过 20MB", "Picture provided by original account" : "原始账户图片", "Cancel" : "取消", - "Choose as profile picture" : "选择图片", + "Choose as profile picture" : "选择个人头像", "Full name" : "全名", "No display name set" : "不显示名称设置", "Email" : "电子邮件", "Your email address" : "您的电子邮件", "No email address set" : "尚未设置 Email 地址", - "For password recovery and notifications" : "用户恢复密码通知", - "You are member of the following groups:" : "您是以下组的成员:", + "For password recovery and notifications" : "用于密码恢复和通知", + "Phone number" : "电话号码", + "Your phone number" : "您的电话号码", + "Address" : "地址", + "Your postal address" : "您的邮寄地址", + "Website" : "网站", + "Your website" : "您的网站", + "Twitter" : "Twitter", + "Your Twitter handle" : "您的 Twitter 账号", + "You are member of the following groups:" : "您是以下组的成员:", "Password" : "密码", "Current password" : "当前密码", "New password" : "新密码", "Change password" : "修改密码", "Language" : "语言", "Help translate" : "帮助翻译", - "Get the apps to sync your files" : "安装应用进行文件同步", + "Get the apps to sync your files" : "下载应用同步您的文件", "Desktop client" : "桌面客户端", "Android app" : "Android 应用", "iOS app" : "iOS 应用", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "如果您想支持这个项目 {contributeopen}一起开发{linkclose} 或 {contributeopen}帮助传播{linkclose}!", "Show First Run Wizard again" : "再次显示首次运行向导", + "Web, desktop and mobile clients currently logged in to your account." : "您账号当前登录的 Web 页面, 桌面和客户端客户端.", + "Device" : "设备", + "Last activity" : "最后活跃", + "Passcodes that give an app or device permissions to access your account." : "Passcodes 可以使应用或设备访问您的账号.", "Name" : "名称", + "App name" : "应用名", + "Create new app password" : "创建新应用密码", + "Use the credentials below to configure your app or device." : "使用下述凭据配置您的应用或设备.", + "For security reasons this password will only be shown once." : "由于安全原因, 密码仅会显示一次.", "Username" : "用户名", + "Done" : "完成", + "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "由 {communityopen}Nextcloud community{linkclose} 开发, {githubopen}源代码{linkclose} 基于 {licenseopen}AGPL{linkclose} 许可协议.", + "Follow us on Google Plus!" : "在 Google+ 上关注我们!", + "Like our facebook page!" : "点赞我们 facebook 页面!", + "Subscribe to our twitter channel!" : "关注我们的 twitter!", + "Subscribe to our news feed!" : "订阅我们 RSS 最新消息!", + "Subscribe to our newsletter!" : "订阅我们的最新消息!", "Show storage location" : "显示存储位置", "Show last log in" : "显示最后登录", - "Show user backend" : "显示用户后端", + "Show user backend" : "显示用户来源", "Send email to new user" : "发送电子邮件给新用户", "Show email address" : "显示邮件地址", "E-Mail" : "E-Mail", "Create" : "创建", "Admin Recovery Password" : "管理恢复密码", "Enter the recovery password in order to recover the users files during password change" : "输入恢复密码来在更改密码的时候恢复用户文件", + "Group name" : "分组名", "Everyone" : "所有人", "Admins" : "管理员", - "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "请输入存储限额 (ex: \"512 MB\" or \"12 GB\")", + "Default quota" : "默认配额", + "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "请输入存储配额 (例如: \"512 MB\" 或 \"12 GB\")", "Other" : "其它", + "Group admin for" : "分组管理员", "Quota" : "配额", + "Storage location" : "存储位置", + "User backend" : "用户来源", + "Last login" : "最后登录", "change full name" : "更改全名", "set new password" : "设置新密码", "change email address" : "修改电子邮箱地址", "Default" : "默认", "log-level out of allowed range" : "日志级别超出允许的范围", "Language changed" : "语言已修改", - "Are you really sure you want add \"{domain}\" as trusted domain?" : "你真的希望添加 \"{domain}\" 为信任域?", - "Everything (fatal issues, errors, warnings, info, debug)" : "所有(灾难性问题,错误,警告,信息,调试)", - "Info, warnings, errors and fatal issues" : "信息,警告,错误和灾难性问题", - "Warnings, errors and fatal issues" : "警告,错误和灾难性问题", + "Admins can't remove themself from the admin group" : "管理员不能将自己移出管理组", + "Unable to add user to group %s" : "无法将用户添加到分组 %s", + "Unable to remove user from group %s" : "无法从分组 %s 中移除用户", + "Are you really sure you want add \"{domain}\" as trusted domain?" : "您确定将 \"{domain}\" 添加为信任的域名么?", + "Please wait...." : "请稍等....", + "iPhone" : "iPhone", + "add group" : "添加分组", + "Everything (fatal issues, errors, warnings, info, debug)" : "全部 (灾难性问题, 错误, 警告, 信息, 调试)", + "Info, warnings, errors and fatal issues" : "信息, 警告, 错误和灾难性问题", + "Warnings, errors and fatal issues" : "警告, 错误和灾难性问题", "Errors and fatal issues" : "错误和灾难性问题", "Fatal issues only" : "仅灾难性问题", "Log" : "日志", @@ -250,21 +356,25 @@ "Download logfile" : "下载日志文件", "More" : "更多", "Less" : "更少", - "The logfile is bigger than 100 MB. Downloading it may take some time!" : "日志文件超过 100 MB。下载可能需要一些时间!", + "The logfile is bigger than 100 MB. Downloading it may take some time!" : "日志文件超过了 100 MB. 下载可能需要一些时间!", "Allow users to send mail notification for shared files" : "允许用户发送共享文件的邮件通知", "Allow users to send mail notification for shared files to other users" : "允许用户发送共享文件的邮件通知给其他用户", - "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite 被用作数据库。对于较大数据量的安装和使用,我们建议您切换到不同的数据库后端。", - "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "特别当使用桌面客户端来同步文件时,不鼓励使用 SQLite 。", + "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite 被用作数据库. 对于较大数据量的安装和使用, 我们建议您切换到不同的数据库后端.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "特别当使用桌面客户端同步文件时, 不建议使用 SQLite.", "Experimental applications ahead" : "未来的实验应用", - "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "实验应用程序没有在安全性的问题上作过多检查,新的或已知的不稳定 BUG 都在开发中。安装它们可能会导致数据丢失或安全漏洞。", + "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "实验性应用程序没有检查安全性问题, 它是新的或已知不稳定的. 安装它们可能会导致数据丢失或安全漏洞.", + "Uninstall App" : "卸载应用", "Enable experimental apps" : "启用实验性应用程序", "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "亲,
现在我们为你开通了 %s 私有云帐户。
你的用户名: %s
访问网址: %s
", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "亲,\\n\\n 现在我们为你开通了 %s 私有去帐户。\\n\\n 你的用户名: %s\\n 访问网址: %s\\n 你的初始密码需要咨询系统管理员。或者你也可以在登录页面输入任意密码登录,\\n登录窗口将出现忘记密码链接,点击通过注册邮箱重设初始密码。\\n\\n", + "If you want to support the project\n\t\tjoin development\n\t\t
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "嗨,
通知您一聲,您現在有了 %s 的帳號。
您的帳號: %s
開通帳號: %s
", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "嗨,\n\n通知您一聲,您現在有了 %s 的帳號。\n\n您的帳號:%s\n開通帳號:%s\n\n", - "Group" : "群組", - "APCu" : "APCu", - "Redis" : "Redis", - "External Storage" : "外部儲存", - "Updates" : "更新", - "An error occurred: {message}" : "發生錯誤:{message}" + "Group" : "群組" }, "nplurals=1; plural=0;"); diff --git a/settings/l10n/zh_TW.json b/settings/l10n/zh_TW.json index 58d471b4b93065d8e8b8a5e40b5100fb12ecbbe4..21af65d762bc796a942327c5ad6e1e50db6e6906 100644 --- a/settings/l10n/zh_TW.json +++ b/settings/l10n/zh_TW.json @@ -34,9 +34,6 @@ "Unable to change mail address" : "無法更改 email 地址", "Email saved" : "Email 已儲存", "Couldn't remove app." : "無法移除應用程式", - "Admins can't remove themself from the admin group" : "管理者帳號無法從管理者群組中移除", - "Unable to add user to group %s" : "無法將使用者加入群組 %s", - "Unable to remove user from group %s" : "無法將使用者移出群組 %s", "Couldn't update app." : "無法更新應用程式", "Add trusted domain" : "新增信任的網域", "Migration in progress. Please wait until the migration is finished" : "資料搬移中,請耐心等候直到資料搬移結束", @@ -50,7 +47,6 @@ "The app will be downloaded from the app store" : "將會從應用程式商店下載這個應用程式", "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "審查通過的應用程式經由可信任的開發人員所設計,並且經過一連串的安全測試,他們在開放的程式庫中維護這些應用程式,而且確保這些應用程式能穩定運作", "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "這個新應用程式並沒有經過安全檢測,可能會是不穩定的,如果您要安裝的話,風險自行負責。", - "Please wait...." : "請稍候…", "Error while disabling app" : "停用應用程式錯誤", "Disable" : "停用", "Enable" : "啟用", @@ -193,7 +189,6 @@ "This app has an update available." : "此應用程式有可用的更新", "This app cannot be installed because the following dependencies are not fulfilled:" : "這個應用程式無法被安裝,因為欠缺下列相依套件:", "Enable only for specific groups" : "僅對特定的群組啟用", - "Uninstall App" : "解除安裝 App", "Common Name" : "Common Name", "Valid until" : "到期日", "Issued By" : "發行者:", @@ -253,7 +248,11 @@ "Default" : "預設", "log-level out of allowed range" : "log-level 超過允許範圍", "Language changed" : "語言已變更", + "Admins can't remove themself from the admin group" : "管理者帳號無法從管理者群組中移除", + "Unable to add user to group %s" : "無法將使用者加入群組 %s", + "Unable to remove user from group %s" : "無法將使用者移出群組 %s", "Are you really sure you want add \"{domain}\" as trusted domain?" : "您確定要新增 \"{domain}' 為信任的網域?", + "Please wait...." : "請稍候…", "iPhone" : "iPhone", "Everything (fatal issues, errors, warnings, info, debug)" : "全部(嚴重問題、錯誤、警告、資訊、除錯訊息)", "Info, warnings, errors and fatal issues" : "嚴重問題、錯誤、警告、資訊", @@ -272,14 +271,10 @@ "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "若使用桌面版程式同步檔案,不建議使用 SQLite", "Experimental applications ahead" : "以下是實驗性質的應用程式", "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "實驗性質的應用程式並沒有經過安全檢測,可能會不穩定而且正在開發中,安裝他們可能會造成資料遺失或是安全問題", + "Uninstall App" : "解除安裝 App", "Enable experimental apps" : "啟用實驗性質的應用程式", "Hey there,
just letting you know that you now have an %s account.
Your username: %s
Access it: %s
" : "嗨,
通知您一聲,您現在有了 %s 的帳號。
您的帳號: %s
開通帳號: %s
", "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "嗨,\n\n通知您一聲,您現在有了 %s 的帳號。\n\n您的帳號:%s\n開通帳號:%s\n\n", - "Group" : "群組", - "APCu" : "APCu", - "Redis" : "Redis", - "External Storage" : "外部儲存", - "Updates" : "更新", - "An error occurred: {message}" : "發生錯誤:{message}" + "Group" : "群組" },"pluralForm" :"nplurals=1; plural=0;" } \ No newline at end of file diff --git a/settings/personal.php b/settings/personal.php index 27c1a25653d7f1c6066fbda377fe208f5638c0f5..a79e9764a6be19ad8a6adc40e735e46830532165 100644 --- a/settings/personal.php +++ b/settings/personal.php @@ -88,7 +88,7 @@ foreach($languageCodes as $lang) { if($l->getLanguageCode() === $lang && substr($potentialName, 0, 1) !== '_') {//first check if the language name is in the translation file $ln = array('code' => $lang, 'name' => $potentialName); } elseif ($lang === 'en') { - $ln = ['code' => $lang, 'name' => 'English']; + $ln = ['code' => $lang, 'name' => 'English (US)']; }else{//fallback to language code $ln=array('code'=>$lang, 'name'=>$lang); } @@ -196,7 +196,7 @@ $tmpl->assign('groups', $groups2); // add hardcoded forms from the template $formsAndMore = []; -$formsAndMore[]= ['anchor' => 'avatar', 'section-name' => $l->t('Personal info')]; +$formsAndMore[]= ['anchor' => 'personal-settings', 'section-name' => $l->t('Personal info')]; $formsAndMore[]= ['anchor' => 'sessions', 'section-name' => $l->t('Sessions')]; $formsAndMore[]= ['anchor' => 'apppasswords', 'section-name' => $l->t('App passwords')]; $formsAndMore[]= ['anchor' => 'clientsbox', 'section-name' => $l->t('Sync clients')]; diff --git a/settings/templates/admin/frame.php b/settings/templates/admin/frame.php index 761d76c443477ec2876e8904d1ff47b0bf2fa987..2b234f4cd9b764e6bfd099e7a32100bd45a3838b 100644 --- a/settings/templates/admin/frame.php +++ b/settings/templates/admin/frame.php @@ -30,14 +30,28 @@ script('files', 'jquery.fileupload'); diff --git a/settings/templates/apps.php b/settings/templates/apps.php index a5a98ea506f69c99476621e0b9a2f5493f1b4378..80689237e60c981a5a35c168b16a96dd65c67281 100644 --- a/settings/templates/apps.php +++ b/settings/templates/apps.php @@ -3,7 +3,9 @@ style('settings', 'settings'); vendor_script( 'core', [ - 'handlebars/handlebars' + 'handlebars/handlebars', + 'marked/marked.min', + 'DOMPurify/dist/purify.min', ] ); script( @@ -24,7 +26,7 @@ script(