diff options
Diffstat (limited to 'apps')
301 files changed, 1396 insertions, 732 deletions
diff --git a/apps/accessibility/composer/composer/InstalledVersions.php b/apps/accessibility/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/accessibility/composer/composer/InstalledVersions.php +++ b/apps/accessibility/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/accessibility/composer/composer/autoload_classmap.php b/apps/accessibility/composer/composer/autoload_classmap.php index d9aa1becd7f..c54d05d6258 100644 --- a/apps/accessibility/composer/composer/autoload_classmap.php +++ b/apps/accessibility/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/accessibility/composer/composer/autoload_namespaces.php b/apps/accessibility/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/accessibility/composer/composer/autoload_namespaces.php +++ b/apps/accessibility/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/accessibility/composer/composer/autoload_psr4.php b/apps/accessibility/composer/composer/autoload_psr4.php index 9d380abd716..3fb0fa3d684 100644 --- a/apps/accessibility/composer/composer/autoload_psr4.php +++ b/apps/accessibility/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/accessibility/composer/composer/autoload_real.php b/apps/accessibility/composer/composer/autoload_real.php index 86277d610bf..a08983b79fe 100644 --- a/apps/accessibility/composer/composer/autoload_real.php +++ b/apps/accessibility/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitAccessibility } spl_autoload_register(array('ComposerAutoloaderInitAccessibility', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitAccessibility', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitAccessibility::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitAccessibility::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/accessibility/l10n/ru.js b/apps/accessibility/l10n/ru.js index 65fec98803f..de00362a1e1 100644 --- a/apps/accessibility/l10n/ru.js +++ b/apps/accessibility/l10n/ru.js @@ -14,6 +14,6 @@ OC.L10N.register( "Accessibility options for nextcloud" : "Настройки доступности для Nextcloud", "Provides multiple accessibilities options to ease your use of Nextcloud" : "Предлагает дополнительные настройки для упрощения использования Nextcloud", "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Доступная среда очень важна для нас. При разработке мы следуем веб-стандартам, контролируя возможность пользования всем сервисом без помощи мыши и с использованием вспомогательных программ, например, выполняющих чтение с экрана. Мы стремимся к выполнению рекомендаций {guidelines}Руководства доступности Веб-Контента{linkend} 2.1 на уровне АА, а при использовании режима высокой контрастности — даже на уровне ААА.", - "If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "При обнаружении ошибок, не стесняйтесь сообщать о них {issuetracker}на наш форум{linkend}. Если Вы заинтересованы в продвижении проекта присоединяйтесь к {designteam}команде дизайнеров{linkend}!" + "If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "При обнаружении ошибок, не стесняйтесь сообщать о них {issuetracker}на наш форум{linkend}. Если Вы заинтересованы в продвижении проекта присоединяйтесь к {designteam}нашей команде дизайнеров{linkend}!" }, "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); diff --git a/apps/accessibility/l10n/ru.json b/apps/accessibility/l10n/ru.json index 51d4de3ebe1..01dced937bb 100644 --- a/apps/accessibility/l10n/ru.json +++ b/apps/accessibility/l10n/ru.json @@ -12,6 +12,6 @@ "Accessibility options for nextcloud" : "Настройки доступности для Nextcloud", "Provides multiple accessibilities options to ease your use of Nextcloud" : "Предлагает дополнительные настройки для упрощения использования Nextcloud", "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Доступная среда очень важна для нас. При разработке мы следуем веб-стандартам, контролируя возможность пользования всем сервисом без помощи мыши и с использованием вспомогательных программ, например, выполняющих чтение с экрана. Мы стремимся к выполнению рекомендаций {guidelines}Руководства доступности Веб-Контента{linkend} 2.1 на уровне АА, а при использовании режима высокой контрастности — даже на уровне ААА.", - "If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "При обнаружении ошибок, не стесняйтесь сообщать о них {issuetracker}на наш форум{linkend}. Если Вы заинтересованы в продвижении проекта присоединяйтесь к {designteam}команде дизайнеров{linkend}!" + "If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "При обнаружении ошибок, не стесняйтесь сообщать о них {issuetracker}на наш форум{linkend}. Если Вы заинтересованы в продвижении проекта присоединяйтесь к {designteam}нашей команде дизайнеров{linkend}!" },"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" }
\ No newline at end of file diff --git a/apps/admin_audit/composer/composer/InstalledVersions.php b/apps/admin_audit/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/admin_audit/composer/composer/InstalledVersions.php +++ b/apps/admin_audit/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/admin_audit/composer/composer/autoload_classmap.php b/apps/admin_audit/composer/composer/autoload_classmap.php index 5dcaa32bb8d..fc4be52ebbb 100644 --- a/apps/admin_audit/composer/composer/autoload_classmap.php +++ b/apps/admin_audit/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/admin_audit/composer/composer/autoload_namespaces.php b/apps/admin_audit/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/admin_audit/composer/composer/autoload_namespaces.php +++ b/apps/admin_audit/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/admin_audit/composer/composer/autoload_psr4.php b/apps/admin_audit/composer/composer/autoload_psr4.php index 63a4845c93d..accaf966e1e 100644 --- a/apps/admin_audit/composer/composer/autoload_psr4.php +++ b/apps/admin_audit/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/admin_audit/composer/composer/autoload_real.php b/apps/admin_audit/composer/composer/autoload_real.php index 5c3d4551dd6..ffbbdd4e269 100644 --- a/apps/admin_audit/composer/composer/autoload_real.php +++ b/apps/admin_audit/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitAdminAudit } spl_autoload_register(array('ComposerAutoloaderInitAdminAudit', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitAdminAudit', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitAdminAudit::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitAdminAudit::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/cloud_federation_api/composer/composer/InstalledVersions.php b/apps/cloud_federation_api/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/cloud_federation_api/composer/composer/InstalledVersions.php +++ b/apps/cloud_federation_api/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/cloud_federation_api/composer/composer/autoload_classmap.php b/apps/cloud_federation_api/composer/composer/autoload_classmap.php index d5c197f1d4b..94d538619a3 100644 --- a/apps/cloud_federation_api/composer/composer/autoload_classmap.php +++ b/apps/cloud_federation_api/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/cloud_federation_api/composer/composer/autoload_namespaces.php b/apps/cloud_federation_api/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/cloud_federation_api/composer/composer/autoload_namespaces.php +++ b/apps/cloud_federation_api/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/cloud_federation_api/composer/composer/autoload_psr4.php b/apps/cloud_federation_api/composer/composer/autoload_psr4.php index a24ce444a67..de1b8cee1e9 100644 --- a/apps/cloud_federation_api/composer/composer/autoload_psr4.php +++ b/apps/cloud_federation_api/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/cloud_federation_api/composer/composer/autoload_real.php b/apps/cloud_federation_api/composer/composer/autoload_real.php index f0ee7acb591..1c7ec9607c2 100644 --- a/apps/cloud_federation_api/composer/composer/autoload_real.php +++ b/apps/cloud_federation_api/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitCloudFederationAPI } spl_autoload_register(array('ComposerAutoloaderInitCloudFederationAPI', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitCloudFederationAPI', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitCloudFederationAPI::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitCloudFederationAPI::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/comments/composer/composer/InstalledVersions.php b/apps/comments/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/comments/composer/composer/InstalledVersions.php +++ b/apps/comments/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/comments/composer/composer/autoload_classmap.php b/apps/comments/composer/composer/autoload_classmap.php index 5503c23c2e9..6afc14d07a1 100644 --- a/apps/comments/composer/composer/autoload_classmap.php +++ b/apps/comments/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/comments/composer/composer/autoload_namespaces.php b/apps/comments/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/comments/composer/composer/autoload_namespaces.php +++ b/apps/comments/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/comments/composer/composer/autoload_psr4.php b/apps/comments/composer/composer/autoload_psr4.php index f30d722bf9e..2db1b8decc4 100644 --- a/apps/comments/composer/composer/autoload_psr4.php +++ b/apps/comments/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/comments/composer/composer/autoload_real.php b/apps/comments/composer/composer/autoload_real.php index 8b8855d7d4f..8668cfb671e 100644 --- a/apps/comments/composer/composer/autoload_real.php +++ b/apps/comments/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitComments } spl_autoload_register(array('ComposerAutoloaderInitComments', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitComments', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitComments::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitComments::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/contactsinteraction/composer/composer/InstalledVersions.php b/apps/contactsinteraction/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/contactsinteraction/composer/composer/InstalledVersions.php +++ b/apps/contactsinteraction/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/contactsinteraction/composer/composer/autoload_classmap.php b/apps/contactsinteraction/composer/composer/autoload_classmap.php index b0d5affc051..6cc1fd7d984 100644 --- a/apps/contactsinteraction/composer/composer/autoload_classmap.php +++ b/apps/contactsinteraction/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/contactsinteraction/composer/composer/autoload_namespaces.php b/apps/contactsinteraction/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/contactsinteraction/composer/composer/autoload_namespaces.php +++ b/apps/contactsinteraction/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/contactsinteraction/composer/composer/autoload_psr4.php b/apps/contactsinteraction/composer/composer/autoload_psr4.php index 945013a79f5..4e53aac8792 100644 --- a/apps/contactsinteraction/composer/composer/autoload_psr4.php +++ b/apps/contactsinteraction/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/contactsinteraction/composer/composer/autoload_real.php b/apps/contactsinteraction/composer/composer/autoload_real.php index d0f0da36ef3..8ba09879f54 100644 --- a/apps/contactsinteraction/composer/composer/autoload_real.php +++ b/apps/contactsinteraction/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitContactsInteraction } spl_autoload_register(array('ComposerAutoloaderInitContactsInteraction', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitContactsInteraction', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitContactsInteraction::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitContactsInteraction::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/dashboard/l10n/ca.js b/apps/dashboard/l10n/ca.js index 7361ddf37aa..8d696acd0f2 100644 --- a/apps/dashboard/l10n/ca.js +++ b/apps/dashboard/l10n/ca.js @@ -3,8 +3,10 @@ OC.L10N.register( { "Dashboard" : "Tauler", "Dashboard app" : "Aplicació tauler", + "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an\noverview of your upcoming appointments, urgent emails, chat messages,\nincoming tickets, latest tweets and much more! Users can add the widgets\nthey like and change the background to their liking." : "Comença el dia informat\n\nEl tauler de control de Nextcloud és el vostre punt de partida del dia i us ofereix una\nvisió general de les vostres properes cites, correus electrònics urgents, missatges de xat,\ntiquets entrants, els darrers tuits i molt més! Els usuaris poden afegir els widgets\nque els agraden i canviar el fons al seu gust.", "Customize" : "Personalitza", "Edit widgets" : "Edita els ginys", + "Get more widgets from the App Store" : "Aconseguiu més widgets de la botiga d'aplicacions", "Change background image" : "Canvia la imatge de fons", "Weather service" : "Servei meteorològic", "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Per a la seva privacitat, les dades meteorològiques les sol·licita el seu servidor Nextcloud en el seu lloc perquè el servei meteorològic no rebi cap informació personal.", diff --git a/apps/dashboard/l10n/ca.json b/apps/dashboard/l10n/ca.json index a47930687db..3ef8707beef 100644 --- a/apps/dashboard/l10n/ca.json +++ b/apps/dashboard/l10n/ca.json @@ -1,8 +1,10 @@ { "translations": { "Dashboard" : "Tauler", "Dashboard app" : "Aplicació tauler", + "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an\noverview of your upcoming appointments, urgent emails, chat messages,\nincoming tickets, latest tweets and much more! Users can add the widgets\nthey like and change the background to their liking." : "Comença el dia informat\n\nEl tauler de control de Nextcloud és el vostre punt de partida del dia i us ofereix una\nvisió general de les vostres properes cites, correus electrònics urgents, missatges de xat,\ntiquets entrants, els darrers tuits i molt més! Els usuaris poden afegir els widgets\nque els agraden i canviar el fons al seu gust.", "Customize" : "Personalitza", "Edit widgets" : "Edita els ginys", + "Get more widgets from the App Store" : "Aconseguiu més widgets de la botiga d'aplicacions", "Change background image" : "Canvia la imatge de fons", "Weather service" : "Servei meteorològic", "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Per a la seva privacitat, les dades meteorològiques les sol·licita el seu servidor Nextcloud en el seu lloc perquè el servei meteorològic no rebi cap informació personal.", diff --git a/apps/dashboard/l10n/cs.js b/apps/dashboard/l10n/cs.js index 5991e915936..c0721a14726 100644 --- a/apps/dashboard/l10n/cs.js +++ b/apps/dashboard/l10n/cs.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Dashboard" : "Nástěnka", "Dashboard app" : "Aplikace Nástěnka", + "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an\noverview of your upcoming appointments, urgent emails, chat messages,\nincoming tickets, latest tweets and much more! Users can add the widgets\nthey like and change the background to their liking." : "Začněte svůj den informovaní\n\nNextcloud Přehled je Váš úvodní bod dne, který vám podává přehled nadcházejících schůzek, neodkladných e-mailů, zpráv v chatu,\npříchozích požadavcích, nejnovějších tweetů a mnoho dalšího! Uživatelé si mohou přidávat ovládací prvky, které chtějí a měnit pozadí dle své libosti.", "Customize" : "Přizpůsobit si", "Edit widgets" : "Upravit ovládací prvky", "Get more widgets from the App Store" : "Získejte další ovládací prvky z katalogu aplikací", diff --git a/apps/dashboard/l10n/cs.json b/apps/dashboard/l10n/cs.json index b3abe6bf02e..3e4d4fd7b26 100644 --- a/apps/dashboard/l10n/cs.json +++ b/apps/dashboard/l10n/cs.json @@ -1,6 +1,7 @@ { "translations": { "Dashboard" : "Nástěnka", "Dashboard app" : "Aplikace Nástěnka", + "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an\noverview of your upcoming appointments, urgent emails, chat messages,\nincoming tickets, latest tweets and much more! Users can add the widgets\nthey like and change the background to their liking." : "Začněte svůj den informovaní\n\nNextcloud Přehled je Váš úvodní bod dne, který vám podává přehled nadcházejících schůzek, neodkladných e-mailů, zpráv v chatu,\npříchozích požadavcích, nejnovějších tweetů a mnoho dalšího! Uživatelé si mohou přidávat ovládací prvky, které chtějí a měnit pozadí dle své libosti.", "Customize" : "Přizpůsobit si", "Edit widgets" : "Upravit ovládací prvky", "Get more widgets from the App Store" : "Získejte další ovládací prvky z katalogu aplikací", diff --git a/apps/dashboard/l10n/de.js b/apps/dashboard/l10n/de.js index 597f2f2da41..36a3272f682 100644 --- a/apps/dashboard/l10n/de.js +++ b/apps/dashboard/l10n/de.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Dashboard" : "Dashboard", "Dashboard app" : "Dashboard-App", + "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an\noverview of your upcoming appointments, urgent emails, chat messages,\nincoming tickets, latest tweets and much more! Users can add the widgets\nthey like and change the background to their liking." : "Starte informiert in den Tag\n\nDas Nextcloud-Dashboard ist Dein Ausgangspunkt für den Tag und gibt Dir\neinen Überblick über Deine anstehenden Termine, dringende E-Mails, Chatnachrichten, eingehende Tickets, neuste Tweets und vieles mehr! Benutzer können die Widgets hinzufügen, die sie mögen und den Hintergrund nach ihren Wünschen angepassen.", "Customize" : "Anpassen", "Edit widgets" : "Widgets bearbeiten", "Get more widgets from the App Store" : "Hole Dir weitere Widgets aus dem App-Store", diff --git a/apps/dashboard/l10n/de.json b/apps/dashboard/l10n/de.json index 4c739962c82..f67aa520e4d 100644 --- a/apps/dashboard/l10n/de.json +++ b/apps/dashboard/l10n/de.json @@ -1,6 +1,7 @@ { "translations": { "Dashboard" : "Dashboard", "Dashboard app" : "Dashboard-App", + "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an\noverview of your upcoming appointments, urgent emails, chat messages,\nincoming tickets, latest tweets and much more! Users can add the widgets\nthey like and change the background to their liking." : "Starte informiert in den Tag\n\nDas Nextcloud-Dashboard ist Dein Ausgangspunkt für den Tag und gibt Dir\neinen Überblick über Deine anstehenden Termine, dringende E-Mails, Chatnachrichten, eingehende Tickets, neuste Tweets und vieles mehr! Benutzer können die Widgets hinzufügen, die sie mögen und den Hintergrund nach ihren Wünschen angepassen.", "Customize" : "Anpassen", "Edit widgets" : "Widgets bearbeiten", "Get more widgets from the App Store" : "Hole Dir weitere Widgets aus dem App-Store", diff --git a/apps/dashboard/l10n/el.js b/apps/dashboard/l10n/el.js index 8c40c315d19..28dd7fb4f86 100644 --- a/apps/dashboard/l10n/el.js +++ b/apps/dashboard/l10n/el.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Dashboard" : "Πίνακας ελέγχου", "Dashboard app" : "Εφαρμογή Πίνακα Ελέγχου", + "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an\noverview of your upcoming appointments, urgent emails, chat messages,\nincoming tickets, latest tweets and much more! Users can add the widgets\nthey like and change the background to their liking." : "Ξεκινήστε τη μέρα σας ενημερωμένοι\n\nΤο Nextcloud Dashboard είναι το σημείο εκκίνησης της ημέρας, δίνοντάς σας μια επισκόπηση των επερχόμενων ραντεβού, των επειγόντων email, των μηνυμάτων συνομιλίας, και πολλά άλλα!\nΟι χρήστες μπορούν να προσθέσουν μικροεφαρμογές και να αλλάζουν το φόντο σύμφωνα με τις προτιμήσεις τους.", "Customize" : "Προσαρμογή", "Edit widgets" : "Επεξεργασία μικροεφαρμογών", "Get more widgets from the App Store" : "Λάβετε περισσότερες μικροεφαρμογές από το App Store", diff --git a/apps/dashboard/l10n/el.json b/apps/dashboard/l10n/el.json index 10d7739a5a6..a32e88e79a6 100644 --- a/apps/dashboard/l10n/el.json +++ b/apps/dashboard/l10n/el.json @@ -1,6 +1,7 @@ { "translations": { "Dashboard" : "Πίνακας ελέγχου", "Dashboard app" : "Εφαρμογή Πίνακα Ελέγχου", + "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an\noverview of your upcoming appointments, urgent emails, chat messages,\nincoming tickets, latest tweets and much more! Users can add the widgets\nthey like and change the background to their liking." : "Ξεκινήστε τη μέρα σας ενημερωμένοι\n\nΤο Nextcloud Dashboard είναι το σημείο εκκίνησης της ημέρας, δίνοντάς σας μια επισκόπηση των επερχόμενων ραντεβού, των επειγόντων email, των μηνυμάτων συνομιλίας, και πολλά άλλα!\nΟι χρήστες μπορούν να προσθέσουν μικροεφαρμογές και να αλλάζουν το φόντο σύμφωνα με τις προτιμήσεις τους.", "Customize" : "Προσαρμογή", "Edit widgets" : "Επεξεργασία μικροεφαρμογών", "Get more widgets from the App Store" : "Λάβετε περισσότερες μικροεφαρμογές από το App Store", diff --git a/apps/dashboard/l10n/fi.js b/apps/dashboard/l10n/fi.js index c54546cf6ad..5047d9b6d9c 100644 --- a/apps/dashboard/l10n/fi.js +++ b/apps/dashboard/l10n/fi.js @@ -5,6 +5,7 @@ OC.L10N.register( "Dashboard app" : "Konsolisovellus", "Customize" : "Mukauta", "Edit widgets" : "Muokkaa pienoissovelluksia", + "Get more widgets from the App Store" : "Hae lisää pienoissovelluksia sovelluskaupasta", "Change background image" : "Vaihda taustakuva", "Weather service" : "Sääpalvelu", "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Yksityisyytesi vuoksi Nextcloud-palvelin hakee säätiedot, joten sääpalvelulle ei lähetetä henkilökohtaisia tietojasi.", @@ -24,6 +25,7 @@ OC.L10N.register( "Pick from Files" : "Valitse tiedostoista", "Default images" : "Oletuskuvat", "Plain background" : "Yksinkertainen tausta", + "Insert from {productName}" : "Aseta kohteesta {productName}", "Show something" : "Näytä jotain", "Get more widgets from the app store" : "Hae lisää pienoissovelluksia sovelluskaupasta" }, diff --git a/apps/dashboard/l10n/fi.json b/apps/dashboard/l10n/fi.json index 8613b39addc..c73672403cf 100644 --- a/apps/dashboard/l10n/fi.json +++ b/apps/dashboard/l10n/fi.json @@ -3,6 +3,7 @@ "Dashboard app" : "Konsolisovellus", "Customize" : "Mukauta", "Edit widgets" : "Muokkaa pienoissovelluksia", + "Get more widgets from the App Store" : "Hae lisää pienoissovelluksia sovelluskaupasta", "Change background image" : "Vaihda taustakuva", "Weather service" : "Sääpalvelu", "For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Yksityisyytesi vuoksi Nextcloud-palvelin hakee säätiedot, joten sääpalvelulle ei lähetetä henkilökohtaisia tietojasi.", @@ -22,6 +23,7 @@ "Pick from Files" : "Valitse tiedostoista", "Default images" : "Oletuskuvat", "Plain background" : "Yksinkertainen tausta", + "Insert from {productName}" : "Aseta kohteesta {productName}", "Show something" : "Näytä jotain", "Get more widgets from the app store" : "Hae lisää pienoissovelluksia sovelluskaupasta" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/dashboard/l10n/hu.js b/apps/dashboard/l10n/hu.js index 60f8dc13316..56f4c874be9 100644 --- a/apps/dashboard/l10n/hu.js +++ b/apps/dashboard/l10n/hu.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Dashboard" : "Irányítópult", "Dashboard app" : "Irányítópult alkalmazás", + "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an\noverview of your upcoming appointments, urgent emails, chat messages,\nincoming tickets, latest tweets and much more! Users can add the widgets\nthey like and change the background to their liking." : "Kezdje informáltan a napot\n\nA Nextcloud irányítópult a napja kezdőpontja, áttekintést nyújtva a közelgő találkozókról, sürgős levelekről, csevegőüzenetekről, hibajegyekről, a legfrissebb tweetekről és sok másról. A felhasználók modulokat adhatnak hozzá, és tetszés szerint változtathatják a hátteret.", "Customize" : "Testreszabás", "Edit widgets" : "Modulok szerkesztése", "Get more widgets from the App Store" : "További modulok letöltése az alkalmazástárból.", diff --git a/apps/dashboard/l10n/hu.json b/apps/dashboard/l10n/hu.json index 68b49daf28a..366388bcaa2 100644 --- a/apps/dashboard/l10n/hu.json +++ b/apps/dashboard/l10n/hu.json @@ -1,6 +1,7 @@ { "translations": { "Dashboard" : "Irányítópult", "Dashboard app" : "Irányítópult alkalmazás", + "Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an\noverview of your upcoming appointments, urgent emails, chat messages,\nincoming tickets, latest tweets and much more! Users can add the widgets\nthey like and change the background to their liking." : "Kezdje informáltan a napot\n\nA Nextcloud irányítópult a napja kezdőpontja, áttekintést nyújtva a közelgő találkozókról, sürgős levelekről, csevegőüzenetekről, hibajegyekről, a legfrissebb tweetekről és sok másról. A felhasználók modulokat adhatnak hozzá, és tetszés szerint változtathatják a hátteret.", "Customize" : "Testreszabás", "Edit widgets" : "Modulok szerkesztése", "Get more widgets from the App Store" : "További modulok letöltése az alkalmazástárból.", diff --git a/apps/dav/composer/composer/InstalledVersions.php b/apps/dav/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/dav/composer/composer/InstalledVersions.php +++ b/apps/dav/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/dav/composer/composer/autoload_classmap.php b/apps/dav/composer/composer/autoload_classmap.php index f4b17814817..cf02a3221fb 100644 --- a/apps/dav/composer/composer/autoload_classmap.php +++ b/apps/dav/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/dav/composer/composer/autoload_namespaces.php b/apps/dav/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/dav/composer/composer/autoload_namespaces.php +++ b/apps/dav/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/dav/composer/composer/autoload_psr4.php b/apps/dav/composer/composer/autoload_psr4.php index b37c184d6ef..c2d3874b8ce 100644 --- a/apps/dav/composer/composer/autoload_psr4.php +++ b/apps/dav/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/dav/composer/composer/autoload_real.php b/apps/dav/composer/composer/autoload_real.php index 80611c8f531..8416efa9d7e 100644 --- a/apps/dav/composer/composer/autoload_real.php +++ b/apps/dav/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitDAV } spl_autoload_register(array('ComposerAutoloaderInitDAV', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitDAV', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitDAV::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitDAV::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/dav/l10n/de.js b/apps/dav/l10n/de.js index 170f4bd6495..aeaa3de4ca4 100644 --- a/apps/dav/l10n/de.js +++ b/apps/dav/l10n/de.js @@ -161,6 +161,8 @@ OC.L10N.register( "Hence they will not be available immediately after enabling but will show up after some time." : "Die Einträge werden nicht sofort angezeigt. Nach der Aktivierung wird es ein wenig dauern bis zur Anzeige.", "Send notifications for events" : "Sende Benachrichtigungen für Termine", "Notifications are sent via background jobs, so these must occur often enough." : "Benachrichtigungen werden von Hintergrundjobs versendet, so dass diese häufig genug ausgeführt werden müssen.", + "Send reminder notifications to calendar sharees as well" : "Erinnerungsbenachrichtigungen auch an die freigegebenen Kalender senden", + "Reminders are always sent to organizers and attendees." : "Erinnerungen werden immer an Organisatoren und Teilnehmer gesendet.", "Enable notifications for events via push" : "Benachrichtigungen für Termine per Push aktivieren", "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Installiere außerdem die {calendarappstoreopen}Kalender-App{linkclose} oder {calendardocopen}verbinde Deinen Desktop & Mobilgerät zur Synchronisierung ↗{linkclose}.", "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Bitte stelle sicher, dass Du {emailopen}den E-Mail Server{linkclose} ordnungsgemäß einrichtest.", diff --git a/apps/dav/l10n/de.json b/apps/dav/l10n/de.json index c9f193288f3..885e1d922eb 100644 --- a/apps/dav/l10n/de.json +++ b/apps/dav/l10n/de.json @@ -159,6 +159,8 @@ "Hence they will not be available immediately after enabling but will show up after some time." : "Die Einträge werden nicht sofort angezeigt. Nach der Aktivierung wird es ein wenig dauern bis zur Anzeige.", "Send notifications for events" : "Sende Benachrichtigungen für Termine", "Notifications are sent via background jobs, so these must occur often enough." : "Benachrichtigungen werden von Hintergrundjobs versendet, so dass diese häufig genug ausgeführt werden müssen.", + "Send reminder notifications to calendar sharees as well" : "Erinnerungsbenachrichtigungen auch an die freigegebenen Kalender senden", + "Reminders are always sent to organizers and attendees." : "Erinnerungen werden immer an Organisatoren und Teilnehmer gesendet.", "Enable notifications for events via push" : "Benachrichtigungen für Termine per Push aktivieren", "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Installiere außerdem die {calendarappstoreopen}Kalender-App{linkclose} oder {calendardocopen}verbinde Deinen Desktop & Mobilgerät zur Synchronisierung ↗{linkclose}.", "Please make sure to properly set up {emailopen}the email server{linkclose}." : "Bitte stelle sicher, dass Du {emailopen}den E-Mail Server{linkclose} ordnungsgemäß einrichtest.", diff --git a/apps/dav/lib/Capabilities.php b/apps/dav/lib/Capabilities.php index ce60bccfd0b..41d1b983587 100644 --- a/apps/dav/lib/Capabilities.php +++ b/apps/dav/lib/Capabilities.php @@ -29,7 +29,8 @@ class Capabilities implements ICapability { return [ 'dav' => [ 'chunking' => '1.0', - 'bulkupload' => '1.0', + // disabled because of https://github.com/nextcloud/desktop/issues/4243 + // 'bulkupload' => '1.0', ] ]; } diff --git a/apps/dav/lib/Connector/Sabre/Auth.php b/apps/dav/lib/Connector/Sabre/Auth.php index 71e833809ac..df4e3c65ce0 100644 --- a/apps/dav/lib/Connector/Sabre/Auth.php +++ b/apps/dav/lib/Connector/Sabre/Auth.php @@ -235,7 +235,6 @@ class Auth extends AbstractBasic { \OC_User::handleApacheAuth() ) { $user = $this->userSession->getUser()->getUID(); - \OC_Util::setupFS($user); $this->currentUser = $user; $this->session->close(); return [true, $this->principalPrefix . $user]; diff --git a/apps/dav/lib/Connector/Sabre/ServerFactory.php b/apps/dav/lib/Connector/Sabre/ServerFactory.php index ff96b7a19c5..095fb631c2b 100644 --- a/apps/dav/lib/Connector/Sabre/ServerFactory.php +++ b/apps/dav/lib/Connector/Sabre/ServerFactory.php @@ -31,7 +31,7 @@ */ namespace OCA\DAV\Connector\Sabre; -use OC\Files\Node\Folder; +use OCP\Files\Folder; use OCA\DAV\AppInfo\PluginManager; use OCA\DAV\Files\BrowserErrorPagePlugin; use OCP\Files\Mount\IMountManager; diff --git a/apps/dav/lib/UserMigration/CalendarMigrator.php b/apps/dav/lib/UserMigration/CalendarMigrator.php index d0d9e94351b..16b21314610 100644 --- a/apps/dav/lib/UserMigration/CalendarMigrator.php +++ b/apps/dav/lib/UserMigration/CalendarMigrator.php @@ -318,7 +318,10 @@ class CalendarMigrator implements IMigrator { return $vCalendarObject; } - private function importCalendarObject(int $calendarId, VCalendar $vCalendarObject, OutputInterface $output): void { + /** + * @throws InvalidCalendarException + */ + private function importCalendarObject(int $calendarId, VCalendar $vCalendarObject, string $filename, OutputInterface $output): void { try { $this->calDavBackend->createCalendarObject( $calendarId, @@ -327,14 +330,14 @@ class CalendarMigrator implements IMigrator { CalDavBackend::CALENDAR_TYPE_CALENDAR, ); } catch (Throwable $e) { - // Rollback creation of calendar on error - $output->writeln('Error creating calendar object, rolling back creation of calendar…'); + $output->writeln("Error creating calendar object, rolling back creation of \"$filename\" calendar…"); $this->calDavBackend->deleteCalendar($calendarId, true); + throw new InvalidCalendarException(); } } /** - * @throws CalendarMigratorException + * @throws InvalidCalendarException */ private function importCalendar(IUser $user, string $filename, string $initialCalendarUri, VCalendar $vCalendar, OutputInterface $output): void { $principalUri = $this->getPrincipalUri($user); @@ -392,7 +395,7 @@ class CalendarMigrator implements IMigrator { $vCalendarObject->add($component); } } - $this->importCalendarObject($calendarId, $vCalendarObject, $output); + $this->importCalendarObject($calendarId, $vCalendarObject, $filename, $output); } foreach ($ungroupedCalendarComponents as $component) { @@ -401,7 +404,7 @@ class CalendarMigrator implements IMigrator { foreach ($this->getRequiredImportComponents($vCalendar, $component) as $component) { $vCalendarObject->add($component); } - $this->importCalendarObject($calendarId, $vCalendarObject, $output); + $this->importCalendarObject($calendarId, $vCalendarObject, $filename, $output); } } @@ -446,15 +449,19 @@ class CalendarMigrator implements IMigrator { } [$initialCalendarUri, $suffix] = $splitFilename; - $this->importCalendar( - $user, - $filename, - $initialCalendarUri, - $vCalendar, - $output, - ); - - $vCalendar->destroy(); + try { + $this->importCalendar( + $user, + $filename, + $initialCalendarUri, + $vCalendar, + $output, + ); + } catch (InvalidCalendarException $e) { + // Allow this exception to skip a failed import + } finally { + $vCalendar->destroy(); + } } } } diff --git a/apps/dav/tests/unit/CapabilitiesTest.php b/apps/dav/tests/unit/CapabilitiesTest.php index 399467f6ed8..7abfd08854b 100644 --- a/apps/dav/tests/unit/CapabilitiesTest.php +++ b/apps/dav/tests/unit/CapabilitiesTest.php @@ -35,7 +35,8 @@ class CapabilitiesTest extends TestCase { $expected = [ 'dav' => [ 'chunking' => '1.0', - 'bulkupload' => '1.0', + // disabled because of https://github.com/nextcloud/desktop/issues/4243 + // 'bulkupload' => '1.0', ], ]; $this->assertSame($expected, $capabilities->getCapabilities()); diff --git a/apps/dav/tests/unit/Comments/RootCollectionTest.php b/apps/dav/tests/unit/Comments/RootCollectionTest.php index 6cc038bb7b8..8537eb9ab17 100644 --- a/apps/dav/tests/unit/Comments/RootCollectionTest.php +++ b/apps/dav/tests/unit/Comments/RootCollectionTest.php @@ -43,7 +43,7 @@ class RootCollectionTest extends \Test\TestCase { protected $commentsManager; /** @var \OCP\IUserManager|\PHPUnit\Framework\MockObject\MockObject */ protected $userManager; - /** @var \OCP\ILogger|\PHPUnit\Framework\MockObject\MockObject */ + /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */ protected $logger; /** @var \OCA\DAV\Comments\RootCollection */ protected $collection; @@ -70,14 +70,14 @@ class RootCollectionTest extends \Test\TestCase { $this->userSession = $this->getMockBuilder(IUserSession::class) ->disableOriginalConstructor() ->getMock(); - $this->logger = $this->getMockBuilder(ILogger::class) + $this->logger = $this->getMockBuilder(LoggerInterface::class) ->disableOriginalConstructor() ->getMock(); $this->dispatcher = new SymfonyAdapter( new EventDispatcher( new \Symfony\Component\EventDispatcher\EventDispatcher(), \OC::$server, - $this->createMock(LoggerInterface::class) + $this->logger ), $this->logger ); @@ -87,7 +87,7 @@ class RootCollectionTest extends \Test\TestCase { $this->userManager, $this->userSession, $this->dispatcher, - $this->logger + $this->createMock(ILogger::class) ); } diff --git a/apps/encryption/composer/composer/InstalledVersions.php b/apps/encryption/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/encryption/composer/composer/InstalledVersions.php +++ b/apps/encryption/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/encryption/composer/composer/autoload_classmap.php b/apps/encryption/composer/composer/autoload_classmap.php index 00c57e913a3..0ce1e86f8a6 100644 --- a/apps/encryption/composer/composer/autoload_classmap.php +++ b/apps/encryption/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/encryption/composer/composer/autoload_namespaces.php b/apps/encryption/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/encryption/composer/composer/autoload_namespaces.php +++ b/apps/encryption/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/encryption/composer/composer/autoload_psr4.php b/apps/encryption/composer/composer/autoload_psr4.php index 6baeba923d6..f7061268cc1 100644 --- a/apps/encryption/composer/composer/autoload_psr4.php +++ b/apps/encryption/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/encryption/composer/composer/autoload_real.php b/apps/encryption/composer/composer/autoload_real.php index 81daae1bc0d..35091c9ed4a 100644 --- a/apps/encryption/composer/composer/autoload_real.php +++ b/apps/encryption/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitEncryption } spl_autoload_register(array('ComposerAutoloaderInitEncryption', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitEncryption', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitEncryption::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitEncryption::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/encryption/l10n/sv.js b/apps/encryption/l10n/sv.js index 04f70458535..a394003bd56 100644 --- a/apps/encryption/l10n/sv.js +++ b/apps/encryption/l10n/sv.js @@ -2,24 +2,24 @@ OC.L10N.register( "encryption", { "Missing recovery key password" : "Saknar lösenord för återställningsnyckel", - "Please repeat the recovery key password" : "Vänligen upprepa lösenordet för återställningsnyckeln", + "Please repeat the recovery key password" : "Upprepa lösenordet för återställningsnyckeln", "Repeated recovery key password does not match the provided recovery key password" : "Det upprepade lösenordet för återställningsnyckeln matchar inte det tillhandahållna lösenordet för återställningsnyckeln", "Recovery key successfully enabled" : "Återställningsnyckeln har framgångsrikt aktiverats", - "Could not enable recovery key. Please check your recovery key password!" : "Kunde inte aktivera återställningsnyckeln. Vänligen kontrollera ditt lösenord för återställningsnyckeln!", + "Could not enable recovery key. Please check your recovery key password!" : "Kunde inte aktivera återställningsnyckeln. Kontrollera ditt lösenord för återställningsnyckeln!", "Recovery key successfully disabled" : "Återställningsnyckeln har framgångsrikt inaktiverats", - "Could not disable recovery key. Please check your recovery key password!" : "Kunde inte inaktivera återställningsnyckeln. Vänligen kontrollera ditt lösenord för återställningsnyckeln!", + "Could not disable recovery key. Please check your recovery key password!" : "Kunde inte inaktivera återställningsnyckeln. Kontrollera ditt lösenord för återställningsnyckeln!", "Missing parameters" : "Saknar parametrar", - "Please provide the old recovery password" : "Vänligen tillhandahåll det gamla återställningslösenordet ", - "Please provide a new recovery password" : "Vänligen tillhandahåll ett nytt återställningslösenord", - "Please repeat the new recovery password" : "Vänligen upprepa det nya återställningslösenordet", + "Please provide the old recovery password" : "Tillhandahåll det gamla återställningslösenordet ", + "Please provide a new recovery password" : "Tillhandahåll ett nytt återställningslösenord", + "Please repeat the new recovery password" : "Upprepa det nya återställningslösenordet", "Password successfully changed." : "Ändringen av lösenordet lyckades.", "Could not change the password. Maybe the old password was not correct." : "Kunde inte ändra lösenordet. Kanske det gamla lösenordet inte var rätt.", "Recovery Key disabled" : "Återställningsnyckeln inaktiverad", "Recovery Key enabled" : "Återställningsnyckeln aktiverad", - "Could not enable the recovery key, please try again or contact your administrator" : "Det gick inte att aktivera återställningsnyckeln, vänligen försök igen eller kontakta din administratör", + "Could not enable the recovery key, please try again or contact your administrator" : "Det gick inte att aktivera återställningsnyckeln, försök igen eller kontakta din administratör", "Could not update the private key password." : "Kunde inte uppdatera lösenord för den privata nyckeln", - "The old password was not correct, please try again." : "Det gamla lösenordet var inte korrekt. Vänligen försök igen.", - "The current log-in password was not correct, please try again." : "Det nuvarande inloggningslösenordet var inte korrekt. Vänligen försök igen.", + "The old password was not correct, please try again." : "Det gamla lösenordet var inte korrekt. Försök igen.", + "The current log-in password was not correct, please try again." : "Det nuvarande inloggningslösenordet var inte korrekt, försök igen.", "Private key password successfully updated." : "Den privata nyckelns lösenord uppdaterades.", "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ogiltig privat nyckel för krypteringsappen. Uppdatera ditt privata nyckellösenord i dina personliga inställningar för att återställa åtkomst till dina krypterade filer.", "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Krypteringsappen är aktiverad men dina nycklar är inte aktiverade. Logga ut och in igen så aktiveras dem. ", @@ -61,10 +61,10 @@ OC.L10N.register( "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Om du aktiverar det här alternativet kan du återställa åtkomst till dina krypterade filer vid lösenordsförlust", "Enabled" : "Aktiverad", "Disabled" : "Inaktiverad", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan inte dekryptera den här filen, förmodligen är det en delad fil. Vänligen be ägaren av filen att dela om filen med dig.", - "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Filen kan inte läsas, förmodligen är det en delad fil. Vänligen be ägaren av filen att dela den med dig igen.", - "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Hallå där, \n\nadministratören aktiverade serverkryptering. Dina filer krypterades med lösenordet: \"%s\"\n\nVänligen logga in på webbgränssnittet, gå till avsnittet \"grundläggande krypteringsmodul\" i dina personliga inställningar och uppdatera ditt krypteringslösenord genom att ange detta lösenord i fältet \"gammalt inloggningslösenord\" och ditt nuvarande inloggningslösenord.\n\n", - "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Hallå där, <br><br> administratören aktiverade serverkryptering. Alla dina filer har blivit krypterade med lösenordet: <strong>%s</strong>. <br><br>Vänligen logga in på webbgränssnittet, gå till avsnittet \"Grundläggande krypteringsmodul\" i dina personliga inställningar och uppdatera ditt krypteringslösenord genom att ange detta lösenord i fältet \"gammalt inloggningslösenord\" och ditt nuvarande inloggningslösenord.<br><br>", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan inte dekryptera den här filen, förmodligen är det en delad fil. Be ägaren av filen att dela om filen med dig.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Filen kan inte läsas, förmodligen är det en delad fil. Be ägaren av filen att dela den med dig igen.", + "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Hallå där, \n\nadministratören aktiverade serverkryptering. Dina filer krypterades med lösenordet: \"%s\"\n\nLogga in på webbgränssnittet, gå till avsnittet \"grundläggande krypteringsmodul\" i dina personliga inställningar och uppdatera ditt krypteringslösenord genom att ange detta lösenord i fältet \"gammalt inloggningslösenord\" och ditt nuvarande inloggningslösenord.\n\n", + "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Hallå där, <br><br> administratören aktiverade serverkryptering. Alla dina filer har blivit krypterade med lösenordet: <strong>%s</strong>. <br><br>Logga in på webbgränssnittet, gå till avsnittet \"Grundläggande krypteringsmodul\" i dina personliga inställningar och uppdatera ditt krypteringslösenord genom att ange detta lösenord i fältet \"gammalt inloggningslösenord\" och ditt nuvarande inloggningslösenord.<br><br>", "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password \"%s\".\n\nPlease login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.\n\n" : "Hej,\n\nadministratören har aktiverat serverkryptering. Dina filer krypterades med lösenordet \"%s\".\n\nVänligen logga in i webbgränssnittet, navigera till \"Grundläggande krypteringsmodul\" i dina personliga inställningar och uppdatera ditt krypteringslösenord genom att skriva in detta lösenordet i fältet \"gammalt inloggningslösenord\" samt ditt nuvarande inloggningslösenord.\n\n" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/encryption/l10n/sv.json b/apps/encryption/l10n/sv.json index bc1544b2ab1..d3a86285273 100644 --- a/apps/encryption/l10n/sv.json +++ b/apps/encryption/l10n/sv.json @@ -1,23 +1,23 @@ { "translations": { "Missing recovery key password" : "Saknar lösenord för återställningsnyckel", - "Please repeat the recovery key password" : "Vänligen upprepa lösenordet för återställningsnyckeln", + "Please repeat the recovery key password" : "Upprepa lösenordet för återställningsnyckeln", "Repeated recovery key password does not match the provided recovery key password" : "Det upprepade lösenordet för återställningsnyckeln matchar inte det tillhandahållna lösenordet för återställningsnyckeln", "Recovery key successfully enabled" : "Återställningsnyckeln har framgångsrikt aktiverats", - "Could not enable recovery key. Please check your recovery key password!" : "Kunde inte aktivera återställningsnyckeln. Vänligen kontrollera ditt lösenord för återställningsnyckeln!", + "Could not enable recovery key. Please check your recovery key password!" : "Kunde inte aktivera återställningsnyckeln. Kontrollera ditt lösenord för återställningsnyckeln!", "Recovery key successfully disabled" : "Återställningsnyckeln har framgångsrikt inaktiverats", - "Could not disable recovery key. Please check your recovery key password!" : "Kunde inte inaktivera återställningsnyckeln. Vänligen kontrollera ditt lösenord för återställningsnyckeln!", + "Could not disable recovery key. Please check your recovery key password!" : "Kunde inte inaktivera återställningsnyckeln. Kontrollera ditt lösenord för återställningsnyckeln!", "Missing parameters" : "Saknar parametrar", - "Please provide the old recovery password" : "Vänligen tillhandahåll det gamla återställningslösenordet ", - "Please provide a new recovery password" : "Vänligen tillhandahåll ett nytt återställningslösenord", - "Please repeat the new recovery password" : "Vänligen upprepa det nya återställningslösenordet", + "Please provide the old recovery password" : "Tillhandahåll det gamla återställningslösenordet ", + "Please provide a new recovery password" : "Tillhandahåll ett nytt återställningslösenord", + "Please repeat the new recovery password" : "Upprepa det nya återställningslösenordet", "Password successfully changed." : "Ändringen av lösenordet lyckades.", "Could not change the password. Maybe the old password was not correct." : "Kunde inte ändra lösenordet. Kanske det gamla lösenordet inte var rätt.", "Recovery Key disabled" : "Återställningsnyckeln inaktiverad", "Recovery Key enabled" : "Återställningsnyckeln aktiverad", - "Could not enable the recovery key, please try again or contact your administrator" : "Det gick inte att aktivera återställningsnyckeln, vänligen försök igen eller kontakta din administratör", + "Could not enable the recovery key, please try again or contact your administrator" : "Det gick inte att aktivera återställningsnyckeln, försök igen eller kontakta din administratör", "Could not update the private key password." : "Kunde inte uppdatera lösenord för den privata nyckeln", - "The old password was not correct, please try again." : "Det gamla lösenordet var inte korrekt. Vänligen försök igen.", - "The current log-in password was not correct, please try again." : "Det nuvarande inloggningslösenordet var inte korrekt. Vänligen försök igen.", + "The old password was not correct, please try again." : "Det gamla lösenordet var inte korrekt. Försök igen.", + "The current log-in password was not correct, please try again." : "Det nuvarande inloggningslösenordet var inte korrekt, försök igen.", "Private key password successfully updated." : "Den privata nyckelns lösenord uppdaterades.", "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Ogiltig privat nyckel för krypteringsappen. Uppdatera ditt privata nyckellösenord i dina personliga inställningar för att återställa åtkomst till dina krypterade filer.", "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Krypteringsappen är aktiverad men dina nycklar är inte aktiverade. Logga ut och in igen så aktiveras dem. ", @@ -59,10 +59,10 @@ "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Om du aktiverar det här alternativet kan du återställa åtkomst till dina krypterade filer vid lösenordsförlust", "Enabled" : "Aktiverad", "Disabled" : "Inaktiverad", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan inte dekryptera den här filen, förmodligen är det en delad fil. Vänligen be ägaren av filen att dela om filen med dig.", - "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Filen kan inte läsas, förmodligen är det en delad fil. Vänligen be ägaren av filen att dela den med dig igen.", - "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Hallå där, \n\nadministratören aktiverade serverkryptering. Dina filer krypterades med lösenordet: \"%s\"\n\nVänligen logga in på webbgränssnittet, gå till avsnittet \"grundläggande krypteringsmodul\" i dina personliga inställningar och uppdatera ditt krypteringslösenord genom att ange detta lösenord i fältet \"gammalt inloggningslösenord\" och ditt nuvarande inloggningslösenord.\n\n", - "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Hallå där, <br><br> administratören aktiverade serverkryptering. Alla dina filer har blivit krypterade med lösenordet: <strong>%s</strong>. <br><br>Vänligen logga in på webbgränssnittet, gå till avsnittet \"Grundläggande krypteringsmodul\" i dina personliga inställningar och uppdatera ditt krypteringslösenord genom att ange detta lösenord i fältet \"gammalt inloggningslösenord\" och ditt nuvarande inloggningslösenord.<br><br>", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Kan inte dekryptera den här filen, förmodligen är det en delad fil. Be ägaren av filen att dela om filen med dig.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Filen kan inte läsas, förmodligen är det en delad fil. Be ägaren av filen att dela den med dig igen.", + "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Hallå där, \n\nadministratören aktiverade serverkryptering. Dina filer krypterades med lösenordet: \"%s\"\n\nLogga in på webbgränssnittet, gå till avsnittet \"grundläggande krypteringsmodul\" i dina personliga inställningar och uppdatera ditt krypteringslösenord genom att ange detta lösenord i fältet \"gammalt inloggningslösenord\" och ditt nuvarande inloggningslösenord.\n\n", + "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Hallå där, <br><br> administratören aktiverade serverkryptering. Alla dina filer har blivit krypterade med lösenordet: <strong>%s</strong>. <br><br>Logga in på webbgränssnittet, gå till avsnittet \"Grundläggande krypteringsmodul\" i dina personliga inställningar och uppdatera ditt krypteringslösenord genom att ange detta lösenord i fältet \"gammalt inloggningslösenord\" och ditt nuvarande inloggningslösenord.<br><br>", "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password \"%s\".\n\nPlease login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.\n\n" : "Hej,\n\nadministratören har aktiverat serverkryptering. Dina filer krypterades med lösenordet \"%s\".\n\nVänligen logga in i webbgränssnittet, navigera till \"Grundläggande krypteringsmodul\" i dina personliga inställningar och uppdatera ditt krypteringslösenord genom att skriva in detta lösenordet i fältet \"gammalt inloggningslösenord\" samt ditt nuvarande inloggningslösenord.\n\n" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/federatedfilesharing/composer/composer/InstalledVersions.php b/apps/federatedfilesharing/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/federatedfilesharing/composer/composer/InstalledVersions.php +++ b/apps/federatedfilesharing/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/federatedfilesharing/composer/composer/autoload_classmap.php b/apps/federatedfilesharing/composer/composer/autoload_classmap.php index c4d891d9c24..a5ec2ecd822 100644 --- a/apps/federatedfilesharing/composer/composer/autoload_classmap.php +++ b/apps/federatedfilesharing/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/federatedfilesharing/composer/composer/autoload_namespaces.php b/apps/federatedfilesharing/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/federatedfilesharing/composer/composer/autoload_namespaces.php +++ b/apps/federatedfilesharing/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/federatedfilesharing/composer/composer/autoload_psr4.php b/apps/federatedfilesharing/composer/composer/autoload_psr4.php index 7f2217448ff..6d05dfbb4ed 100644 --- a/apps/federatedfilesharing/composer/composer/autoload_psr4.php +++ b/apps/federatedfilesharing/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/federatedfilesharing/composer/composer/autoload_real.php b/apps/federatedfilesharing/composer/composer/autoload_real.php index 25a7e49d09f..0a8c5bf9588 100644 --- a/apps/federatedfilesharing/composer/composer/autoload_real.php +++ b/apps/federatedfilesharing/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitFederatedFileSharing } spl_autoload_register(array('ComposerAutoloaderInitFederatedFileSharing', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitFederatedFileSharing', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitFederatedFileSharing::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitFederatedFileSharing::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/federatedfilesharing/l10n/ca.js b/apps/federatedfilesharing/l10n/ca.js index e5212cfe405..248fcd5252e 100644 --- a/apps/federatedfilesharing/l10n/ca.js +++ b/apps/federatedfilesharing/l10n/ca.js @@ -38,6 +38,7 @@ OC.L10N.register( "Federated file sharing" : "Compartició federada de fitxers", "Provide federated file sharing across servers" : "Proporcioneu compartició de fitxers federats entre servidors", "Open documentation" : "Obre la documentació", + "Adjust how people can share between servers. This includes shares between users on this server as well if they are using federated sharing." : "Ajusta com les persones poden compartir entre servidors. Això inclou també els recursos compartits entre usuaris d'aquest servidor si utilitzen compartició federada.", "Allow users on this server to send shares to other servers (this option also allows WebDAV access to public shares)" : "Permet als usuaris d'aquest servidor enviar comparticions a altres servidors (aquest paràmetre també permet accés WebDAV a comparticions públiques)", "Allow users on this server to receive shares from other servers" : "Permet als usuaris d'aquest servidor rebre comparticions a d'altres servidors", "Allow users on this server to send shares to groups on other servers" : "Permet als usuaris d'aquest servidor enviar comparticions a grups d'altres servidors", diff --git a/apps/federatedfilesharing/l10n/ca.json b/apps/federatedfilesharing/l10n/ca.json index 81fe7e47ab5..f76539b4727 100644 --- a/apps/federatedfilesharing/l10n/ca.json +++ b/apps/federatedfilesharing/l10n/ca.json @@ -36,6 +36,7 @@ "Federated file sharing" : "Compartició federada de fitxers", "Provide federated file sharing across servers" : "Proporcioneu compartició de fitxers federats entre servidors", "Open documentation" : "Obre la documentació", + "Adjust how people can share between servers. This includes shares between users on this server as well if they are using federated sharing." : "Ajusta com les persones poden compartir entre servidors. Això inclou també els recursos compartits entre usuaris d'aquest servidor si utilitzen compartició federada.", "Allow users on this server to send shares to other servers (this option also allows WebDAV access to public shares)" : "Permet als usuaris d'aquest servidor enviar comparticions a altres servidors (aquest paràmetre també permet accés WebDAV a comparticions públiques)", "Allow users on this server to receive shares from other servers" : "Permet als usuaris d'aquest servidor rebre comparticions a d'altres servidors", "Allow users on this server to send shares to groups on other servers" : "Permet als usuaris d'aquest servidor enviar comparticions a grups d'altres servidors", diff --git a/apps/federatedfilesharing/l10n/zh_TW.js b/apps/federatedfilesharing/l10n/zh_TW.js index 1978ef3bb12..4a25a72b32d 100644 --- a/apps/federatedfilesharing/l10n/zh_TW.js +++ b/apps/federatedfilesharing/l10n/zh_TW.js @@ -42,7 +42,7 @@ OC.L10N.register( "Allow users on this server to send shares to other servers (this option also allows WebDAV access to public shares)" : "允許此伺服器上的使用者傳送分享到其他伺服器(此選項也允許 WebDAV 存取公開分享)", "Allow users on this server to receive shares from other servers" : "允許此伺服器上的使用者接收來自其他伺服器的分享", "Allow users on this server to send shares to groups on other servers" : "允許此伺服器上的使用者傳送分享在其他伺服器上的群組", - "Allow users on this server to receive group shares from other servers" : "允許此伺服氣上的使用者接收來自其他伺服器的群組分享", + "Allow users on this server to receive group shares from other servers" : "允許此伺服器上的使用者接收來自其他伺服器的群組分享", "Search global and public address book for users" : "搜尋全域與公開通訊錄中的使用者", "Allow users to publish their data to a global and public address book" : "允許使用者將其資料發佈到全域且公開的通訊錄", "Federated Cloud" : "聯盟式雲端", diff --git a/apps/federatedfilesharing/l10n/zh_TW.json b/apps/federatedfilesharing/l10n/zh_TW.json index e6fceab9373..05a946f0793 100644 --- a/apps/federatedfilesharing/l10n/zh_TW.json +++ b/apps/federatedfilesharing/l10n/zh_TW.json @@ -40,7 +40,7 @@ "Allow users on this server to send shares to other servers (this option also allows WebDAV access to public shares)" : "允許此伺服器上的使用者傳送分享到其他伺服器(此選項也允許 WebDAV 存取公開分享)", "Allow users on this server to receive shares from other servers" : "允許此伺服器上的使用者接收來自其他伺服器的分享", "Allow users on this server to send shares to groups on other servers" : "允許此伺服器上的使用者傳送分享在其他伺服器上的群組", - "Allow users on this server to receive group shares from other servers" : "允許此伺服氣上的使用者接收來自其他伺服器的群組分享", + "Allow users on this server to receive group shares from other servers" : "允許此伺服器上的使用者接收來自其他伺服器的群組分享", "Search global and public address book for users" : "搜尋全域與公開通訊錄中的使用者", "Allow users to publish their data to a global and public address book" : "允許使用者將其資料發佈到全域且公開的通訊錄", "Federated Cloud" : "聯盟式雲端", diff --git a/apps/federation/composer/composer/InstalledVersions.php b/apps/federation/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/federation/composer/composer/InstalledVersions.php +++ b/apps/federation/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/federation/composer/composer/autoload_classmap.php b/apps/federation/composer/composer/autoload_classmap.php index 14d06fad8aa..1be343a65d1 100644 --- a/apps/federation/composer/composer/autoload_classmap.php +++ b/apps/federation/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/federation/composer/composer/autoload_namespaces.php b/apps/federation/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/federation/composer/composer/autoload_namespaces.php +++ b/apps/federation/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/federation/composer/composer/autoload_psr4.php b/apps/federation/composer/composer/autoload_psr4.php index d815aedf125..9be3a9affb8 100644 --- a/apps/federation/composer/composer/autoload_psr4.php +++ b/apps/federation/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/federation/composer/composer/autoload_real.php b/apps/federation/composer/composer/autoload_real.php index fed3f44342e..40dc84ff20a 100644 --- a/apps/federation/composer/composer/autoload_real.php +++ b/apps/federation/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitFederation } spl_autoload_register(array('ComposerAutoloaderInitFederation', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitFederation', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitFederation::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitFederation::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/files/composer/composer/InstalledVersions.php b/apps/files/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/files/composer/composer/InstalledVersions.php +++ b/apps/files/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/files/composer/composer/autoload_classmap.php b/apps/files/composer/composer/autoload_classmap.php index bc2e496294b..05ea0a46ca1 100644 --- a/apps/files/composer/composer/autoload_classmap.php +++ b/apps/files/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/files/composer/composer/autoload_namespaces.php b/apps/files/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/files/composer/composer/autoload_namespaces.php +++ b/apps/files/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/files/composer/composer/autoload_psr4.php b/apps/files/composer/composer/autoload_psr4.php index c4f95a2b150..dcb1e811399 100644 --- a/apps/files/composer/composer/autoload_psr4.php +++ b/apps/files/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/files/composer/composer/autoload_real.php b/apps/files/composer/composer/autoload_real.php index 462094eaafc..5b2c0e86043 100644 --- a/apps/files/composer/composer/autoload_real.php +++ b/apps/files/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitFiles } spl_autoload_register(array('ComposerAutoloaderInitFiles', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitFiles', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitFiles::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitFiles::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/files/l10n/fi.js b/apps/files/l10n/fi.js index 159d5d23940..906a121a3bc 100644 --- a/apps/files/l10n/fi.js +++ b/apps/files/l10n/fi.js @@ -39,6 +39,8 @@ OC.L10N.register( "Could not load info for file \"{file}\"" : "Ei voida ladata tiedoston \"{file}\" tietoja", "Files" : "Tiedostot", "Details" : "Tiedot", + "Please select tag(s) to add to the selection" : "Valitse lisättävät tunnisteet valinnalle", + "Apply tag(s) to selection" : "Hyväksy tunnisteet valinnalle", "Select" : "Valitse", "Pending" : "Odottaa", "Unable to determine date" : "Päivämäärän määrittäminen epäonnistui", @@ -86,6 +88,7 @@ OC.L10N.register( "Group folder \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "Ryhmäkansio \"{mountPoint}\" on melkein täynnä ({usedSpacePercent}%).", "External storage \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "Erillinen tallennustila \"{mountPoint}\" on melkein täynnä ({usedSpacePercent}%).", "Your storage is almost full ({usedSpacePercent}%)." : "Tallennustila on melkein täynnä ({usedSpacePercent}%).", + "_matches \"{filter}\"_::_match \"{filter}\"_" : ["vastaa \"{filter}\"","vastaa \"{filter}\""], "View in folder" : "Näe kansiossa", "Copied!" : "Kopioitu!", "Copy direct link (only works for users who have access to this file/folder)" : "Kopioi suora linkki (toimii vain käyttäjillä, joilla on pääsyoikeus tähän tiedostoon/kansioon)", diff --git a/apps/files/l10n/fi.json b/apps/files/l10n/fi.json index f8b9e012ef0..a757f9b571a 100644 --- a/apps/files/l10n/fi.json +++ b/apps/files/l10n/fi.json @@ -37,6 +37,8 @@ "Could not load info for file \"{file}\"" : "Ei voida ladata tiedoston \"{file}\" tietoja", "Files" : "Tiedostot", "Details" : "Tiedot", + "Please select tag(s) to add to the selection" : "Valitse lisättävät tunnisteet valinnalle", + "Apply tag(s) to selection" : "Hyväksy tunnisteet valinnalle", "Select" : "Valitse", "Pending" : "Odottaa", "Unable to determine date" : "Päivämäärän määrittäminen epäonnistui", @@ -84,6 +86,7 @@ "Group folder \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "Ryhmäkansio \"{mountPoint}\" on melkein täynnä ({usedSpacePercent}%).", "External storage \"{mountPoint}\" is almost full ({usedSpacePercent}%)." : "Erillinen tallennustila \"{mountPoint}\" on melkein täynnä ({usedSpacePercent}%).", "Your storage is almost full ({usedSpacePercent}%)." : "Tallennustila on melkein täynnä ({usedSpacePercent}%).", + "_matches \"{filter}\"_::_match \"{filter}\"_" : ["vastaa \"{filter}\"","vastaa \"{filter}\""], "View in folder" : "Näe kansiossa", "Copied!" : "Kopioitu!", "Copy direct link (only works for users who have access to this file/folder)" : "Kopioi suora linkki (toimii vain käyttäjillä, joilla on pääsyoikeus tähän tiedostoon/kansioon)", diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js index d104e01a3e4..8acc311ea36 100644 --- a/apps/files/l10n/ru.js +++ b/apps/files/l10n/ru.js @@ -72,7 +72,7 @@ OC.L10N.register( "{dirs} and {files}" : "{dirs} и {files}", "_including %n hidden_::_including %n hidden_" : ["включая %n скрытый","включая %n скрытых","включая %n скрытых","включая %n скрытых"], "You don’t have permission to upload or create files here" : "У вас нет прав на создание или загрузку файлов в эту папку.", - "_Uploading %n file_::_Uploading %n files_" : ["Выгружа%nется файл","Выгружаются %n файла","Выгружаются %n файлов","Загружаются %n файлов"], + "_Uploading %n file_::_Uploading %n files_" : ["Передача %n файла","Передача %n файлов","Передача %n файлов","Передача %n файлов"], "New" : "Новый", "Select file range" : "Выбор диапазона файлов", "{used} of {quota} used" : "использовано {used} из {quota}", diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json index df48abba01d..1786e8c2eef 100644 --- a/apps/files/l10n/ru.json +++ b/apps/files/l10n/ru.json @@ -70,7 +70,7 @@ "{dirs} and {files}" : "{dirs} и {files}", "_including %n hidden_::_including %n hidden_" : ["включая %n скрытый","включая %n скрытых","включая %n скрытых","включая %n скрытых"], "You don’t have permission to upload or create files here" : "У вас нет прав на создание или загрузку файлов в эту папку.", - "_Uploading %n file_::_Uploading %n files_" : ["Выгружа%nется файл","Выгружаются %n файла","Выгружаются %n файлов","Загружаются %n файлов"], + "_Uploading %n file_::_Uploading %n files_" : ["Передача %n файла","Передача %n файлов","Передача %n файлов","Передача %n файлов"], "New" : "Новый", "Select file range" : "Выбор диапазона файлов", "{used} of {quota} used" : "использовано {used} из {quota}", diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js index 477795e1646..039447581cd 100644 --- a/apps/files/l10n/sv.js +++ b/apps/files/l10n/sv.js @@ -45,7 +45,7 @@ OC.L10N.register( "Pending" : "Väntar", "Unable to determine date" : "Misslyckades avgöra datum", "This operation is forbidden" : "Denna operation är förbjuden", - "This directory is unavailable, please check the logs or contact the administrator" : "Denna katalog är inte tillgänglig, vänligen kontrollera loggarna eller kontakta administratören", + "This directory is unavailable, please check the logs or contact the administrator" : "Denna katalog är inte tillgänglig, kontrollera loggarna eller kontakta administratören", "Could not move \"{file}\", target exists" : "Kunde inte flytta \"{file}\", filen existerar redan", "Could not move \"{file}\"" : "Kunde inte flytta \"{file}\"", "copy" : "kopia", @@ -55,7 +55,7 @@ OC.L10N.register( "Copied {origin} and {nbfiles} other files inside {destination}" : "Kopierade {origin} och {nbfiles} andra filer i {destination}", "{newName} already exists" : "{newName} existerar redan", "Could not rename \"{fileName}\", it does not exist any more" : "Kunde inte döpa om \"{fileName}\", filen existerar inte mer", - "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Namnet \"{targetName}\" används redan i mappen \"{dir}\". Vänligen välj ett annat namn.", + "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Namnet \"{targetName}\" används redan i mappen \"{dir}\". Välj ett annat namn.", "Could not rename \"{fileName}\"" : "Kan inte döpa om \"{fileName}\"", "Could not create file \"{file}\"" : "Kunde inte skapa fil \"{fileName}\"", "Could not create file \"{file}\" because it already exists" : "Kunde inte skapa fil \"{file}\" därför att den redan existerar", diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json index 4898524a0ba..7ea4279571f 100644 --- a/apps/files/l10n/sv.json +++ b/apps/files/l10n/sv.json @@ -43,7 +43,7 @@ "Pending" : "Väntar", "Unable to determine date" : "Misslyckades avgöra datum", "This operation is forbidden" : "Denna operation är förbjuden", - "This directory is unavailable, please check the logs or contact the administrator" : "Denna katalog är inte tillgänglig, vänligen kontrollera loggarna eller kontakta administratören", + "This directory is unavailable, please check the logs or contact the administrator" : "Denna katalog är inte tillgänglig, kontrollera loggarna eller kontakta administratören", "Could not move \"{file}\", target exists" : "Kunde inte flytta \"{file}\", filen existerar redan", "Could not move \"{file}\"" : "Kunde inte flytta \"{file}\"", "copy" : "kopia", @@ -53,7 +53,7 @@ "Copied {origin} and {nbfiles} other files inside {destination}" : "Kopierade {origin} och {nbfiles} andra filer i {destination}", "{newName} already exists" : "{newName} existerar redan", "Could not rename \"{fileName}\", it does not exist any more" : "Kunde inte döpa om \"{fileName}\", filen existerar inte mer", - "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Namnet \"{targetName}\" används redan i mappen \"{dir}\". Vänligen välj ett annat namn.", + "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Namnet \"{targetName}\" används redan i mappen \"{dir}\". Välj ett annat namn.", "Could not rename \"{fileName}\"" : "Kan inte döpa om \"{fileName}\"", "Could not create file \"{file}\"" : "Kunde inte skapa fil \"{fileName}\"", "Could not create file \"{file}\" because it already exists" : "Kunde inte skapa fil \"{file}\" därför att den redan existerar", diff --git a/apps/files/lib/BackgroundJob/ScanFiles.php b/apps/files/lib/BackgroundJob/ScanFiles.php index 84846b9b55d..07794a28774 100644 --- a/apps/files/lib/BackgroundJob/ScanFiles.php +++ b/apps/files/lib/BackgroundJob/ScanFiles.php @@ -29,7 +29,7 @@ use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\EventDispatcher\IEventDispatcher; use OCP\IConfig; use OCP\IDBConnection; -use OCP\ILogger; +use Psr\Log\LoggerInterface; /** * Class ScanFiles is a background job used to run the file scanner over the user @@ -42,23 +42,16 @@ class ScanFiles extends \OC\BackgroundJob\TimedJob { private $config; /** @var IEventDispatcher */ private $dispatcher; - /** @var ILogger */ - private $logger; + private LoggerInterface $logger; private $connection; /** Amount of users that should get scanned per execution */ public const USERS_PER_SESSION = 500; - /** - * @param IConfig $config - * @param IEventDispatcher $dispatcher - * @param ILogger $logger - * @param IDBConnection $connection - */ public function __construct( IConfig $config, IEventDispatcher $dispatcher, - ILogger $logger, + LoggerInterface $logger, IDBConnection $connection ) { // Run once per 10 minutes @@ -83,7 +76,7 @@ class ScanFiles extends \OC\BackgroundJob\TimedJob { ); $scanner->backgroundScan(''); } catch (\Exception $e) { - $this->logger->logException($e, ['app' => 'files']); + $this->logger->error($e->getMessage(), ['exception' => $e, 'app' => 'files']); } \OC_Util::tearDownFS(); } diff --git a/apps/files/lib/Command/Scan.php b/apps/files/lib/Command/Scan.php index ff96fbf2dab..47f1caabc78 100644 --- a/apps/files/lib/Command/Scan.php +++ b/apps/files/lib/Command/Scan.php @@ -43,6 +43,7 @@ use OCP\Files\Mount\IMountPoint; use OCP\Files\NotFoundException; use OCP\Files\StorageNotAvailableException; use OCP\IUserManager; +use Psr\Log\LoggerInterface; use Symfony\Component\Console\Helper\Table; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; @@ -111,7 +112,7 @@ class Scan extends Base { $user, new ConnectionAdapter($connection), \OC::$server->query(IEventDispatcher::class), - \OC::$server->getLogger() + \OC::$server->get(LoggerInterface::class) ); # check on each file/folder if there was a user interrupt (ctrl-c) and throw an exception diff --git a/apps/files/lib/Command/ScanAppData.php b/apps/files/lib/Command/ScanAppData.php index 59281b52bc4..a5e9d99f804 100644 --- a/apps/files/lib/Command/ScanAppData.php +++ b/apps/files/lib/Command/ScanAppData.php @@ -38,6 +38,7 @@ use OCP\Files\IRootFolder; use OCP\Files\NotFoundException; use OCP\Files\StorageNotAvailableException; use OCP\IConfig; +use Psr\Log\LoggerInterface; use Symfony\Component\Console\Helper\Table; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; @@ -95,7 +96,7 @@ class ScanAppData extends Base { null, new ConnectionAdapter($connection), \OC::$server->query(IEventDispatcher::class), - \OC::$server->getLogger() + \OC::$server->get(LoggerInterface::class) ); # check on each file/folder if there was a user interrupt (ctrl-c) and throw an exception diff --git a/apps/files/tests/BackgroundJob/ScanFilesTest.php b/apps/files/tests/BackgroundJob/ScanFilesTest.php index 04eeff4a30b..5b2d52b48d3 100644 --- a/apps/files/tests/BackgroundJob/ScanFilesTest.php +++ b/apps/files/tests/BackgroundJob/ScanFilesTest.php @@ -28,8 +28,8 @@ use OC\Files\Storage\Temporary; use OCA\Files\BackgroundJob\ScanFiles; use OCP\EventDispatcher\IEventDispatcher; use OCP\IConfig; -use OCP\ILogger; use OCP\IUser; +use Psr\Log\LoggerInterface; use Test\TestCase; use Test\Traits\MountProviderTrait; use Test\Traits\UserTrait; @@ -54,7 +54,7 @@ class ScanFilesTest extends TestCase { $config = $this->createMock(IConfig::class); $dispatcher = $this->createMock(IEventDispatcher::class); - $logger = $this->createMock(ILogger::class); + $logger = $this->createMock(LoggerInterface::class); $connection = \OC::$server->getDatabaseConnection(); $this->mountCache = \OC::$server->getUserMountCache(); diff --git a/apps/files_external/appinfo/info.xml b/apps/files_external/appinfo/info.xml index ea8e29c0166..f9b2b8341ce 100644 --- a/apps/files_external/appinfo/info.xml +++ b/apps/files_external/appinfo/info.xml @@ -9,7 +9,7 @@ This application enables administrators to configure connections to external sto External storage can be configured using the GUI or at the command line. This second option provides the advanced user with more flexibility for configuring bulk external storage mounts and setting mount priorities. More information is available in the external storage GUI documentation and the external storage Configuration File documentation. </description> - <version>1.16.0</version> + <version>1.16.1</version> <licence>agpl</licence> <author>Robin Appelman</author> <author>Michael Gapczynski</author> diff --git a/apps/files_external/l10n/ca.js b/apps/files_external/l10n/ca.js index 25eda82dcda..b40cb7b5f71 100644 --- a/apps/files_external/l10n/ca.js +++ b/apps/files_external/l10n/ca.js @@ -22,6 +22,7 @@ OC.L10N.register( "Read only" : "Només lectura", "Delete" : "Suprimeix", "Admin defined" : "Administrador definit", + "Automatic status checking is disabled due to the large number of configured storages, click to check status" : "La comprovació automàtica de l'estat està inhabilitada a causa del gran nombre d'emmagatzematges configurats, feu clic per comprovar l'estat", "Are you sure you want to delete this external storage?" : "Esteu segur que voleu suprimir aquest emmagatzematge extern?", "Delete storage?" : "Suprimeix-ho l'emmagatzematge?", "Saved" : "Desat", diff --git a/apps/files_external/l10n/ca.json b/apps/files_external/l10n/ca.json index a092f8a53a9..38541dfbc0f 100644 --- a/apps/files_external/l10n/ca.json +++ b/apps/files_external/l10n/ca.json @@ -20,6 +20,7 @@ "Read only" : "Només lectura", "Delete" : "Suprimeix", "Admin defined" : "Administrador definit", + "Automatic status checking is disabled due to the large number of configured storages, click to check status" : "La comprovació automàtica de l'estat està inhabilitada a causa del gran nombre d'emmagatzematges configurats, feu clic per comprovar l'estat", "Are you sure you want to delete this external storage?" : "Esteu segur que voleu suprimir aquest emmagatzematge extern?", "Delete storage?" : "Suprimeix-ho l'emmagatzematge?", "Saved" : "Desat", diff --git a/apps/files_external/l10n/hu.js b/apps/files_external/l10n/hu.js index 653d4717022..527dd726383 100644 --- a/apps/files_external/l10n/hu.js +++ b/apps/files_external/l10n/hu.js @@ -22,6 +22,7 @@ OC.L10N.register( "Read only" : "Csak olvasható", "Delete" : "Törlés", "Admin defined" : "Rendszergazda által definiálva", + "Automatic status checking is disabled due to the large number of configured storages, click to check status" : "Az automatikus állapotellenőrzés a beállított tárolók nagy száma miatt ki van kapcsolva, kattintson az állapot ellenőrzéséhez", "Are you sure you want to delete this external storage?" : "Biztos, hogy törli ezt a külső tárolót?", "Delete storage?" : "Tároló törlése?", "Saved" : "Mentve", diff --git a/apps/files_external/l10n/hu.json b/apps/files_external/l10n/hu.json index 5538e42226c..9323eee7cfc 100644 --- a/apps/files_external/l10n/hu.json +++ b/apps/files_external/l10n/hu.json @@ -20,6 +20,7 @@ "Read only" : "Csak olvasható", "Delete" : "Törlés", "Admin defined" : "Rendszergazda által definiálva", + "Automatic status checking is disabled due to the large number of configured storages, click to check status" : "Az automatikus állapotellenőrzés a beállított tárolók nagy száma miatt ki van kapcsolva, kattintson az állapot ellenőrzéséhez", "Are you sure you want to delete this external storage?" : "Biztos, hogy törli ezt a külső tárolót?", "Delete storage?" : "Tároló törlése?", "Saved" : "Mentve", diff --git a/apps/files_external/l10n/sv.js b/apps/files_external/l10n/sv.js index a38f38f4bb4..d438d88e665 100644 --- a/apps/files_external/l10n/sv.js +++ b/apps/files_external/l10n/sv.js @@ -6,7 +6,7 @@ OC.L10N.register( "System" : "System", "Grant access" : "Bevilja åtkomst", "Error configuring OAuth1" : "Misslyckades konfigurera OAuth1", - "Please provide a valid app key and secret." : "Vänligen ange en giltig applikationsnyckel och hemlig fras.", + "Please provide a valid app key and secret." : "Ange en giltig applikationsnyckel och hemlig fras.", "Error configuring OAuth2" : "Misslyckades konfigurera OAuth2", "Generate keys" : "Generera nycklar", "Error generating key pair" : "Fel vid generering av nyckelpar", @@ -35,7 +35,7 @@ OC.L10N.register( "External mount error" : "Fel vid extern montering", "external-storage" : "extern-lagring", "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "Kunde inte hämta lista med Windows nätverksmonteringspunkter: Tomt svar från servern", - "Please enter the credentials for the {mount} mount" : "Vänligen ange uppgifterna för {mount} montering", + "Please enter the credentials for the {mount} mount" : "Ange uppgifterna för {mount} montering", "Username" : "Användarnamn", "Password" : "Lösenord", "Credentials saved" : "Sparade uppgifter", diff --git a/apps/files_external/l10n/sv.json b/apps/files_external/l10n/sv.json index 52039a41548..11286b78c2d 100644 --- a/apps/files_external/l10n/sv.json +++ b/apps/files_external/l10n/sv.json @@ -4,7 +4,7 @@ "System" : "System", "Grant access" : "Bevilja åtkomst", "Error configuring OAuth1" : "Misslyckades konfigurera OAuth1", - "Please provide a valid app key and secret." : "Vänligen ange en giltig applikationsnyckel och hemlig fras.", + "Please provide a valid app key and secret." : "Ange en giltig applikationsnyckel och hemlig fras.", "Error configuring OAuth2" : "Misslyckades konfigurera OAuth2", "Generate keys" : "Generera nycklar", "Error generating key pair" : "Fel vid generering av nyckelpar", @@ -33,7 +33,7 @@ "External mount error" : "Fel vid extern montering", "external-storage" : "extern-lagring", "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "Kunde inte hämta lista med Windows nätverksmonteringspunkter: Tomt svar från servern", - "Please enter the credentials for the {mount} mount" : "Vänligen ange uppgifterna för {mount} montering", + "Please enter the credentials for the {mount} mount" : "Ange uppgifterna för {mount} montering", "Username" : "Användarnamn", "Password" : "Lösenord", "Credentials saved" : "Sparade uppgifter", diff --git a/apps/files_external/lib/Lib/Storage/Swift.php b/apps/files_external/lib/Lib/Storage/Swift.php index 17859259fe3..fb93c6cdce2 100644 --- a/apps/files_external/lib/Lib/Storage/Swift.php +++ b/apps/files_external/lib/Lib/Storage/Swift.php @@ -48,9 +48,9 @@ use Icewind\Streams\IteratorDirectory; use OC\Files\ObjectStore\SwiftFactory; use OCP\Files\IMimeTypeDetector; use OCP\Files\StorageBadConfigException; -use OCP\ILogger; use OpenStack\Common\Error\BadResponseError; use OpenStack\ObjectStore\v1\Models\StorageObject; +use Psr\Log\LoggerInterface; class Swift extends \OC\Files\Storage\Common { /** @var SwiftFactory */ @@ -138,8 +138,8 @@ class Swift extends \OC\Files\Storage\Common { } catch (BadResponseError $e) { // Expected response is "404 Not Found", so only log if it isn't if ($e->getResponse()->getStatusCode() !== 404) { - \OC::$server->getLogger()->logException($e, [ - 'level' => ILogger::ERROR, + \OC::$server->get(LoggerInterface::class)->error($e->getMessage(), [ + 'exception' => $e, 'app' => 'files_external', ]); } @@ -204,7 +204,7 @@ class Swift extends \OC\Files\Storage\Common { $this->connectionFactory = new SwiftFactory( \OC::$server->getMemCacheFactory()->createDistributed('swift/'), $this->params, - \OC::$server->getLogger() + \OC::$server->get(LoggerInterface::class) ); $this->objectStore = new \OC\Files\ObjectStore\Swift($this->params, $this->connectionFactory); $this->bucket = $params['bucket']; @@ -232,8 +232,8 @@ class Swift extends \OC\Files\Storage\Common { // with all properties $this->objectCache->remove($path); } catch (BadResponseError $e) { - \OC::$server->getLogger()->logException($e, [ - 'level' => ILogger::ERROR, + \OC::$server->get(LoggerInterface::class)->error($e->getMessage(), [ + 'exception' => $e, 'app' => 'files_external', ]); return false; @@ -276,8 +276,8 @@ class Swift extends \OC\Files\Storage\Common { $this->objectStore->deleteObject($path . '/'); $this->objectCache->remove($path . '/'); } catch (BadResponseError $e) { - \OC::$server->getLogger()->logException($e, [ - 'level' => ILogger::ERROR, + \OC::$server->get(LoggerInterface::class)->error($e->getMessage(), [ + 'exception' => $e, 'app' => 'files_external', ]); return false; @@ -314,8 +314,8 @@ class Swift extends \OC\Files\Storage\Common { return IteratorDirectory::wrap($files); } catch (\Exception $e) { - \OC::$server->getLogger()->logException($e, [ - 'level' => ILogger::ERROR, + \OC::$server->get(LoggerInterface::class)->error($e->getMessage(), [ + 'exception' => $e, 'app' => 'files_external', ]); return false; @@ -337,8 +337,8 @@ class Swift extends \OC\Files\Storage\Common { return false; } } catch (BadResponseError $e) { - \OC::$server->getLogger()->logException($e, [ - 'level' => ILogger::ERROR, + \OC::$server->get(LoggerInterface::class)->error($e->getMessage(), [ + 'exception' => $e, 'app' => 'files_external', ]); return false; @@ -391,8 +391,8 @@ class Swift extends \OC\Files\Storage\Common { $this->objectCache->remove($path . '/'); } catch (BadResponseError $e) { if ($e->getResponse()->getStatusCode() !== 404) { - \OC::$server->getLogger()->logException($e, [ - 'level' => ILogger::ERROR, + \OC::$server->get(LoggerInterface::class)->error($e->getMessage(), [ + 'exception' => $e, 'app' => 'files_external', ]); throw $e; @@ -415,8 +415,8 @@ class Swift extends \OC\Files\Storage\Common { try { return $this->objectStore->readObject($path); } catch (BadResponseError $e) { - \OC::$server->getLogger()->logException($e, [ - 'level' => ILogger::ERROR, + \OC::$server->get(LoggerInterface::class)->error($e->getMessage(), [ + 'exception' => $e, 'app' => 'files_external', ]); return false; @@ -502,8 +502,8 @@ class Swift extends \OC\Files\Storage\Common { $this->objectCache->remove($path2); $this->objectCache->remove($path2 . '/'); } catch (BadResponseError $e) { - \OC::$server->getLogger()->logException($e, [ - 'level' => ILogger::ERROR, + \OC::$server->get(LoggerInterface::class)->error($e->getMessage(), [ + 'exception' => $e, 'app' => 'files_external', ]); return false; @@ -518,8 +518,8 @@ class Swift extends \OC\Files\Storage\Common { $this->objectCache->remove($path2); $this->objectCache->remove($path2 . '/'); } catch (BadResponseError $e) { - \OC::$server->getLogger()->logException($e, [ - 'level' => ILogger::ERROR, + \OC::$server->get(LoggerInterface::class)->error($e->getMessage(), [ + 'exception' => $e, 'app' => 'files_external', ]); return false; diff --git a/apps/files_external/lib/Migration/Version1011Date20200630192246.php b/apps/files_external/lib/Migration/Version1011Date20200630192246.php index 5ec289428fb..c2a53e346f1 100644 --- a/apps/files_external/lib/Migration/Version1011Date20200630192246.php +++ b/apps/files_external/lib/Migration/Version1011Date20200630192246.php @@ -116,7 +116,7 @@ class Version1011Date20200630192246 extends SimpleMigrationStep { ]); $table->addColumn('value', Types::STRING, [ 'notnull' => false, - 'length' => 4096, + 'length' => 4000, ]); $table->setPrimaryKey(['config_id']); $table->addUniqueIndex(['mount_id', 'key'], 'config_mount_key'); diff --git a/apps/files_external/lib/Migration/Version1016Date20220324154536.php b/apps/files_external/lib/Migration/Version1016Date20220324154536.php new file mode 100644 index 00000000000..a2a7ecaff17 --- /dev/null +++ b/apps/files_external/lib/Migration/Version1016Date20220324154536.php @@ -0,0 +1,54 @@ +<?php + +declare(strict_types=1); +/** + * @copyright Copyright (c) 2022 Joas Schilling <coding@schilljs.com> + * + * @author Joas Schilling <coding@schilljs.com> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +namespace OCA\Files_External\Migration; + +use Closure; +use OCP\DB\ISchemaWrapper; +use OCP\Migration\IOutput; +use OCP\Migration\SimpleMigrationStep; + +class Version1016Date20220324154536 extends SimpleMigrationStep { + + /** + * @param IOutput $output + * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` + * @param array $options + * @return null|ISchemaWrapper + */ + public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper { + /** @var ISchemaWrapper $schema */ + $schema = $schemaClosure(); + + $table = $schema->getTable('external_config'); + $column = $table->getColumn('value'); + + if ($column->getLength() > 4000) { + $column->setLength(4000); + return $schema; + } + + return null; + } +} diff --git a/apps/files_external/lib/Service/StoragesService.php b/apps/files_external/lib/Service/StoragesService.php index b8eabd65e1e..489192dbdc2 100644 --- a/apps/files_external/lib/Service/StoragesService.php +++ b/apps/files_external/lib/Service/StoragesService.php @@ -40,7 +40,9 @@ use OCA\Files_External\Lib\Backend\InvalidBackend; use OCA\Files_External\Lib\DefinitionParameter; use OCA\Files_External\Lib\StorageConfig; use OCA\Files_External\NotFoundException; +use OCP\EventDispatcher\IEventDispatcher; use OCP\Files\Config\IUserMountCache; +use OCP\Files\Events\InvalidateMountCacheEvent; use OCP\Files\StorageNotAvailableException; use OCP\ILogger; @@ -62,15 +64,24 @@ abstract class StoragesService { */ protected $userMountCache; + protected IEventDispatcher $eventDispatcher; + /** * @param BackendService $backendService * @param DBConfigService $dbConfigService * @param IUserMountCache $userMountCache + * @param IEventDispatcher $eventDispatcher */ - public function __construct(BackendService $backendService, DBConfigService $dbConfigService, IUserMountCache $userMountCache) { + public function __construct( + BackendService $backendService, + DBConfigService $dbConfigService, + IUserMountCache $userMountCache, + IEventDispatcher $eventDispatcher + ) { $this->backendService = $backendService; $this->dbConfig = $dbConfigService; $this->userMountCache = $userMountCache; + $this->eventDispatcher = $eventDispatcher; } protected function readDBConfig() { @@ -338,7 +349,8 @@ abstract class StoragesService { * @param string $mountType hook mount type param * @param array $applicableArray array of applicable users/groups for which to trigger the hook */ - protected function triggerApplicableHooks($signal, $mountPoint, $mountType, $applicableArray) { + protected function triggerApplicableHooks($signal, $mountPoint, $mountType, $applicableArray): void { + $this->eventDispatcher->dispatchTyped(new InvalidateMountCacheEvent(null)); foreach ($applicableArray as $applicable) { \OCP\Util::emitHook( Filesystem::CLASSNAME, diff --git a/apps/files_external/lib/Service/UserGlobalStoragesService.php b/apps/files_external/lib/Service/UserGlobalStoragesService.php index ba894d8f210..2eda36e9242 100644 --- a/apps/files_external/lib/Service/UserGlobalStoragesService.php +++ b/apps/files_external/lib/Service/UserGlobalStoragesService.php @@ -24,6 +24,7 @@ namespace OCA\Files_External\Service; use OCA\Files_External\Lib\StorageConfig; +use OCP\EventDispatcher\IEventDispatcher; use OCP\Files\Config\IUserMountCache; use OCP\IGroupManager; use OCP\IUser; @@ -45,15 +46,17 @@ class UserGlobalStoragesService extends GlobalStoragesService { * @param IUserSession $userSession * @param IGroupManager $groupManager * @param IUserMountCache $userMountCache + * @param IEventDispatcher $eventDispatcher */ public function __construct( BackendService $backendService, DBConfigService $dbConfig, IUserSession $userSession, IGroupManager $groupManager, - IUserMountCache $userMountCache + IUserMountCache $userMountCache, + IEventDispatcher $eventDispatcher ) { - parent::__construct($backendService, $dbConfig, $userMountCache); + parent::__construct($backendService, $dbConfig, $userMountCache, $eventDispatcher); $this->userSession = $userSession; $this->groupManager = $groupManager; } diff --git a/apps/files_external/lib/Service/UserStoragesService.php b/apps/files_external/lib/Service/UserStoragesService.php index 8af6bdb3a77..b09b37b40cc 100644 --- a/apps/files_external/lib/Service/UserStoragesService.php +++ b/apps/files_external/lib/Service/UserStoragesService.php @@ -32,6 +32,7 @@ use OC\Files\Filesystem; use OCA\Files_External\Lib\StorageConfig; use OCA\Files_External\NotFoundException; +use OCP\EventDispatcher\IEventDispatcher; use OCP\Files\Config\IUserMountCache; use OCP\IUserSession; @@ -49,15 +50,17 @@ class UserStoragesService extends StoragesService { * @param DBConfigService $dbConfig * @param IUserSession $userSession user session * @param IUserMountCache $userMountCache + * @param IEventDispatcher $eventDispatcher */ public function __construct( BackendService $backendService, DBConfigService $dbConfig, IUserSession $userSession, - IUserMountCache $userMountCache + IUserMountCache $userMountCache, + IEventDispatcher $eventDispatcher ) { $this->userSession = $userSession; - parent::__construct($backendService, $dbConfig, $userMountCache); + parent::__construct($backendService, $dbConfig, $userMountCache, $eventDispatcher); } protected function readDBConfig() { diff --git a/apps/files_external/tests/Service/GlobalStoragesServiceTest.php b/apps/files_external/tests/Service/GlobalStoragesServiceTest.php index b23c4b8f2bf..7d77ea971f3 100644 --- a/apps/files_external/tests/Service/GlobalStoragesServiceTest.php +++ b/apps/files_external/tests/Service/GlobalStoragesServiceTest.php @@ -37,7 +37,7 @@ use OCA\Files_External\Service\GlobalStoragesService; class GlobalStoragesServiceTest extends StoragesServiceTest { protected function setUp(): void { parent::setUp(); - $this->service = new GlobalStoragesService($this->backendService, $this->dbConfig, $this->mountCache); + $this->service = new GlobalStoragesService($this->backendService, $this->dbConfig, $this->mountCache, $this->eventDispatcher); } protected function tearDown(): void { diff --git a/apps/files_external/tests/Service/StoragesServiceTest.php b/apps/files_external/tests/Service/StoragesServiceTest.php index 3829a9ea0ce..4eaf70a8e84 100644 --- a/apps/files_external/tests/Service/StoragesServiceTest.php +++ b/apps/files_external/tests/Service/StoragesServiceTest.php @@ -39,6 +39,7 @@ use OCA\Files_External\Service\BackendService; use OCA\Files_External\Service\DBConfigService; use OCA\Files_External\Service\StoragesService; use OCP\AppFramework\IAppContainer; +use OCP\EventDispatcher\IEventDispatcher; use OCP\Files\Cache\ICache; use OCP\Files\Config\IUserMountCache; use OCP\Files\Mount\IMountPoint; @@ -96,6 +97,11 @@ abstract class StoragesServiceTest extends \Test\TestCase { */ protected $mountCache; + /** + * @var \PHPUnit\Framework\MockObject\MockObject|IEventDispatcher + */ + protected IEventDispatcher $eventDispatcher; + protected function setUp(): void { parent::setUp(); $this->dbConfig = new CleaningDBConfig(\OC::$server->getDatabaseConnection(), \OC::$server->getCrypto()); @@ -108,6 +114,7 @@ abstract class StoragesServiceTest extends \Test\TestCase { \OCA\Files_External\MountConfig::$skipTest = true; $this->mountCache = $this->createMock(IUserMountCache::class); + $this->eventDispatcher = $this->createMock(IEventDispatcher::class); // prepare BackendService mock $this->backendService = diff --git a/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php b/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php index ea77148c8f2..aa5aa1df431 100644 --- a/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php +++ b/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php @@ -100,7 +100,8 @@ class UserGlobalStoragesServiceTest extends GlobalStoragesServiceTest { $this->dbConfig, $userSession, $this->groupManager, - $this->mountCache + $this->mountCache, + $this->eventDispatcher, ); } diff --git a/apps/files_external/tests/Service/UserStoragesServiceTest.php b/apps/files_external/tests/Service/UserStoragesServiceTest.php index ff39ea9ddbc..cda1dd0a27f 100644 --- a/apps/files_external/tests/Service/UserStoragesServiceTest.php +++ b/apps/files_external/tests/Service/UserStoragesServiceTest.php @@ -54,7 +54,7 @@ class UserStoragesServiceTest extends StoragesServiceTest { protected function setUp(): void { parent::setUp(); - $this->globalStoragesService = new GlobalStoragesService($this->backendService, $this->dbConfig, $this->mountCache); + $this->globalStoragesService = new GlobalStoragesService($this->backendService, $this->dbConfig, $this->mountCache, $this->eventDispatcher); $this->userId = $this->getUniqueID('user_'); $this->createUser($this->userId, $this->userId); @@ -67,7 +67,7 @@ class UserStoragesServiceTest extends StoragesServiceTest { ->method('getUser') ->willReturn($this->user); - $this->service = new UserStoragesService($this->backendService, $this->dbConfig, $userSession, $this->mountCache); + $this->service = new UserStoragesService($this->backendService, $this->dbConfig, $userSession, $this->mountCache, $this->eventDispatcher); } private function makeTestStorageData() { diff --git a/apps/files_sharing/composer/composer/InstalledVersions.php b/apps/files_sharing/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/files_sharing/composer/composer/InstalledVersions.php +++ b/apps/files_sharing/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/files_sharing/composer/composer/autoload_classmap.php b/apps/files_sharing/composer/composer/autoload_classmap.php index 1bd39d408bb..3a98cb4577f 100644 --- a/apps/files_sharing/composer/composer/autoload_classmap.php +++ b/apps/files_sharing/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/files_sharing/composer/composer/autoload_namespaces.php b/apps/files_sharing/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/files_sharing/composer/composer/autoload_namespaces.php +++ b/apps/files_sharing/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/files_sharing/composer/composer/autoload_psr4.php b/apps/files_sharing/composer/composer/autoload_psr4.php index 9fb758e4059..5c83be8bb86 100644 --- a/apps/files_sharing/composer/composer/autoload_psr4.php +++ b/apps/files_sharing/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/files_sharing/composer/composer/autoload_real.php b/apps/files_sharing/composer/composer/autoload_real.php index 0b3bf55f31e..24054045984 100644 --- a/apps/files_sharing/composer/composer/autoload_real.php +++ b/apps/files_sharing/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitFiles_Sharing } spl_autoload_register(array('ComposerAutoloaderInitFiles_Sharing', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitFiles_Sharing', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitFiles_Sharing::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitFiles_Sharing::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/files_sharing/l10n/cs.js b/apps/files_sharing/l10n/cs.js index e80b06f1fb4..2ddac23ce5a 100644 --- a/apps/files_sharing/l10n/cs.js +++ b/apps/files_sharing/l10n/cs.js @@ -124,7 +124,6 @@ OC.L10N.register( "Could not lock path" : "Nepodařilo se uzamknout popis umístění", "Wrong or no update parameter given" : "Chyba nebo žádná aktualizace dle zadaných parametrů", "Share must at least have READ or CREATE permissions" : "Je třeba, aby sdílení mělo alespoň oprávnění pro ČÍST nebo VYTVÁŘET", - "Share must have READ permission if UPDATE or DELETE permission is set." : "Pokud je nastaveno oprávnění AKTUALIZOVAT nebo MAZAT je třeba, aby sdílení mělo oprávnění ČÍST.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "„Zaslání hesla prostřednictvím Nextcloud Talk“ pro sdílení souboru či složky se nezdařilo protože Nextcloud Talk není zapnuté.", "shared by %s" : "sdílí %s", "Download all files" : "Stáhnout všechny soubory", diff --git a/apps/files_sharing/l10n/cs.json b/apps/files_sharing/l10n/cs.json index c88349d580d..38fb793fe63 100644 --- a/apps/files_sharing/l10n/cs.json +++ b/apps/files_sharing/l10n/cs.json @@ -122,7 +122,6 @@ "Could not lock path" : "Nepodařilo se uzamknout popis umístění", "Wrong or no update parameter given" : "Chyba nebo žádná aktualizace dle zadaných parametrů", "Share must at least have READ or CREATE permissions" : "Je třeba, aby sdílení mělo alespoň oprávnění pro ČÍST nebo VYTVÁŘET", - "Share must have READ permission if UPDATE or DELETE permission is set." : "Pokud je nastaveno oprávnění AKTUALIZOVAT nebo MAZAT je třeba, aby sdílení mělo oprávnění ČÍST.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "„Zaslání hesla prostřednictvím Nextcloud Talk“ pro sdílení souboru či složky se nezdařilo protože Nextcloud Talk není zapnuté.", "shared by %s" : "sdílí %s", "Download all files" : "Stáhnout všechny soubory", diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js index b731cf03a84..6cc439d686e 100644 --- a/apps/files_sharing/l10n/de.js +++ b/apps/files_sharing/l10n/de.js @@ -123,7 +123,6 @@ OC.L10N.register( "Could not lock path" : "Pfad konnte nicht gesperrt werden", "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben", "Share must at least have READ or CREATE permissions" : "Freigabe muss mindestens Lese- oder Erstell-Rechte haben", - "Share must have READ permission if UPDATE or DELETE permission is set." : "Die Freigabe muss das Recht Lesen haben, wenn das Recht für Aktualisieren oder Löschen gesetzt ist.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Senden des Passwortes über Nextcloud Talk\" zum Teilen einer Datei gescheitert, da Nextcloud Talk nicht verfügbar ist.", "shared by %s" : "von %s geteilt", "Download all files" : "Alle Dateien herunterladen", diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json index 36790acd0a4..7840d3acbe2 100644 --- a/apps/files_sharing/l10n/de.json +++ b/apps/files_sharing/l10n/de.json @@ -121,7 +121,6 @@ "Could not lock path" : "Pfad konnte nicht gesperrt werden", "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben", "Share must at least have READ or CREATE permissions" : "Freigabe muss mindestens Lese- oder Erstell-Rechte haben", - "Share must have READ permission if UPDATE or DELETE permission is set." : "Die Freigabe muss das Recht Lesen haben, wenn das Recht für Aktualisieren oder Löschen gesetzt ist.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Senden des Passwortes über Nextcloud Talk\" zum Teilen einer Datei gescheitert, da Nextcloud Talk nicht verfügbar ist.", "shared by %s" : "von %s geteilt", "Download all files" : "Alle Dateien herunterladen", diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js index 1cb10b7704e..adf92d3c079 100644 --- a/apps/files_sharing/l10n/de_DE.js +++ b/apps/files_sharing/l10n/de_DE.js @@ -124,7 +124,6 @@ OC.L10N.register( "Could not lock path" : "Pfad konnte nicht gesperrt werden", "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben", "Share must at least have READ or CREATE permissions" : "Freigabe muss mindestens LESEN- oder ERSTELLEN-Rechte haben", - "Share must have READ permission if UPDATE or DELETE permission is set." : "Die Freigabe muss das Recht LESEN haben, wenn das Recht AKTUALISIEREN oder LÖSCHEN gesetzt ist.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Senden des Passwortes über Nextcloud Talk\" zum Teilen einer Datei gescheitert, da Nextcloud Talk nicht verfügbar ist.", "shared by %s" : "von %s geteilt", "Download all files" : "Alle Dateien herunterladen", diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json index f12c03e8be9..e3a82f7b8b1 100644 --- a/apps/files_sharing/l10n/de_DE.json +++ b/apps/files_sharing/l10n/de_DE.json @@ -122,7 +122,6 @@ "Could not lock path" : "Pfad konnte nicht gesperrt werden", "Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben", "Share must at least have READ or CREATE permissions" : "Freigabe muss mindestens LESEN- oder ERSTELLEN-Rechte haben", - "Share must have READ permission if UPDATE or DELETE permission is set." : "Die Freigabe muss das Recht LESEN haben, wenn das Recht AKTUALISIEREN oder LÖSCHEN gesetzt ist.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Senden des Passwortes über Nextcloud Talk\" zum Teilen einer Datei gescheitert, da Nextcloud Talk nicht verfügbar ist.", "shared by %s" : "von %s geteilt", "Download all files" : "Alle Dateien herunterladen", diff --git a/apps/files_sharing/l10n/el.js b/apps/files_sharing/l10n/el.js index 2a59266c958..521d0fc79b1 100644 --- a/apps/files_sharing/l10n/el.js +++ b/apps/files_sharing/l10n/el.js @@ -101,7 +101,9 @@ OC.L10N.register( "Wrong share ID, share doesn't exist" : "Λάθος ID διαμοιρασμού, διαμοιρασμός δεν υπάρχει", "Could not delete share" : "Αδυναμία διαγραφής κοινόχρηστου φακέλου", "Please specify a file or folder path" : "Παρακαλούμε καθορίστε την διαδρομή για το αρχείο ή τον φάκελο", + "Wrong path, file/folder does not exist" : "Λάθος διαδρομή, το αρχείο/φάκελος δεν υπάρχει", "Could not create share" : "Αδυναμία δημιουργίας κοινόχρηστου", + "Invalid permissions" : "Μη έγκυρα δικαιώματα", "Please specify a valid user" : "Παρακαλούμε καθορίστε έναν έγκυρο χρήστη", "Group sharing is disabled by the administrator" : "Διαμοιρασμός σε ομάδες είναι απενεργοποιημένος από τον διαχειρηστή", "Please specify a valid group" : "Παρακαλούμε καθορίστε μια έγκυρη ομάδα", @@ -134,10 +136,22 @@ OC.L10N.register( "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Η εφαρμογή επιτρέπει στους χρήστες να διαμοιράζονται αρχεία μέσω του Nextcloud. Εάν ενεργοποιηθεί, ο διαχειριστής μπορεί να επιλέξει ποιές ομάδες μπορούν να διαμοιράζοντι αρχεία. υτοί οι χρήστες μπορούν τότε να διαμοιράζονται αρχεία και φακέλους με άλλους χρήστες και ομάδες μέσα στο Nextcloud. Επιπλέον, εάν ο διαχειριστής ενεργοποιήσει τη δυνατότητα συνδέσμου κοινής χρήσης, μπορεί να χρησιμοποιηθεί ένας εξωτερικός σύνδεσμος για την κοινή χρήση αρχείων με άλλους χρήστες εκτός του Nextcloud. Οι διαχειριστές μπορούν επίσης να επιβάλλουν κωδικούς πρόσβασης, ημερομηνίες λήξης και να επιτρέπουν την κοινή χρήση μεταξύ διακομιστών μέσω συνδέσμων κοινής χρήσης, καθώς και την κοινή χρήση από κινητές συσκευές.\nΗ απενεργοποίηση της λειτουργίας καταργεί τα κοινόχρηστα αρχεία και τους φακέλους στο διακομιστή για όλους τους παραλήπτες κοινής χρήσης, καθώς και για τους υπολογιστές-πελάτες συγχρονισμού και τις εφαρμογές για κινητά. Περισσότερες πληροφορίες διατίθενται στην Τεκμηρίωση Nextcloud.", "Sharing" : "Διαμοιρασμός", "Accept user and group shares by default" : "Αποδοχή διαμοιρασμών από χρήστες και ομάδες από προεπιλογή", + "Error while toggling options" : "Σφάλμα κατά την εναλλαγή επιλογών", + "Set default folder for accepted shares" : "Ορισμός προεπιλεγμένου φακέλου για αποδεκτά κοινόχρηστα στοιχεία", + "Reset" : "Επαναφορά", + "Reset folder to system default" : "Επαναφορά του φακέλου στις προεπιλογές συστήματος", + "Choose a default folder for accepted shares" : "Επιλέξτε έναν προεπιλεγμένο φάκελο για τα κοινόχρηστα στοιχεία που γίνονται αποδεκτά ", + "Invalid path selected" : "Επιλέχθηκε μη έγκυρη διαδρομή", + "Unknown error" : "Άγνωστο σφάλμα", "Allow editing" : "Επιτρέπεται η επεξεργασία", "Read only" : "Μόνο για ανάγνωση", "Allow upload and editing" : "Επέτρεψε την μεταφόρτωση και επεξεργασία", "File drop (upload only)" : "Απόθεση αρχείου (μόνο μεταφόρτωση)", + "Custom permissions" : "Προσαρμοσμένα δικαιώματα", + "Read" : "Ανάγνωση", + "Upload" : "Μεταφόρτωση", + "Edit" : "Επεξεργασία", + "Bundled permissions" : "Ομαδοποιημένα δικαιώματα", "Allow creating" : "Επιτρέπεται η δημιουργία", "Allow deleting" : "Επιτρέπετε η διαγραφή", "Allow resharing" : "Επιτρέπεται ο επαναδιαμοιρασμός", @@ -233,6 +247,7 @@ OC.L10N.register( "invalid permissions" : "μη έγκυρα δικαιώματα", "Can't change permissions for public share links" : "Δεν μπορούμε να αλλάξουμε δικαιώματα για δημόσια διαμοιρασμένους συνδέσμους", "Sharing sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Η αποστολή του κοινόχρηστου κωδικού πρόσβασης από το Nextcloud Talk απέτυχε επειδή δεν είναι ενεργοποιημένο το Nextcloud Talk", - "Download %s" : "Λήψη %s" + "Download %s" : "Λήψη %s", + "Cannot change permissions for public share links" : "Δεν είναι δυνατή η αλλαγή των δικαιωμάτων για συνδέσμους δημόσιας κοινής χρήσης" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/el.json b/apps/files_sharing/l10n/el.json index 8c2c68cec71..daa1fabec33 100644 --- a/apps/files_sharing/l10n/el.json +++ b/apps/files_sharing/l10n/el.json @@ -99,7 +99,9 @@ "Wrong share ID, share doesn't exist" : "Λάθος ID διαμοιρασμού, διαμοιρασμός δεν υπάρχει", "Could not delete share" : "Αδυναμία διαγραφής κοινόχρηστου φακέλου", "Please specify a file or folder path" : "Παρακαλούμε καθορίστε την διαδρομή για το αρχείο ή τον φάκελο", + "Wrong path, file/folder does not exist" : "Λάθος διαδρομή, το αρχείο/φάκελος δεν υπάρχει", "Could not create share" : "Αδυναμία δημιουργίας κοινόχρηστου", + "Invalid permissions" : "Μη έγκυρα δικαιώματα", "Please specify a valid user" : "Παρακαλούμε καθορίστε έναν έγκυρο χρήστη", "Group sharing is disabled by the administrator" : "Διαμοιρασμός σε ομάδες είναι απενεργοποιημένος από τον διαχειρηστή", "Please specify a valid group" : "Παρακαλούμε καθορίστε μια έγκυρη ομάδα", @@ -132,10 +134,22 @@ "This application enables users to share files within Nextcloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within Nextcloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of Nextcloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.\nTurning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the Nextcloud Documentation." : "Η εφαρμογή επιτρέπει στους χρήστες να διαμοιράζονται αρχεία μέσω του Nextcloud. Εάν ενεργοποιηθεί, ο διαχειριστής μπορεί να επιλέξει ποιές ομάδες μπορούν να διαμοιράζοντι αρχεία. υτοί οι χρήστες μπορούν τότε να διαμοιράζονται αρχεία και φακέλους με άλλους χρήστες και ομάδες μέσα στο Nextcloud. Επιπλέον, εάν ο διαχειριστής ενεργοποιήσει τη δυνατότητα συνδέσμου κοινής χρήσης, μπορεί να χρησιμοποιηθεί ένας εξωτερικός σύνδεσμος για την κοινή χρήση αρχείων με άλλους χρήστες εκτός του Nextcloud. Οι διαχειριστές μπορούν επίσης να επιβάλλουν κωδικούς πρόσβασης, ημερομηνίες λήξης και να επιτρέπουν την κοινή χρήση μεταξύ διακομιστών μέσω συνδέσμων κοινής χρήσης, καθώς και την κοινή χρήση από κινητές συσκευές.\nΗ απενεργοποίηση της λειτουργίας καταργεί τα κοινόχρηστα αρχεία και τους φακέλους στο διακομιστή για όλους τους παραλήπτες κοινής χρήσης, καθώς και για τους υπολογιστές-πελάτες συγχρονισμού και τις εφαρμογές για κινητά. Περισσότερες πληροφορίες διατίθενται στην Τεκμηρίωση Nextcloud.", "Sharing" : "Διαμοιρασμός", "Accept user and group shares by default" : "Αποδοχή διαμοιρασμών από χρήστες και ομάδες από προεπιλογή", + "Error while toggling options" : "Σφάλμα κατά την εναλλαγή επιλογών", + "Set default folder for accepted shares" : "Ορισμός προεπιλεγμένου φακέλου για αποδεκτά κοινόχρηστα στοιχεία", + "Reset" : "Επαναφορά", + "Reset folder to system default" : "Επαναφορά του φακέλου στις προεπιλογές συστήματος", + "Choose a default folder for accepted shares" : "Επιλέξτε έναν προεπιλεγμένο φάκελο για τα κοινόχρηστα στοιχεία που γίνονται αποδεκτά ", + "Invalid path selected" : "Επιλέχθηκε μη έγκυρη διαδρομή", + "Unknown error" : "Άγνωστο σφάλμα", "Allow editing" : "Επιτρέπεται η επεξεργασία", "Read only" : "Μόνο για ανάγνωση", "Allow upload and editing" : "Επέτρεψε την μεταφόρτωση και επεξεργασία", "File drop (upload only)" : "Απόθεση αρχείου (μόνο μεταφόρτωση)", + "Custom permissions" : "Προσαρμοσμένα δικαιώματα", + "Read" : "Ανάγνωση", + "Upload" : "Μεταφόρτωση", + "Edit" : "Επεξεργασία", + "Bundled permissions" : "Ομαδοποιημένα δικαιώματα", "Allow creating" : "Επιτρέπεται η δημιουργία", "Allow deleting" : "Επιτρέπετε η διαγραφή", "Allow resharing" : "Επιτρέπεται ο επαναδιαμοιρασμός", @@ -231,6 +245,7 @@ "invalid permissions" : "μη έγκυρα δικαιώματα", "Can't change permissions for public share links" : "Δεν μπορούμε να αλλάξουμε δικαιώματα για δημόσια διαμοιρασμένους συνδέσμους", "Sharing sending the password by Nextcloud Talk failed because Nextcloud Talk is not enabled" : "Η αποστολή του κοινόχρηστου κωδικού πρόσβασης από το Nextcloud Talk απέτυχε επειδή δεν είναι ενεργοποιημένο το Nextcloud Talk", - "Download %s" : "Λήψη %s" + "Download %s" : "Λήψη %s", + "Cannot change permissions for public share links" : "Δεν είναι δυνατή η αλλαγή των δικαιωμάτων για συνδέσμους δημόσιας κοινής χρήσης" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files_sharing/l10n/es.js b/apps/files_sharing/l10n/es.js index 266f22ff6e7..db1fffb1546 100644 --- a/apps/files_sharing/l10n/es.js +++ b/apps/files_sharing/l10n/es.js @@ -124,7 +124,6 @@ OC.L10N.register( "Could not lock path" : "No se ha podido bloquear la ruta", "Wrong or no update parameter given" : "No se ha suministrado un parametro correcto", "Share must at least have READ or CREATE permissions" : "El recurso compartido debe tener al menos el permiso de LECTURA o CREACIÓN", - "Share must have READ permission if UPDATE or DELETE permission is set." : "El recurso compartido debe tener el permiso de LECTURA si el permiso de ACTUALIZAR o ELIMINAR está activado.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"El envío de la contraseña por Nextcloud Talk\" para compartir un archivo o carpeta falló porque Nextcloud Talk no está habilitado.", "shared by %s" : "compartido por %s", "Download all files" : "Descargar todos los archivos", diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json index 5eb24043838..cd4538810b7 100644 --- a/apps/files_sharing/l10n/es.json +++ b/apps/files_sharing/l10n/es.json @@ -122,7 +122,6 @@ "Could not lock path" : "No se ha podido bloquear la ruta", "Wrong or no update parameter given" : "No se ha suministrado un parametro correcto", "Share must at least have READ or CREATE permissions" : "El recurso compartido debe tener al menos el permiso de LECTURA o CREACIÓN", - "Share must have READ permission if UPDATE or DELETE permission is set." : "El recurso compartido debe tener el permiso de LECTURA si el permiso de ACTUALIZAR o ELIMINAR está activado.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"El envío de la contraseña por Nextcloud Talk\" para compartir un archivo o carpeta falló porque Nextcloud Talk no está habilitado.", "shared by %s" : "compartido por %s", "Download all files" : "Descargar todos los archivos", diff --git a/apps/files_sharing/l10n/eu.js b/apps/files_sharing/l10n/eu.js index 690ceaa14af..015c99450f0 100644 --- a/apps/files_sharing/l10n/eu.js +++ b/apps/files_sharing/l10n/eu.js @@ -101,6 +101,7 @@ OC.L10N.register( "Wrong share ID, share doesn't exist" : "Partekatze ID okerra, partekatzea ez da existitzen", "Could not delete share" : "Ezin izan da partekatzea ezabatu", "Please specify a file or folder path" : "Zehaztu fitxategi edo karpetaren bide bat", + "Wrong path, file/folder does not exist" : "Bide okerra, fitxategia/karpeta ez da existitzen", "Could not create share" : "Ezin izan da partekatzea sortu", "Invalid permissions" : "Baimen baliogabeak", "Please specify a valid user" : "Zehaztu baliozko erabiltzaile bat", @@ -123,7 +124,6 @@ OC.L10N.register( "Could not lock path" : "Ezin izan da bidea blokeatu", "Wrong or no update parameter given" : "Eguneraketa parametrorik ez da eman edo okerra da", "Share must at least have READ or CREATE permissions" : "Partekatzeak gutxienez IRAKURRI edo SORTU egiteko baimenak behar ditu", - "Share must have READ permission if UPDATE or DELETE permission is set." : "Partekatzeak IRAKURRI egiteko baimenak behar ditu, EGUNERATU edo EZABATU baimenak baldin badauzka.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Nextcloud Talk-ek pasahitza bidaltzeak\" huts egin du ez dagoelako Nextcloud Talk gaituta fitxategi edo karpeta bat partekatzeko.", "shared by %s" : "%s erabiltzaileak partekatua", "Download all files" : "Deskargatu fitxategi guztiak", diff --git a/apps/files_sharing/l10n/eu.json b/apps/files_sharing/l10n/eu.json index 316b965dda5..7a64bb164d6 100644 --- a/apps/files_sharing/l10n/eu.json +++ b/apps/files_sharing/l10n/eu.json @@ -99,6 +99,7 @@ "Wrong share ID, share doesn't exist" : "Partekatze ID okerra, partekatzea ez da existitzen", "Could not delete share" : "Ezin izan da partekatzea ezabatu", "Please specify a file or folder path" : "Zehaztu fitxategi edo karpetaren bide bat", + "Wrong path, file/folder does not exist" : "Bide okerra, fitxategia/karpeta ez da existitzen", "Could not create share" : "Ezin izan da partekatzea sortu", "Invalid permissions" : "Baimen baliogabeak", "Please specify a valid user" : "Zehaztu baliozko erabiltzaile bat", @@ -121,7 +122,6 @@ "Could not lock path" : "Ezin izan da bidea blokeatu", "Wrong or no update parameter given" : "Eguneraketa parametrorik ez da eman edo okerra da", "Share must at least have READ or CREATE permissions" : "Partekatzeak gutxienez IRAKURRI edo SORTU egiteko baimenak behar ditu", - "Share must have READ permission if UPDATE or DELETE permission is set." : "Partekatzeak IRAKURRI egiteko baimenak behar ditu, EGUNERATU edo EZABATU baimenak baldin badauzka.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Nextcloud Talk-ek pasahitza bidaltzeak\" huts egin du ez dagoelako Nextcloud Talk gaituta fitxategi edo karpeta bat partekatzeko.", "shared by %s" : "%s erabiltzaileak partekatua", "Download all files" : "Deskargatu fitxategi guztiak", diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js index 6a57a95dfaf..ff4480866e0 100644 --- a/apps/files_sharing/l10n/fr.js +++ b/apps/files_sharing/l10n/fr.js @@ -123,7 +123,6 @@ OC.L10N.register( "Could not lock path" : "Impossible de verrouiller le chemin", "Wrong or no update parameter given" : "Mauvais ou aucun paramètre donné ", "Share must at least have READ or CREATE permissions" : "Le partage nécessite de disposer à minima des permissions de LECTURE et de CREATION", - "Share must have READ permission if UPDATE or DELETE permission is set." : "Le partage nécessite de disposer de la permission de LECTURE si les permissions de MODIFICATION et SUPPRESSION sont définies", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"L'envoi du mot de passe par Nextcloud Talk\" pour partager un fichier a échoué car Nextcloud Talk n'est pas activé", "shared by %s" : "partagé par %s", "Download all files" : "Télécharger tous les fichiers", diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json index af86ece4acc..bec5504c88d 100644 --- a/apps/files_sharing/l10n/fr.json +++ b/apps/files_sharing/l10n/fr.json @@ -121,7 +121,6 @@ "Could not lock path" : "Impossible de verrouiller le chemin", "Wrong or no update parameter given" : "Mauvais ou aucun paramètre donné ", "Share must at least have READ or CREATE permissions" : "Le partage nécessite de disposer à minima des permissions de LECTURE et de CREATION", - "Share must have READ permission if UPDATE or DELETE permission is set." : "Le partage nécessite de disposer de la permission de LECTURE si les permissions de MODIFICATION et SUPPRESSION sont définies", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"L'envoi du mot de passe par Nextcloud Talk\" pour partager un fichier a échoué car Nextcloud Talk n'est pas activé", "shared by %s" : "partagé par %s", "Download all files" : "Télécharger tous les fichiers", diff --git a/apps/files_sharing/l10n/hu.js b/apps/files_sharing/l10n/hu.js index 9539e51ffb0..68058b83832 100644 --- a/apps/files_sharing/l10n/hu.js +++ b/apps/files_sharing/l10n/hu.js @@ -101,6 +101,7 @@ OC.L10N.register( "Wrong share ID, share doesn't exist" : "Hibás megosztási azonosító, a megosztás nem létezik", "Could not delete share" : "A megosztás nem törölhető", "Please specify a file or folder path" : "Adjon meg egy fájl- vagy mappaútvonalat", + "Wrong path, file/folder does not exist" : "Hibás útvonal, a fájl/mappa nem létezik", "Could not create share" : "A megosztás nem hozható létre", "Invalid permissions" : "Érvénytelen jogosultságok", "Please specify a valid user" : "Adjon meg egy érvényes felhasználót", @@ -123,7 +124,6 @@ OC.L10N.register( "Could not lock path" : "Nem sikerült zárolni az útvonalat", "Wrong or no update parameter given" : "Hibás vagy üres frissítési paraméter", "Share must at least have READ or CREATE permissions" : "A megosztásnak legalább OLVASÁSI és LÉTREHOZÁSI engedéllyel kell rendelkeznie", - "Share must have READ permission if UPDATE or DELETE permission is set." : "A megosztásnak OLVASÁSI jogosultsággal kell rendelkeznie, ha a FRISSÍTÉSI vagy TÖRLÉSI jogosultság meg van adva.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "A „Jelszó kiküldése a Nextcloud Beszélgetéssel” nem sikerült a fájlnál vagy mappánál, mert a Nextcloud Beszélgetés nem engedélyezett.", "shared by %s" : "megosztotta: %s", "Download all files" : "Összes fájl letöltése", diff --git a/apps/files_sharing/l10n/hu.json b/apps/files_sharing/l10n/hu.json index b76f8830fdd..fa7077dfbde 100644 --- a/apps/files_sharing/l10n/hu.json +++ b/apps/files_sharing/l10n/hu.json @@ -99,6 +99,7 @@ "Wrong share ID, share doesn't exist" : "Hibás megosztási azonosító, a megosztás nem létezik", "Could not delete share" : "A megosztás nem törölhető", "Please specify a file or folder path" : "Adjon meg egy fájl- vagy mappaútvonalat", + "Wrong path, file/folder does not exist" : "Hibás útvonal, a fájl/mappa nem létezik", "Could not create share" : "A megosztás nem hozható létre", "Invalid permissions" : "Érvénytelen jogosultságok", "Please specify a valid user" : "Adjon meg egy érvényes felhasználót", @@ -121,7 +122,6 @@ "Could not lock path" : "Nem sikerült zárolni az útvonalat", "Wrong or no update parameter given" : "Hibás vagy üres frissítési paraméter", "Share must at least have READ or CREATE permissions" : "A megosztásnak legalább OLVASÁSI és LÉTREHOZÁSI engedéllyel kell rendelkeznie", - "Share must have READ permission if UPDATE or DELETE permission is set." : "A megosztásnak OLVASÁSI jogosultsággal kell rendelkeznie, ha a FRISSÍTÉSI vagy TÖRLÉSI jogosultság meg van adva.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "A „Jelszó kiküldése a Nextcloud Beszélgetéssel” nem sikerült a fájlnál vagy mappánál, mert a Nextcloud Beszélgetés nem engedélyezett.", "shared by %s" : "megosztotta: %s", "Download all files" : "Összes fájl letöltése", diff --git a/apps/files_sharing/l10n/it.js b/apps/files_sharing/l10n/it.js index 584dc5046fb..7912a08ec42 100644 --- a/apps/files_sharing/l10n/it.js +++ b/apps/files_sharing/l10n/it.js @@ -123,7 +123,6 @@ OC.L10N.register( "Could not lock path" : "Impossibile bloccare il percorso", "Wrong or no update parameter given" : "Parametro fornito non valido o non di aggiornamento", "Share must at least have READ or CREATE permissions" : "La condivisione deve disporre almeno delle autorizzazioni READ o CREATE", - "Share must have READ permission if UPDATE or DELETE permission is set." : "La condivisione deve disporre dell'autorizzazione READ se l'autorizzazione è impostata su UPDATE o DELETE.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Invio della password da Nextcloud Talk\" per condividere un file o una cartella non è riuscito poiché Nextcloud Talk non è attivato.", "shared by %s" : "condiviso da %s", "Download all files" : "Scarica tutti i file", diff --git a/apps/files_sharing/l10n/it.json b/apps/files_sharing/l10n/it.json index cd120855ba7..a854a69ea99 100644 --- a/apps/files_sharing/l10n/it.json +++ b/apps/files_sharing/l10n/it.json @@ -121,7 +121,6 @@ "Could not lock path" : "Impossibile bloccare il percorso", "Wrong or no update parameter given" : "Parametro fornito non valido o non di aggiornamento", "Share must at least have READ or CREATE permissions" : "La condivisione deve disporre almeno delle autorizzazioni READ o CREATE", - "Share must have READ permission if UPDATE or DELETE permission is set." : "La condivisione deve disporre dell'autorizzazione READ se l'autorizzazione è impostata su UPDATE o DELETE.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Invio della password da Nextcloud Talk\" per condividere un file o una cartella non è riuscito poiché Nextcloud Talk non è attivato.", "shared by %s" : "condiviso da %s", "Download all files" : "Scarica tutti i file", diff --git a/apps/files_sharing/l10n/pl.js b/apps/files_sharing/l10n/pl.js index 0261570cb22..a38e873edbb 100644 --- a/apps/files_sharing/l10n/pl.js +++ b/apps/files_sharing/l10n/pl.js @@ -124,7 +124,6 @@ OC.L10N.register( "Could not lock path" : "Nie można zablokować ścieżki", "Wrong or no update parameter given" : "Brakujący lub błędny parametr aktualizacji", "Share must at least have READ or CREATE permissions" : "Udostępnienie musi mieć co najmniej uprawnienia do ODCZYTU lub TWORZENIA", - "Share must have READ permission if UPDATE or DELETE permission is set." : "Udostępnienie musi mieć uprawnienie do ODCZYTU, jeśli ustawiono uprawnienie do AKTUALIZACJI lub USUWANIA.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Wysyłanie hasła przez Nextcloud Talk\" w celu udostępnienia pliku lub katalogu nie powiodło się, ponieważ usługa Nextcloud Talk jest wyłączona.", "shared by %s" : "udostępnione przez %s", "Download all files" : "Pobierz wszystkie pliki", diff --git a/apps/files_sharing/l10n/pl.json b/apps/files_sharing/l10n/pl.json index 3aa92821fea..89a33e6022a 100644 --- a/apps/files_sharing/l10n/pl.json +++ b/apps/files_sharing/l10n/pl.json @@ -122,7 +122,6 @@ "Could not lock path" : "Nie można zablokować ścieżki", "Wrong or no update parameter given" : "Brakujący lub błędny parametr aktualizacji", "Share must at least have READ or CREATE permissions" : "Udostępnienie musi mieć co najmniej uprawnienia do ODCZYTU lub TWORZENIA", - "Share must have READ permission if UPDATE or DELETE permission is set." : "Udostępnienie musi mieć uprawnienie do ODCZYTU, jeśli ustawiono uprawnienie do AKTUALIZACJI lub USUWANIA.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Wysyłanie hasła przez Nextcloud Talk\" w celu udostępnienia pliku lub katalogu nie powiodło się, ponieważ usługa Nextcloud Talk jest wyłączona.", "shared by %s" : "udostępnione przez %s", "Download all files" : "Pobierz wszystkie pliki", diff --git a/apps/files_sharing/l10n/sk.js b/apps/files_sharing/l10n/sk.js index 9e20225c05e..8416798aea4 100644 --- a/apps/files_sharing/l10n/sk.js +++ b/apps/files_sharing/l10n/sk.js @@ -123,7 +123,6 @@ OC.L10N.register( "Could not lock path" : "Nie je možné uzamknúť cestu", "Wrong or no update parameter given" : "Zlý alebo žiadny zadaný parameter aktualizácie", "Share must at least have READ or CREATE permissions" : "Zdieľanie musí mať aspoň povolenia READ alebo CREATE", - "Share must have READ permission if UPDATE or DELETE permission is set." : "Ak je nastavené oprávnenie UPDATE alebo DELETE, zdieľanie musí mať povolenie READ.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Odoslanie hesla cez Nextcloud Talk\" pre zdieľanie súboru alebo priečinka zlyhalo, pretože Nextcloud Talk nie je zapnutý.", "shared by %s" : "Sprístupnil %s", "Download all files" : "Stiahnuť všetky súbory", diff --git a/apps/files_sharing/l10n/sk.json b/apps/files_sharing/l10n/sk.json index 91f5c491822..174c967f203 100644 --- a/apps/files_sharing/l10n/sk.json +++ b/apps/files_sharing/l10n/sk.json @@ -121,7 +121,6 @@ "Could not lock path" : "Nie je možné uzamknúť cestu", "Wrong or no update parameter given" : "Zlý alebo žiadny zadaný parameter aktualizácie", "Share must at least have READ or CREATE permissions" : "Zdieľanie musí mať aspoň povolenia READ alebo CREATE", - "Share must have READ permission if UPDATE or DELETE permission is set." : "Ak je nastavené oprávnenie UPDATE alebo DELETE, zdieľanie musí mať povolenie READ.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Odoslanie hesla cez Nextcloud Talk\" pre zdieľanie súboru alebo priečinka zlyhalo, pretože Nextcloud Talk nie je zapnutý.", "shared by %s" : "Sprístupnil %s", "Download all files" : "Stiahnuť všetky súbory", diff --git a/apps/files_sharing/l10n/sv.js b/apps/files_sharing/l10n/sv.js index 2a6c6c01a7d..c1de6977dcb 100644 --- a/apps/files_sharing/l10n/sv.js +++ b/apps/files_sharing/l10n/sv.js @@ -100,12 +100,12 @@ OC.L10N.register( "Shared link" : "Delad länk", "Wrong share ID, share doesn't exist" : "Fel delnings-ID, delningen finns inte", "Could not delete share" : "Kunde inte ta bort delningen", - "Please specify a file or folder path" : "Vänligen ange sökväg till filen eller mappen", + "Please specify a file or folder path" : "Ange sökväg till filen eller mappen", "Could not create share" : "Kunde inte skapa delning", "Invalid permissions" : "Ogiltiga behörigheter", - "Please specify a valid user" : "Vänligen ange en giltig användare", + "Please specify a valid user" : "Ange en giltig användare", "Group sharing is disabled by the administrator" : "Gruppdelning är avstängt", - "Please specify a valid group" : "Vänligen ange en giltig grupp", + "Please specify a valid group" : "Ange en giltig grupp", "Public link sharing is disabled by the administrator" : "Offentlig delningslänk är avstängt", "Public upload disabled by the administrator" : "Offentlig uppladdning är avstängt", "Public upload is only possible for publicly shared folders" : "Offentlig uppladdning fungerar endast i offentligt delade mappar", @@ -123,7 +123,6 @@ OC.L10N.register( "Could not lock path" : "Kunde inte låsa sökvägen", "Wrong or no update parameter given" : "Fel eller ingen uppdateringsparameter angiven", "Share must at least have READ or CREATE permissions" : "Delningen måste åtminstone ha LÄS- eller SKAPA-behörighet", - "Share must have READ permission if UPDATE or DELETE permission is set." : "Delningen måste ha LÄS-behörighet om ÄNDRA- eller RADERA-behörighet är inställd.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Skicka lösenord via Nextcloud Talk\" för att dela en fil eller mapp misslyckades eftersom Nextcloud Talk inte är aktiverat.", "shared by %s" : "delad av %s", "Download all files" : "Hämta alla filer", @@ -238,7 +237,7 @@ OC.L10N.register( "the item was removed" : "objektet togs bort", "the link expired" : "giltighet för länken har gått ut", "sharing is disabled" : "delning är inaktiverat", - "For more info, please ask the person who sent this link." : "För mer information, vänligen kontakta den person som skickade den här länken.", + "For more info, please ask the person who sent this link." : "För mer information, kontakta den person som skickade den här länken.", "Share note" : "Dela kommentar", "Toggle grid view" : "Växla rutnätsvy", "Upload files to %s" : "Ladda upp filer till %s", diff --git a/apps/files_sharing/l10n/sv.json b/apps/files_sharing/l10n/sv.json index f6407d56142..a5abfa7de4d 100644 --- a/apps/files_sharing/l10n/sv.json +++ b/apps/files_sharing/l10n/sv.json @@ -98,12 +98,12 @@ "Shared link" : "Delad länk", "Wrong share ID, share doesn't exist" : "Fel delnings-ID, delningen finns inte", "Could not delete share" : "Kunde inte ta bort delningen", - "Please specify a file or folder path" : "Vänligen ange sökväg till filen eller mappen", + "Please specify a file or folder path" : "Ange sökväg till filen eller mappen", "Could not create share" : "Kunde inte skapa delning", "Invalid permissions" : "Ogiltiga behörigheter", - "Please specify a valid user" : "Vänligen ange en giltig användare", + "Please specify a valid user" : "Ange en giltig användare", "Group sharing is disabled by the administrator" : "Gruppdelning är avstängt", - "Please specify a valid group" : "Vänligen ange en giltig grupp", + "Please specify a valid group" : "Ange en giltig grupp", "Public link sharing is disabled by the administrator" : "Offentlig delningslänk är avstängt", "Public upload disabled by the administrator" : "Offentlig uppladdning är avstängt", "Public upload is only possible for publicly shared folders" : "Offentlig uppladdning fungerar endast i offentligt delade mappar", @@ -121,7 +121,6 @@ "Could not lock path" : "Kunde inte låsa sökvägen", "Wrong or no update parameter given" : "Fel eller ingen uppdateringsparameter angiven", "Share must at least have READ or CREATE permissions" : "Delningen måste åtminstone ha LÄS- eller SKAPA-behörighet", - "Share must have READ permission if UPDATE or DELETE permission is set." : "Delningen måste ha LÄS-behörighet om ÄNDRA- eller RADERA-behörighet är inställd.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "\"Skicka lösenord via Nextcloud Talk\" för att dela en fil eller mapp misslyckades eftersom Nextcloud Talk inte är aktiverat.", "shared by %s" : "delad av %s", "Download all files" : "Hämta alla filer", @@ -236,7 +235,7 @@ "the item was removed" : "objektet togs bort", "the link expired" : "giltighet för länken har gått ut", "sharing is disabled" : "delning är inaktiverat", - "For more info, please ask the person who sent this link." : "För mer information, vänligen kontakta den person som skickade den här länken.", + "For more info, please ask the person who sent this link." : "För mer information, kontakta den person som skickade den här länken.", "Share note" : "Dela kommentar", "Toggle grid view" : "Växla rutnätsvy", "Upload files to %s" : "Ladda upp filer till %s", diff --git a/apps/files_sharing/l10n/tr.js b/apps/files_sharing/l10n/tr.js index 54e6a199e29..e10eaaac457 100644 --- a/apps/files_sharing/l10n/tr.js +++ b/apps/files_sharing/l10n/tr.js @@ -124,7 +124,6 @@ OC.L10N.register( "Could not lock path" : "Yol kilitlenemedi", "Wrong or no update parameter given" : "Parametre yanlış ya da herhangi bir parametre belirtilmemiş", "Share must at least have READ or CREATE permissions" : "Paylaşım için en az OKUMA ve OLUŞTURMA izinleri olmalıdır", - "Share must have READ permission if UPDATE or DELETE permission is set." : "Paylaşım için GÜNCELLEME ya da SİLME izinleri ayarlanmış ise en az OKUMA izni olmalıdır.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud Talk etkinleştirilmemiş olduğundan, paylaşım parolası Nextcloud Talk ile gönderilemedi.", "shared by %s" : "%s tarafından paylaşıldı", "Download all files" : "Tüm dosyaları indir", diff --git a/apps/files_sharing/l10n/tr.json b/apps/files_sharing/l10n/tr.json index f21f07124ad..ce993bb678c 100644 --- a/apps/files_sharing/l10n/tr.json +++ b/apps/files_sharing/l10n/tr.json @@ -122,7 +122,6 @@ "Could not lock path" : "Yol kilitlenemedi", "Wrong or no update parameter given" : "Parametre yanlış ya da herhangi bir parametre belirtilmemiş", "Share must at least have READ or CREATE permissions" : "Paylaşım için en az OKUMA ve OLUŞTURMA izinleri olmalıdır", - "Share must have READ permission if UPDATE or DELETE permission is set." : "Paylaşım için GÜNCELLEME ya da SİLME izinleri ayarlanmış ise en az OKUMA izni olmalıdır.", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "Nextcloud Talk etkinleştirilmemiş olduğundan, paylaşım parolası Nextcloud Talk ile gönderilemedi.", "shared by %s" : "%s tarafından paylaşıldı", "Download all files" : "Tüm dosyaları indir", diff --git a/apps/files_sharing/l10n/zh_HK.js b/apps/files_sharing/l10n/zh_HK.js index bd30be52a8f..3c8f9526a48 100644 --- a/apps/files_sharing/l10n/zh_HK.js +++ b/apps/files_sharing/l10n/zh_HK.js @@ -124,7 +124,6 @@ OC.L10N.register( "Could not lock path" : "無法鎖定路徑", "Wrong or no update parameter given" : "更新參數不正確或未提供", "Share must at least have READ or CREATE permissions" : "分享必須至少具有 READ 或 CREATE 權限", - "Share must have READ permission if UPDATE or DELETE permission is set." : "如果設置了 UPDATE 或 DELETE 權限,則分享必須具有 READ 權限。", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "“通過 Nextcloud Talk 發送密碼”共享檔案或資料夾失敗,因為 Nextcloud Talk 未啟用。", "shared by %s" : "分享自 %s", "Download all files" : "下載所有檔案", diff --git a/apps/files_sharing/l10n/zh_HK.json b/apps/files_sharing/l10n/zh_HK.json index 140bd797a8b..c2cd64d609e 100644 --- a/apps/files_sharing/l10n/zh_HK.json +++ b/apps/files_sharing/l10n/zh_HK.json @@ -122,7 +122,6 @@ "Could not lock path" : "無法鎖定路徑", "Wrong or no update parameter given" : "更新參數不正確或未提供", "Share must at least have READ or CREATE permissions" : "分享必須至少具有 READ 或 CREATE 權限", - "Share must have READ permission if UPDATE or DELETE permission is set." : "如果設置了 UPDATE 或 DELETE 權限,則分享必須具有 READ 權限。", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "“通過 Nextcloud Talk 發送密碼”共享檔案或資料夾失敗,因為 Nextcloud Talk 未啟用。", "shared by %s" : "分享自 %s", "Download all files" : "下載所有檔案", diff --git a/apps/files_sharing/l10n/zh_TW.js b/apps/files_sharing/l10n/zh_TW.js index 661445e743d..d756585a2f0 100644 --- a/apps/files_sharing/l10n/zh_TW.js +++ b/apps/files_sharing/l10n/zh_TW.js @@ -124,7 +124,6 @@ OC.L10N.register( "Could not lock path" : "無法鎖定路徑", "Wrong or no update parameter given" : "更新參數不正確或未提供", "Share must at least have READ or CREATE permissions" : "分享必須至少有 READ 或 CREATE 權限", - "Share must have READ permission if UPDATE or DELETE permission is set." : "若設定了 UPDATE 或 DELETE 權限,則分享必須有 READ 權限。", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "「透過 Nextcloud Talk 傳送密碼」分享檔案或資料夾失敗,因為未啟用 Nextcloud Talk。", "shared by %s" : "分享自 %s", "Download all files" : "下載所有檔案", diff --git a/apps/files_sharing/l10n/zh_TW.json b/apps/files_sharing/l10n/zh_TW.json index ec2124e9914..8496b415332 100644 --- a/apps/files_sharing/l10n/zh_TW.json +++ b/apps/files_sharing/l10n/zh_TW.json @@ -122,7 +122,6 @@ "Could not lock path" : "無法鎖定路徑", "Wrong or no update parameter given" : "更新參數不正確或未提供", "Share must at least have READ or CREATE permissions" : "分享必須至少有 READ 或 CREATE 權限", - "Share must have READ permission if UPDATE or DELETE permission is set." : "若設定了 UPDATE 或 DELETE 權限,則分享必須有 READ 權限。", "\"Sending the password by Nextcloud Talk\" for sharing a file or folder failed because Nextcloud Talk is not enabled." : "「透過 Nextcloud Talk 傳送密碼」分享檔案或資料夾失敗,因為未啟用 Nextcloud Talk。", "shared by %s" : "分享自 %s", "Download all files" : "下載所有檔案", diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php index 6375ee3d703..35a01ccdd61 100644 --- a/apps/files_sharing/lib/Controller/ShareAPIController.php +++ b/apps/files_sharing/lib/Controller/ShareAPIController.php @@ -1119,7 +1119,7 @@ class ShareAPIController extends OCSController { if (!$this->hasPermission($newPermissions, Constants::PERMISSION_READ) && ( $this->hasPermission($newPermissions, Constants::PERMISSION_UPDATE) || $this->hasPermission($newPermissions, Constants::PERMISSION_DELETE) )) { - throw new OCSBadRequestException($this->l->t('Share must have READ permission if UPDATE or DELETE permission is set.')); + throw new OCSBadRequestException($this->l->t('Share must have READ permission if UPDATE or DELETE permission is set')); } } diff --git a/apps/files_sharing/lib/External/Manager.php b/apps/files_sharing/lib/External/Manager.php index a8510321a5a..b9ed4acd57f 100644 --- a/apps/files_sharing/lib/External/Manager.php +++ b/apps/files_sharing/lib/External/Manager.php @@ -374,6 +374,7 @@ class Manager { $this->sendFeedbackToRemote($share['remote'], $share['share_token'], $share['remote_id'], 'accept'); $event = new FederatedShareAddedEvent($share['remote']); $this->eventDispatcher->dispatchTyped($event); + $this->eventDispatcher->dispatchTyped(new Files\Events\InvalidateMountCacheEvent($this->userManager->get($this->uid))); $result = true; } } @@ -596,6 +597,8 @@ class Manager { '); $result = (bool)$query->execute([$target, $targetHash, $sourceHash, $this->uid]); + $this->eventDispatcher->dispatchTyped(new Files\Events\InvalidateMountCacheEvent($this->userManager->get($this->uid))); + return $result; } diff --git a/apps/files_sharing/lib/MountProvider.php b/apps/files_sharing/lib/MountProvider.php index 102e5d96559..27edf5074e1 100644 --- a/apps/files_sharing/lib/MountProvider.php +++ b/apps/files_sharing/lib/MountProvider.php @@ -134,7 +134,9 @@ class MountProvider implements IMountProvider { ], $loader, $view, - $foldersExistCache + $foldersExistCache, + $this->eventDispatcher, + $user ); $event = new ShareMountedEvent($mount); diff --git a/apps/files_sharing/lib/SharedMount.php b/apps/files_sharing/lib/SharedMount.php index c8f5d0f64ae..60361e25fd0 100644 --- a/apps/files_sharing/lib/SharedMount.php +++ b/apps/files_sharing/lib/SharedMount.php @@ -34,7 +34,9 @@ use OC\Files\Mount\MountPoint; use OC\Files\Mount\MoveableMount; use OC\Files\View; use OCP\EventDispatcher\IEventDispatcher; +use OCP\Files\Events\InvalidateMountCacheEvent; use OCP\Files\Storage\IStorageFactory; +use OCP\IUser; use OCP\Share\Events\VerifyMountPointEvent; /** @@ -51,10 +53,7 @@ class SharedMount extends MountPoint implements MoveableMount { */ private $recipientView; - /** - * @var string - */ - private $user; + private IUser $user; /** @var \OCP\Share\IShare */ private $superShare; @@ -62,22 +61,27 @@ class SharedMount extends MountPoint implements MoveableMount { /** @var \OCP\Share\IShare[] */ private $groupedShares; - /** - * @param string $storage - * @param SharedMount[] $mountpoints - * @param array $arguments - * @param IStorageFactory $loader - * @param View $recipientView - */ - public function __construct($storage, array $mountpoints, $arguments, IStorageFactory $loader, View $recipientView, CappedMemoryCache $folderExistCache) { - $this->user = $arguments['user']; + private IEventDispatcher $eventDispatcher; + + public function __construct( + $storage, + array $mountpoints, + $arguments, + IStorageFactory $loader, + View $recipientView, + CappedMemoryCache $folderExistCache, + IEventDispatcher $eventDispatcher, + IUser $user + ) { + $this->user = $user; $this->recipientView = $recipientView; + $this->eventDispatcher = $eventDispatcher; $this->superShare = $arguments['superShare']; $this->groupedShares = $arguments['groupedShares']; $newMountPoint = $this->verifyMountPoint($this->superShare, $mountpoints, $folderExistCache); - $absMountPoint = '/' . $this->user . '/files' . $newMountPoint; + $absMountPoint = '/' . $user->getUID() . '/files' . $newMountPoint; parent::__construct($storage, $absMountPoint, $arguments, $loader, null, null, MountProvider::class); } @@ -93,9 +97,7 @@ class SharedMount extends MountPoint implements MoveableMount { $parent = dirname($share->getTarget()); $event = new VerifyMountPointEvent($share, $this->recipientView, $parent); - /** @var IEventDispatcher $dispatcher */ - $dispatcher = \OC::$server->query(IEventDispatcher::class); - $dispatcher->dispatchTyped($event); + $this->eventDispatcher->dispatchTyped($event); $parent = $event->getParent(); if ($folderExistCache->hasKey($parent)) { @@ -105,7 +107,7 @@ class SharedMount extends MountPoint implements MoveableMount { $folderExistCache->set($parent, $parentExists); } if (!$parentExists) { - $parent = Helper::getShareFolder($this->recipientView, $this->user); + $parent = Helper::getShareFolder($this->recipientView, $this->user->getUID()); } $newMountPoint = $this->generateUniqueTarget( @@ -133,8 +135,10 @@ class SharedMount extends MountPoint implements MoveableMount { foreach ($this->groupedShares as $tmpShare) { $tmpShare->setTarget($newPath); - \OC::$server->getShareManager()->moveShare($tmpShare, $this->user); + \OC::$server->getShareManager()->moveShare($tmpShare, $this->user->getUID()); } + + $this->eventDispatcher->dispatchTyped(new InvalidateMountCacheEvent($this->user)); } diff --git a/apps/files_sharing/tests/CapabilitiesTest.php b/apps/files_sharing/tests/CapabilitiesTest.php index 01ef13a3e6c..093a04052b1 100644 --- a/apps/files_sharing/tests/CapabilitiesTest.php +++ b/apps/files_sharing/tests/CapabilitiesTest.php @@ -37,7 +37,6 @@ use OCP\Files\Mount\IMountManager; use OCP\IConfig; use OCP\IGroupManager; use OCP\IL10N; -use OCP\ILogger; use OCP\IURLGenerator; use OCP\IUserManager; use OCP\IUserSession; @@ -46,6 +45,7 @@ use OCP\Mail\IMailer; use OCP\Security\IHasher; use OCP\Security\ISecureRandom; use OCP\Share\IProviderFactory; +use Psr\Log\LoggerInterface; use Symfony\Component\EventDispatcher\EventDispatcherInterface; /** @@ -79,7 +79,7 @@ class CapabilitiesTest extends \Test\TestCase { $config = $this->getMockBuilder(IConfig::class)->disableOriginalConstructor()->getMock(); $config->method('getAppValue')->willReturnMap($map); $shareManager = new Manager( - $this->createMock(ILogger::class), + $this->createMock(LoggerInterface::class), $config, $this->createMock(ISecureRandom::class), $this->createMock(IHasher::class), diff --git a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php index 324862a746d..c7c2b6d8757 100644 --- a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php +++ b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php @@ -2881,7 +2881,7 @@ class ShareAPIControllerTest extends TestCase { */ public function testUpdateLinkShareSetInvalidCRUDPermissions2($permissions) { $this->expectException(\OCP\AppFramework\OCS\OCSBadRequestException::class); - $this->expectExceptionMessage('Share must have READ permission if UPDATE or DELETE permission is set.'); + $this->expectExceptionMessage('Share must have READ permission if UPDATE or DELETE permission is set'); $this->testUpdateLinkShareSetCRUDPermissions($permissions); } diff --git a/apps/files_trashbin/composer/composer/InstalledVersions.php b/apps/files_trashbin/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/files_trashbin/composer/composer/InstalledVersions.php +++ b/apps/files_trashbin/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/files_trashbin/composer/composer/autoload_classmap.php b/apps/files_trashbin/composer/composer/autoload_classmap.php index dbafba14048..7ce7e565c83 100644 --- a/apps/files_trashbin/composer/composer/autoload_classmap.php +++ b/apps/files_trashbin/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( @@ -43,4 +43,5 @@ return array( 'OCA\\Files_Trashbin\\Trash\\TrashItem' => $baseDir . '/../lib/Trash/TrashItem.php', 'OCA\\Files_Trashbin\\Trash\\TrashManager' => $baseDir . '/../lib/Trash/TrashManager.php', 'OCA\\Files_Trashbin\\Trashbin' => $baseDir . '/../lib/Trashbin.php', + 'OCA\\Files_Trashbin\\UserMigration\\TrashbinMigrator' => $baseDir . '/../lib/UserMigration/TrashbinMigrator.php', ); diff --git a/apps/files_trashbin/composer/composer/autoload_namespaces.php b/apps/files_trashbin/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/files_trashbin/composer/composer/autoload_namespaces.php +++ b/apps/files_trashbin/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/files_trashbin/composer/composer/autoload_psr4.php b/apps/files_trashbin/composer/composer/autoload_psr4.php index f7585c671e1..13d8f92a72c 100644 --- a/apps/files_trashbin/composer/composer/autoload_psr4.php +++ b/apps/files_trashbin/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/files_trashbin/composer/composer/autoload_real.php b/apps/files_trashbin/composer/composer/autoload_real.php index 35ef7fdcfa7..b9a42591b0c 100644 --- a/apps/files_trashbin/composer/composer/autoload_real.php +++ b/apps/files_trashbin/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitFiles_Trashbin } spl_autoload_register(array('ComposerAutoloaderInitFiles_Trashbin', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitFiles_Trashbin', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitFiles_Trashbin::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitFiles_Trashbin::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/files_trashbin/composer/composer/autoload_static.php b/apps/files_trashbin/composer/composer/autoload_static.php index e759b34d356..2f6d1936a28 100644 --- a/apps/files_trashbin/composer/composer/autoload_static.php +++ b/apps/files_trashbin/composer/composer/autoload_static.php @@ -58,6 +58,7 @@ class ComposerStaticInitFiles_Trashbin 'OCA\\Files_Trashbin\\Trash\\TrashItem' => __DIR__ . '/..' . '/../lib/Trash/TrashItem.php', 'OCA\\Files_Trashbin\\Trash\\TrashManager' => __DIR__ . '/..' . '/../lib/Trash/TrashManager.php', 'OCA\\Files_Trashbin\\Trashbin' => __DIR__ . '/..' . '/../lib/Trashbin.php', + 'OCA\\Files_Trashbin\\UserMigration\\TrashbinMigrator' => __DIR__ . '/..' . '/../lib/UserMigration/TrashbinMigrator.php', ); public static function getInitializer(ClassLoader $loader) diff --git a/apps/files_trashbin/l10n/sv.js b/apps/files_trashbin/l10n/sv.js index 2a7da65340d..bad8f014050 100644 --- a/apps/files_trashbin/l10n/sv.js +++ b/apps/files_trashbin/l10n/sv.js @@ -13,7 +13,7 @@ OC.L10N.register( "Error while emptying trash bin" : "Fel vid tömning av papperskorgen", "Error while removing files from trash bin" : "Fel vid borttagning av filer från papperskorgen", "This operation is forbidden" : "Denna åtgärd är förbjuden", - "This directory is unavailable, please check the logs or contact the administrator" : "Denna katalog är inte tillgänglig, vänligen kontrollera loggarna eller kontakta administratören", + "This directory is unavailable, please check the logs or contact the administrator" : "Denna katalog är inte tillgänglig, kontrollera loggarna eller kontakta administratören", "No deleted files" : "Inga borttagna filer", "You will be able to recover deleted files from here" : "Du kommer kunna återskapa borttagna filer härifrån", "No entries found in this folder" : "Inga filer hittades i denna mapp", diff --git a/apps/files_trashbin/l10n/sv.json b/apps/files_trashbin/l10n/sv.json index 0ea84f83f8b..dcaf229bd4e 100644 --- a/apps/files_trashbin/l10n/sv.json +++ b/apps/files_trashbin/l10n/sv.json @@ -11,7 +11,7 @@ "Error while emptying trash bin" : "Fel vid tömning av papperskorgen", "Error while removing files from trash bin" : "Fel vid borttagning av filer från papperskorgen", "This operation is forbidden" : "Denna åtgärd är förbjuden", - "This directory is unavailable, please check the logs or contact the administrator" : "Denna katalog är inte tillgänglig, vänligen kontrollera loggarna eller kontakta administratören", + "This directory is unavailable, please check the logs or contact the administrator" : "Denna katalog är inte tillgänglig, kontrollera loggarna eller kontakta administratören", "No deleted files" : "Inga borttagna filer", "You will be able to recover deleted files from here" : "Du kommer kunna återskapa borttagna filer härifrån", "No entries found in this folder" : "Inga filer hittades i denna mapp", diff --git a/apps/files_trashbin/lib/AppInfo/Application.php b/apps/files_trashbin/lib/AppInfo/Application.php index 5f56b9ba1ea..41466a865ac 100644 --- a/apps/files_trashbin/lib/AppInfo/Application.php +++ b/apps/files_trashbin/lib/AppInfo/Application.php @@ -30,17 +30,20 @@ use OCA\Files_Trashbin\Capabilities; use OCA\Files_Trashbin\Expiration; use OCA\Files_Trashbin\Trash\ITrashManager; use OCA\Files_Trashbin\Trash\TrashManager; -use OCP\App\IAppManager; +use OCA\Files_Trashbin\UserMigration\TrashbinMigrator; use OCP\AppFramework\App; use OCP\AppFramework\Bootstrap\IBootContext; use OCP\AppFramework\Bootstrap\IBootstrap; use OCP\AppFramework\Bootstrap\IRegistrationContext; +use OCP\App\IAppManager; use OCP\ILogger; use OCP\IServerContainer; class Application extends App implements IBootstrap { + public const APP_ID = 'files_trashbin'; + public function __construct(array $urlParams = []) { - parent::__construct('files_trashbin', $urlParams); + parent::__construct(self::APP_ID, $urlParams); } public function register(IRegistrationContext $context): void { @@ -50,6 +53,8 @@ class Application extends App implements IBootstrap { $context->registerServiceAlias(ITrashManager::class, TrashManager::class); /** Register $principalBackend for the DAV collection */ $context->registerServiceAlias('principalBackend', Principal::class); + + $context->registerUserMigrator(TrashbinMigrator::class); } public function boot(IBootContext $context): void { @@ -65,10 +70,10 @@ class Application extends App implements IBootstrap { \OCP\Util::connectHook('OC_Filesystem', 'delete', 'OCA\Files_Trashbin\Trashbin', 'ensureFileScannedHook'); \OCA\Files\App::getNavigationManager()->add(function () { - $l = \OC::$server->getL10N('files_trashbin'); + $l = \OC::$server->getL10N(self::APP_ID); return [ 'id' => 'trashbin', - 'appname' => 'files_trashbin', + 'appname' => self::APP_ID, 'script' => 'list.php', 'order' => 50, 'name' => $l->t('Deleted files'), diff --git a/apps/files_trashbin/lib/Trashbin.php b/apps/files_trashbin/lib/Trashbin.php index 6aec2f9821e..4631f9e9d5b 100644 --- a/apps/files_trashbin/lib/Trashbin.php +++ b/apps/files_trashbin/lib/Trashbin.php @@ -60,6 +60,7 @@ use OCP\Files\NotFoundException; use OCP\Files\NotPermittedException; use OCP\Lock\ILockingProvider; use OCP\Lock\LockedException; +use Psr\Log\LoggerInterface; class Trashbin { @@ -227,7 +228,7 @@ class Trashbin { ->setValue('user', $query->createNamedParameter($user)); $result = $query->executeStatement(); if (!$result) { - \OC::$server->getLogger()->error('trash bin database couldn\'t be updated for the files owner', ['app' => 'files_trashbin']); + \OC::$server->get(LoggerInterface::class)->error('trash bin database couldn\'t be updated for the files owner', ['app' => 'files_trashbin']); } } } @@ -326,7 +327,7 @@ class Trashbin { if ($trashStorage->file_exists($trashInternalPath)) { $trashStorage->unlink($trashInternalPath); } - \OC::$server->getLogger()->error('Couldn\'t move ' . $file_path . ' to the trash bin', ['app' => 'files_trashbin']); + \OC::$server->get(LoggerInterface::class)->error('Couldn\'t move ' . $file_path . ' to the trash bin', ['app' => 'files_trashbin']); } if ($sourceStorage->file_exists($sourceInternalPath)) { // failed to delete the original file, abort @@ -354,7 +355,7 @@ class Trashbin { ->setValue('user', $query->createNamedParameter($owner)); $result = $query->executeStatement(); if (!$result) { - \OC::$server->getLogger()->error('trash bin database couldn\'t be updated', ['app' => 'files_trashbin']); + \OC::$server->get(LoggerInterface::class)->error('trash bin database couldn\'t be updated', ['app' => 'files_trashbin']); } \OCP\Util::emitHook('\OCA\Files_Trashbin\Trashbin', 'post_moveToTrash', ['filePath' => Filesystem::normalizePath($file_path), 'trashPath' => Filesystem::normalizePath($filename . '.d' . $timestamp)]); @@ -470,7 +471,7 @@ class Trashbin { if ($timestamp) { $location = self::getLocation($user, $filename, $timestamp); if ($location === false) { - \OC::$server->getLogger()->error('trash bin database inconsistent! ($user: ' . $user . ' $filename: ' . $filename . ', $timestamp: ' . $timestamp . ')', ['app' => 'files_trashbin']); + \OC::$server->get(LoggerInterface::class)->error('trash bin database inconsistent! ($user: ' . $user . ' $filename: ' . $filename . ', $timestamp: ' . $timestamp . ')', ['app' => 'files_trashbin']); } else { // if location no longer exists, restore file in the root directory if ($location !== '/' && @@ -870,7 +871,7 @@ class Trashbin { foreach ($files as $file) { if ($availableSpace < 0 && $expiration->isExpired($file['mtime'], true)) { $tmp = self::delete($file['name'], $user, $file['mtime']); - \OC::$server->getLogger()->info('remove "' . $file['name'] . '" (' . $tmp . 'B) to meet the limit of trash bin size (50% of available quota)', ['app' => 'files_trashbin']); + \OC::$server->get(LoggerInterface::class)->info('remove "' . $file['name'] . '" (' . $tmp . 'B) to meet the limit of trash bin size (50% of available quota)', ['app' => 'files_trashbin']); $availableSpace += $tmp; $size += $tmp; } else { @@ -901,9 +902,14 @@ class Trashbin { $size += self::delete($filename, $user, $timestamp); $count++; } catch (\OCP\Files\NotPermittedException $e) { - \OC::$server->getLogger()->logException($e, ['app' => 'files_trashbin', 'level' => \OCP\ILogger::WARN, 'message' => 'Removing "' . $filename . '" from trashbin failed.']); + \OC::$server->get(LoggerInterface::class)->warning('Removing "' . $filename . '" from trashbin failed.', + [ + 'exception' => $e, + 'app' => 'files_trashbin', + ] + ); } - \OC::$server->getLogger()->info( + \OC::$server->get(LoggerInterface::class)->info( 'Remove "' . $filename . '" from trashbin because it exceeds max retention obligation term.', ['app' => 'files_trashbin'] ); @@ -999,7 +1005,7 @@ class Trashbin { $query = new CacheQueryBuilder( \OC::$server->getDatabaseConnection(), \OC::$server->getSystemConfig(), - \OC::$server->getLogger() + \OC::$server->get(LoggerInterface::class) ); $normalizedParentPath = ltrim(Filesystem::normalizePath(dirname('files_trashbin/versions/'. $filename)), '/'); $parentId = $cache->getId($normalizedParentPath); diff --git a/apps/files_trashbin/lib/UserMigration/TrashbinMigrator.php b/apps/files_trashbin/lib/UserMigration/TrashbinMigrator.php new file mode 100644 index 00000000000..0aa41c1954f --- /dev/null +++ b/apps/files_trashbin/lib/UserMigration/TrashbinMigrator.php @@ -0,0 +1,137 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright Copyright (c) 2022 Côme Chilliet <come.chilliet@nextcloud.com> + * + * @author Côme Chilliet <come.chilliet@nextcloud.com> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\Files_Trashbin\UserMigration; + +use OCA\Files_Trashbin\AppInfo\Application; +use OCP\Files\Folder; +use OCP\Files\IRootFolder; +use OCP\Files\NotFoundException; +use OCP\IDBConnection; +use OCP\IUser; +use OCP\UserMigration\IExportDestination; +use OCP\UserMigration\IImportSource; +use OCP\UserMigration\IMigrator; +use OCP\UserMigration\TMigratorBasicVersionHandling; +use OCP\UserMigration\UserMigrationException; +use Symfony\Component\Console\Output\OutputInterface; + +class TrashbinMigrator implements IMigrator { + + use TMigratorBasicVersionHandling; + + protected const PATH_FILES_FOLDER = Application::APP_ID.'/files'; + protected const PATH_LOCATIONS_FILE = Application::APP_ID.'/locations.json'; + + protected IRootFolder $root; + + protected IDBConnection $dbc; + + public function __construct( + IRootFolder $rootFolder, + IDBConnection $dbc + ) { + $this->root = $rootFolder; + $this->dbc = $dbc; + } + + /** + * {@inheritDoc} + */ + public function export(IUser $user, IExportDestination $exportDestination, OutputInterface $output): void { + $output->writeln('Exporting trashbin into ' . Application::APP_ID . '…'); + + $uid = $user->getUID(); + + try { + $trashbinFolder = $this->root->get('/'.$uid.'/files_trashbin'); + if (!$trashbinFolder instanceof Folder) { + throw new UserMigrationException('Could not export trashbin, /'.$uid.'/files_trashbin is not a folder'); + } + $output->writeln("Exporting trashbin files…"); + if ($exportDestination->copyFolder($trashbinFolder, static::PATH_FILES_FOLDER) === false) { + throw new UserMigrationException("Could not export trashbin."); + } + $originalLocations = \OCA\Files_Trashbin\Trashbin::getLocations($uid); + if ($exportDestination->addFileContents(static::PATH_LOCATIONS_FILE, json_encode($originalLocations)) === false) { + throw new UserMigrationException("Could not export trashbin."); + } + } catch (NotFoundException $e) { + $output->writeln("No trashbin to export…"); + } + } + + /** + * {@inheritDoc} + */ + public function import(IUser $user, IImportSource $importSource, OutputInterface $output): void { + if ($importSource->getMigratorVersion(static::class) === null) { + $output->writeln('No version for ' . static::class . ', skipping import…'); + return; + } + + $output->writeln('Importing trashbin from ' . Application::APP_ID . '…'); + + $uid = $user->getUID(); + + if ($importSource->pathExists(static::PATH_FILES_FOLDER)) { + try { + $trashbinFolder = $this->root->get('/'.$uid.'/files_trashbin'); + if (!$trashbinFolder instanceof Folder) { + throw new UserMigrationException('Could not import trashbin, /'.$uid.'/files_trashbin is not a folder'); + } + } catch (NotFoundException $e) { + $trashbinFolder = $this->root->newFolder('/'.$uid.'/files_trashbin'); + } + $output->writeln("Importing trashbin files…"); + if ($importSource->copyToFolder($trashbinFolder, static::PATH_FILES_FOLDER) === false) { + throw new UserMigrationException("Could not import trashbin."); + } + $locations = json_decode($importSource->getFileContents(static::PATH_LOCATIONS_FILE), true, 512, JSON_THROW_ON_ERROR); + $qb = $this->dbc->getQueryBuilder(); + $qb->insert('files_trash') + ->values([ + 'id' => $qb->createParameter('id'), + 'timestamp' => $qb->createParameter('timestamp'), + 'location' => $qb->createParameter('location'), + 'user' => $qb->createNamedParameter($uid), + ]); + foreach ($locations as $id => $fileLocations) { + foreach ($fileLocations as $timestamp => $location) { + $qb + ->setParameter('id', $id) + ->setParameter('timestamp', $timestamp) + ->setParameter('location', $location) + ; + + $qb->executeStatement(); + } + } + } else { + $output->writeln("No trashbin to import…"); + } + } +} diff --git a/apps/files_versions/composer/composer/InstalledVersions.php b/apps/files_versions/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/files_versions/composer/composer/InstalledVersions.php +++ b/apps/files_versions/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/files_versions/composer/composer/autoload_classmap.php b/apps/files_versions/composer/composer/autoload_classmap.php index 324866700f4..43b678ef39c 100644 --- a/apps/files_versions/composer/composer/autoload_classmap.php +++ b/apps/files_versions/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/files_versions/composer/composer/autoload_namespaces.php b/apps/files_versions/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/files_versions/composer/composer/autoload_namespaces.php +++ b/apps/files_versions/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/files_versions/composer/composer/autoload_psr4.php b/apps/files_versions/composer/composer/autoload_psr4.php index 09bc4395cfd..9630dd45b5a 100644 --- a/apps/files_versions/composer/composer/autoload_psr4.php +++ b/apps/files_versions/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/files_versions/composer/composer/autoload_real.php b/apps/files_versions/composer/composer/autoload_real.php index 7048e07160a..e9e2ad95149 100644 --- a/apps/files_versions/composer/composer/autoload_real.php +++ b/apps/files_versions/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitFiles_Versions } spl_autoload_register(array('ComposerAutoloaderInitFiles_Versions', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitFiles_Versions', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitFiles_Versions::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitFiles_Versions::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/lookup_server_connector/composer/composer/InstalledVersions.php b/apps/lookup_server_connector/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/lookup_server_connector/composer/composer/InstalledVersions.php +++ b/apps/lookup_server_connector/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/lookup_server_connector/composer/composer/autoload_classmap.php b/apps/lookup_server_connector/composer/composer/autoload_classmap.php index ada33bc3340..2028c0ebfc7 100644 --- a/apps/lookup_server_connector/composer/composer/autoload_classmap.php +++ b/apps/lookup_server_connector/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/lookup_server_connector/composer/composer/autoload_namespaces.php b/apps/lookup_server_connector/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/lookup_server_connector/composer/composer/autoload_namespaces.php +++ b/apps/lookup_server_connector/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/lookup_server_connector/composer/composer/autoload_psr4.php b/apps/lookup_server_connector/composer/composer/autoload_psr4.php index 1532b4d9c52..654eeac0616 100644 --- a/apps/lookup_server_connector/composer/composer/autoload_psr4.php +++ b/apps/lookup_server_connector/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/lookup_server_connector/composer/composer/autoload_real.php b/apps/lookup_server_connector/composer/composer/autoload_real.php index 3f635cf99aa..798f093c6e8 100644 --- a/apps/lookup_server_connector/composer/composer/autoload_real.php +++ b/apps/lookup_server_connector/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitLookupServerConnector } spl_autoload_register(array('ComposerAutoloaderInitLookupServerConnector', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitLookupServerConnector', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitLookupServerConnector::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitLookupServerConnector::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/lookup_server_connector/l10n/fi.js b/apps/lookup_server_connector/l10n/fi.js new file mode 100644 index 00000000000..f9f3ed3bd5a --- /dev/null +++ b/apps/lookup_server_connector/l10n/fi.js @@ -0,0 +1,7 @@ +OC.L10N.register( + "lookup_server_connector", + { + "Lookup Server Connector" : "Hakemistopalvelin yhdistäjä", + "Sync public user information with the lookup server" : "Synkronoi julkinen käyttäjätieto hakemistopalvelimen kanssa" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/lookup_server_connector/l10n/fi.json b/apps/lookup_server_connector/l10n/fi.json new file mode 100644 index 00000000000..e8013ca2ab8 --- /dev/null +++ b/apps/lookup_server_connector/l10n/fi.json @@ -0,0 +1,5 @@ +{ "translations": { + "Lookup Server Connector" : "Hakemistopalvelin yhdistäjä", + "Sync public user information with the lookup server" : "Synkronoi julkinen käyttäjätieto hakemistopalvelimen kanssa" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/oauth2/composer/composer/InstalledVersions.php b/apps/oauth2/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/oauth2/composer/composer/InstalledVersions.php +++ b/apps/oauth2/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/oauth2/composer/composer/autoload_classmap.php b/apps/oauth2/composer/composer/autoload_classmap.php index 210d5073182..d760d7cd579 100644 --- a/apps/oauth2/composer/composer/autoload_classmap.php +++ b/apps/oauth2/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/oauth2/composer/composer/autoload_namespaces.php b/apps/oauth2/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/oauth2/composer/composer/autoload_namespaces.php +++ b/apps/oauth2/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/oauth2/composer/composer/autoload_psr4.php b/apps/oauth2/composer/composer/autoload_psr4.php index 1164638c634..6c3c791a23c 100644 --- a/apps/oauth2/composer/composer/autoload_psr4.php +++ b/apps/oauth2/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/oauth2/composer/composer/autoload_real.php b/apps/oauth2/composer/composer/autoload_real.php index 7a5c7fdcaf5..4d9e729ac26 100644 --- a/apps/oauth2/composer/composer/autoload_real.php +++ b/apps/oauth2/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitOAuth2 } spl_autoload_register(array('ComposerAutoloaderInitOAuth2', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitOAuth2', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitOAuth2::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitOAuth2::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/oauth2/lib/Migration/Version010402Date20190107124745.php b/apps/oauth2/lib/Migration/Version010402Date20190107124745.php index ff9a628712a..b80e3a9575f 100644 --- a/apps/oauth2/lib/Migration/Version010402Date20190107124745.php +++ b/apps/oauth2/lib/Migration/Version010402Date20190107124745.php @@ -42,9 +42,12 @@ class Version010402Date20190107124745 extends SimpleMigrationStep { /** @var ISchemaWrapper $schema */ $schema = $schemaClosure(); - $table = $schema->getTable('oauth2_clients'); - $table->dropIndex('oauth2_client_id_idx'); - $table->addUniqueIndex(['client_identifier'], 'oauth2_client_id_idx'); - return $schema; + // During an ownCloud migration, the client_identifier column identifier might not exist yet. + if ($schema->getTable('oauth2_clients')->hasColumn('client_identifier')) { + $table = $schema->getTable('oauth2_clients'); + $table->dropIndex('oauth2_client_id_idx'); + $table->addUniqueIndex(['client_identifier'], 'oauth2_client_id_idx'); + return $schema; + } } } diff --git a/apps/provisioning_api/composer/composer/InstalledVersions.php b/apps/provisioning_api/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/provisioning_api/composer/composer/InstalledVersions.php +++ b/apps/provisioning_api/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/provisioning_api/composer/composer/autoload_classmap.php b/apps/provisioning_api/composer/composer/autoload_classmap.php index 447f92afc8d..7f840d39729 100644 --- a/apps/provisioning_api/composer/composer/autoload_classmap.php +++ b/apps/provisioning_api/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/provisioning_api/composer/composer/autoload_namespaces.php b/apps/provisioning_api/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/provisioning_api/composer/composer/autoload_namespaces.php +++ b/apps/provisioning_api/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/provisioning_api/composer/composer/autoload_psr4.php b/apps/provisioning_api/composer/composer/autoload_psr4.php index 46b5eb003d5..8b0d5ece1ad 100644 --- a/apps/provisioning_api/composer/composer/autoload_psr4.php +++ b/apps/provisioning_api/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/provisioning_api/composer/composer/autoload_real.php b/apps/provisioning_api/composer/composer/autoload_real.php index f5169309306..bada942777d 100644 --- a/apps/provisioning_api/composer/composer/autoload_real.php +++ b/apps/provisioning_api/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitProvisioning_API } spl_autoload_register(array('ComposerAutoloaderInitProvisioning_API', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitProvisioning_API', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitProvisioning_API::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitProvisioning_API::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/settings/composer/composer/InstalledVersions.php b/apps/settings/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/settings/composer/composer/InstalledVersions.php +++ b/apps/settings/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/settings/composer/composer/autoload_classmap.php b/apps/settings/composer/composer/autoload_classmap.php index bd092f3b401..baac88ea8c7 100644 --- a/apps/settings/composer/composer/autoload_classmap.php +++ b/apps/settings/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/settings/composer/composer/autoload_namespaces.php b/apps/settings/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/settings/composer/composer/autoload_namespaces.php +++ b/apps/settings/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/settings/composer/composer/autoload_psr4.php b/apps/settings/composer/composer/autoload_psr4.php index fc41cfe6d65..016839fc8b2 100644 --- a/apps/settings/composer/composer/autoload_psr4.php +++ b/apps/settings/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/settings/composer/composer/autoload_real.php b/apps/settings/composer/composer/autoload_real.php index 11f0c1cdd44..0e9941ee04d 100644 --- a/apps/settings/composer/composer/autoload_real.php +++ b/apps/settings/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitSettings } spl_autoload_register(array('ComposerAutoloaderInitSettings', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitSettings', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitSettings::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitSettings::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/settings/l10n/cs.js b/apps/settings/l10n/cs.js index aefa11d356e..ca5c492a917 100644 --- a/apps/settings/l10n/cs.js +++ b/apps/settings/l10n/cs.js @@ -67,6 +67,14 @@ OC.L10N.register( "Federated Cloud Sharing" : "Federované cloudové sdílení", "cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "cURL používá zastaralou verzi %1$s (%2$s). Aktualizujte operační systém jinak funkce jako například %3$s nebudou fungovat spolehlivě.", "Could not determine if TLS version of cURL is outdated or not because an error happened during the HTTPS request against https://nextcloud.com. Please check the nextcloud log file for more details." : "Nelze zjistit, zda je verze TLS cURL zastaralá nebo ne, protože během požadavku HTTPS na https://nextcloud.com došlo k chybě. Další podrobnosti najdete v souboru se záznamy událostí v Nextcloud.", + "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "PHP modul OPcache není načten. Pro lepší výkon je doporučeno načíst ho do vaší PHP instalace.", + "OPcache is disabled. For better performance, it is recommended to apply <code>opcache.enable=1</code> to your PHP configuration." : "OPcache je vypnuté. Pro lepší výkon je doporučeno přidat do nastavení PHP volbu <code>opcache.enable=1</code>.", + "OPcache is configured to remove code comments. With OPcache enabled, <code>opcache.save_comments=1</code> must be set for Nextcloud to function." : "OPcache je nastaveno tak, aby odebíralo komentáře kódu. Pokud je OPcache zapnuté, pak aby Nextcloud fungoval, je třeba, aby bylo nastaveno také <code>opcache.save_comments=1</code>.", + "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Pro Nextcloud nemáte zpřístupněno používání aplikačního program. rozhraní (API) OPcache. Pokud je OPcache zapnuté, je velmi doporučováno zahrnout veškeré složky s Nextcloud do <code>opcache.restrict_api</code> nebo toto nastavení zrušit a vypnout tak omezení k OPcache API. Zabráníte tak chybám při aktualizacím jádra Nextcloud či aplikací.", + "Nextcloud is not allowed to use the OPcache API. It is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Pro Nextcloud nemáte zpřístupněno používání aplikačního program. rozhraní (API) OPcache. Je silně doporučováno zahrnout veškeré složky s Nextcloud do <code>opcache.restrict_api</code> nebo toto nastavení zrušit a vypnout tak omezení k OPcache API. Zabráníte tak chybám při aktualizacím jádra Nextcloud či aplikací.", + "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.max_accelerated_files</code> to your PHP configuration with a value higher than <code>%s</code>." : "Je téměř vyčerpán nejvyšší umožněný počet klíčů v OPcache. Aby bylo zajištěno, že se do mezipaměti vejdou veškeré skripty, je doporučeno přidat do nastavení PHP volbu <code>opcache.max_accelerated_files</code> s hodnotou vyšší než <code>%s</code>.", + "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.memory_consumption</code> to your PHP configuration with a value higher than <code>%s</code>." : "Vnitřní vyrovnávací paměť OPcache je téměř zaplněná. Aby bylo zajištěno, že se do mezipaměti vejdou veškeré skripty, je doporučeno přidat do nastavení PHP volbu <code>opcache.memory_consumption</code> s hodnotou vyšší než <code>%s</code>.", + "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply <code>opcache.interned_strings_buffer</code> to your PHP configuration with a value higher than <code>%s</code>." : "Vnitřní vyrovnávací paměť OPcache pro řetězce je téměř zaplněná. Aby bylo zajištěno, že ukládání řetězců do mezipaměti bude skutečně prováděno, je doporučeno přidat do nastavení PHP volbu <code>opcache.interned_strings_buffer</code> s hodnotou vyšší než <code>%s</code>.", "Invalid SMTP password." : "Neplatné heslo pro SMTP.", "Email setting test" : "Zkouška nastavení e-mailu", "Well done, %s!" : "Úspěšně nastaveno, %s!", @@ -266,6 +274,7 @@ OC.L10N.register( "Change scope level of {accountProperty}" : "Změnit stupeň rozsahu {accountProperty}", "Unable to update federation scope of the primary {accountProperty}" : "Nedaří se aktualizovat rozsah federování primární {accountProperty}", "Unable to update federation scope of additional {accountProperty}" : "Nedaří se aktualizovat rozsah federování dodatečné {accountProperty}", + "Add additional email" : "Přidat další e-mail", "Add" : "Přidat", "You do not have permissions to see the details of this user" : "Nemáte oprávnění k zobrazení podrobností o tomto uživateli", "Add new password" : "Přidat nové heslo", diff --git a/apps/settings/l10n/cs.json b/apps/settings/l10n/cs.json index be4c5ae22a1..0adfad4a4e9 100644 --- a/apps/settings/l10n/cs.json +++ b/apps/settings/l10n/cs.json @@ -65,6 +65,14 @@ "Federated Cloud Sharing" : "Federované cloudové sdílení", "cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "cURL používá zastaralou verzi %1$s (%2$s). Aktualizujte operační systém jinak funkce jako například %3$s nebudou fungovat spolehlivě.", "Could not determine if TLS version of cURL is outdated or not because an error happened during the HTTPS request against https://nextcloud.com. Please check the nextcloud log file for more details." : "Nelze zjistit, zda je verze TLS cURL zastaralá nebo ne, protože během požadavku HTTPS na https://nextcloud.com došlo k chybě. Další podrobnosti najdete v souboru se záznamy událostí v Nextcloud.", + "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "PHP modul OPcache není načten. Pro lepší výkon je doporučeno načíst ho do vaší PHP instalace.", + "OPcache is disabled. For better performance, it is recommended to apply <code>opcache.enable=1</code> to your PHP configuration." : "OPcache je vypnuté. Pro lepší výkon je doporučeno přidat do nastavení PHP volbu <code>opcache.enable=1</code>.", + "OPcache is configured to remove code comments. With OPcache enabled, <code>opcache.save_comments=1</code> must be set for Nextcloud to function." : "OPcache je nastaveno tak, aby odebíralo komentáře kódu. Pokud je OPcache zapnuté, pak aby Nextcloud fungoval, je třeba, aby bylo nastaveno také <code>opcache.save_comments=1</code>.", + "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Pro Nextcloud nemáte zpřístupněno používání aplikačního program. rozhraní (API) OPcache. Pokud je OPcache zapnuté, je velmi doporučováno zahrnout veškeré složky s Nextcloud do <code>opcache.restrict_api</code> nebo toto nastavení zrušit a vypnout tak omezení k OPcache API. Zabráníte tak chybám při aktualizacím jádra Nextcloud či aplikací.", + "Nextcloud is not allowed to use the OPcache API. It is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Pro Nextcloud nemáte zpřístupněno používání aplikačního program. rozhraní (API) OPcache. Je silně doporučováno zahrnout veškeré složky s Nextcloud do <code>opcache.restrict_api</code> nebo toto nastavení zrušit a vypnout tak omezení k OPcache API. Zabráníte tak chybám při aktualizacím jádra Nextcloud či aplikací.", + "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.max_accelerated_files</code> to your PHP configuration with a value higher than <code>%s</code>." : "Je téměř vyčerpán nejvyšší umožněný počet klíčů v OPcache. Aby bylo zajištěno, že se do mezipaměti vejdou veškeré skripty, je doporučeno přidat do nastavení PHP volbu <code>opcache.max_accelerated_files</code> s hodnotou vyšší než <code>%s</code>.", + "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.memory_consumption</code> to your PHP configuration with a value higher than <code>%s</code>." : "Vnitřní vyrovnávací paměť OPcache je téměř zaplněná. Aby bylo zajištěno, že se do mezipaměti vejdou veškeré skripty, je doporučeno přidat do nastavení PHP volbu <code>opcache.memory_consumption</code> s hodnotou vyšší než <code>%s</code>.", + "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply <code>opcache.interned_strings_buffer</code> to your PHP configuration with a value higher than <code>%s</code>." : "Vnitřní vyrovnávací paměť OPcache pro řetězce je téměř zaplněná. Aby bylo zajištěno, že ukládání řetězců do mezipaměti bude skutečně prováděno, je doporučeno přidat do nastavení PHP volbu <code>opcache.interned_strings_buffer</code> s hodnotou vyšší než <code>%s</code>.", "Invalid SMTP password." : "Neplatné heslo pro SMTP.", "Email setting test" : "Zkouška nastavení e-mailu", "Well done, %s!" : "Úspěšně nastaveno, %s!", @@ -264,6 +272,7 @@ "Change scope level of {accountProperty}" : "Změnit stupeň rozsahu {accountProperty}", "Unable to update federation scope of the primary {accountProperty}" : "Nedaří se aktualizovat rozsah federování primární {accountProperty}", "Unable to update federation scope of additional {accountProperty}" : "Nedaří se aktualizovat rozsah federování dodatečné {accountProperty}", + "Add additional email" : "Přidat další e-mail", "Add" : "Přidat", "You do not have permissions to see the details of this user" : "Nemáte oprávnění k zobrazení podrobností o tomto uživateli", "Add new password" : "Přidat nové heslo", diff --git a/apps/settings/l10n/de.js b/apps/settings/l10n/de.js index 366a2a12e83..c2b6a1167e1 100644 --- a/apps/settings/l10n/de.js +++ b/apps/settings/l10n/de.js @@ -219,7 +219,9 @@ OC.L10N.register( "Copy" : "Kopieren", "Could not copy app password. Please copy it manually." : "Das Passwort für die App konnte nicht kopiert werden. Bitte kopiere es manuell.", "Profile" : "Profil", + "Enable or disable profile by default for new users." : "Profil für neue Benutzer standardmäßig aktivieren oder deaktivieren", "Enable" : "Aktivieren", + "Unable to update profile default setting" : "Standardeinstellung des Profils kann nicht aktualisiert werden", "Rename group" : "Gruppe umbenennen", "Remove group" : "Gruppe entfernen", "You are about to remove the group {group}. The users will NOT be deleted." : "Du bist dabei die Gruppe {group} zu löschen. Die Benutzer werden NICHT gelöscht.", @@ -264,6 +266,7 @@ OC.L10N.register( "Change scope level of {accountProperty}" : "Geltungsbereich von {accountProperty} ändern", "Unable to update federation scope of the primary {accountProperty}" : "Der Federation-Bereich des primären {accountProperty} konnte nicht aktualisiert werden", "Unable to update federation scope of additional {accountProperty}" : "Der Federation-Bereich des zusätzlichen {accountProperty} konnte nicht aktualisiert werden", + "Add additional email" : "Zusätzliche E-Mail-Adresse hinzufügen", "Add" : "Hinzufügen", "You do not have permissions to see the details of this user" : "Du hast keine Berechtigung, um auf die Details dieses Benutzers zu sehen", "Add new password" : "Neues Passwort hinzufügen", diff --git a/apps/settings/l10n/de.json b/apps/settings/l10n/de.json index cba1547b11b..45e1313dda4 100644 --- a/apps/settings/l10n/de.json +++ b/apps/settings/l10n/de.json @@ -217,7 +217,9 @@ "Copy" : "Kopieren", "Could not copy app password. Please copy it manually." : "Das Passwort für die App konnte nicht kopiert werden. Bitte kopiere es manuell.", "Profile" : "Profil", + "Enable or disable profile by default for new users." : "Profil für neue Benutzer standardmäßig aktivieren oder deaktivieren", "Enable" : "Aktivieren", + "Unable to update profile default setting" : "Standardeinstellung des Profils kann nicht aktualisiert werden", "Rename group" : "Gruppe umbenennen", "Remove group" : "Gruppe entfernen", "You are about to remove the group {group}. The users will NOT be deleted." : "Du bist dabei die Gruppe {group} zu löschen. Die Benutzer werden NICHT gelöscht.", @@ -262,6 +264,7 @@ "Change scope level of {accountProperty}" : "Geltungsbereich von {accountProperty} ändern", "Unable to update federation scope of the primary {accountProperty}" : "Der Federation-Bereich des primären {accountProperty} konnte nicht aktualisiert werden", "Unable to update federation scope of additional {accountProperty}" : "Der Federation-Bereich des zusätzlichen {accountProperty} konnte nicht aktualisiert werden", + "Add additional email" : "Zusätzliche E-Mail-Adresse hinzufügen", "Add" : "Hinzufügen", "You do not have permissions to see the details of this user" : "Du hast keine Berechtigung, um auf die Details dieses Benutzers zu sehen", "Add new password" : "Neues Passwort hinzufügen", diff --git a/apps/settings/l10n/de_DE.js b/apps/settings/l10n/de_DE.js index 10fbee1f8cf..545005cc482 100644 --- a/apps/settings/l10n/de_DE.js +++ b/apps/settings/l10n/de_DE.js @@ -67,6 +67,14 @@ OC.L10N.register( "Federated Cloud Sharing" : "Federated-Cloud-Sharing", "cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "cURL verwendet eine veraltete %1$s Version (%2$s). Bitte aktualisieren Sie Ihr Betriebssystem, da ansonsten Funktionen wie z.B. %3$s nicht zuverlässig funktionieren.", "Could not determine if TLS version of cURL is outdated or not because an error happened during the HTTPS request against https://nextcloud.com. Please check the nextcloud log file for more details." : "Es konnte nicht festgestellt werden, ob die TLS-Version von cURL veraltet ist oder nicht, da während der HTTPS-Anforderung an https://nextcloud.com ein Fehler aufgetreten ist. Bitte überprüfen Sie die Nextcloud-Protokolldatei für weitere Einzelheiten.", + "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "Das PHP-OPcache-Modul ist nicht geladen. Für eine bessere Leistung empfiehlt es sich, das Modul in Ihre PHP-Installation zu laden.", + "OPcache is disabled. For better performance, it is recommended to apply <code>opcache.enable=1</code> to your PHP configuration." : "OPcache ist deaktiviert. Für eine bessere Leistung wird empfohlen, <code>opcache.enable=1</code> auf Ihre PHP-Konfiguration anzuwenden.", + "OPcache is configured to remove code comments. With OPcache enabled, <code>opcache.save_comments=1</code> must be set for Nextcloud to function." : "OPcache ist so konfiguriert, dass Codekommentare entfernt werden. Wenn OPcache aktiviert ist, muss <code>opcache.save_comments=1</code> gesetzt werden, damit Nextcloud funktioniert.", + "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud darf die OPcache-API nicht verwenden. Wenn OPcache aktiviert ist, wird dringend empfohlen, alle Nextcloud-Verzeichnisse mit <code>opcache.restrict_api</code> einzuschließen oder diese Einstellung zu deaktivieren, um OPcache-API-Einschränkungen zu deaktivieren und Fehler während Nextcloud-Core- oder App-Aktualisierungen zu vermeiden.", + "Nextcloud is not allowed to use the OPcache API. It is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud darf die OPcache-API nicht verwenden. Es wird dringend empfohlen, alle Nextcloud-Verzeichnisse mit <code>opcache.restrict_api</code> einzuschließen oder diese Einstellung zu deaktivieren, um OPcache-API-Einschränkungen zu deaktivieren und Fehler während Nextcloud-Core- oder App-Aktualisierungen zu vermeiden.", + "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.max_accelerated_files</code> to your PHP configuration with a value higher than <code>%s</code>." : "Die maximale Anzahl von OPcache-Schlüsseln ist fast überschritten. Um sicherzustellen, dass alle Skripte im Cache gehalten werden können, wird empfohlen, <code>opcache.max_accelerated_files</code> mit einem höheren Wert als <code>%s</code> auf Ihre PHP-Konfiguration anzuwenden.", + "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.memory_consumption</code> to your PHP configuration with a value higher than <code>%s</code>." : "Der OPcache-Puffer ist fast voll. Um sicherzustellen, dass alle Skripte im Cache gehalten werden können, wird empfohlen, <code>opcache.memory_consumption</code> auf Ihre PHP-Konfiguration mit einem höheren Wert als <code>%s</code> anzuwenden. ", + "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply <code>opcache.interned_strings_buffer</code> to your PHP configuration with a value higher than <code>%s</code>." : "Der OPcache-Zwischenspeicher für interne Zeichenfolgen ist fast voll. Um sicherzustellen, dass sich wiederholende Zeichenfolgen effektiv zwischengespeichert werden können, wird empfohlen, <code>opcache.interned_strings_buffer</code> mit einem Wert größer als <code>%s</code> auf Ihre PHP-Konfiguration anzuwenden.", "Invalid SMTP password." : "Ungültiges SMTP-Passwort.", "Email setting test" : "Test der E-Mail-Einstellungen", "Well done, %s!" : "Gut gemacht, %s!", diff --git a/apps/settings/l10n/de_DE.json b/apps/settings/l10n/de_DE.json index 74400bb53d7..0701208e1d4 100644 --- a/apps/settings/l10n/de_DE.json +++ b/apps/settings/l10n/de_DE.json @@ -65,6 +65,14 @@ "Federated Cloud Sharing" : "Federated-Cloud-Sharing", "cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "cURL verwendet eine veraltete %1$s Version (%2$s). Bitte aktualisieren Sie Ihr Betriebssystem, da ansonsten Funktionen wie z.B. %3$s nicht zuverlässig funktionieren.", "Could not determine if TLS version of cURL is outdated or not because an error happened during the HTTPS request against https://nextcloud.com. Please check the nextcloud log file for more details." : "Es konnte nicht festgestellt werden, ob die TLS-Version von cURL veraltet ist oder nicht, da während der HTTPS-Anforderung an https://nextcloud.com ein Fehler aufgetreten ist. Bitte überprüfen Sie die Nextcloud-Protokolldatei für weitere Einzelheiten.", + "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "Das PHP-OPcache-Modul ist nicht geladen. Für eine bessere Leistung empfiehlt es sich, das Modul in Ihre PHP-Installation zu laden.", + "OPcache is disabled. For better performance, it is recommended to apply <code>opcache.enable=1</code> to your PHP configuration." : "OPcache ist deaktiviert. Für eine bessere Leistung wird empfohlen, <code>opcache.enable=1</code> auf Ihre PHP-Konfiguration anzuwenden.", + "OPcache is configured to remove code comments. With OPcache enabled, <code>opcache.save_comments=1</code> must be set for Nextcloud to function." : "OPcache ist so konfiguriert, dass Codekommentare entfernt werden. Wenn OPcache aktiviert ist, muss <code>opcache.save_comments=1</code> gesetzt werden, damit Nextcloud funktioniert.", + "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud darf die OPcache-API nicht verwenden. Wenn OPcache aktiviert ist, wird dringend empfohlen, alle Nextcloud-Verzeichnisse mit <code>opcache.restrict_api</code> einzuschließen oder diese Einstellung zu deaktivieren, um OPcache-API-Einschränkungen zu deaktivieren und Fehler während Nextcloud-Core- oder App-Aktualisierungen zu vermeiden.", + "Nextcloud is not allowed to use the OPcache API. It is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud darf die OPcache-API nicht verwenden. Es wird dringend empfohlen, alle Nextcloud-Verzeichnisse mit <code>opcache.restrict_api</code> einzuschließen oder diese Einstellung zu deaktivieren, um OPcache-API-Einschränkungen zu deaktivieren und Fehler während Nextcloud-Core- oder App-Aktualisierungen zu vermeiden.", + "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.max_accelerated_files</code> to your PHP configuration with a value higher than <code>%s</code>." : "Die maximale Anzahl von OPcache-Schlüsseln ist fast überschritten. Um sicherzustellen, dass alle Skripte im Cache gehalten werden können, wird empfohlen, <code>opcache.max_accelerated_files</code> mit einem höheren Wert als <code>%s</code> auf Ihre PHP-Konfiguration anzuwenden.", + "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.memory_consumption</code> to your PHP configuration with a value higher than <code>%s</code>." : "Der OPcache-Puffer ist fast voll. Um sicherzustellen, dass alle Skripte im Cache gehalten werden können, wird empfohlen, <code>opcache.memory_consumption</code> auf Ihre PHP-Konfiguration mit einem höheren Wert als <code>%s</code> anzuwenden. ", + "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply <code>opcache.interned_strings_buffer</code> to your PHP configuration with a value higher than <code>%s</code>." : "Der OPcache-Zwischenspeicher für interne Zeichenfolgen ist fast voll. Um sicherzustellen, dass sich wiederholende Zeichenfolgen effektiv zwischengespeichert werden können, wird empfohlen, <code>opcache.interned_strings_buffer</code> mit einem Wert größer als <code>%s</code> auf Ihre PHP-Konfiguration anzuwenden.", "Invalid SMTP password." : "Ungültiges SMTP-Passwort.", "Email setting test" : "Test der E-Mail-Einstellungen", "Well done, %s!" : "Gut gemacht, %s!", diff --git a/apps/settings/l10n/el.js b/apps/settings/l10n/el.js index 366e017e472..7497004bf80 100644 --- a/apps/settings/l10n/el.js +++ b/apps/settings/l10n/el.js @@ -260,6 +260,7 @@ OC.L10N.register( "Your role" : "Ο ρόλος σας", "Unable to update role" : "Δεν είναι δυνατή η ενημέρωση του ρόλου", "Change scope level of {accountProperty}" : "Αλλαγή επιπέδου εύρους του {accountProperty}", + "Add additional email" : "Προσθέστε επιπλέον email", "Add" : "Προσθήκη", "You do not have permissions to see the details of this user" : "Δεν έχετε δικαιώματα να δείτε λεπτομέρειες του χρήστη", "Add new password" : "Προσθήκη νέου κωδικού πρόσβασης", diff --git a/apps/settings/l10n/el.json b/apps/settings/l10n/el.json index d743683d105..1c5866ab995 100644 --- a/apps/settings/l10n/el.json +++ b/apps/settings/l10n/el.json @@ -258,6 +258,7 @@ "Your role" : "Ο ρόλος σας", "Unable to update role" : "Δεν είναι δυνατή η ενημέρωση του ρόλου", "Change scope level of {accountProperty}" : "Αλλαγή επιπέδου εύρους του {accountProperty}", + "Add additional email" : "Προσθέστε επιπλέον email", "Add" : "Προσθήκη", "You do not have permissions to see the details of this user" : "Δεν έχετε δικαιώματα να δείτε λεπτομέρειες του χρήστη", "Add new password" : "Προσθήκη νέου κωδικού πρόσβασης", diff --git a/apps/settings/l10n/es.js b/apps/settings/l10n/es.js index c59201cb68c..887673055e3 100644 --- a/apps/settings/l10n/es.js +++ b/apps/settings/l10n/es.js @@ -219,7 +219,9 @@ OC.L10N.register( "Copy" : "Copiar", "Could not copy app password. Please copy it manually." : "No se ha podido copiar la contraseña de app. Por favor, cópiala manualmente.", "Profile" : "Perfil", + "Enable or disable profile by default for new users." : "Activar o desactivar el perfil por defecto para los nuevos usuarios.", "Enable" : "Activar", + "Unable to update profile default setting" : "No se pudo actualizar la configuración por defecto del perfil", "Rename group" : "Renombrar grupo", "Remove group" : "Eliminar grupo", "You are about to remove the group {group}. The users will NOT be deleted." : "Vas a eliminar el grupo {group}. Los usuarios NO serán eliminados.", @@ -264,6 +266,7 @@ OC.L10N.register( "Change scope level of {accountProperty}" : "Cambiar el nivel de privacidad de {accountProperty}", "Unable to update federation scope of the primary {accountProperty}" : "No se puede actualizar el perímetro de la federación del principal {accountProperty}", "Unable to update federation scope of additional {accountProperty}" : "No se puede actualizar el perímetro de la federación de la adicional {accountProperty}", + "Add additional email" : "Añadir un email adicional", "Add" : "Añadir", "You do not have permissions to see the details of this user" : "No tienes permisos para ver los detalles de este usuario", "Add new password" : " Añadir nueva contraseña", diff --git a/apps/settings/l10n/es.json b/apps/settings/l10n/es.json index 8dcbe8d2418..6b27634f74d 100644 --- a/apps/settings/l10n/es.json +++ b/apps/settings/l10n/es.json @@ -217,7 +217,9 @@ "Copy" : "Copiar", "Could not copy app password. Please copy it manually." : "No se ha podido copiar la contraseña de app. Por favor, cópiala manualmente.", "Profile" : "Perfil", + "Enable or disable profile by default for new users." : "Activar o desactivar el perfil por defecto para los nuevos usuarios.", "Enable" : "Activar", + "Unable to update profile default setting" : "No se pudo actualizar la configuración por defecto del perfil", "Rename group" : "Renombrar grupo", "Remove group" : "Eliminar grupo", "You are about to remove the group {group}. The users will NOT be deleted." : "Vas a eliminar el grupo {group}. Los usuarios NO serán eliminados.", @@ -262,6 +264,7 @@ "Change scope level of {accountProperty}" : "Cambiar el nivel de privacidad de {accountProperty}", "Unable to update federation scope of the primary {accountProperty}" : "No se puede actualizar el perímetro de la federación del principal {accountProperty}", "Unable to update federation scope of additional {accountProperty}" : "No se puede actualizar el perímetro de la federación de la adicional {accountProperty}", + "Add additional email" : "Añadir un email adicional", "Add" : "Añadir", "You do not have permissions to see the details of this user" : "No tienes permisos para ver los detalles de este usuario", "Add new password" : " Añadir nueva contraseña", diff --git a/apps/settings/l10n/fi.js b/apps/settings/l10n/fi.js index 7131dc9b592..4a083c9cd08 100644 --- a/apps/settings/l10n/fi.js +++ b/apps/settings/l10n/fi.js @@ -102,6 +102,7 @@ OC.L10N.register( "Personal" : "Henkilökohtainen", "Administration" : "Ylläpito", "Additional settings" : "Lisäasetukset", + "Admin privileges" : "Ylläpitäjän oikeudet", "Groupware" : "Groupware", "Overview" : "Yleiskuvaus", "Basic settings" : "Perusasetukset", @@ -153,6 +154,7 @@ OC.L10N.register( "Featured" : "Poiminta", "Update to {update}" : "Päivitä versioon {update}", "Update all" : "Päivitä kaikki", + "All apps are up-to-date." : "Kaikki sovellukset ovat ajan tasalla.", "Results from other categories" : "Tulokset muista luokista", "No apps found for your version" : "Sovelluksia ei löytynyt versiollesi", "Disable all" : "Poista kaikki käytöstä", @@ -201,9 +203,11 @@ OC.L10N.register( "Could not copy app password. Please copy it manually." : "Sovellussalasanaa ei voitu kopioida. Kopioi se manuaalisesti.", "Profile" : "Profiili", "Enable" : "Käytä", + "Rename group" : "Nimeä ryhmä uudelleen", "Remove group" : "Poista ryhmä", "You are about to remove the group {group}. The users will NOT be deleted." : "Olet aikeissa poistaa ryhmän {group}. Käyttäjiä EI poisteta!", "Please confirm the group removal " : "Vahvista ryhmän poistaminen", + "Your biography" : "Sinun elämäkertasi", "Your full name" : "Koko nimesi", "Unable to update full name" : "Koko nimeä ei voi päivittää", "No full name set" : "Koko nimeä ei ole asetettu", @@ -211,11 +215,14 @@ OC.L10N.register( "Primary email for password reset and notifications" : "Ensisijainen sähköposti salasanan nollaamista ja ilmoituksia varten", "Remove primary email" : "Poista ensisijainen sähköpostiosoite", "Delete email" : "Poista sähköposti", + "Unset as primary email" : "Poista ensisijaisesta sähköpostista", "This address is not confirmed" : "Tätä osoitetta ei ole vahvistettu", "Set as primary email" : "Aseta ensisijaiseksi sähköpostiosoitteeksi", "Your email address" : "Sähköpostiosoitteesi", "Additional email address {index}" : "Lisäsähköpostiosoite {index}", "No email address set" : "Sähköpostiosoitetta ei ole asetettu", + "Additional emails" : "Muut sähköpostit", + "Your headline" : "Otsikkosi", "Language" : "Kieli", "Help translate" : "Auta kääntämisessä", "Unable to update language" : "Kieltä ei voi päivittää", @@ -304,8 +311,10 @@ OC.L10N.register( "Sending…" : "Lähetetään…", "Email sent" : "Sähköposti lähetetty", "Address" : "Osoite", + "Avatar" : "Profiilikuva", "About" : "Tietoja", "Full name" : "Koko nimi", + "Headline" : "Otsikko", "Organisation" : "Organisaatio", "Phone number" : "Puhelinnumero", "Role" : "Rooli", diff --git a/apps/settings/l10n/fi.json b/apps/settings/l10n/fi.json index 609da945cbc..bc84e1666c1 100644 --- a/apps/settings/l10n/fi.json +++ b/apps/settings/l10n/fi.json @@ -100,6 +100,7 @@ "Personal" : "Henkilökohtainen", "Administration" : "Ylläpito", "Additional settings" : "Lisäasetukset", + "Admin privileges" : "Ylläpitäjän oikeudet", "Groupware" : "Groupware", "Overview" : "Yleiskuvaus", "Basic settings" : "Perusasetukset", @@ -151,6 +152,7 @@ "Featured" : "Poiminta", "Update to {update}" : "Päivitä versioon {update}", "Update all" : "Päivitä kaikki", + "All apps are up-to-date." : "Kaikki sovellukset ovat ajan tasalla.", "Results from other categories" : "Tulokset muista luokista", "No apps found for your version" : "Sovelluksia ei löytynyt versiollesi", "Disable all" : "Poista kaikki käytöstä", @@ -199,9 +201,11 @@ "Could not copy app password. Please copy it manually." : "Sovellussalasanaa ei voitu kopioida. Kopioi se manuaalisesti.", "Profile" : "Profiili", "Enable" : "Käytä", + "Rename group" : "Nimeä ryhmä uudelleen", "Remove group" : "Poista ryhmä", "You are about to remove the group {group}. The users will NOT be deleted." : "Olet aikeissa poistaa ryhmän {group}. Käyttäjiä EI poisteta!", "Please confirm the group removal " : "Vahvista ryhmän poistaminen", + "Your biography" : "Sinun elämäkertasi", "Your full name" : "Koko nimesi", "Unable to update full name" : "Koko nimeä ei voi päivittää", "No full name set" : "Koko nimeä ei ole asetettu", @@ -209,11 +213,14 @@ "Primary email for password reset and notifications" : "Ensisijainen sähköposti salasanan nollaamista ja ilmoituksia varten", "Remove primary email" : "Poista ensisijainen sähköpostiosoite", "Delete email" : "Poista sähköposti", + "Unset as primary email" : "Poista ensisijaisesta sähköpostista", "This address is not confirmed" : "Tätä osoitetta ei ole vahvistettu", "Set as primary email" : "Aseta ensisijaiseksi sähköpostiosoitteeksi", "Your email address" : "Sähköpostiosoitteesi", "Additional email address {index}" : "Lisäsähköpostiosoite {index}", "No email address set" : "Sähköpostiosoitetta ei ole asetettu", + "Additional emails" : "Muut sähköpostit", + "Your headline" : "Otsikkosi", "Language" : "Kieli", "Help translate" : "Auta kääntämisessä", "Unable to update language" : "Kieltä ei voi päivittää", @@ -302,8 +309,10 @@ "Sending…" : "Lähetetään…", "Email sent" : "Sähköposti lähetetty", "Address" : "Osoite", + "Avatar" : "Profiilikuva", "About" : "Tietoja", "Full name" : "Koko nimi", + "Headline" : "Otsikko", "Organisation" : "Organisaatio", "Phone number" : "Puhelinnumero", "Role" : "Rooli", diff --git a/apps/settings/l10n/fr.js b/apps/settings/l10n/fr.js index d19e6429c52..96cc598eb43 100644 --- a/apps/settings/l10n/fr.js +++ b/apps/settings/l10n/fr.js @@ -166,6 +166,7 @@ OC.L10N.register( "Featured" : "Mises en avant", "Update to {update}" : "Mise à jour vers {update}", "Update all" : "Tout mettre à jour", + "All apps are up-to-date." : "Toutes les applications sont à jour.", "Results from other categories" : "Résultats d'autres catégories", "No apps found for your version" : "Pas d'application trouvée pour votre version", "Disable all" : "Tout désactiver", diff --git a/apps/settings/l10n/fr.json b/apps/settings/l10n/fr.json index 9511580e6aa..4f3b4f08f68 100644 --- a/apps/settings/l10n/fr.json +++ b/apps/settings/l10n/fr.json @@ -164,6 +164,7 @@ "Featured" : "Mises en avant", "Update to {update}" : "Mise à jour vers {update}", "Update all" : "Tout mettre à jour", + "All apps are up-to-date." : "Toutes les applications sont à jour.", "Results from other categories" : "Résultats d'autres catégories", "No apps found for your version" : "Pas d'application trouvée pour votre version", "Disable all" : "Tout désactiver", diff --git a/apps/settings/l10n/hu.js b/apps/settings/l10n/hu.js index 71098ba34f7..4072a4ea6a4 100644 --- a/apps/settings/l10n/hu.js +++ b/apps/settings/l10n/hu.js @@ -43,6 +43,7 @@ OC.L10N.register( "You changed your email address" : "Megváltoztatta az e-mail címét", "Your email address was changed by an administrator" : "Az e-mail címét megváltoztatta egy rendszergazda", "You created app password \"{token}\"" : "Létrehozta a(z) „{token}” alkalmazásjelszót", + "An administrator created app password \"{token}\"" : "Egy rendszergazda létrehozta a(z) „{token}” alkalmazásjelszót", "You deleted app password \"{token}\"" : "Törölte a(z) „{token}” alkalmazásjelszót", "You renamed app password \"{token}\" to \"{newToken}\"" : "Átnevezted a(z) „{token}” alkalmazásjelszót erre: „{newToken}”", "You granted filesystem access to app password \"{token}\"" : "Fájlrendszer-hozzáférést adott a(z) „{token}” alkalmazásjelszónak", @@ -66,6 +67,14 @@ OC.L10N.register( "Federated Cloud Sharing" : "Föderált felhőmegosztás", "cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "A cURL elavult %1$s verziót (%2$s) használ. Frissítse az operációs rendszert, vagy az egyes funkciók (mint például a %3$s) megbízhatatlanul fognak működni.", "Could not determine if TLS version of cURL is outdated or not because an error happened during the HTTPS request against https://nextcloud.com. Please check the nextcloud log file for more details." : "Nem sikerült megállapítani, hogy a cURL TLS-verziója elavult-e vagy sem, mert hiba történt a https://nextcloud.com felé küldött HTTPS-kérés során. További részletekért, ellenőrizze a Nextcloud naplófájlját.", + "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "A PHP OPcache modul nincs betöltve. A jobb teljesítmény érdekében javasoljuk, hogy töltse be a PHP telepítésébe.", + "OPcache is disabled. For better performance, it is recommended to apply <code>opcache.enable=1</code> to your PHP configuration." : "Az OPcache ki van kapcsolva. A jobb teljesítmény érdekében ajánlatos, hogy beállítsa az <code>opcache.enable=1</code> értéket a PHP konfigurációjába.", + "OPcache is configured to remove code comments. With OPcache enabled, <code>opcache.save_comments=1</code> must be set for Nextcloud to function." : "Az OPcache úgy van beállítva, hogy eltávolítja a kódban lévő megjegyzéseket. Ha az OPcache be van kapcsolva, akkor be kell állítani az <code>opcache.save_comments=1</code> értéket, hogy a Nextcloud működjön.", + "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "A Nextcloud számára nem engedélyezett az OPcache API használata. Ha be van kapcsolva az OPcache, akkor erősen ajánlott, hogy a Nexcloud összes könyvtára szerepeljen az <code>opcache.restrict_api</code> beállításban, vagy kapcsolja ki, hogy letiltsa az OPcache API korlátozásait, hogy megakadályozza a Nextcloud magjának vagy alkalmazásainak frissítése során fellépő hibákat.", + "Nextcloud is not allowed to use the OPcache API. It is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "A Nextcloud számára nem engedélyezett az OPcache API használata. Erősen ajánlott, hogy a Nexcloud összes könyvtára szerepeljen az <code>opcache.restrict_api</code> beállításban, vagy kapcsolja ki, hogy letiltsa az OPcache API korlátozásait, hogy megakadályozza a Nextcloud magjának vagy alkalmazásainak frissítése során fellépő hibákat.", + "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.max_accelerated_files</code> to your PHP configuration with a value higher than <code>%s</code>." : "Majdnem túllépte az OPcache kulcsok legnagyobb számát. Hogy biztosítsa, hogy az összes parancsfájl tárolható legyen a gyorsítótárban, ajánlatos, hogy a(z) <code>%s</code> értéknél nagyobbra állítsa az <code>opcache.max_accelerated_files</code> beállítást a PHP konfigurációjában.", + "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.memory_consumption</code> to your PHP configuration with a value higher than <code>%s</code>." : "Az OPcache puffer majdnem megtelt. Hogy biztosítsa, hogy az összes parancsfájl tárolható legyen a gyorsítótárban, ajánlatos, hogy a(z) <code>%s</code> értéknél nagyobbra állítsa az <code>opcache.max_accelerated_files</code> beállítást a PHP konfigurációjában.", + "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply <code>opcache.interned_strings_buffer</code> to your PHP configuration with a value higher than <code>%s</code>." : "Az OPcache internalizált karakterláncokat tartalmazó puffere majdnem megtelt. Hogy biztosítsa, hogy az ismétlődő karakterláncok hatásosan gyorsítótárazhatók legyenek, ajánlatos, hogy a(z) <code>%s</code> értéknél nagyobbra állítsa az <code>opcache.interned_strings_buffer</code> beállítást a PHP konfigurációjában.", "Invalid SMTP password." : "Érvénytelen SMTP-jelszó.", "Email setting test" : "E-mail beállítás tesztelése", "Well done, %s!" : "Szép munka, %s!", @@ -218,7 +227,9 @@ OC.L10N.register( "Copy" : "Másolás", "Could not copy app password. Please copy it manually." : "Nem lehet az alkalmazásjelszót másolni. Másolja át kézileg.", "Profile" : "Profil", + "Enable or disable profile by default for new users." : "A profil alapértelmezett engedélyezése vagy letiltása az új felhasználók számára.", "Enable" : "Engedélyezés", + "Unable to update profile default setting" : "A profil alapértelmezett beállítása nem frissíthető", "Rename group" : "Csoport átnevezése", "Remove group" : "Csoport eltávolítása", "You are about to remove the group {group}. The users will NOT be deleted." : "A(z) {group} csoport eltávolítására készül. A felhasználók NEM lesznek törölve.", @@ -263,6 +274,7 @@ OC.L10N.register( "Change scope level of {accountProperty}" : "A(z) {accountProperty} hatókörszintjének módosítása", "Unable to update federation scope of the primary {accountProperty}" : "Az elsődleges {accountProperty} föderációs hatóköre nem frissíthető", "Unable to update federation scope of additional {accountProperty}" : "A további {accountProperty} föderációs hatóköre nem frissíthető", + "Add additional email" : "További e-mail hozzáadása", "Add" : "Hozzáadás", "You do not have permissions to see the details of this user" : "Nincs jogosultsága megnézni a felhasználó részletes adatait", "Add new password" : "Új jelszó hozzáadása", @@ -469,6 +481,7 @@ OC.L10N.register( "Remove image" : "Kép eltávolítása", "png or jpg, max. 20 MB" : "png vagy jpg, legfeljebb 20 MB", "Picture provided by original account" : "Az eredeti fiók által biztosított kép.", + "Please note that it can take up to 24 hours for the avatar to get updated everywhere." : "Vegye figyelembe, hogy akár 24 óráig is eltarthat, amíg a profilkép mindenhol frissül.", "Choose as profile picture" : "Kiválasztás profilképként", "You are a member of the following groups:" : "Ön a következő csoportok tagja:", "You are using <strong>%s</strong>" : "Jelenleg használt: <strong>%s</strong>", diff --git a/apps/settings/l10n/hu.json b/apps/settings/l10n/hu.json index 4245091b0b5..eba92f19144 100644 --- a/apps/settings/l10n/hu.json +++ b/apps/settings/l10n/hu.json @@ -41,6 +41,7 @@ "You changed your email address" : "Megváltoztatta az e-mail címét", "Your email address was changed by an administrator" : "Az e-mail címét megváltoztatta egy rendszergazda", "You created app password \"{token}\"" : "Létrehozta a(z) „{token}” alkalmazásjelszót", + "An administrator created app password \"{token}\"" : "Egy rendszergazda létrehozta a(z) „{token}” alkalmazásjelszót", "You deleted app password \"{token}\"" : "Törölte a(z) „{token}” alkalmazásjelszót", "You renamed app password \"{token}\" to \"{newToken}\"" : "Átnevezted a(z) „{token}” alkalmazásjelszót erre: „{newToken}”", "You granted filesystem access to app password \"{token}\"" : "Fájlrendszer-hozzáférést adott a(z) „{token}” alkalmazásjelszónak", @@ -64,6 +65,14 @@ "Federated Cloud Sharing" : "Föderált felhőmegosztás", "cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "A cURL elavult %1$s verziót (%2$s) használ. Frissítse az operációs rendszert, vagy az egyes funkciók (mint például a %3$s) megbízhatatlanul fognak működni.", "Could not determine if TLS version of cURL is outdated or not because an error happened during the HTTPS request against https://nextcloud.com. Please check the nextcloud log file for more details." : "Nem sikerült megállapítani, hogy a cURL TLS-verziója elavult-e vagy sem, mert hiba történt a https://nextcloud.com felé küldött HTTPS-kérés során. További részletekért, ellenőrizze a Nextcloud naplófájlját.", + "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "A PHP OPcache modul nincs betöltve. A jobb teljesítmény érdekében javasoljuk, hogy töltse be a PHP telepítésébe.", + "OPcache is disabled. For better performance, it is recommended to apply <code>opcache.enable=1</code> to your PHP configuration." : "Az OPcache ki van kapcsolva. A jobb teljesítmény érdekében ajánlatos, hogy beállítsa az <code>opcache.enable=1</code> értéket a PHP konfigurációjába.", + "OPcache is configured to remove code comments. With OPcache enabled, <code>opcache.save_comments=1</code> must be set for Nextcloud to function." : "Az OPcache úgy van beállítva, hogy eltávolítja a kódban lévő megjegyzéseket. Ha az OPcache be van kapcsolva, akkor be kell állítani az <code>opcache.save_comments=1</code> értéket, hogy a Nextcloud működjön.", + "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "A Nextcloud számára nem engedélyezett az OPcache API használata. Ha be van kapcsolva az OPcache, akkor erősen ajánlott, hogy a Nexcloud összes könyvtára szerepeljen az <code>opcache.restrict_api</code> beállításban, vagy kapcsolja ki, hogy letiltsa az OPcache API korlátozásait, hogy megakadályozza a Nextcloud magjának vagy alkalmazásainak frissítése során fellépő hibákat.", + "Nextcloud is not allowed to use the OPcache API. It is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "A Nextcloud számára nem engedélyezett az OPcache API használata. Erősen ajánlott, hogy a Nexcloud összes könyvtára szerepeljen az <code>opcache.restrict_api</code> beállításban, vagy kapcsolja ki, hogy letiltsa az OPcache API korlátozásait, hogy megakadályozza a Nextcloud magjának vagy alkalmazásainak frissítése során fellépő hibákat.", + "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.max_accelerated_files</code> to your PHP configuration with a value higher than <code>%s</code>." : "Majdnem túllépte az OPcache kulcsok legnagyobb számát. Hogy biztosítsa, hogy az összes parancsfájl tárolható legyen a gyorsítótárban, ajánlatos, hogy a(z) <code>%s</code> értéknél nagyobbra állítsa az <code>opcache.max_accelerated_files</code> beállítást a PHP konfigurációjában.", + "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.memory_consumption</code> to your PHP configuration with a value higher than <code>%s</code>." : "Az OPcache puffer majdnem megtelt. Hogy biztosítsa, hogy az összes parancsfájl tárolható legyen a gyorsítótárban, ajánlatos, hogy a(z) <code>%s</code> értéknél nagyobbra állítsa az <code>opcache.max_accelerated_files</code> beállítást a PHP konfigurációjában.", + "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply <code>opcache.interned_strings_buffer</code> to your PHP configuration with a value higher than <code>%s</code>." : "Az OPcache internalizált karakterláncokat tartalmazó puffere majdnem megtelt. Hogy biztosítsa, hogy az ismétlődő karakterláncok hatásosan gyorsítótárazhatók legyenek, ajánlatos, hogy a(z) <code>%s</code> értéknél nagyobbra állítsa az <code>opcache.interned_strings_buffer</code> beállítást a PHP konfigurációjában.", "Invalid SMTP password." : "Érvénytelen SMTP-jelszó.", "Email setting test" : "E-mail beállítás tesztelése", "Well done, %s!" : "Szép munka, %s!", @@ -216,7 +225,9 @@ "Copy" : "Másolás", "Could not copy app password. Please copy it manually." : "Nem lehet az alkalmazásjelszót másolni. Másolja át kézileg.", "Profile" : "Profil", + "Enable or disable profile by default for new users." : "A profil alapértelmezett engedélyezése vagy letiltása az új felhasználók számára.", "Enable" : "Engedélyezés", + "Unable to update profile default setting" : "A profil alapértelmezett beállítása nem frissíthető", "Rename group" : "Csoport átnevezése", "Remove group" : "Csoport eltávolítása", "You are about to remove the group {group}. The users will NOT be deleted." : "A(z) {group} csoport eltávolítására készül. A felhasználók NEM lesznek törölve.", @@ -261,6 +272,7 @@ "Change scope level of {accountProperty}" : "A(z) {accountProperty} hatókörszintjének módosítása", "Unable to update federation scope of the primary {accountProperty}" : "Az elsődleges {accountProperty} föderációs hatóköre nem frissíthető", "Unable to update federation scope of additional {accountProperty}" : "A további {accountProperty} föderációs hatóköre nem frissíthető", + "Add additional email" : "További e-mail hozzáadása", "Add" : "Hozzáadás", "You do not have permissions to see the details of this user" : "Nincs jogosultsága megnézni a felhasználó részletes adatait", "Add new password" : "Új jelszó hozzáadása", @@ -467,6 +479,7 @@ "Remove image" : "Kép eltávolítása", "png or jpg, max. 20 MB" : "png vagy jpg, legfeljebb 20 MB", "Picture provided by original account" : "Az eredeti fiók által biztosított kép.", + "Please note that it can take up to 24 hours for the avatar to get updated everywhere." : "Vegye figyelembe, hogy akár 24 óráig is eltarthat, amíg a profilkép mindenhol frissül.", "Choose as profile picture" : "Kiválasztás profilképként", "You are a member of the following groups:" : "Ön a következő csoportok tagja:", "You are using <strong>%s</strong>" : "Jelenleg használt: <strong>%s</strong>", diff --git a/apps/settings/l10n/pl.js b/apps/settings/l10n/pl.js index f52ad4f2992..b0a1374b527 100644 --- a/apps/settings/l10n/pl.js +++ b/apps/settings/l10n/pl.js @@ -67,6 +67,14 @@ OC.L10N.register( "Federated Cloud Sharing" : "Udostępnianie Chmury Federacyjnej", "cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "cURL używa nieaktualnej %1$s wersji (%2$s). Zaktualizuj system operacyjny lub funkcje takie jak %3$s nie będą działać prawidłowo.", "Could not determine if TLS version of cURL is outdated or not because an error happened during the HTTPS request against https://nextcloud.com. Please check the nextcloud log file for more details." : "Nie można określić, czy wersja TLS cURL jest aktualna, ponieważ wystąpił błąd podczas żądania HTTPS skierowanego do https://nextcloud.com. Aby uzyskać więcej informacji, sprawdź plik dziennika nextcloud.", + "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "Moduł PHP OPcache nie jest wczytany. Aby uzyskać lepszą wydajność, zaleca się wczytanie go do instalacji PHP.", + "OPcache is disabled. For better performance, it is recommended to apply <code>opcache.enable=1</code> to your PHP configuration." : "OPcache jest wyłączone. Aby uzyskać lepszą wydajność, zaleca się zastosowanie <code>opcache.enable=1</code> w konfiguracji PHP.", + "OPcache is configured to remove code comments. With OPcache enabled, <code>opcache.save_comments=1</code> must be set for Nextcloud to function." : "OPcache jest skonfigurowane do usuwania komentarzy kodu. Przy włączonym OPcache, musi być ustawione <code>opcache.save_comments=1</code>, aby działał Nextcloud.", + "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud nie może korzystać z interfejsu OPcache API. Po włączeniu OPcache zdecydowanie zaleca się uwzględnienie wszystkich katalogów Nextcloud z <code>opcache.restrict_api</code> lub usunięcie tego ustawienia, aby wyłączyć ograniczenia interfejsu OPcache API, żeby zapobiec błędom podczas aktualizacji rdzenia lub aplikacji Nextcloud.", + "Nextcloud is not allowed to use the OPcache API. It is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud nie może korzystać z interfejsu OPcache API. Zdecydowanie zaleca się uwzględnienie wszystkich katalogów Nextcloud z <code>opcache.restrict_api</code> lub usunięcie tego ustawienia, aby wyłączyć ograniczenia interfejsu OPcache API, żeby zapobiec błędom podczas aktualizacji rdzenia lub aplikacji Nextcloud.", + "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.max_accelerated_files</code> to your PHP configuration with a value higher than <code>%s</code>." : "Maksymalna liczba kluczy OPcache jest prawie przekroczona. Aby upewnić się, że wszystkie skrypty mogą być przechowywane w pamięci podręcznej, zaleca się zastosowanie <code>opcache.max_accelerated_files</code> w konfiguracji PHP z wartością wyższą niż <code>%s</code>.", + "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.memory_consumption</code> to your PHP configuration with a value higher than <code>%s</code>." : "Bufor OPcache jest prawie pełny. Aby upewnić się, że wszystkie skrypty mogą być przechowywane w pamięci podręcznej, zaleca się zastosowanie <code>opcache.memory_consumption</code> w konfiguracji PHP z wartością wyższą niż <code>%s</code>.", + "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply <code>opcache.interned_strings_buffer</code> to your PHP configuration with a value higher than <code>%s</code>." : "Bufor ciągów internowanych OPcache jest prawie pełny. Aby upewnić się, że powtarzające się ciągi mogą być efektywnie buforowane, zaleca się zastosowanie <code>opcache.interned_strings_buffer</code> w konfiguracji PHP z wartością wyższą niż <code>%s</code>.", "Invalid SMTP password." : "Nieprawidłowe hasło SMTP.", "Email setting test" : "Test ustawień e-mail", "Well done, %s!" : "Dobra robota, %s!", diff --git a/apps/settings/l10n/pl.json b/apps/settings/l10n/pl.json index f63346dd664..98efb783d44 100644 --- a/apps/settings/l10n/pl.json +++ b/apps/settings/l10n/pl.json @@ -65,6 +65,14 @@ "Federated Cloud Sharing" : "Udostępnianie Chmury Federacyjnej", "cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "cURL używa nieaktualnej %1$s wersji (%2$s). Zaktualizuj system operacyjny lub funkcje takie jak %3$s nie będą działać prawidłowo.", "Could not determine if TLS version of cURL is outdated or not because an error happened during the HTTPS request against https://nextcloud.com. Please check the nextcloud log file for more details." : "Nie można określić, czy wersja TLS cURL jest aktualna, ponieważ wystąpił błąd podczas żądania HTTPS skierowanego do https://nextcloud.com. Aby uzyskać więcej informacji, sprawdź plik dziennika nextcloud.", + "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "Moduł PHP OPcache nie jest wczytany. Aby uzyskać lepszą wydajność, zaleca się wczytanie go do instalacji PHP.", + "OPcache is disabled. For better performance, it is recommended to apply <code>opcache.enable=1</code> to your PHP configuration." : "OPcache jest wyłączone. Aby uzyskać lepszą wydajność, zaleca się zastosowanie <code>opcache.enable=1</code> w konfiguracji PHP.", + "OPcache is configured to remove code comments. With OPcache enabled, <code>opcache.save_comments=1</code> must be set for Nextcloud to function." : "OPcache jest skonfigurowane do usuwania komentarzy kodu. Przy włączonym OPcache, musi być ustawione <code>opcache.save_comments=1</code>, aby działał Nextcloud.", + "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud nie może korzystać z interfejsu OPcache API. Po włączeniu OPcache zdecydowanie zaleca się uwzględnienie wszystkich katalogów Nextcloud z <code>opcache.restrict_api</code> lub usunięcie tego ustawienia, aby wyłączyć ograniczenia interfejsu OPcache API, żeby zapobiec błędom podczas aktualizacji rdzenia lub aplikacji Nextcloud.", + "Nextcloud is not allowed to use the OPcache API. It is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud nie może korzystać z interfejsu OPcache API. Zdecydowanie zaleca się uwzględnienie wszystkich katalogów Nextcloud z <code>opcache.restrict_api</code> lub usunięcie tego ustawienia, aby wyłączyć ograniczenia interfejsu OPcache API, żeby zapobiec błędom podczas aktualizacji rdzenia lub aplikacji Nextcloud.", + "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.max_accelerated_files</code> to your PHP configuration with a value higher than <code>%s</code>." : "Maksymalna liczba kluczy OPcache jest prawie przekroczona. Aby upewnić się, że wszystkie skrypty mogą być przechowywane w pamięci podręcznej, zaleca się zastosowanie <code>opcache.max_accelerated_files</code> w konfiguracji PHP z wartością wyższą niż <code>%s</code>.", + "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.memory_consumption</code> to your PHP configuration with a value higher than <code>%s</code>." : "Bufor OPcache jest prawie pełny. Aby upewnić się, że wszystkie skrypty mogą być przechowywane w pamięci podręcznej, zaleca się zastosowanie <code>opcache.memory_consumption</code> w konfiguracji PHP z wartością wyższą niż <code>%s</code>.", + "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply <code>opcache.interned_strings_buffer</code> to your PHP configuration with a value higher than <code>%s</code>." : "Bufor ciągów internowanych OPcache jest prawie pełny. Aby upewnić się, że powtarzające się ciągi mogą być efektywnie buforowane, zaleca się zastosowanie <code>opcache.interned_strings_buffer</code> w konfiguracji PHP z wartością wyższą niż <code>%s</code>.", "Invalid SMTP password." : "Nieprawidłowe hasło SMTP.", "Email setting test" : "Test ustawień e-mail", "Well done, %s!" : "Dobra robota, %s!", diff --git a/apps/settings/l10n/sv.js b/apps/settings/l10n/sv.js index 05e83d3b901..06ad3e7c883 100644 --- a/apps/settings/l10n/sv.js +++ b/apps/settings/l10n/sv.js @@ -60,7 +60,7 @@ OC.L10N.register( "No user supplied" : "Ingen användare angiven", "Authentication error" : "Fel vid autentisering", "Please provide an admin recovery password; otherwise, all user data will be lost." : "Vänligen ange ett administratörs återställningslösenord; annars kommer alla användardata att försvinna.", - "Wrong admin recovery password. Please check the password and try again." : "Felaktigt återställningslösenord för administratör. Vänligen kontrollera lösenordet och prova igen.", + "Wrong admin recovery password. Please check the password and try again." : "Felaktigt återställningslösenord för administratör. Kontrollera lösenordet och prova igen.", "Backend doesn't support password change, but the user's encryption key was updated." : "Backend stödjer inte att lösenord ändras men användarens krypteringsnyckel uppdaterades.", "installing and updating apps via the App Store or Federated Cloud Sharing" : "installera och uppdatera appar via appbutiken eller federerad molndelning", "Federated Cloud Sharing" : "Federerad Moln-delning", @@ -71,7 +71,7 @@ OC.L10N.register( "Well done, %s!" : "Bra gjort, %s!", "If you received this email, the email configuration seems to be correct." : "Om du får detta e-postmeddelande så har du ställt in e-postinställningarna rätt.", "Email could not be sent. Check your mail server log" : "E-post kunde inte skickas. Titta i din e-postserverlogg", - "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ett problem uppstod när e-post försökte skickas. Vänligen kontrollera dina inställningar. (Fel: %s)", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ett problem uppstod när e-post försökte skickas. Kontrollera dina inställningar. (Fel: %s)", "Invalid user" : "Ogiltig användare", "Invalid mail address" : "Ogiltig e-postadress", "Settings saved" : "Inställningar sparade", @@ -328,7 +328,7 @@ OC.L10N.register( "Show user backend" : "Visa användar-backend", "Show storage path" : "Visa lagringsväg", "Send email to new user" : "Skicka e-post till ny användare", - "Migration in progress. Please wait until the migration is finished" : "Migration pågår. Vänligen vänta tills migrationen är klar", + "Migration in progress. Please wait until the migration is finished" : "Migration pågår. Vänta tills migrationen är klar", "Migration started …" : "Migrering påbörjad ...", "Not saved" : "Inte sparad", "Sending…" : "Skickar...", @@ -393,16 +393,16 @@ OC.L10N.register( "Server-side encryption" : "Serverkryptering", "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Kryptering från servern möjliggör kryptering av filer som är uppladdade till servern. Detta innebär vissa begränsningar som prestandaförluster, så aktivera bara om det behövs.", "Enable server-side encryption" : "Aktivera kryptering på server.", - "Please read carefully before activating server-side encryption: " : "Vänligen läs noga innan du aktiverar kryptering på serversidan: ", + "Please read carefully before activating server-side encryption: " : "Läs noga innan du aktiverar kryptering på serversidan: ", "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 framå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.", + "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. 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 inläst, vänligen aktivera krypteringsmodulen i applikationsmenyn.", + "No encryption module loaded, please enable an encryption module in the app menu." : "Ingen krypteringsmodul inläst, aktivera krypteringsmodulen i applikationsmenyn.", "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. Vänligen aktivera \"Standard krypteringsmodul\" och kör 'occ encryption:migrate'.", + "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. Aktivera \"Standard krypteringsmodul\" 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", "Last job execution ran %s. Something seems wrong." : "Sista jobbexekveringen körde %s. Något verkar vara fel.", diff --git a/apps/settings/l10n/sv.json b/apps/settings/l10n/sv.json index 55a62fb0d1e..76b88882f72 100644 --- a/apps/settings/l10n/sv.json +++ b/apps/settings/l10n/sv.json @@ -58,7 +58,7 @@ "No user supplied" : "Ingen användare angiven", "Authentication error" : "Fel vid autentisering", "Please provide an admin recovery password; otherwise, all user data will be lost." : "Vänligen ange ett administratörs återställningslösenord; annars kommer alla användardata att försvinna.", - "Wrong admin recovery password. Please check the password and try again." : "Felaktigt återställningslösenord för administratör. Vänligen kontrollera lösenordet och prova igen.", + "Wrong admin recovery password. Please check the password and try again." : "Felaktigt återställningslösenord för administratör. Kontrollera lösenordet och prova igen.", "Backend doesn't support password change, but the user's encryption key was updated." : "Backend stödjer inte att lösenord ändras men användarens krypteringsnyckel uppdaterades.", "installing and updating apps via the App Store or Federated Cloud Sharing" : "installera och uppdatera appar via appbutiken eller federerad molndelning", "Federated Cloud Sharing" : "Federerad Moln-delning", @@ -69,7 +69,7 @@ "Well done, %s!" : "Bra gjort, %s!", "If you received this email, the email configuration seems to be correct." : "Om du får detta e-postmeddelande så har du ställt in e-postinställningarna rätt.", "Email could not be sent. Check your mail server log" : "E-post kunde inte skickas. Titta i din e-postserverlogg", - "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ett problem uppstod när e-post försökte skickas. Vänligen kontrollera dina inställningar. (Fel: %s)", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ett problem uppstod när e-post försökte skickas. Kontrollera dina inställningar. (Fel: %s)", "Invalid user" : "Ogiltig användare", "Invalid mail address" : "Ogiltig e-postadress", "Settings saved" : "Inställningar sparade", @@ -326,7 +326,7 @@ "Show user backend" : "Visa användar-backend", "Show storage path" : "Visa lagringsväg", "Send email to new user" : "Skicka e-post till ny användare", - "Migration in progress. Please wait until the migration is finished" : "Migration pågår. Vänligen vänta tills migrationen är klar", + "Migration in progress. Please wait until the migration is finished" : "Migration pågår. Vänta tills migrationen är klar", "Migration started …" : "Migrering påbörjad ...", "Not saved" : "Inte sparad", "Sending…" : "Skickar...", @@ -391,16 +391,16 @@ "Server-side encryption" : "Serverkryptering", "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Kryptering från servern möjliggör kryptering av filer som är uppladdade till servern. Detta innebär vissa begränsningar som prestandaförluster, så aktivera bara om det behövs.", "Enable server-side encryption" : "Aktivera kryptering på server.", - "Please read carefully before activating server-side encryption: " : "Vänligen läs noga innan du aktiverar kryptering på serversidan: ", + "Please read carefully before activating server-side encryption: " : "Läs noga innan du aktiverar kryptering på serversidan: ", "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 framå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.", + "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. 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 inläst, vänligen aktivera krypteringsmodulen i applikationsmenyn.", + "No encryption module loaded, please enable an encryption module in the app menu." : "Ingen krypteringsmodul inläst, aktivera krypteringsmodulen i applikationsmenyn.", "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. Vänligen aktivera \"Standard krypteringsmodul\" och kör 'occ encryption:migrate'.", + "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. Aktivera \"Standard krypteringsmodul\" 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", "Last job execution ran %s. Something seems wrong." : "Sista jobbexekveringen körde %s. Något verkar vara fel.", diff --git a/apps/settings/l10n/tr.js b/apps/settings/l10n/tr.js index 2846f365eb6..b54a26395a8 100644 --- a/apps/settings/l10n/tr.js +++ b/apps/settings/l10n/tr.js @@ -67,6 +67,14 @@ OC.L10N.register( "Federated Cloud Sharing" : "Birleşik Bulut Paylaşımı", "cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "cURL eski bir %1$s sürümü kullanıyor (%2$s). Lütfen işletim sisteminizi güncelleyin, yoksa %3$s gibi özellikler düzgün çalışmaz.", "Could not determine if TLS version of cURL is outdated or not because an error happened during the HTTPS request against https://nextcloud.com. Please check the nextcloud log file for more details." : "https://nextcloud.com üzerine yapılan HTTPS isteği sırasında oluşan sorun nedeniyle cURL TLS sürümünün eski olup olmadığı belirlenemedi. Ayrıntılı bilgi almak için nextcloud günlük dosyasına bakabilirsiniz.", + "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "PHP OPcache modülü yüklenmemiş. Daha iyi başarım sağlamak için PHP kurulumunuza eklemeniz önerilir.", + "OPcache is disabled. For better performance, it is recommended to apply <code>opcache.enable=1</code> to your PHP configuration." : "OPcache devre dışı. Daha iyi başarım için PHP yapılandırmanızda <code>opcache.enable=1</code> seçeneğini ayarlamanız önerilir.", + "OPcache is configured to remove code comments. With OPcache enabled, <code>opcache.save_comments=1</code> must be set for Nextcloud to function." : "OPcache, kod yorumlarını kaldıracak şekilde yapılandırılmış. OPcache etkinken, Nextcloud uygulamasının çalışması için <code>opcache.save_comments=1</code> ayarı yapılmalıdır.", + "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud tarafından OPcache API' yazılımının kullanmasına izin verilmez. OPcache etkinleştirildiğinde, Nextcloud çekirdeği veya uygulama yükseltmeleri sırasında hataları önlemek için <code>opcache.restrict_api</code> ile tüm Nextcloud klasörlerini katmanız ya da OPcache API kısıtlamalarını devre dışı bırakmak için bu ayarı kaldırmanız önemle önerilir.", + "Nextcloud is not allowed to use the OPcache API. It is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud tarafından OPcache API' yazılımının kullanmasına izin verilmez. Nextcloud çekirdeği veya uygulama yükseltmeleri sırasında hataları önlemek için <code>opcache.restrict_api</code> ile tüm Nextcloud klasörlerini katmanız ya da OPcache API kısıtlamalarını devre dışı bırakmak için bu ayarı kaldırmanız önemle önerilir.", + "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.max_accelerated_files</code> to your PHP configuration with a value higher than <code>%s</code>." : "En fazla OPcache anahtar sayısına neredeyse erişildi. Tüm betik dosyalarının ön bellekte tutulabilmesini sağlamak için, PHP yapılandırmanıza <code>%s</code> üzerinde bir değerle <code>opcache.max_accelerated_files</code> uygulamanız önerilir.", + "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.memory_consumption</code> to your PHP configuration with a value higher than <code>%s</code>." : "OPcache ara belleği neredeyse dolu. Tüm betik dosyalarının ön bellekte tutulabilmesini sağlamak için, PHP yapılandırmanıza <code>%s</code> üzerinde bir değerle <code>opcache.memory_consumption</code> uygulamanız önerilir.", + "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply <code>opcache.interned_strings_buffer</code> to your PHP configuration with a value higher than <code>%s</code>." : "OPcache interned dizge ara belleği neredeyse dolu. Yinelenen dizgelerin etkin bir şekilde ön belleğe alınabilmesini sağlamak için, PHP yapılandırmanıza <code>%s</code> üzerinde bir değerle <code>opcache.interned_strings_buffer</code> uygulamanız önerilir.", "Invalid SMTP password." : "SMTP parolası geçersiz.", "Email setting test" : "E-posta ayarları sınaması", "Well done, %s!" : "Tamamdır %s!", diff --git a/apps/settings/l10n/tr.json b/apps/settings/l10n/tr.json index 7c432e114af..1af09baa173 100644 --- a/apps/settings/l10n/tr.json +++ b/apps/settings/l10n/tr.json @@ -65,6 +65,14 @@ "Federated Cloud Sharing" : "Birleşik Bulut Paylaşımı", "cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "cURL eski bir %1$s sürümü kullanıyor (%2$s). Lütfen işletim sisteminizi güncelleyin, yoksa %3$s gibi özellikler düzgün çalışmaz.", "Could not determine if TLS version of cURL is outdated or not because an error happened during the HTTPS request against https://nextcloud.com. Please check the nextcloud log file for more details." : "https://nextcloud.com üzerine yapılan HTTPS isteği sırasında oluşan sorun nedeniyle cURL TLS sürümünün eski olup olmadığı belirlenemedi. Ayrıntılı bilgi almak için nextcloud günlük dosyasına bakabilirsiniz.", + "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "PHP OPcache modülü yüklenmemiş. Daha iyi başarım sağlamak için PHP kurulumunuza eklemeniz önerilir.", + "OPcache is disabled. For better performance, it is recommended to apply <code>opcache.enable=1</code> to your PHP configuration." : "OPcache devre dışı. Daha iyi başarım için PHP yapılandırmanızda <code>opcache.enable=1</code> seçeneğini ayarlamanız önerilir.", + "OPcache is configured to remove code comments. With OPcache enabled, <code>opcache.save_comments=1</code> must be set for Nextcloud to function." : "OPcache, kod yorumlarını kaldıracak şekilde yapılandırılmış. OPcache etkinken, Nextcloud uygulamasının çalışması için <code>opcache.save_comments=1</code> ayarı yapılmalıdır.", + "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud tarafından OPcache API' yazılımının kullanmasına izin verilmez. OPcache etkinleştirildiğinde, Nextcloud çekirdeği veya uygulama yükseltmeleri sırasında hataları önlemek için <code>opcache.restrict_api</code> ile tüm Nextcloud klasörlerini katmanız ya da OPcache API kısıtlamalarını devre dışı bırakmak için bu ayarı kaldırmanız önemle önerilir.", + "Nextcloud is not allowed to use the OPcache API. It is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud tarafından OPcache API' yazılımının kullanmasına izin verilmez. Nextcloud çekirdeği veya uygulama yükseltmeleri sırasında hataları önlemek için <code>opcache.restrict_api</code> ile tüm Nextcloud klasörlerini katmanız ya da OPcache API kısıtlamalarını devre dışı bırakmak için bu ayarı kaldırmanız önemle önerilir.", + "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.max_accelerated_files</code> to your PHP configuration with a value higher than <code>%s</code>." : "En fazla OPcache anahtar sayısına neredeyse erişildi. Tüm betik dosyalarının ön bellekte tutulabilmesini sağlamak için, PHP yapılandırmanıza <code>%s</code> üzerinde bir değerle <code>opcache.max_accelerated_files</code> uygulamanız önerilir.", + "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.memory_consumption</code> to your PHP configuration with a value higher than <code>%s</code>." : "OPcache ara belleği neredeyse dolu. Tüm betik dosyalarının ön bellekte tutulabilmesini sağlamak için, PHP yapılandırmanıza <code>%s</code> üzerinde bir değerle <code>opcache.memory_consumption</code> uygulamanız önerilir.", + "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply <code>opcache.interned_strings_buffer</code> to your PHP configuration with a value higher than <code>%s</code>." : "OPcache interned dizge ara belleği neredeyse dolu. Yinelenen dizgelerin etkin bir şekilde ön belleğe alınabilmesini sağlamak için, PHP yapılandırmanıza <code>%s</code> üzerinde bir değerle <code>opcache.interned_strings_buffer</code> uygulamanız önerilir.", "Invalid SMTP password." : "SMTP parolası geçersiz.", "Email setting test" : "E-posta ayarları sınaması", "Well done, %s!" : "Tamamdır %s!", diff --git a/apps/settings/l10n/zh_HK.js b/apps/settings/l10n/zh_HK.js index 92690f9bebf..2e4653f98aa 100644 --- a/apps/settings/l10n/zh_HK.js +++ b/apps/settings/l10n/zh_HK.js @@ -67,6 +67,14 @@ OC.L10N.register( "Federated Cloud Sharing" : "聯盟式雲端分享", "cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "cURL 使用的版本 %1$s 過舊(%2$s)。請更新您的作業系統,否則如 %3$s 等功能可能無法正常運作。", "Could not determine if TLS version of cURL is outdated or not because an error happened during the HTTPS request against https://nextcloud.com. Please check the nextcloud log file for more details." : "對於 https://nextcloud.com 的 HTTPS 請求發生錯誤,因此無法確定 cURL 的 TLS 是否過舊。請檢查 nextcloud 的紀錄檔以取得更多資訊。", + "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "未加載 PHP OPcache 模塊。為獲得更佳性能,建議將其加載到您的 PHP 安裝中。", + "OPcache is disabled. For better performance, it is recommended to apply <code>opcache.enable=1</code> to your PHP configuration." : "已停用 OPcache。要得到更好的效能,建議在您的 PHP 設定中套用 <code>opcache.enable=1</code>。", + "OPcache is configured to remove code comments. With OPcache enabled, <code>opcache.save_comments=1</code> must be set for Nextcloud to function." : "OPcache 被設定為移除程式碼註釋。啟用 OPcache 後,必須設定 <code>opcache.save_comments=1</code> 才能讓 Nextcloud 正常運作。", + "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud 不被允許使用 OPcache API。啟用 OPcache 後,強烈建議使用 <code>opcache.restrict_api</code> 包含所有 Nextcloud 目錄,或是關閉此設定以停用 OPcache API 限制,以避免在 Nextcloud 核心或應用程式升級期間發生錯誤。", + "Nextcloud is not allowed to use the OPcache API. It is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud 不被允許使用 OPcache API。強烈建議使用 <code>opcache.restrict_api</code> 包含所有 Nextcloud 目錄,或是關閉此設定以停用 OPcache API 限制,以避免在 Nextcloud 核心或應用程式升級期間發生錯誤。", + "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.max_accelerated_files</code> to your PHP configuration with a value higher than <code>%s</code>." : "幾乎超過了可用的 OPcache 密鑰的最大數量。為確保所有腳本都可以保存在緩存中,建議將 <code>opcache.max_accelerated_files</code> 應用於您的 PHP 配置,其值高於 <code>%s</code>。", + "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.memory_consumption</code> to your PHP configuration with a value higher than <code>%s</code>." : "OPcache 緩衝區幾乎快滿了。為確保所有指令稿都可以保留在快取中,建議在您的 PHP 設定中的 <code>opcache.memory_consumption</code> 套用高於 <code>%s</code> 的值。", + "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply <code>opcache.interned_strings_buffer</code> to your PHP configuration with a value higher than <code>%s</code>." : "OPcache 內部字串緩衝區幾乎快滿了。為確保可以有效快取重複字串,建議在您的 PHP 設定中的 <code>opcache.interned_strings_buffer</code> 套用高於 <code>%s</code> 的值。", "Invalid SMTP password." : "無效的 SMTP 密碼", "Email setting test" : "測試郵件設定", "Well done, %s!" : "太棒了,%s!", diff --git a/apps/settings/l10n/zh_HK.json b/apps/settings/l10n/zh_HK.json index 61420276ead..70afcc6b6ab 100644 --- a/apps/settings/l10n/zh_HK.json +++ b/apps/settings/l10n/zh_HK.json @@ -65,6 +65,14 @@ "Federated Cloud Sharing" : "聯盟式雲端分享", "cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "cURL 使用的版本 %1$s 過舊(%2$s)。請更新您的作業系統,否則如 %3$s 等功能可能無法正常運作。", "Could not determine if TLS version of cURL is outdated or not because an error happened during the HTTPS request against https://nextcloud.com. Please check the nextcloud log file for more details." : "對於 https://nextcloud.com 的 HTTPS 請求發生錯誤,因此無法確定 cURL 的 TLS 是否過舊。請檢查 nextcloud 的紀錄檔以取得更多資訊。", + "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "未加載 PHP OPcache 模塊。為獲得更佳性能,建議將其加載到您的 PHP 安裝中。", + "OPcache is disabled. For better performance, it is recommended to apply <code>opcache.enable=1</code> to your PHP configuration." : "已停用 OPcache。要得到更好的效能,建議在您的 PHP 設定中套用 <code>opcache.enable=1</code>。", + "OPcache is configured to remove code comments. With OPcache enabled, <code>opcache.save_comments=1</code> must be set for Nextcloud to function." : "OPcache 被設定為移除程式碼註釋。啟用 OPcache 後,必須設定 <code>opcache.save_comments=1</code> 才能讓 Nextcloud 正常運作。", + "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud 不被允許使用 OPcache API。啟用 OPcache 後,強烈建議使用 <code>opcache.restrict_api</code> 包含所有 Nextcloud 目錄,或是關閉此設定以停用 OPcache API 限制,以避免在 Nextcloud 核心或應用程式升級期間發生錯誤。", + "Nextcloud is not allowed to use the OPcache API. It is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud 不被允許使用 OPcache API。強烈建議使用 <code>opcache.restrict_api</code> 包含所有 Nextcloud 目錄,或是關閉此設定以停用 OPcache API 限制,以避免在 Nextcloud 核心或應用程式升級期間發生錯誤。", + "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.max_accelerated_files</code> to your PHP configuration with a value higher than <code>%s</code>." : "幾乎超過了可用的 OPcache 密鑰的最大數量。為確保所有腳本都可以保存在緩存中,建議將 <code>opcache.max_accelerated_files</code> 應用於您的 PHP 配置,其值高於 <code>%s</code>。", + "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.memory_consumption</code> to your PHP configuration with a value higher than <code>%s</code>." : "OPcache 緩衝區幾乎快滿了。為確保所有指令稿都可以保留在快取中,建議在您的 PHP 設定中的 <code>opcache.memory_consumption</code> 套用高於 <code>%s</code> 的值。", + "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply <code>opcache.interned_strings_buffer</code> to your PHP configuration with a value higher than <code>%s</code>." : "OPcache 內部字串緩衝區幾乎快滿了。為確保可以有效快取重複字串,建議在您的 PHP 設定中的 <code>opcache.interned_strings_buffer</code> 套用高於 <code>%s</code> 的值。", "Invalid SMTP password." : "無效的 SMTP 密碼", "Email setting test" : "測試郵件設定", "Well done, %s!" : "太棒了,%s!", diff --git a/apps/settings/l10n/zh_TW.js b/apps/settings/l10n/zh_TW.js index 9cb2da33342..2e00a04dc1d 100644 --- a/apps/settings/l10n/zh_TW.js +++ b/apps/settings/l10n/zh_TW.js @@ -67,6 +67,14 @@ OC.L10N.register( "Federated Cloud Sharing" : "聯盟式雲端分享", "cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "cURL 使用的版本 %1$s 過舊 (%2$s)。請更新您的作業系統,否則如 %3$s 等功能可能無法正常運作。", "Could not determine if TLS version of cURL is outdated or not because an error happened during the HTTPS request against https://nextcloud.com. Please check the nextcloud log file for more details." : "對於 https://nextcloud.com 的 HTTPS 請求發生錯誤,因此無法確定 cURL 的 TLS 是否過舊。請檢查 nextcloud 的紀錄檔以取得更多資訊。", + "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "並未載入 PHP OPcache 模組。要得到更好的效能,建議將其載入到您的 PHP 安裝中。", + "OPcache is disabled. For better performance, it is recommended to apply <code>opcache.enable=1</code> to your PHP configuration." : "已停用 OPcache。要得到更好的效能,建議在您的 PHP 設定中套用 <code>opcache.enable=1</code>。", + "OPcache is configured to remove code comments. With OPcache enabled, <code>opcache.save_comments=1</code> must be set for Nextcloud to function." : "OPcache 被設定為移除程式碼註釋。啟用 OPcache 後,必須設定 <code>opcache.save_comments=1</code> 才能讓 Nextcloud 正常運作。", + "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud 不被允許使用 OPcache API。啟用 OPcache 後,強烈建議使用 <code>opcache.restrict_api</code> 包含所有 Nextcloud 目錄,或是關閉此設定以停用 OPcache API 限制,以避免在 Nextcloud 核心或應用程式升級期間發生錯誤。", + "Nextcloud is not allowed to use the OPcache API. It is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud 不被允許使用 OPcache API。強烈建議使用 <code>opcache.restrict_api</code> 包含所有 Nextcloud 目錄,或是關閉此設定以停用 OPcache API 限制,以避免在 Nextcloud 核心或應用程式升級期間發生錯誤。", + "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.max_accelerated_files</code> to your PHP configuration with a value higher than <code>%s</code>." : "幾乎超過了 OPcache 鍵的最大數量。為確保幾乎所有指令稿都可以保留在快取中,建議在您的 PHP 設定中的 <code>opcache.max_accelerated_files</code> 套用高於 <code>%s</code> 的值。", + "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.memory_consumption</code> to your PHP configuration with a value higher than <code>%s</code>." : "OPcache 緩衝區幾乎快滿了。為確保所有指令稿都可以保留在快取中,建議在您的 PHP 設定中的 <code>opcache.memory_consumption</code> 套用高於 <code>%s</code> 的值。", + "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply <code>opcache.interned_strings_buffer</code> to your PHP configuration with a value higher than <code>%s</code>." : "OPcache 內部字串緩衝區幾乎快滿了。為確保可以有效快取重複字串,建議在您的 PHP 設定中的 <code>opcache.interned_strings_buffer</code> 套用高於 <code>%s</code> 的值。", "Invalid SMTP password." : "無效的 SMTP 密碼", "Email setting test" : "測試郵件設定", "Well done, %s!" : "太棒了,%s!", diff --git a/apps/settings/l10n/zh_TW.json b/apps/settings/l10n/zh_TW.json index cf9f3296c04..fb704815ff6 100644 --- a/apps/settings/l10n/zh_TW.json +++ b/apps/settings/l10n/zh_TW.json @@ -65,6 +65,14 @@ "Federated Cloud Sharing" : "聯盟式雲端分享", "cURL is using an outdated %1$s version (%2$s). Please update your operating system or features such as %3$s will not work reliably." : "cURL 使用的版本 %1$s 過舊 (%2$s)。請更新您的作業系統,否則如 %3$s 等功能可能無法正常運作。", "Could not determine if TLS version of cURL is outdated or not because an error happened during the HTTPS request against https://nextcloud.com. Please check the nextcloud log file for more details." : "對於 https://nextcloud.com 的 HTTPS 請求發生錯誤,因此無法確定 cURL 的 TLS 是否過舊。請檢查 nextcloud 的紀錄檔以取得更多資訊。", + "The PHP OPcache module is not loaded. For better performance it is recommended to load it into your PHP installation." : "並未載入 PHP OPcache 模組。要得到更好的效能,建議將其載入到您的 PHP 安裝中。", + "OPcache is disabled. For better performance, it is recommended to apply <code>opcache.enable=1</code> to your PHP configuration." : "已停用 OPcache。要得到更好的效能,建議在您的 PHP 設定中套用 <code>opcache.enable=1</code>。", + "OPcache is configured to remove code comments. With OPcache enabled, <code>opcache.save_comments=1</code> must be set for Nextcloud to function." : "OPcache 被設定為移除程式碼註釋。啟用 OPcache 後,必須設定 <code>opcache.save_comments=1</code> 才能讓 Nextcloud 正常運作。", + "Nextcloud is not allowed to use the OPcache API. With OPcache enabled, it is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud 不被允許使用 OPcache API。啟用 OPcache 後,強烈建議使用 <code>opcache.restrict_api</code> 包含所有 Nextcloud 目錄,或是關閉此設定以停用 OPcache API 限制,以避免在 Nextcloud 核心或應用程式升級期間發生錯誤。", + "Nextcloud is not allowed to use the OPcache API. It is highly recommended to include all Nextcloud directories with <code>opcache.restrict_api</code> or unset this setting to disable OPcache API restrictions, to prevent errors during Nextcloud core or app upgrades." : "Nextcloud 不被允許使用 OPcache API。強烈建議使用 <code>opcache.restrict_api</code> 包含所有 Nextcloud 目錄,或是關閉此設定以停用 OPcache API 限制,以避免在 Nextcloud 核心或應用程式升級期間發生錯誤。", + "The maximum number of OPcache keys is nearly exceeded. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.max_accelerated_files</code> to your PHP configuration with a value higher than <code>%s</code>." : "幾乎超過了 OPcache 鍵的最大數量。為確保幾乎所有指令稿都可以保留在快取中,建議在您的 PHP 設定中的 <code>opcache.max_accelerated_files</code> 套用高於 <code>%s</code> 的值。", + "The OPcache buffer is nearly full. To assure that all scripts can be hold in cache, it is recommended to apply <code>opcache.memory_consumption</code> to your PHP configuration with a value higher than <code>%s</code>." : "OPcache 緩衝區幾乎快滿了。為確保所有指令稿都可以保留在快取中,建議在您的 PHP 設定中的 <code>opcache.memory_consumption</code> 套用高於 <code>%s</code> 的值。", + "The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply <code>opcache.interned_strings_buffer</code> to your PHP configuration with a value higher than <code>%s</code>." : "OPcache 內部字串緩衝區幾乎快滿了。為確保可以有效快取重複字串,建議在您的 PHP 設定中的 <code>opcache.interned_strings_buffer</code> 套用高於 <code>%s</code> 的值。", "Invalid SMTP password." : "無效的 SMTP 密碼", "Email setting test" : "測試郵件設定", "Well done, %s!" : "太棒了,%s!", diff --git a/apps/settings/src/components/AuthTokenSetupDialogue.vue b/apps/settings/src/components/AuthTokenSetupDialogue.vue index a65da9552a3..6500f533881 100644 --- a/apps/settings/src/components/AuthTokenSetupDialogue.vue +++ b/apps/settings/src/components/AuthTokenSetupDialogue.vue @@ -23,6 +23,7 @@ <div v-if="!adding"> <input v-model="deviceName" type="text" + :maxlength="120" :disabled="loading" :placeholder="t('settings', 'App name')" @keydown.enter="submit"> diff --git a/apps/settings/src/store/users.js b/apps/settings/src/store/users.js index 77b02fb0682..ec15c8dd745 100644 --- a/apps/settings/src/store/users.js +++ b/apps/settings/src/store/users.js @@ -29,6 +29,7 @@ import api from './api' import axios from '@nextcloud/axios' import { generateOcsUrl } from '@nextcloud/router' +import logger from '../logger' const orderGroups = function(groups, orderBy) { /* const SORT_USERCOUNT = 1; @@ -143,22 +144,59 @@ const mutations = { }, deleteUser(state, userid) { const userIndex = state.users.findIndex(user => user.id === userid) + this.commit('updateUserCounts', { user: state.users[userIndex], actionType: 'remove' }) state.users.splice(userIndex, 1) }, addUserData(state, response) { - state.users.push(response.data.ocs.data) + const user = response.data.ocs.data + state.users.push(user) + this.commit('updateUserCounts', { user, actionType: 'create' }) }, enableDisableUser(state, { userid, enabled }) { const user = state.users.find(user => user.id === userid) user.enabled = enabled - // increment or not - if (state.userCount > 0) { - state.groups.find(group => group.id === 'disabled').usercount += enabled ? -1 : 1 - state.userCount += enabled ? 1 : -1 - user.groups.forEach(group => { - // Increment disabled count - state.groups.find(groupSearch => groupSearch.id === group).disabled += enabled ? -1 : 1 + this.commit('updateUserCounts', { user, actionType: enabled ? 'enable' : 'disable' }) + }, + // update active/disabled counts, groups counts + updateUserCounts(state, { user, actionType }) { + const disabledGroup = state.groups.find(group => group.id === 'disabled') + switch (actionType) { + case 'enable': + case 'disable': + disabledGroup.usercount += user.enabled ? -1 : 1 // update Disabled Users count + state.userCount += user.enabled ? 1 : -1 // update Active Users count + user.groups.forEach(userGroup => { + const group = state.groups.find(groupSearch => groupSearch.id === userGroup) + group.disabled += user.enabled ? -1 : 1 // update group disabled count }) + break + case 'create': + state.userCount++ // increment Active Users count + + user.groups.forEach(userGroup => { + state.groups + .find(groupSearch => groupSearch.id === userGroup) + .usercount++ // increment group total count + }) + break + case 'remove': + if (user.enabled) { + state.userCount-- // decrement Active Users count + user.groups.forEach(userGroup => { + const group = state.groups.find(groupSearch => groupSearch.id === userGroup) + group.usercount-- // decrement group total count + }) + } else { + disabledGroup.usercount-- // decrement Disabled Users count + user.groups.forEach(userGroup => { + const group = state.groups.find(groupSearch => groupSearch.id === userGroup) + group.disabled-- // decrement group disabled count + }) + } + break + default: + logger.error(`Unknown action type in updateUserCounts: '${actionType}'`) + // not throwing error to interupt execution as this is not fatal } }, setUserData(state, { userid, key, value }) { diff --git a/apps/sharebymail/composer/composer/InstalledVersions.php b/apps/sharebymail/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/sharebymail/composer/composer/InstalledVersions.php +++ b/apps/sharebymail/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/sharebymail/composer/composer/autoload_classmap.php b/apps/sharebymail/composer/composer/autoload_classmap.php index 937b14ed4f9..38fec4de278 100644 --- a/apps/sharebymail/composer/composer/autoload_classmap.php +++ b/apps/sharebymail/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/sharebymail/composer/composer/autoload_namespaces.php b/apps/sharebymail/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/sharebymail/composer/composer/autoload_namespaces.php +++ b/apps/sharebymail/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/sharebymail/composer/composer/autoload_psr4.php b/apps/sharebymail/composer/composer/autoload_psr4.php index 15fee669450..d06cafe6ae7 100644 --- a/apps/sharebymail/composer/composer/autoload_psr4.php +++ b/apps/sharebymail/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/sharebymail/composer/composer/autoload_real.php b/apps/sharebymail/composer/composer/autoload_real.php index 87493707619..47a2c20fd5e 100644 --- a/apps/sharebymail/composer/composer/autoload_real.php +++ b/apps/sharebymail/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitShareByMail } spl_autoload_register(array('ComposerAutoloaderInitShareByMail', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitShareByMail', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitShareByMail::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitShareByMail::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/sharebymail/l10n/ru.js b/apps/sharebymail/l10n/ru.js index c95791325bd..f0c4d2a5fec 100644 --- a/apps/sharebymail/l10n/ru.js +++ b/apps/sharebymail/l10n/ru.js @@ -26,6 +26,8 @@ OC.L10N.register( "Password to access {file} was sent to you" : "Вам был отправлен пароль для доступа к «{file}»", "Share by mail" : "Поделиться по почте", "Sharing %1$s failed, because this item is already shared with user %2$s" : "Не удалось предоставить доступ к %1$s, так как этот ресурс уже доступен пользователю %2$s", + "We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Мы не можем отправить вам автоматически сгенерированный пароль. Укажите действующий адрес электронной почты в личных настройках и повторите попытку.", + "Failed to send share by email. Got an invalid email address" : "Не удалось отправить ссылку общего доступа по электронной почте. Получен неверный адрес электронной почты", "Failed to send share by email" : "Не удалось предоставить общий доступ по адресу электронной почты", "%1$s shared »%2$s« with you" : "%1$s предоставил(а) вам доступ к «%2$s»", "%1$s shared »%2$s« with you." : "%1$s предоставил(а) вам доступ к «%2$s».", diff --git a/apps/sharebymail/l10n/ru.json b/apps/sharebymail/l10n/ru.json index 6583128465b..eb3d33edc32 100644 --- a/apps/sharebymail/l10n/ru.json +++ b/apps/sharebymail/l10n/ru.json @@ -24,6 +24,8 @@ "Password to access {file} was sent to you" : "Вам был отправлен пароль для доступа к «{file}»", "Share by mail" : "Поделиться по почте", "Sharing %1$s failed, because this item is already shared with user %2$s" : "Не удалось предоставить доступ к %1$s, так как этот ресурс уже доступен пользователю %2$s", + "We cannot send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Мы не можем отправить вам автоматически сгенерированный пароль. Укажите действующий адрес электронной почты в личных настройках и повторите попытку.", + "Failed to send share by email. Got an invalid email address" : "Не удалось отправить ссылку общего доступа по электронной почте. Получен неверный адрес электронной почты", "Failed to send share by email" : "Не удалось предоставить общий доступ по адресу электронной почты", "%1$s shared »%2$s« with you" : "%1$s предоставил(а) вам доступ к «%2$s»", "%1$s shared »%2$s« with you." : "%1$s предоставил(а) вам доступ к «%2$s».", diff --git a/apps/systemtags/composer/composer/InstalledVersions.php b/apps/systemtags/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/systemtags/composer/composer/InstalledVersions.php +++ b/apps/systemtags/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/systemtags/composer/composer/autoload_classmap.php b/apps/systemtags/composer/composer/autoload_classmap.php index cafa7a2459a..c2fb4daa824 100644 --- a/apps/systemtags/composer/composer/autoload_classmap.php +++ b/apps/systemtags/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/systemtags/composer/composer/autoload_namespaces.php b/apps/systemtags/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/systemtags/composer/composer/autoload_namespaces.php +++ b/apps/systemtags/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/systemtags/composer/composer/autoload_psr4.php b/apps/systemtags/composer/composer/autoload_psr4.php index cec8aaf3650..d0ed20b1bdb 100644 --- a/apps/systemtags/composer/composer/autoload_psr4.php +++ b/apps/systemtags/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/systemtags/composer/composer/autoload_real.php b/apps/systemtags/composer/composer/autoload_real.php index 81bbfbcd09c..f9bc1f2eaff 100644 --- a/apps/systemtags/composer/composer/autoload_real.php +++ b/apps/systemtags/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitSystemTags } spl_autoload_register(array('ComposerAutoloaderInitSystemTags', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitSystemTags', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitSystemTags::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitSystemTags::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/systemtags/l10n/hu.js b/apps/systemtags/l10n/hu.js index fdcf2649cb7..a69c72bae7c 100644 --- a/apps/systemtags/l10n/hu.js +++ b/apps/systemtags/l10n/hu.js @@ -4,54 +4,54 @@ OC.L10N.register( "Tag name is empty" : "A címke neve üres", "Update" : "Frissítés", "Create" : "Létrehozás", - "Select tag …" : "Címke választás...", + "Select tag …" : "Válasszon címkét…", "System tag %1$s added by the system" : "A rendszer hozzáadta a(z) %1$s rendszercímkét", - "Added system tag {systemtag}" : "{systemtag} rendszer címke hozzáadva", - "Added system tag %1$s" : "%1$s rendszer címke eltávolítva", - "%1$s added system tag %2$s" : "%1$s hozzáadta a ezt a rendszer címkét: %2$s", - "{actor} added system tag {systemtag}" : "{actor} hozzáadta a ezt a rendszer címkét: {systemtag}", + "Added system tag {systemtag}" : "{systemtag} rendszercímke hozzáadva", + "Added system tag %1$s" : "%1$s rendszercímke hozzáadva", + "%1$s added system tag %2$s" : "%1$s hozzáadta a(z) %2$s rendszercímkét", + "{actor} added system tag {systemtag}" : "{actor} hozzáadta a(z) {systemtag} rendszercímkét", "System tag %1$s removed by the system" : "A rendszer eltávolította a(z) %1$s rendszercímkét", - "Removed system tag {systemtag}" : "{systemtag} rendszer címke eltávolítva", - "Removed system tag %1$s" : "%1$s rendszer címke eltávolítva", - "%1$s removed system tag %2$s" : "%1$s eltávolította ezt a rendszer címkét: %2$s", - "{actor} removed system tag {systemtag}" : "{actor} eltávolította ezt a rendszer címkét: {systemtag}", - "You created system tag %1$s" : "Létrehoztad ezt a rendszer címkét: %1$s", - "You created system tag {systemtag}" : "Létrehoztad ezt a rendszer címkét: {systemtag}", + "Removed system tag {systemtag}" : "{systemtag} rendszercímke eltávolítva", + "Removed system tag %1$s" : "%1$s rendszercímke eltávolítva", + "%1$s removed system tag %2$s" : "%1$s eltávolította a(z) %2$s rendszercímkét", + "{actor} removed system tag {systemtag}" : "{actor} eltávolította a(z) {systemtag} rendszercímkét", + "You created system tag %1$s" : "Létrehozta a(z) %1$s rendszercímkét", + "You created system tag {systemtag}" : "Létrehozta a(z) {systemtag} rendszercímkét", "%1$s created system tag %2$s" : "%1$s létrehozta ezt a rendszer címkét: %2$s", - "{actor} created system tag {systemtag}" : "{actor} létrehozta ezt a rendszer címkét: {systemtag}", - "You deleted system tag %1$s" : "Törölted ezt a rendszer címkét: %1$s", - "You deleted system tag {systemtag}" : "Törölted ezt a rendszer címkét: {systemtag}", - "%1$s deleted system tag %2$s" : "%1$s törölte ezt a rendszer címkét: %2$s", - "{actor} deleted system tag {systemtag}" : "{actor} törölte ezt a rendszer címkét: {systemtag}", - "You updated system tag %2$s to %1$s" : "%2$s rendszer címke frissítve erre: %1$s", - "You updated system tag {oldsystemtag} to {newsystemtag}" : "{oldsystemtag} rendszer címke frissítve erre: {newsystemtag}", - "%1$s updated system tag %3$s to %2$s" : "%1$s frissítette ezt a rendszer címkét erről: %3$s erre: %2$s", - "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} frissítette ezt a rendszer címkét: {oldsystemtag} erre: {newsystemtag}", - "System tag %2$s was added to %1$s by the system" : "A rendszer hozzáadta a(z) %2$s rendszercímkét a következőhöz: %1$s", + "{actor} created system tag {systemtag}" : "{actor} létrehozta a(z) {systemtag} rendszercímkét", + "You deleted system tag %1$s" : "Törölte a(z) %1$s rendszercímkét", + "You deleted system tag {systemtag}" : "Törölte a(z) {systemtag} rendszercímkét", + "%1$s deleted system tag %2$s" : "%1$s törölte a(z) %2$s rendszercímkét", + "{actor} deleted system tag {systemtag}" : "{actor} törölte a(z) {systemtag} rendszercímkét", + "You updated system tag %2$s to %1$s" : "Frissítette a(z) %2$s rendszercímkét a következőre: %1$s", + "You updated system tag {oldsystemtag} to {newsystemtag}" : "Frissítette a(z) {oldsystemtag} rendszercímkét a következőre: {newsystemtag}", + "%1$s updated system tag %3$s to %2$s" : "%1$s erre frissítette a(z) %3$s rendszercímkét: %2$s", + "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} erre frissítette a(z) {oldsystemtag} rendszercímkét: {newsystemtag}", + "System tag %2$s was added to %1$s by the system" : "A rendszer hozzáadta a(z) %2$s rendszercímkét a(z) %1$s fájlhoz", "System tag {systemtag} was added to {file} by the system" : "A rendszer hozzáadta a(z) {systemtag} rendszercímkét a(z) {file} fájlhoz", - "You added system tag %2$s to %1$s" : "Hozzáadtad ezt a rendszer címkét: %2$s ehhez: %1$s", - "You added system tag {systemtag} to {file}" : "Hozzáadtad ezt a rendszer címkét: {systemtag} ehhez: {file}", - "%1$s added system tag %3$s to %2$s" : "%1$s hozzáadta ezt a rendszer címkét: %3$s ehhez: %2$s", - "{actor} added system tag {systemtag} to {file}" : "{actor} hozzáadta ezt a rendszer címkét: {systemtag} ehhez: {file}", - "System tag %2$s was removed from %1$s by the system" : "A rendszer eltávolította a(z) %2$s rendszercímkét a(z) %1$s fájlból", - "System tag {systemtag} was removed from {file} by the system" : "A rendszer eltávolította a(z) {systemtag} rendszercímkét a(z) {file} fájlból", - "You removed system tag %2$s from %1$s" : "Eltávolítottad ezt a rendszer címkét: %2$s innen: %1$s", - "You removed system tag {systemtag} from {file}" : "Eltávolítottad ezt a rendszer címkét: {systemtag} innen: {file}", - "%1$s removed system tag %3$s from %2$s" : "%1$s eltávolította ezt a rendszer címkét: %3$s innen: %2$s", - "{actor} removed system tag {systemtag} from {file}" : "{actor} eltávolította ezt a rendszer címkét: {systemtag} innen: {file}", + "You added system tag %2$s to %1$s" : "Hozzáadta a(z) %2$s rendszercímkét a(z) %1$s fájlhoz", + "You added system tag {systemtag} to {file}" : "Hozzáadta a(z) {systemtag} rendszercímkét a(z) {file} fájlhoz", + "%1$s added system tag %3$s to %2$s" : "%1$s hozzáadta a(z) %3$s rendszercímkét a(z) %2$s fájlhoz", + "{actor} added system tag {systemtag} to {file}" : "{actor} hozzáadta a(z) {systemtag} rendszercímkét a(z) {file} fájlhoz", + "System tag %2$s was removed from %1$s by the system" : "A rendszer eltávolította a(z) %2$s rendszercímkét a(z) %1$s fájlról", + "System tag {systemtag} was removed from {file} by the system" : "A rendszer eltávolította a(z) {systemtag} rendszercímkét a(z) {file} fájlról", + "You removed system tag %2$s from %1$s" : "Eltávolította a(z) %2$s rendszercímkét a(z) %1$s fájlról", + "You removed system tag {systemtag} from {file}" : "Eltávolította a(z) {systemtag} rendszercímkét a(z) {file} fájlról", + "%1$s removed system tag %3$s from %2$s" : "%1$s eltávolította a(z) %3$s rendszercímkét a(z) %2$s fájlról", + "{actor} removed system tag {systemtag} from {file}" : "{actor} eltávolította a(z) {systemtag} rendszercímkét a(z) {file} fájlról", "%s (restricted)" : "%s (korlátozott)", "%s (invisible)" : "%s (láthatatlan)", - "<strong>System tags</strong> for a file have been modified" : "A fájl <strong>rendszer címkéje</strong> módosítva lett", + "<strong>System tags</strong> for a file have been modified" : "A fájl <strong>rendszercímkéi</strong> módosítva lettek", "Tags" : "Címkék", "Collaborative tags" : "Együttműködési címkék", "Collaborative tagging functionality which shares tags among users." : "Együttműködő címkézési funkció, amely megosztja a címkéket a felhasználók között.", "Collaborative tagging functionality which shares tags among users. Great for teams.\n\t(If you are a provider with a multi-tenancy installation, it is advised to deactivate this app as tags are shared.)" : "Együttműködő címkézési funkció, amely megosztja a címkéket a felhasználók között. Nagyszerű a csapatok számára.\n\t(Ha Ön több szervezet számára szolgáltatást nyújtó szolgáltató, akkor ajánlott deaktiválni ezt az alkalmazást, mivel a címkék meg vannak osztva.)", "Tagged files" : "Címkézett fájlok", - "Select tags to filter by" : "Kiválasztott címkék a szűrő által:", + "Select tags to filter by" : "Válasszon címkéket a szűréshez:", "No tags found" : "Nem találhatók címkék", - "Please select tags to filter by" : "Kéjük, válasszon ki címkét a szűréshez:", - "No files found for the selected tags" : "Nem található fájl a kiválasztott címkéhez.", - "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "A közreműködő címkék elérhetőek az összes felhasználó számára. A korlátozott címkék láthatóak a felhasználók által de nem rendelhetik azt semmihez. A láthatatlan címkék belső használatra vannak fenntartva, mivel a felhasználók nem látják ezeket és nem is tudják semmihez hozzárendelni őket.", + "Please select tags to filter by" : "Válasszon címkéket a szűréshez:", + "No files found for the selected tags" : "Nem található fájl a kiválasztott címkéhez", + "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Az együttműködési címkék elérhetők az összes felhasználó számára. A korlátozott címkék láthatók a felhasználók által, de nem rendelhetik azt semmihez. A láthatatlan címkék belső használatra vannak fenntartva, mivel a felhasználók nem látják ezeket, és nem is tudják semmihez hozzárendelni őket.", "Create a new tag" : "Új címke létrehozása", "Name" : "Név", "Public" : "Nyilvános", diff --git a/apps/systemtags/l10n/hu.json b/apps/systemtags/l10n/hu.json index b8a9f8dbfb7..65cbbcb77db 100644 --- a/apps/systemtags/l10n/hu.json +++ b/apps/systemtags/l10n/hu.json @@ -2,54 +2,54 @@ "Tag name is empty" : "A címke neve üres", "Update" : "Frissítés", "Create" : "Létrehozás", - "Select tag …" : "Címke választás...", + "Select tag …" : "Válasszon címkét…", "System tag %1$s added by the system" : "A rendszer hozzáadta a(z) %1$s rendszercímkét", - "Added system tag {systemtag}" : "{systemtag} rendszer címke hozzáadva", - "Added system tag %1$s" : "%1$s rendszer címke eltávolítva", - "%1$s added system tag %2$s" : "%1$s hozzáadta a ezt a rendszer címkét: %2$s", - "{actor} added system tag {systemtag}" : "{actor} hozzáadta a ezt a rendszer címkét: {systemtag}", + "Added system tag {systemtag}" : "{systemtag} rendszercímke hozzáadva", + "Added system tag %1$s" : "%1$s rendszercímke hozzáadva", + "%1$s added system tag %2$s" : "%1$s hozzáadta a(z) %2$s rendszercímkét", + "{actor} added system tag {systemtag}" : "{actor} hozzáadta a(z) {systemtag} rendszercímkét", "System tag %1$s removed by the system" : "A rendszer eltávolította a(z) %1$s rendszercímkét", - "Removed system tag {systemtag}" : "{systemtag} rendszer címke eltávolítva", - "Removed system tag %1$s" : "%1$s rendszer címke eltávolítva", - "%1$s removed system tag %2$s" : "%1$s eltávolította ezt a rendszer címkét: %2$s", - "{actor} removed system tag {systemtag}" : "{actor} eltávolította ezt a rendszer címkét: {systemtag}", - "You created system tag %1$s" : "Létrehoztad ezt a rendszer címkét: %1$s", - "You created system tag {systemtag}" : "Létrehoztad ezt a rendszer címkét: {systemtag}", + "Removed system tag {systemtag}" : "{systemtag} rendszercímke eltávolítva", + "Removed system tag %1$s" : "%1$s rendszercímke eltávolítva", + "%1$s removed system tag %2$s" : "%1$s eltávolította a(z) %2$s rendszercímkét", + "{actor} removed system tag {systemtag}" : "{actor} eltávolította a(z) {systemtag} rendszercímkét", + "You created system tag %1$s" : "Létrehozta a(z) %1$s rendszercímkét", + "You created system tag {systemtag}" : "Létrehozta a(z) {systemtag} rendszercímkét", "%1$s created system tag %2$s" : "%1$s létrehozta ezt a rendszer címkét: %2$s", - "{actor} created system tag {systemtag}" : "{actor} létrehozta ezt a rendszer címkét: {systemtag}", - "You deleted system tag %1$s" : "Törölted ezt a rendszer címkét: %1$s", - "You deleted system tag {systemtag}" : "Törölted ezt a rendszer címkét: {systemtag}", - "%1$s deleted system tag %2$s" : "%1$s törölte ezt a rendszer címkét: %2$s", - "{actor} deleted system tag {systemtag}" : "{actor} törölte ezt a rendszer címkét: {systemtag}", - "You updated system tag %2$s to %1$s" : "%2$s rendszer címke frissítve erre: %1$s", - "You updated system tag {oldsystemtag} to {newsystemtag}" : "{oldsystemtag} rendszer címke frissítve erre: {newsystemtag}", - "%1$s updated system tag %3$s to %2$s" : "%1$s frissítette ezt a rendszer címkét erről: %3$s erre: %2$s", - "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} frissítette ezt a rendszer címkét: {oldsystemtag} erre: {newsystemtag}", - "System tag %2$s was added to %1$s by the system" : "A rendszer hozzáadta a(z) %2$s rendszercímkét a következőhöz: %1$s", + "{actor} created system tag {systemtag}" : "{actor} létrehozta a(z) {systemtag} rendszercímkét", + "You deleted system tag %1$s" : "Törölte a(z) %1$s rendszercímkét", + "You deleted system tag {systemtag}" : "Törölte a(z) {systemtag} rendszercímkét", + "%1$s deleted system tag %2$s" : "%1$s törölte a(z) %2$s rendszercímkét", + "{actor} deleted system tag {systemtag}" : "{actor} törölte a(z) {systemtag} rendszercímkét", + "You updated system tag %2$s to %1$s" : "Frissítette a(z) %2$s rendszercímkét a következőre: %1$s", + "You updated system tag {oldsystemtag} to {newsystemtag}" : "Frissítette a(z) {oldsystemtag} rendszercímkét a következőre: {newsystemtag}", + "%1$s updated system tag %3$s to %2$s" : "%1$s erre frissítette a(z) %3$s rendszercímkét: %2$s", + "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} erre frissítette a(z) {oldsystemtag} rendszercímkét: {newsystemtag}", + "System tag %2$s was added to %1$s by the system" : "A rendszer hozzáadta a(z) %2$s rendszercímkét a(z) %1$s fájlhoz", "System tag {systemtag} was added to {file} by the system" : "A rendszer hozzáadta a(z) {systemtag} rendszercímkét a(z) {file} fájlhoz", - "You added system tag %2$s to %1$s" : "Hozzáadtad ezt a rendszer címkét: %2$s ehhez: %1$s", - "You added system tag {systemtag} to {file}" : "Hozzáadtad ezt a rendszer címkét: {systemtag} ehhez: {file}", - "%1$s added system tag %3$s to %2$s" : "%1$s hozzáadta ezt a rendszer címkét: %3$s ehhez: %2$s", - "{actor} added system tag {systemtag} to {file}" : "{actor} hozzáadta ezt a rendszer címkét: {systemtag} ehhez: {file}", - "System tag %2$s was removed from %1$s by the system" : "A rendszer eltávolította a(z) %2$s rendszercímkét a(z) %1$s fájlból", - "System tag {systemtag} was removed from {file} by the system" : "A rendszer eltávolította a(z) {systemtag} rendszercímkét a(z) {file} fájlból", - "You removed system tag %2$s from %1$s" : "Eltávolítottad ezt a rendszer címkét: %2$s innen: %1$s", - "You removed system tag {systemtag} from {file}" : "Eltávolítottad ezt a rendszer címkét: {systemtag} innen: {file}", - "%1$s removed system tag %3$s from %2$s" : "%1$s eltávolította ezt a rendszer címkét: %3$s innen: %2$s", - "{actor} removed system tag {systemtag} from {file}" : "{actor} eltávolította ezt a rendszer címkét: {systemtag} innen: {file}", + "You added system tag %2$s to %1$s" : "Hozzáadta a(z) %2$s rendszercímkét a(z) %1$s fájlhoz", + "You added system tag {systemtag} to {file}" : "Hozzáadta a(z) {systemtag} rendszercímkét a(z) {file} fájlhoz", + "%1$s added system tag %3$s to %2$s" : "%1$s hozzáadta a(z) %3$s rendszercímkét a(z) %2$s fájlhoz", + "{actor} added system tag {systemtag} to {file}" : "{actor} hozzáadta a(z) {systemtag} rendszercímkét a(z) {file} fájlhoz", + "System tag %2$s was removed from %1$s by the system" : "A rendszer eltávolította a(z) %2$s rendszercímkét a(z) %1$s fájlról", + "System tag {systemtag} was removed from {file} by the system" : "A rendszer eltávolította a(z) {systemtag} rendszercímkét a(z) {file} fájlról", + "You removed system tag %2$s from %1$s" : "Eltávolította a(z) %2$s rendszercímkét a(z) %1$s fájlról", + "You removed system tag {systemtag} from {file}" : "Eltávolította a(z) {systemtag} rendszercímkét a(z) {file} fájlról", + "%1$s removed system tag %3$s from %2$s" : "%1$s eltávolította a(z) %3$s rendszercímkét a(z) %2$s fájlról", + "{actor} removed system tag {systemtag} from {file}" : "{actor} eltávolította a(z) {systemtag} rendszercímkét a(z) {file} fájlról", "%s (restricted)" : "%s (korlátozott)", "%s (invisible)" : "%s (láthatatlan)", - "<strong>System tags</strong> for a file have been modified" : "A fájl <strong>rendszer címkéje</strong> módosítva lett", + "<strong>System tags</strong> for a file have been modified" : "A fájl <strong>rendszercímkéi</strong> módosítva lettek", "Tags" : "Címkék", "Collaborative tags" : "Együttműködési címkék", "Collaborative tagging functionality which shares tags among users." : "Együttműködő címkézési funkció, amely megosztja a címkéket a felhasználók között.", "Collaborative tagging functionality which shares tags among users. Great for teams.\n\t(If you are a provider with a multi-tenancy installation, it is advised to deactivate this app as tags are shared.)" : "Együttműködő címkézési funkció, amely megosztja a címkéket a felhasználók között. Nagyszerű a csapatok számára.\n\t(Ha Ön több szervezet számára szolgáltatást nyújtó szolgáltató, akkor ajánlott deaktiválni ezt az alkalmazást, mivel a címkék meg vannak osztva.)", "Tagged files" : "Címkézett fájlok", - "Select tags to filter by" : "Kiválasztott címkék a szűrő által:", + "Select tags to filter by" : "Válasszon címkéket a szűréshez:", "No tags found" : "Nem találhatók címkék", - "Please select tags to filter by" : "Kéjük, válasszon ki címkét a szűréshez:", - "No files found for the selected tags" : "Nem található fájl a kiválasztott címkéhez.", - "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "A közreműködő címkék elérhetőek az összes felhasználó számára. A korlátozott címkék láthatóak a felhasználók által de nem rendelhetik azt semmihez. A láthatatlan címkék belső használatra vannak fenntartva, mivel a felhasználók nem látják ezeket és nem is tudják semmihez hozzárendelni őket.", + "Please select tags to filter by" : "Válasszon címkéket a szűréshez:", + "No files found for the selected tags" : "Nem található fájl a kiválasztott címkéhez", + "Collaborative tags are available for all users. Restricted tags are visible to users but cannot be assigned by them. Invisible tags are for internal use, since users cannot see or assign them." : "Az együttműködési címkék elérhetők az összes felhasználó számára. A korlátozott címkék láthatók a felhasználók által, de nem rendelhetik azt semmihez. A láthatatlan címkék belső használatra vannak fenntartva, mivel a felhasználók nem látják ezeket, és nem is tudják semmihez hozzárendelni őket.", "Create a new tag" : "Új címke létrehozása", "Name" : "Név", "Public" : "Nyilvános", diff --git a/apps/testing/composer/composer/InstalledVersions.php b/apps/testing/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/testing/composer/composer/InstalledVersions.php +++ b/apps/testing/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/testing/composer/composer/autoload_classmap.php b/apps/testing/composer/composer/autoload_classmap.php index 96bc2b7b682..c4688abedf4 100644 --- a/apps/testing/composer/composer/autoload_classmap.php +++ b/apps/testing/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/testing/composer/composer/autoload_namespaces.php b/apps/testing/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/testing/composer/composer/autoload_namespaces.php +++ b/apps/testing/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/testing/composer/composer/autoload_psr4.php b/apps/testing/composer/composer/autoload_psr4.php index 4ac8da6cc69..416052e6c12 100644 --- a/apps/testing/composer/composer/autoload_psr4.php +++ b/apps/testing/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/testing/composer/composer/autoload_real.php b/apps/testing/composer/composer/autoload_real.php index 220aa05db64..805c585644d 100644 --- a/apps/testing/composer/composer/autoload_real.php +++ b/apps/testing/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitTesting } spl_autoload_register(array('ComposerAutoloaderInitTesting', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitTesting', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitTesting::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitTesting::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/testing/lib/Locking/FakeDBLockingProvider.php b/apps/testing/lib/Locking/FakeDBLockingProvider.php index a8a83812749..5f8ea399477 100644 --- a/apps/testing/lib/Locking/FakeDBLockingProvider.php +++ b/apps/testing/lib/Locking/FakeDBLockingProvider.php @@ -25,7 +25,7 @@ namespace OCA\Testing\Locking; use OCP\AppFramework\Utility\ITimeFactory; use OCP\IDBConnection; -use OCP\ILogger; +use Psr\Log\LoggerInterface; class FakeDBLockingProvider extends \OC\Lock\DBLockingProvider { // Lock for 10 hours just to be sure @@ -37,12 +37,11 @@ class FakeDBLockingProvider extends \OC\Lock\DBLockingProvider { */ protected $db; - /** - * @param \OCP\IDBConnection $connection - * @param \OCP\ILogger $logger - * @param \OCP\AppFramework\Utility\ITimeFactory $timeFactory - */ - public function __construct(IDBConnection $connection, ILogger $logger, ITimeFactory $timeFactory) { + public function __construct( + IDBConnection $connection, + LoggerInterface $logger, + ITimeFactory $timeFactory + ) { parent::__construct($connection, $logger, $timeFactory); $this->db = $connection; } diff --git a/apps/twofactor_backupcodes/composer/composer/InstalledVersions.php b/apps/twofactor_backupcodes/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/twofactor_backupcodes/composer/composer/InstalledVersions.php +++ b/apps/twofactor_backupcodes/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/twofactor_backupcodes/composer/composer/autoload_classmap.php b/apps/twofactor_backupcodes/composer/composer/autoload_classmap.php index 93196a5a886..16dda3f615a 100644 --- a/apps/twofactor_backupcodes/composer/composer/autoload_classmap.php +++ b/apps/twofactor_backupcodes/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/twofactor_backupcodes/composer/composer/autoload_namespaces.php b/apps/twofactor_backupcodes/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/twofactor_backupcodes/composer/composer/autoload_namespaces.php +++ b/apps/twofactor_backupcodes/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/twofactor_backupcodes/composer/composer/autoload_psr4.php b/apps/twofactor_backupcodes/composer/composer/autoload_psr4.php index c54d4c9819c..873cc7acf2f 100644 --- a/apps/twofactor_backupcodes/composer/composer/autoload_psr4.php +++ b/apps/twofactor_backupcodes/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/twofactor_backupcodes/composer/composer/autoload_real.php b/apps/twofactor_backupcodes/composer/composer/autoload_real.php index 54580be4664..0c6e6b19f33 100644 --- a/apps/twofactor_backupcodes/composer/composer/autoload_real.php +++ b/apps/twofactor_backupcodes/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitTwoFactorBackupCodes } spl_autoload_register(array('ComposerAutoloaderInitTwoFactorBackupCodes', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitTwoFactorBackupCodes', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitTwoFactorBackupCodes::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitTwoFactorBackupCodes::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/updatenotification/composer/composer/InstalledVersions.php b/apps/updatenotification/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/updatenotification/composer/composer/InstalledVersions.php +++ b/apps/updatenotification/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/updatenotification/composer/composer/autoload_classmap.php b/apps/updatenotification/composer/composer/autoload_classmap.php index af7ec72d8e1..9d31d6c36db 100644 --- a/apps/updatenotification/composer/composer/autoload_classmap.php +++ b/apps/updatenotification/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/updatenotification/composer/composer/autoload_namespaces.php b/apps/updatenotification/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/updatenotification/composer/composer/autoload_namespaces.php +++ b/apps/updatenotification/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/updatenotification/composer/composer/autoload_psr4.php b/apps/updatenotification/composer/composer/autoload_psr4.php index 361c205335a..c4e1b615fcc 100644 --- a/apps/updatenotification/composer/composer/autoload_psr4.php +++ b/apps/updatenotification/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/updatenotification/composer/composer/autoload_real.php b/apps/updatenotification/composer/composer/autoload_real.php index 92169a76d4c..89854cd42f4 100644 --- a/apps/updatenotification/composer/composer/autoload_real.php +++ b/apps/updatenotification/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitUpdateNotification } spl_autoload_register(array('ComposerAutoloaderInitUpdateNotification', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitUpdateNotification', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitUpdateNotification::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitUpdateNotification::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/updatenotification/l10n/cs.js b/apps/updatenotification/l10n/cs.js index b10780960a7..172c2fc8584 100644 --- a/apps/updatenotification/l10n/cs.js +++ b/apps/updatenotification/l10n/cs.js @@ -16,6 +16,7 @@ OC.L10N.register( "Apps missing compatible version" : "Aplikace, které neexistují v kompatibilní verzi", "View in store" : "Zobrazit v katalogu aplikací", "Apps with compatible version" : "Aplikace, které existují v kompatibilní verzi", + "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "Prosím mějte na paměti, že pro instance s více než 100 uživateli není doporučeno aktualizovat přes webový nástroj pro aktualizaci! V takovém případě namísto toho proveďte aktualizaci prostřednictvím příkazového řádku!", "Open updater" : "Otevřít nástroj pro aktualizaci", "Download now" : "Stáhnout nyní", "Please use the command line updater to update." : "Aktualizaci proveďte nástrojem z příkazového řádku.", @@ -23,6 +24,7 @@ OC.L10N.register( "The update check is not yet finished. Please refresh the page." : "Kontrola aktualizací ještě neskončila. Načtěte stránku znovu.", "Your version is up to date." : "Používáte nejnovější verzi.", "A non-default update server is in use to be checked for updates:" : "Pro kontrolu aktualizací se používá jiný než výchozí server:", + "You can change the update channel below which also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Níže je možné změnit kanál aktualizací, což se projeví také na stránce pro správu aplikací. Např. po přepnutí kanálu na beta (testování před vydáním), budou zde nabízeny také aktualizace na testovací verze aplikací.", "Update channel:" : "Kanál aktualizací:", "You can always update to a newer version. But you can never downgrade to a more stable version." : "Vždy je možné přejít na novější verzi. Poté už se ale nelze vrátit zpět ke starší verzi ze stabilního kanálu.", "Notify members of the following groups about available updates:" : "Upozorňovat členy následujících skupin na dostupnost aktualizací:", diff --git a/apps/updatenotification/l10n/cs.json b/apps/updatenotification/l10n/cs.json index a870c2b0f5f..e53b0576977 100644 --- a/apps/updatenotification/l10n/cs.json +++ b/apps/updatenotification/l10n/cs.json @@ -14,6 +14,7 @@ "Apps missing compatible version" : "Aplikace, které neexistují v kompatibilní verzi", "View in store" : "Zobrazit v katalogu aplikací", "Apps with compatible version" : "Aplikace, které existují v kompatibilní verzi", + "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "Prosím mějte na paměti, že pro instance s více než 100 uživateli není doporučeno aktualizovat přes webový nástroj pro aktualizaci! V takovém případě namísto toho proveďte aktualizaci prostřednictvím příkazového řádku!", "Open updater" : "Otevřít nástroj pro aktualizaci", "Download now" : "Stáhnout nyní", "Please use the command line updater to update." : "Aktualizaci proveďte nástrojem z příkazového řádku.", @@ -21,6 +22,7 @@ "The update check is not yet finished. Please refresh the page." : "Kontrola aktualizací ještě neskončila. Načtěte stránku znovu.", "Your version is up to date." : "Používáte nejnovější verzi.", "A non-default update server is in use to be checked for updates:" : "Pro kontrolu aktualizací se používá jiný než výchozí server:", + "You can change the update channel below which also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Níže je možné změnit kanál aktualizací, což se projeví také na stránce pro správu aplikací. Např. po přepnutí kanálu na beta (testování před vydáním), budou zde nabízeny také aktualizace na testovací verze aplikací.", "Update channel:" : "Kanál aktualizací:", "You can always update to a newer version. But you can never downgrade to a more stable version." : "Vždy je možné přejít na novější verzi. Poté už se ale nelze vrátit zpět ke starší verzi ze stabilního kanálu.", "Notify members of the following groups about available updates:" : "Upozorňovat členy následujících skupin na dostupnost aktualizací:", diff --git a/apps/updatenotification/l10n/de_DE.js b/apps/updatenotification/l10n/de_DE.js index 58559faf459..f5af1009edc 100644 --- a/apps/updatenotification/l10n/de_DE.js +++ b/apps/updatenotification/l10n/de_DE.js @@ -16,6 +16,7 @@ OC.L10N.register( "Apps missing compatible version" : "Für diese Apps fehlen kompatible Versionen", "View in store" : "Im Store anzeigen", "Apps with compatible version" : "Für diese Apps gibt es kompatible Versionen", + "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "Bitte beachten Sie, dass der Web Updater bei mehr als 100 Benutzern nicht empfohlen wird! Bitte verwenden Sie stattdessen den Befehlszeilen-Updater!", "Open updater" : "Updater öffnen", "Download now" : "Jetzt herunterladen", "Please use the command line updater to update." : "Verwenden Sie zum Aktualisieren den Befehlszeilen-Updater.", @@ -23,6 +24,7 @@ OC.L10N.register( "The update check is not yet finished. Please refresh the page." : "Die Aktualisierungsprüfung ist noch nicht abgeschlossen. Bitte die Seite neu laden.", "Your version is up to date." : "Ihre Version ist aktuell.", "A non-default update server is in use to be checked for updates:" : "Es wird ein Nicht-Standard-Aktualisierungsserver zum Prüfen auf Aktualisierungen verwendet:", + "You can change the update channel below which also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Sie können den Aktualisierungskanal unten ändern, was sich auch auf die Verwaltungsseite der Apps auswirkt. Z.B. Nach dem Wechsel zum Beta-Kanal werden Ihnen Beta-App-Updates auf der App-Verwaltungsseite angeboten.", "Update channel:" : "Update-Kanal:", "You can always update to a newer version. But you can never downgrade to a more stable version." : "Es kann immer auf eine neuere Version aktualisiert werden. Jedoch kann kein Downgrade auf eine stabilere Version erfolgen. ", "Notify members of the following groups about available updates:" : "Informieren Sie die Mitglieder der folgenden Gruppen über verfügbare Updates:", diff --git a/apps/updatenotification/l10n/de_DE.json b/apps/updatenotification/l10n/de_DE.json index 2b54bb987bd..c8808c81e19 100644 --- a/apps/updatenotification/l10n/de_DE.json +++ b/apps/updatenotification/l10n/de_DE.json @@ -14,6 +14,7 @@ "Apps missing compatible version" : "Für diese Apps fehlen kompatible Versionen", "View in store" : "Im Store anzeigen", "Apps with compatible version" : "Für diese Apps gibt es kompatible Versionen", + "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "Bitte beachten Sie, dass der Web Updater bei mehr als 100 Benutzern nicht empfohlen wird! Bitte verwenden Sie stattdessen den Befehlszeilen-Updater!", "Open updater" : "Updater öffnen", "Download now" : "Jetzt herunterladen", "Please use the command line updater to update." : "Verwenden Sie zum Aktualisieren den Befehlszeilen-Updater.", @@ -21,6 +22,7 @@ "The update check is not yet finished. Please refresh the page." : "Die Aktualisierungsprüfung ist noch nicht abgeschlossen. Bitte die Seite neu laden.", "Your version is up to date." : "Ihre Version ist aktuell.", "A non-default update server is in use to be checked for updates:" : "Es wird ein Nicht-Standard-Aktualisierungsserver zum Prüfen auf Aktualisierungen verwendet:", + "You can change the update channel below which also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Sie können den Aktualisierungskanal unten ändern, was sich auch auf die Verwaltungsseite der Apps auswirkt. Z.B. Nach dem Wechsel zum Beta-Kanal werden Ihnen Beta-App-Updates auf der App-Verwaltungsseite angeboten.", "Update channel:" : "Update-Kanal:", "You can always update to a newer version. But you can never downgrade to a more stable version." : "Es kann immer auf eine neuere Version aktualisiert werden. Jedoch kann kein Downgrade auf eine stabilere Version erfolgen. ", "Notify members of the following groups about available updates:" : "Informieren Sie die Mitglieder der folgenden Gruppen über verfügbare Updates:", diff --git a/apps/updatenotification/l10n/hu.js b/apps/updatenotification/l10n/hu.js index fba74394c00..d535d99283e 100644 --- a/apps/updatenotification/l10n/hu.js +++ b/apps/updatenotification/l10n/hu.js @@ -16,6 +16,7 @@ OC.L10N.register( "Apps missing compatible version" : "Az alkalmazásoknak nincs kompatibilis verziója", "View in store" : "Megtekintés a tárban", "Apps with compatible version" : "Alkalmazások kompatibilis verzióval", + "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "Vegye figyelembe, hogy a webes frissítő több mint 100 felhasználóval nem ajánlott. Használja helyette a parancssoros frissítőt.", "Open updater" : "Frissítő megnyitása", "Download now" : "Letöltés most", "Please use the command line updater to update." : "Az frissítéshez kérjük használja a parancssoros frissítéskezelőt.", @@ -23,6 +24,7 @@ OC.L10N.register( "The update check is not yet finished. Please refresh the page." : "A frissítéskeresés még nem ért véget. Frissítse az oldalt.", "Your version is up to date." : "A verziója naprakész.", "A non-default update server is in use to be checked for updates:" : "Egy nem alapértelmezett frissítési kiszolgáló van használatban a frissítések kereséséhez:", + "You can change the update channel below which also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Alább módosíthatja a frissítési csatornát, amely érinti az alkalmazáskezelés oldalt is. Például ha a béta csatornára bált, akkor a béta alkalmazásfrissítések is fel lesznek kínálva az alkalmazáskezelés oldalon.", "Update channel:" : "Frissítési csatorna:", "You can always update to a newer version. But you can never downgrade to a more stable version." : "Bármikor frissíthet egy újabb verzióra, viszont sosem léphet vissza egy stabilabb verzióra.", "Notify members of the following groups about available updates:" : "A következő csoport tagjainak értesítése az elérhető frissítésekről:", diff --git a/apps/updatenotification/l10n/hu.json b/apps/updatenotification/l10n/hu.json index a8701d8b0e4..9b21c0b49d7 100644 --- a/apps/updatenotification/l10n/hu.json +++ b/apps/updatenotification/l10n/hu.json @@ -14,6 +14,7 @@ "Apps missing compatible version" : "Az alkalmazásoknak nincs kompatibilis verziója", "View in store" : "Megtekintés a tárban", "Apps with compatible version" : "Alkalmazások kompatibilis verzióval", + "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "Vegye figyelembe, hogy a webes frissítő több mint 100 felhasználóval nem ajánlott. Használja helyette a parancssoros frissítőt.", "Open updater" : "Frissítő megnyitása", "Download now" : "Letöltés most", "Please use the command line updater to update." : "Az frissítéshez kérjük használja a parancssoros frissítéskezelőt.", @@ -21,6 +22,7 @@ "The update check is not yet finished. Please refresh the page." : "A frissítéskeresés még nem ért véget. Frissítse az oldalt.", "Your version is up to date." : "A verziója naprakész.", "A non-default update server is in use to be checked for updates:" : "Egy nem alapértelmezett frissítési kiszolgáló van használatban a frissítések kereséséhez:", + "You can change the update channel below which also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Alább módosíthatja a frissítési csatornát, amely érinti az alkalmazáskezelés oldalt is. Például ha a béta csatornára bált, akkor a béta alkalmazásfrissítések is fel lesznek kínálva az alkalmazáskezelés oldalon.", "Update channel:" : "Frissítési csatorna:", "You can always update to a newer version. But you can never downgrade to a more stable version." : "Bármikor frissíthet egy újabb verzióra, viszont sosem léphet vissza egy stabilabb verzióra.", "Notify members of the following groups about available updates:" : "A következő csoport tagjainak értesítése az elérhető frissítésekről:", diff --git a/apps/updatenotification/l10n/lt_LT.js b/apps/updatenotification/l10n/lt_LT.js index 879f3377f30..835d04c6f95 100644 --- a/apps/updatenotification/l10n/lt_LT.js +++ b/apps/updatenotification/l10n/lt_LT.js @@ -1,7 +1,7 @@ OC.L10N.register( "updatenotification", { - "{version} is available. Get more information on how to update." : "Yra prieinama {version}. Gaukite daugiau informacijos apie tai kaip atnaujinti.", + "{version} is available. Get more information on how to update." : "Yra prieinama {version}. Gaukite daugiau informacijos apie tai, kaip atnaujinti.", "Channel updated" : "Kanalas atnaujintas", "Update notifications" : "Atnaujinimų pranešimai", "The update server could not be reached since %d days to check for new updates." : " Atnaujinimo serveris nepasiekiamas %d dienas.", diff --git a/apps/updatenotification/l10n/lt_LT.json b/apps/updatenotification/l10n/lt_LT.json index bf7df4f2c3d..9695c5ffefe 100644 --- a/apps/updatenotification/l10n/lt_LT.json +++ b/apps/updatenotification/l10n/lt_LT.json @@ -1,5 +1,5 @@ { "translations": { - "{version} is available. Get more information on how to update." : "Yra prieinama {version}. Gaukite daugiau informacijos apie tai kaip atnaujinti.", + "{version} is available. Get more information on how to update." : "Yra prieinama {version}. Gaukite daugiau informacijos apie tai, kaip atnaujinti.", "Channel updated" : "Kanalas atnaujintas", "Update notifications" : "Atnaujinimų pranešimai", "The update server could not be reached since %d days to check for new updates." : " Atnaujinimo serveris nepasiekiamas %d dienas.", diff --git a/apps/updatenotification/l10n/pl.js b/apps/updatenotification/l10n/pl.js index f979965cbd4..4c0a581e9a1 100644 --- a/apps/updatenotification/l10n/pl.js +++ b/apps/updatenotification/l10n/pl.js @@ -16,6 +16,7 @@ OC.L10N.register( "Apps missing compatible version" : "W aplikacjach brakuje zgodnej wersji", "View in store" : "Zobacz w sklepie", "Apps with compatible version" : "Aplikacje z kompatybilną wersją", + "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "Należy pamiętać, że aktualizacja sieciowa nie jest zalecana przy więcej niż 100 użytkownikach! Zamiast tego użyj narzędzia do aktualizacji wiersza poleceń!", "Open updater" : "Otwórz aktualizator", "Download now" : "Pobierz teraz", "Please use the command line updater to update." : "Użyj wiersza poleceń do aktualizacji.", @@ -23,6 +24,7 @@ OC.L10N.register( "The update check is not yet finished. Please refresh the page." : "Sprawdzanie aktualizacji nie zostało jeszcze zakończone. Odśwież stronę.", "Your version is up to date." : "Posiadasz aktualną wersję.", "A non-default update server is in use to be checked for updates:" : "Do sprawdzania aktualizacji nie są używane domyślne serwery aktualizacji:", + "You can change the update channel below which also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Możesz zmienić kanał aktualizacji poniżej, co wpływa również na stronę zarządzania aplikacjami. Np. po przejściu na kanał beta aktualizacje aplikacji beta będą dostępne na stronie zarządzania aplikacjami.", "Update channel:" : "Kanał aktualizacji:", "You can always update to a newer version. But you can never downgrade to a more stable version." : "Zawsze możesz zaktualizować do nowszej wersji. Ale nigdy nie możesz powrócić do wersji bardziej stabilnej.", "Notify members of the following groups about available updates:" : "Powiadom członków następujących grup o dostępnych aktualizacjach:", diff --git a/apps/updatenotification/l10n/pl.json b/apps/updatenotification/l10n/pl.json index 4a653ea5541..281cdbe998f 100644 --- a/apps/updatenotification/l10n/pl.json +++ b/apps/updatenotification/l10n/pl.json @@ -14,6 +14,7 @@ "Apps missing compatible version" : "W aplikacjach brakuje zgodnej wersji", "View in store" : "Zobacz w sklepie", "Apps with compatible version" : "Aplikacje z kompatybilną wersją", + "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "Należy pamiętać, że aktualizacja sieciowa nie jest zalecana przy więcej niż 100 użytkownikach! Zamiast tego użyj narzędzia do aktualizacji wiersza poleceń!", "Open updater" : "Otwórz aktualizator", "Download now" : "Pobierz teraz", "Please use the command line updater to update." : "Użyj wiersza poleceń do aktualizacji.", @@ -21,6 +22,7 @@ "The update check is not yet finished. Please refresh the page." : "Sprawdzanie aktualizacji nie zostało jeszcze zakończone. Odśwież stronę.", "Your version is up to date." : "Posiadasz aktualną wersję.", "A non-default update server is in use to be checked for updates:" : "Do sprawdzania aktualizacji nie są używane domyślne serwery aktualizacji:", + "You can change the update channel below which also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Możesz zmienić kanał aktualizacji poniżej, co wpływa również na stronę zarządzania aplikacjami. Np. po przejściu na kanał beta aktualizacje aplikacji beta będą dostępne na stronie zarządzania aplikacjami.", "Update channel:" : "Kanał aktualizacji:", "You can always update to a newer version. But you can never downgrade to a more stable version." : "Zawsze możesz zaktualizować do nowszej wersji. Ale nigdy nie możesz powrócić do wersji bardziej stabilnej.", "Notify members of the following groups about available updates:" : "Powiadom członków następujących grup o dostępnych aktualizacjach:", diff --git a/apps/updatenotification/l10n/tr.js b/apps/updatenotification/l10n/tr.js index d09d9f7df63..30dc1c81e84 100644 --- a/apps/updatenotification/l10n/tr.js +++ b/apps/updatenotification/l10n/tr.js @@ -16,6 +16,7 @@ OC.L10N.register( "Apps missing compatible version" : "Uyumlu sürümü olmayan uygulamalar", "View in store" : "Mağazada görüntüle", "Apps with compatible version" : "Uyumlu sürümü olan uygulamalar", + "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "100 kullanıcı üzerinde web güncelleyicinin kullanılmasının önerilmediğini unutmayın! Lütfen bunun yerine komut satırı güncelleyicisini kullanın!", "Open updater" : "Güncelleyici aç", "Download now" : "İndir", "Please use the command line updater to update." : "Lütfen güncellemek için komut satırı güncelleyiciyi kullanın.", @@ -23,6 +24,7 @@ OC.L10N.register( "The update check is not yet finished. Please refresh the page." : "Güncelleme denetimi henüz tamamlanmadı. Lütfen sayfayı yenileyin.", "Your version is up to date." : "Sürümünüz güncel.", "A non-default update server is in use to be checked for updates:" : "Güncelleme denetimi için varsayılan sunucudan başka bir sunucu kullanılıyor:", + "You can change the update channel below which also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Uygulama yönetimi sayfasını da etkileyen aşağıdaki güncelleme kanalını değiştirebilirsiniz. Örneğin. beta kanalına geçtikten sonra, uygulama yönetimi sayfasında beta uygulama güncellemeleri sunulur.", "Update channel:" : "Güncelleme kanalı:", "You can always update to a newer version. But you can never downgrade to a more stable version." : "Her zaman bir üst sürüme güncelleyebilirsiniz ancak asla daha kararlı bir eski sürüme dönemezsiniz.", "Notify members of the following groups about available updates:" : "Yayınlanan güncellemeler şu grupların üyelerine bildirilsin:", diff --git a/apps/updatenotification/l10n/tr.json b/apps/updatenotification/l10n/tr.json index 651f7e6765c..ca1c260bf21 100644 --- a/apps/updatenotification/l10n/tr.json +++ b/apps/updatenotification/l10n/tr.json @@ -14,6 +14,7 @@ "Apps missing compatible version" : "Uyumlu sürümü olmayan uygulamalar", "View in store" : "Mağazada görüntüle", "Apps with compatible version" : "Uyumlu sürümü olan uygulamalar", + "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "100 kullanıcı üzerinde web güncelleyicinin kullanılmasının önerilmediğini unutmayın! Lütfen bunun yerine komut satırı güncelleyicisini kullanın!", "Open updater" : "Güncelleyici aç", "Download now" : "İndir", "Please use the command line updater to update." : "Lütfen güncellemek için komut satırı güncelleyiciyi kullanın.", @@ -21,6 +22,7 @@ "The update check is not yet finished. Please refresh the page." : "Güncelleme denetimi henüz tamamlanmadı. Lütfen sayfayı yenileyin.", "Your version is up to date." : "Sürümünüz güncel.", "A non-default update server is in use to be checked for updates:" : "Güncelleme denetimi için varsayılan sunucudan başka bir sunucu kullanılıyor:", + "You can change the update channel below which also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "Uygulama yönetimi sayfasını da etkileyen aşağıdaki güncelleme kanalını değiştirebilirsiniz. Örneğin. beta kanalına geçtikten sonra, uygulama yönetimi sayfasında beta uygulama güncellemeleri sunulur.", "Update channel:" : "Güncelleme kanalı:", "You can always update to a newer version. But you can never downgrade to a more stable version." : "Her zaman bir üst sürüme güncelleyebilirsiniz ancak asla daha kararlı bir eski sürüme dönemezsiniz.", "Notify members of the following groups about available updates:" : "Yayınlanan güncellemeler şu grupların üyelerine bildirilsin:", diff --git a/apps/updatenotification/l10n/zh_HK.js b/apps/updatenotification/l10n/zh_HK.js index 236b050ecde..8484706d735 100644 --- a/apps/updatenotification/l10n/zh_HK.js +++ b/apps/updatenotification/l10n/zh_HK.js @@ -16,6 +16,7 @@ OC.L10N.register( "Apps missing compatible version" : "應用程式缺少兼容版本", "View in store" : "在商店中檢視", "Apps with compatible version" : "具有兼容版本的應用程式", + "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "請注意,不建議使用超過 100 個用戶的網絡更新程序! 請改用命令行更新程序!", "Open updater" : "打開更新程式", "Download now" : "立即下載", "Please use the command line updater to update." : "請使用命令行更新程序進行更新。", diff --git a/apps/updatenotification/l10n/zh_HK.json b/apps/updatenotification/l10n/zh_HK.json index e8b1f71eb1f..fb4bb9d55d7 100644 --- a/apps/updatenotification/l10n/zh_HK.json +++ b/apps/updatenotification/l10n/zh_HK.json @@ -14,6 +14,7 @@ "Apps missing compatible version" : "應用程式缺少兼容版本", "View in store" : "在商店中檢視", "Apps with compatible version" : "具有兼容版本的應用程式", + "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "請注意,不建議使用超過 100 個用戶的網絡更新程序! 請改用命令行更新程序!", "Open updater" : "打開更新程式", "Download now" : "立即下載", "Please use the command line updater to update." : "請使用命令行更新程序進行更新。", diff --git a/apps/updatenotification/l10n/zh_TW.js b/apps/updatenotification/l10n/zh_TW.js index b0d2c6bc1b7..6f85eccc8c4 100644 --- a/apps/updatenotification/l10n/zh_TW.js +++ b/apps/updatenotification/l10n/zh_TW.js @@ -16,6 +16,7 @@ OC.L10N.register( "Apps missing compatible version" : "應用程式缺少相容的版本", "View in store" : "在商店中檢視", "Apps with compatible version" : "有相容版本的應用程式", + "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "請注意,不建議超過 100 個使用者的站台使用網頁更新程式!請改用命令列更新程式!", "Open updater" : "打開更新程式", "Download now" : "現在下載", "Please use the command line updater to update." : "請使用命令列更新程式來更新。", @@ -23,6 +24,7 @@ OC.L10N.register( "The update check is not yet finished. Please refresh the page." : "更新檢查未完成。請重新整理此頁面。", "Your version is up to date." : "您的版本是最新版。", "A non-default update server is in use to be checked for updates:" : "使用非預設的更新伺服器檢查更新:", + "You can change the update channel below which also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "您可以變更下方的更新頻道,這也會影響應用程式管理頁面。例如,切換到測試版頻道後,在應用程式管理頁更新應用程式時也會提供測試版。", "Update channel:" : "更新頻道:", "You can always update to a newer version. But you can never downgrade to a more stable version." : "您始終可以更新到較新的版本。但您無法降級到較穩定的版本。", "Notify members of the following groups about available updates:" : "有可用更新時通知這些群組的成員:", diff --git a/apps/updatenotification/l10n/zh_TW.json b/apps/updatenotification/l10n/zh_TW.json index c23a320d644..6ba3b8ef7f1 100644 --- a/apps/updatenotification/l10n/zh_TW.json +++ b/apps/updatenotification/l10n/zh_TW.json @@ -14,6 +14,7 @@ "Apps missing compatible version" : "應用程式缺少相容的版本", "View in store" : "在商店中檢視", "Apps with compatible version" : "有相容版本的應用程式", + "Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!" : "請注意,不建議超過 100 個使用者的站台使用網頁更新程式!請改用命令列更新程式!", "Open updater" : "打開更新程式", "Download now" : "現在下載", "Please use the command line updater to update." : "請使用命令列更新程式來更新。", @@ -21,6 +22,7 @@ "The update check is not yet finished. Please refresh the page." : "更新檢查未完成。請重新整理此頁面。", "Your version is up to date." : "您的版本是最新版。", "A non-default update server is in use to be checked for updates:" : "使用非預設的更新伺服器檢查更新:", + "You can change the update channel below which also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page." : "您可以變更下方的更新頻道,這也會影響應用程式管理頁面。例如,切換到測試版頻道後,在應用程式管理頁更新應用程式時也會提供測試版。", "Update channel:" : "更新頻道:", "You can always update to a newer version. But you can never downgrade to a more stable version." : "您始終可以更新到較新的版本。但您無法降級到較穩定的版本。", "Notify members of the following groups about available updates:" : "有可用更新時通知這些群組的成員:", diff --git a/apps/updatenotification/lib/Settings/Admin.php b/apps/updatenotification/lib/Settings/Admin.php index 880b43906eb..b8062efd81f 100644 --- a/apps/updatenotification/lib/Settings/Admin.php +++ b/apps/updatenotification/lib/Settings/Admin.php @@ -29,6 +29,8 @@ declare(strict_types=1); */ namespace OCA\UpdateNotification\Settings; +use OC\User\Backend; +use OCP\User\Backend\ICountUsersBackend; use OCA\UpdateNotification\UpdateChecker; use OCP\AppFramework\Http\TemplateResponse; use OCP\IConfig; @@ -38,6 +40,8 @@ use OCP\L10N\IFactory; use OCP\Settings\ISettings; use OCP\Support\Subscription\IRegistry; use OCP\Util; +use OCP\IUserManager; +use Psr\Log\LoggerInterface; class Admin implements ISettings { /** @var IConfig */ @@ -52,6 +56,10 @@ class Admin implements ISettings { private $l10nFactory; /** @var IRegistry */ private $subscriptionRegistry; + /** @var IUserManager */ + private $userManager; + /** @var LoggerInterface */ + private $logger; public function __construct( IConfig $config, @@ -59,7 +67,9 @@ class Admin implements ISettings { IGroupManager $groupManager, IDateTimeFormatter $dateTimeFormatter, IFactory $l10nFactory, - IRegistry $subscriptionRegistry + IRegistry $subscriptionRegistry, + IUserManager $userManager, + LoggerInterface $logger ) { $this->config = $config; $this->updateChecker = $updateChecker; @@ -67,6 +77,8 @@ class Admin implements ISettings { $this->dateTimeFormatter = $dateTimeFormatter; $this->l10nFactory = $l10nFactory; $this->subscriptionRegistry = $subscriptionRegistry; + $this->userManager = $userManager; + $this->logger = $logger; } /** @@ -111,6 +123,7 @@ class Admin implements ISettings { 'downloadLink' => empty($updateState['downloadLink']) ? '' : $updateState['downloadLink'], 'changes' => $this->filterChanges($updateState['changes'] ?? []), 'webUpdaterEnabled' => !$this->config->getSystemValue('upgrade.disable-web', false), + 'isWebUpdaterRecommended' => $this->isWebUpdaterRecommended(), 'updaterEnabled' => empty($updateState['updaterEnabled']) ? false : $updateState['updaterEnabled'], 'versionIsEol' => empty($updateState['versionIsEol']) ? false : $updateState['versionIsEol'], 'isDefaultUpdateServerURL' => $isDefaultUpdateServerURL, @@ -184,4 +197,28 @@ class Admin implements ISettings { public function getPriority(): int { return 11; } + + private function isWebUpdaterRecommended(): bool { + return $this->getUserCount() < 100; + } + + /** + * @see https://github.com/nextcloud/server/blob/39494fbf794d982f6f6551c984e6ca4c4e947d01/lib/private/Support/Subscription/Registry.php#L188-L216 implementation reference + */ + private function getUserCount(): int { + $userCount = 0; + $backends = $this->userManager->getBackends(); + foreach ($backends as $backend) { + // TODO: change below to 'if ($backend instanceof ICountUsersBackend) {' + if ($backend->implementsActions(Backend::COUNT_USERS)) { + /** @var ICountUsersBackend $backend */ + $backendUsers = $backend->countUsers(); + if ($backendUsers !== false) { + $userCount += $backendUsers; + } + } + } + + return $userCount; + } } diff --git a/apps/updatenotification/src/components/UpdateNotification.vue b/apps/updatenotification/src/components/UpdateNotification.vue index 09c229fb36e..6fc48978852 100644 --- a/apps/updatenotification/src/components/UpdateNotification.vue +++ b/apps/updatenotification/src/components/UpdateNotification.vue @@ -41,6 +41,12 @@ </ul> </template> + <template v-if="!isWebUpdaterRecommended && updaterEnabled && webUpdaterEnabled"> + <h3 class="warning"> + {{ t('updatenotification', 'Please note that the web updater is not recommended with more than 100 users! Please use the command line updater instead!') }} + </h3> + </template> + <div> <a v-if="updaterEnabled && webUpdaterEnabled" href="#" @@ -78,6 +84,10 @@ </template> </div> + <div> + {{ t('updatenotification', 'You can change the update channel below which also affects the apps management page. E.g. after switching to the beta channel, beta app updates will be offered to you in the apps management page.') }} + </div> + <h3 class="update-channel-selector"> {{ t('updatenotification', 'Update channel:') }} <div v-click-outside="closeUpdateChannelMenu" class="update-menu"> @@ -136,6 +146,7 @@ export default { lastCheckedDate: '', isUpdateChecked: false, webUpdaterEnabled: true, + isWebUpdaterRecommended: true, updaterEnabled: true, versionIsEol: false, downloadLink: '', @@ -328,6 +339,7 @@ export default { this.lastCheckedDate = data.lastChecked this.isUpdateChecked = data.isUpdateChecked this.webUpdaterEnabled = data.webUpdaterEnabled + this.isWebUpdaterRecommended = data.isWebUpdaterRecommended this.updaterEnabled = data.updaterEnabled this.downloadLink = data.downloadLink this.isNewVersionAvailable = data.isNewVersionAvailable diff --git a/apps/updatenotification/tests/Settings/AdminTest.php b/apps/updatenotification/tests/Settings/AdminTest.php index 186c5a09070..852504fb45a 100644 --- a/apps/updatenotification/tests/Settings/AdminTest.php +++ b/apps/updatenotification/tests/Settings/AdminTest.php @@ -41,6 +41,8 @@ use OCP\L10N\ILanguageIterator; use OCP\Support\Subscription\IRegistry; use OCP\Util; use Test\TestCase; +use OCP\IUserManager; +use Psr\Log\LoggerInterface; class AdminTest extends TestCase { /** @var IFactory|\PHPUnit\Framework\MockObject\MockObject */ @@ -57,6 +59,10 @@ class AdminTest extends TestCase { private $dateTimeFormatter; /** @var IRegistry|\PHPUnit\Framework\MockObject\MockObject */ private $subscriptionRegistry; + /** @var IUserManager|\PHPUnit\Framework\MockObject\MockObject */ + private $userManager; + /** @var LoggerInterface|\PHPUnit\Framework\MockObject\MockObject */ + private $logger; protected function setUp(): void { parent::setUp(); @@ -67,13 +73,58 @@ class AdminTest extends TestCase { $this->dateTimeFormatter = $this->createMock(IDateTimeFormatter::class); $this->l10nFactory = $this->createMock(IFactory::class); $this->subscriptionRegistry = $this->createMock(IRegistry::class); + $this->userManager = $this->createMock(IUserManager::class); + $this->logger = $this->createMock(LoggerInterface::class); $this->admin = new Admin( - $this->config, $this->updateChecker, $this->groupManager, $this->dateTimeFormatter, $this->l10nFactory, $this->subscriptionRegistry + $this->config, + $this->updateChecker, + $this->groupManager, + $this->dateTimeFormatter, + $this->l10nFactory, + $this->subscriptionRegistry, + $this->userManager, + $this->logger ); } public function testGetFormWithUpdate() { + $backend1 = $this->createMock(UserInterface::class); + $backend2 = $this->createMock(UserInterface::class); + $backend3 = $this->createMock(UserInterface::class); + $backend1 + ->expects($this->once()) + ->method('implementsActions') + ->with(Backend::COUNT_USERS) + ->willReturn(false); + $backend2 + ->expects($this->once()) + ->method('implementsActions') + ->with(Backend::COUNT_USERS) + ->willReturn(true); + $backend3 + ->expects($this->once()) + ->method('implementsActions') + ->with(Backend::COUNT_USERS) + ->willReturn(true); + $backend1 + ->expects($this->never()) + ->method('countUsers'); + $backend2 + ->expects($this->once()) + ->method('countUsers') + ->with() + ->willReturn(false); + $backend3 + ->expects($this->once()) + ->method('countUsers') + ->with() + ->willReturn(5); + $this->userManager + ->expects($this->once()) + ->method('getBackends') + ->with() + ->willReturn([$backend1, $backend2, $backend3]); $channels = [ 'daily', 'beta', @@ -145,6 +196,7 @@ class AdminTest extends TestCase { 'downloadLink' => 'https://downloads.nextcloud.org/server', 'changes' => [], 'webUpdaterEnabled' => true, + 'isWebUpdaterRecommended' => true, 'updaterEnabled' => true, 'versionIsEol' => false, 'isDefaultUpdateServerURL' => true, @@ -161,6 +213,42 @@ class AdminTest extends TestCase { } public function testGetFormWithUpdateAndChangedUpdateServer() { + $backend1 = $this->createMock(UserInterface::class); + $backend2 = $this->createMock(UserInterface::class); + $backend3 = $this->createMock(UserInterface::class); + $backend1 + ->expects($this->once()) + ->method('implementsActions') + ->with(Backend::COUNT_USERS) + ->willReturn(false); + $backend2 + ->expects($this->once()) + ->method('implementsActions') + ->with(Backend::COUNT_USERS) + ->willReturn(true); + $backend3 + ->expects($this->once()) + ->method('implementsActions') + ->with(Backend::COUNT_USERS) + ->willReturn(true); + $backend1 + ->expects($this->never()) + ->method('countUsers'); + $backend2 + ->expects($this->once()) + ->method('countUsers') + ->with() + ->willReturn(false); + $backend3 + ->expects($this->once()) + ->method('countUsers') + ->with() + ->willReturn(5); + $this->userManager + ->expects($this->once()) + ->method('getBackends') + ->with() + ->willReturn([$backend1, $backend2, $backend3]); $channels = [ 'daily', 'beta', @@ -232,6 +320,7 @@ class AdminTest extends TestCase { 'downloadLink' => 'https://downloads.nextcloud.org/server', 'changes' => [], 'webUpdaterEnabled' => false, + 'isWebUpdaterRecommended' => true, 'updaterEnabled' => true, 'versionIsEol' => false, 'isDefaultUpdateServerURL' => false, @@ -248,6 +337,42 @@ class AdminTest extends TestCase { } public function testGetFormWithUpdateAndCustomersUpdateServer() { + $backend1 = $this->createMock(UserInterface::class); + $backend2 = $this->createMock(UserInterface::class); + $backend3 = $this->createMock(UserInterface::class); + $backend1 + ->expects($this->once()) + ->method('implementsActions') + ->with(Backend::COUNT_USERS) + ->willReturn(false); + $backend2 + ->expects($this->once()) + ->method('implementsActions') + ->with(Backend::COUNT_USERS) + ->willReturn(true); + $backend3 + ->expects($this->once()) + ->method('implementsActions') + ->with(Backend::COUNT_USERS) + ->willReturn(true); + $backend1 + ->expects($this->never()) + ->method('countUsers'); + $backend2 + ->expects($this->once()) + ->method('countUsers') + ->with() + ->willReturn(false); + $backend3 + ->expects($this->once()) + ->method('countUsers') + ->with() + ->willReturn(5); + $this->userManager + ->expects($this->once()) + ->method('getBackends') + ->with() + ->willReturn([$backend1, $backend2, $backend3]); $channels = [ 'daily', 'beta', @@ -319,6 +444,7 @@ class AdminTest extends TestCase { 'downloadLink' => 'https://downloads.nextcloud.org/server', 'changes' => [], 'webUpdaterEnabled' => true, + 'isWebUpdaterRecommended' => true, 'updaterEnabled' => true, 'versionIsEol' => false, 'isDefaultUpdateServerURL' => true, diff --git a/apps/user_ldap/composer/composer/InstalledVersions.php b/apps/user_ldap/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/user_ldap/composer/composer/InstalledVersions.php +++ b/apps/user_ldap/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/user_ldap/composer/composer/autoload_classmap.php b/apps/user_ldap/composer/composer/autoload_classmap.php index cffb2aaa9fe..12ede37a941 100644 --- a/apps/user_ldap/composer/composer/autoload_classmap.php +++ b/apps/user_ldap/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( @@ -67,6 +67,7 @@ return array( 'OCA\\User_LDAP\\Migration\\Version1130Date20220110154717' => $baseDir . '/../lib/Migration/Version1130Date20220110154717.php', 'OCA\\User_LDAP\\Migration\\Version1130Date20220110154718' => $baseDir . '/../lib/Migration/Version1130Date20220110154718.php', 'OCA\\User_LDAP\\Migration\\Version1130Date20220110154719' => $baseDir . '/../lib/Migration/Version1130Date20220110154719.php', + 'OCA\\User_LDAP\\Migration\\Version1141Date20220323143801' => $baseDir . '/../lib/Migration/Version1141Date20220323143801.php', 'OCA\\User_LDAP\\Notification\\Notifier' => $baseDir . '/../lib/Notification/Notifier.php', 'OCA\\User_LDAP\\PagedResults\\IAdapter' => $baseDir . '/../lib/PagedResults/IAdapter.php', 'OCA\\User_LDAP\\PagedResults\\Php73' => $baseDir . '/../lib/PagedResults/Php73.php', diff --git a/apps/user_ldap/composer/composer/autoload_namespaces.php b/apps/user_ldap/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/user_ldap/composer/composer/autoload_namespaces.php +++ b/apps/user_ldap/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/user_ldap/composer/composer/autoload_psr4.php b/apps/user_ldap/composer/composer/autoload_psr4.php index 5251e2c1f81..787eb338039 100644 --- a/apps/user_ldap/composer/composer/autoload_psr4.php +++ b/apps/user_ldap/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/user_ldap/composer/composer/autoload_real.php b/apps/user_ldap/composer/composer/autoload_real.php index 7cfd2b52370..0e1a6558e55 100644 --- a/apps/user_ldap/composer/composer/autoload_real.php +++ b/apps/user_ldap/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitUser_LDAP } spl_autoload_register(array('ComposerAutoloaderInitUser_LDAP', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitUser_LDAP', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitUser_LDAP::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitUser_LDAP::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/user_ldap/composer/composer/autoload_static.php b/apps/user_ldap/composer/composer/autoload_static.php index 5928ff78ef0..ecf5e4167f6 100644 --- a/apps/user_ldap/composer/composer/autoload_static.php +++ b/apps/user_ldap/composer/composer/autoload_static.php @@ -82,6 +82,7 @@ class ComposerStaticInitUser_LDAP 'OCA\\User_LDAP\\Migration\\Version1130Date20220110154717' => __DIR__ . '/..' . '/../lib/Migration/Version1130Date20220110154717.php', 'OCA\\User_LDAP\\Migration\\Version1130Date20220110154718' => __DIR__ . '/..' . '/../lib/Migration/Version1130Date20220110154718.php', 'OCA\\User_LDAP\\Migration\\Version1130Date20220110154719' => __DIR__ . '/..' . '/../lib/Migration/Version1130Date20220110154719.php', + 'OCA\\User_LDAP\\Migration\\Version1141Date20220323143801' => __DIR__ . '/..' . '/../lib/Migration/Version1141Date20220323143801.php', 'OCA\\User_LDAP\\Notification\\Notifier' => __DIR__ . '/..' . '/../lib/Notification/Notifier.php', 'OCA\\User_LDAP\\PagedResults\\IAdapter' => __DIR__ . '/..' . '/../lib/PagedResults/IAdapter.php', 'OCA\\User_LDAP\\PagedResults\\Php73' => __DIR__ . '/..' . '/../lib/PagedResults/Php73.php', diff --git a/apps/user_ldap/css/settings.css b/apps/user_ldap/css/settings.css index 54d0e2dbb0c..f99310118a9 100644 --- a/apps/user_ldap/css/settings.css +++ b/apps/user_ldap/css/settings.css @@ -9,7 +9,8 @@ } .tablerow { - display: table-row; + display: flex; + align-items: center; white-space: nowrap; text-align: left; } @@ -226,3 +227,8 @@ select[multiple=multiple] + button { #ldapSettings div.ui-accordion-content { background: white; } + +ul.ui-multiselect-checkboxes label { + display: flex; + align-items: center; +} diff --git a/apps/user_ldap/js/vendor/ui-multiselect/jquery.multiselect.css b/apps/user_ldap/css/vendor/ui-multiselect/jquery.multiselect.css index 9b81c3bdcfb..9b81c3bdcfb 100644 --- a/apps/user_ldap/js/vendor/ui-multiselect/jquery.multiselect.css +++ b/apps/user_ldap/css/vendor/ui-multiselect/jquery.multiselect.css diff --git a/apps/user_ldap/l10n/pl.js b/apps/user_ldap/l10n/pl.js index 7f4f7e62a26..314f8d6963c 100644 --- a/apps/user_ldap/l10n/pl.js +++ b/apps/user_ldap/l10n/pl.js @@ -44,7 +44,7 @@ OC.L10N.register( "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Zmiana trybu włączy automatyczne odpytywanie LDAP-a. W zależności od jego wielkości może to trochę potrwać. Nadal chcesz zmienić tryb?", "Mode switch" : "Przełącznik trybów", "Select attributes" : "Wybierz atrybuty", - "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Użytkownik nie znaleziony. Sprawdź nazwę i atrybuty logowania. Filtr efektywny (aby skopiować i wkleić do wiersza poleceń): <br/>", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Użytkownik nie znaleziony. Sprawdź atrybuty logowania i nazwę użytkownika. Filtr efektywny (do kopiowania i wklejania w celu sprawdzenia poprawności w wierszu poleceń): <br/>", "User found and settings verified." : "Znaleziono użytkownika i zweryfikowano ustawienia.", "Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Rozważ zawężenie wyszukiwania, gdyż obejmuje ono wielu użytkowników, z tylko pierwszy będzie mógł się zalogować.", "An unspecified error occurred. Please check log and settings." : "Wystąpił nieoczekiwany błąd. Sprawdź logi i ustawienia.", diff --git a/apps/user_ldap/l10n/pl.json b/apps/user_ldap/l10n/pl.json index 3ee88adc88f..e052d5bcb44 100644 --- a/apps/user_ldap/l10n/pl.json +++ b/apps/user_ldap/l10n/pl.json @@ -42,7 +42,7 @@ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Zmiana trybu włączy automatyczne odpytywanie LDAP-a. W zależności od jego wielkości może to trochę potrwać. Nadal chcesz zmienić tryb?", "Mode switch" : "Przełącznik trybów", "Select attributes" : "Wybierz atrybuty", - "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Użytkownik nie znaleziony. Sprawdź nazwę i atrybuty logowania. Filtr efektywny (aby skopiować i wkleić do wiersza poleceń): <br/>", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Użytkownik nie znaleziony. Sprawdź atrybuty logowania i nazwę użytkownika. Filtr efektywny (do kopiowania i wklejania w celu sprawdzenia poprawności w wierszu poleceń): <br/>", "User found and settings verified." : "Znaleziono użytkownika i zweryfikowano ustawienia.", "Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Rozważ zawężenie wyszukiwania, gdyż obejmuje ono wielu użytkowników, z tylko pierwszy będzie mógł się zalogować.", "An unspecified error occurred. Please check log and settings." : "Wystąpił nieoczekiwany błąd. Sprawdź logi i ustawienia.", diff --git a/apps/user_ldap/l10n/sv.js b/apps/user_ldap/l10n/sv.js index 4f6055f4e41..6048151ac39 100644 --- a/apps/user_ldap/l10n/sv.js +++ b/apps/user_ldap/l10n/sv.js @@ -27,20 +27,20 @@ OC.L10N.register( "Select object classes" : "Välj objekt-klasser", "Please check the credentials, they seem to be wrong." : "Vänligen kontrollera dina uppgifter, de verkar vara fel.", "Please specify the port, it could not be auto-detected." : "Vänligen ange porten, den kunde inte upptäckas automatiskt.", - "Base DN could not be auto-detected, please revise credentials, host and port." : "Grundläggande DN kunde inte upptäckas automatiskt, vänligen dubbelkolla dina uppgifter, värd och port.", - "Could not detect Base DN, please enter it manually." : "Kunde inte upptäcka Base DN, vänligen ange det manuellt.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "Grundläggande DN kunde inte upptäckas automatiskt, dubbelkolla dina uppgifter, värd och port.", + "Could not detect Base DN, please enter it manually." : "Kunde inte upptäcka Base DN, ange det manuellt.", "{nthServer}. Server" : "{nthServer}. Server", "No object found in the given Base DN. Please revise." : "Inget objekt funnet i den givna Base DN. Vänligen granska.", "More than 1,000 directory entries available." : "Mer än 1,000 katalogposter tillgängliga.", "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} post tillgänglig inom den medföljande Base DN","{objectsFound} poster tillgängliga inom den medföljande Base DN"], - "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Ett fel uppstod. Vänligen kontrollera Base DN, och även anslutningsinställningar och referenser.", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Ett fel uppstod. Kontrollera Base DN, och även anslutningsinställningar och referenser.", "Do you really want to delete the current Server Configuration?" : "Vill du verkligen ta bort den nuvarande serverinställningen?", "Confirm Deletion" : "Bekräfta radering", "Mappings cleared successfully!" : "Rensning av mappningar lyckades!", "Error while clearing the mappings." : "Fel uppstod under rensning av mappningar", - "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonym bindning inte tillåten. Vänligen ange en användar-DN och lösenord.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonym bindning inte tillåten. Ange en användar-DN och lösenord.", "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP Operations error. Anonym bindning kanske inte längre tillåts.", - "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Sparandet misslyckades. Vänligen kontrollera att databasen är verksam. Uppdatera innan du fortsätter.", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Sparandet misslyckades. Kontrollera att databasen är verksam. Uppdatera innan du fortsätter.", "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Byte av läge kommer aktivera automatiska LDAP förfrågningar. Beroende på din LDAP storlek kan de ta ett tag. Vill du fortfarande ändra läge?", "Mode switch" : "Lägesändring", "Select attributes" : "Välj attribut", @@ -49,7 +49,7 @@ OC.L10N.register( "Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Överväg att specificera din sökning eftersom den resulterade i många användare och bara den första kommer att kunna logga in.", "An unspecified error occurred. Please check log and settings." : "Ett ospecificerat fel inträffade. Vänligen kontrollera loggen och inställningarna.", "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Sökfiltret är ogiltigt, troligen på grund av syntaxproblem som ojämnt antal öppna och slutna klamrar. Vänligen granska.", - "Please provide a login name to test against" : "Vänligen ange ett inloggningsnamn att försöka ansluta med", + "Please provide a login name to test against" : "Ange ett inloggningsnamn att försöka ansluta med", "Password change rejected. Hint: " : "Lösenordsbyte nekad. Anledning/tips: ", "Please login with the new password" : "Vänligen logga in med det nya lösenordet", "LDAP User backend" : "LDAP användarbackend", @@ -102,7 +102,7 @@ OC.L10N.register( "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Undviker automatiska LDAP-förfrågningar. Bättre för större installationer, men kräver en del LDAP-kunskap.", "Manually enter LDAP filters (recommended for large directories)" : "Ange LDAP-filter manuellt (rekommenderat för stora kataloger)", "Listing and searching for users is constrained by these criteria:" : "Listning och sökning av användare är begränsade efter dessa kriterier:", - "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "De mest vanliga objektklasserna för användare är organizationalPerson, person, user och inetOrgPerson. Om du inte är säker vilken objektklass som ska väljas, vänligen hör med din mappadministratör.", + "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "De mest vanliga objektklasserna för användare är organizationalPerson, person, user och inetOrgPerson. Om du inte är säker vilken objektklass som ska väljas, hör med din mappadministratör.", "The filter specifies which LDAP users shall have access to the %s instance." : "Filtret specificerar vilka LDAP-användare som skall ha åtkomst till %s instans", "Verify settings and count users" : "Verifiera inställningar och räkna användare", "Saving" : "Sparar", @@ -122,7 +122,7 @@ OC.L10N.register( "Groups" : "Grupper", "Expert" : "Expert", "Advanced" : "Avancerad", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Varning:</b> PHP LDAP-modulen är inte installerad, backend kommer inte att fungera. Vänligen be din systemadministratör att installera den.", + "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Varning:</b> PHP LDAP-modulen är inte installerad, backend kommer inte att fungera. Be din systemadministratör att installera den.", "Connection Settings" : "Uppkopplingsinställningar", "Configuration Active" : "Konfiguration aktiv", "When unchecked, this configuration will be skipped." : "Ifall denna är avbockad så kommer konfigurationen att skippas.", @@ -182,7 +182,7 @@ OC.L10N.register( "Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Användarnamn används för att lagra och tilldela metadata. För att exakt identifiera användare har varje LDAP-användare ett internt användarnamn. Detta kräver en mappning från användarnamn till LDAP-användare. Det skapade användarnamnet är mappat till UUID för LDAP-användaren. Dessutom cachas DN för att minska LDAP-interaktion, men den används inte för identifiering. Om DN ändras kommer ändringarna att hittas. Det interna användarnamnet används på nytt. Att rensa mappningarna kommer att ha rester överallt. Att rensa mappningarna är inte konfigurationskänsligt, det påverkar alla LDAP-konfigurationer! Rensa aldrig mappningarna i en produktionsmiljö, bara i en test- eller experimentfas.", "Clear Username-LDAP User Mapping" : "Rensa användarnamn-LDAP användarmappning", "Clear Groupname-LDAP Group Mapping" : "Rensa gruppnamn-LDAP gruppmappning", - "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Ett anslutningsfel till LDAP / AD uppstod. Vänligen granska värd, port och inloggningsuppgifter.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Ett anslutningsfel till LDAP / AD uppstod. Granska värd, port och inloggningsuppgifter.", "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : " \"%uid\"-platshållaren saknas. Den kommer bli ersatt med inloggningsnamn när LDAP / AD efterfrågas.", "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Grupplådan var inaktiverat eftersom LDAP/AD-servern inte stödjer memberOf.", "LDAP / AD integration" : "LDAP / AD integration", diff --git a/apps/user_ldap/l10n/sv.json b/apps/user_ldap/l10n/sv.json index f2847e1d812..b8e7ca43ef2 100644 --- a/apps/user_ldap/l10n/sv.json +++ b/apps/user_ldap/l10n/sv.json @@ -25,20 +25,20 @@ "Select object classes" : "Välj objekt-klasser", "Please check the credentials, they seem to be wrong." : "Vänligen kontrollera dina uppgifter, de verkar vara fel.", "Please specify the port, it could not be auto-detected." : "Vänligen ange porten, den kunde inte upptäckas automatiskt.", - "Base DN could not be auto-detected, please revise credentials, host and port." : "Grundläggande DN kunde inte upptäckas automatiskt, vänligen dubbelkolla dina uppgifter, värd och port.", - "Could not detect Base DN, please enter it manually." : "Kunde inte upptäcka Base DN, vänligen ange det manuellt.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "Grundläggande DN kunde inte upptäckas automatiskt, dubbelkolla dina uppgifter, värd och port.", + "Could not detect Base DN, please enter it manually." : "Kunde inte upptäcka Base DN, ange det manuellt.", "{nthServer}. Server" : "{nthServer}. Server", "No object found in the given Base DN. Please revise." : "Inget objekt funnet i den givna Base DN. Vänligen granska.", "More than 1,000 directory entries available." : "Mer än 1,000 katalogposter tillgängliga.", "_{objectsFound} entry available within the provided Base DN_::_{objectsFound} entries available within the provided Base DN_" : ["{objectsFound} post tillgänglig inom den medföljande Base DN","{objectsFound} poster tillgängliga inom den medföljande Base DN"], - "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Ett fel uppstod. Vänligen kontrollera Base DN, och även anslutningsinställningar och referenser.", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Ett fel uppstod. Kontrollera Base DN, och även anslutningsinställningar och referenser.", "Do you really want to delete the current Server Configuration?" : "Vill du verkligen ta bort den nuvarande serverinställningen?", "Confirm Deletion" : "Bekräfta radering", "Mappings cleared successfully!" : "Rensning av mappningar lyckades!", "Error while clearing the mappings." : "Fel uppstod under rensning av mappningar", - "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonym bindning inte tillåten. Vänligen ange en användar-DN och lösenord.", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "Anonym bindning inte tillåten. Ange en användar-DN och lösenord.", "LDAP Operations error. Anonymous bind might not be allowed." : "LDAP Operations error. Anonym bindning kanske inte längre tillåts.", - "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Sparandet misslyckades. Vänligen kontrollera att databasen är verksam. Uppdatera innan du fortsätter.", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Sparandet misslyckades. Kontrollera att databasen är verksam. Uppdatera innan du fortsätter.", "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Byte av läge kommer aktivera automatiska LDAP förfrågningar. Beroende på din LDAP storlek kan de ta ett tag. Vill du fortfarande ändra läge?", "Mode switch" : "Lägesändring", "Select attributes" : "Välj attribut", @@ -47,7 +47,7 @@ "Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Överväg att specificera din sökning eftersom den resulterade i många användare och bara den första kommer att kunna logga in.", "An unspecified error occurred. Please check log and settings." : "Ett ospecificerat fel inträffade. Vänligen kontrollera loggen och inställningarna.", "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Sökfiltret är ogiltigt, troligen på grund av syntaxproblem som ojämnt antal öppna och slutna klamrar. Vänligen granska.", - "Please provide a login name to test against" : "Vänligen ange ett inloggningsnamn att försöka ansluta med", + "Please provide a login name to test against" : "Ange ett inloggningsnamn att försöka ansluta med", "Password change rejected. Hint: " : "Lösenordsbyte nekad. Anledning/tips: ", "Please login with the new password" : "Vänligen logga in med det nya lösenordet", "LDAP User backend" : "LDAP användarbackend", @@ -100,7 +100,7 @@ "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Undviker automatiska LDAP-förfrågningar. Bättre för större installationer, men kräver en del LDAP-kunskap.", "Manually enter LDAP filters (recommended for large directories)" : "Ange LDAP-filter manuellt (rekommenderat för stora kataloger)", "Listing and searching for users is constrained by these criteria:" : "Listning och sökning av användare är begränsade efter dessa kriterier:", - "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "De mest vanliga objektklasserna för användare är organizationalPerson, person, user och inetOrgPerson. Om du inte är säker vilken objektklass som ska väljas, vänligen hör med din mappadministratör.", + "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "De mest vanliga objektklasserna för användare är organizationalPerson, person, user och inetOrgPerson. Om du inte är säker vilken objektklass som ska väljas, hör med din mappadministratör.", "The filter specifies which LDAP users shall have access to the %s instance." : "Filtret specificerar vilka LDAP-användare som skall ha åtkomst till %s instans", "Verify settings and count users" : "Verifiera inställningar och räkna användare", "Saving" : "Sparar", @@ -120,7 +120,7 @@ "Groups" : "Grupper", "Expert" : "Expert", "Advanced" : "Avancerad", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Varning:</b> PHP LDAP-modulen är inte installerad, backend kommer inte att fungera. Vänligen be din systemadministratör att installera den.", + "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Varning:</b> PHP LDAP-modulen är inte installerad, backend kommer inte att fungera. Be din systemadministratör att installera den.", "Connection Settings" : "Uppkopplingsinställningar", "Configuration Active" : "Konfiguration aktiv", "When unchecked, this configuration will be skipped." : "Ifall denna är avbockad så kommer konfigurationen att skippas.", @@ -180,7 +180,7 @@ "Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Användarnamn används för att lagra och tilldela metadata. För att exakt identifiera användare har varje LDAP-användare ett internt användarnamn. Detta kräver en mappning från användarnamn till LDAP-användare. Det skapade användarnamnet är mappat till UUID för LDAP-användaren. Dessutom cachas DN för att minska LDAP-interaktion, men den används inte för identifiering. Om DN ändras kommer ändringarna att hittas. Det interna användarnamnet används på nytt. Att rensa mappningarna kommer att ha rester överallt. Att rensa mappningarna är inte konfigurationskänsligt, det påverkar alla LDAP-konfigurationer! Rensa aldrig mappningarna i en produktionsmiljö, bara i en test- eller experimentfas.", "Clear Username-LDAP User Mapping" : "Rensa användarnamn-LDAP användarmappning", "Clear Groupname-LDAP Group Mapping" : "Rensa gruppnamn-LDAP gruppmappning", - "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Ett anslutningsfel till LDAP / AD uppstod. Vänligen granska värd, port och inloggningsuppgifter.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Ett anslutningsfel till LDAP / AD uppstod. Granska värd, port och inloggningsuppgifter.", "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : " \"%uid\"-platshållaren saknas. Den kommer bli ersatt med inloggningsnamn när LDAP / AD efterfrågas.", "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Grupplådan var inaktiverat eftersom LDAP/AD-servern inte stödjer memberOf.", "LDAP / AD integration" : "LDAP / AD integration", diff --git a/apps/user_ldap/l10n/zh_TW.js b/apps/user_ldap/l10n/zh_TW.js index 355278ff69c..3c1f9320b87 100644 --- a/apps/user_ldap/l10n/zh_TW.js +++ b/apps/user_ldap/l10n/zh_TW.js @@ -164,7 +164,7 @@ OC.L10N.register( "Paging chunksize" : "分頁區塊大小", "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "分頁 LDAP 搜尋使用的區塊大小可能會回傳大量結果,如使用者或群組列舉。(在這種情況下,將其設定為 0 將會停用分頁 LDAP 搜尋。)", "Enable LDAP password changes per user" : "啟用每個使用者的 LDAP 密碼", - "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "允許 LDAP 使用者變更他們的密碼,並允許超級管理員與群組管理員變更其 LDAP 使用者的密碼。僅當在 LDAP 伺服器上設定了對應的存取控制策略時,此選項才會有效。因為密碼以明文形式傳送到 LDAP 伺服器,因此必須使用傳輸加密,且必須在 LDAP 伺服氣上設定密碼雜湊。", + "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "允許 LDAP 使用者變更他們的密碼,並允許超級管理員與群組管理員變更其 LDAP 使用者的密碼。僅當在 LDAP 伺服器上設定了對應的存取控制策略時,此選項才會有效。因為密碼以明文形式傳送到 LDAP 伺服器,因此必須使用傳輸加密,且必須在 LDAP 伺服器上設定密碼雜湊。", "(New password is sent as plain text to LDAP)" : "(新密碼會以明文傳送給 LDAP)", "Default password policy DN" : "預設密碼策略 DN", "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "預設密碼策略的 DN,其將用於密碼過期處理。僅當啟用了每個使用者的 LDAP 密碼變更且 OpenLDAP 支援時才能正常運作。保留為空將停用密碼過期處理。", diff --git a/apps/user_ldap/l10n/zh_TW.json b/apps/user_ldap/l10n/zh_TW.json index dc0cacf3678..ec8e1840fc3 100644 --- a/apps/user_ldap/l10n/zh_TW.json +++ b/apps/user_ldap/l10n/zh_TW.json @@ -162,7 +162,7 @@ "Paging chunksize" : "分頁區塊大小", "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "分頁 LDAP 搜尋使用的區塊大小可能會回傳大量結果,如使用者或群組列舉。(在這種情況下,將其設定為 0 將會停用分頁 LDAP 搜尋。)", "Enable LDAP password changes per user" : "啟用每個使用者的 LDAP 密碼", - "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "允許 LDAP 使用者變更他們的密碼,並允許超級管理員與群組管理員變更其 LDAP 使用者的密碼。僅當在 LDAP 伺服器上設定了對應的存取控制策略時,此選項才會有效。因為密碼以明文形式傳送到 LDAP 伺服器,因此必須使用傳輸加密,且必須在 LDAP 伺服氣上設定密碼雜湊。", + "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "允許 LDAP 使用者變更他們的密碼,並允許超級管理員與群組管理員變更其 LDAP 使用者的密碼。僅當在 LDAP 伺服器上設定了對應的存取控制策略時,此選項才會有效。因為密碼以明文形式傳送到 LDAP 伺服器,因此必須使用傳輸加密,且必須在 LDAP 伺服器上設定密碼雜湊。", "(New password is sent as plain text to LDAP)" : "(新密碼會以明文傳送給 LDAP)", "Default password policy DN" : "預設密碼策略 DN", "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "預設密碼策略的 DN,其將用於密碼過期處理。僅當啟用了每個使用者的 LDAP 密碼變更且 OpenLDAP 支援時才能正常運作。保留為空將停用密碼過期處理。", diff --git a/apps/user_ldap/lib/Command/CreateEmptyConfig.php b/apps/user_ldap/lib/Command/CreateEmptyConfig.php index 8b1736e3a53..f7f04e28e60 100644 --- a/apps/user_ldap/lib/Command/CreateEmptyConfig.php +++ b/apps/user_ldap/lib/Command/CreateEmptyConfig.php @@ -59,6 +59,7 @@ class CreateEmptyConfig extends Command { protected function execute(InputInterface $input, OutputInterface $output): int { $configPrefix = $this->helper->getNextServerConfigurationPrefix(); $configHolder = new Configuration($configPrefix); + $configHolder->ldapConfigurationActive = false; $configHolder->saveConfiguration(); $prose = ''; diff --git a/apps/user_ldap/lib/Configuration.php b/apps/user_ldap/lib/Configuration.php index 9ffb2a79781..c16823d39ee 100644 --- a/apps/user_ldap/lib/Configuration.php +++ b/apps/user_ldap/lib/Configuration.php @@ -56,10 +56,9 @@ class Configuration { */ protected $configRead = false; /** - * @var string[] pre-filled with one reference key so that at least one entry is written on save request and - * the config ID is registered + * @var string[] */ - protected $unsavedChanges = ['ldapConfigurationActive' => 'ldapConfigurationActive']; + protected array $unsavedChanges = []; /** * @var array<string, mixed> settings @@ -257,6 +256,7 @@ class Configuration { */ public function saveConfiguration(): void { $cta = array_flip($this->getConfigTranslationArray()); + $changed = false; foreach ($this->unsavedChanges as $key) { $value = $this->config[$key]; switch ($key) { @@ -286,9 +286,12 @@ class Configuration { if (is_null($value)) { $value = ''; } + $changed = true; $this->saveValue($cta[$key], $value); } - $this->saveValue('_lastChange', (string)time()); + if ($changed) { + $this->saveValue('_lastChange', (string)time()); + } $this->unsavedChanges = []; } diff --git a/apps/user_ldap/lib/Controller/ConfigAPIController.php b/apps/user_ldap/lib/Controller/ConfigAPIController.php index 72ded754880..e408d03fcd5 100644 --- a/apps/user_ldap/lib/Controller/ConfigAPIController.php +++ b/apps/user_ldap/lib/Controller/ConfigAPIController.php @@ -118,6 +118,7 @@ class ConfigAPIController extends OCSController { try { $configPrefix = $this->ldapHelper->getNextServerConfigurationPrefix(); $configHolder = new Configuration($configPrefix); + $configHolder->ldapConfigurationActive = false; $configHolder->saveConfiguration(); } catch (\Exception $e) { $this->logger->logException($e); diff --git a/apps/user_ldap/lib/Mapping/AbstractMapping.php b/apps/user_ldap/lib/Mapping/AbstractMapping.php index f26b54a37e8..9026b8cfb78 100644 --- a/apps/user_ldap/lib/Mapping/AbstractMapping.php +++ b/apps/user_ldap/lib/Mapping/AbstractMapping.php @@ -355,9 +355,9 @@ abstract class AbstractMapping { * @return bool */ public function map($fdn, $name, $uuid) { - if (mb_strlen($fdn) > 4096) { + if (mb_strlen($fdn) > 4000) { \OC::$server->getLogger()->error( - 'Cannot map, because the DN exceeds 4096 characters: {dn}', + 'Cannot map, because the DN exceeds 4000 characters: {dn}', [ 'app' => 'user_ldap', 'dn' => $fdn, diff --git a/apps/user_ldap/lib/Migration/Version1010Date20200630192842.php b/apps/user_ldap/lib/Migration/Version1010Date20200630192842.php index 939db69a6ab..5c7dc7db95c 100644 --- a/apps/user_ldap/lib/Migration/Version1010Date20200630192842.php +++ b/apps/user_ldap/lib/Migration/Version1010Date20200630192842.php @@ -47,7 +47,7 @@ class Version1010Date20200630192842 extends SimpleMigrationStep { $table = $schema->createTable('ldap_user_mapping'); $table->addColumn('ldap_dn', Types::STRING, [ 'notnull' => true, - 'length' => 255, + 'length' => 4000, 'default' => '', ]); $table->addColumn('owncloud_name', Types::STRING, [ @@ -73,7 +73,7 @@ class Version1010Date20200630192842 extends SimpleMigrationStep { $table = $schema->createTable('ldap_group_mapping'); $table->addColumn('ldap_dn', Types::STRING, [ 'notnull' => true, - 'length' => 255, + 'length' => 4000, 'default' => '', ]); $table->addColumn('owncloud_name', Types::STRING, [ diff --git a/apps/user_ldap/lib/Migration/Version1120Date20210917155206.php b/apps/user_ldap/lib/Migration/Version1120Date20210917155206.php index d2b440c4dfe..bca390441d7 100644 --- a/apps/user_ldap/lib/Migration/Version1120Date20210917155206.php +++ b/apps/user_ldap/lib/Migration/Version1120Date20210917155206.php @@ -129,7 +129,7 @@ class Version1120Date20210917155206 extends SimpleMigrationStep { $qb = $this->dbc->getQueryBuilder(); $qb->select('owncloud_name', 'directory_uuid') ->from($table) - ->where($qb->expr()->like('owncloud_name', $qb->createNamedParameter(str_repeat('_', 65) . '%'), Types::STRING)); + ->where($qb->expr()->gt($qb->func()->octetLength('owncloud_name'), '64', IQueryBuilder::PARAM_INT)); return $qb; } diff --git a/apps/user_ldap/lib/Migration/Version1130Date20211102154716.php b/apps/user_ldap/lib/Migration/Version1130Date20211102154716.php index 024c5801582..5c5ed44c899 100644 --- a/apps/user_ldap/lib/Migration/Version1130Date20211102154716.php +++ b/apps/user_ldap/lib/Migration/Version1130Date20211102154716.php @@ -95,8 +95,8 @@ class Version1130Date20211102154716 extends SimpleMigrationStep { } $column = $table->getColumn('ldap_dn'); if ($tableName === 'ldap_user_mapping') { - if ($column->getLength() < 4096) { - $column->setLength(4096); + if ($column->getLength() < 4000) { + $column->setLength(4000); $changeSchema = true; } @@ -117,7 +117,7 @@ class Version1130Date20211102154716 extends SimpleMigrationStep { $table2 = $schema->createTable('ldap_group_mapping_backup'); $table2->addColumn('ldap_dn', Types::STRING, [ 'notnull' => true, - 'length' => 4096, + 'length' => 4000, 'default' => '', ]); $table2->addColumn('owncloud_name', Types::STRING, [ diff --git a/apps/user_ldap/lib/Migration/Version1130Date20220110154718.php b/apps/user_ldap/lib/Migration/Version1130Date20220110154718.php index 5f146ab06a5..74dd2d873bc 100644 --- a/apps/user_ldap/lib/Migration/Version1130Date20220110154718.php +++ b/apps/user_ldap/lib/Migration/Version1130Date20220110154718.php @@ -54,7 +54,7 @@ class Version1130Date20220110154718 extends GroupMappingMigration { $table = $schema->createTable('ldap_group_mapping'); $table->addColumn('ldap_dn', Types::STRING, [ 'notnull' => true, - 'length' => 4096, + 'length' => 4000, 'default' => '', ]); $table->addColumn('owncloud_name', Types::STRING, [ diff --git a/apps/user_ldap/lib/Migration/Version1141Date20220323143801.php b/apps/user_ldap/lib/Migration/Version1141Date20220323143801.php new file mode 100644 index 00000000000..be496d9215e --- /dev/null +++ b/apps/user_ldap/lib/Migration/Version1141Date20220323143801.php @@ -0,0 +1,113 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright Copyright (c) 2022 Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\User_LDAP\Migration; + +use Closure; +use OCP\DB\ISchemaWrapper; +use OCP\DB\QueryBuilder\IQueryBuilder; +use OCP\IDBConnection; +use OCP\Migration\IOutput; +use OCP\Migration\SimpleMigrationStep; + +class Version1141Date20220323143801 extends SimpleMigrationStep { + + private IDBConnection $dbc; + + public function __construct(IDBConnection $dbc) { + $this->dbc = $dbc; + } + + /** + * @param IOutput $output + * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` + * @param array $options + */ + public function preSchemaChange(IOutput $output, Closure $schemaClosure, array $options): void { + foreach (['ldap_user_mapping', 'ldap_group_mapping'] as $tableName) { + $qb = $this->dbc->getQueryBuilder(); + $qb->select('ldap_dn') + ->from($tableName) + ->where($qb->expr()->gt($qb->func()->octetLength('ldap_dn'), '4000', IQueryBuilder::PARAM_INT)); + + $dnsTooLong = []; + $result = $qb->executeQuery(); + while (($dn = $result->fetchOne()) !== false) { + $dnsTooLong[] = $dn; + } + $result->closeCursor(); + $this->shortenDNs($dnsTooLong, $tableName); + } + } + + protected function shortenDNs(array $dns, string $table): void { + $qb = $this->dbc->getQueryBuilder(); + $qb->update($table) + ->set('ldap_dn', $qb->createParameter('shortenedDn')) + ->where($qb->expr()->eq('ldap_dn', $qb->createParameter('originalDn'))); + + $pageSize = 1000; + $page = 0; + do { + $subset = array_slice($dns, $page * $pageSize, $pageSize); + try { + $this->dbc->beginTransaction(); + foreach ($subset as $dn) { + $shortenedDN = mb_substr($dn, 0, 4000); + $qb->setParameter('shortenedDn', $shortenedDN); + $qb->setParameter('originalDn', $dn); + $qb->executeStatement(); + } + $this->dbc->commit(); + } catch (\Throwable $t) { + $this->dbc->rollBack(); + throw $t; + } + $page++; + } while (count($subset) === $pageSize); + } + + /** + * @param IOutput $output + * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` + * @param array $options + * @return null|ISchemaWrapper + */ + public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper { + /** @var ISchemaWrapper $schema */ + $schema = $schemaClosure(); + + foreach (['ldap_user_mapping', 'ldap_group_mapping'] as $tableName) { + $table = $schema->getTable($tableName); + $column = $table->getColumn('ldap_dn'); + if ($column->getLength() > 4000) { + $column->setLength(4000); + } + } + + return $schema; + } +} diff --git a/apps/user_ldap/lib/Wizard.php b/apps/user_ldap/lib/Wizard.php index 98d399b77b9..ae9546be08b 100644 --- a/apps/user_ldap/lib/Wizard.php +++ b/apps/user_ldap/lib/Wizard.php @@ -1331,7 +1331,7 @@ class Wizard extends LDAPUtility { $this->configuration->ldapAgentName, $this->configuration->ldapAgentPassword); if ($lo === true) { - $this->$cr = $cr; + $this->cr = $cr; return $cr; } diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php index b2b22c87891..7c0f31663f0 100644 --- a/apps/user_ldap/templates/settings.php +++ b/apps/user_ldap/templates/settings.php @@ -1,6 +1,6 @@ <?php -vendor_style('user_ldap', 'ui-multiselect/jquery.multiselect'); +style('user_ldap', 'vendor/ui-multiselect/jquery.multiselect'); script('user_ldap', [ 'vendor/ui-multiselect/src/jquery.multiselect', diff --git a/apps/user_status/composer/composer/InstalledVersions.php b/apps/user_status/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/user_status/composer/composer/InstalledVersions.php +++ b/apps/user_status/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/user_status/composer/composer/autoload_classmap.php b/apps/user_status/composer/composer/autoload_classmap.php index a5fee21039d..64da04fb8ba 100644 --- a/apps/user_status/composer/composer/autoload_classmap.php +++ b/apps/user_status/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/user_status/composer/composer/autoload_namespaces.php b/apps/user_status/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/user_status/composer/composer/autoload_namespaces.php +++ b/apps/user_status/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/user_status/composer/composer/autoload_psr4.php b/apps/user_status/composer/composer/autoload_psr4.php index 8b6df1360e8..746ed232b66 100644 --- a/apps/user_status/composer/composer/autoload_psr4.php +++ b/apps/user_status/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/user_status/composer/composer/autoload_real.php b/apps/user_status/composer/composer/autoload_real.php index 987d1dab4e6..4ffa4b4201b 100644 --- a/apps/user_status/composer/composer/autoload_real.php +++ b/apps/user_status/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitUserStatus } spl_autoload_register(array('ComposerAutoloaderInitUserStatus', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitUserStatus', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitUserStatus::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitUserStatus::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/weather_status/l10n/hu.js b/apps/weather_status/l10n/hu.js index c76096e4f96..bd551b2151d 100644 --- a/apps/weather_status/l10n/hu.js +++ b/apps/weather_status/l10n/hu.js @@ -11,6 +11,15 @@ OC.L10N.register( "Detect location" : "Helymeghatározás", "Set custom address" : "Egyéni cím beállítása", "Favorites" : "Kedvencek", + "{temperature} {unit} clear sky" : "{temperature} {unit} tiszta égbolt", + "{temperature} {unit} cloudy" : "{temperature} {unit} felhős", + "{temperature} {unit} partly cloudy" : "{temperature} {unit} részben felhős", + "{temperature} {unit} foggy" : "{temperature} {unit} ködös", + "{temperature} {unit} light rain" : "{temperature} {unit} gyenge eső", + "{temperature} {unit} rain" : "{temperature} {unit} eső", + "{temperature} {unit} rain showers" : "{temperature} {unit} záporok", + "{temperature} {unit} light rain showers" : "{temperature} {unit} enyhe záporok", + "{temperature} {unit} heavy rain showers" : "{temperature} {unit} erős záporok", "More weather for {adr}" : "További időjárás a {adr} címhez", "Loading weather" : "Időjárás betöltése", "Remove from favorites" : "Eltávolítás a kedvencekből", diff --git a/apps/weather_status/l10n/hu.json b/apps/weather_status/l10n/hu.json index c5a62ddedc4..1564b08b93f 100644 --- a/apps/weather_status/l10n/hu.json +++ b/apps/weather_status/l10n/hu.json @@ -9,6 +9,15 @@ "Detect location" : "Helymeghatározás", "Set custom address" : "Egyéni cím beállítása", "Favorites" : "Kedvencek", + "{temperature} {unit} clear sky" : "{temperature} {unit} tiszta égbolt", + "{temperature} {unit} cloudy" : "{temperature} {unit} felhős", + "{temperature} {unit} partly cloudy" : "{temperature} {unit} részben felhős", + "{temperature} {unit} foggy" : "{temperature} {unit} ködös", + "{temperature} {unit} light rain" : "{temperature} {unit} gyenge eső", + "{temperature} {unit} rain" : "{temperature} {unit} eső", + "{temperature} {unit} rain showers" : "{temperature} {unit} záporok", + "{temperature} {unit} light rain showers" : "{temperature} {unit} enyhe záporok", + "{temperature} {unit} heavy rain showers" : "{temperature} {unit} erős záporok", "More weather for {adr}" : "További időjárás a {adr} címhez", "Loading weather" : "Időjárás betöltése", "Remove from favorites" : "Eltávolítás a kedvencekből", diff --git a/apps/weather_status/src/App.vue b/apps/weather_status/src/App.vue index 78cbaadeb8d..8b96a520ef7 100644 --- a/apps/weather_status/src/App.vue +++ b/apps/weather_status/src/App.vue @@ -137,56 +137,56 @@ const weatherOptions = { lightrain: { icon: 'icon-lightrain', text: (temperature, unit, later = false) => later - ? t('weather_status', '{temperature} {unit} light rain later today', { temperature, unit }) - : t('weather_status', '{temperature} {unit} light rain', { temperature, unit }), + ? t('weather_status', '{temperature} {unit} light rainfall later today', { temperature, unit }) + : t('weather_status', '{temperature} {unit} light rainfall', { temperature, unit }), }, rain: { icon: 'icon-rain', text: (temperature, unit, later = false) => later - ? t('weather_status', '{temperature} {unit} rain later today', { temperature, unit }) - : t('weather_status', '{temperature} {unit} rain', { temperature, unit }), + ? t('weather_status', '{temperature} {unit} rainfall later today', { temperature, unit }) + : t('weather_status', '{temperature} {unit} rainfall', { temperature, unit }), }, heavyrain: { icon: 'icon-heavyrain', text: (temperature, unit, later = false) => later - ? t('weather_status', '{temperature} {unit} heavy rain later today', { temperature, unit }) - : t('weather_status', '{temperature} {unit} heavy rain', { temperature, unit }), + ? t('weather_status', '{temperature} {unit} heavy rainfall later today', { temperature, unit }) + : t('weather_status', '{temperature} {unit} heavy rainfall', { temperature, unit }), }, rainshowers_day: { icon: 'icon-rainshowers-day', text: (temperature, unit, later = false) => later - ? t('weather_status', '{temperature} {unit} rain showers later today', { temperature, unit }) - : t('weather_status', '{temperature} {unit} rain showers', { temperature, unit }), + ? t('weather_status', '{temperature} {unit} rainfall showers later today', { temperature, unit }) + : t('weather_status', '{temperature} {unit} rainfall showers', { temperature, unit }), }, rainshowers_night: { icon: 'icon-rainshowers-night', text: (temperature, unit, later = false) => later - ? t('weather_status', '{temperature} {unit} rain showers later today', { temperature, unit }) - : t('weather_status', '{temperature} {unit} rain showers', { temperature, unit }), + ? t('weather_status', '{temperature} {unit} rainfall showers later today', { temperature, unit }) + : t('weather_status', '{temperature} {unit} rainfall showers', { temperature, unit }), }, lightrainshowers_day: { icon: 'icon-light-rainshowers-day', text: (temperature, unit, later = false) => later - ? t('weather_status', '{temperature} {unit} light rain showers later today', { temperature, unit }) - : t('weather_status', '{temperature} {unit} light rain showers', { temperature, unit }), + ? t('weather_status', '{temperature} {unit} light rainfall showers later today', { temperature, unit }) + : t('weather_status', '{temperature} {unit} light rainfall showers', { temperature, unit }), }, lightrainshowers_night: { icon: 'icon-light-rainshowers-night', text: (temperature, unit, later = false) => later - ? t('weather_status', '{temperature} {unit} light rain showers later today', { temperature, unit }) - : t('weather_status', '{temperature} {unit} light rain showers', { temperature, unit }), + ? t('weather_status', '{temperature} {unit} light rainfall showers later today', { temperature, unit }) + : t('weather_status', '{temperature} {unit} light rainfall showers', { temperature, unit }), }, heavyrainshowers_day: { icon: 'icon-heavy-rainshowers-day', text: (temperature, unit, later = false) => later - ? t('weather_status', '{temperature} {unit} heavy rain showers later today', { temperature, unit }) - : t('weather_status', '{temperature} {unit} heavy rain showers', { temperature, unit }), + ? t('weather_status', '{temperature} {unit} heavy rainfall showers later today', { temperature, unit }) + : t('weather_status', '{temperature} {unit} heavy rainfall showers', { temperature, unit }), }, heavyrainshowers_night: { icon: 'icon-heavy-rainshowers-night', text: (temperature, unit, later = false) => later - ? t('weather_status', '{temperature} {unit} heavy rain showers later today', { temperature, unit }) - : t('weather_status', '{temperature} {unit} heavy rain showers', { temperature, unit }), + ? t('weather_status', '{temperature} {unit} heavy rainfall showers later today', { temperature, unit }) + : t('weather_status', '{temperature} {unit} heavy rainfall showers', { temperature, unit }), }, } diff --git a/apps/workflowengine/composer/composer/InstalledVersions.php b/apps/workflowengine/composer/composer/InstalledVersions.php index d50e0c9fcc4..41bc143c114 100644 --- a/apps/workflowengine/composer/composer/InstalledVersions.php +++ b/apps/workflowengine/composer/composer/InstalledVersions.php @@ -21,6 +21,8 @@ use Composer\Semver\VersionParser; * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final */ class InstalledVersions { diff --git a/apps/workflowengine/composer/composer/autoload_classmap.php b/apps/workflowengine/composer/composer/autoload_classmap.php index bb60023a02e..39a6c6c4703 100644 --- a/apps/workflowengine/composer/composer/autoload_classmap.php +++ b/apps/workflowengine/composer/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/workflowengine/composer/composer/autoload_namespaces.php b/apps/workflowengine/composer/composer/autoload_namespaces.php index 71c9e91858d..3f5c9296251 100644 --- a/apps/workflowengine/composer/composer/autoload_namespaces.php +++ b/apps/workflowengine/composer/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/workflowengine/composer/composer/autoload_psr4.php b/apps/workflowengine/composer/composer/autoload_psr4.php index a627a713ddb..3bbfbe5e4b9 100644 --- a/apps/workflowengine/composer/composer/autoload_psr4.php +++ b/apps/workflowengine/composer/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(dirname(__FILE__)); +$vendorDir = dirname(__DIR__); $baseDir = $vendorDir; return array( diff --git a/apps/workflowengine/composer/composer/autoload_real.php b/apps/workflowengine/composer/composer/autoload_real.php index 6c14ae97018..8ed8cb2a7b4 100644 --- a/apps/workflowengine/composer/composer/autoload_real.php +++ b/apps/workflowengine/composer/composer/autoload_real.php @@ -23,20 +23,11 @@ class ComposerAutoloaderInitWorkflowEngine } spl_autoload_register(array('ComposerAutoloaderInitWorkflowEngine', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); spl_autoload_unregister(array('ComposerAutoloaderInitWorkflowEngine', 'loadClassLoader')); - $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); - if ($useStaticLoader) { - require __DIR__ . '/autoload_static.php'; - - call_user_func(\Composer\Autoload\ComposerStaticInitWorkflowEngine::getInitializer($loader)); - } else { - $classMap = require __DIR__ . '/autoload_classmap.php'; - if ($classMap) { - $loader->addClassMap($classMap); - } - } + require __DIR__ . '/autoload_static.php'; + \Composer\Autoload\ComposerStaticInitWorkflowEngine::getInitializer($loader)(); $loader->setClassMapAuthoritative(true); $loader->register(true); diff --git a/apps/workflowengine/lib/Listener/LoadAdditionalSettingsScriptsListener.php b/apps/workflowengine/lib/Listener/LoadAdditionalSettingsScriptsListener.php index 6c38051d41a..a3806799ff0 100644 --- a/apps/workflowengine/lib/Listener/LoadAdditionalSettingsScriptsListener.php +++ b/apps/workflowengine/lib/Listener/LoadAdditionalSettingsScriptsListener.php @@ -32,7 +32,7 @@ use OCP\EventDispatcher\IEventListener; use OCP\Template; use function class_exists; use function function_exists; -use function script; +use OCP\Util; class LoadAdditionalSettingsScriptsListener implements IEventListener { public function handle(Event $event): void { @@ -41,10 +41,9 @@ class LoadAdditionalSettingsScriptsListener implements IEventListener { class_exists(Template::class, true); } - script('core', 'systemtags'); - - script(Application::APP_ID, [ - 'workflowengine', - ]); + Util::addScript('core', 'files_fileinfo'); + Util::addScript('core', 'files_client'); + Util::addScript('core', 'systemtags'); + Util::addScript(Application::APP_ID, 'workflowengine'); } } |