aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/base.php8
-rw-r--r--lib/composer/composer/autoload_classmap.php2
-rw-r--r--lib/composer/composer/autoload_static.php2
-rw-r--r--lib/l10n/ar.js20
-rw-r--r--lib/l10n/ar.json20
-rw-r--r--lib/l10n/cs.js1
-rw-r--r--lib/l10n/cs.json1
-rw-r--r--lib/l10n/de.js10
-rw-r--r--lib/l10n/de.json10
-rw-r--r--lib/l10n/de_DE.js20
-rw-r--r--lib/l10n/de_DE.json20
-rw-r--r--lib/l10n/en_GB.js10
-rw-r--r--lib/l10n/en_GB.json10
-rw-r--r--lib/l10n/fr.js1
-rw-r--r--lib/l10n/fr.json1
-rw-r--r--lib/l10n/ga.js20
-rw-r--r--lib/l10n/ga.json20
-rw-r--r--lib/l10n/gl.js20
-rw-r--r--lib/l10n/gl.json20
-rw-r--r--lib/l10n/ja.js10
-rw-r--r--lib/l10n/ja.json10
-rw-r--r--lib/l10n/lv.js1
-rw-r--r--lib/l10n/lv.json1
-rw-r--r--lib/l10n/nb.js2
-rw-r--r--lib/l10n/nb.json2
-rw-r--r--lib/l10n/pt_BR.js10
-rw-r--r--lib/l10n/pt_BR.json10
-rw-r--r--lib/l10n/ru.js4
-rw-r--r--lib/l10n/ru.json4
-rw-r--r--lib/l10n/sk.js2
-rw-r--r--lib/l10n/sk.json2
-rw-r--r--lib/l10n/sr.js10
-rw-r--r--lib/l10n/sr.json10
-rw-r--r--lib/l10n/sv.js4
-rw-r--r--lib/l10n/sv.json4
-rw-r--r--lib/l10n/tr.js20
-rw-r--r--lib/l10n/tr.json20
-rw-r--r--lib/l10n/zh_CN.js6
-rw-r--r--lib/l10n/zh_CN.json6
-rw-r--r--lib/l10n/zh_HK.js4
-rw-r--r--lib/l10n/zh_HK.json4
-rw-r--r--lib/l10n/zh_TW.js10
-rw-r--r--lib/l10n/zh_TW.json10
-rw-r--r--lib/private/App/AppStore/Fetcher/Fetcher.php4
-rw-r--r--lib/private/BinaryFinder.php28
-rw-r--r--lib/private/Console/Application.php4
-rw-r--r--lib/private/Files/Storage/Common.php3
-rw-r--r--lib/private/Files/Storage/StorageFactory.php5
-rw-r--r--lib/private/IntegrityCheck/Checker.php4
-rw-r--r--lib/private/IntegrityCheck/Helpers/EnvironmentHelper.php9
-rw-r--r--lib/private/Profiler/FileProfilerStorage.php8
-rw-r--r--lib/private/Server.php12
-rw-r--r--lib/private/Setup.php5
-rw-r--r--lib/private/Share20/Manager.php27
-rw-r--r--lib/private/Template/JSConfigHelper.php8
-rw-r--r--lib/private/TemplateLayout.php2
-rw-r--r--lib/private/Updater.php6
-rw-r--r--lib/private/Updater/VersionCheck.php6
-rw-r--r--lib/private/User/LazyUser.php9
-rw-r--r--lib/private/User/Manager.php18
-rw-r--r--lib/private/legacy/OC_Defaults.php9
-rw-r--r--lib/private/legacy/OC_Util.php84
-rw-r--r--lib/public/Files/Storage/IConstructableStorage.php26
-rw-r--r--lib/public/Files/Storage/IStorage.php9
-rw-r--r--lib/public/ServerVersion.php102
-rw-r--r--lib/public/Util.php10
66 files changed, 358 insertions, 422 deletions
diff --git a/lib/base.php b/lib/base.php
index ec5cf3759f2..5bab5d9f3f6 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -292,10 +292,12 @@ class OC {
http_response_code(503);
header('Retry-After: 120');
+ $serverVersion = \OCP\Server::get(\OCP\ServerVersion::class);
+
// render error page
$template = new OC_Template('', 'update.use-cli', 'guest');
$template->assign('productName', 'nextcloud'); // for now
- $template->assign('version', OC_Util::getVersionString());
+ $template->assign('version', $serverVersion->getVersionString());
$template->assign('tooBig', $tooBig);
$template->assign('cliUpgradeLink', $cliUpgradeLink);
@@ -321,7 +323,7 @@ class OC {
$appManager = Server::get(\OCP\App\IAppManager::class);
$tmpl = new OC_Template('', 'update.admin', 'guest');
- $tmpl->assign('version', OC_Util::getVersionString());
+ $tmpl->assign('version', \OCP\Server::get(\OCP\ServerVersion::class)->getVersionString());
$tmpl->assign('isAppsOnlyUpgrade', $isAppsOnlyUpgrade);
// get third party apps
@@ -663,7 +665,7 @@ class OC {
if (!function_exists('simplexml_load_file')) {
throw new \OCP\HintException('The PHP SimpleXML/PHP-XML extension is not installed.', 'Install the extension or make sure it is enabled.');
}
-
+
OC_App::loadApps(['session']);
if (!self::$CLI) {
self::initSession();
diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php
index 82964a6e6c7..234cc20b4a4 100644
--- a/lib/composer/composer/autoload_classmap.php
+++ b/lib/composer/composer/autoload_classmap.php
@@ -428,6 +428,7 @@ return array(
'OCP\\Files\\StorageNotAvailableException' => $baseDir . '/lib/public/Files/StorageNotAvailableException.php',
'OCP\\Files\\StorageTimeoutException' => $baseDir . '/lib/public/Files/StorageTimeoutException.php',
'OCP\\Files\\Storage\\IChunkedFileWrite' => $baseDir . '/lib/public/Files/Storage/IChunkedFileWrite.php',
+ 'OCP\\Files\\Storage\\IConstructableStorage' => $baseDir . '/lib/public/Files/Storage/IConstructableStorage.php',
'OCP\\Files\\Storage\\IDisableEncryptionStorage' => $baseDir . '/lib/public/Files/Storage/IDisableEncryptionStorage.php',
'OCP\\Files\\Storage\\ILockingStorage' => $baseDir . '/lib/public/Files/Storage/ILockingStorage.php',
'OCP\\Files\\Storage\\INotifyStorage' => $baseDir . '/lib/public/Files/Storage/INotifyStorage.php',
@@ -688,6 +689,7 @@ return array(
'OCP\\Security\\VerificationToken\\IVerificationToken' => $baseDir . '/lib/public/Security/VerificationToken/IVerificationToken.php',
'OCP\\Security\\VerificationToken\\InvalidTokenException' => $baseDir . '/lib/public/Security/VerificationToken/InvalidTokenException.php',
'OCP\\Server' => $baseDir . '/lib/public/Server.php',
+ 'OCP\\ServerVersion' => $baseDir . '/lib/public/ServerVersion.php',
'OCP\\Session\\Exceptions\\SessionNotAvailableException' => $baseDir . '/lib/public/Session/Exceptions/SessionNotAvailableException.php',
'OCP\\Settings\\DeclarativeSettingsTypes' => $baseDir . '/lib/public/Settings/DeclarativeSettingsTypes.php',
'OCP\\Settings\\Events\\DeclarativeSettingsGetValueEvent' => $baseDir . '/lib/public/Settings/Events/DeclarativeSettingsGetValueEvent.php',
diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php
index d83229c7426..79186210848 100644
--- a/lib/composer/composer/autoload_static.php
+++ b/lib/composer/composer/autoload_static.php
@@ -461,6 +461,7 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
'OCP\\Files\\StorageNotAvailableException' => __DIR__ . '/../../..' . '/lib/public/Files/StorageNotAvailableException.php',
'OCP\\Files\\StorageTimeoutException' => __DIR__ . '/../../..' . '/lib/public/Files/StorageTimeoutException.php',
'OCP\\Files\\Storage\\IChunkedFileWrite' => __DIR__ . '/../../..' . '/lib/public/Files/Storage/IChunkedFileWrite.php',
+ 'OCP\\Files\\Storage\\IConstructableStorage' => __DIR__ . '/../../..' . '/lib/public/Files/Storage/IConstructableStorage.php',
'OCP\\Files\\Storage\\IDisableEncryptionStorage' => __DIR__ . '/../../..' . '/lib/public/Files/Storage/IDisableEncryptionStorage.php',
'OCP\\Files\\Storage\\ILockingStorage' => __DIR__ . '/../../..' . '/lib/public/Files/Storage/ILockingStorage.php',
'OCP\\Files\\Storage\\INotifyStorage' => __DIR__ . '/../../..' . '/lib/public/Files/Storage/INotifyStorage.php',
@@ -721,6 +722,7 @@ class ComposerStaticInit749170dad3f5e7f9ca158f5a9f04f6a2
'OCP\\Security\\VerificationToken\\IVerificationToken' => __DIR__ . '/../../..' . '/lib/public/Security/VerificationToken/IVerificationToken.php',
'OCP\\Security\\VerificationToken\\InvalidTokenException' => __DIR__ . '/../../..' . '/lib/public/Security/VerificationToken/InvalidTokenException.php',
'OCP\\Server' => __DIR__ . '/../../..' . '/lib/public/Server.php',
+ 'OCP\\ServerVersion' => __DIR__ . '/../../..' . '/lib/public/ServerVersion.php',
'OCP\\Session\\Exceptions\\SessionNotAvailableException' => __DIR__ . '/../../..' . '/lib/public/Session/Exceptions/SessionNotAvailableException.php',
'OCP\\Settings\\DeclarativeSettingsTypes' => __DIR__ . '/../../..' . '/lib/public/Settings/DeclarativeSettingsTypes.php',
'OCP\\Settings\\Events\\DeclarativeSettingsGetValueEvent' => __DIR__ . '/../../..' . '/lib/public/Settings/Events/DeclarativeSettingsGetValueEvent.php',
diff --git a/lib/l10n/ar.js b/lib/l10n/ar.js
index c5ac1254030..c816b91b655 100644
--- a/lib/l10n/ar.js
+++ b/lib/l10n/ar.js
@@ -157,19 +157,19 @@ OC.L10N.register(
"%1$s shared »%2$s« with you and wants to add" : "%1$s شارك »%2$s« معك و يرغب في إضافة",
"»%s« added a note to a file shared with you" : "»%s« أضاف ملاحظة لملفٍ سلفت مشاركته معك",
"Passwords are enforced for link and mail shares" : "كلمة المرور لازمة للمشاركات عن طريق الروابط و الإيميل",
- "SharedWith is not a valid user" : "SharedWith غير مقبول كمستخدِم",
- "SharedWith is not a valid group" : "SharedWith غير مقبول كمجموعة",
- "SharedWith should be empty" : "SharedWith يجب أن يكون فارغاً",
- "SharedWith should not be empty" : "SharedWith يجب ألّا يكون فارغاً",
- "SharedWith is not a valid circle" : "SharedWith ليس حلقة اتصال مقبولة",
+ "Share recipient is not a valid user" : "مُستلِم المشاركة ليس مستخدِماً صالحاً",
+ "Share recipient is not a valid group" : "مُستلِم المشاركة ليس مجموعةً صالحةً",
+ "Share recipient should be empty" : "مُستلِم المشاركة يجب أن يكون فارغاً",
+ "Share recipient should not be empty" : "مُستلِم المشاركة يجب ألّا يكون فارغاً",
+ "Share recipient is not a valid circle" : "مُستلِم المشاركة ليس حلقة اتصال صالحة",
"Unknown share type" : "نوع مشاركة غير معروف",
- "SharedBy should be set" : "SharedBy يجب تعيينه",
+ "Share initiator must be set" : "مُنشِيء المشاركة يجب تعيينه",
"Cannot share with yourself" : "لا يمكنك المشاركة مع نفسك",
- "Path should be set" : "يجب تعيين المسار",
- "Path should be either a file or a folder" : "يجب أن يكون المسار إمّا ملفاً أو مجلداً",
+ "Shared path must be set" : "مسار المشاركة يجب تعيينه",
+ "Shared path must be either a file or a folder" : "مسار المشاركة يجب أن يكون إمّا ملفاً أو مجلداً",
"You cannot share your root folder" : "لا يمكنك مشاركة مجلدك الجذر",
"You are not allowed to share %s" : "أنت غير مسموح لك أن تشارك %s",
- "A share requires permissions" : "مشاركة تتطلب إذونات",
+ "Valid permissions are required for sharing" : "المشاركة تلزمها أذونات صالحة",
"Cannot increase permissions of %s" : "لا يمكن زيادة أذونات %s",
"Shares need at least read permissions" : "المشاركات تتطلب في الحد الأدنى إذناً بالقراءة",
"Files cannot be shared with delete permissions" : "لا يمكن مشاركة ملفات بأذونات حذفٍ",
@@ -196,7 +196,7 @@ OC.L10N.register(
"Cannot disable sending the password by Talk without setting a new password" : "لا يمكن تعطيل إرسال كلمة المرور عن طريق برنامج \"المحادثة\" Talk بدون تعيين كلمة مرور جديدة",
"Share provider does not support accepting" : "مزود المشاركة لا يدعم خاصية خيار القبول",
"Cannot change target of link share" : "لا يمكن تغيير مَقصِد مشاركة الرابط",
- "Invalid recipient" : "المستلم غير مقبول",
+ "Invalid share recipient" : "مُستلِم المشاركة غير صالح",
"Group \"%s\" does not exist" : "المجموعة \"%s\" غير موجودة",
"The requested share does not exist anymore" : "المشاركة المطلوبة لم تعد موجودةً",
"The requested share comes from a disabled user" : "المشاركة المطلوبة آتية من مستخدم معطل.",
diff --git a/lib/l10n/ar.json b/lib/l10n/ar.json
index f497a28885d..ff43625e64d 100644
--- a/lib/l10n/ar.json
+++ b/lib/l10n/ar.json
@@ -155,19 +155,19 @@
"%1$s shared »%2$s« with you and wants to add" : "%1$s شارك »%2$s« معك و يرغب في إضافة",
"»%s« added a note to a file shared with you" : "»%s« أضاف ملاحظة لملفٍ سلفت مشاركته معك",
"Passwords are enforced for link and mail shares" : "كلمة المرور لازمة للمشاركات عن طريق الروابط و الإيميل",
- "SharedWith is not a valid user" : "SharedWith غير مقبول كمستخدِم",
- "SharedWith is not a valid group" : "SharedWith غير مقبول كمجموعة",
- "SharedWith should be empty" : "SharedWith يجب أن يكون فارغاً",
- "SharedWith should not be empty" : "SharedWith يجب ألّا يكون فارغاً",
- "SharedWith is not a valid circle" : "SharedWith ليس حلقة اتصال مقبولة",
+ "Share recipient is not a valid user" : "مُستلِم المشاركة ليس مستخدِماً صالحاً",
+ "Share recipient is not a valid group" : "مُستلِم المشاركة ليس مجموعةً صالحةً",
+ "Share recipient should be empty" : "مُستلِم المشاركة يجب أن يكون فارغاً",
+ "Share recipient should not be empty" : "مُستلِم المشاركة يجب ألّا يكون فارغاً",
+ "Share recipient is not a valid circle" : "مُستلِم المشاركة ليس حلقة اتصال صالحة",
"Unknown share type" : "نوع مشاركة غير معروف",
- "SharedBy should be set" : "SharedBy يجب تعيينه",
+ "Share initiator must be set" : "مُنشِيء المشاركة يجب تعيينه",
"Cannot share with yourself" : "لا يمكنك المشاركة مع نفسك",
- "Path should be set" : "يجب تعيين المسار",
- "Path should be either a file or a folder" : "يجب أن يكون المسار إمّا ملفاً أو مجلداً",
+ "Shared path must be set" : "مسار المشاركة يجب تعيينه",
+ "Shared path must be either a file or a folder" : "مسار المشاركة يجب أن يكون إمّا ملفاً أو مجلداً",
"You cannot share your root folder" : "لا يمكنك مشاركة مجلدك الجذر",
"You are not allowed to share %s" : "أنت غير مسموح لك أن تشارك %s",
- "A share requires permissions" : "مشاركة تتطلب إذونات",
+ "Valid permissions are required for sharing" : "المشاركة تلزمها أذونات صالحة",
"Cannot increase permissions of %s" : "لا يمكن زيادة أذونات %s",
"Shares need at least read permissions" : "المشاركات تتطلب في الحد الأدنى إذناً بالقراءة",
"Files cannot be shared with delete permissions" : "لا يمكن مشاركة ملفات بأذونات حذفٍ",
@@ -194,7 +194,7 @@
"Cannot disable sending the password by Talk without setting a new password" : "لا يمكن تعطيل إرسال كلمة المرور عن طريق برنامج \"المحادثة\" Talk بدون تعيين كلمة مرور جديدة",
"Share provider does not support accepting" : "مزود المشاركة لا يدعم خاصية خيار القبول",
"Cannot change target of link share" : "لا يمكن تغيير مَقصِد مشاركة الرابط",
- "Invalid recipient" : "المستلم غير مقبول",
+ "Invalid share recipient" : "مُستلِم المشاركة غير صالح",
"Group \"%s\" does not exist" : "المجموعة \"%s\" غير موجودة",
"The requested share does not exist anymore" : "المشاركة المطلوبة لم تعد موجودةً",
"The requested share comes from a disabled user" : "المشاركة المطلوبة آتية من مستخدم معطل.",
diff --git a/lib/l10n/cs.js b/lib/l10n/cs.js
index d777b143268..f8b41915ae6 100644
--- a/lib/l10n/cs.js
+++ b/lib/l10n/cs.js
@@ -159,7 +159,6 @@ OC.L10N.register(
"Sharing is disabled for you" : "Máte zakázáno sdílet",
"Cannot share with the share owner" : "Nelze sdílet zpět vlastníkovi sdílení",
"Cannot change share type" : "Nelze změnit typ sdílení",
- "Invalid recipient" : "Neplatný příjemce",
"Group \"%s\" does not exist" : "Skupina \"%s\" neexistuje",
"The requested share does not exist anymore" : "Požadované sdílení už neexistuje",
"The requested share comes from a disabled user" : "Požadované sdílení pochází od vypnutého uživatelského účtu",
diff --git a/lib/l10n/cs.json b/lib/l10n/cs.json
index 56be78c340f..cc1349b0bbb 100644
--- a/lib/l10n/cs.json
+++ b/lib/l10n/cs.json
@@ -157,7 +157,6 @@
"Sharing is disabled for you" : "Máte zakázáno sdílet",
"Cannot share with the share owner" : "Nelze sdílet zpět vlastníkovi sdílení",
"Cannot change share type" : "Nelze změnit typ sdílení",
- "Invalid recipient" : "Neplatný příjemce",
"Group \"%s\" does not exist" : "Skupina \"%s\" neexistuje",
"The requested share does not exist anymore" : "Požadované sdílení už neexistuje",
"The requested share comes from a disabled user" : "Požadované sdílení pochází od vypnutého uživatelského účtu",
diff --git a/lib/l10n/de.js b/lib/l10n/de.js
index 6f99a7c5fde..4ac9f7400db 100644
--- a/lib/l10n/de.js
+++ b/lib/l10n/de.js
@@ -157,19 +157,10 @@ OC.L10N.register(
"%1$s shared »%2$s« with you and wants to add" : "%1$shat »%2$s« mit dir geteilt und möchte folgendes hinzufügen",
"»%s« added a note to a file shared with you" : "»%s« hat eine Bemerkung zu einer mit dir geteilten Datei hinzugefügt",
"Passwords are enforced for link and mail shares" : "Für Link- und E-Mail-Freigaben werden Passwörter erzwungen",
- "SharedWith is not a valid user" : "SharedWith ist kein gültiger Benutzer",
- "SharedWith is not a valid group" : "SharedWith ist keine gültige Gruppe",
- "SharedWith should be empty" : "SharedWith sollte leer sein",
- "SharedWith should not be empty" : "SharedWith sollte nicht leer sein",
- "SharedWith is not a valid circle" : "SharedWith ist kein gültiger Kreis",
"Unknown share type" : "Unbekannter Freigabetyp",
- "SharedBy should be set" : "SharedBy sollte gesetzt sein",
"Cannot share with yourself" : "Es kann nicht mit dir selbst geteilt werden",
- "Path should be set" : "Pfad sollte festgelegt werden",
- "Path should be either a file or a folder" : "Der Pfad muss entweder eine Datei oder ein Ordner sein",
"You cannot share your root folder" : "Du kannst deinen Stammordner nicht freigeben",
"You are not allowed to share %s" : "Du bist nicht berechtigt, %s zu teilen.",
- "A share requires permissions" : "Eine Freigabe erfordert Berechtigungen",
"Cannot increase permissions of %s" : "Kann die Berechtigungen von %s nicht erhöhen",
"Shares need at least read permissions" : "Freigaben benötigen mindestens Leseberechtigungen",
"Files cannot be shared with delete permissions" : "Dateien mit Lösch-Berechtigungen können nicht geteilt werden",
@@ -196,7 +187,6 @@ OC.L10N.register(
"Cannot disable sending the password by Talk without setting a new password" : "Das Senden des Passworts durch Talk kann nicht deaktiviert werden, ohne ein neues Passwort festzulegen",
"Share provider does not support accepting" : "Der Teilen-Anbieter unterstützt das Akzeptieren nicht",
"Cannot change target of link share" : "Das Ziel der Linkfreigabe kann nicht geändert werden",
- "Invalid recipient" : "Ungültiger Empfänger",
"Group \"%s\" does not exist" : "Gruppe \"%s\" existiert nicht",
"The requested share does not exist anymore" : "Die angeforderte Freigabe existiert nicht mehr",
"The requested share comes from a disabled user" : "Die angeforderte Freigabe stammt von einem deaktivierten Benutzer",
diff --git a/lib/l10n/de.json b/lib/l10n/de.json
index 6d4d0005ad2..318cf689751 100644
--- a/lib/l10n/de.json
+++ b/lib/l10n/de.json
@@ -155,19 +155,10 @@
"%1$s shared »%2$s« with you and wants to add" : "%1$shat »%2$s« mit dir geteilt und möchte folgendes hinzufügen",
"»%s« added a note to a file shared with you" : "»%s« hat eine Bemerkung zu einer mit dir geteilten Datei hinzugefügt",
"Passwords are enforced for link and mail shares" : "Für Link- und E-Mail-Freigaben werden Passwörter erzwungen",
- "SharedWith is not a valid user" : "SharedWith ist kein gültiger Benutzer",
- "SharedWith is not a valid group" : "SharedWith ist keine gültige Gruppe",
- "SharedWith should be empty" : "SharedWith sollte leer sein",
- "SharedWith should not be empty" : "SharedWith sollte nicht leer sein",
- "SharedWith is not a valid circle" : "SharedWith ist kein gültiger Kreis",
"Unknown share type" : "Unbekannter Freigabetyp",
- "SharedBy should be set" : "SharedBy sollte gesetzt sein",
"Cannot share with yourself" : "Es kann nicht mit dir selbst geteilt werden",
- "Path should be set" : "Pfad sollte festgelegt werden",
- "Path should be either a file or a folder" : "Der Pfad muss entweder eine Datei oder ein Ordner sein",
"You cannot share your root folder" : "Du kannst deinen Stammordner nicht freigeben",
"You are not allowed to share %s" : "Du bist nicht berechtigt, %s zu teilen.",
- "A share requires permissions" : "Eine Freigabe erfordert Berechtigungen",
"Cannot increase permissions of %s" : "Kann die Berechtigungen von %s nicht erhöhen",
"Shares need at least read permissions" : "Freigaben benötigen mindestens Leseberechtigungen",
"Files cannot be shared with delete permissions" : "Dateien mit Lösch-Berechtigungen können nicht geteilt werden",
@@ -194,7 +185,6 @@
"Cannot disable sending the password by Talk without setting a new password" : "Das Senden des Passworts durch Talk kann nicht deaktiviert werden, ohne ein neues Passwort festzulegen",
"Share provider does not support accepting" : "Der Teilen-Anbieter unterstützt das Akzeptieren nicht",
"Cannot change target of link share" : "Das Ziel der Linkfreigabe kann nicht geändert werden",
- "Invalid recipient" : "Ungültiger Empfänger",
"Group \"%s\" does not exist" : "Gruppe \"%s\" existiert nicht",
"The requested share does not exist anymore" : "Die angeforderte Freigabe existiert nicht mehr",
"The requested share comes from a disabled user" : "Die angeforderte Freigabe stammt von einem deaktivierten Benutzer",
diff --git a/lib/l10n/de_DE.js b/lib/l10n/de_DE.js
index 03186a62a0f..617cf1ec00d 100644
--- a/lib/l10n/de_DE.js
+++ b/lib/l10n/de_DE.js
@@ -157,19 +157,19 @@ OC.L10N.register(
"%1$s shared »%2$s« with you and wants to add" : "%1$s hat »%2$s« mit Ihnen geteilt und möchte folgendes hinzufügen",
"»%s« added a note to a file shared with you" : "»%s« hat eine Bemerkung zu einer mit Ihnen geteilten Datei hinzugefügt",
"Passwords are enforced for link and mail shares" : "Für Link- und E-Mail-Freigaben werden Passwörter erzwungen",
- "SharedWith is not a valid user" : "SharedWith ist kein gültiger Benutzer",
- "SharedWith is not a valid group" : "SharedWith ist keine gültige Gruppe",
- "SharedWith should be empty" : "SharedWith sollte leer sein",
- "SharedWith should not be empty" : "SharedWith sollte nicht leer sein",
- "SharedWith is not a valid circle" : "SharedWith ist kein gültiger Kreis",
+ "Share recipient is not a valid user" : "Freigabeempfänger ist kein gültiger Benutzer",
+ "Share recipient is not a valid group" : "Freigabeempfänger ist keine gültige Gruppe",
+ "Share recipient should be empty" : "Freigabeempfänger sollte leer sein",
+ "Share recipient should not be empty" : "Freigabeempfänger sollte nicht leer sein",
+ "Share recipient is not a valid circle" : "Freigabeempfänger ist kein gültiger Kreis",
"Unknown share type" : "Unbekannter Freigabetyp",
- "SharedBy should be set" : "SharedBy sollte gesetzt sein",
+ "Share initiator must be set" : "Freigabeinitiator muss festgelegt sein",
"Cannot share with yourself" : "Es kann nicht mit Ihnen selbst geteilt werden",
- "Path should be set" : "Pfad sollte festgelegt werden",
- "Path should be either a file or a folder" : "Der Pfad muss entweder eine Datei oder ein Ordner sein",
+ "Shared path must be set" : "Der freigegebene Pfad muss festgelegt werden",
+ "Shared path must be either a file or a folder" : "Der freigegebene Pfad muss entweder eine Datei oder ein Ordner sein",
"You cannot share your root folder" : "Sie können Ihren Stammordner nicht freigeben",
"You are not allowed to share %s" : "Die Freigabe von %s ist Ihnen nicht erlaubt",
- "A share requires permissions" : "Eine Freigabe erfordert Berechtigungen",
+ "Valid permissions are required for sharing" : "Zum Teilen sind gültige Berechtigungen erforderlich",
"Cannot increase permissions of %s" : "Kann die Berechtigungen von %s nicht erhöhen",
"Shares need at least read permissions" : "Freigaben benötigen mindestens Leseberechtigungen",
"Files cannot be shared with delete permissions" : "Dateien mit Lösch-Berechtigungen können nicht geteilt werden",
@@ -196,7 +196,7 @@ OC.L10N.register(
"Cannot disable sending the password by Talk without setting a new password" : "Das Senden des Passworts durch Talk kann nicht deaktiviert werden, ohne ein neues Passwort festzulegen",
"Share provider does not support accepting" : "Der Teilen-Anbieter unterstützt das Akzeptieren nicht",
"Cannot change target of link share" : "Das Ziel der Linkfreigabe kann nicht geändert werden",
- "Invalid recipient" : "Ungültiger Empfänger",
+ "Invalid share recipient" : "Ungültiger Freigabeempfänger",
"Group \"%s\" does not exist" : "Gruppe \"%s\" existiert nicht",
"The requested share does not exist anymore" : "Die angeforderte Freigabe existiert nicht mehr",
"The requested share comes from a disabled user" : "Die angeforderte Freigabe stammt von einem deaktivierten Benutzer",
diff --git a/lib/l10n/de_DE.json b/lib/l10n/de_DE.json
index 9315a4f01db..7a5b1f5be7c 100644
--- a/lib/l10n/de_DE.json
+++ b/lib/l10n/de_DE.json
@@ -155,19 +155,19 @@
"%1$s shared »%2$s« with you and wants to add" : "%1$s hat »%2$s« mit Ihnen geteilt und möchte folgendes hinzufügen",
"»%s« added a note to a file shared with you" : "»%s« hat eine Bemerkung zu einer mit Ihnen geteilten Datei hinzugefügt",
"Passwords are enforced for link and mail shares" : "Für Link- und E-Mail-Freigaben werden Passwörter erzwungen",
- "SharedWith is not a valid user" : "SharedWith ist kein gültiger Benutzer",
- "SharedWith is not a valid group" : "SharedWith ist keine gültige Gruppe",
- "SharedWith should be empty" : "SharedWith sollte leer sein",
- "SharedWith should not be empty" : "SharedWith sollte nicht leer sein",
- "SharedWith is not a valid circle" : "SharedWith ist kein gültiger Kreis",
+ "Share recipient is not a valid user" : "Freigabeempfänger ist kein gültiger Benutzer",
+ "Share recipient is not a valid group" : "Freigabeempfänger ist keine gültige Gruppe",
+ "Share recipient should be empty" : "Freigabeempfänger sollte leer sein",
+ "Share recipient should not be empty" : "Freigabeempfänger sollte nicht leer sein",
+ "Share recipient is not a valid circle" : "Freigabeempfänger ist kein gültiger Kreis",
"Unknown share type" : "Unbekannter Freigabetyp",
- "SharedBy should be set" : "SharedBy sollte gesetzt sein",
+ "Share initiator must be set" : "Freigabeinitiator muss festgelegt sein",
"Cannot share with yourself" : "Es kann nicht mit Ihnen selbst geteilt werden",
- "Path should be set" : "Pfad sollte festgelegt werden",
- "Path should be either a file or a folder" : "Der Pfad muss entweder eine Datei oder ein Ordner sein",
+ "Shared path must be set" : "Der freigegebene Pfad muss festgelegt werden",
+ "Shared path must be either a file or a folder" : "Der freigegebene Pfad muss entweder eine Datei oder ein Ordner sein",
"You cannot share your root folder" : "Sie können Ihren Stammordner nicht freigeben",
"You are not allowed to share %s" : "Die Freigabe von %s ist Ihnen nicht erlaubt",
- "A share requires permissions" : "Eine Freigabe erfordert Berechtigungen",
+ "Valid permissions are required for sharing" : "Zum Teilen sind gültige Berechtigungen erforderlich",
"Cannot increase permissions of %s" : "Kann die Berechtigungen von %s nicht erhöhen",
"Shares need at least read permissions" : "Freigaben benötigen mindestens Leseberechtigungen",
"Files cannot be shared with delete permissions" : "Dateien mit Lösch-Berechtigungen können nicht geteilt werden",
@@ -194,7 +194,7 @@
"Cannot disable sending the password by Talk without setting a new password" : "Das Senden des Passworts durch Talk kann nicht deaktiviert werden, ohne ein neues Passwort festzulegen",
"Share provider does not support accepting" : "Der Teilen-Anbieter unterstützt das Akzeptieren nicht",
"Cannot change target of link share" : "Das Ziel der Linkfreigabe kann nicht geändert werden",
- "Invalid recipient" : "Ungültiger Empfänger",
+ "Invalid share recipient" : "Ungültiger Freigabeempfänger",
"Group \"%s\" does not exist" : "Gruppe \"%s\" existiert nicht",
"The requested share does not exist anymore" : "Die angeforderte Freigabe existiert nicht mehr",
"The requested share comes from a disabled user" : "Die angeforderte Freigabe stammt von einem deaktivierten Benutzer",
diff --git a/lib/l10n/en_GB.js b/lib/l10n/en_GB.js
index 0d2e6d74fdf..ce510473935 100644
--- a/lib/l10n/en_GB.js
+++ b/lib/l10n/en_GB.js
@@ -157,19 +157,10 @@ OC.L10N.register(
"%1$s shared »%2$s« with you and wants to add" : "%1$s shared »%2$s« with you and wants to add",
"»%s« added a note to a file shared with you" : "»%s« added a note to a file shared with you",
"Passwords are enforced for link and mail shares" : "Passwords are enforced for link and mail shares",
- "SharedWith is not a valid user" : "SharedWith is not a valid user",
- "SharedWith is not a valid group" : "SharedWith is not a valid group",
- "SharedWith should be empty" : "SharedWith should be empty",
- "SharedWith should not be empty" : "SharedWith should not be empty",
- "SharedWith is not a valid circle" : "SharedWith is not a valid circle",
"Unknown share type" : "Unknown share type",
- "SharedBy should be set" : "SharedBy should be set",
"Cannot share with yourself" : "Cannot share with yourself",
- "Path should be set" : "Path should be set",
- "Path should be either a file or a folder" : "Path should be either a file or a folder",
"You cannot share your root folder" : "You cannot share your root folder",
"You are not allowed to share %s" : "You are not allowed to share %s",
- "A share requires permissions" : "A share requires permissions",
"Cannot increase permissions of %s" : "Cannot increase permissions of %s",
"Shares need at least read permissions" : "Shares need at least read permissions",
"Files cannot be shared with delete permissions" : "Files cannot be shared with delete permissions",
@@ -196,7 +187,6 @@ OC.L10N.register(
"Cannot disable sending the password by Talk without setting a new password" : "Cannot disable sending the password by Talk without setting a new password",
"Share provider does not support accepting" : "Share provider does not support accepting",
"Cannot change target of link share" : "Cannot change target of link share",
- "Invalid recipient" : "Invalid recipient",
"Group \"%s\" does not exist" : "Group \"%s\" does not exist",
"The requested share does not exist anymore" : "The requested share does not exist any more",
"The requested share comes from a disabled user" : "The requested share comes from a disabled user",
diff --git a/lib/l10n/en_GB.json b/lib/l10n/en_GB.json
index f7055b9f110..814fe3e56b5 100644
--- a/lib/l10n/en_GB.json
+++ b/lib/l10n/en_GB.json
@@ -155,19 +155,10 @@
"%1$s shared »%2$s« with you and wants to add" : "%1$s shared »%2$s« with you and wants to add",
"»%s« added a note to a file shared with you" : "»%s« added a note to a file shared with you",
"Passwords are enforced for link and mail shares" : "Passwords are enforced for link and mail shares",
- "SharedWith is not a valid user" : "SharedWith is not a valid user",
- "SharedWith is not a valid group" : "SharedWith is not a valid group",
- "SharedWith should be empty" : "SharedWith should be empty",
- "SharedWith should not be empty" : "SharedWith should not be empty",
- "SharedWith is not a valid circle" : "SharedWith is not a valid circle",
"Unknown share type" : "Unknown share type",
- "SharedBy should be set" : "SharedBy should be set",
"Cannot share with yourself" : "Cannot share with yourself",
- "Path should be set" : "Path should be set",
- "Path should be either a file or a folder" : "Path should be either a file or a folder",
"You cannot share your root folder" : "You cannot share your root folder",
"You are not allowed to share %s" : "You are not allowed to share %s",
- "A share requires permissions" : "A share requires permissions",
"Cannot increase permissions of %s" : "Cannot increase permissions of %s",
"Shares need at least read permissions" : "Shares need at least read permissions",
"Files cannot be shared with delete permissions" : "Files cannot be shared with delete permissions",
@@ -194,7 +185,6 @@
"Cannot disable sending the password by Talk without setting a new password" : "Cannot disable sending the password by Talk without setting a new password",
"Share provider does not support accepting" : "Share provider does not support accepting",
"Cannot change target of link share" : "Cannot change target of link share",
- "Invalid recipient" : "Invalid recipient",
"Group \"%s\" does not exist" : "Group \"%s\" does not exist",
"The requested share does not exist anymore" : "The requested share does not exist any more",
"The requested share comes from a disabled user" : "The requested share comes from a disabled user",
diff --git a/lib/l10n/fr.js b/lib/l10n/fr.js
index 00970b4e600..ab21f2feabe 100644
--- a/lib/l10n/fr.js
+++ b/lib/l10n/fr.js
@@ -126,6 +126,7 @@ OC.L10N.register(
"Headline" : "Titre",
"Organisation" : "Organisme",
"Role" : "Fonction",
+ "Pronouns" : "Pronoms",
"Unknown account" : "Compte inconnu",
"Additional settings" : "Paramètres supplémentaires",
"Enter the database Login and name for %s" : "Saisissez l'identifiant et le nom de la base de données pour %s",
diff --git a/lib/l10n/fr.json b/lib/l10n/fr.json
index 0efc2236147..49041f5132f 100644
--- a/lib/l10n/fr.json
+++ b/lib/l10n/fr.json
@@ -124,6 +124,7 @@
"Headline" : "Titre",
"Organisation" : "Organisme",
"Role" : "Fonction",
+ "Pronouns" : "Pronoms",
"Unknown account" : "Compte inconnu",
"Additional settings" : "Paramètres supplémentaires",
"Enter the database Login and name for %s" : "Saisissez l'identifiant et le nom de la base de données pour %s",
diff --git a/lib/l10n/ga.js b/lib/l10n/ga.js
index 292002805d1..e8f516c426e 100644
--- a/lib/l10n/ga.js
+++ b/lib/l10n/ga.js
@@ -157,19 +157,19 @@ OC.L10N.register(
"%1$s shared »%2$s« with you and wants to add" : "%1$s shared »%2$s« with you and wants to add",
"»%s« added a note to a file shared with you" : "»%s« added a note to a file shared with you",
"Passwords are enforced for link and mail shares" : "Cuirtear pasfhocail i bhfeidhm le haghaidh naisc agus scaireanna ríomhphoist",
- "SharedWith is not a valid user" : "Ní úsáideoir bailí é SharedWith",
- "SharedWith is not a valid group" : "Ní grúpa bailí é SharedW",
- "SharedWith should be empty" : "Ba chóir go mbeadh SharedWith folamh",
- "SharedWith should not be empty" : "Níor cheart go mbeadh SharedWith folamh",
- "SharedWith is not a valid circle" : "Ní ciorcal bailí é SharedW",
+ "Share recipient is not a valid user" : "Ní úsáideoir bailí é faighteoir scaireanna",
+ "Share recipient is not a valid group" : "Ní grúpa bailí é faighteoir scaireanna",
+ "Share recipient should be empty" : "Ba chóir go mbeadh faighteoir scaireanna folamh",
+ "Share recipient should not be empty" : "Níor cheart go mbeadh faighteoir scaireanna folamh",
+ "Share recipient is not a valid circle" : "Ní ciorcal bailí é an faighteoir comhroinnte",
"Unknown share type" : "Cineál scaire anaithnid",
- "SharedBy should be set" : "Ba cheart SharedBy a shocrú",
+ "Share initiator must be set" : "Ní mór thionscnóir scaireanna a shocrú",
"Cannot share with yourself" : "Ní féidir a roinnt leat féin",
- "Path should be set" : "Ba chóir cosán a shocrú",
- "Path should be either a file or a folder" : "Ba chóir go mbeadh an cosán ina chomhad nó ina fhillteán",
+ "Shared path must be set" : "Ní mór cosán roinnte a shocrú",
+ "Shared path must be either a file or a folder" : "Ní mór go mbeadh an cosán roinnte ina chomhad nó ina fhillteán",
"You cannot share your root folder" : "Ní féidir leat do fhréamhfhillteán a roinnt",
"You are not allowed to share %s" : "Níl cead agat %s a roinnt",
- "A share requires permissions" : "Teastaíonn ceadanna le scair",
+ "Valid permissions are required for sharing" : "Teastaíonn ceadanna bailí chun comhroinnt",
"Cannot increase permissions of %s" : "Ní féidir ceadanna %s a mhéadú",
"Shares need at least read permissions" : "Teastaíonn ceadanna léite ar a laghad ó scaireanna",
"Files cannot be shared with delete permissions" : "Ní féidir comhaid a roinnt le ceadanna scriosta",
@@ -196,7 +196,7 @@ OC.L10N.register(
"Cannot disable sending the password by Talk without setting a new password" : "Ní féidir seoladh an fhocail faire le Talk a dhíchumasú gan focal faire nua a shocrú",
"Share provider does not support accepting" : "Ní thacaíonn soláthraí scaireanna le glacadh",
"Cannot change target of link share" : "Ní féidir an sprioc maidir le comhroinnt naisc a athrú",
- "Invalid recipient" : "Faighteoir neamhbhailí",
+ "Invalid share recipient" : "Faighteoir scaireanna neamhbhailí",
"Group \"%s\" does not exist" : "Níl grúpa \"%s\" ann",
"The requested share does not exist anymore" : "Níl an sciar iarrtha ann a thuilleadh",
"The requested share comes from a disabled user" : "Tagann an sciar iarrtha ó úsáideoir díchumasaithe",
diff --git a/lib/l10n/ga.json b/lib/l10n/ga.json
index a47c324cc0c..497be4e3326 100644
--- a/lib/l10n/ga.json
+++ b/lib/l10n/ga.json
@@ -155,19 +155,19 @@
"%1$s shared »%2$s« with you and wants to add" : "%1$s shared »%2$s« with you and wants to add",
"»%s« added a note to a file shared with you" : "»%s« added a note to a file shared with you",
"Passwords are enforced for link and mail shares" : "Cuirtear pasfhocail i bhfeidhm le haghaidh naisc agus scaireanna ríomhphoist",
- "SharedWith is not a valid user" : "Ní úsáideoir bailí é SharedWith",
- "SharedWith is not a valid group" : "Ní grúpa bailí é SharedW",
- "SharedWith should be empty" : "Ba chóir go mbeadh SharedWith folamh",
- "SharedWith should not be empty" : "Níor cheart go mbeadh SharedWith folamh",
- "SharedWith is not a valid circle" : "Ní ciorcal bailí é SharedW",
+ "Share recipient is not a valid user" : "Ní úsáideoir bailí é faighteoir scaireanna",
+ "Share recipient is not a valid group" : "Ní grúpa bailí é faighteoir scaireanna",
+ "Share recipient should be empty" : "Ba chóir go mbeadh faighteoir scaireanna folamh",
+ "Share recipient should not be empty" : "Níor cheart go mbeadh faighteoir scaireanna folamh",
+ "Share recipient is not a valid circle" : "Ní ciorcal bailí é an faighteoir comhroinnte",
"Unknown share type" : "Cineál scaire anaithnid",
- "SharedBy should be set" : "Ba cheart SharedBy a shocrú",
+ "Share initiator must be set" : "Ní mór thionscnóir scaireanna a shocrú",
"Cannot share with yourself" : "Ní féidir a roinnt leat féin",
- "Path should be set" : "Ba chóir cosán a shocrú",
- "Path should be either a file or a folder" : "Ba chóir go mbeadh an cosán ina chomhad nó ina fhillteán",
+ "Shared path must be set" : "Ní mór cosán roinnte a shocrú",
+ "Shared path must be either a file or a folder" : "Ní mór go mbeadh an cosán roinnte ina chomhad nó ina fhillteán",
"You cannot share your root folder" : "Ní féidir leat do fhréamhfhillteán a roinnt",
"You are not allowed to share %s" : "Níl cead agat %s a roinnt",
- "A share requires permissions" : "Teastaíonn ceadanna le scair",
+ "Valid permissions are required for sharing" : "Teastaíonn ceadanna bailí chun comhroinnt",
"Cannot increase permissions of %s" : "Ní féidir ceadanna %s a mhéadú",
"Shares need at least read permissions" : "Teastaíonn ceadanna léite ar a laghad ó scaireanna",
"Files cannot be shared with delete permissions" : "Ní féidir comhaid a roinnt le ceadanna scriosta",
@@ -194,7 +194,7 @@
"Cannot disable sending the password by Talk without setting a new password" : "Ní féidir seoladh an fhocail faire le Talk a dhíchumasú gan focal faire nua a shocrú",
"Share provider does not support accepting" : "Ní thacaíonn soláthraí scaireanna le glacadh",
"Cannot change target of link share" : "Ní féidir an sprioc maidir le comhroinnt naisc a athrú",
- "Invalid recipient" : "Faighteoir neamhbhailí",
+ "Invalid share recipient" : "Faighteoir scaireanna neamhbhailí",
"Group \"%s\" does not exist" : "Níl grúpa \"%s\" ann",
"The requested share does not exist anymore" : "Níl an sciar iarrtha ann a thuilleadh",
"The requested share comes from a disabled user" : "Tagann an sciar iarrtha ó úsáideoir díchumasaithe",
diff --git a/lib/l10n/gl.js b/lib/l10n/gl.js
index 045a68e335e..92037444a28 100644
--- a/lib/l10n/gl.js
+++ b/lib/l10n/gl.js
@@ -157,19 +157,19 @@ OC.L10N.register(
"%1$s shared »%2$s« with you and wants to add" : "%1$s compartiu «%2$s» con Vde. e quere engadir",
"»%s« added a note to a file shared with you" : "«%s» engadiu unha nota a un ficheiro compartido con Vde.",
"Passwords are enforced for link and mail shares" : "É obrigatorio o emprego de contrasinais para compartir por ligazón e por correo",
- "SharedWith is not a valid user" : "O destinatario da compartición non é un usuario válido",
- "SharedWith is not a valid group" : "O destinatario da compartición non é un grupo válido",
- "SharedWith should be empty" : "O destinatario da compartición debe estar baleiro",
- "SharedWith should not be empty" : "O destinatario da compartición non debe estar baleiro",
- "SharedWith is not a valid circle" : "O destinatario da compartición non é un círculo válido",
+ "Share recipient is not a valid user" : "O destinatario da compartición non é un usuario válido",
+ "Share recipient is not a valid group" : "O destinatario da compartición non é un grupo válido",
+ "Share recipient should be empty" : "O destinatario da compartición debe estar baleiro",
+ "Share recipient should not be empty" : "O destinatario da compartición non debe estar baleiro",
+ "Share recipient is not a valid circle" : "O destinatario da compartición non é un círculo válido",
"Unknown share type" : "Tipo descoñecido de compartición",
- "SharedBy should be set" : "Debe estar definido quen inicia a compartición",
+ "Share initiator must be set" : "Debe estar definido quen inicia a compartición",
"Cannot share with yourself" : "Non é posíbel compartir con un mesmo.",
- "Path should be set" : "A ruta compartida debe estar definida",
- "Path should be either a file or a folder" : "A ruta compartida debe ser a un ficheiro ou un cartafol",
+ "Shared path must be set" : "Debe estar definida a ruta compartida",
+ "Shared path must be either a file or a folder" : "A ruta compartida debe ser a un ficheiro ou un cartafol",
"You cannot share your root folder" : "Non pode compartir o seu cartafol raíz",
"You are not allowed to share %s" : "Non ten permiso para compartir %s",
- "A share requires permissions" : "Requírense permisos válidos para compartir",
+ "Valid permissions are required for sharing" : "Precisanse permisos válidos para compartir",
"Cannot increase permissions of %s" : "Non é posíbel incrementar os permisos de %s",
"Shares need at least read permissions" : "As comparticións necesitan polo menos permisos de lectura",
"Files cannot be shared with delete permissions" : "Non é posíbel compartir ficheiros con permisos de eliminación",
@@ -196,7 +196,7 @@ OC.L10N.register(
"Cannot disable sending the password by Talk without setting a new password" : "Non é posíbel desactivar o envío do contrasinal por Talk sen definir un novo contrasinal",
"Share provider does not support accepting" : "O provedor de comparticións non admite a aceptación",
"Cannot change target of link share" : "Non é posíbel cambiar o destino da ligazón compartida",
- "Invalid recipient" : "Destinatario de compartición incorrecto",
+ "Invalid share recipient" : "Destinatario de compartición incorrecto",
"Group \"%s\" does not exist" : "O grupo «%s» non existe",
"The requested share does not exist anymore" : "A compartición solicitada xa non existe",
"The requested share comes from a disabled user" : "A compartición solicitada procede dun usuario desactivado",
diff --git a/lib/l10n/gl.json b/lib/l10n/gl.json
index f463fb0c1dd..3c2cccb0c62 100644
--- a/lib/l10n/gl.json
+++ b/lib/l10n/gl.json
@@ -155,19 +155,19 @@
"%1$s shared »%2$s« with you and wants to add" : "%1$s compartiu «%2$s» con Vde. e quere engadir",
"»%s« added a note to a file shared with you" : "«%s» engadiu unha nota a un ficheiro compartido con Vde.",
"Passwords are enforced for link and mail shares" : "É obrigatorio o emprego de contrasinais para compartir por ligazón e por correo",
- "SharedWith is not a valid user" : "O destinatario da compartición non é un usuario válido",
- "SharedWith is not a valid group" : "O destinatario da compartición non é un grupo válido",
- "SharedWith should be empty" : "O destinatario da compartición debe estar baleiro",
- "SharedWith should not be empty" : "O destinatario da compartición non debe estar baleiro",
- "SharedWith is not a valid circle" : "O destinatario da compartición non é un círculo válido",
+ "Share recipient is not a valid user" : "O destinatario da compartición non é un usuario válido",
+ "Share recipient is not a valid group" : "O destinatario da compartición non é un grupo válido",
+ "Share recipient should be empty" : "O destinatario da compartición debe estar baleiro",
+ "Share recipient should not be empty" : "O destinatario da compartición non debe estar baleiro",
+ "Share recipient is not a valid circle" : "O destinatario da compartición non é un círculo válido",
"Unknown share type" : "Tipo descoñecido de compartición",
- "SharedBy should be set" : "Debe estar definido quen inicia a compartición",
+ "Share initiator must be set" : "Debe estar definido quen inicia a compartición",
"Cannot share with yourself" : "Non é posíbel compartir con un mesmo.",
- "Path should be set" : "A ruta compartida debe estar definida",
- "Path should be either a file or a folder" : "A ruta compartida debe ser a un ficheiro ou un cartafol",
+ "Shared path must be set" : "Debe estar definida a ruta compartida",
+ "Shared path must be either a file or a folder" : "A ruta compartida debe ser a un ficheiro ou un cartafol",
"You cannot share your root folder" : "Non pode compartir o seu cartafol raíz",
"You are not allowed to share %s" : "Non ten permiso para compartir %s",
- "A share requires permissions" : "Requírense permisos válidos para compartir",
+ "Valid permissions are required for sharing" : "Precisanse permisos válidos para compartir",
"Cannot increase permissions of %s" : "Non é posíbel incrementar os permisos de %s",
"Shares need at least read permissions" : "As comparticións necesitan polo menos permisos de lectura",
"Files cannot be shared with delete permissions" : "Non é posíbel compartir ficheiros con permisos de eliminación",
@@ -194,7 +194,7 @@
"Cannot disable sending the password by Talk without setting a new password" : "Non é posíbel desactivar o envío do contrasinal por Talk sen definir un novo contrasinal",
"Share provider does not support accepting" : "O provedor de comparticións non admite a aceptación",
"Cannot change target of link share" : "Non é posíbel cambiar o destino da ligazón compartida",
- "Invalid recipient" : "Destinatario de compartición incorrecto",
+ "Invalid share recipient" : "Destinatario de compartición incorrecto",
"Group \"%s\" does not exist" : "O grupo «%s» non existe",
"The requested share does not exist anymore" : "A compartición solicitada xa non existe",
"The requested share comes from a disabled user" : "A compartición solicitada procede dun usuario desactivado",
diff --git a/lib/l10n/ja.js b/lib/l10n/ja.js
index f148fcadf4b..38a5170f443 100644
--- a/lib/l10n/ja.js
+++ b/lib/l10n/ja.js
@@ -156,19 +156,10 @@ OC.L10N.register(
"%1$s shared »%2$s« with you and wants to add" : "%1$s shared »%2$s« with you and wants to add",
"»%s« added a note to a file shared with you" : "»%s« があなたと共有しているファイルにノートを追加しました。 ",
"Passwords are enforced for link and mail shares" : "リンクとメールの共有にパスワードが強制されます",
- "SharedWith is not a valid user" : "SharedWithは有効なユーザーではありません",
- "SharedWith is not a valid group" : "SharedWithは有効なグループではありません",
- "SharedWith should be empty" : "SharedWithは空でなければなりません",
- "SharedWith should not be empty" : "SharedWithは空にできません",
- "SharedWith is not a valid circle" : "SharedWithは有効なサークルではありません",
"Unknown share type" : "不明な共有タイプ",
- "SharedBy should be set" : "SharedByを設定する必要があります",
"Cannot share with yourself" : "自分自身とは共有できません",
- "Path should be set" : "パスを設定する必要があります",
- "Path should be either a file or a folder" : "パスは、ファイルまたはフォルダーのいずれかでなければなりません",
"You cannot share your root folder" : "ルートルートフォルダーを共有することはできません",
"You are not allowed to share %s" : "%s を共有することを許可されていません。",
- "A share requires permissions" : "共有には権限が必要です",
"Cannot increase permissions of %s" : "%sの権限を追加できません ",
"Shares need at least read permissions" : "共有には少なくとも読み取り権限が必要です",
"Files cannot be shared with delete permissions" : "削除権限付きでファイルを共有できません",
@@ -195,7 +186,6 @@ OC.L10N.register(
"Cannot disable sending the password by Talk without setting a new password" : "新しいパスワードを設定しないとTalkによるパスワード送信を無効にできません",
"Share provider does not support accepting" : "共有プロバイダは受け入れをサポートしていません",
"Cannot change target of link share" : "リンク共有のターゲットを変更できません",
- "Invalid recipient" : "無効な受信者",
"Group \"%s\" does not exist" : "グループ \"%s\" は存在しません",
"The requested share does not exist anymore" : "この共有はもう存在しません。",
"The requested share comes from a disabled user" : "要求された共有は無効化されたユーザーからのものです。",
diff --git a/lib/l10n/ja.json b/lib/l10n/ja.json
index 549e11415d3..ba30bf77d12 100644
--- a/lib/l10n/ja.json
+++ b/lib/l10n/ja.json
@@ -154,19 +154,10 @@
"%1$s shared »%2$s« with you and wants to add" : "%1$s shared »%2$s« with you and wants to add",
"»%s« added a note to a file shared with you" : "»%s« があなたと共有しているファイルにノートを追加しました。 ",
"Passwords are enforced for link and mail shares" : "リンクとメールの共有にパスワードが強制されます",
- "SharedWith is not a valid user" : "SharedWithは有効なユーザーではありません",
- "SharedWith is not a valid group" : "SharedWithは有効なグループではありません",
- "SharedWith should be empty" : "SharedWithは空でなければなりません",
- "SharedWith should not be empty" : "SharedWithは空にできません",
- "SharedWith is not a valid circle" : "SharedWithは有効なサークルではありません",
"Unknown share type" : "不明な共有タイプ",
- "SharedBy should be set" : "SharedByを設定する必要があります",
"Cannot share with yourself" : "自分自身とは共有できません",
- "Path should be set" : "パスを設定する必要があります",
- "Path should be either a file or a folder" : "パスは、ファイルまたはフォルダーのいずれかでなければなりません",
"You cannot share your root folder" : "ルートルートフォルダーを共有することはできません",
"You are not allowed to share %s" : "%s を共有することを許可されていません。",
- "A share requires permissions" : "共有には権限が必要です",
"Cannot increase permissions of %s" : "%sの権限を追加できません ",
"Shares need at least read permissions" : "共有には少なくとも読み取り権限が必要です",
"Files cannot be shared with delete permissions" : "削除権限付きでファイルを共有できません",
@@ -193,7 +184,6 @@
"Cannot disable sending the password by Talk without setting a new password" : "新しいパスワードを設定しないとTalkによるパスワード送信を無効にできません",
"Share provider does not support accepting" : "共有プロバイダは受け入れをサポートしていません",
"Cannot change target of link share" : "リンク共有のターゲットを変更できません",
- "Invalid recipient" : "無効な受信者",
"Group \"%s\" does not exist" : "グループ \"%s\" は存在しません",
"The requested share does not exist anymore" : "この共有はもう存在しません。",
"The requested share comes from a disabled user" : "要求された共有は無効化されたユーザーからのものです。",
diff --git a/lib/l10n/lv.js b/lib/l10n/lv.js
index 2c8265343f7..b23ef66d742 100644
--- a/lib/l10n/lv.js
+++ b/lib/l10n/lv.js
@@ -56,6 +56,7 @@ OC.L10N.register(
"Address" : "Adrese",
"Profile picture" : "Profila attēls",
"About" : "Par",
+ "Display name" : "Attēlojamais vārds",
"Additional settings" : "Papildu iestatījumi",
"Oracle connection could not be established" : "Nevar izveidot savienojumu ar Oracle",
"Set an admin password." : "Iestatiet administratora paroli.",
diff --git a/lib/l10n/lv.json b/lib/l10n/lv.json
index 6ca3ee1708e..657d681ec02 100644
--- a/lib/l10n/lv.json
+++ b/lib/l10n/lv.json
@@ -54,6 +54,7 @@
"Address" : "Adrese",
"Profile picture" : "Profila attēls",
"About" : "Par",
+ "Display name" : "Attēlojamais vārds",
"Additional settings" : "Papildu iestatījumi",
"Oracle connection could not be established" : "Nevar izveidot savienojumu ar Oracle",
"Set an admin password." : "Iestatiet administratora paroli.",
diff --git a/lib/l10n/nb.js b/lib/l10n/nb.js
index a38140c289b..017e13221de 100644
--- a/lib/l10n/nb.js
+++ b/lib/l10n/nb.js
@@ -126,6 +126,7 @@ OC.L10N.register(
"Headline" : "Overskrift",
"Organisation" : "Organisasion",
"Role" : "Rolle",
+ "Pronouns" : "Pronomen",
"Unknown account" : "Ukjent konto",
"Additional settings" : "Flere innstillinger",
"Enter the database Login and name for %s" : "Skriv inn databasens pålogging og navn for %s",
@@ -155,6 +156,7 @@ OC.L10N.register(
"%1$s shared »%2$s« with you and wants to add:" : "%1$s delte »%2$s« med deg og vil legge til:",
"%1$s shared »%2$s« with you and wants to add" : "%1$s delte »%2$s« med deg og vil legge til",
"»%s« added a note to a file shared with you" : "»%s« la til en melding til en fil delt med deg",
+ "Passwords are enforced for link and mail shares" : "Passord håndheves for koblings- og e-postdelinger",
"Unknown share type" : "Ukjent ressurstype",
"You are not allowed to share %s" : "Du har ikke lov til å dele %s",
"Cannot increase permissions of %s" : "Kan ikke øke tillatelser for %s",
diff --git a/lib/l10n/nb.json b/lib/l10n/nb.json
index 2a77f186ffc..616144ed573 100644
--- a/lib/l10n/nb.json
+++ b/lib/l10n/nb.json
@@ -124,6 +124,7 @@
"Headline" : "Overskrift",
"Organisation" : "Organisasion",
"Role" : "Rolle",
+ "Pronouns" : "Pronomen",
"Unknown account" : "Ukjent konto",
"Additional settings" : "Flere innstillinger",
"Enter the database Login and name for %s" : "Skriv inn databasens pålogging og navn for %s",
@@ -153,6 +154,7 @@
"%1$s shared »%2$s« with you and wants to add:" : "%1$s delte »%2$s« med deg og vil legge til:",
"%1$s shared »%2$s« with you and wants to add" : "%1$s delte »%2$s« med deg og vil legge til",
"»%s« added a note to a file shared with you" : "»%s« la til en melding til en fil delt med deg",
+ "Passwords are enforced for link and mail shares" : "Passord håndheves for koblings- og e-postdelinger",
"Unknown share type" : "Ukjent ressurstype",
"You are not allowed to share %s" : "Du har ikke lov til å dele %s",
"Cannot increase permissions of %s" : "Kan ikke øke tillatelser for %s",
diff --git a/lib/l10n/pt_BR.js b/lib/l10n/pt_BR.js
index f0763f24959..052c1d2de89 100644
--- a/lib/l10n/pt_BR.js
+++ b/lib/l10n/pt_BR.js
@@ -157,19 +157,10 @@ OC.L10N.register(
"%1$s shared »%2$s« with you and wants to add" : "%1$s compartilhou »%2$s« com você e quer adicionar",
"»%s« added a note to a file shared with you" : "»%s« adicionou uma anotação num arquivo compartilhado com você",
"Passwords are enforced for link and mail shares" : "As senhas são aplicadas para compartilhamentos de links e e-mails",
- "SharedWith is not a valid user" : "SharedWith não é um usuário válido",
- "SharedWith is not a valid group" : "SharedWith não é um grupo válido",
- "SharedWith should be empty" : "SharedWith pode estar vazio",
- "SharedWith should not be empty" : "SharedWith não pode estar vazio",
- "SharedWith is not a valid circle" : "SharedWith não é um círculo válido",
"Unknown share type" : "Tipo de compartilhamento desconhecido",
- "SharedBy should be set" : "SharedBy deve estar definido",
"Cannot share with yourself" : "Não é possível compartilhar consigo mesmo",
- "Path should be set" : "O caminho deve estar definido",
- "Path should be either a file or a folder" : "O caminho deve ser um arquivo ou pasta",
"You cannot share your root folder" : "Você não pode compartilhar sua pasta raiz",
"You are not allowed to share %s" : "Você não tem permissão para compartilhar %s",
- "A share requires permissions" : "Um compartilhamento requer permissões",
"Cannot increase permissions of %s" : "Não foi possível aumentar as permissões de %s",
"Shares need at least read permissions" : "Compartilhamentos precisam pelo menos permissões de leitura",
"Files cannot be shared with delete permissions" : "Arquivos não podem ser compartilhados com permissões de exclusão",
@@ -196,7 +187,6 @@ OC.L10N.register(
"Cannot disable sending the password by Talk without setting a new password" : "Não é possível desativar o envio da senha pelo Talk sem definir uma nova senha",
"Share provider does not support accepting" : "O provedor de compartilhamento não oferece suporte à aceitação",
"Cannot change target of link share" : "Não é possível alterar o destino do compartilhamento do link",
- "Invalid recipient" : "Destinatário inválido",
"Group \"%s\" does not exist" : "Grupo \"%s\" não existe",
"The requested share does not exist anymore" : "O compartilhamento solicitado não existe mais",
"The requested share comes from a disabled user" : "O compartilhamento solicitado vem de um usuário desabilitado",
diff --git a/lib/l10n/pt_BR.json b/lib/l10n/pt_BR.json
index ae40d06187f..d5ed81d4bcc 100644
--- a/lib/l10n/pt_BR.json
+++ b/lib/l10n/pt_BR.json
@@ -155,19 +155,10 @@
"%1$s shared »%2$s« with you and wants to add" : "%1$s compartilhou »%2$s« com você e quer adicionar",
"»%s« added a note to a file shared with you" : "»%s« adicionou uma anotação num arquivo compartilhado com você",
"Passwords are enforced for link and mail shares" : "As senhas são aplicadas para compartilhamentos de links e e-mails",
- "SharedWith is not a valid user" : "SharedWith não é um usuário válido",
- "SharedWith is not a valid group" : "SharedWith não é um grupo válido",
- "SharedWith should be empty" : "SharedWith pode estar vazio",
- "SharedWith should not be empty" : "SharedWith não pode estar vazio",
- "SharedWith is not a valid circle" : "SharedWith não é um círculo válido",
"Unknown share type" : "Tipo de compartilhamento desconhecido",
- "SharedBy should be set" : "SharedBy deve estar definido",
"Cannot share with yourself" : "Não é possível compartilhar consigo mesmo",
- "Path should be set" : "O caminho deve estar definido",
- "Path should be either a file or a folder" : "O caminho deve ser um arquivo ou pasta",
"You cannot share your root folder" : "Você não pode compartilhar sua pasta raiz",
"You are not allowed to share %s" : "Você não tem permissão para compartilhar %s",
- "A share requires permissions" : "Um compartilhamento requer permissões",
"Cannot increase permissions of %s" : "Não foi possível aumentar as permissões de %s",
"Shares need at least read permissions" : "Compartilhamentos precisam pelo menos permissões de leitura",
"Files cannot be shared with delete permissions" : "Arquivos não podem ser compartilhados com permissões de exclusão",
@@ -194,7 +185,6 @@
"Cannot disable sending the password by Talk without setting a new password" : "Não é possível desativar o envio da senha pelo Talk sem definir uma nova senha",
"Share provider does not support accepting" : "O provedor de compartilhamento não oferece suporte à aceitação",
"Cannot change target of link share" : "Não é possível alterar o destino do compartilhamento do link",
- "Invalid recipient" : "Destinatário inválido",
"Group \"%s\" does not exist" : "Grupo \"%s\" não existe",
"The requested share does not exist anymore" : "O compartilhamento solicitado não existe mais",
"The requested share comes from a disabled user" : "O compartilhamento solicitado vem de um usuário desabilitado",
diff --git a/lib/l10n/ru.js b/lib/l10n/ru.js
index 7390eb7407c..182bb336dff 100644
--- a/lib/l10n/ru.js
+++ b/lib/l10n/ru.js
@@ -158,11 +158,8 @@ OC.L10N.register(
"Passwords are enforced for link and mail shares" : "Для общих ссылок и почтовых рассылок применяются пароли",
"Unknown share type" : "Общий доступ неизвестного типа",
"Cannot share with yourself" : "Не могу поделиться с самим собой",
- "Path should be set" : "Путь должен быть задан",
- "Path should be either a file or a folder" : "Путь должен быть либо к файлу, либо к папке",
"You cannot share your root folder" : "Вы не можете предоставить общий доступ к своей корневой папке",
"You are not allowed to share %s" : "Вам не разрешено делиться %s",
- "A share requires permissions" : "Для общего доступа требуются разрешения",
"Cannot increase permissions of %s" : "Не удалось повысить права доступа %s",
"Shares need at least read permissions" : "Общим ресурсам требуются как минимум разрешения на чтение",
"Files cannot be shared with delete permissions" : "Права на удаление файлов не позволяют открывать общий доступ к ним",
@@ -189,7 +186,6 @@ OC.L10N.register(
"Cannot disable sending the password by Talk without setting a new password" : "Невозможно отключить отправку пароля по телефону без установки нового пароля",
"Share provider does not support accepting" : "Поставщик общего доступа не поддерживает прием",
"Cannot change target of link share" : "Невозможно изменить цель публикации ссылки",
- "Invalid recipient" : "Недействительный получатель",
"Group \"%s\" does not exist" : "Группа \"%s\" не существует",
"The requested share does not exist anymore" : "Запрошенный общий ресурс более не существует.",
"The requested share comes from a disabled user" : "Запрос на общий доступ поступает от отключенного пользователя",
diff --git a/lib/l10n/ru.json b/lib/l10n/ru.json
index 8394dc961da..5ad4569ed4f 100644
--- a/lib/l10n/ru.json
+++ b/lib/l10n/ru.json
@@ -156,11 +156,8 @@
"Passwords are enforced for link and mail shares" : "Для общих ссылок и почтовых рассылок применяются пароли",
"Unknown share type" : "Общий доступ неизвестного типа",
"Cannot share with yourself" : "Не могу поделиться с самим собой",
- "Path should be set" : "Путь должен быть задан",
- "Path should be either a file or a folder" : "Путь должен быть либо к файлу, либо к папке",
"You cannot share your root folder" : "Вы не можете предоставить общий доступ к своей корневой папке",
"You are not allowed to share %s" : "Вам не разрешено делиться %s",
- "A share requires permissions" : "Для общего доступа требуются разрешения",
"Cannot increase permissions of %s" : "Не удалось повысить права доступа %s",
"Shares need at least read permissions" : "Общим ресурсам требуются как минимум разрешения на чтение",
"Files cannot be shared with delete permissions" : "Права на удаление файлов не позволяют открывать общий доступ к ним",
@@ -187,7 +184,6 @@
"Cannot disable sending the password by Talk without setting a new password" : "Невозможно отключить отправку пароля по телефону без установки нового пароля",
"Share provider does not support accepting" : "Поставщик общего доступа не поддерживает прием",
"Cannot change target of link share" : "Невозможно изменить цель публикации ссылки",
- "Invalid recipient" : "Недействительный получатель",
"Group \"%s\" does not exist" : "Группа \"%s\" не существует",
"The requested share does not exist anymore" : "Запрошенный общий ресурс более не существует.",
"The requested share comes from a disabled user" : "Запрос на общий доступ поступает от отключенного пользователя",
diff --git a/lib/l10n/sk.js b/lib/l10n/sk.js
index b2bb6464ad0..d182e3071c2 100644
--- a/lib/l10n/sk.js
+++ b/lib/l10n/sk.js
@@ -147,7 +147,6 @@ OC.L10N.register(
"%1$s shared »%2$s« with you and wants to add" : "%1$s vám sprístupnil »%2$s« s poznámkou",
"»%s« added a note to a file shared with you" : "»%s« pridal poznámku k súboru ktorý s Vami zdieľa",
"Unknown share type" : "Neplatný typ sprístupnenia",
- "Path should be set" : "Cesta musí byť nastavená",
"You are not allowed to share %s" : "Nemôžete sprístupniť %s",
"Cannot increase permissions of %s" : "Nie je možné navýšiť oprávnenia pre %s",
"Files cannot be shared with delete permissions" : "Súbory nie je možné sprístupňovať s oprávneniami na odstránenie",
@@ -156,7 +155,6 @@ OC.L10N.register(
"_Cannot set expiration date more than %n day in the future_::_Cannot set expiration date more than %n days in the future_" : ["Nie je možné nastaviť dátum konca platnosti viac ako %s deň v budúcnosti","Nie je možné nastaviť dátum konca platnosti viac ako %s dní v budúcnosti","Nie je možné nastaviť dátum konca platnosti viac ako %s dní v budúcnosti","Nie je možné nastaviť dátum konca platnosti viac ako %s dní v budúcnosti"],
"Sharing is only allowed with group members" : "Zdieľanie je možné iba s členmi skupiny",
"Sharing %s failed, because this item is already shared with the account %s" : "Zdieľanie %s zlyhalo, pretože táto položka už je užívateľovi %s zozdieľaná.",
- "Invalid recipient" : "Neplatný príjemca",
"The requested share does not exist anymore" : "Požadované sprístupnenie už neexistuje",
"The requested share comes from a disabled user" : "Požadované zdieľanie pochádza od zakázaného užívateľa.",
"The user was not created because the user limit has been reached. Check your notifications to learn more." : "Bol dosiahnutý limit používateľov a používateľ nebol vytvorený. Pozrite sa do upozornení pre viac informácií.",
diff --git a/lib/l10n/sk.json b/lib/l10n/sk.json
index fd905b9ab37..097b833df96 100644
--- a/lib/l10n/sk.json
+++ b/lib/l10n/sk.json
@@ -145,7 +145,6 @@
"%1$s shared »%2$s« with you and wants to add" : "%1$s vám sprístupnil »%2$s« s poznámkou",
"»%s« added a note to a file shared with you" : "»%s« pridal poznámku k súboru ktorý s Vami zdieľa",
"Unknown share type" : "Neplatný typ sprístupnenia",
- "Path should be set" : "Cesta musí byť nastavená",
"You are not allowed to share %s" : "Nemôžete sprístupniť %s",
"Cannot increase permissions of %s" : "Nie je možné navýšiť oprávnenia pre %s",
"Files cannot be shared with delete permissions" : "Súbory nie je možné sprístupňovať s oprávneniami na odstránenie",
@@ -154,7 +153,6 @@
"_Cannot set expiration date more than %n day in the future_::_Cannot set expiration date more than %n days in the future_" : ["Nie je možné nastaviť dátum konca platnosti viac ako %s deň v budúcnosti","Nie je možné nastaviť dátum konca platnosti viac ako %s dní v budúcnosti","Nie je možné nastaviť dátum konca platnosti viac ako %s dní v budúcnosti","Nie je možné nastaviť dátum konca platnosti viac ako %s dní v budúcnosti"],
"Sharing is only allowed with group members" : "Zdieľanie je možné iba s členmi skupiny",
"Sharing %s failed, because this item is already shared with the account %s" : "Zdieľanie %s zlyhalo, pretože táto položka už je užívateľovi %s zozdieľaná.",
- "Invalid recipient" : "Neplatný príjemca",
"The requested share does not exist anymore" : "Požadované sprístupnenie už neexistuje",
"The requested share comes from a disabled user" : "Požadované zdieľanie pochádza od zakázaného užívateľa.",
"The user was not created because the user limit has been reached. Check your notifications to learn more." : "Bol dosiahnutý limit používateľov a používateľ nebol vytvorený. Pozrite sa do upozornení pre viac informácií.",
diff --git a/lib/l10n/sr.js b/lib/l10n/sr.js
index 612537d1e77..ac59d5cf8f0 100644
--- a/lib/l10n/sr.js
+++ b/lib/l10n/sr.js
@@ -157,19 +157,10 @@ OC.L10N.register(
"%1$s shared »%2$s« with you and wants to add" : "%1$s је поделио „%2$s“ са Вама и жели да дода",
"»%s« added a note to a file shared with you" : "\"%s\" је додао белешку на фајл који дели са Вама",
"Passwords are enforced for link and mail shares" : "За дељења линком и поштом је обавезна заштита лозинком",
- "SharedWith is not a valid user" : "SharedWith није исправан корисник",
- "SharedWith is not a valid group" : "SharedWith није исправна група",
- "SharedWith should be empty" : "SharedWith би требало да буде празно",
- "SharedWith should not be empty" : "SharedWith не би требало да буде празно",
- "SharedWith is not a valid circle" : "SharedWith није исправан круг",
"Unknown share type" : "Непознат тип дељења",
- "SharedBy should be set" : "SharedBy би требало да буде постављено",
"Cannot share with yourself" : "Не можете да делите са самим собом",
- "Path should be set" : "Путања би требало да буде постављена",
- "Path should be either a file or a folder" : "Путања би требало да буде или фајл или фолдер",
"You cannot share your root folder" : "Не можете да делите свој корени фолдер",
"You are not allowed to share %s" : "Није вам дозвољено да делите %s",
- "A share requires permissions" : "За дељење су потребне дозволе",
"Cannot increase permissions of %s" : "Не могу да повећам привилегије за %s",
"Shares need at least read permissions" : "Дељења морају да имају барем право читања",
"Files cannot be shared with delete permissions" : "Фајлови не могу да се деле са дозволама за брисање",
@@ -196,7 +187,6 @@ OC.L10N.register(
"Cannot disable sending the password by Talk without setting a new password" : "Без постављања нове лозинке не може да се искључи слање лозинке апликацијом Talk",
"Share provider does not support accepting" : "Пружалац услуге дељења не подржава прихватање",
"Cannot change target of link share" : "Не може да се промени циљ дељења линком",
- "Invalid recipient" : "Неисправан прималац",
"Group \"%s\" does not exist" : "Група „%s” не постоји",
"The requested share does not exist anymore" : "Захтевано дељење више не постоји",
"The requested share comes from a disabled user" : "Захтевано дељење долази од искљученог корисника",
diff --git a/lib/l10n/sr.json b/lib/l10n/sr.json
index 10777fe38af..d96483d2259 100644
--- a/lib/l10n/sr.json
+++ b/lib/l10n/sr.json
@@ -155,19 +155,10 @@
"%1$s shared »%2$s« with you and wants to add" : "%1$s је поделио „%2$s“ са Вама и жели да дода",
"»%s« added a note to a file shared with you" : "\"%s\" је додао белешку на фајл који дели са Вама",
"Passwords are enforced for link and mail shares" : "За дељења линком и поштом је обавезна заштита лозинком",
- "SharedWith is not a valid user" : "SharedWith није исправан корисник",
- "SharedWith is not a valid group" : "SharedWith није исправна група",
- "SharedWith should be empty" : "SharedWith би требало да буде празно",
- "SharedWith should not be empty" : "SharedWith не би требало да буде празно",
- "SharedWith is not a valid circle" : "SharedWith није исправан круг",
"Unknown share type" : "Непознат тип дељења",
- "SharedBy should be set" : "SharedBy би требало да буде постављено",
"Cannot share with yourself" : "Не можете да делите са самим собом",
- "Path should be set" : "Путања би требало да буде постављена",
- "Path should be either a file or a folder" : "Путања би требало да буде или фајл или фолдер",
"You cannot share your root folder" : "Не можете да делите свој корени фолдер",
"You are not allowed to share %s" : "Није вам дозвољено да делите %s",
- "A share requires permissions" : "За дељење су потребне дозволе",
"Cannot increase permissions of %s" : "Не могу да повећам привилегије за %s",
"Shares need at least read permissions" : "Дељења морају да имају барем право читања",
"Files cannot be shared with delete permissions" : "Фајлови не могу да се деле са дозволама за брисање",
@@ -194,7 +185,6 @@
"Cannot disable sending the password by Talk without setting a new password" : "Без постављања нове лозинке не може да се искључи слање лозинке апликацијом Talk",
"Share provider does not support accepting" : "Пружалац услуге дељења не подржава прихватање",
"Cannot change target of link share" : "Не може да се промени циљ дељења линком",
- "Invalid recipient" : "Неисправан прималац",
"Group \"%s\" does not exist" : "Група „%s” не постоји",
"The requested share does not exist anymore" : "Захтевано дељење више не постоји",
"The requested share comes from a disabled user" : "Захтевано дељење долази од искљученог корисника",
diff --git a/lib/l10n/sv.js b/lib/l10n/sv.js
index 7f22d7b5d92..84c5bb87970 100644
--- a/lib/l10n/sv.js
+++ b/lib/l10n/sv.js
@@ -159,11 +159,8 @@ OC.L10N.register(
"Passwords are enforced for link and mail shares" : "Lösenord är obligatoriskt för länk och e-postdelning",
"Unknown share type" : "Ogiltig delningstyp",
"Cannot share with yourself" : "Kan inte dela med dig själv",
- "Path should be set" : "Sökvägen bör ställas in",
- "Path should be either a file or a folder" : "Sökvägen ska vara antingen en fil eller en mapp",
"You cannot share your root folder" : "Du kan inte dela din rotmapp",
"You are not allowed to share %s" : "Du tillåts inte att dela %s",
- "A share requires permissions" : "En delning kräver behörigheter",
"Cannot increase permissions of %s" : "Kan inte höja behörigheter av %s",
"Shares need at least read permissions" : "Delningar behöver åtminstone läsbehörighet",
"Files cannot be shared with delete permissions" : "Filer kan inte delas med rättighet att radera",
@@ -189,7 +186,6 @@ OC.L10N.register(
"Cannot enable sending the password by Talk without setting a new password" : "Kan inte aktivera sändning av lösenordet med Talk utan att ange ett nytt lösenord",
"Cannot disable sending the password by Talk without setting a new password" : "Kan inte inaktivera sändning av lösenordet med Talk utan att ange ett nytt lösenord",
"Cannot change target of link share" : "Kan inte ändra mål för länkdelning",
- "Invalid recipient" : "Ogiltig mottagare",
"Group \"%s\" does not exist" : "Gruppen \"%s\" finns inte",
"The requested share does not exist anymore" : "Den begärda delningen finns inte mer",
"The requested share comes from a disabled user" : "Den begärda delningen kommer från en inaktiverad användare",
diff --git a/lib/l10n/sv.json b/lib/l10n/sv.json
index e46b063e54f..1e27fe194cb 100644
--- a/lib/l10n/sv.json
+++ b/lib/l10n/sv.json
@@ -157,11 +157,8 @@
"Passwords are enforced for link and mail shares" : "Lösenord är obligatoriskt för länk och e-postdelning",
"Unknown share type" : "Ogiltig delningstyp",
"Cannot share with yourself" : "Kan inte dela med dig själv",
- "Path should be set" : "Sökvägen bör ställas in",
- "Path should be either a file or a folder" : "Sökvägen ska vara antingen en fil eller en mapp",
"You cannot share your root folder" : "Du kan inte dela din rotmapp",
"You are not allowed to share %s" : "Du tillåts inte att dela %s",
- "A share requires permissions" : "En delning kräver behörigheter",
"Cannot increase permissions of %s" : "Kan inte höja behörigheter av %s",
"Shares need at least read permissions" : "Delningar behöver åtminstone läsbehörighet",
"Files cannot be shared with delete permissions" : "Filer kan inte delas med rättighet att radera",
@@ -187,7 +184,6 @@
"Cannot enable sending the password by Talk without setting a new password" : "Kan inte aktivera sändning av lösenordet med Talk utan att ange ett nytt lösenord",
"Cannot disable sending the password by Talk without setting a new password" : "Kan inte inaktivera sändning av lösenordet med Talk utan att ange ett nytt lösenord",
"Cannot change target of link share" : "Kan inte ändra mål för länkdelning",
- "Invalid recipient" : "Ogiltig mottagare",
"Group \"%s\" does not exist" : "Gruppen \"%s\" finns inte",
"The requested share does not exist anymore" : "Den begärda delningen finns inte mer",
"The requested share comes from a disabled user" : "Den begärda delningen kommer från en inaktiverad användare",
diff --git a/lib/l10n/tr.js b/lib/l10n/tr.js
index 1e90ed02f76..32fddae2a15 100644
--- a/lib/l10n/tr.js
+++ b/lib/l10n/tr.js
@@ -157,19 +157,19 @@ OC.L10N.register(
"%1$s shared »%2$s« with you and wants to add" : "%1$s sizinle »%2$s« ögesini paylaştı ve eklemenizi istiyor",
"»%s« added a note to a file shared with you" : "»%s« sizinle paylaştığı bir dosyaya bir not ekledi",
"Passwords are enforced for link and mail shares" : "Bağlantı ve e-posta paylaşımları için parolalar zorunludur",
- "SharedWith is not a valid user" : "SharedWith geçerli bir kullanıcı değil",
- "SharedWith is not a valid group" : "SharedWith geçerli bir grup değil",
- "SharedWith should be empty" : "SharedWith boş olamaz",
- "SharedWith should not be empty" : "SharedWith boş olmamalı",
- "SharedWith is not a valid circle" : "SharedWith geçerli bir çevre değil",
+ "Share recipient is not a valid user" : "Paylaşım alıcısı geçerli bir kullanıcı değil",
+ "Share recipient is not a valid group" : "Paylaşım alıcısı geçerli bir grup değil",
+ "Share recipient should be empty" : "Paylaşım alıcısı boş olmalı",
+ "Share recipient should not be empty" : "Paylaşım alıcısı boş olmamalı",
+ "Share recipient is not a valid circle" : "Paylaşım alıcısı geçerli bir çevre değil",
"Unknown share type" : "Paylaşım türü bilinmiyor",
- "SharedBy should be set" : "SharedBy ayarlanmalıdır",
+ "Share initiator must be set" : "Paylaşımı başlatan ayarlanmalıdır",
"Cannot share with yourself" : "Kendinizle paylaşamazsınız",
- "Path should be set" : "Yol ayarlanmalıdır",
- "Path should be either a file or a folder" : "Yol bir dosya ya da klasör olmalıdır",
+ "Shared path must be set" : "Paylaşılan yol ayarlanmalıdır",
+ "Shared path must be either a file or a folder" : "Paylaşılan yol bir dosya ya da klasör olmalıdır",
"You cannot share your root folder" : "Kök klasörünüzü paylaşamazsınız",
"You are not allowed to share %s" : "%s ögesini paylaşma izniniz yok",
- "A share requires permissions" : "Bir paylaşımın izinleri olmalıdır",
+ "Valid permissions are required for sharing" : "Paylaşım için geçerli izinler olmalıdır",
"Cannot increase permissions of %s" : "%s izinleri yükseltilemedi",
"Shares need at least read permissions" : "Paylaşımların en azından okuma izinleri olmalıdır",
"Files cannot be shared with delete permissions" : "Silme izni ile dosya paylaşılamaz",
@@ -196,7 +196,7 @@ OC.L10N.register(
"Cannot disable sending the password by Talk without setting a new password" : "Yeni bir parola ayarlanmadan Sohbet uygulaması ile parola gönderme devre dışı bırakılamaz",
"Share provider does not support accepting" : "Paylaşım hizmeti sağlayıcısı kabul etmeyi desteklemiyor",
"Cannot change target of link share" : "Bağlantı paylaşımının hedefi değiştirilemedi",
- "Invalid recipient" : "Alıcı geçersiz",
+ "Invalid share recipient" : "Paylaşım alıcısı geçersiz",
"Group \"%s\" does not exist" : "\"%s\" grubu bulunamadı",
"The requested share does not exist anymore" : "Erişilmek istenilen paylaşım artık yok",
"The requested share comes from a disabled user" : "Erişilmek istenilen paylaşım devre dışı bırakılmış bir kullanıcıdan geliyor",
diff --git a/lib/l10n/tr.json b/lib/l10n/tr.json
index ee0704de2c3..a267199af95 100644
--- a/lib/l10n/tr.json
+++ b/lib/l10n/tr.json
@@ -155,19 +155,19 @@
"%1$s shared »%2$s« with you and wants to add" : "%1$s sizinle »%2$s« ögesini paylaştı ve eklemenizi istiyor",
"»%s« added a note to a file shared with you" : "»%s« sizinle paylaştığı bir dosyaya bir not ekledi",
"Passwords are enforced for link and mail shares" : "Bağlantı ve e-posta paylaşımları için parolalar zorunludur",
- "SharedWith is not a valid user" : "SharedWith geçerli bir kullanıcı değil",
- "SharedWith is not a valid group" : "SharedWith geçerli bir grup değil",
- "SharedWith should be empty" : "SharedWith boş olamaz",
- "SharedWith should not be empty" : "SharedWith boş olmamalı",
- "SharedWith is not a valid circle" : "SharedWith geçerli bir çevre değil",
+ "Share recipient is not a valid user" : "Paylaşım alıcısı geçerli bir kullanıcı değil",
+ "Share recipient is not a valid group" : "Paylaşım alıcısı geçerli bir grup değil",
+ "Share recipient should be empty" : "Paylaşım alıcısı boş olmalı",
+ "Share recipient should not be empty" : "Paylaşım alıcısı boş olmamalı",
+ "Share recipient is not a valid circle" : "Paylaşım alıcısı geçerli bir çevre değil",
"Unknown share type" : "Paylaşım türü bilinmiyor",
- "SharedBy should be set" : "SharedBy ayarlanmalıdır",
+ "Share initiator must be set" : "Paylaşımı başlatan ayarlanmalıdır",
"Cannot share with yourself" : "Kendinizle paylaşamazsınız",
- "Path should be set" : "Yol ayarlanmalıdır",
- "Path should be either a file or a folder" : "Yol bir dosya ya da klasör olmalıdır",
+ "Shared path must be set" : "Paylaşılan yol ayarlanmalıdır",
+ "Shared path must be either a file or a folder" : "Paylaşılan yol bir dosya ya da klasör olmalıdır",
"You cannot share your root folder" : "Kök klasörünüzü paylaşamazsınız",
"You are not allowed to share %s" : "%s ögesini paylaşma izniniz yok",
- "A share requires permissions" : "Bir paylaşımın izinleri olmalıdır",
+ "Valid permissions are required for sharing" : "Paylaşım için geçerli izinler olmalıdır",
"Cannot increase permissions of %s" : "%s izinleri yükseltilemedi",
"Shares need at least read permissions" : "Paylaşımların en azından okuma izinleri olmalıdır",
"Files cannot be shared with delete permissions" : "Silme izni ile dosya paylaşılamaz",
@@ -194,7 +194,7 @@
"Cannot disable sending the password by Talk without setting a new password" : "Yeni bir parola ayarlanmadan Sohbet uygulaması ile parola gönderme devre dışı bırakılamaz",
"Share provider does not support accepting" : "Paylaşım hizmeti sağlayıcısı kabul etmeyi desteklemiyor",
"Cannot change target of link share" : "Bağlantı paylaşımının hedefi değiştirilemedi",
- "Invalid recipient" : "Alıcı geçersiz",
+ "Invalid share recipient" : "Paylaşım alıcısı geçersiz",
"Group \"%s\" does not exist" : "\"%s\" grubu bulunamadı",
"The requested share does not exist anymore" : "Erişilmek istenilen paylaşım artık yok",
"The requested share comes from a disabled user" : "Erişilmek istenilen paylaşım devre dışı bırakılmış bir kullanıcıdan geliyor",
diff --git a/lib/l10n/zh_CN.js b/lib/l10n/zh_CN.js
index 7af34971d75..ffe415ae409 100644
--- a/lib/l10n/zh_CN.js
+++ b/lib/l10n/zh_CN.js
@@ -82,6 +82,7 @@ OC.L10N.register(
"Empty file" : "空文件",
"Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "模块:%s不存在。请在 App 设置中开启或联系您的管理员。",
"Dot files are not allowed" : "以 . 开头的文件不被允许",
+ "\"%1$s\" is a forbidden file or folder name." : "\"%1$s\" 是禁止的文件或文件夹名称。",
"File already exists" : "文件已存在",
"Invalid path" : "无效的路径",
"Failed to create file from template" : "从模板创建文件失败",
@@ -150,14 +151,10 @@ OC.L10N.register(
"%1$s shared »%2$s« with you and wants to add" : "%1$s 与您共享了 »%2$s« 并希望添加",
"»%s« added a note to a file shared with you" : "»%s« 在与您共享的文件中添加了备注",
"Passwords are enforced for link and mail shares" : "链接和邮件共享必须使用密码",
- "SharedWith is not a valid user" : "ShareWith 不是有效用户",
"Unknown share type" : "未知共享类型",
"Cannot share with yourself" : "无法与自己分享",
- "Path should be set" : "应设置路径",
- "Path should be either a file or a folder" : "路径应该是文件或文件夹",
"You cannot share your root folder" : "您无法共享您的主文件夹",
"You are not allowed to share %s" : "您无权共享 %s",
- "A share requires permissions" : "共享需要权限",
"Cannot increase permissions of %s" : "无法提升 %s 的权限",
"Shares need at least read permissions" : "共享至少需要读取权限",
"Files cannot be shared with delete permissions" : "不能带删除权限分享文件",
@@ -279,6 +276,7 @@ OC.L10N.register(
"Your data directory must be an absolute path." : "您的数据目录必须是绝对路径。",
"Check the value of \"datadirectory\" in your configuration." : "请检查配置文件中 \"datadirectory\" 的值。",
"Your data directory is invalid." : "您的数据目录无效。",
+ "Ensure there is a file called \"%1$s\" in the root of the data directory. It should have the content: \"%2$s\"" : "确保数据目录的根目录中有一个名为\"%1$s\"的文件。它应该包含以下内容:\"%2$s\"",
"Action \"%s\" not supported or implemented." : "操作 \"%s\" 不支持或未实现。",
"Authentication failed, wrong token or provider ID given" : "认证失败,提供了错误的token或提供者ID",
"Parameters missing in order to complete the request. Missing Parameters: \"%s\"" : "缺少参数来完成请求。缺少的参数为:\"%s\"",
diff --git a/lib/l10n/zh_CN.json b/lib/l10n/zh_CN.json
index 430f3cf59b2..4c861fdc4ee 100644
--- a/lib/l10n/zh_CN.json
+++ b/lib/l10n/zh_CN.json
@@ -80,6 +80,7 @@
"Empty file" : "空文件",
"Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "模块:%s不存在。请在 App 设置中开启或联系您的管理员。",
"Dot files are not allowed" : "以 . 开头的文件不被允许",
+ "\"%1$s\" is a forbidden file or folder name." : "\"%1$s\" 是禁止的文件或文件夹名称。",
"File already exists" : "文件已存在",
"Invalid path" : "无效的路径",
"Failed to create file from template" : "从模板创建文件失败",
@@ -148,14 +149,10 @@
"%1$s shared »%2$s« with you and wants to add" : "%1$s 与您共享了 »%2$s« 并希望添加",
"»%s« added a note to a file shared with you" : "»%s« 在与您共享的文件中添加了备注",
"Passwords are enforced for link and mail shares" : "链接和邮件共享必须使用密码",
- "SharedWith is not a valid user" : "ShareWith 不是有效用户",
"Unknown share type" : "未知共享类型",
"Cannot share with yourself" : "无法与自己分享",
- "Path should be set" : "应设置路径",
- "Path should be either a file or a folder" : "路径应该是文件或文件夹",
"You cannot share your root folder" : "您无法共享您的主文件夹",
"You are not allowed to share %s" : "您无权共享 %s",
- "A share requires permissions" : "共享需要权限",
"Cannot increase permissions of %s" : "无法提升 %s 的权限",
"Shares need at least read permissions" : "共享至少需要读取权限",
"Files cannot be shared with delete permissions" : "不能带删除权限分享文件",
@@ -277,6 +274,7 @@
"Your data directory must be an absolute path." : "您的数据目录必须是绝对路径。",
"Check the value of \"datadirectory\" in your configuration." : "请检查配置文件中 \"datadirectory\" 的值。",
"Your data directory is invalid." : "您的数据目录无效。",
+ "Ensure there is a file called \"%1$s\" in the root of the data directory. It should have the content: \"%2$s\"" : "确保数据目录的根目录中有一个名为\"%1$s\"的文件。它应该包含以下内容:\"%2$s\"",
"Action \"%s\" not supported or implemented." : "操作 \"%s\" 不支持或未实现。",
"Authentication failed, wrong token or provider ID given" : "认证失败,提供了错误的token或提供者ID",
"Parameters missing in order to complete the request. Missing Parameters: \"%s\"" : "缺少参数来完成请求。缺少的参数为:\"%s\"",
diff --git a/lib/l10n/zh_HK.js b/lib/l10n/zh_HK.js
index 02eb53865d4..4a924532b54 100644
--- a/lib/l10n/zh_HK.js
+++ b/lib/l10n/zh_HK.js
@@ -159,11 +159,8 @@ OC.L10N.register(
"Passwords are enforced for link and mail shares" : "連結及郵件分享強制使用密碼",
"Unknown share type" : "分享類型不詳",
"Cannot share with yourself" : "無法與您自己分享",
- "Path should be set" : "應該設定途徑",
- "Path should be either a file or a folder" : "途徑應為檔案或資料夾",
"You cannot share your root folder" : "您無法分享您的根資料夾",
"You are not allowed to share %s" : "你無權分享 %s",
- "A share requires permissions" : "分享需要權限",
"Cannot increase permissions of %s" : "無法增加 %s 的權限",
"Shares need at least read permissions" : "分享需要至少讀取的權限",
"Files cannot be shared with delete permissions" : "無法分享具有刪除權限的檔案",
@@ -190,7 +187,6 @@ OC.L10N.register(
"Cannot disable sending the password by Talk without setting a new password" : "若未設定新密碼,則無法停用透過 Talk 傳送密碼",
"Share provider does not support accepting" : "分享提供者不支援接受",
"Cannot change target of link share" : "無法變更連結分享的目標",
- "Invalid recipient" : "無效的收件人",
"Group \"%s\" does not exist" : "群組「%s」不存在",
"The requested share does not exist anymore" : "該分享已經不存在",
"The requested share comes from a disabled user" : "請求的分享來自已停用的用戶",
diff --git a/lib/l10n/zh_HK.json b/lib/l10n/zh_HK.json
index da306f66a38..9c78255002a 100644
--- a/lib/l10n/zh_HK.json
+++ b/lib/l10n/zh_HK.json
@@ -157,11 +157,8 @@
"Passwords are enforced for link and mail shares" : "連結及郵件分享強制使用密碼",
"Unknown share type" : "分享類型不詳",
"Cannot share with yourself" : "無法與您自己分享",
- "Path should be set" : "應該設定途徑",
- "Path should be either a file or a folder" : "途徑應為檔案或資料夾",
"You cannot share your root folder" : "您無法分享您的根資料夾",
"You are not allowed to share %s" : "你無權分享 %s",
- "A share requires permissions" : "分享需要權限",
"Cannot increase permissions of %s" : "無法增加 %s 的權限",
"Shares need at least read permissions" : "分享需要至少讀取的權限",
"Files cannot be shared with delete permissions" : "無法分享具有刪除權限的檔案",
@@ -188,7 +185,6 @@
"Cannot disable sending the password by Talk without setting a new password" : "若未設定新密碼,則無法停用透過 Talk 傳送密碼",
"Share provider does not support accepting" : "分享提供者不支援接受",
"Cannot change target of link share" : "無法變更連結分享的目標",
- "Invalid recipient" : "無效的收件人",
"Group \"%s\" does not exist" : "群組「%s」不存在",
"The requested share does not exist anymore" : "該分享已經不存在",
"The requested share comes from a disabled user" : "請求的分享來自已停用的用戶",
diff --git a/lib/l10n/zh_TW.js b/lib/l10n/zh_TW.js
index c4f6c7cf38b..5135fdb829e 100644
--- a/lib/l10n/zh_TW.js
+++ b/lib/l10n/zh_TW.js
@@ -157,19 +157,10 @@ OC.L10N.register(
"%1$s shared »%2$s« with you and wants to add" : "%1$s 與您分享了 %2$s ,且想要加入",
"»%s« added a note to a file shared with you" : "%s 在與您分享的檔案中加入了註解",
"Passwords are enforced for link and mail shares" : "連結與郵件分享強制使用密碼",
- "SharedWith is not a valid user" : "SharedWith 不是有效的使用者",
- "SharedWith is not a valid group" : "SharedWith 不是有效的群組",
- "SharedWith should be empty" : "SharedWith 應該為空",
- "SharedWith should not be empty" : "SharedWith 不應為空",
- "SharedWith is not a valid circle" : "SharedWith 不是有效的小圈圈",
"Unknown share type" : "未知的分享類型",
- "SharedBy should be set" : "應該設定 SharedBy",
"Cannot share with yourself" : "無法與您自己分享",
- "Path should be set" : "應該設定路徑",
- "Path should be either a file or a folder" : "路徑應為檔案或資料夾",
"You cannot share your root folder" : "您無法分享您的根資料夾",
"You are not allowed to share %s" : "你不被允許分享 %s",
- "A share requires permissions" : "分享需要權限",
"Cannot increase permissions of %s" : "無法增加 %s 的權限",
"Shares need at least read permissions" : "分享需要至少讀取的權限",
"Files cannot be shared with delete permissions" : "無法分享具有刪除權限的檔案",
@@ -196,7 +187,6 @@ OC.L10N.register(
"Cannot disable sending the password by Talk without setting a new password" : "若未設定新密碼,則無法停用透過 Talk 傳送密碼",
"Share provider does not support accepting" : "分享提供者不支援接受",
"Cannot change target of link share" : "無法變更連結分享的目標",
- "Invalid recipient" : "無效的接收者",
"Group \"%s\" does not exist" : "群組「%s」不存在",
"The requested share does not exist anymore" : "該分享已經不存在",
"The requested share comes from a disabled user" : "請求的分享來自已停用的使用者",
diff --git a/lib/l10n/zh_TW.json b/lib/l10n/zh_TW.json
index 6970dba9744..bd9c91a004e 100644
--- a/lib/l10n/zh_TW.json
+++ b/lib/l10n/zh_TW.json
@@ -155,19 +155,10 @@
"%1$s shared »%2$s« with you and wants to add" : "%1$s 與您分享了 %2$s ,且想要加入",
"»%s« added a note to a file shared with you" : "%s 在與您分享的檔案中加入了註解",
"Passwords are enforced for link and mail shares" : "連結與郵件分享強制使用密碼",
- "SharedWith is not a valid user" : "SharedWith 不是有效的使用者",
- "SharedWith is not a valid group" : "SharedWith 不是有效的群組",
- "SharedWith should be empty" : "SharedWith 應該為空",
- "SharedWith should not be empty" : "SharedWith 不應為空",
- "SharedWith is not a valid circle" : "SharedWith 不是有效的小圈圈",
"Unknown share type" : "未知的分享類型",
- "SharedBy should be set" : "應該設定 SharedBy",
"Cannot share with yourself" : "無法與您自己分享",
- "Path should be set" : "應該設定路徑",
- "Path should be either a file or a folder" : "路徑應為檔案或資料夾",
"You cannot share your root folder" : "您無法分享您的根資料夾",
"You are not allowed to share %s" : "你不被允許分享 %s",
- "A share requires permissions" : "分享需要權限",
"Cannot increase permissions of %s" : "無法增加 %s 的權限",
"Shares need at least read permissions" : "分享需要至少讀取的權限",
"Files cannot be shared with delete permissions" : "無法分享具有刪除權限的檔案",
@@ -194,7 +185,6 @@
"Cannot disable sending the password by Talk without setting a new password" : "若未設定新密碼,則無法停用透過 Talk 傳送密碼",
"Share provider does not support accepting" : "分享提供者不支援接受",
"Cannot change target of link share" : "無法變更連結分享的目標",
- "Invalid recipient" : "無效的接收者",
"Group \"%s\" does not exist" : "群組「%s」不存在",
"The requested share does not exist anymore" : "該分享已經不存在",
"The requested share comes from a disabled user" : "請求的分享來自已停用的使用者",
diff --git a/lib/private/App/AppStore/Fetcher/Fetcher.php b/lib/private/App/AppStore/Fetcher/Fetcher.php
index edb96b55f0a..f998c9e2023 100644
--- a/lib/private/App/AppStore/Fetcher/Fetcher.php
+++ b/lib/private/App/AppStore/Fetcher/Fetcher.php
@@ -13,6 +13,8 @@ use OCP\Files\IAppData;
use OCP\Files\NotFoundException;
use OCP\Http\Client\IClientService;
use OCP\IConfig;
+use OCP\Server;
+use OCP\ServerVersion;
use OCP\Support\Subscription\IRegistry;
use Psr\Log\LoggerInterface;
@@ -207,7 +209,7 @@ abstract class Fetcher {
*/
protected function getChannel() {
if ($this->channel === null) {
- $this->channel = \OC_Util::getChannel();
+ $this->channel = Server::get(ServerVersion::class)->getChannel();
}
return $this->channel;
}
diff --git a/lib/private/BinaryFinder.php b/lib/private/BinaryFinder.php
index f7ac7a5195c..3dad245ff0d 100644
--- a/lib/private/BinaryFinder.php
+++ b/lib/private/BinaryFinder.php
@@ -11,15 +11,28 @@ namespace OC;
use OCP\IBinaryFinder;
use OCP\ICache;
use OCP\ICacheFactory;
+use OCP\IConfig;
use Symfony\Component\Process\ExecutableFinder;
/**
* Service that find the binary path for a program
*/
class BinaryFinder implements IBinaryFinder {
+ public const DEFAULT_BINARY_SEARCH_PATHS = [
+ '/usr/local/sbin',
+ '/usr/local/bin',
+ '/usr/sbin',
+ '/usr/bin',
+ '/sbin',
+ '/bin',
+ '/opt/bin',
+ ];
private ICache $cache;
- public function __construct(ICacheFactory $cacheFactory) {
+ public function __construct(
+ ICacheFactory $cacheFactory,
+ private IConfig $config,
+ ) {
$this->cache = $cacheFactory->createLocal('findBinaryPath');
}
@@ -37,15 +50,10 @@ class BinaryFinder implements IBinaryFinder {
if (\OCP\Util::isFunctionEnabled('exec')) {
$exeSniffer = new ExecutableFinder();
// Returns null if nothing is found
- $result = $exeSniffer->find($program, null, [
- '/usr/local/sbin',
- '/usr/local/bin',
- '/usr/sbin',
- '/usr/bin',
- '/sbin',
- '/bin',
- '/opt/bin',
- ]);
+ $result = $exeSniffer->find(
+ $program,
+ null,
+ $this->config->getSystemValue('binary_search_paths', self::DEFAULT_BINARY_SEARCH_PATHS));
if ($result === null) {
$result = false;
}
diff --git a/lib/private/Console/Application.php b/lib/private/Console/Application.php
index 1b620089736..ac30a93a186 100644
--- a/lib/private/Console/Application.php
+++ b/lib/private/Console/Application.php
@@ -19,6 +19,7 @@ use OCP\EventDispatcher\IEventDispatcher;
use OCP\IConfig;
use OCP\IRequest;
use OCP\Server;
+use OCP\ServerVersion;
use Psr\Container\ContainerExceptionInterface;
use Psr\Log\LoggerInterface;
use Symfony\Component\Console\Application as SymfonyApplication;
@@ -31,6 +32,7 @@ class Application {
private SymfonyApplication $application;
public function __construct(
+ ServerVersion $serverVersion,
private IConfig $config,
private IEventDispatcher $dispatcher,
private IRequest $request,
@@ -39,7 +41,7 @@ class Application {
private IAppManager $appManager,
private Defaults $defaults,
) {
- $this->application = new SymfonyApplication($defaults->getName(), \OC_Util::getVersionString());
+ $this->application = new SymfonyApplication($defaults->getName(), $serverVersion->getVersionString());
}
/**
diff --git a/lib/private/Files/Storage/Common.php b/lib/private/Files/Storage/Common.php
index b6f14321f61..a9721c30d77 100644
--- a/lib/private/Files/Storage/Common.php
+++ b/lib/private/Files/Storage/Common.php
@@ -21,6 +21,7 @@ use OCP\Files\ForbiddenException;
use OCP\Files\GenericFileException;
use OCP\Files\IFilenameValidator;
use OCP\Files\InvalidPathException;
+use OCP\Files\Storage\IConstructableStorage;
use OCP\Files\Storage\ILockingStorage;
use OCP\Files\Storage\IStorage;
use OCP\Files\Storage\IWriteStreamStorage;
@@ -41,7 +42,7 @@ use Psr\Log\LoggerInterface;
* Some \OC\Files\Storage\Common methods call functions which are first defined
* in classes which extend it, e.g. $this->stat() .
*/
-abstract class Common implements Storage, ILockingStorage, IWriteStreamStorage {
+abstract class Common implements Storage, ILockingStorage, IWriteStreamStorage, IConstructableStorage {
use LocalTempFileTrait;
protected ?Cache $cache = null;
diff --git a/lib/private/Files/Storage/StorageFactory.php b/lib/private/Files/Storage/StorageFactory.php
index 590425f5b64..f194228d3c8 100644
--- a/lib/private/Files/Storage/StorageFactory.php
+++ b/lib/private/Files/Storage/StorageFactory.php
@@ -8,8 +8,10 @@
namespace OC\Files\Storage;
use OCP\Files\Mount\IMountPoint;
+use OCP\Files\Storage\IConstructableStorage;
use OCP\Files\Storage\IStorage;
use OCP\Files\Storage\IStorageFactory;
+use Psr\Log\LoggerInterface;
class StorageFactory implements IStorageFactory {
/**
@@ -62,6 +64,9 @@ class StorageFactory implements IStorageFactory {
* @return IStorage
*/
public function getInstance(IMountPoint $mountPoint, $class, $arguments) {
+ if (!($class instanceof IConstructableStorage)) {
+ \OCP\Server::get(LoggerInterface::class)->warning('Building a storage not implementing IConstructableStorage is deprecated since 31.0.0', ['class' => $class]);
+ }
return $this->wrap($mountPoint, new $class($arguments));
}
diff --git a/lib/private/IntegrityCheck/Checker.php b/lib/private/IntegrityCheck/Checker.php
index a6a61555957..3a24e8632de 100644
--- a/lib/private/IntegrityCheck/Checker.php
+++ b/lib/private/IntegrityCheck/Checker.php
@@ -21,6 +21,7 @@ use OCP\IAppConfig;
use OCP\ICache;
use OCP\ICacheFactory;
use OCP\IConfig;
+use OCP\ServerVersion;
use phpseclib\Crypt\RSA;
use phpseclib\File\X509;
@@ -40,6 +41,7 @@ class Checker {
private ICache $cache;
public function __construct(
+ private ServerVersion $serverVersion,
private EnvironmentHelper $environmentHelper,
private FileAccessHelper $fileAccessHelper,
private AppLocator $appLocator,
@@ -59,7 +61,7 @@ class Checker {
*/
public function isCodeCheckEnforced(): bool {
$notSignedChannels = [ '', 'git'];
- if (\in_array($this->environmentHelper->getChannel(), $notSignedChannels, true)) {
+ if (\in_array($this->serverVersion->getChannel(), $notSignedChannels, true)) {
return false;
}
diff --git a/lib/private/IntegrityCheck/Helpers/EnvironmentHelper.php b/lib/private/IntegrityCheck/Helpers/EnvironmentHelper.php
index dcdc7839f8e..583ae5e534f 100644
--- a/lib/private/IntegrityCheck/Helpers/EnvironmentHelper.php
+++ b/lib/private/IntegrityCheck/Helpers/EnvironmentHelper.php
@@ -23,13 +23,4 @@ class EnvironmentHelper {
public function getServerRoot(): string {
return rtrim(\OC::$SERVERROOT, '/');
}
-
- /**
- * Provides \OC_Util::getChannel()
- *
- * @return string
- */
- public function getChannel(): string {
- return \OC_Util::getChannel();
- }
}
diff --git a/lib/private/Profiler/FileProfilerStorage.php b/lib/private/Profiler/FileProfilerStorage.php
index a4021d064a9..cd45090e7ca 100644
--- a/lib/private/Profiler/FileProfilerStorage.php
+++ b/lib/private/Profiler/FileProfilerStorage.php
@@ -81,11 +81,11 @@ class FileProfilerStorage {
$iterator = new \RecursiveIteratorIterator($iterator, \RecursiveIteratorIterator::CHILD_FIRST);
foreach ($iterator as $file) {
- $file = (string)$file->getPathInfo();
- if (is_file($file)) {
- unlink($file);
+ $path = $file->getPathname();
+ if (is_file($path)) {
+ unlink($path);
} else {
- rmdir($file);
+ rmdir($path);
}
}
}
diff --git a/lib/private/Server.php b/lib/private/Server.php
index 943b4fc6997..19c3b72c11c 100644
--- a/lib/private/Server.php
+++ b/lib/private/Server.php
@@ -216,6 +216,7 @@ use OCP\Security\ISecureRandom;
use OCP\Security\ITrustedDomainHelper;
use OCP\Security\RateLimiting\ILimiter;
use OCP\Security\VerificationToken\IVerificationToken;
+use OCP\ServerVersion;
use OCP\Settings\IDeclarativeManager;
use OCP\SetupCheck\ISetupCheckManager;
use OCP\Share\IProviderFactory;
@@ -593,10 +594,12 @@ class Server extends ServerContainer implements IServerContainer {
);
/** @var SystemConfig $config */
$config = $c->get(SystemConfig::class);
+ /** @var ServerVersion $serverVersion */
+ $serverVersion = $c->get(ServerVersion::class);
if ($config->getValue('installed', false) && !(defined('PHPUNIT_RUN') && PHPUNIT_RUN)) {
$logQuery = $config->getValue('log_query');
- $prefixClosure = function () use ($logQuery) {
+ $prefixClosure = function () use ($logQuery, $serverVersion) {
if (!$logQuery) {
try {
$v = \OC_App::getAppVersions();
@@ -613,7 +616,7 @@ class Server extends ServerContainer implements IServerContainer {
'log_query' => 'enabled',
];
}
- $v['core'] = implode(',', \OC_Util::getVersion());
+ $v['core'] = implode(',', $serverVersion->getVersion());
$version = implode(',', $v);
$instanceId = \OC_Util::getInstanceId();
$path = \OC::$SERVERROOT;
@@ -865,7 +868,8 @@ class Server extends ServerContainer implements IServerContainer {
$appManager = $c->get(IAppManager::class);
return new Checker(
- new EnvironmentHelper(),
+ $c->get(ServerVersion::class),
+ $c->get(EnvironmentHelper::class),
new FileAccessHelper(),
new AppLocator(),
$config,
@@ -1056,7 +1060,7 @@ class Server extends ServerContainer implements IServerContainer {
$c->get(IUserSession::class),
$c->get(IURLGenerator::class),
$c->get(ICacheFactory::class),
- new Util($c->get(\OCP\IConfig::class), $this->get(IAppManager::class), $c->getAppDataDir('theming'), $imageManager),
+ new Util($c->get(ServerVersion::class), $c->get(\OCP\IConfig::class), $this->get(IAppManager::class), $c->getAppDataDir('theming'), $imageManager),
$imageManager,
$c->get(IAppManager::class),
$c->get(INavigationManager::class),
diff --git a/lib/private/Setup.php b/lib/private/Setup.php
index fa10f238bde..e64f6806b87 100644
--- a/lib/private/Setup.php
+++ b/lib/private/Setup.php
@@ -32,6 +32,7 @@ use OCP\L10N\IFactory as IL10NFactory;
use OCP\Migration\IOutput;
use OCP\Security\ISecureRandom;
use OCP\Server;
+use OCP\ServerVersion;
use Psr\Log\LoggerInterface;
class Setup {
@@ -380,7 +381,7 @@ class Setup {
unlink(\OC::$configDir . '/CAN_INSTALL');
}
- $bootstrapCoordinator = \OCP\Server::get(\OC\AppFramework\Bootstrap\Coordinator::class);
+ $bootstrapCoordinator = Server::get(\OC\AppFramework\Bootstrap\Coordinator::class);
$bootstrapCoordinator->runInitialRegistration();
// Create a session token for the newly created user
@@ -561,7 +562,7 @@ class Setup {
}
public function shouldRemoveCanInstallFile(): bool {
- return \OC_Util::getChannel() !== 'git' && is_file(\OC::$configDir . '/CAN_INSTALL');
+ return Server::get(ServerVersion::class)->getChannel() !== 'git' && is_file(\OC::$configDir . '/CAN_INSTALL');
}
public function canInstallFileExists(): bool {
diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php
index d82e57415d3..1477560c6fd 100644
--- a/lib/private/Share20/Manager.php
+++ b/lib/private/Share20/Manager.php
@@ -130,34 +130,34 @@ class Manager implements IManager {
if ($share->getShareType() === IShare::TYPE_USER) {
// We expect a valid user as sharedWith for user shares
if (!$this->userManager->userExists($share->getSharedWith())) {
- throw new \InvalidArgumentException($this->l->t('SharedWith is not a valid user'));
+ throw new \InvalidArgumentException($this->l->t('Share recipient is not a valid user'));
}
} elseif ($share->getShareType() === IShare::TYPE_GROUP) {
// We expect a valid group as sharedWith for group shares
if (!$this->groupManager->groupExists($share->getSharedWith())) {
- throw new \InvalidArgumentException($this->l->t('SharedWith is not a valid group'));
+ throw new \InvalidArgumentException($this->l->t('Share recipient is not a valid group'));
}
} elseif ($share->getShareType() === IShare::TYPE_LINK) {
// No check for TYPE_EMAIL here as we have a recipient for them
if ($share->getSharedWith() !== null) {
- throw new \InvalidArgumentException($this->l->t('SharedWith should be empty'));
+ throw new \InvalidArgumentException($this->l->t('Share recipient should be empty'));
}
} elseif ($share->getShareType() === IShare::TYPE_EMAIL) {
if ($share->getSharedWith() === null) {
- throw new \InvalidArgumentException($this->l->t('SharedWith should not be empty'));
+ throw new \InvalidArgumentException($this->l->t('Share recipient should not be empty'));
}
} elseif ($share->getShareType() === IShare::TYPE_REMOTE) {
if ($share->getSharedWith() === null) {
- throw new \InvalidArgumentException($this->l->t('SharedWith should not be empty'));
+ throw new \InvalidArgumentException($this->l->t('Share recipient should not be empty'));
}
} elseif ($share->getShareType() === IShare::TYPE_REMOTE_GROUP) {
if ($share->getSharedWith() === null) {
- throw new \InvalidArgumentException($this->l->t('SharedWith should not be empty'));
+ throw new \InvalidArgumentException($this->l->t('Share recipient should not be empty'));
}
} elseif ($share->getShareType() === IShare::TYPE_CIRCLE) {
$circle = \OCA\Circles\Api\v1\Circles::detailsCircle($share->getSharedWith());
if ($circle === null) {
- throw new \InvalidArgumentException($this->l->t('SharedWith is not a valid circle'));
+ throw new \InvalidArgumentException($this->l->t('Share recipient is not a valid circle'));
}
} elseif ($share->getShareType() === IShare::TYPE_ROOM) {
} elseif ($share->getShareType() === IShare::TYPE_DECK) {
@@ -169,7 +169,7 @@ class Manager implements IManager {
// Verify the initiator of the share is set
if ($share->getSharedBy() === null) {
- throw new \InvalidArgumentException($this->l->t('SharedBy should be set'));
+ throw new \InvalidArgumentException($this->l->t('Share initiator must be set'));
}
// Cannot share with yourself
@@ -180,13 +180,13 @@ class Manager implements IManager {
// The path should be set
if ($share->getNode() === null) {
- throw new \InvalidArgumentException($this->l->t('Path should be set'));
+ throw new \InvalidArgumentException($this->l->t('Shared path must be set'));
}
// And it should be a file or a folder
if (!($share->getNode() instanceof \OCP\Files\File) &&
!($share->getNode() instanceof \OCP\Files\Folder)) {
- throw new \InvalidArgumentException($this->l->t('Path should be either a file or a folder'));
+ throw new \InvalidArgumentException($this->l->t('Shared path must be either a file or a folder'));
}
// And you cannot share your rootfolder
@@ -206,7 +206,7 @@ class Manager implements IManager {
// Permissions should be set
if ($share->getPermissions() === null) {
- throw new \InvalidArgumentException($this->l->t('A share requires permissions'));
+ throw new \InvalidArgumentException($this->l->t('Valid permissions are required for sharing'));
}
$permissions = 0;
@@ -227,7 +227,6 @@ class Manager implements IManager {
throw new GenericShareException($this->l->t('Cannot increase permissions of %s', [$path]), code: 404);
}
-
// Check that read permissions are always set
// Link shares are allowed to have no read permissions to allow upload to hidden folders
$noReadPermissionRequired = $share->getShareType() === IShare::TYPE_LINK
@@ -1072,7 +1071,7 @@ class Manager implements IManager {
}
if ($share->getShareType() === IShare::TYPE_USER && $share->getSharedWith() !== $recipientId) {
- throw new \InvalidArgumentException($this->l->t('Invalid recipient'));
+ throw new \InvalidArgumentException($this->l->t('Invalid share recipient'));
}
if ($share->getShareType() === IShare::TYPE_GROUP) {
@@ -1082,7 +1081,7 @@ class Manager implements IManager {
}
$recipient = $this->userManager->get($recipientId);
if (!$sharedWith->inGroup($recipient)) {
- throw new \InvalidArgumentException($this->l->t('Invalid recipient'));
+ throw new \InvalidArgumentException($this->l->t('Invalid share recipient'));
}
}
diff --git a/lib/private/Template/JSConfigHelper.php b/lib/private/Template/JSConfigHelper.php
index 1dec8634aca..44563f2938c 100644
--- a/lib/private/Template/JSConfigHelper.php
+++ b/lib/private/Template/JSConfigHelper.php
@@ -30,6 +30,7 @@ use OCP\ILogger;
use OCP\ISession;
use OCP\IURLGenerator;
use OCP\IUser;
+use OCP\ServerVersion;
use OCP\Session\Exceptions\SessionNotAvailableException;
use OCP\Share\IManager as IShareManager;
use OCP\User\Backend\IPasswordConfirmationBackend;
@@ -41,6 +42,7 @@ class JSConfigHelper {
private $excludedUserBackEnds = ['user_saml' => true, 'user_globalsiteselector' => true];
public function __construct(
+ protected ServerVersion $serverVersion,
protected IL10N $l,
protected Defaults $defaults,
protected IAppManager $appManager,
@@ -53,7 +55,7 @@ class JSConfigHelper {
protected CapabilitiesManager $capabilitiesManager,
protected IInitialStateService $initialStateService,
protected IProvider $tokenProvider,
- protected FilenameValidator $filenameValidator,
+ protected FilenameValidator $filenameValidator,
) {
}
@@ -154,8 +156,8 @@ class JSConfigHelper {
'session_lifetime' => min($this->config->getSystemValue('session_lifetime', $this->iniWrapper->getNumeric('session.gc_maxlifetime')), $this->iniWrapper->getNumeric('session.gc_maxlifetime')),
'sharing.maxAutocompleteResults' => max(0, $this->config->getSystemValueInt('sharing.maxAutocompleteResults', Constants::SHARING_MAX_AUTOCOMPLETE_RESULTS_DEFAULT)),
'sharing.minSearchStringLength' => $this->config->getSystemValueInt('sharing.minSearchStringLength', 0),
- 'version' => implode('.', Util::getVersion()),
- 'versionstring' => \OC_Util::getVersionString(),
+ 'version' => implode('.', $this->serverVersion->getVersion()),
+ 'versionstring' => $this->serverVersion->getVersionString(),
'enable_non-accessible_features' => $this->config->getSystemValueBool('enable_non-accessible_features', true),
];
diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php
index 6c7cec90740..c21df495b5b 100644
--- a/lib/private/TemplateLayout.php
+++ b/lib/private/TemplateLayout.php
@@ -25,6 +25,7 @@ use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\IUserSession;
use OCP\L10N\IFactory;
+use OCP\ServerVersion;
use OCP\Support\Subscription\IRegistry;
use OCP\Util;
@@ -218,6 +219,7 @@ class TemplateLayout extends \OC_Template {
// this is on purpose outside of the if statement below so that the initial state is prefilled (done in the getConfig() call)
// see https://github.com/nextcloud/server/pull/22636 for details
$jsConfigHelper = new JSConfigHelper(
+ \OCP\Server::get(ServerVersion::class),
\OCP\Util::getL10N('lib'),
\OCP\Server::get(Defaults::class),
\OC::$server->getAppManager(),
diff --git a/lib/private/Updater.php b/lib/private/Updater.php
index 2ea680efcf5..c4631f2c7d3 100644
--- a/lib/private/Updater.php
+++ b/lib/private/Updater.php
@@ -31,6 +31,7 @@ use OCP\HintException;
use OCP\IAppConfig;
use OCP\IConfig;
use OCP\ILogger;
+use OCP\ServerVersion;
use OCP\Util;
use Psr\Log\LoggerInterface;
@@ -53,6 +54,7 @@ class Updater extends BasicEmitter {
];
public function __construct(
+ private ServerVersion $serverVersion,
private IConfig $config,
private IAppConfig $appConfig,
private Checker $checker,
@@ -82,14 +84,14 @@ class Updater extends BasicEmitter {
}
// Clear CAN_INSTALL file if not on git
- if (\OC_Util::getChannel() !== 'git' && is_file(\OC::$configDir . '/CAN_INSTALL')) {
+ if ($this->serverVersion->getChannel() !== 'git' && is_file(\OC::$configDir . '/CAN_INSTALL')) {
if (!unlink(\OC::$configDir . '/CAN_INSTALL')) {
$this->log->error('Could not cleanup CAN_INSTALL from your config folder. Please remove this file manually.');
}
}
$installedVersion = $this->config->getSystemValueString('version', '0.0.0');
- $currentVersion = implode('.', \OCP\Util::getVersion());
+ $currentVersion = implode('.', $this->serverVersion->getVersion());
$this->log->debug('starting upgrade from ' . $installedVersion . ' to ' . $currentVersion, ['app' => 'core']);
diff --git a/lib/private/Updater/VersionCheck.php b/lib/private/Updater/VersionCheck.php
index cc5ff63379c..53bfc0d5d5f 100644
--- a/lib/private/Updater/VersionCheck.php
+++ b/lib/private/Updater/VersionCheck.php
@@ -11,12 +11,14 @@ use OCP\Http\Client\IClientService;
use OCP\IAppConfig;
use OCP\IConfig;
use OCP\IUserManager;
+use OCP\ServerVersion;
use OCP\Support\Subscription\IRegistry;
use OCP\Util;
use Psr\Log\LoggerInterface;
class VersionCheck {
public function __construct(
+ private ServerVersion $serverVersion,
private IClientService $clientService,
private IConfig $config,
private IAppConfig $appConfig,
@@ -54,9 +56,9 @@ class VersionCheck {
$version = Util::getVersion();
$version['installed'] = $this->config->getAppValue('core', 'installedat');
$version['updated'] = $this->appConfig->getValueInt('core', 'lastupdatedat');
- $version['updatechannel'] = \OC_Util::getChannel();
+ $version['updatechannel'] = $this->serverVersion->getChannel();
$version['edition'] = '';
- $version['build'] = \OC_Util::getBuild();
+ $version['build'] = $this->serverVersion->getBuild();
$version['php_major'] = PHP_MAJOR_VERSION;
$version['php_minor'] = PHP_MINOR_VERSION;
$version['php_release'] = PHP_RELEASE_VERSION;
diff --git a/lib/private/User/LazyUser.php b/lib/private/User/LazyUser.php
index cd3e268be48..92a0c735215 100644
--- a/lib/private/User/LazyUser.php
+++ b/lib/private/User/LazyUser.php
@@ -36,9 +36,12 @@ class LazyUser implements IUser {
$this->user = $this->userManager->get($this->uid);
}
}
- /** @var IUser */
- $user = $this->user;
- return $user;
+
+ if ($this->user === null) {
+ throw new NoUserException('User not found in backend');
+ }
+
+ return $this->user;
}
public function getUID() {
diff --git a/lib/private/User/Manager.php b/lib/private/User/Manager.php
index e21759b1e98..3ee748a2775 100644
--- a/lib/private/User/Manager.php
+++ b/lib/private/User/Manager.php
@@ -68,6 +68,7 @@ class Manager extends PublicEmitter implements IUserManager {
private IConfig $config,
ICacheFactory $cacheFactory,
private IEventDispatcher $eventDispatcher,
+ private LoggerInterface $logger,
) {
$this->cache = new WithLocalCache($cacheFactory->createDistributed('user_backend_map'));
$this->listen('\OC\User', 'postDelete', function (IUser $user): void {
@@ -201,7 +202,7 @@ class Manager extends PublicEmitter implements IUserManager {
$result = $this->checkPasswordNoLogging($loginName, $password);
if ($result === false) {
- \OCP\Server::get(LoggerInterface::class)->warning('Login failed: \'' . $loginName . '\' (Remote IP: \'' . \OC::$server->getRequest()->getRemoteAddress() . '\')', ['app' => 'core']);
+ $this->logger->warning('Login failed: \'' . $loginName . '\' (Remote IP: \'' . \OC::$server->getRequest()->getRemoteAddress() . '\')', ['app' => 'core']);
}
return $result;
@@ -319,11 +320,16 @@ class Manager extends PublicEmitter implements IUserManager {
if ($search !== '') {
$users = array_filter(
$users,
- fn (IUser $user): bool =>
- mb_stripos($user->getUID(), $search) !== false ||
- mb_stripos($user->getDisplayName(), $search) !== false ||
- mb_stripos($user->getEMailAddress() ?? '', $search) !== false,
- );
+ function (IUser $user) use ($search): bool {
+ try {
+ return mb_stripos($user->getUID(), $search) !== false ||
+ mb_stripos($user->getDisplayName(), $search) !== false ||
+ mb_stripos($user->getEMailAddress() ?? '', $search) !== false;
+ } catch (NoUserException $ex) {
+ $this->logger->error('Error while filtering disabled users', ['exception' => $ex, 'userUID' => $user->getUID()]);
+ return false;
+ }
+ });
}
$tempLimit = ($limit === null ? null : $limit + $offset);
diff --git a/lib/private/legacy/OC_Defaults.php b/lib/private/legacy/OC_Defaults.php
index cc0ac687ccc..f7015a1863a 100644
--- a/lib/private/legacy/OC_Defaults.php
+++ b/lib/private/legacy/OC_Defaults.php
@@ -6,6 +6,10 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
+use OCP\IConfig;
+use OCP\Server;
+use OCP\ServerVersion;
+
class OC_Defaults {
private $theme;
@@ -27,7 +31,8 @@ class OC_Defaults {
private $defaultProductName;
public function __construct() {
- $config = \OC::$server->getConfig();
+ $config = Server::get(IConfig::class);
+ $serverVersion = Server::get(ServerVersion::class);
$this->defaultEntity = 'Nextcloud'; /* e.g. company name, used for footers and copyright notices */
$this->defaultName = 'Nextcloud'; /* short name, used when referring to the software */
@@ -39,7 +44,7 @@ class OC_Defaults {
$this->defaultAndroidClientUrl = $config->getSystemValue('customclient_android', 'https://play.google.com/store/apps/details?id=com.nextcloud.client');
$this->defaultFDroidClientUrl = $config->getSystemValue('customclient_fdroid', 'https://f-droid.org/packages/com.nextcloud.client/');
$this->defaultDocBaseUrl = 'https://docs.nextcloud.com';
- $this->defaultDocVersion = \OC_Util::getVersion()[0]; // used to generate doc links
+ $this->defaultDocVersion = $serverVersion->getMajorVersion(); // used to generate doc links
$this->defaultColorBackground = '#00679e';
$this->defaultColorPrimary = '#00679e';
$this->defaultTextColorPrimary = '#ffffff';
diff --git a/lib/private/legacy/OC_Util.php b/lib/private/legacy/OC_Util.php
index c390b7727e9..7b41f797e32 100644
--- a/lib/private/legacy/OC_Util.php
+++ b/lib/private/legacy/OC_Util.php
@@ -216,76 +216,6 @@ class OC_Util {
}
/**
- * get the current installed version of ownCloud
- *
- * @return array
- */
- public static function getVersion() {
- OC_Util::loadVersion();
- return self::$versionCache['OC_Version'];
- }
-
- /**
- * get the current installed version string of ownCloud
- *
- * @return string
- */
- public static function getVersionString() {
- OC_Util::loadVersion();
- return self::$versionCache['OC_VersionString'];
- }
-
- /**
- * @deprecated 11.0.0 the value is of no use anymore
- * @return string
- */
- public static function getEditionString() {
- return '';
- }
-
- /**
- * @description get the update channel of the current installed of ownCloud.
- * @return string
- */
- public static function getChannel() {
- OC_Util::loadVersion();
- return \OC::$server->getConfig()->getSystemValueString('updater.release.channel', self::$versionCache['OC_Channel']);
- }
-
- /**
- * @description get the build number of the current installed of ownCloud.
- * @return string
- */
- public static function getBuild() {
- OC_Util::loadVersion();
- return self::$versionCache['OC_Build'];
- }
-
- /**
- * @description load the version.php into the session as cache
- * @suppress PhanUndeclaredVariable
- */
- private static function loadVersion() {
- if (self::$versionCache !== null) {
- return;
- }
-
- $timestamp = filemtime(OC::$SERVERROOT . '/version.php');
- require OC::$SERVERROOT . '/version.php';
- /** @var int $timestamp */
- self::$versionCache['OC_Version_Timestamp'] = $timestamp;
- /** @var string $OC_Version */
- self::$versionCache['OC_Version'] = $OC_Version;
- /** @var string $OC_VersionString */
- self::$versionCache['OC_VersionString'] = $OC_VersionString;
- /** @var string $OC_Build */
- self::$versionCache['OC_Build'] = $OC_Build;
-
- /** @var string $OC_Channel */
- self::$versionCache['OC_Channel'] = $OC_Channel;
- }
-
- /**
* generates a path for JS/CSS files. If no application is provided it will create the path for core.
*
* @param string $application application to get the files from
@@ -1022,20 +952,6 @@ class OC_Util {
}
/**
- * A human readable string is generated based on version and build number
- *
- * @return string
- */
- public static function getHumanVersion() {
- $version = OC_Util::getVersionString();
- $build = OC_Util::getBuild();
- if (!empty($build) and OC_Util::getChannel() === 'daily') {
- $version .= ' Build:' . $build;
- }
- return $version;
- }
-
- /**
* Check whether the instance needs to perform an upgrade,
* either when the core version is higher or any app requires
* an upgrade.
diff --git a/lib/public/Files/Storage/IConstructableStorage.php b/lib/public/Files/Storage/IConstructableStorage.php
new file mode 100644
index 00000000000..57749fa30fa
--- /dev/null
+++ b/lib/public/Files/Storage/IConstructableStorage.php
@@ -0,0 +1,26 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+// use OCP namespace for all classes that are considered public.
+// This means that they should be used by apps instead of the internal Nextcloud classes
+
+namespace OCP\Files\Storage;
+
+/**
+ * Marks a storage as constructable. Allows to pass the storage as a string to a mounpoint and let it build the instance.
+ *
+ * @since 31.0.0
+ */
+interface IConstructableStorage {
+ /**
+ * @param array $parameters is a free form array with the configuration options needed to construct the storage
+ *
+ * @since 31.0.0
+ */
+ public function __construct(array $parameters);
+}
diff --git a/lib/public/Files/Storage/IStorage.php b/lib/public/Files/Storage/IStorage.php
index 2016c273f91..2368e126bb7 100644
--- a/lib/public/Files/Storage/IStorage.php
+++ b/lib/public/Files/Storage/IStorage.php
@@ -23,17 +23,10 @@ use OCP\Files\InvalidPathException;
* All paths passed to the storage are relative to the storage and should NOT have a leading slash.
*
* @since 9.0.0
+ * @since 31.0.0 Moved the constructor to IConstructableStorage so that wrappers can use DI
*/
interface IStorage {
/**
- * $parameters is a free form array with the configuration options needed to construct the storage
- *
- * @param array $parameters
- * @since 9.0.0
- */
- public function __construct($parameters);
-
- /**
* Get the identifier for the storage,
* the returned id should be the same for every storage object that is created with the same parameters
* and two storage objects with the same id should refer to two storages that display the same files.
diff --git a/lib/public/ServerVersion.php b/lib/public/ServerVersion.php
new file mode 100644
index 00000000000..637c34d3619
--- /dev/null
+++ b/lib/public/ServerVersion.php
@@ -0,0 +1,102 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+namespace OCP;
+
+/**
+ * @since 31.0.0
+ */
+class ServerVersion {
+
+ private array $version;
+ private string $versionString;
+ private string $build;
+ /** @var 'beta'|'stable'|'enterprise'|'git' */
+ private string $channel;
+
+ /**
+ * @since 31.0.0
+ */
+ public function __construct() {
+ $versionFile = __DIR__ . '/../../version.php';
+ require $versionFile;
+
+ /** @var int[] $OC_Version */
+ $this->version = $OC_Version;
+ /** @var string $OC_VersionString */
+ $this->versionString = $OC_VersionString;
+ /** @var string $OC_Build */
+ $this->build = $OC_Build;
+ /** @var string $OC_Channel */
+ $this->channel = $OC_Channel;
+ }
+
+ /**
+ * @since 31.0.0
+ */
+ public function getMajorVersion(): int {
+ return $this->version[0];
+ }
+
+ /**
+ * @since 31.0.0
+ */
+ public function getMinorVersion(): int {
+ return $this->version[1];
+ }
+
+ /**
+ * @since 31.0.0
+ */
+ public function getPatchVersion(): int {
+ return $this->version[2];
+ }
+
+ /**
+ * @since 31.0.0
+ */
+ public function getVersion(): array {
+ return $this->version;
+ }
+
+ /**
+ * @since 31.0.0
+ */
+ public function getVersionString(): string {
+ return $this->versionString;
+ }
+
+ /**
+ * @psalm-return 'beta'|'stable'|'enterprise'|'git'
+ * @since 31.0.0
+ */
+ public function getChannel(): string {
+ return $this->channel;
+ }
+
+ /**
+ * @since 31.0.0
+ */
+ public function getBuild(): string {
+ return $this->build;
+ }
+
+ /**
+ * @since 31.0.0
+ */
+ public function getHumanVersion(): string {
+ $version = $this->getVersionString();
+ $build = $this->getBuild();
+ if (!empty($build) && $this->getChannel() === 'daily') {
+ $version .= ' Build:' . $build;
+ }
+ return $version;
+
+ }
+}
diff --git a/lib/public/Util.php b/lib/public/Util.php
index 520e4616de5..28da91c9a0f 100644
--- a/lib/public/Util.php
+++ b/lib/public/Util.php
@@ -35,9 +35,10 @@ class Util {
* get the current installed version of Nextcloud
* @return array
* @since 4.0.0
+ * @deprecated 31.0.0 Use \OCP\ServerVersion::getVersion
*/
public static function getVersion() {
- return \OC_Util::getVersion();
+ return Server::get(ServerVersion::class)->getVersion();
}
/**
@@ -46,7 +47,7 @@ class Util {
public static function hasExtendedSupport(): bool {
try {
/** @var \OCP\Support\Subscription\IRegistry */
- $subscriptionRegistry = \OCP\Server::get(\OCP\Support\Subscription\IRegistry::class);
+ $subscriptionRegistry = Server::get(\OCP\Support\Subscription\IRegistry::class);
return $subscriptionRegistry->delegateHasExtendedSupport();
} catch (ContainerExceptionInterface $e) {
}
@@ -66,9 +67,10 @@ class Util {
* Get current update channel
* @return string
* @since 8.1.0
+ * @deprecated 31.0.0 Use \OCP\ServerVersion::getChannel
*/
public static function getChannel() {
- return \OC_Util::getChannel();
+ return \OCP\Server::get(ServerVersion::class)->getChannel();
}
/**
@@ -567,7 +569,7 @@ class Util {
if (!function_exists($functionName)) {
return false;
}
- $ini = \OCP\Server::get(IniGetWrapper::class);
+ $ini = Server::get(IniGetWrapper::class);
$disabled = explode(',', $ini->get('disable_functions') ?: '');
$disabled = array_map('trim', $disabled);
if (in_array($functionName, $disabled)) {