summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.drone.yml11
m---------3rdparty0
-rw-r--r--apps/comments/l10n/nb_NO.js2
-rw-r--r--apps/comments/l10n/nb_NO.json2
-rw-r--r--apps/dav/lib/CalDAV/CalendarObject.php8
-rw-r--r--apps/dav/tests/unit/CalDAV/CalendarTest.php8
-rw-r--r--apps/encryption/css/settings-personal.css5
-rw-r--r--apps/encryption/l10n/de_DE.js2
-rw-r--r--apps/encryption/l10n/de_DE.json2
-rw-r--r--apps/encryption/l10n/zh_CN.js28
-rw-r--r--apps/encryption/l10n/zh_CN.json28
-rw-r--r--apps/federatedfilesharing/l10n/de_DE.js2
-rw-r--r--apps/federatedfilesharing/l10n/de_DE.json2
-rw-r--r--apps/federation/l10n/id.js10
-rw-r--r--apps/federation/l10n/id.json10
-rw-r--r--apps/federation/l10n/lv.js16
-rw-r--r--apps/federation/l10n/lv.json14
-rw-r--r--apps/files/appinfo/app.php14
-rw-r--r--apps/files/appinfo/info.xml7
-rw-r--r--apps/files/img/app.svg6
-rw-r--r--apps/files/l10n/bg_BG.js2
-rw-r--r--apps/files/l10n/bg_BG.json2
-rw-r--r--apps/files/l10n/cs_CZ.js2
-rw-r--r--apps/files/l10n/cs_CZ.json2
-rw-r--r--apps/files/l10n/de.js2
-rw-r--r--apps/files/l10n/de.json2
-rw-r--r--apps/files/l10n/de_DE.js2
-rw-r--r--apps/files/l10n/de_DE.json2
-rw-r--r--apps/files/l10n/en_GB.js2
-rw-r--r--apps/files/l10n/en_GB.json2
-rw-r--r--apps/files/l10n/es.js2
-rw-r--r--apps/files/l10n/es.json2
-rw-r--r--apps/files/l10n/fi_FI.js2
-rw-r--r--apps/files/l10n/fi_FI.json2
-rw-r--r--apps/files/l10n/fr.js26
-rw-r--r--apps/files/l10n/fr.json26
-rw-r--r--apps/files/l10n/hu_HU.js3
-rw-r--r--apps/files/l10n/hu_HU.json3
-rw-r--r--apps/files/l10n/id.js2
-rw-r--r--apps/files/l10n/id.json2
-rw-r--r--apps/files/l10n/is.js2
-rw-r--r--apps/files/l10n/is.json2
-rw-r--r--apps/files/l10n/it.js2
-rw-r--r--apps/files/l10n/it.json2
-rw-r--r--apps/files/l10n/ja.js7
-rw-r--r--apps/files/l10n/ja.json7
-rw-r--r--apps/files/l10n/ko.js2
-rw-r--r--apps/files/l10n/ko.json2
-rw-r--r--apps/files/l10n/lv.js25
-rw-r--r--apps/files/l10n/lv.json25
-rw-r--r--apps/files/l10n/nb_NO.js3
-rw-r--r--apps/files/l10n/nb_NO.json3
-rw-r--r--apps/files/l10n/nl.js2
-rw-r--r--apps/files/l10n/nl.json2
-rw-r--r--apps/files/l10n/pl.js2
-rw-r--r--apps/files/l10n/pl.json2
-rw-r--r--apps/files/l10n/pt_BR.js2
-rw-r--r--apps/files/l10n/pt_BR.json2
-rw-r--r--apps/files/l10n/ru.js2
-rw-r--r--apps/files/l10n/ru.json2
-rw-r--r--apps/files/l10n/sk_SK.js2
-rw-r--r--apps/files/l10n/sk_SK.json2
-rw-r--r--apps/files/l10n/sl.js2
-rw-r--r--apps/files/l10n/sl.json2
-rw-r--r--apps/files/l10n/sq.js2
-rw-r--r--apps/files/l10n/sq.json2
-rw-r--r--apps/files/l10n/sv.js2
-rw-r--r--apps/files/l10n/sv.json2
-rw-r--r--apps/files/l10n/tr.js2
-rw-r--r--apps/files/l10n/tr.json2
-rw-r--r--apps/files/l10n/zh_CN.js2
-rw-r--r--apps/files/l10n/zh_CN.json2
-rw-r--r--apps/files/l10n/zh_TW.js2
-rw-r--r--apps/files/l10n/zh_TW.json2
-rw-r--r--apps/files_external/3rdparty/composer.json2
-rw-r--r--apps/files_external/3rdparty/composer.lock15
-rw-r--r--apps/files_external/3rdparty/composer/ClassLoader.php36
-rw-r--r--apps/files_external/3rdparty/composer/autoload_classmap.php19
-rw-r--r--apps/files_external/3rdparty/composer/autoload_static.php19
-rw-r--r--apps/files_external/3rdparty/composer/installed.json60
-rw-r--r--apps/files_external/3rdparty/icewind/streams/src/CallbackWrapper.php2
-rw-r--r--apps/files_external/3rdparty/icewind/streams/src/Path.php12
-rw-r--r--apps/files_external/3rdparty/icewind/streams/src/PathWrapper.php25
-rw-r--r--apps/files_external/3rdparty/icewind/streams/src/Wrapper.php2
-rw-r--r--apps/files_external/l10n/de_DE.js2
-rw-r--r--apps/files_external/l10n/de_DE.json2
-rw-r--r--apps/files_external/l10n/id.js7
-rw-r--r--apps/files_external/l10n/id.json7
-rw-r--r--apps/files_external/l10n/is.js1
-rw-r--r--apps/files_external/l10n/is.json1
-rw-r--r--apps/files_sharing/l10n/fr.js2
-rw-r--r--apps/files_sharing/l10n/fr.json2
-rw-r--r--apps/files_sharing/l10n/zh_CN.js93
-rw-r--r--apps/files_sharing/l10n/zh_CN.json93
-rw-r--r--apps/files_sharing/lib/Controller/ShareAPIController.php1
-rw-r--r--apps/files_sharing/lib/Controller/ShareController.php1
-rw-r--r--apps/files_versions/l10n/id.js2
-rw-r--r--apps/files_versions/l10n/id.json2
-rw-r--r--apps/files_versions/l10n/ja.js1
-rw-r--r--apps/files_versions/l10n/ja.json1
-rw-r--r--apps/files_versions/l10n/lv.js2
-rw-r--r--apps/files_versions/l10n/lv.json2
-rw-r--r--apps/provisioning_api/appinfo/routes.php1
-rw-r--r--apps/provisioning_api/lib/Controller/UsersController.php57
-rw-r--r--apps/provisioning_api/tests/Controller/UsersControllerTest.php190
-rw-r--r--apps/twofactor_backupcodes/l10n/lv.js17
-rw-r--r--apps/twofactor_backupcodes/l10n/lv.json15
-rw-r--r--apps/updatenotification/l10n/ja.js4
-rw-r--r--apps/updatenotification/l10n/ja.json4
-rw-r--r--apps/updatenotification/l10n/zh_CN.js4
-rw-r--r--apps/updatenotification/l10n/zh_CN.json4
-rw-r--r--apps/user_ldap/appinfo/routes.php10
-rw-r--r--apps/user_ldap/img/app-dark.svg4
-rw-r--r--apps/user_ldap/l10n/fr.js6
-rw-r--r--apps/user_ldap/l10n/fr.json6
-rw-r--r--apps/user_ldap/lib/Access.php3
-rw-r--r--apps/user_ldap/lib/Command/CreateEmptyConfig.php28
-rw-r--r--apps/user_ldap/lib/Configuration.php9
-rw-r--r--apps/user_ldap/lib/Controller/ConfigAPIController.php322
-rw-r--r--apps/user_ldap/lib/Helper.php19
-rw-r--r--apps/user_ldap/lib/Mapping/AbstractMapping.php11
-rw-r--r--apps/user_ldap/lib/Settings/Section.php2
-rw-r--r--apps/user_ldap/tests/Mapping/AbstractMappingTest.php3
-rw-r--r--apps/user_ldap/tests/Settings/SectionTest.php2
-rw-r--r--build/integration/config/behat.yml10
-rw-r--r--build/integration/features/bootstrap/LDAPContext.php85
-rw-r--r--build/integration/ldap_features/ldap-ocs.feature70
-rw-r--r--config/config.sample.php4
-rw-r--r--core/Application.php21
-rw-r--r--core/Controller/OCSController.php14
-rw-r--r--core/css/apps.scss14
-rw-r--r--core/css/header.scss13
-rw-r--r--core/css/icons.scss13
-rw-r--r--core/css/inputs.scss16
-rw-r--r--core/css/multiselect.scss13
-rw-r--r--core/css/share.scss12
-rw-r--r--core/css/styles.scss93
-rw-r--r--core/css/systemtags.scss7
-rw-r--r--core/css/tooltip.scss8
-rw-r--r--core/img/actions/close-white.svg4
-rw-r--r--core/js/sharedialoglinkshareview.js39
-rw-r--r--core/js/shareitemmodel.js16
-rw-r--r--core/l10n/bg_BG.js2
-rw-r--r--core/l10n/bg_BG.json2
-rw-r--r--core/l10n/cs_CZ.js2
-rw-r--r--core/l10n/cs_CZ.json2
-rw-r--r--core/l10n/da.js2
-rw-r--r--core/l10n/da.json2
-rw-r--r--core/l10n/de.js2
-rw-r--r--core/l10n/de.json2
-rw-r--r--core/l10n/de_DE.js2
-rw-r--r--core/l10n/de_DE.json2
-rw-r--r--core/l10n/el.js2
-rw-r--r--core/l10n/el.json2
-rw-r--r--core/l10n/en_GB.js2
-rw-r--r--core/l10n/en_GB.json2
-rw-r--r--core/l10n/es.js5
-rw-r--r--core/l10n/es.json5
-rw-r--r--core/l10n/fi_FI.js2
-rw-r--r--core/l10n/fi_FI.json2
-rw-r--r--core/l10n/fr.js2
-rw-r--r--core/l10n/fr.json2
-rw-r--r--core/l10n/he.js2
-rw-r--r--core/l10n/he.json2
-rw-r--r--core/l10n/hu_HU.js2
-rw-r--r--core/l10n/hu_HU.json2
-rw-r--r--core/l10n/id.js2
-rw-r--r--core/l10n/id.json2
-rw-r--r--core/l10n/is.js2
-rw-r--r--core/l10n/is.json2
-rw-r--r--core/l10n/it.js2
-rw-r--r--core/l10n/it.json2
-rw-r--r--core/l10n/ja.js3
-rw-r--r--core/l10n/ja.json3
-rw-r--r--core/l10n/ko.js2
-rw-r--r--core/l10n/ko.json2
-rw-r--r--core/l10n/nb_NO.js2
-rw-r--r--core/l10n/nb_NO.json2
-rw-r--r--core/l10n/nl.js2
-rw-r--r--core/l10n/nl.json2
-rw-r--r--core/l10n/pl.js2
-rw-r--r--core/l10n/pl.json2
-rw-r--r--core/l10n/pt_BR.js4
-rw-r--r--core/l10n/pt_BR.json4
-rw-r--r--core/l10n/pt_PT.js2
-rw-r--r--core/l10n/pt_PT.json2
-rw-r--r--core/l10n/ru.js2
-rw-r--r--core/l10n/ru.json2
-rw-r--r--core/l10n/sk_SK.js2
-rw-r--r--core/l10n/sk_SK.json2
-rw-r--r--core/l10n/sl.js2
-rw-r--r--core/l10n/sl.json2
-rw-r--r--core/l10n/sq.js2
-rw-r--r--core/l10n/sq.json2
-rw-r--r--core/l10n/sv.js2
-rw-r--r--core/l10n/sv.json2
-rw-r--r--core/l10n/th_TH.js2
-rw-r--r--core/l10n/th_TH.json2
-rw-r--r--core/l10n/tr.js2
-rw-r--r--core/l10n/tr.json2
-rw-r--r--core/l10n/uk.js2
-rw-r--r--core/l10n/uk.json2
-rw-r--r--core/l10n/zh_CN.js2
-rw-r--r--core/l10n/zh_CN.json2
-rw-r--r--core/l10n/zh_TW.js2
-rw-r--r--core/l10n/zh_TW.json2
-rw-r--r--core/routes.php1
-rw-r--r--core/search/js/search.js4
-rw-r--r--core/templates/layout.user.php1
-rw-r--r--lib/composer/composer/autoload_classmap.php1
-rw-r--r--lib/composer/composer/autoload_static.php1
-rw-r--r--lib/l10n/fr.js2
-rw-r--r--lib/l10n/fr.json2
-rw-r--r--lib/l10n/zh_CN.js212
-rw-r--r--lib/l10n/zh_CN.json210
-rw-r--r--lib/private/Console/TimestampFormatter.php2
-rw-r--r--lib/private/Files/Storage/Common.php10
-rw-r--r--lib/private/Files/Storage/DAV.php4
-rw-r--r--lib/private/Log/File.php4
-rw-r--r--lib/private/NavigationManager.php107
-rw-r--r--lib/private/Repair.php2
-rw-r--r--lib/private/Repair/AvatarPermissions.php116
-rw-r--r--lib/private/Server.php10
-rw-r--r--lib/private/Setup.php8
-rw-r--r--lib/private/Template/CSSResourceLocator.php15
-rw-r--r--lib/private/Template/SCSSCacher.php7
-rw-r--r--settings/Controller/UsersController.php15
-rw-r--r--settings/css/settings.css5
-rw-r--r--settings/img/activity-dark.svg4
-rw-r--r--settings/l10n/cs_CZ.js2
-rw-r--r--settings/l10n/cs_CZ.json2
-rw-r--r--settings/l10n/de.js1
-rw-r--r--settings/l10n/de.json1
-rw-r--r--settings/l10n/de_DE.js3
-rw-r--r--settings/l10n/de_DE.json3
-rw-r--r--settings/l10n/el.js3
-rw-r--r--settings/l10n/el.json3
-rw-r--r--settings/l10n/es.js3
-rw-r--r--settings/l10n/es.json3
-rw-r--r--settings/l10n/fr.js5
-rw-r--r--settings/l10n/fr.json5
-rw-r--r--settings/l10n/ja.js2
-rw-r--r--settings/l10n/ja.json2
-rw-r--r--settings/l10n/lv.js150
-rw-r--r--settings/l10n/lv.json150
-rw-r--r--settings/l10n/nl.js3
-rw-r--r--settings/l10n/nl.json3
-rw-r--r--settings/l10n/pt_BR.js1
-rw-r--r--settings/l10n/pt_BR.json1
-rw-r--r--settings/l10n/ru.js3
-rw-r--r--settings/l10n/ru.json3
-rw-r--r--settings/l10n/zh_CN.js305
-rw-r--r--settings/l10n/zh_CN.json305
-rw-r--r--settings/templates/personal.php14
-rw-r--r--tests/Core/Controller/OCSControllerTest.php18
-rw-r--r--tests/Settings/Controller/UsersControllerTest.php209
-rw-r--r--tests/lib/NavigationManagerTest.php66
-rw-r--r--tests/lib/Repair/AvatarPermissionsTest.php189
-rw-r--r--tests/lib/SetupTest.php16
259 files changed, 3189 insertions, 1148 deletions
diff --git a/.drone.yml b/.drone.yml
index 1e35b2a2fe8..5e4f18af9f6 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -413,6 +413,16 @@ pipeline:
when:
matrix:
TESTS: integration-transfer-ownership-features
+ integration-ldap-features:
+ image: nextcloudci/integration-php7.0:integration-php7.0-3
+ commands:
+ - ./occ maintenance:install --admin-pass=admin
+ - ./occ app:enable user_ldap
+ - cd build/integration
+ - ./run.sh ldap_features/ldap-ocs.feature
+ when:
+ matrix:
+ TESTS: integration-ldap-features
nodb-codecov:
image: nextcloudci/php7.0:php7.0-7
commands:
@@ -480,6 +490,7 @@ matrix:
- TESTS: integration-setup-features
- TESTS: integration-filesdrop-features
- TESTS: integration-transfer-ownership-features
+ - TESTS: integration-ldap-features
- TESTS: jsunit
- TESTS: check-autoloader
- TESTS: app-check-code
diff --git a/3rdparty b/3rdparty
-Subproject ae67e91bac6e959fb9666b997c02fb45e63aadf
+Subproject f2d8ba7bfebb769835b637f01eaa602e36cdcca
diff --git a/apps/comments/l10n/nb_NO.js b/apps/comments/l10n/nb_NO.js
index a73cdd768f4..d6ac9a2b7b6 100644
--- a/apps/comments/l10n/nb_NO.js
+++ b/apps/comments/l10n/nb_NO.js
@@ -26,6 +26,8 @@ OC.L10N.register(
"%1$s commented on %2$s" : "%1$s kommenterte %2$s",
"{author} commented on {file}" : "{author} kommenterte på {file}",
"<strong>Comments</strong> for files" : "<strong>Kommentarer</strong> for filer",
+ "A (now) deleted user mentioned you in a comment on “%s”" : "En (now) slettet bruker nevnte deg i en kommentar til “%s”",
+ "A (now) deleted user mentioned you in a comment on “{file}”" : "A (now) slettet bruker nevnte deg i en kommentar til “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s nevnte deg i en kommentar på “%2$s”",
"{user} mentioned you in a comment on “{file}”" : "{user} nevnte deg i en kommentar på “{file}”",
"Type in a new comment..." : "Skriv inn en ny kommentar...",
diff --git a/apps/comments/l10n/nb_NO.json b/apps/comments/l10n/nb_NO.json
index 84f83315f25..293eca39e84 100644
--- a/apps/comments/l10n/nb_NO.json
+++ b/apps/comments/l10n/nb_NO.json
@@ -24,6 +24,8 @@
"%1$s commented on %2$s" : "%1$s kommenterte %2$s",
"{author} commented on {file}" : "{author} kommenterte på {file}",
"<strong>Comments</strong> for files" : "<strong>Kommentarer</strong> for filer",
+ "A (now) deleted user mentioned you in a comment on “%s”" : "En (now) slettet bruker nevnte deg i en kommentar til “%s”",
+ "A (now) deleted user mentioned you in a comment on “{file}”" : "A (now) slettet bruker nevnte deg i en kommentar til “{file}”",
"%1$s mentioned you in a comment on “%2$s”" : "%1$s nevnte deg i en kommentar på “%2$s”",
"{user} mentioned you in a comment on “{file}”" : "{user} nevnte deg i en kommentar på “{file}”",
"Type in a new comment..." : "Skriv inn en ny kommentar...",
diff --git a/apps/dav/lib/CalDAV/CalendarObject.php b/apps/dav/lib/CalDAV/CalendarObject.php
index 6d429fa6bf5..c5dc50650af 100644
--- a/apps/dav/lib/CalDAV/CalendarObject.php
+++ b/apps/dav/lib/CalDAV/CalendarObject.php
@@ -1,8 +1,10 @@
<?php
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
+ * @copyright Copyright (c) 2017, Georg Ehrke
*
* @author Thomas Müller <thomas.mueller@tmit.eu>
+ * @author Georg Ehrke <oc.list@georgehrke.com>
*
* @license AGPL-3.0
*
@@ -42,7 +44,11 @@ class CalendarObject extends \Sabre\CalDAV\CalendarObject {
}
private function isShared() {
- return isset($this->calendarInfo['{http://owncloud.org/ns}owner-principal']);
+ if (!isset($this->calendarInfo['{http://owncloud.org/ns}owner-principal'])) {
+ return false;
+ }
+
+ return $this->calendarInfo['{http://owncloud.org/ns}owner-principal'] !== $this->calendarInfo['principaluri'];
}
/**
diff --git a/apps/dav/tests/unit/CalDAV/CalendarTest.php b/apps/dav/tests/unit/CalDAV/CalendarTest.php
index d0fb2d19243..70a072f04de 100644
--- a/apps/dav/tests/unit/CalDAV/CalendarTest.php
+++ b/apps/dav/tests/unit/CalDAV/CalendarTest.php
@@ -334,17 +334,15 @@ EOD;
->willReturn($calObject1)->with(666, 'event-1');
$calendarInfo = [
+ '{http://owncloud.org/ns}owner-principal' => $isShared ? 'user1' : 'user2',
'principaluri' => 'user2',
'id' => 666,
'uri' => 'cal',
];
-
- if ($isShared) {
- $calendarInfo['{http://owncloud.org/ns}owner-principal'] = 'user1';
-
- }
$c = new Calendar($backend, $calendarInfo, $this->l10n);
+ $this->assertEquals(count($c->getChildren()), $expectedChildren);
+
// test private event
$privateEvent = $c->getChild('event-1');
$calData = $privateEvent->get();
diff --git a/apps/encryption/css/settings-personal.css b/apps/encryption/css/settings-personal.css
index 8eb5bedcb06..4bab1a8d46b 100644
--- a/apps/encryption/css/settings-personal.css
+++ b/apps/encryption/css/settings-personal.css
@@ -8,3 +8,8 @@
, #recoveryEnabledSuccess {
display: none;
}
+
+/* icons for sidebar */
+.nav-icon-basic-encryption-module {
+ background-image: url('../img/app.svg?v=1');
+} \ No newline at end of file
diff --git a/apps/encryption/l10n/de_DE.js b/apps/encryption/l10n/de_DE.js
index ce716d6009c..2a90f6eaf1e 100644
--- a/apps/encryption/l10n/de_DE.js
+++ b/apps/encryption/l10n/de_DE.js
@@ -33,7 +33,7 @@ OC.L10N.register(
"Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Hey,\n\nder Administrator hat die servereitige Verschlüsselung aktiviert. Die Dateien wurden mit dem Kennwort '%s' verschlüsselt.\n\nBitte melden Sie sich im Web-Interface an, gehen Sie in ihre persönlichen Einstellungen. Dort finden Sie die Option 'Basisverschlüsselungsmodul' und aktualisieren Sie dort ihr Verschlüsselungspasswort indem Sie das Passwort in das 'alte Log - in Passwort' und in das 'aktuellen Login - Passwort' Feld eingeben.\n\n",
"The share will expire on %s." : "Die Freigabe wird am %s ablaufen.",
"Cheers!" : "Noch einen schönen Tag!",
- "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Hey,<br><br>der Administrator hat die servereitige Verschlüsselung aktiviert. Die Dateien wurden mit dem Kennwort <strong>%s</strong> verschlüsselt.<br><br>Bitte melden Sie sich im Web-Interface an, gehe Sie in ihre persönlichen Einstellungen. Dort finden Sie die Option 'Basisverschlüsselungsmodul' und aktualisieren Sie dort Ihr Verschlüsselungspasswort indem Sie das Passwort in das 'alte Log - in Passwort' und in das 'aktuellen Login - Passwort' Feld eingeben.<br><br>",
+ "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Hollo,<br><br>der Administrator hat die servereitige Verschlüsselung aktiviert. Die Dateien wurden mit dem Kennwort <strong>%s</strong> verschlüsselt.<br><br>Bitte melden Sie sich im Web-Interface an und gehen Sie in ihre persönlichen Einstellungen. Dort finden Sie die Option 'Basisverschlüsselungsmodul' und aktualisieren Sie dort Ihr Verschlüsselungspasswort indem Sie das Passwort in das 'alte Login-Passwort-' und in das 'aktuelles Login-Passwort' Feld eingeben.<br><br>",
"Default encryption module" : "Standard Verschlüsselungsmodul",
"Encrypt the home storage" : "Benutzerverzeichnis verschlüsslen",
"Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Die Aktivierung dieser Option verschlüsselt alle Dateien die auf dem Hauptspeicher gespeichert sind, ansonsten werden nur Dateien auf dem externen Speicher verschlüsselt",
diff --git a/apps/encryption/l10n/de_DE.json b/apps/encryption/l10n/de_DE.json
index 99f1b1d08eb..00964f8eabf 100644
--- a/apps/encryption/l10n/de_DE.json
+++ b/apps/encryption/l10n/de_DE.json
@@ -31,7 +31,7 @@
"Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Hey,\n\nder Administrator hat die servereitige Verschlüsselung aktiviert. Die Dateien wurden mit dem Kennwort '%s' verschlüsselt.\n\nBitte melden Sie sich im Web-Interface an, gehen Sie in ihre persönlichen Einstellungen. Dort finden Sie die Option 'Basisverschlüsselungsmodul' und aktualisieren Sie dort ihr Verschlüsselungspasswort indem Sie das Passwort in das 'alte Log - in Passwort' und in das 'aktuellen Login - Passwort' Feld eingeben.\n\n",
"The share will expire on %s." : "Die Freigabe wird am %s ablaufen.",
"Cheers!" : "Noch einen schönen Tag!",
- "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Hey,<br><br>der Administrator hat die servereitige Verschlüsselung aktiviert. Die Dateien wurden mit dem Kennwort <strong>%s</strong> verschlüsselt.<br><br>Bitte melden Sie sich im Web-Interface an, gehe Sie in ihre persönlichen Einstellungen. Dort finden Sie die Option 'Basisverschlüsselungsmodul' und aktualisieren Sie dort Ihr Verschlüsselungspasswort indem Sie das Passwort in das 'alte Log - in Passwort' und in das 'aktuellen Login - Passwort' Feld eingeben.<br><br>",
+ "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Hollo,<br><br>der Administrator hat die servereitige Verschlüsselung aktiviert. Die Dateien wurden mit dem Kennwort <strong>%s</strong> verschlüsselt.<br><br>Bitte melden Sie sich im Web-Interface an und gehen Sie in ihre persönlichen Einstellungen. Dort finden Sie die Option 'Basisverschlüsselungsmodul' und aktualisieren Sie dort Ihr Verschlüsselungspasswort indem Sie das Passwort in das 'alte Login-Passwort-' und in das 'aktuelles Login-Passwort' Feld eingeben.<br><br>",
"Default encryption module" : "Standard Verschlüsselungsmodul",
"Encrypt the home storage" : "Benutzerverzeichnis verschlüsslen",
"Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Die Aktivierung dieser Option verschlüsselt alle Dateien die auf dem Hauptspeicher gespeichert sind, ansonsten werden nur Dateien auf dem externen Speicher verschlüsselt",
diff --git a/apps/encryption/l10n/zh_CN.js b/apps/encryption/l10n/zh_CN.js
index e2f9212c8cf..31077e16584 100644
--- a/apps/encryption/l10n/zh_CN.js
+++ b/apps/encryption/l10n/zh_CN.js
@@ -3,6 +3,7 @@ OC.L10N.register(
{
"Missing recovery key password" : "丢失的回复密钥",
"Please repeat the recovery key password" : "请替换恢复密钥",
+ "Repeated recovery key password does not match the provided recovery key password" : "重复的恢复密钥密码与提供的恢复密钥密码不匹配",
"Recovery key successfully enabled" : "恢复密钥成功启用",
"Could not enable recovery key. Please check your recovery key password!" : "不能启用恢复密钥。请检查恢复密钥密码!",
"Recovery key successfully disabled" : "恢复密钥成功禁用",
@@ -13,18 +14,41 @@ OC.L10N.register(
"Please repeat the new recovery password" : "请替换新的恢复密码",
"Password successfully changed." : "密码修改成功。",
"Could not change the password. Maybe the old password was not correct." : "不能修改密码。旧密码可能不正确。",
+ "Recovery Key disabled" : "恢复密钥已禁用",
+ "Recovery Key enabled" : "恢复密钥已启用",
+ "Could not enable the recovery key, please try again or contact your administrator" : "无法启用恢复密钥,请重试或联系您的管理员.",
"Could not update the private key password." : "不能更新私有密钥。",
"The old password was not correct, please try again." : "原始密码错误,请重试。",
"The current log-in password was not correct, please try again." : "当前登录密码不正确,请重试。",
"Private key password successfully updated." : "私钥密码成功更新。",
- "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "无效的私有密钥。请到您的个人配置里去更新私有密钥,来恢复对加密文件的访问。",
- "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "您需要从旧版本 (ownCloud <= 8.0) 迁移您的加密密钥. 请运行 'occ encryption:migrate' 或联系您的管理员.",
+ "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "无效的加密应用程序私钥。请在您的个人设置中更新您的私钥密码,以恢复对加密文件的访问。",
+ "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用程序已启用,但您的密钥未初始化,请注销并再次登录",
+ "Encryption app is enabled and ready" : "加密应用程序已启用并准备就绪",
+ "Bad Signature" : "签名已损坏",
+ "Missing Signature" : "签名已丢失",
+ "one-time password for server-side-encryption" : "用于服务器端加密的一次性密码",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : " 无法解密这个文件(或许这是一个共享文件?),请询问文件所有者重新与您分享这个文件。",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "无法读取此文件,可能这是一个共享文件。请让文件所有者重新共享该文件。",
"The share will expire on %s." : "此分享将在 %s 过期。",
"Cheers!" : "干杯!",
+ "Default encryption module" : "默认加密模块",
+ "Encrypt the home storage" : "加密主目录储存",
+ "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "启用此选项将加密存储在主存储上的所有文件,否则只会加密外部存储上的文件.",
+ "Enable recovery key" : "启用恢复密钥",
+ "Disable recovery key" : "禁用恢复密钥",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "恢复密钥是用于加密文件的额外加密密钥.如果用户忘记了密码,它允许用户恢复文件.",
"Recovery key password" : "恢复密钥密码",
+ "Repeat recovery key password" : "重复恢复密码",
"Change recovery key password:" : "更改恢复密钥密码",
+ "Old recovery key password" : "旧的恢复密码",
+ "New recovery key password" : "新恢复密码",
+ "Repeat new recovery key password" : "重复新的恢复密码",
"Change Password" : "修改密码",
+ "Basic encryption module" : "基础加密模块",
+ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。",
+ "Your private key password no longer matches your log-in password." : "您的私钥不再与您的登录密码匹配.",
+ "Set your old private key password to your current log-in password:" : "将的私钥设置为当前登录密码:",
" If you don't remember your old password you can ask your administrator to recover your files." : "如果您记不住旧的密码,您可以请求管理员恢复您的文件。",
"Old log-in password" : "旧登录密码",
"Current log-in password" : "当前登录密码",
diff --git a/apps/encryption/l10n/zh_CN.json b/apps/encryption/l10n/zh_CN.json
index 8ac6c9eef01..99ffde1b4be 100644
--- a/apps/encryption/l10n/zh_CN.json
+++ b/apps/encryption/l10n/zh_CN.json
@@ -1,6 +1,7 @@
{ "translations": {
"Missing recovery key password" : "丢失的回复密钥",
"Please repeat the recovery key password" : "请替换恢复密钥",
+ "Repeated recovery key password does not match the provided recovery key password" : "重复的恢复密钥密码与提供的恢复密钥密码不匹配",
"Recovery key successfully enabled" : "恢复密钥成功启用",
"Could not enable recovery key. Please check your recovery key password!" : "不能启用恢复密钥。请检查恢复密钥密码!",
"Recovery key successfully disabled" : "恢复密钥成功禁用",
@@ -11,18 +12,41 @@
"Please repeat the new recovery password" : "请替换新的恢复密码",
"Password successfully changed." : "密码修改成功。",
"Could not change the password. Maybe the old password was not correct." : "不能修改密码。旧密码可能不正确。",
+ "Recovery Key disabled" : "恢复密钥已禁用",
+ "Recovery Key enabled" : "恢复密钥已启用",
+ "Could not enable the recovery key, please try again or contact your administrator" : "无法启用恢复密钥,请重试或联系您的管理员.",
"Could not update the private key password." : "不能更新私有密钥。",
"The old password was not correct, please try again." : "原始密码错误,请重试。",
"The current log-in password was not correct, please try again." : "当前登录密码不正确,请重试。",
"Private key password successfully updated." : "私钥密码成功更新。",
- "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "无效的私有密钥。请到您的个人配置里去更新私有密钥,来恢复对加密文件的访问。",
- "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "您需要从旧版本 (ownCloud <= 8.0) 迁移您的加密密钥. 请运行 'occ encryption:migrate' 或联系您的管理员.",
+ "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "无效的加密应用程序私钥。请在您的个人设置中更新您的私钥密码,以恢复对加密文件的访问。",
+ "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用程序已启用,但您的密钥未初始化,请注销并再次登录",
+ "Encryption app is enabled and ready" : "加密应用程序已启用并准备就绪",
+ "Bad Signature" : "签名已损坏",
+ "Missing Signature" : "签名已丢失",
+ "one-time password for server-side-encryption" : "用于服务器端加密的一次性密码",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : " 无法解密这个文件(或许这是一个共享文件?),请询问文件所有者重新与您分享这个文件。",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "无法读取此文件,可能这是一个共享文件。请让文件所有者重新共享该文件。",
"The share will expire on %s." : "此分享将在 %s 过期。",
"Cheers!" : "干杯!",
+ "Default encryption module" : "默认加密模块",
+ "Encrypt the home storage" : "加密主目录储存",
+ "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "启用此选项将加密存储在主存储上的所有文件,否则只会加密外部存储上的文件.",
+ "Enable recovery key" : "启用恢复密钥",
+ "Disable recovery key" : "禁用恢复密钥",
+ "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "恢复密钥是用于加密文件的额外加密密钥.如果用户忘记了密码,它允许用户恢复文件.",
"Recovery key password" : "恢复密钥密码",
+ "Repeat recovery key password" : "重复恢复密码",
"Change recovery key password:" : "更改恢复密钥密码",
+ "Old recovery key password" : "旧的恢复密码",
+ "New recovery key password" : "新恢复密码",
+ "Repeat new recovery key password" : "重复新的恢复密码",
"Change Password" : "修改密码",
+ "Basic encryption module" : "基础加密模块",
+ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。",
+ "Your private key password no longer matches your log-in password." : "您的私钥不再与您的登录密码匹配.",
+ "Set your old private key password to your current log-in password:" : "将的私钥设置为当前登录密码:",
" If you don't remember your old password you can ask your administrator to recover your files." : "如果您记不住旧的密码,您可以请求管理员恢复您的文件。",
"Old log-in password" : "旧登录密码",
"Current log-in password" : "当前登录密码",
diff --git a/apps/federatedfilesharing/l10n/de_DE.js b/apps/federatedfilesharing/l10n/de_DE.js
index ff34a3cddcf..656cb507f24 100644
--- a/apps/federatedfilesharing/l10n/de_DE.js
+++ b/apps/federatedfilesharing/l10n/de_DE.js
@@ -45,7 +45,7 @@ OC.L10N.register(
"Federated Cloud" : "Federated Cloud",
"Your Federated Cloud ID:" : "Ihre Federated-Cloud-ID:",
"Share it:" : "Zum Teilen:",
- "Add to your website" : "Zu Ihrer Website hinzufügen",
+ "Add to your website" : "Zu Ihrer Web-Seite hinzufügen",
"Share with me via Nextcloud" : "Teilen Sie mit mir über Nextcloud",
"HTML Code:" : "HTML-Code:",
"Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Die Freigabe von %s ist fehlgeschlagen, da %s nicht gefunden wurde. Möglicherweise ist der Server nicht erreichbar.",
diff --git a/apps/federatedfilesharing/l10n/de_DE.json b/apps/federatedfilesharing/l10n/de_DE.json
index 9531d53b801..3c4df1034ed 100644
--- a/apps/federatedfilesharing/l10n/de_DE.json
+++ b/apps/federatedfilesharing/l10n/de_DE.json
@@ -43,7 +43,7 @@
"Federated Cloud" : "Federated Cloud",
"Your Federated Cloud ID:" : "Ihre Federated-Cloud-ID:",
"Share it:" : "Zum Teilen:",
- "Add to your website" : "Zu Ihrer Website hinzufügen",
+ "Add to your website" : "Zu Ihrer Web-Seite hinzufügen",
"Share with me via Nextcloud" : "Teilen Sie mit mir über Nextcloud",
"HTML Code:" : "HTML-Code:",
"Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Die Freigabe von %s ist fehlgeschlagen, da %s nicht gefunden wurde. Möglicherweise ist der Server nicht erreichbar.",
diff --git a/apps/federation/l10n/id.js b/apps/federation/l10n/id.js
index 801cd52ae12..6184b789aaf 100644
--- a/apps/federation/l10n/id.js
+++ b/apps/federation/l10n/id.js
@@ -8,12 +8,12 @@ OC.L10N.register(
"Federation" : "Federasi",
"Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Federasi memungkinkan Anda untuk terhubung dengan server lainnya yang terpercaya untuk menukar direktori pengguna. Contohnya, ini akan digunakan untuk pengisian-otomatis untuk pengguna eksternal untuk pembagian terfederasi.",
"Add server automatically once a federated share was created successfully" : "Tambah server secara otomatis saat pembagian terfederasi dibuat",
+ "Trusted servers" : "Server terpercaya",
+ "+ Add trusted server" : "+ Tambah server terpercaya",
+ "Trusted server" : "Server terpercaya",
+ "Add" : "Tambah",
"Trusted Servers" : "Server Terpercaya",
"+ Add Nextcloud server" : "+ Tambahkan server Nextcloud",
- "Nextcloud Server" : "Server Nextcloud",
- "Server added to the list of trusted Nextclouds" : "Server telah ditambahkan pada daftar server Nextcloud terpercaya",
- "No Nextcloud server found" : "Tidak ada server Nextcloud ditemukan",
- "Nextcloud Federation allows you to connect with other trusted Nextclouds to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Federasi Nextcloud memungkinkan Anda untuk terhubung dengan server Nextcloud lainnya yang terpercaya untuk menukar direktori pengguna. Contohnya, ini akan digunakan untuk pengisian-otomatis untuk pengguna eksternal untuk pembagian terfederasi.",
- "Trusted Nextcloud Servers" : "Server Nextcloud Terpercaya"
+ "Nextcloud Server" : "Server Nextcloud"
},
"nplurals=1; plural=0;");
diff --git a/apps/federation/l10n/id.json b/apps/federation/l10n/id.json
index 2ca5efeaf2a..1ca80846c85 100644
--- a/apps/federation/l10n/id.json
+++ b/apps/federation/l10n/id.json
@@ -6,12 +6,12 @@
"Federation" : "Federasi",
"Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Federasi memungkinkan Anda untuk terhubung dengan server lainnya yang terpercaya untuk menukar direktori pengguna. Contohnya, ini akan digunakan untuk pengisian-otomatis untuk pengguna eksternal untuk pembagian terfederasi.",
"Add server automatically once a federated share was created successfully" : "Tambah server secara otomatis saat pembagian terfederasi dibuat",
+ "Trusted servers" : "Server terpercaya",
+ "+ Add trusted server" : "+ Tambah server terpercaya",
+ "Trusted server" : "Server terpercaya",
+ "Add" : "Tambah",
"Trusted Servers" : "Server Terpercaya",
"+ Add Nextcloud server" : "+ Tambahkan server Nextcloud",
- "Nextcloud Server" : "Server Nextcloud",
- "Server added to the list of trusted Nextclouds" : "Server telah ditambahkan pada daftar server Nextcloud terpercaya",
- "No Nextcloud server found" : "Tidak ada server Nextcloud ditemukan",
- "Nextcloud Federation allows you to connect with other trusted Nextclouds to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Federasi Nextcloud memungkinkan Anda untuk terhubung dengan server Nextcloud lainnya yang terpercaya untuk menukar direktori pengguna. Contohnya, ini akan digunakan untuk pengisian-otomatis untuk pengguna eksternal untuk pembagian terfederasi.",
- "Trusted Nextcloud Servers" : "Server Nextcloud Terpercaya"
+ "Nextcloud Server" : "Server Nextcloud"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/federation/l10n/lv.js b/apps/federation/l10n/lv.js
new file mode 100644
index 00000000000..8ceb8c09f16
--- /dev/null
+++ b/apps/federation/l10n/lv.js
@@ -0,0 +1,16 @@
+OC.L10N.register(
+ "federation",
+ {
+ "Added to the list of trusted servers" : "Sarakstam pievieno uzticamo serveri",
+ "Server is already in the list of trusted servers." : "Serveris jau ir uzticamo serveru sarakstā .",
+ "No server to federate with found" : "Nav atrasts neviens serveris",
+ "Federation" : "Federācija",
+ "Trusted servers" : "Uzticami serveri",
+ "+ Add trusted server" : "+ pievietot uzticamiem serveriem",
+ "Trusted server" : "Uzticams serveris",
+ "Add" : "Pievienot",
+ "Trusted Servers" : "Uzticami serveri",
+ "+ Add Nextcloud server" : "+ pievienot Nextcloud serveri",
+ "Nextcloud Server" : "Nextcloud Serveris"
+},
+"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/federation/l10n/lv.json b/apps/federation/l10n/lv.json
new file mode 100644
index 00000000000..14dbab413d5
--- /dev/null
+++ b/apps/federation/l10n/lv.json
@@ -0,0 +1,14 @@
+{ "translations": {
+ "Added to the list of trusted servers" : "Sarakstam pievieno uzticamo serveri",
+ "Server is already in the list of trusted servers." : "Serveris jau ir uzticamo serveru sarakstā .",
+ "No server to federate with found" : "Nav atrasts neviens serveris",
+ "Federation" : "Federācija",
+ "Trusted servers" : "Uzticami serveri",
+ "+ Add trusted server" : "+ pievietot uzticamiem serveriem",
+ "Trusted server" : "Uzticams serveris",
+ "Add" : "Pievienot",
+ "Trusted Servers" : "Uzticami serveri",
+ "+ Add Nextcloud server" : "+ pievienot Nextcloud serveri",
+ "Nextcloud Server" : "Nextcloud Serveris"
+},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"
+} \ No newline at end of file
diff --git a/apps/files/appinfo/app.php b/apps/files/appinfo/app.php
index a194bb5e795..63acda3a706 100644
--- a/apps/files/appinfo/app.php
+++ b/apps/files/appinfo/app.php
@@ -26,20 +26,10 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
+// required for translation purpose
+// t('Files')
$l = \OC::$server->getL10N('files');
-\OC::$server->getNavigationManager()->add(function () {
- $urlGenerator = \OC::$server->getURLGenerator();
- $l = \OC::$server->getL10N('files');
- return [
- 'id' => 'files_index',
- 'order' => 0,
- 'href' => $urlGenerator->linkToRoute('files.view.index'),
- 'icon' => $urlGenerator->imagePath('core', 'places/files.svg'),
- 'name' => $l->t('Files'),
- ];
-});
-
\OC::$server->getSearch()->registerProvider('OC\Search\Provider\File', array('apps' => array('files')));
$templateManager = \OC_Helper::getFileTemplateManager();
diff --git a/apps/files/appinfo/info.xml b/apps/files/appinfo/info.xml
index a25c043f332..2bb4d98c158 100644
--- a/apps/files/appinfo/info.xml
+++ b/apps/files/appinfo/info.xml
@@ -53,4 +53,11 @@
<command>OCA\Files\Command\DeleteOrphanedFiles</command>
<command>OCA\Files\Command\TransferOwnership</command>
</commands>
+
+ <navigation>
+ <name>Files</name>
+ <route>files.view.index</route>
+ <order>0</order>
+ </navigation>
+
</info>
diff --git a/apps/files/img/app.svg b/apps/files/img/app.svg
new file mode 100644
index 00000000000..130f59eab23
--- /dev/null
+++ b/apps/files/img/app.svg
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" height="32" width="32" version="1.1" viewBox="0 0 32 32">
+ <g fill-rule="evenodd" transform="matrix(1.7333 0 0 1.7333 -344.09 -1727.8)" fill="#fff">
+ <path d="m200.2 999.72c-0.28913 0-0.53125 0.2421-0.53125 0.5312v12.784c0 0.2985 0.23264 0.5312 0.53125 0.5312h15.091c0.2986 0 0.53124-0.2327 0.53124-0.5312l0.0004-10.474c0-0.2889-0.24211-0.5338-0.53124-0.5338l-7.5457 0.0005-2.3076-2.3078z" fill-rule="evenodd" fill="#fff"/>
+ </g>
+</svg>
diff --git a/apps/files/l10n/bg_BG.js b/apps/files/l10n/bg_BG.js
index 28eb4357081..4dd4d2b067e 100644
--- a/apps/files/l10n/bg_BG.js
+++ b/apps/files/l10n/bg_BG.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Storage is temporarily not available" : "Временно хранилището не е налично.",
"Storage invalid" : "Невалидно хранилище.",
"Unknown error" : "Неизвестна грешка",
- "Files" : "Файлове",
"All files" : "Всички файлове",
"Recent" : "Скорошен",
"File could not be found" : "Файлът не може да бъде открит",
@@ -28,6 +27,7 @@ OC.L10N.register(
"Delete" : "Изтриване",
"Disconnect storage" : "Извади хранилището",
"Unshare" : "Прекратяване на споделяне",
+ "Files" : "Файлове",
"Details" : "Детайли",
"Select" : "Избери",
"Pending" : "Чакащо",
diff --git a/apps/files/l10n/bg_BG.json b/apps/files/l10n/bg_BG.json
index befe99aee79..6c439e2056f 100644
--- a/apps/files/l10n/bg_BG.json
+++ b/apps/files/l10n/bg_BG.json
@@ -2,7 +2,6 @@
"Storage is temporarily not available" : "Временно хранилището не е налично.",
"Storage invalid" : "Невалидно хранилище.",
"Unknown error" : "Неизвестна грешка",
- "Files" : "Файлове",
"All files" : "Всички файлове",
"Recent" : "Скорошен",
"File could not be found" : "Файлът не може да бъде открит",
@@ -26,6 +25,7 @@
"Delete" : "Изтриване",
"Disconnect storage" : "Извади хранилището",
"Unshare" : "Прекратяване на споделяне",
+ "Files" : "Файлове",
"Details" : "Детайли",
"Select" : "Избери",
"Pending" : "Чакащо",
diff --git a/apps/files/l10n/cs_CZ.js b/apps/files/l10n/cs_CZ.js
index 0acc6a31af2..e9970c49788 100644
--- a/apps/files/l10n/cs_CZ.js
+++ b/apps/files/l10n/cs_CZ.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Storage is temporarily not available" : "Úložiště je dočasně nedostupné",
"Storage invalid" : "Neplatné úložiště",
"Unknown error" : "Neznámá chyba",
- "Files" : "Soubory",
"All files" : "Všechny soubory",
"Recent" : "Nedávné",
"File could not be found" : "Soubor nelze nalézt",
@@ -29,6 +28,7 @@ OC.L10N.register(
"Disconnect storage" : "Odpojit úložiště",
"Unshare" : "Zrušit sdílení",
"Could not load info for file \"{file}\"" : "Nepodařilo se načíst informace pro soubor {file}",
+ "Files" : "Soubory",
"Details" : "Podrobnosti",
"Select" : "Vybrat",
"Pending" : "Nevyřízené",
diff --git a/apps/files/l10n/cs_CZ.json b/apps/files/l10n/cs_CZ.json
index 49d2855cc2e..27653c0d84c 100644
--- a/apps/files/l10n/cs_CZ.json
+++ b/apps/files/l10n/cs_CZ.json
@@ -2,7 +2,6 @@
"Storage is temporarily not available" : "Úložiště je dočasně nedostupné",
"Storage invalid" : "Neplatné úložiště",
"Unknown error" : "Neznámá chyba",
- "Files" : "Soubory",
"All files" : "Všechny soubory",
"Recent" : "Nedávné",
"File could not be found" : "Soubor nelze nalézt",
@@ -27,6 +26,7 @@
"Disconnect storage" : "Odpojit úložiště",
"Unshare" : "Zrušit sdílení",
"Could not load info for file \"{file}\"" : "Nepodařilo se načíst informace pro soubor {file}",
+ "Files" : "Soubory",
"Details" : "Podrobnosti",
"Select" : "Vybrat",
"Pending" : "Nevyřízené",
diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js
index 0127235b605..257e9d7844d 100644
--- a/apps/files/l10n/de.js
+++ b/apps/files/l10n/de.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Storage is temporarily not available" : "Speicher ist vorübergehend nicht verfügbar",
"Storage invalid" : "Speicher ungültig",
"Unknown error" : "Unbekannter Fehler",
- "Files" : "Dateien",
"All files" : "Alle Dateien",
"Recent" : "Aktuelle",
"File could not be found" : "Datei konnte nicht gefunden werden",
@@ -29,6 +28,7 @@ OC.L10N.register(
"Disconnect storage" : "Speicher trennen",
"Unshare" : "Freigabe aufheben",
"Could not load info for file \"{file}\"" : "Die Informationen zur Datei \"{file}\" konnten nicht geladen werden",
+ "Files" : "Dateien",
"Details" : "Details",
"Select" : "Auswählen",
"Pending" : "Ausstehend",
diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json
index d64a9eb0850..29809c70bd4 100644
--- a/apps/files/l10n/de.json
+++ b/apps/files/l10n/de.json
@@ -2,7 +2,6 @@
"Storage is temporarily not available" : "Speicher ist vorübergehend nicht verfügbar",
"Storage invalid" : "Speicher ungültig",
"Unknown error" : "Unbekannter Fehler",
- "Files" : "Dateien",
"All files" : "Alle Dateien",
"Recent" : "Aktuelle",
"File could not be found" : "Datei konnte nicht gefunden werden",
@@ -27,6 +26,7 @@
"Disconnect storage" : "Speicher trennen",
"Unshare" : "Freigabe aufheben",
"Could not load info for file \"{file}\"" : "Die Informationen zur Datei \"{file}\" konnten nicht geladen werden",
+ "Files" : "Dateien",
"Details" : "Details",
"Select" : "Auswählen",
"Pending" : "Ausstehend",
diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js
index 17961360c98..8b0521a4f8c 100644
--- a/apps/files/l10n/de_DE.js
+++ b/apps/files/l10n/de_DE.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Storage is temporarily not available" : "Speicher ist vorübergehend nicht verfügbar",
"Storage invalid" : "Speicher ungültig",
"Unknown error" : "Unbekannter Fehler",
- "Files" : "Dateien",
"All files" : "Alle Dateien",
"Recent" : "Aktuelle",
"File could not be found" : "Datei konnte nicht gefunden werden",
@@ -29,6 +28,7 @@ OC.L10N.register(
"Disconnect storage" : "Speicher trennen",
"Unshare" : "Freigabe aufheben",
"Could not load info for file \"{file}\"" : "Die Informationen zur Datei \"{file}\" konnten nicht geladen werden",
+ "Files" : "Dateien",
"Details" : "Details",
"Select" : "Auswählen",
"Pending" : "Ausstehend",
diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json
index 926434c523c..5a54978e41b 100644
--- a/apps/files/l10n/de_DE.json
+++ b/apps/files/l10n/de_DE.json
@@ -2,7 +2,6 @@
"Storage is temporarily not available" : "Speicher ist vorübergehend nicht verfügbar",
"Storage invalid" : "Speicher ungültig",
"Unknown error" : "Unbekannter Fehler",
- "Files" : "Dateien",
"All files" : "Alle Dateien",
"Recent" : "Aktuelle",
"File could not be found" : "Datei konnte nicht gefunden werden",
@@ -27,6 +26,7 @@
"Disconnect storage" : "Speicher trennen",
"Unshare" : "Freigabe aufheben",
"Could not load info for file \"{file}\"" : "Die Informationen zur Datei \"{file}\" konnten nicht geladen werden",
+ "Files" : "Dateien",
"Details" : "Details",
"Select" : "Auswählen",
"Pending" : "Ausstehend",
diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js
index fbd4dd200f1..7feab942842 100644
--- a/apps/files/l10n/en_GB.js
+++ b/apps/files/l10n/en_GB.js
@@ -3,7 +3,6 @@ OC.L10N.register(
{
"Storage invalid" : "Storage invalid",
"Unknown error" : "Unknown error",
- "Files" : "Files",
"All files" : "All files",
"File could not be found" : "File could not be found",
"Home" : "Home",
@@ -22,6 +21,7 @@ OC.L10N.register(
"Delete" : "Delete",
"Disconnect storage" : "Disconnect storage",
"Unshare" : "Unshare",
+ "Files" : "Files",
"Details" : "Details",
"Select" : "Select",
"Pending" : "Pending",
diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json
index 783867beb4f..1187441344f 100644
--- a/apps/files/l10n/en_GB.json
+++ b/apps/files/l10n/en_GB.json
@@ -1,7 +1,6 @@
{ "translations": {
"Storage invalid" : "Storage invalid",
"Unknown error" : "Unknown error",
- "Files" : "Files",
"All files" : "All files",
"File could not be found" : "File could not be found",
"Home" : "Home",
@@ -20,6 +19,7 @@
"Delete" : "Delete",
"Disconnect storage" : "Disconnect storage",
"Unshare" : "Unshare",
+ "Files" : "Files",
"Details" : "Details",
"Select" : "Select",
"Pending" : "Pending",
diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js
index 756d3f1c0fc..db230990a5e 100644
--- a/apps/files/l10n/es.js
+++ b/apps/files/l10n/es.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Storage is temporarily not available" : "El almacenamiento no esta disponible temporalmente",
"Storage invalid" : "Almacenamiento inválido",
"Unknown error" : "Error desconocido",
- "Files" : "Archivos",
"All files" : "Todos los archivos",
"Recent" : "Reciente",
"File could not be found" : "El archivo no se ha encontrado",
@@ -29,6 +28,7 @@ OC.L10N.register(
"Disconnect storage" : "Desconectar almacenamiento",
"Unshare" : "Dejar de compartir",
"Could not load info for file \"{file}\"" : "No se pudo cargar información para el archivo \"{file}\"",
+ "Files" : "Archivos",
"Details" : "Detalles",
"Select" : "Seleccionar",
"Pending" : "Pendiente",
diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json
index 69a24737364..a2099073e0b 100644
--- a/apps/files/l10n/es.json
+++ b/apps/files/l10n/es.json
@@ -2,7 +2,6 @@
"Storage is temporarily not available" : "El almacenamiento no esta disponible temporalmente",
"Storage invalid" : "Almacenamiento inválido",
"Unknown error" : "Error desconocido",
- "Files" : "Archivos",
"All files" : "Todos los archivos",
"Recent" : "Reciente",
"File could not be found" : "El archivo no se ha encontrado",
@@ -27,6 +26,7 @@
"Disconnect storage" : "Desconectar almacenamiento",
"Unshare" : "Dejar de compartir",
"Could not load info for file \"{file}\"" : "No se pudo cargar información para el archivo \"{file}\"",
+ "Files" : "Archivos",
"Details" : "Detalles",
"Select" : "Seleccionar",
"Pending" : "Pendiente",
diff --git a/apps/files/l10n/fi_FI.js b/apps/files/l10n/fi_FI.js
index 0fda6c41327..e5deef567a8 100644
--- a/apps/files/l10n/fi_FI.js
+++ b/apps/files/l10n/fi_FI.js
@@ -3,7 +3,6 @@ OC.L10N.register(
{
"Storage invalid" : "Virheellinen tallennustila",
"Unknown error" : "Tuntematon virhe",
- "Files" : "Tiedostot",
"All files" : "Kaikki tiedostot",
"Recent" : "Viimeaikaiset",
"File could not be found" : "TIedostoa ei löytynyt",
@@ -23,6 +22,7 @@ OC.L10N.register(
"Delete" : "Poista",
"Disconnect storage" : "Katkaise yhteys tallennustilaan",
"Unshare" : "Peru jakaminen",
+ "Files" : "Tiedostot",
"Details" : "Tiedot",
"Select" : "Valitse",
"Pending" : "Odottaa",
diff --git a/apps/files/l10n/fi_FI.json b/apps/files/l10n/fi_FI.json
index bdd162d4127..6b60b94f6b4 100644
--- a/apps/files/l10n/fi_FI.json
+++ b/apps/files/l10n/fi_FI.json
@@ -1,7 +1,6 @@
{ "translations": {
"Storage invalid" : "Virheellinen tallennustila",
"Unknown error" : "Tuntematon virhe",
- "Files" : "Tiedostot",
"All files" : "Kaikki tiedostot",
"Recent" : "Viimeaikaiset",
"File could not be found" : "TIedostoa ei löytynyt",
@@ -21,6 +20,7 @@
"Delete" : "Poista",
"Disconnect storage" : "Katkaise yhteys tallennustilaan",
"Unshare" : "Peru jakaminen",
+ "Files" : "Tiedostot",
"Details" : "Tiedot",
"Select" : "Valitse",
"Pending" : "Odottaa",
diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js
index 978cde00fec..bb040d3ae45 100644
--- a/apps/files/l10n/fr.js
+++ b/apps/files/l10n/fr.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Storage is temporarily not available" : "Le support de stockage est temporairement indisponible",
"Storage invalid" : "Support de stockage invalide",
"Unknown error" : "Erreur inconnue ",
- "Files" : "Fichiers",
"All files" : "Tous les fichiers",
"Recent" : "Récent",
"File could not be found" : "Fichier introuvable",
@@ -29,6 +28,7 @@ OC.L10N.register(
"Disconnect storage" : "Déconnecter ce support de stockage",
"Unshare" : "Ne plus partager",
"Could not load info for file \"{file}\"" : "Impossible de charger les informations du fichier \"{file}\"",
+ "Files" : "Fichiers",
"Details" : "Détails",
"Select" : "Sélectionner",
"Pending" : "En attente",
@@ -59,11 +59,11 @@ OC.L10N.register(
"\"{name}\" is an invalid file name." : "\"{name}\" n'est pas un nom de fichier valide.",
"File name cannot be empty." : "Le nom de fichier ne peut être vide.",
"Storage of {owner} is full, files can not be updated or synced anymore!" : "L'espace de stockage de {owner} est plein. Les fichiers ne peuvent plus être mis à jour ni synchronisés !",
- "Your storage is full, files can not be updated or synced anymore!" : "Votre espace de stockage est plein. Les fichiers ne peuvent plus être ajoutés ni synchronisés !",
+ "Your storage is full, files can not be updated or synced anymore!" : "Votre espace de stockage est plein. Les fichiers ne peuvent plus être mis à jour ni synchronisés !",
"Storage of {owner} is almost full ({usedSpacePercent}%)" : "L'espace de stockage de {owner} est presque plein ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Votre espace de stockage est presque plein ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["correspond à '{filter}'","correspondent à '{filter}'"],
- "View in folder" : "Voir dans le dossier",
+ "View in folder" : "Afficher dans le dossier",
"Path" : "Chemin",
"_%n byte_::_%n bytes_" : ["%n octet","%n octets"],
"Favorited" : "Marqué comme favori",
@@ -71,13 +71,13 @@ OC.L10N.register(
"Copy local link" : "Copier le dossier local",
"Folder" : "Dossier",
"New folder" : "Nouveau dossier",
- "Upload" : "Chargement",
+ "Upload" : "Téléverser",
"An error occurred while trying to update the tags" : "Une erreur est survenue lors de la mise à jour des étiquettes",
"Added to favorites" : "Ajouté aux favoris",
"Removed from favorites" : "Retiré des favoris",
"You added {file} to your favorites" : "Vous avez ajouté {file} à vos favoris",
"You removed {file} from your favorites" : "Vous avez retiré {file} de vos favoris",
- "File changes" : "Modifications du fichier",
+ "File changes" : "Modifications de fichiers",
"Created by {user}" : "Créé par {user}",
"Changed by {user}" : "Modifié par {user}",
"Deleted by {user}" : "Supprimé par {user}",
@@ -107,9 +107,9 @@ OC.L10N.register(
"File handling" : "Gestion de fichiers",
"Maximum upload size" : "Taille max. d'envoi",
"max. possible: " : "Max. possible :",
- "Save" : "Sauvegarder",
+ "Save" : "Enregistrer",
"With PHP-FPM it might take 5 minutes for changes to be applied." : "Avec PHP-FPM il peut se passer jusqu'à 5 minutes pour que les changements soient appliqués.",
- "Missing permissions to edit from here." : "Manque de permissions pour éditer à partir d'ici.",
+ "Missing permissions to edit from here." : "Permissions insuffisantes pour modifier à partir d'ici.",
"Settings" : "Paramètres",
"Show hidden files" : "Afficher les fichiers cachés",
"WebDAV" : "WebDAV",
@@ -129,7 +129,7 @@ OC.L10N.register(
"Deleted files" : "Fichiers supprimés",
"Text file" : "Fichier texte",
"New text file.txt" : "Nouveau fichier texte.txt",
- "Storage not available" : "Support de stockage non disponible",
+ "Storage not available" : "Espace de stockage non disponible",
"Unable to set upload directory." : "Impossible de définir le dossier de destination.",
"Invalid Token" : "Jeton non valide",
"No file was uploaded. Unknown error" : "Aucun fichier n'a été envoyé. Erreur inconnue",
@@ -140,10 +140,10 @@ OC.L10N.register(
"No file was uploaded" : "Pas de fichier envoyé.",
"Missing a temporary folder" : "Absence de dossier temporaire",
"Failed to write to disk" : "Erreur d'écriture sur le disque",
- "Not enough storage available" : "Trop peu d'espace de stockage disponible",
+ "Not enough storage available" : "Espace disponible insuffisant",
"The target folder has been moved or deleted." : "Le dossier cible a été déplacé ou supprimé.",
- "Upload failed. Could not find uploaded file" : "L'envoi a échoué. Impossible de trouver le fichier envoyé.",
- "Upload failed. Could not get file info." : "L'envoi a échoué. Impossible d'obtenir les informations du fichier.",
+ "Upload failed. Could not find uploaded file" : "Le téléversement a échoué. Impossible de trouver le fichier envoyé.",
+ "Upload failed. Could not get file info." : "Le téléversement a échoué. Impossible d'obtenir les informations du fichier.",
"Invalid directory." : "Dossier non valide.",
"Total file size {size1} exceeds upload limit {size2}" : "La taille totale du fichier {size1} excède la taille maximale d'envoi {size2}",
"Error uploading file \"{fileName}\": {message}" : "Erreur lors de l'envoi du fichier \"{fileName}\" : {message}",
@@ -155,10 +155,10 @@ OC.L10N.register(
"{seconds} second{plural_s} left" : "{seconds} seconde{plural_s} restante{plural_s}",
"{seconds}s" : "{seconds}s",
"Any moment now..." : "D'ici quelques instants…",
- "Soon..." : "Bientôt...",
+ "Soon..." : "Bientôt…",
"File upload is in progress. Leaving the page now will cancel the upload." : "L'envoi du fichier est en cours. Quitter cette page maintenant annulera l'envoi du fichier.",
"No entries in this folder match '{filter}'" : "Aucune entrée de ce dossier ne correspond à '{filter}'",
- "Local link" : "Dossier local",
+ "Local link" : "Lien local",
"{newname} already exists" : "{newname} existe déjà",
"A file or folder has been <strong>changed</strong>" : "Un fichier ou un répertoire a été <strong>modifié</strong>",
"A file or folder has been <strong>deleted</strong>" : "Un fichier ou un répertoire a été <strong>supprimé</strong>",
diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json
index a600879c189..c38524fbe31 100644
--- a/apps/files/l10n/fr.json
+++ b/apps/files/l10n/fr.json
@@ -2,7 +2,6 @@
"Storage is temporarily not available" : "Le support de stockage est temporairement indisponible",
"Storage invalid" : "Support de stockage invalide",
"Unknown error" : "Erreur inconnue ",
- "Files" : "Fichiers",
"All files" : "Tous les fichiers",
"Recent" : "Récent",
"File could not be found" : "Fichier introuvable",
@@ -27,6 +26,7 @@
"Disconnect storage" : "Déconnecter ce support de stockage",
"Unshare" : "Ne plus partager",
"Could not load info for file \"{file}\"" : "Impossible de charger les informations du fichier \"{file}\"",
+ "Files" : "Fichiers",
"Details" : "Détails",
"Select" : "Sélectionner",
"Pending" : "En attente",
@@ -57,11 +57,11 @@
"\"{name}\" is an invalid file name." : "\"{name}\" n'est pas un nom de fichier valide.",
"File name cannot be empty." : "Le nom de fichier ne peut être vide.",
"Storage of {owner} is full, files can not be updated or synced anymore!" : "L'espace de stockage de {owner} est plein. Les fichiers ne peuvent plus être mis à jour ni synchronisés !",
- "Your storage is full, files can not be updated or synced anymore!" : "Votre espace de stockage est plein. Les fichiers ne peuvent plus être ajoutés ni synchronisés !",
+ "Your storage is full, files can not be updated or synced anymore!" : "Votre espace de stockage est plein. Les fichiers ne peuvent plus être mis à jour ni synchronisés !",
"Storage of {owner} is almost full ({usedSpacePercent}%)" : "L'espace de stockage de {owner} est presque plein ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Votre espace de stockage est presque plein ({usedSpacePercent}%)",
"_matches '{filter}'_::_match '{filter}'_" : ["correspond à '{filter}'","correspondent à '{filter}'"],
- "View in folder" : "Voir dans le dossier",
+ "View in folder" : "Afficher dans le dossier",
"Path" : "Chemin",
"_%n byte_::_%n bytes_" : ["%n octet","%n octets"],
"Favorited" : "Marqué comme favori",
@@ -69,13 +69,13 @@
"Copy local link" : "Copier le dossier local",
"Folder" : "Dossier",
"New folder" : "Nouveau dossier",
- "Upload" : "Chargement",
+ "Upload" : "Téléverser",
"An error occurred while trying to update the tags" : "Une erreur est survenue lors de la mise à jour des étiquettes",
"Added to favorites" : "Ajouté aux favoris",
"Removed from favorites" : "Retiré des favoris",
"You added {file} to your favorites" : "Vous avez ajouté {file} à vos favoris",
"You removed {file} from your favorites" : "Vous avez retiré {file} de vos favoris",
- "File changes" : "Modifications du fichier",
+ "File changes" : "Modifications de fichiers",
"Created by {user}" : "Créé par {user}",
"Changed by {user}" : "Modifié par {user}",
"Deleted by {user}" : "Supprimé par {user}",
@@ -105,9 +105,9 @@
"File handling" : "Gestion de fichiers",
"Maximum upload size" : "Taille max. d'envoi",
"max. possible: " : "Max. possible :",
- "Save" : "Sauvegarder",
+ "Save" : "Enregistrer",
"With PHP-FPM it might take 5 minutes for changes to be applied." : "Avec PHP-FPM il peut se passer jusqu'à 5 minutes pour que les changements soient appliqués.",
- "Missing permissions to edit from here." : "Manque de permissions pour éditer à partir d'ici.",
+ "Missing permissions to edit from here." : "Permissions insuffisantes pour modifier à partir d'ici.",
"Settings" : "Paramètres",
"Show hidden files" : "Afficher les fichiers cachés",
"WebDAV" : "WebDAV",
@@ -127,7 +127,7 @@
"Deleted files" : "Fichiers supprimés",
"Text file" : "Fichier texte",
"New text file.txt" : "Nouveau fichier texte.txt",
- "Storage not available" : "Support de stockage non disponible",
+ "Storage not available" : "Espace de stockage non disponible",
"Unable to set upload directory." : "Impossible de définir le dossier de destination.",
"Invalid Token" : "Jeton non valide",
"No file was uploaded. Unknown error" : "Aucun fichier n'a été envoyé. Erreur inconnue",
@@ -138,10 +138,10 @@
"No file was uploaded" : "Pas de fichier envoyé.",
"Missing a temporary folder" : "Absence de dossier temporaire",
"Failed to write to disk" : "Erreur d'écriture sur le disque",
- "Not enough storage available" : "Trop peu d'espace de stockage disponible",
+ "Not enough storage available" : "Espace disponible insuffisant",
"The target folder has been moved or deleted." : "Le dossier cible a été déplacé ou supprimé.",
- "Upload failed. Could not find uploaded file" : "L'envoi a échoué. Impossible de trouver le fichier envoyé.",
- "Upload failed. Could not get file info." : "L'envoi a échoué. Impossible d'obtenir les informations du fichier.",
+ "Upload failed. Could not find uploaded file" : "Le téléversement a échoué. Impossible de trouver le fichier envoyé.",
+ "Upload failed. Could not get file info." : "Le téléversement a échoué. Impossible d'obtenir les informations du fichier.",
"Invalid directory." : "Dossier non valide.",
"Total file size {size1} exceeds upload limit {size2}" : "La taille totale du fichier {size1} excède la taille maximale d'envoi {size2}",
"Error uploading file \"{fileName}\": {message}" : "Erreur lors de l'envoi du fichier \"{fileName}\" : {message}",
@@ -153,10 +153,10 @@
"{seconds} second{plural_s} left" : "{seconds} seconde{plural_s} restante{plural_s}",
"{seconds}s" : "{seconds}s",
"Any moment now..." : "D'ici quelques instants…",
- "Soon..." : "Bientôt...",
+ "Soon..." : "Bientôt…",
"File upload is in progress. Leaving the page now will cancel the upload." : "L'envoi du fichier est en cours. Quitter cette page maintenant annulera l'envoi du fichier.",
"No entries in this folder match '{filter}'" : "Aucune entrée de ce dossier ne correspond à '{filter}'",
- "Local link" : "Dossier local",
+ "Local link" : "Lien local",
"{newname} already exists" : "{newname} existe déjà",
"A file or folder has been <strong>changed</strong>" : "Un fichier ou un répertoire a été <strong>modifié</strong>",
"A file or folder has been <strong>deleted</strong>" : "Un fichier ou un répertoire a été <strong>supprimé</strong>",
diff --git a/apps/files/l10n/hu_HU.js b/apps/files/l10n/hu_HU.js
index 13504df625a..a238f7ec83e 100644
--- a/apps/files/l10n/hu_HU.js
+++ b/apps/files/l10n/hu_HU.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Storage is temporarily not available" : "A tároló átmenetileg nem érhető el",
"Storage invalid" : "A tároló érvénytelen",
"Unknown error" : "Ismeretlen hiba",
- "Files" : "Fájlok",
"All files" : "Az összes fájl",
"Recent" : "Legutóbbi",
"File could not be found" : "Fájl nem található",
@@ -28,6 +27,8 @@ OC.L10N.register(
"Delete" : "Törlés",
"Disconnect storage" : "Tároló leválasztása",
"Unshare" : "A megosztás visszavonása",
+ "Could not load info for file \"{file}\"" : "Nem sikerült betölteni az információs fájl ehhez: \"{file}\"",
+ "Files" : "Fájlok",
"Details" : "Részletek",
"Select" : "Kiválaszt",
"Pending" : "Folyamatban",
diff --git a/apps/files/l10n/hu_HU.json b/apps/files/l10n/hu_HU.json
index 2eab8691b64..111a1a51a9c 100644
--- a/apps/files/l10n/hu_HU.json
+++ b/apps/files/l10n/hu_HU.json
@@ -2,7 +2,6 @@
"Storage is temporarily not available" : "A tároló átmenetileg nem érhető el",
"Storage invalid" : "A tároló érvénytelen",
"Unknown error" : "Ismeretlen hiba",
- "Files" : "Fájlok",
"All files" : "Az összes fájl",
"Recent" : "Legutóbbi",
"File could not be found" : "Fájl nem található",
@@ -26,6 +25,8 @@
"Delete" : "Törlés",
"Disconnect storage" : "Tároló leválasztása",
"Unshare" : "A megosztás visszavonása",
+ "Could not load info for file \"{file}\"" : "Nem sikerült betölteni az információs fájl ehhez: \"{file}\"",
+ "Files" : "Fájlok",
"Details" : "Részletek",
"Select" : "Kiválaszt",
"Pending" : "Folyamatban",
diff --git a/apps/files/l10n/id.js b/apps/files/l10n/id.js
index 5ae610dba16..14022655d62 100644
--- a/apps/files/l10n/id.js
+++ b/apps/files/l10n/id.js
@@ -3,7 +3,6 @@ OC.L10N.register(
{
"Storage invalid" : "Penyimpanan tidak sah",
"Unknown error" : "Kesalahan tidak diketahui",
- "Files" : "Berkas",
"All files" : "Semua berkas",
"Recent" : "Terbaru",
"File could not be found" : "Berkas tidak ditemukan",
@@ -23,6 +22,7 @@ OC.L10N.register(
"Delete" : "Hapus",
"Disconnect storage" : "Memutuskan penyimpaan",
"Unshare" : "Batalkan berbagi",
+ "Files" : "Berkas",
"Details" : "Rincian",
"Select" : "Pilih",
"Pending" : "Tertunda",
diff --git a/apps/files/l10n/id.json b/apps/files/l10n/id.json
index 6867106ff09..e245cc7847c 100644
--- a/apps/files/l10n/id.json
+++ b/apps/files/l10n/id.json
@@ -1,7 +1,6 @@
{ "translations": {
"Storage invalid" : "Penyimpanan tidak sah",
"Unknown error" : "Kesalahan tidak diketahui",
- "Files" : "Berkas",
"All files" : "Semua berkas",
"Recent" : "Terbaru",
"File could not be found" : "Berkas tidak ditemukan",
@@ -21,6 +20,7 @@
"Delete" : "Hapus",
"Disconnect storage" : "Memutuskan penyimpaan",
"Unshare" : "Batalkan berbagi",
+ "Files" : "Berkas",
"Details" : "Rincian",
"Select" : "Pilih",
"Pending" : "Tertunda",
diff --git a/apps/files/l10n/is.js b/apps/files/l10n/is.js
index b310e19535d..e908ae6d018 100644
--- a/apps/files/l10n/is.js
+++ b/apps/files/l10n/is.js
@@ -3,7 +3,6 @@ OC.L10N.register(
{
"Storage invalid" : "Ógild geymsla",
"Unknown error" : "Óþekkt villa",
- "Files" : "Skrár",
"All files" : "Allar skrár",
"Recent" : "Nýlegt",
"File could not be found" : "Skrá finnst ekki",
@@ -23,6 +22,7 @@ OC.L10N.register(
"Delete" : "Eyða",
"Disconnect storage" : "Aftengja geymslu",
"Unshare" : "Hætta deilingu",
+ "Files" : "Skrár",
"Details" : "Nánar",
"Select" : "Velja",
"Pending" : "Í bið",
diff --git a/apps/files/l10n/is.json b/apps/files/l10n/is.json
index 1b39dfbea13..e56755d96f6 100644
--- a/apps/files/l10n/is.json
+++ b/apps/files/l10n/is.json
@@ -1,7 +1,6 @@
{ "translations": {
"Storage invalid" : "Ógild geymsla",
"Unknown error" : "Óþekkt villa",
- "Files" : "Skrár",
"All files" : "Allar skrár",
"Recent" : "Nýlegt",
"File could not be found" : "Skrá finnst ekki",
@@ -21,6 +20,7 @@
"Delete" : "Eyða",
"Disconnect storage" : "Aftengja geymslu",
"Unshare" : "Hætta deilingu",
+ "Files" : "Skrár",
"Details" : "Nánar",
"Select" : "Velja",
"Pending" : "Í bið",
diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js
index 269f87014a4..ee3bf41bf7f 100644
--- a/apps/files/l10n/it.js
+++ b/apps/files/l10n/it.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Storage is temporarily not available" : "L'archiviazione è temporaneamente non disponibile",
"Storage invalid" : "Archiviazione non valida",
"Unknown error" : "Errore sconosciuto",
- "Files" : "File",
"All files" : "Tutti i file",
"Recent" : "Recenti",
"File could not be found" : "Il file non può essere trovato",
@@ -29,6 +28,7 @@ OC.L10N.register(
"Disconnect storage" : "Disconnetti archiviazione",
"Unshare" : "Rimuovi condivisione",
"Could not load info for file \"{file}\"" : "Impossibile caricare le informazioni per il file \"{file}\"",
+ "Files" : "File",
"Details" : "Dettagli",
"Select" : "Seleziona",
"Pending" : "In corso",
diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json
index 2c0843bf090..e9ab9c622e1 100644
--- a/apps/files/l10n/it.json
+++ b/apps/files/l10n/it.json
@@ -2,7 +2,6 @@
"Storage is temporarily not available" : "L'archiviazione è temporaneamente non disponibile",
"Storage invalid" : "Archiviazione non valida",
"Unknown error" : "Errore sconosciuto",
- "Files" : "File",
"All files" : "Tutti i file",
"Recent" : "Recenti",
"File could not be found" : "Il file non può essere trovato",
@@ -27,6 +26,7 @@
"Disconnect storage" : "Disconnetti archiviazione",
"Unshare" : "Rimuovi condivisione",
"Could not load info for file \"{file}\"" : "Impossibile caricare le informazioni per il file \"{file}\"",
+ "Files" : "File",
"Details" : "Dettagli",
"Select" : "Seleziona",
"Pending" : "In corso",
diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js
index a3178964e31..58585944f9c 100644
--- a/apps/files/l10n/ja.js
+++ b/apps/files/l10n/ja.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Storage is temporarily not available" : "ストレージは一時的に利用できません",
"Storage invalid" : "ストレージが無効です",
"Unknown error" : "不明なエラー",
- "Files" : "ファイル",
"All files" : "すべてのファイル",
"Recent" : "最新",
"File could not be found" : "ファイルを見つけられませんでした",
@@ -28,6 +27,8 @@ OC.L10N.register(
"Delete" : "削除",
"Disconnect storage" : "ストレージを切断する",
"Unshare" : "共有解除",
+ "Could not load info for file \"{file}\"" : "\"{file}\" ファイルの情報を読み込めませんでした",
+ "Files" : "ファイル",
"Details" : "詳細",
"Select" : "選択",
"Pending" : "中断",
@@ -153,8 +154,8 @@ OC.L10N.register(
"{minutes}:{seconds}m" : "{minutes}:{seconds} 分",
"{seconds} second{plural_s} left" : "残り{minutes}:{seconds} 秒",
"{seconds}s" : "{seconds} 秒",
- "Any moment now..." : "もうすぐ…",
- "Soon..." : "もうすぐ…",
+ "Any moment now..." : "まもなく…",
+ "Soon..." : "まもなく…",
"File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
"No entries in this folder match '{filter}'" : "このフォルダー内で '{filter}' にマッチするものはありません",
"Local link" : "ローカルリンク",
diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json
index 4c3db9acc3d..12cf9d4907c 100644
--- a/apps/files/l10n/ja.json
+++ b/apps/files/l10n/ja.json
@@ -2,7 +2,6 @@
"Storage is temporarily not available" : "ストレージは一時的に利用できません",
"Storage invalid" : "ストレージが無効です",
"Unknown error" : "不明なエラー",
- "Files" : "ファイル",
"All files" : "すべてのファイル",
"Recent" : "最新",
"File could not be found" : "ファイルを見つけられませんでした",
@@ -26,6 +25,8 @@
"Delete" : "削除",
"Disconnect storage" : "ストレージを切断する",
"Unshare" : "共有解除",
+ "Could not load info for file \"{file}\"" : "\"{file}\" ファイルの情報を読み込めませんでした",
+ "Files" : "ファイル",
"Details" : "詳細",
"Select" : "選択",
"Pending" : "中断",
@@ -151,8 +152,8 @@
"{minutes}:{seconds}m" : "{minutes}:{seconds} 分",
"{seconds} second{plural_s} left" : "残り{minutes}:{seconds} 秒",
"{seconds}s" : "{seconds} 秒",
- "Any moment now..." : "もうすぐ…",
- "Soon..." : "もうすぐ…",
+ "Any moment now..." : "まもなく…",
+ "Soon..." : "まもなく…",
"File upload is in progress. Leaving the page now will cancel the upload." : "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
"No entries in this folder match '{filter}'" : "このフォルダー内で '{filter}' にマッチするものはありません",
"Local link" : "ローカルリンク",
diff --git a/apps/files/l10n/ko.js b/apps/files/l10n/ko.js
index fcec4a93b65..ac9513e8c27 100644
--- a/apps/files/l10n/ko.js
+++ b/apps/files/l10n/ko.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Storage is temporarily not available" : "저장소를 일시적으로 사용할 수 없습니다",
"Storage invalid" : "저장소가 잘못됨",
"Unknown error" : "알 수 없는 오류",
- "Files" : "파일",
"All files" : "모든 파일",
"Recent" : "최근",
"File could not be found" : "파일을 찾을 수 없음",
@@ -27,6 +26,7 @@ OC.L10N.register(
"Delete" : "삭제",
"Disconnect storage" : "저장소 연결 해제",
"Unshare" : "공유 해제",
+ "Files" : "파일",
"Details" : "자세한 정보",
"Select" : "선택",
"Pending" : "대기 중",
diff --git a/apps/files/l10n/ko.json b/apps/files/l10n/ko.json
index de02cdaaf2d..a52f9d75dc3 100644
--- a/apps/files/l10n/ko.json
+++ b/apps/files/l10n/ko.json
@@ -2,7 +2,6 @@
"Storage is temporarily not available" : "저장소를 일시적으로 사용할 수 없습니다",
"Storage invalid" : "저장소가 잘못됨",
"Unknown error" : "알 수 없는 오류",
- "Files" : "파일",
"All files" : "모든 파일",
"Recent" : "최근",
"File could not be found" : "파일을 찾을 수 없음",
@@ -25,6 +24,7 @@
"Delete" : "삭제",
"Disconnect storage" : "저장소 연결 해제",
"Unshare" : "공유 해제",
+ "Files" : "파일",
"Details" : "자세한 정보",
"Select" : "선택",
"Pending" : "대기 중",
diff --git a/apps/files/l10n/lv.js b/apps/files/l10n/lv.js
index 80e636ff5f0..64db0c754a8 100644
--- a/apps/files/l10n/lv.js
+++ b/apps/files/l10n/lv.js
@@ -1,9 +1,9 @@
OC.L10N.register(
"files",
{
+ "Storage is temporarily not available" : "Glabātuve īslaicīgi nav pieejama",
"Storage invalid" : "Nepareiza glabātuve",
"Unknown error" : "Nezināma kļūda",
- "Files" : "Datnes",
"All files" : "Visas datnes",
"Recent" : "Nesenās",
"File could not be found" : "Datni nevar atrast",
@@ -14,15 +14,19 @@ OC.L10N.register(
"Upload cancelled." : "Augšupielāde ir atcelta.",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Neizdodas augšupielādēt {filename}, jo tā ir vai nu mape vai 0 baitu saturoša datne.",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Nav pietiekami daudz brīvas vietas. Tiek augšupielādēti {size1}, bet pieejami tikai {size2}",
+ "Not enough free space" : "Nav pietiekami daudz brīvas vietas",
"Uploading..." : "Augšupielādē...",
"..." : "...",
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} no {totalSize} ({bitrate})",
"Actions" : "Darbības",
"Download" : "Lejupielādēt",
"Rename" : "Pārsaukt",
+ "Move" : "Pārvietot",
+ "Target folder" : "Mērķa mape",
"Delete" : "Dzēst",
"Disconnect storage" : "Atvienot glabātuvi",
"Unshare" : "Pārtraukt koplietošanu",
+ "Files" : "Datnes",
"Details" : "Detaļas",
"Select" : "Norādīt",
"Pending" : "Gaida savu kārtu",
@@ -64,6 +68,21 @@ OC.L10N.register(
"New folder" : "Jauna mape",
"Upload" : "Augšupielādēt",
"An error occurred while trying to update the tags" : "Notika kļūda atjaunojot atzīmi",
+ "Added to favorites" : "Pievienot izlasei",
+ "Removed from favorites" : "Noņemt no izlases",
+ "Created by {user}" : "Izveidoja {user}",
+ "Changed by {user}" : "Izmainīja {user}",
+ "Deleted by {user}" : "Dzēsa {user}",
+ "Restored by {user}" : "Atjaunoja {user}",
+ "Renamed by {user}" : "Pārdēvēja {user}",
+ "Moved by {user}" : "Pārvietoja {user}",
+ "{user} changed {file}" : "{user} mainīts {file}",
+ "You deleted {file}" : "Tu izdzēsi {file}",
+ "You restored {file}" : "Tu atjaunoji {file}",
+ "{user} restored {file}" : "{user} atjaunoja {file}",
+ "{user} renamed {oldfile} to {newfile}" : "{user} pārdēvēja {oldfile} uz {newfile}",
+ "{user} moved {oldfile} to {newfile}" : "{user} pārvietoja {oldfile} uz {newfile}",
+ "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "Fails vai mape tika <strong>mainīts</strong> vai <strong>pārsaukts</strong>",
"A new file or folder has been <strong>created</strong>" : "<strong>Izveidota</strong> jauna datne vai mape",
"Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limitēt ziņojumus par jūsu <strong>iecienīto datņu</strong> izveidošanu un izmaiņām <em>(tikai datu straumei)</em>",
"Upload (max. %s)" : "Augšupielādēt (maks. %s)",
@@ -85,6 +104,10 @@ OC.L10N.register(
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Augšupielādējamās datnes pārsniedz servera pieļaujamo datņu augšupielādes apjomu",
"No favorites" : "Nav favorītu",
"Files and folders you mark as favorite will show up here" : "Datnes un mapes, ko atzīmēsiet kā favorītus, tiks rādīti šeit",
+ "Shared with you" : "Koplietots ar tevi",
+ "Shared by link" : "Koplietots ar saiti",
+ "Tags" : "Atzīmes",
+ "Deleted files" : "Dzēstās datnes",
"Text file" : "Teksta datne",
"New text file.txt" : "Jauna teksta datne.txt",
"Storage not available" : "Glabātuve nav pieejama",
diff --git a/apps/files/l10n/lv.json b/apps/files/l10n/lv.json
index d88665b810f..1ef5db26718 100644
--- a/apps/files/l10n/lv.json
+++ b/apps/files/l10n/lv.json
@@ -1,7 +1,7 @@
{ "translations": {
+ "Storage is temporarily not available" : "Glabātuve īslaicīgi nav pieejama",
"Storage invalid" : "Nepareiza glabātuve",
"Unknown error" : "Nezināma kļūda",
- "Files" : "Datnes",
"All files" : "Visas datnes",
"Recent" : "Nesenās",
"File could not be found" : "Datni nevar atrast",
@@ -12,15 +12,19 @@
"Upload cancelled." : "Augšupielāde ir atcelta.",
"Unable to upload {filename} as it is a directory or has 0 bytes" : "Neizdodas augšupielādēt {filename}, jo tā ir vai nu mape vai 0 baitu saturoša datne.",
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Nav pietiekami daudz brīvas vietas. Tiek augšupielādēti {size1}, bet pieejami tikai {size2}",
+ "Not enough free space" : "Nav pietiekami daudz brīvas vietas",
"Uploading..." : "Augšupielādē...",
"..." : "...",
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} no {totalSize} ({bitrate})",
"Actions" : "Darbības",
"Download" : "Lejupielādēt",
"Rename" : "Pārsaukt",
+ "Move" : "Pārvietot",
+ "Target folder" : "Mērķa mape",
"Delete" : "Dzēst",
"Disconnect storage" : "Atvienot glabātuvi",
"Unshare" : "Pārtraukt koplietošanu",
+ "Files" : "Datnes",
"Details" : "Detaļas",
"Select" : "Norādīt",
"Pending" : "Gaida savu kārtu",
@@ -62,6 +66,21 @@
"New folder" : "Jauna mape",
"Upload" : "Augšupielādēt",
"An error occurred while trying to update the tags" : "Notika kļūda atjaunojot atzīmi",
+ "Added to favorites" : "Pievienot izlasei",
+ "Removed from favorites" : "Noņemt no izlases",
+ "Created by {user}" : "Izveidoja {user}",
+ "Changed by {user}" : "Izmainīja {user}",
+ "Deleted by {user}" : "Dzēsa {user}",
+ "Restored by {user}" : "Atjaunoja {user}",
+ "Renamed by {user}" : "Pārdēvēja {user}",
+ "Moved by {user}" : "Pārvietoja {user}",
+ "{user} changed {file}" : "{user} mainīts {file}",
+ "You deleted {file}" : "Tu izdzēsi {file}",
+ "You restored {file}" : "Tu atjaunoji {file}",
+ "{user} restored {file}" : "{user} atjaunoja {file}",
+ "{user} renamed {oldfile} to {newfile}" : "{user} pārdēvēja {oldfile} uz {newfile}",
+ "{user} moved {oldfile} to {newfile}" : "{user} pārvietoja {oldfile} uz {newfile}",
+ "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "Fails vai mape tika <strong>mainīts</strong> vai <strong>pārsaukts</strong>",
"A new file or folder has been <strong>created</strong>" : "<strong>Izveidota</strong> jauna datne vai mape",
"Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limitēt ziņojumus par jūsu <strong>iecienīto datņu</strong> izveidošanu un izmaiņām <em>(tikai datu straumei)</em>",
"Upload (max. %s)" : "Augšupielādēt (maks. %s)",
@@ -83,6 +102,10 @@
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Augšupielādējamās datnes pārsniedz servera pieļaujamo datņu augšupielādes apjomu",
"No favorites" : "Nav favorītu",
"Files and folders you mark as favorite will show up here" : "Datnes un mapes, ko atzīmēsiet kā favorītus, tiks rādīti šeit",
+ "Shared with you" : "Koplietots ar tevi",
+ "Shared by link" : "Koplietots ar saiti",
+ "Tags" : "Atzīmes",
+ "Deleted files" : "Dzēstās datnes",
"Text file" : "Teksta datne",
"New text file.txt" : "Jauna teksta datne.txt",
"Storage not available" : "Glabātuve nav pieejama",
diff --git a/apps/files/l10n/nb_NO.js b/apps/files/l10n/nb_NO.js
index 63164a86d65..c88bd8d2f5b 100644
--- a/apps/files/l10n/nb_NO.js
+++ b/apps/files/l10n/nb_NO.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Storage is temporarily not available" : "Lagring er midlertidig utilgjengelig",
"Storage invalid" : "Lagringsplass ugyldig",
"Unknown error" : "Ukjent feil",
- "Files" : "Filer",
"All files" : "Alle filer",
"Recent" : "Nylig",
"File could not be found" : "Filen ble ikke funnet",
@@ -28,6 +27,8 @@ OC.L10N.register(
"Delete" : "Slett",
"Disconnect storage" : "Koble fra lagring",
"Unshare" : "Avslutt deling",
+ "Could not load info for file \"{file}\"" : "Klarte ikke å hente informasjon som filen \"{file}\"",
+ "Files" : "Filer",
"Details" : "Detaljer",
"Select" : "Velg",
"Pending" : "Venter",
diff --git a/apps/files/l10n/nb_NO.json b/apps/files/l10n/nb_NO.json
index 1d6d0ab113d..b1aa817289c 100644
--- a/apps/files/l10n/nb_NO.json
+++ b/apps/files/l10n/nb_NO.json
@@ -2,7 +2,6 @@
"Storage is temporarily not available" : "Lagring er midlertidig utilgjengelig",
"Storage invalid" : "Lagringsplass ugyldig",
"Unknown error" : "Ukjent feil",
- "Files" : "Filer",
"All files" : "Alle filer",
"Recent" : "Nylig",
"File could not be found" : "Filen ble ikke funnet",
@@ -26,6 +25,8 @@
"Delete" : "Slett",
"Disconnect storage" : "Koble fra lagring",
"Unshare" : "Avslutt deling",
+ "Could not load info for file \"{file}\"" : "Klarte ikke å hente informasjon som filen \"{file}\"",
+ "Files" : "Filer",
"Details" : "Detaljer",
"Select" : "Velg",
"Pending" : "Venter",
diff --git a/apps/files/l10n/nl.js b/apps/files/l10n/nl.js
index 32d53b3cced..77cf7b1b938 100644
--- a/apps/files/l10n/nl.js
+++ b/apps/files/l10n/nl.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Storage is temporarily not available" : "Opslag is tijdelijk niet beschikbaar",
"Storage invalid" : "Opslag ongeldig",
"Unknown error" : "Onbekende fout",
- "Files" : "Bestanden",
"All files" : "Alle bestanden",
"Recent" : "Recent",
"File could not be found" : "Bestand kon niet worden gevonden",
@@ -29,6 +28,7 @@ OC.L10N.register(
"Disconnect storage" : "Verbinding met opslag verbreken",
"Unshare" : "Stop met delen",
"Could not load info for file \"{file}\"" : "Kon geen informatie laden voor bestand \"{file}\"",
+ "Files" : "Bestanden",
"Details" : "Details",
"Select" : "Selecteer",
"Pending" : "In behandeling",
diff --git a/apps/files/l10n/nl.json b/apps/files/l10n/nl.json
index c0f8ca406f1..e0f0d44e6e6 100644
--- a/apps/files/l10n/nl.json
+++ b/apps/files/l10n/nl.json
@@ -2,7 +2,6 @@
"Storage is temporarily not available" : "Opslag is tijdelijk niet beschikbaar",
"Storage invalid" : "Opslag ongeldig",
"Unknown error" : "Onbekende fout",
- "Files" : "Bestanden",
"All files" : "Alle bestanden",
"Recent" : "Recent",
"File could not be found" : "Bestand kon niet worden gevonden",
@@ -27,6 +26,7 @@
"Disconnect storage" : "Verbinding met opslag verbreken",
"Unshare" : "Stop met delen",
"Could not load info for file \"{file}\"" : "Kon geen informatie laden voor bestand \"{file}\"",
+ "Files" : "Bestanden",
"Details" : "Details",
"Select" : "Selecteer",
"Pending" : "In behandeling",
diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js
index 0fdb178afba..d718109c592 100644
--- a/apps/files/l10n/pl.js
+++ b/apps/files/l10n/pl.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Storage is temporarily not available" : "Przechowywanie jest czasowo niedostępne",
"Storage invalid" : "Pamięć nieprawidłowa",
"Unknown error" : "Nieznany błąd",
- "Files" : "Pliki",
"All files" : "Wszystkie pliki",
"Recent" : "Ostatnie",
"File could not be found" : "Nie można odnaleźć pliku",
@@ -28,6 +27,7 @@ OC.L10N.register(
"Delete" : "Usuń",
"Disconnect storage" : "Odłącz magazyn",
"Unshare" : "Zatrzymaj udostępnianie",
+ "Files" : "Pliki",
"Details" : "Szczegóły",
"Select" : "Wybierz",
"Pending" : "Oczekujące",
diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json
index 6e13bf9d264..36fa8c901c6 100644
--- a/apps/files/l10n/pl.json
+++ b/apps/files/l10n/pl.json
@@ -2,7 +2,6 @@
"Storage is temporarily not available" : "Przechowywanie jest czasowo niedostępne",
"Storage invalid" : "Pamięć nieprawidłowa",
"Unknown error" : "Nieznany błąd",
- "Files" : "Pliki",
"All files" : "Wszystkie pliki",
"Recent" : "Ostatnie",
"File could not be found" : "Nie można odnaleźć pliku",
@@ -26,6 +25,7 @@
"Delete" : "Usuń",
"Disconnect storage" : "Odłącz magazyn",
"Unshare" : "Zatrzymaj udostępnianie",
+ "Files" : "Pliki",
"Details" : "Szczegóły",
"Select" : "Wybierz",
"Pending" : "Oczekujące",
diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js
index 72848f4ff9a..b31977f2774 100644
--- a/apps/files/l10n/pt_BR.js
+++ b/apps/files/l10n/pt_BR.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Storage is temporarily not available" : "Storage esta, temporariamente, indisponível",
"Storage invalid" : "Armazenamento inválido",
"Unknown error" : "Erro desconhecido",
- "Files" : "Arquivos",
"All files" : "Todos os arquivos",
"Recent" : "Recente",
"File could not be found" : "O arquivo não foi encontrado",
@@ -29,6 +28,7 @@ OC.L10N.register(
"Disconnect storage" : "Desconectar armazenamento",
"Unshare" : "Descompartilhar",
"Could not load info for file \"{file}\"" : "Não foi possível carregar informações para o arquivo \"{file}\" ",
+ "Files" : "Arquivos",
"Details" : "Detalhes",
"Select" : "Selecionar",
"Pending" : "Pendente",
diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json
index 95f6bca564c..f5481c8ab0d 100644
--- a/apps/files/l10n/pt_BR.json
+++ b/apps/files/l10n/pt_BR.json
@@ -2,7 +2,6 @@
"Storage is temporarily not available" : "Storage esta, temporariamente, indisponível",
"Storage invalid" : "Armazenamento inválido",
"Unknown error" : "Erro desconhecido",
- "Files" : "Arquivos",
"All files" : "Todos os arquivos",
"Recent" : "Recente",
"File could not be found" : "O arquivo não foi encontrado",
@@ -27,6 +26,7 @@
"Disconnect storage" : "Desconectar armazenamento",
"Unshare" : "Descompartilhar",
"Could not load info for file \"{file}\"" : "Não foi possível carregar informações para o arquivo \"{file}\" ",
+ "Files" : "Arquivos",
"Details" : "Detalhes",
"Select" : "Selecionar",
"Pending" : "Pendente",
diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js
index c2f706df6e1..1222778d596 100644
--- a/apps/files/l10n/ru.js
+++ b/apps/files/l10n/ru.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Storage is temporarily not available" : "Хранилище временно недоступно",
"Storage invalid" : "Хранилище неисправно",
"Unknown error" : "Неизвестная ошибка",
- "Files" : "Файлы",
"All files" : "Все файлы",
"Recent" : "Недавние",
"File could not be found" : "Невозможно найти файл",
@@ -29,6 +28,7 @@ OC.L10N.register(
"Disconnect storage" : "Отсоединить хранилище",
"Unshare" : "Закрыть доступ",
"Could not load info for file \"{file}\"" : "Не удаётся загрузить информацию для файла \"{file}\"",
+ "Files" : "Файлы",
"Details" : "Подробно",
"Select" : "Выбрать",
"Pending" : "Ожидается",
diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json
index 6fb5cdb7509..c835f8c16cd 100644
--- a/apps/files/l10n/ru.json
+++ b/apps/files/l10n/ru.json
@@ -2,7 +2,6 @@
"Storage is temporarily not available" : "Хранилище временно недоступно",
"Storage invalid" : "Хранилище неисправно",
"Unknown error" : "Неизвестная ошибка",
- "Files" : "Файлы",
"All files" : "Все файлы",
"Recent" : "Недавние",
"File could not be found" : "Невозможно найти файл",
@@ -27,6 +26,7 @@
"Disconnect storage" : "Отсоединить хранилище",
"Unshare" : "Закрыть доступ",
"Could not load info for file \"{file}\"" : "Не удаётся загрузить информацию для файла \"{file}\"",
+ "Files" : "Файлы",
"Details" : "Подробно",
"Select" : "Выбрать",
"Pending" : "Ожидается",
diff --git a/apps/files/l10n/sk_SK.js b/apps/files/l10n/sk_SK.js
index eab25004bb3..22b909669de 100644
--- a/apps/files/l10n/sk_SK.js
+++ b/apps/files/l10n/sk_SK.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Storage is temporarily not available" : "Úložisko je dočasne nedostupné",
"Storage invalid" : "Úložisko nie je platné",
"Unknown error" : "Neznáma chyba",
- "Files" : "Súbory",
"All files" : "Všetky súbory",
"Recent" : "Nedávne",
"File could not be found" : "Súbor nie je možné nájsť",
@@ -28,6 +27,7 @@ OC.L10N.register(
"Delete" : "Zmazať",
"Disconnect storage" : "Odpojiť úložisko",
"Unshare" : "Zneprístupniť",
+ "Files" : "Súbory",
"Details" : "Podrobnosti",
"Select" : "Vybrať",
"Pending" : "Čaká",
diff --git a/apps/files/l10n/sk_SK.json b/apps/files/l10n/sk_SK.json
index 7a920a37d1b..ee43d8edc83 100644
--- a/apps/files/l10n/sk_SK.json
+++ b/apps/files/l10n/sk_SK.json
@@ -2,7 +2,6 @@
"Storage is temporarily not available" : "Úložisko je dočasne nedostupné",
"Storage invalid" : "Úložisko nie je platné",
"Unknown error" : "Neznáma chyba",
- "Files" : "Súbory",
"All files" : "Všetky súbory",
"Recent" : "Nedávne",
"File could not be found" : "Súbor nie je možné nájsť",
@@ -26,6 +25,7 @@
"Delete" : "Zmazať",
"Disconnect storage" : "Odpojiť úložisko",
"Unshare" : "Zneprístupniť",
+ "Files" : "Súbory",
"Details" : "Podrobnosti",
"Select" : "Vybrať",
"Pending" : "Čaká",
diff --git a/apps/files/l10n/sl.js b/apps/files/l10n/sl.js
index e86a1c83c4f..7ae4ed3e61a 100644
--- a/apps/files/l10n/sl.js
+++ b/apps/files/l10n/sl.js
@@ -3,7 +3,6 @@ OC.L10N.register(
{
"Storage invalid" : "Določen prostor ni veljaven",
"Unknown error" : "Neznana napaka",
- "Files" : "Datoteke",
"All files" : "Vse datoteke",
"Recent" : "Nedavno",
"File could not be found" : "Datoteke ne najdem",
@@ -23,6 +22,7 @@ OC.L10N.register(
"Delete" : "Izbriši",
"Disconnect storage" : "Odklopi shrambo",
"Unshare" : "Prekini souporabo",
+ "Files" : "Datoteke",
"Details" : "Podrobnosti",
"Select" : "Izberi",
"Pending" : "V čakanju ...",
diff --git a/apps/files/l10n/sl.json b/apps/files/l10n/sl.json
index c8c072452b6..254cd2e34b2 100644
--- a/apps/files/l10n/sl.json
+++ b/apps/files/l10n/sl.json
@@ -1,7 +1,6 @@
{ "translations": {
"Storage invalid" : "Določen prostor ni veljaven",
"Unknown error" : "Neznana napaka",
- "Files" : "Datoteke",
"All files" : "Vse datoteke",
"Recent" : "Nedavno",
"File could not be found" : "Datoteke ne najdem",
@@ -21,6 +20,7 @@
"Delete" : "Izbriši",
"Disconnect storage" : "Odklopi shrambo",
"Unshare" : "Prekini souporabo",
+ "Files" : "Datoteke",
"Details" : "Podrobnosti",
"Select" : "Izberi",
"Pending" : "V čakanju ...",
diff --git a/apps/files/l10n/sq.js b/apps/files/l10n/sq.js
index 52bf5f7accf..01945763ed4 100644
--- a/apps/files/l10n/sq.js
+++ b/apps/files/l10n/sq.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Storage is temporarily not available" : "Depozita përkohësisht nuk është në dispozicion",
"Storage invalid" : "Depozitë e pavlefshme",
"Unknown error" : "Gabim i panjohur",
- "Files" : "Skedar",
"All files" : "Të gjithë skedarët",
"Recent" : "Të fundit",
"File could not be found" : "Skedari s’u gjet dot",
@@ -29,6 +28,7 @@ OC.L10N.register(
"Disconnect storage" : "Shkëpute depozitën",
"Unshare" : "Hiqe ndarjen",
"Could not load info for file \"{file}\"" : "Nuk mund të ngarkohet informacioni për skedarin \"{file}\"",
+ "Files" : "Skedar",
"Details" : "Hollësi",
"Select" : "Përzgjidhe",
"Pending" : "Në pritje",
diff --git a/apps/files/l10n/sq.json b/apps/files/l10n/sq.json
index 0ecb279e692..03b0d305d4e 100644
--- a/apps/files/l10n/sq.json
+++ b/apps/files/l10n/sq.json
@@ -2,7 +2,6 @@
"Storage is temporarily not available" : "Depozita përkohësisht nuk është në dispozicion",
"Storage invalid" : "Depozitë e pavlefshme",
"Unknown error" : "Gabim i panjohur",
- "Files" : "Skedar",
"All files" : "Të gjithë skedarët",
"Recent" : "Të fundit",
"File could not be found" : "Skedari s’u gjet dot",
@@ -27,6 +26,7 @@
"Disconnect storage" : "Shkëpute depozitën",
"Unshare" : "Hiqe ndarjen",
"Could not load info for file \"{file}\"" : "Nuk mund të ngarkohet informacioni për skedarin \"{file}\"",
+ "Files" : "Skedar",
"Details" : "Hollësi",
"Select" : "Përzgjidhe",
"Pending" : "Në pritje",
diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js
index a3dbb702802..001fc6b07b8 100644
--- a/apps/files/l10n/sv.js
+++ b/apps/files/l10n/sv.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Storage is temporarily not available" : "Lagring är tillfälligt inte tillgänglig",
"Storage invalid" : "Lagring ogiltig",
"Unknown error" : "Okänt fel",
- "Files" : "Filer",
"All files" : "Alla filer",
"Recent" : "Senaste",
"File could not be found" : "Fil kunde inte hittas",
@@ -29,6 +28,7 @@ OC.L10N.register(
"Disconnect storage" : "Koppla bort lagring",
"Unshare" : "Sluta dela",
"Could not load info for file \"{file}\"" : "Kunde inte ladda information för fil \"{file}\"",
+ "Files" : "Filer",
"Details" : "Detaljer",
"Select" : "Välj",
"Pending" : "Väntar",
diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json
index dbee5345bf0..62e44c6c28e 100644
--- a/apps/files/l10n/sv.json
+++ b/apps/files/l10n/sv.json
@@ -2,7 +2,6 @@
"Storage is temporarily not available" : "Lagring är tillfälligt inte tillgänglig",
"Storage invalid" : "Lagring ogiltig",
"Unknown error" : "Okänt fel",
- "Files" : "Filer",
"All files" : "Alla filer",
"Recent" : "Senaste",
"File could not be found" : "Fil kunde inte hittas",
@@ -27,6 +26,7 @@
"Disconnect storage" : "Koppla bort lagring",
"Unshare" : "Sluta dela",
"Could not load info for file \"{file}\"" : "Kunde inte ladda information för fil \"{file}\"",
+ "Files" : "Filer",
"Details" : "Detaljer",
"Select" : "Välj",
"Pending" : "Väntar",
diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js
index 7ad07fda5d8..c41250c07f5 100644
--- a/apps/files/l10n/tr.js
+++ b/apps/files/l10n/tr.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Storage is temporarily not available" : "Gecici depolama alani mevcut değil",
"Storage invalid" : "Depolama geçersiz",
"Unknown error" : "Bilinmeyen hata",
- "Files" : "Dosyalar",
"All files" : "Tüm dosyalar",
"Recent" : "Son",
"File could not be found" : "Dosya bulunamadı",
@@ -27,6 +26,7 @@ OC.L10N.register(
"Delete" : "Sil",
"Disconnect storage" : "Depolama bağlantısını kes",
"Unshare" : "Paylaşmayı Kaldır",
+ "Files" : "Dosyalar",
"Details" : "Ayrıntılar",
"Select" : "Seç",
"Pending" : "Bekliyor",
diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json
index 7800895c41a..b612817deab 100644
--- a/apps/files/l10n/tr.json
+++ b/apps/files/l10n/tr.json
@@ -2,7 +2,6 @@
"Storage is temporarily not available" : "Gecici depolama alani mevcut değil",
"Storage invalid" : "Depolama geçersiz",
"Unknown error" : "Bilinmeyen hata",
- "Files" : "Dosyalar",
"All files" : "Tüm dosyalar",
"Recent" : "Son",
"File could not be found" : "Dosya bulunamadı",
@@ -25,6 +24,7 @@
"Delete" : "Sil",
"Disconnect storage" : "Depolama bağlantısını kes",
"Unshare" : "Paylaşmayı Kaldır",
+ "Files" : "Dosyalar",
"Details" : "Ayrıntılar",
"Select" : "Seç",
"Pending" : "Bekliyor",
diff --git a/apps/files/l10n/zh_CN.js b/apps/files/l10n/zh_CN.js
index e13409dfc91..5c6235b2892 100644
--- a/apps/files/l10n/zh_CN.js
+++ b/apps/files/l10n/zh_CN.js
@@ -4,7 +4,6 @@ OC.L10N.register(
"Storage is temporarily not available" : "存储空间暂时不可用",
"Storage invalid" : "存储空间无效",
"Unknown error" : "未知错误",
- "Files" : "文件",
"All files" : "全部文件",
"Recent" : "最近",
"File could not be found" : "文件未找到",
@@ -29,6 +28,7 @@ OC.L10N.register(
"Disconnect storage" : "断开存储链接",
"Unshare" : "取消共享",
"Could not load info for file \"{file}\"" : "无法加载文件 \"{file}\" 的信息",
+ "Files" : "文件",
"Details" : "详细信息",
"Select" : "选择",
"Pending" : "等待",
diff --git a/apps/files/l10n/zh_CN.json b/apps/files/l10n/zh_CN.json
index 9de26c4ee29..56b2a4c2adc 100644
--- a/apps/files/l10n/zh_CN.json
+++ b/apps/files/l10n/zh_CN.json
@@ -2,7 +2,6 @@
"Storage is temporarily not available" : "存储空间暂时不可用",
"Storage invalid" : "存储空间无效",
"Unknown error" : "未知错误",
- "Files" : "文件",
"All files" : "全部文件",
"Recent" : "最近",
"File could not be found" : "文件未找到",
@@ -27,6 +26,7 @@
"Disconnect storage" : "断开存储链接",
"Unshare" : "取消共享",
"Could not load info for file \"{file}\"" : "无法加载文件 \"{file}\" 的信息",
+ "Files" : "文件",
"Details" : "详细信息",
"Select" : "选择",
"Pending" : "等待",
diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js
index 586dea220b4..ce73c32e00c 100644
--- a/apps/files/l10n/zh_TW.js
+++ b/apps/files/l10n/zh_TW.js
@@ -3,7 +3,6 @@ OC.L10N.register(
{
"Storage invalid" : "無效的儲存空間",
"Unknown error" : "未知的錯誤",
- "Files" : "檔案",
"All files" : "所有檔案",
"Recent" : "近期",
"File could not be found" : "找不到檔案",
@@ -23,6 +22,7 @@ OC.L10N.register(
"Delete" : "刪除",
"Disconnect storage" : "斷開儲存空間連接",
"Unshare" : "取消分享",
+ "Files" : "檔案",
"Details" : "詳細資料",
"Select" : "選擇",
"Pending" : "等候中",
diff --git a/apps/files/l10n/zh_TW.json b/apps/files/l10n/zh_TW.json
index 5a9f5c698b6..697b35eb111 100644
--- a/apps/files/l10n/zh_TW.json
+++ b/apps/files/l10n/zh_TW.json
@@ -1,7 +1,6 @@
{ "translations": {
"Storage invalid" : "無效的儲存空間",
"Unknown error" : "未知的錯誤",
- "Files" : "檔案",
"All files" : "所有檔案",
"Recent" : "近期",
"File could not be found" : "找不到檔案",
@@ -21,6 +20,7 @@
"Delete" : "刪除",
"Disconnect storage" : "斷開儲存空間連接",
"Unshare" : "取消分享",
+ "Files" : "檔案",
"Details" : "詳細資料",
"Select" : "選擇",
"Pending" : "等候中",
diff --git a/apps/files_external/3rdparty/composer.json b/apps/files_external/3rdparty/composer.json
index 84f1e192018..2eab8a8f7b4 100644
--- a/apps/files_external/3rdparty/composer.json
+++ b/apps/files_external/3rdparty/composer.json
@@ -9,7 +9,7 @@
},
"require": {
"icewind/smb": "2.0.0",
- "icewind/streams": "0.4.1"
+ "icewind/streams": "0.5.2"
}
}
diff --git a/apps/files_external/3rdparty/composer.lock b/apps/files_external/3rdparty/composer.lock
index 305cc8dc4ba..99ef5f94871 100644
--- a/apps/files_external/3rdparty/composer.lock
+++ b/apps/files_external/3rdparty/composer.lock
@@ -4,8 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "hash": "a8b4080027a432533f6d0597ad527fe7",
- "content-hash": "8165981792437b03b39c11d28b061eda",
+ "content-hash": "0bbca3fe2d180fbc5681985bdf6b22e7",
"packages": [
{
"name": "icewind/smb",
@@ -46,20 +45,20 @@
}
],
"description": "php wrapper for smbclient and libsmbclient-php",
- "time": "2016-12-13 13:56:55"
+ "time": "2016-12-13T13:56:55+00:00"
},
{
"name": "icewind/streams",
- "version": "0.4.1",
+ "version": "0.5.2",
"source": {
"type": "git",
"url": "https://github.com/icewind1991/Streams.git",
- "reference": "d3620e8dc410c86c2ba55579803679c4e0b289ac"
+ "reference": "6bfd2fdbd99319f5e010d0a684409189a562cb1e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/icewind1991/Streams/zipball/d3620e8dc410c86c2ba55579803679c4e0b289ac",
- "reference": "d3620e8dc410c86c2ba55579803679c4e0b289ac",
+ "url": "https://api.github.com/repos/icewind1991/Streams/zipball/6bfd2fdbd99319f5e010d0a684409189a562cb1e",
+ "reference": "6bfd2fdbd99319f5e010d0a684409189a562cb1e",
"shasum": ""
},
"require": {
@@ -87,7 +86,7 @@
}
],
"description": "A set of generic stream wrappers",
- "time": "2016-06-02 14:37:52"
+ "time": "2016-12-02T14:21:23+00:00"
}
],
"packages-dev": [],
diff --git a/apps/files_external/3rdparty/composer/ClassLoader.php b/apps/files_external/3rdparty/composer/ClassLoader.php
index ac67d302a18..4626994fd4d 100644
--- a/apps/files_external/3rdparty/composer/ClassLoader.php
+++ b/apps/files_external/3rdparty/composer/ClassLoader.php
@@ -55,6 +55,7 @@ class ClassLoader
private $classMap = array();
private $classMapAuthoritative = false;
private $missingClasses = array();
+ private $apcuPrefix;
public function getPrefixes()
{
@@ -272,6 +273,26 @@ class ClassLoader
}
/**
+ * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
+ *
+ * @param string|null $apcuPrefix
+ */
+ public function setApcuPrefix($apcuPrefix)
+ {
+ $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null;
+ }
+
+ /**
+ * The APCu prefix in use, or null if APCu caching is not enabled.
+ *
+ * @return string|null
+ */
+ public function getApcuPrefix()
+ {
+ return $this->apcuPrefix;
+ }
+
+ /**
* Registers this instance as an autoloader.
*
* @param bool $prepend Whether to prepend the autoloader or not
@@ -313,11 +334,6 @@ class ClassLoader
*/
public function findFile($class)
{
- // work around for PHP 5.3.0 - 5.3.2 https://bugs.php.net/50731
- if ('\\' == $class[0]) {
- $class = substr($class, 1);
- }
-
// class map lookup
if (isset($this->classMap[$class])) {
return $this->classMap[$class];
@@ -325,6 +341,12 @@ class ClassLoader
if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
return false;
}
+ if (null !== $this->apcuPrefix) {
+ $file = apcu_fetch($this->apcuPrefix.$class, $hit);
+ if ($hit) {
+ return $file;
+ }
+ }
$file = $this->findFileWithExtension($class, '.php');
@@ -333,6 +355,10 @@ class ClassLoader
$file = $this->findFileWithExtension($class, '.hh');
}
+ if (null !== $this->apcuPrefix) {
+ apcu_add($this->apcuPrefix.$class, $file);
+ }
+
if (false === $file) {
// Remember that this class does not exist.
$this->missingClasses[$class] = true;
diff --git a/apps/files_external/3rdparty/composer/autoload_classmap.php b/apps/files_external/3rdparty/composer/autoload_classmap.php
index ba5d06f7011..e6bba3a9a15 100644
--- a/apps/files_external/3rdparty/composer/autoload_classmap.php
+++ b/apps/files_external/3rdparty/composer/autoload_classmap.php
@@ -7,7 +7,6 @@ $baseDir = $vendorDir;
return array(
'Icewind\\SMB\\AbstractShare' => $vendorDir . '/icewind/smb/src/AbstractShare.php',
- 'Icewind\\SMB\\Change' => $vendorDir . '/icewind/smb/src/Change.php',
'Icewind\\SMB\\Connection' => $vendorDir . '/icewind/smb/src/Connection.php',
'Icewind\\SMB\\ErrorCodes' => $vendorDir . '/icewind/smb/src/ErrorCodes.php',
'Icewind\\SMB\\Exception\\AccessDeniedException' => $vendorDir . '/icewind/smb/src/Exception/AccessDeniedException.php',
@@ -16,7 +15,6 @@ return array(
'Icewind\\SMB\\Exception\\ConnectException' => $vendorDir . '/icewind/smb/src/Exception/ConnectException.php',
'Icewind\\SMB\\Exception\\ConnectionException' => $vendorDir . '/icewind/smb/src/Exception/ConnectionException.php',
'Icewind\\SMB\\Exception\\ConnectionRefusedException' => $vendorDir . '/icewind/smb/src/Exception/ConnectionRefusedException.php',
- 'Icewind\\SMB\\Exception\\DependencyException' => $vendorDir . '/icewind/smb/src/Exception/DependencyException.php',
'Icewind\\SMB\\Exception\\Exception' => $vendorDir . '/icewind/smb/src/Exception/Exception.php',
'Icewind\\SMB\\Exception\\FileInUseException' => $vendorDir . '/icewind/smb/src/Exception/FileInUseException.php',
'Icewind\\SMB\\Exception\\ForbiddenException' => $vendorDir . '/icewind/smb/src/Exception/ForbiddenException.php',
@@ -33,14 +31,12 @@ return array(
'Icewind\\SMB\\Exception\\TimedOutException' => $vendorDir . '/icewind/smb/src/Exception/TimedOutException.php',
'Icewind\\SMB\\FileInfo' => $vendorDir . '/icewind/smb/src/FileInfo.php',
'Icewind\\SMB\\IFileInfo' => $vendorDir . '/icewind/smb/src/IFileInfo.php',
- 'Icewind\\SMB\\INotifyHandler' => $vendorDir . '/icewind/smb/src/INotifyHandler.php',
'Icewind\\SMB\\IShare' => $vendorDir . '/icewind/smb/src/IShare.php',
'Icewind\\SMB\\NativeFileInfo' => $vendorDir . '/icewind/smb/src/NativeFileInfo.php',
'Icewind\\SMB\\NativeServer' => $vendorDir . '/icewind/smb/src/NativeServer.php',
'Icewind\\SMB\\NativeShare' => $vendorDir . '/icewind/smb/src/NativeShare.php',
'Icewind\\SMB\\NativeState' => $vendorDir . '/icewind/smb/src/NativeState.php',
'Icewind\\SMB\\NativeStream' => $vendorDir . '/icewind/smb/src/NativeStream.php',
- 'Icewind\\SMB\\NotifyHandler' => $vendorDir . '/icewind/smb/src/NotifyHandler.php',
'Icewind\\SMB\\Parser' => $vendorDir . '/icewind/smb/src/Parser.php',
'Icewind\\SMB\\RawConnection' => $vendorDir . '/icewind/smb/src/RawConnection.php',
'Icewind\\SMB\\Server' => $vendorDir . '/icewind/smb/src/Server.php',
@@ -63,8 +59,23 @@ return array(
'Icewind\\Streams\\IteratorDirectory' => $vendorDir . '/icewind/streams/src/IteratorDirectory.php',
'Icewind\\Streams\\NullWrapper' => $vendorDir . '/icewind/streams/src/NullWrapper.php',
'Icewind\\Streams\\Path' => $vendorDir . '/icewind/streams/src/Path.php',
+ 'Icewind\\Streams\\PathWrapper' => $vendorDir . '/icewind/streams/src/PathWrapper.php',
'Icewind\\Streams\\RetryWrapper' => $vendorDir . '/icewind/streams/src/RetryWrapper.php',
'Icewind\\Streams\\SeekableWrapper' => $vendorDir . '/icewind/streams/src/SeekableWrapper.php',
+ 'Icewind\\Streams\\Tests\\CallbackWrapper' => $vendorDir . '/icewind/streams/tests/CallbackWrapper.php',
+ 'Icewind\\Streams\\Tests\\DirectoryFilter' => $vendorDir . '/icewind/streams/tests/DirectoryFilter.php',
+ 'Icewind\\Streams\\Tests\\DirectoryWrapper' => $vendorDir . '/icewind/streams/tests/DirectoryWrapper.php',
+ 'Icewind\\Streams\\Tests\\DirectoryWrapperDummy' => $vendorDir . '/icewind/streams/tests/DirectoryWrapper.php',
+ 'Icewind\\Streams\\Tests\\DirectoryWrapperNull' => $vendorDir . '/icewind/streams/tests/DirectoryWrapper.php',
+ 'Icewind\\Streams\\Tests\\FailWrapper' => $vendorDir . '/icewind/streams/tests/RetryWrapper.php',
+ 'Icewind\\Streams\\Tests\\IteratorDirectory' => $vendorDir . '/icewind/streams/tests/IteratorDirectory.php',
+ 'Icewind\\Streams\\Tests\\NullWrapper' => $vendorDir . '/icewind/streams/tests/NullWrapper.php',
+ 'Icewind\\Streams\\Tests\\PartialWrapper' => $vendorDir . '/icewind/streams/tests/RetryWrapper.php',
+ 'Icewind\\Streams\\Tests\\PathWrapper' => $vendorDir . '/icewind/streams/tests/PathWrapper.php',
+ 'Icewind\\Streams\\Tests\\RetryWrapper' => $vendorDir . '/icewind/streams/tests/RetryWrapper.php',
+ 'Icewind\\Streams\\Tests\\SeekableWrapper' => $vendorDir . '/icewind/streams/tests/SeekableWrapper.php',
+ 'Icewind\\Streams\\Tests\\UrlCallBack' => $vendorDir . '/icewind/streams/tests/UrlCallBack.php',
+ 'Icewind\\Streams\\Tests\\Wrapper' => $vendorDir . '/icewind/streams/tests/Wrapper.php',
'Icewind\\Streams\\Url' => $vendorDir . '/icewind/streams/src/Url.php',
'Icewind\\Streams\\UrlCallback' => $vendorDir . '/icewind/streams/src/UrlCallBack.php',
'Icewind\\Streams\\Wrapper' => $vendorDir . '/icewind/streams/src/Wrapper.php',
diff --git a/apps/files_external/3rdparty/composer/autoload_static.php b/apps/files_external/3rdparty/composer/autoload_static.php
index 10c09bfc409..9fa922caeab 100644
--- a/apps/files_external/3rdparty/composer/autoload_static.php
+++ b/apps/files_external/3rdparty/composer/autoload_static.php
@@ -37,7 +37,6 @@ class ComposerStaticInit98fe9b281934250b3a93f69a5ce843b3
public static $classMap = array (
'Icewind\\SMB\\AbstractShare' => __DIR__ . '/..' . '/icewind/smb/src/AbstractShare.php',
- 'Icewind\\SMB\\Change' => __DIR__ . '/..' . '/icewind/smb/src/Change.php',
'Icewind\\SMB\\Connection' => __DIR__ . '/..' . '/icewind/smb/src/Connection.php',
'Icewind\\SMB\\ErrorCodes' => __DIR__ . '/..' . '/icewind/smb/src/ErrorCodes.php',
'Icewind\\SMB\\Exception\\AccessDeniedException' => __DIR__ . '/..' . '/icewind/smb/src/Exception/AccessDeniedException.php',
@@ -46,7 +45,6 @@ class ComposerStaticInit98fe9b281934250b3a93f69a5ce843b3
'Icewind\\SMB\\Exception\\ConnectException' => __DIR__ . '/..' . '/icewind/smb/src/Exception/ConnectException.php',
'Icewind\\SMB\\Exception\\ConnectionException' => __DIR__ . '/..' . '/icewind/smb/src/Exception/ConnectionException.php',
'Icewind\\SMB\\Exception\\ConnectionRefusedException' => __DIR__ . '/..' . '/icewind/smb/src/Exception/ConnectionRefusedException.php',
- 'Icewind\\SMB\\Exception\\DependencyException' => __DIR__ . '/..' . '/icewind/smb/src/Exception/DependencyException.php',
'Icewind\\SMB\\Exception\\Exception' => __DIR__ . '/..' . '/icewind/smb/src/Exception/Exception.php',
'Icewind\\SMB\\Exception\\FileInUseException' => __DIR__ . '/..' . '/icewind/smb/src/Exception/FileInUseException.php',
'Icewind\\SMB\\Exception\\ForbiddenException' => __DIR__ . '/..' . '/icewind/smb/src/Exception/ForbiddenException.php',
@@ -63,14 +61,12 @@ class ComposerStaticInit98fe9b281934250b3a93f69a5ce843b3
'Icewind\\SMB\\Exception\\TimedOutException' => __DIR__ . '/..' . '/icewind/smb/src/Exception/TimedOutException.php',
'Icewind\\SMB\\FileInfo' => __DIR__ . '/..' . '/icewind/smb/src/FileInfo.php',
'Icewind\\SMB\\IFileInfo' => __DIR__ . '/..' . '/icewind/smb/src/IFileInfo.php',
- 'Icewind\\SMB\\INotifyHandler' => __DIR__ . '/..' . '/icewind/smb/src/INotifyHandler.php',
'Icewind\\SMB\\IShare' => __DIR__ . '/..' . '/icewind/smb/src/IShare.php',
'Icewind\\SMB\\NativeFileInfo' => __DIR__ . '/..' . '/icewind/smb/src/NativeFileInfo.php',
'Icewind\\SMB\\NativeServer' => __DIR__ . '/..' . '/icewind/smb/src/NativeServer.php',
'Icewind\\SMB\\NativeShare' => __DIR__ . '/..' . '/icewind/smb/src/NativeShare.php',
'Icewind\\SMB\\NativeState' => __DIR__ . '/..' . '/icewind/smb/src/NativeState.php',
'Icewind\\SMB\\NativeStream' => __DIR__ . '/..' . '/icewind/smb/src/NativeStream.php',
- 'Icewind\\SMB\\NotifyHandler' => __DIR__ . '/..' . '/icewind/smb/src/NotifyHandler.php',
'Icewind\\SMB\\Parser' => __DIR__ . '/..' . '/icewind/smb/src/Parser.php',
'Icewind\\SMB\\RawConnection' => __DIR__ . '/..' . '/icewind/smb/src/RawConnection.php',
'Icewind\\SMB\\Server' => __DIR__ . '/..' . '/icewind/smb/src/Server.php',
@@ -93,8 +89,23 @@ class ComposerStaticInit98fe9b281934250b3a93f69a5ce843b3
'Icewind\\Streams\\IteratorDirectory' => __DIR__ . '/..' . '/icewind/streams/src/IteratorDirectory.php',
'Icewind\\Streams\\NullWrapper' => __DIR__ . '/..' . '/icewind/streams/src/NullWrapper.php',
'Icewind\\Streams\\Path' => __DIR__ . '/..' . '/icewind/streams/src/Path.php',
+ 'Icewind\\Streams\\PathWrapper' => __DIR__ . '/..' . '/icewind/streams/src/PathWrapper.php',
'Icewind\\Streams\\RetryWrapper' => __DIR__ . '/..' . '/icewind/streams/src/RetryWrapper.php',
'Icewind\\Streams\\SeekableWrapper' => __DIR__ . '/..' . '/icewind/streams/src/SeekableWrapper.php',
+ 'Icewind\\Streams\\Tests\\CallbackWrapper' => __DIR__ . '/..' . '/icewind/streams/tests/CallbackWrapper.php',
+ 'Icewind\\Streams\\Tests\\DirectoryFilter' => __DIR__ . '/..' . '/icewind/streams/tests/DirectoryFilter.php',
+ 'Icewind\\Streams\\Tests\\DirectoryWrapper' => __DIR__ . '/..' . '/icewind/streams/tests/DirectoryWrapper.php',
+ 'Icewind\\Streams\\Tests\\DirectoryWrapperDummy' => __DIR__ . '/..' . '/icewind/streams/tests/DirectoryWrapper.php',
+ 'Icewind\\Streams\\Tests\\DirectoryWrapperNull' => __DIR__ . '/..' . '/icewind/streams/tests/DirectoryWrapper.php',
+ 'Icewind\\Streams\\Tests\\FailWrapper' => __DIR__ . '/..' . '/icewind/streams/tests/RetryWrapper.php',
+ 'Icewind\\Streams\\Tests\\IteratorDirectory' => __DIR__ . '/..' . '/icewind/streams/tests/IteratorDirectory.php',
+ 'Icewind\\Streams\\Tests\\NullWrapper' => __DIR__ . '/..' . '/icewind/streams/tests/NullWrapper.php',
+ 'Icewind\\Streams\\Tests\\PartialWrapper' => __DIR__ . '/..' . '/icewind/streams/tests/RetryWrapper.php',
+ 'Icewind\\Streams\\Tests\\PathWrapper' => __DIR__ . '/..' . '/icewind/streams/tests/PathWrapper.php',
+ 'Icewind\\Streams\\Tests\\RetryWrapper' => __DIR__ . '/..' . '/icewind/streams/tests/RetryWrapper.php',
+ 'Icewind\\Streams\\Tests\\SeekableWrapper' => __DIR__ . '/..' . '/icewind/streams/tests/SeekableWrapper.php',
+ 'Icewind\\Streams\\Tests\\UrlCallBack' => __DIR__ . '/..' . '/icewind/streams/tests/UrlCallBack.php',
+ 'Icewind\\Streams\\Tests\\Wrapper' => __DIR__ . '/..' . '/icewind/streams/tests/Wrapper.php',
'Icewind\\Streams\\Url' => __DIR__ . '/..' . '/icewind/streams/src/Url.php',
'Icewind\\Streams\\UrlCallback' => __DIR__ . '/..' . '/icewind/streams/src/UrlCallBack.php',
'Icewind\\Streams\\Wrapper' => __DIR__ . '/..' . '/icewind/streams/src/Wrapper.php',
diff --git a/apps/files_external/3rdparty/composer/installed.json b/apps/files_external/3rdparty/composer/installed.json
index bc71c6d0458..8e065858d02 100644
--- a/apps/files_external/3rdparty/composer/installed.json
+++ b/apps/files_external/3rdparty/composer/installed.json
@@ -1,33 +1,33 @@
[
{
- "name": "icewind/streams",
- "version": "0.4.1",
- "version_normalized": "0.4.1.0",
+ "name": "icewind/smb",
+ "version": "v2.0.0",
+ "version_normalized": "2.0.0.0",
"source": {
"type": "git",
- "url": "https://github.com/icewind1991/Streams.git",
- "reference": "d3620e8dc410c86c2ba55579803679c4e0b289ac"
+ "url": "https://github.com/icewind1991/SMB.git",
+ "reference": "95a5ecbaf92617f9800ad7d6070ef31d8ff28c3a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/icewind1991/Streams/zipball/d3620e8dc410c86c2ba55579803679c4e0b289ac",
- "reference": "d3620e8dc410c86c2ba55579803679c4e0b289ac",
+ "url": "https://api.github.com/repos/icewind1991/SMB/zipball/95a5ecbaf92617f9800ad7d6070ef31d8ff28c3a",
+ "reference": "95a5ecbaf92617f9800ad7d6070ef31d8ff28c3a",
"shasum": ""
},
"require": {
- "php": ">=5.3"
+ "icewind/streams": ">=0.2.0",
+ "php": ">=5.4"
},
"require-dev": {
- "phpunit/phpunit": "^4.8",
- "satooshi/php-coveralls": "v1.0.0"
+ "phpunit/phpunit": "^4.8"
},
- "time": "2016-06-02 14:37:52",
+ "time": "2016-12-13T13:56:55+00:00",
"type": "library",
- "installation-source": "dist",
+ "installation-source": "source",
"autoload": {
"psr-4": {
- "Icewind\\Streams\\Tests\\": "tests/",
- "Icewind\\Streams\\": "src/"
+ "Icewind\\SMB\\": "src/",
+ "Icewind\\SMB\\Test\\": "tests/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -40,37 +40,37 @@
"email": "icewind@owncloud.com"
}
],
- "description": "A set of generic stream wrappers"
+ "description": "php wrapper for smbclient and libsmbclient-php"
},
{
- "name": "icewind/smb",
- "version": "v2.0.0",
- "version_normalized": "2.0.0.0",
+ "name": "icewind/streams",
+ "version": "0.5.2",
+ "version_normalized": "0.5.2.0",
"source": {
"type": "git",
- "url": "https://github.com/icewind1991/SMB.git",
- "reference": "95a5ecbaf92617f9800ad7d6070ef31d8ff28c3a"
+ "url": "https://github.com/icewind1991/Streams.git",
+ "reference": "6bfd2fdbd99319f5e010d0a684409189a562cb1e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/icewind1991/SMB/zipball/95a5ecbaf92617f9800ad7d6070ef31d8ff28c3a",
- "reference": "95a5ecbaf92617f9800ad7d6070ef31d8ff28c3a",
+ "url": "https://api.github.com/repos/icewind1991/Streams/zipball/6bfd2fdbd99319f5e010d0a684409189a562cb1e",
+ "reference": "6bfd2fdbd99319f5e010d0a684409189a562cb1e",
"shasum": ""
},
"require": {
- "icewind/streams": ">=0.2.0",
- "php": ">=5.4"
+ "php": ">=5.3"
},
"require-dev": {
- "phpunit/phpunit": "^4.8"
+ "phpunit/phpunit": "^4.8",
+ "satooshi/php-coveralls": "v1.0.0"
},
- "time": "2016-12-13 13:56:55",
+ "time": "2016-12-02T14:21:23+00:00",
"type": "library",
- "installation-source": "source",
+ "installation-source": "dist",
"autoload": {
"psr-4": {
- "Icewind\\SMB\\": "src/",
- "Icewind\\SMB\\Test\\": "tests/"
+ "Icewind\\Streams\\Tests\\": "tests/",
+ "Icewind\\Streams\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -83,6 +83,6 @@
"email": "icewind@owncloud.com"
}
],
- "description": "php wrapper for smbclient and libsmbclient-php"
+ "description": "A set of generic stream wrappers"
}
]
diff --git a/apps/files_external/3rdparty/icewind/streams/src/CallbackWrapper.php b/apps/files_external/3rdparty/icewind/streams/src/CallbackWrapper.php
index c5847b95fdb..4eef55681c7 100644
--- a/apps/files_external/3rdparty/icewind/streams/src/CallbackWrapper.php
+++ b/apps/files_external/3rdparty/icewind/streams/src/CallbackWrapper.php
@@ -107,6 +107,8 @@ class CallbackWrapper extends Wrapper {
$result = parent::stream_close();
if (is_callable($this->closeCallback)) {
call_user_func($this->closeCallback);
+ // prevent further calls by potential PHP 7 GC ghosts
+ $this->closeCallback = null;
}
return $result;
}
diff --git a/apps/files_external/3rdparty/icewind/streams/src/Path.php b/apps/files_external/3rdparty/icewind/streams/src/Path.php
index 46d2156b69a..bef9fd5f616 100644
--- a/apps/files_external/3rdparty/icewind/streams/src/Path.php
+++ b/apps/files_external/3rdparty/icewind/streams/src/Path.php
@@ -56,7 +56,7 @@ class Path {
protected function register() {
if (!$this->registered) {
- $this->appendDefaultContent($this->getProtocol(), $this->contextOptions);
+ $this->appendDefaultContent($this->contextOptions);
stream_wrapper_register($this->getProtocol(), $this->class);
$this->registered = true;
}
@@ -71,13 +71,17 @@ class Path {
/**
* Add values to the default stream context
*
- * @param string $key
* @param array $values
*/
- protected function appendDefaultContent($key, $values) {
+ protected function appendDefaultContent($values) {
+ if (!is_array(current($values))) {
+ $values = array($this->getProtocol() => $values);
+ }
$context = stream_context_get_default();
$defaults = stream_context_get_options($context);
- $defaults[$key] = $values;
+ foreach ($values as $key => $value) {
+ $defaults[$key] = $value;
+ }
stream_context_set_default($defaults);
}
diff --git a/apps/files_external/3rdparty/icewind/streams/src/PathWrapper.php b/apps/files_external/3rdparty/icewind/streams/src/PathWrapper.php
new file mode 100644
index 00000000000..88af7e17b33
--- /dev/null
+++ b/apps/files_external/3rdparty/icewind/streams/src/PathWrapper.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Copyright (c) 2016 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Licensed under the MIT license:
+ * http://opensource.org/licenses/MIT
+ */
+
+namespace Icewind\Streams;
+
+/**
+ * A string-like object that maps to an existing stream when opened
+ */
+class PathWrapper extends NullWrapper {
+ /**
+ * @param resource $source
+ * @return Path|string
+ */
+ public static function getPath($source) {
+ return new Path(__CLASS__, [
+ 'null' => [
+ 'source' => $source
+ ]
+ ]);
+ }
+}
diff --git a/apps/files_external/3rdparty/icewind/streams/src/Wrapper.php b/apps/files_external/3rdparty/icewind/streams/src/Wrapper.php
index 53de2942ca9..8e52eff9a08 100644
--- a/apps/files_external/3rdparty/icewind/streams/src/Wrapper.php
+++ b/apps/files_external/3rdparty/icewind/streams/src/Wrapper.php
@@ -53,7 +53,7 @@ abstract class Wrapper implements File, Directory {
if (isset($context[$name])) {
$context = $context[$name];
} else {
- throw new \BadMethodCallException('Invalid context, "callable" options not set');
+ throw new \BadMethodCallException('Invalid context, "' . $name . '" options not set');
}
if (isset($context['source']) and is_resource($context['source'])) {
$this->setSourceStream($context['source']);
diff --git a/apps/files_external/l10n/de_DE.js b/apps/files_external/l10n/de_DE.js
index 1dbb8d0bb47..d136e0176b4 100644
--- a/apps/files_external/l10n/de_DE.js
+++ b/apps/files_external/l10n/de_DE.js
@@ -52,7 +52,7 @@ OC.L10N.register(
"Storage with id \"%i\" is not user editable" : "Der Speicher mit der ID „%i“ ist nicht bearbeitbar durch Benutzer",
"Access key" : "Zugangsschlüssel",
"Secret key" : "geheimer Schlüssel",
- "Builtin" : "Builtin",
+ "Builtin" : "Eingebaut",
"None" : "Keine",
"OAuth1" : "OAuth1",
"App key" : "App-Schlüssel",
diff --git a/apps/files_external/l10n/de_DE.json b/apps/files_external/l10n/de_DE.json
index 06141581b71..12dea8c0a2a 100644
--- a/apps/files_external/l10n/de_DE.json
+++ b/apps/files_external/l10n/de_DE.json
@@ -50,7 +50,7 @@
"Storage with id \"%i\" is not user editable" : "Der Speicher mit der ID „%i“ ist nicht bearbeitbar durch Benutzer",
"Access key" : "Zugangsschlüssel",
"Secret key" : "geheimer Schlüssel",
- "Builtin" : "Builtin",
+ "Builtin" : "Eingebaut",
"None" : "Keine",
"OAuth1" : "OAuth1",
"App key" : "App-Schlüssel",
diff --git a/apps/files_external/l10n/id.js b/apps/files_external/l10n/id.js
index 3de899ef466..da2326265b0 100644
--- a/apps/files_external/l10n/id.js
+++ b/apps/files_external/l10n/id.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"Save" : "Simpan",
"Empty response from the server" : "Tidak ada respon dari server",
"Couldn't access. Please logout and login to activate this mount point" : "Tidak dapat mengakses. Log keluar dan log masuk untuk mengaktifkan mount point ini",
+ "Couldn't get the information from the remote server: {code} {type}" : "Tidak dapat mengambil informasi dari server remote: {code} {type}",
"Couldn't get the list of external mount points: {type}" : "Tidak bisa mendapatkan informasi dari mount point eksternal: {type}",
"There was an error with message: " : "Terjadi kesalahan dengan pesan:",
"External mount error" : "Kesalahan mount eksternal",
@@ -64,6 +65,7 @@ OC.L10N.register(
"Identity endpoint URL" : "Identitas URL akhir",
"Rackspace" : "Rackspace",
"API key" : "Kunci API",
+ "Global credentials" : "Sandi Global",
"Log-in credentials, save in database" : "Kredensial masuk, simpan di basis data",
"Username and password" : "Nama pengguna dan sandi",
"Log-in credentials, save in session" : "Kredensial masuk, simpan dalam sesi",
@@ -88,6 +90,7 @@ OC.L10N.register(
"Google Drive" : "Google Drive",
"Local" : "Lokal",
"Location" : "lokasi",
+ "Nextcloud" : "Nextcloud",
"SFTP" : "SFTP",
"Root" : "Root",
"SFTP with secret key login" : "SFTP dengan kunci rahasia masuk",
@@ -99,6 +102,10 @@ OC.L10N.register(
"OpenStack Object Storage" : "OpenStack Object Storage",
"Service name" : "Nama layanan",
"Request timeout (seconds)" : "Minta waktu habis (detik)",
+ "External storages" : "Penyimpanan Eksternal",
+ "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Dukungan cURL di PHP tidak diaktifkan atau terpasang. Mengaitkan %s tidak memungkinkan. Harap tanyakan administrator sistem anda untuk memasangnya.",
+ "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Dukungan FTP di PHP tidak diaktifkan atau terpasang. Mengaitkan %s tidak memungkinkan. Harap tanya administrator sistem anda untuk memasangnya.",
+ "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" tidak terpasang. Mengaitkan %s tidak memungkinkan. Harap tanya administrator sistem anda untuk memasangnya.",
"No external storage configured" : "Penyimpanan eksternal tidak dikonfigurasi",
"You can add external storages in the personal settings" : "Anda dapat menambahkan penyimpanan eksternal di pengaturan pribadi",
"Name" : "Nama",
diff --git a/apps/files_external/l10n/id.json b/apps/files_external/l10n/id.json
index cb5e0f486e2..6367c48e434 100644
--- a/apps/files_external/l10n/id.json
+++ b/apps/files_external/l10n/id.json
@@ -23,6 +23,7 @@
"Save" : "Simpan",
"Empty response from the server" : "Tidak ada respon dari server",
"Couldn't access. Please logout and login to activate this mount point" : "Tidak dapat mengakses. Log keluar dan log masuk untuk mengaktifkan mount point ini",
+ "Couldn't get the information from the remote server: {code} {type}" : "Tidak dapat mengambil informasi dari server remote: {code} {type}",
"Couldn't get the list of external mount points: {type}" : "Tidak bisa mendapatkan informasi dari mount point eksternal: {type}",
"There was an error with message: " : "Terjadi kesalahan dengan pesan:",
"External mount error" : "Kesalahan mount eksternal",
@@ -62,6 +63,7 @@
"Identity endpoint URL" : "Identitas URL akhir",
"Rackspace" : "Rackspace",
"API key" : "Kunci API",
+ "Global credentials" : "Sandi Global",
"Log-in credentials, save in database" : "Kredensial masuk, simpan di basis data",
"Username and password" : "Nama pengguna dan sandi",
"Log-in credentials, save in session" : "Kredensial masuk, simpan dalam sesi",
@@ -86,6 +88,7 @@
"Google Drive" : "Google Drive",
"Local" : "Lokal",
"Location" : "lokasi",
+ "Nextcloud" : "Nextcloud",
"SFTP" : "SFTP",
"Root" : "Root",
"SFTP with secret key login" : "SFTP dengan kunci rahasia masuk",
@@ -97,6 +100,10 @@
"OpenStack Object Storage" : "OpenStack Object Storage",
"Service name" : "Nama layanan",
"Request timeout (seconds)" : "Minta waktu habis (detik)",
+ "External storages" : "Penyimpanan Eksternal",
+ "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Dukungan cURL di PHP tidak diaktifkan atau terpasang. Mengaitkan %s tidak memungkinkan. Harap tanyakan administrator sistem anda untuk memasangnya.",
+ "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Dukungan FTP di PHP tidak diaktifkan atau terpasang. Mengaitkan %s tidak memungkinkan. Harap tanya administrator sistem anda untuk memasangnya.",
+ "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" tidak terpasang. Mengaitkan %s tidak memungkinkan. Harap tanya administrator sistem anda untuk memasangnya.",
"No external storage configured" : "Penyimpanan eksternal tidak dikonfigurasi",
"You can add external storages in the personal settings" : "Anda dapat menambahkan penyimpanan eksternal di pengaturan pribadi",
"Name" : "Nama",
diff --git a/apps/files_external/l10n/is.js b/apps/files_external/l10n/is.js
index 13836b83147..1ecf0fb8795 100644
--- a/apps/files_external/l10n/is.js
+++ b/apps/files_external/l10n/is.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"Save" : "Vista",
"Empty response from the server" : "Tómt svar frá þjóni móttekið",
"Couldn't access. Please logout and login to activate this mount point" : "Náði ekki aðgangi. Skráðu þig út og svo aftur inn til að virkja þennan tengipunkt",
+ "Couldn't get the information from the remote server: {code} {type}" : "Gat ekki lesið upplýsingar frá fjartengda þjóninum: {code} {type}",
"Couldn't get the list of external mount points: {type}" : "Gat ekki fengið lista yfir fjartengda tengipunkta: {type}",
"There was an error with message: " : "Það kom upp villa með skilaboðunum: ",
"External mount error" : "Villa við tengingu í fjartengdu skráakerfi",
diff --git a/apps/files_external/l10n/is.json b/apps/files_external/l10n/is.json
index c60d621f7d9..76d65737747 100644
--- a/apps/files_external/l10n/is.json
+++ b/apps/files_external/l10n/is.json
@@ -23,6 +23,7 @@
"Save" : "Vista",
"Empty response from the server" : "Tómt svar frá þjóni móttekið",
"Couldn't access. Please logout and login to activate this mount point" : "Náði ekki aðgangi. Skráðu þig út og svo aftur inn til að virkja þennan tengipunkt",
+ "Couldn't get the information from the remote server: {code} {type}" : "Gat ekki lesið upplýsingar frá fjartengda þjóninum: {code} {type}",
"Couldn't get the list of external mount points: {type}" : "Gat ekki fengið lista yfir fjartengda tengipunkta: {type}",
"There was an error with message: " : "Það kom upp villa með skilaboðunum: ",
"External mount error" : "Villa við tengingu í fjartengdu skráakerfi",
diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js
index 095483d6167..2f9b6c522f5 100644
--- a/apps/files_sharing/l10n/fr.js
+++ b/apps/files_sharing/l10n/fr.js
@@ -97,7 +97,7 @@ OC.L10N.register(
"Wrong share ID, share doesn't exist" : "Mauvais ID de partage, le partage n'existe pas",
"could not delete share" : "impossible de supprimer le partage",
"Could not delete share" : "Impossible de supprimer le partage",
- "Please specify a file or folder path" : "Veuillez spécifier un fichier ou dossier",
+ "Please specify a file or folder path" : "Veuillez indiquer un fichier ou un chemin",
"Wrong path, file/folder doesn't exist" : "Mauvais chemin, Le fichier/dossier n'existe pas",
"Could not create share" : "Impossible de créer le partage",
"invalid permissions" : "permissions invalides",
diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json
index 024e9f7983d..85a2eae4870 100644
--- a/apps/files_sharing/l10n/fr.json
+++ b/apps/files_sharing/l10n/fr.json
@@ -95,7 +95,7 @@
"Wrong share ID, share doesn't exist" : "Mauvais ID de partage, le partage n'existe pas",
"could not delete share" : "impossible de supprimer le partage",
"Could not delete share" : "Impossible de supprimer le partage",
- "Please specify a file or folder path" : "Veuillez spécifier un fichier ou dossier",
+ "Please specify a file or folder path" : "Veuillez indiquer un fichier ou un chemin",
"Wrong path, file/folder doesn't exist" : "Mauvais chemin, Le fichier/dossier n'existe pas",
"Could not create share" : "Impossible de créer le partage",
"invalid permissions" : "permissions invalides",
diff --git a/apps/files_sharing/l10n/zh_CN.js b/apps/files_sharing/l10n/zh_CN.js
index 80addb4fe86..4946c2023ca 100644
--- a/apps/files_sharing/l10n/zh_CN.js
+++ b/apps/files_sharing/l10n/zh_CN.js
@@ -4,19 +4,62 @@ OC.L10N.register(
"Shared with you" : "分享给您的文件",
"Shared with others" : "您分享的文件",
"Shared by link" : "分享链接的文件",
- "Nothing shared with you yet" : "你还没有收到任何共享的文件",
+ "Nothing shared with you yet" : "您还没有收到任何共享的文件",
"Files and folders others share with you will show up here" : "其它人共享给您的文件和文件夹将显示在这里",
"Nothing shared yet" : "还没有共享过文件",
"Files and folders you share will show up here" : "您共享的文件和文件夹将显示在这里",
"No shared links" : "无分享链接",
"Files and folders you share by link will show up here" : "您通过链接共享的文件和文件夹将显示在这里",
"You can upload into this folder" : "您可以上传文件至此文件夹",
+ "No compatible server found at {remote}" : " {remote} 未发现匹配的服务器",
+ "Invalid server URL" : "无效的服务器地址",
+ "Failed to add the public link to your Nextcloud" : "添加公开链接到您的 Nextcloud 失败",
+ "Share" : "分享",
+ "No expiration date set" : "未设置失效时间",
"Shared by" : "共享人",
"Sharing" : "共享",
+ "File shares" : "文件共享",
+ "Downloaded via public link" : "通过公开链接下载",
+ "Downloaded by %1$s" : "已被 %1$s 下载",
+ "Downloaded by {email}" : "已被 {email} 下载",
+ "%1$s downloaded via public link" : "已被 %1$s 通过公开链接下载",
+ "{file} downloaded via public link" : "{file} 被通过公开链接下载",
+ "%1$s downloaded %2$s" : "%1$s 已下载 %2$s",
+ "{email} downloaded {file}" : "{email} 已下载 {file}",
+ "Shared with group %1$s" : "分享到群组 %1$s",
+ "Shared with group {group}" : "分享到群组 {group}",
+ "Removed share for group %1$s" : "到群组 %1$s 的分享已被移除",
+ "Removed share for group {group}" : "到群组 {group} 的分享已被移除 ",
+ "%2$s shared with group %1$s" : "%2$s 被分享到群组 %1$s",
+ "{actor} shared with group {group}" : "{actor} 被分享到群组 {group}",
+ "You shared %1$s with group %2$s" : "您把 %1$s 分享给了 %2$s 组",
+ "Shared as public link" : "共享为公开链接",
+ "Removed public link" : "移除公开链接",
+ "%1$s shared as public link" : "%1$s 公共链接分享",
+ "{actor} shared as public link" : "{actor} 公共链接分享",
+ "%1$s removed public link" : "%1$s 删除公共链接",
+ "{actor} removed public link" : "{actor} 删除公共链接",
+ "You shared %1$s as public link" : "你共享了 %1$s 为公开链接",
+ "You shared {file} as public link" : "你共享了 {file} 为公开链接",
+ "You removed public link for %1$s" : "你移除了 %1$s 的公开链接",
+ "You removed public link for {file}" : "你移除了 {file} 的公开链接",
+ "Shared with %1$s" : "与 %1$s 分享",
+ "Shared with {user}" : "与 {user} 分享",
+ "Removed share for {user}" : "移除给 {user} 的共享",
+ "Shared by %1$s" : "由 %1$s 共享",
+ "Shared by {actor}" : "由 {actor} 共享",
+ "%1$s removed share" : "%1$s 移除共享",
+ "You shared %1$s with %2$s" : "您把 %1$s分享给了 %2$s",
+ "%2$s shared %1$s with you" : "%2$s 把 %1$s 分享给了您",
+ "A file or folder was shared from <strong>another server</strong>" : "<strong>其它服务器</strong> 中一个文件或者文件夹被共享 ",
+ "A file or folder has been <strong>shared</strong>" : "一个文件或文件夹已<strong>共享</strong>。",
"Wrong share ID, share doesn't exist" : "错误的共享 ID,共享不存在",
+ "could not delete share" : "无法删除共享",
"Could not delete share" : "不能删除共享",
"Please specify a file or folder path" : "请指定一个文件或文件夹路径",
"Wrong path, file/folder doesn't exist" : "路径错误,文件/文件夹不存在",
+ "Could not create share" : "无法创建共享",
+ "invalid permissions" : "无效的权限",
"Please specify a valid user" : "请指定一个有效的用户",
"Group sharing is disabled by the administrator" : "群组共享已被管理员禁用",
"Please specify a valid group" : "请指定一个有效的组",
@@ -31,8 +74,29 @@ OC.L10N.register(
"Wrong or no update parameter given" : "错误或没有更新参数给出",
"Can't change permissions for public share links" : "不能改变公共分享链接权限",
"Cannot increase permissions" : "不能增加权限",
- "A file or folder has been <strong>shared</strong>" : "一个文件或文件夹已<strong>共享</strong>。",
- "A file or folder was shared from <strong>another server</strong>" : "<strong>其它服务器</strong> 中一个文件或者文件夹被共享 ",
+ "%s is publicly shared" : "%s 是公开共享",
+ "Share API is disabled" : "共享 API 已被禁用",
+ "This share is password-protected" : "这是一个密码保护的共享",
+ "The password is wrong. Try again." : "用户名或密码错误!请重试",
+ "Password" : "密码",
+ "No entries found in this folder" : "此文件夹中无项目",
+ "Name" : "名称",
+ "Share time" : "分享时间",
+ "Expiration date" : "到期日期 ",
+ "Sorry, this link doesn’t seem to work anymore." : "抱歉,此链接已失效",
+ "Reasons might be:" : "可能原因是:",
+ "the item was removed" : "此项已移除",
+ "the link expired" : "链接过期",
+ "sharing is disabled" : "分享已禁用",
+ "For more info, please ask the person who sent this link." : "欲知详情,请联系发给你链接的人。",
+ "Add to your Nextcloud" : "添加到你的 Nextcloud",
+ "Download" : "下载",
+ "Download %s" : "下载 %s",
+ "Direct link" : "直接链接",
+ "Upload files to %s" : "上传文件到 %s",
+ "Select or drop files" : "选择或删除文件",
+ "Uploading files…" : "上传文件 … ",
+ "Uploaded files:" : "上传的文件: ",
"A public shared file or folder was <strong>downloaded</strong>" : "一个公共共享的文件或文件夹<strong>已下载</strong>",
"You received a new remote share %2$s from %1$s" : "您收到一个新的远程共享 %2$s 来自于 %1$s",
"You received a new remote share from %s" : "您从%s收到了新的远程分享",
@@ -41,11 +105,9 @@ OC.L10N.register(
"%1$s unshared %2$s from you" : "%1$s 未共享你的 %2$s ",
"Public shared folder %1$s was downloaded" : "公共共享文件夹 %1$s 已被下载",
"Public shared file %1$s was downloaded" : "公共共享文件 %1$s 已被下载",
- "You shared %1$s with %2$s" : "您把 %1$s分享给了 %2$s",
"%2$s shared %1$s with %3$s" : "%2$s 共享 %1$s 给 %3$s",
"You removed the share of %2$s for %1$s" : "你移除了 %2$s 的共享 %1$s",
"%2$s removed the share of %3$s for %1$s" : "%2$s 移除了 %3$s 的共享 %1$s",
- "You shared %1$s with group %2$s" : "你把 %1$s 分享给了 %2$s 组",
"%2$s shared %1$s with group %3$s" : "%2$s 共享 %1$s 给群组 %3$s",
"You removed the share of group %2$s for %1$s" : "你移除了组 %2$s 的共享 %1$s",
"%2$s removed the share of group %3$s for %1$s" : "%2$s 移除了组 %3$s 的共享 %1$s",
@@ -55,9 +117,7 @@ OC.L10N.register(
"%2$s removed the public link for %1$s" : "%2$s 移除了公共链接 %1$s",
"Your public link for %1$s expired" : "你的公开链接 %1$s 已过期",
"The public link of %2$s for %1$s expired" : "%2$s 的公开链接 %1$s 已过期",
- "%2$s shared %1$s with you" : "%2$s 把 %1$s 分享给了您",
"%2$s removed the share for %1$s" : "%2$s 移除了共享 %1$s",
- "Downloaded via public link" : "通过公开链接下载",
"Shared with %2$s" : "共享给 %2$s",
"Shared with %3$s by %2$s" : "由 %2$s 共享给 %3$s",
"Removed share for %2$s" : "移除共享 %2$s",
@@ -68,27 +128,10 @@ OC.L10N.register(
"%2$s removed share of group %3$s" : "%2$s 移除了群 %3$s 的共享",
"Shared via link by %2$s" : "%2$s 以链接方式共享",
"Shared via public link" : "通过公开链接共享",
- "Removed public link" : "移除公开链接",
"%2$s removed public link" : "%2$s 移除了公共链接",
"Public link expired" : "公开链接已过期",
"Public link of %2$s expired" : "%2$s 的公开链接已过期",
"Shared by %2$s" : "由 %2$s 共享",
- "Shares" : "共享",
- "Share API is disabled" : "共享 API 已被禁用",
- "This share is password-protected" : "这是一个密码保护的共享",
- "The password is wrong. Try again." : "用户名或密码错误!请重试",
- "Password" : "密码",
- "No entries found in this folder" : "此文件夹中无项目",
- "Name" : "名称",
- "Share time" : "分享时间",
- "Sorry, this link doesn’t seem to work anymore." : "抱歉,此链接已失效",
- "Reasons might be:" : "可能原因是:",
- "the item was removed" : "此项已移除",
- "the link expired" : "链接过期",
- "sharing is disabled" : "分享已禁用",
- "For more info, please ask the person who sent this link." : "欲知详情,请联系发给你链接的人。",
- "Download" : "下载",
- "Download %s" : "下载 %s",
- "Direct link" : "直接链接"
+ "Shares" : "共享"
},
"nplurals=1; plural=0;");
diff --git a/apps/files_sharing/l10n/zh_CN.json b/apps/files_sharing/l10n/zh_CN.json
index 6110036a466..929bb9e178d 100644
--- a/apps/files_sharing/l10n/zh_CN.json
+++ b/apps/files_sharing/l10n/zh_CN.json
@@ -2,19 +2,62 @@
"Shared with you" : "分享给您的文件",
"Shared with others" : "您分享的文件",
"Shared by link" : "分享链接的文件",
- "Nothing shared with you yet" : "你还没有收到任何共享的文件",
+ "Nothing shared with you yet" : "您还没有收到任何共享的文件",
"Files and folders others share with you will show up here" : "其它人共享给您的文件和文件夹将显示在这里",
"Nothing shared yet" : "还没有共享过文件",
"Files and folders you share will show up here" : "您共享的文件和文件夹将显示在这里",
"No shared links" : "无分享链接",
"Files and folders you share by link will show up here" : "您通过链接共享的文件和文件夹将显示在这里",
"You can upload into this folder" : "您可以上传文件至此文件夹",
+ "No compatible server found at {remote}" : " {remote} 未发现匹配的服务器",
+ "Invalid server URL" : "无效的服务器地址",
+ "Failed to add the public link to your Nextcloud" : "添加公开链接到您的 Nextcloud 失败",
+ "Share" : "分享",
+ "No expiration date set" : "未设置失效时间",
"Shared by" : "共享人",
"Sharing" : "共享",
+ "File shares" : "文件共享",
+ "Downloaded via public link" : "通过公开链接下载",
+ "Downloaded by %1$s" : "已被 %1$s 下载",
+ "Downloaded by {email}" : "已被 {email} 下载",
+ "%1$s downloaded via public link" : "已被 %1$s 通过公开链接下载",
+ "{file} downloaded via public link" : "{file} 被通过公开链接下载",
+ "%1$s downloaded %2$s" : "%1$s 已下载 %2$s",
+ "{email} downloaded {file}" : "{email} 已下载 {file}",
+ "Shared with group %1$s" : "分享到群组 %1$s",
+ "Shared with group {group}" : "分享到群组 {group}",
+ "Removed share for group %1$s" : "到群组 %1$s 的分享已被移除",
+ "Removed share for group {group}" : "到群组 {group} 的分享已被移除 ",
+ "%2$s shared with group %1$s" : "%2$s 被分享到群组 %1$s",
+ "{actor} shared with group {group}" : "{actor} 被分享到群组 {group}",
+ "You shared %1$s with group %2$s" : "您把 %1$s 分享给了 %2$s 组",
+ "Shared as public link" : "共享为公开链接",
+ "Removed public link" : "移除公开链接",
+ "%1$s shared as public link" : "%1$s 公共链接分享",
+ "{actor} shared as public link" : "{actor} 公共链接分享",
+ "%1$s removed public link" : "%1$s 删除公共链接",
+ "{actor} removed public link" : "{actor} 删除公共链接",
+ "You shared %1$s as public link" : "你共享了 %1$s 为公开链接",
+ "You shared {file} as public link" : "你共享了 {file} 为公开链接",
+ "You removed public link for %1$s" : "你移除了 %1$s 的公开链接",
+ "You removed public link for {file}" : "你移除了 {file} 的公开链接",
+ "Shared with %1$s" : "与 %1$s 分享",
+ "Shared with {user}" : "与 {user} 分享",
+ "Removed share for {user}" : "移除给 {user} 的共享",
+ "Shared by %1$s" : "由 %1$s 共享",
+ "Shared by {actor}" : "由 {actor} 共享",
+ "%1$s removed share" : "%1$s 移除共享",
+ "You shared %1$s with %2$s" : "您把 %1$s分享给了 %2$s",
+ "%2$s shared %1$s with you" : "%2$s 把 %1$s 分享给了您",
+ "A file or folder was shared from <strong>another server</strong>" : "<strong>其它服务器</strong> 中一个文件或者文件夹被共享 ",
+ "A file or folder has been <strong>shared</strong>" : "一个文件或文件夹已<strong>共享</strong>。",
"Wrong share ID, share doesn't exist" : "错误的共享 ID,共享不存在",
+ "could not delete share" : "无法删除共享",
"Could not delete share" : "不能删除共享",
"Please specify a file or folder path" : "请指定一个文件或文件夹路径",
"Wrong path, file/folder doesn't exist" : "路径错误,文件/文件夹不存在",
+ "Could not create share" : "无法创建共享",
+ "invalid permissions" : "无效的权限",
"Please specify a valid user" : "请指定一个有效的用户",
"Group sharing is disabled by the administrator" : "群组共享已被管理员禁用",
"Please specify a valid group" : "请指定一个有效的组",
@@ -29,8 +72,29 @@
"Wrong or no update parameter given" : "错误或没有更新参数给出",
"Can't change permissions for public share links" : "不能改变公共分享链接权限",
"Cannot increase permissions" : "不能增加权限",
- "A file or folder has been <strong>shared</strong>" : "一个文件或文件夹已<strong>共享</strong>。",
- "A file or folder was shared from <strong>another server</strong>" : "<strong>其它服务器</strong> 中一个文件或者文件夹被共享 ",
+ "%s is publicly shared" : "%s 是公开共享",
+ "Share API is disabled" : "共享 API 已被禁用",
+ "This share is password-protected" : "这是一个密码保护的共享",
+ "The password is wrong. Try again." : "用户名或密码错误!请重试",
+ "Password" : "密码",
+ "No entries found in this folder" : "此文件夹中无项目",
+ "Name" : "名称",
+ "Share time" : "分享时间",
+ "Expiration date" : "到期日期 ",
+ "Sorry, this link doesn’t seem to work anymore." : "抱歉,此链接已失效",
+ "Reasons might be:" : "可能原因是:",
+ "the item was removed" : "此项已移除",
+ "the link expired" : "链接过期",
+ "sharing is disabled" : "分享已禁用",
+ "For more info, please ask the person who sent this link." : "欲知详情,请联系发给你链接的人。",
+ "Add to your Nextcloud" : "添加到你的 Nextcloud",
+ "Download" : "下载",
+ "Download %s" : "下载 %s",
+ "Direct link" : "直接链接",
+ "Upload files to %s" : "上传文件到 %s",
+ "Select or drop files" : "选择或删除文件",
+ "Uploading files…" : "上传文件 … ",
+ "Uploaded files:" : "上传的文件: ",
"A public shared file or folder was <strong>downloaded</strong>" : "一个公共共享的文件或文件夹<strong>已下载</strong>",
"You received a new remote share %2$s from %1$s" : "您收到一个新的远程共享 %2$s 来自于 %1$s",
"You received a new remote share from %s" : "您从%s收到了新的远程分享",
@@ -39,11 +103,9 @@
"%1$s unshared %2$s from you" : "%1$s 未共享你的 %2$s ",
"Public shared folder %1$s was downloaded" : "公共共享文件夹 %1$s 已被下载",
"Public shared file %1$s was downloaded" : "公共共享文件 %1$s 已被下载",
- "You shared %1$s with %2$s" : "您把 %1$s分享给了 %2$s",
"%2$s shared %1$s with %3$s" : "%2$s 共享 %1$s 给 %3$s",
"You removed the share of %2$s for %1$s" : "你移除了 %2$s 的共享 %1$s",
"%2$s removed the share of %3$s for %1$s" : "%2$s 移除了 %3$s 的共享 %1$s",
- "You shared %1$s with group %2$s" : "你把 %1$s 分享给了 %2$s 组",
"%2$s shared %1$s with group %3$s" : "%2$s 共享 %1$s 给群组 %3$s",
"You removed the share of group %2$s for %1$s" : "你移除了组 %2$s 的共享 %1$s",
"%2$s removed the share of group %3$s for %1$s" : "%2$s 移除了组 %3$s 的共享 %1$s",
@@ -53,9 +115,7 @@
"%2$s removed the public link for %1$s" : "%2$s 移除了公共链接 %1$s",
"Your public link for %1$s expired" : "你的公开链接 %1$s 已过期",
"The public link of %2$s for %1$s expired" : "%2$s 的公开链接 %1$s 已过期",
- "%2$s shared %1$s with you" : "%2$s 把 %1$s 分享给了您",
"%2$s removed the share for %1$s" : "%2$s 移除了共享 %1$s",
- "Downloaded via public link" : "通过公开链接下载",
"Shared with %2$s" : "共享给 %2$s",
"Shared with %3$s by %2$s" : "由 %2$s 共享给 %3$s",
"Removed share for %2$s" : "移除共享 %2$s",
@@ -66,27 +126,10 @@
"%2$s removed share of group %3$s" : "%2$s 移除了群 %3$s 的共享",
"Shared via link by %2$s" : "%2$s 以链接方式共享",
"Shared via public link" : "通过公开链接共享",
- "Removed public link" : "移除公开链接",
"%2$s removed public link" : "%2$s 移除了公共链接",
"Public link expired" : "公开链接已过期",
"Public link of %2$s expired" : "%2$s 的公开链接已过期",
"Shared by %2$s" : "由 %2$s 共享",
- "Shares" : "共享",
- "Share API is disabled" : "共享 API 已被禁用",
- "This share is password-protected" : "这是一个密码保护的共享",
- "The password is wrong. Try again." : "用户名或密码错误!请重试",
- "Password" : "密码",
- "No entries found in this folder" : "此文件夹中无项目",
- "Name" : "名称",
- "Share time" : "分享时间",
- "Sorry, this link doesn’t seem to work anymore." : "抱歉,此链接已失效",
- "Reasons might be:" : "可能原因是:",
- "the item was removed" : "此项已移除",
- "the link expired" : "链接过期",
- "sharing is disabled" : "分享已禁用",
- "For more info, please ask the person who sent this link." : "欲知详情,请联系发给你链接的人。",
- "Download" : "下载",
- "Download %s" : "下载 %s",
- "Direct link" : "直接链接"
+ "Shares" : "共享"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php
index ccd0e3aa31d..6181cde6fe6 100644
--- a/apps/files_sharing/lib/Controller/ShareAPIController.php
+++ b/apps/files_sharing/lib/Controller/ShareAPIController.php
@@ -668,6 +668,7 @@ class ShareAPIController extends OCSController {
\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE, // legacy
\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE, // correct
\OCP\Constants::PERMISSION_CREATE, // hidden file list
+ \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE, // allow to edit single files
])
) {
throw new OCSBadRequestException($this->l->t('Can\'t change permissions for public share links'));
diff --git a/apps/files_sharing/lib/Controller/ShareController.php b/apps/files_sharing/lib/Controller/ShareController.php
index 178c4265dd5..6f9d4ca032a 100644
--- a/apps/files_sharing/lib/Controller/ShareController.php
+++ b/apps/files_sharing/lib/Controller/ShareController.php
@@ -160,6 +160,7 @@ class ShareController extends Controller {
/**
* @PublicPage
* @UseSession
+ * @BruteForceProtection publicLinkAuth
*
* Authenticates against password-protected shares
* @param string $token
diff --git a/apps/files_versions/l10n/id.js b/apps/files_versions/l10n/id.js
index aba6fb7f64d..243100d1477 100644
--- a/apps/files_versions/l10n/id.js
+++ b/apps/files_versions/l10n/id.js
@@ -4,7 +4,9 @@ OC.L10N.register(
"Could not revert: %s" : "Tidak dapat mengembalikan: %s",
"Versions" : "Versi",
"Failed to revert {file} to revision {timestamp}." : "Gagal mengembalikan {file} ke revisi {timestamp}.",
+ "_%n byte_::_%n bytes_" : ["%n bytes"],
"Restore" : "Pulihkan",
+ "No versions available" : "Tidak ada versi yang tersedia",
"More versions..." : "Versi lainnya...",
"No other versions available" : "Tidak ada versi lain yang tersedia"
},
diff --git a/apps/files_versions/l10n/id.json b/apps/files_versions/l10n/id.json
index 1df16f621f9..d2cd5919722 100644
--- a/apps/files_versions/l10n/id.json
+++ b/apps/files_versions/l10n/id.json
@@ -2,7 +2,9 @@
"Could not revert: %s" : "Tidak dapat mengembalikan: %s",
"Versions" : "Versi",
"Failed to revert {file} to revision {timestamp}." : "Gagal mengembalikan {file} ke revisi {timestamp}.",
+ "_%n byte_::_%n bytes_" : ["%n bytes"],
"Restore" : "Pulihkan",
+ "No versions available" : "Tidak ada versi yang tersedia",
"More versions..." : "Versi lainnya...",
"No other versions available" : "Tidak ada versi lain yang tersedia"
},"pluralForm" :"nplurals=1; plural=0;"
diff --git a/apps/files_versions/l10n/ja.js b/apps/files_versions/l10n/ja.js
index 4601312a680..9b8cf55e4dd 100644
--- a/apps/files_versions/l10n/ja.js
+++ b/apps/files_versions/l10n/ja.js
@@ -6,6 +6,7 @@ OC.L10N.register(
"Failed to revert {file} to revision {timestamp}." : "{file} を {timestamp} のリビジョンに戻すことができません。",
"_%n byte_::_%n bytes_" : ["%n バイト"],
"Restore" : "復元",
+ "No versions available" : "履歴はありません",
"More versions..." : "他のバージョン...",
"No other versions available" : "利用可能なバージョンはありません"
},
diff --git a/apps/files_versions/l10n/ja.json b/apps/files_versions/l10n/ja.json
index 56c81e17ac6..4e5b8164fef 100644
--- a/apps/files_versions/l10n/ja.json
+++ b/apps/files_versions/l10n/ja.json
@@ -4,6 +4,7 @@
"Failed to revert {file} to revision {timestamp}." : "{file} を {timestamp} のリビジョンに戻すことができません。",
"_%n byte_::_%n bytes_" : ["%n バイト"],
"Restore" : "復元",
+ "No versions available" : "履歴はありません",
"More versions..." : "他のバージョン...",
"No other versions available" : "利用可能なバージョンはありません"
},"pluralForm" :"nplurals=1; plural=0;"
diff --git a/apps/files_versions/l10n/lv.js b/apps/files_versions/l10n/lv.js
index e2f19658d5b..932e457cb41 100644
--- a/apps/files_versions/l10n/lv.js
+++ b/apps/files_versions/l10n/lv.js
@@ -4,7 +4,9 @@ OC.L10N.register(
"Could not revert: %s" : "Nevarēja atgriezt — %s",
"Versions" : "Versijas",
"Failed to revert {file} to revision {timestamp}." : "Neizdevās atjaunot {file} no rediģējuma {timestamp} ",
+ "_%n byte_::_%n bytes_" : ["%n baiti","%n baiti","%n baiti"],
"Restore" : "Atjaunot",
+ "No versions available" : "Nav versijas",
"More versions..." : "Vairāk versiju...",
"No other versions available" : "Citas versijas nav pieejamas"
},
diff --git a/apps/files_versions/l10n/lv.json b/apps/files_versions/l10n/lv.json
index 7c2f786034a..fcf03c1f9f5 100644
--- a/apps/files_versions/l10n/lv.json
+++ b/apps/files_versions/l10n/lv.json
@@ -2,7 +2,9 @@
"Could not revert: %s" : "Nevarēja atgriezt — %s",
"Versions" : "Versijas",
"Failed to revert {file} to revision {timestamp}." : "Neizdevās atjaunot {file} no rediģējuma {timestamp} ",
+ "_%n byte_::_%n bytes_" : ["%n baiti","%n baiti","%n baiti"],
"Restore" : "Atjaunot",
+ "No versions available" : "Nav versijas",
"More versions..." : "Vairāk versiju...",
"No other versions available" : "Citas versijas nav pieejamas"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"
diff --git a/apps/provisioning_api/appinfo/routes.php b/apps/provisioning_api/appinfo/routes.php
index 04a34fba903..baa4e475be8 100644
--- a/apps/provisioning_api/appinfo/routes.php
+++ b/apps/provisioning_api/appinfo/routes.php
@@ -45,6 +45,7 @@ return [
['root' => '/cloud', 'name' => 'Users#getUsers', 'url' => '/users', 'verb' => 'GET'],
['root' => '/cloud', 'name' => 'Users#addUser', 'url' => '/users', 'verb' => 'POST'],
['root' => '/cloud', 'name' => 'Users#getUser', 'url' => '/users/{userId}', 'verb' => 'GET'],
+ ['root' => '/cloud', 'name' => 'Users#getCurrentUser', 'url' => '/user', 'verb' => 'GET'],
['root' => '/cloud', 'name' => 'Users#editUser', 'url' => '/users/{userId}', 'verb' => 'PUT'],
['root' => '/cloud', 'name' => 'Users#deleteUser', 'url' => '/users/{userId}', 'verb' => 'DELETE'],
['root' => '/cloud', 'name' => 'Users#enableUser', 'url' => '/users/{userId}/enable', 'verb' => 'PUT'],
diff --git a/apps/provisioning_api/lib/Controller/UsersController.php b/apps/provisioning_api/lib/Controller/UsersController.php
index 2e8a2ffe5ed..1e8a767b33a 100644
--- a/apps/provisioning_api/lib/Controller/UsersController.php
+++ b/apps/provisioning_api/lib/Controller/UsersController.php
@@ -29,6 +29,7 @@
namespace OCA\Provisioning_API\Controller;
+use OC\Accounts\AccountManager;
use \OC_Helper;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCS\OCSException;
@@ -53,6 +54,8 @@ class UsersController extends OCSController {
private $groupManager;
/** @var IUserSession */
private $userSession;
+ /** @var AccountManager */
+ private $accountManager;
/** @var ILogger */
private $logger;
@@ -63,6 +66,7 @@ class UsersController extends OCSController {
* @param IConfig $config
* @param IGroupManager $groupManager
* @param IUserSession $userSession
+ * @param AccountManager $accountManager
* @param ILogger $logger
*/
public function __construct($appName,
@@ -71,6 +75,7 @@ class UsersController extends OCSController {
IConfig $config,
IGroupManager $groupManager,
IUserSession $userSession,
+ AccountManager $accountManager,
ILogger $logger) {
parent::__construct($appName, $request);
@@ -78,6 +83,7 @@ class UsersController extends OCSController {
$this->config = $config;
$this->groupManager = $groupManager;
$this->userSession = $userSession;
+ $this->accountManager = $accountManager;
$this->logger = $logger;
}
@@ -107,7 +113,7 @@ class UsersController extends OCSController {
}
if($offset === null) {
- $offset = 0;
+ $offset = 0;
}
$users = [];
@@ -159,7 +165,7 @@ class UsersController extends OCSController {
throw new OCSException('no group specified (required for subadmins)', 106);
}
}
-
+
try {
$newUser = $this->userManager->createUser($userid, $password);
$this->logger->info('Successful addUser call with userid: '.$userid, ['app' => 'ocs_api']);
@@ -188,6 +194,42 @@ class UsersController extends OCSController {
* @throws OCSException
*/
public function getUser($userId) {
+ $data = $this->getUserData($userId);
+ return new DataResponse($data);
+ }
+
+ /**
+ * @NoAdminRequired
+ * @NoSubAdminRequired
+ *
+ * gets user info from the currently logged in user
+ *
+ * @return DataResponse
+ * @throws OCSException
+ */
+ public function getCurrentUser() {
+ $user = $this->userSession->getUser();
+ if ($user) {
+ $data = $this->getUserData($user->getUID());
+ // rename "displayname" to "display-name" only for this call to keep
+ // the API stable.
+ $data['display-name'] = $data['displayname'];
+ unset($data['displayname']);
+ return new DataResponse($data);
+
+ }
+
+ throw new OCSException('', \OCP\API::RESPOND_UNAUTHORISED);
+ }
+
+ /**
+ * creates a array with all user data
+ *
+ * @param $userId
+ * @return array
+ * @throws OCSException
+ */
+ protected function getUserData($userId) {
$currentLoggedInUser = $this->userSession->getUser();
$data = [];
@@ -209,12 +251,19 @@ class UsersController extends OCSController {
}
}
+ $userAccount = $this->accountManager->getUser($targetUserObject);
+
// Find the data
+ $data['id'] = $targetUserObject->getUID();
$data['quota'] = $this->fillStorageInfo($userId);
$data['email'] = $targetUserObject->getEMailAddress();
$data['displayname'] = $targetUserObject->getDisplayName();
+ $data['phone'] = $userAccount[\OC\Accounts\AccountManager::PROPERTY_PHONE]['value'];
+ $data['address'] = $userAccount[\OC\Accounts\AccountManager::PROPERTY_ADDRESS]['value'];
+ $data['webpage'] = $userAccount[\OC\Accounts\AccountManager::PROPERTY_WEBSITE]['value'];
+ $data['twitter'] = $userAccount[\OC\Accounts\AccountManager::PROPERTY_TWITTER]['value'];
- return new DataResponse($data);
+ return $data;
}
/**
@@ -436,7 +485,7 @@ class UsersController extends OCSController {
throw new OCSException('', \OCP\API::RESPOND_UNAUTHORISED);
}
}
-
+
}
/**
diff --git a/apps/provisioning_api/tests/Controller/UsersControllerTest.php b/apps/provisioning_api/tests/Controller/UsersControllerTest.php
index 4d3da5fd33a..a3e5bf6fde6 100644
--- a/apps/provisioning_api/tests/Controller/UsersControllerTest.php
+++ b/apps/provisioning_api/tests/Controller/UsersControllerTest.php
@@ -29,9 +29,11 @@
namespace OCA\Provisioning_API\Tests\Controller;
+use OC\Accounts\AccountManager;
use OCA\Provisioning_API\Controller\UsersController;
use OCP\AppFramework\Http\DataResponse;
use OCP\IGroup;
+use OCP\IRequest;
use OCP\IUser;
use OCP\IUserManager;
use OCP\IConfig;
@@ -41,7 +43,7 @@ use Test\TestCase as OriginalTest;
use OCP\ILogger;
class UsersControllerTest extends OriginalTest {
-
+
/** @var IUserManager | PHPUnit_Framework_MockObject_MockObject */
protected $userManager;
/** @var IConfig | PHPUnit_Framework_MockObject_MockObject */
@@ -54,6 +56,10 @@ class UsersControllerTest extends OriginalTest {
protected $logger;
/** @var UsersController | PHPUnit_Framework_MockObject_MockObject */
protected $api;
+ /** @var AccountManager | PHPUnit_Framework_MockObject_MockObject */
+ protected $accountManager;
+ /** @var IRequest | PHPUnit_Framework_MockObject_MockObject */
+ protected $request;
protected function tearDown() {
parent::tearDown();
@@ -77,17 +83,21 @@ class UsersControllerTest extends OriginalTest {
$this->logger = $this->getMockBuilder('OCP\ILogger')
->disableOriginalConstructor()
->getMock();
- $request = $this->getMockBuilder('OCP\IRequest')
+ $this->request = $this->getMockBuilder('OCP\IRequest')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->accountManager = $this->getMockBuilder(AccountManager::class)
->disableOriginalConstructor()
->getMock();
$this->api = $this->getMockBuilder('OCA\Provisioning_API\Controller\UsersController')
->setConstructorArgs([
'provisioning_api',
- $request,
+ $this->request,
$this->userManager,
$this->config,
$this->groupManager,
$this->userSession,
+ $this->accountManager,
$this->logger,
])
->setMethods(['fillStorageInfo'])
@@ -624,7 +634,7 @@ class UsersControllerTest extends OriginalTest {
$this->api->getUser('UserToGet');
}
- public function testGetUserAsAdmin() {
+ public function testGetUserDataAsAdmin() {
$loggedInUser = $this->getMockBuilder('OCP\IUser')
->disableOriginalConstructor()
->getMock();
@@ -652,6 +662,16 @@ class UsersControllerTest extends OriginalTest {
->method('isAdmin')
->with('admin')
->will($this->returnValue(true));
+ $this->accountManager->expects($this->any())->method('getUser')
+ ->with($targetUser)
+ ->willReturn(
+ [
+ AccountManager::PROPERTY_ADDRESS => ['value' => 'address'],
+ AccountManager::PROPERTY_PHONE => ['value' => 'phone'],
+ AccountManager::PROPERTY_TWITTER => ['value' => 'twitter'],
+ AccountManager::PROPERTY_WEBSITE => ['value' => 'website'],
+ ]
+ );
$this->config
->expects($this->at(0))
->method('getUserValue')
@@ -666,17 +686,26 @@ class UsersControllerTest extends OriginalTest {
->expects($this->once())
->method('getDisplayName')
->will($this->returnValue('Demo User'));
+ $targetUser
+ ->expects($this->once())
+ ->method('getUID')
+ ->will($this->returnValue('UID'));
$expected = [
+ 'id' => 'UID',
'enabled' => 'true',
'quota' => ['DummyValue'],
'email' => 'demo@owncloud.org',
'displayname' => 'Demo User',
+ 'phone' => 'phone',
+ 'address' => 'address',
+ 'webpage' => 'website',
+ 'twitter' => 'twitter'
];
- $this->assertEquals($expected, $this->api->getUser('UserToGet')->getData());
+ $this->assertEquals($expected, $this->invokePrivate($this->api, 'getUserData', ['UserToGet']));
}
- public function testGetUserAsSubAdminAndUserIsAccessible() {
+ public function testGetUserDataAsSubAdminAndUserIsAccessible() {
$loggedInUser = $this->getMockBuilder('OCP\IUser')
->disableOriginalConstructor()
->getMock();
@@ -731,14 +760,33 @@ class UsersControllerTest extends OriginalTest {
->expects($this->once())
->method('getDisplayName')
->will($this->returnValue('Demo User'));
+ $targetUser
+ ->expects($this->once())
+ ->method('getUID')
+ ->will($this->returnValue('UID'));
+ $this->accountManager->expects($this->any())->method('getUser')
+ ->with($targetUser)
+ ->willReturn(
+ [
+ AccountManager::PROPERTY_ADDRESS => ['value' => 'address'],
+ AccountManager::PROPERTY_PHONE => ['value' => 'phone'],
+ AccountManager::PROPERTY_TWITTER => ['value' => 'twitter'],
+ AccountManager::PROPERTY_WEBSITE => ['value' => 'website'],
+ ]
+ );
$expected = [
+ 'id' => 'UID',
'enabled' => 'true',
'quota' => ['DummyValue'],
'email' => 'demo@owncloud.org',
'displayname' => 'Demo User',
+ 'phone' => 'phone',
+ 'address' => 'address',
+ 'webpage' => 'website',
+ 'twitter' => 'twitter'
];
- $this->assertEquals($expected, $this->api->getUser('UserToGet')->getData());
+ $this->assertEquals($expected, $this->invokePrivate($this->api, 'getUserData', ['UserToGet']));
}
@@ -746,7 +794,7 @@ class UsersControllerTest extends OriginalTest {
* @expectedException \OCP\AppFramework\OCS\OCSException
* @expectedExceptionCode 997
*/
- public function testGetUserAsSubAdminAndUserIsNotAccessible() {
+ public function testGetUserDataAsSubAdminAndUserIsNotAccessible() {
$loggedInUser = $this->getMockBuilder('OCP\IUser')
->disableOriginalConstructor()
->getMock();
@@ -784,10 +832,10 @@ class UsersControllerTest extends OriginalTest {
->method('getSubAdmin')
->will($this->returnValue($subAdminManager));
- $this->api->getUser('UserToGet');
+ $this->invokePrivate($this->api, 'getUserData', ['UserToGet']);
}
- public function testGetUserAsSubAdminSelfLookup() {
+ public function testGetUserDataAsSubAdminSelfLookup() {
$loggedInUser = $this->getMockBuilder('OCP\IUser')
->disableOriginalConstructor()
->getMock();
@@ -837,13 +885,32 @@ class UsersControllerTest extends OriginalTest {
->expects($this->once())
->method('getEMailAddress')
->will($this->returnValue('subadmin@owncloud.org'));
+ $targetUser
+ ->expects($this->once())
+ ->method('getUID')
+ ->will($this->returnValue('UID'));
+ $this->accountManager->expects($this->any())->method('getUser')
+ ->with($targetUser)
+ ->willReturn(
+ [
+ AccountManager::PROPERTY_ADDRESS => ['value' => 'address'],
+ AccountManager::PROPERTY_PHONE => ['value' => 'phone'],
+ AccountManager::PROPERTY_TWITTER => ['value' => 'twitter'],
+ AccountManager::PROPERTY_WEBSITE => ['value' => 'website'],
+ ]
+ );
$expected = [
+ 'id' => 'UID',
'quota' => ['DummyValue'],
'email' => 'subadmin@owncloud.org',
'displayname' => 'Subadmin User',
+ 'phone' => 'phone',
+ 'address' => 'address',
+ 'webpage' => 'website',
+ 'twitter' => 'twitter'
];
- $this->assertEquals($expected, $this->api->getUser('subadmin')->getData());
+ $this->assertEquals($expected, $this->invokePrivate($this->api, 'getUserData', ['subadmin']));
}
public function testEditUserRegularUserSelfEditChangeDisplayName() {
@@ -2485,4 +2552,105 @@ class UsersControllerTest extends OriginalTest {
$this->assertEquals([], $this->api->disableUser('RequestedUser')->getData());
}
+
+ public function testGetCurrentUserLoggedIn() {
+
+ $user = $this->getMock(IUser::class);
+ $user->expects($this->once())->method('getUID')->willReturn('UID');
+
+ $this->userSession->expects($this->once())->method('getUser')
+ ->willReturn($user);
+
+ /** @var UsersController | PHPUnit_Framework_MockObject_MockObject $api */
+ $api = $this->getMockBuilder('OCA\Provisioning_API\Controller\UsersController')
+ ->setConstructorArgs([
+ 'provisioning_api',
+ $this->request,
+ $this->userManager,
+ $this->config,
+ $this->groupManager,
+ $this->userSession,
+ $this->accountManager,
+ $this->logger,
+ ])
+ ->setMethods(['getUserData'])
+ ->getMock();
+
+ $api->expects($this->once())->method('getUserData')->with('UID')
+ ->willReturn(
+ [
+ 'id' => 'UID',
+ 'enabled' => 'true',
+ 'quota' => ['DummyValue'],
+ 'email' => 'demo@owncloud.org',
+ 'displayname' => 'Demo User',
+ 'phone' => 'phone',
+ 'address' => 'address',
+ 'webpage' => 'website',
+ 'twitter' => 'twitter'
+ ]
+ );
+
+ $expected = [
+ 'id' => 'UID',
+ 'enabled' => 'true',
+ 'quota' => ['DummyValue'],
+ 'email' => 'demo@owncloud.org',
+ 'phone' => 'phone',
+ 'address' => 'address',
+ 'webpage' => 'website',
+ 'twitter' => 'twitter',
+ 'display-name' => 'Demo User'
+ ];
+
+ $this->assertSame($expected, $api->getCurrentUser()->getData());
+ }
+
+ /**
+ * @expectedException \OCP\AppFramework\OCS\OCSException
+ */
+ public function testGetCurrentUserNotLoggedIn() {
+
+ $this->userSession->expects($this->once())->method('getUser')
+ ->willReturn(null);
+
+ $this->api->getCurrentUser();
+ }
+
+
+ public function testGetUser() {
+ /** @var UsersController | PHPUnit_Framework_MockObject_MockObject $api */
+ $api = $this->getMockBuilder('OCA\Provisioning_API\Controller\UsersController')
+ ->setConstructorArgs([
+ 'provisioning_api',
+ $this->request,
+ $this->userManager,
+ $this->config,
+ $this->groupManager,
+ $this->userSession,
+ $this->accountManager,
+ $this->logger,
+ ])
+ ->setMethods(['getUserData'])
+ ->getMock();
+
+ $expected = [
+ 'id' => 'UID',
+ 'enabled' => 'true',
+ 'quota' => ['DummyValue'],
+ 'email' => 'demo@owncloud.org',
+ 'phone' => 'phone',
+ 'address' => 'address',
+ 'webpage' => 'website',
+ 'twitter' => 'twitter',
+ 'displayname' => 'Demo User'
+ ];
+
+ $api->expects($this->once())->method('getUserData')
+ ->with('uid')
+ ->willReturn($expected);
+
+ $this->assertSame($expected, $api->getUser('uid')->getData());
+ }
+
}
diff --git a/apps/twofactor_backupcodes/l10n/lv.js b/apps/twofactor_backupcodes/l10n/lv.js
new file mode 100644
index 00000000000..8d0aba6bab3
--- /dev/null
+++ b/apps/twofactor_backupcodes/l10n/lv.js
@@ -0,0 +1,17 @@
+OC.L10N.register(
+ "twofactor_backupcodes",
+ {
+ "Generate backup codes" : "Izveidot rezerves kodus",
+ "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Rezerves kodi ir ģenerēti. {{used}} no {{total}} kodiem ir izmantoti.",
+ "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Šie ir jūsu dublējuma kodi. Lūdzu saglabāt un / vai izdrukāt tos, jūs nevarēsiet izlasīt kodus vēlreiz",
+ "Save backup codes" : "Saglabāt rezerves kodus",
+ "Print backup codes" : "Drukāt dublējuma kodus",
+ "Regenerate backup codes" : "Atjaunot dublējuma kodus",
+ "If you regenerate backup codes, you automatically invalidate old codes." : "Ja atjaunot dublējum kodus, tiek automātiski anulēti vecie kodi.",
+ "An error occurred while generating your backup codes" : "Radās kļūda, ģenerējot jūsu dublējuma kodus",
+ "Nextcloud backup codes" : "Nextcloud dublēšanas kodi",
+ "Two-factor authentication" : "Divpakāpju autentifikācija",
+ "Backup code" : "Dublēšanas kods",
+ "Use backup code" : "Izmantojiet dublēšanas kodu"
+},
+"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/apps/twofactor_backupcodes/l10n/lv.json b/apps/twofactor_backupcodes/l10n/lv.json
new file mode 100644
index 00000000000..35cd09352c2
--- /dev/null
+++ b/apps/twofactor_backupcodes/l10n/lv.json
@@ -0,0 +1,15 @@
+{ "translations": {
+ "Generate backup codes" : "Izveidot rezerves kodus",
+ "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Rezerves kodi ir ģenerēti. {{used}} no {{total}} kodiem ir izmantoti.",
+ "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Šie ir jūsu dublējuma kodi. Lūdzu saglabāt un / vai izdrukāt tos, jūs nevarēsiet izlasīt kodus vēlreiz",
+ "Save backup codes" : "Saglabāt rezerves kodus",
+ "Print backup codes" : "Drukāt dublējuma kodus",
+ "Regenerate backup codes" : "Atjaunot dublējuma kodus",
+ "If you regenerate backup codes, you automatically invalidate old codes." : "Ja atjaunot dublējum kodus, tiek automātiski anulēti vecie kodi.",
+ "An error occurred while generating your backup codes" : "Radās kļūda, ģenerējot jūsu dublējuma kodus",
+ "Nextcloud backup codes" : "Nextcloud dublēšanas kodi",
+ "Two-factor authentication" : "Divpakāpju autentifikācija",
+ "Backup code" : "Dublēšanas kods",
+ "Use backup code" : "Izmantojiet dublēšanas kodu"
+},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"
+} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/ja.js b/apps/updatenotification/l10n/ja.js
index 2e8e64decb3..e19ab909c1d 100644
--- a/apps/updatenotification/l10n/ja.js
+++ b/apps/updatenotification/l10n/ja.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"Channel updated" : "チャンネルが更新されました",
"Update to %1$s is available." : "%1$s への更新が利用可能です。",
"Update for %1$s to version %2$s is available." : "%1$s に対するバージョン %2$s へアップデートが利用可能です。",
+ "Update for {app} to version %s is available." : " {app} に対するバージョン %s へアップデートが利用可能です。",
"A new version is available: %s" : "新しいバージョンが利用可能: %s",
"Open updater" : "アップデーターを開く",
"Download now" : "今すぐダウンロード",
@@ -17,6 +18,7 @@ OC.L10N.register(
"Notify members of the following groups about available updates:" : "次のグループのメンバーに対してアップデートのメッセージが表示されます:",
"Only notification for app updates are available." : "アプリ更新情報があるときのみ通知する。",
"The selected update channel makes dedicated notifications for the server obsolete." : "選択した更新チャネルでは、廃止サーバーについて専用の通知を行います。",
- "The selected update channel does not support updates of the server." : "選択したチャンネルでは、サーバーのアップデートをサポートしていません。"
+ "The selected update channel does not support updates of the server." : "選択したチャンネルでは、サーバーのアップデートをサポートしていません。",
+ "You are running PHP %s. To allow you to upgrade to Nextcloud 11 and higher you need to run at least PHP 5.6. Once you upgraded your PHP version you will be able to receive update notifications for these newer versions." : "PHP %s が動いています。Nextcloud 11以上にバージョンアップする場合は、PHP 5.6以上を使う必要があります。PHPのバージョンをアップグレードしたら、新しいバージョンのアップデート通知を受信できるようになります。"
},
"nplurals=1; plural=0;");
diff --git a/apps/updatenotification/l10n/ja.json b/apps/updatenotification/l10n/ja.json
index 22fb09f50fc..ed355e5895a 100644
--- a/apps/updatenotification/l10n/ja.json
+++ b/apps/updatenotification/l10n/ja.json
@@ -5,6 +5,7 @@
"Channel updated" : "チャンネルが更新されました",
"Update to %1$s is available." : "%1$s への更新が利用可能です。",
"Update for %1$s to version %2$s is available." : "%1$s に対するバージョン %2$s へアップデートが利用可能です。",
+ "Update for {app} to version %s is available." : " {app} に対するバージョン %s へアップデートが利用可能です。",
"A new version is available: %s" : "新しいバージョンが利用可能: %s",
"Open updater" : "アップデーターを開く",
"Download now" : "今すぐダウンロード",
@@ -15,6 +16,7 @@
"Notify members of the following groups about available updates:" : "次のグループのメンバーに対してアップデートのメッセージが表示されます:",
"Only notification for app updates are available." : "アプリ更新情報があるときのみ通知する。",
"The selected update channel makes dedicated notifications for the server obsolete." : "選択した更新チャネルでは、廃止サーバーについて専用の通知を行います。",
- "The selected update channel does not support updates of the server." : "選択したチャンネルでは、サーバーのアップデートをサポートしていません。"
+ "The selected update channel does not support updates of the server." : "選択したチャンネルでは、サーバーのアップデートをサポートしていません。",
+ "You are running PHP %s. To allow you to upgrade to Nextcloud 11 and higher you need to run at least PHP 5.6. Once you upgraded your PHP version you will be able to receive update notifications for these newer versions." : "PHP %s が動いています。Nextcloud 11以上にバージョンアップする場合は、PHP 5.6以上を使う必要があります。PHPのバージョンをアップグレードしたら、新しいバージョンのアップデート通知を受信できるようになります。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/zh_CN.js b/apps/updatenotification/l10n/zh_CN.js
index ddfe6179139..9c224667f6b 100644
--- a/apps/updatenotification/l10n/zh_CN.js
+++ b/apps/updatenotification/l10n/zh_CN.js
@@ -6,8 +6,8 @@ OC.L10N.register(
"{version} is available. Get more information on how to update." : "新版本 {version} 已可以使用。获取更多升级相关信息。",
"Channel updated" : "更新通道",
"Update to %1$s is available." : " 可以更新到 %1$s 。",
- "Update for %1$s to version %2$s is available." : "可以从 %1$s 版本更新到 %2$s 版本。",
- "Update for {app} to version %s is available." : "可以将您的 {app} 更新到版本 %s 。",
+ "Update for %1$s to version %2$s is available." : "可以从 %1$s 版本更新到 %2$s 版本。",
+ "Update for {app} to version %s is available." : "可以将您的 {app} 更新到版本 %s 。",
"A new version is available: %s" : "有可用的新版本: %s",
"Open updater" : "打开更新器",
"Download now" : "开始下载",
diff --git a/apps/updatenotification/l10n/zh_CN.json b/apps/updatenotification/l10n/zh_CN.json
index fc886540cb4..4ffaf9f9e96 100644
--- a/apps/updatenotification/l10n/zh_CN.json
+++ b/apps/updatenotification/l10n/zh_CN.json
@@ -4,8 +4,8 @@
"{version} is available. Get more information on how to update." : "新版本 {version} 已可以使用。获取更多升级相关信息。",
"Channel updated" : "更新通道",
"Update to %1$s is available." : " 可以更新到 %1$s 。",
- "Update for %1$s to version %2$s is available." : "可以从 %1$s 版本更新到 %2$s 版本。",
- "Update for {app} to version %s is available." : "可以将您的 {app} 更新到版本 %s 。",
+ "Update for %1$s to version %2$s is available." : "可以从 %1$s 版本更新到 %2$s 版本。",
+ "Update for {app} to version %s is available." : "可以将您的 {app} 更新到版本 %s 。",
"A new version is available: %s" : "有可用的新版本: %s",
"Open updater" : "打开更新器",
"Download now" : "开始下载",
diff --git a/apps/user_ldap/appinfo/routes.php b/apps/user_ldap/appinfo/routes.php
index c01a3c11472..45b43c21409 100644
--- a/apps/user_ldap/appinfo/routes.php
+++ b/apps/user_ldap/appinfo/routes.php
@@ -36,3 +36,13 @@ $this->create('user_ldap_ajax_testConfiguration', 'ajax/testConfiguration.php')
->actionInclude('user_ldap/ajax/testConfiguration.php');
$this->create('user_ldap_ajax_wizard', 'ajax/wizard.php')
->actionInclude('user_ldap/ajax/wizard.php');
+
+$application = new \OCP\AppFramework\App('user_ldap');
+$application->registerRoutes($this, [
+ 'ocs' => [
+ ['name' => 'ConfigAPI#create', 'url' => '/api/v1/config', 'verb' => 'POST'],
+ ['name' => 'ConfigAPI#show', 'url' => '/api/v1/config/{configID}', 'verb' => 'GET'],
+ ['name' => 'ConfigAPI#modify', 'url' => '/api/v1/config/{configID}', 'verb' => 'PUT'],
+ ['name' => 'ConfigAPI#delete', 'url' => '/api/v1/config/{configID}', 'verb' => 'DELETE'],
+ ]
+]);
diff --git a/apps/user_ldap/img/app-dark.svg b/apps/user_ldap/img/app-dark.svg
new file mode 100644
index 00000000000..54939fab4f2
--- /dev/null
+++ b/apps/user_ldap/img/app-dark.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.0" viewBox="0 0 16 16">
+ <path style="block-progression:tb;color:#000000;text-transform:none;text-indent:0" fill="#000" d="m8.4036 1c-1.7312 0-3.1998 1.2661-3.1998 2.9 0.012287 0.51643 0.058473 1.1532 0.36664 2.5v0.033333l0.033328 0.033333c0.098928 0.28338 0.24289 0.44549 0.4333 0.66666s0.41742 0.48149 0.63328 0.69999c0.025397 0.025708 0.041676 0.041633 0.066656 0.066677 0.04281 0.18631 0.094672 0.38681 0.13332 0.56666 0.10284 0.47851 0.092296 0.81737 0.066668 0.93332-0.74389 0.26121-1.6694 0.57228-2.4998 0.93332-0.46622 0.2027-0.8881 0.3837-1.2332 0.59999-0.34513 0.2163-0.68837 0.37971-0.79994 0.86666-0.16004 0.63293-0.19866 0.7539-0.39997 1.5333-0.027212 0.20914 0.083011 0.42961 0.26665 0.53333 1.5078 0.81451 3.824 1.1423 6.1329 1.1333s4.6066-0.35609 6.0662-1.1333c0.11739-0.07353 0.14304-0.10869 0.13332-0.2333-0.04365-0.68908-0.08154-1.3669-0.13332-1.7666-0.01807-0.09908-0.06492-0.19275-0.13332-0.26666-0.46366-0.5537-1.1564-0.89218-1.9665-1.2333-0.7396-0.31144-1.6067-0.63486-2.4665-0.99999-0.048123-0.10721-0.095926-0.41912 0-0.89999 0.025759-0.12912 0.066096-0.26742 0.099994-0.4 0.0808-0.090507 0.14378-0.16447 0.23332-0.26666 0.19096-0.21796 0.39614-0.44661 0.56662-0.66666s0.30996-0.40882 0.39997-0.66666l0.03333-0.033333c0.34839-1.4062 0.34857-1.9929 0.36664-2.5v-0.033333c0-1.6339-1.4686-2.9-3.1998-2.9z"/>
+</svg>
diff --git a/apps/user_ldap/l10n/fr.js b/apps/user_ldap/l10n/fr.js
index d07010761eb..3f77a537d03 100644
--- a/apps/user_ldap/l10n/fr.js
+++ b/apps/user_ldap/l10n/fr.js
@@ -20,9 +20,9 @@ OC.L10N.register(
"Select groups" : "Sélectionnez les groupes",
"Select object classes" : "Sélectionner les classes d'objet",
"Please check the credentials, they seem to be wrong." : "Veuillez vérifier vos informations d'identification",
- "Please specify the port, it could not be auto-detected." : "Veuillez spécifier le port, il n'a pu être détecté automatiquement",
+ "Please specify the port, it could not be auto-detected." : "Veuillez indiquer le port, il n'a pu être détecté automatiquement.",
"Base DN could not be auto-detected, please revise credentials, host and port." : "Le DN de base n'a pu être détecté automatiquement. Vérifiez les informations d'identification, l'hôte et le port.",
- "Could not detect Base DN, please enter it manually." : "Impossible de détecter le DN de base, veuillez le spécifier manuellement",
+ "Could not detect Base DN, please enter it manually." : "Impossible de détecter le DN de base, veuillez le saisir manuellement.",
"{nthServer}. Server" : "{nthServer}. Serveur",
"No object found in the given Base DN. Please revise." : "Aucun objet trouvé dans le DN de base spécifié. Veuillez le vérifier.",
"More than 1,000 directory entries available." : "Il y a plus de 1 000 entrées de répertoire disponibles.",
@@ -89,7 +89,7 @@ OC.L10N.register(
"Password" : "Mot de passe",
"For anonymous access, leave DN and Password empty." : "Pour un accès anonyme, laisser le DN utilisateur et le mot de passe vides.",
"One Base DN per line" : "Un DN de base par ligne",
- "You can specify Base DN for users and groups in the Advanced tab" : "Vous pouvez spécifier les DN de base de vos utilisateurs et groupes via l'onglet Avancé",
+ "You can specify Base DN for users and groups in the Advanced tab" : "Vous pouvez indiquer le DN de base de vos utilisateurs et groupes via l'onglet Avancé",
"Detect Base DN" : "Détecter le DN de base",
"Test Base DN" : "Tester le DN de base",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Évite les requêtes LDAP automatiques. Mieux pour les installations de grande ampleur, mais demande des connaissances en LDAP.",
diff --git a/apps/user_ldap/l10n/fr.json b/apps/user_ldap/l10n/fr.json
index 72feb90e314..7f402c10a50 100644
--- a/apps/user_ldap/l10n/fr.json
+++ b/apps/user_ldap/l10n/fr.json
@@ -18,9 +18,9 @@
"Select groups" : "Sélectionnez les groupes",
"Select object classes" : "Sélectionner les classes d'objet",
"Please check the credentials, they seem to be wrong." : "Veuillez vérifier vos informations d'identification",
- "Please specify the port, it could not be auto-detected." : "Veuillez spécifier le port, il n'a pu être détecté automatiquement",
+ "Please specify the port, it could not be auto-detected." : "Veuillez indiquer le port, il n'a pu être détecté automatiquement.",
"Base DN could not be auto-detected, please revise credentials, host and port." : "Le DN de base n'a pu être détecté automatiquement. Vérifiez les informations d'identification, l'hôte et le port.",
- "Could not detect Base DN, please enter it manually." : "Impossible de détecter le DN de base, veuillez le spécifier manuellement",
+ "Could not detect Base DN, please enter it manually." : "Impossible de détecter le DN de base, veuillez le saisir manuellement.",
"{nthServer}. Server" : "{nthServer}. Serveur",
"No object found in the given Base DN. Please revise." : "Aucun objet trouvé dans le DN de base spécifié. Veuillez le vérifier.",
"More than 1,000 directory entries available." : "Il y a plus de 1 000 entrées de répertoire disponibles.",
@@ -87,7 +87,7 @@
"Password" : "Mot de passe",
"For anonymous access, leave DN and Password empty." : "Pour un accès anonyme, laisser le DN utilisateur et le mot de passe vides.",
"One Base DN per line" : "Un DN de base par ligne",
- "You can specify Base DN for users and groups in the Advanced tab" : "Vous pouvez spécifier les DN de base de vos utilisateurs et groupes via l'onglet Avancé",
+ "You can specify Base DN for users and groups in the Advanced tab" : "Vous pouvez indiquer le DN de base de vos utilisateurs et groupes via l'onglet Avancé",
"Detect Base DN" : "Détecter le DN de base",
"Test Base DN" : "Tester le DN de base",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Évite les requêtes LDAP automatiques. Mieux pour les installations de grande ampleur, mais demande des connaissances en LDAP.",
diff --git a/apps/user_ldap/lib/Access.php b/apps/user_ldap/lib/Access.php
index cace64a7deb..9f6639c0db0 100644
--- a/apps/user_ldap/lib/Access.php
+++ b/apps/user_ldap/lib/Access.php
@@ -678,6 +678,9 @@ class Access extends LDAPUtility implements IUserTools {
*/
public function cacheUserDisplayName($ocName, $displayName, $displayName2 = '') {
$user = $this->userManager->get($ocName);
+ if($user === null) {
+ return;
+ }
$displayName = $user->composeAndStoreDisplayName($displayName, $displayName2);
$cacheKeyTrunk = 'getDisplayName';
$this->connection->writeToCache($cacheKeyTrunk.$ocName, $displayName);
diff --git a/apps/user_ldap/lib/Command/CreateEmptyConfig.php b/apps/user_ldap/lib/Command/CreateEmptyConfig.php
index 28d3a1d8bff..38d3192058c 100644
--- a/apps/user_ldap/lib/Command/CreateEmptyConfig.php
+++ b/apps/user_ldap/lib/Command/CreateEmptyConfig.php
@@ -29,6 +29,7 @@ use OCA\User_LDAP\Configuration;
use OCA\User_LDAP\Helper;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
class CreateEmptyConfig extends Command {
@@ -47,29 +48,24 @@ class CreateEmptyConfig extends Command {
$this
->setName('ldap:create-empty-config')
->setDescription('creates an empty LDAP configuration')
+ ->addOption(
+ 'only-print-prefix',
+ 'p',
+ InputOption::VALUE_NONE,
+ 'outputs only the prefix'
+ )
;
}
protected function execute(InputInterface $input, OutputInterface $output) {
- $configPrefix = $this->getNewConfigurationPrefix();
- $output->writeln("Created new configuration with configID '{$configPrefix}'");
-
+ $configPrefix = $this->helper->getNextServerConfigurationPrefix();
$configHolder = new Configuration($configPrefix);
$configHolder->saveConfiguration();
- }
- protected function getNewConfigurationPrefix() {
- $serverConnections = $this->helper->getServerConfigurationPrefixes();
-
- // first connection uses no prefix
- if(sizeof($serverConnections) == 0) {
- return '';
+ $prose = '';
+ if(!$input->getOption('only-print-prefix')) {
+ $prose = 'Created new configuration with configID ';
}
-
- sort($serverConnections);
- $lastKey = array_pop($serverConnections);
- $lastNumber = intval(str_replace('s', '', $lastKey));
- $nextPrefix = 's' . str_pad($lastNumber + 1, 2, '0', STR_PAD_LEFT);
- return $nextPrefix;
+ $output->writeln($prose . "{$configPrefix}");
}
}
diff --git a/apps/user_ldap/lib/Configuration.php b/apps/user_ldap/lib/Configuration.php
index eb4fcd3fbe6..65ee9c70807 100644
--- a/apps/user_ldap/lib/Configuration.php
+++ b/apps/user_ldap/lib/Configuration.php
@@ -393,9 +393,12 @@ class Configuration {
* @return bool
*/
protected function saveValue($varName, $value) {
- return \OCP\Config::setAppValue('user_ldap',
- $this->configPrefix.$varName,
- $value);
+ \OC::$server->getConfig()->setAppValue(
+ 'user_ldap',
+ $this->configPrefix.$varName,
+ $value
+ );
+ return true;
}
/**
diff --git a/apps/user_ldap/lib/Controller/ConfigAPIController.php b/apps/user_ldap/lib/Controller/ConfigAPIController.php
new file mode 100644
index 00000000000..7d51b0aafe4
--- /dev/null
+++ b/apps/user_ldap/lib/Controller/ConfigAPIController.php
@@ -0,0 +1,322 @@
+<?php
+/**
+ * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de>
+ *
+ * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\User_LDAP\Controller;
+
+use OC\CapabilitiesManager;
+use OC\Core\Controller\OCSController;
+use OC\Security\Bruteforce\Throttler;
+use OC\Security\IdentityProof\Manager;
+use OCA\User_LDAP\Configuration;
+use OCA\User_LDAP\Helper;
+use OCP\AppFramework\Http\DataResponse;
+use OCP\AppFramework\OCS\OCSBadRequestException;
+use OCP\AppFramework\OCS\OCSException;
+use OCP\AppFramework\OCS\OCSNotFoundException;
+use OCP\ILogger;
+use OCP\IRequest;
+use OCP\IUserManager;
+use OCP\IUserSession;
+
+class ConfigAPIController extends OCSController {
+
+ /** @var Helper */
+ private $ldapHelper;
+
+ /** @var ILogger */
+ private $logger;
+
+ public function __construct(
+ $appName,
+ IRequest $request,
+ CapabilitiesManager $capabilitiesManager,
+ IUserSession $userSession,
+ IUserManager $userManager,
+ Throttler $throttler,
+ Manager $keyManager,
+ Helper $ldapHelper,
+ ILogger $logger
+ ) {
+ parent::__construct(
+ $appName,
+ $request,
+ $capabilitiesManager,
+ $userSession,
+ $userManager,
+ $throttler,
+ $keyManager
+ );
+
+
+ $this->ldapHelper = $ldapHelper;
+ $this->logger = $logger;
+ }
+
+ /**
+ * creates a new (empty) configuration and returns the resulting prefix
+ *
+ * Example: curl -X POST -H "OCS-APIREQUEST: true" -u $admin:$password \
+ * https://nextcloud.server/ocs/v2.php/apps/user_ldap/api/v1/config
+ *
+ * results in:
+ *
+ * <?xml version="1.0"?>
+ * <ocs>
+ * <meta>
+ * <status>ok</status>
+ * <statuscode>200</statuscode>
+ * <message>OK</message>
+ * </meta>
+ * <data>
+ * <configID>s40</configID>
+ * </data>
+ * </ocs>
+ *
+ * Failing example: if an exception is thrown (e.g. Database connection lost)
+ * the detailed error will be logged. The output will then look like:
+ *
+ * <?xml version="1.0"?>
+ * <ocs>
+ * <meta>
+ * <status>failure</status>
+ * <statuscode>999</statuscode>
+ * <message>An issue occurred when creating the new config.</message>
+ * </meta>
+ * <data/>
+ * </ocs>
+ *
+ * For JSON output provide the format=json parameter
+ *
+ * @return DataResponse
+ * @throws OCSException
+ */
+ public function create() {
+ try {
+ $configPrefix = $this->ldapHelper->getNextServerConfigurationPrefix();
+ $configHolder = new Configuration($configPrefix);
+ $configHolder->saveConfiguration();
+ } catch (\Exception $e) {
+ $this->logger->logException($e);
+ throw new OCSException('An issue occurred when creating the new config.');
+ }
+ return new DataResponse(['configID' => $configPrefix]);
+ }
+
+ /**
+ * Deletes a LDAP configuration, if present.
+ *
+ * Example:
+ * curl -X DELETE -H "OCS-APIREQUEST: true" -u $admin:$password \
+ * https://nextcloud.server/ocs/v2.php/apps/user_ldap/api/v1/config/s60
+ *
+ * <?xml version="1.0"?>
+ * <ocs>
+ * <meta>
+ * <status>ok</status>
+ * <statuscode>200</statuscode>
+ * <message>OK</message>
+ * </meta>
+ * <data/>
+ * </ocs>
+ *
+ * @param string $configID
+ * @return DataResponse
+ * @throws OCSBadRequestException
+ * @throws OCSException
+ */
+ public function delete($configID) {
+ try {
+ $this->ensureConfigIDExists($configID);
+ if(!$this->ldapHelper->deleteServerConfiguration($configID)) {
+ throw new OCSException('Could not delete configuration');
+ }
+ } catch(OCSException $e) {
+ throw $e;
+ } catch(\Exception $e) {
+ $this->logger->logException($e);
+ throw new OCSException('An issue occurred when deleting the config.');
+ }
+
+ return new DataResponse();
+ }
+
+ /**
+ * modifies a configuration
+ *
+ * Example:
+ * curl -X PUT -d "configData[ldapHost]=ldaps://my.ldap.server&configData[ldapPort]=636" \
+ * -H "OCS-APIREQUEST: true" -u $admin:$password \
+ * https://nextcloud.server/ocs/v2.php/apps/user_ldap/api/v1/config/s60
+ *
+ * <?xml version="1.0"?>
+ * <ocs>
+ * <meta>
+ * <status>ok</status>
+ * <statuscode>200</statuscode>
+ * <message>OK</message>
+ * </meta>
+ * <data/>
+ * </ocs>
+ *
+ * @param string $configID
+ * @param array $configData
+ * @return DataResponse
+ * @throws OCSException
+ */
+ public function modify($configID, $configData) {
+ try {
+ $this->ensureConfigIDExists($configID);
+
+ if(!is_array($configData)) {
+ throw new OCSBadRequestException('configData is not properly set');
+ }
+
+ $configuration = new Configuration($configID);
+ $configKeys = $configuration->getConfigTranslationArray();
+
+ foreach ($configKeys as $i => $key) {
+ if(isset($configData[$key])) {
+ $configuration->$key = $configData[$key];
+ }
+ }
+
+ $configuration->saveConfiguration();
+ } catch(OCSException $e) {
+ throw $e;
+ } catch (\Exception $e) {
+ $this->logger->logException($e);
+ throw new OCSException('An issue occurred when modifying the config.');
+ }
+
+ return new DataResponse();
+ }
+
+ /**
+ * retrieves a configuration
+ *
+ * <?xml version="1.0"?>
+ * <ocs>
+ * <meta>
+ * <status>ok</status>
+ * <statuscode>200</statuscode>
+ * <message>OK</message>
+ * </meta>
+ * <data>
+ * <ldapHost>ldaps://my.ldap.server</ldapHost>
+ * <ldapPort>7770</ldapPort>
+ * <ldapBackupHost></ldapBackupHost>
+ * <ldapBackupPort></ldapBackupPort>
+ * <ldapBase>ou=small,dc=my,dc=ldap,dc=server</ldapBase>
+ * <ldapBaseUsers>ou=users,ou=small,dc=my,dc=ldap,dc=server</ldapBaseUsers>
+ * <ldapBaseGroups>ou=small,dc=my,dc=ldap,dc=server</ldapBaseGroups>
+ * <ldapAgentName>cn=root,dc=my,dc=ldap,dc=server</ldapAgentName>
+ * <ldapAgentPassword>clearTextWithShowPassword=1</ldapAgentPassword>
+ * <ldapTLS>1</ldapTLS>
+ * <turnOffCertCheck>0</turnOffCertCheck>
+ * <ldapIgnoreNamingRules/>
+ * <ldapUserDisplayName>displayname</ldapUserDisplayName>
+ * <ldapUserDisplayName2>uid</ldapUserDisplayName2>
+ * <ldapUserFilterObjectclass>inetOrgPerson</ldapUserFilterObjectclass>
+ * <ldapUserFilterGroups></ldapUserFilterGroups>
+ * <ldapUserFilter>(&amp;(objectclass=nextcloudUser)(nextcloudEnabled=TRUE))</ldapUserFilter>
+ * <ldapUserFilterMode>1</ldapUserFilterMode>
+ * <ldapGroupFilter>(&amp;(|(objectclass=nextcloudGroup)))</ldapGroupFilter>
+ * <ldapGroupFilterMode>0</ldapGroupFilterMode>
+ * <ldapGroupFilterObjectclass>nextcloudGroup</ldapGroupFilterObjectclass>
+ * <ldapGroupFilterGroups></ldapGroupFilterGroups>
+ * <ldapGroupDisplayName>cn</ldapGroupDisplayName>
+ * <ldapGroupMemberAssocAttr>memberUid</ldapGroupMemberAssocAttr>
+ * <ldapLoginFilter>(&amp;(|(objectclass=inetOrgPerson))(uid=%uid))</ldapLoginFilter>
+ * <ldapLoginFilterMode>0</ldapLoginFilterMode>
+ * <ldapLoginFilterEmail>0</ldapLoginFilterEmail>
+ * <ldapLoginFilterUsername>1</ldapLoginFilterUsername>
+ * <ldapLoginFilterAttributes></ldapLoginFilterAttributes>
+ * <ldapQuotaAttribute></ldapQuotaAttribute>
+ * <ldapQuotaDefault></ldapQuotaDefault>
+ * <ldapEmailAttribute>mail</ldapEmailAttribute>
+ * <ldapCacheTTL>20</ldapCacheTTL>
+ * <ldapUuidUserAttribute>auto</ldapUuidUserAttribute>
+ * <ldapUuidGroupAttribute>auto</ldapUuidGroupAttribute>
+ * <ldapOverrideMainServer></ldapOverrideMainServer>
+ * <ldapConfigurationActive>1</ldapConfigurationActive>
+ * <ldapAttributesForUserSearch>uid;sn;givenname</ldapAttributesForUserSearch>
+ * <ldapAttributesForGroupSearch></ldapAttributesForGroupSearch>
+ * <ldapExperiencedAdmin>0</ldapExperiencedAdmin>
+ * <homeFolderNamingRule></homeFolderNamingRule>
+ * <hasPagedResultSupport></hasPagedResultSupport>
+ * <hasMemberOfFilterSupport></hasMemberOfFilterSupport>
+ * <useMemberOfToDetectMembership>1</useMemberOfToDetectMembership>
+ * <ldapExpertUsernameAttr>uid</ldapExpertUsernameAttr>
+ * <ldapExpertUUIDUserAttr>uid</ldapExpertUUIDUserAttr>
+ * <ldapExpertUUIDGroupAttr></ldapExpertUUIDGroupAttr>
+ * <lastJpegPhotoLookup>0</lastJpegPhotoLookup>
+ * <ldapNestedGroups>0</ldapNestedGroups>
+ * <ldapPagingSize>500</ldapPagingSize>
+ * <turnOnPasswordChange>1</turnOnPasswordChange>
+ * <ldapDynamicGroupMemberURL></ldapDynamicGroupMemberURL>
+ * </data>
+ * </ocs>
+ *
+ * @param string $configID
+ * @param bool|string $showPassword
+ * @return DataResponse
+ * @throws OCSException
+ */
+ public function show($configID, $showPassword = false) {
+ try {
+ $this->ensureConfigIDExists($configID);
+
+ $config = new Configuration($configID);
+ $data = $config->getConfiguration();
+ if(!boolval(intval($showPassword))) {
+ $data['ldapAgentPassword'] = '***';
+ }
+ foreach ($data as $key => $value) {
+ if(is_array($value)) {
+ $value = implode(';', $value);
+ $data[$key] = $value;
+ }
+ }
+ } catch(OCSException $e) {
+ throw $e;
+ } catch (\Exception $e) {
+ $this->logger->logException($e);
+ throw new OCSException('An issue occurred when modifying the config.');
+ }
+
+ return new DataResponse($data);
+ }
+
+ /**
+ * if the given config ID is not available, an exception is thrown
+ *
+ * @param string $configID
+ * @throws OCSNotFoundException
+ */
+ private function ensureConfigIDExists($configID) {
+ $prefixes = $this->ldapHelper->getServerConfigurationPrefixes();
+ if(!in_array($configID, $prefixes, true)) {
+ throw new OCSNotFoundException('Config ID not found');
+ }
+ }
+}
diff --git a/apps/user_ldap/lib/Helper.php b/apps/user_ldap/lib/Helper.php
index b48b4001f9d..f1186ffa310 100644
--- a/apps/user_ldap/lib/Helper.php
+++ b/apps/user_ldap/lib/Helper.php
@@ -105,6 +105,25 @@ class Helper {
return $result;
}
+ /**
+ * return the next available configuration prefix
+ *
+ * @return string
+ */
+ public function getNextServerConfigurationPrefix() {
+ $serverConnections = $this->getServerConfigurationPrefixes();
+
+ if(count($serverConnections) === 0) {
+ return 's01';
+ }
+
+ sort($serverConnections);
+ $lastKey = array_pop($serverConnections);
+ $lastNumber = intval(str_replace('s', '', $lastKey));
+ $nextPrefix = 's' . str_pad($lastNumber + 1, 2, '0', STR_PAD_LEFT);
+ return $nextPrefix;
+ }
+
private function getServersConfig($value) {
$regex = '/' . $value . '$/S';
diff --git a/apps/user_ldap/lib/Mapping/AbstractMapping.php b/apps/user_ldap/lib/Mapping/AbstractMapping.php
index 8e7f1f8b137..6fb4a5436c3 100644
--- a/apps/user_ldap/lib/Mapping/AbstractMapping.php
+++ b/apps/user_ldap/lib/Mapping/AbstractMapping.php
@@ -209,6 +209,17 @@ abstract class AbstractMapping {
* @return bool
*/
public function map($fdn, $name, $uuid) {
+ if(mb_strlen($fdn) > 255) {
+ \OC::$server->getLogger()->error(
+ 'Cannot map, because the DN exceeds 255 characters: {dn}',
+ [
+ 'app' => 'user_ldap',
+ 'dn' => $fdn,
+ ]
+ );
+ return false;
+ }
+
$row = array(
'ldap_dn' => $fdn,
'owncloud_name' => $name,
diff --git a/apps/user_ldap/lib/Settings/Section.php b/apps/user_ldap/lib/Settings/Section.php
index a4106bacb9e..86d293d3879 100644
--- a/apps/user_ldap/lib/Settings/Section.php
+++ b/apps/user_ldap/lib/Settings/Section.php
@@ -77,6 +77,6 @@ class Section implements IIconSection {
* {@inheritdoc}
*/
public function getIcon() {
- return $this->url->imagePath('user_ldap', 'app.svg');
+ return $this->url->imagePath('user_ldap', 'app-dark.svg');
}
}
diff --git a/apps/user_ldap/tests/Mapping/AbstractMappingTest.php b/apps/user_ldap/tests/Mapping/AbstractMappingTest.php
index 91013085c2c..5c3474d9ad2 100644
--- a/apps/user_ldap/tests/Mapping/AbstractMappingTest.php
+++ b/apps/user_ldap/tests/Mapping/AbstractMappingTest.php
@@ -106,7 +106,8 @@ abstract class AbstractMappingTest extends \Test\TestCase {
list($mapper, $data) = $this->initTest();
// test that mapping will not happen when it shall not
- $paramKeys = array('', 'dn', 'name', 'uuid');
+ $tooLongDN = 'uid=joann,ou=Secret Small Specialized Department,ou=Some Tremendously Important Department,ou=Another Very Important Department,ou=Pretty Meaningful Derpartment,ou=Quite Broad And General Department,ou=The Topmost Department,dc=hugelysuccessfulcompany,dc=com';
+ $paramKeys = array('', 'dn', 'name', 'uuid', $tooLongDN);
foreach($paramKeys as $key) {
$failEntry = $data[0];
if(!empty($key)) {
diff --git a/apps/user_ldap/tests/Settings/SectionTest.php b/apps/user_ldap/tests/Settings/SectionTest.php
index ae780dd7665..5f565e89933 100644
--- a/apps/user_ldap/tests/Settings/SectionTest.php
+++ b/apps/user_ldap/tests/Settings/SectionTest.php
@@ -68,7 +68,7 @@ class SectionTest extends TestCase {
public function testGetIcon() {
$this->url->expects($this->once())
->method('imagePath')
- ->with('user_ldap', 'app.svg')
+ ->with('user_ldap', 'app-dark.svg')
->willReturn('icon');
$this->assertSame('icon', $this->section->getIcon());
diff --git a/build/integration/config/behat.yml b/build/integration/config/behat.yml
index 82ad6eaa170..3573f9d6a6b 100644
--- a/build/integration/config/behat.yml
+++ b/build/integration/config/behat.yml
@@ -75,6 +75,16 @@ default:
- admin
- admin
regular_user_password: 123456
+ ldap:
+ paths:
+ - %paths.base%/../ldap_features
+ contexts:
+ - LDAPContext:
+ baseUrl: http://localhost:8080
+ admin:
+ - admin
+ - admin
+ regular_user_password: what_for
extensions:
jarnaiz\JUnitFormatter\JUnitFormatterExtension:
diff --git a/build/integration/features/bootstrap/LDAPContext.php b/build/integration/features/bootstrap/LDAPContext.php
new file mode 100644
index 00000000000..f23de6f47cd
--- /dev/null
+++ b/build/integration/features/bootstrap/LDAPContext.php
@@ -0,0 +1,85 @@
+<?php
+
+/**
+ * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de>
+ *
+ * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+use Behat\Behat\Context\Context;
+use Behat\Gherkin\Node\TableNode;
+
+class LDAPContext implements Context {
+ use BasicStructure;
+
+ protected $configID;
+
+ protected $apiUrl;
+
+ /**
+ * @Given /^the response should contain a tag "([^"]*)"$/
+ */
+ public function theResponseShouldContainATag($arg1) {
+ $configID = $this->response->xml()->data[0]->$arg1;
+ PHPUnit_Framework_Assert::assertInstanceOf(SimpleXMLElement::class, $configID[0]);
+ }
+
+ /**
+ * @Given /^creating an LDAP configuration at "([^"]*)"$/
+ */
+ public function creatingAnLDAPConfigurationAt($apiUrl) {
+ $this->apiUrl = $apiUrl;
+ $this->sendingToWith('POST', $this->apiUrl, null);
+ $configElements = $this->response->xml()->data[0]->configID;
+ $this->configID = $configElements[0];
+ }
+
+ /**
+ * @When /^deleting the LDAP configuration$/
+ */
+ public function deletingTheLDAPConfiguration() {
+ $this->sendingToWith('DELETE', $this->apiUrl . '/' . $this->configID, null);
+ }
+
+ /**
+ * @Given /^the response should contain a tag "([^"]*)" with value "([^"]*)"$/
+ */
+ public function theResponseShouldContainATagWithValue($tagName, $expectedValue) {
+ $data = $this->response->xml()->data[0]->$tagName;
+ PHPUnit_Framework_Assert::assertEquals($expectedValue, $data[0]);
+ }
+
+ /**
+ * @When /^getting the LDAP configuration with showPassword "([^"]*)"$/
+ */
+ public function gettingTheLDAPConfigurationWithShowPassword($showPassword) {
+ $this->sendingToWith(
+ 'GET',
+ $this->apiUrl . '/' . $this->configID . '?showPassword=' . $showPassword,
+ null
+ );
+ }
+
+ /**
+ * @Given /^setting the LDAP configuration to$/
+ */
+ public function settingTheLDAPConfigurationTo(TableNode $configData) {
+ $this->sendingToWith('PUT', $this->apiUrl . '/' . $this->configID, $configData);
+ }
+}
diff --git a/build/integration/ldap_features/ldap-ocs.feature b/build/integration/ldap_features/ldap-ocs.feature
new file mode 100644
index 00000000000..a9ad0478702
--- /dev/null
+++ b/build/integration/ldap_features/ldap-ocs.feature
@@ -0,0 +1,70 @@
+Feature: LDAP
+ Background:
+ Given using api version "2"
+
+ Scenario: Creating an new, empty configuration
+ Given As an "admin"
+ When sending "POST" to "/apps/user_ldap/api/v1/config"
+ Then the OCS status code should be "200"
+ And the HTTP status code should be "200"
+ And the response should contain a tag "configID"
+
+ Scenario: Delete a non-existing configuration
+ Given As an "admin"
+ When sending "DELETE" to "/apps/user_ldap/api/v1/config/s666"
+ Then the OCS status code should be "404"
+ And the HTTP status code should be "404"
+
+ Scenario: Create and delete a configuration
+ Given As an "admin"
+ And creating an LDAP configuration at "/apps/user_ldap/api/v1/config"
+ When deleting the LDAP configuration
+ Then the OCS status code should be "200"
+ And the HTTP status code should be "200"
+
+ Scenario: Create and modify a configuration
+ Given As an "admin"
+ And creating an LDAP configuration at "/apps/user_ldap/api/v1/config"
+ When setting the LDAP configuration to
+ | configData[ldapHost] | ldaps://my.ldap.server |
+ Then the OCS status code should be "200"
+ And the HTTP status code should be "200"
+
+ Scenario: Modifying a non-existing configuration
+ Given As an "admin"
+ When sending "PUT" to "/apps/user_ldap/api/v1/config/s666" with
+ | configData[ldapHost] | ldaps://my.ldap.server |
+ Then the OCS status code should be "404"
+ And the HTTP status code should be "404"
+
+ Scenario: Modifying an existing configuration with malformed configData
+ Given As an "admin"
+ And creating an LDAP configuration at "/apps/user_ldap/api/v1/config"
+ When setting the LDAP configuration to
+ | configData | ldapHost=ldaps://my.ldap.server |
+ Then the OCS status code should be "400"
+ And the HTTP status code should be "400"
+
+ Scenario: create, modify and get a configuration
+ Given As an "admin"
+ And creating an LDAP configuration at "/apps/user_ldap/api/v1/config"
+ And setting the LDAP configuration to
+ | configData[ldapHost] | ldaps://my.ldap.server |
+ | configData[ldapLoginFilter] | (&(\|(objectclass=inetOrgPerson))(uid=%uid)) |
+ | configData[ldapAgentPassword] | psst,secret |
+ When getting the LDAP configuration with showPassword "0"
+ Then the OCS status code should be "200"
+ And the HTTP status code should be "200"
+ And the response should contain a tag "ldapHost" with value "ldaps://my.ldap.server"
+ And the response should contain a tag "ldapLoginFilter" with value "(&(|(objectclass=inetOrgPerson))(uid=%uid))"
+ And the response should contain a tag "ldapAgentPassword" with value "***"
+
+ Scenario: receiving password in plain text
+ Given As an "admin"
+ And creating an LDAP configuration at "/apps/user_ldap/api/v1/config"
+ And setting the LDAP configuration to
+ | configData[ldapAgentPassword] | psst,secret |
+ When getting the LDAP configuration with showPassword "1"
+ Then the OCS status code should be "200"
+ And the HTTP status code should be "200"
+ And the response should contain a tag "ldapAgentPassword" with value "psst,secret"
diff --git a/config/config.sample.php b/config/config.sample.php
index 4f018d189da..a9ab67374f8 100644
--- a/config/config.sample.php
+++ b/config/config.sample.php
@@ -716,7 +716,9 @@ $CONFIG = array(
/**
* This uses PHP.date formatting; see http://php.net/manual/en/function.date.php
*
- * Defaults to ``Y-m-d\TH:i:sO`` (ISO8601)
+ * Defaults to ``Y-m-d\TH:i:sP`` (ISO8601 but with colon between hours and
+ * minutes of the timezone) - see \DateTime::ISO8601
+ * (https://secure.php.net/manual/en/class.datetime.php#datetime.constants.iso8601)
*/
'logdateformat' => 'F d, Y H:i:s',
diff --git a/core/Application.php b/core/Application.php
index dad7546dcb8..6621964c289 100644
--- a/core/Application.php
+++ b/core/Application.php
@@ -30,7 +30,9 @@
namespace OC\Core;
+use OC\Core\Controller\OCJSController;
use OC\Security\IdentityProof\Manager;
+use OC\Server;
use OCP\AppFramework\App;
use OC\Core\Controller\CssController;
use OCP\AppFramework\Utility\ITimeFactory;
@@ -66,5 +68,24 @@ class Application extends App {
$container->query(ITimeFactory::class)
);
});
+ $container->registerService(OCJSController::class, function () use ($container) {
+ /** @var Server $server */
+ $server = $container->getServer();
+ return new OCJSController(
+ $container->query('appName'),
+ $server->getRequest(),
+ $server->getL10N('core'),
+ // This is required for the theming to overwrite the `OC_Defaults`, see
+ // https://github.com/nextcloud/server/issues/3148
+ $server->getThemingDefaults(),
+ $server->getAppManager(),
+ $server->getSession(),
+ $server->getUserSession(),
+ $server->getConfig(),
+ $server->getGroupManager(),
+ $server->getIniWrapper(),
+ $server->getURLGenerator()
+ );
+ });
}
}
diff --git a/core/Controller/OCSController.php b/core/Controller/OCSController.php
index dc9775f2603..1deb5e958bd 100644
--- a/core/Controller/OCSController.php
+++ b/core/Controller/OCSController.php
@@ -106,20 +106,6 @@ class OCSController extends \OCP\AppFramework\OCSController {
}
/**
- * @NoAdminRequired
- * @return DataResponse
- */
- public function getCurrentUser() {
- $userObject = $this->userSession->getUser();
- $data = [
- 'id' => $userObject->getUID(),
- 'display-name' => $userObject->getDisplayName(),
- 'email' => $userObject->getEMailAddress(),
- ];
- return new DataResponse($data);
- }
-
- /**
* @PublicPage
*
* @param string $login
diff --git a/core/css/apps.scss b/core/css/apps.scss
index ad45e2b0266..f1ddc95e092 100644
--- a/core/css/apps.scss
+++ b/core/css/apps.scss
@@ -1,6 +1,16 @@
/**
- * @copyright Copyright (c) 2014, Jan-Christoph Borchardt (http://jancborchardt.net)
- * @copyright Copyright (c) 2017, John Molakvoæ (skjnldsv@protonmail.com)
+ * @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>
+ * @copyright Copyright (c) 2016, Julius Haertl <jus@bitgrid.net>
+ * @copyright Copyright (c) 2016, Morris Jobke <hey@morrisjobke.de>
+ * @copyright Copyright (c) 2016, pgys <info@pexlab.space>
+ * @copyright Copyright (c) 2016, Lukas Reschke <lukas@statuscode.ch>
+ * @copyright Copyright (c) 2016, Stefan Weil <sw@weilnetz.de>
+ * @copyright Copyright (c) 2016, Roeland Jago Douma <rullzer@owncloud.com>
+ * @copyright Copyright (c) 2016, jowi <sjw@gmx.ch>
+ * @copyright Copyright (c) 2015, Hendrik Leppelsack <hendrik@leppelsack.de>
+ * @copyright Copyright (c) 2015, Jan-Christoph Borchardt <hey@jancborchardt.net>
+ * @copyright Copyright (c) 2015, Thomas Müller <thomas.mueller@tmit.eu>
+ * @copyright Copyright (c) 2015, Vincent Petry <pvince81@owncloud.com>
*
* @license GNU AGPL version 3 or any later version
*
diff --git a/core/css/header.scss b/core/css/header.scss
index 2d3c0fb3b5b..21b8cff4d28 100644
--- a/core/css/header.scss
+++ b/core/css/header.scss
@@ -1,8 +1,13 @@
/**
- * @copyright Copyright (c) 2017, John Molakvoæ (skjnldsv@protonmail.com)
- * @copyright Copyright (c) 2016, Lukas Reschke (lukas@statuscode.ch)
- * @copyright Copyright (c) 2016, Julius Härtl (jus@bitgrid.net)
- * @copyright Copyright (c) 2016, Jos Poortvliet (jospoortvliet@gmail.com)
+ * @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>
+ * @copyright Copyright (c) 2016, Julius Haertl <jus@bitgrid.net>
+ * @copyright Copyright (c) 2016, Lukas Reschke <lukas@statuscode.ch>
+ * @copyright Copyright (c) 2016, Jos Poortvliet <jos@opensuse.org>
+ * @copyright Copyright (c) 2016, Erik Pellikka <erik@pellikka.org>
+ * @copyright Copyright (c) 2016, jowi <sjw@gmx.ch>
+ * @copyright Copyright (c) 2015, Hendrik Leppelsack <hendrik@leppelsack.de>
+ * @copyright Copyright (c) 2015, Jan-Christoph Borchardt <hey@jancborchardt.net>
+ * @copyright Copyright (c) 2015, Volker E <volker.e@temporaer.net>
*
* @license GNU AGPL version 3 or any later version
*
diff --git a/core/css/icons.scss b/core/css/icons.scss
index b1f9cc6df67..28f6bd9bbb8 100644
--- a/core/css/icons.scss
+++ b/core/css/icons.scss
@@ -1,5 +1,12 @@
/**
- * @copyright Copyright (c) 2017, John Molakvoæ (skjnldsv@protonmail.com)
+ * @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>
+ * @copyright Copyright (c) 2016, Joas Schilling <coding@schilljs.com>
+ * @copyright Copyright (c) 2016, Lukas Reschke <lukas@statuscode.ch>
+ * @copyright Copyright (c) 2016, Roeland Jago Douma <roeland@famdouma.nl>
+ * @copyright Copyright (c) 2016, Vincent Chan <plus.vincchan@gmail.com>
+ * @copyright Copyright (c) 2015, Thomas Müller <thomas.mueller@tmit.eu>
+ * @copyright Copyright (c) 2015, Hendrik Leppelsack <hendrik@leppelsack.de>
+ * @copyright Copyright (c) 2015, Jan-Christoph Borchardt <hey@jancborchardt.net>
*
* @license GNU AGPL version 3 or any later version
*
@@ -131,6 +138,10 @@ img, object, video, button, textarea, input, select {
background-image: url('../img/actions/close.svg?v=1');
}
+.icon-close-white {
+ background-image: url('../img/actions/close-white.svg?v=1');
+}
+
.icon-comment {
background-image: url('../img/actions/comment.svg?v=1');
}
diff --git a/core/css/inputs.scss b/core/css/inputs.scss
index 6a2253ed6f7..f7b9cdb723c 100644
--- a/core/css/inputs.scss
+++ b/core/css/inputs.scss
@@ -1,4 +1,18 @@
-/* Specifically override browser styles */
+/**
+ * @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>
+ * @copyright Copyright (c) 2016, Morris Jobke <hey@morrisjobke.de>
+ * @copyright Copyright (c) 2016, Jan-Christoph Borchardt <hey@jancborchardt.net>
+ * @copyright Copyright (c) 2016, Joas Schilling <coding@schilljs.com>
+ * @copyright Copyright (c) 2016, Julius Haertl <jus@bitgrid.net>
+ * @copyright Copyright (c) 2016, jowi <sjw@gmx.ch>
+ * @copyright Copyright (c) 2015, Joas Schilling <nickvergessen@owncloud.com>
+ * @copyright Copyright (c) 2015, Hendrik Leppelsack <hendrik@leppelsack.de>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ */
+
+ /* Specifically override browser styles */
input, textarea, select, button {
font-family: 'Open Sans', Frutiger, Calibri, 'Myriad Pro', Myriad, sans-serif;
}
diff --git a/core/css/multiselect.scss b/core/css/multiselect.scss
index 024e5818a40..4b5d9cb6cf3 100644
--- a/core/css/multiselect.scss
+++ b/core/css/multiselect.scss
@@ -1,5 +1,16 @@
/**
- * @copyright Copyright (c) 2011, Jan-Christoph Borchardt <hey@jancborchardt.net>
+ * @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>
+ * @copyright Copyright (c) 2016, Julius Haertl <jus@bitgrid.net>
+ * @copyright Copyright (c) 2016, Sergio Bertolín <sbertolin@solidgear.es>
+ * @copyright Copyright (c) 2015, Hendrik Leppelsack <hendrik@leppelsack.de>
+ * @copyright Copyright (c) 2014, Vincent Petry <pvince81@owncloud.com>
+ * @copyright Copyright (c) 2013, Vincent Petry <pvince81@owncloud.com>
+ * @copyright Copyright (c) 2013, raghunayyar <me@iraghu.com>
+ * @copyright Copyright (c) 2013, Victor Dubiniuk <victor.dubiniuk@gmail.com>
+ * @copyright Copyright (c) 2013, kondou <kondou@ts.unde.re>
+ * @copyright Copyright (c) 2012, Thomas Tanghus <thomas@tanghus.net>
+ * @copyright Copyright (c) 2012, Lukas Reschke <lukas@statuscode.ch>
+ * @copyright Copyright (c) 2012, Jan-Christoph Borchardt <hey@jancborchardt.net>
*
* @license GNU AGPL version 3 or any later version
*
diff --git a/core/css/share.scss b/core/css/share.scss
index 1dbec689898..8852ad2748e 100644
--- a/core/css/share.scss
+++ b/core/css/share.scss
@@ -1,6 +1,14 @@
/**
- * @copyright Copyright (c) 2011, Jan-Christoph Borchardt <hey@jancborchardt.net>
- * @copyright Copyright (c) 2017, John Molakvoæ (skjnldsv@protonmail.com)
+ * @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>
+ * @copyright Copyright (c) 2016, Morris Jobke <hey@morrisjobke.de>
+ * @copyright Copyright (c) 2016, Julia Bode <julia.bode@lulisaur.us>
+ * @copyright Copyright (c) 2016, Christoph Wurst <christoph@winzerhof-wurst.at>
+ * @copyright Copyright (c) 2015, Hendrik Leppelsack <hendrik@leppelsack.de>
+ * @copyright Copyright (c) 2015, Jan-Christoph Borchardt <hey@jancborchardt.net>
+ * @copyright Copyright (c) 2015, Vincent Petry <pvince81@owncloud.com>
+ * @copyright Copyright (c) 2015, Arthur Schiwon <blizzz@owncloud.com>
+ * @copyright Copyright (c) 2015, Roeland Jago Douma <roeland@famdouma.nl>
+ * @copyright Copyright (c) 2015, Morris Jobke <hey@morrisjobke.de>
*
* @license GNU AGPL version 3 or any later version
*
diff --git a/core/css/styles.scss b/core/css/styles.scss
index d1e3a9f7be3..d958a01655b 100644
--- a/core/css/styles.scss
+++ b/core/css/styles.scss
@@ -1,6 +1,17 @@
-/* Copyright (c) 2011, Jan-Christoph Borchardt, http://jancborchardt.net
- This file is licensed under the Affero General Public License version 3 or later.
- See the COPYING-README file. */
+/**
+ * @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>
+ * @copyright Copyright (c) 2016, Lukas Reschke <lukas@statuscode.ch>
+ * @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl>
+ * @copyright Copyright (c) 2016, Julius Haertl <jus@bitgrid.net>
+ * @copyright Copyright (c) 2016, Joas Schilling <coding@schilljs.com>
+ * @copyright Copyright (c) 2016, Morris Jobke <hey@morrisjobke.de>
+ * @copyright Copyright (c) 2016, Christoph Wurst <christoph@winzerhof-wurst.at>
+ * @copyright Copyright (c) 2016, Jan-Christoph Borchardt <hey@jancborchardt.net>
+ * @copyright Copyright (c) 2016, Raghu Nayyar <hey@raghunayyar.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section {
margin: 0;
@@ -159,28 +170,49 @@ body {
/* Searchbox */
-.searchbox input[type='search'] {
+.searchbox {
position: relative;
- font-size: 1.2em;
- padding: 3px;
- padding-left: 25px;
- background: transparent url('../img/actions/search-white.svg?v=1') no-repeat 6px center;
- color: #fff;
- border: 0;
- border-radius: 3px;
- margin-top: 3px;
- width: 0;
- cursor: pointer;
- -webkit-transition: all 100ms;
- transition: all 100ms;
- -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=70)';
- opacity: .7;
- &:focus, &:active, &:valid {
+ input[type='search'] {
+ position: relative;
+ font-size: 1.2em;
+ padding: 3px;
+ padding-left: 25px;
+ background: transparent url('../img/actions/search-white.svg?v=1') no-repeat 6px center;
color: #fff;
- width: 155px;
- cursor: text;
- background-color: #0082c9 !important;
- border: 1px solid rgba(255, 255, 255, 0.5) !important;
+ border: 0;
+ border-radius: 3px;
+ margin-top: 3px;
+ width: 0;
+ cursor: pointer;
+ -webkit-transition: all 100ms;
+ transition: all 100ms;
+ -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=70)';
+ opacity: .7;
+ &:focus, &:active, &:valid {
+ color: #fff;
+ width: 155px;
+ cursor: text;
+ background-color: #0082c9 !important;
+ border: 1px solid rgba(255, 255, 255, 0.5) !important;
+ }
+ & ~ .icon-close-white {
+ display: inline;
+ position: absolute;
+ width: 15px;
+ height: 32px;
+ right: 3px;
+ top: 0;
+ &, &:focus, &:active, &:hover {
+ border: none;
+ background-color: transparent;
+ }
+ }
+ &:not(:valid) ~ .icon-close-white {
+ display: none;
+ }
+ &::-webkit-search-cancel-button {
+ -webkit-appearance: none;
+ }
}
}
@@ -568,15 +600,16 @@ label.infield {
padding-right: 30px;
}
+.personal-show-container {
+ position: relative;
+ display: inline-block;
+ margin-right: 6px;
+}
#personal-show + label {
- height: 14px;
- margin-top: -25px;
- left: 267px;
display: block;
-}
-
-#passwordbutton {
- margin-left: .5em;
+ right: 0;
+ margin-top: -36px;
+ padding: 6px 4px;
}
/* Database selector */
diff --git a/core/css/systemtags.scss b/core/css/systemtags.scss
index 1ae26710108..b32f33f36e5 100644
--- a/core/css/systemtags.scss
+++ b/core/css/systemtags.scss
@@ -1,5 +1,10 @@
/**
- * @copyright Copyright (c) 2017
+ * @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>
+ * @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl>
+ * @copyright Copyright (c) 2016, Jan-Christoph Borchardt <hey@jancborchardt.net>
+ * @copyright Copyright (c) 2016, Vincent Petry <pvince81@owncloud.com>
+ * @copyright Copyright (c) 2016, Erik Pellikka <erik@pellikka.org>
+ * @copyright Copyright (c) 2015, Vincent Petry <pvince81@owncloud.com>
*
* @license GNU AGPL version 3 or any later version
*
diff --git a/core/css/tooltip.scss b/core/css/tooltip.scss
index 96073962884..263dad0b0c9 100644
--- a/core/css/tooltip.scss
+++ b/core/css/tooltip.scss
@@ -1,4 +1,10 @@
-/*!
+/**
+ * @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>
+ * @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl>
+ * @copyright Copyright (c) 2016, Jan-Christoph Borchardt <hey@jancborchardt.net>
+ * @copyright Copyright (c) 2016, Erik Pellikka <erik@pellikka.org>
+ * @copyright Copyright (c) 2015, Vincent Petry <pvince81@owncloud.com>
+ *
* Bootstrap v3.3.5 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
diff --git a/core/img/actions/close-white.svg b/core/img/actions/close-white.svg
new file mode 100644
index 00000000000..cd2a8c62468
--- /dev/null
+++ b/core/img/actions/close-white.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1">
+ <path fill="#fff" d="m12.95 11.536l-1.414 1.414-3.536-3.536-3.535 3.536-1.415-1.414 3.536-3.536-3.536-3.536 1.415-1.414 3.535 3.536 3.516-3.555 1.434 1.434-3.536 3.535z"/>
+</svg>
diff --git a/core/js/sharedialoglinkshareview.js b/core/js/sharedialoglinkshareview.js
index cb553947de6..84a3d18942f 100644
--- a/core/js/sharedialoglinkshareview.js
+++ b/core/js/sharedialoglinkshareview.js
@@ -43,6 +43,13 @@
'</div>' +
' {{/if}}' +
' {{/if}}' +
+ ' {{#if publicEditing}}' +
+ '<div id="allowPublicEditingWrapper">' +
+ ' <span class="icon-loading-small hidden"></span>' +
+ ' <input type="checkbox" value="1" name="allowPublicEditing" id="sharingDialogAllowPublicEditing-{{cid}}" class="checkbox publicEditingCheckbox" {{{publicEditingChecked}}} />' +
+ '<label for="sharingDialogAllowPublicEditing-{{cid}}">{{publicEditingLabel}}</label>' +
+ '</div>' +
+ ' {{/if}}' +
' {{#if showPasswordCheckBox}}' +
'<input type="checkbox" name="showPassword" id="showPassword-{{cid}}" class="checkbox showPasswordCheckbox" {{#if isPasswordSet}}checked="checked"{{/if}} value="1" />' +
'<label for="showPassword-{{cid}}">{{enablePasswordLabel}}</label>' +
@@ -87,6 +94,7 @@
'click .linkCheckbox': 'onLinkCheckBoxChange',
'click .linkText': 'onLinkTextClick',
'change .publicUploadCheckbox': 'onAllowPublicUploadChange',
+ 'change .publicEditingCheckbox': 'onAllowPublicEditingChange',
'change .hideFileListCheckbox': 'onHideFileListChange',
'click .showPasswordCheckbox': 'onShowPasswordClick'
},
@@ -128,7 +136,8 @@
'onLinkTextClick',
'onShowPasswordClick',
'onHideFileListChange',
- 'onAllowPublicUploadChange'
+ 'onAllowPublicUploadChange',
+ 'onAllowPublicEditingChange'
);
var clipboard = new Clipboard('.clipboardButton');
@@ -266,6 +275,20 @@
});
},
+ onAllowPublicEditingChange: function() {
+ var $checkbox = this.$('.publicEditingCheckbox');
+ $checkbox.siblings('.icon-loading-small').removeClass('hidden').addClass('inlineblock');
+
+ var permissions = OC.PERMISSION_READ;
+ if($checkbox.is(':checked')) {
+ permissions = OC.PERMISSION_UPDATE | OC.PERMISSION_READ;
+ }
+
+ this.model.saveLinkShare({
+ permissions: permissions
+ });
+ },
+
onHideFileListChange: function () {
var $checkbox = this.$('.hideFileListCheckbox');
$checkbox.siblings('.icon-loading-small').removeClass('hidden').addClass('inlineblock');
@@ -307,6 +330,12 @@
publicUploadChecked = 'checked="checked"';
}
+ var publicEditingChecked = '';
+ if(this.model.isPublicEditingAllowed()) {
+ publicEditingChecked = 'checked="checked"';
+ }
+
+
var hideFileList = publicUploadChecked;
var hideFileListChecked = '';
@@ -320,6 +349,11 @@
&& ( !this.configModel.get('enforcePasswordForPublicLink')
|| !this.model.get('linkShare').password);
+ var publicEditable =
+ !this.model.isFolder()
+ && isLinkShare
+ && this.model.updatePermissionPossible();
+
this.$el.html(linkShareTemplate({
cid: this.cid,
shareAllowed: true,
@@ -337,6 +371,9 @@
publicUploadChecked: publicUploadChecked,
hideFileListChecked: hideFileListChecked,
publicUploadLabel: t('core', 'Allow upload and editing'),
+ publicEditing: publicEditable,
+ publicEditingChecked: publicEditingChecked,
+ publicEditingLabel: t('core', 'Allow editing'),
hideFileListLabel: t('core', 'File drop (upload only)'),
mailPrivatePlaceholder: t('core', 'Email link to person'),
mailButtonText: t('core', 'Send')
diff --git a/core/js/shareitemmodel.js b/core/js/shareitemmodel.js
index 9b10f067afc..ae4c07e3f4e 100644
--- a/core/js/shareitemmodel.js
+++ b/core/js/shareitemmodel.js
@@ -272,6 +272,10 @@
return this.get('allowPublicUploadStatus');
},
+ isPublicEditingAllowed: function() {
+ return this.get('allowPublicEditingStatus');
+ },
+
/**
* @returns {boolean}
*/
@@ -679,6 +683,17 @@
});
}
+ var allowPublicEditingStatus = true;
+ if(!_.isUndefined(data.shares)) {
+ $.each(data.shares, function (key, value) {
+ if (value.share_type === OC.Share.SHARE_TYPE_LINK) {
+ allowPublicEditingStatus = (value.permissions & OC.PERMISSION_UPDATE) ? true : false;
+ return true;
+ }
+ });
+ }
+
+
var hideFileListStatus = false;
if(!_.isUndefined(data.shares)) {
$.each(data.shares, function (key, value) {
@@ -762,6 +777,7 @@
linkShare: linkShare,
permissions: permissions,
allowPublicUploadStatus: allowPublicUploadStatus,
+ allowPublicEditingStatus: allowPublicEditingStatus,
hideFileListStatus: hideFileListStatus
};
},
diff --git a/core/l10n/bg_BG.js b/core/l10n/bg_BG.js
index 44d68af954f..a23ead44e93 100644
--- a/core/l10n/bg_BG.js
+++ b/core/l10n/bg_BG.js
@@ -121,6 +121,7 @@ OC.L10N.register(
"Link" : "Връзка",
"Password protect" : "Защитено с парола",
"Allow upload and editing" : "Позволи обновяване и редактиране",
+ "Allow editing" : "Позволяване на редактиране",
"File drop (upload only)" : "Пускане на файл (качване само)",
"Email link to person" : "Имейл връзка към човек",
"Send" : "Изпращане",
@@ -340,7 +341,6 @@ OC.L10N.register(
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Файловете Ви са криптирани. Ако не сте настроили ключ за възстановяване, няма да можете да възстановите данните си след смяна на паролата.<br />Ако не сте сигурни какво да направите, моля, свържете се с Вашия администратор преди да продължите. <br/>Наистина ли желаете да продължите?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Сървърът няма работеща интернет връзка. Това означава, че някои функции като прикачването на външни дискови устройства, уведомления за обновяване или инсталиране на външни приложения няма да работят. Достъпът на файлове отвън или изпращане на имейли за уведомление вероятно също няма да работят. Препоръчваме да включиш интернет връзката за този сървър ако искаш да използваш всички тези функции.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Хедърите за обратно прокси са невалидни, или достъпвате Nextcloud от доверено прокси. Ако не достъпвате Nextcloud от доверено прокси, то това е проблем в сигурността и може да позволи на хакер да прикрие IP адреса си в Nextcloud. Допълнителна информация може да бъде намерена в нашата <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">документация</a>.",
- "Allow editing" : "Позволяване на редактиране",
"Hide file listing" : "Скрий показването на файлове",
"Sending ..." : "Изпращане ...",
"Email sent" : "Имейла е изпратен",
diff --git a/core/l10n/bg_BG.json b/core/l10n/bg_BG.json
index 198efb66d19..7146057c1f0 100644
--- a/core/l10n/bg_BG.json
+++ b/core/l10n/bg_BG.json
@@ -119,6 +119,7 @@
"Link" : "Връзка",
"Password protect" : "Защитено с парола",
"Allow upload and editing" : "Позволи обновяване и редактиране",
+ "Allow editing" : "Позволяване на редактиране",
"File drop (upload only)" : "Пускане на файл (качване само)",
"Email link to person" : "Имейл връзка към човек",
"Send" : "Изпращане",
@@ -338,7 +339,6 @@
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Файловете Ви са криптирани. Ако не сте настроили ключ за възстановяване, няма да можете да възстановите данните си след смяна на паролата.<br />Ако не сте сигурни какво да направите, моля, свържете се с Вашия администратор преди да продължите. <br/>Наистина ли желаете да продължите?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Сървърът няма работеща интернет връзка. Това означава, че някои функции като прикачването на външни дискови устройства, уведомления за обновяване или инсталиране на външни приложения няма да работят. Достъпът на файлове отвън или изпращане на имейли за уведомление вероятно също няма да работят. Препоръчваме да включиш интернет връзката за този сървър ако искаш да използваш всички тези функции.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Хедърите за обратно прокси са невалидни, или достъпвате Nextcloud от доверено прокси. Ако не достъпвате Nextcloud от доверено прокси, то това е проблем в сигурността и може да позволи на хакер да прикрие IP адреса си в Nextcloud. Допълнителна информация може да бъде намерена в нашата <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">документация</a>.",
- "Allow editing" : "Позволяване на редактиране",
"Hide file listing" : "Скрий показването на файлове",
"Sending ..." : "Изпращане ...",
"Email sent" : "Имейла е изпратен",
diff --git a/core/l10n/cs_CZ.js b/core/l10n/cs_CZ.js
index 87b5df8c22a..3c590e6f727 100644
--- a/core/l10n/cs_CZ.js
+++ b/core/l10n/cs_CZ.js
@@ -122,6 +122,7 @@ OC.L10N.register(
"Link" : "Odkaz",
"Password protect" : "Chránit heslem",
"Allow upload and editing" : "Povolit nahrávání a úpravy",
+ "Allow editing" : "Povolit úpravy",
"File drop (upload only)" : "Přetažení souboru (pouze nahrání)",
"Email link to person" : "Odeslat osobě odkaz emailem",
"Send" : "Odeslat",
@@ -342,7 +343,6 @@ OC.L10N.register(
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Vaše soubory jsou šifrovány. Pokud jste nepovolili klíč pro obnovení, neexistuje způsob jak získat po změně hesla vaše data zpět.<br />Pokud si nejste jisti co dělat, kontaktujte nejprve svého správce systému, než budete pokračovat. <br />Opravdu si přejete pokračovat?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Tento server nemá funkční připojení k Internetu. Některé moduly jako např. externí úložiště, oznámení o dostupných aktualizacích nebo instalace aplikací třetích stran nebudou fungovat. Přístup k souborům z jiných míst a odesílání oznamovacích emailů také nemusí fungovat. Pokud chcete využívat všechny možnosti ownCloud, doporučujeme povolit pro tento server připojení k Internetu.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Konfigurace hlaviček reverzní proxy není správná nebo přistupujete na ownCloud z důvěryhodné proxy. Pokud nepřistupujete k ownCloud z důvěryhodné proxy, potom je toto bezpečností chyba a může útočníkovi umožnit falšovat IP adresu, kterou ownCloud vidí. Další informace lze nalézt v naší <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentaci</a>.",
- "Allow editing" : "Povolit úpravy",
"Hide file listing" : "Skrýt seznam souborů",
"Sending ..." : "Odesílám ...",
"Email sent" : "Email odeslán",
diff --git a/core/l10n/cs_CZ.json b/core/l10n/cs_CZ.json
index bf658137a28..ef9261ac7b9 100644
--- a/core/l10n/cs_CZ.json
+++ b/core/l10n/cs_CZ.json
@@ -120,6 +120,7 @@
"Link" : "Odkaz",
"Password protect" : "Chránit heslem",
"Allow upload and editing" : "Povolit nahrávání a úpravy",
+ "Allow editing" : "Povolit úpravy",
"File drop (upload only)" : "Přetažení souboru (pouze nahrání)",
"Email link to person" : "Odeslat osobě odkaz emailem",
"Send" : "Odeslat",
@@ -340,7 +341,6 @@
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Vaše soubory jsou šifrovány. Pokud jste nepovolili klíč pro obnovení, neexistuje způsob jak získat po změně hesla vaše data zpět.<br />Pokud si nejste jisti co dělat, kontaktujte nejprve svého správce systému, než budete pokračovat. <br />Opravdu si přejete pokračovat?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Tento server nemá funkční připojení k Internetu. Některé moduly jako např. externí úložiště, oznámení o dostupných aktualizacích nebo instalace aplikací třetích stran nebudou fungovat. Přístup k souborům z jiných míst a odesílání oznamovacích emailů také nemusí fungovat. Pokud chcete využívat všechny možnosti ownCloud, doporučujeme povolit pro tento server připojení k Internetu.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Konfigurace hlaviček reverzní proxy není správná nebo přistupujete na ownCloud z důvěryhodné proxy. Pokud nepřistupujete k ownCloud z důvěryhodné proxy, potom je toto bezpečností chyba a může útočníkovi umožnit falšovat IP adresu, kterou ownCloud vidí. Další informace lze nalézt v naší <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentaci</a>.",
- "Allow editing" : "Povolit úpravy",
"Hide file listing" : "Skrýt seznam souborů",
"Sending ..." : "Odesílám ...",
"Email sent" : "Email odeslán",
diff --git a/core/l10n/da.js b/core/l10n/da.js
index a9a00ca2b7e..16740e8fc55 100644
--- a/core/l10n/da.js
+++ b/core/l10n/da.js
@@ -100,6 +100,7 @@ OC.L10N.register(
"Share link" : "Del link",
"Link" : "Link",
"Password protect" : "Beskyt med adgangskode",
+ "Allow editing" : "Tillad redigering",
"Email link to person" : "E-mail link til person",
"Send" : "Send",
"Shared with you and the group {group} by {owner}" : "Delt med dig og gruppen {group} af {owner}",
@@ -280,7 +281,6 @@ OC.L10N.register(
"Dec." : "Dec.",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Dine filer er krypterede. Hvis du ikke har aktiveret gendannelsesnøglen kan du ikke få dine data tilbage efter at du har ændret adgangskode.<br />Hvis du ikke er sikker på, hvad du skal gøre så kontakt din administrator før du fortsætter.<br />Vil du fortsætte?",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Konfigurationen af reverse proxy-headere er ikke korrekt eller du tilgår ownCloud fra en betroet proxy. Hvis du ikke tilgår ownCloud fra en betroet proxy, så er dette et sikkerhedsproblem og kan tillade en angriber af forfalske deres IP-adresse som synlig for ownCloud. Yderligere information kan findes i vores <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentation</a>.",
- "Allow editing" : "Tillad redigering",
"Sending ..." : "Sender ...",
"Email sent" : "E-mail afsendt",
"Send link via email" : "Send link via e-mail",
diff --git a/core/l10n/da.json b/core/l10n/da.json
index 14c007c3872..b479be4e426 100644
--- a/core/l10n/da.json
+++ b/core/l10n/da.json
@@ -98,6 +98,7 @@
"Share link" : "Del link",
"Link" : "Link",
"Password protect" : "Beskyt med adgangskode",
+ "Allow editing" : "Tillad redigering",
"Email link to person" : "E-mail link til person",
"Send" : "Send",
"Shared with you and the group {group} by {owner}" : "Delt med dig og gruppen {group} af {owner}",
@@ -278,7 +279,6 @@
"Dec." : "Dec.",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Dine filer er krypterede. Hvis du ikke har aktiveret gendannelsesnøglen kan du ikke få dine data tilbage efter at du har ændret adgangskode.<br />Hvis du ikke er sikker på, hvad du skal gøre så kontakt din administrator før du fortsætter.<br />Vil du fortsætte?",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Konfigurationen af reverse proxy-headere er ikke korrekt eller du tilgår ownCloud fra en betroet proxy. Hvis du ikke tilgår ownCloud fra en betroet proxy, så er dette et sikkerhedsproblem og kan tillade en angriber af forfalske deres IP-adresse som synlig for ownCloud. Yderligere information kan findes i vores <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentation</a>.",
- "Allow editing" : "Tillad redigering",
"Sending ..." : "Sender ...",
"Email sent" : "E-mail afsendt",
"Send link via email" : "Send link via e-mail",
diff --git a/core/l10n/de.js b/core/l10n/de.js
index 593c57c40d2..3ac9e1ab061 100644
--- a/core/l10n/de.js
+++ b/core/l10n/de.js
@@ -122,6 +122,7 @@ OC.L10N.register(
"Link" : "Link",
"Password protect" : "Passwortschutz",
"Allow upload and editing" : "Hochladen und Bearbeiten erlauben",
+ "Allow editing" : "Bearbeitung erlauben",
"File drop (upload only)" : "Dateien ablegen (nur Hochladen)",
"Email link to person" : "Link per E-Mail verschicken",
"Send" : "Senden",
@@ -342,7 +343,6 @@ OC.L10N.register(
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Deine Dateien sind verschlüsselt. Solltest du den Wiederherstellungsschlüssel nicht aktiviert haben, gibt es keine Möglichkeit, deine Daten zurückzuerlangen, nachdem dein Passwort zurückgesetzt wurde.<br />Falls du dir nicht sicher bist, was zu tun ist, kontaktiere bitte deinen Administrator, bevor du fortfährst<br />Möchtest du wirklich fortfahren?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Dieser Server hat keine funktionierende Internetverbindung. Dies bedeutet, dass einige Funktionen wie das Einhängen externen Speicherplatzes, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren werden. Der Fernzugriff auf Dateien und der Versand von E-Mail-Benachrichtigungen kann ebenfalls nicht funktionieren. Es wird empfohlen, die Internetverbindung dieses Servers zu aktivieren, wenn du alle Funktionen nutzen möchtest.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Der REVERSE PROXY HEADER ist falsch, oder du greifst auf Nextcloud über einen vertrauenswürdigen Proxy zu. Wenn du nicht über einen vertrauenswürdigen Proxy zugreifst, dann liegt ein Sicherheitsproblem vor, das es einem Angreifer ermöglichen könnte, die für Nextcloud sichtbare IP-Adresse zu fälschen. Weitere Informationen hierzu findest du in der <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Dokumentation</a>.",
- "Allow editing" : "Bearbeitung erlauben",
"Hide file listing" : "Dateiliste verbergen",
"Sending ..." : "Senden…",
"Email sent" : "E-Mail wurde verschickt",
diff --git a/core/l10n/de.json b/core/l10n/de.json
index 76ceb57a7d6..be81fc7f0a2 100644
--- a/core/l10n/de.json
+++ b/core/l10n/de.json
@@ -120,6 +120,7 @@
"Link" : "Link",
"Password protect" : "Passwortschutz",
"Allow upload and editing" : "Hochladen und Bearbeiten erlauben",
+ "Allow editing" : "Bearbeitung erlauben",
"File drop (upload only)" : "Dateien ablegen (nur Hochladen)",
"Email link to person" : "Link per E-Mail verschicken",
"Send" : "Senden",
@@ -340,7 +341,6 @@
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Deine Dateien sind verschlüsselt. Solltest du den Wiederherstellungsschlüssel nicht aktiviert haben, gibt es keine Möglichkeit, deine Daten zurückzuerlangen, nachdem dein Passwort zurückgesetzt wurde.<br />Falls du dir nicht sicher bist, was zu tun ist, kontaktiere bitte deinen Administrator, bevor du fortfährst<br />Möchtest du wirklich fortfahren?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Dieser Server hat keine funktionierende Internetverbindung. Dies bedeutet, dass einige Funktionen wie das Einhängen externen Speicherplatzes, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren werden. Der Fernzugriff auf Dateien und der Versand von E-Mail-Benachrichtigungen kann ebenfalls nicht funktionieren. Es wird empfohlen, die Internetverbindung dieses Servers zu aktivieren, wenn du alle Funktionen nutzen möchtest.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Der REVERSE PROXY HEADER ist falsch, oder du greifst auf Nextcloud über einen vertrauenswürdigen Proxy zu. Wenn du nicht über einen vertrauenswürdigen Proxy zugreifst, dann liegt ein Sicherheitsproblem vor, das es einem Angreifer ermöglichen könnte, die für Nextcloud sichtbare IP-Adresse zu fälschen. Weitere Informationen hierzu findest du in der <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Dokumentation</a>.",
- "Allow editing" : "Bearbeitung erlauben",
"Hide file listing" : "Dateiliste verbergen",
"Sending ..." : "Senden…",
"Email sent" : "E-Mail wurde verschickt",
diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js
index e2b744036ba..626653e7d63 100644
--- a/core/l10n/de_DE.js
+++ b/core/l10n/de_DE.js
@@ -122,6 +122,7 @@ OC.L10N.register(
"Link" : "Link",
"Password protect" : "Passwortschutz",
"Allow upload and editing" : "Hochladen und Bearbeiten erlauben",
+ "Allow editing" : "Bearbeitung erlauben",
"File drop (upload only)" : "Dateien ablegen (nur Hochladen)",
"Email link to person" : "Link per E-Mail verschicken",
"Send" : "Senden",
@@ -342,7 +343,6 @@ OC.L10N.register(
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Ihre Dateien sind verschlüsselt. Wenn Sie den Wiederherstellungsschlüssel nicht aktiviert haben, wird es keine Möglichkeit geben, um Ihre Daten wieder zu erhalten, nachdem Ihr Passwort zurückgesetzt wurde.<br />Wenn Sie sich nicht sicher sind, was Sie tun sollen, wenden Sie sich bitte an Ihren Administrator, bevor Sie fortfahren.<br />Wollen Sie wirklich fortfahren?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Dieser Server hat keine funktionierende Internetverbindung. Dies bedeutet, dass einige Funktionen wie das Einhängen externen Speicherplatzes, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren werden. Der Fernzugriff auf Dateien und der Versand von E-Mail-Benachrichtigungen kann ebenfalls nicht funktionieren. Es wird empfohlen, die Internetverbindung dieses Servers zu aktivieren, wenn Sie alle Funktionen nutzen möchten.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Der REVERSE PROXY HEADER ist falsch, oder Sie greifen auf die Nextcloud von einem vertrauenswürdigen Proxy zu. Wenn Sie auf die Nextcloud nicht von einem vertrauenswürdigen Proxy zugreifen, dann liegt ein Sicherheitsproblem vor, das einem Angreifer ermöglichen könnte, die für Nextcloud sichtbare IP-Adresse zu fäschen. Weitere Informationen hierzu finden Sie in der <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Dokumentation</a>.",
- "Allow editing" : "Bearbeitung erlauben",
"Hide file listing" : "Dateiliste verbergen",
"Sending ..." : "Senden…",
"Email sent" : "E-Mail gesendet",
diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json
index 99a6dbe1b3f..213f7886d71 100644
--- a/core/l10n/de_DE.json
+++ b/core/l10n/de_DE.json
@@ -120,6 +120,7 @@
"Link" : "Link",
"Password protect" : "Passwortschutz",
"Allow upload and editing" : "Hochladen und Bearbeiten erlauben",
+ "Allow editing" : "Bearbeitung erlauben",
"File drop (upload only)" : "Dateien ablegen (nur Hochladen)",
"Email link to person" : "Link per E-Mail verschicken",
"Send" : "Senden",
@@ -340,7 +341,6 @@
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Ihre Dateien sind verschlüsselt. Wenn Sie den Wiederherstellungsschlüssel nicht aktiviert haben, wird es keine Möglichkeit geben, um Ihre Daten wieder zu erhalten, nachdem Ihr Passwort zurückgesetzt wurde.<br />Wenn Sie sich nicht sicher sind, was Sie tun sollen, wenden Sie sich bitte an Ihren Administrator, bevor Sie fortfahren.<br />Wollen Sie wirklich fortfahren?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Dieser Server hat keine funktionierende Internetverbindung. Dies bedeutet, dass einige Funktionen wie das Einhängen externen Speicherplatzes, Update-Benachrichtigungen oder die Installation von Drittanbieter-Apps nicht funktionieren werden. Der Fernzugriff auf Dateien und der Versand von E-Mail-Benachrichtigungen kann ebenfalls nicht funktionieren. Es wird empfohlen, die Internetverbindung dieses Servers zu aktivieren, wenn Sie alle Funktionen nutzen möchten.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Der REVERSE PROXY HEADER ist falsch, oder Sie greifen auf die Nextcloud von einem vertrauenswürdigen Proxy zu. Wenn Sie auf die Nextcloud nicht von einem vertrauenswürdigen Proxy zugreifen, dann liegt ein Sicherheitsproblem vor, das einem Angreifer ermöglichen könnte, die für Nextcloud sichtbare IP-Adresse zu fäschen. Weitere Informationen hierzu finden Sie in der <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Dokumentation</a>.",
- "Allow editing" : "Bearbeitung erlauben",
"Hide file listing" : "Dateiliste verbergen",
"Sending ..." : "Senden…",
"Email sent" : "E-Mail gesendet",
diff --git a/core/l10n/el.js b/core/l10n/el.js
index 2cfa4035956..c2eb36e3a9f 100644
--- a/core/l10n/el.js
+++ b/core/l10n/el.js
@@ -95,6 +95,7 @@ OC.L10N.register(
"Share link" : "Διαμοιρασμός συνδέσμου",
"Link" : "Σύνδεσμος",
"Password protect" : "Προστασία συνθηματικού",
+ "Allow editing" : "Επιτρέπεται η επεξεργασία",
"Email link to person" : "Αποστολή συνδέσμου με email ",
"Send" : "Αποστολή",
"Shared with you and the group {group} by {owner}" : "Διαμοιράστηκε με σας και με την ομάδα {group} του {owner}",
@@ -274,7 +275,6 @@ OC.L10N.register(
"Nov." : "Νοε.",
"Dec." : "Δεκ.",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Τα αρχεία σας είναι κρυπτογραφημένα. Εάν δεν έχετε ενεργοποιήσει το κλειδί επαναφοράς, δεν θα υπάρχει τρόπος να ανακτήσετε τα δεδομένα σας μετά την επαναφορά του κωδικού πρόσβασής σας.<br />Εάν δεν είστε σίγουροι για το τι θα θέλατε να κάνετε, παρακαλώ επικοινωνήστε με το διαχειριστή σας πριν συνεχίσετε. <br />Θέλετε στ' αλήθεια να συνεχίσετε;",
- "Allow editing" : "Επιτρέπεται η επεξεργασία",
"Sending ..." : "Αποστολή...",
"Email sent" : "Το Email απεστάλη ",
"Send link via email" : "Αποστολή συνδέσμου μέσω email",
diff --git a/core/l10n/el.json b/core/l10n/el.json
index 18568c0b788..a93bcb6e975 100644
--- a/core/l10n/el.json
+++ b/core/l10n/el.json
@@ -93,6 +93,7 @@
"Share link" : "Διαμοιρασμός συνδέσμου",
"Link" : "Σύνδεσμος",
"Password protect" : "Προστασία συνθηματικού",
+ "Allow editing" : "Επιτρέπεται η επεξεργασία",
"Email link to person" : "Αποστολή συνδέσμου με email ",
"Send" : "Αποστολή",
"Shared with you and the group {group} by {owner}" : "Διαμοιράστηκε με σας και με την ομάδα {group} του {owner}",
@@ -272,7 +273,6 @@
"Nov." : "Νοε.",
"Dec." : "Δεκ.",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Τα αρχεία σας είναι κρυπτογραφημένα. Εάν δεν έχετε ενεργοποιήσει το κλειδί επαναφοράς, δεν θα υπάρχει τρόπος να ανακτήσετε τα δεδομένα σας μετά την επαναφορά του κωδικού πρόσβασής σας.<br />Εάν δεν είστε σίγουροι για το τι θα θέλατε να κάνετε, παρακαλώ επικοινωνήστε με το διαχειριστή σας πριν συνεχίσετε. <br />Θέλετε στ' αλήθεια να συνεχίσετε;",
- "Allow editing" : "Επιτρέπεται η επεξεργασία",
"Sending ..." : "Αποστολή...",
"Email sent" : "Το Email απεστάλη ",
"Send link via email" : "Αποστολή συνδέσμου μέσω email",
diff --git a/core/l10n/en_GB.js b/core/l10n/en_GB.js
index f10a58c4071..d78122ce116 100644
--- a/core/l10n/en_GB.js
+++ b/core/l10n/en_GB.js
@@ -116,6 +116,7 @@ OC.L10N.register(
"Share link" : "Share link",
"Link" : "Link",
"Password protect" : "Password protect",
+ "Allow editing" : "Allow editing",
"Email link to person" : "Email link to person",
"Send" : "Send",
"Shared with you and the group {group} by {owner}" : "Shared with you and the group {group} by {owner}",
@@ -305,7 +306,6 @@ OC.L10N.register(
"Dec." : "Dec.",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>.",
- "Allow editing" : "Allow editing",
"Hide file listing" : "Hide file listing",
"Sending ..." : "Sending ...",
"Email sent" : "Email sent",
diff --git a/core/l10n/en_GB.json b/core/l10n/en_GB.json
index 1151d4104ca..64f79a7e768 100644
--- a/core/l10n/en_GB.json
+++ b/core/l10n/en_GB.json
@@ -114,6 +114,7 @@
"Share link" : "Share link",
"Link" : "Link",
"Password protect" : "Password protect",
+ "Allow editing" : "Allow editing",
"Email link to person" : "Email link to person",
"Send" : "Send",
"Shared with you and the group {group} by {owner}" : "Shared with you and the group {group} by {owner}",
@@ -303,7 +304,6 @@
"Dec." : "Dec.",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>.",
- "Allow editing" : "Allow editing",
"Hide file listing" : "Hide file listing",
"Sending ..." : "Sending ...",
"Email sent" : "Email sent",
diff --git a/core/l10n/es.js b/core/l10n/es.js
index 034ac81a99b..9844386dd2b 100644
--- a/core/l10n/es.js
+++ b/core/l10n/es.js
@@ -41,7 +41,7 @@ OC.L10N.register(
"Reset log level" : "Restablecer el nivel de registro",
"Starting code integrity check" : "Comenzando comprobación de integridad de código",
"Finished code integrity check" : "Terminando comprobación de integridad de código",
- "%s (3rdparty)" : "%s (tercer parte)",
+ "%s (3rdparty)" : "%s (tercero)",
"%s (incompatible)" : "%s (incompatible)",
"Following apps have been disabled: %s" : "Siguiendo aplicaciones ha sido deshabilitado: %s",
"Already up to date" : "Ya actualizado",
@@ -60,6 +60,7 @@ OC.L10N.register(
"seconds ago" : "hace segundos",
"Logging in …" : "Iniciando sesión ...",
"The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Se ha enviado un enlace para restablecer su contraseña a su correo electrónico. Si usted no lo recibe en un tiempo razonable, revise su carpeta de spam/chatarra/basura.<br>Si no lo encuentra, consulte a su administrador local.",
+ "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Sus archivos han sido cifrados. No habrá forma de recuperar sus datos tras resetear la contraseña.<br /> Si no está seguro de qué hacer, contacte con su administrador antes de continuar. ¿Está seguro de qué quiere continuar?",
"I know what I'm doing" : "Sé lo que estoy haciendo",
"Password can not be changed. Please contact your administrator." : "La contraseña no se puede cambiar. Por favor, contacte a su administrador.",
"No" : "No",
@@ -121,6 +122,7 @@ OC.L10N.register(
"Link" : "Enlace",
"Password protect" : "Protección con contraseña",
"Allow upload and editing" : "Permitir subito y edición",
+ "Allow editing" : "Permitir edición",
"File drop (upload only)" : "Entrega de archivos (solo subida)",
"Email link to person" : "Enviar enlace por correo electrónico a una persona",
"Send" : "Enviar",
@@ -341,7 +343,6 @@ OC.L10N.register(
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Sus archivos están cifrados. Si no ha activado la clave de recuperación, no habrá manera de recuperar los datos una vez su contraseña sea restablecida.<br /> Si no está seguro de lo que debe hacer, por favor contacte con su administrador antes de continuar.<br />¿Realmente desea continuar?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Este servidor no tiene una conexión a Internet. Esto significa que algunas de las características como el montaje de almacenamiento externo, las notificaciones sobre actualizaciones o instalación de aplicaciones de terceros no funcionarán. Podría no funcionar el acceso a los archivos de forma remota y el envío de correos electrónicos de notificación. Sugerimos habilitar la conexión a Internet de este servidor, si quiere tener todas las funciones.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "La configuración de las cabeceras inversas del proxy son incorrectas, o está accediendo a ownCloud desde un proxy confiable. Si no está accediendo a ownCloud desde un proxy certificado y confiable, este es un problema de seguridad y puede permitirle a un hacker camuflar su dirección IP a ownCloud. Más información puede ser encontrada en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.",
- "Allow editing" : "Permitir edición",
"Hide file listing" : "Ocultar la lista de archivos.",
"Sending ..." : "Enviando...",
"Email sent" : "Correo electrónico enviado",
diff --git a/core/l10n/es.json b/core/l10n/es.json
index 35f6aef6e64..4be7f957aab 100644
--- a/core/l10n/es.json
+++ b/core/l10n/es.json
@@ -39,7 +39,7 @@
"Reset log level" : "Restablecer el nivel de registro",
"Starting code integrity check" : "Comenzando comprobación de integridad de código",
"Finished code integrity check" : "Terminando comprobación de integridad de código",
- "%s (3rdparty)" : "%s (tercer parte)",
+ "%s (3rdparty)" : "%s (tercero)",
"%s (incompatible)" : "%s (incompatible)",
"Following apps have been disabled: %s" : "Siguiendo aplicaciones ha sido deshabilitado: %s",
"Already up to date" : "Ya actualizado",
@@ -58,6 +58,7 @@
"seconds ago" : "hace segundos",
"Logging in …" : "Iniciando sesión ...",
"The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Se ha enviado un enlace para restablecer su contraseña a su correo electrónico. Si usted no lo recibe en un tiempo razonable, revise su carpeta de spam/chatarra/basura.<br>Si no lo encuentra, consulte a su administrador local.",
+ "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Sus archivos han sido cifrados. No habrá forma de recuperar sus datos tras resetear la contraseña.<br /> Si no está seguro de qué hacer, contacte con su administrador antes de continuar. ¿Está seguro de qué quiere continuar?",
"I know what I'm doing" : "Sé lo que estoy haciendo",
"Password can not be changed. Please contact your administrator." : "La contraseña no se puede cambiar. Por favor, contacte a su administrador.",
"No" : "No",
@@ -119,6 +120,7 @@
"Link" : "Enlace",
"Password protect" : "Protección con contraseña",
"Allow upload and editing" : "Permitir subito y edición",
+ "Allow editing" : "Permitir edición",
"File drop (upload only)" : "Entrega de archivos (solo subida)",
"Email link to person" : "Enviar enlace por correo electrónico a una persona",
"Send" : "Enviar",
@@ -339,7 +341,6 @@
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Sus archivos están cifrados. Si no ha activado la clave de recuperación, no habrá manera de recuperar los datos una vez su contraseña sea restablecida.<br /> Si no está seguro de lo que debe hacer, por favor contacte con su administrador antes de continuar.<br />¿Realmente desea continuar?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Este servidor no tiene una conexión a Internet. Esto significa que algunas de las características como el montaje de almacenamiento externo, las notificaciones sobre actualizaciones o instalación de aplicaciones de terceros no funcionarán. Podría no funcionar el acceso a los archivos de forma remota y el envío de correos electrónicos de notificación. Sugerimos habilitar la conexión a Internet de este servidor, si quiere tener todas las funciones.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "La configuración de las cabeceras inversas del proxy son incorrectas, o está accediendo a ownCloud desde un proxy confiable. Si no está accediendo a ownCloud desde un proxy certificado y confiable, este es un problema de seguridad y puede permitirle a un hacker camuflar su dirección IP a ownCloud. Más información puede ser encontrada en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.",
- "Allow editing" : "Permitir edición",
"Hide file listing" : "Ocultar la lista de archivos.",
"Sending ..." : "Enviando...",
"Email sent" : "Correo electrónico enviado",
diff --git a/core/l10n/fi_FI.js b/core/l10n/fi_FI.js
index 153668451b9..1d0653a51a3 100644
--- a/core/l10n/fi_FI.js
+++ b/core/l10n/fi_FI.js
@@ -110,6 +110,7 @@ OC.L10N.register(
"Link" : "Linkki",
"Password protect" : "Suojaa salasanalla",
"Allow upload and editing" : "Salli lähetys ja muokkaus",
+ "Allow editing" : "Salli muokkaus",
"Email link to person" : "Lähetä linkki sähköpostitse",
"Send" : "Lähetä",
"Shared with you and the group {group} by {owner}" : "Jaettu sinun ja ryhmän {group} kanssa käyttäjän {owner} toimesta",
@@ -309,7 +310,6 @@ OC.L10N.register(
"Dec." : "Joulu",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Tiedostosi on salattu. Jos et ole ottanut käyttöön palautusavainta, tietojasi ei ole mahdollista palauttaa salasanan nollaamisen jälkeen.<br />Jos et ole varma mitä tehdä, ota yhteys ylläpitäjään.<br />Haluatko varmasti jatkaa?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Tällä palvelimella ei ole toimivaa internetyhteyttä. Sen seurauksena jotkin ominaisuudet, kuten erillinen tallennustila, ilmoitukset päivityksistä ja kolmansien osapuolten sovellusten asennus eivät toimi. Tiedostojen käyttö etänä tai ilmoitusten lähetys sähköpostitse eivät välttämättä toimi myöskään. Suosittelemme kytkemään palvelimen internetyhteyteen, jos haluat käyttää kaikkia ominaisuuksia.",
- "Allow editing" : "Salli muokkaus",
"Hide file listing" : "Piilota tiedostolistaus",
"Sending ..." : "Lähetetään...",
"Email sent" : "Sähköposti lähetetty",
diff --git a/core/l10n/fi_FI.json b/core/l10n/fi_FI.json
index 5fb7c06961d..da11bc2635d 100644
--- a/core/l10n/fi_FI.json
+++ b/core/l10n/fi_FI.json
@@ -108,6 +108,7 @@
"Link" : "Linkki",
"Password protect" : "Suojaa salasanalla",
"Allow upload and editing" : "Salli lähetys ja muokkaus",
+ "Allow editing" : "Salli muokkaus",
"Email link to person" : "Lähetä linkki sähköpostitse",
"Send" : "Lähetä",
"Shared with you and the group {group} by {owner}" : "Jaettu sinun ja ryhmän {group} kanssa käyttäjän {owner} toimesta",
@@ -307,7 +308,6 @@
"Dec." : "Joulu",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Tiedostosi on salattu. Jos et ole ottanut käyttöön palautusavainta, tietojasi ei ole mahdollista palauttaa salasanan nollaamisen jälkeen.<br />Jos et ole varma mitä tehdä, ota yhteys ylläpitäjään.<br />Haluatko varmasti jatkaa?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Tällä palvelimella ei ole toimivaa internetyhteyttä. Sen seurauksena jotkin ominaisuudet, kuten erillinen tallennustila, ilmoitukset päivityksistä ja kolmansien osapuolten sovellusten asennus eivät toimi. Tiedostojen käyttö etänä tai ilmoitusten lähetys sähköpostitse eivät välttämättä toimi myöskään. Suosittelemme kytkemään palvelimen internetyhteyteen, jos haluat käyttää kaikkia ominaisuuksia.",
- "Allow editing" : "Salli muokkaus",
"Hide file listing" : "Piilota tiedostolistaus",
"Sending ..." : "Lähetetään...",
"Email sent" : "Sähköposti lähetetty",
diff --git a/core/l10n/fr.js b/core/l10n/fr.js
index f4808261427..90e99370f2e 100644
--- a/core/l10n/fr.js
+++ b/core/l10n/fr.js
@@ -122,6 +122,7 @@ OC.L10N.register(
"Link" : "Lien",
"Password protect" : "Protéger par un mot de passe",
"Allow upload and editing" : "Autoriser l'envoi et l'édition",
+ "Allow editing" : "Permettre la modification",
"File drop (upload only)" : "Dépôt de fichier (téléversement uniquement)",
"Email link to person" : "Envoyer le lien par courriel",
"Send" : "Envoyer",
@@ -342,7 +343,6 @@ OC.L10N.register(
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Vos fichiers sont chiffrés. Si vous n'avez pas activé la clé de récupération, il n'y aura aucun moyen de récupérer vos données une fois le mot de passe réinitialisé.<br />Si vous n'êtes pas sûr de ce que vous faites, veuillez contacter votre administrateur avant de continuer. <br />Voulez-vous vraiment continuer ?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Ce serveur ne peut se connecter à internet. Cela signifie que certaines fonctionnalités, telles que le montage de supports de stockage distants, les notifications de mises à jour ou l'installation d'applications tierces ne fonctionneront pas. L'accès aux fichiers à distance, ainsi que les notifications par courriel peuvent aussi être indisponibles. Il est recommandé d'activer la connexion internet pour ce serveur si vous souhaitez disposer de l'ensemble des fonctionnalités offertes.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "La configuration des entêtes du proxy inverse est incorrecte, ou vous accédez à ownCloud depuis un proxy de confiance. Si vous n'êtes pas en train d’accéder à ownCloud depuis un proxy de confiance, ceci est un problème de sécurité qui peut permettre à un attaquant de masquer sa véritable adresse IP. Consultez la <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a> pour avoir plus d'informations à ce sujet.",
- "Allow editing" : "Permettre la modification",
"Hide file listing" : "Cacher la liste des fichiers",
"Sending ..." : "Envoi…",
"Email sent" : "Courriel envoyé",
diff --git a/core/l10n/fr.json b/core/l10n/fr.json
index ab215404a43..df5e24efb1d 100644
--- a/core/l10n/fr.json
+++ b/core/l10n/fr.json
@@ -120,6 +120,7 @@
"Link" : "Lien",
"Password protect" : "Protéger par un mot de passe",
"Allow upload and editing" : "Autoriser l'envoi et l'édition",
+ "Allow editing" : "Permettre la modification",
"File drop (upload only)" : "Dépôt de fichier (téléversement uniquement)",
"Email link to person" : "Envoyer le lien par courriel",
"Send" : "Envoyer",
@@ -340,7 +341,6 @@
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Vos fichiers sont chiffrés. Si vous n'avez pas activé la clé de récupération, il n'y aura aucun moyen de récupérer vos données une fois le mot de passe réinitialisé.<br />Si vous n'êtes pas sûr de ce que vous faites, veuillez contacter votre administrateur avant de continuer. <br />Voulez-vous vraiment continuer ?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Ce serveur ne peut se connecter à internet. Cela signifie que certaines fonctionnalités, telles que le montage de supports de stockage distants, les notifications de mises à jour ou l'installation d'applications tierces ne fonctionneront pas. L'accès aux fichiers à distance, ainsi que les notifications par courriel peuvent aussi être indisponibles. Il est recommandé d'activer la connexion internet pour ce serveur si vous souhaitez disposer de l'ensemble des fonctionnalités offertes.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "La configuration des entêtes du proxy inverse est incorrecte, ou vous accédez à ownCloud depuis un proxy de confiance. Si vous n'êtes pas en train d’accéder à ownCloud depuis un proxy de confiance, ceci est un problème de sécurité qui peut permettre à un attaquant de masquer sa véritable adresse IP. Consultez la <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a> pour avoir plus d'informations à ce sujet.",
- "Allow editing" : "Permettre la modification",
"Hide file listing" : "Cacher la liste des fichiers",
"Sending ..." : "Envoi…",
"Email sent" : "Courriel envoyé",
diff --git a/core/l10n/he.js b/core/l10n/he.js
index 11aa698330d..8212568973e 100644
--- a/core/l10n/he.js
+++ b/core/l10n/he.js
@@ -103,6 +103,7 @@ OC.L10N.register(
"Share link" : "קישור לשיתוף",
"Link" : "קישור",
"Password protect" : "הגנה בססמה",
+ "Allow editing" : "אישור עריכה",
"Email link to person" : "שליחת קישור בדוא״ל למשתמש",
"Send" : "שליחה",
"Shared with you and the group {group} by {owner}" : "שותף אתך ועם הקבוצה {group} שבבעלות {owner}",
@@ -290,7 +291,6 @@ OC.L10N.register(
"Dec." : "דצמ׳",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "הקבצים שלך מוצפנים. אם לא הפעלת את מפתח השחזור, לא תהיה דרך לקבל את המידע מחדש אחרי שהסיסמא תאופס.<br />אם אין לך מושג מה לעשות what to do, מוטב לפנות למנהל שלך לפני ההמשך. <br />האם באמת ברצונך להמשיך?",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "תצורת כותרות פרוקסי ההפוכה אינה נכונה, או שהגישה ל- ownCloud מתבצעת מ- proxy אמין. אם הגישה ל- ownCloud אינה מ- proxy אמין, מדובר בבעיית אבטחה שמאפשרת לתוקף לזייף את כתובת ה- IP כגלויה ל- ownCloud. מידע נוסף ניתן למצוא ב- <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">מסמכי התיעוד</a> שלנו.",
- "Allow editing" : "אישור עריכה",
"Sending ..." : "מתבצעת שליחה ...",
"Email sent" : "הודעת הדוא״ל נשלחה",
"Send link via email" : "שליחת קישור באמצעות דואר אלקטרוני",
diff --git a/core/l10n/he.json b/core/l10n/he.json
index 4004504cf8b..60e70973ebe 100644
--- a/core/l10n/he.json
+++ b/core/l10n/he.json
@@ -101,6 +101,7 @@
"Share link" : "קישור לשיתוף",
"Link" : "קישור",
"Password protect" : "הגנה בססמה",
+ "Allow editing" : "אישור עריכה",
"Email link to person" : "שליחת קישור בדוא״ל למשתמש",
"Send" : "שליחה",
"Shared with you and the group {group} by {owner}" : "שותף אתך ועם הקבוצה {group} שבבעלות {owner}",
@@ -288,7 +289,6 @@
"Dec." : "דצמ׳",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "הקבצים שלך מוצפנים. אם לא הפעלת את מפתח השחזור, לא תהיה דרך לקבל את המידע מחדש אחרי שהסיסמא תאופס.<br />אם אין לך מושג מה לעשות what to do, מוטב לפנות למנהל שלך לפני ההמשך. <br />האם באמת ברצונך להמשיך?",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "תצורת כותרות פרוקסי ההפוכה אינה נכונה, או שהגישה ל- ownCloud מתבצעת מ- proxy אמין. אם הגישה ל- ownCloud אינה מ- proxy אמין, מדובר בבעיית אבטחה שמאפשרת לתוקף לזייף את כתובת ה- IP כגלויה ל- ownCloud. מידע נוסף ניתן למצוא ב- <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">מסמכי התיעוד</a> שלנו.",
- "Allow editing" : "אישור עריכה",
"Sending ..." : "מתבצעת שליחה ...",
"Email sent" : "הודעת הדוא״ל נשלחה",
"Send link via email" : "שליחת קישור באמצעות דואר אלקטרוני",
diff --git a/core/l10n/hu_HU.js b/core/l10n/hu_HU.js
index 955bf60ac7c..5a8251eb0bb 100644
--- a/core/l10n/hu_HU.js
+++ b/core/l10n/hu_HU.js
@@ -121,6 +121,7 @@ OC.L10N.register(
"Link" : "Hivatkozás",
"Password protect" : "Jelszóval védett",
"Allow upload and editing" : "Feltöltés és szerkesztés engedélyezése",
+ "Allow editing" : "Szerkesztés engedélyezése",
"File drop (upload only)" : "Fájl ejtés (csak feltöltés)",
"Email link to person" : "Hivatkozás elküldése e-mail címre",
"Send" : "Küldés",
@@ -341,7 +342,6 @@ OC.L10N.register(
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Az Ön fájljai titkosítva vannak. Ha nem engedélyezte korábban az adatok visszanyeréséhez szükséges kulcs használatát, akkor a jelszó megváltoztatását követően nem fog hozzáférni az adataihoz. Ha nem biztos abban, hogy mit kellene tennie, akkor kérdezze meg a rendszergazdát, mielőtt továbbmenne.<br />Biztos, hogy folytatni kívánja?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Ennek a szervernek nincs működő internet kapcsolata. Ez azt jelenti, hogy néhány funkció, mint pl. külső tárolók csatolása, frissítési értesítések, vagy a harmadik féltől származó alkalmazások telepítése nem fog működni. A fájlok távoli elérése és az e-mail értesítések is lehet, hogy nem működnek. Ajánlott az internet kapcsolat engedélyezése a szerveren, ha minden funkciót használni szeretnél.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "A fordított proxy fejlécek konfigurációs beállításai helytelenek, vagy egy megbízható proxy-ból próbálja az ownCloud-ot elérni. Ha nem megbízható proxy-ból próbálja elérni az ownCloud-ot, akkor ez egy biztonsági probléma, a támadó az ownCloud számára látható IP cím csalást tud végrehajtani. Bővebb információt a <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentációban</a> találhat.",
- "Allow editing" : "Szerkesztés engedélyezése",
"Hide file listing" : "Fájl lista elrejtése",
"Sending ..." : "Küldés ...",
"Email sent" : "Az e-mailt elküldtük!",
diff --git a/core/l10n/hu_HU.json b/core/l10n/hu_HU.json
index bec0c41eec0..a3c1cab9276 100644
--- a/core/l10n/hu_HU.json
+++ b/core/l10n/hu_HU.json
@@ -119,6 +119,7 @@
"Link" : "Hivatkozás",
"Password protect" : "Jelszóval védett",
"Allow upload and editing" : "Feltöltés és szerkesztés engedélyezése",
+ "Allow editing" : "Szerkesztés engedélyezése",
"File drop (upload only)" : "Fájl ejtés (csak feltöltés)",
"Email link to person" : "Hivatkozás elküldése e-mail címre",
"Send" : "Küldés",
@@ -339,7 +340,6 @@
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Az Ön fájljai titkosítva vannak. Ha nem engedélyezte korábban az adatok visszanyeréséhez szükséges kulcs használatát, akkor a jelszó megváltoztatását követően nem fog hozzáférni az adataihoz. Ha nem biztos abban, hogy mit kellene tennie, akkor kérdezze meg a rendszergazdát, mielőtt továbbmenne.<br />Biztos, hogy folytatni kívánja?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Ennek a szervernek nincs működő internet kapcsolata. Ez azt jelenti, hogy néhány funkció, mint pl. külső tárolók csatolása, frissítési értesítések, vagy a harmadik féltől származó alkalmazások telepítése nem fog működni. A fájlok távoli elérése és az e-mail értesítések is lehet, hogy nem működnek. Ajánlott az internet kapcsolat engedélyezése a szerveren, ha minden funkciót használni szeretnél.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "A fordított proxy fejlécek konfigurációs beállításai helytelenek, vagy egy megbízható proxy-ból próbálja az ownCloud-ot elérni. Ha nem megbízható proxy-ból próbálja elérni az ownCloud-ot, akkor ez egy biztonsági probléma, a támadó az ownCloud számára látható IP cím csalást tud végrehajtani. Bővebb információt a <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentációban</a> találhat.",
- "Allow editing" : "Szerkesztés engedélyezése",
"Hide file listing" : "Fájl lista elrejtése",
"Sending ..." : "Küldés ...",
"Email sent" : "Az e-mailt elküldtük!",
diff --git a/core/l10n/id.js b/core/l10n/id.js
index 49fbb45acff..2ed3768d6a4 100644
--- a/core/l10n/id.js
+++ b/core/l10n/id.js
@@ -121,6 +121,7 @@ OC.L10N.register(
"Link" : "Tautan",
"Password protect" : "Lindungi dengan sandi",
"Allow upload and editing" : "Izinkan pengunggahan dan penyuntingan",
+ "Allow editing" : "Izinkan penyuntingan",
"Email link to person" : "Emailkan tautan ini ke orang",
"Send" : "Kirim",
"Shared with you and the group {group} by {owner}" : "Dibagikan dengan anda dan grup {group} oleh {owner}",
@@ -314,7 +315,6 @@ OC.L10N.register(
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Berkas-berkas Anda terenkripsi. Jika Anda tidak mengaktifkan kunci pemulihan, tidak ada cara lain untuk mendapatkan data Anda kembali setelah sandi di setel ulang.<br />Jika Anda tidak yakin dengan apa yang akan Anda dilakukan, mohon hubungi administrator Anda sebelum melanjutkan. <br />Apakah Anda yakin ingin melanjutkan?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Server ini tidak tersambung ke internet. Ini berarti beberapa fitur seperti me-mount penyimpanan eksternal, notifikasi pembaruan atau instalasi aplikasi pihak ketiga tidak akan bekerja. Mengakses berkas secara remote dan mengirim notifikasi email juga tidak bekerja. Kami menyarankan untuk mengaktifkan koneksi internet untuk server ini jika Anda ingin memiliki fitur ini.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Konfigurasi proxy header terbalik salah, atau Anda mengakses ownCloud dari proxy terpercaya. Apabila Anda tidak mengakses ownCloud dari proxy terpercaya, ini adalah masalah keamanan dan penyerang dapat memalsukan alamat IP mereka ke ownCloud. Informasi selanjutnya bisa ditemukan di <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentasi</a> kami.",
- "Allow editing" : "Izinkan penyuntingan",
"Hide file listing" : "Sembunyikan pendaftaran berkas",
"Sending ..." : "Mengirim ...",
"Email sent" : "Email terkirim",
diff --git a/core/l10n/id.json b/core/l10n/id.json
index 4a36ba37fab..dd562e7d9b1 100644
--- a/core/l10n/id.json
+++ b/core/l10n/id.json
@@ -119,6 +119,7 @@
"Link" : "Tautan",
"Password protect" : "Lindungi dengan sandi",
"Allow upload and editing" : "Izinkan pengunggahan dan penyuntingan",
+ "Allow editing" : "Izinkan penyuntingan",
"Email link to person" : "Emailkan tautan ini ke orang",
"Send" : "Kirim",
"Shared with you and the group {group} by {owner}" : "Dibagikan dengan anda dan grup {group} oleh {owner}",
@@ -312,7 +313,6 @@
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Berkas-berkas Anda terenkripsi. Jika Anda tidak mengaktifkan kunci pemulihan, tidak ada cara lain untuk mendapatkan data Anda kembali setelah sandi di setel ulang.<br />Jika Anda tidak yakin dengan apa yang akan Anda dilakukan, mohon hubungi administrator Anda sebelum melanjutkan. <br />Apakah Anda yakin ingin melanjutkan?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Server ini tidak tersambung ke internet. Ini berarti beberapa fitur seperti me-mount penyimpanan eksternal, notifikasi pembaruan atau instalasi aplikasi pihak ketiga tidak akan bekerja. Mengakses berkas secara remote dan mengirim notifikasi email juga tidak bekerja. Kami menyarankan untuk mengaktifkan koneksi internet untuk server ini jika Anda ingin memiliki fitur ini.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Konfigurasi proxy header terbalik salah, atau Anda mengakses ownCloud dari proxy terpercaya. Apabila Anda tidak mengakses ownCloud dari proxy terpercaya, ini adalah masalah keamanan dan penyerang dapat memalsukan alamat IP mereka ke ownCloud. Informasi selanjutnya bisa ditemukan di <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentasi</a> kami.",
- "Allow editing" : "Izinkan penyuntingan",
"Hide file listing" : "Sembunyikan pendaftaran berkas",
"Sending ..." : "Mengirim ...",
"Email sent" : "Email terkirim",
diff --git a/core/l10n/is.js b/core/l10n/is.js
index 5b27668d7a4..ac8414d4cf8 100644
--- a/core/l10n/is.js
+++ b/core/l10n/is.js
@@ -109,6 +109,7 @@ OC.L10N.register(
"Link" : "Tengill",
"Password protect" : "Verja með lykilorði",
"Allow upload and editing" : "Leyfa innsendingu og breytingar",
+ "Allow editing" : "Leyfa breytingar",
"Email link to person" : "Senda veftengil í tölvupósti til notanda",
"Send" : "Senda",
"Shared with you and the group {group} by {owner}" : "Deilt með þér og hópnum {group} af {owner}",
@@ -307,7 +308,6 @@ OC.L10N.register(
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Skrárnar þínar eru dulritaðar. Ef þú hefur ekki virkjað endurheimtingarlykilinn, þá verður engin leið til að fá gögnin þín til baka eftir lykilorðið þitt er endurstillt.<br />Ef þú ert ekki viss hvað eigi að gera, skaltu hafa samband við kerfisstjórann áður en þú heldur áfram. <br />Viltu halda áfram?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Þessi þjónn er ekki með virka nettengingu. Þetta þýðir að sumir eiginleikar eins og að virkja ytri gagnageymslu, tilkynningar um uppfærslur eða uppsetningu á forritum þriðja aðila, mun ekki virka. Fjartengdur aðgangur að skrám og sending tilkynninga í tölvupósti virka líklega ekki heldur. Við leggjum til að internettenging sé virkjuð fyrir þennan vefþjón ef þú vilt hafa alla eiginleika tiltæka.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Uppsetning gagnstæðs milliþjónshauss (reverse proxy header) er röng, eða að þú ert að tengjast Nextcloud frá treystum milliþjóni. Ef þú ert ekki að tengjast Nextcloud frá treystum milliþjóni, þá er þetta er öryggisvandamál og getur leyft árásaraðilum að dulbúa IP-vistfang þeirra sem sýnilegt Nextcloud. Nánari upplýsingar má finna í <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">hjálparskjölum</a> okkar.",
- "Allow editing" : "Leyfa breytingar",
"Hide file listing" : "Fela skráalista",
"Sending ..." : "Sendi ...",
"Email sent" : "Tölvupóstur sendur",
diff --git a/core/l10n/is.json b/core/l10n/is.json
index 4e94fcb04b0..a389453cfc7 100644
--- a/core/l10n/is.json
+++ b/core/l10n/is.json
@@ -107,6 +107,7 @@
"Link" : "Tengill",
"Password protect" : "Verja með lykilorði",
"Allow upload and editing" : "Leyfa innsendingu og breytingar",
+ "Allow editing" : "Leyfa breytingar",
"Email link to person" : "Senda veftengil í tölvupósti til notanda",
"Send" : "Senda",
"Shared with you and the group {group} by {owner}" : "Deilt með þér og hópnum {group} af {owner}",
@@ -305,7 +306,6 @@
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Skrárnar þínar eru dulritaðar. Ef þú hefur ekki virkjað endurheimtingarlykilinn, þá verður engin leið til að fá gögnin þín til baka eftir lykilorðið þitt er endurstillt.<br />Ef þú ert ekki viss hvað eigi að gera, skaltu hafa samband við kerfisstjórann áður en þú heldur áfram. <br />Viltu halda áfram?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Þessi þjónn er ekki með virka nettengingu. Þetta þýðir að sumir eiginleikar eins og að virkja ytri gagnageymslu, tilkynningar um uppfærslur eða uppsetningu á forritum þriðja aðila, mun ekki virka. Fjartengdur aðgangur að skrám og sending tilkynninga í tölvupósti virka líklega ekki heldur. Við leggjum til að internettenging sé virkjuð fyrir þennan vefþjón ef þú vilt hafa alla eiginleika tiltæka.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Uppsetning gagnstæðs milliþjónshauss (reverse proxy header) er röng, eða að þú ert að tengjast Nextcloud frá treystum milliþjóni. Ef þú ert ekki að tengjast Nextcloud frá treystum milliþjóni, þá er þetta er öryggisvandamál og getur leyft árásaraðilum að dulbúa IP-vistfang þeirra sem sýnilegt Nextcloud. Nánari upplýsingar má finna í <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">hjálparskjölum</a> okkar.",
- "Allow editing" : "Leyfa breytingar",
"Hide file listing" : "Fela skráalista",
"Sending ..." : "Sendi ...",
"Email sent" : "Tölvupóstur sendur",
diff --git a/core/l10n/it.js b/core/l10n/it.js
index 45e5ec992c1..27555092526 100644
--- a/core/l10n/it.js
+++ b/core/l10n/it.js
@@ -121,6 +121,7 @@ OC.L10N.register(
"Link" : "Collegamento",
"Password protect" : "Proteggi con password",
"Allow upload and editing" : "Consenti il caricamento e la modifica",
+ "Allow editing" : "Consenti la modifica",
"File drop (upload only)" : "Rilascia file (solo caricamento)",
"Email link to person" : "Invia collegamento via email",
"Send" : "Invia",
@@ -341,7 +342,6 @@ OC.L10N.register(
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "I tuoi file sono cifrati. Se non hai precedentemente abilitato la chiave di ripristino, non sarà più possibile ritrovare i tuoi dati una volta che la password sarà reimpostata.<br />Se non sei sicuro, contatta l'amministratore prima di proseguire.<br />Vuoi davvero continuare?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Questo server non ha una connessione a Internet funzionante. Ciò significa che alcune delle funzionalità come il montaggio di archivi esterni, le notifiche degli aggiornamenti o l'installazione di applicazioni di terze parti non funzioneranno. L'accesso remoto ai file e l'invio di email di notifica potrebbero non funzionare. Ti suggeriamo di abilitare la connessione a Internet del server se desideri disporre di tutte le funzionalità.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "La configurazione delle intestazioni del proxy inverso non è corretta, o stai effettuando l'accesso a ownCloud da un proxy affidabile. Se non stai effettuando l'accesso da un proxy affidabile, questo è un problema di sicurezza e può consentire a un attaccante di falsificare il suo indirizzo IP, rendendolo visibile a ownCloud. Ulteriori informazioni sono disponibili nella nostra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentazione</a>.",
- "Allow editing" : "Consenti la modifica",
"Hide file listing" : "Nascondi elenco dei file",
"Sending ..." : "Invio in corso...",
"Email sent" : "Messaggio inviato",
diff --git a/core/l10n/it.json b/core/l10n/it.json
index 19ab33f05e1..a5424c326c6 100644
--- a/core/l10n/it.json
+++ b/core/l10n/it.json
@@ -119,6 +119,7 @@
"Link" : "Collegamento",
"Password protect" : "Proteggi con password",
"Allow upload and editing" : "Consenti il caricamento e la modifica",
+ "Allow editing" : "Consenti la modifica",
"File drop (upload only)" : "Rilascia file (solo caricamento)",
"Email link to person" : "Invia collegamento via email",
"Send" : "Invia",
@@ -339,7 +340,6 @@
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "I tuoi file sono cifrati. Se non hai precedentemente abilitato la chiave di ripristino, non sarà più possibile ritrovare i tuoi dati una volta che la password sarà reimpostata.<br />Se non sei sicuro, contatta l'amministratore prima di proseguire.<br />Vuoi davvero continuare?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Questo server non ha una connessione a Internet funzionante. Ciò significa che alcune delle funzionalità come il montaggio di archivi esterni, le notifiche degli aggiornamenti o l'installazione di applicazioni di terze parti non funzioneranno. L'accesso remoto ai file e l'invio di email di notifica potrebbero non funzionare. Ti suggeriamo di abilitare la connessione a Internet del server se desideri disporre di tutte le funzionalità.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "La configurazione delle intestazioni del proxy inverso non è corretta, o stai effettuando l'accesso a ownCloud da un proxy affidabile. Se non stai effettuando l'accesso da un proxy affidabile, questo è un problema di sicurezza e può consentire a un attaccante di falsificare il suo indirizzo IP, rendendolo visibile a ownCloud. Ulteriori informazioni sono disponibili nella nostra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentazione</a>.",
- "Allow editing" : "Consenti la modifica",
"Hide file listing" : "Nascondi elenco dei file",
"Sending ..." : "Invio in corso...",
"Email sent" : "Messaggio inviato",
diff --git a/core/l10n/ja.js b/core/l10n/ja.js
index f05b7f95335..8b411db8077 100644
--- a/core/l10n/ja.js
+++ b/core/l10n/ja.js
@@ -60,6 +60,7 @@ OC.L10N.register(
"seconds ago" : "数秒前",
"Logging in …" : "ログイン中...",
"The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "パスワードをリセットするリンクをクリックしたので、メールを送信しました。しばらくたってもメールが届かなかった場合は、スパム/ジャンクフォルダーを確認してください。<br>それでも見つからなかった場合は、管理者に問合わせてください。",
+ "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "ファイルが暗号化されています。パスワードをリセットした場合、データを元に戻す方法はありません。<br />どういうことか分からない場合は、操作を継続する前に管理者に問い合わせてください。<br />続けてよろしいでしょうか?",
"I know what I'm doing" : "どういう操作をしているか理解しています",
"Password can not be changed. Please contact your administrator." : "パスワードは変更できません。管理者に問い合わせてください。",
"No" : "いいえ",
@@ -121,6 +122,7 @@ OC.L10N.register(
"Link" : "リンク",
"Password protect" : "パスワード保護を有効化",
"Allow upload and editing" : "アップロードと編集を許可する",
+ "Allow editing" : "編集を許可",
"File drop (upload only)" : "ファイルドロップ(アップロードのみ)",
"Email link to person" : "メールリンク",
"Send" : "送信",
@@ -341,7 +343,6 @@ OC.L10N.register(
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "ファイルが暗号化されています。リカバリーキーが有効でない場合は、パスワードをリセットした後にあなたのデータを元に戻す方法はありません。<br />どういうことか分からない場合は、操作を継続する前に管理者に問い合わせてください。<br />続けてよろしいでしょうか?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "このサーバーはインターネットに接続していません。この場合、外部ストレージのマウント、更新の通知やサードパーティ製のアプリ、といった一部の機能が利用できません。また、リモート接続でのファイルアクセス、通知メールの送信のような機能も利用できないことがあります。すべての機能を利用するには、このサーバーのインターネット接続を有効にすることをお勧めします。",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "リバースプロキシのヘッダー設定が間違っているか、または信頼されたプロキシからownCloudにアクセスしていません。もし、信頼されたプロキシからアクセスされているのでないなら、攻撃者の詐称されたIPアドレスから ownCloudを見ることができるように許可されていて、セキュリティに問題があります。詳細な情報は、 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">ドキュメント</a>を確認してください。",
- "Allow editing" : "編集を許可",
"Hide file listing" : "ファイルリストを隠す",
"Sending ..." : "送信中...",
"Email sent" : "メールを送信しました",
diff --git a/core/l10n/ja.json b/core/l10n/ja.json
index 1e9842c0783..03bfcd2173e 100644
--- a/core/l10n/ja.json
+++ b/core/l10n/ja.json
@@ -58,6 +58,7 @@
"seconds ago" : "数秒前",
"Logging in …" : "ログイン中...",
"The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "パスワードをリセットするリンクをクリックしたので、メールを送信しました。しばらくたってもメールが届かなかった場合は、スパム/ジャンクフォルダーを確認してください。<br>それでも見つからなかった場合は、管理者に問合わせてください。",
+ "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "ファイルが暗号化されています。パスワードをリセットした場合、データを元に戻す方法はありません。<br />どういうことか分からない場合は、操作を継続する前に管理者に問い合わせてください。<br />続けてよろしいでしょうか?",
"I know what I'm doing" : "どういう操作をしているか理解しています",
"Password can not be changed. Please contact your administrator." : "パスワードは変更できません。管理者に問い合わせてください。",
"No" : "いいえ",
@@ -119,6 +120,7 @@
"Link" : "リンク",
"Password protect" : "パスワード保護を有効化",
"Allow upload and editing" : "アップロードと編集を許可する",
+ "Allow editing" : "編集を許可",
"File drop (upload only)" : "ファイルドロップ(アップロードのみ)",
"Email link to person" : "メールリンク",
"Send" : "送信",
@@ -339,7 +341,6 @@
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "ファイルが暗号化されています。リカバリーキーが有効でない場合は、パスワードをリセットした後にあなたのデータを元に戻す方法はありません。<br />どういうことか分からない場合は、操作を継続する前に管理者に問い合わせてください。<br />続けてよろしいでしょうか?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "このサーバーはインターネットに接続していません。この場合、外部ストレージのマウント、更新の通知やサードパーティ製のアプリ、といった一部の機能が利用できません。また、リモート接続でのファイルアクセス、通知メールの送信のような機能も利用できないことがあります。すべての機能を利用するには、このサーバーのインターネット接続を有効にすることをお勧めします。",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "リバースプロキシのヘッダー設定が間違っているか、または信頼されたプロキシからownCloudにアクセスしていません。もし、信頼されたプロキシからアクセスされているのでないなら、攻撃者の詐称されたIPアドレスから ownCloudを見ることができるように許可されていて、セキュリティに問題があります。詳細な情報は、 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">ドキュメント</a>を確認してください。",
- "Allow editing" : "編集を許可",
"Hide file listing" : "ファイルリストを隠す",
"Sending ..." : "送信中...",
"Email sent" : "メールを送信しました",
diff --git a/core/l10n/ko.js b/core/l10n/ko.js
index bd9553b8d7b..11ec45f71a9 100644
--- a/core/l10n/ko.js
+++ b/core/l10n/ko.js
@@ -119,6 +119,7 @@ OC.L10N.register(
"Link" : "링크",
"Password protect" : "암호 보호",
"Allow upload and editing" : "업로드 및 편집 허용",
+ "Allow editing" : "편집 허용",
"Email link to person" : "이메일 주소",
"Send" : "전송",
"Shared with you and the group {group} by {owner}" : "{owner} 님이 여러분 및 그룹 {group}와(과) 공유 중",
@@ -322,7 +323,6 @@ OC.L10N.register(
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "파일이 암호화되어 있습니다. 복구 키를 활성화하지 않았다면 암호를 초기화한 후 데이터를 복구할 수 없습니다.<br />무엇을 해야 할 지 잘 모르겠으면 계속하기 전에 관리자에게 연락하십시오.<br />그래도 계속 진행하시겠습니까?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "서버에서 인터넷 연결을 사용할 수 없습니다. 외부 저장소 마운트, 업데이트 알림, 제 3자 앱 설치 등 기능을 사용할 수 없습니다. 원격에서 파일에 접근하거나, 알림 이메일을 보내지 못할 수도 있습니다. 모든 기능을 사용하려면 인터넷에 연결하는 것을 추천합니다.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "역방향 프록시 헤더 설정이 올바르지 않거나 Trusted Proxy를 통해 ownCloud에 접근하고 있을 수 있습니다. 만약 ownCloud를 Trusted Proxy를 통해 접근하고 있지 않다면 이는 보안 문제이며 공격자가 IP 주소를 속이고 있을 수 있습니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">사용 설명서</a>를 참고하십시오.",
- "Allow editing" : "편집 허용",
"Hide file listing" : "숨김 파일 목록",
"Sending ..." : "전송 중...",
"Email sent" : "이메일 발송됨",
diff --git a/core/l10n/ko.json b/core/l10n/ko.json
index 5c163afbbca..c36e174afb3 100644
--- a/core/l10n/ko.json
+++ b/core/l10n/ko.json
@@ -117,6 +117,7 @@
"Link" : "링크",
"Password protect" : "암호 보호",
"Allow upload and editing" : "업로드 및 편집 허용",
+ "Allow editing" : "편집 허용",
"Email link to person" : "이메일 주소",
"Send" : "전송",
"Shared with you and the group {group} by {owner}" : "{owner} 님이 여러분 및 그룹 {group}와(과) 공유 중",
@@ -320,7 +321,6 @@
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "파일이 암호화되어 있습니다. 복구 키를 활성화하지 않았다면 암호를 초기화한 후 데이터를 복구할 수 없습니다.<br />무엇을 해야 할 지 잘 모르겠으면 계속하기 전에 관리자에게 연락하십시오.<br />그래도 계속 진행하시겠습니까?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "서버에서 인터넷 연결을 사용할 수 없습니다. 외부 저장소 마운트, 업데이트 알림, 제 3자 앱 설치 등 기능을 사용할 수 없습니다. 원격에서 파일에 접근하거나, 알림 이메일을 보내지 못할 수도 있습니다. 모든 기능을 사용하려면 인터넷에 연결하는 것을 추천합니다.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "역방향 프록시 헤더 설정이 올바르지 않거나 Trusted Proxy를 통해 ownCloud에 접근하고 있을 수 있습니다. 만약 ownCloud를 Trusted Proxy를 통해 접근하고 있지 않다면 이는 보안 문제이며 공격자가 IP 주소를 속이고 있을 수 있습니다. 자세한 내용은 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">사용 설명서</a>를 참고하십시오.",
- "Allow editing" : "편집 허용",
"Hide file listing" : "숨김 파일 목록",
"Sending ..." : "전송 중...",
"Email sent" : "이메일 발송됨",
diff --git a/core/l10n/nb_NO.js b/core/l10n/nb_NO.js
index 37a9eb00749..b3141566eec 100644
--- a/core/l10n/nb_NO.js
+++ b/core/l10n/nb_NO.js
@@ -117,6 +117,7 @@ OC.L10N.register(
"Link" : "Lenke",
"Password protect" : "Passordbeskyttet",
"Allow upload and editing" : "Tillatt opplasting og redigering",
+ "Allow editing" : "Tillat redigering",
"File drop (upload only)" : "Filkasse (kun opplasting)",
"Email link to person" : "Email lenke til person",
"Send" : "Send",
@@ -334,7 +335,6 @@ OC.L10N.register(
"Dec." : "Des.",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Filene dine er kryptert. Hvis du ikke har aktivert gjenopprettingsnøkkelen, vil det være helt umulig å få tilbake dataene dine etter at pasordet ditt er tilbakestilt.<br />Hvis du er usikker på hva du skal gjøre, kontakt administratoren din før du fortsetter. <br />Vil du virkelig fortsette?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Denne serveren har ingen fungerende internett-forbindelse. Dette betyr at noen funksjoner, som tilknytning av eksterne lagre, varslinger om oppdateringer eller installering av tredjeparts apper ikke vil virke. Fjerntilgang til filer og utsending av varsler på e-post vil kanskje ikke virke heller. Vi anbefaler å aktivere en internett-forbindelse for denne serveren hvis du vil ha full funksjonalitet.",
- "Allow editing" : "Tillat redigering",
"Hide file listing" : "Skjul filliste",
"Sending ..." : "Sender...",
"Email sent" : "E-post sendt",
diff --git a/core/l10n/nb_NO.json b/core/l10n/nb_NO.json
index d2d22be46be..35df1224439 100644
--- a/core/l10n/nb_NO.json
+++ b/core/l10n/nb_NO.json
@@ -115,6 +115,7 @@
"Link" : "Lenke",
"Password protect" : "Passordbeskyttet",
"Allow upload and editing" : "Tillatt opplasting og redigering",
+ "Allow editing" : "Tillat redigering",
"File drop (upload only)" : "Filkasse (kun opplasting)",
"Email link to person" : "Email lenke til person",
"Send" : "Send",
@@ -332,7 +333,6 @@
"Dec." : "Des.",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Filene dine er kryptert. Hvis du ikke har aktivert gjenopprettingsnøkkelen, vil det være helt umulig å få tilbake dataene dine etter at pasordet ditt er tilbakestilt.<br />Hvis du er usikker på hva du skal gjøre, kontakt administratoren din før du fortsetter. <br />Vil du virkelig fortsette?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Denne serveren har ingen fungerende internett-forbindelse. Dette betyr at noen funksjoner, som tilknytning av eksterne lagre, varslinger om oppdateringer eller installering av tredjeparts apper ikke vil virke. Fjerntilgang til filer og utsending av varsler på e-post vil kanskje ikke virke heller. Vi anbefaler å aktivere en internett-forbindelse for denne serveren hvis du vil ha full funksjonalitet.",
- "Allow editing" : "Tillat redigering",
"Hide file listing" : "Skjul filliste",
"Sending ..." : "Sender...",
"Email sent" : "E-post sendt",
diff --git a/core/l10n/nl.js b/core/l10n/nl.js
index 23b10ac8b2e..af191be30b1 100644
--- a/core/l10n/nl.js
+++ b/core/l10n/nl.js
@@ -122,6 +122,7 @@ OC.L10N.register(
"Link" : "Link",
"Password protect" : "Wachtwoord beveiligd",
"Allow upload and editing" : "Toestaan uploaden en bewerken",
+ "Allow editing" : "Toestaan bewerken",
"File drop (upload only)" : "File drop (alleen uploaden)",
"Email link to person" : "E-mail link naar persoon",
"Send" : "Versturen",
@@ -342,7 +343,6 @@ OC.L10N.register(
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Je bestanden zijn versleuteld. Als je de herstelsleutel niet hebt geactiveerd, is het niet mogelijk om je gegevens terug te krijgen nadat je wachtwoord is hersteld. <br>Als je niet weet wat je moet doen, neem dan eerst contact op met je beheerder. <br>Wil je echt verder gaan?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Deze server heeft geen actieve internetverbinding. Dat betekent dat sommige functies, zoals aankoppelen van externe opslag, notificaties over updates of installatie van apps van 3e partijen niet werken. Ook het benaderen van bestanden vanaf een remote locatie en het versturen van notificatie e-mails kan mislukken. We adviseren om de internetverbinding voor deze server in te schakelen als u alle functies wilt gebruiken.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "De reverse proxy headerconfiguratie is onjuist, of je hebt toegang tot Nextcloud via een vertrouwde proxy. Als je Nextcloud niet via een vertrouwde proxy benadert, dan levert dan een beveiligingsrisico op, waardoor een aanvaller het IP-adres dat Nextcloud ziet kan vervalsen. Meer informatie is te vinden in onze <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentatie</a>.",
- "Allow editing" : "Toestaan bewerken",
"Hide file listing" : "Verberg bestandsoverzicht",
"Sending ..." : "Versturen ...",
"Email sent" : "E-mail verzonden",
diff --git a/core/l10n/nl.json b/core/l10n/nl.json
index 758f81f2a2b..c53918ff27a 100644
--- a/core/l10n/nl.json
+++ b/core/l10n/nl.json
@@ -120,6 +120,7 @@
"Link" : "Link",
"Password protect" : "Wachtwoord beveiligd",
"Allow upload and editing" : "Toestaan uploaden en bewerken",
+ "Allow editing" : "Toestaan bewerken",
"File drop (upload only)" : "File drop (alleen uploaden)",
"Email link to person" : "E-mail link naar persoon",
"Send" : "Versturen",
@@ -340,7 +341,6 @@
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Je bestanden zijn versleuteld. Als je de herstelsleutel niet hebt geactiveerd, is het niet mogelijk om je gegevens terug te krijgen nadat je wachtwoord is hersteld. <br>Als je niet weet wat je moet doen, neem dan eerst contact op met je beheerder. <br>Wil je echt verder gaan?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Deze server heeft geen actieve internetverbinding. Dat betekent dat sommige functies, zoals aankoppelen van externe opslag, notificaties over updates of installatie van apps van 3e partijen niet werken. Ook het benaderen van bestanden vanaf een remote locatie en het versturen van notificatie e-mails kan mislukken. We adviseren om de internetverbinding voor deze server in te schakelen als u alle functies wilt gebruiken.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "De reverse proxy headerconfiguratie is onjuist, of je hebt toegang tot Nextcloud via een vertrouwde proxy. Als je Nextcloud niet via een vertrouwde proxy benadert, dan levert dan een beveiligingsrisico op, waardoor een aanvaller het IP-adres dat Nextcloud ziet kan vervalsen. Meer informatie is te vinden in onze <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentatie</a>.",
- "Allow editing" : "Toestaan bewerken",
"Hide file listing" : "Verberg bestandsoverzicht",
"Sending ..." : "Versturen ...",
"Email sent" : "E-mail verzonden",
diff --git a/core/l10n/pl.js b/core/l10n/pl.js
index f40da071680..a8c54a6af18 100644
--- a/core/l10n/pl.js
+++ b/core/l10n/pl.js
@@ -111,6 +111,7 @@ OC.L10N.register(
"Link" : "Odnośnik",
"Password protect" : "Zabezpiecz hasłem",
"Allow upload and editing" : "Pozwól na przesyłanie i edycję",
+ "Allow editing" : "Pozwól na edycję",
"Email link to person" : "Wyślij osobie odnośnik poprzez e-mail",
"Send" : "Wyślij",
"Shared with you and the group {group} by {owner}" : "Udostępnione tobie i grupie {group} przez {owner}",
@@ -326,7 +327,6 @@ OC.L10N.register(
"Nov." : "Lis.",
"Dec." : "Gru.",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Twoje pliki są zaszyfrowane. Jeśli nie włączyłeś klucza odzyskiwania, nie będzie możliwości odszyfrowania tych plików po zresetowaniu hasła.<br>Jeśli nie jesteś pewien co zrobić, skontaktuj się ze swoim administratorem, zanim bedziesz kontynuował. <br/> Czy chcesz kontynuować?\n ",
- "Allow editing" : "Pozwól na edycję",
"Hide file listing" : "Schowaj listę plików",
"Sending ..." : "Wysyłanie...",
"Email sent" : "E-mail wysłany",
diff --git a/core/l10n/pl.json b/core/l10n/pl.json
index db3cb4ff306..52f23012923 100644
--- a/core/l10n/pl.json
+++ b/core/l10n/pl.json
@@ -109,6 +109,7 @@
"Link" : "Odnośnik",
"Password protect" : "Zabezpiecz hasłem",
"Allow upload and editing" : "Pozwól na przesyłanie i edycję",
+ "Allow editing" : "Pozwól na edycję",
"Email link to person" : "Wyślij osobie odnośnik poprzez e-mail",
"Send" : "Wyślij",
"Shared with you and the group {group} by {owner}" : "Udostępnione tobie i grupie {group} przez {owner}",
@@ -324,7 +325,6 @@
"Nov." : "Lis.",
"Dec." : "Gru.",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Twoje pliki są zaszyfrowane. Jeśli nie włączyłeś klucza odzyskiwania, nie będzie możliwości odszyfrowania tych plików po zresetowaniu hasła.<br>Jeśli nie jesteś pewien co zrobić, skontaktuj się ze swoim administratorem, zanim bedziesz kontynuował. <br/> Czy chcesz kontynuować?\n ",
- "Allow editing" : "Pozwól na edycję",
"Hide file listing" : "Schowaj listę plików",
"Sending ..." : "Wysyłanie...",
"Email sent" : "E-mail wysłany",
diff --git a/core/l10n/pt_BR.js b/core/l10n/pt_BR.js
index eb4aba06351..7f5bea95d53 100644
--- a/core/l10n/pt_BR.js
+++ b/core/l10n/pt_BR.js
@@ -122,6 +122,7 @@ OC.L10N.register(
"Link" : "Link",
"Password protect" : "Proteger com senha",
"Allow upload and editing" : "Permitir envio e edição",
+ "Allow editing" : "Permitir edição",
"File drop (upload only)" : "Zona de arquivos (somente upload)",
"Email link to person" : "Enviar link por e-mail",
"Send" : "Enviar",
@@ -282,7 +283,7 @@ OC.L10N.register(
"To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Para evitar tempos de espera com instalações maiores, você pode em vez disso executar o seguinte comando a partir do diretório de instalação:",
"Detailed logs" : "Logs detalhados",
"Update needed" : "Atualização necessária",
- "Please use the command line updater because you have a big instance." : "Por favor, use a atualização de linha de comando, porque você tem um grande exemplo.",
+ "Please use the command line updater because you have a big instance." : "Por favor, use a atualização de linha de comando, porque você tem muitos dados em sua instância.",
"For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Para obter ajuda, consulte a <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentação</a>.",
"This %s instance is currently in maintenance mode, which may take a while." : "Esta instância %s está em modo de manutenção, o que pode demorar um pouco.",
"This page will refresh itself when the %s instance is available again." : "Esta página será atualizada automaticamente quando esta instância %s estiver disponível novamente.",
@@ -342,7 +343,6 @@ OC.L10N.register(
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Seus arquivos são criptografados. Se você não ativou a chave de recuperação, não haverá maneira de obter seus dados de volta após a sua senha ser redefinida.<br/>Se não tiver certeza do que deve fazer, contate o administrador antes de continuar. <br/>Deseja realmente continuar?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Este servidor não tem nenhuma conexão com a Internet. Isso significa que alguns dos recursos como montar armazenamento externo, notificações sobre atualizações ou instalação de aplicativos de terceiros não vai funcionar. Acessar arquivos remotamente e envio de e-mails de notificação pode não funcionar, também. Sugerimos permitir conexão com a Internet para este servidor, se você quer ter todas as funcionalidades.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "A configuração de cabeçalhos do proxy reverso está incorreta, ou você está acessando ownCloud de um proxy confiável. Se você não estiver acessando ownCloud de um proxy de confiança, esta é uma questão de segurança e pode permitir a um invasor falsificar o endereço IP como visíveis para ownCloud. Mais informação pode ser encontrada na nossa <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentação</a>.",
- "Allow editing" : "Permitir edição",
"Hide file listing" : "Listar arquivo oculto",
"Sending ..." : "Enviando ...",
"Email sent" : "E-mail enviado",
diff --git a/core/l10n/pt_BR.json b/core/l10n/pt_BR.json
index e064c275129..caa468c1de4 100644
--- a/core/l10n/pt_BR.json
+++ b/core/l10n/pt_BR.json
@@ -120,6 +120,7 @@
"Link" : "Link",
"Password protect" : "Proteger com senha",
"Allow upload and editing" : "Permitir envio e edição",
+ "Allow editing" : "Permitir edição",
"File drop (upload only)" : "Zona de arquivos (somente upload)",
"Email link to person" : "Enviar link por e-mail",
"Send" : "Enviar",
@@ -280,7 +281,7 @@
"To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Para evitar tempos de espera com instalações maiores, você pode em vez disso executar o seguinte comando a partir do diretório de instalação:",
"Detailed logs" : "Logs detalhados",
"Update needed" : "Atualização necessária",
- "Please use the command line updater because you have a big instance." : "Por favor, use a atualização de linha de comando, porque você tem um grande exemplo.",
+ "Please use the command line updater because you have a big instance." : "Por favor, use a atualização de linha de comando, porque você tem muitos dados em sua instância.",
"For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Para obter ajuda, consulte a <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentação</a>.",
"This %s instance is currently in maintenance mode, which may take a while." : "Esta instância %s está em modo de manutenção, o que pode demorar um pouco.",
"This page will refresh itself when the %s instance is available again." : "Esta página será atualizada automaticamente quando esta instância %s estiver disponível novamente.",
@@ -340,7 +341,6 @@
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Seus arquivos são criptografados. Se você não ativou a chave de recuperação, não haverá maneira de obter seus dados de volta após a sua senha ser redefinida.<br/>Se não tiver certeza do que deve fazer, contate o administrador antes de continuar. <br/>Deseja realmente continuar?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Este servidor não tem nenhuma conexão com a Internet. Isso significa que alguns dos recursos como montar armazenamento externo, notificações sobre atualizações ou instalação de aplicativos de terceiros não vai funcionar. Acessar arquivos remotamente e envio de e-mails de notificação pode não funcionar, também. Sugerimos permitir conexão com a Internet para este servidor, se você quer ter todas as funcionalidades.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "A configuração de cabeçalhos do proxy reverso está incorreta, ou você está acessando ownCloud de um proxy confiável. Se você não estiver acessando ownCloud de um proxy de confiança, esta é uma questão de segurança e pode permitir a um invasor falsificar o endereço IP como visíveis para ownCloud. Mais informação pode ser encontrada na nossa <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentação</a>.",
- "Allow editing" : "Permitir edição",
"Hide file listing" : "Listar arquivo oculto",
"Sending ..." : "Enviando ...",
"Email sent" : "E-mail enviado",
diff --git a/core/l10n/pt_PT.js b/core/l10n/pt_PT.js
index 6c1129ab274..28fc45b20e2 100644
--- a/core/l10n/pt_PT.js
+++ b/core/l10n/pt_PT.js
@@ -103,6 +103,7 @@ OC.L10N.register(
"Share link" : "Compartilhar hiperligação",
"Link" : "Hiperligação",
"Password protect" : "Proteger com palavra-passe",
+ "Allow editing" : "Permitir edição",
"Email link to person" : "Enviar hiperligação por mensagem para a pessoa",
"Send" : "Enviar",
"Shared with you and the group {group} by {owner}" : "Partilhado consigo e com o grupo {group} por {owner}",
@@ -290,7 +291,6 @@ OC.L10N.register(
"Dec." : "Dez.",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Os seus ficheiros estão encriptados. Se não ativou a chave de recuperação, não terá nenhum modo para voltar obter os seus dados depois de reiniciar a sua senha. <br />Se não tem a certeza do que fazer, por favor, contacte o seu administrador antes de continuar.<br /> Tem a certeza que quer continuar?",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "A configuração dos headers do proxy reverso está incorreta, ou então está a aceder ao ownCloud através de um proxy de confiança. Se não está a aceder ao ownCloud através de um proxy de confiança, isto é um problema de segurança e poderá permitir a um invasor falsificar um endereço IP como visível para o ownCloud. Mais informação pode ser encontrada na nossa <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentação</a>.",
- "Allow editing" : "Permitir edição",
"Sending ..." : "A enviar...",
"Email sent" : "Mensagem enviada",
"Send link via email" : "Enviar hiperligação por mensagem",
diff --git a/core/l10n/pt_PT.json b/core/l10n/pt_PT.json
index 06edbe83128..fd0d06d47a4 100644
--- a/core/l10n/pt_PT.json
+++ b/core/l10n/pt_PT.json
@@ -101,6 +101,7 @@
"Share link" : "Compartilhar hiperligação",
"Link" : "Hiperligação",
"Password protect" : "Proteger com palavra-passe",
+ "Allow editing" : "Permitir edição",
"Email link to person" : "Enviar hiperligação por mensagem para a pessoa",
"Send" : "Enviar",
"Shared with you and the group {group} by {owner}" : "Partilhado consigo e com o grupo {group} por {owner}",
@@ -288,7 +289,6 @@
"Dec." : "Dez.",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Os seus ficheiros estão encriptados. Se não ativou a chave de recuperação, não terá nenhum modo para voltar obter os seus dados depois de reiniciar a sua senha. <br />Se não tem a certeza do que fazer, por favor, contacte o seu administrador antes de continuar.<br /> Tem a certeza que quer continuar?",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "A configuração dos headers do proxy reverso está incorreta, ou então está a aceder ao ownCloud através de um proxy de confiança. Se não está a aceder ao ownCloud através de um proxy de confiança, isto é um problema de segurança e poderá permitir a um invasor falsificar um endereço IP como visível para o ownCloud. Mais informação pode ser encontrada na nossa <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentação</a>.",
- "Allow editing" : "Permitir edição",
"Sending ..." : "A enviar...",
"Email sent" : "Mensagem enviada",
"Send link via email" : "Enviar hiperligação por mensagem",
diff --git a/core/l10n/ru.js b/core/l10n/ru.js
index 554f3d7e88a..9487a79c578 100644
--- a/core/l10n/ru.js
+++ b/core/l10n/ru.js
@@ -122,6 +122,7 @@ OC.L10N.register(
"Link" : "Ссылка",
"Password protect" : "Защитить паролем",
"Allow upload and editing" : "Разрешить загрузку и редактирование",
+ "Allow editing" : "Разрешить редактирование",
"File drop (upload only)" : "Хранилище (только для приема файлов)",
"Email link to person" : "Отправить ссылку по электронной почте",
"Send" : "Отправить",
@@ -342,7 +343,6 @@ OC.L10N.register(
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Ваши файлы зашифрованы. Если вы не включили ключ восстановления, то ваши данные будут недоступны после сброса пароля.<br />Если вы не уверены что делать дальше - обратитесь к вашему администратору.<br />Вы действительно хотите продолжить?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Этот сервер не имеет подключения к Интернету. Это означает, что некоторые из функций, таких как внешнее хранилище, уведомления об обновлениях и установка сторонних приложений не будут работать. Доступ к файлам удаленно и отправки уведомлений по почте могут не работать. Рекомендуется разрешить данному серверу доступ в Интернет если хотите, чтобы все функции работали.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Конфигурация заголовков обратного прокси не верна, либо доступ к nextCloud осуществлён через доверенный прокси. Если nextCloud открыт не через доверенный прокси то это проблема безопасности, которая может позволить атакующему подделать IP адрес, который видит nextCloud. Дополнительная информация доступна в нашей <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">документации</a>.",
- "Allow editing" : "Разрешить редактирование",
"Hide file listing" : "Скрыть список файлов",
"Sending ..." : "Отправляется ...",
"Email sent" : "Письмо отправлено",
diff --git a/core/l10n/ru.json b/core/l10n/ru.json
index a6cd40b9e75..0644b0af787 100644
--- a/core/l10n/ru.json
+++ b/core/l10n/ru.json
@@ -120,6 +120,7 @@
"Link" : "Ссылка",
"Password protect" : "Защитить паролем",
"Allow upload and editing" : "Разрешить загрузку и редактирование",
+ "Allow editing" : "Разрешить редактирование",
"File drop (upload only)" : "Хранилище (только для приема файлов)",
"Email link to person" : "Отправить ссылку по электронной почте",
"Send" : "Отправить",
@@ -340,7 +341,6 @@
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Ваши файлы зашифрованы. Если вы не включили ключ восстановления, то ваши данные будут недоступны после сброса пароля.<br />Если вы не уверены что делать дальше - обратитесь к вашему администратору.<br />Вы действительно хотите продолжить?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Этот сервер не имеет подключения к Интернету. Это означает, что некоторые из функций, таких как внешнее хранилище, уведомления об обновлениях и установка сторонних приложений не будут работать. Доступ к файлам удаленно и отправки уведомлений по почте могут не работать. Рекомендуется разрешить данному серверу доступ в Интернет если хотите, чтобы все функции работали.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Конфигурация заголовков обратного прокси не верна, либо доступ к nextCloud осуществлён через доверенный прокси. Если nextCloud открыт не через доверенный прокси то это проблема безопасности, которая может позволить атакующему подделать IP адрес, который видит nextCloud. Дополнительная информация доступна в нашей <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">документации</a>.",
- "Allow editing" : "Разрешить редактирование",
"Hide file listing" : "Скрыть список файлов",
"Sending ..." : "Отправляется ...",
"Email sent" : "Письмо отправлено",
diff --git a/core/l10n/sk_SK.js b/core/l10n/sk_SK.js
index 9de7ed78d8c..0b1e2d05f07 100644
--- a/core/l10n/sk_SK.js
+++ b/core/l10n/sk_SK.js
@@ -111,6 +111,7 @@ OC.L10N.register(
"Link" : "Odkaz",
"Password protect" : "Chrániť heslom",
"Allow upload and editing" : "Povoliť nahratie a úpravy",
+ "Allow editing" : "Povoliť úpravy",
"Email link to person" : "Odoslať odkaz emailom",
"Send" : "Odoslať",
"Shared with you and the group {group} by {owner}" : "Sprístupnené vám a skupine {group} používateľom {owner}",
@@ -298,7 +299,6 @@ OC.L10N.register(
"Dec." : "Dec.",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Súbory sú zašifrované. Ak ste nepovolili kľúč pre obnovenie, neexistuje žiadny spôsob, ako obnoviť vaše dáta po obnovení vášho hesla. <br /> Ak si nie ste istí čo urobiť, prosím skôr než budete pokračovať, obráťte sa na administrátora. <br /> Naozaj chcete pokračovať?",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Konfigurácia hlavičiek reverse proxy nie je správna alebo pristupujete k ownCloud z dôveryhodného proxy servera. Ak k ownCloud nepristupujete z dôveryhodného proxy servera, vzniká bezpečnostné riziko - IP adresa potenciálneho útočníka, ktorú vidí ownCloud, môže byť falošná. Viac informácií nájdete v našej <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentácii</a>.",
- "Allow editing" : "Povoliť úpravy",
"Sending ..." : "Odosielam ...",
"Email sent" : "Email odoslaný",
"notify by email" : "informovať emailom",
diff --git a/core/l10n/sk_SK.json b/core/l10n/sk_SK.json
index 45ed351cd69..ae464c73869 100644
--- a/core/l10n/sk_SK.json
+++ b/core/l10n/sk_SK.json
@@ -109,6 +109,7 @@
"Link" : "Odkaz",
"Password protect" : "Chrániť heslom",
"Allow upload and editing" : "Povoliť nahratie a úpravy",
+ "Allow editing" : "Povoliť úpravy",
"Email link to person" : "Odoslať odkaz emailom",
"Send" : "Odoslať",
"Shared with you and the group {group} by {owner}" : "Sprístupnené vám a skupine {group} používateľom {owner}",
@@ -296,7 +297,6 @@
"Dec." : "Dec.",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Súbory sú zašifrované. Ak ste nepovolili kľúč pre obnovenie, neexistuje žiadny spôsob, ako obnoviť vaše dáta po obnovení vášho hesla. <br /> Ak si nie ste istí čo urobiť, prosím skôr než budete pokračovať, obráťte sa na administrátora. <br /> Naozaj chcete pokračovať?",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Konfigurácia hlavičiek reverse proxy nie je správna alebo pristupujete k ownCloud z dôveryhodného proxy servera. Ak k ownCloud nepristupujete z dôveryhodného proxy servera, vzniká bezpečnostné riziko - IP adresa potenciálneho útočníka, ktorú vidí ownCloud, môže byť falošná. Viac informácií nájdete v našej <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentácii</a>.",
- "Allow editing" : "Povoliť úpravy",
"Sending ..." : "Odosielam ...",
"Email sent" : "Email odoslaný",
"notify by email" : "informovať emailom",
diff --git a/core/l10n/sl.js b/core/l10n/sl.js
index 1dfa3dd6637..0ddea48e946 100644
--- a/core/l10n/sl.js
+++ b/core/l10n/sl.js
@@ -107,6 +107,7 @@ OC.L10N.register(
"Link" : "Povezava",
"Password protect" : "Zaščiti z geslom",
"Allow upload and editing" : "Dovoli nalaganje in urejanje",
+ "Allow editing" : "Dovoli urejanje",
"Email link to person" : "Posreduj povezavo po elektronski pošti",
"Send" : "Pošlji",
"Shared with you and the group {group} by {owner}" : "V souporabi z vami in skupino {group}. Lastnik je {owner}.",
@@ -302,7 +303,6 @@ OC.L10N.register(
"Nov." : "nov",
"Dec." : "dec",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Datoteke so šifrirane. Če niste omogočili obnovitvenega ključa, po ponastavitvi gesla ne bo mogoč dostop do datotek.<br />V primeru, da niste prepričani, kaj storiti, stopite v stik s skrbnikom sistema.<br />Ali ste prepričani, da želite nadaljevati?",
- "Allow editing" : "Dovoli urejanje",
"Hide file listing" : "Skrij spisek datotek",
"Sending ..." : "Pošiljanje ...",
"Email sent" : "Elektronska pošta je poslana",
diff --git a/core/l10n/sl.json b/core/l10n/sl.json
index 0e4c6a03ebe..6e9c3892efe 100644
--- a/core/l10n/sl.json
+++ b/core/l10n/sl.json
@@ -105,6 +105,7 @@
"Link" : "Povezava",
"Password protect" : "Zaščiti z geslom",
"Allow upload and editing" : "Dovoli nalaganje in urejanje",
+ "Allow editing" : "Dovoli urejanje",
"Email link to person" : "Posreduj povezavo po elektronski pošti",
"Send" : "Pošlji",
"Shared with you and the group {group} by {owner}" : "V souporabi z vami in skupino {group}. Lastnik je {owner}.",
@@ -300,7 +301,6 @@
"Nov." : "nov",
"Dec." : "dec",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Datoteke so šifrirane. Če niste omogočili obnovitvenega ključa, po ponastavitvi gesla ne bo mogoč dostop do datotek.<br />V primeru, da niste prepričani, kaj storiti, stopite v stik s skrbnikom sistema.<br />Ali ste prepričani, da želite nadaljevati?",
- "Allow editing" : "Dovoli urejanje",
"Hide file listing" : "Skrij spisek datotek",
"Sending ..." : "Pošiljanje ...",
"Email sent" : "Elektronska pošta je poslana",
diff --git a/core/l10n/sq.js b/core/l10n/sq.js
index 0dbf89855f4..29a0ee5ff97 100644
--- a/core/l10n/sq.js
+++ b/core/l10n/sq.js
@@ -122,6 +122,7 @@ OC.L10N.register(
"Link" : "Lidhje",
"Password protect" : "Mbroje me fjalëkalim",
"Allow upload and editing" : "Lejo ngarkim dhe editim",
+ "Allow editing" : "Lejo përpunim",
"File drop (upload only)" : "Lësho skedar (vetëm ngarkim)",
"Email link to person" : "Dërgoja personit lidhjen me email",
"Send" : "Dërgoje",
@@ -342,7 +343,6 @@ OC.L10N.register(
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Kartelat tuaja janë të fshehtëzuara. Nëse s’keni aktivizuar kyçin e rimarrjeve, nuk do të ketë ndonjë rrugë për të marrë sërish të dhënat tuaja pasi të jetë ricaktuar fjalëkalimi juaj.<br />Nëse s’jeni i sigurt se ç’duhet bërë, ju lutemi, përpara se të vazhdoni, lidhuni me përgjegjësin tuaj. <br />Doni vërtet të vazhdoni?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Ky shërbyes nuk ka lidhje Internet funksionale. Kjo do të thotë që disa nga karakteristikat e lidhjes së ngarkesës së jashtme, njoftimet rreth përditësimit ose instalimit të aplikacioneve të palës së tretë nuk do të punojnë. Duke aksesuar skedarët në distancë dhe duke dërguar njoftimin me postë elektronike mund të mos punojë. Ne sygjerojmë të aktivizoni lidhjen e Internet për këtë shërbyes nëse doni të keni të gjitha karakteristikat.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Formësimi për krye ndërmjetësi prapësor është i pasaktë, ose jeni duke hyrë në ownCloud prej një ndërmjetësi të besuar. Nëse s’jeni duke hyrë në ownCloud prej një ndërmjetësi të besuar, ky është një problem sigurie dhe mund t’i lejojë një agresori të maskojë adresën e vet IP si një të pranueshme nga ownCloud-i. Të dhëna të mëtejshme mund të gjeni te <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentimi</a> ynë.",
- "Allow editing" : "Lejo përpunim",
"Hide file listing" : "Fshih skedarin e listimit",
"Sending ..." : "Po dërgohet …",
"Email sent" : "Email-i u dërgua",
diff --git a/core/l10n/sq.json b/core/l10n/sq.json
index b88cc49cf72..b61584cc5f3 100644
--- a/core/l10n/sq.json
+++ b/core/l10n/sq.json
@@ -120,6 +120,7 @@
"Link" : "Lidhje",
"Password protect" : "Mbroje me fjalëkalim",
"Allow upload and editing" : "Lejo ngarkim dhe editim",
+ "Allow editing" : "Lejo përpunim",
"File drop (upload only)" : "Lësho skedar (vetëm ngarkim)",
"Email link to person" : "Dërgoja personit lidhjen me email",
"Send" : "Dërgoje",
@@ -340,7 +341,6 @@
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Kartelat tuaja janë të fshehtëzuara. Nëse s’keni aktivizuar kyçin e rimarrjeve, nuk do të ketë ndonjë rrugë për të marrë sërish të dhënat tuaja pasi të jetë ricaktuar fjalëkalimi juaj.<br />Nëse s’jeni i sigurt se ç’duhet bërë, ju lutemi, përpara se të vazhdoni, lidhuni me përgjegjësin tuaj. <br />Doni vërtet të vazhdoni?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Ky shërbyes nuk ka lidhje Internet funksionale. Kjo do të thotë që disa nga karakteristikat e lidhjes së ngarkesës së jashtme, njoftimet rreth përditësimit ose instalimit të aplikacioneve të palës së tretë nuk do të punojnë. Duke aksesuar skedarët në distancë dhe duke dërguar njoftimin me postë elektronike mund të mos punojë. Ne sygjerojmë të aktivizoni lidhjen e Internet për këtë shërbyes nëse doni të keni të gjitha karakteristikat.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Formësimi për krye ndërmjetësi prapësor është i pasaktë, ose jeni duke hyrë në ownCloud prej një ndërmjetësi të besuar. Nëse s’jeni duke hyrë në ownCloud prej një ndërmjetësi të besuar, ky është një problem sigurie dhe mund t’i lejojë një agresori të maskojë adresën e vet IP si një të pranueshme nga ownCloud-i. Të dhëna të mëtejshme mund të gjeni te <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentimi</a> ynë.",
- "Allow editing" : "Lejo përpunim",
"Hide file listing" : "Fshih skedarin e listimit",
"Sending ..." : "Po dërgohet …",
"Email sent" : "Email-i u dërgua",
diff --git a/core/l10n/sv.js b/core/l10n/sv.js
index 51d3784ab3f..f5cad1205bd 100644
--- a/core/l10n/sv.js
+++ b/core/l10n/sv.js
@@ -122,6 +122,7 @@ OC.L10N.register(
"Link" : "Länk",
"Password protect" : "Lösenordsskydda",
"Allow upload and editing" : "Tillåt uppladdning och redigering",
+ "Allow editing" : "Tillåt redigering",
"File drop (upload only)" : "Göm fillista (endast uppladdning)",
"Email link to person" : "Skicka länken som e-postmeddelande",
"Send" : "Skicka",
@@ -342,7 +343,6 @@ OC.L10N.register(
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Dina filer är krypterade. Om du inte angett någon återställningsnyckel, kommer det att vara omöjligt att få tillbaka dina data efter att lösenordet är återställt..<br />Om du är osäker på vad du ska göra, vänligen kontakta din administratör innan du fortsätter.<br />Är du verkligen helt säker på att du vill fortsätta?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Servern har ingen fungerande internetuppkoppling. Detta betyder att vissa funktioner så som extern lagring, notifikationer om uppdateringar eller installationer utav tredjepartsapplikationer inte kommer fungera. Åtkomst av filer utifrån och att skicka notifieringar via epost kanske inte fungerar heller. Vi föreslår att internetanslutningen aktiveras för denna server om man vill använda samtliga funktioner.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Konfiguration för \"reverse proxy headers\" är felaktig eller så försöker du nå Nextcloud från en betrodd proxy. Om du inte försöker nå Nextcloud från en betrodd proxy, detta är en säkerhetsrisk och kan möjliggöra att en hacker att förfalska sin IP adress som är synlig för Nextcloud. Vidare information kan finnas i vår <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentation</a>.",
- "Allow editing" : "Tillåt redigering",
"Hide file listing" : "Dölj filer i mappen",
"Sending ..." : "Skickar ...",
"Email sent" : "E-post skickat",
diff --git a/core/l10n/sv.json b/core/l10n/sv.json
index 239071f4e7c..642187b356c 100644
--- a/core/l10n/sv.json
+++ b/core/l10n/sv.json
@@ -120,6 +120,7 @@
"Link" : "Länk",
"Password protect" : "Lösenordsskydda",
"Allow upload and editing" : "Tillåt uppladdning och redigering",
+ "Allow editing" : "Tillåt redigering",
"File drop (upload only)" : "Göm fillista (endast uppladdning)",
"Email link to person" : "Skicka länken som e-postmeddelande",
"Send" : "Skicka",
@@ -340,7 +341,6 @@
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Dina filer är krypterade. Om du inte angett någon återställningsnyckel, kommer det att vara omöjligt att få tillbaka dina data efter att lösenordet är återställt..<br />Om du är osäker på vad du ska göra, vänligen kontakta din administratör innan du fortsätter.<br />Är du verkligen helt säker på att du vill fortsätta?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Servern har ingen fungerande internetuppkoppling. Detta betyder att vissa funktioner så som extern lagring, notifikationer om uppdateringar eller installationer utav tredjepartsapplikationer inte kommer fungera. Åtkomst av filer utifrån och att skicka notifieringar via epost kanske inte fungerar heller. Vi föreslår att internetanslutningen aktiveras för denna server om man vill använda samtliga funktioner.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Konfiguration för \"reverse proxy headers\" är felaktig eller så försöker du nå Nextcloud från en betrodd proxy. Om du inte försöker nå Nextcloud från en betrodd proxy, detta är en säkerhetsrisk och kan möjliggöra att en hacker att förfalska sin IP adress som är synlig för Nextcloud. Vidare information kan finnas i vår <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">dokumentation</a>.",
- "Allow editing" : "Tillåt redigering",
"Hide file listing" : "Dölj filer i mappen",
"Sending ..." : "Skickar ...",
"Email sent" : "E-post skickat",
diff --git a/core/l10n/th_TH.js b/core/l10n/th_TH.js
index 3b2a18bba26..09129861c82 100644
--- a/core/l10n/th_TH.js
+++ b/core/l10n/th_TH.js
@@ -97,6 +97,7 @@ OC.L10N.register(
"Share link" : "แชร์ลิงค์",
"Link" : "ลิงค์",
"Password protect" : "ป้องกันด้วยรหัสผ่าน",
+ "Allow editing" : "อนุญาตให้แก้ไข",
"Email link to person" : "ส่งลิงก์ให้ทางอีเมล",
"Send" : "ส่ง",
"Shared with you and the group {group} by {owner}" : "ได้แชร์ให้กับคุณ และกลุ่ม {group} โดย {owner}",
@@ -268,7 +269,6 @@ OC.L10N.register(
"Nov." : "พ.ย.",
"Dec." : "ธ.ค.",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "ไฟล์ของคุณจะถูกเข้ารหัส หากคุณยังไม่ได้เปิดใช้งานรหัสการกู้คืน คุณจะได้รับข้อมูลของคุณกลับมาหลังจากที่รหัสผ่านของคุณถูกรีเซ็ต<br /> หากคุณไม่แน่ใจว่าควรทำอย่างไรโปรดติดต่อผู้ดูแลระบบของคุณก่อนที่คุณจะดำเนินการต่อไป <br /> คุณต้องการดำเนินการต่อ?",
- "Allow editing" : "อนุญาตให้แก้ไข",
"Sending ..." : "กำลังส่ง...",
"Email sent" : "ส่งอีเมล์แล้ว",
"notify by email" : "แจ้งเตือนทางอีเมล",
diff --git a/core/l10n/th_TH.json b/core/l10n/th_TH.json
index 70934ef57d3..589a776139f 100644
--- a/core/l10n/th_TH.json
+++ b/core/l10n/th_TH.json
@@ -95,6 +95,7 @@
"Share link" : "แชร์ลิงค์",
"Link" : "ลิงค์",
"Password protect" : "ป้องกันด้วยรหัสผ่าน",
+ "Allow editing" : "อนุญาตให้แก้ไข",
"Email link to person" : "ส่งลิงก์ให้ทางอีเมล",
"Send" : "ส่ง",
"Shared with you and the group {group} by {owner}" : "ได้แชร์ให้กับคุณ และกลุ่ม {group} โดย {owner}",
@@ -266,7 +267,6 @@
"Nov." : "พ.ย.",
"Dec." : "ธ.ค.",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "ไฟล์ของคุณจะถูกเข้ารหัส หากคุณยังไม่ได้เปิดใช้งานรหัสการกู้คืน คุณจะได้รับข้อมูลของคุณกลับมาหลังจากที่รหัสผ่านของคุณถูกรีเซ็ต<br /> หากคุณไม่แน่ใจว่าควรทำอย่างไรโปรดติดต่อผู้ดูแลระบบของคุณก่อนที่คุณจะดำเนินการต่อไป <br /> คุณต้องการดำเนินการต่อ?",
- "Allow editing" : "อนุญาตให้แก้ไข",
"Sending ..." : "กำลังส่ง...",
"Email sent" : "ส่งอีเมล์แล้ว",
"notify by email" : "แจ้งเตือนทางอีเมล",
diff --git a/core/l10n/tr.js b/core/l10n/tr.js
index 7d9b8eaea8b..f938e97716a 100644
--- a/core/l10n/tr.js
+++ b/core/l10n/tr.js
@@ -108,6 +108,7 @@ OC.L10N.register(
"Share link" : "Paylaşma bağlantısı",
"Link" : "Bağlantı",
"Password protect" : "Parola koruması",
+ "Allow editing" : "Düzenlemeye izin ver",
"Email link to person" : "Bağlantıyı e-posta ile gönder",
"Send" : "Gönder",
"Shared with you and the group {group} by {owner}" : "{owner} tarafından sizinle ve {group} ile paylaştırılmış",
@@ -297,7 +298,6 @@ OC.L10N.register(
"Dec." : "Ara.",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Dosyalarınız şifrelenmiş. Kurtarma anahtarını etkinleştirmemişseniz, parola sıfırlama işleminden sonra verilerinize erişmeniz imkansız olacak.<br />Ne yaptığınızdan emin değilseniz, devam etmeden önce sistem yöneticiniz ile iletişime geçin.<br />Gerçekten devam etmek istiyor musunuz?",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Ters vekil sunucu başlık yapılandırmanız hatalı veya ownCloud'a güvenilen bir vekil sunucudan erişiyorsunuz. Eğer erişiminiz güvenilen bir vekil sunucu aracılığıyla gerçekleşmiyorsa bu bir güvenlik sorunudur ve bir saldırganın IP adresini farklıymış gibi göstermesine neden olabilir. Daha fazla bilgiyi <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelendirmemizde</a> bulabilirsiniz.",
- "Allow editing" : "Düzenlemeye izin ver",
"Hide file listing" : "Dosya listelemesini gizle",
"Sending ..." : "Gönderiliyor...",
"Email sent" : "E-posta gönderildi",
diff --git a/core/l10n/tr.json b/core/l10n/tr.json
index cc9cdfbd3b1..79c15a5ecee 100644
--- a/core/l10n/tr.json
+++ b/core/l10n/tr.json
@@ -106,6 +106,7 @@
"Share link" : "Paylaşma bağlantısı",
"Link" : "Bağlantı",
"Password protect" : "Parola koruması",
+ "Allow editing" : "Düzenlemeye izin ver",
"Email link to person" : "Bağlantıyı e-posta ile gönder",
"Send" : "Gönder",
"Shared with you and the group {group} by {owner}" : "{owner} tarafından sizinle ve {group} ile paylaştırılmış",
@@ -295,7 +296,6 @@
"Dec." : "Ara.",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Dosyalarınız şifrelenmiş. Kurtarma anahtarını etkinleştirmemişseniz, parola sıfırlama işleminden sonra verilerinize erişmeniz imkansız olacak.<br />Ne yaptığınızdan emin değilseniz, devam etmeden önce sistem yöneticiniz ile iletişime geçin.<br />Gerçekten devam etmek istiyor musunuz?",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Ters vekil sunucu başlık yapılandırmanız hatalı veya ownCloud'a güvenilen bir vekil sunucudan erişiyorsunuz. Eğer erişiminiz güvenilen bir vekil sunucu aracılığıyla gerçekleşmiyorsa bu bir güvenlik sorunudur ve bir saldırganın IP adresini farklıymış gibi göstermesine neden olabilir. Daha fazla bilgiyi <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelendirmemizde</a> bulabilirsiniz.",
- "Allow editing" : "Düzenlemeye izin ver",
"Hide file listing" : "Dosya listelemesini gizle",
"Sending ..." : "Gönderiliyor...",
"Email sent" : "E-posta gönderildi",
diff --git a/core/l10n/uk.js b/core/l10n/uk.js
index 5d609bd5e4b..aef131f69fe 100644
--- a/core/l10n/uk.js
+++ b/core/l10n/uk.js
@@ -95,6 +95,7 @@ OC.L10N.register(
"Share link" : "Поділитись посиланням",
"Link" : "Посилання",
"Password protect" : "Захистити паролем",
+ "Allow editing" : "Дозволити редагування",
"Email link to person" : "Надіслати посилання електронною поштою",
"Send" : "Надіслати",
"Shared with you and the group {group} by {owner}" : " {owner} опублікував для Вас та для групи {group}",
@@ -278,7 +279,6 @@ OC.L10N.register(
"Nov." : "Лис.",
"Dec." : "Гру.",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Ваші файли зашифровані. Якщо ви не зробили ключ відновлення, після скидання паролю відновити ваші дані буде неможливо.<br /> Якщо ви не знаєте, що робити, будь ласка, зверніться до адміністратора перед продовженням.<br /> Ви дійсно хочете продовжити?",
- "Allow editing" : "Дозволити редагування",
"Sending ..." : "Надсилання...",
"Email sent" : "Лист надіслано",
"Send link via email" : "Надіслати посилання електронною поштою",
diff --git a/core/l10n/uk.json b/core/l10n/uk.json
index b3df5efdbe3..da69ffaea29 100644
--- a/core/l10n/uk.json
+++ b/core/l10n/uk.json
@@ -93,6 +93,7 @@
"Share link" : "Поділитись посиланням",
"Link" : "Посилання",
"Password protect" : "Захистити паролем",
+ "Allow editing" : "Дозволити редагування",
"Email link to person" : "Надіслати посилання електронною поштою",
"Send" : "Надіслати",
"Shared with you and the group {group} by {owner}" : " {owner} опублікував для Вас та для групи {group}",
@@ -276,7 +277,6 @@
"Nov." : "Лис.",
"Dec." : "Гру.",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Ваші файли зашифровані. Якщо ви не зробили ключ відновлення, після скидання паролю відновити ваші дані буде неможливо.<br /> Якщо ви не знаєте, що робити, будь ласка, зверніться до адміністратора перед продовженням.<br /> Ви дійсно хочете продовжити?",
- "Allow editing" : "Дозволити редагування",
"Sending ..." : "Надсилання...",
"Email sent" : "Лист надіслано",
"Send link via email" : "Надіслати посилання електронною поштою",
diff --git a/core/l10n/zh_CN.js b/core/l10n/zh_CN.js
index 1dc7b0c43b1..47101cfe384 100644
--- a/core/l10n/zh_CN.js
+++ b/core/l10n/zh_CN.js
@@ -122,6 +122,7 @@ OC.L10N.register(
"Link" : "链接",
"Password protect" : "密码保护",
"Allow upload and editing" : "允许上传和编辑",
+ "Allow editing" : "允许编辑",
"File drop (upload only)" : "文件拖拽 (仅上传)",
"Email link to person" : "发送链接到个人",
"Send" : "发送",
@@ -342,7 +343,6 @@ OC.L10N.register(
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "您的文件已经加密. 如果您没有启用恢复密钥, 当您的密码重置后没有任何方式能恢复您的数据. <br />如果您不确定, 请在继续前联系您的管理员.<br/>您是否真的要继续?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "此服务器没有可用的互联网连接. 这意味着某些功能比如挂载外部存储, 更新通知以及安装第三方应用将无法工作. 远程访问文件和发送通知邮件可能也不工作. 如果您想使用所有的功能, 我们建议启用互联网连接.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "反向代理配置错误, 或者您正在通过可信的代理访问 ownCloud. 如果您不是通过可信代理访问 ownCloud, 这将是一个安全问题, 并允许攻击者通过伪装 IP 地址访问 ownCloud. 更多信息请查看我们的<a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">文档</a>.",
- "Allow editing" : "允许编辑",
"Hide file listing" : "隐藏列出的文件",
"Sending ..." : "正在发送...",
"Email sent" : "邮件已发送",
diff --git a/core/l10n/zh_CN.json b/core/l10n/zh_CN.json
index f4126168a4d..23134b325d7 100644
--- a/core/l10n/zh_CN.json
+++ b/core/l10n/zh_CN.json
@@ -120,6 +120,7 @@
"Link" : "链接",
"Password protect" : "密码保护",
"Allow upload and editing" : "允许上传和编辑",
+ "Allow editing" : "允许编辑",
"File drop (upload only)" : "文件拖拽 (仅上传)",
"Email link to person" : "发送链接到个人",
"Send" : "发送",
@@ -340,7 +341,6 @@
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "您的文件已经加密. 如果您没有启用恢复密钥, 当您的密码重置后没有任何方式能恢复您的数据. <br />如果您不确定, 请在继续前联系您的管理员.<br/>您是否真的要继续?",
"This server has no working Internet connection. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "此服务器没有可用的互联网连接. 这意味着某些功能比如挂载外部存储, 更新通知以及安装第三方应用将无法工作. 远程访问文件和发送通知邮件可能也不工作. 如果您想使用所有的功能, 我们建议启用互联网连接.",
"The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "反向代理配置错误, 或者您正在通过可信的代理访问 ownCloud. 如果您不是通过可信代理访问 ownCloud, 这将是一个安全问题, 并允许攻击者通过伪装 IP 地址访问 ownCloud. 更多信息请查看我们的<a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">文档</a>.",
- "Allow editing" : "允许编辑",
"Hide file listing" : "隐藏列出的文件",
"Sending ..." : "正在发送...",
"Email sent" : "邮件已发送",
diff --git a/core/l10n/zh_TW.js b/core/l10n/zh_TW.js
index c547f73c0ee..a3fc8f21d5c 100644
--- a/core/l10n/zh_TW.js
+++ b/core/l10n/zh_TW.js
@@ -103,6 +103,7 @@ OC.L10N.register(
"Link" : "連結",
"Password protect" : "密碼保護",
"Allow upload and editing" : "允許上傳及編輯",
+ "Allow editing" : "允許編輯",
"Email link to person" : "將連結 email 給別人",
"Send" : "寄出",
"Shared with you and the group {group} by {owner}" : "由 {owner} 分享給您和 {group}",
@@ -297,7 +298,6 @@ OC.L10N.register(
"Nov." : "十一月",
"Dec." : "十二月",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "您的檔案是加密的,如果您沒有啟用救援金鑰,當您重設密碼之後將無法存取您的資料。<br/>如果不確定該怎麼做,請聯絡您的系統管理員。<br/>您確定要繼續嗎?",
- "Allow editing" : "允許編輯",
"Hide file listing" : "隱藏檔案列表",
"Sending ..." : "正在傳送…",
"Email sent" : "Email 已寄出",
diff --git a/core/l10n/zh_TW.json b/core/l10n/zh_TW.json
index 08400a03e72..f14939e854e 100644
--- a/core/l10n/zh_TW.json
+++ b/core/l10n/zh_TW.json
@@ -101,6 +101,7 @@
"Link" : "連結",
"Password protect" : "密碼保護",
"Allow upload and editing" : "允許上傳及編輯",
+ "Allow editing" : "允許編輯",
"Email link to person" : "將連結 email 給別人",
"Send" : "寄出",
"Shared with you and the group {group} by {owner}" : "由 {owner} 分享給您和 {group}",
@@ -295,7 +296,6 @@
"Nov." : "十一月",
"Dec." : "十二月",
"Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "您的檔案是加密的,如果您沒有啟用救援金鑰,當您重設密碼之後將無法存取您的資料。<br/>如果不確定該怎麼做,請聯絡您的系統管理員。<br/>您確定要繼續嗎?",
- "Allow editing" : "允許編輯",
"Hide file listing" : "隱藏檔案列表",
"Sending ..." : "正在傳送…",
"Email sent" : "Email 已寄出",
diff --git a/core/routes.php b/core/routes.php
index 6f1892d19ac..5d61d58e037 100644
--- a/core/routes.php
+++ b/core/routes.php
@@ -59,7 +59,6 @@ $application->registerRoutes($this, [
],
'ocs' => [
['root' => '/cloud', 'name' => 'OCS#getCapabilities', 'url' => '/capabilities', 'verb' => 'GET'],
- ['root' => '/cloud', 'name' => 'OCS#getCurrentUser', 'url' => '/user', 'verb' => 'GET'],
['root' => '', 'name' => 'OCS#getConfig', 'url' => '/config', 'verb' => 'GET'],
['root' => '/person', 'name' => 'OCS#personCheck', 'url' => '/check', 'verb' => 'POST'],
['root' => '/identityproof', 'name' => 'OCS#getIdentityProof', 'url' => '/key/{cloudId}', 'verb' => 'GET'],
diff --git a/core/search/js/search.js b/core/search/js/search.js
index 4dd29ef917f..44a69842374 100644
--- a/core/search/js/search.js
+++ b/core/search/js/search.js
@@ -405,6 +405,10 @@ $(document).ready(function() {
OC.Search = new OCA.Search($('#searchbox'), $('#searchresults'));
});
}
+ $('#searchbox + .icon-close-white').click(function() {
+ OC.Search.clear();
+ $('#searchbox').focus();
+ });
});
/**
diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php
index 6cf4a0b8f2d..4842a94897d 100644
--- a/core/templates/layout.user.php
+++ b/core/templates/layout.user.php
@@ -69,6 +69,7 @@
<input id="searchbox" type="search" name="query"
value="" required
autocomplete="off" tabindex="5">
+ <button class="icon-close-white" type="reset"></button>
</form>
<div id="settings">
<div id="expand" tabindex="6" role="link" class="menutoggle">
diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php
index 84b5dc637bc..5e00b31ae41 100644
--- a/lib/composer/composer/autoload_classmap.php
+++ b/lib/composer/composer/autoload_classmap.php
@@ -666,7 +666,6 @@ return array(
'OC\\Repair' => $baseDir . '/lib/private/Repair.php',
'OC\\RepairException' => $baseDir . '/lib/private/RepairException.php',
'OC\\Repair\\AssetCache' => $baseDir . '/lib/private/Repair/AssetCache.php',
- 'OC\\Repair\\AvatarPermissions' => $baseDir . '/lib/private/Repair/AvatarPermissions.php',
'OC\\Repair\\CleanTags' => $baseDir . '/lib/private/Repair/CleanTags.php',
'OC\\Repair\\Collation' => $baseDir . '/lib/private/Repair/Collation.php',
'OC\\Repair\\DropOldJobs' => $baseDir . '/lib/private/Repair/DropOldJobs.php',
diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php
index 01edabe6889..040a1e0d2d3 100644
--- a/lib/composer/composer/autoload_static.php
+++ b/lib/composer/composer/autoload_static.php
@@ -696,7 +696,6 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
'OC\\Repair' => __DIR__ . '/../../..' . '/lib/private/Repair.php',
'OC\\RepairException' => __DIR__ . '/../../..' . '/lib/private/RepairException.php',
'OC\\Repair\\AssetCache' => __DIR__ . '/../../..' . '/lib/private/Repair/AssetCache.php',
- 'OC\\Repair\\AvatarPermissions' => __DIR__ . '/../../..' . '/lib/private/Repair/AvatarPermissions.php',
'OC\\Repair\\CleanTags' => __DIR__ . '/../../..' . '/lib/private/Repair/CleanTags.php',
'OC\\Repair\\Collation' => __DIR__ . '/../../..' . '/lib/private/Repair/Collation.php',
'OC\\Repair\\DropOldJobs' => __DIR__ . '/../../..' . '/lib/private/Repair/DropOldJobs.php',
diff --git a/lib/l10n/fr.js b/lib/l10n/fr.js
index c473cc18a71..96d77556deb 100644
--- a/lib/l10n/fr.js
+++ b/lib/l10n/fr.js
@@ -57,7 +57,7 @@ OC.L10N.register(
"Oracle username and/or password not valid" : "Nom d'utilisateur et/ou mot de passe de la base Oracle non valide(s)",
"DB Error: \"%s\"" : "Erreur de la base de données : \"%s\"",
"Offending command was: \"%s\"" : "La requête en cause est : \"%s\"",
- "You need to enter either an existing account or the administrator." : "Vous devez spécifier le nom d'un compte existant, ou celui de l'administrateur.",
+ "You need to enter either an existing account or the administrator." : "Vous devez indiquer un compte existant ou celui de l'administrateur.",
"Offending command was: \"%s\", name: %s, password: %s" : "La requête en cause est : \"%s\", nom : %s, mot de passe : %s",
"PostgreSQL username and/or password not valid" : "Nom d'utilisateur et/ou mot de passe de la base PostgreSQL non valide(s)",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X n'est pas pris en charge et %s ne fonctionnera pas correctement sur cette plate-forme. Son utilisation est à vos risques et périls !",
diff --git a/lib/l10n/fr.json b/lib/l10n/fr.json
index 121c031e5a0..a9b89108b70 100644
--- a/lib/l10n/fr.json
+++ b/lib/l10n/fr.json
@@ -55,7 +55,7 @@
"Oracle username and/or password not valid" : "Nom d'utilisateur et/ou mot de passe de la base Oracle non valide(s)",
"DB Error: \"%s\"" : "Erreur de la base de données : \"%s\"",
"Offending command was: \"%s\"" : "La requête en cause est : \"%s\"",
- "You need to enter either an existing account or the administrator." : "Vous devez spécifier le nom d'un compte existant, ou celui de l'administrateur.",
+ "You need to enter either an existing account or the administrator." : "Vous devez indiquer un compte existant ou celui de l'administrateur.",
"Offending command was: \"%s\", name: %s, password: %s" : "La requête en cause est : \"%s\", nom : %s, mot de passe : %s",
"PostgreSQL username and/or password not valid" : "Nom d'utilisateur et/ou mot de passe de la base PostgreSQL non valide(s)",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X n'est pas pris en charge et %s ne fonctionnera pas correctement sur cette plate-forme. Son utilisation est à vos risques et périls !",
diff --git a/lib/l10n/zh_CN.js b/lib/l10n/zh_CN.js
new file mode 100644
index 00000000000..05aa8cab94e
--- /dev/null
+++ b/lib/l10n/zh_CN.js
@@ -0,0 +1,212 @@
+OC.L10N.register(
+ "lib",
+ {
+ "Cannot write into \"config\" directory!" : "无法写入 \"config\" 目录!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "对 Web 服务器设置 config 目录的写权限可以修复这个问题.",
+ "See %s" : "查看 %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "对 Web 服务器%s设置 config 目录%s的写权限可以修复这个问题.",
+ "Sample configuration detected" : "示例配置检测",
+ "%1$s and %2$s" : "%1$s 和 %2$s",
+ "%1$s, %2$s and %3$s" : "%1$s, %2$s 和 %3$s",
+ "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s 和 %4$s",
+ "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s 和 %5$s",
+ "PHP %s or higher is required." : "要求 PHP 版本 %s 或者更高。",
+ "PHP with a version lower than %s is required." : "需要版本低于 %s 的PHP.",
+ "Following databases are supported: %s" : "支持以下数据库: %s",
+ "The command line tool %s could not be found" : "命令行工具 %s 未找到",
+ "The library %s is not available." : "库文件 %s 不可用",
+ "Following platforms are supported: %s" : "支持以下平台:%s",
+ "Server version %s or higher is required." : "需要服务器版本 %s 或更高版本。",
+ "Server version %s or lower is required." : "需要服务器版本 %s 或更低版本。",
+ "Unknown filetype" : "未知的文件类型",
+ "Invalid image" : "无效的图像",
+ "Avatar image is not square" : "头像图像不是正方形",
+ "today" : "今天",
+ "yesterday" : "昨天",
+ "_%n day ago_::_%n days ago_" : ["%n 天前"],
+ "last month" : "上月",
+ "_%n month ago_::_%n months ago_" : ["%n 月前"],
+ "last year" : "去年",
+ "_%n year ago_::_%n years ago_" : ["%n 年前"],
+ "_%n hour ago_::_%n hours ago_" : ["%n 小时前"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n 分钟前"],
+ "seconds ago" : "秒前",
+ "File name is a reserved word" : "文件名包含敏感字符",
+ "File name contains at least one invalid character" : "文件名中存在至少一个非法字符",
+ "File name is too long" : "文件名过长",
+ "Dot files are not allowed" : ".文件 不被允许",
+ "Empty filename is not allowed" : "不允许使用空名称。",
+ "APCu" : "APCu",
+ "Redis" : "Redis",
+ "Server settings" : "服务器设置",
+ "Sharing" : "分享",
+ "Encryption" : "加密",
+ "Additional settings" : "其他设置",
+ "Tips & tricks" : "小提示",
+ "%s enter the database username and name." : "%s 输入数据库用户名和名称.",
+ "%s enter the database username." : "%s 输入数据库用户名。",
+ "%s enter the database name." : "%s 输入数据库名称。",
+ "%s you may not use dots in the database name" : "%s 您不能在数据库名称中使用英文句号。",
+ "Oracle connection could not be established" : "不能建立甲骨文连接",
+ "Oracle username and/or password not valid" : "Oracle 数据库用户名和/或密码无效",
+ "DB Error: \"%s\"" : "数据库错误:\"%s\"",
+ "Offending command was: \"%s\"" : "冲突命令为:\"%s\"",
+ "You need to enter either an existing account or the administrator." : "你需要输入一个数据库中已有的账户或管理员账户。",
+ "Offending command was: \"%s\", name: %s, password: %s" : "冲突命令为:\"%s\",名称:%s,密码:%s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL 数据库用户名和/或密码无效",
+ "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X 不被支持并且 %s 在这个平台上无法正常工作。请自行承担风险!",
+ "For the best results, please consider using a GNU/Linux server instead." : "为了达到最好的效果,请考虑使用 GNU/Linux 服务器。",
+ "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "看起来这个 %s 实例运行在32位PHP环境中并且已在php.ini中配置open_basedir。这将在文件超过4GB时出现问题,我们极力反对这样做。",
+ "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "请删除php.ini中的open_basedir设置或切换到64位PHP。",
+ "Set an admin username." : "请设置一个管理员用户名。",
+ "Set an admin password." : "请设置一个管理员密码。",
+ "Can't create or write into the data directory %s" : "无法创建或写入数据目录 %s",
+ "Invalid Federated Cloud ID" : "无效的联合云ID",
+ "%s shared »%s« with you" : "%s 向您分享了 »%s«",
+ "%s via %s" : "%s 通过 %s",
+ "Sharing %s failed, because the file does not exist" : "共享 %s 失败,因为文件不存在。",
+ "You are not allowed to share %s" : "您无权分享 %s",
+ "Sharing %s failed, because the user %s does not exist" : "共享 %s 失败,因为用户 %s 不存在",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "共享 %s 失败,因为用户 %s 不是 %s 所属的任何组的用户",
+ "Sharing %s failed, because this item is already shared with %s" : "共享 %s 失败,因为它已经共享给 %s",
+ "Sharing %s failed, because the group %s does not exist" : "共享 %s 失败,因为 %s 组不存在",
+ "Sharing %s failed, because %s is not a member of the group %s" : "共享 %s 失败,因为 %s 不是 %s 组的成员",
+ "Sharing %s failed, because sharing with links is not allowed" : "共享 %s 失败,因为不允许用链接共享",
+ "Not allowed to create a federated share with the same user" : "不能给你自己分享文件",
+ "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "文件:%s 分享失败,联合云无法找到 %s,请检查设置或联系管理员。",
+ "Share type %s is not valid for %s" : "%s 不是 %s 的合法共享类型",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "设置 %s 权限失败,因为权限超出了 %s 已有权限。",
+ "Setting permissions for %s failed, because the item was not found" : "设置 %s 的权限失败,因为未找到到对应项",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "共享后端 %s 必须实现 OCP\\Share_Backend 接口",
+ "Sharing backend %s not found" : "未找到共享后端 %s",
+ "Sharing backend for %s not found" : "%s 的共享后端未找到",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "共享 %s 失败,因为权限超过了 %s 已有权限",
+ "Sharing %s failed, because resharing is not allowed" : "共享 %s 失败,因为不允许二次共享",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "共享 %s 失败,因为 %s 使用的共享后端未找到它的来源",
+ "Sharing %s failed, because the file could not be found in the file cache" : "共享 %s 失败,因为未在文件缓存中找到文件。",
+ "Cannot increase permissions of %s" : "无法提升 %s 的权限",
+ "Expiration date is in the past" : "到期日期已过.",
+ "Cannot set expiration date more than %s days in the future" : "无法将过期日期设置为超过 %s 天.",
+ "Could not find category \"%s\"" : "无法找到分类 \"%s\"",
+ "Sunday" : "星期日",
+ "Monday" : "星期一",
+ "Tuesday" : "星期二",
+ "Wednesday" : "星期三",
+ "Thursday" : "星期四",
+ "Friday" : "星期五",
+ "Saturday" : "星期六",
+ "Sun." : "周日",
+ "Mon." : "周一",
+ "Tue." : "周二",
+ "Wed." : "周三",
+ "Thu." : "周四",
+ "Fri." : "周五",
+ "Sat." : "周六",
+ "Su" : "日",
+ "Mo" : "一",
+ "Tu" : "二",
+ "We" : "三",
+ "Th" : "四",
+ "Fr" : "五",
+ "Sa" : "六",
+ "January" : "一月",
+ "February" : "二月",
+ "March" : "三月",
+ "April" : "四月",
+ "May" : "五月",
+ "June" : "六月",
+ "July" : "七月",
+ "August" : "八月",
+ "September" : "九月",
+ "October" : "十月",
+ "November" : "十一月",
+ "December" : "十二月",
+ "Jan." : "一月",
+ "Feb." : "二月",
+ "Mar." : "三月",
+ "Apr." : "四月",
+ "May." : "五月",
+ "Jun." : "六月",
+ "Jul." : "七月",
+ "Aug." : "八月",
+ "Sep." : "九月",
+ "Oct." : "十月",
+ "Nov." : "十一月",
+ "Dec." : "十二月",
+ "Apps" : "应用",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "在用户名中只允许使用以下字符:“a-z”,“A-Z”,“0-9”和\"_.@-'\"",
+ "A valid username must be provided" : "必须提供合法的用户名",
+ "Username contains whitespace at the beginning or at the end" : "用户名在开头或结尾处包含空格",
+ "A valid password must be provided" : "必须提供合法的密码",
+ "The username is already being used" : "用户名已被使用",
+ "Login canceled by app" : "已通过应用取消登录",
+ "User disabled" : "用户已禁用",
+ "Help" : "帮助",
+ "Personal" : "个人",
+ "Users" : "用户",
+ "Admin" : "管理",
+ "App \"%s\" cannot be installed because appinfo file cannot be read." : "无法安装应用\"%s\",因为无法读取appinfo文件.",
+ "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "应用程式 \"%s\" 无法安装,因为它与这个版本的服务器不兼容.",
+ "No app name specified" : "没有指定的 App 名称",
+ "App '%s' could not be installed!" : "应用程序 '%s' 无法被安装!",
+ "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "应用程序 \"%s\" 无法被安装,因为为满足下列依赖关系: %s",
+ "File is currently busy, please try again later" : "文件当前正忙,请稍后再试",
+ "Can't read file" : "无法读取文件",
+ "Application is not enabled" : "应用程序未启用",
+ "Authentication error" : "认证出错",
+ "Token expired. Please reload page." : "Token 过期,请刷新页面。",
+ "Unknown user" : "未知用户",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "没有安装数据库驱动 (SQLite、MySQL 或 PostgreSQL)。",
+ "Cannot write into \"config\" directory" : "无法写入“config”目录",
+ "Cannot write into \"apps\" directory" : "无法写入“apps”目录",
+ "Cannot create \"data\" directory (%s)" : "无法创建“apps”目录 (%s)",
+ "Setting locale to %s failed" : "设置语言为 %s 失败",
+ "Please install one of these locales on your system and restart your webserver." : "请在您的系统中安装下述一种语言并重启 Web 服务器.",
+ "Please ask your server administrator to install the module." : "请联系服务器管理员安装模块.",
+ "PHP module %s not installed." : "PHP %s 模块未安装.",
+ "PHP setting \"%s\" is not set to \"%s\"." : "PHP 选项 \"%s\" 未设置为 \"%s\".",
+ "Adjusting this setting in php.ini will make Nextcloud run again" : "在 php.ini 中调整该设置将导致 Nextcloud 重新运行",
+ "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload 当前设置为 \"%s\", 预期值为 \"0\"",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "请在 php.ini 中设置 <code>mbstring.func_overload</code> 为 <code>0</code> 以解决该问题",
+ "libxml2 2.7.0 is at least required. Currently %s is installed." : "至少需要 libxml2 2.7.0. 当前安装 %s.",
+ "To fix this issue update your libxml2 version and restart your web server." : "升级您的 libxml2 版本然后重启 Web 服务器以解决该问题.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "这可能由缓存/加速器导致的, 例如 Zend OPcache 或 eAccelerator.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP 模块已经安装, 但仍然显示未安装?",
+ "Please ask your server administrator to restart the web server." : "请联系服务器管理员重启 Web 服务器.",
+ "PostgreSQL >= 9 required" : "要求 PostgreSQL >= 9",
+ "Please upgrade your database version" : "请升级您的数据库版本",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "请更改权限为 0770 以避免其他用户查看目录.",
+ "Data directory (%s) is readable by other users" : "数据目录 (%s) 能被其他用户读取",
+ "Data directory (%s) must be an absolute path" : "数据目录 (%s) 必须为绝对路径",
+ "Check the value of \"datadirectory\" in your configuration" : "请检查配置文件中 \"datadirectory\" 的值",
+ "Data directory (%s) is invalid" : "数据目录 (%s) 无效",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "请检查根目录下 data 目录中包含名为 \".ocdata\" 的文件.",
+ "Could not obtain lock type %d on \"%s\"." : "无法在 \"%s\" 上获取锁类型 %d.",
+ "Storage unauthorized. %s" : "存储认证失败. %s",
+ "Storage incomplete configuration. %s" : "存储未完成配置. %s",
+ "Storage connection error. %s" : "存储连接错误. %s",
+ "Storage is temporarily not available" : "存储暂时不可用",
+ "Storage connection timeout. %s" : "存储连接超时. %s",
+ "4-byte characters are not supported in file names" : "文件名中不支持 4 字节字符",
+ "App directory already exists" : "应用目录已经存在",
+ "Can't create app folder. Please fix permissions. %s" : "无法创建应用文件夹. 请修改权限. %s",
+ "Archive does not contain a directory named %s" : "压缩文件中不包含目录 %s",
+ "No source specified when installing app" : "安装应用时未指定来源",
+ "No href specified when installing app from http" : "从 http 安装应用时未指定链接",
+ "No path specified when installing app from local file" : "从本地文件安装应用时未指定路径",
+ "Archives of type %s are not supported" : "不支持 %s 的压缩格式",
+ "Failed to open archive when installing app" : "安装应用时打开文件失败",
+ "App does not provide an info.xml file" : "应用未提供 info.xml 文件",
+ "App cannot be installed because appinfo file cannot be read." : "无法安装应用, 因为无法读取应用信息文件",
+ "Signature could not get checked. Please contact the app developer and check your admin screen." : "签名检查失败. 请联系应用开发者并检查您的管理界面",
+ "App can't be installed because of not allowed code in the App" : "无法安装应用, 因为应用中包含不允许的代码",
+ "App can't be installed because it is not compatible with this version of the server" : "无法安装应用, 因为应用不兼容当前服务器的版本",
+ "App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" : "无法安装应用, 因为应用包含 <shipped>true</shipped> 标签",
+ "App can't be installed because the version in info.xml is not the same as the version reported from the app store" : "无法安装应用, 因为 info.xml 中的版本与应用市场中的版本不同",
+ "Logging" : "日志",
+ "Recommended" : "推荐",
+ "Microsoft Windows Platform is not supported" : "不支持 Microsoft Windows 平台",
+ "Running Nextcloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself." : "不支持在 Microsoft Windows 平台运行 Nextcloud 服务器. 如果您没有迁移服务器的计划, 我们建议您在虚拟机中使用 Linux 服务器.",
+ "Storage not available" : "存储空间不可用"
+},
+"nplurals=1; plural=0;");
diff --git a/lib/l10n/zh_CN.json b/lib/l10n/zh_CN.json
new file mode 100644
index 00000000000..0bcf8862f1a
--- /dev/null
+++ b/lib/l10n/zh_CN.json
@@ -0,0 +1,210 @@
+{ "translations": {
+ "Cannot write into \"config\" directory!" : "无法写入 \"config\" 目录!",
+ "This can usually be fixed by giving the webserver write access to the config directory" : "对 Web 服务器设置 config 目录的写权限可以修复这个问题.",
+ "See %s" : "查看 %s",
+ "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "对 Web 服务器%s设置 config 目录%s的写权限可以修复这个问题.",
+ "Sample configuration detected" : "示例配置检测",
+ "%1$s and %2$s" : "%1$s 和 %2$s",
+ "%1$s, %2$s and %3$s" : "%1$s, %2$s 和 %3$s",
+ "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s 和 %4$s",
+ "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s 和 %5$s",
+ "PHP %s or higher is required." : "要求 PHP 版本 %s 或者更高。",
+ "PHP with a version lower than %s is required." : "需要版本低于 %s 的PHP.",
+ "Following databases are supported: %s" : "支持以下数据库: %s",
+ "The command line tool %s could not be found" : "命令行工具 %s 未找到",
+ "The library %s is not available." : "库文件 %s 不可用",
+ "Following platforms are supported: %s" : "支持以下平台:%s",
+ "Server version %s or higher is required." : "需要服务器版本 %s 或更高版本。",
+ "Server version %s or lower is required." : "需要服务器版本 %s 或更低版本。",
+ "Unknown filetype" : "未知的文件类型",
+ "Invalid image" : "无效的图像",
+ "Avatar image is not square" : "头像图像不是正方形",
+ "today" : "今天",
+ "yesterday" : "昨天",
+ "_%n day ago_::_%n days ago_" : ["%n 天前"],
+ "last month" : "上月",
+ "_%n month ago_::_%n months ago_" : ["%n 月前"],
+ "last year" : "去年",
+ "_%n year ago_::_%n years ago_" : ["%n 年前"],
+ "_%n hour ago_::_%n hours ago_" : ["%n 小时前"],
+ "_%n minute ago_::_%n minutes ago_" : ["%n 分钟前"],
+ "seconds ago" : "秒前",
+ "File name is a reserved word" : "文件名包含敏感字符",
+ "File name contains at least one invalid character" : "文件名中存在至少一个非法字符",
+ "File name is too long" : "文件名过长",
+ "Dot files are not allowed" : ".文件 不被允许",
+ "Empty filename is not allowed" : "不允许使用空名称。",
+ "APCu" : "APCu",
+ "Redis" : "Redis",
+ "Server settings" : "服务器设置",
+ "Sharing" : "分享",
+ "Encryption" : "加密",
+ "Additional settings" : "其他设置",
+ "Tips & tricks" : "小提示",
+ "%s enter the database username and name." : "%s 输入数据库用户名和名称.",
+ "%s enter the database username." : "%s 输入数据库用户名。",
+ "%s enter the database name." : "%s 输入数据库名称。",
+ "%s you may not use dots in the database name" : "%s 您不能在数据库名称中使用英文句号。",
+ "Oracle connection could not be established" : "不能建立甲骨文连接",
+ "Oracle username and/or password not valid" : "Oracle 数据库用户名和/或密码无效",
+ "DB Error: \"%s\"" : "数据库错误:\"%s\"",
+ "Offending command was: \"%s\"" : "冲突命令为:\"%s\"",
+ "You need to enter either an existing account or the administrator." : "你需要输入一个数据库中已有的账户或管理员账户。",
+ "Offending command was: \"%s\", name: %s, password: %s" : "冲突命令为:\"%s\",名称:%s,密码:%s",
+ "PostgreSQL username and/or password not valid" : "PostgreSQL 数据库用户名和/或密码无效",
+ "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X 不被支持并且 %s 在这个平台上无法正常工作。请自行承担风险!",
+ "For the best results, please consider using a GNU/Linux server instead." : "为了达到最好的效果,请考虑使用 GNU/Linux 服务器。",
+ "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "看起来这个 %s 实例运行在32位PHP环境中并且已在php.ini中配置open_basedir。这将在文件超过4GB时出现问题,我们极力反对这样做。",
+ "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "请删除php.ini中的open_basedir设置或切换到64位PHP。",
+ "Set an admin username." : "请设置一个管理员用户名。",
+ "Set an admin password." : "请设置一个管理员密码。",
+ "Can't create or write into the data directory %s" : "无法创建或写入数据目录 %s",
+ "Invalid Federated Cloud ID" : "无效的联合云ID",
+ "%s shared »%s« with you" : "%s 向您分享了 »%s«",
+ "%s via %s" : "%s 通过 %s",
+ "Sharing %s failed, because the file does not exist" : "共享 %s 失败,因为文件不存在。",
+ "You are not allowed to share %s" : "您无权分享 %s",
+ "Sharing %s failed, because the user %s does not exist" : "共享 %s 失败,因为用户 %s 不存在",
+ "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "共享 %s 失败,因为用户 %s 不是 %s 所属的任何组的用户",
+ "Sharing %s failed, because this item is already shared with %s" : "共享 %s 失败,因为它已经共享给 %s",
+ "Sharing %s failed, because the group %s does not exist" : "共享 %s 失败,因为 %s 组不存在",
+ "Sharing %s failed, because %s is not a member of the group %s" : "共享 %s 失败,因为 %s 不是 %s 组的成员",
+ "Sharing %s failed, because sharing with links is not allowed" : "共享 %s 失败,因为不允许用链接共享",
+ "Not allowed to create a federated share with the same user" : "不能给你自己分享文件",
+ "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "文件:%s 分享失败,联合云无法找到 %s,请检查设置或联系管理员。",
+ "Share type %s is not valid for %s" : "%s 不是 %s 的合法共享类型",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "设置 %s 权限失败,因为权限超出了 %s 已有权限。",
+ "Setting permissions for %s failed, because the item was not found" : "设置 %s 的权限失败,因为未找到到对应项",
+ "Sharing backend %s must implement the interface OCP\\Share_Backend" : "共享后端 %s 必须实现 OCP\\Share_Backend 接口",
+ "Sharing backend %s not found" : "未找到共享后端 %s",
+ "Sharing backend for %s not found" : "%s 的共享后端未找到",
+ "Sharing %s failed, because the permissions exceed permissions granted to %s" : "共享 %s 失败,因为权限超过了 %s 已有权限",
+ "Sharing %s failed, because resharing is not allowed" : "共享 %s 失败,因为不允许二次共享",
+ "Sharing %s failed, because the sharing backend for %s could not find its source" : "共享 %s 失败,因为 %s 使用的共享后端未找到它的来源",
+ "Sharing %s failed, because the file could not be found in the file cache" : "共享 %s 失败,因为未在文件缓存中找到文件。",
+ "Cannot increase permissions of %s" : "无法提升 %s 的权限",
+ "Expiration date is in the past" : "到期日期已过.",
+ "Cannot set expiration date more than %s days in the future" : "无法将过期日期设置为超过 %s 天.",
+ "Could not find category \"%s\"" : "无法找到分类 \"%s\"",
+ "Sunday" : "星期日",
+ "Monday" : "星期一",
+ "Tuesday" : "星期二",
+ "Wednesday" : "星期三",
+ "Thursday" : "星期四",
+ "Friday" : "星期五",
+ "Saturday" : "星期六",
+ "Sun." : "周日",
+ "Mon." : "周一",
+ "Tue." : "周二",
+ "Wed." : "周三",
+ "Thu." : "周四",
+ "Fri." : "周五",
+ "Sat." : "周六",
+ "Su" : "日",
+ "Mo" : "一",
+ "Tu" : "二",
+ "We" : "三",
+ "Th" : "四",
+ "Fr" : "五",
+ "Sa" : "六",
+ "January" : "一月",
+ "February" : "二月",
+ "March" : "三月",
+ "April" : "四月",
+ "May" : "五月",
+ "June" : "六月",
+ "July" : "七月",
+ "August" : "八月",
+ "September" : "九月",
+ "October" : "十月",
+ "November" : "十一月",
+ "December" : "十二月",
+ "Jan." : "一月",
+ "Feb." : "二月",
+ "Mar." : "三月",
+ "Apr." : "四月",
+ "May." : "五月",
+ "Jun." : "六月",
+ "Jul." : "七月",
+ "Aug." : "八月",
+ "Sep." : "九月",
+ "Oct." : "十月",
+ "Nov." : "十一月",
+ "Dec." : "十二月",
+ "Apps" : "应用",
+ "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "在用户名中只允许使用以下字符:“a-z”,“A-Z”,“0-9”和\"_.@-'\"",
+ "A valid username must be provided" : "必须提供合法的用户名",
+ "Username contains whitespace at the beginning or at the end" : "用户名在开头或结尾处包含空格",
+ "A valid password must be provided" : "必须提供合法的密码",
+ "The username is already being used" : "用户名已被使用",
+ "Login canceled by app" : "已通过应用取消登录",
+ "User disabled" : "用户已禁用",
+ "Help" : "帮助",
+ "Personal" : "个人",
+ "Users" : "用户",
+ "Admin" : "管理",
+ "App \"%s\" cannot be installed because appinfo file cannot be read." : "无法安装应用\"%s\",因为无法读取appinfo文件.",
+ "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "应用程式 \"%s\" 无法安装,因为它与这个版本的服务器不兼容.",
+ "No app name specified" : "没有指定的 App 名称",
+ "App '%s' could not be installed!" : "应用程序 '%s' 无法被安装!",
+ "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "应用程序 \"%s\" 无法被安装,因为为满足下列依赖关系: %s",
+ "File is currently busy, please try again later" : "文件当前正忙,请稍后再试",
+ "Can't read file" : "无法读取文件",
+ "Application is not enabled" : "应用程序未启用",
+ "Authentication error" : "认证出错",
+ "Token expired. Please reload page." : "Token 过期,请刷新页面。",
+ "Unknown user" : "未知用户",
+ "No database drivers (sqlite, mysql, or postgresql) installed." : "没有安装数据库驱动 (SQLite、MySQL 或 PostgreSQL)。",
+ "Cannot write into \"config\" directory" : "无法写入“config”目录",
+ "Cannot write into \"apps\" directory" : "无法写入“apps”目录",
+ "Cannot create \"data\" directory (%s)" : "无法创建“apps”目录 (%s)",
+ "Setting locale to %s failed" : "设置语言为 %s 失败",
+ "Please install one of these locales on your system and restart your webserver." : "请在您的系统中安装下述一种语言并重启 Web 服务器.",
+ "Please ask your server administrator to install the module." : "请联系服务器管理员安装模块.",
+ "PHP module %s not installed." : "PHP %s 模块未安装.",
+ "PHP setting \"%s\" is not set to \"%s\"." : "PHP 选项 \"%s\" 未设置为 \"%s\".",
+ "Adjusting this setting in php.ini will make Nextcloud run again" : "在 php.ini 中调整该设置将导致 Nextcloud 重新运行",
+ "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload 当前设置为 \"%s\", 预期值为 \"0\"",
+ "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "请在 php.ini 中设置 <code>mbstring.func_overload</code> 为 <code>0</code> 以解决该问题",
+ "libxml2 2.7.0 is at least required. Currently %s is installed." : "至少需要 libxml2 2.7.0. 当前安装 %s.",
+ "To fix this issue update your libxml2 version and restart your web server." : "升级您的 libxml2 版本然后重启 Web 服务器以解决该问题.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "这可能由缓存/加速器导致的, 例如 Zend OPcache 或 eAccelerator.",
+ "PHP modules have been installed, but they are still listed as missing?" : "PHP 模块已经安装, 但仍然显示未安装?",
+ "Please ask your server administrator to restart the web server." : "请联系服务器管理员重启 Web 服务器.",
+ "PostgreSQL >= 9 required" : "要求 PostgreSQL >= 9",
+ "Please upgrade your database version" : "请升级您的数据库版本",
+ "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "请更改权限为 0770 以避免其他用户查看目录.",
+ "Data directory (%s) is readable by other users" : "数据目录 (%s) 能被其他用户读取",
+ "Data directory (%s) must be an absolute path" : "数据目录 (%s) 必须为绝对路径",
+ "Check the value of \"datadirectory\" in your configuration" : "请检查配置文件中 \"datadirectory\" 的值",
+ "Data directory (%s) is invalid" : "数据目录 (%s) 无效",
+ "Please check that the data directory contains a file \".ocdata\" in its root." : "请检查根目录下 data 目录中包含名为 \".ocdata\" 的文件.",
+ "Could not obtain lock type %d on \"%s\"." : "无法在 \"%s\" 上获取锁类型 %d.",
+ "Storage unauthorized. %s" : "存储认证失败. %s",
+ "Storage incomplete configuration. %s" : "存储未完成配置. %s",
+ "Storage connection error. %s" : "存储连接错误. %s",
+ "Storage is temporarily not available" : "存储暂时不可用",
+ "Storage connection timeout. %s" : "存储连接超时. %s",
+ "4-byte characters are not supported in file names" : "文件名中不支持 4 字节字符",
+ "App directory already exists" : "应用目录已经存在",
+ "Can't create app folder. Please fix permissions. %s" : "无法创建应用文件夹. 请修改权限. %s",
+ "Archive does not contain a directory named %s" : "压缩文件中不包含目录 %s",
+ "No source specified when installing app" : "安装应用时未指定来源",
+ "No href specified when installing app from http" : "从 http 安装应用时未指定链接",
+ "No path specified when installing app from local file" : "从本地文件安装应用时未指定路径",
+ "Archives of type %s are not supported" : "不支持 %s 的压缩格式",
+ "Failed to open archive when installing app" : "安装应用时打开文件失败",
+ "App does not provide an info.xml file" : "应用未提供 info.xml 文件",
+ "App cannot be installed because appinfo file cannot be read." : "无法安装应用, 因为无法读取应用信息文件",
+ "Signature could not get checked. Please contact the app developer and check your admin screen." : "签名检查失败. 请联系应用开发者并检查您的管理界面",
+ "App can't be installed because of not allowed code in the App" : "无法安装应用, 因为应用中包含不允许的代码",
+ "App can't be installed because it is not compatible with this version of the server" : "无法安装应用, 因为应用不兼容当前服务器的版本",
+ "App can't be installed because it contains the <shipped>true</shipped> tag which is not allowed for non shipped apps" : "无法安装应用, 因为应用包含 <shipped>true</shipped> 标签",
+ "App can't be installed because the version in info.xml is not the same as the version reported from the app store" : "无法安装应用, 因为 info.xml 中的版本与应用市场中的版本不同",
+ "Logging" : "日志",
+ "Recommended" : "推荐",
+ "Microsoft Windows Platform is not supported" : "不支持 Microsoft Windows 平台",
+ "Running Nextcloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself." : "不支持在 Microsoft Windows 平台运行 Nextcloud 服务器. 如果您没有迁移服务器的计划, 我们建议您在虚拟机中使用 Linux 服务器.",
+ "Storage not available" : "存储空间不可用"
+},"pluralForm" :"nplurals=1; plural=0;"
+} \ No newline at end of file
diff --git a/lib/private/Console/TimestampFormatter.php b/lib/private/Console/TimestampFormatter.php
index 5b292439a4c..d68db95f645 100644
--- a/lib/private/Console/TimestampFormatter.php
+++ b/lib/private/Console/TimestampFormatter.php
@@ -101,7 +101,7 @@ class TimestampFormatter implements OutputFormatterInterface {
$timeZone = $timeZone !== null ? new \DateTimeZone($timeZone) : null;
$time = new \DateTime('now', $timeZone);
- $timestampInfo = $time->format($this->config->getSystemValue('logdateformat', 'c'));
+ $timestampInfo = $time->format($this->config->getSystemValue('logdateformat', \DateTime::ISO8601));
return $timestampInfo . ' ' . $this->formatter->format($message);
}
diff --git a/lib/private/Files/Storage/Common.php b/lib/private/Files/Storage/Common.php
index 5561f6a889b..f3e3cb9e58c 100644
--- a/lib/private/Files/Storage/Common.php
+++ b/lib/private/Files/Storage/Common.php
@@ -436,10 +436,14 @@ abstract class Common implements Storage, ILockingStorage {
* @return bool
*/
public function test() {
- if ($this->stat('')) {
- return true;
+ try {
+ if ($this->stat('')) {
+ return true;
+ }
+ return false;
+ } catch (\Exception $e) {
+ return false;
}
- return false;
}
/**
diff --git a/lib/private/Files/Storage/DAV.php b/lib/private/Files/Storage/DAV.php
index abe219f99f2..3b89a66d6a2 100644
--- a/lib/private/Files/Storage/DAV.php
+++ b/lib/private/Files/Storage/DAV.php
@@ -569,8 +569,8 @@ class DAV extends Common {
public function stat($path) {
try {
$response = $this->propfind($path);
- if ($response === false) {
- return [];
+ if (!$response) {
+ return false;
}
return [
'mtime' => strtotime($response['{DAV:}getlastmodified']),
diff --git a/lib/private/Log/File.php b/lib/private/Log/File.php
index 904aa1d93f1..d41ab83c804 100644
--- a/lib/private/Log/File.php
+++ b/lib/private/Log/File.php
@@ -75,8 +75,8 @@ class File {
$config = \OC::$server->getSystemConfig();
// default to ISO8601
- $format = $config->getValue('logdateformat', 'c');
- $logTimeZone = $config->getValue( "logtimezone", 'UTC' );
+ $format = $config->getValue('logdateformat', \DateTime::ISO8601);
+ $logTimeZone = $config->getValue('logtimezone', 'UTC');
try {
$timezone = new \DateTimeZone($logTimeZone);
} catch (\Exception $e) {
diff --git a/lib/private/NavigationManager.php b/lib/private/NavigationManager.php
index 3e9ddfc6466..f7bc02943a3 100644
--- a/lib/private/NavigationManager.php
+++ b/lib/private/NavigationManager.php
@@ -1,6 +1,6 @@
<?php
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
+ * @copyright Copyright (c) 2016, ownCloud GmbH
*
* @author Bart Visscher <bartv@thisnet.nl>
* @author Joas Schilling <coding@schilljs.com>
@@ -26,13 +26,46 @@
namespace OC;
+use OC\App\AppManager;
+use OCP\App\IAppManager;
+use OCP\IGroupManager;
+use OCP\INavigationManager;
+use OCP\IURLGenerator;
+use OCP\IUserSession;
+use OCP\L10N\IFactory;
+
/**
* Manages the ownCloud navigation
*/
-class NavigationManager implements \OCP\INavigationManager {
- protected $entries = array();
- protected $closureEntries = array();
+
+class NavigationManager implements INavigationManager {
+ protected $entries = [];
+ protected $closureEntries = [];
protected $activeEntry;
+ /** @var bool */
+ protected $init = false;
+ /** @var IAppManager|AppManager */
+ protected $appManager;
+ /** @var IURLGenerator */
+ private $urlGenerator;
+ /** @var IFactory */
+ private $l10nFac;
+ /** @var IUserSession */
+ private $userSession;
+ /** @var IGroupManager */
+ private $groupManager;
+
+ public function __construct(IAppManager $appManager = null,
+ IURLGenerator $urlGenerator = null,
+ IFactory $l10nFac = null,
+ IUserSession $userSession = null,
+ IGroupManager$groupManager = null) {
+ $this->appManager = $appManager;
+ $this->urlGenerator = $urlGenerator;
+ $this->l10nFac = $l10nFac;
+ $this->userSession = $userSession;
+ $this->groupManager = $groupManager;
+ }
/**
* Creates a new navigation entry
@@ -60,6 +93,7 @@ class NavigationManager implements \OCP\INavigationManager {
* @return array an array of the added entries
*/
public function getAll() {
+ $this->init();
foreach ($this->closureEntries as $c) {
$this->add($c());
}
@@ -71,8 +105,9 @@ class NavigationManager implements \OCP\INavigationManager {
* removes all the entries
*/
public function clear() {
- $this->entries = array();
- $this->closureEntries = array();
+ $this->entries = [];
+ $this->closureEntries = [];
+ $this->init = false;
}
/**
@@ -93,4 +128,64 @@ class NavigationManager implements \OCP\INavigationManager {
public function getActiveEntry() {
return $this->activeEntry;
}
+
+ private function init() {
+ if ($this->init) {
+ return;
+ }
+ $this->init = true;
+ if (is_null($this->appManager)) {
+ return;
+ }
+ foreach ($this->appManager->getInstalledApps() as $app) {
+ // load plugins and collections from info.xml
+ $info = $this->appManager->getAppInfo($app);
+ if (!isset($info['navigation'])) {
+ continue;
+ }
+ $nav = $info['navigation'];
+ if (!isset($nav['name'])) {
+ continue;
+ }
+ if (!isset($nav['route'])) {
+ continue;
+ }
+ $role = isset($nav['@attributes']['role']) ? $nav['@attributes']['role'] : 'all';
+ if ($role === 'admin' && !$this->isAdmin()) {
+ continue;
+ }
+ $l = $this->l10nFac->get($app);
+ $order = isset($nav['order']) ? $nav['order'] : 100;
+ $route = $this->urlGenerator->linkToRoute($nav['route']);
+ $icon = isset($nav['icon']) ? $nav['icon'] : 'app.svg';
+ foreach ([$icon, "$app.svg"] as $i) {
+ try {
+ $icon = $this->urlGenerator->imagePath($app, $i);
+ break;
+ } catch (\RuntimeException $ex) {
+ // no icon? - ignore it then
+ }
+ }
+ if (is_null($icon)) {
+ $icon = $this->urlGenerator->imagePath('core', 'default-app-icon');
+ }
+
+ $this->add([
+ 'id' => $app,
+ 'order' => $order,
+ 'href' => $route,
+ 'icon' => $icon,
+ 'name' => $l->t($nav['name']),
+ ]);
+ }
+ }
+
+ private function isAdmin() {
+ $user = $this->userSession->getUser();
+ if ($user !== null) {
+ return $this->groupManager->isAdmin($user->getUID());
+ }
+ return false;
+ }
+
}
diff --git a/lib/private/Repair.php b/lib/private/Repair.php
index f1bf586b49d..e8d466cd844 100644
--- a/lib/private/Repair.php
+++ b/lib/private/Repair.php
@@ -31,7 +31,6 @@
namespace OC;
use OC\Repair\AssetCache;
-use OC\Repair\AvatarPermissions;
use OC\Repair\CleanTags;
use OC\Repair\Collation;
use OC\Repair\DropOldJobs;
@@ -142,7 +141,6 @@ class Repair implements IOutput{
new RepairInvalidShares(\OC::$server->getConfig(), \OC::$server->getDatabaseConnection()),
new SharePropagation(\OC::$server->getConfig()),
new RemoveOldShares(\OC::$server->getDatabaseConnection()),
- new AvatarPermissions(\OC::$server->getDatabaseConnection()),
new RemoveRootShares(\OC::$server->getDatabaseConnection(), \OC::$server->getUserManager(), \OC::$server->getLazyRootFolder()),
new RepairUnmergedShares(
\OC::$server->getConfig(),
diff --git a/lib/private/Repair/AvatarPermissions.php b/lib/private/Repair/AvatarPermissions.php
deleted file mode 100644
index 9d75062358c..00000000000
--- a/lib/private/Repair/AvatarPermissions.php
+++ /dev/null
@@ -1,116 +0,0 @@
-<?php
-/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-namespace OC\Repair;
-
-use Doctrine\DBAL\Platforms\OraclePlatform;
-use OCP\IDBConnection;
-use OCP\Migration\IOutput;
-use OCP\Migration\IRepairStep;
-
-/**
- * Class AvatarPermissions
- *
- * @package OC\Repair
- */
-class AvatarPermissions implements IRepairStep {
- /** @var IDBConnection */
- private $connection;
-
- /**
- * AvatarPermissions constructor.
- *
- * @param IDBConnection $connection
- */
- public function __construct(IDBConnection $connection) {
- $this->connection = $connection;
- }
-
- /**
- * @return string
- */
- public function getName() {
- return 'Fix permissions so avatars can be stored again';
- }
-
- /**
- * @param IOutput $output
- */
- public function run(IOutput $output) {
- $output->startProgress(2);
- $this->fixUserRootPermissions();
- $output->advance();
- $this->fixAvatarPermissions();
- $output->finishProgress();
- }
-
- /**
- * Make sure all user roots have permissions 23 (all but share)
- */
- protected function fixUserRootPermissions() {
- $qb = $this->connection->getQueryBuilder();
- $qb2 = $this->connection->getQueryBuilder();
-
- $qb->select('numeric_id')
- ->from('storages')
- ->where($qb->expr()->like('id', $qb2->createParameter('like')));
-
- if ($this->connection->getDatabasePlatform() instanceof OraclePlatform) {
- // '' is null on oracle
- $path = $qb2->expr()->isNull('path');
- } else {
- $path = $qb2->expr()->eq('path', $qb2->createNamedParameter(''));
- }
-
- $qb2->update('filecache')
- ->set('permissions', $qb2->createNamedParameter(23))
- ->where($path)
- ->andWhere($qb2->expr()->in('storage', $qb2->createFunction($qb->getSQL())))
- ->andWhere($qb2->expr()->neq('permissions', $qb2->createNamedParameter(23)))
- ->setParameter('like', 'home::%');
-
-
- $qb2->execute();
- }
-
- /**
- * Make sure all avatar files in the user roots have permission 27
- */
- protected function fixAvatarPermissions() {
- $qb = $this->connection->getQueryBuilder();
- $qb2 = $this->connection->getQueryBuilder();
-
- $qb->select('numeric_id')
- ->from('storages')
- ->where($qb->expr()->like('id', $qb2->createParameter('like')));
-
- $qb2->update('filecache')
- ->set('permissions', $qb2->createNamedParameter(27))
- ->where($qb2->expr()->like('path', $qb2->createNamedParameter('avatar.%')))
- ->andWhere($qb2->expr()->in('storage', $qb2->createFunction($qb->getSQL())))
- ->andWhere($qb2->expr()->neq('permissions', $qb2->createNamedParameter(27)))
- ->setParameter('like', 'home::%');
-
- $qb2->execute();
- }
-
-}
-
diff --git a/lib/private/Server.php b/lib/private/Server.php
index 8528d5e7b32..bd8818e9460 100644
--- a/lib/private/Server.php
+++ b/lib/private/Server.php
@@ -316,8 +316,12 @@ class Server extends ServerContainer implements IServerContainer {
return new \OC\Authentication\TwoFactorAuth\Manager($c->getAppManager(), $c->getSession(), $c->getConfig(), $c->getActivityManager(), $c->getLogger());
});
- $this->registerService('NavigationManager', function ($c) {
- return new \OC\NavigationManager();
+ $this->registerService('NavigationManager', function (Server $c) {
+ return new \OC\NavigationManager($c->getAppManager(),
+ $c->getURLGenerator(),
+ $c->getL10NFactory(),
+ $c->getUserSession(),
+ $c->getGroupManager());
});
$this->registerService('AllConfig', function (Server $c) {
return new \OC\AllConfig(
@@ -377,7 +381,7 @@ class Server extends ServerContainer implements IServerContainer {
$version = implode(',', $v);
$instanceId = \OC_Util::getInstanceId();
$path = \OC::$SERVERROOT;
- $prefix = md5($instanceId . '-' . $version . '-' . $path);
+ $prefix = md5($instanceId . '-' . $version . '-' . $path . '-' . \OC::$WEBROOT);
return new \OC\Memcache\Factory($prefix, $c->getLogger(),
$config->getSystemValue('memcache.local', null),
$config->getSystemValue('memcache.distributed', null),
diff --git a/lib/private/Setup.php b/lib/private/Setup.php
index 81a5343fe21..d9997767684 100644
--- a/lib/private/Setup.php
+++ b/lib/private/Setup.php
@@ -125,8 +125,8 @@ class Setup {
public function getSupportedDatabases($allowAllDatabases = false) {
$availableDatabases = array(
'sqlite' => array(
- 'type' => 'class',
- 'call' => 'SQLite3',
+ 'type' => 'pdo',
+ 'call' => 'sqlite',
'name' => 'SQLite'
),
'mysql' => array(
@@ -163,9 +163,7 @@ class Setup {
$type = $availableDatabases[$database]['type'];
$call = $availableDatabases[$database]['call'];
- if($type === 'class') {
- $working = $this->class_exists($call);
- } elseif ($type === 'function') {
+ if ($type === 'function') {
$working = $this->is_callable($call);
} elseif($type === 'pdo') {
$working = in_array($call, $this->getAvailableDbDriversForPdo(), TRUE);
diff --git a/lib/private/Template/CSSResourceLocator.php b/lib/private/Template/CSSResourceLocator.php
index 6af4e319e36..b306e078cd2 100644
--- a/lib/private/Template/CSSResourceLocator.php
+++ b/lib/private/Template/CSSResourceLocator.php
@@ -49,20 +49,22 @@ class CSSResourceLocator extends ResourceLocator {
* @param string $style
*/
public function doFind($style) {
+ $app = substr($style, 0, strpos($style, '/'));
if (strpos($style, '3rdparty') === 0
&& $this->appendIfExist($this->thirdpartyroot, $style.'.css')
- || $this->cacheAndAppendScssIfExist($this->serverroot, $style.'.scss')
+ || $this->cacheAndAppendScssIfExist($this->serverroot, $style.'.scss', $app)
|| $this->cacheAndAppendScssIfExist($this->serverroot, 'core/'.$style.'.scss')
|| $this->appendIfExist($this->serverroot, $style.'.css')
|| $this->appendIfExist($this->serverroot, 'core/'.$style.'.css')
) {
return;
}
- $app = substr($style, 0, strpos($style, '/'));
$style = substr($style, strpos($style, '/')+1);
$app_path = \OC_App::getAppPath($app);
$app_url = \OC_App::getAppWebPath($app);
- $this->append($app_path, $style.'.css', $app_url);
+ if(!$this->cacheAndAppendScssIfExist($app_path, $style.'.scss', $app)) {
+ $this->append($app_path, $style.'.css', $app_url);
+ }
}
/**
@@ -80,14 +82,13 @@ class CSSResourceLocator extends ResourceLocator {
*
* @param string $root path to check
* @param string $file the filename
- * @param string|null $webRoot base for path, default map $root to $webRoot
* @return bool True if the resource was found and cached, false otherwise
*/
- protected function cacheAndAppendScssIfExist($root, $file, $webRoot = null) {
+ protected function cacheAndAppendScssIfExist($root, $file, $app = 'core') {
if (is_file($root.'/'.$file)) {
if($this->scssCacher !== null) {
- if($this->scssCacher->process($root, $file)) {
- $this->append($root, $this->scssCacher->getCachedSCSS('core', $file), $webRoot, false);
+ if($this->scssCacher->process($root, $file, $app)) {
+ $this->append($root, $this->scssCacher->getCachedSCSS($app, $file), false);
return true;
} else {
$this->logger->error('Failed to compile and/or save '.$root.'/'.$file, ['app' => 'core']);
diff --git a/lib/private/Template/SCSSCacher.php b/lib/private/Template/SCSSCacher.php
index 0c1711b9fb7..d6f5a2c6fd3 100644
--- a/lib/private/Template/SCSSCacher.php
+++ b/lib/private/Template/SCSSCacher.php
@@ -63,9 +63,10 @@ class SCSSCacher {
* Process the caching process if needed
* @param string $root Root path to the nextcloud installation
* @param string $file
+ * @param string $app The app name
* @return boolean
*/
- public function process($root, $file) {
+ public function process($root, $file, $app) {
$path = explode('/', $root . '/' . $file);
$fileNameSCSS = array_pop($path);
@@ -78,10 +79,10 @@ class SCSSCacher {
$webDir = implode('/', $webDir);
try {
- $folder = $this->appData->getFolder('core');
+ $folder = $this->appData->getFolder($app);
} catch(NotFoundException $e) {
// creating css appdata folder
- $folder = $this->appData->newFolder('core');
+ $folder = $this->appData->newFolder($app);
}
if($this->isCached($fileNameCSS, $fileNameSCSS, $folder, $path)) {
diff --git a/settings/Controller/UsersController.php b/settings/Controller/UsersController.php
index 28b8d2648d9..43a38432499 100644
--- a/settings/Controller/UsersController.php
+++ b/settings/Controller/UsersController.php
@@ -346,13 +346,12 @@ class UsersController extends Controller {
}
if (empty($groups)) {
- $groups = $this->groupManager->getSubAdmin()->getSubAdminsGroups($currentUser);
- // New class returns IGroup[] so convert back
- $gids = [];
- foreach ($groups as $group) {
- $gids[] = $group->getGID();
- }
- $groups = $gids;
+ return new DataResponse(
+ array(
+ 'message' => $this->l10n->t('No valid group selected'),
+ ),
+ Http::STATUS_FORBIDDEN
+ );
}
}
@@ -380,7 +379,7 @@ class UsersController extends Controller {
);
}
- if($user instanceof User) {
+ if($user instanceof IUser) {
if($groups !== null) {
foreach($groups as $groupName) {
$group = $this->groupManager->get($groupName);
diff --git a/settings/css/settings.css b/settings/css/settings.css
index fde2b031f23..c0c79ca65ef 100644
--- a/settings/css/settings.css
+++ b/settings/css/settings.css
@@ -20,9 +20,6 @@ input#openid, input#webdav { width:20em; }
.nav-icon-clientsbox {
background-image: url('../img/change.svg?v=1');
}
-.nav-icon-activity {
- background-image: url('../img/activity-dark.svg?v=1');
-}
.nav-icon-federated-cloud {
background-image: url('../img/share.svg?v=1');
}
@@ -848,7 +845,7 @@ span.indeterminate {
/* PASSWORD */
#passwordform .strengthify-wrapper {
position: absolute;
- left: 166px;
+ left: 0;
width: 130px;
margin-top: -6px;
}
diff --git a/settings/img/activity-dark.svg b/settings/img/activity-dark.svg
deleted file mode 100644
index 0fccc552285..00000000000
--- a/settings/img/activity-dark.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" height="32" width="32" version="1.0">
- <path d="m16 1-10 18h11l-1 12 10-18h-11z"/>
-</svg>
diff --git a/settings/l10n/cs_CZ.js b/settings/l10n/cs_CZ.js
index 1cbc4fecf38..0ce52997e1c 100644
--- a/settings/l10n/cs_CZ.js
+++ b/settings/l10n/cs_CZ.js
@@ -122,6 +122,8 @@ OC.L10N.register(
"undo" : "vrátit zpět",
"never" : "nikdy",
"deleted {userName}" : "smazán {userName}",
+ "Unable to add user to group {group}" : "Nelze přidat uživatele do skupiny {group}",
+ "Unable to remove user from group {group}" : "Nelze odebrat uživatele ze skupiny {group}",
"Add group" : "Přidat skupinu",
"Invalid quota value \"{val}\"" : "Neplatná hodnota kvóty \"{val}\"",
"no group" : "není ve skupině",
diff --git a/settings/l10n/cs_CZ.json b/settings/l10n/cs_CZ.json
index ed24f8aac7b..78f17d4f827 100644
--- a/settings/l10n/cs_CZ.json
+++ b/settings/l10n/cs_CZ.json
@@ -120,6 +120,8 @@
"undo" : "vrátit zpět",
"never" : "nikdy",
"deleted {userName}" : "smazán {userName}",
+ "Unable to add user to group {group}" : "Nelze přidat uživatele do skupiny {group}",
+ "Unable to remove user from group {group}" : "Nelze odebrat uživatele ze skupiny {group}",
"Add group" : "Přidat skupinu",
"Invalid quota value \"{val}\"" : "Neplatná hodnota kvóty \"{val}\"",
"no group" : "není ve skupině",
diff --git a/settings/l10n/de.js b/settings/l10n/de.js
index 291c98e06c2..fdbb8cab3b3 100644
--- a/settings/l10n/de.js
+++ b/settings/l10n/de.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"You need to set your user email before being able to send test emails." : "Zunächst muss die Benutzer-E-Mail-Adresse angegeben werden, bevor Test-E-Mails verschickt werden können.",
"Invalid request" : "Fehlerhafte Anfrage",
"Invalid mail address" : "Ungültige E-Mail-Adresse",
+ "No valid group selected" : "Keine gültige Gruppe ausgewählt",
"A user with that name already exists." : "Ein Benutzer mit diesem Namen existiert bereits.",
"Unable to create user." : "Benutzer konnte nicht erstellt werden.",
"Your %s account was created" : "Dein %s-Konto wurde erstellt",
diff --git a/settings/l10n/de.json b/settings/l10n/de.json
index f881ef48004..b451209d753 100644
--- a/settings/l10n/de.json
+++ b/settings/l10n/de.json
@@ -23,6 +23,7 @@
"You need to set your user email before being able to send test emails." : "Zunächst muss die Benutzer-E-Mail-Adresse angegeben werden, bevor Test-E-Mails verschickt werden können.",
"Invalid request" : "Fehlerhafte Anfrage",
"Invalid mail address" : "Ungültige E-Mail-Adresse",
+ "No valid group selected" : "Keine gültige Gruppe ausgewählt",
"A user with that name already exists." : "Ein Benutzer mit diesem Namen existiert bereits.",
"Unable to create user." : "Benutzer konnte nicht erstellt werden.",
"Your %s account was created" : "Dein %s-Konto wurde erstellt",
diff --git a/settings/l10n/de_DE.js b/settings/l10n/de_DE.js
index 4e55788e56c..edb78c317c5 100644
--- a/settings/l10n/de_DE.js
+++ b/settings/l10n/de_DE.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"You need to set your user email before being able to send test emails." : "Sie müssen Ihre Benutzer-E-Mail-Adresse einstellen, bevor Sie Test-E-Mails versenden können.",
"Invalid request" : "Ungültige Anforderung",
"Invalid mail address" : "Ungültige E-Mail-Adresse",
+ "No valid group selected" : "Keine gültige Gruppe ausgewählt",
"A user with that name already exists." : "Ein Benutzer mit diesem Namen existiert bereits.",
"Unable to create user." : "Benutzer konnte nicht erstellt werden.",
"Your %s account was created" : "Ihr %s-Konto wurde erstellt",
@@ -49,7 +50,7 @@ OC.L10N.register(
"Official" : "Offiziell",
"All" : "Alle",
"Update to %s" : "Aktualisierung auf %s",
- "_You have %n app update pending_::_You have %n app updates pending_" : ["Sie haben %n Aktualisierung verfügbar","Es sind %n App-Aktualisierungen für Sie verfügbar"],
+ "_You have %n app update pending_::_You have %n app updates pending_" : ["Es ist %n App-Aktualisierung verfügbar","Es sind %n App-Aktualisierungen verfügbar"],
"No apps found for your version" : "Es wurden keine Apps für Ihre Version gefunden",
"The app will be downloaded from the app store" : "Die App wird aus dem App-Store heruntergeladen",
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Offizielle Apps werden von und innerhalb der Community entwickelt. Sie stellen die zentralen Funktionen bereit und sind für den produktiven Einsatz geeignet.",
diff --git a/settings/l10n/de_DE.json b/settings/l10n/de_DE.json
index 8d4674d04eb..b52a89d8a41 100644
--- a/settings/l10n/de_DE.json
+++ b/settings/l10n/de_DE.json
@@ -23,6 +23,7 @@
"You need to set your user email before being able to send test emails." : "Sie müssen Ihre Benutzer-E-Mail-Adresse einstellen, bevor Sie Test-E-Mails versenden können.",
"Invalid request" : "Ungültige Anforderung",
"Invalid mail address" : "Ungültige E-Mail-Adresse",
+ "No valid group selected" : "Keine gültige Gruppe ausgewählt",
"A user with that name already exists." : "Ein Benutzer mit diesem Namen existiert bereits.",
"Unable to create user." : "Benutzer konnte nicht erstellt werden.",
"Your %s account was created" : "Ihr %s-Konto wurde erstellt",
@@ -47,7 +48,7 @@
"Official" : "Offiziell",
"All" : "Alle",
"Update to %s" : "Aktualisierung auf %s",
- "_You have %n app update pending_::_You have %n app updates pending_" : ["Sie haben %n Aktualisierung verfügbar","Es sind %n App-Aktualisierungen für Sie verfügbar"],
+ "_You have %n app update pending_::_You have %n app updates pending_" : ["Es ist %n App-Aktualisierung verfügbar","Es sind %n App-Aktualisierungen verfügbar"],
"No apps found for your version" : "Es wurden keine Apps für Ihre Version gefunden",
"The app will be downloaded from the app store" : "Die App wird aus dem App-Store heruntergeladen",
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Offizielle Apps werden von und innerhalb der Community entwickelt. Sie stellen die zentralen Funktionen bereit und sind für den produktiven Einsatz geeignet.",
diff --git a/settings/l10n/el.js b/settings/l10n/el.js
index 3d64829cea6..053632812e2 100644
--- a/settings/l10n/el.js
+++ b/settings/l10n/el.js
@@ -202,6 +202,7 @@ OC.L10N.register(
"This app has an update available." : "Αυτή η εφαρμογή έχει διαθέσιμη ενημέρωση.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Αυτή η εφαρμογή δεν μπορεί να εγκατασταθεί διότι δεν εκπληρώνονται οι ακόλουθες εξαρτήσεις:",
"Enable only for specific groups" : "Ενεργοποίηση μόνο για καθορισμένες ομάδες",
+ "Uninstall app" : "Απεγκατάσταση εφαρμογης",
"SSL Root Certificates" : "Πιστοποιητικά SSL του Root",
"Common Name" : "Κοινό Όνομα",
"Valid until" : "Έγκυρο έως",
@@ -228,6 +229,8 @@ OC.L10N.register(
"Your email address" : "Η διεύθυνση ηλ. ταχυδρομείου σας",
"No email address set" : "Δεν ορίστηκε διεύθυνση email",
"For password recovery and notifications" : "Η ανάκτηση του συνθηματικού και οι ειδοποιήσεις",
+ "Website" : "Ιστοσελίδα",
+ "Twitter" : "Twitter",
"You are member of the following groups:" : "Είστε μέλος των ακόλουθων ομάδων:",
"Password" : "Συνθηματικό",
"Current password" : "Τρέχων συνθηματικό",
diff --git a/settings/l10n/el.json b/settings/l10n/el.json
index e0be5bf283b..bfb69683f69 100644
--- a/settings/l10n/el.json
+++ b/settings/l10n/el.json
@@ -200,6 +200,7 @@
"This app has an update available." : "Αυτή η εφαρμογή έχει διαθέσιμη ενημέρωση.",
"This app cannot be installed because the following dependencies are not fulfilled:" : "Αυτή η εφαρμογή δεν μπορεί να εγκατασταθεί διότι δεν εκπληρώνονται οι ακόλουθες εξαρτήσεις:",
"Enable only for specific groups" : "Ενεργοποίηση μόνο για καθορισμένες ομάδες",
+ "Uninstall app" : "Απεγκατάσταση εφαρμογης",
"SSL Root Certificates" : "Πιστοποιητικά SSL του Root",
"Common Name" : "Κοινό Όνομα",
"Valid until" : "Έγκυρο έως",
@@ -226,6 +227,8 @@
"Your email address" : "Η διεύθυνση ηλ. ταχυδρομείου σας",
"No email address set" : "Δεν ορίστηκε διεύθυνση email",
"For password recovery and notifications" : "Η ανάκτηση του συνθηματικού και οι ειδοποιήσεις",
+ "Website" : "Ιστοσελίδα",
+ "Twitter" : "Twitter",
"You are member of the following groups:" : "Είστε μέλος των ακόλουθων ομάδων:",
"Password" : "Συνθηματικό",
"Current password" : "Τρέχων συνθηματικό",
diff --git a/settings/l10n/es.js b/settings/l10n/es.js
index cd2b201dc37..946576aba14 100644
--- a/settings/l10n/es.js
+++ b/settings/l10n/es.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"You need to set your user email before being able to send test emails." : "Tiene que configurar su dirección de correo electrónico antes de poder enviar mensajes de prueba.",
"Invalid request" : "Petición no válida",
"Invalid mail address" : "Dirección de correo inválida",
+ "No valid group selected" : "No se ha seleccionado un grupo válido",
"A user with that name already exists." : "Ya existe un usuario con ese nombre.",
"Unable to create user." : "No se pudo crear el usuario.",
"Your %s account was created" : "Se ha creado su cuenta de %s",
@@ -122,6 +123,8 @@ OC.L10N.register(
"undo" : "deshacer",
"never" : "nunca",
"deleted {userName}" : "borrado {userName}",
+ "Unable to add user to group {group}" : "No se puede añadir el usuario al grupo {group}",
+ "Unable to remove user from group {group}" : "No se puede eliminar el usuario del grupo {group}",
"Add group" : "Añadir grupo",
"Invalid quota value \"{val}\"" : "Valor de cuota inválido \"{val}\"",
"no group" : "sin grupo",
diff --git a/settings/l10n/es.json b/settings/l10n/es.json
index 1bd74a37d12..c410fb3a279 100644
--- a/settings/l10n/es.json
+++ b/settings/l10n/es.json
@@ -23,6 +23,7 @@
"You need to set your user email before being able to send test emails." : "Tiene que configurar su dirección de correo electrónico antes de poder enviar mensajes de prueba.",
"Invalid request" : "Petición no válida",
"Invalid mail address" : "Dirección de correo inválida",
+ "No valid group selected" : "No se ha seleccionado un grupo válido",
"A user with that name already exists." : "Ya existe un usuario con ese nombre.",
"Unable to create user." : "No se pudo crear el usuario.",
"Your %s account was created" : "Se ha creado su cuenta de %s",
@@ -120,6 +121,8 @@
"undo" : "deshacer",
"never" : "nunca",
"deleted {userName}" : "borrado {userName}",
+ "Unable to add user to group {group}" : "No se puede añadir el usuario al grupo {group}",
+ "Unable to remove user from group {group}" : "No se puede eliminar el usuario del grupo {group}",
"Add group" : "Añadir grupo",
"Invalid quota value \"{val}\"" : "Valor de cuota inválido \"{val}\"",
"no group" : "sin grupo",
diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js
index 994250c4fae..c20a4acace5 100644
--- a/settings/l10n/fr.js
+++ b/settings/l10n/fr.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"You need to set your user email before being able to send test emails." : "Vous devez définir une adresse e-mail dans vos paramètres personnels avant de pouvoir envoyer des e-mails de test.",
"Invalid request" : "Requête non valide",
"Invalid mail address" : "Adresse e-mail non valide",
+ "No valid group selected" : "Aucun groupe valide sélectionné",
"A user with that name already exists." : "Un utilisateur à ce nom existe déjà.",
"Unable to create user." : "Impossible de créer l'utilisateur.",
"Your %s account was created" : "Votre compte %s a été créé",
@@ -117,7 +118,7 @@ OC.L10N.register(
"Groups" : "Groupes",
"Unable to delete {objName}" : "Impossible de supprimer {objName}",
"Error creating group: {message}" : "Erreur lors de la création du groupe : {message}",
- "A valid group name must be provided" : "Vous devez spécifier un nom de groupe valide",
+ "A valid group name must be provided" : "Vous devez indiquer un nom de groupe valide",
"deleted {groupName}" : "{groupName} supprimé",
"undo" : "annuler",
"never" : "jamais",
@@ -209,7 +210,7 @@ OC.L10N.register(
"Allow users to share via link" : "Autoriser les utilisateurs à partager par lien",
"Allow public uploads" : "Autoriser les téléversements publics",
"Enforce password protection" : "Imposer la protection par mot de passe",
- "Set default expiration date" : "Spécifier une date d'expiration par défaut",
+ "Set default expiration date" : "Indiquer une date d'expiration par défaut",
"Expire after " : "Expiration après ",
"days" : "jours",
"Enforce expiration date" : "Imposer la date d'expiration",
diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json
index 351a9d4f8c4..16ad7a7d882 100644
--- a/settings/l10n/fr.json
+++ b/settings/l10n/fr.json
@@ -23,6 +23,7 @@
"You need to set your user email before being able to send test emails." : "Vous devez définir une adresse e-mail dans vos paramètres personnels avant de pouvoir envoyer des e-mails de test.",
"Invalid request" : "Requête non valide",
"Invalid mail address" : "Adresse e-mail non valide",
+ "No valid group selected" : "Aucun groupe valide sélectionné",
"A user with that name already exists." : "Un utilisateur à ce nom existe déjà.",
"Unable to create user." : "Impossible de créer l'utilisateur.",
"Your %s account was created" : "Votre compte %s a été créé",
@@ -115,7 +116,7 @@
"Groups" : "Groupes",
"Unable to delete {objName}" : "Impossible de supprimer {objName}",
"Error creating group: {message}" : "Erreur lors de la création du groupe : {message}",
- "A valid group name must be provided" : "Vous devez spécifier un nom de groupe valide",
+ "A valid group name must be provided" : "Vous devez indiquer un nom de groupe valide",
"deleted {groupName}" : "{groupName} supprimé",
"undo" : "annuler",
"never" : "jamais",
@@ -207,7 +208,7 @@
"Allow users to share via link" : "Autoriser les utilisateurs à partager par lien",
"Allow public uploads" : "Autoriser les téléversements publics",
"Enforce password protection" : "Imposer la protection par mot de passe",
- "Set default expiration date" : "Spécifier une date d'expiration par défaut",
+ "Set default expiration date" : "Indiquer une date d'expiration par défaut",
"Expire after " : "Expiration après ",
"days" : "jours",
"Enforce expiration date" : "Imposer la date d'expiration",
diff --git a/settings/l10n/ja.js b/settings/l10n/ja.js
index 0d103fdcc0a..3eac52bbfd5 100644
--- a/settings/l10n/ja.js
+++ b/settings/l10n/ja.js
@@ -122,6 +122,8 @@ OC.L10N.register(
"undo" : "元に戻す",
"never" : "なし",
"deleted {userName}" : "{userName} を削除しました",
+ "Unable to add user to group {group}" : "ユーザーを {group} グループに追加できません",
+ "Unable to remove user from group {group}" : "ユーザーを {group} グループから削除できません",
"Add group" : "グループを追加する",
"Invalid quota value \"{val}\"" : "クオータ値 \"{val}\" は不正な値です。",
"no group" : "グループなし",
diff --git a/settings/l10n/ja.json b/settings/l10n/ja.json
index 0729101e4ed..2aad81aeaf6 100644
--- a/settings/l10n/ja.json
+++ b/settings/l10n/ja.json
@@ -120,6 +120,8 @@
"undo" : "元に戻す",
"never" : "なし",
"deleted {userName}" : "{userName} を削除しました",
+ "Unable to add user to group {group}" : "ユーザーを {group} グループに追加できません",
+ "Unable to remove user from group {group}" : "ユーザーを {group} グループから削除できません",
"Add group" : "グループを追加する",
"Invalid quota value \"{val}\"" : "クオータ値 \"{val}\" は不正な値です。",
"no group" : "グループなし",
diff --git a/settings/l10n/lv.js b/settings/l10n/lv.js
index dc586bf7420..da0af335a55 100644
--- a/settings/l10n/lv.js
+++ b/settings/l10n/lv.js
@@ -1,7 +1,7 @@
OC.L10N.register(
"settings",
{
- "Enabled" : "Pievienots",
+ "Enabled" : "Iespējots",
"Not enabled" : "Nav pievienots",
"Wrong password" : "Nepareiza parole",
"Saved" : "Saglabāts",
@@ -10,30 +10,45 @@ OC.L10N.register(
"Authentication error" : "Autentifikācijas kļūda",
"Please provide an admin recovery password, otherwise all user data will be lost" : "Lūdzu ievadiet administratora atjaunošanas paroli, citādi visi lietotāja dati tiks zaudēti",
"Wrong admin recovery password. Please check the password and try again." : "Nepareiza administratora atjaunošanas parole. Lūdzu pārbaudiet paroli un mēģiniet vēlreiz.",
+ "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Aizmugursistēmas neatbalsta paroles maiņu, bet lietotāja šifrēšanas atslēga ir veiksmīgi atjaunināta.",
+ "installing and updating apps via the app store or Federated Cloud Sharing" : "programmu instalēšana un atjaunināšana, izmantojot programmu veikalu vai Federatīvajām Cloud koplietošanu",
"Federated Cloud Sharing" : "Federatīva mākoņkoplietošana",
+ "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL izmanto novecojušu %s versiju (%s). Lūdzu, atjauniniet operētājsistēmu vai funkcijām, piem., %s nedarbosies pareizi.",
+ "A problem occurred, please check your log files (Error: %s)" : "Radusies problēma, lūdzu, pārbaudiet žurnāla failus (Kļūda: %s)",
+ "Migration Completed" : "Migrācija ir pabeigta",
"Group already exists." : "Grupa jau eksistē.",
"Unable to add group." : "Nevar pievienot grupu.",
"Unable to delete group." : "Nevar izdzēst grupu.",
"test email settings" : "testēt e-pasta iestatījumus",
+ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Radās kļūda, nosūtot e-pastu. Lūdzu, pārskatiet savus iestatījumus. (Kļūda: %s)",
"Email sent" : "Vēstule nosūtīta",
"You need to set your user email before being able to send test emails." : "Nepieciešams norādīt sava lietotāja e-pasta adresi, lai nosūtīta testa e-pastus.",
"Invalid request" : "Nederīgs vaicājums",
"Invalid mail address" : "Nepareiza e-pasta adrese",
+ "No valid group selected" : "Atlasītā grupa nav derīga",
"A user with that name already exists." : "Jau pastāv lietotājs ar šo vārdu.",
"Unable to create user." : "Nevar izveidot lietotāju.",
"Your %s account was created" : "Konts %s ir izveidots",
"Unable to delete user." : "Nevar izdzēst lietotāju.",
+ "Settings saved" : "Iestatījumi saglabāti",
"Unable to change full name" : "Nav iespējams nomainīt jūsu pilno vārdu",
+ "Unable to change email address" : "Nevar mainīt e-pasta adresi",
"Your full name has been changed." : "Jūsu pilnais vārds tika mainīts.",
"Forbidden" : "Pieeja liegta",
"Invalid user" : "Nepareizs lietotājs",
"Unable to change mail address" : "Nevar nomainīt e-pasta adresi",
"Email saved" : "E-pasts tika saglabāts",
+ "Password confirmation is required" : "Nepieciešams paroles apstiprinājums",
"Couldn't remove app." : "Nebija iespējams atslēgt lietoni.",
"Couldn't update app." : "Nevarēja atjaunināt lietotni.",
+ "Are you really sure you want add {domain} as trusted domain?" : "Tu tiešām esi pārliecināta, ka vēlies pievienot {domain} kā uzticamu domēnu?",
"Add trusted domain" : "Pievienot uzticamu domēnu",
+ "Migration in progress. Please wait until the migration is finished" : "Notiek migrācija. Lūdzu, pagaidiet, līdz migrēšana ir pabeigta",
+ "Migration started …" : "Uzsākta migrācija...",
+ "Not saved" : "Nav saglabāts",
"Sending..." : "Sūta...",
"All" : "Visi",
+ "Update to %s" : "Atjaunināts uz %s",
"No apps found for your version" : "Neatrada aplikāciju jūsu versijai",
"Error while disabling app" : "Kļūda, atvienojot lietotni",
"Disable" : "Deaktivēt",
@@ -45,8 +60,38 @@ OC.L10N.register(
"Uninstalling ...." : "Atinstalē ....",
"Error while uninstalling app" : "Kļūda, atinstalējot lietotni",
"Uninstall" : "Atinstalēt",
+ "App update" : "Programmu atjaunināšana",
+ "Approved" : "Apstiprināts",
+ "Experimental" : "Eksperimentāls",
+ "Disconnect" : "Atvienot",
+ "Revoke" : "Atsaukt",
+ "Internet Explorer" : "Internet Explorer",
+ "Edge" : "Edge",
+ "Firefox" : "Firefox",
+ "Google Chrome" : "Google Chrome",
+ "Safari" : "Safari",
+ "Google Chrome for Android" : "Google Chrome for Android",
+ "iPhone iOS" : "iPhone iOS",
+ "iPad iOS" : "iPad iOS",
+ "iOS Client" : "iOS Klients",
+ "Android Client" : "Android Klients",
+ "Sync client - {os}" : "Sync klients - {os}",
+ "This session" : "Šajā sesijā",
+ "Copy" : "Kopēt",
+ "Copied!" : "Nokopēts!",
+ "Not supported!" : "Nav atbalstīts!",
+ "Press ⌘-C to copy." : "Spied ⌘-C lai kopētu.",
+ "Press Ctrl-C to copy." : "Spied Ctrl-C lai kopētu.",
"Valid until {date}" : "Valīds līdz {date}",
"Delete" : "Dzēst",
+ "Local" : "Lokāls",
+ "Private" : "Privāts",
+ "Only visible to local users" : "Redzami tikai lokālajiem lietotājiem",
+ "Only visible to you" : "Redzams tikai jums",
+ "Contacts" : "Kontakti",
+ "Visible to local users and to trusted servers" : "Redzama uz vietējiem lietotājiem un uzticamiem serveriem",
+ "Public" : "Publisks",
+ "Will be synced to a global and public address book" : "Tiks sinhronizēts ar globālu un publisku adrešu grāmatu",
"Select a profile picture" : "Izvēlieties profila attēlu",
"Very weak password" : "Ļoti vāja parole",
"Weak password" : "Vāja parole",
@@ -55,33 +100,64 @@ OC.L10N.register(
"Strong password" : "Lieliska parole",
"Groups" : "Grupas",
"Unable to delete {objName}" : "Nevar izdzēst {objName}",
+ "Error creating group: {message}" : "Kļūda, veidojot grupu: {message}",
"A valid group name must be provided" : "Jānorāda derīgs grupas nosaukums",
"deleted {groupName}" : "grupa {groupName} dzēsta",
"undo" : "atsaukt",
"never" : "nekad",
"deleted {userName}" : "lietotājs {userName} dzēsts",
+ "Unable to add user to group {group}" : "Nevar pievienot lietotāju grupai {group}",
+ "Unable to remove user from group {group}" : "Nevar noņemt lietotāju no grupas {group}",
+ "Add group" : "Pievienot grupu",
+ "Invalid quota value \"{val}\"" : "Nederīga kvotas vērtība \"{val}\"",
+ "no group" : "neviena grupa",
+ "Password successfully changed" : "Parole veiksmīgi nomainīta",
+ "Could not change the users email" : "Nevarēja mainīt lietotāja e-pasta adrese",
"A valid username must be provided" : "Jānorāda derīgs lietotājvārds",
+ "Error creating user: {message}" : "Kļūda, veidojot lietotāju: {message}",
"A valid password must be provided" : "Jānorāda derīga parole",
"A valid email must be provided" : "Jānorāda derīga e-pasta adrese",
"__language_name__" : "Latviešu",
"Unlimited" : "Neierobežota",
+ "Personal info" : "Personiskā informācija",
+ "Sessions" : "Sesijas",
+ "App passwords" : "Lietotņu paroles",
"Sync clients" : "Sinhronizācijas lietotnes",
"None" : "Nav",
"Login" : "Ierakstīties",
"Plain" : "vienkāršs teksts",
"NT LAN Manager" : "NT LAN Pārvaldnieks",
+ "SSL/TLS" : "SSL/TLS",
+ "STARTTLS" : "STARTTLS",
+ "Email server" : "E-pasta serveris",
"Open documentation" : "Atvērt dokumentāciju",
+ "This is used for sending out notifications." : "Tas tiek izmantots, izsūtot paziņojumus.",
+ "Send mode" : "Sūtīšanas metode",
"Encryption" : "Šifrēšana",
"From address" : "No adreses",
+ "mail" : "e-pasts",
+ "Authentication method" : "Autentifikācijas metode",
+ "Authentication required" : "Nepieciešama autentifikācija",
"Server address" : "Servera adrese",
"Port" : "Ports",
"Credentials" : "Akreditācijas dati",
"SMTP Username" : "SMTP lietotājvārds",
"SMTP Password" : "SMTP parole",
+ "Store credentials" : "Saglabāt akreditācijas datus",
"Test email settings" : "Izmēģināt e-pasta iestatījumus",
"Send email" : "Sūtīt e-pastu",
+ "Please read carefully before activating server-side encryption: " : "Lūdzu, izlasiet uzmanīgi pirms aktivējiet servera šifrēšanu:",
+ "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Šifrēšana vien negarantē sistēmas drošību. Skatiet dokumentāciju, lai iegūtu papildinformāciju par šifrēšanas programmu izmantošana, kā arī citu darbību gadījumos.",
+ "Be aware that encryption always increases the file size." : "Jāapzinās, ka šifrēšanas vienmēr palielina faila lielumu.",
+ "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Vienmēr ir ieteicams regulāri veidot dublējumkopijas datu šifrēšanas gadījumam, pārliecinieties, lai dublētu, šifrēšanas atslēgas ir kopā ar jūsu datiem.",
+ "This is the final warning: Do you really want to enable encryption?" : "Šis ir pēdējais brīdinājums: vai tiešām vēlaties iespējot šifrēšanu?",
"Enable encryption" : "Ieslēgt šifrēšanu",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Nav ielādēts šifrēšanas moduļis, lūdzu, aktivizējiet šifrēšanas moduli programmu izvēlnē.",
+ "Select default encryption module:" : "Atlasiet noklusēto šifrēšanas moduli:",
+ "Start migration" : "Sākt migrāciju",
+ "Security & setup warnings" : "Drošības un iestatījumu brīdinājumi",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Trūkst PHP modulis “fileinfo”. Mēs iesakām to aktivēt, lai pēc iespējas labāk noteiktu mime tipus.",
+ "All checks passed." : "Visas pārbaudes veiksmīgas.",
"Cron" : "Cron",
"Execute one task with each page loaded" : "Izpildīt vienu uzdevumu ar katru ielādēto lapu",
"Version" : "Versija",
@@ -89,24 +165,59 @@ OC.L10N.register(
"Allow apps to use the Share API" : "Ļaut lietotnēm izmantot koplietošanas API",
"Allow users to share via link" : "Ļaut lietotājiem koplietot caur saitēm",
"Allow public uploads" : "Atļaut publisko augšupielādi",
+ "Enforce password protection" : "Ieviest paroles aizsardzību",
+ "Set default expiration date" : "Iestatīt noklusējuma beigu datumu",
"Expire after " : "Nederīga pēc",
"days" : "dienas",
"Allow resharing" : "Atļaut atkārtotu koplietošanu",
+ "Allow sharing with groups" : "Atļaut koplietošanu ar grupu",
+ "Restrict users to only share with users in their groups" : "Ierobežot lietotājiem koplietot tikai ar lietotājiem savās grupās",
+ "Exclude groups from sharing" : "Izslēgt grupu no koplietošanas",
+ "How to do backups" : "Kā veikt dublēšanu",
+ "Advanced monitoring" : "Papildu uzraudzība",
+ "Performance tuning" : "Veiktspējas uzstādīšana",
+ "Improving the config.php" : "Uzlabot config.php",
+ "Theming" : "Dizains",
+ "Hardening and security guidance" : "Aizsardzības un drošības norādījumi",
+ "Developer documentation" : "Izstrādātāja dokumentācija",
"Documentation:" : "Dokumentācija:",
"User documentation" : "Lietotāja dokumentācija",
"Admin documentation" : "Administratora dokumentācija",
+ "Visit website" : "Apmeklējiet vietni",
+ "Report a bug" : "Ziņot par kļūdu",
"Show description …" : "Rādīt aprakstu …",
"Hide description …" : "Slēpt aprakstu …",
+ "Uninstall app" : "Atinstalēt aplikāciju",
+ "SSL Root Certificates" : "SSL Root Sertifikāti",
+ "Valid until" : "Derīgs līdz",
+ "Issued By" : "Izsniedza",
+ "Valid until %s" : "Derīgs līdz %s",
+ "Import root certificate" : "Importēt root sertifikātu",
+ "Cheers!" : "Priekā!",
+ "Administrator documentation" : "Administratora dokumentācija",
"Online documentation" : "Tiešsaistes dokumentācija",
"Forum" : "Forums",
+ "Getting help" : "Saņemt palīdzību",
"You are using <strong>%s</strong> of <strong>%s</strong>" : "Jūs izmantojiet <strong>%s</strong> no <strong>%s</strong>",
"Profile picture" : "Profila attēls",
"Upload new" : "Ielādēt jaunu",
+ "Select from Files" : "Izvēlēties no faila",
"Remove image" : "Novākt attēlu",
+ "png or jpg, max. 20 MB" : "png vai jpg, max. 20 MB",
"Cancel" : "Atcelt",
+ "Choose as profile picture" : "Izvēlēties kā profila attēlu",
"Full name" : "Pilns vārds",
"Email" : "E-pasts",
"Your email address" : "Jūsu e-pasta adrese",
+ "No email address set" : "Nav norādīts e-pasts",
+ "For password recovery and notifications" : "Paroles atjaunošanai un paziņojumiem",
+ "Phone number" : "Tālruņa numurs",
+ "Your phone number" : "Jūsu tālruņa numurs",
+ "Address" : "Adrese",
+ "Your postal address" : "Jūsu pasta adrese",
+ "Website" : "Mājaslapa",
+ "Your website" : "Jūsu mājaslapa",
+ "Twitter" : "Twitter",
"You are member of the following groups:" : "Jūs esat šādu grupu biedrs:",
"Password" : "Parole",
"Current password" : "Pašreizējā parole",
@@ -119,33 +230,68 @@ OC.L10N.register(
"Android app" : "Android lietotne",
"iOS app" : "iOS lietotne",
"Show First Run Wizard again" : "Vēlreiz rādīt pirmās palaišanas vedni",
+ "Device" : "Ierīce",
+ "Last activity" : "Pēdējā aktivitāte",
"Name" : "Nosaukums",
+ "App name" : "Lietotnes nosaukums",
+ "Create new app password" : "Izveidot jaunu lietotnes paroli",
+ "For security reasons this password will only be shown once." : "Drošības apsvērumu dēļ šī parole, tiks parādīta tikai vienreiz.",
"Username" : "Lietotājvārds",
"Done" : "Pabeigts",
+ "Follow us on Google Plus!" : "Seko mums Google Plus!",
+ "Subscribe to our newsletter!" : "Abonēt mūsu jaunumus!",
+ "Show storage location" : "Rādīt krātuves atrašanās vietu",
+ "Show last log in" : "Rādīt pēdējo autorizāciju",
"Send email to new user" : "Sūtīt e-pastu jaunajam lietotājam",
"Show email address" : "Rādīt e-pasta adreses",
"E-Mail" : "E-pasts",
"Create" : "Izveidot",
"Admin Recovery Password" : "Administratora atgūšanas parole",
"Enter the recovery password in order to recover the users files during password change" : "Ievadiet atgūšanas paroli, lai varētu atgūt lietotāja failus paroles maiņas laikā.",
+ "Group name" : "Grupas nosaukums",
+ "Everyone" : "Visi",
+ "Admins" : "Admins",
+ "Default quota" : "Apjoms pēc noklusējuma",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Lūdzu, ievadiet krātuves kvotu (piem: \"512 MB\" vai \"12 GB\")",
"Other" : "Cits",
+ "Group admin for" : "Admin grupa",
"Quota" : "Apjoms",
+ "Storage location" : "Krātuves atrašanās vieta",
+ "Last login" : "Pēdējā pieteikšanās",
+ "change full name" : "mainīt vārdu",
"set new password" : "iestatīt jaunu paroli",
+ "change email address" : "mainīt e-pasta adresi",
"Default" : "Noklusējuma",
+ "log-level out of allowed range" : "žurnāla-līmenis ārpus atļautā diapazona",
"Language changed" : "Valoda tika nomainīta",
"Admins can't remove themself from the admin group" : "Administratori nevar izņemt paši sevi no administratoru grupas",
"Unable to add user to group %s" : "Nevar pievienot lietotāju grupai %s",
"Unable to remove user from group %s" : "Nevar izņemt lietotāju no grupas %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Vai esat pārliecināts, ka vēlaties pievienot \"{domain}\" kā uzticamu domēnu?",
"Please wait...." : "Lūdzu, uzgaidiet....",
+ "iPhone" : "iPhone",
+ "add group" : "pievienot grupu",
"Everything (fatal issues, errors, warnings, info, debug)" : "Viss (letālas problēmas, kļūdas, brīdinājumi, informatīvas ziņas, atkļūdošanas paziņojumi)",
"Info, warnings, errors and fatal issues" : "Informatīvas ziņas, brīdinājumi, kļūdas un letālas problēmas",
"Warnings, errors and fatal issues" : "Brīdinājumi, kļūdas un letālas problēmas",
"Errors and fatal issues" : "Kļūdas un letālas problēmas",
"Fatal issues only" : "Tikai letālas problēmas",
"Log" : "Žurnāls",
+ "What to log" : "Ko pierakstīt",
+ "Download logfile" : "Lejupielādēt žurnālfailu",
"More" : "Vairāk",
"Less" : "Mazāk",
- "Group" : "Grupa"
+ "The logfile is bigger than 100 MB. Downloading it may take some time!" : "Šis žurnālfails ir lielāks par 100 MB. Lejupielāde var aizņemt kādu laiku.",
+ "Allow users to send mail notification for shared files" : "Atļaut lietotājiem nosūtīt e-pasta paziņojumu par koplietojamiem failiem",
+ "Allow users to send mail notification for shared files to other users" : "Atļaut lietotājiem nosūtīt e-pasta paziņojumu par koplietojamiem failiem citiem lietotājiem",
+ "Uninstall App" : "Atinstalēt aplikāciju",
+ "Enable experimental apps" : "Atļaut eksperimentālās lietotnes",
+ "Add Group" : "Pievienot grupu",
+ "Group" : "Grupa",
+ "Default Quota" : "Apjoms pēc noklusējuma",
+ "Full Name" : "Pilns vārds",
+ "Group Admin for" : "Admin grupa",
+ "Storage Location" : "Krātuves atrašanās vieta",
+ "Last Login" : "Pēdējā pieteikšanās"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
diff --git a/settings/l10n/lv.json b/settings/l10n/lv.json
index 2dba73de4bc..3ca7cf02a6a 100644
--- a/settings/l10n/lv.json
+++ b/settings/l10n/lv.json
@@ -1,5 +1,5 @@
{ "translations": {
- "Enabled" : "Pievienots",
+ "Enabled" : "Iespējots",
"Not enabled" : "Nav pievienots",
"Wrong password" : "Nepareiza parole",
"Saved" : "Saglabāts",
@@ -8,30 +8,45 @@
"Authentication error" : "Autentifikācijas kļūda",
"Please provide an admin recovery password, otherwise all user data will be lost" : "Lūdzu ievadiet administratora atjaunošanas paroli, citādi visi lietotāja dati tiks zaudēti",
"Wrong admin recovery password. Please check the password and try again." : "Nepareiza administratora atjaunošanas parole. Lūdzu pārbaudiet paroli un mēģiniet vēlreiz.",
+ "Backend doesn't support password change, but the user's encryption key was successfully updated." : "Aizmugursistēmas neatbalsta paroles maiņu, bet lietotāja šifrēšanas atslēga ir veiksmīgi atjaunināta.",
+ "installing and updating apps via the app store or Federated Cloud Sharing" : "programmu instalēšana un atjaunināšana, izmantojot programmu veikalu vai Federatīvajām Cloud koplietošanu",
"Federated Cloud Sharing" : "Federatīva mākoņkoplietošana",
+ "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL izmanto novecojušu %s versiju (%s). Lūdzu, atjauniniet operētājsistēmu vai funkcijām, piem., %s nedarbosies pareizi.",
+ "A problem occurred, please check your log files (Error: %s)" : "Radusies problēma, lūdzu, pārbaudiet žurnāla failus (Kļūda: %s)",
+ "Migration Completed" : "Migrācija ir pabeigta",
"Group already exists." : "Grupa jau eksistē.",
"Unable to add group." : "Nevar pievienot grupu.",
"Unable to delete group." : "Nevar izdzēst grupu.",
"test email settings" : "testēt e-pasta iestatījumus",
+ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Radās kļūda, nosūtot e-pastu. Lūdzu, pārskatiet savus iestatījumus. (Kļūda: %s)",
"Email sent" : "Vēstule nosūtīta",
"You need to set your user email before being able to send test emails." : "Nepieciešams norādīt sava lietotāja e-pasta adresi, lai nosūtīta testa e-pastus.",
"Invalid request" : "Nederīgs vaicājums",
"Invalid mail address" : "Nepareiza e-pasta adrese",
+ "No valid group selected" : "Atlasītā grupa nav derīga",
"A user with that name already exists." : "Jau pastāv lietotājs ar šo vārdu.",
"Unable to create user." : "Nevar izveidot lietotāju.",
"Your %s account was created" : "Konts %s ir izveidots",
"Unable to delete user." : "Nevar izdzēst lietotāju.",
+ "Settings saved" : "Iestatījumi saglabāti",
"Unable to change full name" : "Nav iespējams nomainīt jūsu pilno vārdu",
+ "Unable to change email address" : "Nevar mainīt e-pasta adresi",
"Your full name has been changed." : "Jūsu pilnais vārds tika mainīts.",
"Forbidden" : "Pieeja liegta",
"Invalid user" : "Nepareizs lietotājs",
"Unable to change mail address" : "Nevar nomainīt e-pasta adresi",
"Email saved" : "E-pasts tika saglabāts",
+ "Password confirmation is required" : "Nepieciešams paroles apstiprinājums",
"Couldn't remove app." : "Nebija iespējams atslēgt lietoni.",
"Couldn't update app." : "Nevarēja atjaunināt lietotni.",
+ "Are you really sure you want add {domain} as trusted domain?" : "Tu tiešām esi pārliecināta, ka vēlies pievienot {domain} kā uzticamu domēnu?",
"Add trusted domain" : "Pievienot uzticamu domēnu",
+ "Migration in progress. Please wait until the migration is finished" : "Notiek migrācija. Lūdzu, pagaidiet, līdz migrēšana ir pabeigta",
+ "Migration started …" : "Uzsākta migrācija...",
+ "Not saved" : "Nav saglabāts",
"Sending..." : "Sūta...",
"All" : "Visi",
+ "Update to %s" : "Atjaunināts uz %s",
"No apps found for your version" : "Neatrada aplikāciju jūsu versijai",
"Error while disabling app" : "Kļūda, atvienojot lietotni",
"Disable" : "Deaktivēt",
@@ -43,8 +58,38 @@
"Uninstalling ...." : "Atinstalē ....",
"Error while uninstalling app" : "Kļūda, atinstalējot lietotni",
"Uninstall" : "Atinstalēt",
+ "App update" : "Programmu atjaunināšana",
+ "Approved" : "Apstiprināts",
+ "Experimental" : "Eksperimentāls",
+ "Disconnect" : "Atvienot",
+ "Revoke" : "Atsaukt",
+ "Internet Explorer" : "Internet Explorer",
+ "Edge" : "Edge",
+ "Firefox" : "Firefox",
+ "Google Chrome" : "Google Chrome",
+ "Safari" : "Safari",
+ "Google Chrome for Android" : "Google Chrome for Android",
+ "iPhone iOS" : "iPhone iOS",
+ "iPad iOS" : "iPad iOS",
+ "iOS Client" : "iOS Klients",
+ "Android Client" : "Android Klients",
+ "Sync client - {os}" : "Sync klients - {os}",
+ "This session" : "Šajā sesijā",
+ "Copy" : "Kopēt",
+ "Copied!" : "Nokopēts!",
+ "Not supported!" : "Nav atbalstīts!",
+ "Press ⌘-C to copy." : "Spied ⌘-C lai kopētu.",
+ "Press Ctrl-C to copy." : "Spied Ctrl-C lai kopētu.",
"Valid until {date}" : "Valīds līdz {date}",
"Delete" : "Dzēst",
+ "Local" : "Lokāls",
+ "Private" : "Privāts",
+ "Only visible to local users" : "Redzami tikai lokālajiem lietotājiem",
+ "Only visible to you" : "Redzams tikai jums",
+ "Contacts" : "Kontakti",
+ "Visible to local users and to trusted servers" : "Redzama uz vietējiem lietotājiem un uzticamiem serveriem",
+ "Public" : "Publisks",
+ "Will be synced to a global and public address book" : "Tiks sinhronizēts ar globālu un publisku adrešu grāmatu",
"Select a profile picture" : "Izvēlieties profila attēlu",
"Very weak password" : "Ļoti vāja parole",
"Weak password" : "Vāja parole",
@@ -53,33 +98,64 @@
"Strong password" : "Lieliska parole",
"Groups" : "Grupas",
"Unable to delete {objName}" : "Nevar izdzēst {objName}",
+ "Error creating group: {message}" : "Kļūda, veidojot grupu: {message}",
"A valid group name must be provided" : "Jānorāda derīgs grupas nosaukums",
"deleted {groupName}" : "grupa {groupName} dzēsta",
"undo" : "atsaukt",
"never" : "nekad",
"deleted {userName}" : "lietotājs {userName} dzēsts",
+ "Unable to add user to group {group}" : "Nevar pievienot lietotāju grupai {group}",
+ "Unable to remove user from group {group}" : "Nevar noņemt lietotāju no grupas {group}",
+ "Add group" : "Pievienot grupu",
+ "Invalid quota value \"{val}\"" : "Nederīga kvotas vērtība \"{val}\"",
+ "no group" : "neviena grupa",
+ "Password successfully changed" : "Parole veiksmīgi nomainīta",
+ "Could not change the users email" : "Nevarēja mainīt lietotāja e-pasta adrese",
"A valid username must be provided" : "Jānorāda derīgs lietotājvārds",
+ "Error creating user: {message}" : "Kļūda, veidojot lietotāju: {message}",
"A valid password must be provided" : "Jānorāda derīga parole",
"A valid email must be provided" : "Jānorāda derīga e-pasta adrese",
"__language_name__" : "Latviešu",
"Unlimited" : "Neierobežota",
+ "Personal info" : "Personiskā informācija",
+ "Sessions" : "Sesijas",
+ "App passwords" : "Lietotņu paroles",
"Sync clients" : "Sinhronizācijas lietotnes",
"None" : "Nav",
"Login" : "Ierakstīties",
"Plain" : "vienkāršs teksts",
"NT LAN Manager" : "NT LAN Pārvaldnieks",
+ "SSL/TLS" : "SSL/TLS",
+ "STARTTLS" : "STARTTLS",
+ "Email server" : "E-pasta serveris",
"Open documentation" : "Atvērt dokumentāciju",
+ "This is used for sending out notifications." : "Tas tiek izmantots, izsūtot paziņojumus.",
+ "Send mode" : "Sūtīšanas metode",
"Encryption" : "Šifrēšana",
"From address" : "No adreses",
+ "mail" : "e-pasts",
+ "Authentication method" : "Autentifikācijas metode",
+ "Authentication required" : "Nepieciešama autentifikācija",
"Server address" : "Servera adrese",
"Port" : "Ports",
"Credentials" : "Akreditācijas dati",
"SMTP Username" : "SMTP lietotājvārds",
"SMTP Password" : "SMTP parole",
+ "Store credentials" : "Saglabāt akreditācijas datus",
"Test email settings" : "Izmēģināt e-pasta iestatījumus",
"Send email" : "Sūtīt e-pastu",
+ "Please read carefully before activating server-side encryption: " : "Lūdzu, izlasiet uzmanīgi pirms aktivējiet servera šifrēšanu:",
+ "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Šifrēšana vien negarantē sistēmas drošību. Skatiet dokumentāciju, lai iegūtu papildinformāciju par šifrēšanas programmu izmantošana, kā arī citu darbību gadījumos.",
+ "Be aware that encryption always increases the file size." : "Jāapzinās, ka šifrēšanas vienmēr palielina faila lielumu.",
+ "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Vienmēr ir ieteicams regulāri veidot dublējumkopijas datu šifrēšanas gadījumam, pārliecinieties, lai dublētu, šifrēšanas atslēgas ir kopā ar jūsu datiem.",
+ "This is the final warning: Do you really want to enable encryption?" : "Šis ir pēdējais brīdinājums: vai tiešām vēlaties iespējot šifrēšanu?",
"Enable encryption" : "Ieslēgt šifrēšanu",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "Nav ielādēts šifrēšanas moduļis, lūdzu, aktivizējiet šifrēšanas moduli programmu izvēlnē.",
+ "Select default encryption module:" : "Atlasiet noklusēto šifrēšanas moduli:",
+ "Start migration" : "Sākt migrāciju",
+ "Security & setup warnings" : "Drošības un iestatījumu brīdinājumi",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "Trūkst PHP modulis “fileinfo”. Mēs iesakām to aktivēt, lai pēc iespējas labāk noteiktu mime tipus.",
+ "All checks passed." : "Visas pārbaudes veiksmīgas.",
"Cron" : "Cron",
"Execute one task with each page loaded" : "Izpildīt vienu uzdevumu ar katru ielādēto lapu",
"Version" : "Versija",
@@ -87,24 +163,59 @@
"Allow apps to use the Share API" : "Ļaut lietotnēm izmantot koplietošanas API",
"Allow users to share via link" : "Ļaut lietotājiem koplietot caur saitēm",
"Allow public uploads" : "Atļaut publisko augšupielādi",
+ "Enforce password protection" : "Ieviest paroles aizsardzību",
+ "Set default expiration date" : "Iestatīt noklusējuma beigu datumu",
"Expire after " : "Nederīga pēc",
"days" : "dienas",
"Allow resharing" : "Atļaut atkārtotu koplietošanu",
+ "Allow sharing with groups" : "Atļaut koplietošanu ar grupu",
+ "Restrict users to only share with users in their groups" : "Ierobežot lietotājiem koplietot tikai ar lietotājiem savās grupās",
+ "Exclude groups from sharing" : "Izslēgt grupu no koplietošanas",
+ "How to do backups" : "Kā veikt dublēšanu",
+ "Advanced monitoring" : "Papildu uzraudzība",
+ "Performance tuning" : "Veiktspējas uzstādīšana",
+ "Improving the config.php" : "Uzlabot config.php",
+ "Theming" : "Dizains",
+ "Hardening and security guidance" : "Aizsardzības un drošības norādījumi",
+ "Developer documentation" : "Izstrādātāja dokumentācija",
"Documentation:" : "Dokumentācija:",
"User documentation" : "Lietotāja dokumentācija",
"Admin documentation" : "Administratora dokumentācija",
+ "Visit website" : "Apmeklējiet vietni",
+ "Report a bug" : "Ziņot par kļūdu",
"Show description …" : "Rādīt aprakstu …",
"Hide description …" : "Slēpt aprakstu …",
+ "Uninstall app" : "Atinstalēt aplikāciju",
+ "SSL Root Certificates" : "SSL Root Sertifikāti",
+ "Valid until" : "Derīgs līdz",
+ "Issued By" : "Izsniedza",
+ "Valid until %s" : "Derīgs līdz %s",
+ "Import root certificate" : "Importēt root sertifikātu",
+ "Cheers!" : "Priekā!",
+ "Administrator documentation" : "Administratora dokumentācija",
"Online documentation" : "Tiešsaistes dokumentācija",
"Forum" : "Forums",
+ "Getting help" : "Saņemt palīdzību",
"You are using <strong>%s</strong> of <strong>%s</strong>" : "Jūs izmantojiet <strong>%s</strong> no <strong>%s</strong>",
"Profile picture" : "Profila attēls",
"Upload new" : "Ielādēt jaunu",
+ "Select from Files" : "Izvēlēties no faila",
"Remove image" : "Novākt attēlu",
+ "png or jpg, max. 20 MB" : "png vai jpg, max. 20 MB",
"Cancel" : "Atcelt",
+ "Choose as profile picture" : "Izvēlēties kā profila attēlu",
"Full name" : "Pilns vārds",
"Email" : "E-pasts",
"Your email address" : "Jūsu e-pasta adrese",
+ "No email address set" : "Nav norādīts e-pasts",
+ "For password recovery and notifications" : "Paroles atjaunošanai un paziņojumiem",
+ "Phone number" : "Tālruņa numurs",
+ "Your phone number" : "Jūsu tālruņa numurs",
+ "Address" : "Adrese",
+ "Your postal address" : "Jūsu pasta adrese",
+ "Website" : "Mājaslapa",
+ "Your website" : "Jūsu mājaslapa",
+ "Twitter" : "Twitter",
"You are member of the following groups:" : "Jūs esat šādu grupu biedrs:",
"Password" : "Parole",
"Current password" : "Pašreizējā parole",
@@ -117,33 +228,68 @@
"Android app" : "Android lietotne",
"iOS app" : "iOS lietotne",
"Show First Run Wizard again" : "Vēlreiz rādīt pirmās palaišanas vedni",
+ "Device" : "Ierīce",
+ "Last activity" : "Pēdējā aktivitāte",
"Name" : "Nosaukums",
+ "App name" : "Lietotnes nosaukums",
+ "Create new app password" : "Izveidot jaunu lietotnes paroli",
+ "For security reasons this password will only be shown once." : "Drošības apsvērumu dēļ šī parole, tiks parādīta tikai vienreiz.",
"Username" : "Lietotājvārds",
"Done" : "Pabeigts",
+ "Follow us on Google Plus!" : "Seko mums Google Plus!",
+ "Subscribe to our newsletter!" : "Abonēt mūsu jaunumus!",
+ "Show storage location" : "Rādīt krātuves atrašanās vietu",
+ "Show last log in" : "Rādīt pēdējo autorizāciju",
"Send email to new user" : "Sūtīt e-pastu jaunajam lietotājam",
"Show email address" : "Rādīt e-pasta adreses",
"E-Mail" : "E-pasts",
"Create" : "Izveidot",
"Admin Recovery Password" : "Administratora atgūšanas parole",
"Enter the recovery password in order to recover the users files during password change" : "Ievadiet atgūšanas paroli, lai varētu atgūt lietotāja failus paroles maiņas laikā.",
+ "Group name" : "Grupas nosaukums",
+ "Everyone" : "Visi",
+ "Admins" : "Admins",
+ "Default quota" : "Apjoms pēc noklusējuma",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Lūdzu, ievadiet krātuves kvotu (piem: \"512 MB\" vai \"12 GB\")",
"Other" : "Cits",
+ "Group admin for" : "Admin grupa",
"Quota" : "Apjoms",
+ "Storage location" : "Krātuves atrašanās vieta",
+ "Last login" : "Pēdējā pieteikšanās",
+ "change full name" : "mainīt vārdu",
"set new password" : "iestatīt jaunu paroli",
+ "change email address" : "mainīt e-pasta adresi",
"Default" : "Noklusējuma",
+ "log-level out of allowed range" : "žurnāla-līmenis ārpus atļautā diapazona",
"Language changed" : "Valoda tika nomainīta",
"Admins can't remove themself from the admin group" : "Administratori nevar izņemt paši sevi no administratoru grupas",
"Unable to add user to group %s" : "Nevar pievienot lietotāju grupai %s",
"Unable to remove user from group %s" : "Nevar izņemt lietotāju no grupas %s",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Vai esat pārliecināts, ka vēlaties pievienot \"{domain}\" kā uzticamu domēnu?",
"Please wait...." : "Lūdzu, uzgaidiet....",
+ "iPhone" : "iPhone",
+ "add group" : "pievienot grupu",
"Everything (fatal issues, errors, warnings, info, debug)" : "Viss (letālas problēmas, kļūdas, brīdinājumi, informatīvas ziņas, atkļūdošanas paziņojumi)",
"Info, warnings, errors and fatal issues" : "Informatīvas ziņas, brīdinājumi, kļūdas un letālas problēmas",
"Warnings, errors and fatal issues" : "Brīdinājumi, kļūdas un letālas problēmas",
"Errors and fatal issues" : "Kļūdas un letālas problēmas",
"Fatal issues only" : "Tikai letālas problēmas",
"Log" : "Žurnāls",
+ "What to log" : "Ko pierakstīt",
+ "Download logfile" : "Lejupielādēt žurnālfailu",
"More" : "Vairāk",
"Less" : "Mazāk",
- "Group" : "Grupa"
+ "The logfile is bigger than 100 MB. Downloading it may take some time!" : "Šis žurnālfails ir lielāks par 100 MB. Lejupielāde var aizņemt kādu laiku.",
+ "Allow users to send mail notification for shared files" : "Atļaut lietotājiem nosūtīt e-pasta paziņojumu par koplietojamiem failiem",
+ "Allow users to send mail notification for shared files to other users" : "Atļaut lietotājiem nosūtīt e-pasta paziņojumu par koplietojamiem failiem citiem lietotājiem",
+ "Uninstall App" : "Atinstalēt aplikāciju",
+ "Enable experimental apps" : "Atļaut eksperimentālās lietotnes",
+ "Add Group" : "Pievienot grupu",
+ "Group" : "Grupa",
+ "Default Quota" : "Apjoms pēc noklusējuma",
+ "Full Name" : "Pilns vārds",
+ "Group Admin for" : "Admin grupa",
+ "Storage Location" : "Krātuves atrašanās vieta",
+ "Last Login" : "Pēdējā pieteikšanās"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"
} \ No newline at end of file
diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js
index 7250477b10f..91f2987d33a 100644
--- a/settings/l10n/nl.js
+++ b/settings/l10n/nl.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"You need to set your user email before being able to send test emails." : "Je moet je e-mailadres invoeren voordat je testberichten kunt versturen.",
"Invalid request" : "Ongeldige aanvraag",
"Invalid mail address" : "Ongeldig e-mailadres",
+ "No valid group selected" : "Geen geldige groep geselecteerd",
"A user with that name already exists." : "Er bestaat al een gebruiker met die naam.",
"Unable to create user." : "Kan gebruiker niet aanmaken.",
"Your %s account was created" : "Je %s account is aangemaakt",
@@ -122,6 +123,8 @@ OC.L10N.register(
"undo" : "ongedaan maken",
"never" : "geen",
"deleted {userName}" : "verwijderd {userName}",
+ "Unable to add user to group {group}" : "Kan niet worden toegevoegd aan gebruikersgroep {group}",
+ "Unable to remove user from group {group}" : "Gebruiker kan niet worden verwijderd van groep {group}",
"Add group" : "Groep toevoegen",
"Invalid quota value \"{val}\"" : "Ongeldige quota waarde \"{val}\"",
"no group" : "geen groep",
diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json
index c51558c95e1..68b8e1ab060 100644
--- a/settings/l10n/nl.json
+++ b/settings/l10n/nl.json
@@ -23,6 +23,7 @@
"You need to set your user email before being able to send test emails." : "Je moet je e-mailadres invoeren voordat je testberichten kunt versturen.",
"Invalid request" : "Ongeldige aanvraag",
"Invalid mail address" : "Ongeldig e-mailadres",
+ "No valid group selected" : "Geen geldige groep geselecteerd",
"A user with that name already exists." : "Er bestaat al een gebruiker met die naam.",
"Unable to create user." : "Kan gebruiker niet aanmaken.",
"Your %s account was created" : "Je %s account is aangemaakt",
@@ -120,6 +121,8 @@
"undo" : "ongedaan maken",
"never" : "geen",
"deleted {userName}" : "verwijderd {userName}",
+ "Unable to add user to group {group}" : "Kan niet worden toegevoegd aan gebruikersgroep {group}",
+ "Unable to remove user from group {group}" : "Gebruiker kan niet worden verwijderd van groep {group}",
"Add group" : "Groep toevoegen",
"Invalid quota value \"{val}\"" : "Ongeldige quota waarde \"{val}\"",
"no group" : "geen groep",
diff --git a/settings/l10n/pt_BR.js b/settings/l10n/pt_BR.js
index b43a307e705..e7a42c40add 100644
--- a/settings/l10n/pt_BR.js
+++ b/settings/l10n/pt_BR.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"You need to set your user email before being able to send test emails." : "Você precisa configurar seu e-mail de usuário antes de ser capaz de enviar e-mails de teste.",
"Invalid request" : "Pedido inválido",
"Invalid mail address" : "Endereço de e-mail inválido",
+ "No valid group selected" : "Nenhum grupo válido foi selecionado",
"A user with that name already exists." : "Um usuário com esse nome já existe.",
"Unable to create user." : "Não é possível criar usuário.",
"Your %s account was created" : "Sua conta %s foi criada",
diff --git a/settings/l10n/pt_BR.json b/settings/l10n/pt_BR.json
index 093fb8cd92a..86d9c215b5c 100644
--- a/settings/l10n/pt_BR.json
+++ b/settings/l10n/pt_BR.json
@@ -23,6 +23,7 @@
"You need to set your user email before being able to send test emails." : "Você precisa configurar seu e-mail de usuário antes de ser capaz de enviar e-mails de teste.",
"Invalid request" : "Pedido inválido",
"Invalid mail address" : "Endereço de e-mail inválido",
+ "No valid group selected" : "Nenhum grupo válido foi selecionado",
"A user with that name already exists." : "Um usuário com esse nome já existe.",
"Unable to create user." : "Não é possível criar usuário.",
"Your %s account was created" : "Sua conta %s foi criada",
diff --git a/settings/l10n/ru.js b/settings/l10n/ru.js
index b2366d15a33..a2b584e71a0 100644
--- a/settings/l10n/ru.js
+++ b/settings/l10n/ru.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"You need to set your user email before being able to send test emails." : "Вы должны настроить свой адрес электронной почты прежде чем отправлять тестовые сообщения.",
"Invalid request" : "Неправильный запрос",
"Invalid mail address" : "Некорректный адрес электронной почты",
+ "No valid group selected" : "Не выбрана верная группа",
"A user with that name already exists." : "Пользователь с таким именем уже существует.",
"Unable to create user." : "Невозможно создать пользователя.",
"Your %s account was created" : "Учетная запись %s создана",
@@ -122,6 +123,8 @@ OC.L10N.register(
"undo" : "отмена",
"never" : "никогда",
"deleted {userName}" : "удалён {userName}",
+ "Unable to add user to group {group}" : "Невозможно добавить пользователя в группу {group}",
+ "Unable to remove user from group {group}" : "Невозможно удалить пользователя из группы {group}",
"Add group" : "Добавить группу",
"Invalid quota value \"{val}\"" : "Недопустимая величина квоты \"{val}\"",
"no group" : "Без группы",
diff --git a/settings/l10n/ru.json b/settings/l10n/ru.json
index 76bb24b6068..3ccf4f1f15f 100644
--- a/settings/l10n/ru.json
+++ b/settings/l10n/ru.json
@@ -23,6 +23,7 @@
"You need to set your user email before being able to send test emails." : "Вы должны настроить свой адрес электронной почты прежде чем отправлять тестовые сообщения.",
"Invalid request" : "Неправильный запрос",
"Invalid mail address" : "Некорректный адрес электронной почты",
+ "No valid group selected" : "Не выбрана верная группа",
"A user with that name already exists." : "Пользователь с таким именем уже существует.",
"Unable to create user." : "Невозможно создать пользователя.",
"Your %s account was created" : "Учетная запись %s создана",
@@ -120,6 +121,8 @@
"undo" : "отмена",
"never" : "никогда",
"deleted {userName}" : "удалён {userName}",
+ "Unable to add user to group {group}" : "Невозможно добавить пользователя в группу {group}",
+ "Unable to remove user from group {group}" : "Невозможно удалить пользователя из группы {group}",
"Add group" : "Добавить группу",
"Invalid quota value \"{val}\"" : "Недопустимая величина квоты \"{val}\"",
"no group" : "Без группы",
diff --git a/settings/l10n/zh_CN.js b/settings/l10n/zh_CN.js
index c70d0aa67f1..e7edc0dd002 100644
--- a/settings/l10n/zh_CN.js
+++ b/settings/l10n/zh_CN.js
@@ -3,54 +3,63 @@ OC.L10N.register(
{
"Enabled" : "开启",
"Not enabled" : "未启用",
- "Wrong password" : "错误密码",
+ "Wrong password" : "密码错误",
"Saved" : "已保存",
"No user supplied" : "没有满足的用户",
- "Unable to change password" : "不能更改密码",
+ "Unable to change password" : "无法修改密码",
"Authentication error" : "认证错误",
- "Please provide an admin recovery password, otherwise all user data will be lost" : "请提供管理员恢复密码,否则所有用户的数据都将遗失。",
- "Wrong admin recovery password. Please check the password and try again." : "错误的管理员恢复密码。请检查密码并重试。",
- "Backend doesn't support password change, but the user's encryption key was successfully updated." : "后端不支持密码更改,但用户的加密密钥已成功更新。",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "请提供管理员恢复密码, 否则所有用户的数据都将丢失.",
+ "Wrong admin recovery password. Please check the password and try again." : "错误的管理员恢复密码. 请检查密码并重试.",
+ "Backend doesn't support password change, but the user's encryption key was successfully updated." : "后端不支持修改密码, 但用户的加密密钥已成功更新.",
"installing and updating apps via the app store or Federated Cloud Sharing" : "通过应用程序商店或联合云共享安装和更新应用程序",
"Federated Cloud Sharing" : "联合云共享",
- "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL使用了过时 %s 版本 (%s)。请更新你的操作系统或功能比如 %s 将无法可靠地工作。",
- "A problem occurred, please check your log files (Error: %s)" : "出现了故障,请检查你的日志文件 (错误: %s)",
+ "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL 当前使用的过时 %s 的版本 (%s). 请更新你的操作系统或组件, 例如 %s 将无法可靠地工作.",
+ "A problem occurred, please check your log files (Error: %s)" : "出现了问题, 请检查您的日志文件 (错误: %s)",
"Migration Completed" : "迁移完成",
- "Group already exists." : "组已经存在。",
- "Unable to add group." : "无法添加组。",
- "Unable to delete group." : "无法删除组",
+ "Group already exists." : "分组已经存在.",
+ "Unable to add group." : "无法添加分组.",
+ "Unable to delete group." : "无法删除分组.",
"test email settings" : "测试电子邮件设置",
- "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "在发送电子邮件时出现问题。请修改您的设置。 (错误: %s)",
+ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "在发送电子邮件时出现问题. 请修正您的设置. (错误: %s)",
"Email sent" : "邮件已发送",
- "You need to set your user email before being able to send test emails." : "在发送测试邮件前您需要设置您的用户电子邮件。",
+ "You need to set your user email before being able to send test emails." : "在发送测试邮件前您需要设置您的电子邮件地址.",
"Invalid request" : "无效请求",
"Invalid mail address" : "无效的电子邮件地址",
- "A user with that name already exists." : "使用该名称的用户已存在。",
- "Unable to create user." : "无法创建用户。",
+ "No valid group selected" : "没有选择有效的分组",
+ "A user with that name already exists." : "使用该名称的用户已存在.",
+ "Unable to create user." : "无法创建用户.",
"Your %s account was created" : "你的帐户 %s 已创建",
- "Unable to delete user." : "不能删除用户",
+ "Unable to delete user." : "无法删除用户",
+ "Settings saved" : "设置已保存",
"Unable to change full name" : "无法修改全名",
- "Your full name has been changed." : "您的全名已修改。",
+ "Unable to change email address" : "无法修改电子邮箱地址",
+ "Your full name has been changed." : "您的全名已修改.",
"Forbidden" : "被禁止",
- "Invalid user" : "用户无效",
- "Unable to change mail address" : "无法更改邮箱地址",
+ "Invalid user" : "无效用户",
+ "Unable to change mail address" : "无法修改电子邮箱地址",
"Email saved" : "电子邮件已保存",
- "Couldn't remove app." : "无法删除应用。",
- "Couldn't update app." : "无法更新应用。",
- "Add trusted domain" : "添加信任域",
- "Migration in progress. Please wait until the migration is finished" : "迁移正在进行中。请等待,直到完成迁移",
+ "Password confirmation is required" : "需要密码确认",
+ "Couldn't remove app." : "无法删除应用.",
+ "Couldn't update app." : "无法更新应用.",
+ "Are you really sure you want add {domain} as trusted domain?" : "您确定将 {domain} 添加为信任的域名么?",
+ "Add trusted domain" : "添加信任域名",
+ "Migration in progress. Please wait until the migration is finished" : "正在进行迁移. 请稍等, 直到迁移完成",
"Migration started …" : "迁移开始...",
+ "Not saved" : "未保存",
"Sending..." : "正在发送...",
"Official" : "官方",
"All" : "全部",
"Update to %s" : "更新为 %s",
"_You have %n app update pending_::_You have %n app updates pending_" : ["%n 个应用正在等待升级"],
"No apps found for your version" : "未找到适合当前版本的应用",
- "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "已认可的应用是由值得信赖的开发商开发,并已通过了一个粗略的安全检查。他们放在一个开放的代码库并且维护人员认为他们是稳定的差不多可以正常使用。",
- "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "此应用未检查安全问题,它是新的或已知是不稳定的。安装风险自担。",
+ "The app will be downloaded from the app store" : "该应用将从应用商店下载",
+ "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "官方应用由社区和内部开发. 其可以提供核心功能并保证生产用途.",
+ "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "认证应用由值得信赖的开发者开发, 并通过了一个粗略的安全检查. 其在开放的代码库中活跃地维护, 他们的维护者认为在普通用途足够稳定.",
+ "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "此应用没有检查安全问题, 它是新的或已知不稳定的. 安装风险自担.",
+ "Enabling app …" : "正在启用应用程序...",
"Error while disabling app" : "禁用应用时出错",
"Disable" : "禁用",
- "Enable" : "开启",
+ "Enable" : "启用",
"Error while enabling app" : "启用应用时出错",
"Error: this app cannot be enabled because it makes the server unstable" : "错误: 无法启用应用因为它会导致服务器不稳定",
"Error: could not disable broken app" : "错误: 无法禁用损坏的应用",
@@ -58,31 +67,70 @@ OC.L10N.register(
"Updating...." : "正在更新....",
"Error while updating app" : "更新应用时出错",
"Updated" : "已更新",
- "Uninstalling ...." : "卸载中....",
+ "Uninstalling ...." : "正在卸载....",
"Error while uninstalling app" : "卸载应用时发生了一个错误",
"Uninstall" : "卸载",
- "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "该应用已启用,但是需要更新。5秒后将跳转到更新页面。",
- "App update" : "应用更新",
- "Approved" : "已认可",
+ "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "该应用已启用, 但是需要更新. 5秒后将跳转到更新页面.",
+ "App update" : "更新应用",
+ "Approved" : "已认证",
"Experimental" : "实验",
- "An error occurred. Please upload an ASCII-encoded PEM certificate." : "出现了一个错误。请上传 ASCII 编码的 PEM 证书。",
+ "No apps found for {query}" : "找不到符合 {query} 的应用",
+ "Allow filesystem access" : "允许访问文件系统",
+ "Disconnect" : "断开连接",
+ "Revoke" : "撤销",
+ "Internet Explorer" : "Internet Explorer",
+ "Edge" : "Edge",
+ "Firefox" : "Firefox",
+ "Google Chrome" : "Google Chrome",
+ "Safari" : "Safari",
+ "Google Chrome for Android" : "Google Chrome for Android",
+ "iPhone iOS" : "iPhone iOS",
+ "iPad iOS" : "iPad iOS",
+ "iOS Client" : "iOS 客户端",
+ "Android Client" : "Android 客户端",
+ "Sync client - {os}" : "同步客户端 - {os}",
+ "This session" : "当前会话",
+ "Copy" : "复制",
+ "Copied!" : "已复制!",
+ "Not supported!" : "不支持!",
+ "Press ⌘-C to copy." : "按 ⌘-C 键复制.",
+ "Press Ctrl-C to copy." : "按 Ctrl-C 复制.",
+ "Error while loading browser sessions and device tokens" : "加载浏览器会话和设备令牌时出错",
+ "Error while creating device token" : "创建设备令牌时出错",
+ "Error while deleting the token" : "删除令牌时出错",
+ "An error occurred. Please upload an ASCII-encoded PEM certificate." : "出现了一个错误. 请上传 ASCII 编码的 PEM 证书.",
"Valid until {date}" : "有效期至 {date}",
"Delete" : "删除",
+ "Local" : "本地",
+ "Private" : "私有",
+ "Only visible to local users" : "仅对本地用户可见",
+ "Only visible to you" : "仅您自己可见",
+ "Contacts" : "联系人",
+ "Visible to local users and to trusted servers" : "仅对本地用户和信任的服务器可见",
+ "Public" : "公开",
+ "Will be synced to a global and public address book" : "将同步到全局和公开地址簿中",
"Select a profile picture" : "选择头像",
"Very weak password" : "非常弱的密码",
"Weak password" : "弱密码",
"So-so password" : "一般强度的密码",
"Good password" : "较强的密码",
"Strong password" : "强密码",
- "Groups" : "组",
+ "Groups" : "分组",
"Unable to delete {objName}" : "无法删除 {objName}",
- "Error creating group: {message}" : "创建组时出错: {message}",
- "A valid group name must be provided" : "请提供一个有效的组名称",
+ "Error creating group: {message}" : "创建分组时出错: {message}",
+ "A valid group name must be provided" : "请提供一个有效的分组名称",
"deleted {groupName}" : "已删除 {groupName}",
"undo" : "撤销",
"never" : "从不",
"deleted {userName}" : "已删除 {userName}",
- "Changing the password will result in data loss, because data recovery is not available for this user" : "更改密码会导致数据丢失,因为数据恢复不适用于此用户",
+ "Unable to add user to group {group}" : "无法将用户添加到分组 {group}",
+ "Unable to remove user from group {group}" : "无法从分组 {group} 中移除用户",
+ "Add group" : "添加分组",
+ "Invalid quota value \"{val}\"" : "无效的配额值 \"{val}\"",
+ "no group" : "没有分组",
+ "Password successfully changed" : "密码修改成功",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "修改密码会导致数据丢失, 因为数据恢复不适用于此用户",
+ "Could not change the users email" : "无法修改用户电子邮箱地址",
"A valid username must be provided" : "必须提供合法的用户名",
"Error creating user: {message}" : "创建用户出错: {message}",
"A valid password must be provided" : "必须提供合法的密码",
@@ -90,14 +138,18 @@ OC.L10N.register(
"__language_name__" : "简体中文",
"Unlimited" : "无限",
"Personal info" : "个人信息",
- "Sync clients" : "客户端",
+ "Sessions" : "会话",
+ "App passwords" : "应用密码",
+ "Sync clients" : "同步客户端",
"None" : "无",
"Login" : "登录",
- "Plain" : "Plain",
+ "Plain" : "明文",
"NT LAN Manager" : "NT LAN 管理器",
+ "SSL/TLS" : "SSL/TLS",
+ "STARTTLS" : "STARTTLS",
"Email server" : "电子邮件服务器",
"Open documentation" : "打开文档",
- "This is used for sending out notifications." : "这被用于发送通知。",
+ "This is used for sending out notifications." : "这被用于发送通知.",
"Send mode" : "发送模式",
"Encryption" : "加密",
"From address" : "来自地址",
@@ -114,39 +166,47 @@ OC.L10N.register(
"Send email" : "发送邮件",
"Server-side encryption" : "服务器端加密",
"Enable server-side encryption" : "启用服务器端加密",
- "Please read carefully before activating server-side encryption: " : "在激活服务器端加密之前,请仔细阅读:",
- "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "一旦加密被启用,之后上传到服务器的所有文件都将服务器上加密。只有当启用状态的加密模块支持解密并且所有的先决条件(例如,设定恢复键)得到满足时才能解除加密。",
- "Be aware that encryption always increases the file size." : "请注意,加密会增加文件大小。",
- "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "定期备份数据有利于保证数据完整,并且确保备份您的加密数据和加密密钥。",
- "This is the final warning: Do you really want to enable encryption?" : "这是最后一次警告:你真的想启用加密?",
+ "Please read carefully before activating server-side encryption: " : "在激活服务器端加密之前, 请仔细阅读:",
+ "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "一旦加密被启用, 之后上传到服务器的所有文件都将服务器上加密. 只有当启用状态的加密模块支持解密并且所有前提都满足时 (例如: 设定恢复密钥) 才能解除加密.",
+ "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "单独的加密不能保证系统的安全性. 请参考加密应用工作原理和支持的用例的文档获取更多信息",
+ "Be aware that encryption always increases the file size." : "请注意, 加密会增加文件大小.",
+ "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "定期备份数据有助于保证数据完整, 并且确保备份您的加密数据和加密密钥.",
+ "This is the final warning: Do you really want to enable encryption?" : "这是最后一次警告: 你确定要启用加密?",
"Enable encryption" : "启用加密",
- "No encryption module loaded, please enable an encryption module in the app menu." : "没有加载加密模块,请在 APP 应用菜单中启用加密模块。",
- "Select default encryption module:" : "选择默认的加密模块:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "你需要升级你的加密密钥 (旧版 ownCloud <= 8.0) 。 请在应用中启用 \\\"Default encryption module\\\" 并运行 'occ encryption:migrate'",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "您需要将加密密钥从旧版(ownCloud<=8.0)迁移到新版。",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "没有加载加密模块, 请在 APP 应用菜单中启用加密模块.",
+ "Select default encryption module:" : "选择默认的加密模块:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "您需要从旧版本 (ownCloud <= 8.0) 迁移您的加密密钥. 请在应用中启用 \\\"Default encryption module\\\" 并运行 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "您需要从旧版本 (ownCloud<=8.0) 迁移您的加密密钥.",
"Start migration" : "开始迁移",
"Security & setup warnings" : "安全及设置警告",
- "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP 似乎没有设置好查询的系统环境变量。 用 getenv(\\\"PATH\\\") 测试只返回一个空值。",
- "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "只读配置已启用。这样可防止通过 WEB 接口设置一些配置。此外,每次更新后该文件需要手动设置为可写。",
- "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP 被设置为移除行内 <doc> 块,这将导致数个核心应用无法访问。",
- "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "这可能是由缓存/加速器造成的,例如 Zend OPcache 或 eAccelerator。",
- "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP模块'文件信息'丢失. 我们强烈建议启用此模块以便mime类型检测取得最佳结果.",
- "System locale can not be set to a one which supports UTF-8." : "系统语系无法设置为支持 UTF-8 的语系。",
- "This means that there might be problems with certain characters in file names." : "这意味着一些文件名中的特定字符可能有问题。",
- "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "我们强烈建议安装在系统上所需的软件包支持以下区域设置之一: %s.",
- "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "如果你不是安装在网域根目录而且又使用系统定时计划任务,那么可以导致 URL 链接生成问题。为了避免这些问题,请在你的 Config.php 文件中设置 \\\"overwrite.cli.url\\\" 选项为 webroot 安装根目录 (建议: \\\"%s\\\")",
- "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "由于下面的错误,无法通过 CLI 执行定时计划任务:",
- "All checks passed." : "所有检查已通过。",
+ "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP 的设置似乎有问题, 无法获取系统环境变量. 使用 getenv(\\\"PATH\\\") 测试时仅返回空结果.",
+ "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "请检查 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">安装文档 ↗</a> 中关于 PHP 配置的说明并在您的服务器中进行配置, 尤其是使用 php-fpm 时.",
+ "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "已启用只读配置. 这将阻止在 Web 界面中进行设置. 此外, 每次更新后该文件需要手动设置为可写入.",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP 被设置为移除内联块, 这将导致多个核心应用无法访问.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "这可能是由缓存/加速器造成的, 例如 Zend OPcache 或 eAccelerator.",
+ "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "您的数据库不能在 \"READ COMMITTED\" 事务隔离级别运行. 这样可能导致在多个并行操作时出现问题.",
+ "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "已安装 %1$s 的低版本 %2$s. 出于稳定性和性能的原因, 我们建议您升级到更新的 %1$s 版本.",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP 模块 'fileinfo' 缺失. 我们强烈建议启用此模块以便在 MIME 类型检测时获得最准确的结果.",
+ "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "事务文件锁被禁用, 这可能导致竞争条件的问题. 在 config.php 中启用 'filelocking.enabled' 选项来避免这些问题. 请参考 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">文档↗</a> 获取更多信息.",
+ "System locale can not be set to a one which supports UTF-8." : "系统区域无法设置为支持 UTF-8 的区域.",
+ "This means that there might be problems with certain characters in file names." : "这意味着当文件名中包含特定字符时可能出现问题.",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "我们强烈建议在您的系统中安装需要的包以支持下列区域: %s.",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "如果您不是安装在域名的根目录, 并且使用系统 cron 服务时, 可能导致 URL 生成问题. 为了避免这些问题, 请在您的 config.php 文件中设置 \"overwrite.cli.url\" 选项为您的安装根目录路径 (建议: \"%s\")",
+ "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "由于下列的技术错误, 无法通过 CLI 执行计划任务:",
+ "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "请再次检查 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">安装指南 ↗</a>, 并检查 <a href=\"%s\">日志</a> 中的任何错误或警告.",
+ "All checks passed." : "所有检查已通过.",
"Cron" : "计划任务",
- "Last cron job execution: %s." : "上次定时任务执行于: %s.",
- "Last cron job execution: %s. Something seems wrong." : "上次定时任务执行于: %s. 似乎有些问题。",
- "Cron was not executed yet!" : "定时任务还未被执行!",
+ "Last cron job execution: %s." : "上次定时任务执行于: %s.",
+ "Last cron job execution: %s. Something seems wrong." : "上次定时任务执行于: %s. 但存在一些问题.",
+ "Cron was not executed yet!" : "定时任务还未被执行!",
"Execute one task with each page loaded" : "每个页面加载后执行一个任务",
- "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php 已注册于一个 webcron 服务来通过 http 每 15 分钟执行 cron.php。",
- "Use system's cron service to call the cron.php file every 15 minutes." : "使用系统 CRON 服务每 15 分钟执行一次 cron.php 文件。",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php 注册到 webcron 服务上, 通过 http 每 15 分钟执行 cron.php.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "使用系统 cron 服务每 15 分钟执行一次 cron.php 文件.",
+ "The cron.php needs to be executed by the system user \"%s\"." : "cron.php 需要被系统用户 \"%s\" 执行.",
+ "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "为了运行该功能, 您需要 PHP posix 扩展. 请参考 {linkstart}PHP 文档{linkend} 获取更多信息.",
"Version" : "版本",
"Sharing" : "共享",
- "Allow apps to use the Share API" : "允许应用软件使用共享API",
+ "Allow apps to use the Share API" : "允许应用使用共享 API",
"Allow users to share via link" : "允许用户通过链接分享文件",
"Allow public uploads" : "允许公开上传",
"Enforce password protection" : "强制密码保护",
@@ -154,96 +214,143 @@ OC.L10N.register(
"Expire after " : "过期于",
"days" : "天",
"Enforce expiration date" : "强制过期日期",
- "Allow resharing" : "允许再次共享",
+ "Allow resharing" : "允许二次共享",
"Allow sharing with groups" : "允许群组共享",
"Restrict users to only share with users in their groups" : "限制仅与组内用户分享",
"Exclude groups from sharing" : "在分享中排除组",
- "These groups will still be able to receive shares, but not to initiate them." : "这些组将仍可以获取分享,但无法向他人分享。",
- "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "允许在共享对话框中的自动补全用户名。如果被禁用,需要输入用户全名。",
- "Tips & tricks" : "技巧提示",
- "How to do backups" : "如何做备份",
+ "These groups will still be able to receive shares, but not to initiate them." : "这些组将仍可以获取分享, 但无法向他人分享.",
+ "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "允许在共享对话框中自动补全用户名. 如果被禁用, 需要输入完整的用户名.",
+ "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "在公开链接上传页中显示免责声明. (仅当文件列表隐藏时显示)",
+ "This text will be shown on the public link upload page when the file list is hidden." : "这些内容将在公开链接上传页中当文件列表隐藏时显示.",
+ "Tips & tricks" : "小提示",
+ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite 当前被用作数据库. 对于较大数据量的安装和使用, 我们建议您切换到不同的数据库后端.",
+ "This is particularly recommended when using the desktop client for file synchronisation." : "当时用桌面客户端同步文件时特别推荐.",
+ "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "合并其他数据库可以使用命令行工具: 'occ db:convert-type', 或查看 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">文档 ↗</a>.",
+ "How to do backups" : "如何备份",
"Advanced monitoring" : "高级监控",
"Performance tuning" : "性能优化",
"Improving the config.php" : "正在优化 config.php",
"Theming" : "主题",
"Hardening and security guidance" : "强化和安全指南",
"Developer documentation" : "开发者文档",
+ "by %s" : "由 %s",
"%s-licensed" : "%s-许可协议",
- "Documentation:" : "文档:",
+ "Documentation:" : "文档:",
"User documentation" : "用户文档",
"Admin documentation" : "管理员文档",
+ "Visit website" : "访问网站",
+ "Report a bug" : "报告问题",
"Show description …" : "显示描述...",
"Hide description …" : "隐藏描述...",
- "This app has an update available." : "此应用有可用的更新。",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "此应用程序无法安装,因为以下依赖性不满足:",
- "Enable only for specific groups" : "仅对特定的组开放",
+ "This app has an update available." : "此应用有可用的更新.",
+ "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "该应用没有指定支持的 Nextcloud 最低版本. 可能会在将来出现问题.",
+ "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "该应用没有指定支持的 Nextcloud 最高版本. 可能会在将来出现问题.",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "无法安装应用, 因为无法满足下列依赖: ",
+ "Enable only for specific groups" : "仅特定组启用",
+ "Uninstall app" : "卸载应用",
"SSL Root Certificates" : "SSL 根证书",
"Common Name" : "通用名称",
"Valid until" : "有效期至",
"Issued By" : "授权由",
"Valid until %s" : "有效期至 %s",
"Import root certificate" : "导入根证书",
- "Cheers!" : "干杯!",
+ "Hey there,<br><br>just letting you know that you now have a %s account.<br><br>Your username: <strong>%s</strong><br>Access it: <strong><a href=\"%s\">%s</a></strong><br><br>" : "您好,<br><br>您刚刚创建了 %s 账户<br><br>您的用户名: <strong>%s</strong><br>现在访问: <strong><a href=\"%s\">%s</a></strong><br><br>",
+ "Cheers!" : "干杯!",
+ "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "您好,\n\n您刚刚创建了 %s 账户.\n\n您的用户名: %s\n现在访问: %s\n",
"Administrator documentation" : "管理员文档",
"Online documentation" : "在线文档",
"Forum" : "论坛",
+ "Getting help" : "获取帮助",
"Commercial support" : "商业支持",
- "Profile picture" : "联系人图片",
- "Upload new" : "上传新的",
+ "You are using <strong>%s</strong> of <strong>%s</strong>" : "您正在使用 <strong>%s</strong> of <strong>%s</strong>",
+ "Profile picture" : "账户头像",
+ "Upload new" : "上传",
"Select from Files" : "选择文件",
- "Remove image" : "移除图片",
- "png or jpg, max. 20 MB" : "png或jpg格式最大不超过20MB大小",
+ "Remove image" : "删除图片",
+ "png or jpg, max. 20 MB" : "png 或 jpg 格式, 不超过 20MB",
"Picture provided by original account" : "原始账户图片",
"Cancel" : "取消",
- "Choose as profile picture" : "选择图片",
+ "Choose as profile picture" : "选择个人头像",
"Full name" : "全名",
"No display name set" : "不显示名称设置",
"Email" : "电子邮件",
"Your email address" : "您的电子邮件",
"No email address set" : "尚未设置 Email 地址",
- "For password recovery and notifications" : "用户恢复密码通知",
- "You are member of the following groups:" : "您是以下组的成员:",
+ "For password recovery and notifications" : "用于密码恢复和通知",
+ "Phone number" : "电话号码",
+ "Your phone number" : "您的电话号码",
+ "Address" : "地址",
+ "Your postal address" : "您的邮寄地址",
+ "Website" : "网站",
+ "Your website" : "您的网站",
+ "Twitter" : "Twitter",
+ "Your Twitter handle" : "您的 Twitter 账号",
+ "You are member of the following groups:" : "您是以下组的成员:",
"Password" : "密码",
"Current password" : "当前密码",
"New password" : "新密码",
"Change password" : "修改密码",
"Language" : "语言",
"Help translate" : "帮助翻译",
- "Get the apps to sync your files" : "安装应用进行文件同步",
+ "Get the apps to sync your files" : "下载应用同步您的文件",
"Desktop client" : "桌面客户端",
"Android app" : "Android 应用",
"iOS app" : "iOS 应用",
+ "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "如果您想支持这个项目 {contributeopen}一起开发{linkclose} 或 {contributeopen}帮助传播{linkclose}!",
"Show First Run Wizard again" : "再次显示首次运行向导",
+ "Web, desktop and mobile clients currently logged in to your account." : "您账号当前登录的 Web 页面, 桌面和客户端客户端.",
+ "Device" : "设备",
+ "Last activity" : "最后活跃",
+ "Passcodes that give an app or device permissions to access your account." : "Passcodes 可以使应用或设备访问您的账号.",
"Name" : "名称",
+ "App name" : "应用名",
+ "Create new app password" : "创建新应用密码",
+ "Use the credentials below to configure your app or device." : "使用下述凭据配置您的应用或设备.",
+ "For security reasons this password will only be shown once." : "由于安全原因, 密码仅会显示一次.",
"Username" : "用户名",
+ "Done" : "完成",
+ "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "由 {communityopen}Nextcloud community{linkclose} 开发, {githubopen}源代码{linkclose} 基于 {licenseopen}AGPL{linkclose} 许可协议.",
+ "Follow us on Google Plus!" : "在 Google+ 上关注我们!",
+ "Like our facebook page!" : "点赞我们 facebook 页面!",
+ "Subscribe to our twitter channel!" : "关注我们的 twitter!",
+ "Subscribe to our news feed!" : "订阅我们 RSS 最新消息!",
+ "Subscribe to our newsletter!" : "订阅我们的最新消息!",
"Show storage location" : "显示存储位置",
"Show last log in" : "显示最后登录",
- "Show user backend" : "显示用户后端",
+ "Show user backend" : "显示用户来源",
"Send email to new user" : "发送电子邮件给新用户",
"Show email address" : "显示邮件地址",
"E-Mail" : "E-Mail",
"Create" : "创建",
"Admin Recovery Password" : "管理恢复密码",
"Enter the recovery password in order to recover the users files during password change" : "输入恢复密码来在更改密码的时候恢复用户文件",
+ "Group name" : "分组名",
"Everyone" : "所有人",
"Admins" : "管理员",
- "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "请输入存储限额 (ex: \"512 MB\" or \"12 GB\")",
+ "Default quota" : "默认配额",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "请输入存储配额 (例如: \"512 MB\" 或 \"12 GB\")",
"Other" : "其它",
+ "Group admin for" : "分组管理员",
"Quota" : "配额",
+ "Storage location" : "存储位置",
+ "User backend" : "用户来源",
+ "Last login" : "最后登录",
"change full name" : "更改全名",
"set new password" : "设置新密码",
"change email address" : "修改电子邮箱地址",
"Default" : "默认",
"log-level out of allowed range" : "日志级别超出允许的范围",
"Language changed" : "语言已修改",
- "Admins can't remove themself from the admin group" : "管理员不能将自己移出管理组。",
- "Unable to add user to group %s" : "无法把用户增加到组 %s",
- "Unable to remove user from group %s" : "无法从组%s中移除用户",
- "Are you really sure you want add \"{domain}\" as trusted domain?" : "你真的希望添加 \"{domain}\" 为信任域?",
+ "Admins can't remove themself from the admin group" : "管理员不能将自己移出管理组",
+ "Unable to add user to group %s" : "无法将用户添加到分组 %s",
+ "Unable to remove user from group %s" : "无法从分组 %s 中移除用户",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "您确定将 \"{domain}\" 添加为信任的域名么?",
"Please wait...." : "请稍等....",
- "Everything (fatal issues, errors, warnings, info, debug)" : "所有(灾难性问题,错误,警告,信息,调试)",
- "Info, warnings, errors and fatal issues" : "信息,警告,错误和灾难性问题",
- "Warnings, errors and fatal issues" : "警告,错误和灾难性问题",
+ "iPhone" : "iPhone",
+ "add group" : "添加分组",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "全部 (灾难性问题, 错误, 警告, 信息, 调试)",
+ "Info, warnings, errors and fatal issues" : "信息, 警告, 错误和灾难性问题",
+ "Warnings, errors and fatal issues" : "警告, 错误和灾难性问题",
"Errors and fatal issues" : "错误和灾难性问题",
"Fatal issues only" : "仅灾难性问题",
"Log" : "日志",
@@ -251,17 +358,25 @@ OC.L10N.register(
"Download logfile" : "下载日志文件",
"More" : "更多",
"Less" : "更少",
- "The logfile is bigger than 100 MB. Downloading it may take some time!" : "日志文件超过 100 MB。下载可能需要一些时间!",
+ "The logfile is bigger than 100 MB. Downloading it may take some time!" : "日志文件超过了 100 MB. 下载可能需要一些时间!",
"Allow users to send mail notification for shared files" : "允许用户发送共享文件的邮件通知",
"Allow users to send mail notification for shared files to other users" : "允许用户发送共享文件的邮件通知给其他用户",
- "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite 被用作数据库。对于较大数据量的安装和使用,我们建议您切换到不同的数据库后端。",
- "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "特别当使用桌面客户端来同步文件时,不鼓励使用 SQLite 。",
+ "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite 被用作数据库. 对于较大数据量的安装和使用, 我们建议您切换到不同的数据库后端.",
+ "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "特别当使用桌面客户端同步文件时, 不建议使用 SQLite.",
"Experimental applications ahead" : "未来的实验应用",
- "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "实验应用程序没有在安全性的问题上作过多检查,新的或已知的不稳定 BUG 都在开发中。安装它们可能会导致数据丢失或安全漏洞。",
+ "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "实验性应用程序没有检查安全性问题, 它是新的或已知不稳定的. 安装它们可能会导致数据丢失或安全漏洞.",
"Uninstall App" : "卸载应用",
"Enable experimental apps" : "启用实验性应用程序",
"Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "亲,<br><br>现在我们为你开通了 %s 私有云帐户。<br><br>你的用户名: %s<br>访问网址: <a href=\\\"%s\\\">%s</a><br><br>",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "亲,\\n\\n 现在我们为你开通了 %s 私有去帐户。\\n\\n 你的用户名: %s\\n 访问网址: %s\\n 你的初始密码需要咨询系统管理员。或者你也可以在登录页面输入任意密码登录,\\n登录窗口将出现忘记密码链接,点击通过注册邮箱重设初始密码。\\n\\n",
- "Group" : "分组"
+ "If you want to support the project\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">join development</a>\n\t\t<or></or>\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">spread the word</a>!" : "如果您想支持这个项目\n\t<a href=\"https://nextcloud.com/contribute\" target=\"_blank\" rel=\"noreferrer\">一起开发</a>\n\t<or></or>\n\t<a href=\"https://nextcloud.com/contribute\" target=\"_blank\" rel=\"noreferrer\">帮助传播</a>!",
+ "Add Group" : "添加分组",
+ "Group" : "分组",
+ "Default Quota" : "默认配额",
+ "Full Name" : "全名",
+ "Group Admin for" : "分组管理员",
+ "Storage Location" : "存储位置",
+ "User Backend" : "用户来源",
+ "Last Login" : "最后登录"
},
"nplurals=1; plural=0;");
diff --git a/settings/l10n/zh_CN.json b/settings/l10n/zh_CN.json
index 0fbec2e48fd..4e0f050f3c4 100644
--- a/settings/l10n/zh_CN.json
+++ b/settings/l10n/zh_CN.json
@@ -1,54 +1,63 @@
{ "translations": {
"Enabled" : "开启",
"Not enabled" : "未启用",
- "Wrong password" : "错误密码",
+ "Wrong password" : "密码错误",
"Saved" : "已保存",
"No user supplied" : "没有满足的用户",
- "Unable to change password" : "不能更改密码",
+ "Unable to change password" : "无法修改密码",
"Authentication error" : "认证错误",
- "Please provide an admin recovery password, otherwise all user data will be lost" : "请提供管理员恢复密码,否则所有用户的数据都将遗失。",
- "Wrong admin recovery password. Please check the password and try again." : "错误的管理员恢复密码。请检查密码并重试。",
- "Backend doesn't support password change, but the user's encryption key was successfully updated." : "后端不支持密码更改,但用户的加密密钥已成功更新。",
+ "Please provide an admin recovery password, otherwise all user data will be lost" : "请提供管理员恢复密码, 否则所有用户的数据都将丢失.",
+ "Wrong admin recovery password. Please check the password and try again." : "错误的管理员恢复密码. 请检查密码并重试.",
+ "Backend doesn't support password change, but the user's encryption key was successfully updated." : "后端不支持修改密码, 但用户的加密密钥已成功更新.",
"installing and updating apps via the app store or Federated Cloud Sharing" : "通过应用程序商店或联合云共享安装和更新应用程序",
"Federated Cloud Sharing" : "联合云共享",
- "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL使用了过时 %s 版本 (%s)。请更新你的操作系统或功能比如 %s 将无法可靠地工作。",
- "A problem occurred, please check your log files (Error: %s)" : "出现了故障,请检查你的日志文件 (错误: %s)",
+ "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL 当前使用的过时 %s 的版本 (%s). 请更新你的操作系统或组件, 例如 %s 将无法可靠地工作.",
+ "A problem occurred, please check your log files (Error: %s)" : "出现了问题, 请检查您的日志文件 (错误: %s)",
"Migration Completed" : "迁移完成",
- "Group already exists." : "组已经存在。",
- "Unable to add group." : "无法添加组。",
- "Unable to delete group." : "无法删除组",
+ "Group already exists." : "分组已经存在.",
+ "Unable to add group." : "无法添加分组.",
+ "Unable to delete group." : "无法删除分组.",
"test email settings" : "测试电子邮件设置",
- "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "在发送电子邮件时出现问题。请修改您的设置。 (错误: %s)",
+ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "在发送电子邮件时出现问题. 请修正您的设置. (错误: %s)",
"Email sent" : "邮件已发送",
- "You need to set your user email before being able to send test emails." : "在发送测试邮件前您需要设置您的用户电子邮件。",
+ "You need to set your user email before being able to send test emails." : "在发送测试邮件前您需要设置您的电子邮件地址.",
"Invalid request" : "无效请求",
"Invalid mail address" : "无效的电子邮件地址",
- "A user with that name already exists." : "使用该名称的用户已存在。",
- "Unable to create user." : "无法创建用户。",
+ "No valid group selected" : "没有选择有效的分组",
+ "A user with that name already exists." : "使用该名称的用户已存在.",
+ "Unable to create user." : "无法创建用户.",
"Your %s account was created" : "你的帐户 %s 已创建",
- "Unable to delete user." : "不能删除用户",
+ "Unable to delete user." : "无法删除用户",
+ "Settings saved" : "设置已保存",
"Unable to change full name" : "无法修改全名",
- "Your full name has been changed." : "您的全名已修改。",
+ "Unable to change email address" : "无法修改电子邮箱地址",
+ "Your full name has been changed." : "您的全名已修改.",
"Forbidden" : "被禁止",
- "Invalid user" : "用户无效",
- "Unable to change mail address" : "无法更改邮箱地址",
+ "Invalid user" : "无效用户",
+ "Unable to change mail address" : "无法修改电子邮箱地址",
"Email saved" : "电子邮件已保存",
- "Couldn't remove app." : "无法删除应用。",
- "Couldn't update app." : "无法更新应用。",
- "Add trusted domain" : "添加信任域",
- "Migration in progress. Please wait until the migration is finished" : "迁移正在进行中。请等待,直到完成迁移",
+ "Password confirmation is required" : "需要密码确认",
+ "Couldn't remove app." : "无法删除应用.",
+ "Couldn't update app." : "无法更新应用.",
+ "Are you really sure you want add {domain} as trusted domain?" : "您确定将 {domain} 添加为信任的域名么?",
+ "Add trusted domain" : "添加信任域名",
+ "Migration in progress. Please wait until the migration is finished" : "正在进行迁移. 请稍等, 直到迁移完成",
"Migration started …" : "迁移开始...",
+ "Not saved" : "未保存",
"Sending..." : "正在发送...",
"Official" : "官方",
"All" : "全部",
"Update to %s" : "更新为 %s",
"_You have %n app update pending_::_You have %n app updates pending_" : ["%n 个应用正在等待升级"],
"No apps found for your version" : "未找到适合当前版本的应用",
- "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "已认可的应用是由值得信赖的开发商开发,并已通过了一个粗略的安全检查。他们放在一个开放的代码库并且维护人员认为他们是稳定的差不多可以正常使用。",
- "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "此应用未检查安全问题,它是新的或已知是不稳定的。安装风险自担。",
+ "The app will be downloaded from the app store" : "该应用将从应用商店下载",
+ "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "官方应用由社区和内部开发. 其可以提供核心功能并保证生产用途.",
+ "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "认证应用由值得信赖的开发者开发, 并通过了一个粗略的安全检查. 其在开放的代码库中活跃地维护, 他们的维护者认为在普通用途足够稳定.",
+ "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "此应用没有检查安全问题, 它是新的或已知不稳定的. 安装风险自担.",
+ "Enabling app …" : "正在启用应用程序...",
"Error while disabling app" : "禁用应用时出错",
"Disable" : "禁用",
- "Enable" : "开启",
+ "Enable" : "启用",
"Error while enabling app" : "启用应用时出错",
"Error: this app cannot be enabled because it makes the server unstable" : "错误: 无法启用应用因为它会导致服务器不稳定",
"Error: could not disable broken app" : "错误: 无法禁用损坏的应用",
@@ -56,31 +65,70 @@
"Updating...." : "正在更新....",
"Error while updating app" : "更新应用时出错",
"Updated" : "已更新",
- "Uninstalling ...." : "卸载中....",
+ "Uninstalling ...." : "正在卸载....",
"Error while uninstalling app" : "卸载应用时发生了一个错误",
"Uninstall" : "卸载",
- "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "该应用已启用,但是需要更新。5秒后将跳转到更新页面。",
- "App update" : "应用更新",
- "Approved" : "已认可",
+ "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "该应用已启用, 但是需要更新. 5秒后将跳转到更新页面.",
+ "App update" : "更新应用",
+ "Approved" : "已认证",
"Experimental" : "实验",
- "An error occurred. Please upload an ASCII-encoded PEM certificate." : "出现了一个错误。请上传 ASCII 编码的 PEM 证书。",
+ "No apps found for {query}" : "找不到符合 {query} 的应用",
+ "Allow filesystem access" : "允许访问文件系统",
+ "Disconnect" : "断开连接",
+ "Revoke" : "撤销",
+ "Internet Explorer" : "Internet Explorer",
+ "Edge" : "Edge",
+ "Firefox" : "Firefox",
+ "Google Chrome" : "Google Chrome",
+ "Safari" : "Safari",
+ "Google Chrome for Android" : "Google Chrome for Android",
+ "iPhone iOS" : "iPhone iOS",
+ "iPad iOS" : "iPad iOS",
+ "iOS Client" : "iOS 客户端",
+ "Android Client" : "Android 客户端",
+ "Sync client - {os}" : "同步客户端 - {os}",
+ "This session" : "当前会话",
+ "Copy" : "复制",
+ "Copied!" : "已复制!",
+ "Not supported!" : "不支持!",
+ "Press ⌘-C to copy." : "按 ⌘-C 键复制.",
+ "Press Ctrl-C to copy." : "按 Ctrl-C 复制.",
+ "Error while loading browser sessions and device tokens" : "加载浏览器会话和设备令牌时出错",
+ "Error while creating device token" : "创建设备令牌时出错",
+ "Error while deleting the token" : "删除令牌时出错",
+ "An error occurred. Please upload an ASCII-encoded PEM certificate." : "出现了一个错误. 请上传 ASCII 编码的 PEM 证书.",
"Valid until {date}" : "有效期至 {date}",
"Delete" : "删除",
+ "Local" : "本地",
+ "Private" : "私有",
+ "Only visible to local users" : "仅对本地用户可见",
+ "Only visible to you" : "仅您自己可见",
+ "Contacts" : "联系人",
+ "Visible to local users and to trusted servers" : "仅对本地用户和信任的服务器可见",
+ "Public" : "公开",
+ "Will be synced to a global and public address book" : "将同步到全局和公开地址簿中",
"Select a profile picture" : "选择头像",
"Very weak password" : "非常弱的密码",
"Weak password" : "弱密码",
"So-so password" : "一般强度的密码",
"Good password" : "较强的密码",
"Strong password" : "强密码",
- "Groups" : "组",
+ "Groups" : "分组",
"Unable to delete {objName}" : "无法删除 {objName}",
- "Error creating group: {message}" : "创建组时出错: {message}",
- "A valid group name must be provided" : "请提供一个有效的组名称",
+ "Error creating group: {message}" : "创建分组时出错: {message}",
+ "A valid group name must be provided" : "请提供一个有效的分组名称",
"deleted {groupName}" : "已删除 {groupName}",
"undo" : "撤销",
"never" : "从不",
"deleted {userName}" : "已删除 {userName}",
- "Changing the password will result in data loss, because data recovery is not available for this user" : "更改密码会导致数据丢失,因为数据恢复不适用于此用户",
+ "Unable to add user to group {group}" : "无法将用户添加到分组 {group}",
+ "Unable to remove user from group {group}" : "无法从分组 {group} 中移除用户",
+ "Add group" : "添加分组",
+ "Invalid quota value \"{val}\"" : "无效的配额值 \"{val}\"",
+ "no group" : "没有分组",
+ "Password successfully changed" : "密码修改成功",
+ "Changing the password will result in data loss, because data recovery is not available for this user" : "修改密码会导致数据丢失, 因为数据恢复不适用于此用户",
+ "Could not change the users email" : "无法修改用户电子邮箱地址",
"A valid username must be provided" : "必须提供合法的用户名",
"Error creating user: {message}" : "创建用户出错: {message}",
"A valid password must be provided" : "必须提供合法的密码",
@@ -88,14 +136,18 @@
"__language_name__" : "简体中文",
"Unlimited" : "无限",
"Personal info" : "个人信息",
- "Sync clients" : "客户端",
+ "Sessions" : "会话",
+ "App passwords" : "应用密码",
+ "Sync clients" : "同步客户端",
"None" : "无",
"Login" : "登录",
- "Plain" : "Plain",
+ "Plain" : "明文",
"NT LAN Manager" : "NT LAN 管理器",
+ "SSL/TLS" : "SSL/TLS",
+ "STARTTLS" : "STARTTLS",
"Email server" : "电子邮件服务器",
"Open documentation" : "打开文档",
- "This is used for sending out notifications." : "这被用于发送通知。",
+ "This is used for sending out notifications." : "这被用于发送通知.",
"Send mode" : "发送模式",
"Encryption" : "加密",
"From address" : "来自地址",
@@ -112,39 +164,47 @@
"Send email" : "发送邮件",
"Server-side encryption" : "服务器端加密",
"Enable server-side encryption" : "启用服务器端加密",
- "Please read carefully before activating server-side encryption: " : "在激活服务器端加密之前,请仔细阅读:",
- "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "一旦加密被启用,之后上传到服务器的所有文件都将服务器上加密。只有当启用状态的加密模块支持解密并且所有的先决条件(例如,设定恢复键)得到满足时才能解除加密。",
- "Be aware that encryption always increases the file size." : "请注意,加密会增加文件大小。",
- "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "定期备份数据有利于保证数据完整,并且确保备份您的加密数据和加密密钥。",
- "This is the final warning: Do you really want to enable encryption?" : "这是最后一次警告:你真的想启用加密?",
+ "Please read carefully before activating server-side encryption: " : "在激活服务器端加密之前, 请仔细阅读:",
+ "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "一旦加密被启用, 之后上传到服务器的所有文件都将服务器上加密. 只有当启用状态的加密模块支持解密并且所有前提都满足时 (例如: 设定恢复密钥) 才能解除加密.",
+ "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "单独的加密不能保证系统的安全性. 请参考加密应用工作原理和支持的用例的文档获取更多信息",
+ "Be aware that encryption always increases the file size." : "请注意, 加密会增加文件大小.",
+ "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "定期备份数据有助于保证数据完整, 并且确保备份您的加密数据和加密密钥.",
+ "This is the final warning: Do you really want to enable encryption?" : "这是最后一次警告: 你确定要启用加密?",
"Enable encryption" : "启用加密",
- "No encryption module loaded, please enable an encryption module in the app menu." : "没有加载加密模块,请在 APP 应用菜单中启用加密模块。",
- "Select default encryption module:" : "选择默认的加密模块:",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "你需要升级你的加密密钥 (旧版 ownCloud <= 8.0) 。 请在应用中启用 \\\"Default encryption module\\\" 并运行 'occ encryption:migrate'",
- "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "您需要将加密密钥从旧版(ownCloud<=8.0)迁移到新版。",
+ "No encryption module loaded, please enable an encryption module in the app menu." : "没有加载加密模块, 请在 APP 应用菜单中启用加密模块.",
+ "Select default encryption module:" : "选择默认的加密模块:",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "您需要从旧版本 (ownCloud <= 8.0) 迁移您的加密密钥. 请在应用中启用 \\\"Default encryption module\\\" 并运行 'occ encryption:migrate'",
+ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "您需要从旧版本 (ownCloud<=8.0) 迁移您的加密密钥.",
"Start migration" : "开始迁移",
"Security & setup warnings" : "安全及设置警告",
- "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP 似乎没有设置好查询的系统环境变量。 用 getenv(\\\"PATH\\\") 测试只返回一个空值。",
- "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "只读配置已启用。这样可防止通过 WEB 接口设置一些配置。此外,每次更新后该文件需要手动设置为可写。",
- "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP 被设置为移除行内 <doc> 块,这将导致数个核心应用无法访问。",
- "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "这可能是由缓存/加速器造成的,例如 Zend OPcache 或 eAccelerator。",
- "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP模块'文件信息'丢失. 我们强烈建议启用此模块以便mime类型检测取得最佳结果.",
- "System locale can not be set to a one which supports UTF-8." : "系统语系无法设置为支持 UTF-8 的语系。",
- "This means that there might be problems with certain characters in file names." : "这意味着一些文件名中的特定字符可能有问题。",
- "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "我们强烈建议安装在系统上所需的软件包支持以下区域设置之一: %s.",
- "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "如果你不是安装在网域根目录而且又使用系统定时计划任务,那么可以导致 URL 链接生成问题。为了避免这些问题,请在你的 Config.php 文件中设置 \\\"overwrite.cli.url\\\" 选项为 webroot 安装根目录 (建议: \\\"%s\\\")",
- "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "由于下面的错误,无法通过 CLI 执行定时计划任务:",
- "All checks passed." : "所有检查已通过。",
+ "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP 的设置似乎有问题, 无法获取系统环境变量. 使用 getenv(\\\"PATH\\\") 测试时仅返回空结果.",
+ "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "请检查 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">安装文档 ↗</a> 中关于 PHP 配置的说明并在您的服务器中进行配置, 尤其是使用 php-fpm 时.",
+ "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "已启用只读配置. 这将阻止在 Web 界面中进行设置. 此外, 每次更新后该文件需要手动设置为可写入.",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP 被设置为移除内联块, 这将导致多个核心应用无法访问.",
+ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "这可能是由缓存/加速器造成的, 例如 Zend OPcache 或 eAccelerator.",
+ "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "您的数据库不能在 \"READ COMMITTED\" 事务隔离级别运行. 这样可能导致在多个并行操作时出现问题.",
+ "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "已安装 %1$s 的低版本 %2$s. 出于稳定性和性能的原因, 我们建议您升级到更新的 %1$s 版本.",
+ "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP 模块 'fileinfo' 缺失. 我们强烈建议启用此模块以便在 MIME 类型检测时获得最准确的结果.",
+ "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "事务文件锁被禁用, 这可能导致竞争条件的问题. 在 config.php 中启用 'filelocking.enabled' 选项来避免这些问题. 请参考 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">文档↗</a> 获取更多信息.",
+ "System locale can not be set to a one which supports UTF-8." : "系统区域无法设置为支持 UTF-8 的区域.",
+ "This means that there might be problems with certain characters in file names." : "这意味着当文件名中包含特定字符时可能出现问题.",
+ "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "我们强烈建议在您的系统中安装需要的包以支持下列区域: %s.",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "如果您不是安装在域名的根目录, 并且使用系统 cron 服务时, 可能导致 URL 生成问题. 为了避免这些问题, 请在您的 config.php 文件中设置 \"overwrite.cli.url\" 选项为您的安装根目录路径 (建议: \"%s\")",
+ "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "由于下列的技术错误, 无法通过 CLI 执行计划任务:",
+ "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "请再次检查 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">安装指南 ↗</a>, 并检查 <a href=\"%s\">日志</a> 中的任何错误或警告.",
+ "All checks passed." : "所有检查已通过.",
"Cron" : "计划任务",
- "Last cron job execution: %s." : "上次定时任务执行于: %s.",
- "Last cron job execution: %s. Something seems wrong." : "上次定时任务执行于: %s. 似乎有些问题。",
- "Cron was not executed yet!" : "定时任务还未被执行!",
+ "Last cron job execution: %s." : "上次定时任务执行于: %s.",
+ "Last cron job execution: %s. Something seems wrong." : "上次定时任务执行于: %s. 但存在一些问题.",
+ "Cron was not executed yet!" : "定时任务还未被执行!",
"Execute one task with each page loaded" : "每个页面加载后执行一个任务",
- "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php 已注册于一个 webcron 服务来通过 http 每 15 分钟执行 cron.php。",
- "Use system's cron service to call the cron.php file every 15 minutes." : "使用系统 CRON 服务每 15 分钟执行一次 cron.php 文件。",
+ "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php 注册到 webcron 服务上, 通过 http 每 15 分钟执行 cron.php.",
+ "Use system's cron service to call the cron.php file every 15 minutes." : "使用系统 cron 服务每 15 分钟执行一次 cron.php 文件.",
+ "The cron.php needs to be executed by the system user \"%s\"." : "cron.php 需要被系统用户 \"%s\" 执行.",
+ "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "为了运行该功能, 您需要 PHP posix 扩展. 请参考 {linkstart}PHP 文档{linkend} 获取更多信息.",
"Version" : "版本",
"Sharing" : "共享",
- "Allow apps to use the Share API" : "允许应用软件使用共享API",
+ "Allow apps to use the Share API" : "允许应用使用共享 API",
"Allow users to share via link" : "允许用户通过链接分享文件",
"Allow public uploads" : "允许公开上传",
"Enforce password protection" : "强制密码保护",
@@ -152,96 +212,143 @@
"Expire after " : "过期于",
"days" : "天",
"Enforce expiration date" : "强制过期日期",
- "Allow resharing" : "允许再次共享",
+ "Allow resharing" : "允许二次共享",
"Allow sharing with groups" : "允许群组共享",
"Restrict users to only share with users in their groups" : "限制仅与组内用户分享",
"Exclude groups from sharing" : "在分享中排除组",
- "These groups will still be able to receive shares, but not to initiate them." : "这些组将仍可以获取分享,但无法向他人分享。",
- "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "允许在共享对话框中的自动补全用户名。如果被禁用,需要输入用户全名。",
- "Tips & tricks" : "技巧提示",
- "How to do backups" : "如何做备份",
+ "These groups will still be able to receive shares, but not to initiate them." : "这些组将仍可以获取分享, 但无法向他人分享.",
+ "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "允许在共享对话框中自动补全用户名. 如果被禁用, 需要输入完整的用户名.",
+ "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "在公开链接上传页中显示免责声明. (仅当文件列表隐藏时显示)",
+ "This text will be shown on the public link upload page when the file list is hidden." : "这些内容将在公开链接上传页中当文件列表隐藏时显示.",
+ "Tips & tricks" : "小提示",
+ "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite 当前被用作数据库. 对于较大数据量的安装和使用, 我们建议您切换到不同的数据库后端.",
+ "This is particularly recommended when using the desktop client for file synchronisation." : "当时用桌面客户端同步文件时特别推荐.",
+ "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "合并其他数据库可以使用命令行工具: 'occ db:convert-type', 或查看 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">文档 ↗</a>.",
+ "How to do backups" : "如何备份",
"Advanced monitoring" : "高级监控",
"Performance tuning" : "性能优化",
"Improving the config.php" : "正在优化 config.php",
"Theming" : "主题",
"Hardening and security guidance" : "强化和安全指南",
"Developer documentation" : "开发者文档",
+ "by %s" : "由 %s",
"%s-licensed" : "%s-许可协议",
- "Documentation:" : "文档:",
+ "Documentation:" : "文档:",
"User documentation" : "用户文档",
"Admin documentation" : "管理员文档",
+ "Visit website" : "访问网站",
+ "Report a bug" : "报告问题",
"Show description …" : "显示描述...",
"Hide description …" : "隐藏描述...",
- "This app has an update available." : "此应用有可用的更新。",
- "This app cannot be installed because the following dependencies are not fulfilled:" : "此应用程序无法安装,因为以下依赖性不满足:",
- "Enable only for specific groups" : "仅对特定的组开放",
+ "This app has an update available." : "此应用有可用的更新.",
+ "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "该应用没有指定支持的 Nextcloud 最低版本. 可能会在将来出现问题.",
+ "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "该应用没有指定支持的 Nextcloud 最高版本. 可能会在将来出现问题.",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "无法安装应用, 因为无法满足下列依赖: ",
+ "Enable only for specific groups" : "仅特定组启用",
+ "Uninstall app" : "卸载应用",
"SSL Root Certificates" : "SSL 根证书",
"Common Name" : "通用名称",
"Valid until" : "有效期至",
"Issued By" : "授权由",
"Valid until %s" : "有效期至 %s",
"Import root certificate" : "导入根证书",
- "Cheers!" : "干杯!",
+ "Hey there,<br><br>just letting you know that you now have a %s account.<br><br>Your username: <strong>%s</strong><br>Access it: <strong><a href=\"%s\">%s</a></strong><br><br>" : "您好,<br><br>您刚刚创建了 %s 账户<br><br>您的用户名: <strong>%s</strong><br>现在访问: <strong><a href=\"%s\">%s</a></strong><br><br>",
+ "Cheers!" : "干杯!",
+ "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "您好,\n\n您刚刚创建了 %s 账户.\n\n您的用户名: %s\n现在访问: %s\n",
"Administrator documentation" : "管理员文档",
"Online documentation" : "在线文档",
"Forum" : "论坛",
+ "Getting help" : "获取帮助",
"Commercial support" : "商业支持",
- "Profile picture" : "联系人图片",
- "Upload new" : "上传新的",
+ "You are using <strong>%s</strong> of <strong>%s</strong>" : "您正在使用 <strong>%s</strong> of <strong>%s</strong>",
+ "Profile picture" : "账户头像",
+ "Upload new" : "上传",
"Select from Files" : "选择文件",
- "Remove image" : "移除图片",
- "png or jpg, max. 20 MB" : "png或jpg格式最大不超过20MB大小",
+ "Remove image" : "删除图片",
+ "png or jpg, max. 20 MB" : "png 或 jpg 格式, 不超过 20MB",
"Picture provided by original account" : "原始账户图片",
"Cancel" : "取消",
- "Choose as profile picture" : "选择图片",
+ "Choose as profile picture" : "选择个人头像",
"Full name" : "全名",
"No display name set" : "不显示名称设置",
"Email" : "电子邮件",
"Your email address" : "您的电子邮件",
"No email address set" : "尚未设置 Email 地址",
- "For password recovery and notifications" : "用户恢复密码通知",
- "You are member of the following groups:" : "您是以下组的成员:",
+ "For password recovery and notifications" : "用于密码恢复和通知",
+ "Phone number" : "电话号码",
+ "Your phone number" : "您的电话号码",
+ "Address" : "地址",
+ "Your postal address" : "您的邮寄地址",
+ "Website" : "网站",
+ "Your website" : "您的网站",
+ "Twitter" : "Twitter",
+ "Your Twitter handle" : "您的 Twitter 账号",
+ "You are member of the following groups:" : "您是以下组的成员:",
"Password" : "密码",
"Current password" : "当前密码",
"New password" : "新密码",
"Change password" : "修改密码",
"Language" : "语言",
"Help translate" : "帮助翻译",
- "Get the apps to sync your files" : "安装应用进行文件同步",
+ "Get the apps to sync your files" : "下载应用同步您的文件",
"Desktop client" : "桌面客户端",
"Android app" : "Android 应用",
"iOS app" : "iOS 应用",
+ "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "如果您想支持这个项目 {contributeopen}一起开发{linkclose} 或 {contributeopen}帮助传播{linkclose}!",
"Show First Run Wizard again" : "再次显示首次运行向导",
+ "Web, desktop and mobile clients currently logged in to your account." : "您账号当前登录的 Web 页面, 桌面和客户端客户端.",
+ "Device" : "设备",
+ "Last activity" : "最后活跃",
+ "Passcodes that give an app or device permissions to access your account." : "Passcodes 可以使应用或设备访问您的账号.",
"Name" : "名称",
+ "App name" : "应用名",
+ "Create new app password" : "创建新应用密码",
+ "Use the credentials below to configure your app or device." : "使用下述凭据配置您的应用或设备.",
+ "For security reasons this password will only be shown once." : "由于安全原因, 密码仅会显示一次.",
"Username" : "用户名",
+ "Done" : "完成",
+ "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "由 {communityopen}Nextcloud community{linkclose} 开发, {githubopen}源代码{linkclose} 基于 {licenseopen}AGPL{linkclose} 许可协议.",
+ "Follow us on Google Plus!" : "在 Google+ 上关注我们!",
+ "Like our facebook page!" : "点赞我们 facebook 页面!",
+ "Subscribe to our twitter channel!" : "关注我们的 twitter!",
+ "Subscribe to our news feed!" : "订阅我们 RSS 最新消息!",
+ "Subscribe to our newsletter!" : "订阅我们的最新消息!",
"Show storage location" : "显示存储位置",
"Show last log in" : "显示最后登录",
- "Show user backend" : "显示用户后端",
+ "Show user backend" : "显示用户来源",
"Send email to new user" : "发送电子邮件给新用户",
"Show email address" : "显示邮件地址",
"E-Mail" : "E-Mail",
"Create" : "创建",
"Admin Recovery Password" : "管理恢复密码",
"Enter the recovery password in order to recover the users files during password change" : "输入恢复密码来在更改密码的时候恢复用户文件",
+ "Group name" : "分组名",
"Everyone" : "所有人",
"Admins" : "管理员",
- "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "请输入存储限额 (ex: \"512 MB\" or \"12 GB\")",
+ "Default quota" : "默认配额",
+ "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "请输入存储配额 (例如: \"512 MB\" 或 \"12 GB\")",
"Other" : "其它",
+ "Group admin for" : "分组管理员",
"Quota" : "配额",
+ "Storage location" : "存储位置",
+ "User backend" : "用户来源",
+ "Last login" : "最后登录",
"change full name" : "更改全名",
"set new password" : "设置新密码",
"change email address" : "修改电子邮箱地址",
"Default" : "默认",
"log-level out of allowed range" : "日志级别超出允许的范围",
"Language changed" : "语言已修改",
- "Admins can't remove themself from the admin group" : "管理员不能将自己移出管理组。",
- "Unable to add user to group %s" : "无法把用户增加到组 %s",
- "Unable to remove user from group %s" : "无法从组%s中移除用户",
- "Are you really sure you want add \"{domain}\" as trusted domain?" : "你真的希望添加 \"{domain}\" 为信任域?",
+ "Admins can't remove themself from the admin group" : "管理员不能将自己移出管理组",
+ "Unable to add user to group %s" : "无法将用户添加到分组 %s",
+ "Unable to remove user from group %s" : "无法从分组 %s 中移除用户",
+ "Are you really sure you want add \"{domain}\" as trusted domain?" : "您确定将 \"{domain}\" 添加为信任的域名么?",
"Please wait...." : "请稍等....",
- "Everything (fatal issues, errors, warnings, info, debug)" : "所有(灾难性问题,错误,警告,信息,调试)",
- "Info, warnings, errors and fatal issues" : "信息,警告,错误和灾难性问题",
- "Warnings, errors and fatal issues" : "警告,错误和灾难性问题",
+ "iPhone" : "iPhone",
+ "add group" : "添加分组",
+ "Everything (fatal issues, errors, warnings, info, debug)" : "全部 (灾难性问题, 错误, 警告, 信息, 调试)",
+ "Info, warnings, errors and fatal issues" : "信息, 警告, 错误和灾难性问题",
+ "Warnings, errors and fatal issues" : "警告, 错误和灾难性问题",
"Errors and fatal issues" : "错误和灾难性问题",
"Fatal issues only" : "仅灾难性问题",
"Log" : "日志",
@@ -249,17 +356,25 @@
"Download logfile" : "下载日志文件",
"More" : "更多",
"Less" : "更少",
- "The logfile is bigger than 100 MB. Downloading it may take some time!" : "日志文件超过 100 MB。下载可能需要一些时间!",
+ "The logfile is bigger than 100 MB. Downloading it may take some time!" : "日志文件超过了 100 MB. 下载可能需要一些时间!",
"Allow users to send mail notification for shared files" : "允许用户发送共享文件的邮件通知",
"Allow users to send mail notification for shared files to other users" : "允许用户发送共享文件的邮件通知给其他用户",
- "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite 被用作数据库。对于较大数据量的安装和使用,我们建议您切换到不同的数据库后端。",
- "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "特别当使用桌面客户端来同步文件时,不鼓励使用 SQLite 。",
+ "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite 被用作数据库. 对于较大数据量的安装和使用, 我们建议您切换到不同的数据库后端.",
+ "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "特别当使用桌面客户端同步文件时, 不建议使用 SQLite.",
"Experimental applications ahead" : "未来的实验应用",
- "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "实验应用程序没有在安全性的问题上作过多检查,新的或已知的不稳定 BUG 都在开发中。安装它们可能会导致数据丢失或安全漏洞。",
+ "Experimental apps are not checked for security issues, new or known to be unstable and under heavy development. Installing them can cause data loss or security breaches." : "实验性应用程序没有检查安全性问题, 它是新的或已知不稳定的. 安装它们可能会导致数据丢失或安全漏洞.",
"Uninstall App" : "卸载应用",
"Enable experimental apps" : "启用实验性应用程序",
"Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "亲,<br><br>现在我们为你开通了 %s 私有云帐户。<br><br>你的用户名: %s<br>访问网址: <a href=\\\"%s\\\">%s</a><br><br>",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "亲,\\n\\n 现在我们为你开通了 %s 私有去帐户。\\n\\n 你的用户名: %s\\n 访问网址: %s\\n 你的初始密码需要咨询系统管理员。或者你也可以在登录页面输入任意密码登录,\\n登录窗口将出现忘记密码链接,点击通过注册邮箱重设初始密码。\\n\\n",
- "Group" : "分组"
+ "If you want to support the project\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">join development</a>\n\t\t<or></or>\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">spread the word</a>!" : "如果您想支持这个项目\n\t<a href=\"https://nextcloud.com/contribute\" target=\"_blank\" rel=\"noreferrer\">一起开发</a>\n\t<or></or>\n\t<a href=\"https://nextcloud.com/contribute\" target=\"_blank\" rel=\"noreferrer\">帮助传播</a>!",
+ "Add Group" : "添加分组",
+ "Group" : "分组",
+ "Default Quota" : "默认配额",
+ "Full Name" : "全名",
+ "Group Admin for" : "分组管理员",
+ "Storage Location" : "存储位置",
+ "User Backend" : "用户来源",
+ "Last Login" : "最后登录"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/settings/templates/personal.php b/settings/templates/personal.php
index d3a835c4a16..65ce3751b98 100644
--- a/settings/templates/personal.php
+++ b/settings/templates/personal.php
@@ -186,12 +186,14 @@ if($_['passwordChangeSupported']) {
<input type="password" id="pass1" name="oldpassword"
placeholder="<?php p($l->t('Current password'));?>"
autocomplete="off" autocapitalize="off" autocorrect="off" />
- <label for="pass2" class="hidden-visually"><?php p($l->t('New password'));?>: </label>
- <input type="password" id="pass2" name="newpassword"
- placeholder="<?php p($l->t('New password')); ?>"
- data-typetoggle="#personal-show"
- autocomplete="off" autocapitalize="off" autocorrect="off" />
- <input type="checkbox" id="personal-show" name="show" /><label for="personal-show" class="personal-show-label"></label>
+ <div class="personal-show-container">
+ <label for="pass2" class="hidden-visually"><?php p($l->t('New password'));?>: </label>
+ <input type="password" id="pass2" name="newpassword"
+ placeholder="<?php p($l->t('New password')); ?>"
+ data-typetoggle="#personal-show"
+ autocomplete="off" autocapitalize="off" autocorrect="off" />
+ <input type="checkbox" id="personal-show" name="show" /><label for="personal-show" class="personal-show-label"></label>
+ </div>
<input id="passwordbutton" type="submit" value="<?php p($l->t('Change password')); ?>" />
<br/>
</form>
diff --git a/tests/Core/Controller/OCSControllerTest.php b/tests/Core/Controller/OCSControllerTest.php
index 6c47521786f..7241df9317c 100644
--- a/tests/Core/Controller/OCSControllerTest.php
+++ b/tests/Core/Controller/OCSControllerTest.php
@@ -116,24 +116,6 @@ class OCSControllerTest extends TestCase {
$this->assertEquals($expected, $this->controller->getCapabilities());
}
- public function testGetCurrentUser() {
- $user = $this->createMock(IUser::class);
- $user->method('getUID')->willReturn('uid');
- $user->method('getDisplayName')->willReturn('displayName');
- $user->method('getEMailAddress')->willReturn('e@mail.com');
-
-
- $this->userSession->method('getUser')
- ->willReturn($user);
-
- $expected = new DataResponse([
- 'id' => 'uid',
- 'display-name' => 'displayName',
- 'email' => 'e@mail.com',
- ]);
- $this->assertEquals($expected, $this->controller->getCurrentUser());
- }
-
public function testPersonCheckValid() {
$this->request->method('getRemoteAddress')
->willReturn('1.2.3.4');
diff --git a/tests/Settings/Controller/UsersControllerTest.php b/tests/Settings/Controller/UsersControllerTest.php
index b85667740f7..36ca0917524 100644
--- a/tests/Settings/Controller/UsersControllerTest.php
+++ b/tests/Settings/Controller/UsersControllerTest.php
@@ -19,6 +19,7 @@ use OCP\AppFramework\Http\DataResponse;
use OCP\IAvatar;
use OCP\IAvatarManager;
use OCP\IConfig;
+use OCP\IGroup;
use OCP\IGroupManager;
use OCP\IL10N;
use OCP\ILogger;
@@ -852,95 +853,6 @@ class UsersControllerTest extends \Test\TestCase {
$this->assertEquals($expectedResponse, $response);
}
- public function testCreateSuccessfulWithoutGroupSubAdmin() {
- $controller = $this->getController(false);
- $user = $this->getMockBuilder('\OC\User\User')
- ->disableOriginalConstructor()->getMock();
- $this->userSession
- ->expects($this->once())
- ->method('getUser')
- ->will($this->returnValue($user));
-
- $newUser = $this->getMockBuilder('\OC\User\User')
- ->disableOriginalConstructor()->getMock();
- $newUser
- ->method('getUID')
- ->will($this->returnValue('foo'));
- $newUser
- ->method('getHome')
- ->will($this->returnValue('/home/user'));
- $newUser
- ->method('getHome')
- ->will($this->returnValue('/home/user'));
- $newUser
- ->expects($this->once())
- ->method('getBackendClassName')
- ->will($this->returnValue('bar'));
- $user = $this->getMockBuilder('\OC\User\User')
- ->disableOriginalConstructor()->getMock();
- $subGroup1 = $this->getMockBuilder('\OCP\IGroup')
- ->disableOriginalConstructor()->getMock();
- $subGroup1
- ->expects($this->once())
- ->method('addUser')
- ->with($newUser);
- $subGroup2 = $this->getMockBuilder('\OCP\IGroup')
- ->disableOriginalConstructor()->getMock();
- $subGroup2
- ->expects($this->once())
- ->method('addUser')
- ->with($newUser);
-
- $this->userManager
- ->expects($this->once())
- ->method('createUser')
- ->will($this->returnValue($newUser));
- $this->groupManager
- ->expects($this->exactly(2))
- ->method('get')
- ->will($this->onConsecutiveCalls($subGroup1, $subGroup2));
- $this->groupManager
- ->expects($this->once())
- ->method('getUserGroupIds')
- ->with($user)
- ->will($this->onConsecutiveCalls(['SubGroup1', 'SubGroup2']));
-
- $subadmin = $this->getMockBuilder('\OC\SubAdmin')
- ->disableOriginalConstructor()
- ->getMock();
- $subadmin
- ->expects($this->at(0))
- ->method('getSubAdminsGroups')
- ->will($this->returnValue([$subGroup1, $subGroup2]));
- $subadmin
- ->expects($this->at(1))
- ->method('getSubAdminsGroups')
- ->will($this->returnValue([]));
- $this->groupManager
- ->expects($this->any())
- ->method('getSubAdmin')
- ->will($this->returnValue($subadmin));
-
- $expectedResponse = new DataResponse(
- array(
- 'name' => 'foo',
- 'groups' => ['SubGroup1', 'SubGroup2'],
- 'storageLocation' => '/home/user',
- 'backend' => 'bar',
- 'lastLogin' => 0,
- 'displayname' => null,
- 'quota' => null,
- 'subadmin' => [],
- 'email' => null,
- 'isRestoreDisabled' => false,
- 'isAvatarAvailable' => true,
- ),
- Http::STATUS_CREATED
- );
- $response = $controller->create('foo', 'password');
- $this->assertEquals($expectedResponse, $response);
- }
-
public function testCreateSuccessfulWithGroupAdmin() {
$controller = $this->getController(true);
@@ -1026,16 +938,12 @@ class UsersControllerTest extends \Test\TestCase {
public function testCreateSuccessfulWithGroupSubAdmin() {
$controller = $this->getController(false);
- $user = $this->getMockBuilder('\OC\User\User')
- ->disableOriginalConstructor()->getMock();
+ $user = $this->createMock(IUser::class);
$this->userSession
->expects($this->once())
->method('getUser')
->will($this->returnValue($user));
- $user = $this->getMockBuilder('\OC\User\User')
- ->disableOriginalConstructor()->getMock();
- $newUser = $this->getMockBuilder('\OC\User\User')
- ->disableOriginalConstructor()->getMock();
+ $newUser = $this->createMock(IUser::class);
$newUser
->method('getHome')
->will($this->returnValue('/home/user'));
@@ -1049,8 +957,7 @@ class UsersControllerTest extends \Test\TestCase {
->expects($this->once())
->method('getBackendClassName')
->will($this->returnValue('bar'));
- $subGroup1 = $this->getMockBuilder('\OCP\IGroup')
- ->disableOriginalConstructor()->getMock();
+ $subGroup1 = $this->createMock(IGroup::class);
$subGroup1
->expects($this->any())
->method('getGID')
@@ -1064,16 +971,6 @@ class UsersControllerTest extends \Test\TestCase {
->method('createUser')
->will($this->returnValue($newUser));
$this->groupManager
- ->expects($this->at(0))
- ->method('get')
- ->with('SubGroup1')
- ->will($this->returnValue($subGroup1));
- $this->groupManager
- ->expects($this->at(4))
- ->method('get')
- ->with('SubGroup1')
- ->will($this->returnValue($subGroup1));
- $this->groupManager
->expects($this->once())
->method('getUserGroupIds')
->with($user)
@@ -1084,21 +981,28 @@ class UsersControllerTest extends \Test\TestCase {
->with($newUser)
->will($this->onConsecutiveCalls(['SubGroup1']));
- $subadmin = $this->getMockBuilder('\OC\SubAdmin')
- ->disableOriginalConstructor()
- ->getMock();
- $subadmin->expects($this->at(1))
+ $subadmin = $this->createMock(\OC\SubAdmin::class);
+ $subadmin->expects($this->atLeastOnce())
->method('getSubAdminsGroups')
->with($user)
- ->will($this->returnValue([$subGroup1]));
- $subadmin->expects($this->at(2))
- ->method('getSubAdminsGroups')
- ->with($newUser)
- ->will($this->returnValue([]));
+ ->willReturnMap([
+ [$user, [$subGroup1]],
+ [$newUser, []],
+ ]);
+ $subadmin->expects($this->atLeastOnce())
+ ->method('isSubAdminofGroup')
+ ->willReturnMap([
+ [$user, $subGroup1, true],
+ ]);
$this->groupManager
->expects($this->any())
->method('getSubAdmin')
->will($this->returnValue($subadmin));
+ $this->groupManager->expects($this->atLeastOnce())
+ ->method('get')
+ ->willReturnMap([
+ ['SubGroup1', $subGroup1],
+ ]);
$expectedResponse = new DataResponse(
array(
@@ -1137,16 +1041,36 @@ class UsersControllerTest extends \Test\TestCase {
$this->assertEquals($expectedResponse, $response);
}
+ public function testCreateUnsuccessfulSubAdminNoGroup() {
+ $controller = $this->getController(false);
+ $user = $this->createMock(IUser::class);
+ $user->expects($this->any())
+ ->method('getUID')
+ ->will($this->returnValue('username'));
+ $this->userSession->expects($this->once())
+ ->method('getUser')
+ ->will($this->returnValue($user));
+
+ $this->userManager->expects($this->never())
+ ->method('createUser');
+
+ $expectedResponse = new DataResponse(
+ [
+ 'message' => 'No valid group selected'
+ ],
+ Http::STATUS_FORBIDDEN
+ );
+ $response = $controller->create('foo', 'password', []);
+ $this->assertEquals($expectedResponse, $response);
+ }
+
public function testCreateUnsuccessfulSubAdmin() {
$controller = $this->getController(false);
- $user = $this->getMockBuilder('\OC\User\User')
- ->disableOriginalConstructor()->getMock();
- $user
- ->expects($this->any())
+ $user = $this->createMock(IUser::class);
+ $user->expects($this->any())
->method('getUID')
->will($this->returnValue('username'));
- $this->userSession
- ->expects($this->once())
+ $this->userSession->expects($this->once())
->method('getUser')
->will($this->returnValue($user));
@@ -1154,29 +1078,24 @@ class UsersControllerTest extends \Test\TestCase {
->method('createUser')
->will($this->throwException(new \Exception()));
- $subgroup1 = $this->getMockBuilder('\OCP\IGroup')
- ->disableOriginalConstructor()
- ->getMock();
- $subgroup1->expects($this->once())
- ->method('getGID')
- ->will($this->returnValue('SubGroup1'));
- $subgroup2 = $this->getMockBuilder('\OCP\IGroup')
- ->disableOriginalConstructor()
- ->getMock();
- $subgroup2->expects($this->once())
- ->method('getGID')
- ->will($this->returnValue('SubGroup2'));
- $subadmin = $this->getMockBuilder('\OC\SubAdmin')
- ->disableOriginalConstructor()
- ->getMock();
- $subadmin->expects($this->once())
- ->method('getSubAdminsGroups')
- ->with($user)
- ->will($this->returnValue([$subgroup1, $subgroup2]));
- $this->groupManager
- ->expects($this->any())
+ $subgroup1 = $this->createMock(IGroup::class);
+ $subgroup2 = $this->createMock(IGroup::class);
+ $subadmin = $this->createMock(\OC\SubAdmin::class);
+ $subadmin->expects($this->atLeastOnce())
+ ->method('isSubAdminofGroup')
+ ->willReturnMap([
+ [$user, $subgroup1, true],
+ [$user, $subgroup2, true],
+ ]);
+ $this->groupManager->expects($this->any())
->method('getSubAdmin')
- ->will($this->returnValue($subadmin));
+ ->willReturn($subadmin);
+ $this->groupManager->expects($this->atLeastOnce())
+ ->method('get')
+ ->willReturnMap([
+ ['SubGroup1', $subgroup1],
+ ['SubGroup2', $subgroup2],
+ ]);
$expectedResponse = new DataResponse(
[
@@ -1184,7 +1103,7 @@ class UsersControllerTest extends \Test\TestCase {
],
Http::STATUS_FORBIDDEN
);
- $response = $controller->create('foo', 'password', array());
+ $response = $controller->create('foo', 'password', array('SubGroup1', 'SubGroup2'));
$this->assertEquals($expectedResponse, $response);
}
diff --git a/tests/lib/NavigationManagerTest.php b/tests/lib/NavigationManagerTest.php
index 96708786e39..64fec802eca 100644
--- a/tests/lib/NavigationManagerTest.php
+++ b/tests/lib/NavigationManagerTest.php
@@ -12,7 +12,15 @@
namespace Test;
+use OC\App\AppManager;
use OC\NavigationManager;
+use OCP\App\IAppManager;
+use OCP\IGroupManager;
+use OCP\IL10N;
+use OCP\IURLGenerator;
+use OCP\IUser;
+use OCP\IUserSession;
+use OCP\L10N\IFactory;
class NavigationManagerTest extends TestCase {
/** @var \OC\NavigationManager */
@@ -157,4 +165,62 @@ class NavigationManagerTest extends TestCase {
$this->assertEmpty($this->navigationManager->getAll(), 'Expected no navigation entry exists after clear()');
$this->assertEquals(0, $testAddClosureNumberOfCalls, 'Expected that the closure is not called by getAll()');
}
+
+ /**
+ * @dataProvider providesNavigationConfig
+ */
+ public function testWithAppManager($expected, $config, $isAdmin = false) {
+
+ $appManager = $this->createMock(AppManager::class);
+ $urlGenerator = $this->createMock(IURLGenerator::class);
+ $l10nFac = $this->createMock(IFactory::class);
+ $userSession = $this->createMock(IUserSession::class);
+ $groupManager = $this->createMock(IGroupManager::class);
+ $l = $this->createMock(IL10N::class);
+ $l->expects($this->any())->method('t')->willReturnCallback(function($text, $parameters = []) {
+ return vsprintf($text, $parameters);
+ });
+
+ $appManager->expects($this->once())->method('getInstalledApps')->willReturn(['test']);
+ $appManager->expects($this->once())->method('getAppInfo')->with('test')->willReturn($config);
+ $l10nFac->expects($this->exactly(count($expected)))->method('get')->with('test')->willReturn($l);
+ $urlGenerator->expects($this->any())->method('imagePath')->willReturnCallback(function($appName, $file) {
+ return "/apps/$appName/img/$file";
+ });
+ $urlGenerator->expects($this->exactly(count($expected)))->method('linkToRoute')->willReturnCallback(function($route) {
+ return "/apps/test/";
+ });
+ $user = $this->createMock(IUser::class);
+ $user->expects($this->any())->method('getUID')->willReturn('user001');
+ $userSession->expects($this->any())->method('getUser')->willReturn($user);
+ $groupManager->expects($this->any())->method('isAdmin')->willReturn($isAdmin);
+
+ $navigationManager = new NavigationManager($appManager, $urlGenerator, $l10nFac, $userSession, $groupManager);
+
+ $entries = $navigationManager->getAll();
+ $this->assertEquals($expected, $entries);
+ }
+
+ public function providesNavigationConfig() {
+ return [
+ 'minimalistic' => [[[
+ 'id' => 'test',
+ 'order' => 100,
+ 'href' => '/apps/test/',
+ 'icon' => '/apps/test/img/app.svg',
+ 'name' => 'Test',
+ 'active' => false
+ ]], ['navigation' => ['route' => 'test.page.index', 'name' => 'Test']]],
+ 'no admin' => [[[
+ 'id' => 'test',
+ 'order' => 100,
+ 'href' => '/apps/test/',
+ 'icon' => '/apps/test/img/app.svg',
+ 'name' => 'Test',
+ 'active' => false
+ ]], ['navigation' => ['@attributes' => ['role' => 'admin'], 'route' => 'test.page.index', 'name' => 'Test']], true],
+ 'no name' => [[], ['navigation' => ['@attributes' => ['role' => 'admin'], 'route' => 'test.page.index']], true],
+ 'admin' => [[], ['navigation' => ['@attributes' => ['role' => 'admin'], 'route' => 'test.page.index', 'name' => 'Test']]]
+ ];
+ }
}
diff --git a/tests/lib/Repair/AvatarPermissionsTest.php b/tests/lib/Repair/AvatarPermissionsTest.php
deleted file mode 100644
index e3f582dc512..00000000000
--- a/tests/lib/Repair/AvatarPermissionsTest.php
+++ /dev/null
@@ -1,189 +0,0 @@
-<?php
-/**
- * @author Roeland Jago Douma <rullzer@owncloud.com>
- *
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-namespace Test\Repair;
-
-/**
- * Test for fixing the userRoot and avatar permissions
- *
- * @group DB
- *
- * @see \OC\Repair\AvatarPermissionsTest
- */
-class AvatarPermissionsTest extends \Test\TestCase {
-
- /** @var \OC\Repair\AvatarPermissions */
- protected $repair;
-
- /** @var \OCP\IDBConnection */
- protected $connection;
-
- protected function setUp() {
- parent::setUp();
-
- $this->connection = \OC::$server->getDatabaseConnection();
- $this->repair = new \OC\Repair\AvatarPermissions($this->connection);
- $this->cleanUpTables();
- }
-
- protected function tearDown() {
- $this->cleanUpTables();
-
- parent::tearDown();
- }
-
- protected function cleanUpTables() {
- $qb = $this->connection->getQueryBuilder();
- $qb->delete('filecache')->execute();
- $qb->delete('storages')->execute();
- }
-
- public function dataFixUserRootPermissions() {
- return [
- ['home::user', '', 0, 23],
- ['home::user', 'foo', 0, 0],
- ['home::user', 'avatar.jpg', 0, 0],
- ['ABC::user', '', 0, 0],
- ['ABC::user', 'foo', 0, 0],
- ];
- }
-
- /**
- * @dataProvider dataFixUserRootPermissions
- *
- * @param string $storageId
- * @param string $path
- * @param int $permissionsBefore
- * @param int $permissionsAfter
- */
- public function testFixUserRootPermissions($storageId, $path, $permissionsBefore, $permissionsAfter) {
- $userStorage = $this->addStorage($storageId);
- $userHome = $this->addFileCacheEntry($userStorage, $path, $permissionsBefore);
-
- $this->invokePrivate($this->repair, 'fixUserRootPermissions', []);
-
- $this->verifyPermissions($userHome, $permissionsAfter);
- }
-
- public function dataFixAvatarPermissions() {
- return [
- ['home::user', '', 0, 0],
- ['home::user', 'avatar.jpg', 0, 27],
- ['home::user', 'avatar.png', 0, 27],
- ['home::user', 'avatar.32.png', 0, 27],
- ['home::user', 'mine.txt', 0, 0],
- ['ABC::user', '', 0, 0],
- ['ABC::user', 'avatar.jpg', 0, 0],
- ['ABC::user', 'avatar.png', 0, 0],
- ['ABC::user', 'avatar.32.png', 0, 0],
- ['ABC::user', 'mine.txt', 0, 0],
- ];
- }
-
- /**
- * @dataProvider dataFixAvatarPermissions
- *
- * @param string $storageId
- * @param string $path
- * @param int $permissionsBefore
- * @param int $permissionsAfter
- */
- public function testFixAvatarPermissions($storageId, $path, $permissionsBefore, $permissionsAfter) {
- $userStorage = $this->addStorage($storageId);
- $userHome = $this->addFileCacheEntry($userStorage, $path, $permissionsBefore);
-
- $this->invokePrivate($this->repair, 'fixAvatarPermissions', []);
-
- $this->verifyPermissions($userHome, $permissionsAfter);
- }
-
- /**
- * Add a new storage
- *
- * @param string $id
- * @return int The numeric id
- */
- protected function addStorage($id) {
- $qb = $this->connection->getQueryBuilder();
-
- $qb->insert('storages')
- ->values([
- 'id' => $qb->createNamedParameter($id)
- ]);
-
- $qb->execute();
-
- return $qb->getLastInsertId();
- }
-
- /**
- * Add a filecache entry
- *
- * @param int $storage
- * @param string $path
- * @param int $permissions
- *
- * @return int The fileid
- */
- protected function addFileCacheEntry($storage, $path, $permissions) {
- $qb = $this->connection->getQueryBuilder();
-
- $qb->insert('filecache')
- ->values([
- 'path' => $qb->createNamedParameter($path),
- 'path_hash' => $qb->createNamedParameter(md5($path)),
- 'parent' => $qb->createNamedParameter(42),
- 'mimetype' => $qb->createNamedParameter(23),
- 'mimepart' => $qb->createNamedParameter(32),
- 'size' => $qb->createNamedParameter(16),
- 'mtime' => $qb->createNamedParameter(1),
- 'storage_mtime' => $qb->createNamedParameter(2),
- 'encrypted' => $qb->createNamedParameter(0),
- 'unencrypted_size' => $qb->createNamedParameter(0),
- 'storage' => $qb->createNamedParameter($storage),
- 'permissions' => $qb->createNamedParameter($permissions),
- ]);
-
- $qb->execute();
-
- return $qb->getLastInsertId();
- }
-
- /**
- * @param int $fileId
- * @param int $permissions
- */
- protected function verifyPermissions($fileId, $permissions) {
- $qb = $this->connection->getQueryBuilder();
-
- $qb->select('permissions')
- ->from('filecache')
- ->where($qb->expr()->eq('fileid', $qb->createNamedParameter($fileId)));
-
- $cursor = $qb->execute();
-
- $data = $cursor->fetch();
- $cursor->closeCursor();
-
- $this->assertSame($permissions, (int)$data['permissions']);
- }
-
-
-}
diff --git a/tests/lib/SetupTest.php b/tests/lib/SetupTest.php
index a8389eaaf56..acbce938a25 100644
--- a/tests/lib/SetupTest.php
+++ b/tests/lib/SetupTest.php
@@ -55,16 +55,12 @@ class SetupTest extends \Test\TestCase {
));
$this->setupClass
->expects($this->once())
- ->method('class_exists')
- ->will($this->returnValue(true));
- $this->setupClass
- ->expects($this->once())
->method('is_callable')
->will($this->returnValue(false));
$this->setupClass
->expects($this->any())
->method('getAvailableDbDriversForPdo')
- ->will($this->returnValue([]));
+ ->will($this->returnValue(['sqlite']));
$result = $this->setupClass->getSupportedDatabases();
$expectedResult = array(
'sqlite' => 'SQLite'
@@ -82,10 +78,6 @@ class SetupTest extends \Test\TestCase {
));
$this->setupClass
->expects($this->any())
- ->method('class_exists')
- ->will($this->returnValue(false));
- $this->setupClass
- ->expects($this->any())
->method('is_callable')
->will($this->returnValue(false));
$this->setupClass
@@ -106,16 +98,12 @@ class SetupTest extends \Test\TestCase {
));
$this->setupClass
->expects($this->any())
- ->method('class_exists')
- ->will($this->returnValue(true));
- $this->setupClass
- ->expects($this->any())
->method('is_callable')
->will($this->returnValue(true));
$this->setupClass
->expects($this->any())
->method('getAvailableDbDriversForPdo')
- ->will($this->returnValue(['mysql', 'pgsql']));
+ ->will($this->returnValue(['sqlite', 'mysql', 'pgsql']));
$result = $this->setupClass->getSupportedDatabases();
$expectedResult = array(
'sqlite' => 'SQLite',