aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files/ajax/list.php3
-rw-r--r--apps/files/appinfo/info.xml3
-rw-r--r--apps/files/css/files.css16
-rw-r--r--apps/files/l10n/az.php1
-rw-r--r--apps/files/l10n/fr.php4
-rw-r--r--apps/files/l10n/ro.php3
-rw-r--r--apps/files/l10n/zh_TW.php2
-rw-r--r--apps/files/lib/helper.php2
-rw-r--r--apps/files_encryption/ajax/adminrecovery.php48
-rw-r--r--apps/files_encryption/ajax/changeRecoveryPassword.php26
-rw-r--r--apps/files_encryption/ajax/userrecovery.php8
-rw-r--r--apps/files_encryption/appinfo/info.xml9
-rw-r--r--apps/files_encryption/js/settings-admin.js43
-rw-r--r--apps/files_encryption/js/settings-personal.js21
-rw-r--r--apps/files_encryption/l10n/ar.php10
-rw-r--r--apps/files_encryption/l10n/ast.php10
-rw-r--r--apps/files_encryption/l10n/az.php4
-rw-r--r--apps/files_encryption/l10n/bg_BG.php10
-rw-r--r--apps/files_encryption/l10n/bn_BD.php1
-rw-r--r--apps/files_encryption/l10n/ca.php10
-rw-r--r--apps/files_encryption/l10n/cs_CZ.php16
-rw-r--r--apps/files_encryption/l10n/da.php16
-rw-r--r--apps/files_encryption/l10n/de.php26
-rw-r--r--apps/files_encryption/l10n/de_CH.php10
-rw-r--r--apps/files_encryption/l10n/de_DE.php36
-rw-r--r--apps/files_encryption/l10n/el.php10
-rw-r--r--apps/files_encryption/l10n/en_GB.php16
-rw-r--r--apps/files_encryption/l10n/eo.php1
-rw-r--r--apps/files_encryption/l10n/es.php10
-rw-r--r--apps/files_encryption/l10n/es_AR.php10
-rw-r--r--apps/files_encryption/l10n/es_CL.php5
-rw-r--r--apps/files_encryption/l10n/es_MX.php10
-rw-r--r--apps/files_encryption/l10n/et_EE.php10
-rw-r--r--apps/files_encryption/l10n/eu.php10
-rw-r--r--apps/files_encryption/l10n/fa.php10
-rw-r--r--apps/files_encryption/l10n/fi_FI.php6
-rw-r--r--apps/files_encryption/l10n/fr.php10
-rw-r--r--apps/files_encryption/l10n/gl.php10
-rw-r--r--apps/files_encryption/l10n/he.php1
-rw-r--r--apps/files_encryption/l10n/hr.php10
-rw-r--r--apps/files_encryption/l10n/hu_HU.php10
-rw-r--r--apps/files_encryption/l10n/ia.php5
-rw-r--r--apps/files_encryption/l10n/id.php10
-rw-r--r--apps/files_encryption/l10n/it.php10
-rw-r--r--apps/files_encryption/l10n/ja.php10
-rw-r--r--apps/files_encryption/l10n/ka_GE.php1
-rw-r--r--apps/files_encryption/l10n/km.php1
-rw-r--r--apps/files_encryption/l10n/ko.php10
-rw-r--r--apps/files_encryption/l10n/lb.php2
-rw-r--r--apps/files_encryption/l10n/lt_LT.php10
-rw-r--r--apps/files_encryption/l10n/lv.php1
-rw-r--r--apps/files_encryption/l10n/mk.php1
-rw-r--r--apps/files_encryption/l10n/nb_NO.php10
-rw-r--r--apps/files_encryption/l10n/nl.php16
-rw-r--r--apps/files_encryption/l10n/nn_NO.php1
-rw-r--r--apps/files_encryption/l10n/pa.php2
-rw-r--r--apps/files_encryption/l10n/pl.php10
-rw-r--r--apps/files_encryption/l10n/pt_BR.php12
-rw-r--r--apps/files_encryption/l10n/pt_PT.php10
-rw-r--r--apps/files_encryption/l10n/ro.php10
-rw-r--r--apps/files_encryption/l10n/ru.php10
-rw-r--r--apps/files_encryption/l10n/sk_SK.php10
-rw-r--r--apps/files_encryption/l10n/sl.php10
-rw-r--r--apps/files_encryption/l10n/sq.php1
-rw-r--r--apps/files_encryption/l10n/sv.php10
-rw-r--r--apps/files_encryption/l10n/th_TH.php1
-rw-r--r--apps/files_encryption/l10n/tr.php16
-rw-r--r--apps/files_encryption/l10n/ug.php1
-rw-r--r--apps/files_encryption/l10n/uk.php1
-rw-r--r--apps/files_encryption/l10n/ur_PK.php5
-rw-r--r--apps/files_encryption/l10n/vi.php10
-rw-r--r--apps/files_encryption/l10n/zh_CN.php10
-rw-r--r--apps/files_encryption/l10n/zh_HK.php1
-rw-r--r--apps/files_encryption/l10n/zh_TW.php10
-rw-r--r--apps/files_encryption/templates/settings-admin.php15
-rw-r--r--apps/files_encryption/templates/settings-personal.php5
-rw-r--r--apps/files_external/appinfo/info.xml9
-rw-r--r--apps/files_external/appinfo/version2
-rw-r--r--apps/files_external/lib/amazons3.php257
-rwxr-xr-xapps/files_external/lib/config.php45
-rw-r--r--apps/files_external/lib/etagpropagator.php126
-rw-r--r--apps/files_external/tests/etagpropagator.php328
-rw-r--r--apps/files_external/tests/mountconfig.php134
-rw-r--r--apps/files_sharing/appinfo/info.xml6
-rw-r--r--apps/files_sharing/l10n/fr.php6
-rw-r--r--apps/files_sharing/l10n/sl.php1
-rw-r--r--apps/files_trashbin/appinfo/info.xml16
-rw-r--r--apps/files_trashbin/lib/trashbin.php2
-rw-r--r--apps/files_versions/appinfo/info.xml21
-rw-r--r--apps/user_ldap/appinfo/info.xml8
-rw-r--r--apps/user_ldap/group_ldap.php4
-rw-r--r--apps/user_ldap/l10n/da.php6
-rw-r--r--apps/user_ldap/lib/access.php37
-rw-r--r--apps/user_ldap/lib/ildapwrapper.php2
-rw-r--r--apps/user_ldap/templates/part.settingcontrols.php2
-rw-r--r--apps/user_ldap/templates/part.wizard-server.php2
-rw-r--r--apps/user_ldap/templates/settings.php2
-rwxr-xr-xconfig/config.sample.php905
-rw-r--r--core/css/apps.css2
-rw-r--r--core/l10n/da.php2
-rw-r--r--core/l10n/fr.php98
-rw-r--r--core/l10n/pt_PT.php3
-rw-r--r--core/l10n/sl.php15
-rw-r--r--core/l10n/zh_TW.php24
-rw-r--r--l10n/templates/core.pot2
-rw-r--r--l10n/templates/files.pot8
-rw-r--r--l10n/templates/files_encryption.pot80
-rw-r--r--l10n/templates/files_external.pot12
-rw-r--r--l10n/templates/files_sharing.pot2
-rw-r--r--l10n/templates/files_trashbin.pot2
-rw-r--r--l10n/templates/files_versions.pot2
-rw-r--r--l10n/templates/lib.pot16
-rw-r--r--l10n/templates/private.pot16
-rw-r--r--l10n/templates/settings.pot10
-rw-r--r--l10n/templates/user_ldap.pot2
-rw-r--r--l10n/templates/user_webdavauth.pot2
-rw-r--r--lib/l10n/af_ZA.php1
-rw-r--r--lib/l10n/fr.php14
-rw-r--r--lib/l10n/zh_TW.php21
-rw-r--r--lib/private/allconfig.php9
-rw-r--r--lib/private/app.php17
-rw-r--r--lib/private/files/filesystem.php5
-rw-r--r--lib/private/files/storage/common.php6
-rw-r--r--lib/private/group/database.php2
-rw-r--r--lib/private/largefilehelper.php3
-rw-r--r--lib/private/preview/txt.php2
-rw-r--r--lib/private/templatelayout.php11
-rw-r--r--lib/public/iconfig.php7
-rw-r--r--settings/js/users/users.js9
-rw-r--r--settings/l10n/da.php4
-rw-r--r--settings/l10n/fr.php30
-rw-r--r--tests/lib/files/storage/storage.php12
132 files changed, 2207 insertions, 890 deletions
diff --git a/apps/files/ajax/list.php b/apps/files/ajax/list.php
index 16e48a2c2af..4abf5ad7607 100644
--- a/apps/files/ajax/list.php
+++ b/apps/files/ajax/list.php
@@ -32,6 +32,7 @@ try {
OCP\JSON::success(array('data' => $data));
} catch (\OCP\Files\StorageNotAvailableException $e) {
+ \OCP\Util::logException('files', $e);
OCP\JSON::error(array(
'data' => array(
'exception' => '\OCP\Files\StorageNotAvailableException',
@@ -39,6 +40,7 @@ try {
)
));
} catch (\OCP\Files\StorageInvalidException $e) {
+ \OCP\Util::logException('files', $e);
OCP\JSON::error(array(
'data' => array(
'exception' => '\OCP\Files\StorageInvalidException',
@@ -46,6 +48,7 @@ try {
)
));
} catch (\Exception $e) {
+ \OCP\Util::logException('files', $e);
OCP\JSON::error(array(
'data' => array(
'exception' => '\Exception',
diff --git a/apps/files/appinfo/info.xml b/apps/files/appinfo/info.xml
index 7f222c0cc7d..8586c6794f2 100644
--- a/apps/files/appinfo/info.xml
+++ b/apps/files/appinfo/info.xml
@@ -16,4 +16,7 @@
<files>appinfo/remote.php</files>
<webdav>appinfo/remote.php</webdav>
</remote>
+ <documentation>
+ <user>user-files</user>
+ </documentation>
</info>
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index 35c5fa8926e..00b1ded9b30 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -153,19 +153,23 @@ table th .columntitle.name {
margin-left: 50px;
}
-.sort-indicator.hidden { visibility: hidden; }
table th .sort-indicator {
width: 10px;
height: 8px;
- margin-left: 10px;
+ margin-left: 5px;
display: inline-block;
+ vertical-align: text-bottom;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
+ filter: alpha(opacity=30);
+ opacity: .3;
+}
+.sort-indicator.hidden {
+ visibility: hidden;
}
table th:hover .sort-indicator.hidden {
- width: 10px;
- height: 8px;
- margin-left: 10px;
visibility: visible;
}
+
table th, table td { border-bottom:1px solid #ddd; text-align:left; font-weight:normal; }
table td {
padding: 0 15px;
@@ -492,7 +496,7 @@ a.action>img {
.summary td {
padding-top: 20px;
- padding-bottom: 250px;
+ padding-bottom: 150px;
border-bottom: none;
}
.summary .info {
diff --git a/apps/files/l10n/az.php b/apps/files/l10n/az.php
index 158dff2fdbb..05e99c11543 100644
--- a/apps/files/l10n/az.php
+++ b/apps/files/l10n/az.php
@@ -47,6 +47,7 @@ $TRANSLATIONS = array(
"Error fetching URL" => "URL-in gətirilməsində səhv baş verdi",
"Share" => "Yayımla",
"Delete" => "Sil",
+"Rename" => "Adı dəyiş",
"Error" => "Səhv",
"Name" => "Ad",
"Size" => "Həcm",
diff --git a/apps/files/l10n/fr.php b/apps/files/l10n/fr.php
index 31e39b419b5..e4f7d93aeed 100644
--- a/apps/files/l10n/fr.php
+++ b/apps/files/l10n/fr.php
@@ -85,12 +85,12 @@ $TRANSLATIONS = array(
"Text file" => "Fichier texte",
"New folder" => "Nouveau dossier",
"Folder" => "Dossier",
-"From link" => "Depuis le lien",
+"From link" => "Depuis un lien",
"Nothing in here. Upload something!" => "Il n'y a rien ici ! Envoyez donc quelque chose :)",
"Download" => "Télécharger",
"Upload too large" => "Téléversement trop volumineux",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Les fichiers que vous essayez d'envoyer dépassent la taille maximale permise par ce serveur.",
"Files are being scanned, please wait." => "Les fichiers sont en cours d'analyse, veuillez patienter.",
-"Currently scanning" => "Analyse en cours de traitement"
+"Currently scanning" => "Analyse en cours"
);
$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/apps/files/l10n/ro.php b/apps/files/l10n/ro.php
index d94a4a772a6..69c97508dca 100644
--- a/apps/files/l10n/ro.php
+++ b/apps/files/l10n/ro.php
@@ -5,6 +5,7 @@ $TRANSLATIONS = array(
"Unknown error" => "Eroare necunoscută",
"Could not move %s - File with this name already exists" => "%s nu se poate muta - Fișierul cu acest nume există deja ",
"Could not move %s" => "Nu se poate muta %s",
+"Permission denied" => "Accesul interzis",
"File name cannot be empty." => "Numele fișierului nu poate rămâne gol.",
"\"%s\" is an invalid file name." => "\"%s\" este un nume de fișier nevalid",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nume nevalide, '\\', '/', '<', '>', ':', '\"', '|', '?' și '*' nu sunt permise.",
@@ -12,6 +13,7 @@ $TRANSLATIONS = array(
"The name %s is already used in the folder %s. Please choose a different name." => "Numele %s este deja este folosit în dosarul %s. Te rog alege alt nume.",
"Not a valid source" => "Sursă nevalidă",
"Server is not allowed to open URLs, please check the server configuration" => "Serverului nu ii este permis sa deschida URL-ul , verificati setarile serverului",
+"The file exceeds your quota by %s" => "Fisierul depaseste limita cu %s",
"Error while downloading %s to %s" => "Eroare la descarcarea %s in %s",
"Error when creating the file" => "Eroare la crearea fisierului",
"Folder name cannot be empty." => "Numele folderului nu poate fi liber.",
@@ -69,6 +71,7 @@ $TRANSLATIONS = array(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "Cheie privată nevalidă pentru aplicația Încriptare. Te rog, actualizează-ți parola cheii private folosind setările personale pentru a reaccesa fișierele tale încriptate.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "criptarea a fost disactivata dar fisierele sant inca criptate.va rog intrati in setarile personale pentru a decripta fisierele",
"{dirs} and {files}" => "{dirs} și {files}",
+"%s could not be renamed as it has been deleted" => "%s nu a putut fi redenumit deoarece a fost sters",
"%s could not be renamed" => "%s nu a putut fi redenumit",
"Upload (max. %s)" => "Încarcă (max. %s)",
"File handling" => "Manipulare fișiere",
diff --git a/apps/files/l10n/zh_TW.php b/apps/files/l10n/zh_TW.php
index 67084f28a55..394283b9621 100644
--- a/apps/files/l10n/zh_TW.php
+++ b/apps/files/l10n/zh_TW.php
@@ -5,6 +5,7 @@ $TRANSLATIONS = array(
"Unknown error" => "未知的錯誤",
"Could not move %s - File with this name already exists" => "無法移動 %s ,同名的檔案已經存在",
"Could not move %s" => "無法移動 %s",
+"Permission denied" => "存取被拒",
"File name cannot be empty." => "檔名不能為空",
"\"%s\" is an invalid file name." => "%s 是不合法的檔名。",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "檔名不合法,不允許 \\ / < > : \" | ? * 字元",
@@ -70,6 +71,7 @@ $TRANSLATIONS = array(
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." => "無效的檔案加密私鑰,請在個人設定中更新您的私鑰密語以存取加密的檔案。",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "加密已經被停用,但是您的舊檔案還是處於已加密的狀態,請前往個人設定以解密這些檔案。",
"{dirs} and {files}" => "{dirs} 和 {files}",
+"%s could not be renamed as it has been deleted" => "%s 已經被刪除了所以無法重新命名",
"%s could not be renamed" => "無法重新命名 %s",
"Upload (max. %s)" => "上傳(至多 %s)",
"File handling" => "檔案處理",
diff --git a/apps/files/lib/helper.php b/apps/files/lib/helper.php
index 2a5233b6542..e4bfcb4e9ee 100644
--- a/apps/files/lib/helper.php
+++ b/apps/files/lib/helper.php
@@ -93,7 +93,7 @@ class Helper
public static function compareSize($a, $b) {
$aSize = $a->getSize();
$bSize = $b->getSize();
- return $aSize - $bSize;
+ return ($aSize < $bSize) ? -1 : 1;
}
/**
diff --git a/apps/files_encryption/ajax/adminrecovery.php b/apps/files_encryption/ajax/adminrecovery.php
index 070ca6f667e..684fd51ae13 100644
--- a/apps/files_encryption/ajax/adminrecovery.php
+++ b/apps/files_encryption/ajax/adminrecovery.php
@@ -16,8 +16,28 @@ use OCA\Encryption;
$l = \OC::$server->getL10N('files_encryption');
$return = false;
-// Enable recoveryAdmin
+$errorMessage = $l->t("Unknown error");
+
+//check if both passwords are the same
+if (empty($_POST['recoveryPassword'])) {
+ $errorMessage = $l->t('Missing recovery key password');
+ \OCP\JSON::error(array('data' => array('message' => $errorMessage)));
+ exit();
+}
+if (empty($_POST['confirmPassword'])) {
+ $errorMessage = $l->t('Please repeat the recovery key password');
+ \OCP\JSON::error(array('data' => array('message' => $errorMessage)));
+ exit();
+}
+
+if ($_POST['recoveryPassword'] !== $_POST['confirmPassword']) {
+ $errorMessage = $l->t('Repeated recovery key password does not match the provided recovery key password');
+ \OCP\JSON::error(array('data' => array('message' => $errorMessage)));
+ exit();
+}
+
+// Enable recoveryAdmin
$recoveryKeyId = \OC::$server->getAppConfig()->getValue('files_encryption', 'recoveryKeyId');
if (isset($_POST['adminEnableRecovery']) && $_POST['adminEnableRecovery'] === '1') {
@@ -26,14 +46,9 @@ if (isset($_POST['adminEnableRecovery']) && $_POST['adminEnableRecovery'] === '1
// Return success or failure
if ($return) {
- \OCP\JSON::success(array('data' => array('message' => $l->t('Recovery key successfully enabled'))));
+ $successMessage = $l->t('Recovery key successfully enabled');
} else {
- \OCP\JSON::error(array(
- 'data' => array(
- 'message' => $l->t(
- 'Could not enable recovery key. Please check your recovery key password!')
- )
- ));
+ $errorMessage = $l->t('Could not disable recovery key. Please check your recovery key password!');
}
// Disable recoveryAdmin
@@ -43,17 +58,16 @@ if (isset($_POST['adminEnableRecovery']) && $_POST['adminEnableRecovery'] === '1
) {
$return = \OCA\Encryption\Helper::adminDisableRecovery($_POST['recoveryPassword']);
- // Return success or failure
if ($return) {
- \OCP\JSON::success(array('data' => array('message' => $l->t('Recovery key successfully disabled'))));
+ $successMessage = $l->t('Recovery key successfully disabled');
} else {
- \OCP\JSON::error(array(
- 'data' => array(
- 'message' => $l->t(
- 'Could not disable recovery key. Please check your recovery key password!')
- )
- ));
+ $errorMessage = $l->t('Could not disable recovery key. Please check your recovery key password!');
}
}
-
+// Return success or failure
+if ($return) {
+ \OCP\JSON::success(array('data' => array('message' => $successMessage)));
+} else {
+ \OCP\JSON::error(array('data' => array('message' => $errorMessage)));
+}
diff --git a/apps/files_encryption/ajax/changeRecoveryPassword.php b/apps/files_encryption/ajax/changeRecoveryPassword.php
index 71fbe333fe0..bf647f2c8fa 100644
--- a/apps/files_encryption/ajax/changeRecoveryPassword.php
+++ b/apps/files_encryption/ajax/changeRecoveryPassword.php
@@ -21,6 +21,32 @@ $return = false;
$oldPassword = $_POST['oldPassword'];
$newPassword = $_POST['newPassword'];
+$confirmPassword = $_POST['confirmPassword'];
+
+//check if both passwords are the same
+if (empty($_POST['oldPassword'])) {
+ $errorMessage = $l->t('Please provide the old recovery password');
+ \OCP\JSON::error(array('data' => array('message' => $errorMessage)));
+ exit();
+}
+
+if (empty($_POST['newPassword'])) {
+ $errorMessage = $l->t('Please provide a new recovery password');
+ \OCP\JSON::error(array('data' => array('message' => $errorMessage)));
+ exit();
+}
+
+if (empty($_POST['confirmPassword'])) {
+ $errorMessage = $l->t('Please repeat the new recovery password');
+ \OCP\JSON::error(array('data' => array('message' => $errorMessage)));
+ exit();
+}
+
+if ($_POST['newPassword'] !== $_POST['confirmPassword']) {
+ $errorMessage = $l->t('Repeated recovery key password does not match the provided recovery key password');
+ \OCP\JSON::error(array('data' => array('message' => $errorMessage)));
+ exit();
+}
$view = new \OC\Files\View('/');
$util = new \OCA\Encryption\Util(new \OC\Files\View('/'), \OCP\User::getUser());
diff --git a/apps/files_encryption/ajax/userrecovery.php b/apps/files_encryption/ajax/userrecovery.php
index 0f3b973d69a..a5b89fa7233 100644
--- a/apps/files_encryption/ajax/userrecovery.php
+++ b/apps/files_encryption/ajax/userrecovery.php
@@ -13,6 +13,8 @@ use OCA\Encryption;
\OCP\JSON::checkAppEnabled('files_encryption');
\OCP\JSON::callCheck();
+$l = \OC::$server->getL10N('files_encryption');
+
if (
isset($_POST['userEnableRecovery'])
&& (0 == $_POST['userEnableRecovery'] || '1' === $_POST['userEnableRecovery'])
@@ -38,4 +40,8 @@ if (
}
// Return success or failure
-($return) ? \OCP\JSON::success() : \OCP\JSON::error();
+if ($return) {
+ \OCP\JSON::success(array('data' => array('message' => $l->t('File recovery settings updated'))));
+} else {
+ \OCP\JSON::error(array('data' => array('message' => $l->t('Could not update file recovery'))));
+}
diff --git a/apps/files_encryption/appinfo/info.xml b/apps/files_encryption/appinfo/info.xml
index 2208cc73483..6fcef693bed 100644
--- a/apps/files_encryption/appinfo/info.xml
+++ b/apps/files_encryption/appinfo/info.xml
@@ -2,14 +2,17 @@
<info>
<id>files_encryption</id>
<name>Server-side Encryption</name>
- <description>This app encrypts and decrypts your data on the server. This means that a malicious administrator could intercept your data or encryption keys. The main purpose of server-side encryption is to encrypt files stored on externally mounted storages. The administrator of the external storage will not be able to access your encryption keys or your unencrypted data. Before you activate the app, please read up on encryption in the User and Administrator Manual</description>
+ <description>
+ This application encrypts all files accessed by ownCloud at rest, wherever they are stored. As an example, with this application enabled, external cloud based Amazon S3 storage will be encrypted, protecting this data on storage outside of the control of the Admin. When this application is enabled for the first time, all files are encrypted as users log in and are prompted for their password. The recommended recovery key option enables recovery of files in case the key is lost.
+ Note that this app encrypts all files that are touched by ownCloud, so external storage providers and applications such as SharePoint will see new files encrypted when they are accessed. Encryption is based on AES 128 or 256 bit keys. More information is available in the Encryption documentation
+ </description>
<licence>AGPL</licence>
<author>Sam Tuke, Bjoern Schiessle, Florin Peter</author>
<requiremin>4</requiremin>
<shipped>true</shipped>
<documentation>
- <user>http://doc.owncloud.org/server/7.0/user_manual/files/encryption.html</user>
- <admin>http://doc.owncloud.org/server/7.0/admin_manual/configuration/configuration_encryption.html</admin>
+ <user>user-encryption</user>
+ <admin>admin-encryption</admin>
</documentation>
<rememberlogin>false</rememberlogin>
<types>
diff --git a/apps/files_encryption/js/settings-admin.js b/apps/files_encryption/js/settings-admin.js
index 4c6b1bac2f7..2242c1f7124 100644
--- a/apps/files_encryption/js/settings-admin.js
+++ b/apps/files_encryption/js/settings-admin.js
@@ -9,32 +9,21 @@
$(document).ready(function(){
- $('input:password[name="encryptionRecoveryPassword"]').keyup(function(event) {
- var recoveryPassword = $( '#encryptionRecoveryPassword' ).val();
- var recoveryPasswordRepeated = $( '#repeatEncryptionRecoveryPassword' ).val();
- var checkedButton = $('input:radio[name="adminEnableRecovery"]:checked').val();
- var uncheckedValue = (1+parseInt(checkedButton)) % 2;
- if (recoveryPassword !== '' && recoveryPassword === recoveryPasswordRepeated) {
- $('input:radio[name="adminEnableRecovery"][value="'+uncheckedValue.toString()+'"]').removeAttr("disabled");
- } else {
- $('input:radio[name="adminEnableRecovery"][value="'+uncheckedValue.toString()+'"]').attr("disabled", "true");
- }
- });
-
$( 'input:radio[name="adminEnableRecovery"]' ).change(
function() {
var recoveryStatus = $( this ).val();
var oldStatus = (1+parseInt(recoveryStatus)) % 2;
var recoveryPassword = $( '#encryptionRecoveryPassword' ).val();
+ var confirmPassword = $( '#repeatEncryptionRecoveryPassword' ).val();
+ OC.msg.startSaving('#encryptionSetRecoveryKey .msg');
$.post(
OC.filePath( 'files_encryption', 'ajax', 'adminrecovery.php' )
- , { adminEnableRecovery: recoveryStatus, recoveryPassword: recoveryPassword }
+ , { adminEnableRecovery: recoveryStatus, recoveryPassword: recoveryPassword, confirmPassword: confirmPassword }
, function( result ) {
+ OC.msg.finishedSaving('#encryptionSetRecoveryKey .msg', result);
if (result.status === "error") {
- OC.Notification.show(t('admin', result.data.message));
$('input:radio[name="adminEnableRecovery"][value="'+oldStatus.toString()+'"]').attr("checked", "true");
} else {
- OC.Notification.hide();
if (recoveryStatus === "0") {
$('p[name="changeRecoveryPasswordBlock"]').addClass("hidden");
} else {
@@ -49,33 +38,17 @@ $(document).ready(function(){
// change recovery password
- $('input:password[name="changeRecoveryPassword"]').keyup(function(event) {
- var oldRecoveryPassword = $('#oldEncryptionRecoveryPassword').val();
- var newRecoveryPassword = $('#newEncryptionRecoveryPassword').val();
- var newRecoveryPasswordRepeated = $('#repeatedNewEncryptionRecoveryPassword').val();
-
- if (newRecoveryPassword !== '' && oldRecoveryPassword !== '' && newRecoveryPassword === newRecoveryPasswordRepeated) {
- $('button:button[name="submitChangeRecoveryKey"]').removeAttr("disabled");
- } else {
- $('button:button[name="submitChangeRecoveryKey"]').attr("disabled", "true");
- }
- });
-
-
$('button:button[name="submitChangeRecoveryKey"]').click(function() {
var oldRecoveryPassword = $('#oldEncryptionRecoveryPassword').val();
var newRecoveryPassword = $('#newEncryptionRecoveryPassword').val();
- OC.msg.startSaving('#encryption .msg');
+ var confirmNewPassword = $('#repeatedNewEncryptionRecoveryPassword').val();
+ OC.msg.startSaving('#encryptionChangeRecoveryKey .msg');
$.post(
OC.filePath( 'files_encryption', 'ajax', 'changeRecoveryPassword.php' )
- , { oldPassword: oldRecoveryPassword, newPassword: newRecoveryPassword }
+ , { oldPassword: oldRecoveryPassword, newPassword: newRecoveryPassword, confirmPassword: confirmNewPassword }
, function( data ) {
- if (data.status == "error") {
- OC.msg.finishedSaving('#encryption .msg', data);
- } else {
- OC.msg.finishedSaving('#encryption .msg', data);
+ OC.msg.finishedSaving('#encryptionChangeRecoveryKey .msg', data);
}
- }
);
});
diff --git a/apps/files_encryption/js/settings-personal.js b/apps/files_encryption/js/settings-personal.js
index f857c2c9f05..b798ba7e4e1 100644
--- a/apps/files_encryption/js/settings-personal.js
+++ b/apps/files_encryption/js/settings-personal.js
@@ -26,36 +26,27 @@ $(document).ready(function(){
// Trigger ajax on recoveryAdmin status change
$( 'input:radio[name="userEnableRecovery"]' ).change(
function() {
-
- // Hide feedback messages in case they're already visible
- $('#recoveryEnabledSuccess').hide();
- $('#recoveryEnabledError').hide();
-
var recoveryStatus = $( this ).val();
-
+ OC.msg.startAction('#userEnableRecovery .msg', 'Updating recovery keys. This can take some time...');
$.post(
OC.filePath( 'files_encryption', 'ajax', 'userrecovery.php' )
, { userEnableRecovery: recoveryStatus }
, function( data ) {
- if ( data.status == "success" ) {
- $('#recoveryEnabledSuccess').show();
- } else {
- $('#recoveryEnabledError').show();
- }
+ OC.msg.finishedAction('#userEnableRecovery .msg', data);
}
);
// Ensure page is not reloaded on form submit
return false;
}
);
-
+
$("#encryptAll").click(
function(){
-
+
// Hide feedback messages in case they're already visible
$('#encryptAllSuccess').hide();
$('#encryptAllError').hide();
-
+
var userPassword = $( '#userPassword' ).val();
var encryptAll = $( '#encryptAll' ).val();
@@ -73,7 +64,7 @@ $(document).ready(function(){
// Ensure page is not reloaded on form submit
return false;
}
-
+
);
// update private key password
diff --git a/apps/files_encryption/l10n/ar.php b/apps/files_encryption/l10n/ar.php
index 1e3b4aaec4f..7cda7379693 100644
--- a/apps/files_encryption/l10n/ar.php
+++ b/apps/files_encryption/l10n/ar.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "خطأ غير معروف. ",
"Recovery key successfully enabled" => "تم بنجاح تفعيل مفتاح الاستعادة",
-"Could not enable recovery key. Please check your recovery key password!" => "لا يمكن تفعيل مفتاح الاستعادة, يرجى التحقق من كلمة مرور مفتاح الاستعادة!",
-"Recovery key successfully disabled" => "تم تعطيل مفتاح الاستعادة بنجاح",
"Could not disable recovery key. Please check your recovery key password!" => "لا يمكن تعطيل مفتاح الاستعادة, يرجى التحقق من كلمة مرور مفتاح الاستعادة!",
+"Recovery key successfully disabled" => "تم تعطيل مفتاح الاستعادة بنجاح",
"Password successfully changed." => "تم تغيير كلمة المرور بنجاح.",
"Could not change the password. Maybe the old password was not correct." => "تعذر تغيير كلمة المرور. من الممكن ان كلمة المرور القديمة غير صحيحة.",
"Private key password successfully updated." => "تم تحديث كلمة المرور للمفتاح الخاص بنجاح.",
"Could not update the private key password. Maybe the old password was not correct." => "لا يمكن تحديث كلمة مرور المفتاح الخاص. من الممكن ان كلمة المرور القديمة غير صحيحة.",
+"File recovery settings updated" => "اعدادات ملف الاستعادة تم تحديثه",
+"Could not update file recovery" => "تعذر تحديث ملف الاستعادة",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "برنامج التشفير لم يتم تهيئتة ! من الممكن ان برنامج التشفير تم اعادة تفعيلة خلال الجلسة. يرجى تسجيل الخروج ومن ثم تسجيل الدخول مجددا لتهيئة برنامج التشفير.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "مفتاحك الخاص غير صالح! ربما تم تغيير كلمة المرور خارج %s (مثل:مجلد شركتك). يمكنك تحديث كلمة المرور في الاعدادات الشخصية لإستعادة الوصول الى ملفاتك المشفرة.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "لا يمكن فك التشفير من هذا الملف, من الممكن ان يكون هذا الملف مُشارك. يرجى سؤال صاحب الملف لإعادة مشاركتة معك.",
@@ -35,8 +37,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "كلمة المرور الحالية الخاصة بالدخول",
"Update Private Key Password" => "تحديث كلمة المرور لـ المفتاح الخاص",
"Enable password recovery:" => "تفعيل استعادة كلمة المرور:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "تفعيل هذا الخيار يمكنك من اعادة الوصول الى ملفاتك المشفرة عند فقدان كلمة المرور",
-"File recovery settings updated" => "اعدادات ملف الاستعادة تم تحديثه",
-"Could not update file recovery" => "تعذر تحديث ملف الاستعادة"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "تفعيل هذا الخيار يمكنك من اعادة الوصول الى ملفاتك المشفرة عند فقدان كلمة المرور"
);
$PLURAL_FORMS = "nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;";
diff --git a/apps/files_encryption/l10n/ast.php b/apps/files_encryption/l10n/ast.php
index abc41b36f37..d03ebb47b62 100644
--- a/apps/files_encryption/l10n/ast.php
+++ b/apps/files_encryption/l10n/ast.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Fallu desconocíu",
"Recovery key successfully enabled" => "Habilitóse la recuperación de ficheros",
-"Could not enable recovery key. Please check your recovery key password!" => "Nun pudo habilitase la clave de recuperación. Por favor comprueba la contraseña.",
-"Recovery key successfully disabled" => "Clave de recuperación deshabilitada",
"Could not disable recovery key. Please check your recovery key password!" => "Nun pudo deshabilitase la clave de recuperación. Por favor comprueba la contraseña!",
+"Recovery key successfully disabled" => "Clave de recuperación deshabilitada",
"Password successfully changed." => "Camudóse la contraseña",
"Could not change the password. Maybe the old password was not correct." => "Nun pudo camudase la contraseña. Comprueba que la contraseña actual seya correuta.",
"Private key password successfully updated." => "Contraseña de clave privada anovada correchamente.",
"Could not update the private key password. Maybe the old password was not correct." => "Nun pudo camudase la contraseña. Pue que la contraseña antigua nun seya correuta.",
+"File recovery settings updated" => "Opciones de recuperación de ficheros anovada",
+"Could not update file recovery" => "Nun pudo anovase la recuperación de ficheros",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "¡L'aplicación de cifráu nun s'anició! Seique se restableciera mentanto la sesión. Por favor intenta zarrar la sesión y volver a aniciala p'aniciar l'aplicación de cifráu.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "¡La clave privada nun ye válida! Seique la contraseña se camudase dende fuera de %s (Ex:El to direutoriu corporativu). Pues anovar la contraseña de la clave privada nes tos opciones personales pa recuperar l'accesu a los ficheros.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Nun pudo descifrase esti ficheru, dablemente seya un ficheru compartíu. Solicita al propietariu del mesmu que vuelva a compartilu contigo.",
@@ -36,8 +38,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Contraseña d'accesu actual",
"Update Private Key Password" => "Anovar Contraseña de Clave Privada",
"Enable password recovery:" => "Habilitar la recuperación de contraseña:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Habilitar esta opción va permitite volver a tener accesu a los ficheros cifraos en casu de perda de contraseña",
-"File recovery settings updated" => "Opciones de recuperación de ficheros anovada",
-"Could not update file recovery" => "Nun pudo anovase la recuperación de ficheros"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Habilitar esta opción va permitite volver a tener accesu a los ficheros cifraos en casu de perda de contraseña"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/az.php b/apps/files_encryption/l10n/az.php
index 887bf07565c..2cc8bd67df4 100644
--- a/apps/files_encryption/l10n/az.php
+++ b/apps/files_encryption/l10n/az.php
@@ -1,9 +1,9 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Bəlli olmayan səhv baş verdi",
"Recovery key successfully enabled" => "Bərpa açarı uğurla aktivləşdi",
-"Could not enable recovery key. Please check your recovery key password!" => "Geriqaytarılma açarının aktivləşdirilməsi mümkün olmadı. Xahiş olunur geriqaytarılma açarı üçün tələb edilən şifrəni yoxlayasınız.",
-"Recovery key successfully disabled" => "Bərpa açarı uğurla söndürüldü",
"Could not disable recovery key. Please check your recovery key password!" => "Geriqaytarılma açarını sondürmək olmur. Xahiş edirik geriqaytarılma key açarınızı yoxlayın.",
+"Recovery key successfully disabled" => "Bərpa açarı uğurla söndürüldü",
"Password successfully changed." => "Şifrə uğurla dəyişdirildi.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Sizin gizli açarınız doğru deyil! Təxmin edilir ki, sizin şifrə %s-dən kənarda dəyişdirilib(misal üçün sizin koorporativ qovluq). Siz öz şifrələnmiş fayllarınıza yetkinizi bərpa etmək üçün, öz şifrənizi şəxsi quraşdırmalarınızda yeniləyə bilərsiniz.",
"Unknown error. Please check your system settings or contact your administrator" => "Tanınmayan səhv. Xahiş olunur sistem quraşdırmalarınızı yoxlayın yada öz inzibatçınızla əlaqə yaradın",
diff --git a/apps/files_encryption/l10n/bg_BG.php b/apps/files_encryption/l10n/bg_BG.php
index fc6b40de0a8..0dce15dafd6 100644
--- a/apps/files_encryption/l10n/bg_BG.php
+++ b/apps/files_encryption/l10n/bg_BG.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Непозната грешка.",
"Recovery key successfully enabled" => "Успешно включване на опцията ключ за възстановяване.",
-"Could not enable recovery key. Please check your recovery key password!" => "Неуспешно включване на опцията ключ за възстановяване. Моля, провери паролата за ключа за възстановяване.",
-"Recovery key successfully disabled" => "Успешно изключване на ключа за възстановяване.",
"Could not disable recovery key. Please check your recovery key password!" => "Неуспешно изключване на ключа за възстановяване. Моля, провери паролата за ключа за възстановяване!",
+"Recovery key successfully disabled" => "Успешно изключване на ключа за възстановяване.",
"Password successfully changed." => "Паролата е успешно променена.",
"Could not change the password. Maybe the old password was not correct." => "Грешка при промяна на паролата. Може би старата ти парола е сгрешена.",
"Private key password successfully updated." => "Успешно променена тайната парола за ключа.",
"Could not update the private key password. Maybe the old password was not correct." => "Неуспешна промяна на тайната парола за ключа. Може би старата парола е грешно въведена.",
+"File recovery settings updated" => "Настройките за възстановяване на файлове са променени.",
+"Could not update file recovery" => "Неуспешна промяна на настройките за възстановяване на файлове.",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Неуспешна инициализация на криптиращото приложение! Може би криптиращото приложение бе включено по време на твоята сесия. Отпиши се и се впиши обратно за да инциализираш криптиращото приложение.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Твоят таен ключ е невалиден! Вероятно твоята парола беше променена извън %s(пр. твоята корпоративна директория). Можеш да промениш своят таен ключ в Лични настройки, за да възстановиш достъпа до криптираните файлове.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Неуспешно разшифроване на този файл, вероятно това е споделен файл. Моля, поискай собственика на файла да го сподели повторно с теб.",
@@ -37,8 +39,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Текуща парола за вписване",
"Update Private Key Password" => "Промени Тайната Парола за Ключа",
"Enable password recovery:" => "Включи опцията възстановяване на паролата:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Избирането на тази опция ще ти позволи да възстановиш достъпа си до файловете в случай на изгубена парола.",
-"File recovery settings updated" => "Настройките за възстановяване на файлове са променени.",
-"Could not update file recovery" => "Неуспешна промяна на настройките за възстановяване на файлове."
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Избирането на тази опция ще ти позволи да възстановиш достъпа си до файловете в случай на изгубена парола."
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/bn_BD.php b/apps/files_encryption/l10n/bn_BD.php
index 3d4c848d6ef..addbb917953 100644
--- a/apps/files_encryption/l10n/bn_BD.php
+++ b/apps/files_encryption/l10n/bn_BD.php
@@ -1,5 +1,6 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "অজানা জটিলতা",
"Recovery key successfully enabled" => "পূনরুদ্ধার চাবি সার্থকভাবে কার্যকর করা হয়েছে",
"Recovery key successfully disabled" => "পূনরুদ্ধার চাবি সার্থকভাবে অকার্যকর করা হয়েছে",
"Password successfully changed." => "আপনার কূটশব্দটি সার্থকভাবে পরিবর্তন করা হয়েছে ",
diff --git a/apps/files_encryption/l10n/ca.php b/apps/files_encryption/l10n/ca.php
index c3eb258a4d8..9d3d95c05cf 100644
--- a/apps/files_encryption/l10n/ca.php
+++ b/apps/files_encryption/l10n/ca.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Error desconegut",
"Recovery key successfully enabled" => "La clau de recuperació s'ha activat",
-"Could not enable recovery key. Please check your recovery key password!" => "No s'ha pogut activar la clau de recuperació. Comproveu contrasenya de la clau de recuperació!",
-"Recovery key successfully disabled" => "La clau de recuperació s'ha descativat",
"Could not disable recovery key. Please check your recovery key password!" => "No s'ha pogut desactivar la calu de recuperació. Comproveu la contrasenya de la clau de recuperació!",
+"Recovery key successfully disabled" => "La clau de recuperació s'ha descativat",
"Password successfully changed." => "La contrasenya s'ha canviat.",
"Could not change the password. Maybe the old password was not correct." => "No s'ha pogut canviar la contrasenya. Potser la contrasenya anterior no era correcta.",
"Private key password successfully updated." => "La contrasenya de la clau privada s'ha actualitzat.",
"Could not update the private key password. Maybe the old password was not correct." => "No s'ha pogut actualitzar la contrasenya de la clau privada. Potser la contrasenya anterior no era correcta.",
+"File recovery settings updated" => "S'han actualitzat els arranjaments de recuperació de fitxers",
+"Could not update file recovery" => "No s'ha pogut actualitzar la recuperació de fitxers",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "L'aplicació d'encriptació no està inicialitzada! Potser l'aplicació d'encriptació ha estat reiniciada durant la sessió. Intenteu sortir i acreditar-vos de nou per reinicialitzar l'aplicació d'encriptació.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "La clau privada no és vàlida! Probablement la contrasenya va ser canviada des de fora de %s (per exemple, en el directori de l'empresa). Vostè pot actualitzar la contrasenya de clau privada en la seva configuració personal per poder recuperar l'accés en els arxius xifrats.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "No es pot desencriptar aquest fitxer, probablement és un fitxer compartit. Demaneu al propietari del fitxer que el comparteixi de nou amb vós.",
@@ -37,8 +39,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Contrasenya d'accés actual",
"Update Private Key Password" => "Actualitza la contrasenya de clau privada",
"Enable password recovery:" => "Habilita la recuperació de contrasenya:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Activar aquesta opció us permetrà obtenir de nou accés als vostres fitxers encriptats en cas de perdre la contrasenya",
-"File recovery settings updated" => "S'han actualitzat els arranjaments de recuperació de fitxers",
-"Could not update file recovery" => "No s'ha pogut actualitzar la recuperació de fitxers"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Activar aquesta opció us permetrà obtenir de nou accés als vostres fitxers encriptats en cas de perdre la contrasenya"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/cs_CZ.php b/apps/files_encryption/l10n/cs_CZ.php
index 0b3e1c48bee..a0e7274926a 100644
--- a/apps/files_encryption/l10n/cs_CZ.php
+++ b/apps/files_encryption/l10n/cs_CZ.php
@@ -1,13 +1,21 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Neznámá chyba",
+"Missing recovery key password" => "Chybí heslo klíče pro obnovu",
+"Please repeat the recovery key password" => "Zopakujte prosím heslo klíče pro obnovu",
+"Repeated recovery key password does not match the provided recovery key password" => "Opakované heslo pro obnovu nesouhlasí se zadaným heslem",
"Recovery key successfully enabled" => "Záchranný klíč byl úspěšně povolen",
-"Could not enable recovery key. Please check your recovery key password!" => "Nepodařilo se povolit záchranný klíč. Zkontrolujte prosím vaše heslo záchranného klíče!",
-"Recovery key successfully disabled" => "Záchranný klíč byl úspěšně zakázán",
"Could not disable recovery key. Please check your recovery key password!" => "Nelze zakázat záchranný klíč. Zkontrolujte prosím heslo vašeho záchranného klíče!",
+"Recovery key successfully disabled" => "Záchranný klíč byl úspěšně zakázán",
+"Please provide the old recovery password" => "Zapište prosím staré heslo pro obnovu",
+"Please provide a new recovery password" => "Zapište prosím nové heslo pro obnovu",
+"Please repeat the new recovery password" => "Zopakujte prosím nové heslo pro obnovu",
"Password successfully changed." => "Heslo bylo úspěšně změněno.",
"Could not change the password. Maybe the old password was not correct." => "Změna hesla se nezdařila. Pravděpodobně nebylo stávající heslo zadáno správně.",
"Private key password successfully updated." => "Heslo soukromého klíče úspěšně aktualizováno.",
"Could not update the private key password. Maybe the old password was not correct." => "Nelze aktualizovat heslo soukromého klíče. Možná nebylo staré heslo správně.",
+"File recovery settings updated" => "Možnosti záchrany souborů aktualizovány",
+"Could not update file recovery" => "Nelze nastavit záchranu souborů",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Aplikace pro šifrování není inicializována! Je možné, že aplikace byla znovu aktivována během vašeho přihlášení. Zkuste se prosím odhlásit a znovu přihlásit pro provedení inicializace šifrovací aplikace.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Váš soukromý klíč není platný! Pravděpodobně bylo vaše heslo změněno vně systému %s (např. ve vašem firemním adresáři). Heslo vašeho soukromého klíče můžete změnit ve svém osobním nastavení pro obnovení přístupu k vašim zašifrovaným souborům.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Tento soubor se nepodařilo dešifrovat, pravděpodobně je sdílený. Požádejte prosím majitele souboru, aby jej s vámi znovu sdílel.",
@@ -37,8 +45,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Aktuální přihlašovací heslo",
"Update Private Key Password" => "Změnit heslo soukromého klíče",
"Enable password recovery:" => "Povolit obnovu hesla:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Zapnutí této volby vám umožní znovu získat přístup k vašim zašifrovaným souborům pokud ztratíte heslo",
-"File recovery settings updated" => "Možnosti záchrany souborů aktualizovány",
-"Could not update file recovery" => "Nelze nastavit záchranu souborů"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Zapnutí této volby vám umožní znovu získat přístup k vašim zašifrovaným souborům pokud ztratíte heslo"
);
$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";
diff --git a/apps/files_encryption/l10n/da.php b/apps/files_encryption/l10n/da.php
index dc2cf9e2475..f63fa217dce 100644
--- a/apps/files_encryption/l10n/da.php
+++ b/apps/files_encryption/l10n/da.php
@@ -1,13 +1,21 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Ukendt fejl",
+"Missing recovery key password" => "Der mangler kodeord for gendannelsesnøgle",
+"Please repeat the recovery key password" => "Gentag venligst kodeordet for gendannelsesnøglen",
+"Repeated recovery key password does not match the provided recovery key password" => "Det gentagne kodeord for gendannelsesnøglen stemmer ikke med det angivne kodeord for gendannelsesnøglen",
"Recovery key successfully enabled" => "Gendannelsesnøgle aktiveret med succes",
-"Could not enable recovery key. Please check your recovery key password!" => "Kunne ikke aktivere gendannelsesnøgle. Kontroller venligst dit gendannelsesnøgle kodeord!",
-"Recovery key successfully disabled" => "Gendannelsesnøgle deaktiveret succesfuldt",
"Could not disable recovery key. Please check your recovery key password!" => "Kunne ikke deaktivere gendannelsesnøgle. Kontroller din gendannelsesnøgle kodeord!",
+"Recovery key successfully disabled" => "Gendannelsesnøgle deaktiveret succesfuldt",
+"Please provide the old recovery password" => "Angiv venligst det gamle kodeord for gendannelsesnøglen",
+"Please provide a new recovery password" => "Angiv venligst et nyt kodeord til gendannelse",
+"Please repeat the new recovery password" => "Gentag venligst det nye kodeord til gendannelse",
"Password successfully changed." => "Kodeordet blev ændret succesfuldt",
"Could not change the password. Maybe the old password was not correct." => "Kunne ikke ændre kodeordet. Måske var det gamle kodeord ikke korrekt.",
"Private key password successfully updated." => "Privat nøgle kodeord succesfuldt opdateret.",
"Could not update the private key password. Maybe the old password was not correct." => "Kunne ikke opdatere det private nøgle kodeord-. Måske var det gamle kodeord forkert.",
+"File recovery settings updated" => "Filgendannelsesindstillinger opdateret",
+"Could not update file recovery" => "Kunne ikke opdatere filgendannelse",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Krypteringsprogrammet er ikke igangsat. Det kan skyldes at krypteringsprogrammet er blevet genaktiveret under din session. Prøv at logge ud og ind igen for at aktivere krypteringsprogrammet. ",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Din private nøgle er ikke gyldig. Sandsynligvis er dit kodeord blevet ændret uden for %s (f.eks dit firmas adressebog). Du kan opdatere din private nøglekode i dine personlige indstillinger for at genskabe adgang til dine krypterede filer.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Kan ikke kryptere denne fil, sandsynligvis fordi felen er delt. Bed venligst filens ejer om at dele den med dig på ny.",
@@ -37,8 +45,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Nuvrende login kodeord",
"Update Private Key Password" => "Opdater Privat Nøgle Kodeord",
"Enable password recovery:" => "Aktiver kodeord gendannelse:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Aktivering af denne valgmulighed tillader dig at generhverve adgang til dine krypterede filer i tilfælde af tab af kodeord",
-"File recovery settings updated" => "Filgendannelsesindstillinger opdateret",
-"Could not update file recovery" => "Kunne ikke opdatere filgendannelse"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Aktivering af denne valgmulighed tillader dig at generhverve adgang til dine krypterede filer i tilfælde af tab af kodeord"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/de.php b/apps/files_encryption/l10n/de.php
index 392a66393a9..cd6d8ea9a28 100644
--- a/apps/files_encryption/l10n/de.php
+++ b/apps/files_encryption/l10n/de.php
@@ -1,13 +1,21 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Unbekannter Fehler",
+"Missing recovery key password" => "Schlüsselpasswort zur Wiederherstellung fehlt",
+"Please repeat the recovery key password" => "Schlüsselpasswort zur Wiederherstellung bitte wiederholen",
+"Repeated recovery key password does not match the provided recovery key password" => "Das wiederholte Schlüsselpasswort zur Wiederherstellung stimmt nicht mit dem geforderten Schlüsselpasswort zur Wiederherstellung überein",
"Recovery key successfully enabled" => "Wiederherstellungsschlüssel wurde erfolgreich aktiviert",
-"Could not enable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Überprüfe Dein Wiederherstellungspasswort!",
-"Recovery key successfully disabled" => "Wiederherstellungsschlüssel deaktiviert.",
"Could not disable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Überprüfe Dein Wiederherstellungspasswort!",
+"Recovery key successfully disabled" => "Wiederherstellungsschlüssel deaktiviert.",
+"Please provide the old recovery password" => "Bitte das alte Passwort zur Wiederherstellung eingeben",
+"Please provide a new recovery password" => "Bitte das alte Passwort zur Wiederherstellung eingeben",
+"Please repeat the new recovery password" => "Bitte das neue Passwort zur Wiederherstellung wiederholen",
"Password successfully changed." => "Dein Passwort wurde geändert.",
"Could not change the password. Maybe the old password was not correct." => "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort falsch.",
"Private key password successfully updated." => "Passwort des privaten Schlüssels erfolgreich aktualisiert",
"Could not update the private key password. Maybe the old password was not correct." => "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden. Eventuell war das alte Passwort falsch.",
+"File recovery settings updated" => "Einstellungen zur Wiederherstellung von Dateien wurden aktualisiert",
+"Could not update file recovery" => "Dateiwiederherstellung konnte nicht aktualisiert werden",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Verschlüsselung-App ist nicht initialisiert! Vielleicht wurde die Verschlüsselung-App in der aktuellen Sitzung reaktiviert. Bitte versuche Dich ab- und wieder anzumelden, um die Verschlüsselung-App zu initialisieren.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Dein privater Schlüssel ist ungültig. Möglicher Weise wurde außerhalb von %s Dein Passwort geändert (z.B. in Deinem gemeinsamen Verzeichnis). Du kannst das Passwort Deines privaten Schlüssels in den persönlichen Einstellungen aktualisieren, um wieder an Deine Dateien zu gelangen.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte frage den Dateibesitzer, ob er die Datei nochmals mit Dir teilt.",
@@ -16,10 +24,10 @@ $TRANSLATIONS = array(
"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Bitte stelle sicher, dass PHP 5.3.3 oder neuer installiert und das OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Zur Zeit ist die Verschlüsselungs-App deaktiviert.",
"Following users are not set up for encryption:" => "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:",
"Initial encryption started... This can take some time. Please wait." => "Initialverschlüsselung gestartet... Dies kann einige Zeit dauern. Bitte warten.",
-"Initial encryption running... Please try again later." => "Initiale Verschlüsselung läuft... Bitte versuche es später wieder.",
-"Go directly to your %spersonal settings%s." => "Wechsle direkt zu Deinen %spersonal settings%s.",
+"Initial encryption running... Please try again later." => "Anfangsverschlüsselung läuft … Bitte versuche es später wieder.",
+"Go directly to your %spersonal settings%s." => "Direkt zu Deinen %spersonal settings%s wechseln.",
"Encryption" => "Verschlüsselung",
-"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Die Verschlüsselung-App ist aktiviert, aber Deine Schlüssel sind nicht initialisiert. Bitte melden Dich nochmals ab und wieder an.",
+"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Die Verschlüsselung-App ist aktiviert, aber Deine Schlüssel sind nicht initialisiert. Bitte melde Dich nochmals ab und wieder an.",
"Enable recovery key (allow to recover users files in case of password loss):" => "Wiederherstellungsschlüssel aktivieren (ermöglicht das Wiederherstellen von Dateien, falls das Passwort vergessen wurde):",
"Recovery key password" => "Wiederherstellungsschlüssel-Passwort",
"Repeat Recovery key password" => "Schlüssel-Passwort zur Wiederherstellung wiederholen",
@@ -30,15 +38,13 @@ $TRANSLATIONS = array(
"New Recovery key password" => "Neues Wiederherstellungsschlüssel-Passwort",
"Repeat New Recovery key password" => "Neues Schlüssel-Passwort zur Wiederherstellung wiederholen",
"Change Password" => "Passwort ändern",
-"Your private key password no longer matches your log-in password." => "Das Privatschlüsselpasswort darf nicht länger mit den Login-Passwort übereinstimmen.",
-"Set your old private key password to your current log-in password:" => "Setze Dein altes Passwort für Deinen privaten Schlüssel auf Dein aktuelles Login-Passwort:",
+"Your private key password no longer matches your log-in password." => "Das Privatschlüsselpasswort darf nicht länger mit dem Anmeldepasswort übereinstimmen.",
+"Set your old private key password to your current log-in password:" => "Dein altes Passwort für Deinen privaten Schlüssel auf Dein aktuelles Anmeldepasswort einstellen:",
" If you don't remember your old password you can ask your administrator to recover your files." => "Wenn Du Dein altes Passwort vergessen hast, könntest Du Deinen Administrator bitten, Deine Daten wiederherzustellen.",
"Old log-in password" => "Altes Login Passwort",
"Current log-in password" => "Aktuelles Passwort",
"Update Private Key Password" => "Passwort für den privaten Schlüssel aktualisieren",
"Enable password recovery:" => "Passwortwiederherstellung aktivieren:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Wenn Du diese Option aktivierst, kannst Du Deine verschlüsselten Dateien wiederherstellen, falls Du Dein Passwort vergisst",
-"File recovery settings updated" => "Einstellungen zur Wiederherstellung von Dateien wurden aktualisiert",
-"Could not update file recovery" => "Dateiwiederherstellung konnte nicht aktualisiert werden"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Wenn Du diese Option aktivierst, kannst Du Deine verschlüsselten Dateien wiederherstellen, falls Du Dein Passwort vergisst"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/de_CH.php b/apps/files_encryption/l10n/de_CH.php
index 67abceee267..9c2af0c93c6 100644
--- a/apps/files_encryption/l10n/de_CH.php
+++ b/apps/files_encryption/l10n/de_CH.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Unbekannter Fehler",
"Recovery key successfully enabled" => "Der Wiederherstellungsschlüssel wurde erfolgreich aktiviert.",
-"Could not enable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!",
-"Recovery key successfully disabled" => "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.",
"Could not disable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!",
+"Recovery key successfully disabled" => "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.",
"Password successfully changed." => "Das Passwort wurde erfolgreich geändert.",
"Could not change the password. Maybe the old password was not correct." => "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort nicht richtig.",
"Private key password successfully updated." => "Das Passwort des privaten Schlüssels wurde erfolgreich aktualisiert.",
"Could not update the private key password. Maybe the old password was not correct." => "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden. Vielleicht war das alte Passwort nicht richtig.",
+"File recovery settings updated" => "Die Einstellungen für die Dateiwiederherstellung wurden aktualisiert.",
+"Could not update file recovery" => "Die Dateiwiederherstellung konnte nicht aktualisiert werden.",
"Missing requirements." => "Fehlende Voraussetzungen",
"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Bitte stellen Sie sicher, dass PHP 5.3.3 oder neuer installiert und das OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Zur Zeit ist die Verschlüsselungs-App deaktiviert.",
"Following users are not set up for encryption:" => "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:",
@@ -25,8 +27,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Momentanes Login-Passwort",
"Update Private Key Password" => "Das Passwort des privaten Schlüssels aktualisieren",
"Enable password recovery:" => "Die Passwort-Wiederherstellung aktivieren:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben.",
-"File recovery settings updated" => "Die Einstellungen für die Dateiwiederherstellung wurden aktualisiert.",
-"Could not update file recovery" => "Die Dateiwiederherstellung konnte nicht aktualisiert werden."
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben."
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/de_DE.php b/apps/files_encryption/l10n/de_DE.php
index 85470cd8abf..b16a4003e87 100644
--- a/apps/files_encryption/l10n/de_DE.php
+++ b/apps/files_encryption/l10n/de_DE.php
@@ -1,44 +1,50 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Unbekannter Fehler",
+"Missing recovery key password" => "Schlüsselpasswort zur Wiederherstellung fehlt",
+"Please repeat the recovery key password" => "Schlüsselpasswort zur Wiederherstellung bitte wiederholen",
+"Repeated recovery key password does not match the provided recovery key password" => "Das wiederholte Schlüsselpasswort zur Wiederherstellung stimmt nicht mit dem geforderten Schlüsselpasswort zur Wiederherstellung überein",
"Recovery key successfully enabled" => "Der Wiederherstellungsschlüssel wurde erfolgreich aktiviert.",
-"Could not enable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!",
-"Recovery key successfully disabled" => "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.",
"Could not disable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!",
+"Recovery key successfully disabled" => "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.",
+"Please provide the old recovery password" => "Bitte das alte Passwort zur Wiederherstellung eingeben",
+"Please provide a new recovery password" => "Bitte das neue Passwort zur Wiederherstellung eingeben",
+"Please repeat the new recovery password" => "Bitte das neue Passwort zur Wiederherstellung wiederholen",
"Password successfully changed." => "Das Passwort wurde erfolgreich geändert.",
"Could not change the password. Maybe the old password was not correct." => "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort nicht richtig.",
"Private key password successfully updated." => "Das Passwort des privaten Schlüssels wurde erfolgreich aktualisiert.",
"Could not update the private key password. Maybe the old password was not correct." => "Das Passwort des privaten Schlüssels konnte nicht aktualisiert werden. Vielleicht war das alte Passwort nicht richtig.",
+"File recovery settings updated" => "Die Einstellungen für die Dateiwiederherstellung wurden aktualisiert.",
+"Could not update file recovery" => "Die Dateiwiederherstellung konnte nicht aktualisiert werden.",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Verschlüsselung-App ist nicht initialisiert! Vielleicht wurde die Verschlüsselung-App in der aktuellen Sitzung reaktiviert. Bitte versuchen Sie sich ab- und wieder anzumelden, um die Verschlüsselung-App zu initialisieren.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Ihr privater Schlüssel ist ungültig. Möglicher Weise wurde außerhalb von %s Ihr Passwort geändert (z.B. in Ihrem gemeinsamen Verzeichnis). Sie können das Passwort Ihres privaten Schlüssels in den persönlichen Einstellungen aktualisieren, um wieder an Ihre Dateien zu gelangen.",
-"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte fragen Sie den Datei-Besitzer, dass er die Datei nochmals mit Ihnen teilt.",
+"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Die Datei kann nicht entschlüsselt werden, da die Datei möglicherweise eine geteilte Datei ist. Bitte fragen Sie den Dateibesitzer, dass er die Datei nochmals mit Ihnen teilt.",
"Unknown error. Please check your system settings or contact your administrator" => "Unbekannter Fehler. Bitte prüfen Sie die Systemeinstellungen oder kontaktieren Sie Ihren Administrator",
"Missing requirements." => "Fehlende Voraussetzungen",
"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Bitte stellen Sie sicher, dass PHP 5.3.3 oder neuer installiert und das OpenSSL zusammen mit der PHP-Erweiterung aktiviert und richtig konfiguriert ist. Zur Zeit ist die Verschlüsselungs-App deaktiviert.",
"Following users are not set up for encryption:" => "Für folgende Nutzer ist keine Verschlüsselung eingerichtet:",
-"Initial encryption started... This can take some time. Please wait." => "Anfangsverschlüsselung gestartet... Dies kann einige Zeit dauern. Bitte warten.",
-"Initial encryption running... Please try again later." => "Anfangsverschlüsselung läuft... Bitte versuchen Sie es später wieder.",
+"Initial encryption started... This can take some time. Please wait." => "Anfangsverschlüsselung gestartet … Dieses kann einige Zeit dauern. Bitte warten.",
+"Initial encryption running... Please try again later." => "Anfangsverschlüsselung läuft … Bitte versuchen Sie es später wieder.",
"Go directly to your %spersonal settings%s." => "Wechseln Sie direkt zu Ihren %spersonal settings%s.",
"Encryption" => "Verschlüsselung",
-"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Verschlüsselung-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte melden sich nochmals ab und wieder an.",
+"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Verschlüsselung-App ist aktiviert, aber Ihre Schlüssel sind nicht initialisiert. Bitte nochmals ab- und wieder anmelden.",
"Enable recovery key (allow to recover users files in case of password loss):" => "Aktivieren Sie den Wiederherstellungsschlüssel (erlaubt die Wiederherstellung des Zugangs zu den Benutzerdateien, wenn das Passwort verloren geht).",
"Recovery key password" => "Wiederherstellungschlüsselpasswort",
-"Repeat Recovery key password" => "Schlüssel-Passwort zur Wiederherstellung wiederholen",
+"Repeat Recovery key password" => "Schlüsselpasswort zur Wiederherstellung wiederholen",
"Enabled" => "Aktiviert",
"Disabled" => "Deaktiviert",
"Change recovery key password:" => "Wiederherstellungsschlüsselpasswort ändern",
"Old Recovery key password" => "Altes Wiederherstellungsschlüsselpasswort",
"New Recovery key password" => "Neues Wiederherstellungsschlüsselpasswort ",
-"Repeat New Recovery key password" => "Neues Schlüssel-Passwort zur Wiederherstellung wiederholen",
+"Repeat New Recovery key password" => "Neues Schlüsselpasswort zur Wiederherstellung wiederholen",
"Change Password" => "Passwort ändern",
-"Your private key password no longer matches your log-in password." => "Das Privatschlüsselpasswort darf nicht länger mit den Login-Passwort übereinstimmen.",
-"Set your old private key password to your current log-in password:" => "Setzen Sie Ihr altes Privatschlüsselpasswort auf Ihr aktuelles LogIn-Passwort:",
+"Your private key password no longer matches your log-in password." => "Das Privatschlüsselpasswort stimmt nicht länger mit dem Anmeldepasswort überein.",
+"Set your old private key password to your current log-in password:" => "Ihr altes Privatschlüsselpasswort auf Ihr aktuelles Anmeldepasswort stellen:",
" If you don't remember your old password you can ask your administrator to recover your files." => "Falls Sie sich nicht an Ihr altes Passwort erinnern können, fragen Sie bitte Ihren Administrator, um Ihre Dateien wiederherzustellen.",
-"Old log-in password" => "Altes Login-Passwort",
-"Current log-in password" => "Momentanes Login-Passwort",
+"Old log-in password" => "Altes Anmeldepasswort",
+"Current log-in password" => "Aktuelles Anmeldepasswort",
"Update Private Key Password" => "Das Passwort des privaten Schlüssels aktualisieren",
"Enable password recovery:" => "Die Passwort-Wiederherstellung aktivieren:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben.",
-"File recovery settings updated" => "Die Einstellungen für die Dateiwiederherstellung wurden aktualisiert.",
-"Could not update file recovery" => "Die Dateiwiederherstellung konnte nicht aktualisiert werden."
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben."
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/el.php b/apps/files_encryption/l10n/el.php
index c208b25ebad..e1fabbb169c 100644
--- a/apps/files_encryption/l10n/el.php
+++ b/apps/files_encryption/l10n/el.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Άγνωστο σφάλμα",
"Recovery key successfully enabled" => "Επιτυχής ενεργοποίηση κλειδιού ανάκτησης",
-"Could not enable recovery key. Please check your recovery key password!" => "Αποτυχία ενεργοποίησης κλειδιού ανάκτησης. Παρακαλώ ελέγξτε τον κωδικό του κλειδιού ανάκτησής σας!",
-"Recovery key successfully disabled" => "Επιτυχής απενεργοποίηση κλειδιού ανάκτησης",
"Could not disable recovery key. Please check your recovery key password!" => "Αποτυχία απενεργοποίησης κλειδιού ανάκτησης. Παρακαλώ ελέγξτε τον κωδικό του κλειδιού ανάκτησής σας!",
+"Recovery key successfully disabled" => "Επιτυχής απενεργοποίηση κλειδιού ανάκτησης",
"Password successfully changed." => "Ο κωδικός αλλάχτηκε επιτυχώς.",
"Could not change the password. Maybe the old password was not correct." => "Αποτυχία αλλαγής κωδικού ίσως ο παλιός κωδικός να μην ήταν σωστός.",
"Private key password successfully updated." => "Το Προσωπικό κλειδί πρόσβασης ενημερώθηκε επιτυχώς",
"Could not update the private key password. Maybe the old password was not correct." => "Αποτυχία ενημέρωσης του κωδικού για το προσωπικό κλειδί. Ενδεχομένως ο παλιός κωδικός δεν ήταν σωστός.",
+"File recovery settings updated" => "Οι ρυθμίσεις επαναφοράς αρχείων ανανεώθηκαν",
+"Could not update file recovery" => "Αποτυχία ενημέρωσης ανάκτησης αρχείων",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Η εφαρμογή κρυπτογράφησης δεν έχει εκκινήσει! Ίσως η εφαρμογή κρυπτογράφησης επανενεργοποιήθηκε κατά τη διάρκεια της τρέχουσας σύνδεσής σας. Παρακαλώ προσπαθήστε να αποσυνδεθείτε και να ξανασυνδεθείτε για να εκκινήσετε την εφαρμογή κρυπτογράφησης.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Το προσωπικό σας κλειδί δεν είναι έγκυρο! Πιθανόν ο κωδικός σας να άλλαξε έξω από το %s (π.χ. τη λίστα διευθύνσεων της εταιρείας σας). Μπορείτε να ενημερώσετε το προσωπικό σας κλειδί επαναφοράς κωδικού στις προσωπικές σας ρυθμίσεις για να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Δεν ήταν δυνατό να αποκρυπτογραφηθεί αυτό το αρχείο, πιθανόν πρόκειται για κοινόχρηστο αρχείο. Παρακαλώ ζητήστε από τον ιδιοκτήτη του αρχείου να το ξαναμοιραστεί μαζί σας.",
@@ -37,8 +39,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Τρέχον συνθηματικό πρόσβασης",
"Update Private Key Password" => "Ενημέρωση Προσωπικού Κλειδού Πρόσβασης",
"Enable password recovery:" => "Ενεργοποιήστε την ανάκτηση κωδικού πρόσβασης",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Η ενεργοποίηση αυτής της επιλογής θα σας επιτρέψει να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία σε περίπτωση απώλειας του κωδικού σας",
-"File recovery settings updated" => "Οι ρυθμίσεις επαναφοράς αρχείων ανανεώθηκαν",
-"Could not update file recovery" => "Αποτυχία ενημέρωσης ανάκτησης αρχείων"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Η ενεργοποίηση αυτής της επιλογής θα σας επιτρέψει να επανακτήσετε πρόσβαση στα κρυπτογραφημένα σας αρχεία σε περίπτωση απώλειας του κωδικού σας"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/en_GB.php b/apps/files_encryption/l10n/en_GB.php
index 21f69496183..7a9b248bc43 100644
--- a/apps/files_encryption/l10n/en_GB.php
+++ b/apps/files_encryption/l10n/en_GB.php
@@ -1,13 +1,21 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Unknown error",
+"Missing recovery key password" => "Missing recovery key password",
+"Please repeat the recovery key password" => "Please repeat the recovery key password",
+"Repeated recovery key password does not match the provided recovery key password" => "Repeated recovery key password does not match the provided recovery key password",
"Recovery key successfully enabled" => "Recovery key enabled successfully",
-"Could not enable recovery key. Please check your recovery key password!" => "Could not enable recovery key. Please check your recovery key password!",
-"Recovery key successfully disabled" => "Recovery key disabled successfully",
"Could not disable recovery key. Please check your recovery key password!" => "Could not disable recovery key. Please check your recovery key password!",
+"Recovery key successfully disabled" => "Recovery key disabled successfully",
+"Please provide the old recovery password" => "Please provide the old recovery password",
+"Please provide a new recovery password" => "Please provide a new recovery password",
+"Please repeat the new recovery password" => "Please repeat the new recovery password",
"Password successfully changed." => "Password changed successfully.",
"Could not change the password. Maybe the old password was not correct." => "Could not change the password. Maybe the old password was incorrect.",
"Private key password successfully updated." => "Private key password updated successfully.",
"Could not update the private key password. Maybe the old password was not correct." => "Could not update the private key password. Maybe the old password was not correct.",
+"File recovery settings updated" => "File recovery settings updated",
+"Could not update file recovery" => "Could not update file recovery",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Encryption app not initialised! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialise the encryption app.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Cannot decrypt this file, which is probably a shared file. Please ask the file owner to reshare the file with you.",
@@ -37,8 +45,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Current login password",
"Update Private Key Password" => "Update Private Key Password",
"Enable password recovery:" => "Enable password recovery:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss",
-"File recovery settings updated" => "File recovery settings updated",
-"Could not update file recovery" => "Could not update file recovery"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/eo.php b/apps/files_encryption/l10n/eo.php
index 95ccafffe06..e8d50132128 100644
--- a/apps/files_encryption/l10n/eo.php
+++ b/apps/files_encryption/l10n/eo.php
@@ -1,5 +1,6 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Nekonata eraro",
"Password successfully changed." => "La pasvorto sukcese ŝanĝiĝis.",
"Could not change the password. Maybe the old password was not correct." => "Ne eblis ŝanĝi la pasvorton. Eble la malnova pasvorto malĝustis.",
"Private key password successfully updated." => "La pasvorto de la malpublika klavo sukcese ĝisdatiĝis.",
diff --git a/apps/files_encryption/l10n/es.php b/apps/files_encryption/l10n/es.php
index 3c4f89a09ab..164db17f4a7 100644
--- a/apps/files_encryption/l10n/es.php
+++ b/apps/files_encryption/l10n/es.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Error desconocido",
"Recovery key successfully enabled" => "Se ha habilitado la recuperación de archivos",
-"Could not enable recovery key. Please check your recovery key password!" => "No se pudo habilitar la clave de recuperación. Por favor compruebe su contraseña.",
-"Recovery key successfully disabled" => "Clave de recuperación deshabilitada",
"Could not disable recovery key. Please check your recovery key password!" => "No se pudo deshabilitar la clave de recuperación. Por favor compruebe su contraseña!",
+"Recovery key successfully disabled" => "Clave de recuperación deshabilitada",
"Password successfully changed." => "Su contraseña ha sido cambiada",
"Could not change the password. Maybe the old password was not correct." => "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.",
"Private key password successfully updated." => "Contraseña de clave privada actualizada con éxito.",
"Could not update the private key password. Maybe the old password was not correct." => "No se pudo cambiar la contraseña. Puede que la contraseña antigua no sea correcta.",
+"File recovery settings updated" => "Opciones de recuperación de archivos actualizada",
+"Could not update file recovery" => "No se pudo actualizar la recuperación de archivos",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "¡La aplicación de cifrado no ha sido inicializada! Quizá fue restablecida durante tu sesión. Por favor intenta cerrar la sesión y volver a iniciarla para inicializar la aplicación de cifrado.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "¡Su clave privada no es válida! Tal vez su contraseña ha sido cambiada desde fuera. de %s (Ej:Su directorio corporativo). Puede actualizar la contraseña de su clave privada en sus opciones personales para recuperar el acceso a sus archivos.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.",
@@ -37,8 +39,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Contraseña de acceso actual",
"Update Private Key Password" => "Actualizar Contraseña de Clave Privada",
"Enable password recovery:" => "Habilitar la recuperación de contraseña:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Habilitar esta opción le permitirá volver a tener acceso a sus ficheros cifrados en caso de pérdida de contraseña",
-"File recovery settings updated" => "Opciones de recuperación de archivos actualizada",
-"Could not update file recovery" => "No se pudo actualizar la recuperación de archivos"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Habilitar esta opción le permitirá volver a tener acceso a sus ficheros cifrados en caso de pérdida de contraseña"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/es_AR.php b/apps/files_encryption/l10n/es_AR.php
index b32a76e1b39..d82e5fe0144 100644
--- a/apps/files_encryption/l10n/es_AR.php
+++ b/apps/files_encryption/l10n/es_AR.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Error desconocido",
"Recovery key successfully enabled" => "Se habilitó la recuperación de archivos",
-"Could not enable recovery key. Please check your recovery key password!" => "No se pudo habilitar la clave de recuperación. Por favor, comprobá tu contraseña.",
-"Recovery key successfully disabled" => "Clave de recuperación deshabilitada",
"Could not disable recovery key. Please check your recovery key password!" => "No fue posible deshabilitar la clave de recuperación. Por favor, comprobá tu contraseña.",
+"Recovery key successfully disabled" => "Clave de recuperación deshabilitada",
"Password successfully changed." => "Tu contraseña fue cambiada",
"Could not change the password. Maybe the old password was not correct." => "No se pudo cambiar la contraseña. Comprobá que la contraseña actual sea correcta.",
"Private key password successfully updated." => "Contraseña de clave privada actualizada con éxito.",
"Could not update the private key password. Maybe the old password was not correct." => "No fue posible actualizar la contraseña de clave privada. Tal vez la contraseña anterior no es correcta.",
+"File recovery settings updated" => "Las opciones de recuperación de archivos fueron actualizadas",
+"Could not update file recovery" => "No fue posible actualizar la recuperación de archivos",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "¡La aplicación de encriptación no está inicializada! Es probable que la aplicación fue re-habilitada durante tu sesión. Intenta salir y iniciar sesión para volverla a iniciar.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "¡Tu llave privada no es válida! Aparenta que tu clave fue cambiada fuera de %s (de tus directorios). Puedes actualizar la contraseña de tu clave privadaen las configuraciones personales para recobrar el acceso a tus archivos encriptados.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "No se puede descibrar este archivo, probablemente sea un archivo compartido. Por favor pídele al dueño que recomparta el archivo contigo.",
@@ -33,8 +35,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Contraseña actual",
"Update Private Key Password" => "Actualizar contraseña de la clave privada",
"Enable password recovery:" => "Habilitar recuperación de contraseña:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Habilitando esta opción, vas a tener acceso a tus archivos encriptados, incluso si perdés la contraseña",
-"File recovery settings updated" => "Las opciones de recuperación de archivos fueron actualizadas",
-"Could not update file recovery" => "No fue posible actualizar la recuperación de archivos"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Habilitando esta opción, vas a tener acceso a tus archivos encriptados, incluso si perdés la contraseña"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/es_CL.php b/apps/files_encryption/l10n/es_CL.php
new file mode 100644
index 00000000000..10621479ff2
--- /dev/null
+++ b/apps/files_encryption/l10n/es_CL.php
@@ -0,0 +1,5 @@
+<?php
+$TRANSLATIONS = array(
+"Unknown error" => "Error desconocido"
+);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/es_MX.php b/apps/files_encryption/l10n/es_MX.php
index ddd9737a901..e25d34796e5 100644
--- a/apps/files_encryption/l10n/es_MX.php
+++ b/apps/files_encryption/l10n/es_MX.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Error desconocido",
"Recovery key successfully enabled" => "Se ha habilitado la recuperación de archivos",
-"Could not enable recovery key. Please check your recovery key password!" => "No se pudo habilitar la clave de recuperación. Por favor compruebe su contraseña.",
-"Recovery key successfully disabled" => "Clave de recuperación deshabilitada",
"Could not disable recovery key. Please check your recovery key password!" => "No se pudo deshabilitar la clave de recuperación. Por favor compruebe su contraseña!",
+"Recovery key successfully disabled" => "Clave de recuperación deshabilitada",
"Password successfully changed." => "Su contraseña ha sido cambiada",
"Could not change the password. Maybe the old password was not correct." => "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.",
"Private key password successfully updated." => "Contraseña de clave privada actualizada con éxito.",
"Could not update the private key password. Maybe the old password was not correct." => "No se pudo cambiar la contraseña. Puede que la contraseña antigua no sea correcta.",
+"File recovery settings updated" => "Opciones de recuperación de archivos actualizada",
+"Could not update file recovery" => "No se pudo actualizar la recuperación de archivos",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "¡La aplicación de cifrado no ha sido inicializada! Quizá fue restablecida durante tu sesión. Por favor intenta cerrar la sesión y volver a iniciarla para inicializar la aplicación de cifrado.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "¡Su clave privada no es válida! Tal vez su contraseña ha sido cambiada desde fuera. de %s (Ej:Su directorio corporativo). Puede actualizar la contraseña de su clave privada en sus opciones personales para recuperar el acceso a sus archivos.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "No fue posible descifrar este archivo, probablemente se trate de un archivo compartido. Solicite al propietario del mismo que vuelva a compartirlo con usted.",
@@ -32,8 +34,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Contraseña de acceso actual",
"Update Private Key Password" => "Actualizar Contraseña de Clave Privada",
"Enable password recovery:" => "Habilitar la recuperación de contraseña:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Habilitar esta opción le permitirá volver a tener acceso a sus archivos cifrados en caso de pérdida de contraseña",
-"File recovery settings updated" => "Opciones de recuperación de archivos actualizada",
-"Could not update file recovery" => "No se pudo actualizar la recuperación de archivos"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Habilitar esta opción le permitirá volver a tener acceso a sus archivos cifrados en caso de pérdida de contraseña"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/et_EE.php b/apps/files_encryption/l10n/et_EE.php
index bbf0ee4dca3..0d786b6ce7d 100644
--- a/apps/files_encryption/l10n/et_EE.php
+++ b/apps/files_encryption/l10n/et_EE.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Tundmatu viga",
"Recovery key successfully enabled" => "Taastevõtme lubamine õnnestus",
-"Could not enable recovery key. Please check your recovery key password!" => "Ei suutnud lubada taastevõtit. Palun kontrolli oma taastevõtme parooli!",
-"Recovery key successfully disabled" => "Taastevõtme keelamine õnnestus",
"Could not disable recovery key. Please check your recovery key password!" => "Ei suuda keelata taastevõtit. Palun kontrolli oma taastevõtme parooli!",
+"Recovery key successfully disabled" => "Taastevõtme keelamine õnnestus",
"Password successfully changed." => "Parool edukalt vahetatud.",
"Could not change the password. Maybe the old password was not correct." => "Ei suutnud vahetada parooli. Võib-olla on vana parool valesti sisestatud.",
"Private key password successfully updated." => "Privaatse võtme parool edukalt uuendatud.",
"Could not update the private key password. Maybe the old password was not correct." => "Ei suutnud uuendada privaatse võtme parooli. Võib-olla polnud vana parool õige.",
+"File recovery settings updated" => "Faili taaste seaded uuendatud",
+"Could not update file recovery" => "Ei suuda uuendada taastefaili",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Krüpteerimise rakend pole käivitatud. Võib-olla krüpteerimise rakend taaskäivitati sinu sessiooni kestel. Palun proovi logida välja ning uuesti sisse käivitamaks krüpteerimise rakendit.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Sinu provaatne võti pole kehtiv! Tõenäoliselt mudueti parooli väljaspool kausta %s (nt. sinu ettevõtte kaust). Sa saad uuendada oma privaatse võtme parooli oma isiklikes seadetes, et taastada ligipääs sinu krüpteeritud failidele.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Sa ei saa seda faili dekrüpteerida, see on tõenäoliselt jagatud fail. Palun lase omanikul seda faili sinuga uuesti jagada.",
@@ -37,8 +39,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Praegune sisselogimise parool",
"Update Private Key Password" => "Uuenda privaatse võtme parooli",
"Enable password recovery:" => "Luba parooli taaste:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Valiku lubamine võimaldab taastada ligipääsu krüpteeritud failidele kui parooli kaotuse puhul",
-"File recovery settings updated" => "Faili taaste seaded uuendatud",
-"Could not update file recovery" => "Ei suuda uuendada taastefaili"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Valiku lubamine võimaldab taastada ligipääsu krüpteeritud failidele kui parooli kaotuse puhul"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/eu.php b/apps/files_encryption/l10n/eu.php
index 69de4a25b1b..2927008113e 100644
--- a/apps/files_encryption/l10n/eu.php
+++ b/apps/files_encryption/l10n/eu.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Errore ezezaguna",
"Recovery key successfully enabled" => "Berreskuratze gakoa behar bezala gaitua",
-"Could not enable recovery key. Please check your recovery key password!" => "Ezin da berreskuratze gako gaitu. Egiaztatu berreskuratze gako pasahitza!",
-"Recovery key successfully disabled" => "Berreskuratze gakoa behar bezala desgaitu da",
"Could not disable recovery key. Please check your recovery key password!" => "Ezin da berreskuratze gako desgaitu. Egiaztatu berreskuratze gako pasahitza!",
+"Recovery key successfully disabled" => "Berreskuratze gakoa behar bezala desgaitu da",
"Password successfully changed." => "Pasahitza behar bezala aldatu da.",
"Could not change the password. Maybe the old password was not correct." => "Ezin izan da pasahitza aldatu. Agian pasahitz zaharra okerrekoa da.",
"Private key password successfully updated." => "Gako pasahitz pribatu behar bezala eguneratu da.",
"Could not update the private key password. Maybe the old password was not correct." => "Ezin izan da gako pribatu pasahitza eguneratu. Agian pasahitz zaharra okerrekoa da.",
+"File recovery settings updated" => "Fitxategi berreskuratze ezarpenak eguneratuak",
+"Could not update file recovery" => "Ezin da fitxategi berreskuratzea eguneratu",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Enkriptazio aplikazioa ez dago hasieratuta! Agian aplikazioa birgaitu egin da zure saioa bitartean. Mesdez atear eta sartu berriz enkriptazio aplikazioa hasierarazteko.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Zure gako pribatua ez da egokia! Seguruaski zure pasahitza %s-tik kanpo aldatu da (adb. zure direktorio korporatiboa). Zure gako pribatuaren pasahitza eguneratu dezakezu zure ezarpen pertsonaletan zure enkriptatutako fitxategiak berreskuratzeko.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Ezin izan da fitxategi hau deszifratu, ziurrenik elkarbanatutako fitxategi bat da. Mesdez, eskatu fitxategiaren jabeari fitxategia zurekin berriz elkarbana dezan.",
@@ -37,8 +39,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Sartzeko oraingo pasahitza",
"Update Private Key Password" => "Eguneratu gako pasahitza pribatua",
"Enable password recovery:" => "Gaitu pasahitzaren berreskuratzea:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Aukera hau gaituz zure enkriptatutako fitxategiak berreskuratu ahal izango dituzu pasahitza galtzekotan",
-"File recovery settings updated" => "Fitxategi berreskuratze ezarpenak eguneratuak",
-"Could not update file recovery" => "Ezin da fitxategi berreskuratzea eguneratu"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Aukera hau gaituz zure enkriptatutako fitxategiak berreskuratu ahal izango dituzu pasahitza galtzekotan"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/fa.php b/apps/files_encryption/l10n/fa.php
index 2c3a2261baa..113bf65ca37 100644
--- a/apps/files_encryption/l10n/fa.php
+++ b/apps/files_encryption/l10n/fa.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "خطای نامشخص",
"Recovery key successfully enabled" => "کلید بازیابی با موفقیت فعال شده است.",
-"Could not enable recovery key. Please check your recovery key password!" => "کلید بازیابی نمی تواند فعال شود. لطفا رمزعبور کلید بازیابی خود را بررسی نمایید!",
-"Recovery key successfully disabled" => "کلید بازیابی با موفقیت غیر فعال شده است.",
"Could not disable recovery key. Please check your recovery key password!" => "کلید بازیابی را نمی تواند غیرفعال نماید. لطفا رمزعبور کلید بازیابی خود را بررسی کنید!",
+"Recovery key successfully disabled" => "کلید بازیابی با موفقیت غیر فعال شده است.",
"Password successfully changed." => "رمزعبور با موفقیت تغییر یافت.",
"Could not change the password. Maybe the old password was not correct." => "رمزعبور را نمیتواند تغییر دهد. شاید رمزعبورقدیمی صحیح نمی باشد.",
"Private key password successfully updated." => "رمزعبور کلید خصوصی با موفقیت به روز شد.",
"Could not update the private key password. Maybe the old password was not correct." => "رمزعبور کلید خصوصی را نمی تواند به روز کند. شاید رمزعبور قدیمی صحیح نمی باشد.",
+"File recovery settings updated" => "تنظیمات بازیابی فایل به روز شده است.",
+"Could not update file recovery" => "به روز رسانی بازیابی فایل را نمی تواند انجام دهد.",
"Missing requirements." => "نیازمندی های گمشده",
"Following users are not set up for encryption:" => "کاربران زیر برای رمزنگاری تنظیم نشده اند",
"Encryption" => "رمزگذاری",
@@ -24,8 +26,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "رمزعبور فعلی",
"Update Private Key Password" => "به روز رسانی رمزعبور کلید خصوصی",
"Enable password recovery:" => "فعال سازی بازیابی رمزعبور:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "فعال کردن این گزینه به شما اجازه خواهد داد در صورت از دست دادن رمزعبور به فایل های رمزگذاری شده خود دسترسی داشته باشید.",
-"File recovery settings updated" => "تنظیمات بازیابی فایل به روز شده است.",
-"Could not update file recovery" => "به روز رسانی بازیابی فایل را نمی تواند انجام دهد."
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "فعال کردن این گزینه به شما اجازه خواهد داد در صورت از دست دادن رمزعبور به فایل های رمزگذاری شده خود دسترسی داشته باشید."
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_encryption/l10n/fi_FI.php b/apps/files_encryption/l10n/fi_FI.php
index 1b545da4dc5..93ecf4c1ea7 100644
--- a/apps/files_encryption/l10n/fi_FI.php
+++ b/apps/files_encryption/l10n/fi_FI.php
@@ -1,10 +1,11 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Tuntematon virhe",
"Recovery key successfully enabled" => "Palautusavain kytketty päälle onnistuneesti",
-"Could not enable recovery key. Please check your recovery key password!" => "Palautusavaimen käyttöönotto epäonnistui. Tarkista palautusavaimesi salasana!",
"Password successfully changed." => "Salasana vaihdettiin onnistuneesti.",
"Could not change the password. Maybe the old password was not correct." => "Salasanan vaihto epäonnistui. Kenties vanha salasana oli väärin.",
"Private key password successfully updated." => "Yksityisen avaimen salasana päivitetty onnistuneesti.",
+"File recovery settings updated" => "Tiedostopalautuksen asetukset päivitetty",
"Unknown error. Please check your system settings or contact your administrator" => "Tuntematon virhe. Tarkista järjestelmän asetukset tai ole yhteydessä ylläpitäjään.",
"Following users are not set up for encryption:" => "Seuraavat käyttäjät eivät ole määrittäneet salausta:",
"Initial encryption started... This can take some time. Please wait." => "Ensimmäinen salauskerta käynnistetty... Tämä saattaa kestää hetken.",
@@ -26,7 +27,6 @@ $TRANSLATIONS = array(
"Old log-in password" => "Vanha kirjautumis-salasana",
"Current log-in password" => "Nykyinen kirjautumis-salasana",
"Update Private Key Password" => "Päivitä yksityisen avaimen salasana",
-"Enable password recovery:" => "Ota salasanan palautus käyttöön:",
-"File recovery settings updated" => "Tiedostopalautuksen asetukset päivitetty"
+"Enable password recovery:" => "Ota salasanan palautus käyttöön:"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/fr.php b/apps/files_encryption/l10n/fr.php
index c78f6aaabd6..44919fbc0a3 100644
--- a/apps/files_encryption/l10n/fr.php
+++ b/apps/files_encryption/l10n/fr.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Erreur Inconnue ",
"Recovery key successfully enabled" => "Clé de récupération activée avec succès",
-"Could not enable recovery key. Please check your recovery key password!" => "Impossible d'activer la clé de récupération. Veuillez vérifier votre mot de passe de clé de récupération !",
-"Recovery key successfully disabled" => "Clé de récupération désactivée avec succès",
"Could not disable recovery key. Please check your recovery key password!" => "Impossible de désactiver la clé de récupération. Veuillez vérifier votre mot de passe de clé de récupération !",
+"Recovery key successfully disabled" => "Clé de récupération désactivée avec succès",
"Password successfully changed." => "Mot de passe changé avec succès ",
"Could not change the password. Maybe the old password was not correct." => "Ne peut pas changer le mot de passe. L'ancien mot de passe est peut-être incorrect.",
"Private key password successfully updated." => "Mot de passe de la clé privé mis à jour avec succès.",
"Could not update the private key password. Maybe the old password was not correct." => "Impossible de mettre à jour le mot de passe de la clé privé. Peut-être que l'ancien mot de passe n'était pas correcte.",
+"File recovery settings updated" => "Paramètres de récupération de fichiers mis à jour",
+"Could not update file recovery" => "Ne peut pas remettre à jour les fichiers de récupération",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "L'application de chiffrement n'est pas initialisée ! Peut-être que cette application a été réactivée pendant votre session. Veuillez essayer de vous déconnecter et ensuite de vous reconnecter pour initialiser l'application de chiffrement.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Votre clef privée est invalide ! Votre mot de passe a probablement été modifié hors de %s (ex. votre annuaire d'entreprise). Vous pouvez mettre à jour le mot de passe de votre clef privée dans les paramètres personnels pour pouvoir récupérer l'accès à vos fichiers chiffrés.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Impossible de déchiffrer ce fichier, il s'agit probablement d'un fichier partagé. Veuillez demander au propriétaire de ce fichier de le repartager avec vous.",
@@ -37,8 +39,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Actuel mot de passe de connexion",
"Update Private Key Password" => "Mettre à jour le mot de passe de votre clé privée",
"Enable password recovery:" => "Activer la récupération du mot de passe :",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Activer cette option vous permettra d'obtenir à nouveau l'accès à vos fichiers chiffrés en cas de perte de mot de passe",
-"File recovery settings updated" => "Paramètres de récupération de fichiers mis à jour",
-"Could not update file recovery" => "Ne peut pas remettre à jour les fichiers de récupération"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Activer cette option vous permettra d'obtenir à nouveau l'accès à vos fichiers chiffrés en cas de perte de mot de passe"
);
$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/apps/files_encryption/l10n/gl.php b/apps/files_encryption/l10n/gl.php
index 7498d0728b8..bf1cea07093 100644
--- a/apps/files_encryption/l10n/gl.php
+++ b/apps/files_encryption/l10n/gl.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Produciuse un erro descoñecido",
"Recovery key successfully enabled" => "Activada satisfactoriamente a chave de recuperación",
-"Could not enable recovery key. Please check your recovery key password!" => "Non foi posíbel activar a chave de recuperación. Comprobe o contrasinal da chave de recuperación!",
-"Recovery key successfully disabled" => "Desactivada satisfactoriamente a chave de recuperación",
"Could not disable recovery key. Please check your recovery key password!" => "Non foi posíbel desactivar a chave de recuperación. Comprobe o contrasinal da chave de recuperación!",
+"Recovery key successfully disabled" => "Desactivada satisfactoriamente a chave de recuperación",
"Password successfully changed." => "O contrasinal foi cambiado satisfactoriamente",
"Could not change the password. Maybe the old password was not correct." => "Non foi posíbel cambiar o contrasinal. Probabelmente o contrasinal antigo non é o correcto.",
"Private key password successfully updated." => "A chave privada foi actualizada correctamente.",
"Could not update the private key password. Maybe the old password was not correct." => "Non foi posíbel actualizar o contrasinal da chave privada. É probábel que o contrasinal antigo non sexa correcto.",
+"File recovery settings updated" => "Actualizouse o ficheiro de axustes de recuperación",
+"Could not update file recovery" => "Non foi posíbel actualizar o ficheiro de recuperación",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Non se iniciou a aplicación de cifrado! Quizais volva a activarse durante a sesión. Tente pechar a sesión e volver iniciala para que tamén se inicie a aplicación de cifrado.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "A chave privada non é correcta! É probábel que o seu contrasinal teña sido cambiado desde o exterior do %s (p.ex. o seu directorio corporativo). Vostede pode actualizar o contrasinal da súa chave privada nos seus axustes persoais para recuperar o acceso aos seus ficheiros",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Non foi posíbel descifrar o ficheiro, probabelmente tratase dun ficheiro compartido. Pídalle ao propietario do ficheiro que volva compartir o ficheiro con vostede.",
@@ -37,8 +39,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Contrasinal actual de acceso",
"Update Private Key Password" => "Actualizar o contrasinal da chave privada",
"Enable password recovery:" => "Activar o contrasinal de recuperación:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Ao activar esta opción permitiráselle volver a obter acceso aos ficheiros cifrados no caso de perda do contrasinal",
-"File recovery settings updated" => "Actualizouse o ficheiro de axustes de recuperación",
-"Could not update file recovery" => "Non foi posíbel actualizar o ficheiro de recuperación"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Ao activar esta opción permitiráselle volver a obter acceso aos ficheiros cifrados no caso de perda do contrasinal"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/he.php b/apps/files_encryption/l10n/he.php
index ca8783d1964..fe514f5b01d 100644
--- a/apps/files_encryption/l10n/he.php
+++ b/apps/files_encryption/l10n/he.php
@@ -1,5 +1,6 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "שגיאה בלתי ידועה",
"Encryption" => "הצפנה"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/hr.php b/apps/files_encryption/l10n/hr.php
index a6a1f164b7f..663c7940e46 100644
--- a/apps/files_encryption/l10n/hr.php
+++ b/apps/files_encryption/l10n/hr.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Nepoznata pogreška",
"Recovery key successfully enabled" => "Ključ za oporavak uspješno aktiviran",
-"Could not enable recovery key. Please check your recovery key password!" => "Ključ za oporavak nije moguće aktivirati. Molimo provjerite svoju lozinku ključa za oporavak!",
-"Recovery key successfully disabled" => "Ključ za ooravak uspješno deaktiviran",
"Could not disable recovery key. Please check your recovery key password!" => "Ključ za oporavak nije moguće deaktivirati. Molimo provjerite svoju lozinku ključa za oporavak!",
+"Recovery key successfully disabled" => "Ključ za ooravak uspješno deaktiviran",
"Password successfully changed." => "Lozinka uspješno promijenjena.",
"Could not change the password. Maybe the old password was not correct." => "Lozinku nije moguće promijeniti. Možda je stara lozinka bila neispravna.",
"Private key password successfully updated." => "Lozinka privatnog ključa uspješno ažurirana.",
"Could not update the private key password. Maybe the old password was not correct." => "Lozinku privatnog ključa nije moguće promijeniti. Možda stara je stara lozinka bila neispravna.",
+"File recovery settings updated" => "Ažurirane postavke za oporavak datoteke",
+"Could not update file recovery" => "Oporavak datoteke nije moguće ažurirati",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Aplikacija šifriranja nije inicijalizirana! Možda je aplikacija šifriranja bila reaktivirana tijekom vaše sesije.Da biste inicijalizirali aplikaciju šifriranja, molimo, pokušajte se odjaviti i ponovno prijaviti.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Vaš privatni ključ nije ispravan! Vjerojatno je vaša lozinka promijenjena izvan %s(npr. vašega korporativnog direktorija). Lozinku svoga privatnog ključa možete ažuriratiu svojim osobnim postavkama da biste obnovili pristup svojim šifriranim datotekama.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Ovu datoteku nije moguće dešifrirati, vjerojatno je riječ o zajedničkoj datoteci. Molimopitajte vlasnika datoteke da je ponovo podijeli s vama.",
@@ -37,8 +39,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Aktualna lozinka za prijavu",
"Update Private Key Password" => "Ažurirajte lozinku privatnog ključa",
"Enable password recovery:" => "Omogućite oporavak lozinke:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "U slučaju gubitka lozinke, aktiviranje ove opcije ponovno će vam pribaviti pristup vašim šifriranim datotekama",
-"File recovery settings updated" => "Ažurirane postavke za oporavak datoteke",
-"Could not update file recovery" => "Oporavak datoteke nije moguće ažurirati"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "U slučaju gubitka lozinke, aktiviranje ove opcije ponovno će vam pribaviti pristup vašim šifriranim datotekama"
);
$PLURAL_FORMS = "nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;";
diff --git a/apps/files_encryption/l10n/hu_HU.php b/apps/files_encryption/l10n/hu_HU.php
index 6cb781af49e..6c77da95331 100644
--- a/apps/files_encryption/l10n/hu_HU.php
+++ b/apps/files_encryption/l10n/hu_HU.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Ismeretlen hiba",
"Recovery key successfully enabled" => "A helyreállítási kulcs sikeresen bekapcsolva",
-"Could not enable recovery key. Please check your recovery key password!" => "A helyreállítási kulcsot nem lehetett engedélyezni. Ellenőrizze a helyreállítási kulcsa jelszavát!",
-"Recovery key successfully disabled" => "A helyreállítási kulcs sikeresen kikapcsolva",
"Could not disable recovery key. Please check your recovery key password!" => "A helyreállítási kulcsot nem lehetett kikapcsolni. Ellenőrizze a helyreállítási kulcsa jelszavát!",
+"Recovery key successfully disabled" => "A helyreállítási kulcs sikeresen kikapcsolva",
"Password successfully changed." => "A jelszót sikeresen megváltoztattuk.",
"Could not change the password. Maybe the old password was not correct." => "A jelszót nem lehet megváltoztatni! Lehet, hogy hibás volt a régi jelszó.",
"Private key password successfully updated." => "A személyes kulcsának jelszava frissítésre került.",
"Could not update the private key password. Maybe the old password was not correct." => "A személyes kulcsa jelszavát nem lehetett frissíteni. Lehet, hogy hibás volt a régi jelszó.",
+"File recovery settings updated" => "A fájlhelyreállítási beállítások frissültek",
+"Could not update file recovery" => "A fájlhelyreállítás nem frissíthető",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "A titkosítási modul nincs elindítva! Talán a munkafolyamat közben került engedélyezésre. Kérjük jelentkezzen ki majd ismét jelentkezzen be, hogy a titkosítási modul megfelelően elinduljon!",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Az állományok titkosításához használt titkos kulcsa érvénytelen. Valószínűleg a %s rendszeren kívül változtatta meg a jelszavát (pl. a munkahelyi címtárban). A személyes beállításoknál frissítheti a titkos kulcsát, hogy ismét elérhesse a titkosított állományait.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Az állományt nem sikerült dekódolni, valószínűleg ez egy megosztott fájl. Kérje meg az állomány tulajdonosát, hogy újra ossza meg Önnel ezt az állományt!",
@@ -33,8 +35,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Jelenlegi bejelentkezési jelszó",
"Update Private Key Password" => "A személyest kulcs jelszó frissítése",
"Enable password recovery:" => "Jelszó-visszaállítás bekapcsolása",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Ez az opció lehetővé teszi, hogy a titkosított állományok tartalmát visszanyerjük abban az esetben, ha elfelejti a jelszavát",
-"File recovery settings updated" => "A fájlhelyreállítási beállítások frissültek",
-"Could not update file recovery" => "A fájlhelyreállítás nem frissíthető"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Ez az opció lehetővé teszi, hogy a titkosított állományok tartalmát visszanyerjük abban az esetben, ha elfelejti a jelszavát"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/ia.php b/apps/files_encryption/l10n/ia.php
new file mode 100644
index 00000000000..513184ba1cd
--- /dev/null
+++ b/apps/files_encryption/l10n/ia.php
@@ -0,0 +1,5 @@
+<?php
+$TRANSLATIONS = array(
+"Unknown error" => "Error Incognite"
+);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/id.php b/apps/files_encryption/l10n/id.php
index 868b9cabfa1..c31c3e52089 100644
--- a/apps/files_encryption/l10n/id.php
+++ b/apps/files_encryption/l10n/id.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Galat tidak diketahui",
"Recovery key successfully enabled" => "Kunci pemulihan berhasil diaktifkan",
-"Could not enable recovery key. Please check your recovery key password!" => "Tidak dapat mengaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!",
-"Recovery key successfully disabled" => "Kunci pemulihan berhasil dinonaktifkan",
"Could not disable recovery key. Please check your recovery key password!" => "Tidak dapat menonaktifkan kunci pemulihan. Silakan periksa sandi kunci pemulihan Anda!",
+"Recovery key successfully disabled" => "Kunci pemulihan berhasil dinonaktifkan",
"Password successfully changed." => "Sandi berhasil diubah",
"Could not change the password. Maybe the old password was not correct." => "Tidak dapat mengubah sandi. Kemungkinan sandi lama yang dimasukkan salah.",
"Private key password successfully updated." => "Sandi kunci privat berhasil diperbarui.",
"Could not update the private key password. Maybe the old password was not correct." => "Tidak dapat memperbarui sandi kunci privat. Kemungkinan sandi lama yang Anda masukkan salah.",
+"File recovery settings updated" => "Pengaturan pemulihan berkas diperbarui",
+"Could not update file recovery" => "Tidak dapat memperbarui pemulihan berkas",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Tidak dapat mendekripsi berkas ini, mungkin ini adalah berkas bersama. Silakan meminta pemilik berkas ini untuk membagikan kembali dengan Anda.",
"Missing requirements." => "Persyaratan yang hilang.",
"Following users are not set up for encryption:" => "Pengguna berikut belum diatur untuk enkripsi:",
@@ -29,8 +31,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Sandi masuk saat ini",
"Update Private Key Password" => "Perbarui Sandi Kunci Privat",
"Enable password recovery:" => "Aktifkan sandi pemulihan:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Mengaktifkan opsi ini memungkinkan Anda untuk mendapatkan kembali akses ke berkas terenkripsi Anda dalam kasus kehilangan sandi",
-"File recovery settings updated" => "Pengaturan pemulihan berkas diperbarui",
-"Could not update file recovery" => "Tidak dapat memperbarui pemulihan berkas"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Mengaktifkan opsi ini memungkinkan Anda untuk mendapatkan kembali akses ke berkas terenkripsi Anda dalam kasus kehilangan sandi"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_encryption/l10n/it.php b/apps/files_encryption/l10n/it.php
index 01f31c8106d..d727ba16123 100644
--- a/apps/files_encryption/l10n/it.php
+++ b/apps/files_encryption/l10n/it.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Errore sconosciuto",
"Recovery key successfully enabled" => "Chiave di ripristino abilitata correttamente",
-"Could not enable recovery key. Please check your recovery key password!" => "Impossibile abilitare la chiave di ripristino. Verifica la password della chiave di ripristino.",
-"Recovery key successfully disabled" => "Chiave di ripristinata disabilitata correttamente",
"Could not disable recovery key. Please check your recovery key password!" => "Impossibile disabilitare la chiave di ripristino. Verifica la password della chiave di ripristino.",
+"Recovery key successfully disabled" => "Chiave di ripristinata disabilitata correttamente",
"Password successfully changed." => "Password modificata correttamente.",
"Could not change the password. Maybe the old password was not correct." => "Impossibile cambiare la password. Forse la vecchia password non era corretta.",
"Private key password successfully updated." => "Password della chiave privata aggiornata correttamente.",
"Could not update the private key password. Maybe the old password was not correct." => "Impossibile aggiornare la password della chiave privata. Forse la vecchia password non era corretta.",
+"File recovery settings updated" => "Impostazioni di ripristino dei file aggiornate",
+"Could not update file recovery" => "Impossibile aggiornare il ripristino dei file",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Applicazione di cifratura non inizializzata. Forse l'applicazione è stata riabilitata durante la tua sessione. Prova a disconnetterti e ad effettuare nuovamente l'accesso per inizializzarla.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "La tua chiave privata non è valida! Forse la password è stata cambiata al di fuori di %s (ad es. la directory aziendale). Puoi aggiornare la password della chiave privata nelle impostazioni personali per ottenere nuovamente l'accesso ai file cifrati.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Impossibile decifrare questo file, probabilmente è un file condiviso. Chiedi al proprietario del file di condividere nuovamente il file con te.",
@@ -37,8 +39,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Password di accesso attuale",
"Update Private Key Password" => "Aggiorna la password della chiave privata",
"Enable password recovery:" => "Abilita il ripristino della password:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "L'abilitazione di questa opzione ti consentirà di accedere nuovamente ai file cifrati in caso di perdita della password",
-"File recovery settings updated" => "Impostazioni di ripristino dei file aggiornate",
-"Could not update file recovery" => "Impossibile aggiornare il ripristino dei file"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "L'abilitazione di questa opzione ti consentirà di accedere nuovamente ai file cifrati in caso di perdita della password"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/ja.php b/apps/files_encryption/l10n/ja.php
index e9950b3ac97..61a2f085a08 100644
--- a/apps/files_encryption/l10n/ja.php
+++ b/apps/files_encryption/l10n/ja.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "不明なエラー",
"Recovery key successfully enabled" => "リカバリ用のキーを正常に有効にしました",
-"Could not enable recovery key. Please check your recovery key password!" => "リカバリ用のキーを有効にできませんでした。リカバリ用のキーのパスワードを確認してください!",
-"Recovery key successfully disabled" => "リカバリ用のキーを正常に無効化しました",
"Could not disable recovery key. Please check your recovery key password!" => "リカバリ用のキーを無効化できませんでした。リカバリ用のキーのパスワードを確認してください!",
+"Recovery key successfully disabled" => "リカバリ用のキーを正常に無効化しました",
"Password successfully changed." => "パスワードを変更できました。",
"Could not change the password. Maybe the old password was not correct." => "パスワードを変更できませんでした。古いパスワードが間違っているかもしれません。",
"Private key password successfully updated." => "秘密鍵のパスワードが正常に更新されました。",
"Could not update the private key password. Maybe the old password was not correct." => "秘密鍵のパスワードを更新できませんでした。古いパスワードが正確でない場合があります。",
+"File recovery settings updated" => "ファイルリカバリ設定を更新しました",
+"Could not update file recovery" => "ファイルリカバリを更新できませんでした",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "セッション中に暗号化アプリを再度有効にされたため、暗号化アプリが初期化されていません。暗号化アプリを初期化するため、ログアウトしてログインしなおしてください。",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "プライベートキーが有効ではありません!パスワードが%sの外部で変更された(例: 共同ディレクトリ)と思われます。個人設定でプライベートキーのパスワードを更新して、暗号化ファイルへのアクセスを回復することができます。",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "このファイルを復号化できません、共有ファイルの可能性があります。ファイルの所有者にお願いして、ファイルを共有しなおしてもらってください。",
@@ -37,8 +39,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "現在のログインパスワード",
"Update Private Key Password" => "秘密鍵のパスワードを更新",
"Enable password recovery:" => "パスワードリカバリを有効に:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "このオプションを有効にすると、パスワードを紛失した場合も、暗号化されたファイルに再度アクセスすることができるようになります。",
-"File recovery settings updated" => "ファイルリカバリ設定を更新しました",
-"Could not update file recovery" => "ファイルリカバリを更新できませんでした"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "このオプションを有効にすると、パスワードを紛失した場合も、暗号化されたファイルに再度アクセスすることができるようになります。"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_encryption/l10n/ka_GE.php b/apps/files_encryption/l10n/ka_GE.php
index d0634634778..f426e9b5ce7 100644
--- a/apps/files_encryption/l10n/ka_GE.php
+++ b/apps/files_encryption/l10n/ka_GE.php
@@ -1,5 +1,6 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "უცნობი შეცდომა",
"Encryption" => "ენკრიპცია"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_encryption/l10n/km.php b/apps/files_encryption/l10n/km.php
index e095f96faa3..9c700dfec15 100644
--- a/apps/files_encryption/l10n/km.php
+++ b/apps/files_encryption/l10n/km.php
@@ -1,5 +1,6 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "មិន​ស្គាល់​កំហុស",
"Password successfully changed." => "បាន​ប្ដូរ​ពាក្យ​សម្ងាត់​ដោយ​ជោគជ័យ។",
"Could not change the password. Maybe the old password was not correct." => "មិន​អាច​ប្ដូរ​ពាក្យ​សម្ងាត់​បាន​ទេ។ ប្រហែល​ពាក្យ​សម្ងាត់​ចាស់​មិន​ត្រឹម​ត្រូវ។",
"Encryption" => "កូដនីយកម្ម",
diff --git a/apps/files_encryption/l10n/ko.php b/apps/files_encryption/l10n/ko.php
index f93c66bc4f2..d90a98448f9 100644
--- a/apps/files_encryption/l10n/ko.php
+++ b/apps/files_encryption/l10n/ko.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "알 수 없는 오류",
"Recovery key successfully enabled" => "복구 키가 성공적으로 활성화되었습니다",
-"Could not enable recovery key. Please check your recovery key password!" => "복구 키를 활성화 할 수 없습니다. 복구 키의 암호를 확인해 주세요!",
-"Recovery key successfully disabled" => "복구 키가 성공적으로 비활성화 되었습니다",
"Could not disable recovery key. Please check your recovery key password!" => "복구 키를 비활성화 할 수 없습니다. 복구 키의 암호를 확인해주세요!",
+"Recovery key successfully disabled" => "복구 키가 성공적으로 비활성화 되었습니다",
"Password successfully changed." => "암호가 성공적으로 변경되었습니다",
"Could not change the password. Maybe the old password was not correct." => "암호를 변경할 수 없습니다. 예전 암호가 정확하지 않은 것 같습니다.",
"Private key password successfully updated." => "개인 키 암호가 성공적으로 업데이트 됨.",
"Could not update the private key password. Maybe the old password was not correct." => "개인 키 암호를 업데이트할 수 없습니다. 이전 암호가 올바르지 않은 것 같습니다.",
+"File recovery settings updated" => "파일 복구 설정 업데이트됨",
+"Could not update file recovery" => "파일 복구를 업데이트할 수 없습니다",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "암호화 앱이 초기화되지 않았습니다! 암호화 앱이 다시 활성화된 것 같습니다. 암호화 앱을 초기화하려면 로그아웃했다 다시 로그인하십시오.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "개인 키가 올바르지 않습니다! 암호가 %s(예: 회사 디렉터리) 외부에서 변경된 것 같습니다. 암호화된 파일에 다시 접근하려면 개인 설정에서 개인 키 암호를 수정하십시오.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "이 파일을 복호화할 수 없습니다. 공유된 파일일 수도 있습니다. 파일 소유자에게 공유를 다시 요청하십시오.",
@@ -32,8 +34,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "현재 로그인 암호",
"Update Private Key Password" => "개인 키 암호 업데이트",
"Enable password recovery:" => "암호 복구 사용:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "이 옵션을 사용하면 암호를 잊었을 때 암호화된 파일에 다시 접근할 수 있습니다",
-"File recovery settings updated" => "파일 복구 설정 업데이트됨",
-"Could not update file recovery" => "파일 복구를 업데이트할 수 없습니다"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "이 옵션을 사용하면 암호를 잊었을 때 암호화된 파일에 다시 접근할 수 있습니다"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_encryption/l10n/lb.php b/apps/files_encryption/l10n/lb.php
index a33f4969b09..d9287f6dec9 100644
--- a/apps/files_encryption/l10n/lb.php
+++ b/apps/files_encryption/l10n/lb.php
@@ -1,5 +1,5 @@
<?php
$TRANSLATIONS = array(
-"Saving..." => "Speicheren..."
+"Unknown error" => "Et ass en onbekannte Fehler opgetrueden"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/lt_LT.php b/apps/files_encryption/l10n/lt_LT.php
index 1fdba43f9e7..837ace4a607 100644
--- a/apps/files_encryption/l10n/lt_LT.php
+++ b/apps/files_encryption/l10n/lt_LT.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Neatpažinta klaida",
"Recovery key successfully enabled" => "Atkūrimo raktas sėkmingai įjungtas",
-"Could not enable recovery key. Please check your recovery key password!" => "Neišėjo įjungti jūsų atkūrimo rakto. Prašome jį patikrinti!",
-"Recovery key successfully disabled" => "Atkūrimo raktas sėkmingai išjungtas",
"Could not disable recovery key. Please check your recovery key password!" => "Neišėjo išjungti jūsų atkūrimo rakto. Prašome jį patikrinti!",
+"Recovery key successfully disabled" => "Atkūrimo raktas sėkmingai išjungtas",
"Password successfully changed." => "Slaptažodis sėkmingai pakeistas",
"Could not change the password. Maybe the old password was not correct." => "Slaptažodis nebuvo pakeistas. Gali būti, kad buvo neteisingai suvestas senasis.",
"Private key password successfully updated." => "Privataus rakto slaptažodis buvo sėkmingai atnaujintas.",
"Could not update the private key password. Maybe the old password was not correct." => "Nepavyko atnaujinti privataus rakto slaptažodžio. Gali būti, kad buvo neteisingai suvestas senasis.",
+"File recovery settings updated" => "Failų atkūrimo nustatymai pakeisti",
+"Could not update file recovery" => "Neišėjo atnaujinti failų atkūrimo",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Šifravimo programa nepaleista! Galbūt šifravimo programa buvo įjungta dar kartą Jūsų sesijos metu. Prašome atsijungti ir vėl prisijungti, kad paleisti šifravimo programą.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Jūsų privatus raktas yra netinkamas! Panašu, kad Jūsų slaptažodis buvo pakeistas už %s (pvz. Jūsų organizacijos kataloge). Galite atnaujinti savo privataus rakto slaptažodį savo asmeniniuose nustatymuose, kad atkurti prieigą prie savo šifruotų failų.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Failo iššifruoti nepavyko, gali būti jog jis yra pasidalintas su jumis. Paprašykite failo savininko, kad jums iš naujo pateiktų šį failą.",
@@ -32,8 +34,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Dabartinis prisijungimo slaptažodis",
"Update Private Key Password" => "Atnaujinti privataus rakto slaptažodį",
"Enable password recovery:" => "Įjungti slaptažodžio atkūrimą:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Įjungus šią funkciją jums bus suteiktas pakartotinis priėjimas prie Jūsų šifruotų failų pamiršus slaptažodį.",
-"File recovery settings updated" => "Failų atkūrimo nustatymai pakeisti",
-"Could not update file recovery" => "Neišėjo atnaujinti failų atkūrimo"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Įjungus šią funkciją jums bus suteiktas pakartotinis priėjimas prie Jūsų šifruotų failų pamiršus slaptažodį."
);
$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/apps/files_encryption/l10n/lv.php b/apps/files_encryption/l10n/lv.php
index cbf8b7cbdaf..367eac18795 100644
--- a/apps/files_encryption/l10n/lv.php
+++ b/apps/files_encryption/l10n/lv.php
@@ -1,5 +1,6 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Nezināma kļūda",
"Encryption" => "Šifrēšana"
);
$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);";
diff --git a/apps/files_encryption/l10n/mk.php b/apps/files_encryption/l10n/mk.php
index 08a88ff1bbf..1a1e18f2231 100644
--- a/apps/files_encryption/l10n/mk.php
+++ b/apps/files_encryption/l10n/mk.php
@@ -1,5 +1,6 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Непозната грешка",
"Password successfully changed." => "Лозинката е успешно променета.",
"Could not change the password. Maybe the old password was not correct." => "Лозинката не можеше да се промени. Можеби старата лозинка не беше исправна.",
"Missing requirements." => "Барања кои недостасуваат.",
diff --git a/apps/files_encryption/l10n/nb_NO.php b/apps/files_encryption/l10n/nb_NO.php
index 408af4c60f0..343aeba9f08 100644
--- a/apps/files_encryption/l10n/nb_NO.php
+++ b/apps/files_encryption/l10n/nb_NO.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Ukjent feil",
"Recovery key successfully enabled" => "Gjenopprettingsnøkkel aktivert",
-"Could not enable recovery key. Please check your recovery key password!" => "Klarte ikke å aktivere gjenopprettingsnøkkel. Sjekk passordet for gjenopprettingsnøkkelen.",
-"Recovery key successfully disabled" => "Gjenopprettingsnøkkel ble deaktivert",
"Could not disable recovery key. Please check your recovery key password!" => "Klarte ikke å deaktivere gjenopprettingsnøkkel. Sjekk passordet for gjenopprettingsnøkkelen.",
+"Recovery key successfully disabled" => "Gjenopprettingsnøkkel ble deaktivert",
"Password successfully changed." => "Passordet ble endret.",
"Could not change the password. Maybe the old password was not correct." => "Klarte ikke å endre passordet. Kanskje gammelt passord ikke var korrekt.",
"Private key password successfully updated." => "Passord for privat nøkkel ble oppdatert.",
"Could not update the private key password. Maybe the old password was not correct." => "Klarte ikke å oppdatere passord for privat nøkkel. Kanskje gammelt passord ikke var korrekt.",
+"File recovery settings updated" => "Innstillinger for gjenoppretting av filer ble oppdatert",
+"Could not update file recovery" => "Klarte ikke å oppdatere gjenoppretting av filer",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Krypterings-app ikke initialisert! Kanskje krypterings-appen ble aktivert på nytt i løpet av økten din. Prøv å logge ut og logge inn igjen for å initialisere krypterings-appen.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Din private nøkkel er ikke gyldig! Sannsynligvis ble passordet ditt endret utenfor %s. (f.eks. din bedriftskatalog). Du kan oppdatere passordet for din private nøkkel i dine personlige innstillinger for å gjenvinne tilgang til de krypterte filene dine.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Kan ikke dekryptere denne filen. Dette er sannsynligvis en delt fil. Spør eieren av filen om å dele den med deg på nytt.",
@@ -37,8 +39,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Nåværende påloggingspassord",
"Update Private Key Password" => "Oppdater passord for privat nøkkel",
"Enable password recovery:" => "Aktiver gjenoppretting av passord:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Aktivering av dette valget tillater deg å gjenerobre tilgang til dine krypterte filer i tilfelle du mister passordet ditt.",
-"File recovery settings updated" => "Innstillinger for gjenoppretting av filer ble oppdatert",
-"Could not update file recovery" => "Klarte ikke å oppdatere gjenoppretting av filer"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Aktivering av dette valget tillater deg å gjenerobre tilgang til dine krypterte filer i tilfelle du mister passordet ditt."
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/nl.php b/apps/files_encryption/l10n/nl.php
index 4c3f925621b..3dd7665d729 100644
--- a/apps/files_encryption/l10n/nl.php
+++ b/apps/files_encryption/l10n/nl.php
@@ -1,13 +1,21 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Onbekende fout",
+"Missing recovery key password" => "Ontbrekende wachtwoord herstelsleutel",
+"Please repeat the recovery key password" => "Herhaal het herstelsleutel wachtwoord",
+"Repeated recovery key password does not match the provided recovery key password" => "Het herhaalde herstelsleutel wachtwoord kwam niet overeen met het eerdere herstelsleutel wachtwoord ",
"Recovery key successfully enabled" => "Herstelsleutel succesvol geactiveerd",
-"Could not enable recovery key. Please check your recovery key password!" => "Kon herstelsleutel niet activeren. Controleer het wachtwoord van uw herstelsleutel!",
-"Recovery key successfully disabled" => "Herstelsleutel succesvol gedeactiveerd",
"Could not disable recovery key. Please check your recovery key password!" => "Kon herstelsleutel niet deactiveren. Controleer het wachtwoord van uw herstelsleutel!",
+"Recovery key successfully disabled" => "Herstelsleutel succesvol gedeactiveerd",
+"Please provide the old recovery password" => "Geef het oude herstelwachtwoord op",
+"Please provide a new recovery password" => "Geef een nieuw herstelwachtwoord op",
+"Please repeat the new recovery password" => "Herhaal het nieuwe herstelwachtwoord",
"Password successfully changed." => "Wachtwoord succesvol gewijzigd.",
"Could not change the password. Maybe the old password was not correct." => "Kon wachtwoord niet wijzigen. Wellicht oude wachtwoord niet juist ingevoerd.",
"Private key password successfully updated." => "Privésleutel succesvol bijgewerkt.",
"Could not update the private key password. Maybe the old password was not correct." => "Kon het wachtwoord van de privésleutel niet wijzigen. Misschien was het oude wachtwoord onjuist.",
+"File recovery settings updated" => "Bestandsherstel instellingen bijgewerkt",
+"Could not update file recovery" => "Kon bestandsherstel niet bijwerken",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Crypto app niet geïnitialiseerd. Misschien werd de crypto app geheractiveerd tijdens de sessie. Log uit en log daarna opnieuw in om de crypto app te initialiseren.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Uw privésleutel is niet geldig! Waarschijnlijk is uw wachtwoord gewijzigd buiten %s (bijv. uw corporate directory). U kunt uw privésleutel wachtwoord in uw persoonlijke instellingen bijwerken om toegang te krijgen tot uw versleutelde bestanden.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Kan dit bestand niet ontcijferen, waarschijnlijk is het een gedeeld bestand, Vraag de eigenaar om het bestand opnieuw met u te delen.",
@@ -37,8 +45,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Huidige wachtwoord",
"Update Private Key Password" => "Bijwerken wachtwoord Privésleutel",
"Enable password recovery:" => "Activeren wachtwoord herstel:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Het activeren van deze optie maakt het mogelijk om uw versleutelde bestanden te benaderen als uw wachtwoord kwijt is",
-"File recovery settings updated" => "Bestandsherstel instellingen bijgewerkt",
-"Could not update file recovery" => "Kon bestandsherstel niet bijwerken"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Het activeren van deze optie maakt het mogelijk om uw versleutelde bestanden te benaderen als uw wachtwoord kwijt is"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/nn_NO.php b/apps/files_encryption/l10n/nn_NO.php
index c472655c8b0..042104c5fb5 100644
--- a/apps/files_encryption/l10n/nn_NO.php
+++ b/apps/files_encryption/l10n/nn_NO.php
@@ -1,5 +1,6 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Ukjend feil",
"Encryption" => "Kryptering"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/pa.php b/apps/files_encryption/l10n/pa.php
index 58670990409..771dd8b4497 100644
--- a/apps/files_encryption/l10n/pa.php
+++ b/apps/files_encryption/l10n/pa.php
@@ -1,5 +1,5 @@
<?php
$TRANSLATIONS = array(
-"Saving..." => "...ਸੰਭਾਲਿਆ ਜਾ ਰਿਹਾ ਹੈ"
+"Unknown error" => "ਅਣਜਾਣ ਗਲਤੀ"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/pl.php b/apps/files_encryption/l10n/pl.php
index 5129dbafb20..b7a66462ef2 100644
--- a/apps/files_encryption/l10n/pl.php
+++ b/apps/files_encryption/l10n/pl.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Nieznany błąd",
"Recovery key successfully enabled" => "Klucz odzyskiwania włączony",
-"Could not enable recovery key. Please check your recovery key password!" => "Nie można włączyć klucza odzyskiwania. Proszę sprawdzić swoje hasło odzyskiwania!",
-"Recovery key successfully disabled" => "Klucz odzyskiwania wyłączony",
"Could not disable recovery key. Please check your recovery key password!" => "Nie można wyłączyć klucza odzyskiwania. Proszę sprawdzić swoje hasło odzyskiwania!",
+"Recovery key successfully disabled" => "Klucz odzyskiwania wyłączony",
"Password successfully changed." => "Zmiana hasła udana.",
"Could not change the password. Maybe the old password was not correct." => "Nie można zmienić hasła. Może stare hasło nie było poprawne.",
"Private key password successfully updated." => "Pomyślnie zaktualizowano hasło klucza prywatnego.",
"Could not update the private key password. Maybe the old password was not correct." => "Nie można zmienić prywatnego hasła. Może stare hasło nie było poprawne.",
+"File recovery settings updated" => "Ustawienia odzyskiwania plików zmienione",
+"Could not update file recovery" => "Nie można zmienić pliku odzyskiwania",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Szyfrowanie aplikacja nie została zainicjowane! Może szyfrowanie aplikacji zostało ponownie włączone podczas tej sesji. Spróbuj się wylogować i zalogować ponownie aby zainicjować szyfrowanie aplikacji.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Klucz prywatny nie jest poprawny! Prawdopodobnie Twoje hasło zostało zmienione poza %s (np. w katalogu firmy). Aby odzyskać dostęp do zaszyfrowanych plików można zaktualizować hasło klucza prywatnego w ustawieniach osobistych.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Nie można odszyfrować tego pliku, prawdopodobnie jest to plik udostępniony. Poproś właściciela pliku o ponowne udostępnianie pliku Tobie.",
@@ -37,8 +39,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Bieżące hasło logowania",
"Update Private Key Password" => "Aktualizacja hasła klucza prywatnego",
"Enable password recovery:" => "Włącz hasło odzyskiwania:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Włączenie tej opcji umożliwia otrzymać dostęp do zaszyfrowanych plików w przypadku utraty hasła",
-"File recovery settings updated" => "Ustawienia odzyskiwania plików zmienione",
-"Could not update file recovery" => "Nie można zmienić pliku odzyskiwania"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Włączenie tej opcji umożliwia otrzymać dostęp do zaszyfrowanych plików w przypadku utraty hasła"
);
$PLURAL_FORMS = "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/apps/files_encryption/l10n/pt_BR.php b/apps/files_encryption/l10n/pt_BR.php
index 3b6895c0216..b5403e7a4ea 100644
--- a/apps/files_encryption/l10n/pt_BR.php
+++ b/apps/files_encryption/l10n/pt_BR.php
@@ -1,13 +1,17 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Erro desconhecido",
+"Missing recovery key password" => "Senha da chave de recuperação em falta",
+"Please repeat the recovery key password" => "Por favor, repita a senha da chave de recuperação",
"Recovery key successfully enabled" => "Recuperação de chave habilitada com sucesso",
-"Could not enable recovery key. Please check your recovery key password!" => "Impossível habilitar recuperação de chave. Por favor verifique sua senha para recuperação de chave!",
-"Recovery key successfully disabled" => "Recuperação de chave desabilitada com sucesso",
"Could not disable recovery key. Please check your recovery key password!" => "Impossível desabilitar recuperação de chave. Por favor verifique sua senha para recuperação de chave!",
+"Recovery key successfully disabled" => "Recuperação de chave desabilitada com sucesso",
"Password successfully changed." => "Senha alterada com sucesso.",
"Could not change the password. Maybe the old password was not correct." => "Não foi possível alterar a senha. Talvez a senha antiga não estava correta.",
"Private key password successfully updated." => "Senha de chave privada atualizada com sucesso.",
"Could not update the private key password. Maybe the old password was not correct." => "Não foi possível atualizar a senha de chave privada. Talvez a senha antiga esteja incorreta.",
+"File recovery settings updated" => "Configurações de recuperação de arquivo atualizado",
+"Could not update file recovery" => "Não foi possível atualizar a recuperação de arquivos",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Aplicativo de criptografia não foi inicializado! Talvez o aplicativo de criptografia tenha sido reativado durante essa sessão. Por favor, tente fazer logoff e login novamente para inicializar o aplicativo de criptografia.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Sua chave privada não é válida! Provavelmente sua senha foi alterada fora de %s (por exemplo, seu diretório corporativo). Você pode atualizar sua senha de chave privada em suas configurações pessoais para recuperar o acesso a seus arquivos criptografados.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Este arquivo não pode ser decriptado, provavelmente este é um arquivo compartilhado. Poe favoe peça ao dono do arquivo para compartilha-lo com você.",
@@ -37,8 +41,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Senha de login atual",
"Update Private Key Password" => "Atualizar Senha de Chave Privada",
"Enable password recovery:" => "Habilitar recuperação de senha:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Habilitar essa opção vai permitir que você obtenha novamente acesso aos seus arquivos encriptados em caso de perda de senha",
-"File recovery settings updated" => "Configurações de recuperação de arquivo atualizado",
-"Could not update file recovery" => "Não foi possível atualizar a recuperação de arquivos"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Habilitar essa opção vai permitir que você obtenha novamente acesso aos seus arquivos encriptados em caso de perda de senha"
);
$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/apps/files_encryption/l10n/pt_PT.php b/apps/files_encryption/l10n/pt_PT.php
index a34f78c1eea..aede53f6414 100644
--- a/apps/files_encryption/l10n/pt_PT.php
+++ b/apps/files_encryption/l10n/pt_PT.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Erro Desconhecido",
"Recovery key successfully enabled" => "A chave de recuperação foi ativada com sucesso",
-"Could not enable recovery key. Please check your recovery key password!" => "Não foi possível ativar a chave de recuperação. Por favor, verifique a sua senha da chave de recuperação!",
-"Recovery key successfully disabled" => "A chave de recuperação foi desativada com sucesso",
"Could not disable recovery key. Please check your recovery key password!" => "Não foi possível desativar a chave de recuperação. Por favor, verifique a senha da chave de recuperação.",
+"Recovery key successfully disabled" => "A chave de recuperação foi desativada com sucesso",
"Password successfully changed." => "Senha alterada com sucesso.",
"Could not change the password. Maybe the old password was not correct." => "Não foi possível alterar a senha. Possivelmente a senha antiga não está correta.",
"Private key password successfully updated." => "A senha da chave privada foi atualizada com sucesso. ",
"Could not update the private key password. Maybe the old password was not correct." => "Não foi possível atualizar a senha da chave privada. A senha antiga poderia não estar correta.",
+"File recovery settings updated" => "As definições da recuperação de ficheiro foram atualizadas",
+"Could not update file recovery" => "Não foi possível atualizar a recuperação de ficheiro",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "A app de encriptação não foi inicializada! A app de encriptação poderá ter sido reativada durante a sua sessão. Por favor, tente terminar a sessão e iniciá-la de seguida para inicializar a app de encriptação.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "A sua chave privada não é válida! Provavelmente a senha foi alterada fora do %s (ex. a sua diretoria corporativa). Pode atualizar a sua senha da chave privada nas definições pessoais para recuperar o acesso aos seus ficheiros encriptados. ",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Não é possível desencriptar este ficheiro, provavelmente é um ficheiro partilhado. Por favor, peça ao proprietário do ficheiro para voltar a partilhar o ficheiro consigo.",
@@ -37,8 +39,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Senha de iniciar sessão atual",
"Update Private Key Password" => "Atualizar Senha da Chave Privada ",
"Enable password recovery:" => "Ativar a recuperação da senha:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Ao ativar esta opção, irá poder obter o acesso aos seus ficheiros encriptados, se perder a senha",
-"File recovery settings updated" => "As definições da recuperação de ficheiro foram atualizadas",
-"Could not update file recovery" => "Não foi possível atualizar a recuperação de ficheiro"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Ao ativar esta opção, irá poder obter o acesso aos seus ficheiros encriptados, se perder a senha"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/ro.php b/apps/files_encryption/l10n/ro.php
index 92cf92c2cd3..07b12b0f8a8 100644
--- a/apps/files_encryption/l10n/ro.php
+++ b/apps/files_encryption/l10n/ro.php
@@ -1,19 +1,19 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Eroare necunoscută",
"Recovery key successfully enabled" => "Cheia de recupeare a fost activata cu succes",
-"Could not enable recovery key. Please check your recovery key password!" => "Nu s-a putut activa cheia de recuperare. Verifica parola de recuperare!",
-"Recovery key successfully disabled" => "Cheia de recuperare dezactivata cu succes",
"Could not disable recovery key. Please check your recovery key password!" => "Nu am putut dezactiva cheia de recuperare. Verifica parola de recuperare!",
+"Recovery key successfully disabled" => "Cheia de recuperare dezactivata cu succes",
"Password successfully changed." => "Parola a fost modificată cu succes.",
"Could not change the password. Maybe the old password was not correct." => "Parola nu a putut fi schimbata. Poate ca parola veche este incorecta.",
"Private key password successfully updated." => "Cheia privata a fost actualizata cu succes",
"Could not update the private key password. Maybe the old password was not correct." => "Nu am putut actualiza parola pentru cheia privata. Poate ca parola veche este incorecta.",
+"File recovery settings updated" => "Setarile pentru recuperarea fisierelor au fost actualizate",
+"Could not update file recovery" => "Nu am putut actualiza recuperarea de fisiere",
"Encryption" => "Încriptare",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Aplicatia de criptare este activata dar tastatura nu este initializata , va rugam deconectati-va si reconectati-va",
"Enabled" => "Activat",
"Disabled" => "Dezactivat",
-"Change Password" => "Schimbă parola",
-"File recovery settings updated" => "Setarile pentru recuperarea fisierelor au fost actualizate",
-"Could not update file recovery" => "Nu am putut actualiza recuperarea de fisiere"
+"Change Password" => "Schimbă parola"
);
$PLURAL_FORMS = "nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));";
diff --git a/apps/files_encryption/l10n/ru.php b/apps/files_encryption/l10n/ru.php
index 6f2fab89304..16c0f05cc71 100644
--- a/apps/files_encryption/l10n/ru.php
+++ b/apps/files_encryption/l10n/ru.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Неизвестная ошибка",
"Recovery key successfully enabled" => "Ключ восстановления успешно установлен",
-"Could not enable recovery key. Please check your recovery key password!" => "Невозможно включить ключ восстановления. Проверьте правильность пароля от ключа!",
-"Recovery key successfully disabled" => "Ключ восстановления успешно отключен",
"Could not disable recovery key. Please check your recovery key password!" => "Невозможно выключить ключ восстановления. Проверьте правильность пароля от ключа!",
+"Recovery key successfully disabled" => "Ключ восстановления успешно отключен",
"Password successfully changed." => "Пароль изменен удачно.",
"Could not change the password. Maybe the old password was not correct." => "Невозможно изменить пароль. Возможно старый пароль не был верен.",
"Private key password successfully updated." => "Пароль секретного ключа успешно обновлён.",
"Could not update the private key password. Maybe the old password was not correct." => "Невозможно обновить пароль от секретного ключа. Возможно, старый пароль указан неверно.",
+"File recovery settings updated" => "Настройки файла восстановления обновлены",
+"Could not update file recovery" => "Невозможно обновить файл восстановления",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Приложение шифрации не инициализированно! Возможно приложение шифрации было реактивировано во время вашей сессии. Пожалуйста, попробуйте выйти и войти снова чтобы проинициализировать приложение шифрации.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Ваш секретный ключ не действителен! Вероятно, ваш пароль был изменен вне %s (например, корпоративный каталог). Вы можете обновить секретный ключ в личных настройках на странице восстановления доступа к зашифрованным файлам. ",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Не могу расшифровать файл, возможно это опубликованный файл. Пожалуйста, попросите владельца файла поделиться им с вами еще раз.",
@@ -37,8 +39,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Текущйи пароль для входа",
"Update Private Key Password" => "Обновить пароль от секретного ключа",
"Enable password recovery:" => "Включить восстановление пароля:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Включение этой опции позволит вам получить доступ к своим зашифрованным файлам в случае утери пароля",
-"File recovery settings updated" => "Настройки файла восстановления обновлены",
-"Could not update file recovery" => "Невозможно обновить файл восстановления"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Включение этой опции позволит вам получить доступ к своим зашифрованным файлам в случае утери пароля"
);
$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/apps/files_encryption/l10n/sk_SK.php b/apps/files_encryption/l10n/sk_SK.php
index 4f59f8c0440..2a35448539f 100644
--- a/apps/files_encryption/l10n/sk_SK.php
+++ b/apps/files_encryption/l10n/sk_SK.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Neznáma chyba",
"Recovery key successfully enabled" => "Záchranný kľúč bol úspešne povolený",
-"Could not enable recovery key. Please check your recovery key password!" => "Nepodarilo sa povoliť záchranný kľúč. Skontrolujte prosím Vaše heslo záchranného kľúča!",
-"Recovery key successfully disabled" => "Záchranný kľúč bol úspešne zakázaný",
"Could not disable recovery key. Please check your recovery key password!" => "Nepodarilo sa zakázať záchranný kľúč. Skontrolujte prosím Vaše heslo záchranného kľúča!",
+"Recovery key successfully disabled" => "Záchranný kľúč bol úspešne zakázaný",
"Password successfully changed." => "Heslo úspešne zmenené.",
"Could not change the password. Maybe the old password was not correct." => "Nemožno zmeniť heslo. Pravdepodobne nebolo staré heslo zadané správne.",
"Private key password successfully updated." => "Heslo súkromného kľúča je úspešne aktualizované.",
"Could not update the private key password. Maybe the old password was not correct." => "Nemožno aktualizovať heslo súkromného kľúča. Možno nebolo staré heslo správne.",
+"File recovery settings updated" => "Nastavenie obnovy súborov aktualizované",
+"Could not update file recovery" => "Nemožno aktualizovať obnovenie súborov",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Šifrovacia aplikácia nie je inicializovaná. Je možné, že aplikácia bola znova aktivovaná počas vášho prihlasovania. Pokúste sa odhlásiť a znova prihlásiť pre inicializáciu šifrovania.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Váš súkromný kľúč nie je platný! Možno bolo vaše heslo zmenené mimo %s (napr. firemný priečinok). Môžete si aktualizovať heslo svojho ​​súkromného kľúča vo vašom osobnom nastavení, ak si chcete obnoviť prístup k šifrovaným súborom.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Tento súbor sa nepodarilo dešifrovať, pravdepodobne je zdieľaný. Požiadajte majiteľa súboru, aby ho s vami znovu vyzdieľal.",
@@ -37,8 +39,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Súčasné prihlasovacie heslo",
"Update Private Key Password" => "Aktualizovať heslo súkromného kľúča",
"Enable password recovery:" => "Povoliť obnovu hesla:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Povolenie Vám umožní znovu získať prístup k Vašim zašifrovaným súborom, ak stratíte heslo",
-"File recovery settings updated" => "Nastavenie obnovy súborov aktualizované",
-"Could not update file recovery" => "Nemožno aktualizovať obnovenie súborov"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Povolenie Vám umožní znovu získať prístup k Vašim zašifrovaným súborom, ak stratíte heslo"
);
$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";
diff --git a/apps/files_encryption/l10n/sl.php b/apps/files_encryption/l10n/sl.php
index aeaf80ac6ca..7c0f438fe4e 100644
--- a/apps/files_encryption/l10n/sl.php
+++ b/apps/files_encryption/l10n/sl.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Neznana napaka",
"Recovery key successfully enabled" => "Ključ za obnovitev gesla je uspešno nastavljen",
-"Could not enable recovery key. Please check your recovery key password!" => "Ključa za obnovitev gesla ni mogoče nastaviti. Preverite ključ!",
-"Recovery key successfully disabled" => "Ključ za obnovitev gesla je uspešno onemogočen",
"Could not disable recovery key. Please check your recovery key password!" => "Ključa za obnovitev gesla ni mogoče onemogočiti. Preverite ključ!",
+"Recovery key successfully disabled" => "Ključ za obnovitev gesla je uspešno onemogočen",
"Password successfully changed." => "Geslo je uspešno spremenjeno.",
"Could not change the password. Maybe the old password was not correct." => "Gesla ni mogoče spremeniti. Morda vnos starega gesla ni pravilen.",
"Private key password successfully updated." => "Zasebni ključ za geslo je uspešno posodobljen.",
"Could not update the private key password. Maybe the old password was not correct." => "Zasebnega ključa za geslo ni mogoče posodobiti. Morda vnos starega gesla ni bil pravilen.",
+"File recovery settings updated" => "Nastavitve obnavljanja dokumentov so posodobljene",
+"Could not update file recovery" => "Nastavitev za obnavljanje dokumentov ni mogoče posodobiti",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Program za šifriranje ni začet. Morda je bil program ponovno omogočen šele med zagonom trenutne seje. Odjavite se in se nato prijavite nazaj. S tem morda razrešite napako.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Zasebni ključ ni veljaven. Najverjetneje je bilo geslo spremenjeno izven %s (najverjetneje je to poslovna mapa). Geslo lahko posodobite med osebnimi nastavitvami in s tem obnovite dostop do šifriranih datotek.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Te datoteke ni mogoče šifrirati, ker je to najverjetneje datoteka v souporabi. Prosite lastnika datoteke, da jo da ponovno v souporabo.",
@@ -37,8 +39,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Trenutno geslo",
"Update Private Key Password" => "Posodobi zasebni ključ",
"Enable password recovery:" => "Omogoči obnovitev gesla:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Nastavitev te možnosti omogoča ponovno pridobitev dostopa do šifriranih datotek, v primeru, da boste geslo pozabili.",
-"File recovery settings updated" => "Nastavitve obnavljanja dokumentov so posodobljene",
-"Could not update file recovery" => "Nastavitev za obnavljanje dokumentov ni mogoče posodobiti"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Nastavitev te možnosti omogoča ponovno pridobitev dostopa do šifriranih datotek, v primeru, da boste geslo pozabili."
);
$PLURAL_FORMS = "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);";
diff --git a/apps/files_encryption/l10n/sq.php b/apps/files_encryption/l10n/sq.php
index f53db8e151c..85cb322bd8c 100644
--- a/apps/files_encryption/l10n/sq.php
+++ b/apps/files_encryption/l10n/sq.php
@@ -1,5 +1,6 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Gabim panjohur",
"Encryption" => "Kodifikimi"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/sv.php b/apps/files_encryption/l10n/sv.php
index 70c417666bf..896e53b1397 100644
--- a/apps/files_encryption/l10n/sv.php
+++ b/apps/files_encryption/l10n/sv.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Okänt fel",
"Recovery key successfully enabled" => "Återställningsnyckeln har framgångsrikt aktiverats",
-"Could not enable recovery key. Please check your recovery key password!" => "Kunde inte aktivera återställningsnyckeln. Vänligen kontrollera ditt lösenord för återställningsnyckeln!",
-"Recovery key successfully disabled" => "Återställningsnyckeln har framgångsrikt inaktiverats",
"Could not disable recovery key. Please check your recovery key password!" => "Kunde inte inaktivera återställningsnyckeln. Vänligen kontrollera ditt lösenord för återställningsnyckeln!",
+"Recovery key successfully disabled" => "Återställningsnyckeln har framgångsrikt inaktiverats",
"Password successfully changed." => "Ändringen av lösenordet lyckades.",
"Could not change the password. Maybe the old password was not correct." => "Kunde inte ändra lösenordet. Kanske det gamla lösenordet inte var rätt.",
"Private key password successfully updated." => "Den privata nyckelns lösenord uppdaterades utan problem.",
"Could not update the private key password. Maybe the old password was not correct." => "Kunde inte uppdatera lösenordet för den privata nyckeln. Kanske var det gamla lösenordet fel.",
+"File recovery settings updated" => "Inställningarna för filåterställning har uppdaterats",
+"Could not update file recovery" => "Kunde inte uppdatera filåterställning",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Krypteringsprogrammet kunde inte initieras! Möjligen blev krypteringsprogrammet återaktiverad under din session. Försök med att logga ut och in igen för att initiera krypteringsprogrammet.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Din privata lösenordsnyckel är inte giltig! Troligen har ditt lösenord ändrats utanför %s (t.ex. i företagets katalogtjänst). Du kan uppdatera den privata lösenordsnyckeln under dina personliga inställningar för att återfå tillgång till dina filer.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Kan ej dekryptera denna fil, förmodligen är det en delad fil. Be ägaren av filen att dela den med dig.",
@@ -35,8 +37,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Nuvarande inloggningslösenord",
"Update Private Key Password" => "Uppdatera lösenordet för din privata nyckel",
"Enable password recovery:" => "Aktivera lösenordsåterställning",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Genom att aktivera detta alternativ kommer du kunna återfå tillgång till dina krypterade filer om du skulle förlora/glömma ditt lösenord",
-"File recovery settings updated" => "Inställningarna för filåterställning har uppdaterats",
-"Could not update file recovery" => "Kunde inte uppdatera filåterställning"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Genom att aktivera detta alternativ kommer du kunna återfå tillgång till dina krypterade filer om du skulle förlora/glömma ditt lösenord"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/th_TH.php b/apps/files_encryption/l10n/th_TH.php
index cc670e425a6..12555767d4f 100644
--- a/apps/files_encryption/l10n/th_TH.php
+++ b/apps/files_encryption/l10n/th_TH.php
@@ -1,5 +1,6 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "ข้อผิดพลาดที่ไม่ทราบสาเหตุ",
"Encryption" => "การเข้ารหัส"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_encryption/l10n/tr.php b/apps/files_encryption/l10n/tr.php
index 7055859a33d..7d5553ee649 100644
--- a/apps/files_encryption/l10n/tr.php
+++ b/apps/files_encryption/l10n/tr.php
@@ -1,13 +1,21 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Bilinmeyen hata",
+"Missing recovery key password" => "Eksik kurtarma anahtarı parolası",
+"Please repeat the recovery key password" => "Lütfen kurtarma anahtarı parolasını yenileyin",
+"Repeated recovery key password does not match the provided recovery key password" => "Yenilenen kurtarma anahtarı parolası, belirtilen kurtarma anahtarı parolası ile eşleşmiyor",
"Recovery key successfully enabled" => "Kurtarma anahtarı başarıyla etkinleştirildi",
-"Could not enable recovery key. Please check your recovery key password!" => "Kurtarma anahtarı etkinleştirilemedi. Lütfen kurtarma anahtarı parolanızı kontrol edin!",
-"Recovery key successfully disabled" => "Kurtarma anahtarı başarıyla devre dışı bırakıldı",
"Could not disable recovery key. Please check your recovery key password!" => "Kurtarma anahtarı devre dışı bırakılamadı. Lütfen kurtarma anahtarı parolanızı kontrol edin!",
+"Recovery key successfully disabled" => "Kurtarma anahtarı başarıyla devre dışı bırakıldı",
+"Please provide the old recovery password" => "Lütfen eski kurtarma parolasını girin",
+"Please provide a new recovery password" => "Lütfen yeni bir kurtarma parolası girin",
+"Please repeat the new recovery password" => "Lütfen yeni kurtarma parolasını yenileyin",
"Password successfully changed." => "Parola başarıyla değiştirildi.",
"Could not change the password. Maybe the old password was not correct." => "Parola değiştirilemedi. Eski parolanız doğru olmayabilir.",
"Private key password successfully updated." => "Özel anahtar parolası başarıyla güncellendi.",
"Could not update the private key password. Maybe the old password was not correct." => "Özel anahtar parolası güncellenemedi. Eski parola hatalı olabilir.",
+"File recovery settings updated" => "Dosya kurtarma ayarları güncellendi",
+"Could not update file recovery" => "Dosya kurtarma güncellenemedi",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "Şifreleme uygulaması başlatılamadı! Oturumunuz sırasında şifreleme uygulaması tekrar etkinleştirilmiş olabilir. Lütfen şifreleme uygulamasını başlatmak için oturumu kapatıp yeniden oturum açmayı deneyin.",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Özel anahtarınız geçerli değil! Muhtemelen parolanız %s dışarısında değiştirildi (örn. şirket dizininde). Gizli anahtar parolanızı kişisel ayarlarınızda güncelleyerek şifreli dosyalarınıza erişimi kurtarabilirsiniz.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "Bu dosya muhtemelen bir paylaşılan dosya olduğundan şifrelemesi kaldırılamıyor. Lütfen dosyayı sizinle bir daha paylaşması için dosya sahibi ile iletişime geçin.",
@@ -37,8 +45,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Geçerli oturum açma parolası",
"Update Private Key Password" => "Özel Anahtar Parolasını Güncelle",
"Enable password recovery:" => "Parola kurtarmayı etkinleştir:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Bu seçeneği etkinleştirmek, parola kaybı durumunda şifrelenmiş dosyalarınıza erişimi yeniden kazanmanızı sağlayacaktır",
-"File recovery settings updated" => "Dosya kurtarma ayarları güncellendi",
-"Could not update file recovery" => "Dosya kurtarma güncellenemedi"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Bu seçeneği etkinleştirmek, parola kaybı durumunda şifrelenmiş dosyalarınıza erişimi yeniden kazanmanızı sağlayacaktır"
);
$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/apps/files_encryption/l10n/ug.php b/apps/files_encryption/l10n/ug.php
index da9144bb930..b05008575f8 100644
--- a/apps/files_encryption/l10n/ug.php
+++ b/apps/files_encryption/l10n/ug.php
@@ -1,5 +1,6 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "يوچۇن خاتالىق",
"Encryption" => "شىفىرلاش"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_encryption/l10n/uk.php b/apps/files_encryption/l10n/uk.php
index 179987a8567..a2f67ebec75 100644
--- a/apps/files_encryption/l10n/uk.php
+++ b/apps/files_encryption/l10n/uk.php
@@ -1,5 +1,6 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Невідома помилка",
"Encryption" => "Шифрування",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову",
"Change Password" => "Змінити Пароль"
diff --git a/apps/files_encryption/l10n/ur_PK.php b/apps/files_encryption/l10n/ur_PK.php
new file mode 100644
index 00000000000..fab26a330e9
--- /dev/null
+++ b/apps/files_encryption/l10n/ur_PK.php
@@ -0,0 +1,5 @@
+<?php
+$TRANSLATIONS = array(
+"Unknown error" => "غیر معروف خرابی"
+);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/vi.php b/apps/files_encryption/l10n/vi.php
index dc8108e6308..65c4bcf1f71 100644
--- a/apps/files_encryption/l10n/vi.php
+++ b/apps/files_encryption/l10n/vi.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "Lỗi chưa biết",
"Recovery key successfully enabled" => "Khóa khôi phục kích hoạt thành công",
-"Could not enable recovery key. Please check your recovery key password!" => "Không thể kích hoạt khóa khôi phục. Vui lòng kiểm tra mật khẩu khóa khôi phục!",
-"Recovery key successfully disabled" => "Vô hiệu hóa khóa khôi phục thành công",
"Could not disable recovery key. Please check your recovery key password!" => "Không thể vô hiệu hóa khóa khôi phục. Vui lòng kiểm tra mật khẩu khóa khôi phục!",
+"Recovery key successfully disabled" => "Vô hiệu hóa khóa khôi phục thành công",
"Password successfully changed." => "Đã đổi mật khẩu.",
"Could not change the password. Maybe the old password was not correct." => "Không thể đổi mật khẩu. Có lẽ do mật khẩu cũ không đúng.",
"Private key password successfully updated." => "Cập nhật thành công mật khẩu khóa cá nhân",
"Could not update the private key password. Maybe the old password was not correct." => "Không thể cập nhật mật khẩu khóa cá nhân. Có thể mật khẩu cũ không đúng",
+"File recovery settings updated" => "Đã cập nhật thiết lập khôi phục tập tin ",
+"Could not update file recovery" => "Không thể cập nhật khôi phục tập tin",
"Encryption" => "Mã hóa",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" => "Ứng dụng mã hóa đã được kích hoạt nhưng bạn chưa khởi tạo khóa. Vui lòng đăng xuất ra và đăng nhập lại",
"Enabled" => "Bật",
@@ -18,8 +20,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "Mật khẩu đăng nhập hiện tại",
"Update Private Key Password" => "Cập nhật mật khẩu khóa cá nhân",
"Enable password recovery:" => "Kích hoạt khôi phục mật khẩu:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Tùy chọn này sẽ cho phép bạn tái truy cập đến các tập tin mã hóa trong trường hợp mất mật khẩu",
-"File recovery settings updated" => "Đã cập nhật thiết lập khôi phục tập tin ",
-"Could not update file recovery" => "Không thể cập nhật khôi phục tập tin"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Tùy chọn này sẽ cho phép bạn tái truy cập đến các tập tin mã hóa trong trường hợp mất mật khẩu"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_encryption/l10n/zh_CN.php b/apps/files_encryption/l10n/zh_CN.php
index 1b736f1470f..74d7a36f569 100644
--- a/apps/files_encryption/l10n/zh_CN.php
+++ b/apps/files_encryption/l10n/zh_CN.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "未知错误",
"Recovery key successfully enabled" => "恢复密钥成功启用",
-"Could not enable recovery key. Please check your recovery key password!" => "不能启用恢复密钥。请检查恢复密钥密码!",
-"Recovery key successfully disabled" => "恢复密钥成功禁用",
"Could not disable recovery key. Please check your recovery key password!" => "不能禁用恢复密钥。请检查恢复密钥密码!",
+"Recovery key successfully disabled" => "恢复密钥成功禁用",
"Password successfully changed." => "密码修改成功。",
"Could not change the password. Maybe the old password was not correct." => "不能修改密码。旧密码可能不正确。",
"Private key password successfully updated." => "私钥密码成功更新。",
"Could not update the private key password. Maybe the old password was not correct." => "无法更新私钥密码。可能旧密码不正确。",
+"File recovery settings updated" => "文件恢复设置已更新",
+"Could not update file recovery" => "不能更新文件恢复",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "加密应用还没有初始化!可能加密应用在你会话期间已被重新启用。请注销并重新登录,以初始化加密应用。",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "您的私有密钥无效!也许是您在 %s 外更改了密码 (比如,在您的公司目录)。您可以在个人设置里更新您的私钥密码来恢复访问你的加密文件。",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => " 无法解密这个文件(或许这是一个共享文件?),请询问文件所有者重新与您分享这个文件。",
@@ -35,8 +37,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "当前登录密码",
"Update Private Key Password" => "更新私钥密码",
"Enable password recovery:" => "启用密码恢复:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "启用该项将允许你在密码丢失后取回您的加密文件",
-"File recovery settings updated" => "文件恢复设置已更新",
-"Could not update file recovery" => "不能更新文件恢复"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "启用该项将允许你在密码丢失后取回您的加密文件"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_encryption/l10n/zh_HK.php b/apps/files_encryption/l10n/zh_HK.php
index c9480c429f5..ea559b6f0db 100644
--- a/apps/files_encryption/l10n/zh_HK.php
+++ b/apps/files_encryption/l10n/zh_HK.php
@@ -1,5 +1,6 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "不明錯誤",
"Encryption" => "加密",
"Enabled" => "啟用",
"Disabled" => "停用",
diff --git a/apps/files_encryption/l10n/zh_TW.php b/apps/files_encryption/l10n/zh_TW.php
index 32e5fb17bcf..d4028b58310 100644
--- a/apps/files_encryption/l10n/zh_TW.php
+++ b/apps/files_encryption/l10n/zh_TW.php
@@ -1,13 +1,15 @@
<?php
$TRANSLATIONS = array(
+"Unknown error" => "未知的錯誤",
"Recovery key successfully enabled" => "還原金鑰已成功開啟",
-"Could not enable recovery key. Please check your recovery key password!" => "無法啟用還原金鑰。請檢查您的還原金鑰密碼!",
-"Recovery key successfully disabled" => "還原金鑰已成功停用",
"Could not disable recovery key. Please check your recovery key password!" => "無法停用還原金鑰。請檢查您的還原金鑰密碼!",
+"Recovery key successfully disabled" => "還原金鑰已成功停用",
"Password successfully changed." => "成功變更密碼。",
"Could not change the password. Maybe the old password was not correct." => "無法變更密碼,或許是輸入的舊密碼不正確。",
"Private key password successfully updated." => "私人金鑰密碼已成功更新。",
"Could not update the private key password. Maybe the old password was not correct." => "無法更新私人金鑰密碼。可能舊的密碼不正確。",
+"File recovery settings updated" => "檔案還原設定已更新",
+"Could not update file recovery" => "無法更新檔案還原設定",
"Encryption app not initialized! Maybe the encryption app was re-enabled during your session. Please try to log out and log back in to initialize the encryption app." => "加密功能未初始化!可能加密功能需要重新啟用在現在的連線上。請試著登出再登入來初始化加密功能。",
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "您的私人金鑰不正確!可能您的密碼已經變更在外部的 %s (例如:您的企業目錄)。您可以在您的個人設定中更新私人金鑰密碼來還原存取您的加密檔案。",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." => "無法解密這個檔案,也許這是分享的檔案。請詢問檔案所有人重新分享檔案給您。",
@@ -34,8 +36,6 @@ $TRANSLATIONS = array(
"Current log-in password" => "目前的登入密碼",
"Update Private Key Password" => "更新私人金鑰密碼",
"Enable password recovery:" => "啟用密碼還原:",
-"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "啟用這個選項將會允許您因忘記密碼但需要存取您的加密檔案",
-"File recovery settings updated" => "檔案還原設定已更新",
-"Could not update file recovery" => "無法更新檔案還原設定"
+"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "啟用這個選項將會允許您因忘記密碼但需要存取您的加密檔案"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_encryption/templates/settings-admin.php b/apps/files_encryption/templates/settings-admin.php
index 2d5f7084c96..d003f245bb3 100644
--- a/apps/files_encryption/templates/settings-admin.php
+++ b/apps/files_encryption/templates/settings-admin.php
@@ -4,8 +4,9 @@
<?php if($_["initStatus"] === \OCA\Encryption\Session::NOT_INITIALIZED): ?>
<?php p($l->t("Encryption App is enabled but your keys are not initialized, please log-out and log-in again")); ?>
<?php else: ?>
- <p>
+ <p id="encryptionSetRecoveryKey">
<?php p($l->t("Enable recovery key (allow to recover users files in case of password loss):")); ?>
+ <span class="msg"></span>
<br/>
<br/>
<input type="password" name="encryptionRecoveryPassword" id="encryptionRecoveryPassword"/>
@@ -19,7 +20,7 @@
id='adminEnableRecovery'
name='adminEnableRecovery'
value='1'
- <?php echo($_["recoveryEnabled"] === '1' ? 'checked="checked"' : 'disabled'); ?> />
+ <?php echo($_["recoveryEnabled"] === '1' ? 'checked="checked"' : ''); ?> />
<label for="adminEnableRecovery"><?php p($l->t("Enabled")); ?></label>
<br/>
@@ -28,13 +29,14 @@
id='adminDisableRecovery'
name='adminEnableRecovery'
value='0'
- <?php echo($_["recoveryEnabled"] === '0' ? 'checked="checked"' : 'disabled'); ?> />
+ <?php echo($_["recoveryEnabled"] === '0' ? 'checked="checked"' : ''); ?> />
<label for="adminDisableRecovery"><?php p($l->t("Disabled")); ?></label>
</p>
<br/><br/>
- <p name="changeRecoveryPasswordBlock" <?php if ($_['recoveryEnabled'] === '0') print_unescaped('class="hidden"');?>>
+ <p name="changeRecoveryPasswordBlock" id="encryptionChangeRecoveryKey" <?php if ($_['recoveryEnabled'] === '0') print_unescaped('class="hidden"');?>>
<strong><?php p($l->t("Change recovery key password:")); ?></strong>
+ <span class="msg"></span>
<br/><br/>
<input
type="password"
@@ -57,10 +59,9 @@
<br/>
<button
type="button"
- name="submitChangeRecoveryKey"
- disabled><?php p($l->t("Change Password")); ?>
+ name="submitChangeRecoveryKey">
+ <?php p($l->t("Change Password")); ?>
</button>
- <span class="msg"></span>
</p>
<?php endif; ?>
</form>
diff --git a/apps/files_encryption/templates/settings-personal.php b/apps/files_encryption/templates/settings-personal.php
index a1221240422..ce8cf6aec28 100644
--- a/apps/files_encryption/templates/settings-personal.php
+++ b/apps/files_encryption/templates/settings-personal.php
@@ -39,8 +39,9 @@
<?php elseif ( $_["recoveryEnabled"] && $_["privateKeySet"] && $_["initialized"] === \OCA\Encryption\Session::INIT_SUCCESSFUL ): ?>
<br />
- <p>
+ <p id="userEnableRecovery">
<label for="userEnableRecovery"><?php p( $l->t( "Enable password recovery:" ) ); ?></label>
+ <span class="msg"></span>
<br />
<em><?php p( $l->t( "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" ) ); ?></em>
<br />
@@ -60,8 +61,6 @@
value='0'
<?php echo ( $_["recoveryEnabledForUser"] === false ? 'checked="checked"' : '' ); ?> />
<label for="userDisableRecovery"><?php p( $l->t( "Disabled" ) ); ?></label>
- <div id="recoveryEnabledSuccess"><?php p( $l->t( 'File recovery settings updated' ) ); ?></div>
- <div id="recoveryEnabledError"><?php p( $l->t( 'Could not update file recovery' ) ); ?></div>
</p>
<?php endif; ?>
</form>
diff --git a/apps/files_external/appinfo/info.xml b/apps/files_external/appinfo/info.xml
index b8bada8e743..6acb58960d4 100644
--- a/apps/files_external/appinfo/info.xml
+++ b/apps/files_external/appinfo/info.xml
@@ -2,11 +2,18 @@
<info>
<id>files_external</id>
<name>External storage support</name>
- <description>Mount external storage sources</description>
+ <description>
+ This application enables administrators to configure connections to external storage provides, such as FTP servers, S3 or SWIFT object stores, Google Drive, Dropbox, other ownCloud servers, WebDAV servers and more. Administrators can choose in the GUI which type of storage to enable, and can mount these storage locations for a user, a group, or the entire system. Users will see a new folder appear in their root ownCloud directory, and then can then access and use it like any other ownCloud folder. External Storage also allows users to share files stored in these external location. In these cases, the credentials for the owner of the file are used then the recipient requests the file from external storage, thereby ensuring that the recipient can get at the file that was shared.
+
+ In addition to the GUI, it is possible to configure external storage manually at the command line. This option provides the advanced user with more flexibility for configuring bulk external storage mounts, as well as setting mount priorities. More information is available in the External Storage GUI documentation and the External Storage Configuration File documentation.
+ </description>
<licence>AGPL</licence>
<author>Robin Appelman, Michael Gapczynski, Vincent Petry</author>
<requiremin>4.93</requiremin>
<shipped>true</shipped>
+ <documentation>
+ <admin>admin-external-storage</admin>
+ </documentation>
<types>
<filesystem/>
</types>
diff --git a/apps/files_external/appinfo/version b/apps/files_external/appinfo/version
index 7dff5b89211..f4778493c50 100644
--- a/apps/files_external/appinfo/version
+++ b/apps/files_external/appinfo/version
@@ -1 +1 @@
-0.2.1 \ No newline at end of file
+0.2.2 \ No newline at end of file
diff --git a/apps/files_external/lib/amazons3.php b/apps/files_external/lib/amazons3.php
index 9daac83e066..808de16c8a8 100644
--- a/apps/files_external/lib/amazons3.php
+++ b/apps/files_external/lib/amazons3.php
@@ -53,6 +53,10 @@ class AmazonS3 extends \OC\Files\Storage\Common {
* @var int
*/
private $timeout = 15;
+ /**
+ * @var int in seconds
+ */
+ private $rescanDelay = 10;
/**
* @param string $path
@@ -68,32 +72,41 @@ class AmazonS3 extends \OC\Files\Storage\Common {
return $path;
}
+ /**
+ * when running the tests wait to let the buckets catch up
+ */
private function testTimeout() {
if ($this->test) {
sleep($this->timeout);
}
}
+ private function isRoot($path) {
+ return $path === '.';
+ }
+
private function cleanKey($path) {
- if ($path === '.') {
+ if ($this->isRoot($path)) {
return '/';
}
return $path;
}
public function __construct($params) {
- if (!isset($params['key']) || !isset($params['secret']) || !isset($params['bucket'])) {
+ if (empty($params['key']) || empty($params['secret']) || empty($params['bucket'])) {
throw new \Exception("Access Key, Secret and Bucket have to be configured.");
}
- $this->id = 'amazon::' . $params['key'] . md5($params['secret']);
+ $this->id = 'amazon::' . $params['bucket'];
+ $this->updateLegacyId($params);
$this->bucket = $params['bucket'];
$scheme = ($params['use_ssl'] === 'false') ? 'http' : 'https';
$this->test = isset($params['test']);
$this->timeout = (!isset($params['timeout'])) ? 15 : $params['timeout'];
- $params['region'] = (!isset($params['region']) || $params['region'] === '') ? 'eu-west-1' : $params['region'];
- $params['hostname'] = (!isset($params['hostname']) || $params['hostname'] === '') ? 's3.amazonaws.com' : $params['hostname'];
+ $this->rescanDelay = (!isset($params['rescanDelay'])) ? 10 : $params['rescanDelay'];
+ $params['region'] = empty($params['region']) ? 'eu-west-1' : $params['region'];
+ $params['hostname'] = empty($params['hostname']) ? 's3.amazonaws.com' : $params['hostname'];
if (!isset($params['port']) || $params['port'] === '') {
$params['port'] = ($params['use_ssl'] === 'false') ? 80 : 443;
}
@@ -112,7 +125,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
if (!$this->connection->doesBucketExist($this->bucket)) {
try {
- $result = $this->connection->createBucket(array(
+ $this->connection->createBucket(array(
'Bucket' => $this->bucket
));
$this->connection->waitUntilBucketExists(array(
@@ -122,19 +135,41 @@ class AmazonS3 extends \OC\Files\Storage\Common {
));
$this->testTimeout();
} catch (S3Exception $e) {
- \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
- throw new \Exception("Creation of bucket failed.");
+ \OCP\Util::logException('files_external', $e);
+ throw new \Exception('Creation of bucket failed. '.$e->getMessage());
}
}
- if (!$this->file_exists('.')) {
- $result = $this->connection->putObject(array(
- 'Bucket' => $this->bucket,
- 'Key' => $this->cleanKey('.'),
- 'Body' => '',
- 'ContentType' => 'httpd/unix-directory',
- 'ContentLength' => 0
- ));
- $this->testTimeout();
+ }
+
+ /**
+ * Updates old storage ids (v0.2.1 and older) that are based on key and secret to new ones based on the bucket name.
+ * TODO Do this in an update.php. requires iterating over all users and loading the mount.json from their home
+ *
+ * @param array $params
+ */
+ public function updateLegacyId (array $params) {
+ $stmt = \OC::$server->getDatabaseConnection()->prepare(
+ 'UPDATE `*PREFIX*storages` SET `id` = ? WHERE `id` = ?'
+ );
+ $oldId = 'amazon::' . $params['key'] . md5($params['secret']);
+ $stmt->execute(array($this->id, $oldId));
+ }
+
+ /**
+ * Remove a file or folder
+ *
+ * @param string $path
+ * @return bool
+ */
+ protected function remove($path) {
+ // remember fileType to reduce http calls
+ $fileType = $this->filetype($path);
+ if ($fileType === 'dir') {
+ return $this->rmdir($path);
+ } else if ($fileType === 'file') {
+ return $this->unlink($path);
+ } else {
+ return false;
}
}
@@ -149,13 +184,11 @@ class AmazonS3 extends \OC\Files\Storage\Common {
$this->connection->putObject(array(
'Bucket' => $this->bucket,
'Key' => $path . '/',
- 'Body' => '',
- 'ContentType' => 'httpd/unix-directory',
- 'ContentLength' => 0
+ 'ContentType' => 'httpd/unix-directory'
));
$this->testTimeout();
} catch (S3Exception $e) {
- \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
+ \OCP\Util::logException('files_external', $e);
return false;
}
@@ -163,32 +196,14 @@ class AmazonS3 extends \OC\Files\Storage\Common {
}
public function file_exists($path) {
- $path = $this->normalizePath($path);
-
- if (!$path) {
- $path = '.';
- } else if ($path != '.' && $this->is_dir($path)) {
- $path .= '/';
- }
-
- try {
- $result = $this->connection->doesObjectExist(
- $this->bucket,
- $this->cleanKey($path)
- );
- } catch (S3Exception $e) {
- \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
- return false;
- }
-
- return $result;
+ return $this->filetype($path) !== false;
}
public function rmdir($path) {
$path = $this->normalizePath($path);
- if ($path === '.') {
+ if ($this->isRoot($path)) {
return $this->clearBucket();
}
@@ -196,55 +211,54 @@ class AmazonS3 extends \OC\Files\Storage\Common {
return false;
}
- // Since there are no real directories on S3, we need
- // to delete all objects prefixed with the path.
- $objects = $this->connection->listObjects(array(
- 'Bucket' => $this->bucket,
- 'Prefix' => $path . '/'
- ));
-
- try {
- $this->connection->deleteObjects(array(
- 'Bucket' => $this->bucket,
- 'Objects' => $objects['Contents']
- ));
- $this->testTimeout();
- } catch (S3Exception $e) {
- \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
- return false;
- }
-
- return true;
+ return $this->batchDelete($path);
}
protected function clearBucket() {
try {
$this->connection->clearBucket($this->bucket);
+ return true;
// clearBucket() is not working with Ceph, so if it fails we try the slower approach
} catch (\Exception $e) {
- try {
- $iterator = $this->connection->getIterator('ListObjects', array(
- 'Bucket' => $this->bucket
- ));
+ return $this->batchDelete();
+ }
+ return false;
+ }
- foreach ($iterator as $object) {
- $this->connection->deleteObject(array(
- 'Bucket' => $this->bucket,
- 'Key' => $object['Key']
- ));
- }
- } catch (S3Exception $e) {
- return false;
- }
+ private function batchDelete ($path = null) {
+ $params = array(
+ 'Bucket' => $this->bucket
+ );
+ if ($path !== null) {
+ $params['Prefix'] = $path . '/';
}
+ try {
+ // Since there are no real directories on S3, we need
+ // to delete all objects prefixed with the path.
+ do {
+ // instead of the iterator, manually loop over the list ...
+ $objects = $this->connection->listObjects($params);
+ // ... so we can delete the files in batches
+ $this->connection->deleteObjects(array(
+ 'Bucket' => $this->bucket,
+ 'Objects' => $objects['Contents']
+ ));
+ $this->testTimeout();
+ // we reached the end when the list is no longer truncated
+ } while ($objects['IsTruncated']);
+ } catch (S3Exception $e) {
+ \OCP\Util::logException('files_external', $e);
+ return false;
+ }
+ return true;
}
public function opendir($path) {
$path = $this->normalizePath($path);
- if ($path === '.') {
+ if ($this->isRoot($path)) {
$path = '';
- } else if ($path) {
+ } else {
$path .= '/';
}
@@ -270,7 +284,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
return opendir('fakedir://amazons3' . $path);
} catch (S3Exception $e) {
- \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
+ \OCP\Util::logException('files_external', $e);
return false;
}
}
@@ -279,27 +293,29 @@ class AmazonS3 extends \OC\Files\Storage\Common {
$path = $this->normalizePath($path);
try {
- if ($this->is_dir($path) && $path != '.') {
- $path .= '/';
- }
-
- $result = $this->connection->headObject(array(
- 'Bucket' => $this->bucket,
- 'Key' => $this->cleanKey($path)
- ));
-
$stat = array();
- $stat['size'] = $result['ContentLength'] ? $result['ContentLength'] : 0;
- if ($result['Metadata']['lastmodified']) {
- $stat['mtime'] = strtotime($result['Metadata']['lastmodified']);
+ if ($this->is_dir($path)) {
+ //folders don't really exist
+ $stat['size'] = -1; //unknown
+ $stat['mtime'] = time() - $this->rescanDelay * 1000;
} else {
- $stat['mtime'] = strtotime($result['LastModified']);
+ $result = $this->connection->headObject(array(
+ 'Bucket' => $this->bucket,
+ 'Key' => $path
+ ));
+
+ $stat['size'] = $result['ContentLength'] ? $result['ContentLength'] : 0;
+ if ($result['Metadata']['lastmodified']) {
+ $stat['mtime'] = strtotime($result['Metadata']['lastmodified']);
+ } else {
+ $stat['mtime'] = strtotime($result['LastModified']);
+ }
}
$stat['atime'] = time();
return $stat;
- } catch (S3Exception $e) {
- \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
+ } catch(S3Exception $e) {
+ \OCP\Util::logException('files_external', $e);
return false;
}
}
@@ -307,19 +323,19 @@ class AmazonS3 extends \OC\Files\Storage\Common {
public function filetype($path) {
$path = $this->normalizePath($path);
+ if ($this->isRoot($path)) {
+ return 'dir';
+ }
+
try {
- if ($path != '.' && $this->connection->doesObjectExist($this->bucket, $path)) {
+ if ($this->connection->doesObjectExist($this->bucket, $path)) {
return 'file';
}
-
- if ($path != '.') {
- $path .= '/';
- }
- if ($this->connection->doesObjectExist($this->bucket, $this->cleanKey($path))) {
+ if ($this->connection->doesObjectExist($this->bucket, $path.'/')) {
return 'dir';
}
} catch (S3Exception $e) {
- \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
+ \OCP\Util::logException('files_external', $e);
return false;
}
@@ -334,13 +350,13 @@ class AmazonS3 extends \OC\Files\Storage\Common {
}
try {
- $result = $this->connection->deleteObject(array(
+ $this->connection->deleteObject(array(
'Bucket' => $this->bucket,
- 'Key' => $this->cleanKey($path)
+ 'Key' => $path
));
$this->testTimeout();
} catch (S3Exception $e) {
- \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
+ \OCP\Util::logException('files_external', $e);
return false;
}
@@ -357,13 +373,13 @@ class AmazonS3 extends \OC\Files\Storage\Common {
self::$tmpFiles[$tmpFile] = $path;
try {
- $result = $this->connection->getObject(array(
+ $this->connection->getObject(array(
'Bucket' => $this->bucket,
- 'Key' => $this->cleanKey($path),
+ 'Key' => $path,
'SaveAs' => $tmpFile
));
} catch (S3Exception $e) {
- \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
+ \OCP\Util::logException('files_external', $e);
return false;
}
@@ -407,10 +423,10 @@ class AmazonS3 extends \OC\Files\Storage\Common {
try {
$result = $this->connection->headObject(array(
'Bucket' => $this->bucket,
- 'Key' => $this->cleanKey($path)
+ 'Key' => $path
));
} catch (S3Exception $e) {
- \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
+ \OCP\Util::logException('files_external', $e);
return false;
}
@@ -427,12 +443,13 @@ class AmazonS3 extends \OC\Files\Storage\Common {
$metadata = array('lastmodified' => $mtime);
}
+ $fileType = $this->filetype($path);
try {
- if ($this->file_exists($path)) {
- if ($this->is_dir($path) && $path != '.') {
+ if ($fileType !== false) {
+ if ($fileType === 'dir' && ! $this->isRoot($path)) {
$path .= '/';
}
- $result = $this->connection->copyObject(array(
+ $this->connection->copyObject(array(
'Bucket' => $this->bucket,
'Key' => $this->cleanKey($path),
'Metadata' => $metadata,
@@ -440,7 +457,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
));
$this->testTimeout();
} else {
- $result = $this->connection->putObject(array(
+ $this->connection->putObject(array(
'Bucket' => $this->bucket,
'Key' => $this->cleanKey($path),
'Metadata' => $metadata,
@@ -449,7 +466,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
$this->testTimeout();
}
} catch (S3Exception $e) {
- \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
+ \OCP\Util::logException('files_external', $e);
return false;
}
@@ -462,32 +479,28 @@ class AmazonS3 extends \OC\Files\Storage\Common {
if ($this->is_file($path1)) {
try {
- $result = $this->connection->copyObject(array(
+ $this->connection->copyObject(array(
'Bucket' => $this->bucket,
'Key' => $this->cleanKey($path2),
'CopySource' => S3Client::encodeKey($this->bucket . '/' . $path1)
));
$this->testTimeout();
} catch (S3Exception $e) {
- \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
+ \OCP\Util::logException('files_external', $e);
return false;
}
} else {
- if ($this->is_dir($path2)) {
- $this->rmdir($path2);
- } else if ($this->file_exists($path2)) {
- $this->unlink($path2);
- }
+ $this->remove($path2);
try {
- $result = $this->connection->copyObject(array(
+ $this->connection->copyObject(array(
'Bucket' => $this->bucket,
'Key' => $path2 . '/',
'CopySource' => S3Client::encodeKey($this->bucket . '/' . $path1 . '/')
));
$this->testTimeout();
} catch (S3Exception $e) {
- \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
+ \OCP\Util::logException('files_external', $e);
return false;
}
@@ -561,7 +574,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
}
try {
- $result = $this->connection->putObject(array(
+ $this->connection->putObject(array(
'Bucket' => $this->bucket,
'Key' => $this->cleanKey(self::$tmpFiles[$tmpFile]),
'SourceFile' => $tmpFile,
@@ -572,7 +585,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
unlink($tmpFile);
} catch (S3Exception $e) {
- \OCP\Util::writeLog('files_external', $e->getMessage(), \OCP\Util::ERROR);
+ \OCP\Util::logException('files_external', $e);
return false;
}
}
diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php
index 952463b8015..92bb891ca21 100755
--- a/apps/files_external/lib/config.php
+++ b/apps/files_external/lib/config.php
@@ -118,6 +118,22 @@ class OC_Mount_Config {
}
$manager->addMount($mount);
}
+
+ if ($data['user']) {
+ $user = \OC::$server->getUserManager()->get($data['user']);
+ $userView = new \OC\Files\View('/' . $user->getUID() . '/files');
+ $changePropagator = new \OC\Files\Cache\ChangePropagator($userView);
+ $etagPropagator = new \OCA\Files_External\EtagPropagator($user, $changePropagator, \OC::$server->getConfig());
+ $etagPropagator->propagateDirtyMountPoints();
+ \OCP\Util::connectHook(
+ \OC\Files\Filesystem::CLASSNAME,
+ \OC\Files\Filesystem::signal_create_mount,
+ $etagPropagator, 'updateHook');
+ \OCP\Util::connectHook(
+ \OC\Files\Filesystem::CLASSNAME,
+ \OC\Files\Filesystem::signal_delete_mount,
+ $etagPropagator, 'updateHook');
+ }
}
/**
@@ -463,6 +479,7 @@ class OC_Mount_Config {
$priority = null) {
$backends = self::getBackends();
$mountPoint = OC\Files\Filesystem::normalizePath($mountPoint);
+ $relMountPoint = $mountPoint;
if ($mountPoint === '' || $mountPoint === '/') {
// can't mount at root folder
return false;
@@ -495,6 +512,10 @@ class OC_Mount_Config {
}
$mountPoints = self::readData($isPersonal ? OCP\User::getUser() : NULL);
+ // who else loves multi-dimensional array ?
+ $isNew = !isset($mountPoints[$mountType]) ||
+ !isset($mountPoints[$mountType][$applicable]) ||
+ !isset($mountPoints[$mountType][$applicable][$mountPoint]);
$mountPoints = self::mergeMountPoints($mountPoints, $mount, $mountType);
// Set default priority if none set
@@ -510,7 +531,19 @@ class OC_Mount_Config {
self::writeData($isPersonal ? OCP\User::getUser() : NULL, $mountPoints);
- return self::getBackendStatus($class, $classOptions, $isPersonal);
+ $result = self::getBackendStatus($class, $classOptions, $isPersonal);
+ if ($result && $isNew) {
+ \OC_Hook::emit(
+ \OC\Files\Filesystem::CLASSNAME,
+ \OC\Files\Filesystem::signal_create_mount,
+ array(
+ \OC\Files\Filesystem::signal_param_path => $relMountPoint,
+ \OC\Files\Filesystem::signal_param_mount_type => $mountType,
+ \OC\Files\Filesystem::signal_param_users => $applicable,
+ )
+ );
+ }
+ return $result;
}
/**
@@ -523,6 +556,7 @@ class OC_Mount_Config {
*/
public static function removeMountPoint($mountPoint, $mountType, $applicable, $isPersonal = false) {
// Verify that the mount point applies for the current user
+ $relMountPoints = $mountPoint;
if ($isPersonal) {
if ($applicable != OCP\User::getUser()) {
return false;
@@ -543,6 +577,15 @@ class OC_Mount_Config {
}
}
self::writeData($isPersonal ? OCP\User::getUser() : NULL, $mountPoints);
+ \OC_Hook::emit(
+ \OC\Files\Filesystem::CLASSNAME,
+ \OC\Files\Filesystem::signal_delete_mount,
+ array(
+ \OC\Files\Filesystem::signal_param_path => $relMountPoints,
+ \OC\Files\Filesystem::signal_param_mount_type => $mountType,
+ \OC\Files\Filesystem::signal_param_users => $applicable,
+ )
+ );
return true;
}
diff --git a/apps/files_external/lib/etagpropagator.php b/apps/files_external/lib/etagpropagator.php
new file mode 100644
index 00000000000..80a3849b150
--- /dev/null
+++ b/apps/files_external/lib/etagpropagator.php
@@ -0,0 +1,126 @@
+<?php
+/**
+ * Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCA\Files_External;
+
+use OC\Files\Filesystem;
+
+/**
+ * Updates the etag of parent folders whenever a new external storage mount
+ * point has been created or deleted. Updates need to be triggered using
+ * the updateHook() method.
+ *
+ * There are two modes of operation:
+ * - for personal mount points, the etag is propagated directly
+ * - for system mount points, a dirty flag is saved in the configuration and
+ * the etag will be updated the next time propagateDirtyMountPoints() is called
+ */
+class EtagPropagator {
+ /**
+ * @var \OCP\IUser
+ */
+ protected $user;
+
+ /**
+ * @var \OC\Files\Cache\ChangePropagator
+ */
+ protected $changePropagator;
+
+ /**
+ * @var \OCP\IConfig
+ */
+ protected $config;
+
+ /**
+ * @param \OCP\IUser $user current user, must match the propagator's
+ * user
+ * @param \OC\Files\Cache\ChangePropagator $changePropagator change propagator
+ * initialized with a view for $user
+ * @param \OCP\IConfig $config
+ */
+ public function __construct($user, $changePropagator, $config) {
+ $this->user = $user;
+ $this->changePropagator = $changePropagator;
+ $this->config = $config;
+ }
+
+ /**
+ * Propagate the etag changes for all mountpoints marked as dirty and mark the mountpoints as clean
+ *
+ * @param int $time
+ */
+ public function propagateDirtyMountPoints($time = null) {
+ if ($time === null) {
+ $time = time();
+ }
+ $mountPoints = $this->getDirtyMountPoints();
+ foreach ($mountPoints as $mountPoint) {
+ $this->changePropagator->addChange($mountPoint);
+ $this->config->setUserValue($this->user->getUID(), 'files_external', $mountPoint, $time);
+ }
+ if (count($mountPoints)) {
+ $this->changePropagator->propagateChanges($time);
+ }
+ }
+
+ /**
+ * Get all mountpoints we need to update the etag for
+ *
+ * @return string[]
+ */
+ protected function getDirtyMountPoints() {
+ $dirty = array();
+ $mountPoints = $this->config->getAppKeys('files_external');
+ foreach ($mountPoints as $mountPoint) {
+ if (substr($mountPoint, 0, 1) === '/') {
+ $updateTime = $this->config->getAppValue('files_external', $mountPoint);
+ $userTime = $this->config->getUserValue($this->user->getUID(), 'files_external', $mountPoint);
+ if ($updateTime > $userTime) {
+ $dirty[] = $mountPoint;
+ }
+ }
+ }
+ return $dirty;
+ }
+
+ /**
+ * @param string $mountPoint
+ * @param int $time
+ */
+ protected function markDirty($mountPoint, $time = null) {
+ if ($time === null) {
+ $time = time();
+ }
+ $this->config->setAppValue('files_external', $mountPoint, $time);
+ }
+
+ /**
+ * Update etags for mount points for known user
+ * For global or group mount points, updating the etag for every user is not feasible
+ * instead we mark the mount point as dirty and update the etag when the filesystem is loaded for the user
+ * For personal mount points, the change is propagated directly
+ *
+ * @param array $params hook parameters
+ * @param int $time update time to use when marking a mount point as dirty
+ */
+ public function updateHook($params, $time = null) {
+ if ($time === null) {
+ $time = time();
+ }
+ $users = $params[Filesystem::signal_param_users];
+ $type = $params[Filesystem::signal_param_mount_type];
+ $mountPoint = $params[Filesystem::signal_param_path];
+ $mountPoint = Filesystem::normalizePath($mountPoint);
+ if ($type === \OC_Mount_Config::MOUNT_TYPE_GROUP or $users === 'all') {
+ $this->markDirty($mountPoint, $time);
+ } else {
+ $this->changePropagator->addChange($mountPoint);
+ $this->changePropagator->propagateChanges($time);
+ }
+ }
+}
diff --git a/apps/files_external/tests/etagpropagator.php b/apps/files_external/tests/etagpropagator.php
new file mode 100644
index 00000000000..7fa1863f962
--- /dev/null
+++ b/apps/files_external/tests/etagpropagator.php
@@ -0,0 +1,328 @@
+<?php
+/**
+ * Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Tests\Files_External;
+
+use OC\Files\Filesystem;
+use OC\User\User;
+
+class EtagPropagator extends \PHPUnit_Framework_TestCase {
+ protected function getUser() {
+ return new User(uniqid(), null);
+ }
+
+ /**
+ * @return \PHPUnit_Framework_MockObject_MockObject | \OC\Files\Cache\ChangePropagator
+ */
+ protected function getChangePropagator() {
+ return $this->getMockBuilder('\OC\Files\Cache\ChangePropagator')
+ ->disableOriginalConstructor()
+ ->getMock();
+ }
+
+ /**
+ * @return \PHPUnit_Framework_MockObject_MockObject | \OCP\IConfig
+ */
+ protected function getConfig() {
+ $appConfig = array();
+ $userConfig = array();
+ $mock = $this->getMockBuilder('\OCP\IConfig')
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $mock->expects($this->any())
+ ->method('getAppValue')
+ ->will($this->returnCallback(function ($appId, $key, $default = null) use (&$appConfig) {
+ if (isset($appConfig[$appId]) and isset($appConfig[$appId][$key])) {
+ return $appConfig[$appId][$key];
+ } else {
+ return $default;
+ }
+ }));
+ $mock->expects($this->any())
+ ->method('setAppValue')
+ ->will($this->returnCallback(function ($appId, $key, $value) use (&$appConfig) {
+ if (!isset($appConfig[$appId])) {
+ $appConfig[$appId] = array();
+ }
+ $appConfig[$appId][$key] = $value;
+ }));
+ $mock->expects($this->any())
+ ->method('getAppKeys')
+ ->will($this->returnCallback(function ($appId) use (&$appConfig) {
+ if (!isset($appConfig[$appId])) {
+ $appConfig[$appId] = array();
+ }
+ return array_keys($appConfig[$appId]);
+ }));
+
+ $mock->expects($this->any())
+ ->method('getUserValue')
+ ->will($this->returnCallback(function ($userId, $appId, $key, $default = null) use (&$userConfig) {
+ if (isset($userConfig[$userId]) and isset($userConfig[$userId][$appId]) and isset($userConfig[$userId][$appId][$key])) {
+ return $userConfig[$userId][$appId][$key];
+ } else {
+ return $default;
+ }
+ }));
+ $mock->expects($this->any())
+ ->method('setUserValue')
+ ->will($this->returnCallback(function ($userId, $appId, $key, $value) use (&$userConfig) {
+ if (!isset($userConfig[$userId])) {
+ $userConfig[$userId] = array();
+ }
+ if (!isset($userConfig[$userId][$appId])) {
+ $userConfig[$userId][$appId] = array();
+ }
+ $userConfig[$userId][$appId][$key] = $value;
+ }));
+
+ return $mock;
+ }
+
+ public function testSingleUserMount() {
+ $time = time();
+ $user = $this->getUser();
+ $config = $this->getConfig();
+ $changePropagator = $this->getChangePropagator();
+ $propagator = new \OCA\Files_External\EtagPropagator($user, $changePropagator, $config);
+
+ $changePropagator->expects($this->once())
+ ->method('addChange')
+ ->with('/test');
+ $changePropagator->expects($this->once())
+ ->method('propagateChanges')
+ ->with($time);
+
+ $propagator->updateHook(array(
+ Filesystem::signal_param_path => '/test',
+ Filesystem::signal_param_mount_type => \OC_Mount_Config::MOUNT_TYPE_USER,
+ Filesystem::signal_param_users => $user->getUID(),
+ ), $time);
+ }
+
+ public function testGlobalMountNoDirectUpdate() {
+ $time = time();
+ $user = $this->getUser();
+ $config = $this->getConfig();
+ $changePropagator = $this->getChangePropagator();
+ $propagator = new \OCA\Files_External\EtagPropagator($user, $changePropagator, $config);
+
+ // not updated directly
+ $changePropagator->expects($this->never())
+ ->method('addChange');
+ $changePropagator->expects($this->never())
+ ->method('propagateChanges');
+
+ $propagator->updateHook(array(
+ Filesystem::signal_param_path => '/test',
+ Filesystem::signal_param_mount_type => \OC_Mount_Config::MOUNT_TYPE_USER,
+ Filesystem::signal_param_users => 'all',
+ ), $time);
+
+ // mount point marked as dirty
+ $this->assertEquals(array('/test'), $config->getAppKeys('files_external'));
+ $this->assertEquals($time, $config->getAppValue('files_external', '/test'));
+ }
+
+ public function testGroupMountNoDirectUpdate() {
+ $time = time();
+ $user = $this->getUser();
+ $config = $this->getConfig();
+ $changePropagator = $this->getChangePropagator();
+ $propagator = new \OCA\Files_External\EtagPropagator($user, $changePropagator, $config);
+
+ // not updated directly
+ $changePropagator->expects($this->never())
+ ->method('addChange');
+ $changePropagator->expects($this->never())
+ ->method('propagateChanges');
+
+ $propagator->updateHook(array(
+ Filesystem::signal_param_path => '/test',
+ Filesystem::signal_param_mount_type => \OC_Mount_Config::MOUNT_TYPE_GROUP,
+ Filesystem::signal_param_users => 'test',
+ ), $time);
+
+ // mount point marked as dirty
+ $this->assertEquals(array('/test'), $config->getAppKeys('files_external'));
+ $this->assertEquals($time, $config->getAppValue('files_external', '/test'));
+ }
+
+ public function testGlobalMountNoDirtyMountPoint() {
+ $time = time();
+ $user = $this->getUser();
+ $config = $this->getConfig();
+ $changePropagator = $this->getChangePropagator();
+ $propagator = new \OCA\Files_External\EtagPropagator($user, $changePropagator, $config);
+
+ $changePropagator->expects($this->never())
+ ->method('addChange');
+ $changePropagator->expects($this->never())
+ ->method('propagateChanges');
+
+ $propagator->propagateDirtyMountPoints($time);
+
+ $this->assertEquals(0, $config->getUserValue($user->getUID(), 'files_external', '/test', 0));
+ }
+
+ public function testGlobalMountDirtyMountPointFirstTime() {
+ $time = time();
+ $user = $this->getUser();
+ $config = $this->getConfig();
+ $changePropagator = $this->getChangePropagator();
+ $propagator = new \OCA\Files_External\EtagPropagator($user, $changePropagator, $config);
+
+ $config->setAppValue('files_external', '/test', $time - 10);
+
+ $changePropagator->expects($this->once())
+ ->method('addChange')
+ ->with('/test');
+ $changePropagator->expects($this->once())
+ ->method('propagateChanges')
+ ->with($time);
+
+ $propagator->propagateDirtyMountPoints($time);
+
+ $this->assertEquals($time, $config->getUserValue($user->getUID(), 'files_external', '/test'));
+ }
+
+ public function testGlobalMountNonDirtyMountPoint() {
+ $time = time();
+ $user = $this->getUser();
+ $config = $this->getConfig();
+ $changePropagator = $this->getChangePropagator();
+ $propagator = new \OCA\Files_External\EtagPropagator($user, $changePropagator, $config);
+
+ $config->setAppValue('files_external', '/test', $time - 10);
+ $config->setUserValue($user->getUID(), 'files_external', '/test', $time - 10);
+
+ $changePropagator->expects($this->never())
+ ->method('addChange');
+ $changePropagator->expects($this->never())
+ ->method('propagateChanges');
+
+ $propagator->propagateDirtyMountPoints($time);
+
+ $this->assertEquals($time - 10, $config->getUserValue($user->getUID(), 'files_external', '/test'));
+ }
+
+ public function testGlobalMountNonDirtyMountPointOtherUser() {
+ $time = time();
+ $user = $this->getUser();
+ $user2 = $this->getUser();
+ $config = $this->getConfig();
+ $changePropagator = $this->getChangePropagator();
+ $propagator = new \OCA\Files_External\EtagPropagator($user, $changePropagator, $config);
+
+ $config->setAppValue('files_external', '/test', $time - 10);
+ $config->setUserValue($user2->getUID(), 'files_external', '/test', $time - 10);
+
+ $changePropagator->expects($this->once())
+ ->method('addChange')
+ ->with('/test');
+ $changePropagator->expects($this->once())
+ ->method('propagateChanges')
+ ->with($time);
+
+ $propagator->propagateDirtyMountPoints($time);
+
+ $this->assertEquals($time, $config->getUserValue($user->getUID(), 'files_external', '/test'));
+ }
+
+ public function testGlobalMountDirtyMountPointSecondTime() {
+ $time = time();
+ $user = $this->getUser();
+ $config = $this->getConfig();
+ $changePropagator = $this->getChangePropagator();
+ $propagator = new \OCA\Files_External\EtagPropagator($user, $changePropagator, $config);
+
+ $config->setAppValue('files_external', '/test', $time - 10);
+ $config->setUserValue($user->getUID(), 'files_external', '/test', $time - 20);
+
+ $changePropagator->expects($this->once())
+ ->method('addChange')
+ ->with('/test');
+ $changePropagator->expects($this->once())
+ ->method('propagateChanges')
+ ->with($time);
+
+ $propagator->propagateDirtyMountPoints($time);
+
+ $this->assertEquals($time, $config->getUserValue($user->getUID(), 'files_external', '/test'));
+ }
+
+ public function testGlobalMountMultipleUsers() {
+ $time = time();
+ $config = $this->getConfig();
+ $user1 = $this->getUser();
+ $user2 = $this->getUser();
+ $user3 = $this->getUser();
+ $changePropagator1 = $this->getChangePropagator();
+ $changePropagator2 = $this->getChangePropagator();
+ $changePropagator3 = $this->getChangePropagator();
+ $propagator1 = new \OCA\Files_External\EtagPropagator($user1, $changePropagator1, $config);
+ $propagator2 = new \OCA\Files_External\EtagPropagator($user2, $changePropagator2, $config);
+ $propagator3 = new \OCA\Files_External\EtagPropagator($user3, $changePropagator3, $config);
+
+ $config->setAppValue('files_external', '/test', $time - 10);
+
+ $changePropagator1->expects($this->once())
+ ->method('addChange')
+ ->with('/test');
+ $changePropagator1->expects($this->once())
+ ->method('propagateChanges')
+ ->with($time);
+
+ $propagator1->propagateDirtyMountPoints($time);
+
+ $this->assertEquals($time, $config->getUserValue($user1->getUID(), 'files_external', '/test'));
+ $this->assertEquals(0, $config->getUserValue($user2->getUID(), 'files_external', '/test', 0));
+ $this->assertEquals(0, $config->getUserValue($user3->getUID(), 'files_external', '/test', 0));
+
+ $changePropagator2->expects($this->once())
+ ->method('addChange')
+ ->with('/test');
+ $changePropagator2->expects($this->once())
+ ->method('propagateChanges')
+ ->with($time);
+
+ $propagator2->propagateDirtyMountPoints($time);
+
+ $this->assertEquals($time, $config->getUserValue($user1->getUID(), 'files_external', '/test'));
+ $this->assertEquals($time, $config->getUserValue($user2->getUID(), 'files_external', '/test', 0));
+ $this->assertEquals(0, $config->getUserValue($user3->getUID(), 'files_external', '/test', 0));
+ }
+
+ public function testGlobalMountMultipleDirtyMountPoints() {
+ $time = time();
+ $user = $this->getUser();
+ $config = $this->getConfig();
+ $changePropagator = $this->getChangePropagator();
+ $propagator = new \OCA\Files_External\EtagPropagator($user, $changePropagator, $config);
+
+ $config->setAppValue('files_external', '/test', $time - 10);
+ $config->setAppValue('files_external', '/foo', $time - 50);
+ $config->setAppValue('files_external', '/bar', $time - 70);
+
+ $config->setUserValue($user->getUID(), 'files_external', '/foo', $time - 70);
+ $config->setUserValue($user->getUID(), 'files_external', '/bar', $time - 70);
+
+ $changePropagator->expects($this->exactly(2))
+ ->method('addChange');
+ $changePropagator->expects($this->once())
+ ->method('propagateChanges')
+ ->with($time);
+
+ $propagator->propagateDirtyMountPoints($time);
+
+ $this->assertEquals($time, $config->getUserValue($user->getUID(), 'files_external', '/test'));
+ $this->assertEquals($time, $config->getUserValue($user->getUID(), 'files_external', '/foo'));
+ $this->assertEquals($time - 70, $config->getUserValue($user->getUID(), 'files_external', '/bar'));
+ }
+}
diff --git a/apps/files_external/tests/mountconfig.php b/apps/files_external/tests/mountconfig.php
index fc482823843..c11e48b82f3 100644
--- a/apps/files_external/tests/mountconfig.php
+++ b/apps/files_external/tests/mountconfig.php
@@ -26,6 +26,42 @@ class Test_Mount_Config_Dummy_Storage {
}
}
+class Test_Mount_Config_Hook_Test {
+ static $signal;
+ static $params;
+
+ public static function setUpHooks() {
+ self::clear();
+ \OCP\Util::connectHook(
+ \OC\Files\Filesystem::CLASSNAME,
+ \OC\Files\Filesystem::signal_create_mount,
+ '\Test_Mount_Config_Hook_Test', 'createHookCallback');
+ \OCP\Util::connectHook(
+ \OC\Files\Filesystem::CLASSNAME,
+ \OC\Files\Filesystem::signal_delete_mount,
+ '\Test_Mount_Config_Hook_Test', 'deleteHookCallback');
+ }
+
+ public static function clear() {
+ self::$signal = null;
+ self::$params = null;
+ }
+
+ public static function createHookCallback($params) {
+ self::$signal = \OC\Files\Filesystem::signal_create_mount;
+ self::$params = $params;
+ }
+
+ public static function deleteHookCallback($params) {
+ self::$signal = \OC\Files\Filesystem::signal_delete_mount;
+ self::$params = $params;
+ }
+
+ public static function getLastCall() {
+ return array(self::$signal, self::$params);
+ }
+}
+
/**
* Class Test_Mount_Config
*/
@@ -77,9 +113,11 @@ class Test_Mount_Config extends \PHPUnit_Framework_TestCase {
);
OC_Mount_Config::$skipTest = true;
+ Test_Mount_Config_Hook_Test::setupHooks();
}
public function tearDown() {
+ Test_Mount_Config_Hook_Test::clear();
OC_Mount_Config::$skipTest = false;
\OC_User::deleteUser(self::TEST_USER2);
@@ -337,6 +375,102 @@ class Test_Mount_Config extends \PHPUnit_Framework_TestCase {
$this->assertEquals(array_keys($options), array_keys($savedOptions));
}
+ public function testHooks() {
+ $mountPoint = '/test';
+ $mountType = 'user';
+ $applicable = 'all';
+ $isPersonal = false;
+
+ $mountConfig = array(
+ 'host' => 'smbhost',
+ 'user' => 'smbuser',
+ 'password' => 'smbpassword',
+ 'share' => 'smbshare',
+ 'root' => 'smbroot'
+ );
+
+ // write config
+ $this->assertTrue(
+ OC_Mount_Config::addMountPoint(
+ $mountPoint,
+ '\OC\Files\Storage\SMB',
+ $mountConfig,
+ $mountType,
+ $applicable,
+ $isPersonal
+ )
+ );
+
+ list($hookName, $params) = Test_Mount_Config_Hook_Test::getLastCall();
+ $this->assertEquals(
+ \OC\Files\Filesystem::signal_create_mount,
+ $hookName
+ );
+ $this->assertEquals(
+ $mountPoint,
+ $params[\OC\Files\Filesystem::signal_param_path]
+ );
+ $this->assertEquals(
+ $mountType,
+ $params[\OC\Files\Filesystem::signal_param_mount_type]
+ );
+ $this->assertEquals(
+ $applicable,
+ $params[\OC\Files\Filesystem::signal_param_users]
+ );
+
+ Test_Mount_Config_Hook_Test::clear();
+
+ // edit
+ $mountConfig['host'] = 'anothersmbhost';
+ $this->assertTrue(
+ OC_Mount_Config::addMountPoint(
+ $mountPoint,
+ '\OC\Files\Storage\SMB',
+ $mountConfig,
+ $mountType,
+ $applicable,
+ $isPersonal
+ )
+ );
+
+ // hook must not be called on edit
+ list($hookName, $params) = Test_Mount_Config_Hook_Test::getLastCall();
+ $this->assertEquals(
+ null,
+ $hookName
+ );
+
+ Test_Mount_Config_Hook_Test::clear();
+
+ $this->assertTrue(
+ OC_Mount_Config::removeMountPoint(
+ $mountPoint,
+ $mountType,
+ $applicable,
+ $isPersonal
+ )
+ );
+
+ list($hookName, $params) = Test_Mount_Config_Hook_Test::getLastCall();
+ $this->assertEquals(
+ \OC\Files\Filesystem::signal_delete_mount,
+ $hookName
+ );
+ $this->assertEquals(
+ $mountPoint,
+ $params[\OC\Files\Filesystem::signal_param_path]
+ );
+ $this->assertEquals(
+ $mountType,
+ $params[\OC\Files\Filesystem::signal_param_mount_type]
+ );
+ $this->assertEquals(
+ $applicable,
+ $params[\OC\Files\Filesystem::signal_param_users]
+ );
+ }
+
/**
* Test password obfuscation
*/
diff --git a/apps/files_sharing/appinfo/info.xml b/apps/files_sharing/appinfo/info.xml
index c32a24ecd29..d6f7e4b1320 100644
--- a/apps/files_sharing/appinfo/info.xml
+++ b/apps/files_sharing/appinfo/info.xml
@@ -2,7 +2,11 @@
<info>
<id>files_sharing</id>
<name>Share Files</name>
- <description>File sharing between users</description>
+ <description>
+ This application enables users to share files within ownCloud. If enabled, the admin can choose which groups can share files. The applicable users can then share files and folders with other users and groups within ownCloud. In addition, if the admin enables the share link feature, an external link can be used to share files with other users outside of ownCloud. Admins can also enforce passwords, expirations dates, and enable server to server sharing via share links, as well as sharing from mobile devices.
+Turning the feature off removes shared files and folders on the server for all share recipients, and also on the sync clients and mobile apps. More information is available in the ownCloud Documentation.
+
+ </description>
<licence>AGPL</licence>
<author>Michael Gapczynski, Bjoern Schiessle</author>
<requiremin>4.93</requiremin>
diff --git a/apps/files_sharing/l10n/fr.php b/apps/files_sharing/l10n/fr.php
index 27dd4bcbc67..608f8a4cc24 100644
--- a/apps/files_sharing/l10n/fr.php
+++ b/apps/files_sharing/l10n/fr.php
@@ -9,7 +9,7 @@ $TRANSLATIONS = array(
"Shared by link" => "Partagés par lien",
"No files have been shared with you yet." => "Aucun fichier n'est partagé avec vous pour l'instant.",
"You haven't shared any files yet." => "Vous ne partagez pas de fichier pour l'instant.",
-"You haven't shared any files by link yet." => "Vous n'avez aucun partage de fichier par lien pour le moment.",
+"You haven't shared any files by link yet." => "Vous ne partagez pas de fichier par lien pour l'instant.",
"Do you want to add the remote share {name} from {owner}@{remote}?" => "Voulez-vous ajouter le partage distant {name} de {owner}@{remote} ?",
"Remote share" => "Partage distant",
"Remote share password" => "Mot de passe du partage distant",
@@ -34,7 +34,7 @@ $TRANSLATIONS = array(
"Download %s" => "Télécharger %s",
"Direct link" => "Lien direct",
"Remote Shares" => "Partages distants",
-"Allow other instances to mount public links shared from this server" => "Autoriser d'autres instances à monter des liens publics, partagés depuis ce serveur",
-"Allow users to mount public link shares" => "Autoriser des utilisateurs à monter des liens de partages publics"
+"Allow other instances to mount public links shared from this server" => "Autoriser d'autres instances à monter les liens publics partagés depuis ce serveur",
+"Allow users to mount public link shares" => "Autoriser vos utilisateurs à monter les liens publics"
);
$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/apps/files_sharing/l10n/sl.php b/apps/files_sharing/l10n/sl.php
index 4ff883eee9d..a7aea4d49d6 100644
--- a/apps/files_sharing/l10n/sl.php
+++ b/apps/files_sharing/l10n/sl.php
@@ -1,6 +1,7 @@
<?php
$TRANSLATIONS = array(
"Server to server sharing is not enabled on this server" => "Na tem strežniku ni omogočena možnost souporabe strežnika s strežnikom.",
+"The mountpoint name contains invalid characters." => "Ime točke priklopa vsebuje neveljavne znake.",
"Invalid or untrusted SSL certificate" => "Neveljavno oziroma nepotrjeno potrdilo SSL",
"Couldn't add remote share" => "Ni mogoče dodati oddaljenega mesta za souporabo",
"Shared with you" => "V souporabi z vami",
diff --git a/apps/files_trashbin/appinfo/info.xml b/apps/files_trashbin/appinfo/info.xml
index 41b14c21a06..8735b61e2db 100644
--- a/apps/files_trashbin/appinfo/info.xml
+++ b/apps/files_trashbin/appinfo/info.xml
@@ -3,18 +3,9 @@
<id>files_trashbin</id>
<name>Deleted files</name>
<description>
- ownCloud keeps a copy of your deleted files in case you need them again.
- To make sure that the user doesn't run out of memory the deleted files app
- manages the size of the deleted files for the user. By default deleted files
- stay in the trash bin for 90 days. ownCloud checks the age of the files
- every time a new files gets moved to the deleted files and remove all files
- older than 180 days. The user can adjust this value in the config.php by
- setting the "trashbin_retention_obligation" value.
+This application enables users to restore files that were deleted from the system. It displays a list of deleted files in the web interface, and has options to restore those deleted files back to their ownCloud file directories or remove them permanently from the system. Restoring a file also restores related file versions, if the versions application is enabled. When a file is deleted from a share, it can be restored in the same manner, though it is no longer shared. By default, these files remain in the trash bin for 30 days.
+To prevent a user from running out of disk space, the ownCloud Deleted files app will not utilize more than 50% of the currently available free quota for deleted files. If the deleted files exceed this limit, ownCloud deletes the oldest files until it gets below this limit. More information is available in the Deleted Files documentation.
- Beside that the delted files app take care to never use more that 50% of
- your currently available free space. If your deleted files exceed this limit
- ownCloud deletes the oldest versions until it meets the memory usage limit
- again.
</description>
<licence>AGPL</licence>
<author>Bjoern Schiessle</author>
@@ -24,5 +15,8 @@
<types>
<filesystem/>
</types>
+ <documentation>
+ <user>user-trashbin</user>
+ </documentation>
<ocsid>166052</ocsid>
</info>
diff --git a/apps/files_trashbin/lib/trashbin.php b/apps/files_trashbin/lib/trashbin.php
index 3fe0ef0b7de..120df345dda 100644
--- a/apps/files_trashbin/lib/trashbin.php
+++ b/apps/files_trashbin/lib/trashbin.php
@@ -376,7 +376,7 @@ class Trashbin {
// if location no longer exists, restore file in the root directory
if ($location !== '/' &&
(!$view->is_dir('files' . $location) ||
- !$view->isUpdatable('files' . $location))
+ !$view->isCreatable('files' . $location))
) {
$location = '';
}
diff --git a/apps/files_versions/appinfo/info.xml b/apps/files_versions/appinfo/info.xml
index d16c1bd1a24..9aed8069b9b 100644
--- a/apps/files_versions/appinfo/info.xml
+++ b/apps/files_versions/appinfo/info.xml
@@ -7,27 +7,16 @@
<requiremin>4.93</requiremin>
<shipped>true</shipped>
<description>
- ownCloud supports simple version control for files. The versioning app
- expires old versions automatically to make sure that
- the user doesn't run out of space. The following pattern is used to delete
- old versions:
- For the first 10 seconds ownCloud keeps one version every 2 seconds;
- For the first hour ownCloud keeps one version every minute;
- For the first 24 hours ownCloud keeps one version every hour;
- For the first 30 days ownCloud keeps one version every day;
- After the first 30 days ownCloud keeps one version every week.
+ This application enables ownCloud to automatically maintain older versions of files that are changed. When enabled, a hidden versions folder is provisioned in every user’s directory and is used to store old file versions. A user can revert to an older version through the web interface at any time, with the replaced file becoming a version. ownCloud then automatically manages the versions folder to ensure the user doesn’t run out of Quota because of versions.
+In addition to the expiry of versions, ownCloud’s versions app makes certain never to use more than 50% of the user’s currently available free space. If stored versions exceed this limit, ownCloud will delete the oldest versions first until it meets this limit. More information is available in the Versions documentation.
- The versions are adjusted along this pattern every time a new version gets
- created.
-
- Beside that the version app takes care to never use more that 50% of the users
- currently available free space. If the stored versions exceed this limit
- ownCloud deletes the oldest versions until it meets the memory usage limit
- again.
</description>
<types>
<filesystem/>
</types>
+ <documentation>
+ <user>user-versions</user>
+ </documentation>
<default_enable/>
<ocsid>166053</ocsid>
</info>
diff --git a/apps/user_ldap/appinfo/info.xml b/apps/user_ldap/appinfo/info.xml
index 34a711a906f..a1a934f0140 100644
--- a/apps/user_ldap/appinfo/info.xml
+++ b/apps/user_ldap/appinfo/info.xml
@@ -2,10 +2,10 @@
<info>
<id>user_ldap</id>
<name>LDAP user and group backend</name>
- <description>Authenticate users and groups through LDAP, such as OpenLDAP
- or Active Directory.
+ <description>This application enables administrators to connect ownCloud to an LDAP-based user directory for authentication and provisioning users, groups and user attributes. Admins can configure this application to connect to one or more LDAP directories or Active Directories via an LDAP interface. Attributes such as user quota, email, avatar pictures, group memberships and more can be pulled into ownCloud from a directory with the appropriate queries and filters.
+
+A user logs into ownCloud with their LDAP or AD credentials, and is granted access based on an authentication request handled by the LDAP or AD server. ownCloud does not store LDAP or AD passwords, rather these credentials are used to authenticate a user and then ownCloud uses a session for the user ID. More information is available in the LDAP User and Group Backend documentation.
- This app is not compatible with the WebDAV user backend.
</description>
<licence>AGPL</licence>
<author>Dominik Schmidt and Arthur Schiwon</author>
@@ -15,7 +15,7 @@
<authentication/>
</types>
<documentation>
- <admin>http://doc.owncloud.org/server/7.0/go.php?to=admin-ldap</admin>
+ <admin>admin-ldap</admin>
</documentation>
<ocsid>166061</ocsid>
</info>
diff --git a/apps/user_ldap/group_ldap.php b/apps/user_ldap/group_ldap.php
index 0d3a70575ba..48d097c3600 100644
--- a/apps/user_ldap/group_ldap.php
+++ b/apps/user_ldap/group_ldap.php
@@ -283,6 +283,10 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
$uid = $userDN;
} else if(strtolower($this->access->connection->ldapGroupMemberAssocAttr) === 'memberuid') {
$result = $this->access->readAttribute($userDN, 'uid');
+ if ($result === false) {
+ \OCP\Util::writeLog('user_ldap', 'No uid attribute found for DN ' . $userDN . ' on '.
+ $this->access->connection->ldapHost, \OCP\Util::DEBUG);
+ }
$uid = $result[0];
} else {
// just in case
diff --git a/apps/user_ldap/l10n/da.php b/apps/user_ldap/l10n/da.php
index 401a5ca0598..31dbd08d1b3 100644
--- a/apps/user_ldap/l10n/da.php
+++ b/apps/user_ldap/l10n/da.php
@@ -78,9 +78,9 @@ $TRANSLATIONS = array(
"Connection Settings" => "Forbindelsesindstillinger ",
"Configuration Active" => "Konfiguration Aktiv",
"When unchecked, this configuration will be skipped." => "Hvis der ikke er markeret, så springes denne konfiguration over.",
-"Backup (Replica) Host" => "Backup (Replika) Vært",
-"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Opgiv en ikke obligatorisk backup server. Denne skal være en replikation af hoved-LDAP/AD serveren.",
-"Backup (Replica) Port" => "Backup (Replika) Port",
+"Backup (Replica) Host" => "Vært for sikkerhedskopier (replika)",
+"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Angiv valgfrit en vært for sikkerhedskopiering. Dette skal være en replikering af den primære LDAP/AD-server.",
+"Backup (Replica) Port" => "Port for sikkerhedskopi (replika)",
"Disable Main Server" => "Deaktiver Hovedserver",
"Only connect to the replica server." => "Forbind kun til replika serveren.",
"Case insensitive LDAP server (Windows)" => "LDAP-server som ikke er versalfølsom (Windows)",
diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php
index 570f445650d..159b0d73000 100644
--- a/apps/user_ldap/lib/access.php
+++ b/apps/user_ldap/lib/access.php
@@ -36,8 +36,16 @@ class Access extends LDAPUtility implements user\IUserTools {
//never ever check this var directly, always use getPagedSearchResultState
protected $pagedSearchedSuccessful;
+ /**
+ * @var string[] $cookies an array of returned Paged Result cookies
+ */
protected $cookies = array();
+ /**
+ * @var string $lastCookie the last cookie returned from a Paged Results
+ * operation, defaults to an empty string
+ */
+ protected $lastCookie = '';
public function __construct(Connection $connection, ILDAPWrapper $ldap,
user\Manager $userManager) {
@@ -84,7 +92,12 @@ class Access extends LDAPUtility implements user\IUserTools {
\OCP\Util::writeLog('user_ldap', 'LDAP resource not available.', \OCP\Util::DEBUG);
return false;
}
- //all or nothing! otherwise we get in trouble with.
+ //Cancel possibly running Paged Results operation, otherwise we run in
+ //LDAP protocol errors
+ $this->abandonPagedSearch();
+ // openLDAP requires that we init a new Paged Search. Not needed by AD,
+ // but does not hurt either.
+ $this->initPagedSearch($filter, array($dn), array($attr), 1, 0);
$dn = $this->DNasBaseParameter($dn);
$rr = @$this->ldap->read($cr, $dn, $filter, array($attr));
if(!$this->ldap->isResource($rr)) {
@@ -805,9 +818,6 @@ class Access extends LDAPUtility implements user\IUserTools {
$linkResources = array_pad(array(), count($base), $cr);
$sr = $this->ldap->search($linkResources, $base, $filter, $attr);
$error = $this->ldap->errno($cr);
- if ($pagedSearchOK) {
- $this->ldap->controlPagedResult($cr, 999999, false, "");
- }
if(!is_array($sr) || $error !== 0) {
\OCP\Util::writeLog('user_ldap',
'Error when searching: '.$this->ldap->error($cr).
@@ -1366,6 +1376,19 @@ class Access extends LDAPUtility implements user\IUserTools {
}
/**
+ * resets a running Paged Search operation
+ */
+ private function abandonPagedSearch() {
+ if($this->connection->hasPagedResultSupport) {
+ $cr = $this->connection->getConnectionResource();
+ $this->ldap->controlPagedResult($cr, 0, false, $this->lastCookie);
+ $this->getPagedSearchResultState();
+ $this->lastCookie = '';
+ $this->cookies = array();
+ }
+ }
+
+ /**
* get a cookie for the next LDAP paged search
* @param string $base a string with the base DN for the search
* @param string $filter the search filter to identify the correct search
@@ -1403,6 +1426,7 @@ class Access extends LDAPUtility implements user\IUserTools {
if(!empty($cookie)) {
$cacheKey = 'lc' . crc32($base) . '-' . crc32($filter) . '-' .intval($limit) . '-' . intval($offset);
$this->cookies[$cacheKey] = $cookie;
+ $this->lastCookie = $cookie;
}
}
@@ -1454,9 +1478,8 @@ class Access extends LDAPUtility implements user\IUserTools {
}
}
if(!is_null($cookie)) {
- if($offset > 0) {
- \OCP\Util::writeLog('user_ldap', 'Cookie '.CRC32($cookie), \OCP\Util::INFO);
- }
+ //since offset = 0, this is a new search. We abandon other searches that might be ongoing.
+ $this->abandonPagedSearch();
$pagedSearchOK = $this->ldap->controlPagedResult(
$this->connection->getConnectionResource(), $limit,
false, $cookie);
diff --git a/apps/user_ldap/lib/ildapwrapper.php b/apps/user_ldap/lib/ildapwrapper.php
index 590f6d7ac7a..a64bcd6b95b 100644
--- a/apps/user_ldap/lib/ildapwrapper.php
+++ b/apps/user_ldap/lib/ildapwrapper.php
@@ -51,7 +51,7 @@ interface ILDAPWrapper {
* @param resource $link LDAP link resource
* @param int $pageSize number of results per page
* @param bool $isCritical Indicates whether the pagination is critical of not.
- * @param array $cookie structure sent by LDAP server
+ * @param string $cookie structure sent by LDAP server
* @return bool true on success, false otherwise
*/
public function controlPagedResult($link, $pageSize, $isCritical, $cookie);
diff --git a/apps/user_ldap/templates/part.settingcontrols.php b/apps/user_ldap/templates/part.settingcontrols.php
index ddf65e8a754..bcccb59a7dd 100644
--- a/apps/user_ldap/templates/part.settingcontrols.php
+++ b/apps/user_ldap/templates/part.settingcontrols.php
@@ -1,6 +1,6 @@
<div class="ldapSettingControls">
<input class="ldap_submit" value="<?php p($l->t('Save'));?>" type="submit">
- <button class="ldap_action_test_connection" name="ldap_action_test_connection">
+ <button type="button" class="ldap_action_test_connection" name="ldap_action_test_connection">
<?php p($l->t('Test Configuration'));?>
</button>
<a href="<?php p(\OC_Helper::linkToDocs('admin-ldap')); ?>"
diff --git a/apps/user_ldap/templates/part.wizard-server.php b/apps/user_ldap/templates/part.wizard-server.php
index 422faad028b..bee2b874178 100644
--- a/apps/user_ldap/templates/part.wizard-server.php
+++ b/apps/user_ldap/templates/part.wizard-server.php
@@ -24,7 +24,7 @@
?>
<option value="NEW"><?php p($l->t('Add Server Configuration'));?></option>
</select>
- <button id="ldap_action_delete_configuration"
+ <button type="button" id="ldap_action_delete_configuration"
name="ldap_action_delete_configuration"><?php p($l->t('Delete Configuration'));?></button>
</p>
diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php
index 38043fb34a8..6a02b795258 100644
--- a/apps/user_ldap/templates/settings.php
+++ b/apps/user_ldap/templates/settings.php
@@ -59,7 +59,7 @@
<p class="ldapIndent"><label for="ldap_expert_uuid_group_attr"><?php p($l->t('UUID Attribute for Groups:'));?></label><input type="text" id="ldap_expert_uuid_group_attr" name="ldap_expert_uuid_group_attr" data-default="<?php p($_['ldap_expert_uuid_group_attr_default']); ?>" /></p>
<p><strong><?php p($l->t('Username-LDAP User Mapping'));?></strong></p>
<p class="ldapIndent"><?php p($l->t('Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage.'));?></p>
- <p class="ldapIndent"><button id="ldap_action_clear_user_mappings" name="ldap_action_clear_user_mappings"><?php p($l->t('Clear Username-LDAP User Mapping'));?></button><br/><button id="ldap_action_clear_group_mappings" name="ldap_action_clear_group_mappings"><?php p($l->t('Clear Groupname-LDAP Group Mapping'));?></button></p>
+ <p class="ldapIndent"><button type="button" id="ldap_action_clear_user_mappings" name="ldap_action_clear_user_mappings"><?php p($l->t('Clear Username-LDAP User Mapping'));?></button><br/><button type="button" id="ldap_action_clear_group_mappings" name="ldap_action_clear_group_mappings"><?php p($l->t('Clear Groupname-LDAP Group Mapping'));?></button></p>
<?php print_unescaped($_['settingControls']); ?>
</fieldset>
</div>
diff --git a/config/config.sample.php b/config/config.sample.php
index 48f0af9c99d..02958ace0c2 100755
--- a/config/config.sample.php
+++ b/config/config.sample.php
@@ -1,312 +1,591 @@
<?php
/**
- * This configuration file is only provided to document the different configuration options and their usage.
- * DO NOT COMPLETELY BASE YOUR CONFIGURATION FILE ON THIS SAMPLE. THIS MAY BREAK YOUR INSTANCE.
- * Instead, manually copy configurations' switches that you consider important for your instance to your configuration.
+ * This configuration file is only provided to document the different
+ * configuration options and their usage.
+ *
+ * DO NOT COMPLETELY BASE YOUR CONFIGURATION FILE ON THIS SAMPLE. THIS MAY BREAK
+ * YOUR INSTANCE. Instead, manually copy configurations switches that you
+ * consider important for your instance to your configuration.
+ *
+ * This file is used to generate the config documentation. Please consider
+ * following requirements of the current parser:
+ * * all comments need to start with `/**` and end with ` *\/` - each on their
+ * own line
+ * * add a `@see CONFIG_INDEX` to copy a previously described config option
+ * also to this line
+ * * everything between the ` *\/` and the next `/**` will be treated as the
+ * config option
+ * * use RST syntax
*/
-/* Only enable this for local development and not in productive environments */
-/* This will disable the minifier and outputs some additional debug informations */
-define("DEBUG", true);
+/**
+ * Only enable this for local development and not in production environments
+ * This will disable the minifier and outputs some additional debug informations
+ */
+define('DEBUG', true);
$CONFIG = array(
-/* Flag to indicate ownCloud is successfully installed (true = installed) */
-"installed" => false,
-/* Type of database, can be sqlite, mysql or pgsql */
-"dbtype" => "sqlite",
-/* Name of the ownCloud database */
-"dbname" => "owncloud",
+/**
+ * Default Parameters
+ *
+ * These parameters are configured by the ownCloud installer, and are required
+ * for your ownCloud server to operate.
+ */
-/* User to access the ownCloud database */
-"dbuser" => "",
-/* Password to access the ownCloud database */
-"dbpassword" => "",
+/**
+ * This is a unique identifier for your ownCloud installation, created
+ * automatically by the installer. Do not change it.
+ */
+'instanceid' => '',
-/* Host running the ownCloud database. To specify a port use "HOSTNAME:####"; to specify a unix sockets use "localhost:/path/to/socket". */
-"dbhost" => "",
+/**
+ * The salt used to hash all passwords, auto-generated by the ownCloud
+ * installer. (There are also per-user salts.) If you lose this salt you lose
+ * all your passwords.
+ */
+'passwordsalt' => '',
-/* Prefix for the ownCloud tables in the database */
-"dbtableprefix" => "",
+/**
+ * Your list of trusted domains that users can log into. Specifying trusted
+ * domains prevents host header poisoning. Do not remove this, as it performs
+ * necessary security checks.
+ */
+'trusted_domains' => array('demo.example.org', 'otherdomain.example.org:8080'),
-/* Define the salt used to hash the user passwords. All your user passwords are lost if you lose this string. */
-"passwordsalt" => "",
+/**
+ * Where user files are stored; this defaults to ``data/`` in the ownCloud
+ * directory. The SQLite database is also stored here, when you use SQLite.
+ */
+'datadirectory' => '',
-/* Secret used by ownCloud for various purposes, e.g. to encrypt data. If you lose this string there will be data corruption. */
-"secret" => "",
+/**
+ * The current version number of your ownCloud installation. This is set up
+ * during installation and update, so you shouldn't need to change it.
+ */
+'version' => '',
-/* Force use of HTTPS connection (true = use HTTPS) */
-"forcessl" => false,
+/**
+ * Identifies the database used with this installation: ``sqlite``, ``mysql``,
+ * ``pgsql``, ``oci``, or ``mssql``.
+ */
+'dbtype' => 'sqlite',
-/* Blacklist a specific file and disallow the upload of files with this name - WARNING: USE THIS ONLY IF YOU KNOW WHAT YOU ARE DOING. */
-"blacklisted_files" => array('.htaccess'),
+/**
+ * Your host server name, for example ``localhost``, ``hostname``,
+ * ``hostname.example.com``, or the IP address. To specify a port use
+ * ``hostname:####``; to specify a Unix socket use
+ * ``localhost:/path/to/socket``.
+ */
+'dbhost' => '',
-/* The automatic hostname detection of ownCloud can fail in certain reverse proxy and CLI/cron situations. This option allows to manually override the automatic detection. You can also add a port. For example "www.example.com:88" */
-"overwritehost" => "",
+/**
+ * The name of the ownCloud database, which is set during installation. You
+ * should not need to change this.
+ */
+'dbname' => 'owncloud',
-/* The automatic protocol detection of ownCloud can fail in certain reverse proxy and CLI/cron situations. This option allows to manually override the protocol detection. For example "https" */
-"overwriteprotocol" => "",
+/**
+ * The user that ownCloud uses to write to the database. This must be unique
+ * across ownCloud instances using the same SQL database. This is set up during
+ * installation, so you shouldn't need to change it.
+ */
+'dbuser' => '',
-/* The automatic webroot detection of ownCloud can fail in certain reverse proxy and CLI/cron situations. This option allows to manually override the automatic detection. For example "/domain.tld/ownCloud". The value "/" can be used to remove the root. */
-"overwritewebroot" => "",
+/**
+ * The password for the database user. This is set up during installation, so
+ * you shouldn't need to change it.
+ */
+'dbpassword' => '',
-/* The automatic detection of ownCloud can fail in certain reverse proxy and CLI/cron situations. This option allows to define a manually override condition as regular expression for the remote ip address. For example "^10\.0\.0\.[1-3]$" */
-"overwritecondaddr" => "",
+/**
+ * Prefix for the ownCloud tables in the database.
+ */
+'dbtableprefix' => '',
-/* A proxy to use to connect to the internet. For example "myproxy.org:88" */
-"proxy" => "",
+/**
+ * Indicates whether the ownCloud instance was installed successfully; ``true``
+ * indicates a successful installation, and ``false`` indicates an unsuccessful
+ * installation.
+ */
+'installed' => false,
-/* The optional authentication for the proxy to use to connect to the internet. The format is: [username]:[password] */
-"proxyuserpwd" => "",
-/* List of trusted domains, to prevent host header poisoning ownCloud is only using these Host headers */
-'trusted_domains' => array('demo.owncloud.org', 'otherdomain.owncloud.org:8080'),
+/**
+ * User Experience
+ *
+ * These optional parameters control some aspects of the user interface. Default
+ * values, where present, are shown.
+ */
-/* List of trusted proxy servers */
-'trusted_proxies' => array('203.0.113.45', '198.51.100.128'),
+/**
+ * This sets the default language on your ownCloud server, using ISO_639-1
+ * language codes such as ``en`` for English, ``de`` for German, and ``fr`` for
+ * French. It overrides automatic language detection on public pages like login
+ * or shared items. User's language preferences configured under "personal ->
+ * language" override this setting after they have logged in.
+ */
+'default_language' => 'en',
-/* Headers that should be trusted as client IP address in combination with `trusted_proxies` */
-'forwarded_for_headers' => array('HTTP_X_FORWARDED', 'HTTP_FORWARDED_FOR'),
+/**
+ * Set the default app to open on login. Use the app names as they appear in the
+ * URL after clicking them in the Apps menu, such as documents, calendar, and
+ * gallery. You can use a comma-separated list of app names, so if the first
+ * app is not enabled for a user then ownCloud will try the second one, and so
+ * on. If no enabled apps are found it defaults to the Files app.
+ */
+'defaultapp' => 'files',
+
+/**
+ * ``true`` enables the Help menu item in the user menu (top right of the
+ * ownCloud Web interface). ``false`` removes the Help item.
+ */
+'knowledgebaseenabled' => true,
+
+/**
+ * ``true`` enables avatars, or user profile photos. These appear on the User
+ * page, on user's Personal pages and are used by some apps (contacts, mail,
+ * etc). ``false`` disables them.
+ */
+'enable_avatars' => true,
+
+/**
+ * ``true`` allows users to change their display names (on their Personal
+ * pages), and ``false`` prevents them from changing their display names.
+ */
+'allow_user_to_change_display_name' => true,
+
+/**
+ * Lifetime of the remember login cookie, which is set when the user clicks the
+ * ``remember`` checkbox on the login screen. The default is 15 days, expressed
+ * in seconds.
+ */
+'remember_login_cookie_lifetime' => 60*60*24*15,
+
+/**
+ * The lifetime of a session after inactivity; the default is 24 hours,
+ * expressed in seconds.
+ */
+'session_lifetime' => 60 * 60 * 24,
+
+/**
+ * Enable or disable session keep-alive when a user is logged in to the Web UI.
+ * Enabling this sends a "heartbeat" to the server to keep it from timing out.
+ */
+'session_keepalive' => true,
+
+/**
+ * The directory where the skeleton files are located. These files will be
+ * copied to the data directory of new users. Leave empty to not copy any
+ * skeleton files.
+ */
+'skeletondirectory' => '',
+
+/**
+ * The ``user_backends`` app allows you to configure alternate authentication
+ * backends. Supported backends are IMAP (OC_User_IMAP), SMB (OC_User_SMB), and
+ * FTP (OC_User_FTP).
+ */
+'user_backends' => array(
+ array(
+ 'class' => 'OC_User_IMAP',
+ 'arguments' => array('{imap.gmail.com:993/imap/ssl}INBOX')
+ )
+),
+
+
+/**
+ * Mail Parameters
+ *
+ * These configure the email settings for ownCloud notifications and password
+ * resets.
+ */
+
+/**
+ * The return address that you want to appear on emails sent by the ownCloud
+ * server, for example ``oc-admin@example.com``, substituting your own domain,
+ * of course.
+ */
+'mail_domain' => 'example.com',
-/* Theme to use for ownCloud */
-"theme" => "",
+/**
+ * FROM address that overrides the built-in ``sharing-noreply`` and
+ * ``lostpassword-noreply`` FROM addresses.
+ */
+'mail_from_address' => 'owncloud',
-/* Optional ownCloud default language - overrides automatic language detection on public pages like login or shared items. This has no effect on the user's language preference configured under "personal -> language" once they have logged in */
-"default_language" => "en",
+/**
+ * Enable SMTP class debugging.
+ */
+'mail_smtpdebug' => false,
-/* Path to the parent directory of the 3rdparty directory */
-"3rdpartyroot" => "",
+/**
+ * Which mode to use for sending mail: ``sendmail``, ``smtp``, ``qmail`` or
+ * ``php``.
+ *
+ * If you are using local or remote SMTP, set this to ``smtp``.
+ *
+ * If you are using PHP mail you must have an installed and working email system
+ * on the server. The program used to send email is defined in the ``php.ini``
+ * file.
+ *
+ * For the ``sendmail`` option you need an installed and working email system on
+ * the server, with ``/usr/sbin/sendmail`` installed on your Unix system.
+ *
+ * For ``qmail`` the binary is /var/qmail/bin/sendmail, and it must be installed
+ * on your Unix system.
+ */
+'mail_smtpmode' => 'sendmail',
-/* URL to the parent directory of the 3rdparty directory, as seen by the browser */
-"3rdpartyurl" => "",
+/**
+ * This depends on ``mail_smtpmode``. Specified the IP address of your mail
+ * server host. This may contain multiple hosts separated by a semi-colon. If
+ * you need to specify the port number append it to the IP address separated by
+ * a colon, like this: ``127.0.0.1:24``.
+ */
+'mail_smtphost' => '127.0.0.1',
-/* Default app to open on login.
- * This can be a comma-separated list of app ids.
- * If the first app is not enabled for the current user,
- * it will try with the second one and so on. If no enabled app could be found,
- * the "files" app will be displayed instead. */
-"defaultapp" => "files",
+/**
+ * This depends on ``mail_smtpmode``. Specify the port for sending mail.
+ */
+'mail_smtpport' => 25,
-/* Enable the help menu item in the settings */
-"knowledgebaseenabled" => true,
+/**
+ * This depends on ``mail_smtpmode``. This set an SMTP server timeout, in
+ * seconds. You may need to increase this if you are running an anti-malware or
+ * spam scanner.
+ */
+'mail_smtptimeout' => 10,
-/* Enable installing apps from the appstore */
-"appstoreenabled" => true,
+/**
+ * This depends on ``mail_smtpmode``. Specify when you are using ``ssl`` or
+ * ``tls``, or leave empty for no encryption.
+ */
+'mail_smtpsecure' => '',
-/* URL of the appstore to use, server should understand OCS */
-"appstoreurl" => "https://api.owncloud.com/v1",
+/**
+ * This depends on ``mail_smtpmode``. Change this to ``true`` if your mail
+ * server requires authentication.
+ */
+'mail_smtpauth' => false,
-/* Domain name used by ownCloud for the sender mail address, e.g. no-reply@example.com */
-"mail_domain" => "example.com",
+/**
+ * This depends on ``mail_smtpmode``. If SMTP authentication is required, choose
+ * the authentication type as ``LOGIN`` (default) or ``PLAIN``.
+ */
+'mail_smtpauthtype' => 'LOGIN',
-/* FROM address used by ownCloud for the sender mail address, e.g. owncloud@example.com
- This setting overwrites the built in 'sharing-noreply' and 'lostpassword-noreply'
- FROM addresses, that ownCloud uses
-*/
-"mail_from_address" => "owncloud",
+/**
+ * This depends on ``mail_smtpauth``. Specify the username for authenticating to
+ * the SMTP server.
+ */
+'mail_smtpname' => '',
-/* Enable SMTP class debugging */
-"mail_smtpdebug" => false,
+/**
+ * This depends on ``mail_smtpauth``. Specify the password for authenticating to
+ * the SMTP server.
+ */
+'mail_smtppassword' => '',
-/* Mode to use for sending mail, can be sendmail, smtp, qmail or php, see PHPMailer docs */
-"mail_smtpmode" => "sendmail",
-/* Host to use for sending mail, depends on mail_smtpmode if this is used */
-"mail_smtphost" => "127.0.0.1",
+/**
+ * Proxy Configurations
+ */
-/* Port to use for sending mail, depends on mail_smtpmode if this is used */
-"mail_smtpport" => 25,
+/**
+ * The automatic hostname detection of ownCloud can fail in certain reverse
+ * proxy and CLI/cron situations. This option allows you to manually override
+ * the automatic detection; for example ``www.example.com``, or specify the port
+ * ``www.example.com:8080``.
+ */
+'overwritehost' => '',
-/* SMTP server timeout in seconds for sending mail, depends on mail_smtpmode if this is used */
-"mail_smtptimeout" => 10,
+/**
+ * When generating URLs, ownCloud attempts to detect whether the server is
+ * accessed via ``https`` or ``http``. However, if ownCloud is behind a proxy
+ * and the proxy handles the ``https`` calls, ownCloud would not know that
+ * ``ssl`` is in use, which would result in incorrect URLs being generated.
+ * Valid values are ``http`` and ``https``.
+ */
+'overwriteprotocol' => '',
-/* SMTP connection prefix or sending mail, depends on mail_smtpmode if this is used.
- Can be '', ssl or tls */
-"mail_smtpsecure" => "",
+/**
+ * ownCloud attempts to detect the webroot for generating URLs automatically.
+ * For example, if ``www.example.com/owncloud`` is the URL pointing to the
+ * ownCloud instance, the webroot is ``/owncloud``. When proxies are in use, it
+ * may be difficult for ownCloud to detect this parameter, resulting in invalid
+ * URLs.
+ */
+'overwritewebroot' => '',
-/* authentication needed to send mail, depends on mail_smtpmode if this is used
- * (false = disable authentication)
+/**
+ * This option allows you to define a manual override condition as a regular
+ * expression for the remote IP address. For example, defining a range of IP
+ * addresses starting with ``10.0.0.`` and ending with 1 to 3:
+ * ``^10\.0\.0\.[1-3]$``
*/
-"mail_smtpauth" => false,
+'overwritecondaddr' => '',
-/* authentication type needed to send mail, depends on mail_smtpmode if this is used
- * Can be LOGIN (default), PLAIN or NTLM */
-"mail_smtpauthtype" => "LOGIN",
+/**
+ * The URL of your proxy server, for example ``proxy.example.com:8081``.
+ */
+'proxy' => '',
-/* Username to use for sendmail mail, depends on mail_smtpauth if this is used */
-"mail_smtpname" => "",
+/**
+ * The optional authentication for the proxy to use to connect to the internet.
+ * The format is: ``username:password``.
+ */
+'proxyuserpwd' => '',
-/* Password to use for sendmail mail, depends on mail_smtpauth if this is used */
-"mail_smtppassword" => "",
-/* memcached servers (Only used when xCache, APC and APCu are absent.) */
-"memcached_servers" => array(
- // hostname, port and optional weight. Also see:
- // http://www.php.net/manual/en/memcached.addservers.php
- // http://www.php.net/manual/en/memcached.addserver.php
- array('localhost', 11211),
- //array('other.host.local', 11211),
-),
+/**
+ * Deleted Items (trash bin)
+ *
+ * These parameters control the Deleted files app.
+ */
-/* How long should ownCloud keep deleted files in the trash bin, default value: 30 days */
+/**
+ * When the trash bin app is enabled (default), this is the number of days a file
+ * will be kept in the trash bin. Default is 30 days.
+ */
'trashbin_retention_obligation' => 30,
-/* Disable/Enable auto expire for the trash bin, by default auto expire is enabled */
+/**
+ * Disable or enable auto-expiration for the trash bin. By default
+ * auto-expiration is enabled.
+ */
'trashbin_auto_expire' => true,
-/* allow user to change his display name, if it is supported by the back-end */
-'allow_user_to_change_display_name' => true,
-/* Ensure that 3rdparty applications follows coding guidelines */
-"appcodechecker" => true,
+/**
+ * ownCloud Verifications
+ *
+ * ownCloud performs several verification checks. There are two options,
+ * ``true`` and ``false``.
+ */
+
+/**
+ * Check 3rd party apps to make sure they are using the private API and not the
+ * public API. If the app uses the private API it cannot be installed.
+ */
+'appcodechecker' => true,
+
+/**
+ * Check if ownCloud is up-to-date and shows a notification if a new version is
+ * available.
+ */
+'updatechecker' => true,
-/* Check if ownCloud is up to date */
-"updatechecker" => true,
+/**
+ * Is ownCloud connected to the Internet or running in a closed network?
+ */
+'has_internet_connection' => true,
-/* Are we connected to the internet or are we running in a closed network? */
-"has_internet_connection" => true,
+/**
+ * Allows ownCloud to verify a working WebDAV connection. This is done by
+ * attempting to make a WebDAV request from PHP.
+ */
+'check_for_working_webdav' => true,
-/* Check if the ownCloud WebDAV server is working correctly. Can be disabled if not needed in special situations*/
-"check_for_working_webdav" => true,
+/**
+ * This is a crucial security check on Apache servers that should always be set
+ * to ``true``. This verifies that the ``.htaccess`` file is writable and works.
+ * If it is not, then any options controlled by ``.htaccess``, such as large
+ * file uploads, will not work. It also runs checks on the ``data/`` directory,
+ * which verifies that it can't be accessed directly through the web server.
+ */
+'check_for_working_htaccess' => true,
-/* Check if .htaccess protection of data is working correctly. Can be disabled if not needed in special situations*/
-"check_for_working_htaccess" => true,
-/* Place to log to, can be owncloud and syslog (owncloud is log menu item in admin menu) */
-"log_type" => "owncloud",
+/**
+ * Logging
+ */
-/* File for the owncloud logger to log to, (default is ownloud.log in the data dir) */
-"logfile" => "",
+/**
+ * By default the ownCloud logs are sent to the ``owncloud.log`` file in the
+ * default ownCloud data directory. If syslogging is desired, set this parameter
+ * to ``syslog``.
+ */
+'log_type' => 'owncloud',
-/* This entry is just here to show a warning in case somebody copied the sample configuration. DO NOT ADD THIS SWITCH TO YOUR CONFIGURATION! */
-/* If you, brave person, have read until here be aware that you should not modify *ANY* settings in this file without reading the documentation */
-"copied_sample_config" => true,
+/**
+ * Change the ownCloud logfile name from ``owncloud.log`` to something else.
+ */
+'logfile' => 'owncloud.log',
-/* Loglevel to start logging at. 0=DEBUG, 1=INFO, 2=WARN, 3=ERROR (default is WARN) */
-"loglevel" => "",
+/**
+ * Loglevel to start logging at. Valid values are: 0 = Debug, 1 = Info, 2 =
+ * Warning, 3 = Error. The default value is Warning.
+ */
+'loglevel' => 2,
-/* date format to be used while writing to the owncloud logfile */
+/**
+ * This uses PHP.date formatting; see http://php.net/manual/en/function.date.php
+ */
'logdateformat' => 'F d, Y H:i:s',
-/* timezone used while writing to the owncloud logfile (default: UTC) */
+/**
+ * The default timezone for logfiles is UTC. You may change this; see
+ * http://php.net/manual/en/timezones.php
+ */
'logtimezone' => 'Europe/Berlin',
-/* Append all database queries and parameters to the log file.
- (watch out, this option can increase the size of your log file)*/
-"log_query" => false,
+/**
+ * Append all database queries and parameters to the log file. Use this only for
+ * debugging, as your logfile will become huge.
+ */
+'log_query' => false,
-/* Whether ownCloud should log the last successfull cron exec */
-"cron_log" => true,
+/**
+ * Log successful cron runs.
+ */
+'cron_log' => true,
-/*
- * Configure the size in bytes log rotation should happen, 0 or false disables the rotation.
- * This rotates the current owncloud logfile to a new name, this way the total log usage
- * will stay limited and older entries are available for a while longer. The
- * total disk usage is twice the configured size.
- * WARNING: When you use this, the log entries will eventually be lost.
- * Example: To set this to 100 MiB, use the value: 104857600 (1024*1024*100 bytes).
+/**
+ * Enables log rotation and limits the total size of logfiles. The default is 0,
+ * or no rotation. Specify a size in bytes, for example 104857600 (100 megabytes
+ * = 100 * 1024 * 1024 bytes). A new logfile is created with a new name when the
+ * old logfile reaches your limit. The total size of all logfiles is double the
+ * ``log_rotate_sizerotation`` value.
*/
'log_rotate_size' => false,
-/* Lifetime of the remember login cookie, default is 15 days */
-"remember_login_cookie_lifetime" => 60*60*24*15,
-/* Life time of a session after inactivity */
-"session_lifetime" => 60 * 60 * 24,
-
-/*
- * Enable/disable session keep alive when a user is logged in in the Web UI.
- * This is achieved by sending a "heartbeat" to the server to prevent
- * the session timing out.
+/**
+ * Alternate Code Locations
+ *
+ * Some of the ownCloud code may be stored in alternate locations.
*/
-"session_keepalive" => true,
-/* Custom CSP policy, changing this will overwrite the standard policy */
-"custom_csp_policy" => "default-src 'self'; script-src 'self' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; frame-src *; img-src *; font-src 'self' data:; media-src *",
+/**
+ * ownCloud uses some 3rd party PHP components to provide certain functionality.
+ * These components are shipped as part of the software package and reside in
+ * ``owncloud/3rdparty``. Use this option to configure a different location.
+ */
+'3rdpartyroot' => '',
-/* Enable/disable X-Frame-Restriction */
-/* HIGH SECURITY RISK IF DISABLED*/
-"xframe_restriction" => true,
+/**
+ * If you have an alternate ``3rdpartyroot``, you must also configure the URL as
+ * seen by a Web browser.
+ */
+'3rdpartyurl' => '',
-/* The directory where the user data is stored, default to data in the owncloud
- * directory. The sqlite database is also stored here, when sqlite is used.
+/**
+ * This section is for configuring the download links for ownCloud clients, as
+ * seen in the first-run wizard and on Personal pages.
*/
-// "datadirectory" => "",
+'customclient_desktop' =>
+ 'http://owncloud.org/sync-clients/',
+'customclient_android' =>
+ 'https://play.google.com/store/apps/details?id=com.owncloud.android',
+'customclient_ios' =>
+ 'https://itunes.apple.com/us/app/owncloud/id543672169?mt=8',
-/* The directory where the skeleton files are located. These files will be copied to the data
- * directory of new users. Leave empty to not copy any skeleton files.
+/**
+ * Apps
+ *
+ * Options for the Apps folder, Apps store, and App code checker.
*/
-// "skeletondirectory" => "",
-/* Enable maintenance mode to disable ownCloud
- If you want to prevent users to login to ownCloud before you start doing some maintenance work,
- you need to set the value of the maintenance parameter to true.
- Please keep in mind that users who are already logged-in are kicked out of ownCloud instantly.
-*/
-"maintenance" => false,
+/**
+ * When enabled, admins may install apps from the ownCloud app store.
+ */
+'appstoreenabled' => true,
-"apps_paths" => array(
+/**
+ * The URL of the appstore to use.
+ */
+'appstoreurl' => 'https://api.owncloud.com/v1',
-/* Set an array of path for your apps directories
- key 'path' is for the fs path and the key 'url' is for the http path to your
- applications paths. 'writable' indicates whether the user can install apps in this folder.
- You must have at least 1 app folder writable or you must set the parameter 'appstoreenabled' to false
-*/
+/**
+ * Use the ``apps_paths`` parameter to set the location of the Apps directory,
+ * which should be scanned for available apps, and where user-specific apps
+ * should be installed from the Apps store. The ``path`` defines the absolute
+ * file system path to the app folder. The key ``url`` defines the HTTP web path
+ * to that folder, starting from the ownCloud web root. The key ``writable``
+ * indicates if a web server can write files to that folder.
+ */
+'apps_paths' => array(
array(
'path'=> '/var/www/owncloud/apps',
'url' => '/apps',
'writable' => true,
),
),
-'user_backends'=>array(
- array(
- 'class'=>'OC_User_IMAP',
- 'arguments'=>array('{imap.gmail.com:993/imap/ssl}INBOX')
- )
-),
-//links to custom clients
-'customclient_desktop' => '', //http://owncloud.org/sync-clients/
-'customclient_android' => '', //https://play.google.com/store/apps/details?id=com.owncloud.android
-'customclient_ios' => '', //https://itunes.apple.com/us/app/owncloud/id543672169?mt=8
-// PREVIEW
+/**
+ * @see appcodechecker
+ */
+
+
+/**
+ * Previews
+ *
+ * ownCloud supports previews of image files, the covers of MP3 files, and text
+ * files. These options control enabling and disabling previews, and thumbnail
+ * size.
+ */
+
+/**
+ * TODO
+ */
'enable_previews' => true,
-/* the max width of a generated preview, if value is null, there is no limit */
+/**
+ * The maximum width, in pixels, of a preview. A value of ``null`` means there
+ * is no limit.
+ */
'preview_max_x' => null,
-/* the max height of a generated preview, if value is null, there is no limit */
+/**
+ * The maximum height, in pixels, of a preview. A value of ``null`` means there
+ * is no limit.
+ */
'preview_max_y' => null,
-/* the max factor to scale a preview, default is set to 10 */
+/**
+ * If a lot of small pictures are stored on the ownCloud instance and the
+ * preview system generates blurry previews, you might want to consider setting
+ * a maximum scale factor. By default, pictures are upscaled to 10 times the
+ * original size. A value of ``1`` or ``null`` disables scaling.
+ */
'preview_max_scale_factor' => 10,
-/* custom path for libreoffice / openoffice binary */
+/**
+ * custom path for LibreOffice/OpenOffice binary
+ */
'preview_libreoffice_path' => '/usr/bin/libreoffice',
-/* cl parameters for libreoffice / openoffice */
-'preview_office_cl_parameters' => ' --headless --nologo --nofirststartwizard --invisible --norestore -convert-to pdf -outdir ',
+/**
+ * Use this if LibreOffice/OpenOffice requires additional arguments.
+ */
+'preview_office_cl_parameters' =>
+ ' --headless --nologo --nofirststartwizard --invisible --norestore '.
+ '-convert-to pdf -outdir ',
/**
* Only register providers that have been explicitly enabled
*
* The following providers are enabled by default:
+ *
* - OC\Preview\Image
+ * - OC\Preview\MarkDown
* - OC\Preview\MP3
* - OC\Preview\TXT
- * - OC\Preview\MarkDown
*
- * The following providers are disabled by default due to performance or privacy concerns:
- * - OC\Preview\MSOfficeDoc
+ * The following providers are disabled by default due to performance or privacy
+ * concerns:
+ *
+ * - OC\Preview\Illustrator
+ * - OC\Preview\Movies
* - OC\Preview\MSOffice2003
* - OC\Preview\MSOffice2007
+ * - OC\Preview\MSOfficeDoc
* - OC\Preview\OpenDocument
+ * - OC\Preview\PDF
+ * - OC\Preview\Photoshop
+ * - OC\Preview\Postscript
* - OC\Preview\StarOffice
* - OC\Preview\SVG
- * - OC\Preview\Movies
- * - OC\Preview\PDF
* - OC\Preview\TIFF
- * - OC\Preview\Illustrator
- * - OC\Preview\Postscript
- * - OC\Preview\Photoshop
*/
'enabledPreviewProviders' => array(
'OC\Preview\Image',
@@ -315,79 +594,221 @@ $CONFIG = array(
'OC\Preview\MarkDown'
),
-/* whether avatars should be enabled */
-'enable_avatars' => true,
-// Extra SSL options to be used for configuration
+/**
+ * Maintenance
+ *
+ * These options are for halting user activity when you are performing server
+ * maintenance.
+ */
+
+/**
+ * Enable maintenance mode to disable ownCloud
+ *
+ * If you want to prevent users to login to ownCloud before you start doing some
+ * maintenance work, you need to set the value of the maintenance parameter to
+ * true. Please keep in mind that users who are already logged-in are kicked out
+ * of ownCloud instantly.
+ */
+'maintenance' => false,
+
+/**
+ * When set to ``true``, the ownCloud instance will be unavailable for all users
+ * who are not in the ``admin`` group.
+ */
+'singleuser' => false,
+
+
+/**
+ * SSL
+ */
+
+/**
+ * Change this to ``true`` to require HTTPS for all connections, and to reject
+ * HTTP requests.
+ */
+'forcessl' => false,
+
+/**
+ * Extra SSL options to be used for configuration.
+ */
'openssl' => array(
- //'config' => '/absolute/location/of/openssl.cnf',
+ 'config' => '/absolute/location/of/openssl.cnf',
),
-// default cipher used for file encryption, currently we support AES-128-CFB and AES-256-CFB
-'cipher' => 'AES-256-CFB',
-/* whether usage of the instance should be restricted to admin users only */
-'singleuser' => false,
+/**
+ * Miscellaneous
+ */
-/* all css and js files will be served by the web server statically in one js file and ons css file*/
-'asset-pipeline.enabled' => false,
+/**
+ * Blacklist a specific file and disallow the upload of files with this name
+ * WARNING: USE THIS ONLY IF YOU KNOW WHAT YOU ARE DOING.
+ */
+'blacklisted_files' => array('.htaccess'),
-/* where mount.json file should be stored, defaults to data/mount.json */
-// 'mount_file' => 'data/mount.json',
+/**
+ * Define a default folder for shared files and folders other than root.
+ */
+'share_folder' => '/',
-/*
- * Location of the cache folder, defaults to "data/$user/cache" where "$user" is the current user.
- *
- * When specified, the format will change to "$cache_path/$user" where "$cache_path" is the configured
- * cache directory and "$user" is the user.
- *
+/**
+ * If you are applying a theme to ownCloud, enter the name of the theme here.
+ * The default location for themes is ``owncloud/themes/``.
+ */
+'theme' => '',
+
+/**
+ * X-Frame-Restriction is a header which prevents browsers from showing the site
+ * inside an iframe. This is be used to prevent clickjacking. It is risky to
+ * disable this, so leave it set at ``true``.
+ */
+'xframe_restriction' => true,
+
+/**
+ * The default cipher for encrypting files. Currently AES-128-CFB and
+ * AES-256-CFB are supported.
+ */
+'cipher' => 'AES-256-CFB',
+
+/**
+ * Server details for one or more memcached servers to use for memory caching.
+ * Memcache is only used if other memory cache options (xcache, apc, apcu) are
+ * not available.
+ */
+'memcached_servers' => array(
+ // hostname, port and optional weight. Also see:
+ // http://www.php.net/manual/en/memcached.addservers.php
+ // http://www.php.net/manual/en/memcached.addserver.php
+ array('localhost', 11211),
+ //array('other.host.local', 11211),
+),
+
+/**
+ * Location of the cache folder, defaults to ``data/$user/cache`` where
+ * ``$user`` is the current user. When specified, the format will change to
+ * ``$cache_path/$user`` where ``$cache_path`` is the configured cache directory
+ * and ``$user`` is the user.
*/
'cache_path' => '',
-/* EXPERIMENTAL: option whether to include external storage in quota calculation, defaults to false */
+/**
+ * EXPERIMENTAL: option whether to include external storage in quota
+ * calculation, defaults to false.
+ */
'quota_include_external_storage' => false,
-/*
- * specifies how often the filesystem is checked for changes made outside owncloud
- * 0 -> never check the filesystem for outside changes, provides a performance increase when it's certain that no changes are made directly to the filesystem
- * 1 -> check each file or folder at most once per request, recomended for general use if outside changes might happen
- * 2 -> check every time the filesystem is used, causes a performance hit when using external storages, not recomended for regular use
+/**
+ * Specifies how often the filesystem is checked for changes made outside
+ * ownCloud.
+ *
+ * 0 -> Never check the filesystem for outside changes, provides a performance
+ * increase when it's certain that no changes are made directly to the
+ * filesystem
+ *
+ * 1 -> Check each file or folder at most once per request, recommended for
+ * general use if outside changes might happen.
+ *
+ * 2 -> Check every time the filesystem is used, causes a performance hit when
+ * using external storages, not recommended for regular use.
*/
'filesystem_check_changes' => 1,
-/* If true, prevent owncloud from changing the cache due to changes in the filesystem for all storage */
+/**
+ * All css and js files will be served by the web server statically in one js
+ * file and one css file if this is set to ``true``.
+ */
+'asset-pipeline.enabled' => false,
+
+/**
+ * Where ``mount.json`` file should be stored, defaults to ``data/mount.json``
+ */
+'mount_file' => 'data/mount.json',
+
+/**
+ * When ``true``, prevent ownCloud from changing the cache due to changes in the
+ * filesystem for all storage.
+ */
'filesystem_cache_readonly' => false,
-/*
- * The example below shows how to configure ownCloud to store all files in a swift object storage
+/**
+ * The example below shows how to configure ownCloud to store all files in a
+ * swift object storage.
*
- * It is important to note that ownCloud in object store mode will expect exclusive access
- * to the object store container because it only stores the binary data for each file. The
- * metadata is currently kept in the local database for performance reasons.
+ * It is important to note that ownCloud in object store mode will expect
+ * exclusive access to the object store container because it only stores the
+ * binary data for each file. The metadata is currently kept in the local
+ * database for performance reasons.
*
- * WARNING: The current implementation is incompatible with any app that uses direct file IO and circumvents our
- * virtual filesystem. That includes Encryption and Gallery. Gallery will store thumbnails directly in the filesystem
- * and encryption will cause severe overhead because key files need to be fetched in addition to any requested file.
+ * WARNING: The current implementation is incompatible with any app that uses
+ * direct file IO and circumvents our virtual filesystem. That includes
+ * Encryption and Gallery. Gallery will store thumbnails directly in the
+ * filesystem and encryption will cause severe overhead because key files need
+ * to be fetched in addition to any requested file.
*
* One way to test is applying for a trystack account at http://trystack.org/
*/
'objectstore' => array(
'class' => 'OC\\Files\\ObjectStore\\Swift',
'arguments' => array(
- 'username' => 'facebook100000123456789', // trystack will user your facebook id as the user name
- 'password' => 'Secr3tPaSSWoRdt7', // in the trystack dashboard go to user -> settings -> API Password to generate a password
- 'container' => 'owncloud', // must already exist in the objectstore, name can be different
- 'autocreate' => true, // create the container if it does not exist. default is false
- 'region' => 'RegionOne', //required, dev-/trystack defaults to 'RegionOne'
- 'url' => 'http://8.21.28.222:5000/v2.0', // The Identity / Keystone endpoint
- 'tenantName' => 'facebook100000123456789', // required on dev-/trystack
- 'serviceName' => 'swift', //dev-/trystack uses swift by default, the lib defaults to 'cloudFiles' if omitted
+ // trystack will user your facebook id as the user name
+ 'username' => 'facebook100000123456789',
+ // in the trystack dashboard go to user -> settings -> API Password to
+ // generate a password
+ 'password' => 'Secr3tPaSSWoRdt7',
+ // must already exist in the objectstore, name can be different
+ 'container' => 'owncloud',
+ // create the container if it does not exist. default is false
+ 'autocreate' => true,
+ // required, dev-/trystack defaults to 'RegionOne'
+ 'region' => 'RegionOne',
+ // The Identity / Keystone endpoint
+ 'url' => 'http://8.21.28.222:5000/v2.0',
+ // required on dev-/trystack
+ 'tenantName' => 'facebook100000123456789',
+ // dev-/trystack uses swift by default, the lib defaults to 'cloudFiles'
+ // if omitted
+ 'serviceName' => 'swift',
),
),
/**
- * define default folder for shared files and folders
+ * Custom CSP policy, changing this will overwrite the standard policy
*/
-'share_folder' => '/',
+'custom_csp_policy' =>
+ "default-src 'self'; script-src 'self' 'unsafe-eval'; ".
+ "style-src 'self' 'unsafe-inline'; frame-src *; img-src *; ".
+ "font-src 'self' data:; media-src *",
+
+
+/**
+ * All other config options
+ */
+
+/**
+ * Secret used by ownCloud for various purposes, e.g. to encrypt data. If you
+ * lose this string there will be data corruption.
+ */
+'secret' => '',
+
+/**
+ * List of trusted proxy servers
+ */
+'trusted_proxies' => array('203.0.113.45', '198.51.100.128'),
+
+/**
+ * Headers that should be trusted as client IP address in combination with
+ * `trusted_proxies`
+ */
+'forwarded_for_headers' => array('HTTP_X_FORWARDED', 'HTTP_FORWARDED_FOR'),
+
+/**
+ * This entry is just here to show a warning in case somebody copied the sample
+ * configuration. DO NOT ADD THIS SWITCH TO YOUR CONFIGURATION!
+ *
+ * If you, brave person, have read until here be aware that you should not
+ * modify *ANY* settings in this file without reading the documentation.
+ */
+'copied_sample_config' => true,
);
diff --git a/core/css/apps.css b/core/css/apps.css
index 32582a8026a..35487bee598 100644
--- a/core/css/apps.css
+++ b/core/css/apps.css
@@ -484,7 +484,7 @@ button.loading {
}
.section h2 {
font-size: 20px;
- margin-bottom: 7px;
+ margin-bottom: 12px;
}
.section h3 {
font-size: 16px;
diff --git a/core/l10n/da.php b/core/l10n/da.php
index eab26ee2ce7..8eace7d1662 100644
--- a/core/l10n/da.php
+++ b/core/l10n/da.php
@@ -201,7 +201,7 @@ $TRANSLATIONS = array(
"%s will be updated to version %s." => "%s vil blive opdateret til version %s.",
"The following apps will be disabled:" => "Følgende apps bliver deaktiveret:",
"The theme %s has been disabled." => "Temaet, %s, er blevet deaktiveret.",
-"Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Venligst sikrer dig en backup af databasen, config-mappen og data-mappen inden vi fortsætter.",
+"Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Sørg venligst for at sikre, at databasen, config-mappen og data-mappen er blevet sikkerhedskopieret inden vi fortsætter.",
"Start update" => "Begynd opdatering",
"To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "For at undgå tidsudløb med større installationer, så kan du i stedet køre følgende kommando fra din installationsmappe:",
"This %s instance is currently being updated, which may take a while." => "Denne %s-instans bliver i øjeblikket opdateret, hvilket kan tage et stykke tid.",
diff --git a/core/l10n/fr.php b/core/l10n/fr.php
index 4319e3915bc..e307542a902 100644
--- a/core/l10n/fr.php
+++ b/core/l10n/fr.php
@@ -8,7 +8,7 @@ $TRANSLATIONS = array(
"Checked database schema update for apps" => "La mise à jour du schéma de la base de données pour les applications a été vérifiée",
"Updated \"%s\" to %s" => "Mise à jour de « %s » vers %s",
"Disabled incompatible apps: %s" => "Applications incompatibles désactivées : %s",
-"No image or file provided" => "Aucune image ou fichier fourni",
+"No image or file provided" => "Aucun fichier fourni",
"Unknown filetype" => "Type de fichier inconnu",
"Invalid image" => "Image non valable",
"No temporary profile picture available, try again" => "Aucune image temporaire disponible pour le profil. Essayez à nouveau.",
@@ -39,15 +39,15 @@ $TRANSLATIONS = array(
"Audio" => "Audio",
"Saving..." => "Enregistrement…",
"Couldn't send reset email. Please contact your administrator." => "Impossible d'envoyer le courriel de réinitialisation. Veuillez contacter votre administrateur.",
-"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." => "Le lien permettant de réinitialiser votre mot de passe vous a été transmis à votre adresse de courriel.<br>Si vous ne le recevez pas dans un délai raisonnable, vérifiez votre dossier de pourriels (spams).<br>Si besoin, contactez votre administrateur local.",
-"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 clef de récupération, il n'y aura plus aucun moyen de récupérer vos données une fois le mot de passe réinitialisé. Si vous n'êtes pas sûr de ce que vous faites, veuillez contacter votre administrateur avant de continuer. Voulez-vous vraiment continuer ?",
+"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." => "Le lien permettant de réinitialiser votre mot de passe vient d'être envoyé à votre adresse de courriel.<br>Si vous ne le recevez pas dans un délai raisonnable, vérifiez votre dossier de pourriels/spams.<br>Si besoin, contactez votre administrateur.",
+"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 clef 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 ?",
"I know what I'm doing" => "Je sais ce que je fais",
"Reset password" => "Réinitialiser le mot de passe",
"Password can not be changed. Please contact your administrator." => "Le mot de passe ne peut être modifié. Veuillez contacter votre administrateur.",
"No" => "Non",
"Yes" => "Oui",
"Choose" => "Choisir",
-"Error loading file picker template: {error}" => "Erreur de chargement du modèle de sélectionneur de fichiers : {error}",
+"Error loading file picker template: {error}" => "Erreur lors du chargement du modèle du sélecteur de fichiers : {error}",
"Ok" => "Ok",
"Error loading message template: {error}" => "Erreur de chargement du modèle de message : {error}",
"_{count} file conflict_::_{count} file conflicts_" => array("{count} fichier en conflit","{count} fichiers en conflit"),
@@ -57,16 +57,16 @@ $TRANSLATIONS = array(
"Which files do you want to keep?" => "Quels fichiers désirez-vous garder ?",
"If you select both versions, the copied file will have a number added to its name." => "Si vous sélectionnez les deux versions, un nombre sera ajouté au nom du fichier copié.",
"Cancel" => "Annuler",
-"Continue" => "Poursuivre",
+"Continue" => "Continuer",
"(all selected)" => "(tous sélectionnés)",
-"({count} selected)" => "({count} sélectionnés)",
+"({count} selected)" => "({count} sélectionné(s))",
"Error loading file exists template" => "Erreur de chargement du modèle de fichier existant",
-"Very weak password" => "Mot de passe de très faible sécurité",
-"Weak password" => "Mot de passe de faible sécurité",
-"So-so password" => "Mot de passe de sécurité tout juste acceptable",
+"Very weak password" => "Mot de passe très faible",
+"Weak password" => "Mot de passe faible",
+"So-so password" => "Mot de passe tout juste acceptable",
"Good password" => "Mot de passe de sécurité suffisante",
-"Strong password" => "Mot de passe de forte sécurité",
-"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Votre serveur web, n'est pas correctement configuré pour permettre la synchronisation des fichiers, car l'interface WebDav ne semble pas fonctionner.",
+"Strong password" => "Mot de passe fort",
+"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Votre serveur web n'est pas correctement configuré pour permettre la synchronisation des fichiers, car l'interface WebDav semble ne pas fonctionner.",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. 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 ne fonctionneront pas non plus. Il est recommandé d'activer la connexion internet pour ce serveur si vous souhaitez disposer de l'ensemble des fonctionnalités offertes.",
"Error occurred while checking server setup" => "Une erreur s'est produite lors de la vérification de la configuration du serveur",
"Shared" => "Partagé",
@@ -76,34 +76,34 @@ $TRANSLATIONS = array(
"Error while sharing" => "Erreur lors de la mise en partage",
"Error while unsharing" => "Erreur lors de l'annulation du partage",
"Error while changing permissions" => "Erreur lors du changement des permissions",
-"Shared with you and the group {group} by {owner}" => "Partagé par {owner} avec vous et le groupe {group}",
+"Shared with you and the group {group} by {owner}" => "Partagé avec vous et le groupe {group} par {owner}",
"Shared with you by {owner}" => "Partagé avec vous par {owner}",
"Share with user or group …" => "Partager avec un utilisateur ou un groupe...",
-"Share link" => "Partager le lien",
-"The public link will expire no later than {days} days after it is created" => "Ce lien public expirera au plus tard, dans {days} jours après sa création.",
+"Share link" => "Partager par lien public",
+"The public link will expire no later than {days} days after it is created" => "Ce lien public expirera au plus tard {days} jours après sa création.",
"Password protect" => "Protéger par un mot de passe",
-"Choose a password for the public link" => "Choisissez un mot de passe pour le lien public.",
-"Allow Public Upload" => "Autoriser le téléversement par les utilisateurs non enregistrés",
-"Email link to person" => "Envoyez le lien par courriel",
+"Choose a password for the public link" => "Choisissez un mot de passe pour le lien public",
+"Allow Public Upload" => "Autoriser l'ajout de fichiers par des utilisateurs non enregistrés",
+"Email link to person" => "Envoyer le lien par courriel",
"Send" => "Envoyer",
-"Set expiration date" => "Spécifier la date d'expiration",
+"Set expiration date" => "Spécifier une date d'expiration",
"Expiration date" => "Date d'expiration",
"Adding user..." => "Utilisateur en cours d'ajout...",
"group" => "groupe",
"Resharing is not allowed" => "Le repartage n'est pas autorisé",
"Shared in {item} with {user}" => "Partagé dans {item} avec {user}",
"Unshare" => "Ne plus partager",
-"notify by email" => "Notifier par courriel",
+"notify by email" => "notifier par courriel",
"can share" => "peut partager",
-"can edit" => "modification autorisée",
-"access control" => "contrôle des accès",
+"can edit" => "peut modifier",
+"access control" => "contrôle d'accès",
"create" => "créer",
"update" => "mettre à jour",
"delete" => "supprimer",
-"Password protected" => "Protégé par un mot de passe",
-"Error unsetting expiration date" => "Une erreur est survenue pendant la suppression de la date d'expiration",
+"Password protected" => "Protégé par mot de passe",
+"Error unsetting expiration date" => "Erreur lors de la suppression de la date d'expiration",
"Error setting expiration date" => "Erreur lors de la spécification de la date d'expiration",
-"Sending ..." => "Envoi…",
+"Sending ..." => "Envoi …",
"Email sent" => "Courriel envoyé",
"Warning" => "Attention",
"The object type is not specified." => "Le type d'objet n'est pas spécifié.",
@@ -111,26 +111,26 @@ $TRANSLATIONS = array(
"Delete" => "Supprimer",
"Add" => "Ajouter",
"Edit tags" => "Modifier les marqueurs",
-"Error loading dialog template: {error}" => "Erreur de chargement du modèle de dialogue : {error}",
+"Error loading dialog template: {error}" => "Erreur lors du chargement du modèle de dialogue : {error}",
"No tags selected for deletion." => "Aucun marqueur sélectionné pour la suppression.",
-"Updating {productName} to version {version}, this may take a while." => "Mise à jour en cours de {productName} vers la version {version}, cela peut prendre un certain temps.",
+"Updating {productName} to version {version}, this may take a while." => "La mise à jour de {productName} vers la version {version} est en cours. Cela peut prendre un certain temps.",
"Please reload the page." => "Veuillez recharger la page.",
"The update was unsuccessful." => "La mise à jour a échoué.",
-"The update was successful. Redirecting you to ownCloud now." => "La mise à jour a réussi. Vous êtes redirigé maintenant vers ownCloud.",
-"Couldn't reset password because the token is invalid" => "Impossible de réinitialiser le mot de passe car le jeton est n'est pas valable.",
+"The update was successful. Redirecting you to ownCloud now." => "La mise à jour a réussi. Vous êtes maintenant redirigé(e) vers ownCloud.",
+"Couldn't reset password because the token is invalid" => "Impossible de réinitialiser le mot de passe car le jeton n'est pas valable.",
"Couldn't send reset email. Please make sure your username is correct." => "Impossible d'envoyer le courriel de réinitialisation. Veuillez vérifier que votre nom d'utilisateur est correct.",
"Couldn't send reset email because there is no email address for this username. Please contact your administrator." => "Impossible d'envoyer le courriel de réinitialisation car il n'y a aucune adresse de courriel pour cet utilisateur. Veuillez contacter votre administrateur.",
"%s password reset" => "Réinitialisation de votre mot de passe %s",
"Use the following link to reset your password: {link}" => "Utilisez le lien suivant pour réinitialiser votre mot de passe : {link}",
"You will receive a link to reset your password via Email." => "Vous allez recevoir un courriel contenant un lien pour réinitialiser votre mot de passe.",
"Username" => "Nom d'utilisateur",
-"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. If you are not sure what to do, please contact your administrator before you continue. Do you really want to continue?" => "Vos fichiers sont chiffrés. Si vous n'avez pas activé la clef de récupération, il n'y aura plus aucun moyen de récupérer vos données une fois le mot de passe réinitialisé. Si vous n'êtes pas sûr de ce que vous faites, veuillez contacter votre administrateur avant de poursuivre. Voulez-vous vraiment continuer ?",
+"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. If you are not sure what to do, please contact your administrator before you continue. Do you really want to continue?" => "Vos fichiers sont chiffrés. Si vous n'avez pas activé la clef 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é. Si vous n'êtes pas sûr(e) de ce que vous faites, veuillez contacter votre administrateur avant de poursuivre. Voulez-vous vraiment continuer ?",
"Yes, I really want to reset my password now" => "Oui, je veux vraiment réinitialiser mon mot de passe maintenant",
"Reset" => "Réinitialiser",
"New password" => "Nouveau mot de passe",
"New Password" => "Nouveau mot de passe",
"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 !",
-"For the best results, please consider using a GNU/Linux server instead." => "Pour de meilleurs résultats, vous devriez utiliser un serveur GNU/Linux.",
+"For the best results, please consider using a GNU/Linux server instead." => "Pour obtenir les meilleurs résultats, vous devriez utiliser un serveur GNU/Linux.",
"Personal" => "Personnel",
"Users" => "Utilisateurs",
"Apps" => "Applications",
@@ -151,7 +151,7 @@ $TRANSLATIONS = array(
"The share will expire on %s." => "Le partage expirera le %s.",
"Cheers!" => "À bientôt !",
"The server encountered an internal error and was unable to complete your request." => "Le serveur a rencontré une erreur interne et est incapable d'exécuter votre requête.",
-"Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." => "Veuillez contacter l'administrateur du serveur. Si cette erreur apparaît plusieurs fois, veuillez joindre les détails techniques à votre rapport.",
+"Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." => "Veuillez contacter l'administrateur du serveur si cette erreur apparaît plusieurs fois. Veuillez joindre les détails techniques à votre rapport.",
"More details can be found in the server log." => "Le fichier journal du serveur peut fournir plus de renseignements.",
"Technical details" => "Renseignements techniques",
"Remote Address: %s" => "Adresse distante : %s",
@@ -164,46 +164,46 @@ $TRANSLATIONS = array(
"Security Warning" => "Avertissement de sécurité",
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Votre version de PHP est vulnérable à l'attaque par caractère NULL (CVE-2006-7243)",
"Please update your PHP installation to use %s securely." => "Veuillez mettre à jour votre installation PHP pour utiliser %s de façon sécurisée.",
-"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Votre répertoire de données est certainement accessible depuis l'internet car le fichier .htaccess ne semble pas fonctionner",
+"Your data directory and files are probably accessible from the internet because the .htaccess file does not work." => "Votre répertoire de données est certainement accessible depuis l'internet car le fichier .htaccess ne fonctionne pas.",
"For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\">documentation</a>." => "Pour les informations de configuration de votre serveur, veuillez lire la <a href=\"%s\" target=\"_blank\">documentation</a>.",
"Create an <strong>admin account</strong>" => "Créer un <strong>compte administrateur</strong>",
"Password" => "Mot de passe",
-"Storage & database" => "Support de stockage & base de données",
+"Storage & database" => "Stockage & base de données",
"Data folder" => "Répertoire des données",
"Configure the database" => "Configurer la base de données",
-"Only %s is available." => "%s disponible uniquement.",
-"Database user" => "Utilisateur pour la base de données",
+"Only %s is available." => "%s seulement est disponible.",
+"Database user" => "Utilisateur de la base de données",
"Database password" => "Mot de passe de la base de données",
"Database name" => "Nom de la base de données",
-"Database tablespace" => "Unités logiques de stockage de la base de données",
-"Database host" => "Serveur de la base de données",
-"SQLite will be used as database. For larger installations we recommend to change this." => "SQLite va être utilisée comme base de donnée. Pour des installations plus volumineuses, nous vous conseillons de changer ce réglage.",
+"Database tablespace" => "Tablespace de la base de données",
+"Database host" => "Hôte de la base de données",
+"SQLite will be used as database. For larger installations we recommend to change this." => "SQLite va être utilisée comme base de données. Pour des installations plus volumineuses, nous vous conseillons de changer ce réglage.",
"Finish setup" => "Terminer l'installation",
-"Finishing …" => "Finalisation…",
-"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "Cette application nécessite JavaScript pour fonctionner correctement. Veuillez <a href=\"http://enable-javascript.com/\" target=\"_blank\">activer JavaScript</a> puis charger à nouveau cette page.",
+"Finishing …" => "Finalisation …",
+"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "Cette application nécessite JavaScript pour fonctionner correctement. Veuillez <a href=\"http://www.enable-javascript.com/fr/\" target=\"_blank\">activer JavaScript</a> puis charger à nouveau cette page.",
"%s is available. Get more information on how to update." => "%s est disponible. Obtenez plus d'informations sur la façon de mettre à jour.",
"Log out" => "Se déconnecter",
-"Server side authentication failed!" => "L'authentification côté serveur a échoué !",
+"Server side authentication failed!" => "L'authentification sur le serveur a échoué !",
"Please contact your administrator." => "Veuillez contacter votre administrateur.",
-"Forgot your password? Reset it!" => "Mot de passe perdu ? Réinitialisez-le !",
+"Forgot your password? Reset it!" => "Mot de passe oublié ? Réinitialisez-le !",
"remember" => "se souvenir de moi",
"Log in" => "Connexion",
"Alternative Logins" => "Identifiants alternatifs",
"Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" => "Bonjour,<br><br>Nous vous informons que %s a partagé <strong>%s</strong> avec vous.<br><a href=\"%s\">Consultez-le !</a><br><br>",
"This ownCloud instance is currently in single user mode." => "Cette instance de ownCloud est actuellement en mode utilisateur unique.",
-"This means only administrators can use the instance." => "Cela signifie qu'uniquement les administrateurs peuvent utiliser l'instance.",
+"This means only administrators can use the instance." => "Cela signifie que seuls les administrateurs peuvent utiliser l'instance.",
"Contact your system administrator if this message persists or appeared unexpectedly." => "Veuillez contacter votre administrateur système si ce message persiste ou apparaît de façon inattendue.",
"Thank you for your patience." => "Merci de votre patience.",
-"You are accessing the server from an untrusted domain." => "Vous accédez au serveur à partir d'un domaine non-approuvé.",
-"Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domain\" setting in config/config.php. An example configuration is provided in config/config.sample.php." => "Veuillez contacter votre administrateur. Si vous être l'administrateur de cette instance, il faut configurer la variable « trusted_domain » dans le fichier config/config.php. Un exemple de configuration est fourni dans le fichier config/config.sample.php.",
+"You are accessing the server from an untrusted domain." => "Vous accédez au serveur à partir d'un domaine non approuvé.",
+"Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domain\" setting in config/config.php. An example configuration is provided in config/config.sample.php." => "Veuillez contacter votre administrateur. Si vous êtes administrateur de cette instance, configurez le paramètre « trusted_domain » dans le fichier config/config.php. Un exemple de configuration est fourni dans le fichier config/config.sample.php.",
"Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." => "En fonction de votre configuration, en tant qu'administrateur vous pouvez également utiliser le bouton ci-dessous pour approuver ce domaine.",
-"Add \"%s\" as trusted domain" => "Ajouter \"%s\" comme domaine de confiance",
+"Add \"%s\" as trusted domain" => "Ajouter \"%s\" à la liste des domaines approuvés",
"%s will be updated to version %s." => "%s sera mis à jour vers la version %s.",
"The following apps will be disabled:" => "Les applications suivantes seront désactivées :",
"The theme %s has been disabled." => "Le thème %s a été désactivé.",
-"Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Veuillez vous assurer qu'une copie de sauvegarde de la base de données, du dossier de configuration et du dossier de données a été réalisée avant le commencement de la procédure.",
-"Start update" => "Démarrer la mise à jour.",
-"To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Afin d'éviter les délais d'interruption avec les installations de plus grande ampleur, vous devriez plutôt exécuter la commande suivante depuis le répertoire d'installation :",
+"Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "Veuillez vous assurer qu'une copie de sauvegarde de la base de données, du dossier de configuration (config) et du dossier de données (data) a été réalisée avant de commencer.",
+"Start update" => "Démarrer la mise à jour",
+"To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "Afin d'éviter les dépassements de délai (timeouts) avec les installations de plus grande ampleur, vous pouvez exécuter la commande suivante depuis le répertoire d'installation :",
"This %s instance is currently being updated, which may take a while." => "Cette instance de %s est en cours de mise à jour, cela peut prendre du temps.",
"This page will refresh itself when the %s instance is available again." => "Cette page se rafraîchira d'elle-même lorsque l'instance %s sera à nouveau disponible."
);
diff --git a/core/l10n/pt_PT.php b/core/l10n/pt_PT.php
index 67bca0bb43c..fdd1cfb5513 100644
--- a/core/l10n/pt_PT.php
+++ b/core/l10n/pt_PT.php
@@ -152,8 +152,11 @@ $TRANSLATIONS = array(
"The server encountered an internal error and was unable to complete your request." => "O servidor encontrou um erro interno e não conseguiu concluir o seu pedido.",
"Technical details" => "Detalhes técnicos",
"Remote Address: %s" => "Endereço remoto: %s",
+"Request ID: %s" => "ID do Pedido: %s",
+"Code: %s" => "Código: %s",
"Message: %s" => "Mensagem: %s",
"File: %s" => "Ficheiro: %s",
+"Line: %s" => "Linha: %s",
"Security Warning" => "Aviso de Segurança",
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "A sua versão do PHP é vulnerável ao ataque Byte Null (CVE-2006-7243)",
"Please update your PHP installation to use %s securely." => "Por favor atualize a sua versão PHP instalada para usar o %s com segurança.",
diff --git a/core/l10n/sl.php b/core/l10n/sl.php
index cc350690f4c..b6a7b9206f2 100644
--- a/core/l10n/sl.php
+++ b/core/l10n/sl.php
@@ -66,8 +66,9 @@ $TRANSLATIONS = array(
"So-so password" => "Slabo geslo",
"Good password" => "Dobro geslo",
"Strong password" => "Odlično geslo",
-"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Spletni stražnik še ni ustrezno nastavljen in ne omogoča usklajevanja, saj je nastavitev WebDAV okvarjena.",
-"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." => "Na voljo ni delujoče internetne povezave. To pomeni, da nekaterih možnosti, kot so priklapljanje zunanje shrambe, obveščanja o posodobitvah in nameščanje programov tretje roke ni podprto. Dostop do datotek z oddaljenih mest in pošiljanje obvestil preko elektronske pošte je verjetno še vedno mogoče. Za omogočanje vseh zmožnosti mora biti vzpostavljena tudi ustrezna internetna povezava.",
+"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "Spletni stražnik še ni ustrezno nastavljen in ne omogoča usklajevanja, saj je nastavitev vmesnika WebDAV okvarjena.",
+"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." => "Na voljo ni delujoče internetne povezave. To pomeni, da nekaterih možnosti, kot so priklapljanje zunanje shrambe, obveščanja o posodobitvah in nameščanje programov tretje roke ni podprto. Dostop do datotek z oddaljenih mest in pošiljanje obvestil preko elektronske pošte prav tako verjetno ne deluje. Za omogočanje vseh zmožnosti mora biti vzpostavljena tudi ustrezna internetna povezava.",
+"Error occurred while checking server setup" => "Prišlo je do napake med preverjanjem nastavitev strežnika",
"Shared" => "V souporabi",
"Shared with {recipients}" => "V souporabi z {recipients}",
"Share" => "Souporaba",
@@ -87,6 +88,7 @@ $TRANSLATIONS = array(
"Send" => "Pošlji",
"Set expiration date" => "Nastavi datum preteka",
"Expiration date" => "Datum preteka",
+"Adding user..." => "Dodajanje uporabnika ...",
"group" => "skupina",
"Resharing is not allowed" => "Nadaljnja souporaba ni dovoljena",
"Shared in {item} with {user}" => "V souporabi v {item} z uporabnikom {user}",
@@ -148,6 +150,15 @@ $TRANSLATIONS = array(
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" => "Pozdravljeni,\n\noseba %s vam je omogočila souporabo %s.\nVir si lahko ogledate: %s\n\n",
"The share will expire on %s." => "Povezava souporabe bo potekla %s.",
"Cheers!" => "Na zdravje!",
+"The server encountered an internal error and was unable to complete your request." => "Prišlo je do notranje napake, zato ni mogoče končati zahteve.",
+"More details can be found in the server log." => "Več podrobnosti je zabeleženih v dnevniku strežnika.",
+"Technical details" => "Tehnične podrobnosti",
+"Remote Address: %s" => "Oddaljen naslov: %s",
+"Request ID: %s" => "ID zahteve: %s",
+"Code: %s" => "Koda: %s",
+"Message: %s" => "Sporočilo: %s",
+"File: %s" => "Datoteka: %s",
+"Line: %s" => "Vrstica: %s",
"Security Warning" => "Varnostno opozorilo",
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "Uporabljena različica PHP je ranljiva za napad NULL Byte (CVE-2006-7243)",
"Please update your PHP installation to use %s securely." => "Za varno uporabo storitve %s, je treba posodobiti namestitev PHP",
diff --git a/core/l10n/zh_TW.php b/core/l10n/zh_TW.php
index 851663c5bd6..a431c6670da 100644
--- a/core/l10n/zh_TW.php
+++ b/core/l10n/zh_TW.php
@@ -68,6 +68,7 @@ $TRANSLATIONS = array(
"Strong password" => "很強的密碼",
"Your web server is not yet properly setup to allow files synchronization because the WebDAV interface seems to be broken." => "您的網頁伺服器尚未被正確設定來進行檔案同步,因為您的 WebDAV 界面似乎無法使用。",
"This server has no working internet connection. This means that some of the features like mounting of external storage, notifications about updates or installation of 3rd party apps don´t work. Accessing files from remote and sending of notification emails might also not work. We suggest to enable internet connection for this server if you want to have all features." => "這臺 ownCloud 伺服器沒有連接到網際網路,因此有些功能像是掛載外部儲存空間、更新 ownCloud 或應用程式的通知沒有辦法運作。透過網際網路存取檔案還有電子郵件通知可能也無法運作。如果想要 ownCloud 完整的功能,建議您將這臺伺服器連接至網際網路。",
+"Error occurred while checking server setup" => "檢查伺服器配置時發生錯誤",
"Shared" => "已分享",
"Shared with {recipients}" => "與 {recipients} 分享",
"Share" => "分享",
@@ -79,6 +80,7 @@ $TRANSLATIONS = array(
"Shared with you by {owner}" => "{owner} 已經和您分享",
"Share with user or group …" => "與用戶或群組分享",
"Share link" => "分享連結",
+"The public link will expire no later than {days} days after it is created" => "這個公開連結會在 {days} 天內失效",
"Password protect" => "密碼保護",
"Choose a password for the public link" => "為公開連結選一個密碼",
"Allow Public Upload" => "允許任何人上傳",
@@ -86,6 +88,7 @@ $TRANSLATIONS = array(
"Send" => "寄出",
"Set expiration date" => "指定到期日",
"Expiration date" => "到期日",
+"Adding user..." => "新增使用者……",
"group" => "群組",
"Resharing is not allowed" => "不允許重新分享",
"Shared in {item} with {user}" => "已和 {user} 分享 {item}",
@@ -103,7 +106,7 @@ $TRANSLATIONS = array(
"Sending ..." => "正在傳送…",
"Email sent" => "Email 已寄出",
"Warning" => "警告",
-"The object type is not specified." => "未指定物件類型。",
+"The object type is not specified." => "未指定物件類型",
"Enter new" => "輸入新的",
"Delete" => "刪除",
"Add" => "增加",
@@ -141,9 +144,23 @@ $TRANSLATIONS = array(
"Error favoriting" => "加入最愛時出錯",
"Error unfavoriting" => "從最愛移除出錯",
"Access forbidden" => "存取被拒",
+"File not found" => "找不到檔案",
+"The specified document has not been found on the server." => "該文件不存在於伺服器上",
+"You can click here to return to %s." => "點這裡以回到 %s",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" => "嗨,\n\n%s 和你分享了 %s ,到這裡看它:%s\n",
"The share will expire on %s." => "這個分享將會於 %s 過期",
"Cheers!" => "太棒了!",
+"The server encountered an internal error and was unable to complete your request." => "伺服器遭遇內部錯誤,無法完成您的要求",
+"Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." => "如果這個錯誤重複出現,請聯絡系統管理員,並附上以下的錯誤細節",
+"More details can be found in the server log." => "伺服器記錄檔裡面有更多細節",
+"Technical details" => "技術細節",
+"Remote Address: %s" => "遠端位置:%s",
+"Request ID: %s" => "請求編號:%s",
+"Code: %s" => "代碼:%s",
+"Message: %s" => "訊息:%s",
+"File: %s" => "檔案:%s",
+"Line: %s" => "行數:%s",
+"Trace" => "追蹤",
"Security Warning" => "安全性警告",
"Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)" => "您的 PHP 版本無法抵抗 NULL Byte 攻擊 (CVE-2006-7243)",
"Please update your PHP installation to use %s securely." => "請更新 PHP 以安全地使用 %s。",
@@ -163,6 +180,7 @@ $TRANSLATIONS = array(
"SQLite will be used as database. For larger installations we recommend to change this." => "將會使用 SQLite 作為資料庫,在大型安裝中建議使用其他種資料庫",
"Finish setup" => "完成設定",
"Finishing …" => "即將完成…",
+"This application requires JavaScript for correct operation. Please <a href=\"http://enable-javascript.com/\" target=\"_blank\">enable JavaScript</a> and reload the page." => "這個應用程式需要 Javascript 才能正常運作,請<a href=\"http://enable-javascript.com/\" target=\"_blank\">啟用 Javascript</a> 然後重新整理。",
"%s is available. Get more information on how to update." => "%s 已經釋出,瞭解更多資訊以進行更新。",
"Log out" => "登出",
"Server side authentication failed!" => "伺服器端認證失敗!",
@@ -185,6 +203,8 @@ $TRANSLATIONS = array(
"The theme %s has been disabled." => "主題 %s 已經被停用",
"Please make sure that the database, the config folder and the data folder have been backed up before proceeding." => "在繼續之前,請備份資料庫、config 目錄及資料目錄",
"Start update" => "開始升級",
-"To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "在大型安裝上,為了避免升級請求逾時,你也可以在安裝目錄執行下列指令:"
+"To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" => "在大型安裝上,為了避免升級請求逾時,你也可以在安裝目錄執行下列指令:",
+"This %s instance is currently being updated, which may take a while." => "正在更新這個 %s 安裝,需要一段時間",
+"This page will refresh itself when the %s instance is available again." => "%s 安裝恢復可用之後,本頁會自動重新整理"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot
index daba68e6341..cba4e0c5541 100644
--- a/l10n/templates/core.pot
+++ b/l10n/templates/core.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-06 01:54-0400\n"
+"POT-Creation-Date: 2014-10-10 01:54-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot
index c1b43c21cc0..070e41764db 100644
--- a/l10n/templates/files.pot
+++ b/l10n/templates/files.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-06 01:54-0400\n"
+"POT-Creation-Date: 2014-10-10 01:54-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,15 +18,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: ajax/list.php:38
+#: ajax/list.php:39
msgid "Storage not available"
msgstr ""
-#: ajax/list.php:45
+#: ajax/list.php:47
msgid "Storage invalid"
msgstr ""
-#: ajax/list.php:52
+#: ajax/list.php:55
msgid "Unknown error"
msgstr ""
diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot
index 5bafe4a987b..492d189e51f 100644
--- a/l10n/templates/files_encryption.pot
+++ b/l10n/templates/files_encryption.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-06 01:54-0400\n"
+"POT-Creation-Date: 2014-10-10 01:54-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,28 +17,54 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
+#: ajax/adminrecovery.php:19
+msgid "Unknown error"
+msgstr ""
+
+#: ajax/adminrecovery.php:23
+msgid "Missing recovery key password"
+msgstr ""
+
#: ajax/adminrecovery.php:29
-msgid "Recovery key successfully enabled"
+msgid "Please repeat the recovery key password"
msgstr ""
-#: ajax/adminrecovery.php:34
-msgid "Could not enable recovery key. Please check your recovery key password!"
+#: ajax/adminrecovery.php:35 ajax/changeRecoveryPassword.php:46
+msgid ""
+"Repeated recovery key password does not match the provided recovery key "
+"password"
msgstr ""
-#: ajax/adminrecovery.php:48
-msgid "Recovery key successfully disabled"
+#: ajax/adminrecovery.php:49
+msgid "Recovery key successfully enabled"
msgstr ""
-#: ajax/adminrecovery.php:53
+#: ajax/adminrecovery.php:51 ajax/adminrecovery.php:64
msgid ""
"Could not disable recovery key. Please check your recovery key password!"
msgstr ""
-#: ajax/changeRecoveryPassword.php:50
+#: ajax/adminrecovery.php:62
+msgid "Recovery key successfully disabled"
+msgstr ""
+
+#: ajax/changeRecoveryPassword.php:28
+msgid "Please provide the old recovery password"
+msgstr ""
+
+#: ajax/changeRecoveryPassword.php:34
+msgid "Please provide a new recovery password"
+msgstr ""
+
+#: ajax/changeRecoveryPassword.php:40
+msgid "Please repeat the new recovery password"
+msgstr ""
+
+#: ajax/changeRecoveryPassword.php:76
msgid "Password successfully changed."
msgstr ""
-#: ajax/changeRecoveryPassword.php:52
+#: ajax/changeRecoveryPassword.php:78
msgid "Could not change the password. Maybe the old password was not correct."
msgstr ""
@@ -52,6 +78,14 @@ msgid ""
"correct."
msgstr ""
+#: ajax/userrecovery.php:44
+msgid "File recovery settings updated"
+msgstr ""
+
+#: ajax/userrecovery.php:46
+msgid "Could not update file recovery"
+msgstr ""
+
#: files/error.php:16
msgid ""
"Encryption app not initialized! Maybe the encryption app was re-enabled "
@@ -122,39 +156,39 @@ msgid ""
"Enable recovery key (allow to recover users files in case of password loss):"
msgstr ""
-#: templates/settings-admin.php:12
+#: templates/settings-admin.php:13
msgid "Recovery key password"
msgstr ""
-#: templates/settings-admin.php:15
+#: templates/settings-admin.php:16
msgid "Repeat Recovery key password"
msgstr ""
-#: templates/settings-admin.php:23 templates/settings-personal.php:53
+#: templates/settings-admin.php:24 templates/settings-personal.php:54
msgid "Enabled"
msgstr ""
-#: templates/settings-admin.php:32 templates/settings-personal.php:62
+#: templates/settings-admin.php:33 templates/settings-personal.php:63
msgid "Disabled"
msgstr ""
-#: templates/settings-admin.php:37
+#: templates/settings-admin.php:38
msgid "Change recovery key password:"
msgstr ""
-#: templates/settings-admin.php:43
+#: templates/settings-admin.php:45
msgid "Old Recovery key password"
msgstr ""
-#: templates/settings-admin.php:50
+#: templates/settings-admin.php:52
msgid "New Recovery key password"
msgstr ""
-#: templates/settings-admin.php:56
+#: templates/settings-admin.php:58
msgid "Repeat New Recovery key password"
msgstr ""
-#: templates/settings-admin.php:61
+#: templates/settings-admin.php:63
msgid "Change Password"
msgstr ""
@@ -188,16 +222,8 @@ msgstr ""
msgid "Enable password recovery:"
msgstr ""
-#: templates/settings-personal.php:45
+#: templates/settings-personal.php:46
msgid ""
"Enabling this option will allow you to reobtain access to your encrypted "
"files in case of password loss"
msgstr ""
-
-#: templates/settings-personal.php:63
-msgid "File recovery settings updated"
-msgstr ""
-
-#: templates/settings-personal.php:64
-msgid "Could not update file recovery"
-msgstr ""
diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot
index c317eaaa35d..73239cab7e4 100644
--- a/l10n/templates/files_external.pot
+++ b/l10n/templates/files_external.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-06 01:54-0400\n"
+"POT-Creation-Date: 2014-10-10 01:54-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -235,29 +235,29 @@ msgstr ""
msgid "Saved"
msgstr ""
-#: lib/config.php:670
+#: lib/config.php:713
msgid "<b>Note:</b> "
msgstr ""
-#: lib/config.php:680
+#: lib/config.php:723
msgid " and "
msgstr ""
-#: lib/config.php:702
+#: lib/config.php:745
#, php-format
msgid ""
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting "
"of %s is not possible. Please ask your system administrator to install it."
msgstr ""
-#: lib/config.php:704
+#: lib/config.php:747
#, php-format
msgid ""
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of "
"%s is not possible. Please ask your system administrator to install it."
msgstr ""
-#: lib/config.php:706
+#: lib/config.php:749
#, php-format
msgid ""
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please "
diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot
index 34601f281aa..78cadd4d53d 100644
--- a/l10n/templates/files_sharing.pot
+++ b/l10n/templates/files_sharing.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-06 01:54-0400\n"
+"POT-Creation-Date: 2014-10-10 01:54-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/templates/files_trashbin.pot b/l10n/templates/files_trashbin.pot
index 8723faf2ad9..54760486261 100644
--- a/l10n/templates/files_trashbin.pot
+++ b/l10n/templates/files_trashbin.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-06 01:54-0400\n"
+"POT-Creation-Date: 2014-10-10 01:54-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot
index b7faa346cfd..2e9739c9328 100644
--- a/l10n/templates/files_versions.pot
+++ b/l10n/templates/files_versions.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-06 01:54-0400\n"
+"POT-Creation-Date: 2014-10-10 01:54-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot
index edec621f21a..0eb1eb19e58 100644
--- a/l10n/templates/lib.pot
+++ b/l10n/templates/lib.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-06 01:54-0400\n"
+"POT-Creation-Date: 2014-10-10 01:54-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -51,34 +51,34 @@ msgid ""
"before performing changes on config.php"
msgstr ""
-#: private/app.php:391
+#: private/app.php:398
msgid "Help"
msgstr ""
-#: private/app.php:404
+#: private/app.php:411
msgid "Personal"
msgstr ""
-#: private/app.php:415
+#: private/app.php:422
msgid "Settings"
msgstr ""
-#: private/app.php:427
+#: private/app.php:434
msgid "Users"
msgstr ""
-#: private/app.php:440
+#: private/app.php:447
msgid "Admin"
msgstr ""
-#: private/app.php:1135
+#: private/app.php:1150
#, php-format
msgid ""
"App \\\"%s\\\" can't be installed because it is not compatible with this "
"version of ownCloud."
msgstr ""
-#: private/app.php:1147
+#: private/app.php:1162
msgid "No app name specified"
msgstr ""
diff --git a/l10n/templates/private.pot b/l10n/templates/private.pot
index c49c4fb6feb..00ee07f1c2a 100644
--- a/l10n/templates/private.pot
+++ b/l10n/templates/private.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-06 01:54-0400\n"
+"POT-Creation-Date: 2014-10-10 01:54-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,34 +18,34 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: app.php:391
+#: app.php:398
msgid "Help"
msgstr ""
-#: app.php:404
+#: app.php:411
msgid "Personal"
msgstr ""
-#: app.php:415
+#: app.php:422
msgid "Settings"
msgstr ""
-#: app.php:427
+#: app.php:434
msgid "Users"
msgstr ""
-#: app.php:440
+#: app.php:447
msgid "Admin"
msgstr ""
-#: app.php:1135
+#: app.php:1150
#, php-format
msgid ""
"App \\\"%s\\\" can't be installed because it is not compatible with this "
"version of ownCloud."
msgstr ""
-#: app.php:1147
+#: app.php:1162
msgid "No app name specified"
msgstr ""
diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot
index c7629d78e3d..20af4dbd583 100644
--- a/l10n/templates/settings.pot
+++ b/l10n/templates/settings.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-06 01:54-0400\n"
+"POT-Creation-Date: 2014-10-10 01:54-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -365,19 +365,19 @@ msgstr ""
msgid "add group"
msgstr ""
-#: js/users/users.js:654
+#: js/users/users.js:657
msgid "A valid username must be provided"
msgstr ""
-#: js/users/users.js:655 js/users/users.js:661 js/users/users.js:676
+#: js/users/users.js:658 js/users/users.js:664 js/users/users.js:679
msgid "Error creating user"
msgstr ""
-#: js/users/users.js:660
+#: js/users/users.js:663
msgid "A valid password must be provided"
msgstr ""
-#: js/users/users.js:692
+#: js/users/users.js:695
msgid "Warning: Home directory for user \"{user}\" already exists"
msgstr ""
diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot
index 265868f8bbd..6a35c1c7bd4 100644
--- a/l10n/templates/user_ldap.pot
+++ b/l10n/templates/user_ldap.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-06 01:54-0400\n"
+"POT-Creation-Date: 2014-10-10 01:54-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/l10n/templates/user_webdavauth.pot b/l10n/templates/user_webdavauth.pot
index e0dacc340c5..186e862c160 100644
--- a/l10n/templates/user_webdavauth.pot
+++ b/l10n/templates/user_webdavauth.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud Core 6.0.0\n"
"Report-Msgid-Bugs-To: translations@owncloud.org\n"
-"POT-Creation-Date: 2014-10-06 01:54-0400\n"
+"POT-Creation-Date: 2014-10-10 01:54-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/lib/l10n/af_ZA.php b/lib/l10n/af_ZA.php
index 459493a61f0..3f3095ccb9a 100644
--- a/lib/l10n/af_ZA.php
+++ b/lib/l10n/af_ZA.php
@@ -10,6 +10,7 @@ $TRANSLATIONS = array(
"web services under your control" => "webdienste onder jou beheer",
"_%n minute ago_::_%n minutes ago_" => array("",""),
"_%n hour ago_::_%n hours ago_" => array("","%n ure gelede"),
+"today" => "vandag",
"_%n day go_::_%n days ago_" => array("","%n dae gelede"),
"_%n month ago_::_%n months ago_" => array("","%n maande gelede")
);
diff --git a/lib/l10n/fr.php b/lib/l10n/fr.php
index 83d6cc6ea92..7c26c973f6f 100644
--- a/lib/l10n/fr.php
+++ b/lib/l10n/fr.php
@@ -4,8 +4,8 @@ $TRANSLATIONS = array(
"This can usually be fixed by giving the webserver write access to the config directory" => "Ce problème est généralement résolu en donnant au serveur web un accès en écriture à ce répertoire",
"See %s" => "Voir %s",
"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "Ce problème est généralement résolu %sen donnant au serveur web un accès en écriture au répertoire de configuration%s.",
-"Sample configuration detected" => "Configuration d'example détectée",
-"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Il a été détecté que le configuration donnée à titre d'exemple a été copiée. Cela peut rendre votre installation inopérante et n'est pas supporté. Veuillez lire la documentation avant d'effectuer des modifications dans config.php",
+"Sample configuration detected" => "Configuration d'exemple détectée",
+"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "Il a été détecté que la configuration donnée à titre d'exemple a été copiée. Cela peut rendre votre installation inopérante et n'est pas pris en charge. Veuillez lire la documentation avant d'effectuer des modifications dans config.php",
"Help" => "Aide",
"Personal" => "Personnel",
"Settings" => "Paramètres",
@@ -14,7 +14,7 @@ $TRANSLATIONS = array(
"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "L'application \\\"%s\\\" ne peut pas être installée car elle n'est pas compatible avec cette version de ownCloud.",
"No app name specified" => "Aucun nom d'application spécifié",
"Unknown filetype" => "Type de fichier inconnu",
-"Invalid image" => "Image invalide",
+"Invalid image" => "Image non valable",
"web services under your control" => "services web sous votre contrôle",
"App directory already exists" => "Le dossier de l'application existe déjà",
"Can't create app folder. Please fix permissions. %s" => "Impossible de créer le dossier de l'application. Corrigez les droits d'accès. %s",
@@ -61,16 +61,16 @@ $TRANSLATIONS = array(
"Sharing %s failed, because the group %s does not exist" => "Le partage de %s a échoué car le groupe %s n'existe pas",
"Sharing %s failed, because %s is not a member of the group %s" => "Le partage de %s a échoué car %s n'est pas membre du groupe %s",
"You need to provide a password to create a public link, only protected links are allowed" => "Vous devez fournir un mot de passe pour créer un lien public, seul les liens protégés sont autorisées.",
-"Sharing %s failed, because sharing with links is not allowed" => "Le partage de %s a échoué car un partage de lien n'est pas permis",
+"Sharing %s failed, because sharing with links is not allowed" => "Le partage de %s a échoué car le partage par lien n'est pas permis",
"Share type %s is not valid for %s" => "Le type de partage %s n'est pas valide pour %s",
-"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Le réglage des permissions pour %s a échoué car les permissions dépassent celle accordée à %s",
+"Setting permissions for %s failed, because the permissions exceed permissions granted to %s" => "Le réglage des permissions pour %s a échoué car les permissions dépassent celles accordées à %s",
"Setting permissions for %s failed, because the item was not found" => "Le réglage des permissions pour %s a échoué car l'objet n'a pas été trouvé",
-"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Impossible de configurer la date d'expiration. Un partage ne peut expirer plus de %s après sa date de début.",
+"Cannot set expiration date. Shares cannot expire later than %s after they have been shared" => "Impossible de configurer la date d'expiration. Un partage ne peut expirer plus de %s après sa création",
"Cannot set expiration date. Expiration date is in the past" => "Impossible de configurer la date d'expiration. La date d'expiration est dans le passé.",
"Sharing backend %s must implement the interface OCP\\Share_Backend" => "L'emplacement du partage %s doit implémenter l'interface OCP\\Share_Backend",
"Sharing backend %s not found" => "Emplacement de partage %s introuvable",
"Sharing backend for %s not found" => "L'emplacement du partage %s est introuvable",
-"Sharing %s failed, because the user %s is the original sharer" => "Le partage de %s a échoué car l'utilisateur %s est déjà l'utilisateur à l'origine du partage.",
+"Sharing %s failed, because the user %s is the original sharer" => "Le partage de %s a échoué car l'utilisateur %s est l'utilisateur à l'origine du partage.",
"Sharing %s failed, because the permissions exceed permissions granted to %s" => "Le partage de %s a échoué car les permissions dépassent les permissions accordées à %s",
"Sharing %s failed, because resharing is not allowed" => "Le partage de %s a échoué car le repartage n'est pas autorisé",
"Sharing %s failed, because the sharing backend for %s could not find its source" => "Le partage %s a échoué parce que la source n'a été trouvée pour le partage %s.",
diff --git a/lib/l10n/zh_TW.php b/lib/l10n/zh_TW.php
index c72bd00e2e7..d6a9d6fabfe 100644
--- a/lib/l10n/zh_TW.php
+++ b/lib/l10n/zh_TW.php
@@ -1,11 +1,17 @@
<?php
$TRANSLATIONS = array(
"Cannot write into \"config\" directory!" => "無法寫入 config 目錄!",
+"This can usually be fixed by giving the webserver write access to the config directory" => "允許網頁伺服器寫入設定目錄通常可以解決這個問題",
+"See %s" => "見 %s",
+"This can usually be fixed by %sgiving the webserver write access to the config directory%s." => "%s允許網頁伺服器寫入設定目錄%s通常可以解決這個問題",
+"Sample configuration detected" => "偵測到範本設定",
+"It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" => "看來您直接複製了範本設定來使用,這可能會毀掉你的安裝,請閱讀說明文件後對 config.php 進行適當的修改",
"Help" => "說明",
"Personal" => "個人",
"Settings" => "設定",
"Users" => "使用者",
"Admin" => "管理",
+"App \\\"%s\\\" can't be installed because it is not compatible with this version of ownCloud." => "無法安裝應用程式 %s 因為它和此版本的 ownCloud 不相容。",
"No app name specified" => "沒有指定應用程式名稱",
"Unknown filetype" => "未知的檔案類型",
"Invalid image" => "無效的圖片",
@@ -25,20 +31,31 @@ $TRANSLATIONS = array(
"Application is not enabled" => "應用程式未啟用",
"Authentication error" => "認證錯誤",
"Token expired. Please reload page." => "Token 過期,請重新整理頁面。",
+"Unknown user" => "未知的使用者",
"%s enter the database username." => "%s 輸入資料庫使用者名稱。",
"%s enter the database name." => "%s 輸入資料庫名稱。",
"%s you may not use dots in the database name" => "%s 資料庫名稱不能包含小數點",
"MS SQL username and/or password not valid: %s" => "MS SQL 使用者和/或密碼無效:%s",
"You need to enter either an existing account or the administrator." => "您必須輸入一個現有的帳號或管理員帳號。",
+"MySQL/MariaDB username and/or password not valid" => "MySQL/MariaDB 使用者或密碼不正確",
"DB Error: \"%s\"" => "資料庫錯誤:\"%s\"",
"Offending command was: \"%s\"" => "有問題的指令是:\"%s\"",
+"MySQL/MariaDB user '%s'@'localhost' exists already." => "MySQL/MariaDB 使用者 '%s'@'localhost' 已經存在",
+"Drop this user from MySQL/MariaDB" => "自 MySQL/MariaDB 刪除這個使用者",
+"MySQL/MariaDB user '%s'@'%%' already exists" => "MySQL/MariaDB 使用者 '%s'@'%%' 已經存在",
+"Drop this user from MySQL/MariaDB." => "自 MySQL/MariaDB 刪除這個使用者",
"Oracle connection could not be established" => "無法建立 Oracle 資料庫連線",
"Oracle username and/or password not valid" => "Oracle 用戶名和/或密碼無效",
"Offending command was: \"%s\", name: %s, password: %s" => "有問題的指令是:\"%s\" ,使用者:\"%s\",密碼:\"%s\"",
"PostgreSQL username and/or password not valid" => "PostgreSQL 用戶名和/或密碼無效",
"Set an admin username." => "設定管理員帳號。",
"Set an admin password." => "設定管理員密碼。",
+"Can't create or write into the data directory %s" => "無法建立或寫入資料目錄 %s",
"%s shared »%s« with you" => "%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 is the item owner" => "分享 %s 失敗,因為 %s 才是此項目的擁有者",
+"Sharing %s failed, because the user %s does not exist" => "分享 %s 失敗,因為使用者 %s 不存在",
"Could not find category \"%s\"" => "找不到分類:\"%s\"",
"seconds ago" => "幾秒前",
"_%n minute ago_::_%n minutes ago_" => array("%n 分鐘前"),
@@ -51,6 +68,8 @@ $TRANSLATIONS = array(
"last year" => "去年",
"years ago" => "幾年前",
"A valid username must be provided" => "必須提供一個有效的用戶名",
-"A valid password must be provided" => "一定要提供一個有效的密碼"
+"A valid password must be provided" => "一定要提供一個有效的密碼",
+"The username is already being used" => "這個使用者名稱已經有人使用了",
+"No database drivers (sqlite, mysql, or postgresql) installed." => "沒有安裝資料庫驅動程式 (sqlite, mysql, 或 postgresql)"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/lib/private/allconfig.php b/lib/private/allconfig.php
index 721ec337ff8..7ebff7cf2db 100644
--- a/lib/private/allconfig.php
+++ b/lib/private/allconfig.php
@@ -43,6 +43,15 @@ class AllConfig implements \OCP\IConfig {
\OCP\Config::deleteSystemValue($key);
}
+ /**
+ * Get all keys stored for an app
+ *
+ * @param string $appName the appName that we stored the value under
+ * @return string[] the keys stored for the app
+ */
+ public function getAppKeys($appName) {
+ return \OC::$server->getAppConfig()->getKeys($appName);
+ }
/**
* Writes a new app wide value
diff --git a/lib/private/app.php b/lib/private/app.php
index 3eed9e3c443..a356139044c 100644
--- a/lib/private/app.php
+++ b/lib/private/app.php
@@ -93,6 +93,13 @@ class OC_App {
throw new \OC\NeedsUpdateException();
}
require_once $app . '/appinfo/app.php';
+ if (self::isType($app, array('authentication'))) {
+ // since authentication apps affect the "is app enabled for group" check,
+ // the enabled apps cache needs to be cleared to make sure that the
+ // next time getEnableApps() is called it will also include apps that were
+ // enabled for groups
+ self::$enabledAppsCache = array();
+ }
}
}
@@ -659,7 +666,15 @@ class OC_App {
$data[$child->getName()] = substr($xml, 13, -14); //script <description> tags
} elseif ($child->getName() == 'documentation') {
foreach ($child as $subChild) {
- $data["documentation"][$subChild->getName()] = (string)$subChild;
+ $url = (string) $subChild;
+
+ // If it is not an absolute URL we assume it is a key
+ // i.e. admin-ldap will get converted to go.php?to=admin-ldap
+ if(!\OC::$server->getHTTPHelper()->isHTTPURL($url)) {
+ $url = OC_Helper::linkToDocs($url);
+ }
+
+ $data["documentation"][$subChild->getName()] = $url;
}
} else {
$data[$child->getName()] = (string)$child;
diff --git a/lib/private/files/filesystem.php b/lib/private/files/filesystem.php
index db46bcfd1ea..cdbbbf3d3cd 100644
--- a/lib/private/files/filesystem.php
+++ b/lib/private/files/filesystem.php
@@ -158,6 +158,11 @@ class Filesystem {
*/
const signal_param_run = 'run';
+ const signal_create_mount = 'create_mount';
+ const signal_delete_mount = 'delete_mount';
+ const signal_param_mount_type = 'mounttype';
+ const signal_param_users = 'users';
+
/**
* @var \OC\Files\Storage\Loader $loader
*/
diff --git a/lib/private/files/storage/common.php b/lib/private/files/storage/common.php
index 975f44df541..518d3ec400c 100644
--- a/lib/private/files/storage/common.php
+++ b/lib/private/files/storage/common.php
@@ -38,7 +38,7 @@ abstract class Common implements \OC\Files\Storage\Storage {
}
/**
- * Remove a file of folder
+ * Remove a file or folder
*
* @param string $path
* @return bool
@@ -54,11 +54,11 @@ abstract class Common implements \OC\Files\Storage\Storage {
}
public function is_dir($path) {
- return $this->filetype($path) == 'dir';
+ return $this->filetype($path) === 'dir';
}
public function is_file($path) {
- return $this->filetype($path) == 'file';
+ return $this->filetype($path) === 'file';
}
public function filesize($path) {
diff --git a/lib/private/group/database.php b/lib/private/group/database.php
index e6a5565b20e..8aebefabd27 100644
--- a/lib/private/group/database.php
+++ b/lib/private/group/database.php
@@ -168,7 +168,7 @@ class OC_Group_Database extends OC_Group_Backend {
* Returns a list with all groups
*/
public function getGroups($search = '', $limit = null, $offset = null) {
- $stmt = OC_DB::prepare('SELECT `gid` FROM `*PREFIX*groups` WHERE `gid` LIKE ? ORDER BY `gid` ASC', $limit, $offset);
+ $stmt = OC_DB::prepare('SELECT `gid` FROM `*PREFIX*groups` WHERE LOWER(`gid`) LIKE LOWER(?) ORDER BY `gid` ASC', $limit, $offset);
$result = $stmt->execute(array('%' . $search . '%'));
$groups = array();
while ($row = $result->fetchRow()) {
diff --git a/lib/private/largefilehelper.php b/lib/private/largefilehelper.php
index 2c35feefc8b..d5b7946feff 100644
--- a/lib/private/largefilehelper.php
+++ b/lib/private/largefilehelper.php
@@ -101,7 +101,8 @@ class LargeFileHelper {
*/
public function getFileSizeViaCurl($filename) {
if (function_exists('curl_init')) {
- $ch = curl_init("file://$filename");
+ $fencoded = urlencode($filename);
+ $ch = curl_init("file://$fencoded");
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
diff --git a/lib/private/preview/txt.php b/lib/private/preview/txt.php
index 2ac77faf48b..7f01b980c0e 100644
--- a/lib/private/preview/txt.php
+++ b/lib/private/preview/txt.php
@@ -34,7 +34,7 @@ class TXT extends Provider {
public function getThumbnail($path, $maxX, $maxY, $scalingup, $fileview) {
$content = $fileview->fopen($path, 'r');
- $content = stream_get_contents($content);
+ $content = stream_get_contents($content,3000);
//don't create previews of empty text files
if(trim($content) === '') {
diff --git a/lib/private/templatelayout.php b/lib/private/templatelayout.php
index 7ac0bd97abe..e9172fd2da5 100644
--- a/lib/private/templatelayout.php
+++ b/lib/private/templatelayout.php
@@ -3,6 +3,7 @@ use Assetic\Asset\AssetCollection;
use Assetic\Asset\FileAsset;
use Assetic\AssetWriter;
use Assetic\Filter\CssRewriteFilter;
+use Assetic\Filter\CssImportFilter;
/**
* Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl>
@@ -167,7 +168,15 @@ class OC_TemplateLayout extends OC_Template {
$assetPath = $root . '/' . $file;
$sourceRoot = \OC::$SERVERROOT;
$sourcePath = substr($assetPath, strlen(\OC::$SERVERROOT));
- return new FileAsset($assetPath, array(new CssRewriteFilter()), $sourceRoot, $sourcePath);
+ return new FileAsset(
+ $assetPath,
+ array(
+ new CssRewriteFilter(),
+ new CssImportFilter()
+ ),
+ $sourceRoot,
+ $sourcePath
+ );
}, $cssFiles);
$cssCollection = new AssetCollection($cssFiles);
$cssCollection->setTargetPath("assets/$cssHash.css");
diff --git a/lib/public/iconfig.php b/lib/public/iconfig.php
index 755da09ee6b..404cf030dee 100644
--- a/lib/public/iconfig.php
+++ b/lib/public/iconfig.php
@@ -58,6 +58,13 @@ interface IConfig {
*/
public function deleteSystemValue($key);
+ /**
+ * Get all keys stored for an app
+ *
+ * @param string $appName the appName that we stored the value under
+ * @return string[] the keys stored for the app
+ */
+ public function getAppKeys($appName);
/**
* Writes a new app wide value
diff --git a/settings/js/users/users.js b/settings/js/users/users.js
index f39f8c2c064..0cb5fe3e15c 100644
--- a/settings/js/users/users.js
+++ b/settings/js/users/users.js
@@ -616,13 +616,16 @@ $(document).ready(function () {
.keypress(function (event) {
if (event.keyCode === 13) {
if ($(this).val().length > 0) {
- $tr.find('.avatardiv').imageplaceholder(uid, displayName);
+ var $div = $tr.find('div.avatardiv');
+ if ($div.length) {
+ $div.imageplaceholder(uid, displayName);
+ }
$.post(
OC.filePath('settings', 'ajax', 'changedisplayname.php'),
{username: uid, displayName: $(this).val()},
function (result) {
- if (result && result.status==='success'){
- $tr.find('.avatardiv').avatar(result.data.username, 32);
+ if (result && result.status==='success' && $div.length){
+ $div.avatar(result.data.username, 32);
}
}
);
diff --git a/settings/l10n/da.php b/settings/l10n/da.php
index 78f34de1c24..dcffc58e31a 100644
--- a/settings/l10n/da.php
+++ b/settings/l10n/da.php
@@ -26,7 +26,7 @@ $TRANSLATIONS = array(
"Invalid email" => "Ugyldig e-mailadresse",
"Unable to delete group" => "Gruppen kan ikke slettes",
"Unable to delete user" => "Bruger kan ikke slettes",
-"Backups restored successfully" => "Backups succesfuld genskabt ",
+"Backups restored successfully" => "Genskabelsen af sikkerhedskopierne blev gennemført",
"Couldn't restore your encryption keys, please check your owncloud.log or ask your administrator" => "Kunne ikke genskabe din krypyterings nøgle, se logfilen owncloud.log eller spørg en administrator",
"Language changed" => "Sprog ændret",
"Invalid request" => "Ugyldig forespørgsel",
@@ -210,7 +210,7 @@ $TRANSLATIONS = array(
"The encryption app is no longer enabled, please decrypt all your files" => "Krypteringsprogrammet er ikke længere aktiveret. Dekrypter venligst alle dine filer",
"Log-in password" => "Log-in kodeord",
"Decrypt all Files" => "Dekrypter alle Filer ",
-"Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." => "Din krypteringsmøgler er flyttet til en backup lokation . hvis noget gik galt kan du genskabe nøglerne. Slet kun nøgler permanent hvis du er sikker på at alle filer er dekrypteret korrekt.",
+"Your encryption keys are moved to a backup location. If something went wrong you can restore the keys. Only delete them permanently if you are sure that all files are decrypted correctly." => "Din krypteringsmøgler er flyttet til et sted med sikkerhedskopier. Hvis noget gik galt kan du genskabe nøglerne. Slet kun nøgler permanent, hvis du er sikker på at alle filer er blevet dekrypteret korrekt.",
"Restore Encryption Keys" => "Genopret Krypteringsnøgler",
"Delete Encryption Keys" => "Slet Krypteringsnøgler",
"Show storage location" => "Vis placering af lageret",
diff --git a/settings/l10n/fr.php b/settings/l10n/fr.php
index 8df2eb3732a..1e8d2837ff6 100644
--- a/settings/l10n/fr.php
+++ b/settings/l10n/fr.php
@@ -1,7 +1,7 @@
<?php
$TRANSLATIONS = array(
"Invalid value supplied for %s" => "Valeur fournie pour %s non valable",
-"Saved" => "Sauvegarder",
+"Saved" => "Sauvegardé",
"test email settings" => "tester les paramètres d'e-mail",
"If you received this email, the settings seem to be correct." => "Si vous recevez cet email, c'est que les paramètres sont corrects",
"A problem occurred while sending the e-mail. Please revisit your settings." => "Une erreur est survenue lors de l'envoi de l'e-mail. Veuillez vérifier vos paramètres.",
@@ -130,18 +130,18 @@ $TRANSLATIONS = array(
"Use system's cron service to call the cron.php file every 15 minutes." => "Utilisez le service cron du système pour appeler le fichier cron.php toutes les 15 minutes.",
"Sharing" => "Partage",
"Allow apps to use the Share API" => "Autoriser les applications à utiliser l'API de partage",
-"Allow users to share via link" => "Autoriser les utilisateurs à partager via des liens",
-"Enforce password protection" => "Appliquer la protection par mot de passe",
+"Allow users to share via link" => "Autoriser les utilisateurs à partager par lien",
+"Enforce password protection" => "Obliger la protection par mot de passe",
"Allow public uploads" => "Autoriser les téléversements publics",
"Set default expiration date" => "Spécifier la date d'expiration par défaut",
-"Expire after " => "Expire après",
+"Expire after " => "Expiration après ",
"days" => "jours",
-"Enforce expiration date" => "Impose la date d'expiration",
+"Enforce expiration date" => "Imposer la date d'expiration",
"Allow resharing" => "Autoriser le repartage",
-"Restrict users to only share with users in their groups" => "Autoriser les utilisateurs à ne partager qu'avec les utilisateurs de leurs groupes",
-"Allow users to send mail notification for shared files" => "Autoriser les utilisateurs à envoyer une notification par courriel concernant les fichiers partagés",
-"Exclude groups from sharing" => "Exclure les groupes du partage",
-"These groups will still be able to receive shares, but not to initiate them." => "Ces groupes restent autorisés à partager, mais ne peuvent pas les initier",
+"Restrict users to only share with users in their groups" => "N'autoriser les partages qu'entre membres de même groupes",
+"Allow users to send mail notification for shared files" => "Autoriser les utilisateurs à envoyer des notifications par courriel concernant les fichiers partagés",
+"Exclude groups from sharing" => "Empêcher certains groupes de partager",
+"These groups will still be able to receive shares, but not to initiate them." => "Ces groupes ne pourront plus initier de partage. Mais ils pourront toujours profiter des partages faits par d'autres. ",
"Security" => "Sécurité",
"Enforce HTTPS" => "Forcer HTTPS",
"Forces the clients to connect to %s via an encrypted connection." => "Forcer les clients à se connecter à %s via une connexion chiffrée.",
@@ -156,7 +156,7 @@ $TRANSLATIONS = array(
"Credentials" => "Informations d'identification",
"SMTP Username" => "Nom d'utilisateur SMTP",
"SMTP Password" => "Mot de passe SMTP",
-"Test email settings" => "Paramètres de test d'e-mail",
+"Test email settings" => "Tester les paramètres e-mail",
"Send email" => "Envoyer un e-mail",
"Log" => "Log",
"Log level" => "Niveau de log",
@@ -166,9 +166,9 @@ $TRANSLATIONS = array(
"Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." => "Développé par la <a href=\"http://ownCloud.org/contact\" target=\"_blank\">communauté ownCloud</a>, le <a href=\"https://github.com/owncloud\" target=\"_blank\">code source</a> est publié sous license <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.",
"Add your App" => "Ajoutez votre application",
"More Apps" => "Plus d'applications…",
-"Select an App" => "Sélectionner une Application",
+"Select an App" => "Sélectionnez une Application",
"Documentation:" => "Documentation :",
-"See application page at apps.owncloud.com" => "Voir la page des applications à l'url apps.owncloud.com",
+"See application page at apps.owncloud.com" => "Voir la page de l'application sur apps.owncloud.com",
"See application website" => "Voir le site web de l'application",
"<span class=\"licence\"></span>-licensed by <span class=\"author\"></span>" => "Distribué sous licence <span class=\"licence\"></span>, par <span class=\"author\"></span>",
"Enable only for specific groups" => "Activer uniquement pour certains groupes",
@@ -192,13 +192,13 @@ $TRANSLATIONS = array(
"Your email address" => "Votre adresse e-mail",
"Fill in an email address to enable password recovery and receive notifications" => "Saisir une adresse e-mail pour permettre la réinitialisation du mot de passe et la réception des notifications",
"Profile picture" => "Photo de profil",
-"Upload new" => "Télécharger nouveau",
-"Select new from Files" => "Sélectionner un nouveau depuis les documents",
+"Upload new" => "Téléverser une nouvelle",
+"Select new from Files" => "Sélectionner une nouvelle depuis les Fichiers",
"Remove image" => "Supprimer l'image",
"Either png or jpg. Ideally square but you will be able to crop it." => "Soit png ou jpg. Idéalement carrée mais vous pourrez la recadrer.",
"Your avatar is provided by your original account." => "Votre avatar est fourni par votre compte original.",
"Cancel" => "Annuler",
-"Choose as profile image" => "Choisir en temps que photo de profil ",
+"Choose as profile image" => "Choisir en tant que photo de profil ",
"Language" => "Langue",
"Help translate" => "Aidez à traduire",
"SSL root certificates" => "Certificats racine SSL",
diff --git a/tests/lib/files/storage/storage.php b/tests/lib/files/storage/storage.php
index 88fbdd4fcf2..cf42523a5e2 100644
--- a/tests/lib/files/storage/storage.php
+++ b/tests/lib/files/storage/storage.php
@@ -457,12 +457,12 @@ abstract class Storage extends \PHPUnit_Framework_TestCase {
$this->instance->file_put_contents('target/test1.txt', 'bar');
$this->instance->file_put_contents('target/test2.txt', 'bar');
- $this->instance->rename('source', 'target');
+ $this->assertTrue($this->instance->rename('source', 'target'), 'rename must return true on success');
- $this->assertFalse($this->instance->file_exists('source'));
- $this->assertFalse($this->instance->file_exists('source/test1.txt'));
- $this->assertFalse($this->instance->file_exists('target/test2.txt'));
- $this->assertEquals('foo', $this->instance->file_get_contents('target/test1.txt'));
+ $this->assertFalse($this->instance->file_exists('source'), 'source has not been removed');
+ $this->assertFalse($this->instance->file_exists('source/test1.txt'), 'source/test1.txt has not been removed');
+ $this->assertFalse($this->instance->file_exists('target/test2.txt'), 'target/test2.txt has not been removed');
+ $this->assertEquals('foo', $this->instance->file_get_contents('target/test1.txt'), 'target/test1.txt has not been overwritten');
}
public function testRenameOverWriteDirectoryOverFile() {
@@ -471,7 +471,7 @@ abstract class Storage extends \PHPUnit_Framework_TestCase {
$this->instance->file_put_contents('target', 'bar');
- $this->instance->rename('source', 'target');
+ $this->assertTrue($this->instance->rename('source', 'target'), 'rename must return true on success');
$this->assertFalse($this->instance->file_exists('source'));
$this->assertFalse($this->instance->file_exists('source/test1.txt'));