Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/accessibility/l10n/vi.js4
-rw-r--r--apps/accessibility/l10n/vi.json4
-rw-r--r--apps/dav/l10n/tr.js2
-rw-r--r--apps/dav/l10n/tr.json2
-rw-r--r--apps/dav/lib/CardDAV/AddressBookImpl.php29
-rw-r--r--apps/dav/tests/unit/CardDAV/AddressBookImplTest.php87
-rw-r--r--apps/federatedfilesharing/l10n/de.js2
-rw-r--r--apps/federatedfilesharing/l10n/de.json2
-rw-r--r--apps/files/l10n/ru.js2
-rw-r--r--apps/files/l10n/ru.json2
-rw-r--r--apps/files_sharing/l10n/eu.js1
-rw-r--r--apps/files_sharing/l10n/eu.json1
-rw-r--r--apps/theming/l10n/vi.js21
-rw-r--r--apps/theming/l10n/vi.json21
-rw-r--r--apps/theming/lib/ThemingDefaults.php4
-rw-r--r--apps/user_ldap/l10n/de.js2
-rw-r--r--apps/user_ldap/l10n/de.json2
-rw-r--r--core/l10n/de.js6
-rw-r--r--core/l10n/de.json6
-rw-r--r--core/l10n/de_DE.js6
-rw-r--r--core/l10n/de_DE.json6
-rw-r--r--lib/l10n/sk.js20
-rw-r--r--lib/l10n/sk.json20
-rw-r--r--lib/private/Mail/EMailTemplate.php22
-rw-r--r--lib/private/Mail/Mailer.php9
-rw-r--r--lib/private/Security/CredentialsManager.php12
-rw-r--r--lib/private/Server.php4
-rw-r--r--lib/private/Share20/Manager.php4
-rw-r--r--lib/private/legacy/defaults.php6
-rw-r--r--lib/public/Defaults.php4
-rw-r--r--lib/public/Mail/IEMailTemplate.php3
-rw-r--r--lib/public/Security/ICredentialsManager.php6
-rw-r--r--settings/l10n/bg.js1
-rw-r--r--settings/l10n/bg.json1
-rw-r--r--settings/l10n/de.js2
-rw-r--r--settings/l10n/de.json2
-rw-r--r--settings/l10n/eu.js1
-rw-r--r--settings/l10n/eu.json1
-rw-r--r--settings/l10n/ru.js2
-rw-r--r--settings/l10n/ru.json2
-rw-r--r--settings/l10n/sk.js24
-rw-r--r--settings/l10n/sk.json24
-rw-r--r--settings/l10n/vi.js1
-rw-r--r--settings/l10n/vi.json1
-rw-r--r--tests/Settings/Mailer/NewUserMailHelperTest.php2
-rw-r--r--tests/lib/Mail/EMailTemplateTest.php9
-rw-r--r--tests/lib/Mail/MailerTest.php4
-rw-r--r--tests/lib/Security/CredentialsManagerTest.php3
48 files changed, 313 insertions, 89 deletions
diff --git a/apps/accessibility/l10n/vi.js b/apps/accessibility/l10n/vi.js
index b9652905887..0ea03bd6b98 100644
--- a/apps/accessibility/l10n/vi.js
+++ b/apps/accessibility/l10n/vi.js
@@ -18,10 +18,10 @@ OC.L10N.register(
"High contrast theme" : "Chủ đề tương phản cao",
"A high contrast theme to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Một chủ đề tương phản cao để dễ dàng điều hướng của bạn. Chất lượng hình ảnh sẽ giảm nhưng độ rõ sẽ được tăng lên.",
"Dark theme (beta)" : "Chủ đề tối (beta)",
- "Web Content Accessibility Guidelines" : "Nguyên Tắc Truy Cập Cho Nội Dung Mạng",
+ "Web Content Accessibility Guidelines" : "Nguyên Tắc Truy Cập Cho Nội Dung Web",
"our issue tracker" : "hệ thống theo dõi vấn đề của chúng tôi",
"our design team" : "đội ngũ thiết kế của chúng tôi",
- "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines} 2.1 on AA level, with the high contrast theme even on AAA level." : "Truy cập đa dạng là rất quan trọng với chúng tôi. Chúng tôi tuân theo các tiêu chuẩn mạng và kiểm tra để khiến mọi thứ đều có thể sử dụng được ngay cả khi không có chuột, và hỗ trợ những phần mềm hỗ trợ như đọc màn hình. Chúng tôi hướng đến sự tương thích với {guidelines} 2.1 ở cấp độ AA, với chế độ tương phản cao là AAA",
+ "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines} 2.1 on AA level, with the high contrast theme even on AAA level." : "Truy cập đa dạng là rất quan trọng với chúng tôi. Chúng tôi tuân theo các tiêu chuẩn mạng và kiểm tra để khiến mọi thứ đều có thể sử dụng được ngay cả khi không có chuột, và phần mềm hỗ trợ như đọc màn hình. Chúng tôi hướng đến sự tương thích với {guidelines} 2.1 ở cấp độ AA, với chế độ tương phản cao là AAA",
"If you find any issues, don’t hesitate to report them on {issuetracker}. And if you want to get involved, come join {designteam}!" : "Nếu bạn tìm được bất cứ vấn đền gì, đừng ngần ngại để báo cáo chúng trên {issuetracker}. Và nếu bạn muốn can thiệp, hãy gia nhập {designteam}!",
"Enable" : "Kích hoạt"
},
diff --git a/apps/accessibility/l10n/vi.json b/apps/accessibility/l10n/vi.json
index cbda190b23d..bdbb6886d99 100644
--- a/apps/accessibility/l10n/vi.json
+++ b/apps/accessibility/l10n/vi.json
@@ -16,10 +16,10 @@
"High contrast theme" : "Chủ đề tương phản cao",
"A high contrast theme to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Một chủ đề tương phản cao để dễ dàng điều hướng của bạn. Chất lượng hình ảnh sẽ giảm nhưng độ rõ sẽ được tăng lên.",
"Dark theme (beta)" : "Chủ đề tối (beta)",
- "Web Content Accessibility Guidelines" : "Nguyên Tắc Truy Cập Cho Nội Dung Mạng",
+ "Web Content Accessibility Guidelines" : "Nguyên Tắc Truy Cập Cho Nội Dung Web",
"our issue tracker" : "hệ thống theo dõi vấn đề của chúng tôi",
"our design team" : "đội ngũ thiết kế của chúng tôi",
- "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines} 2.1 on AA level, with the high contrast theme even on AAA level." : "Truy cập đa dạng là rất quan trọng với chúng tôi. Chúng tôi tuân theo các tiêu chuẩn mạng và kiểm tra để khiến mọi thứ đều có thể sử dụng được ngay cả khi không có chuột, và hỗ trợ những phần mềm hỗ trợ như đọc màn hình. Chúng tôi hướng đến sự tương thích với {guidelines} 2.1 ở cấp độ AA, với chế độ tương phản cao là AAA",
+ "Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines} 2.1 on AA level, with the high contrast theme even on AAA level." : "Truy cập đa dạng là rất quan trọng với chúng tôi. Chúng tôi tuân theo các tiêu chuẩn mạng và kiểm tra để khiến mọi thứ đều có thể sử dụng được ngay cả khi không có chuột, và phần mềm hỗ trợ như đọc màn hình. Chúng tôi hướng đến sự tương thích với {guidelines} 2.1 ở cấp độ AA, với chế độ tương phản cao là AAA",
"If you find any issues, don’t hesitate to report them on {issuetracker}. And if you want to get involved, come join {designteam}!" : "Nếu bạn tìm được bất cứ vấn đền gì, đừng ngần ngại để báo cáo chúng trên {issuetracker}. Và nếu bạn muốn can thiệp, hãy gia nhập {designteam}!",
"Enable" : "Kích hoạt"
},"pluralForm" :"nplurals=1; plural=0;"
diff --git a/apps/dav/l10n/tr.js b/apps/dav/l10n/tr.js
index cc9a08d2594..f3fac50baea 100644
--- a/apps/dav/l10n/tr.js
+++ b/apps/dav/l10n/tr.js
@@ -49,7 +49,7 @@ OC.L10N.register(
"Date:" : "Tarih:",
"Where:" : "Yer:",
"Description:" : "Açıklama:",
- "Untitled event" : "Adsız etkinlik",
+ "Untitled event" : "Başlıksız etkinlik",
"_%n year_::_%n years_" : ["%n yıl","%n yıl"],
"_%n month_::_%n months_" : ["%n ay","%n ay"],
"_%n day_::_%n days_" : ["%n gün","%n gün"],
diff --git a/apps/dav/l10n/tr.json b/apps/dav/l10n/tr.json
index a72a46bc796..c4276df3307 100644
--- a/apps/dav/l10n/tr.json
+++ b/apps/dav/l10n/tr.json
@@ -47,7 +47,7 @@
"Date:" : "Tarih:",
"Where:" : "Yer:",
"Description:" : "Açıklama:",
- "Untitled event" : "Adsız etkinlik",
+ "Untitled event" : "Başlıksız etkinlik",
"_%n year_::_%n years_" : ["%n yıl","%n yıl"],
"_%n month_::_%n months_" : ["%n ay","%n ay"],
"_%n day_::_%n days_" : ["%n gün","%n gün"],
diff --git a/apps/dav/lib/CardDAV/AddressBookImpl.php b/apps/dav/lib/CardDAV/AddressBookImpl.php
index 21455fc3863..3c6138e029e 100644
--- a/apps/dav/lib/CardDAV/AddressBookImpl.php
+++ b/apps/dav/lib/CardDAV/AddressBookImpl.php
@@ -2,9 +2,14 @@
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
+ * @author Arne Hamann <kontakt+github@arne.email>
* @author Björn Schießle <bjoern@schiessle.org>
+ * @author Daniel Kesselberg <mail@danielkesselberg.de>
* @author Georg Ehrke <oc.list@georgehrke.com>
* @author Joas Schilling <coding@schilljs.com>
+ * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
+ * @author Julius Härtl <jus@bitgrid.net>
+ * @author labor4 <schreibtisch@labor4.ch>
* @author Thomas Müller <thomas.mueller@tmit.eu>
*
* @license AGPL-3.0
@@ -19,7 +24,7 @@
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
@@ -162,7 +167,7 @@ class AddressBookImpl implements IAddressBook {
$permissions = $this->addressBook->getACL();
$result = 0;
foreach ($permissions as $permission) {
- switch($permission['privilege']) {
+ switch ($permission['privilege']) {
case '{DAV:}read':
$result |= Constants::PERMISSION_READ;
break;
@@ -237,6 +242,7 @@ class AddressBookImpl implements IAddressBook {
*
* @param string $uri
* @param VCard $vCard
+ * @param boolean $withTypes (optional) return the values as arrays of value/type pairs
* @return array
*/
protected function vCard2Array($uri, VCard $vCard, $withTypes = false) {
@@ -256,20 +262,7 @@ class AddressBookImpl implements IAddressBook {
]) . '?photo';
$result['PHOTO'] = 'VALUE=uri:' . $url;
-
- } else if ($property->name === 'X-SOCIALPROFILE') {
- $type = $this->getTypeFromProperty($property);
-
- // Type is the social network, when it's empty we don't need this.
- if ($type !== null) {
- if (!isset($result[$property->name])) {
- $result[$property->name] = [];
- }
- $result[$property->name][$type] = $property->getValue();
- }
-
- // The following properties can be set multiple times
- } else if (in_array($property->name, ['CLOUD', 'EMAIL', 'IMPP', 'TEL', 'URL', 'X-ADDRESSBOOKSERVER-MEMBER'])) {
+ } elseif (in_array($property->name, ['URL', 'GEO', 'CLOUD', 'ADR', 'EMAIL', 'IMPP', 'TEL', 'X-SOCIALPROFILE', 'RELATED', 'LANG', 'X-ADDRESSBOOKSERVER-MEMBER'])) {
if (!isset($result[$property->name])) {
$result[$property->name] = [];
}
@@ -279,12 +272,10 @@ class AddressBookImpl implements IAddressBook {
$result[$property->name][] = [
'type' => $type,
'value' => $property->getValue()
- ];
+ ];
} else {
$result[$property->name][] = $property->getValue();
}
-
-
} else {
$result[$property->name] = $property->getValue();
}
diff --git a/apps/dav/tests/unit/CardDAV/AddressBookImplTest.php b/apps/dav/tests/unit/CardDAV/AddressBookImplTest.php
index 89253ce9dc9..30066b3cfe8 100644
--- a/apps/dav/tests/unit/CardDAV/AddressBookImplTest.php
+++ b/apps/dav/tests/unit/CardDAV/AddressBookImplTest.php
@@ -326,6 +326,9 @@ class AddressBookImplTest extends TestCase {
$property = $vCard->createProperty('X-SOCIALPROFILE', 'tw-example');
$property->add('TYPE', 'twitter');
$vCard->add($property);
+ $property = $vCard->createProperty('X-SOCIALPROFILE', 'tw-example-2');
+ $property->add('TYPE', 'twitter');
+ $vCard->add($property);
$property = $vCard->createProperty('X-SOCIALPROFILE', 'fb-example');
$property->add('TYPE', 'facebook');
$vCard->add($property);
@@ -360,8 +363,88 @@ class AddressBookImplTest extends TestCase {
],
'X-SOCIALPROFILE' => [
- 'twitter'=> 'tw-example',
- 'facebook'=> 'fb-example',
+ 'tw-example',
+ 'tw-example-2',
+ 'fb-example',
+ ],
+
+ 'isLocalSystemBook' => true,
+ ], $array);
+ }
+
+ public function testVCard2ArrayWithTypes() {
+ $vCard = new VCard();
+
+ $vCard->add($vCard->createProperty('FN', 'Full Name'));
+
+ // Multi-value properties
+ $vCard->add($vCard->createProperty('CLOUD', 'cloud-user1@localhost'));
+ $vCard->add($vCard->createProperty('CLOUD', 'cloud-user2@example.tld'));
+
+ $property = $vCard->createProperty('EMAIL', 'email-user1@localhost');
+ $property->add('TYPE', 'HOME');
+ $vCard->add($property);
+ $property = $vCard->createProperty('EMAIL', 'email-user2@example.tld');
+ $property->add('TYPE', 'WORK');
+ $vCard->add($property);
+
+ $vCard->add($vCard->createProperty('IMPP', 'impp-user1@localhost'));
+ $vCard->add($vCard->createProperty('IMPP', 'impp-user2@example.tld'));
+
+ $property = $vCard->createProperty('TEL', '+49 123456789');
+ $property->add('TYPE', 'HOME,VOICE');
+ $vCard->add($property);
+ $property = $vCard->createProperty('TEL', '+1 555 123456789');
+ $property->add('TYPE', 'WORK');
+ $vCard->add($property);
+
+ $vCard->add($vCard->createProperty('URL', 'https://localhost'));
+ $vCard->add($vCard->createProperty('URL', 'https://example.tld'));
+
+ // Type depending properties
+ $property = $vCard->createProperty('X-SOCIALPROFILE', 'tw-example');
+ $property->add('TYPE', 'twitter');
+ $vCard->add($property);
+ $property = $vCard->createProperty('X-SOCIALPROFILE', 'tw-example-2');
+ $property->add('TYPE', 'twitter');
+ $vCard->add($property);
+ $property = $vCard->createProperty('X-SOCIALPROFILE', 'fb-example');
+ $property->add('TYPE', 'facebook');
+ $vCard->add($property);
+
+ $array = $this->invokePrivate($this->addressBookImpl, 'vCard2Array', ['uri', $vCard, true]);
+ unset($array['PRODID']);
+ unset($array['UID']);
+
+ $this->assertEquals([
+ 'URI' => 'uri',
+ 'VERSION' => '4.0',
+ 'FN' => 'Full Name',
+ 'CLOUD' => [
+ ['type' => '', 'value' => 'cloud-user1@localhost'],
+ ['type' => '', 'value' => 'cloud-user2@example.tld'],
+ ],
+ 'EMAIL' => [
+ ['type' => 'HOME', 'value' => 'email-user1@localhost'],
+ ['type' => 'WORK', 'value' => 'email-user2@example.tld'],
+ ],
+ 'IMPP' => [
+ ['type' => '', 'value' => 'impp-user1@localhost'],
+ ['type' => '', 'value' => 'impp-user2@example.tld'],
+ ],
+ 'TEL' => [
+ ['type' => 'HOME,VOICE', 'value' => '+49 123456789'],
+ ['type' => 'WORK', 'value' => '+1 555 123456789'],
+ ],
+ 'URL' => [
+ ['type' => '', 'value' => 'https://localhost'],
+ ['type' => '', 'value' => 'https://example.tld'],
+ ],
+
+ 'X-SOCIALPROFILE' => [
+ ['type' => 'twitter', 'value' => 'tw-example'],
+ ['type' => 'twitter', 'value' => 'tw-example-2'],
+ ['type' => 'facebook', 'value' => 'fb-example'],
],
'isLocalSystemBook' => true,
diff --git a/apps/federatedfilesharing/l10n/de.js b/apps/federatedfilesharing/l10n/de.js
index 8f4e2a186c1..1bc18f52f7f 100644
--- a/apps/federatedfilesharing/l10n/de.js
+++ b/apps/federatedfilesharing/l10n/de.js
@@ -10,7 +10,7 @@ OC.L10N.register(
"Copied!" : "Kopiert!",
"Not supported!" : "Nicht unterstützt!",
"Press ⌘-C to copy." : "⌘-C zum Kopieren drücken.",
- "Press Ctrl-C to copy." : "Ctrl-C zum Kopieren drücken.",
+ "Press Ctrl-C to copy." : "Strg-C zum Kopieren drücken.",
"Invalid Federated Cloud ID" : "Ungültige Federated-Cloud-ID",
"Server to server sharing is not enabled on this server" : "Das Server-zu-Server-Teilen ist auf diesem Server nicht aktiviert",
"Couldn't establish a federated share." : "Federated-Share konnte nicht aufgebaut werden",
diff --git a/apps/federatedfilesharing/l10n/de.json b/apps/federatedfilesharing/l10n/de.json
index 26a05ed8b08..af50880e6fd 100644
--- a/apps/federatedfilesharing/l10n/de.json
+++ b/apps/federatedfilesharing/l10n/de.json
@@ -8,7 +8,7 @@
"Copied!" : "Kopiert!",
"Not supported!" : "Nicht unterstützt!",
"Press ⌘-C to copy." : "⌘-C zum Kopieren drücken.",
- "Press Ctrl-C to copy." : "Ctrl-C zum Kopieren drücken.",
+ "Press Ctrl-C to copy." : "Strg-C zum Kopieren drücken.",
"Invalid Federated Cloud ID" : "Ungültige Federated-Cloud-ID",
"Server to server sharing is not enabled on this server" : "Das Server-zu-Server-Teilen ist auf diesem Server nicht aktiviert",
"Couldn't establish a federated share." : "Federated-Share konnte nicht aufgebaut werden",
diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js
index 7b91cc6eca0..6f27cf80cc4 100644
--- a/apps/files/l10n/ru.js
+++ b/apps/files/l10n/ru.js
@@ -31,7 +31,7 @@ OC.L10N.register(
"Actions" : "Действия",
"Rename" : "Переименовать",
"Copy" : "Копировать",
- "Choose target folder" : "Выберите каталога назначения",
+ "Choose target folder" : "Выбор папки назначения",
"Open" : "Открыть",
"Delete file" : "Удалить файл",
"Delete folder" : "Удалить каталог",
diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json
index cc5848625ba..26063638d85 100644
--- a/apps/files/l10n/ru.json
+++ b/apps/files/l10n/ru.json
@@ -29,7 +29,7 @@
"Actions" : "Действия",
"Rename" : "Переименовать",
"Copy" : "Копировать",
- "Choose target folder" : "Выберите каталога назначения",
+ "Choose target folder" : "Выбор папки назначения",
"Open" : "Открыть",
"Delete file" : "Удалить файл",
"Delete folder" : "Удалить каталог",
diff --git a/apps/files_sharing/l10n/eu.js b/apps/files_sharing/l10n/eu.js
index f630bbac3ed..eb6daf99d02 100644
--- a/apps/files_sharing/l10n/eu.js
+++ b/apps/files_sharing/l10n/eu.js
@@ -26,6 +26,7 @@ OC.L10N.register(
"Something happened. Unable to accept the share." : "Zerbait gertatu da. Ezin izan da partekatzea onartu.",
"Reject share" : "Ukatu partekatzea",
"Something happened. Unable to reject the share." : "Zerbait gertatu da. Ezin izan da partekatzea ukatu.",
+ "Waiting…" : "Itxaroten...",
"error" : "errorea",
"finished" : "amaitua",
"This will stop your current uploads." : "Honek zure uneko igoerak geldituko ditu.",
diff --git a/apps/files_sharing/l10n/eu.json b/apps/files_sharing/l10n/eu.json
index 1c72867ada3..4012e4b6828 100644
--- a/apps/files_sharing/l10n/eu.json
+++ b/apps/files_sharing/l10n/eu.json
@@ -24,6 +24,7 @@
"Something happened. Unable to accept the share." : "Zerbait gertatu da. Ezin izan da partekatzea onartu.",
"Reject share" : "Ukatu partekatzea",
"Something happened. Unable to reject the share." : "Zerbait gertatu da. Ezin izan da partekatzea ukatu.",
+ "Waiting…" : "Itxaroten...",
"error" : "errorea",
"finished" : "amaitua",
"This will stop your current uploads." : "Honek zure uneko igoerak geldituko ditu.",
diff --git a/apps/theming/l10n/vi.js b/apps/theming/l10n/vi.js
index 06467c619a3..6f4eacd1a48 100644
--- a/apps/theming/l10n/vi.js
+++ b/apps/theming/l10n/vi.js
@@ -5,8 +5,14 @@ OC.L10N.register(
"Saved" : "Đã lưu",
"Admin" : "Quản trị hệ thống",
"a safe home for all your data" : "Một ngôi nhà an toàn cho toàn bộ dữ liệu của bạn",
+ "Name cannot be empty" : "Tên không thể bị bỏ trống",
"The given name is too long" : "Tên quá dài",
"The given web address is too long" : "Địa chỉ web quá dài",
+ "The given web address is not a valid URL" : "Địa chỉ web được cấp không phải là một đường dân URL khả dụng",
+ "The given legal notice address is too long" : "Địa chỉ thông cáo pháp lý được cấp quá dài",
+ "The given legal notice address is not a valid URL" : "Địa chỉ thông cáo pháp lý được cấp không phải là một đường dẫn URL khả dụng",
+ "The given privacy policy address is too long" : "Địa chỉ chính sách riêng tư quá dài",
+ "The given privacy policy address is not a valid URL" : "Địa chỉ chính sách riêng tư được cấp không phải là một đường dẫn URL khả dụng",
"The given slogan is too long" : "Khẩu hiệu quá dài",
"The given color is invalid" : "Màu đã chọn không hợp lệ",
"The file was uploaded" : "Tập tin đã được tải lên",
@@ -19,11 +25,17 @@ OC.L10N.register(
"A PHP extension stopped the file upload" : "Một chức năng mở rộng của PHP đã dừng tải tệp lên",
"No file uploaded" : "Không có tệp nào được tải lên",
"Unsupported image type" : "Loại hình ảnh không được hỗ trợ",
+ "You are already using a custom theme. Theming app settings might be overwritten by that." : "Bạn đang sử dụng 1 chủ đề riêng. Các thiết lập của ứng dụng Chủ đề có thể bị ghi đè bởi nó.",
"Theming" : "Điều chỉnh giao diện",
+ "Legal notice" : "Thông cáo pháp lý",
"Privacy policy" : "Chính sách riêng tư",
+ "Adjust the Nextcloud theme" : "Tinh chỉnh chủ đề Nextcloud",
+ "Open documentation" : "Mở tài liệu",
"Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Điều chỉnh giao diện cho phép bạn có thể dễ dàng tùy biến bố cục trình bày của hệ thống. Khi thực hiện nó sẽ hiện hữu đối với tất cả người dùng",
"Name" : "Tên",
"Reset to default" : "Đặt lại về mặc định",
+ "Web link" : "Liên kết web",
+ "https://…" : "https://…",
"Slogan" : "Khẩu hiệu",
"Color" : "Màu sắc",
"Logo" : "Logo",
@@ -31,6 +43,13 @@ OC.L10N.register(
"Login image" : "Hình ảnh trang đăng nhập",
"Upload new login background" : "Tải lên ảnh nền trang đăng nhập mới",
"Remove background image" : "Xóa bỏ ảnh nền",
- "Advanced options" : "Tùy chọn nâng cao"
+ "Advanced options" : "Tùy chọn nâng cao",
+ "Legal notice link" : "Liên kết Thông cáo pháp lý",
+ "Privacy policy link" : "Liên kết Chính sách riêng tư",
+ "Header logo" : "Logo đầu trang",
+ "Upload new header logo" : "Tải lên logo đầu trang mới",
+ "Favicon" : "Favicon",
+ "Upload new favicon" : "Tải lên bộ Favicon mới",
+ "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Cài đặt phần mở rộng PHP Imagemagick với hỗ trợ cho hình ảnh SVG để tự động tạo bộ favicon dựa trên màu và logo được tải lên"
},
"nplurals=1; plural=0;");
diff --git a/apps/theming/l10n/vi.json b/apps/theming/l10n/vi.json
index ed775dcc5a0..e7814ec7275 100644
--- a/apps/theming/l10n/vi.json
+++ b/apps/theming/l10n/vi.json
@@ -3,8 +3,14 @@
"Saved" : "Đã lưu",
"Admin" : "Quản trị hệ thống",
"a safe home for all your data" : "Một ngôi nhà an toàn cho toàn bộ dữ liệu của bạn",
+ "Name cannot be empty" : "Tên không thể bị bỏ trống",
"The given name is too long" : "Tên quá dài",
"The given web address is too long" : "Địa chỉ web quá dài",
+ "The given web address is not a valid URL" : "Địa chỉ web được cấp không phải là một đường dân URL khả dụng",
+ "The given legal notice address is too long" : "Địa chỉ thông cáo pháp lý được cấp quá dài",
+ "The given legal notice address is not a valid URL" : "Địa chỉ thông cáo pháp lý được cấp không phải là một đường dẫn URL khả dụng",
+ "The given privacy policy address is too long" : "Địa chỉ chính sách riêng tư quá dài",
+ "The given privacy policy address is not a valid URL" : "Địa chỉ chính sách riêng tư được cấp không phải là một đường dẫn URL khả dụng",
"The given slogan is too long" : "Khẩu hiệu quá dài",
"The given color is invalid" : "Màu đã chọn không hợp lệ",
"The file was uploaded" : "Tập tin đã được tải lên",
@@ -17,11 +23,17 @@
"A PHP extension stopped the file upload" : "Một chức năng mở rộng của PHP đã dừng tải tệp lên",
"No file uploaded" : "Không có tệp nào được tải lên",
"Unsupported image type" : "Loại hình ảnh không được hỗ trợ",
+ "You are already using a custom theme. Theming app settings might be overwritten by that." : "Bạn đang sử dụng 1 chủ đề riêng. Các thiết lập của ứng dụng Chủ đề có thể bị ghi đè bởi nó.",
"Theming" : "Điều chỉnh giao diện",
+ "Legal notice" : "Thông cáo pháp lý",
"Privacy policy" : "Chính sách riêng tư",
+ "Adjust the Nextcloud theme" : "Tinh chỉnh chủ đề Nextcloud",
+ "Open documentation" : "Mở tài liệu",
"Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Điều chỉnh giao diện cho phép bạn có thể dễ dàng tùy biến bố cục trình bày của hệ thống. Khi thực hiện nó sẽ hiện hữu đối với tất cả người dùng",
"Name" : "Tên",
"Reset to default" : "Đặt lại về mặc định",
+ "Web link" : "Liên kết web",
+ "https://…" : "https://…",
"Slogan" : "Khẩu hiệu",
"Color" : "Màu sắc",
"Logo" : "Logo",
@@ -29,6 +41,13 @@
"Login image" : "Hình ảnh trang đăng nhập",
"Upload new login background" : "Tải lên ảnh nền trang đăng nhập mới",
"Remove background image" : "Xóa bỏ ảnh nền",
- "Advanced options" : "Tùy chọn nâng cao"
+ "Advanced options" : "Tùy chọn nâng cao",
+ "Legal notice link" : "Liên kết Thông cáo pháp lý",
+ "Privacy policy link" : "Liên kết Chính sách riêng tư",
+ "Header logo" : "Logo đầu trang",
+ "Upload new header logo" : "Tải lên logo đầu trang mới",
+ "Favicon" : "Favicon",
+ "Upload new favicon" : "Tải lên bộ Favicon mới",
+ "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Cài đặt phần mở rộng PHP Imagemagick với hỗ trợ cho hình ảnh SVG để tự động tạo bộ favicon dựa trên màu và logo được tải lên"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/theming/lib/ThemingDefaults.php b/apps/theming/lib/ThemingDefaults.php
index 6f11f5cfa45..fb10d9ff342 100644
--- a/apps/theming/lib/ThemingDefaults.php
+++ b/apps/theming/lib/ThemingDefaults.php
@@ -139,8 +139,8 @@ class ThemingDefaults extends \OC_Defaults {
return $this->config->getAppValue('theming', 'url', $this->url);
}
- public function getSlogan() {
- return \OCP\Util::sanitizeHTML($this->config->getAppValue('theming', 'slogan', parent::getSlogan()));
+ public function getSlogan(?string $lang = null) {
+ return \OCP\Util::sanitizeHTML($this->config->getAppValue('theming', 'slogan', parent::getSlogan($lang)));
}
public function getImprintUrl() {
diff --git a/apps/user_ldap/l10n/de.js b/apps/user_ldap/l10n/de.js
index 88670f43cea..5dfec269399 100644
--- a/apps/user_ldap/l10n/de.js
+++ b/apps/user_ldap/l10n/de.js
@@ -164,7 +164,7 @@ OC.L10N.register(
"Paging chunksize" : "Seitenstücke (Paging chunksize)",
"Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Abschnittslänge von seitenweise angezeigten LDAP-Suchen, die bei Suchen wie etwa Benutzer- und Gruppen-Auflistungen ausufernd viele Ergebnisse liefern können (die Einstellung „0“ deaktiviert seitenweise angezeigte LDAP-Suchen in diesen Situationen).",
"Enable LDAP password changes per user" : "LDAP-Passwortänderungen pro Benutzer aktivieren",
- "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "LDAP-Nutzern die Änderung ihrer Passwörter erlauben und Super-Administratoren sowie Gruppen-Administratoren die Passwortänderung ihrer LDAP-Nutzer erlauben. \nDies funktioniert nur, wenn die Zugriffsrichtlinien auf dem LDAP-Server entsprechend konfiguriert sind. Da Passwörter im Klartext an den LDAP-Server gesendet werden, muss die Transportverschlüsselung verwendet werden und das Passwort-Hashing auf dem LDAP-Server sollte konfiguriert werden.",
+ "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "LDAP-Nutzern die Änderung ihrer Passwörter erlauben und Super-Administratoren sowie Gruppen-Administratoren die Passwortänderung ihrer LDAP-Nutzer erlauben. Dies funktioniert nur, wenn die Zugriffsrichtlinien auf dem LDAP-Server entsprechend konfiguriert sind. Da Passwörter im Klartext an den LDAP-Server gesendet werden, muss die Transportverschlüsselung verwendet werden und das Passwort-Hashing auf dem LDAP-Server sollte konfiguriert werden.",
"(New password is sent as plain text to LDAP)" : "(Das neue Passwort wurde als einfacher Text an LDAP gesendet)",
"Default password policy DN" : "Standard Passwort-Regeln DN",
"The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "Die DN einer Standard-Passwort-Policy, welche für den Umgang mit ablaufenden Passwörtern verwendet wird. Dies funktioniert nur wenn Passwort-Änderungen pro Benutzer via LDAP und OpenLDAP aktiviert sind. Leer lassen, um die Passwortablaufbehandlung zu deaktivieren.",
diff --git a/apps/user_ldap/l10n/de.json b/apps/user_ldap/l10n/de.json
index c1fb02a6a6f..234c07f605c 100644
--- a/apps/user_ldap/l10n/de.json
+++ b/apps/user_ldap/l10n/de.json
@@ -162,7 +162,7 @@
"Paging chunksize" : "Seitenstücke (Paging chunksize)",
"Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Abschnittslänge von seitenweise angezeigten LDAP-Suchen, die bei Suchen wie etwa Benutzer- und Gruppen-Auflistungen ausufernd viele Ergebnisse liefern können (die Einstellung „0“ deaktiviert seitenweise angezeigte LDAP-Suchen in diesen Situationen).",
"Enable LDAP password changes per user" : "LDAP-Passwortänderungen pro Benutzer aktivieren",
- "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "LDAP-Nutzern die Änderung ihrer Passwörter erlauben und Super-Administratoren sowie Gruppen-Administratoren die Passwortänderung ihrer LDAP-Nutzer erlauben. \nDies funktioniert nur, wenn die Zugriffsrichtlinien auf dem LDAP-Server entsprechend konfiguriert sind. Da Passwörter im Klartext an den LDAP-Server gesendet werden, muss die Transportverschlüsselung verwendet werden und das Passwort-Hashing auf dem LDAP-Server sollte konfiguriert werden.",
+ "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "LDAP-Nutzern die Änderung ihrer Passwörter erlauben und Super-Administratoren sowie Gruppen-Administratoren die Passwortänderung ihrer LDAP-Nutzer erlauben. Dies funktioniert nur, wenn die Zugriffsrichtlinien auf dem LDAP-Server entsprechend konfiguriert sind. Da Passwörter im Klartext an den LDAP-Server gesendet werden, muss die Transportverschlüsselung verwendet werden und das Passwort-Hashing auf dem LDAP-Server sollte konfiguriert werden.",
"(New password is sent as plain text to LDAP)" : "(Das neue Passwort wurde als einfacher Text an LDAP gesendet)",
"Default password policy DN" : "Standard Passwort-Regeln DN",
"The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "Die DN einer Standard-Passwort-Policy, welche für den Umgang mit ablaufenden Passwörtern verwendet wird. Dies funktioniert nur wenn Passwort-Änderungen pro Benutzer via LDAP und OpenLDAP aktiviert sind. Leer lassen, um die Passwortablaufbehandlung zu deaktivieren.",
diff --git a/core/l10n/de.js b/core/l10n/de.js
index 401d7d4770c..b67d5bd9acd 100644
--- a/core/l10n/de.js
+++ b/core/l10n/de.js
@@ -157,9 +157,9 @@ OC.L10N.register(
"I know what I'm doing" : "Ich weiß, was ich mache",
"Resetting password" : "Setze Passwort zurück",
"Recommended apps" : "Empfohlene Apps",
- "Loading apps …" : "Lade Apps…",
- "Could not fetch list of apps from the app store." : "Listte der Apps kann nicht vom App-Store abgerufen werden",
- "Installing apps …" : "Installiere Apps…",
+ "Loading apps …" : "Lade Apps …",
+ "Could not fetch list of apps from the app store." : "Liste der Apps kann nicht vom App Store abgerufen werden.",
+ "Installing apps …" : "Installiere Apps …",
"Nextcloud {app}" : "Nextcloud {app}",
"App download or installation failed" : "Herunterladen oder Installieren der App fehlgeschlagen",
"Can't install this app because it is not compatible" : "App kann nicht installiert werden, da sie inkompatibel ist",
diff --git a/core/l10n/de.json b/core/l10n/de.json
index 792f3704d19..1d9b50d2709 100644
--- a/core/l10n/de.json
+++ b/core/l10n/de.json
@@ -155,9 +155,9 @@
"I know what I'm doing" : "Ich weiß, was ich mache",
"Resetting password" : "Setze Passwort zurück",
"Recommended apps" : "Empfohlene Apps",
- "Loading apps …" : "Lade Apps…",
- "Could not fetch list of apps from the app store." : "Listte der Apps kann nicht vom App-Store abgerufen werden",
- "Installing apps …" : "Installiere Apps…",
+ "Loading apps …" : "Lade Apps …",
+ "Could not fetch list of apps from the app store." : "Liste der Apps kann nicht vom App Store abgerufen werden.",
+ "Installing apps …" : "Installiere Apps …",
"Nextcloud {app}" : "Nextcloud {app}",
"App download or installation failed" : "Herunterladen oder Installieren der App fehlgeschlagen",
"Can't install this app because it is not compatible" : "App kann nicht installiert werden, da sie inkompatibel ist",
diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js
index 8930073d355..c59d5f78a49 100644
--- a/core/l10n/de_DE.js
+++ b/core/l10n/de_DE.js
@@ -157,9 +157,9 @@ OC.L10N.register(
"I know what I'm doing" : "Ich weiß, was ich mache",
"Resetting password" : "Setze Passwort zurück",
"Recommended apps" : "Empfohlene Apps",
- "Loading apps …" : "Lade Apps…",
- "Could not fetch list of apps from the app store." : "Listte der Apps kann nicht vom App-Store abgerufen werden",
- "Installing apps …" : "Installiere Apps…",
+ "Loading apps …" : "Lade Apps …",
+ "Could not fetch list of apps from the app store." : "Liste der Apps kann nicht vom App Store abgerufen werden",
+ "Installing apps …" : "Installiere Apps …",
"Nextcloud {app}" : "Nextcloud {app}",
"App download or installation failed" : "Herunterladen oder Installieren der App fehlgeschlagen",
"Can't install this app because it is not compatible" : "App kann nicht installiert werden, da sie inkompatibel ist",
diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json
index 4b32a33b923..c729918af6e 100644
--- a/core/l10n/de_DE.json
+++ b/core/l10n/de_DE.json
@@ -155,9 +155,9 @@
"I know what I'm doing" : "Ich weiß, was ich mache",
"Resetting password" : "Setze Passwort zurück",
"Recommended apps" : "Empfohlene Apps",
- "Loading apps …" : "Lade Apps…",
- "Could not fetch list of apps from the app store." : "Listte der Apps kann nicht vom App-Store abgerufen werden",
- "Installing apps …" : "Installiere Apps…",
+ "Loading apps …" : "Lade Apps …",
+ "Could not fetch list of apps from the app store." : "Liste der Apps kann nicht vom App Store abgerufen werden",
+ "Installing apps …" : "Installiere Apps …",
"Nextcloud {app}" : "Nextcloud {app}",
"App download or installation failed" : "Herunterladen oder Installieren der App fehlgeschlagen",
"Can't install this app because it is not compatible" : "App kann nicht installiert werden, da sie inkompatibel ist",
diff --git a/lib/l10n/sk.js b/lib/l10n/sk.js
index 89e11413403..3d2c52027f3 100644
--- a/lib/l10n/sk.js
+++ b/lib/l10n/sk.js
@@ -5,7 +5,9 @@ OC.L10N.register(
"This can usually be fixed by giving the webserver write access to the config directory" : "To je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do priečinka s konfiguráciou.",
"Or, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it." : "Alebo, ak preferujete ponechať súbor config.php iba na čítanie, nastavte v ňom parameter \"config_is_read_only\" na true.",
"See %s" : "Pozri %s",
+ "This can usually be fixed by giving the webserver write access to the config directory." : "Toto sa zvyčajne dá opraviť poskytnutím práva webového servera na zápis do priečinka s nastaveniami.",
"Or, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it. See %s" : "Alebo, ak preferujete ponechať súbor config.php iba na čítanie, nastavte v ňom parameter \"config_is_read_only\" na true. Viď %s",
+ "The files of the app %1$s were not replaced correctly. Make sure it is a version compatible with the server." : "Súbory aplikácie %1$s neboli správne nahradené. Uistite sa, že to je verzia kompatibilná so serverom.",
"Sample configuration detected" : "Detekovaná bola vzorová konfigurácia",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Zistilo sa, že konfigurácia bola skopírovaná zo vzorových súborov. Takáto konfigurácia nie je podporovaná a môže poškodiť vašu inštaláciu. Prečítajte si dokumentáciu pred vykonaním zmien v config.php",
"%1$s and %2$s" : "%1$s a %2$s",
@@ -15,6 +17,7 @@ OC.L10N.register(
"Education Edition" : "Edícia pre výuku",
"Enterprise bundle" : "Enterprise balíček",
"Groupware bundle" : "Balíček groupware",
+ "Hub bundle" : "Sada pre centrum aktivity (hub)",
"Social sharing bundle" : "Balíček sociálneho zdieľania",
"PHP %s or higher is required." : "Požadovaná verzia PHP %s alebo vyššia.",
"PHP with a version lower than %s is required." : "PHP je vyžadované vo vyššej verzii ako %s.",
@@ -27,7 +30,20 @@ OC.L10N.register(
"Following platforms are supported: %s" : "Podporované sú nasledovné systémy: %s",
"Server version %s or higher is required." : "Je vyžadovaná verzia servera %s alebo vyššia.",
"Server version %s or lower is required." : "Je vyžadovaná verzia servera %s alebo nižšia.",
+ "Logged in user must be an admin or sub admin" : "Prihlásený používateľ musí byť správcom alebo správcom pre čiastkovú oblasť.",
"Logged in user must be an admin" : "Prihlásený používateľ musí byť správca",
+ "Wiping of device %s has started" : "Začalo sa mazanie zariadenia %s",
+ "Wiping of device »%s« has started" : "Začalo sa mazanie zariadenia „%s“",
+ "»%s« started remote wipe" : "„%s“ začalo mazanie na diaľku",
+ "Device or application »%s« has started the remote wipe process. You will receive another email once the process has finished" : "Zariadenie alebo aplikácia „%s“ začal proces mazania na diaľku. Po dokončení procesu dostanete ďalší e-mail",
+ "Wiping of device %s has finished" : "Mazanie zariadenia %s bolo dokončené.",
+ "Wiping of device »%s« has finished" : "Mazanie zariadenia „%s“ bolo dokončené.",
+ "»%s« finished remote wipe" : "„%s“ dokončilo mazanie na diaľku ",
+ "Device or application »%s« has finished the remote wipe process." : "Zariadenie alebo aplikácia „%s“ dokončilo(a) proces mazania na diaľku.",
+ "Remote wipe started" : "Začalo mazanie na diaľku",
+ "A remote wipe was started on device %s" : "Na zariadeni %s začalo mazanie na diaľku",
+ "Remote wipe finished" : "Mazanie na diaľku bolo dokončené",
+ "The remote wipe on %s has finished" : "Mazanie na diaľku na %s bolo dokončené",
"Authentication" : "Autentifikácia",
"Unknown filetype" : "Neznámy typ súboru",
"Invalid image" : "Chybný obrázok",
@@ -51,6 +67,7 @@ OC.L10N.register(
"_%n minute ago_::_%n minutes ago_" : ["pred %n minútou","pred %n minútami","pred %n minútami","pred %n minútami"],
"in a few seconds" : "o pár sekúnd",
"seconds ago" : "pred sekundami",
+ "Empty file" : "Prázdny súbor",
"Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modul s ID: %s neexistuje. Povoľte ho prosím vo vašom nastavení aplikácií alebo kontaktujte správcu.",
"File name is a reserved word" : "Názov súboru je rezervované slovo.",
"File name contains at least one invalid character" : "Názov súboru obsahuje nepovolené znaky.",
@@ -72,6 +89,7 @@ OC.L10N.register(
"%s enter the database username." : "Zadajte používateľské meno %s databázy.",
"%s enter the database name." : "Zadajte názov databázy pre %s databázy.",
"%s you may not use dots in the database name" : "V názve databázy %s nemôžete používať bodky",
+ "MySQL username and/or password not valid" : "Neplatné užívateľské meno a/alebo heslo do MySQL",
"You need to enter details of an existing account." : "Musíte zadať údaje existujúceho účtu.",
"Oracle connection could not be established" : "Nie je možné pripojiť sa k Oracle",
"Oracle username and/or password not valid" : "Používateľské meno a/alebo heslo pre Oracle databázu je neplatné",
@@ -152,6 +170,7 @@ OC.L10N.register(
"A valid username must be provided" : "Musíte zadať platné používateľské meno",
"Username contains whitespace at the beginning or at the end" : "Meno používateľa obsahuje na začiatku, alebo na konci medzeru",
"Username must not consist of dots only" : "Používateľské meno sa nesmie skladať len z bodiek",
+ "Username is invalid because files already exist for this user" : "Používateľské meno je neplatné, pretože pre tohto používateľa už existujú súbory",
"A valid password must be provided" : "Musíte zadať platné heslo",
"The username is already being used" : "Meno používateľa je už použité",
"Could not create user" : "Nepodarilo sa vytvoriť používateľa",
@@ -168,6 +187,7 @@ OC.L10N.register(
"Cannot write into \"config\" directory" : "Nie je možné zapisovať do priečinka \"config\"",
"This can usually be fixed by giving the webserver write access to the config directory. See %s" : "To je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do adresára s konfiguráciou. Viď %s",
"Cannot write into \"apps\" directory" : "Nie je možné zapisovať do priečinka \"apps\"",
+ "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file." : "Toto sa zvyčajne dá opraviť poskytnutím práva webového servera na zápis do priečinka s aplikáciami alebo vypnutím katalógu s aplikáciami v súbore s nastaveniami.",
"Cannot create \"data\" directory" : "Nie je možné vytvoriť priečinok \"data\"",
"This can usually be fixed by giving the webserver write access to the root directory. See %s" : "To je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do koreňového adresára. Viď %s",
"Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Oprávnenia je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do koreňového priečinka. Viď %s.",
diff --git a/lib/l10n/sk.json b/lib/l10n/sk.json
index a713be37469..c5c6138a5cf 100644
--- a/lib/l10n/sk.json
+++ b/lib/l10n/sk.json
@@ -3,7 +3,9 @@
"This can usually be fixed by giving the webserver write access to the config directory" : "To je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do priečinka s konfiguráciou.",
"Or, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it." : "Alebo, ak preferujete ponechať súbor config.php iba na čítanie, nastavte v ňom parameter \"config_is_read_only\" na true.",
"See %s" : "Pozri %s",
+ "This can usually be fixed by giving the webserver write access to the config directory." : "Toto sa zvyčajne dá opraviť poskytnutím práva webového servera na zápis do priečinka s nastaveniami.",
"Or, if you prefer to keep config.php file read only, set the option \"config_is_read_only\" to true in it. See %s" : "Alebo, ak preferujete ponechať súbor config.php iba na čítanie, nastavte v ňom parameter \"config_is_read_only\" na true. Viď %s",
+ "The files of the app %1$s were not replaced correctly. Make sure it is a version compatible with the server." : "Súbory aplikácie %1$s neboli správne nahradené. Uistite sa, že to je verzia kompatibilná so serverom.",
"Sample configuration detected" : "Detekovaná bola vzorová konfigurácia",
"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Zistilo sa, že konfigurácia bola skopírovaná zo vzorových súborov. Takáto konfigurácia nie je podporovaná a môže poškodiť vašu inštaláciu. Prečítajte si dokumentáciu pred vykonaním zmien v config.php",
"%1$s and %2$s" : "%1$s a %2$s",
@@ -13,6 +15,7 @@
"Education Edition" : "Edícia pre výuku",
"Enterprise bundle" : "Enterprise balíček",
"Groupware bundle" : "Balíček groupware",
+ "Hub bundle" : "Sada pre centrum aktivity (hub)",
"Social sharing bundle" : "Balíček sociálneho zdieľania",
"PHP %s or higher is required." : "Požadovaná verzia PHP %s alebo vyššia.",
"PHP with a version lower than %s is required." : "PHP je vyžadované vo vyššej verzii ako %s.",
@@ -25,7 +28,20 @@
"Following platforms are supported: %s" : "Podporované sú nasledovné systémy: %s",
"Server version %s or higher is required." : "Je vyžadovaná verzia servera %s alebo vyššia.",
"Server version %s or lower is required." : "Je vyžadovaná verzia servera %s alebo nižšia.",
+ "Logged in user must be an admin or sub admin" : "Prihlásený používateľ musí byť správcom alebo správcom pre čiastkovú oblasť.",
"Logged in user must be an admin" : "Prihlásený používateľ musí byť správca",
+ "Wiping of device %s has started" : "Začalo sa mazanie zariadenia %s",
+ "Wiping of device »%s« has started" : "Začalo sa mazanie zariadenia „%s“",
+ "»%s« started remote wipe" : "„%s“ začalo mazanie na diaľku",
+ "Device or application »%s« has started the remote wipe process. You will receive another email once the process has finished" : "Zariadenie alebo aplikácia „%s“ začal proces mazania na diaľku. Po dokončení procesu dostanete ďalší e-mail",
+ "Wiping of device %s has finished" : "Mazanie zariadenia %s bolo dokončené.",
+ "Wiping of device »%s« has finished" : "Mazanie zariadenia „%s“ bolo dokončené.",
+ "»%s« finished remote wipe" : "„%s“ dokončilo mazanie na diaľku ",
+ "Device or application »%s« has finished the remote wipe process." : "Zariadenie alebo aplikácia „%s“ dokončilo(a) proces mazania na diaľku.",
+ "Remote wipe started" : "Začalo mazanie na diaľku",
+ "A remote wipe was started on device %s" : "Na zariadeni %s začalo mazanie na diaľku",
+ "Remote wipe finished" : "Mazanie na diaľku bolo dokončené",
+ "The remote wipe on %s has finished" : "Mazanie na diaľku na %s bolo dokončené",
"Authentication" : "Autentifikácia",
"Unknown filetype" : "Neznámy typ súboru",
"Invalid image" : "Chybný obrázok",
@@ -49,6 +65,7 @@
"_%n minute ago_::_%n minutes ago_" : ["pred %n minútou","pred %n minútami","pred %n minútami","pred %n minútami"],
"in a few seconds" : "o pár sekúnd",
"seconds ago" : "pred sekundami",
+ "Empty file" : "Prázdny súbor",
"Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Modul s ID: %s neexistuje. Povoľte ho prosím vo vašom nastavení aplikácií alebo kontaktujte správcu.",
"File name is a reserved word" : "Názov súboru je rezervované slovo.",
"File name contains at least one invalid character" : "Názov súboru obsahuje nepovolené znaky.",
@@ -70,6 +87,7 @@
"%s enter the database username." : "Zadajte používateľské meno %s databázy.",
"%s enter the database name." : "Zadajte názov databázy pre %s databázy.",
"%s you may not use dots in the database name" : "V názve databázy %s nemôžete používať bodky",
+ "MySQL username and/or password not valid" : "Neplatné užívateľské meno a/alebo heslo do MySQL",
"You need to enter details of an existing account." : "Musíte zadať údaje existujúceho účtu.",
"Oracle connection could not be established" : "Nie je možné pripojiť sa k Oracle",
"Oracle username and/or password not valid" : "Používateľské meno a/alebo heslo pre Oracle databázu je neplatné",
@@ -150,6 +168,7 @@
"A valid username must be provided" : "Musíte zadať platné používateľské meno",
"Username contains whitespace at the beginning or at the end" : "Meno používateľa obsahuje na začiatku, alebo na konci medzeru",
"Username must not consist of dots only" : "Používateľské meno sa nesmie skladať len z bodiek",
+ "Username is invalid because files already exist for this user" : "Používateľské meno je neplatné, pretože pre tohto používateľa už existujú súbory",
"A valid password must be provided" : "Musíte zadať platné heslo",
"The username is already being used" : "Meno používateľa je už použité",
"Could not create user" : "Nepodarilo sa vytvoriť používateľa",
@@ -166,6 +185,7 @@
"Cannot write into \"config\" directory" : "Nie je možné zapisovať do priečinka \"config\"",
"This can usually be fixed by giving the webserver write access to the config directory. See %s" : "To je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do adresára s konfiguráciou. Viď %s",
"Cannot write into \"apps\" directory" : "Nie je možné zapisovať do priečinka \"apps\"",
+ "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file." : "Toto sa zvyčajne dá opraviť poskytnutím práva webového servera na zápis do priečinka s aplikáciami alebo vypnutím katalógu s aplikáciami v súbore s nastaveniami.",
"Cannot create \"data\" directory" : "Nie je možné vytvoriť priečinok \"data\"",
"This can usually be fixed by giving the webserver write access to the root directory. See %s" : "To je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do koreňového adresára. Viď %s",
"Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Oprávnenia je zvyčajne možné opraviť tým, že udelíte webovému serveru oprávnenie na zápis do koreňového priečinka. Viď %s.",
diff --git a/lib/private/Mail/EMailTemplate.php b/lib/private/Mail/EMailTemplate.php
index b3654f30382..4f162e9d9ed 100644
--- a/lib/private/Mail/EMailTemplate.php
+++ b/lib/private/Mail/EMailTemplate.php
@@ -29,8 +29,8 @@ declare(strict_types=1);
namespace OC\Mail;
use OCP\Defaults;
-use OCP\IL10N;
use OCP\IURLGenerator;
+use OCP\L10N\IFactory;
use OCP\Mail\IEMailTemplate;
/**
@@ -46,8 +46,8 @@ class EMailTemplate implements IEMailTemplate {
protected $themingDefaults;
/** @var IURLGenerator */
protected $urlGenerator;
- /** @var IL10N */
- protected $l10n;
+ /** @var IFactory */
+ protected $l10nFactory;
/** @var string */
protected $emailId;
/** @var array */
@@ -344,21 +344,14 @@ EOF;
</table>
EOF;
- /**
- * @param Defaults $themingDefaults
- * @param IURLGenerator $urlGenerator
- * @param IL10N $l10n
- * @param string $emailId
- * @param array $data
- */
public function __construct(Defaults $themingDefaults,
IURLGenerator $urlGenerator,
- IL10N $l10n,
+ IFactory $l10nFactory,
$emailId,
array $data) {
$this->themingDefaults = $themingDefaults;
$this->urlGenerator = $urlGenerator;
- $this->l10n = $l10n;
+ $this->l10nFactory = $l10nFactory;
$this->htmlBody .= $this->head;
$this->emailId = $emailId;
$this->data = $data;
@@ -601,9 +594,10 @@ EOF;
*
* @param string $text If the text is empty the default "Name - Slogan<br>This is an automatically sent email" will be used
*/
- public function addFooter(string $text = '') {
+ public function addFooter(string $text = '', ?string $lang = null) {
if($text === '') {
- $text = $this->themingDefaults->getName() . ' - ' . $this->themingDefaults->getSlogan() . '<br>' . $this->l10n->t('This is an automatically sent email, please do not reply.');
+ $l10n = $this->l10nFactory->get('lib', $lang);
+ $text = $this->themingDefaults->getName() . ' - ' . $this->themingDefaults->getSlogan($lang) . '<br>' . $l10n->t('This is an automatically sent email, please do not reply.');
}
if ($this->footerAdded) {
diff --git a/lib/private/Mail/Mailer.php b/lib/private/Mail/Mailer.php
index 8f442365585..5125a39b118 100644
--- a/lib/private/Mail/Mailer.php
+++ b/lib/private/Mail/Mailer.php
@@ -32,6 +32,7 @@ use OCP\Defaults;
use OCP\IConfig;
use OCP\IL10N;
use OCP\IURLGenerator;
+use OCP\L10N\IFactory;
use OCP\Mail\IAttachment;
use OCP\Mail\IEMailTemplate;
use OCP\Mail\IMailer;
@@ -69,6 +70,8 @@ class Mailer implements IMailer {
private $urlGenerator;
/** @var IL10N */
private $l10n;
+ /** @var IFactory */
+ private $l10nFactory;
/**
* @param IConfig $config
@@ -81,12 +84,14 @@ class Mailer implements IMailer {
ILogger $logger,
Defaults $defaults,
IURLGenerator $urlGenerator,
- IL10N $l10n) {
+ IL10N $l10n,
+ IFactory $l10nFactory) {
$this->config = $config;
$this->logger = $logger;
$this->defaults = $defaults;
$this->urlGenerator = $urlGenerator;
$this->l10n = $l10n;
+ $this->l10nFactory = $l10nFactory;
}
/**
@@ -144,7 +149,7 @@ class Mailer implements IMailer {
return new EMailTemplate(
$this->defaults,
$this->urlGenerator,
- $this->l10n,
+ $this->l10nFactory,
$emailId,
$data
);
diff --git a/lib/private/Security/CredentialsManager.php b/lib/private/Security/CredentialsManager.php
index 0ac9b30c6ce..df1d8926568 100644
--- a/lib/private/Security/CredentialsManager.php
+++ b/lib/private/Security/CredentialsManager.php
@@ -53,7 +53,7 @@ class CredentialsManager implements ICredentialsManager {
/**
* Store a set of credentials
*
- * @param string|null $userId Null for system-wide credentials
+ * @param string $userId empty string for system-wide credentials
* @param string $identifier
* @param mixed $credentials
*/
@@ -61,7 +61,7 @@ class CredentialsManager implements ICredentialsManager {
$value = $this->crypto->encrypt(json_encode($credentials));
$this->dbConnection->setValues(self::DB_TABLE, [
- 'user' => $userId,
+ 'user' => (string)$userId,
'identifier' => $identifier,
], [
'credentials' => $value,
@@ -71,7 +71,7 @@ class CredentialsManager implements ICredentialsManager {
/**
* Retrieve a set of credentials
*
- * @param string|null $userId Null for system-wide credentials
+ * @param string $userId empty string for system-wide credentials
* @param string $identifier
* @return mixed
*/
@@ -79,7 +79,7 @@ class CredentialsManager implements ICredentialsManager {
$qb = $this->dbConnection->getQueryBuilder();
$qb->select('credentials')
->from(self::DB_TABLE)
- ->where($qb->expr()->eq('user', $qb->createNamedParameter($userId)))
+ ->where($qb->expr()->eq('user', $qb->createNamedParameter((string)$userId)))
->andWhere($qb->expr()->eq('identifier', $qb->createNamedParameter($identifier)))
;
$result = $qb->execute()->fetch();
@@ -95,14 +95,14 @@ class CredentialsManager implements ICredentialsManager {
/**
* Delete a set of credentials
*
- * @param string|null $userId Null for system-wide credentials
+ * @param string $userId empty string for system-wide credentials
* @param string $identifier
* @return int rows removed
*/
public function delete($userId, $identifier) {
$qb = $this->dbConnection->getQueryBuilder();
$qb->delete(self::DB_TABLE)
- ->where($qb->expr()->eq('user', $qb->createNamedParameter($userId)))
+ ->where($qb->expr()->eq('user', $qb->createNamedParameter((string)$userId)))
->andWhere($qb->expr()->eq('identifier', $qb->createNamedParameter($identifier)))
;
return $qb->execute();
diff --git a/lib/private/Server.php b/lib/private/Server.php
index bce4f0feaef..9ceebf1b433 100644
--- a/lib/private/Server.php
+++ b/lib/private/Server.php
@@ -151,6 +151,7 @@ use OCP\IL10N;
use OCP\IServerContainer;
use OCP\ITempManager;
use OCP\IUser;
+use OCP\L10N\IFactory;
use OCP\Lock\ILockingProvider;
use OCP\Log\ILogFactory;
use OCP\Remote\Api\IApiFactory;
@@ -832,7 +833,8 @@ class Server extends ServerContainer implements IServerContainer {
$c->getLogger(),
$c->query(Defaults::class),
$c->getURLGenerator(),
- $c->getL10N('lib')
+ $c->getL10N('lib'),
+ $c->query(IFactory::class)
);
});
$this->registerAlias('Mailer', \OCP\Mail\IMailer::class);
diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php
index 1915ac952f7..f13878d71b4 100644
--- a/lib/private/Share20/Manager.php
+++ b/lib/private/Share20/Manager.php
@@ -805,9 +805,9 @@ class Manager implements IManager {
$initiatorEmail = $initiatorUser->getEMailAddress();
if($initiatorEmail !== null) {
$message->setReplyTo([$initiatorEmail => $initiatorDisplayName]);
- $emailTemplate->addFooter($instanceName . ($this->defaults->getSlogan() !== '' ? ' - ' . $this->defaults->getSlogan() : ''));
+ $emailTemplate->addFooter($instanceName . ($this->defaults->getSlogan($l->getLanguageCode()) !== '' ? ' - ' . $this->defaults->getSlogan($l->getLanguageCode()) : ''));
} else {
- $emailTemplate->addFooter();
+ $emailTemplate->addFooter('', $l->getLanguageCode());
}
$message->useTemplate($emailTemplate);
diff --git a/lib/private/legacy/defaults.php b/lib/private/legacy/defaults.php
index 8633113ba5a..7bd083608d4 100644
--- a/lib/private/legacy/defaults.php
+++ b/lib/private/legacy/defaults.php
@@ -213,12 +213,12 @@ class OC_Defaults {
* Returns slogan
* @return string slogan
*/
- public function getSlogan() {
+ public function getSlogan(?string $lang = null) {
if ($this->themeExist('getSlogan')) {
- return $this->theme->getSlogan();
+ return $this->theme->getSlogan($lang);
} else {
if ($this->defaultSlogan === null) {
- $l10n = \OC::$server->getL10N('lib');
+ $l10n = \OC::$server->getL10N('lib', $lang);
$this->defaultSlogan = $l10n->t('a safe home for all your data');
}
return $this->defaultSlogan;
diff --git a/lib/public/Defaults.php b/lib/public/Defaults.php
index bf790bb7239..c93b0f5e455 100644
--- a/lib/public/Defaults.php
+++ b/lib/public/Defaults.php
@@ -135,8 +135,8 @@ class Defaults {
* @return string
* @since 6.0.0
*/
- public function getSlogan() {
- return $this->defaults->getSlogan();
+ public function getSlogan(?string $lang = null) {
+ return $this->defaults->getSlogan($lang);
}
/**
diff --git a/lib/public/Mail/IEMailTemplate.php b/lib/public/Mail/IEMailTemplate.php
index 1c0ddbe54d4..18456178ed9 100644
--- a/lib/public/Mail/IEMailTemplate.php
+++ b/lib/public/Mail/IEMailTemplate.php
@@ -138,10 +138,11 @@ interface IEMailTemplate {
* Adds a logo and a text to the footer. <br> in the text will be replaced by new lines in the plain text email
*
* @param string $text If the text is empty the default "Name - Slogan<br>This is an automatically sent email" will be used
+ * @param string $lang Optional language to set the default footer in
*
* @since 12.0.0
*/
- public function addFooter(string $text = '');
+ public function addFooter(string $text = '', ?string $lang = null);
/**
* Returns the rendered email subject as string
diff --git a/lib/public/Security/ICredentialsManager.php b/lib/public/Security/ICredentialsManager.php
index 6c1bb67192d..17d1fa5a355 100644
--- a/lib/public/Security/ICredentialsManager.php
+++ b/lib/public/Security/ICredentialsManager.php
@@ -33,7 +33,7 @@ interface ICredentialsManager {
/**
* Store a set of credentials
*
- * @param string|null $userId Null for system-wide credentials
+ * @param string $userId empty string for system-wide credentials
* @param string $identifier
* @param mixed $credentials
* @since 8.2.0
@@ -43,7 +43,7 @@ interface ICredentialsManager {
/**
* Retrieve a set of credentials
*
- * @param string|null $userId Null for system-wide credentials
+ * @param string $userId empty string for system-wide credentials
* @param string $identifier
* @return mixed
* @since 8.2.0
@@ -53,7 +53,7 @@ interface ICredentialsManager {
/**
* Delete a set of credentials
*
- * @param string|null $userId Null for system-wide credentials
+ * @param string $userId empty string for system-wide credentials
* @param string $identifier
* @return int rows removed
* @since 8.2.0
diff --git a/settings/l10n/bg.js b/settings/l10n/bg.js
index 6552f1b4a19..c6ecda398df 100644
--- a/settings/l10n/bg.js
+++ b/settings/l10n/bg.js
@@ -208,6 +208,7 @@ OC.L10N.register(
"Enable encryption" : "Включване на криптиране",
"Select default encryption module:" : "Избор на модул за криптиране по подразбиране:",
"Start migration" : "Начало на миграцията",
+ "Background jobs" : "Фонови процеси",
"Last job execution ran %s. Something seems wrong." : "За последно cron задача е стартирала %s. Изглежда, че има проблем.",
"Last job ran %s." : "За последно cron задача е стартирала %s.",
"Execute one task with each page loaded" : "Изпълнява една задача с всяка заредена страница.",
diff --git a/settings/l10n/bg.json b/settings/l10n/bg.json
index d90f0708c20..c955daff101 100644
--- a/settings/l10n/bg.json
+++ b/settings/l10n/bg.json
@@ -206,6 +206,7 @@
"Enable encryption" : "Включване на криптиране",
"Select default encryption module:" : "Избор на модул за криптиране по подразбиране:",
"Start migration" : "Начало на миграцията",
+ "Background jobs" : "Фонови процеси",
"Last job execution ran %s. Something seems wrong." : "За последно cron задача е стартирала %s. Изглежда, че има проблем.",
"Last job ran %s." : "За последно cron задача е стартирала %s.",
"Execute one task with each page loaded" : "Изпълнява една задача с всяка заредена страница.",
diff --git a/settings/l10n/de.js b/settings/l10n/de.js
index 1fad1bd92a8..7236623a9a5 100644
--- a/settings/l10n/de.js
+++ b/settings/l10n/de.js
@@ -336,7 +336,7 @@ OC.L10N.register(
"Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Wird die Verschlüsselung einmal aktiviert, so werden alle ab diesem Zeitpunkt hochgeladene Dateien verschlüsselt. Sie kann nur wieder deaktiviert werden, wenn das Verschlüsselungsmodul dies unterstützt und alle Voraussetzungen (wie das Setzen eines Wiederherstellungsschlüssels) im Vorhinein erfüllt wurden.",
"Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Verschlüsselung alleine garantiert nicht die Systemsicherheit. Bitte lese in der Dokumentation nach, wie die Verschlüsselungs-app funktioniert und welche Anwendungsfälle unterstützt werden.",
"Be aware that encryption always increases the file size." : "Bedenke, dass durch die Verschlüsselung die Dateigröße zunimmt. ",
- "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Es ist immer gut, regelmäßig Sicherungskopien von Deinen Daten zu erstellen. Falls Du die Verschlüsselung nutzt, sollte auch eine Sicherung der Verschlüsselungsschlüssel zusammen mit Deinen Daten durchgeführt werden.",
+ "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Es ist immer gut, regelmäßig Sicherungen von Deinen Daten zu erstellen. Falls Du die Verschlüsselung nutzt, sollte auch eine Sicherung der Verschlüsselungsschlüssel zusammen mit Deinen Daten durchgeführt werden.",
"This is the final warning: Do you really want to enable encryption?" : "Dies ist die letzte Warnung: Möchtest Du die Verschlüsselung wirklich aktivieren?",
"Enable encryption" : "Verschlüsselung aktivieren",
"No encryption module loaded, please enable an encryption module in the app menu." : "Es wurde kein Verschlüsselungs-Modul geladen, bitte ein Verschlüsselungs-Modul im Anwendungs-Menü aktivieren.",
diff --git a/settings/l10n/de.json b/settings/l10n/de.json
index 01cb644d3a2..f11c29c61fd 100644
--- a/settings/l10n/de.json
+++ b/settings/l10n/de.json
@@ -334,7 +334,7 @@
"Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Wird die Verschlüsselung einmal aktiviert, so werden alle ab diesem Zeitpunkt hochgeladene Dateien verschlüsselt. Sie kann nur wieder deaktiviert werden, wenn das Verschlüsselungsmodul dies unterstützt und alle Voraussetzungen (wie das Setzen eines Wiederherstellungsschlüssels) im Vorhinein erfüllt wurden.",
"Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Verschlüsselung alleine garantiert nicht die Systemsicherheit. Bitte lese in der Dokumentation nach, wie die Verschlüsselungs-app funktioniert und welche Anwendungsfälle unterstützt werden.",
"Be aware that encryption always increases the file size." : "Bedenke, dass durch die Verschlüsselung die Dateigröße zunimmt. ",
- "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Es ist immer gut, regelmäßig Sicherungskopien von Deinen Daten zu erstellen. Falls Du die Verschlüsselung nutzt, sollte auch eine Sicherung der Verschlüsselungsschlüssel zusammen mit Deinen Daten durchgeführt werden.",
+ "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Es ist immer gut, regelmäßig Sicherungen von Deinen Daten zu erstellen. Falls Du die Verschlüsselung nutzt, sollte auch eine Sicherung der Verschlüsselungsschlüssel zusammen mit Deinen Daten durchgeführt werden.",
"This is the final warning: Do you really want to enable encryption?" : "Dies ist die letzte Warnung: Möchtest Du die Verschlüsselung wirklich aktivieren?",
"Enable encryption" : "Verschlüsselung aktivieren",
"No encryption module loaded, please enable an encryption module in the app menu." : "Es wurde kein Verschlüsselungs-Modul geladen, bitte ein Verschlüsselungs-Modul im Anwendungs-Menü aktivieren.",
diff --git a/settings/l10n/eu.js b/settings/l10n/eu.js
index d015e019afb..a81e01b650d 100644
--- a/settings/l10n/eu.js
+++ b/settings/l10n/eu.js
@@ -47,6 +47,7 @@ OC.L10N.register(
"{actor} changed your password" : "{actor}-(e)k zure pasahitza aldatu du",
"You changed your password" : "Zuk zure pasahitza aldatu duzu",
"Your password was reset by an administrator" : "Administratzaile batek zure pasahitza berrezarri du",
+ "Your password was reset" : "Zure pasahitza berezarri da",
"{actor} changed your email address" : "{actor}-(e)k zure e-posta helbidea aldatu du",
"You changed your email address" : "Zuk zure e-posta helbidea aldatu duzu",
"Your email address was changed by an administrator" : "Administratzaile batek zure e-posta helbidea berrezarri du",
diff --git a/settings/l10n/eu.json b/settings/l10n/eu.json
index bb281445ff7..a86717fe944 100644
--- a/settings/l10n/eu.json
+++ b/settings/l10n/eu.json
@@ -45,6 +45,7 @@
"{actor} changed your password" : "{actor}-(e)k zure pasahitza aldatu du",
"You changed your password" : "Zuk zure pasahitza aldatu duzu",
"Your password was reset by an administrator" : "Administratzaile batek zure pasahitza berrezarri du",
+ "Your password was reset" : "Zure pasahitza berezarri da",
"{actor} changed your email address" : "{actor}-(e)k zure e-posta helbidea aldatu du",
"You changed your email address" : "Zuk zure e-posta helbidea aldatu duzu",
"Your email address was changed by an administrator" : "Administratzaile batek zure e-posta helbidea berrezarri du",
diff --git a/settings/l10n/ru.js b/settings/l10n/ru.js
index 432e76e3428..fb142072674 100644
--- a/settings/l10n/ru.js
+++ b/settings/l10n/ru.js
@@ -47,6 +47,7 @@ OC.L10N.register(
"{actor} changed your password" : "{actor} сменил(а) ваш пароль",
"You changed your password" : "Вы изменили свой пароль",
"Your password was reset by an administrator" : "Ваш пароль был сброшен администратором",
+ "Your password was reset" : "Ваш пароль был сброшен",
"{actor} changed your email address" : "{actor} изменил(а) ваш адрес электронной почты",
"You changed your email address" : "Вы изменили свой адрес электронной почты",
"Your email address was changed by an administrator" : "Ваш адрес электронной почты был изменён администратором",
@@ -88,6 +89,7 @@ OC.L10N.register(
"%1$s changed your password on %2$s." : "%1$s сменил(а) ваш пароль для сервера %2$s.",
"Your password on %s was changed." : "Ваш пароль на сервере %s был изменён",
"Your password on %s was reset by an administrator." : "Ваш пароль на сервере %s был сброшен администратором.",
+ "Your password on %s was reset." : "Ваш пароль на сервере %s был сброшен.",
"Password for %1$s changed on %2$s" : "Пароль %1$s изменён на сервере %2$s",
"Password changed for %s" : "Изменён пароль %s",
"If you did not request this, please contact an administrator." : "Если вы не запрашивали это действие, свяжитесь с администратором.",
diff --git a/settings/l10n/ru.json b/settings/l10n/ru.json
index 95c9da2457c..c995b73a69a 100644
--- a/settings/l10n/ru.json
+++ b/settings/l10n/ru.json
@@ -45,6 +45,7 @@
"{actor} changed your password" : "{actor} сменил(а) ваш пароль",
"You changed your password" : "Вы изменили свой пароль",
"Your password was reset by an administrator" : "Ваш пароль был сброшен администратором",
+ "Your password was reset" : "Ваш пароль был сброшен",
"{actor} changed your email address" : "{actor} изменил(а) ваш адрес электронной почты",
"You changed your email address" : "Вы изменили свой адрес электронной почты",
"Your email address was changed by an administrator" : "Ваш адрес электронной почты был изменён администратором",
@@ -86,6 +87,7 @@
"%1$s changed your password on %2$s." : "%1$s сменил(а) ваш пароль для сервера %2$s.",
"Your password on %s was changed." : "Ваш пароль на сервере %s был изменён",
"Your password on %s was reset by an administrator." : "Ваш пароль на сервере %s был сброшен администратором.",
+ "Your password on %s was reset." : "Ваш пароль на сервере %s был сброшен.",
"Password for %1$s changed on %2$s" : "Пароль %1$s изменён на сервере %2$s",
"Password changed for %s" : "Изменён пароль %s",
"If you did not request this, please contact an administrator." : "Если вы не запрашивали это действие, свяжитесь с администратором.",
diff --git a/settings/l10n/sk.js b/settings/l10n/sk.js
index a41fad77d53..05a58d055a5 100644
--- a/settings/l10n/sk.js
+++ b/settings/l10n/sk.js
@@ -364,7 +364,31 @@ OC.L10N.register(
"New password" : "Nové heslo",
"Change password" : "Zmeniť heslo",
"Use a second factor besides your password to increase security for your account." : "Pre zlepšenie zabezpečenia vášho účtu použite okrem hesla aj druhý faktor.",
+ "Afrikaans" : "Afrikánčina",
+ "Arabic" : "Arabčina",
+ "Azerbaijani" : "Azerbajdžansky",
+ "Basque" : "Baskičtina",
+ "Belarusian" : "Bieloruština",
+ "Bengali" : "Bengálčina",
+ "Bulgarian" : "Bulharčina",
+ "Catalan" : "Catalan",
+ "Cherokee" : "Čerokézčina",
+ "Chinese" : "Chinese",
+ "Croatian" : "Chorvátčina",
"Czech" : "Česká republika",
+ "Danish" : "Dánčina",
+ "English" : "Angličtina",
+ "Esperanto" : "Esperanto",
+ "Estonian" : "Estónčina",
+ "Finnish" : "Fínčina",
+ "French" : "Francúzština",
+ "Galician" : "Galicijčina",
+ "German" : "Nemčina",
+ "Greek" : "Gréčtina",
+ "Hebrew" : "Hebrejčina",
+ "Hindi" : "Hindčina",
+ "Hungarian" : "Maďarčina",
+ "Indonesian" : "Indonézština",
"Tonga" : "Tonga",
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Oficiálne aplikácie sú vyvíjané komunitou. Poskytujú centrálnu funkcionalitu a sú pripravené pre produkčné nasadenie.",
"Official" : "Oficiálny",
diff --git a/settings/l10n/sk.json b/settings/l10n/sk.json
index f585fadff00..4b562b6e250 100644
--- a/settings/l10n/sk.json
+++ b/settings/l10n/sk.json
@@ -362,7 +362,31 @@
"New password" : "Nové heslo",
"Change password" : "Zmeniť heslo",
"Use a second factor besides your password to increase security for your account." : "Pre zlepšenie zabezpečenia vášho účtu použite okrem hesla aj druhý faktor.",
+ "Afrikaans" : "Afrikánčina",
+ "Arabic" : "Arabčina",
+ "Azerbaijani" : "Azerbajdžansky",
+ "Basque" : "Baskičtina",
+ "Belarusian" : "Bieloruština",
+ "Bengali" : "Bengálčina",
+ "Bulgarian" : "Bulharčina",
+ "Catalan" : "Catalan",
+ "Cherokee" : "Čerokézčina",
+ "Chinese" : "Chinese",
+ "Croatian" : "Chorvátčina",
"Czech" : "Česká republika",
+ "Danish" : "Dánčina",
+ "English" : "Angličtina",
+ "Esperanto" : "Esperanto",
+ "Estonian" : "Estónčina",
+ "Finnish" : "Fínčina",
+ "French" : "Francúzština",
+ "Galician" : "Galicijčina",
+ "German" : "Nemčina",
+ "Greek" : "Gréčtina",
+ "Hebrew" : "Hebrejčina",
+ "Hindi" : "Hindčina",
+ "Hungarian" : "Maďarčina",
+ "Indonesian" : "Indonézština",
"Tonga" : "Tonga",
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Oficiálne aplikácie sú vyvíjané komunitou. Poskytujú centrálnu funkcionalitu a sú pripravené pre produkčné nasadenie.",
"Official" : "Oficiálny",
diff --git a/settings/l10n/vi.js b/settings/l10n/vi.js
index 24f3d453700..377e633fc46 100644
--- a/settings/l10n/vi.js
+++ b/settings/l10n/vi.js
@@ -240,6 +240,7 @@ OC.L10N.register(
"Forum" : "Diễn đàn",
"None" : "Không gì cả",
"Login" : "Đăng nhập",
+ "Open documentation" : "Mở tài liệu",
"Encryption" : "Mã hóa",
"Authentication required" : "Cần phải được xác thực",
"Server address" : "Địa chỉ máy chủ",
diff --git a/settings/l10n/vi.json b/settings/l10n/vi.json
index 94120357a3c..4b0e82cc782 100644
--- a/settings/l10n/vi.json
+++ b/settings/l10n/vi.json
@@ -238,6 +238,7 @@
"Forum" : "Diễn đàn",
"None" : "Không gì cả",
"Login" : "Đăng nhập",
+ "Open documentation" : "Mở tài liệu",
"Encryption" : "Mã hóa",
"Authentication required" : "Cần phải được xác thực",
"Server address" : "Địa chỉ máy chủ",
diff --git a/tests/Settings/Mailer/NewUserMailHelperTest.php b/tests/Settings/Mailer/NewUserMailHelperTest.php
index 0e7bc395f2a..8e6f1b41ac7 100644
--- a/tests/Settings/Mailer/NewUserMailHelperTest.php
+++ b/tests/Settings/Mailer/NewUserMailHelperTest.php
@@ -70,7 +70,7 @@ class NewUserMailHelperTest extends TestCase {
$template = new EMailTemplate(
$this->defaults,
$this->urlGenerator,
- $this->l10n,
+ $this->l10nFactory,
'test.TestTemplate',
[]
);
diff --git a/tests/lib/Mail/EMailTemplateTest.php b/tests/lib/Mail/EMailTemplateTest.php
index d4687c44b06..713f19307fc 100644
--- a/tests/lib/Mail/EMailTemplateTest.php
+++ b/tests/lib/Mail/EMailTemplateTest.php
@@ -27,6 +27,7 @@ use OC\Mail\EMailTemplate;
use OCP\Defaults;
use OCP\IL10N;
use OCP\IURLGenerator;
+use OCP\L10N\IFactory;
use Test\TestCase;
class EMailTemplateTest extends TestCase {
@@ -34,7 +35,7 @@ class EMailTemplateTest extends TestCase {
private $defaults;
/** @var IURLGenerator|\PHPUnit_Framework_MockObject_MockObject */
private $urlGenerator;
- /** @var IL10N|\PHPUnit_Framework_MockObject_MockObject */
+ /** @var IFactory|\PHPUnit_Framework_MockObject_MockObject */
private $l10n;
/** @var EMailTemplate */
private $emailTemplate;
@@ -44,7 +45,11 @@ class EMailTemplateTest extends TestCase {
$this->defaults = $this->createMock(Defaults::class);
$this->urlGenerator = $this->createMock(IURLGenerator::class);
- $this->l10n = $this->createMock(IL10N::class);
+ $this->l10n = $this->createMock(IFactory::class);
+
+ $this->l10n->method('get')
+ ->with('lib', '')
+ ->willReturn($this->createMock(IL10N::class));
$this->emailTemplate = new EMailTemplate(
$this->defaults,
diff --git a/tests/lib/Mail/MailerTest.php b/tests/lib/Mail/MailerTest.php
index 1913cc1176c..b71d6646c56 100644
--- a/tests/lib/Mail/MailerTest.php
+++ b/tests/lib/Mail/MailerTest.php
@@ -15,6 +15,7 @@ use OCP\IConfig;
use OCP\IL10N;
use OCP\ILogger;
use OCP\IURLGenerator;
+use OCP\L10N\IFactory;
use Test\TestCase;
class MailerTest extends TestCase {
@@ -44,7 +45,8 @@ class MailerTest extends TestCase {
$this->logger,
$this->defaults,
$this->urlGenerator,
- $this->l10n
+ $this->l10n,
+ $this->createMock(IFactory::class)
);
}
diff --git a/tests/lib/Security/CredentialsManagerTest.php b/tests/lib/Security/CredentialsManagerTest.php
index 38da26a21a9..9e0ae25718f 100644
--- a/tests/lib/Security/CredentialsManagerTest.php
+++ b/tests/lib/Security/CredentialsManagerTest.php
@@ -27,6 +27,9 @@ use \OCP\Security\ICrypto;
use \OCP\IDBConnection;
use \OC\Security\CredentialsManager;
+/**
+ * @group DB
+ */
class CredentialsManagerTest extends \Test\TestCase {
/** @var ICrypto */