summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorTom Needham <tom@owncloud.com>2013-02-09 12:05:48 +0000
committerTom Needham <tom@owncloud.com>2013-02-09 12:05:48 +0000
commit5d14a2cc463f09d010537a5537e3339a87d57558 (patch)
treee53b4fece6b204e7ffdaaa6ce3601ddaf25b5ba6 /apps
parenteefaefe87d4ef2271c7a079632744948ca8d2496 (diff)
parent0c73cae77b402355809c8f5f5be69d8a730fe3e2 (diff)
downloadnextcloud-server-5d14a2cc463f09d010537a5537e3339a87d57558.tar.gz
nextcloud-server-5d14a2cc463f09d010537a5537e3339a87d57558.zip
Merge in master
Diffstat (limited to 'apps')
-rw-r--r--apps/files/ajax/move.php8
-rw-r--r--apps/files/ajax/rename.php6
-rw-r--r--apps/files/ajax/upload.php2
-rw-r--r--apps/files/css/files.css8
-rw-r--r--apps/files/index.php2
-rw-r--r--apps/files/js/fileactions.js5
-rw-r--r--apps/files/js/filelist.js7
-rw-r--r--apps/files/js/files.js6
-rw-r--r--apps/files/l10n/bn_BD.php1
-rw-r--r--apps/files/l10n/ca.php2
-rw-r--r--apps/files/l10n/cs_CZ.php2
-rw-r--r--apps/files/l10n/de.php1
-rw-r--r--apps/files/l10n/de_DE.php2
-rw-r--r--apps/files/l10n/el.php1
-rw-r--r--apps/files/l10n/eo.php1
-rw-r--r--apps/files/l10n/es.php9
-rw-r--r--apps/files/l10n/es_AR.php6
-rw-r--r--apps/files/l10n/eu.php1
-rw-r--r--apps/files/l10n/fa.php1
-rw-r--r--apps/files/l10n/fi_FI.php1
-rw-r--r--apps/files/l10n/fr.php2
-rw-r--r--apps/files/l10n/gl.php1
-rw-r--r--apps/files/l10n/hu_HU.php1
-rw-r--r--apps/files/l10n/is.php1
-rw-r--r--apps/files/l10n/it.php2
-rw-r--r--apps/files/l10n/ja_JP.php2
-rw-r--r--apps/files/l10n/ko.php1
-rw-r--r--apps/files/l10n/lv.php2
-rw-r--r--apps/files/l10n/nl.php2
-rw-r--r--apps/files/l10n/pl.php1
-rw-r--r--apps/files/l10n/pt_PT.php2
-rw-r--r--apps/files/l10n/ro.php1
-rw-r--r--apps/files/l10n/ru.php10
-rw-r--r--apps/files/l10n/ru_RU.php7
-rw-r--r--apps/files/l10n/sk_SK.php7
-rw-r--r--apps/files/l10n/sv.php1
-rw-r--r--apps/files/l10n/th_TH.php1
-rw-r--r--apps/files/l10n/tr.php1
-rw-r--r--apps/files/l10n/uk.php13
-rw-r--r--apps/files/l10n/zh_CN.php1
-rw-r--r--apps/files/l10n/zh_TW.php1
-rw-r--r--apps/files/templates/index.php4
-rw-r--r--apps/files/templates/part.breadcrumb.php2
-rw-r--r--apps/files_encryption/appinfo/app.php25
-rw-r--r--apps/files_encryption/appinfo/spec.txt19
-rw-r--r--apps/files_encryption/appinfo/version2
-rw-r--r--apps/files_encryption/hooks/hooks.php152
-rw-r--r--apps/files_encryption/l10n/ar.php1
-rw-r--r--apps/files_encryption/l10n/bg_BG.php1
-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.php10
-rw-r--r--apps/files_encryption/l10n/da.php7
-rw-r--r--apps/files_encryption/l10n/de.php7
-rw-r--r--apps/files_encryption/l10n/de_DE.php10
-rw-r--r--apps/files_encryption/l10n/el.php2
-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.php7
-rw-r--r--apps/files_encryption/l10n/et_EE.php1
-rw-r--r--apps/files_encryption/l10n/eu.php4
-rw-r--r--apps/files_encryption/l10n/fa.php2
-rw-r--r--apps/files_encryption/l10n/fi_FI.php4
-rw-r--r--apps/files_encryption/l10n/fr.php10
-rw-r--r--apps/files_encryption/l10n/gl.php1
-rw-r--r--apps/files_encryption/l10n/he.php1
-rw-r--r--apps/files_encryption/l10n/hu_HU.php7
-rw-r--r--apps/files_encryption/l10n/id.php1
-rw-r--r--apps/files_encryption/l10n/is.php1
-rw-r--r--apps/files_encryption/l10n/it.php10
-rw-r--r--apps/files_encryption/l10n/ja_JP.php10
-rw-r--r--apps/files_encryption/l10n/ko.php7
-rw-r--r--apps/files_encryption/l10n/ku_IQ.php1
-rw-r--r--apps/files_encryption/l10n/lt_LT.php1
-rw-r--r--apps/files_encryption/l10n/lv.php12
-rw-r--r--apps/files_encryption/l10n/mk.php1
-rw-r--r--apps/files_encryption/l10n/nb_NO.php1
-rw-r--r--apps/files_encryption/l10n/nl.php8
-rw-r--r--apps/files_encryption/l10n/pl.php1
-rw-r--r--apps/files_encryption/l10n/pt_BR.php7
-rw-r--r--apps/files_encryption/l10n/pt_PT.php7
-rw-r--r--apps/files_encryption/l10n/ro.php7
-rw-r--r--apps/files_encryption/l10n/ru.php9
-rw-r--r--apps/files_encryption/l10n/ru_RU.php7
-rw-r--r--apps/files_encryption/l10n/si_LK.php1
-rw-r--r--apps/files_encryption/l10n/sk_SK.php10
-rw-r--r--apps/files_encryption/l10n/sl.php1
-rw-r--r--apps/files_encryption/l10n/sr.php1
-rw-r--r--apps/files_encryption/l10n/sv.php10
-rw-r--r--apps/files_encryption/l10n/ta_LK.php1
-rw-r--r--apps/files_encryption/l10n/th_TH.php7
-rw-r--r--apps/files_encryption/l10n/tr.php1
-rw-r--r--apps/files_encryption/l10n/uk.php1
-rw-r--r--apps/files_encryption/l10n/vi.php1
-rw-r--r--apps/files_encryption/l10n/zh_CN.GB2312.php1
-rw-r--r--apps/files_encryption/l10n/zh_CN.php1
-rw-r--r--apps/files_encryption/l10n/zh_TW.php7
-rwxr-xr-xapps/files_encryption/lib/crypt.php102
-rwxr-xr-xapps/files_encryption/lib/keymanager.php212
-rw-r--r--apps/files_encryption/lib/proxy.php160
-rw-r--r--apps/files_encryption/lib/session.php49
-rw-r--r--apps/files_encryption/lib/stream.php89
-rw-r--r--apps/files_encryption/lib/util.php304
-rw-r--r--apps/files_encryption/settings-personal.php24
-rw-r--r--apps/files_encryption/templates/settings-personal.php55
-rw-r--r--apps/files_encryption/templates/settings.php67
-rwxr-xr-xapps/files_encryption/test/crypt.php6
-rw-r--r--apps/files_encryption/test/keymanager.php16
-rwxr-xr-xapps/files_encryption/test/util.php23
-rw-r--r--apps/files_external/l10n/af_ZA.php3
-rw-r--r--apps/files_external/l10n/lv.php23
-rw-r--r--apps/files_sharing/l10n/af_ZA.php4
-rw-r--r--apps/files_sharing/l10n/lv.php8
-rw-r--r--apps/files_sharing/l10n/sr.php4
-rw-r--r--apps/files_trashbin/ajax/delete.php24
-rw-r--r--apps/files_trashbin/ajax/undelete.php8
-rw-r--r--apps/files_trashbin/appinfo/app.php6
-rw-r--r--apps/files_trashbin/js/disableDefaultActions.js1
-rw-r--r--apps/files_trashbin/js/trash.js25
-rw-r--r--apps/files_trashbin/l10n/ca.php3
-rw-r--r--apps/files_trashbin/l10n/cs_CZ.php3
-rw-r--r--apps/files_trashbin/l10n/de_DE.php1
-rw-r--r--apps/files_trashbin/l10n/es.php6
-rw-r--r--apps/files_trashbin/l10n/fr.php3
-rw-r--r--apps/files_trashbin/l10n/it.php3
-rw-r--r--apps/files_trashbin/l10n/ja_JP.php3
-rw-r--r--apps/files_trashbin/l10n/lv.php3
-rw-r--r--apps/files_trashbin/l10n/nl.php1
-rw-r--r--apps/files_trashbin/l10n/ru.php9
-rw-r--r--apps/files_trashbin/l10n/ru_RU.php3
-rw-r--r--apps/files_trashbin/l10n/sk_SK.php5
-rw-r--r--apps/files_trashbin/l10n/sv.php1
-rw-r--r--apps/files_trashbin/lib/hooks.php2
-rw-r--r--apps/files_trashbin/lib/trash.php43
-rw-r--r--apps/files_trashbin/templates/index.php2
-rw-r--r--apps/files_versions/ajax/getVersions.php2
-rw-r--r--apps/files_versions/ajax/rollbackVersion.php5
-rw-r--r--apps/files_versions/appinfo/app.php13
-rw-r--r--apps/files_versions/history.php23
-rw-r--r--apps/files_versions/l10n/ca.php8
-rw-r--r--apps/files_versions/l10n/cs_CZ.php8
-rw-r--r--apps/files_versions/l10n/de_DE.php4
-rw-r--r--apps/files_versions/l10n/es.php8
-rw-r--r--apps/files_versions/l10n/fr.php8
-rw-r--r--apps/files_versions/l10n/it.php8
-rw-r--r--apps/files_versions/l10n/ja_JP.php8
-rw-r--r--apps/files_versions/l10n/lv.php10
-rw-r--r--apps/files_versions/l10n/ru.php8
-rw-r--r--apps/files_versions/l10n/sk_SK.php5
-rw-r--r--apps/files_versions/lib/hooks.php2
-rw-r--r--apps/files_versions/lib/versions.php8
-rw-r--r--apps/files_versions/templates/history.php2
-rw-r--r--apps/user_ldap/l10n/af_ZA.php4
-rw-r--r--apps/user_ldap/l10n/bn_BD.php1
-rw-r--r--apps/user_ldap/l10n/ca.php5
-rw-r--r--apps/user_ldap/l10n/cs_CZ.php2
-rw-r--r--apps/user_ldap/l10n/da.php1
-rw-r--r--apps/user_ldap/l10n/de.php1
-rw-r--r--apps/user_ldap/l10n/de_DE.php10
-rw-r--r--apps/user_ldap/l10n/el.php1
-rw-r--r--apps/user_ldap/l10n/eo.php1
-rw-r--r--apps/user_ldap/l10n/es.php17
-rw-r--r--apps/user_ldap/l10n/es_AR.php16
-rw-r--r--apps/user_ldap/l10n/et_EE.php1
-rw-r--r--apps/user_ldap/l10n/eu.php1
-rw-r--r--apps/user_ldap/l10n/fa.php1
-rw-r--r--apps/user_ldap/l10n/fi_FI.php1
-rw-r--r--apps/user_ldap/l10n/fr.php5
-rw-r--r--apps/user_ldap/l10n/gl.php1
-rw-r--r--apps/user_ldap/l10n/hu_HU.php1
-rw-r--r--apps/user_ldap/l10n/id.php1
-rw-r--r--apps/user_ldap/l10n/it.php2
-rw-r--r--apps/user_ldap/l10n/ja_JP.php2
-rw-r--r--apps/user_ldap/l10n/ko.php1
-rw-r--r--apps/user_ldap/l10n/lv.php66
-rw-r--r--apps/user_ldap/l10n/nb_NO.php1
-rw-r--r--apps/user_ldap/l10n/nl.php9
-rw-r--r--apps/user_ldap/l10n/pl.php1
-rw-r--r--apps/user_ldap/l10n/pt_BR.php1
-rw-r--r--apps/user_ldap/l10n/pt_PT.php4
-rw-r--r--apps/user_ldap/l10n/ro.php1
-rw-r--r--apps/user_ldap/l10n/ru.php20
-rw-r--r--apps/user_ldap/l10n/ru_RU.php1
-rw-r--r--apps/user_ldap/l10n/sk_SK.php27
-rw-r--r--apps/user_ldap/l10n/sl.php1
-rw-r--r--apps/user_ldap/l10n/sr.php31
-rw-r--r--apps/user_ldap/l10n/sv.php15
-rw-r--r--apps/user_ldap/l10n/ta_LK.php1
-rw-r--r--apps/user_ldap/l10n/th_TH.php1
-rw-r--r--apps/user_ldap/l10n/tr.php1
-rw-r--r--apps/user_ldap/l10n/uk.php20
-rw-r--r--apps/user_ldap/l10n/vi.php1
-rw-r--r--apps/user_ldap/l10n/zh_CN.GB2312.php1
-rw-r--r--apps/user_ldap/l10n/zh_CN.php1
-rw-r--r--apps/user_ldap/lib/connection.php18
-rw-r--r--apps/user_ldap/templates/settings.php2
-rw-r--r--apps/user_webdavauth/l10n/id.php5
-rw-r--r--apps/user_webdavauth/l10n/lv.php5
-rwxr-xr-xapps/user_webdavauth/settings.php4
-rwxr-xr-xapps/user_webdavauth/templates/settings.php1
200 files changed, 1475 insertions, 841 deletions
diff --git a/apps/files/ajax/move.php b/apps/files/ajax/move.php
index 78ed218c136..93063e52eb0 100644
--- a/apps/files/ajax/move.php
+++ b/apps/files/ajax/move.php
@@ -11,8 +11,10 @@ $dir = stripslashes($_POST["dir"]);
$file = stripslashes($_POST["file"]);
$target = stripslashes(rawurldecode($_POST["target"]));
+$l = OC_L10N::get('files');
+
if(\OC\Files\Filesystem::file_exists($target . '/' . $file)) {
- OCP\JSON::error(array("data" => array( "message" => "Could not move $file - File with this name already exists" )));
+ OCP\JSON::error(array("data" => array( "message" => $l->t("Could not move %s - File with this name already exists", array($file)) )));
exit;
}
@@ -22,8 +24,8 @@ if ($dir != '' || $file != 'Shared') {
if(\OC\Files\Filesystem::rename($sourceFile, $targetFile)) {
OCP\JSON::success(array("data" => array( "dir" => $dir, "files" => $file )));
} else {
- OCP\JSON::error(array("data" => array( "message" => "Could not move $file" )));
+ OCP\JSON::error(array("data" => array( "message" => $l->t("Could not move %s", array($file)) )));
}
}else{
- OCP\JSON::error(array("data" => array( "message" => "Could not move $file" )));
+ OCP\JSON::error(array("data" => array( "message" => $l->t("Could not move %s", array($file)) )));
}
diff --git a/apps/files/ajax/rename.php b/apps/files/ajax/rename.php
index 970aaa638da..9fd2ce3ad4b 100644
--- a/apps/files/ajax/rename.php
+++ b/apps/files/ajax/rename.php
@@ -11,14 +11,16 @@ $dir = stripslashes($_GET["dir"]);
$file = stripslashes($_GET["file"]);
$newname = stripslashes($_GET["newname"]);
+$l = OC_L10N::get('files');
+
if ( $newname !== '.' and ($dir != '' || $file != 'Shared') and $newname !== '.') {
$targetFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $newname);
$sourceFile = \OC\Files\Filesystem::normalizePath($dir . '/' . $file);
if(\OC\Files\Filesystem::rename($sourceFile, $targetFile)) {
OCP\JSON::success(array("data" => array( "dir" => $dir, "file" => $file, "newname" => $newname )));
} else {
- OCP\JSON::error(array("data" => array( "message" => "Unable to rename file" )));
+ OCP\JSON::error(array("data" => array( "message" => $l->t("Unable to rename file") )));
}
}else{
- OCP\JSON::error(array("data" => array( "message" => "Unable to rename file" )));
+ OCP\JSON::error(array("data" => array( "message" => $l->t("Unable to rename file") )));
}
diff --git a/apps/files/ajax/upload.php b/apps/files/ajax/upload.php
index 676612c0e42..07977f5ddf1 100644
--- a/apps/files/ajax/upload.php
+++ b/apps/files/ajax/upload.php
@@ -49,7 +49,7 @@ foreach ($files['size'] as $size) {
$totalSize += $size;
}
if ($totalSize > \OC\Files\Filesystem::free_space($dir)) {
- OCP\JSON::error(array('data' => array('message' => $l->t('Not enough space available'),
+ OCP\JSON::error(array('data' => array('message' => $l->t('Not enough storage available'),
'uploadMaxFilesize' => $maxUploadFilesize,
'maxHumanFilesize' => $maxHumanFilesize)));
exit();
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index 661a2e827a4..67bd569ceef 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -3,7 +3,7 @@
See the COPYING-README file. */
/* FILE MENU */
-.actions { padding:.3em; float:left; height:2em; }
+.actions { padding:.3em; height:2em; width: 100%; }
.actions input, .actions button, .actions .button { margin:0; float:left; }
#new {
@@ -23,7 +23,7 @@
#new>ul>li>p { cursor:pointer; }
#new>ul>li>form>input { padding:0.3em; margin:-0.3em; }
-#trash { height:17px; margin:0 0 0 1em; z-index:1010; position:absolute; right:13.5em; }
+#trash { height:17px; margin: 0 1em; z-index:1010; float: right; }
#upload {
height:27px; padding:0; margin-left:0.2em; overflow:hidden;
@@ -44,7 +44,7 @@
z-index:20; position:relative; cursor:pointer; overflow:hidden;
}
-#uploadprogresswrapper { position:absolute; right:13.5em; top:0em; }
+#uploadprogresswrapper { float: right; position: relative; }
#uploadprogresswrapper #uploadprogressbar { position:relative; display:inline-block; width:10em; height:1.5em; top:.4em; }
/* FILE TABLE */
@@ -55,7 +55,7 @@
font-size:1.5em; font-weight:bold;
color:#888; text-shadow:#fff 0 1px 0;
}
-table { position:relative; top:37px; width:100%; }
+table { position:relative; width:100%; }
tbody tr { background-color:#fff; height:2.5em; }
tbody tr:hover, tbody tr:active, tbody tr.selected { background-color:#f8f8f8; }
tbody tr.selected { background-color:#eee; }
diff --git a/apps/files/index.php b/apps/files/index.php
index 104cf1a55d3..434e98c6ea8 100644
--- a/apps/files/index.php
+++ b/apps/files/index.php
@@ -92,7 +92,7 @@ foreach (explode('/', $dir) as $i) {
$list = new OCP\Template('files', 'part.list', '');
$list->assign('files', $files, false);
$list->assign('baseURL', OCP\Util::linkTo('files', 'index.php') . '?dir=', false);
-$list->assign('downloadURL', OCP\Util::linkTo('files', 'download.php') . '?file=', false);
+$list->assign('downloadURL', OCP\Util::linkToRoute('download', array('file' => '/')), false);
$list->assign('disableSharing', false);
$breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', '');
$breadcrumbNav->assign('breadcrumb', $breadcrumb, false);
diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js
index c30f1bcddd8..e1d8b60d315 100644
--- a/apps/files/js/fileactions.js
+++ b/apps/files/js/fileactions.js
@@ -112,9 +112,8 @@ var FileActions = {
if (img.call) {
img = img(file);
}
- // NOTE: Temporary fix to allow unsharing of files in root of Shared folder
- if ($('#dir').val() == '/Shared') {
- var html = '<a href="#" original-title="' + t('files', 'Unshare') + '" class="action delete" />';
+ if (typeof trashBinApp !== 'undefined' && trashBinApp) {
+ var html = '<a href="#" original-title="' + t('files', 'Delete permanently') + '" class="action delete" />';
} else {
var html = '<a href="#" original-title="' + t('files', 'Delete') + '" class="action delete" />';
}
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 72b353b48c2..4a66b33694d 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -15,7 +15,7 @@ var FileList={
extension=false;
}
html+='<td class="filename" style="background-image:url('+img+')"><input type="checkbox" />';
- html+='<a class="name" href="download.php?file='+$('#dir').val().replace(/</, '&lt;').replace(/>/, '&gt;')+'/'+escapeHTML(name)+'"><span class="nametext">'+escapeHTML(basename);
+ html+='<a class="name" href="' +OC.Router.generate('download', { file: $('#dir').val()+'/'+name }) +'"><span class="nametext">'+escapeHTML(basename);
if(extension){
html+='<span class="extension">'+escapeHTML(extension)+'</span>';
}
@@ -216,9 +216,6 @@ var FileList={
},
replace:function(oldName, newName, isNewFile) {
// Finish any existing actions
- if (FileList.lastAction || !FileList.useUndo) {
- FileList.lastAction();
- }
$('tr').filterAttr('data-file', oldName).hide();
$('tr').filterAttr('data-file', newName).hide();
var tr = $('tr').filterAttr('data-file', oldName).clone();
@@ -321,7 +318,6 @@ $(document).ready(function(){
// Delete the new uploaded file
FileList.deleteCanceled = false;
FileList.deleteFiles = [FileList.replaceOldName];
- FileList.finishDelete(null, true);
} else {
$('tr').filterAttr('data-file', FileList.replaceOldName).show();
}
@@ -348,7 +344,6 @@ $(document).ready(function(){
if ($('#notification').data('isNewFile')) {
FileList.deleteCanceled = false;
FileList.deleteFiles = [$('#notification').data('oldName')];
- FileList.finishDelete(null, true);
}
});
FileList.useUndo=(window.onbeforeunload)?true:false;
diff --git a/apps/files/js/files.js b/apps/files/js/files.js
index 7c377afc620..5c5b430a8d4 100644
--- a/apps/files/js/files.js
+++ b/apps/files/js/files.js
@@ -262,12 +262,6 @@ $(document).ready(function() {
return;
}
totalSize+=files[i].size;
- if(FileList.deleteFiles && FileList.deleteFiles.indexOf(files[i].name)!=-1){//finish delete if we are uploading a deleted file
- FileList.finishDelete(function(){
- $('#file_upload_start').change();
- });
- return;
- }
}
}
if(totalSize>$('#max_upload').val()){
diff --git a/apps/files/l10n/bn_BD.php b/apps/files/l10n/bn_BD.php
index 3d676810c7c..dbff81cef6c 100644
--- a/apps/files/l10n/bn_BD.php
+++ b/apps/files/l10n/bn_BD.php
@@ -7,7 +7,6 @@
"No file was uploaded" => "কোন ফাইল আপলোড করা হয় নি",
"Missing a temporary folder" => "অস্থায়ী ফোল্ডার খোয়া গিয়েছে",
"Failed to write to disk" => "ডিস্কে লিখতে ব্যর্থ",
-"Not enough space available" => "যথেষ্ঠ পরিমাণ স্থান নেই",
"Invalid directory." => "ভুল ডিরেক্টরি",
"Files" => "ফাইল",
"Unshare" => "ভাগাভাগি বাতিল ",
diff --git a/apps/files/l10n/ca.php b/apps/files/l10n/ca.php
index 22b684fcfd7..49ea7f73abb 100644
--- a/apps/files/l10n/ca.php
+++ b/apps/files/l10n/ca.php
@@ -7,10 +7,10 @@
"No file was uploaded" => "El fitxer no s'ha pujat",
"Missing a temporary folder" => "S'ha perdut un fitxer temporal",
"Failed to write to disk" => "Ha fallat en escriure al disc",
-"Not enough space available" => "No hi ha prou espai disponible",
"Invalid directory." => "Directori no vàlid.",
"Files" => "Fitxers",
"Unshare" => "Deixa de compartir",
+"Delete permanently" => "Esborra permanentment",
"Delete" => "Suprimeix",
"Rename" => "Reanomena",
"{new_name} already exists" => "{new_name} ja existeix",
diff --git a/apps/files/l10n/cs_CZ.php b/apps/files/l10n/cs_CZ.php
index f0beda9f55c..c2085a3aa9a 100644
--- a/apps/files/l10n/cs_CZ.php
+++ b/apps/files/l10n/cs_CZ.php
@@ -7,10 +7,10 @@
"No file was uploaded" => "Žádný soubor nebyl odeslán",
"Missing a temporary folder" => "Chybí adresář pro dočasné soubory",
"Failed to write to disk" => "Zápis na disk selhal",
-"Not enough space available" => "Nedostatek dostupného místa",
"Invalid directory." => "Neplatný adresář",
"Files" => "Soubory",
"Unshare" => "Zrušit sdílení",
+"Delete permanently" => "Trvale odstranit",
"Delete" => "Smazat",
"Rename" => "Přejmenovat",
"{new_name} already exists" => "{new_name} již existuje",
diff --git a/apps/files/l10n/de.php b/apps/files/l10n/de.php
index 55ea24baa2f..4b38619eaa5 100644
--- a/apps/files/l10n/de.php
+++ b/apps/files/l10n/de.php
@@ -7,7 +7,6 @@
"No file was uploaded" => "Es wurde keine Datei hochgeladen.",
"Missing a temporary folder" => "Temporärer Ordner fehlt.",
"Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte",
-"Not enough space available" => "Nicht genug Speicherplatz verfügbar",
"Invalid directory." => "Ungültiges Verzeichnis.",
"Files" => "Dateien",
"Unshare" => "Nicht mehr freigeben",
diff --git a/apps/files/l10n/de_DE.php b/apps/files/l10n/de_DE.php
index 18f3ee38028..71f24eba4c8 100644
--- a/apps/files/l10n/de_DE.php
+++ b/apps/files/l10n/de_DE.php
@@ -7,10 +7,10 @@
"No file was uploaded" => "Es wurde keine Datei hochgeladen.",
"Missing a temporary folder" => "Der temporäre Ordner fehlt.",
"Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte",
-"Not enough space available" => "Nicht genügend Speicherplatz verfügbar",
"Invalid directory." => "Ungültiges Verzeichnis.",
"Files" => "Dateien",
"Unshare" => "Nicht mehr freigeben",
+"Delete permanently" => "Entgültig löschen",
"Delete" => "Löschen",
"Rename" => "Umbenennen",
"{new_name} already exists" => "{new_name} existiert bereits",
diff --git a/apps/files/l10n/el.php b/apps/files/l10n/el.php
index 7b458bf35dd..a9c5fda0981 100644
--- a/apps/files/l10n/el.php
+++ b/apps/files/l10n/el.php
@@ -7,7 +7,6 @@
"No file was uploaded" => "Κανένα αρχείο δεν στάλθηκε",
"Missing a temporary folder" => "Λείπει ο προσωρινός φάκελος",
"Failed to write to disk" => "Αποτυχία εγγραφής στο δίσκο",
-"Not enough space available" => "Δεν υπάρχει αρκετός διαθέσιμος χώρος",
"Invalid directory." => "Μη έγκυρος φάκελος.",
"Files" => "Αρχεία",
"Unshare" => "Διακοπή κοινής χρήσης",
diff --git a/apps/files/l10n/eo.php b/apps/files/l10n/eo.php
index a510d47ad6c..ba78e8b56d7 100644
--- a/apps/files/l10n/eo.php
+++ b/apps/files/l10n/eo.php
@@ -7,7 +7,6 @@
"No file was uploaded" => "Neniu dosiero estas alŝutita",
"Missing a temporary folder" => "Mankas tempa dosierujo",
"Failed to write to disk" => "Malsukcesis skribo al disko",
-"Not enough space available" => "Ne haveblas sufiĉa spaco",
"Invalid directory." => "Nevalida dosierujo.",
"Files" => "Dosieroj",
"Unshare" => "Malkunhavigi",
diff --git a/apps/files/l10n/es.php b/apps/files/l10n/es.php
index bc5046767c6..9d45e6035c7 100644
--- a/apps/files/l10n/es.php
+++ b/apps/files/l10n/es.php
@@ -7,10 +7,10 @@
"No file was uploaded" => "No se ha subido ningún archivo",
"Missing a temporary folder" => "Falta un directorio temporal",
"Failed to write to disk" => "La escritura en disco ha fallado",
-"Not enough space available" => "No hay suficiente espacio disponible",
"Invalid directory." => "Directorio invalido.",
"Files" => "Archivos",
"Unshare" => "Dejar de compartir",
+"Delete permanently" => "Eliminar permanentemente",
"Delete" => "Eliminar",
"Rename" => "Renombrar",
"{new_name} already exists" => "{new_name} ya existe",
@@ -20,9 +20,12 @@
"replaced {new_name}" => "reemplazado {new_name}",
"undo" => "deshacer",
"replaced {new_name} with {old_name}" => "reemplazado {new_name} con {old_name}",
+"perform delete operation" => "Eliminar",
"'.' is an invalid file name." => "'.' es un nombre de archivo inválido.",
"File name cannot be empty." => "El nombre de archivo no puede estar vacío.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nombre Invalido, \"\\\", \"/\", \"<\", \">\", \":\", \"\", \"|\" \"?\" y \"*\" no están permitidos ",
+"Your storage is full, files can not be updated or synced anymore!" => "Su almacenamiento esta lleno, los archivos no pueden ser mas actualizados o sincronizados!",
+"Your storage is almost full ({usedSpacePercent}%)" => "Su almacenamiento esta lleno en un ({usedSpacePercent}%)",
"Your download is being prepared. This might take some time if the files are big." => "Tu descarga esta siendo preparada. Esto puede tardar algun tiempo si los archivos son muy grandes.",
"Unable to upload your file as it is a directory or has 0 bytes" => "No ha sido posible subir tu archivo porque es un directorio o tiene 0 bytes",
"Upload Error" => "Error al subir el archivo",
@@ -54,11 +57,13 @@
"Text file" => "Archivo de texto",
"Folder" => "Carpeta",
"From link" => "Desde el enlace",
+"Trash" => "Basura",
"Cancel upload" => "Cancelar subida",
"Nothing in here. Upload something!" => "Aquí no hay nada. ¡Sube algo!",
"Download" => "Descargar",
"Upload too large" => "El archivo es demasiado grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los archivos que estás intentando subir sobrepasan el tamaño máximo permitido por este servidor.",
"Files are being scanned, please wait." => "Se están escaneando los archivos, por favor espere.",
-"Current scanning" => "Ahora escaneando"
+"Current scanning" => "Ahora escaneando",
+"Upgrading filesystem cache..." => "Actualizando cache de archivos de sistema"
);
diff --git a/apps/files/l10n/es_AR.php b/apps/files/l10n/es_AR.php
index ea8352e3251..e805f24ce4c 100644
--- a/apps/files/l10n/es_AR.php
+++ b/apps/files/l10n/es_AR.php
@@ -7,7 +7,6 @@
"No file was uploaded" => "El archivo no fue subido",
"Missing a temporary folder" => "Falta un directorio temporal",
"Failed to write to disk" => "Error al escribir en el disco",
-"Not enough space available" => "No hay suficiente espacio disponible",
"Invalid directory." => "Directorio invalido.",
"Files" => "Archivos",
"Unshare" => "Dejar de compartir",
@@ -20,6 +19,7 @@
"replaced {new_name}" => "reemplazado {new_name}",
"undo" => "deshacer",
"replaced {new_name} with {old_name}" => "reemplazado {new_name} con {old_name}",
+"perform delete operation" => "Eliminar",
"'.' is an invalid file name." => "'.' es un nombre de archivo inválido.",
"File name cannot be empty." => "El nombre del archivo no puede quedar vacío.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nombre invalido, '\\', '/', '<', '>', ':', '\"', '|', '?' y '*' no están permitidos.",
@@ -56,11 +56,13 @@
"Text file" => "Archivo de texto",
"Folder" => "Carpeta",
"From link" => "Desde enlace",
+"Trash" => "Papelera",
"Cancel upload" => "Cancelar subida",
"Nothing in here. Upload something!" => "No hay nada. ¡Subí contenido!",
"Download" => "Descargar",
"Upload too large" => "El archivo es demasiado grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Los archivos que intentás subir sobrepasan el tamaño máximo ",
"Files are being scanned, please wait." => "Se están escaneando los archivos, por favor esperá.",
-"Current scanning" => "Escaneo actual"
+"Current scanning" => "Escaneo actual",
+"Upgrading filesystem cache..." => "Actualizando el cache del sistema de archivos"
);
diff --git a/apps/files/l10n/eu.php b/apps/files/l10n/eu.php
index 6f4c55f4846..45c515814e7 100644
--- a/apps/files/l10n/eu.php
+++ b/apps/files/l10n/eu.php
@@ -7,7 +7,6 @@
"No file was uploaded" => "Ez da fitxategirik igo",
"Missing a temporary folder" => "Aldi baterako karpeta falta da",
"Failed to write to disk" => "Errore bat izan da diskoan idazterakoan",
-"Not enough space available" => "Ez dago leku nahikorik.",
"Invalid directory." => "Baliogabeko karpeta.",
"Files" => "Fitxategiak",
"Unshare" => "Ez elkarbanatu",
diff --git a/apps/files/l10n/fa.php b/apps/files/l10n/fa.php
index a4181c6ff53..2559d597a79 100644
--- a/apps/files/l10n/fa.php
+++ b/apps/files/l10n/fa.php
@@ -7,7 +7,6 @@
"No file was uploaded" => "هیچ فایلی بارگذاری نشده",
"Missing a temporary folder" => "یک پوشه موقت گم شده است",
"Failed to write to disk" => "نوشتن بر روی دیسک سخت ناموفق بود",
-"Not enough space available" => "فضای کافی در دسترس نیست",
"Invalid directory." => "فهرست راهنما نامعتبر می باشد.",
"Files" => "فایل ها",
"Unshare" => "لغو اشتراک",
diff --git a/apps/files/l10n/fi_FI.php b/apps/files/l10n/fi_FI.php
index 809a5e5c554..6a425e76090 100644
--- a/apps/files/l10n/fi_FI.php
+++ b/apps/files/l10n/fi_FI.php
@@ -6,7 +6,6 @@
"No file was uploaded" => "Yhtäkään tiedostoa ei lähetetty",
"Missing a temporary folder" => "Väliaikaiskansiota ei ole olemassa",
"Failed to write to disk" => "Levylle kirjoitus epäonnistui",
-"Not enough space available" => "Tilaa ei ole riittävästi",
"Invalid directory." => "Virheellinen kansio.",
"Files" => "Tiedostot",
"Unshare" => "Peru jakaminen",
diff --git a/apps/files/l10n/fr.php b/apps/files/l10n/fr.php
index 4be699c0017..45281d277ff 100644
--- a/apps/files/l10n/fr.php
+++ b/apps/files/l10n/fr.php
@@ -7,10 +7,10 @@
"No file was uploaded" => "Aucun fichier n'a été téléversé",
"Missing a temporary folder" => "Il manque un répertoire temporaire",
"Failed to write to disk" => "Erreur d'écriture sur le disque",
-"Not enough space available" => "Espace disponible insuffisant",
"Invalid directory." => "Dossier invalide.",
"Files" => "Fichiers",
"Unshare" => "Ne plus partager",
+"Delete permanently" => "Supprimer de façon définitive",
"Delete" => "Supprimer",
"Rename" => "Renommer",
"{new_name} already exists" => "{new_name} existe déjà",
diff --git a/apps/files/l10n/gl.php b/apps/files/l10n/gl.php
index a1c0f0a5dd5..362e92dacea 100644
--- a/apps/files/l10n/gl.php
+++ b/apps/files/l10n/gl.php
@@ -7,7 +7,6 @@
"No file was uploaded" => "Non se enviou ningún ficheiro",
"Missing a temporary folder" => "Falta un cartafol temporal",
"Failed to write to disk" => "Erro ao escribir no disco",
-"Not enough space available" => "O espazo dispoñíbel é insuficiente",
"Invalid directory." => "O directorio é incorrecto.",
"Files" => "Ficheiros",
"Unshare" => "Deixar de compartir",
diff --git a/apps/files/l10n/hu_HU.php b/apps/files/l10n/hu_HU.php
index 86fc0f223f9..26d56480790 100644
--- a/apps/files/l10n/hu_HU.php
+++ b/apps/files/l10n/hu_HU.php
@@ -7,7 +7,6 @@
"No file was uploaded" => "Nem töltődött fel semmi",
"Missing a temporary folder" => "Hiányzik egy ideiglenes mappa",
"Failed to write to disk" => "Nem sikerült a lemezre történő írás",
-"Not enough space available" => "Nincs elég szabad hely",
"Invalid directory." => "Érvénytelen mappa.",
"Files" => "Fájlok",
"Unshare" => "Megosztás visszavonása",
diff --git a/apps/files/l10n/is.php b/apps/files/l10n/is.php
index 43c10ef236e..f8d9789cf0f 100644
--- a/apps/files/l10n/is.php
+++ b/apps/files/l10n/is.php
@@ -7,7 +7,6 @@
"No file was uploaded" => "Engin skrá skilaði sér",
"Missing a temporary folder" => "Vantar bráðabirgðamöppu",
"Failed to write to disk" => "Tókst ekki að skrifa á disk",
-"Not enough space available" => "Ekki nægt pláss tiltækt",
"Invalid directory." => "Ógild mappa.",
"Files" => "Skrár",
"Unshare" => "Hætta deilingu",
diff --git a/apps/files/l10n/it.php b/apps/files/l10n/it.php
index bb3a5bdf054..3d6eb254e59 100644
--- a/apps/files/l10n/it.php
+++ b/apps/files/l10n/it.php
@@ -7,10 +7,10 @@
"No file was uploaded" => "Nessun file è stato caricato",
"Missing a temporary folder" => "Cartella temporanea mancante",
"Failed to write to disk" => "Scrittura su disco non riuscita",
-"Not enough space available" => "Spazio disponibile insufficiente",
"Invalid directory." => "Cartella non valida.",
"Files" => "File",
"Unshare" => "Rimuovi condivisione",
+"Delete permanently" => "Elimina definitivamente",
"Delete" => "Elimina",
"Rename" => "Rinomina",
"{new_name} already exists" => "{new_name} esiste già",
diff --git a/apps/files/l10n/ja_JP.php b/apps/files/l10n/ja_JP.php
index c8b1054f30b..1caa308c1b8 100644
--- a/apps/files/l10n/ja_JP.php
+++ b/apps/files/l10n/ja_JP.php
@@ -7,10 +7,10 @@
"No file was uploaded" => "ファイルはアップロードされませんでした",
"Missing a temporary folder" => "テンポラリフォルダが見つかりません",
"Failed to write to disk" => "ディスクへの書き込みに失敗しました",
-"Not enough space available" => "利用可能なスペースが十分にありません",
"Invalid directory." => "無効なディレクトリです。",
"Files" => "ファイル",
"Unshare" => "共有しない",
+"Delete permanently" => "完全に削除する",
"Delete" => "削除",
"Rename" => "名前の変更",
"{new_name} already exists" => "{new_name} はすでに存在しています",
diff --git a/apps/files/l10n/ko.php b/apps/files/l10n/ko.php
index 7774aeea31c..98d0d602801 100644
--- a/apps/files/l10n/ko.php
+++ b/apps/files/l10n/ko.php
@@ -7,7 +7,6 @@
"No file was uploaded" => "업로드된 파일 없음",
"Missing a temporary folder" => "임시 폴더가 사라짐",
"Failed to write to disk" => "디스크에 쓰지 못했습니다",
-"Not enough space available" => "여유 공간이 부족합니다",
"Invalid directory." => "올바르지 않은 디렉터리입니다.",
"Files" => "파일",
"Unshare" => "공유 해제",
diff --git a/apps/files/l10n/lv.php b/apps/files/l10n/lv.php
index 25c1da73beb..57b391e444c 100644
--- a/apps/files/l10n/lv.php
+++ b/apps/files/l10n/lv.php
@@ -7,10 +7,10 @@
"No file was uploaded" => "Neviena datne netika augšupielādēta",
"Missing a temporary folder" => "Trūkst pagaidu mapes",
"Failed to write to disk" => "Neizdevās saglabāt diskā",
-"Not enough space available" => "Nepietiek brīvas vietas",
"Invalid directory." => "Nederīga direktorija.",
"Files" => "Datnes",
"Unshare" => "Pārtraukt dalīšanos",
+"Delete permanently" => "Dzēst pavisam",
"Delete" => "Dzēst",
"Rename" => "Pārsaukt",
"{new_name} already exists" => "{new_name} jau eksistē",
diff --git a/apps/files/l10n/nl.php b/apps/files/l10n/nl.php
index addd3a93723..9095149cd9d 100644
--- a/apps/files/l10n/nl.php
+++ b/apps/files/l10n/nl.php
@@ -7,10 +7,10 @@
"No file was uploaded" => "Geen bestand geüpload",
"Missing a temporary folder" => "Een tijdelijke map mist",
"Failed to write to disk" => "Schrijven naar schijf mislukt",
-"Not enough space available" => "Niet genoeg ruimte beschikbaar",
"Invalid directory." => "Ongeldige directory.",
"Files" => "Bestanden",
"Unshare" => "Stop delen",
+"Delete permanently" => "Verwijder definitief",
"Delete" => "Verwijder",
"Rename" => "Hernoem",
"{new_name} already exists" => "{new_name} bestaat al",
diff --git a/apps/files/l10n/pl.php b/apps/files/l10n/pl.php
index 6855850f0da..45d0f436614 100644
--- a/apps/files/l10n/pl.php
+++ b/apps/files/l10n/pl.php
@@ -7,7 +7,6 @@
"No file was uploaded" => "Nie przesłano żadnego pliku",
"Missing a temporary folder" => "Brak katalogu tymczasowego",
"Failed to write to disk" => "Błąd zapisu na dysk",
-"Not enough space available" => "Za mało miejsca",
"Invalid directory." => "Zła ścieżka.",
"Files" => "Pliki",
"Unshare" => "Nie udostępniaj",
diff --git a/apps/files/l10n/pt_PT.php b/apps/files/l10n/pt_PT.php
index b1d7385bc58..52c87ed728a 100644
--- a/apps/files/l10n/pt_PT.php
+++ b/apps/files/l10n/pt_PT.php
@@ -7,10 +7,10 @@
"No file was uploaded" => "Não foi enviado nenhum ficheiro",
"Missing a temporary folder" => "Falta uma pasta temporária",
"Failed to write to disk" => "Falhou a escrita no disco",
-"Not enough space available" => "Espaço em disco insuficiente!",
"Invalid directory." => "Directório Inválido",
"Files" => "Ficheiros",
"Unshare" => "Deixar de partilhar",
+"Delete permanently" => "Eliminar permanentemente",
"Delete" => "Apagar",
"Rename" => "Renomear",
"{new_name} already exists" => "O nome {new_name} já existe",
diff --git a/apps/files/l10n/ro.php b/apps/files/l10n/ro.php
index 7837b1f5b30..79ca1cf4f51 100644
--- a/apps/files/l10n/ro.php
+++ b/apps/files/l10n/ro.php
@@ -7,7 +7,6 @@
"No file was uploaded" => "Niciun fișier încărcat",
"Missing a temporary folder" => "Lipsește un dosar temporar",
"Failed to write to disk" => "Eroare la scriere pe disc",
-"Not enough space available" => "Nu este suficient spațiu disponibil",
"Invalid directory." => "Director invalid.",
"Files" => "Fișiere",
"Unshare" => "Anulează partajarea",
diff --git a/apps/files/l10n/ru.php b/apps/files/l10n/ru.php
index 716afa5f29a..05542452e7f 100644
--- a/apps/files/l10n/ru.php
+++ b/apps/files/l10n/ru.php
@@ -7,10 +7,10 @@
"No file was uploaded" => "Файл не был загружен",
"Missing a temporary folder" => "Невозможно найти временную папку",
"Failed to write to disk" => "Ошибка записи на диск",
-"Not enough space available" => "Недостаточно свободного места",
"Invalid directory." => "Неправильный каталог.",
"Files" => "Файлы",
"Unshare" => "Отменить публикацию",
+"Delete permanently" => "Удалено навсегда",
"Delete" => "Удалить",
"Rename" => "Переименовать",
"{new_name} already exists" => "{new_name} уже существует",
@@ -20,9 +20,13 @@
"replaced {new_name}" => "заменено {new_name}",
"undo" => "отмена",
"replaced {new_name} with {old_name}" => "заменено {new_name} на {old_name}",
+"perform delete operation" => "выполняется операция удаления",
"'.' is an invalid file name." => "'.' - неправильное имя файла.",
"File name cannot be empty." => "Имя файла не может быть пустым.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Неправильное имя, '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' недопустимы.",
+"Your storage is full, files can not be updated or synced anymore!" => "Ваше дисковое пространство полностью заполнено, произведите очистку перед загрузкой новых файлов.",
+"Your storage is almost full ({usedSpacePercent}%)" => "Ваше хранилище почти заполнено ({usedSpacePercent}%)",
+"Your download is being prepared. This might take some time if the files are big." => "Загрузка началась. Это может потребовать много времени, если файл большого размера.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Не удается загрузить файл размером 0 байт в каталог",
"Upload Error" => "Ошибка загрузки",
"Close" => "Закрыть",
@@ -53,11 +57,13 @@
"Text file" => "Текстовый файл",
"Folder" => "Папка",
"From link" => "Из ссылки",
+"Trash" => "Корзина",
"Cancel upload" => "Отмена загрузки",
"Nothing in here. Upload something!" => "Здесь ничего нет. Загрузите что-нибудь!",
"Download" => "Скачать",
"Upload too large" => "Файл слишком большой",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Файлы, которые Вы пытаетесь загрузить, превышают лимит для файлов на этом сервере.",
"Files are being scanned, please wait." => "Подождите, файлы сканируются.",
-"Current scanning" => "Текущее сканирование"
+"Current scanning" => "Текущее сканирование",
+"Upgrading filesystem cache..." => "Обновление кеша файловой системы..."
);
diff --git a/apps/files/l10n/ru_RU.php b/apps/files/l10n/ru_RU.php
index e1952567d31..9b2913970f2 100644
--- a/apps/files/l10n/ru_RU.php
+++ b/apps/files/l10n/ru_RU.php
@@ -7,10 +7,10 @@
"No file was uploaded" => "Файл не был загружен",
"Missing a temporary folder" => "Отсутствует временная папка",
"Failed to write to disk" => "Не удалось записать на диск",
-"Not enough space available" => "Не достаточно свободного места",
"Invalid directory." => "Неверный каталог.",
"Files" => "Файлы",
"Unshare" => "Скрыть",
+"Delete permanently" => "Удалить навсегда",
"Delete" => "Удалить",
"Rename" => "Переименовать",
"{new_name} already exists" => "{новое_имя} уже существует",
@@ -20,9 +20,13 @@
"replaced {new_name}" => "заменено {новое_имя}",
"undo" => "отменить действие",
"replaced {new_name} with {old_name}" => "заменено {новое_имя} с {старое_имя}",
+"perform delete operation" => "выполняется процесс удаления",
"'.' is an invalid file name." => "'.' является неверным именем файла.",
"File name cannot be empty." => "Имя файла не может быть пустым.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Некорректное имя, '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' не допустимы.",
+"Your storage is full, files can not be updated or synced anymore!" => "Ваше хранилище переполнено, фалы больше не могут быть обновлены или синхронизированы!",
+"Your storage is almost full ({usedSpacePercent}%)" => "Ваше хранилище почти полно ({usedSpacePercent}%)",
+"Your download is being prepared. This might take some time if the files are big." => "Идёт подготовка к скачке Вашего файла. Это может занять некоторое время, если фалы большие.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Невозможно загрузить файл,\n так как он имеет нулевой размер или является директорией",
"Upload Error" => "Ошибка загрузки",
"Close" => "Закрыть",
@@ -53,6 +57,7 @@
"Text file" => "Текстовый файл",
"Folder" => "Папка",
"From link" => "По ссылке",
+"Trash" => "Корзина",
"Cancel upload" => "Отмена загрузки",
"Nothing in here. Upload something!" => "Здесь ничего нет. Загрузите что-нибудь!",
"Download" => "Загрузить",
diff --git a/apps/files/l10n/sk_SK.php b/apps/files/l10n/sk_SK.php
index a94d96f6aee..be7f77adab0 100644
--- a/apps/files/l10n/sk_SK.php
+++ b/apps/files/l10n/sk_SK.php
@@ -7,10 +7,10 @@
"No file was uploaded" => "Žiaden súbor nebol nahraný",
"Missing a temporary folder" => "Chýbajúci dočasný priečinok",
"Failed to write to disk" => "Zápis na disk sa nepodaril",
-"Not enough space available" => "Nie je k dispozícii dostatok miesta",
"Invalid directory." => "Neplatný adresár",
"Files" => "Súbory",
"Unshare" => "Nezdielať",
+"Delete permanently" => "Zmazať trvalo",
"Delete" => "Odstrániť",
"Rename" => "Premenovať",
"{new_name} already exists" => "{new_name} už existuje",
@@ -20,6 +20,7 @@
"replaced {new_name}" => "prepísaný {new_name}",
"undo" => "vrátiť",
"replaced {new_name} with {old_name}" => "prepísaný {new_name} súborom {old_name}",
+"perform delete operation" => "vykonať zmazanie",
"'.' is an invalid file name." => "'.' je neplatné meno súboru.",
"File name cannot be empty." => "Meno súboru nemôže byť prázdne",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nesprávne meno, '\\', '/', '<', '>', ':', '\"', '|', '?' a '*' nie sú povolené hodnoty.",
@@ -56,11 +57,13 @@
"Text file" => "Textový súbor",
"Folder" => "Priečinok",
"From link" => "Z odkazu",
+"Trash" => "Kôš",
"Cancel upload" => "Zrušiť odosielanie",
"Nothing in here. Upload something!" => "Žiadny súbor. Nahrajte niečo!",
"Download" => "Stiahnuť",
"Upload too large" => "Odosielaný súbor je príliš veľký",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Súbory, ktoré sa snažíte nahrať, presahujú maximálnu veľkosť pre nahratie súborov na tento server.",
"Files are being scanned, please wait." => "Čakajte, súbory sú prehľadávané.",
-"Current scanning" => "Práve prehliadané"
+"Current scanning" => "Práve prehliadané",
+"Upgrading filesystem cache..." => "Aktualizujem medzipamäť súborového systému..."
);
diff --git a/apps/files/l10n/sv.php b/apps/files/l10n/sv.php
index 55493e24943..ebdaae9193f 100644
--- a/apps/files/l10n/sv.php
+++ b/apps/files/l10n/sv.php
@@ -7,7 +7,6 @@
"No file was uploaded" => "Ingen fil blev uppladdad",
"Missing a temporary folder" => "Saknar en tillfällig mapp",
"Failed to write to disk" => "Misslyckades spara till disk",
-"Not enough space available" => "Inte tillräckligt med utrymme tillgängligt",
"Invalid directory." => "Felaktig mapp.",
"Files" => "Filer",
"Unshare" => "Sluta dela",
diff --git a/apps/files/l10n/th_TH.php b/apps/files/l10n/th_TH.php
index 06dab9d8e6c..5f880702b82 100644
--- a/apps/files/l10n/th_TH.php
+++ b/apps/files/l10n/th_TH.php
@@ -7,7 +7,6 @@
"No file was uploaded" => "ยังไม่มีไฟล์ที่ถูกอัพโหลด",
"Missing a temporary folder" => "แฟ้มเอกสารชั่วคราวเกิดการสูญหาย",
"Failed to write to disk" => "เขียนข้อมูลลงแผ่นดิสก์ล้มเหลว",
-"Not enough space available" => "มีพื้นที่เหลือไม่เพียงพอ",
"Invalid directory." => "ไดเร็กทอรี่ไม่ถูกต้อง",
"Files" => "ไฟล์",
"Unshare" => "ยกเลิกการแชร์ข้อมูล",
diff --git a/apps/files/l10n/tr.php b/apps/files/l10n/tr.php
index 3412d8ad448..3325cbe1ee4 100644
--- a/apps/files/l10n/tr.php
+++ b/apps/files/l10n/tr.php
@@ -7,7 +7,6 @@
"No file was uploaded" => "Hiç dosya yüklenmedi",
"Missing a temporary folder" => "Geçici bir klasör eksik",
"Failed to write to disk" => "Diske yazılamadı",
-"Not enough space available" => "Yeterli disk alanı yok",
"Invalid directory." => "Geçersiz dizin.",
"Files" => "Dosyalar",
"Unshare" => "Paylaşılmayan",
diff --git a/apps/files/l10n/uk.php b/apps/files/l10n/uk.php
index 9831dfe0f8f..4a76158c462 100644
--- a/apps/files/l10n/uk.php
+++ b/apps/files/l10n/uk.php
@@ -7,8 +7,10 @@
"No file was uploaded" => "Не відвантажено жодного файлу",
"Missing a temporary folder" => "Відсутній тимчасовий каталог",
"Failed to write to disk" => "Невдалося записати на диск",
+"Invalid directory." => "Невірний каталог.",
"Files" => "Файли",
"Unshare" => "Заборонити доступ",
+"Delete permanently" => "Видалити назавжди",
"Delete" => "Видалити",
"Rename" => "Перейменувати",
"{new_name} already exists" => "{new_name} вже існує",
@@ -18,7 +20,13 @@
"replaced {new_name}" => "замінено {new_name}",
"undo" => "відмінити",
"replaced {new_name} with {old_name}" => "замінено {new_name} на {old_name}",
+"perform delete operation" => "виконати операцію видалення",
+"'.' is an invalid file name." => "'.' це невірне ім'я файлу.",
+"File name cannot be empty." => " Ім'я файлу не може бути порожнім.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Невірне ім'я, '\\', '/', '<', '>', ':', '\"', '|', '?' та '*' не дозволені.",
+"Your storage is full, files can not be updated or synced anymore!" => "Ваше сховище переповнене, файли більше не можуть бути оновлені або синхронізовані !",
+"Your storage is almost full ({usedSpacePercent}%)" => "Ваше сховище майже повне ({usedSpacePercent}%)",
+"Your download is being prepared. This might take some time if the files are big." => "Ваше завантаження готується. Це може зайняти деякий час, якщо файли завеликі.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Неможливо завантажити ваш файл тому, що він тека або файл розміром 0 байт",
"Upload Error" => "Помилка завантаження",
"Close" => "Закрити",
@@ -28,6 +36,7 @@
"Upload cancelled." => "Завантаження перервано.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Виконується завантаження файлу. Закриття цієї сторінки приведе до відміни завантаження.",
"URL cannot be empty." => "URL не може бути пустим.",
+"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Невірне ім'я теки. Використання \"Shared\" зарезервовано Owncloud",
"Name" => "Ім'я",
"Size" => "Розмір",
"Modified" => "Змінено",
@@ -48,11 +57,13 @@
"Text file" => "Текстовий файл",
"Folder" => "Папка",
"From link" => "З посилання",
+"Trash" => "Смітник",
"Cancel upload" => "Перервати завантаження",
"Nothing in here. Upload something!" => "Тут нічого немає. Відвантажте що-небудь!",
"Download" => "Завантажити",
"Upload too large" => "Файл занадто великий",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Файли,що ви намагаєтесь відвантажити перевищують максимальний дозволений розмір файлів на цьому сервері.",
"Files are being scanned, please wait." => "Файли скануються, зачекайте, будь-ласка.",
-"Current scanning" => "Поточне сканування"
+"Current scanning" => "Поточне сканування",
+"Upgrading filesystem cache..." => "Оновлення кеша файлової системи..."
);
diff --git a/apps/files/l10n/zh_CN.php b/apps/files/l10n/zh_CN.php
index 2491d645340..3c87ee2b73f 100644
--- a/apps/files/l10n/zh_CN.php
+++ b/apps/files/l10n/zh_CN.php
@@ -7,7 +7,6 @@
"No file was uploaded" => "文件没有上传",
"Missing a temporary folder" => "缺少临时目录",
"Failed to write to disk" => "写入磁盘失败",
-"Not enough space available" => "没有足够可用空间",
"Invalid directory." => "无效文件夹。",
"Files" => "文件",
"Unshare" => "取消分享",
diff --git a/apps/files/l10n/zh_TW.php b/apps/files/l10n/zh_TW.php
index 104cb3a619f..439907821d4 100644
--- a/apps/files/l10n/zh_TW.php
+++ b/apps/files/l10n/zh_TW.php
@@ -7,7 +7,6 @@
"No file was uploaded" => "無已上傳檔案",
"Missing a temporary folder" => "遺失暫存資料夾",
"Failed to write to disk" => "寫入硬碟失敗",
-"Not enough space available" => "沒有足夠的可用空間",
"Invalid directory." => "無效的資料夾。",
"Files" => "檔案",
"Unshare" => "取消共享",
diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php
index 2d4ed9ab2d9..7cf65915af0 100644
--- a/apps/files/templates/index.php
+++ b/apps/files/templates/index.php
@@ -37,7 +37,7 @@
</div>
<?php if ($_['trash'] ): ?>
<div id="trash" class="button">
- <a><?php echo $l->t('Trash');?></a>
+ <a><?php echo $l->t('Trash bin');?></a>
</div>
<?php endif; ?>
<div id="uploadprogresswrapper">
@@ -59,7 +59,7 @@
<div id="emptyfolder"><?php echo $l->t('Nothing in here. Upload something!')?></div>
<?php endif; ?>
-<table>
+<table class="hascontrols">
<thead>
<tr>
<th id='headerName'>
diff --git a/apps/files/templates/part.breadcrumb.php b/apps/files/templates/part.breadcrumb.php
index e506ba31f6a..8778915be84 100644
--- a/apps/files/templates/part.breadcrumb.php
+++ b/apps/files/templates/part.breadcrumb.php
@@ -1,6 +1,6 @@
<?php if(count($_["breadcrumb"])):?>
<div class="crumb">
- <a href="<?php echo $_['baseURL'].urlencode($crumb['dir']); ?>">
+ <a href="<?php echo $_['baseURL']; ?>">
<img src="<?php echo OCP\image_path('core','places/home.svg');?>" />
</a>
</div>
diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php
index 31b430d37a9..f83109a18ea 100644
--- a/apps/files_encryption/appinfo/app.php
+++ b/apps/files_encryption/appinfo/app.php
@@ -10,21 +10,31 @@ OC::$CLASSPATH['OCA\Encryption\Session'] = 'apps/files_encryption/lib/session.ph
OC_FileProxy::register( new OCA\Encryption\Proxy() );
-OCP\Util::connectHook( 'OC_User','post_login', 'OCA\Encryption\Hooks', 'login' );
+// User-related hooks
+OCP\Util::connectHook( 'OC_User', 'post_login', 'OCA\Encryption\Hooks', 'login' );
+OCP\Util::connectHook( 'OC_User', 'pre_setPassword','OCA\Encryption\Hooks', 'setPassphrase' );
+
+// Sharing-related hooks
+OCP\Util::connectHook( 'OCP\Share', 'post_shared', 'OCA\Encryption\Hooks', 'postShared' );
+OCP\Util::connectHook( 'OCP\Share', 'pre_unshare', 'OCA\Encryption\Hooks', 'preUnshare' );
+OCP\Util::connectHook( 'OCP\Share', 'pre_unshareAll', 'OCA\Encryption\Hooks', 'preUnshareAll' );
+
+// Webdav-related hooks
OCP\Util::connectHook( 'OC_Webdav_Properties', 'update', 'OCA\Encryption\Hooks', 'updateKeyfile' );
-OCP\Util::connectHook( 'OC_User','post_setPassword','OCA\Encryption\Hooks' ,'setPassphrase' );
stream_wrapper_register( 'crypt', 'OCA\Encryption\Stream' );
$session = new OCA\Encryption\Session();
if (
-! $session->getPrivateKey( \OCP\USER::getUser() )
-&& OCP\User::isLoggedIn()
-&& OCA\Encryption\Crypt::mode() == 'server'
+ ! $session->getPrivateKey( \OCP\USER::getUser() )
+ && OCP\User::isLoggedIn()
+ && OCA\Encryption\Crypt::mode() == 'server'
) {
- // Force the user to re-log in if the encryption key isn't unlocked (happens when a user is logged in before the encryption app is enabled)
+ // Force the user to log-in again if the encryption key isn't unlocked
+ // (happens when a user is logged in before the encryption app is
+ // enabled)
OCP\User::logout();
header( "Location: " . OC::$WEBROOT.'/' );
@@ -33,5 +43,6 @@ if (
}
-OCP\App::registerAdmin( 'files_encryption', 'settings');
+// Reguster settings scripts
+OCP\App::registerAdmin( 'files_encryption', 'settings' );
OCP\App::registerPersonal( 'files_encryption', 'settings-personal' ); \ No newline at end of file
diff --git a/apps/files_encryption/appinfo/spec.txt b/apps/files_encryption/appinfo/spec.txt
new file mode 100644
index 00000000000..2d22dffe08d
--- /dev/null
+++ b/apps/files_encryption/appinfo/spec.txt
@@ -0,0 +1,19 @@
+Encrypted files
+---------------
+
+- Each encrypted file has at least two components: the encrypted data file
+ ('catfile'), and it's corresponding key file ('keyfile'). Shared files have an
+ additional key file ('share key'). The catfile contains the encrypted data
+ concatenated with delimiter text, followed by the initialisation vector ('IV'),
+ and padding. e.g.:
+
+ [encrypted data string][delimiter][IV][padding]
+ [anhAAjAmcGXqj1X9g==][00iv00][MSHU5N5gECP7aAg7][xx] (square braces added)
+
+Notes
+-----
+
+- The user passphrase is required in order to set up or upgrade the app. New
+ keypair generation, and the re-encryption of legacy encrypted files requires
+ it. Therefore an appinfo/update.php script cannot be used, and upgrade logic
+ is handled in the login hook listener. \ No newline at end of file
diff --git a/apps/files_encryption/appinfo/version b/apps/files_encryption/appinfo/version
index 7dff5b89211..1d71ef97443 100644
--- a/apps/files_encryption/appinfo/version
+++ b/apps/files_encryption/appinfo/version
@@ -1 +1 @@
-0.2.1 \ No newline at end of file
+0.3 \ No newline at end of file
diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php
index c2f97247835..8bdeee0937b 100644
--- a/apps/files_encryption/hooks/hooks.php
+++ b/apps/files_encryption/hooks/hooks.php
@@ -1,4 +1,5 @@
<?php
+
/**
* ownCloud
*
@@ -28,7 +29,8 @@ namespace OCA\Encryption;
class Hooks {
- # TODO: use passphrase for encrypting private key that is separate to the login password
+ // TODO: use passphrase for encrypting private key that is separate to
+ // the login password
/**
* @brief Startup encryption backend upon user login
@@ -36,49 +38,65 @@ class Hooks {
*/
public static function login( $params ) {
-// if ( Crypt::mode( $params['uid'] ) == 'server' ) {
-
- # TODO: use lots of dependency injection here
-
- $view = new \OC_FilesystemView( '/' );
-
- $util = new Util( $view, $params['uid'] );
-
- if ( ! $util->ready() ) {
-
- \OC_Log::write( 'Encryption library', 'User account "' . $params['uid'] . '" is not ready for encryption; configuration started' , \OC_Log::DEBUG );
-
- return $util->setupServerSide( $params['password'] );
+ // Manually initialise Filesystem{} singleton with correct
+ // fake root path, in order to avoid fatal webdav errors
+ \OC\Files\Filesystem::init( $params['uid'] . '/' . 'files' . '/' );
+
+ $view = new \OC_FilesystemView( '/' );
- }
+ $util = new Util( $view, $params['uid'] );
- \OC_FileProxy::$enabled = false;
+ // Check files_encryption infrastructure is ready for action
+ if ( ! $util->ready() ) {
- $encryptedKey = Keymanager::getPrivateKey( $view, $params['uid'] );
+ \OC_Log::write( 'Encryption library', 'User account "' . $params['uid'] . '" is not ready for encryption; configuration started', \OC_Log::DEBUG );
- \OC_FileProxy::$enabled = true;
-
- # TODO: dont manually encrypt the private keyfile - use the config options of openssl_pkey_export instead for better mobile compatibility
-
- $privateKey = Crypt::symmetricDecryptFileContent( $encryptedKey, $params['password'] );
-
- $session = new Session();
-
- $session->setPrivateKey( $privateKey, $params['uid'] );
-
- $view1 = new \OC_FilesystemView( '/' . $params['uid'] );
-
- // Set legacy encryption key if it exists, to support
- // depreciated encryption system
- if (
+ return $util->setupServerSide( $params['password'] );
+
+ }
+
+ \OC_FileProxy::$enabled = false;
+
+ $encryptedKey = Keymanager::getPrivateKey( $view, $params['uid'] );
+
+ \OC_FileProxy::$enabled = true;
+
+ $privateKey = Crypt::symmetricDecryptFileContent( $encryptedKey, $params['password'] );
+
+ $session = new Session();
+
+ $session->setPrivateKey( $privateKey, $params['uid'] );
+
+ $view1 = new \OC_FilesystemView( '/' . $params['uid'] );
+
+ // Set legacy encryption key if it exists, to support
+ // depreciated encryption system
+ if (
$view1->file_exists( 'encryption.key' )
- && $legacyKey = $view1->file_get_contents( 'encryption.key' )
- ) {
-
- $_SESSION['legacyenckey'] = Crypt::legacyDecrypt( $legacyKey, $params['password'] );
+ && $encLegacyKey = $view1->file_get_contents( 'encryption.key' )
+ ) {
+
+ $plainLegacyKey = Crypt::legacyDecrypt( $encLegacyKey, $params['password'] );
- }
-// }
+ $session->setLegacyKey( $plainLegacyKey );
+
+ }
+
+ $publicKey = Keymanager::getPublicKey( $view, $params['uid'] );
+
+ // Encrypt existing user files:
+ // This serves to upgrade old versions of the encryption
+ // app (see appinfo/spec.txt)
+ if (
+ $util->encryptAll( $publicKey, '/' . $params['uid'] . '/' . 'files', $session->getLegacyKey(), $params['password'] )
+ ) {
+
+ \OC_Log::write(
+ 'Encryption library', 'Encryption of existing files belonging to "' . $params['uid'] . '" started at login'
+ , \OC_Log::INFO
+ );
+
+ }
return true;
@@ -89,14 +107,16 @@ class Hooks {
* @param array $params keys: uid, password
*/
public static function setPassphrase( $params ) {
-
+
// Only attempt to change passphrase if server-side encryption
// is in use (client-side encryption does not have access to
// the necessary keys)
if ( Crypt::mode() == 'server' ) {
+ $session = new Session();
+
// Get existing decrypted private key
- $privateKey = $_SESSION['privateKey'];
+ $privateKey = $session->getPrivateKey();
// Encrypt private key with new user pwd as passphrase
$encryptedPrivateKey = Crypt::symmetricEncryptFileContent( $privateKey, $params['password'] );
@@ -104,9 +124,9 @@ class Hooks {
// Save private key
Keymanager::setPrivateKey( $encryptedPrivateKey );
- # NOTE: Session does not need to be updated as the
- # private key has not changed, only the passphrase
- # used to decrypt it has changed
+ // NOTE: Session does not need to be updated as the
+ // private key has not changed, only the passphrase
+ // used to decrypt it has changed
}
@@ -121,8 +141,11 @@ class Hooks {
if ( isset( $params['properties']['key'] ) ) {
- Keymanager::setFileKey( $params['path'], $params['properties']['key'] );
-
+ $view = new \OC_FilesystemView( '/' );
+ $userId = \OCP\User::getUser();
+
+ Keymanager::setFileKey( $view, $params['path'], $userId, $params['properties']['key'] );
+
} else {
\OC_Log::write(
@@ -138,6 +161,41 @@ class Hooks {
}
+ /**
+ * @brief
+ */
+ public static function postShared( $params ) {
+
+ // Delete existing catfile
+ Keymanager::deleteFileKey( );
+
+ // Generate new catfile and env keys
+ Crypt::multiKeyEncrypt( $plainContent, $publicKeys );
+
+ // Save env keys to user folders
+
+
+ }
+
+ /**
+ * @brief
+ */
+ public static function preUnshare( $params ) {
+
+ // Delete existing catfile
+
+ // Generate new catfile and env keys
+
+ // Save env keys to user folders
+ }
+
+ /**
+ * @brief
+ */
+ public static function preUnshareAll( $params ) {
+
+ trigger_error( "preUnshareAll" );
+
+ }
+
}
-
-?> \ No newline at end of file
diff --git a/apps/files_encryption/l10n/ar.php b/apps/files_encryption/l10n/ar.php
index f08585e485f..375fbd9a9a6 100644
--- a/apps/files_encryption/l10n/ar.php
+++ b/apps/files_encryption/l10n/ar.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "التشفير",
-"Exclude the following file types from encryption" => "استبعد أنواع الملفات التالية من التشفير",
"None" => "لا شيء"
);
diff --git a/apps/files_encryption/l10n/bg_BG.php b/apps/files_encryption/l10n/bg_BG.php
index 4ceee127af1..07a97f5f8a6 100644
--- a/apps/files_encryption/l10n/bg_BG.php
+++ b/apps/files_encryption/l10n/bg_BG.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "Криптиране",
-"Exclude the following file types from encryption" => "Изключване на следните файлови типове от криптирането",
"None" => "Няма"
);
diff --git a/apps/files_encryption/l10n/bn_BD.php b/apps/files_encryption/l10n/bn_BD.php
index 29c486b8ca0..43767d56518 100644
--- a/apps/files_encryption/l10n/bn_BD.php
+++ b/apps/files_encryption/l10n/bn_BD.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "সংকেতায়ন",
-"Exclude the following file types from encryption" => "সংকেতায়ন থেকে নিম্নোক্ত ধরণসমূহ বাদ দাও",
"None" => "কোনটিই নয়"
);
diff --git a/apps/files_encryption/l10n/ca.php b/apps/files_encryption/l10n/ca.php
index 56c81e747f7..1b888f7714b 100644
--- a/apps/files_encryption/l10n/ca.php
+++ b/apps/files_encryption/l10n/ca.php
@@ -4,13 +4,9 @@
"Change encryption password to login password" => "Canvia la contrasenya d'encriptació per la d'accés",
"Please check your passwords and try again." => "Comproveu les contrasenyes i proveu-ho de nou.",
"Could not change your file encryption password to your login password" => "No s'ha pogut canviar la contrasenya d'encriptació de fitxers per la d'accés",
-"Choose encryption mode:" => "Escolliu el mode d'encriptació:",
-"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Encriptació per part del client (més segura però fa impossible l'accés a les dades des de la interfície web)",
-"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Encriptació per part del servidor (permet accedir als fitxers des de la interfície web i des del client d'escriptori)",
-"None (no encryption at all)" => "Cap (sense encriptació)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "Important: quan seleccioneu un mode d'encriptació no hi ha manera de canviar-lo de nou",
-"User specific (let the user decide)" => "Específic per usuari (permet que l'usuari ho decideixi)",
"Encryption" => "Encriptatge",
-"Exclude the following file types from encryption" => "Exclou els tipus de fitxers següents de l'encriptatge",
+"File encryption is enabled." => "L'encriptació de fitxers està activada.",
+"The following file types will not be encrypted:" => "Els tipus de fitxers següents no s'encriptaran:",
+"Exclude the following file types from encryption:" => "Exclou els tipus de fitxers següents de l'encriptatge:",
"None" => "Cap"
);
diff --git a/apps/files_encryption/l10n/cs_CZ.php b/apps/files_encryption/l10n/cs_CZ.php
index 5948a9b82e8..3278f13920a 100644
--- a/apps/files_encryption/l10n/cs_CZ.php
+++ b/apps/files_encryption/l10n/cs_CZ.php
@@ -4,13 +4,9 @@
"Change encryption password to login password" => "Změnit šifrovací heslo na přihlašovací",
"Please check your passwords and try again." => "Zkontrolujte, prosím, své heslo a zkuste to znovu.",
"Could not change your file encryption password to your login password" => "Nelze změnit šifrovací heslo na přihlašovací.",
-"Choose encryption mode:" => "Vyberte režim šifrování:",
-"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Šifrování na straně klienta (nejbezpečnější ale neumožňuje vám přistupovat k souborům z webového rozhraní)",
-"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Šifrování na straně serveru (umožňuje vám přistupovat k souborům pomocí webového rozhraní i aplikací)",
-"None (no encryption at all)" => "Žádný (vůbec žádné šifrování)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "Důležité: jak si jednou vyberete režim šifrování nelze jej opětovně změnit",
-"User specific (let the user decide)" => "Definován uživatelem (umožní uživateli si vybrat)",
"Encryption" => "Šifrování",
-"Exclude the following file types from encryption" => "Při šifrování vynechat následující typy souborů",
+"File encryption is enabled." => "Šifrování je povoleno.",
+"The following file types will not be encrypted:" => "Následující typy souborů nebudou šifrovány:",
+"Exclude the following file types from encryption:" => "Vyjmout následující typy souborů ze šifrování:",
"None" => "Žádné"
);
diff --git a/apps/files_encryption/l10n/da.php b/apps/files_encryption/l10n/da.php
index d65963f46b2..c9255759cb8 100644
--- a/apps/files_encryption/l10n/da.php
+++ b/apps/files_encryption/l10n/da.php
@@ -4,13 +4,6 @@
"Change encryption password to login password" => "Udskift krypteringskode til login-adgangskode",
"Please check your passwords and try again." => "Check adgangskoder og forsøg igen.",
"Could not change your file encryption password to your login password" => "Kunne ikke udskifte krypteringskode med login-adgangskode",
-"Choose encryption mode:" => "Vælg krypteringsform:",
-"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Kryptering på klientsiden (mere sikker, men udelukker adgang til dataene fra webinterfacet)",
-"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Kryptering på serversiden (gør det muligt at tilgå filer fra webinterfacet såvel som desktopklienten)",
-"None (no encryption at all)" => "Ingen (ingen kryptering)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "Vigtigt: Når der er valgt krypteringsform, kan det ikke ændres tilbage igen.",
-"User specific (let the user decide)" => "Brugerspecifik (lad brugeren bestemme)",
"Encryption" => "Kryptering",
-"Exclude the following file types from encryption" => "Ekskluder følgende filtyper fra kryptering",
"None" => "Ingen"
);
diff --git a/apps/files_encryption/l10n/de.php b/apps/files_encryption/l10n/de.php
index e187f72ab50..c3c69e09007 100644
--- a/apps/files_encryption/l10n/de.php
+++ b/apps/files_encryption/l10n/de.php
@@ -4,13 +4,6 @@
"Change encryption password to login password" => "Ändern des Verschlüsselungspasswortes zum Anmeldepasswort",
"Please check your passwords and try again." => "Bitte überprüfen sie Ihr Passwort und versuchen Sie es erneut.",
"Could not change your file encryption password to your login password" => "Ihr Verschlüsselungspasswort konnte nicht als Anmeldepasswort gesetzt werden.",
-"Choose encryption mode:" => "Wählen Sie die Verschlüsselungsart:",
-"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Clientseitige Verschlüsselung (am sichersten, aber macht es unmöglich auf ihre Daten über das Webinterface zuzugreifen)",
-"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Serverseitige Verschlüsselung (erlaubt es ihnen auf ihre Daten über das Webinterface und den Desktop-Client zuzugreifen)",
-"None (no encryption at all)" => "Keine (ohne Verschlüsselung)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "Wichtig: Sobald sie eine Verschlüsselungsmethode gewählt haben, können Sie diese nicht ändern!",
-"User specific (let the user decide)" => "Benutzerspezifisch (der Benutzer kann entscheiden)",
"Encryption" => "Verschlüsselung",
-"Exclude the following file types from encryption" => "Die folgenden Dateitypen von der Verschlüsselung ausnehmen",
"None" => "Keine"
);
diff --git a/apps/files_encryption/l10n/de_DE.php b/apps/files_encryption/l10n/de_DE.php
index be4369ebf09..465af23efdd 100644
--- a/apps/files_encryption/l10n/de_DE.php
+++ b/apps/files_encryption/l10n/de_DE.php
@@ -4,13 +4,9 @@
"Change encryption password to login password" => "Ändern des Verschlüsselungspasswortes zum Anmeldepasswort",
"Please check your passwords and try again." => "Bitte überprüfen sie Ihr Passwort und versuchen Sie es erneut.",
"Could not change your file encryption password to your login password" => "Ihr Verschlüsselungspasswort konnte nicht als Anmeldepasswort gesetzt werden.",
-"Choose encryption mode:" => "Wählen Sie die Verschlüsselungsmethode:",
-"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Clientseitige Verschlüsselung (am sichersten, aber macht es unmöglich auf ihre Daten über das Webinterface zuzugreifen)",
-"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Serverseitige Verschlüsselung (erlaubt es ihnen auf ihre Daten über das Webinterface und den Desktop-Client zuzugreifen)",
-"None (no encryption at all)" => "Keine (ohne Verschlüsselung)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "Wichtig: Sobald sie eine Verschlüsselungsmethode gewählt haben, können Sie diese nicht ändern!",
-"User specific (let the user decide)" => "Benutzerspezifisch (der Benutzer kann entscheiden)",
"Encryption" => "Verschlüsselung",
-"Exclude the following file types from encryption" => "Die folgenden Dateitypen von der Verschlüsselung ausnehmen",
+"File encryption is enabled." => "Datei-Verschlüsselung ist aktiviert",
+"The following file types will not be encrypted:" => "Die folgenden Datei-Typen werden nicht verschlüsselt:",
+"Exclude the following file types from encryption:" => "Die folgenden Datei-Typen von der Verschlüsselung ausnehmen:",
"None" => "Keine"
);
diff --git a/apps/files_encryption/l10n/el.php b/apps/files_encryption/l10n/el.php
index 50b812c82df..94bb68bcbca 100644
--- a/apps/files_encryption/l10n/el.php
+++ b/apps/files_encryption/l10n/el.php
@@ -2,8 +2,6 @@
"Change encryption password to login password" => "Αλλαγή συνθηματικού κρυπτογράφησης στο συνθηματικό εισόδου ",
"Please check your passwords and try again." => "Παρακαλώ ελέγξτε το συνθηματικό σας και προσπαθήστε ξανά.",
"Could not change your file encryption password to your login password" => "Αδυναμία αλλαγής συνθηματικού κρυπτογράφησης αρχείων στο συνθηματικό εισόδου σας",
-"Choose encryption mode:" => "Επιλογή κατάστασης κρυπτογράφησης:",
"Encryption" => "Κρυπτογράφηση",
-"Exclude the following file types from encryption" => "Εξαίρεση των παρακάτω τύπων αρχείων από την κρυπτογράφηση",
"None" => "Καμία"
);
diff --git a/apps/files_encryption/l10n/eo.php b/apps/files_encryption/l10n/eo.php
index c6f82dcb8a0..50847062c3b 100644
--- a/apps/files_encryption/l10n/eo.php
+++ b/apps/files_encryption/l10n/eo.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "Ĉifrado",
-"Exclude the following file types from encryption" => "Malinkluzivigi la jenajn dosiertipojn el ĉifrado",
"None" => "Nenio"
);
diff --git a/apps/files_encryption/l10n/es.php b/apps/files_encryption/l10n/es.php
index 2c6b650960a..73b5f273d1f 100644
--- a/apps/files_encryption/l10n/es.php
+++ b/apps/files_encryption/l10n/es.php
@@ -4,13 +4,9 @@
"Change encryption password to login password" => "Cambie la clave de cifrado para su contraseña de inicio de sesión",
"Please check your passwords and try again." => "Por favor revise su contraseña e intentelo de nuevo.",
"Could not change your file encryption password to your login password" => "No se pudo cambiar la contraseña de cifrado de archivos de su contraseña de inicio de sesión",
-"Choose encryption mode:" => "Elegir el modo de cifrado:",
-"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Cifrado del lado del Cliente ( es el más seguro, pero hace que sea imposible acceder a sus datos desde la interfaz web)",
-"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Cifrado del lado del Servidor (le permite acceder a sus archivos desde la interfaz web y el cliente de escritorio)",
-"None (no encryption at all)" => "Ninguno (ningún cifrado en absoluto)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "Importante: Una vez que haya seleccionado un modo de cifrado no existe forma de cambiarlo de nuevo",
-"User specific (let the user decide)" => "Específico del usuario (dejar que el usuario decida)",
"Encryption" => "Cifrado",
-"Exclude the following file types from encryption" => "Excluir del cifrado los siguientes tipos de archivo",
+"File encryption is enabled." => "La encriptacion de archivo esta activada.",
+"The following file types will not be encrypted:" => "Los siguientes tipos de archivo no seran encriptados:",
+"Exclude the following file types from encryption:" => "Excluir los siguientes tipos de archivo de la encriptacion:",
"None" => "Ninguno"
);
diff --git a/apps/files_encryption/l10n/es_AR.php b/apps/files_encryption/l10n/es_AR.php
index 5cf0b8e4adc..8160db10df6 100644
--- a/apps/files_encryption/l10n/es_AR.php
+++ b/apps/files_encryption/l10n/es_AR.php
@@ -4,13 +4,6 @@
"Change encryption password to login password" => "Cambiá la clave de encriptado para tu contraseña de inicio de sesión",
"Please check your passwords and try again." => "Por favor, revisá tu contraseña e intentalo de nuevo.",
"Could not change your file encryption password to your login password" => "No se pudo cambiar la contraseña de encriptación de archivos de tu contraseña de inicio de sesión",
-"Choose encryption mode:" => "Elegir el modo de encriptación:",
-"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Encriptación por parte del cliente (es el modo más seguro, pero hace que sea imposible acceder a tus datos desde la interfaz web)",
-"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Encriptación por parte del servidor (te permite acceder a tus archivos desde la interfaz web y desde el cliente de escritorio)",
-"None (no encryption at all)" => "Ninguno (ninguna encriptación en absoluto)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "Importante: Una vez que haya seleccionado un modo de encriptación, no existe forma de cambiarlo nuevamente",
-"User specific (let the user decide)" => "Específico por usuario (deja que el usuario decida)",
"Encryption" => "Encriptación",
-"Exclude the following file types from encryption" => "Exceptuar de la encriptación los siguientes tipos de archivo",
"None" => "Ninguno"
);
diff --git a/apps/files_encryption/l10n/et_EE.php b/apps/files_encryption/l10n/et_EE.php
index 0c0ef231145..07f1a48fb0b 100644
--- a/apps/files_encryption/l10n/et_EE.php
+++ b/apps/files_encryption/l10n/et_EE.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "Krüpteerimine",
-"Exclude the following file types from encryption" => "Järgnevaid failitüüpe ära krüpteeri",
"None" => "Pole"
);
diff --git a/apps/files_encryption/l10n/eu.php b/apps/files_encryption/l10n/eu.php
index e7372937e4a..a2368816f52 100644
--- a/apps/files_encryption/l10n/eu.php
+++ b/apps/files_encryption/l10n/eu.php
@@ -1,9 +1,5 @@
<?php $TRANSLATIONS = array(
"Please check your passwords and try again." => "Mesedez egiaztatu zure pasahitza eta saia zaitez berriro:",
-"Choose encryption mode:" => "Hautatu enkriptazio modua:",
-"None (no encryption at all)" => "Bat ere ez (enkriptaziorik gabe)",
-"User specific (let the user decide)" => "Erabiltzaileak zehaztuta (utzi erabiltzaileari hautatzen)",
"Encryption" => "Enkriptazioa",
-"Exclude the following file types from encryption" => "Ez enkriptatu hurrengo fitxategi motak",
"None" => "Bat ere ez"
);
diff --git a/apps/files_encryption/l10n/fa.php b/apps/files_encryption/l10n/fa.php
index 0cdee74f5a9..2186c9025b4 100644
--- a/apps/files_encryption/l10n/fa.php
+++ b/apps/files_encryption/l10n/fa.php
@@ -1,5 +1,5 @@
<?php $TRANSLATIONS = array(
+"Please check your passwords and try again." => "لطفا گذرواژه خود را بررسی کنید و دوباره امتحان کنید.",
"Encryption" => "رمزگذاری",
-"Exclude the following file types from encryption" => "نادیده گرفتن فایل های زیر برای رمز گذاری",
"None" => "هیچ‌کدام"
);
diff --git a/apps/files_encryption/l10n/fi_FI.php b/apps/files_encryption/l10n/fi_FI.php
index 33756c2831f..8a9dd30e670 100644
--- a/apps/files_encryption/l10n/fi_FI.php
+++ b/apps/files_encryption/l10n/fi_FI.php
@@ -1,9 +1,5 @@
<?php $TRANSLATIONS = array(
"Please check your passwords and try again." => "Tarkista salasanasi ja yritä uudelleen.",
-"Choose encryption mode:" => "Choose encryption mode:",
-"None (no encryption at all)" => "Ei mitään (ei lainkaan salausta)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "Tärkeä huomautus: Kun olet valinnut salaustatavan, sitä ei ole mahdollista vaihtaa",
"Encryption" => "Salaus",
-"Exclude the following file types from encryption" => "Jätä seuraavat tiedostotyypit salaamatta",
"None" => "Ei mitään"
);
diff --git a/apps/files_encryption/l10n/fr.php b/apps/files_encryption/l10n/fr.php
index 41e37134d4e..7d431e6e462 100644
--- a/apps/files_encryption/l10n/fr.php
+++ b/apps/files_encryption/l10n/fr.php
@@ -4,13 +4,9 @@
"Change encryption password to login password" => "Convertir le mot de passe de chiffrement en mot de passe de connexion",
"Please check your passwords and try again." => "Veuillez vérifier vos mots de passe et réessayer.",
"Could not change your file encryption password to your login password" => "Impossible de convertir votre mot de passe de chiffrement en mot de passe de connexion",
-"Choose encryption mode:" => "Choix du type de chiffrement :",
-"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Chiffrement côté client (plus sécurisé, mais ne permet pas l'accès à vos données depuis l'interface web)",
-"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Chiffrement côté serveur (vous permet d'accéder à vos fichiers depuis l'interface web et depuis le client de synchronisation)",
-"None (no encryption at all)" => "Aucun (pas de chiffrement)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "Important : Une fois le mode de chiffrement choisi, il est impossible de revenir en arrière",
-"User specific (let the user decide)" => "Propre à l'utilisateur (laisse le choix à l'utilisateur)",
"Encryption" => "Chiffrement",
-"Exclude the following file types from encryption" => "Ne pas chiffrer les fichiers dont les types sont les suivants",
+"File encryption is enabled." => "Le chiffrement des fichiers est activé",
+"The following file types will not be encrypted:" => "Les fichiers de types suivants ne seront pas chiffrés :",
+"Exclude the following file types from encryption:" => "Ne pas chiffrer les fichiers dont les types sont les suivants :",
"None" => "Aucun"
);
diff --git a/apps/files_encryption/l10n/gl.php b/apps/files_encryption/l10n/gl.php
index 42fcfce1cc0..b240990f3d5 100644
--- a/apps/files_encryption/l10n/gl.php
+++ b/apps/files_encryption/l10n/gl.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "Cifrado",
-"Exclude the following file types from encryption" => "Excluír os seguintes tipos de ficheiro do cifrado",
"None" => "Nada"
);
diff --git a/apps/files_encryption/l10n/he.php b/apps/files_encryption/l10n/he.php
index 9adb6d2b92a..cbb74bfee9a 100644
--- a/apps/files_encryption/l10n/he.php
+++ b/apps/files_encryption/l10n/he.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "הצפנה",
-"Exclude the following file types from encryption" => "הוצא את סוגי הקבצים הבאים מהצפנה",
"None" => "כלום"
);
diff --git a/apps/files_encryption/l10n/hu_HU.php b/apps/files_encryption/l10n/hu_HU.php
index e32de01f973..fa62ae75fb6 100644
--- a/apps/files_encryption/l10n/hu_HU.php
+++ b/apps/files_encryption/l10n/hu_HU.php
@@ -4,13 +4,6 @@
"Change encryption password to login password" => "Titkosítási jelszó módosítása a bejelentkezési jelszóra",
"Please check your passwords and try again." => "Kérjük, ellenőrizze a jelszavait, és próbálja meg újra.",
"Could not change your file encryption password to your login password" => "Nem módosíthatja a fájltitkosítási jelszavát a bejelentkezési jelszavára",
-"Choose encryption mode:" => "Válassza ki a titkosítási módot:",
-"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Kliens oldali titkosítás (biztonságosabb, de lehetetlenné teszi a fájlok elérését a böngészőből)",
-"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Kiszolgáló oldali titkosítás (lehetővé teszi a fájlok elérését úgy böngészőből mint az asztali kliensből)",
-"None (no encryption at all)" => "Semmi (semmilyen titkosítás)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "Fontos: Ha egyszer kiválasztotta a titkosítás módját, többé már nem lehet megváltoztatni",
-"User specific (let the user decide)" => "Felhasználó specifikus (a felhasználó választhat)",
"Encryption" => "Titkosítás",
-"Exclude the following file types from encryption" => "A következő fájltípusok kizárása a titkosításból",
"None" => "Egyik sem"
);
diff --git a/apps/files_encryption/l10n/id.php b/apps/files_encryption/l10n/id.php
index 20f33b87829..3f9a6c7d07f 100644
--- a/apps/files_encryption/l10n/id.php
+++ b/apps/files_encryption/l10n/id.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "enkripsi",
-"Exclude the following file types from encryption" => "pengecualian untuk tipe file berikut dari enkripsi",
"None" => "tidak ada"
);
diff --git a/apps/files_encryption/l10n/is.php b/apps/files_encryption/l10n/is.php
index a2559cf2b76..bd964185c45 100644
--- a/apps/files_encryption/l10n/is.php
+++ b/apps/files_encryption/l10n/is.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "Dulkóðun",
-"Exclude the following file types from encryption" => "Undanskilja eftirfarandi skráartegundir frá dulkóðun",
"None" => "Ekkert"
);
diff --git a/apps/files_encryption/l10n/it.php b/apps/files_encryption/l10n/it.php
index 0c394564e0f..ffa20b718d9 100644
--- a/apps/files_encryption/l10n/it.php
+++ b/apps/files_encryption/l10n/it.php
@@ -4,13 +4,9 @@
"Change encryption password to login password" => "Converti la password di cifratura nella password di accesso",
"Please check your passwords and try again." => "Controlla la password e prova ancora.",
"Could not change your file encryption password to your login password" => "Impossibile convertire la password di cifratura nella password di accesso",
-"Choose encryption mode:" => "Scegli la modalità di cifratura.",
-"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Cifratura lato client (più sicura ma rende impossibile accedere ai propri dati dall'interfaccia web)",
-"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Cifratura lato server (ti consente di accedere ai tuoi file dall'interfaccia web e dal client desktop)",
-"None (no encryption at all)" => "Nessuna (senza alcuna cifratura)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "Importante: una volta selezionata la modalità di cifratura non sarà possibile tornare indietro",
-"User specific (let the user decide)" => "Specificato dall'utente (lascia decidere all'utente)",
"Encryption" => "Cifratura",
-"Exclude the following file types from encryption" => "Escludi i seguenti tipi di file dalla cifratura",
+"File encryption is enabled." => "La cifratura dei file è abilitata.",
+"The following file types will not be encrypted:" => "I seguenti tipi di file non saranno cifrati:",
+"Exclude the following file types from encryption:" => "Escludi i seguenti tipi di file dalla cifratura:",
"None" => "Nessuna"
);
diff --git a/apps/files_encryption/l10n/ja_JP.php b/apps/files_encryption/l10n/ja_JP.php
index 4100908e00c..b7aeb8d8348 100644
--- a/apps/files_encryption/l10n/ja_JP.php
+++ b/apps/files_encryption/l10n/ja_JP.php
@@ -4,13 +4,9 @@
"Change encryption password to login password" => "暗号化パスワードをログインパスワードに変更",
"Please check your passwords and try again." => "パスワードを確認してもう一度行なってください。",
"Could not change your file encryption password to your login password" => "ファイル暗号化パスワードをログインパスワードに変更できませんでした。",
-"Choose encryption mode:" => "暗号化モードを選択:",
-"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "クライアントサイドの暗号化(最もセキュアですが、WEBインターフェースからデータにアクセスできなくなります)",
-"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "サーバサイド暗号化(WEBインターフェースおよびデスクトップクライアントからファイルにアクセスすることができます)",
-"None (no encryption at all)" => "暗号化無し(何も暗号化しません)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "重要: 一度暗号化を選択してしまうと、もとに戻す方法はありません",
-"User specific (let the user decide)" => "ユーザ指定(ユーザが選べるようにする)",
"Encryption" => "暗号化",
-"Exclude the following file types from encryption" => "暗号化から除外するファイルタイプ",
+"File encryption is enabled." => "ファイルの暗号化は有効です。",
+"The following file types will not be encrypted:" => "次のファイルタイプは暗号化されません:",
+"Exclude the following file types from encryption:" => "次のファイルタイプを暗号化から除外:",
"None" => "なし"
);
diff --git a/apps/files_encryption/l10n/ko.php b/apps/files_encryption/l10n/ko.php
index 901c41e12ec..625906d89d6 100644
--- a/apps/files_encryption/l10n/ko.php
+++ b/apps/files_encryption/l10n/ko.php
@@ -4,13 +4,6 @@
"Change encryption password to login password" => "암호화 암호를 로그인 암호로 변경",
"Please check your passwords and try again." => "암호를 확인한 다음 다시 시도하십시오.",
"Could not change your file encryption password to your login password" => "암호화 암호를 로그인 암호로 변경할 수 없습니다",
-"Choose encryption mode:" => "암호화 모드 선택:",
-"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "클라이언트 암호화 (안전하지만 웹에서 데이터에 접근할 수 없음)",
-"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "서버 암호화 (웹 및 데스크톱 클라이언트에서 데이터에 접근할 수 있음)",
-"None (no encryption at all)" => "없음 (암호화하지 않음)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "알림: 암호화 모드를 선택하면 다른 것으로 변경할 수 없습니다",
-"User specific (let the user decide)" => "사용자 지정 (사용자별 설정)",
"Encryption" => "암호화",
-"Exclude the following file types from encryption" => "다음 파일 형식은 암호화하지 않음",
"None" => "없음"
);
diff --git a/apps/files_encryption/l10n/ku_IQ.php b/apps/files_encryption/l10n/ku_IQ.php
index 06bb9b93251..02c030014fa 100644
--- a/apps/files_encryption/l10n/ku_IQ.php
+++ b/apps/files_encryption/l10n/ku_IQ.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "نهێنیکردن",
-"Exclude the following file types from encryption" => "به‌ربه‌ست کردنی ئه‌م جۆره‌ په‌ڕگانه له‌ نهێنیکردن",
"None" => "هیچ"
);
diff --git a/apps/files_encryption/l10n/lt_LT.php b/apps/files_encryption/l10n/lt_LT.php
index 22cbe7a4ffa..67769c8f365 100644
--- a/apps/files_encryption/l10n/lt_LT.php
+++ b/apps/files_encryption/l10n/lt_LT.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "Šifravimas",
-"Exclude the following file types from encryption" => "Nešifruoti pasirinkto tipo failų",
"None" => "Nieko"
);
diff --git a/apps/files_encryption/l10n/lv.php b/apps/files_encryption/l10n/lv.php
new file mode 100644
index 00000000000..1aae1377516
--- /dev/null
+++ b/apps/files_encryption/l10n/lv.php
@@ -0,0 +1,12 @@
+<?php $TRANSLATIONS = array(
+"Please switch to your ownCloud client and change your encryption password to complete the conversion." => "Lūdzu, pārslēdzieties uz savu ownCloud klientu un maniet savu šifrēšanas paroli, lai pabeigtu pārveidošanu.",
+"switched to client side encryption" => "Pārslēdzās uz klienta puses šifrēšanu",
+"Change encryption password to login password" => "Mainīt šifrēšanas paroli uz ierakstīšanās paroli",
+"Please check your passwords and try again." => "Lūdzu, pārbaudiet savas paroles un mēģiniet vēlreiz.",
+"Could not change your file encryption password to your login password" => "Nevarēja mainīt datņu šifrēšanas paroli uz ierakstīšanās paroli",
+"Encryption" => "Šifrēšana",
+"File encryption is enabled." => "Datņu šifrēšana ir aktivēta.",
+"The following file types will not be encrypted:" => "Sekojošās datnes netiks šifrētas:",
+"Exclude the following file types from encryption:" => "Sekojošos datņu tipus izslēgt no šifrēšanas:",
+"None" => "Nav"
+);
diff --git a/apps/files_encryption/l10n/mk.php b/apps/files_encryption/l10n/mk.php
index 7ccf8ac2d5b..513606fadc3 100644
--- a/apps/files_encryption/l10n/mk.php
+++ b/apps/files_encryption/l10n/mk.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "Енкрипција",
-"Exclude the following file types from encryption" => "Исклучи ги следните типови на датотеки од енкрипција",
"None" => "Ништо"
);
diff --git a/apps/files_encryption/l10n/nb_NO.php b/apps/files_encryption/l10n/nb_NO.php
index 2ec6670e928..e52ecb868af 100644
--- a/apps/files_encryption/l10n/nb_NO.php
+++ b/apps/files_encryption/l10n/nb_NO.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "Kryptering",
-"Exclude the following file types from encryption" => "Ekskluder følgende filer fra kryptering",
"None" => "Ingen"
);
diff --git a/apps/files_encryption/l10n/nl.php b/apps/files_encryption/l10n/nl.php
index 02cb0d970f2..c434330049b 100644
--- a/apps/files_encryption/l10n/nl.php
+++ b/apps/files_encryption/l10n/nl.php
@@ -1,12 +1,12 @@
<?php $TRANSLATIONS = array(
+"Please switch to your ownCloud client and change your encryption password to complete the conversion." => "Schakel om naar uw eigen ownCloud client en wijzig uw versleutelwachtwoord om de conversie af te ronden.",
"switched to client side encryption" => "overgeschakeld naar client side encryptie",
"Change encryption password to login password" => "Verander encryptie wachtwoord naar login wachtwoord",
"Please check your passwords and try again." => "Controleer uw wachtwoorden en probeer het opnieuw.",
"Could not change your file encryption password to your login password" => "Kon het bestandsencryptie wachtwoord niet veranderen naar het login wachtwoord",
-"Choose encryption mode:" => "Kies encryptie mode:",
-"None (no encryption at all)" => "Geen (zonder encryptie)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "Belangrijk: Zodra er voor een encryptie mode is gekozen kan deze niet meer worden gewijzigd.",
"Encryption" => "Versleuteling",
-"Exclude the following file types from encryption" => "Versleutel de volgende bestand types niet",
+"File encryption is enabled." => "Bestandsversleuteling geactiveerd.",
+"The following file types will not be encrypted:" => "De volgende bestandstypen zullen niet worden versleuteld:",
+"Exclude the following file types from encryption:" => "Sluit de volgende bestandstypen uit van versleuteling:",
"None" => "Geen"
);
diff --git a/apps/files_encryption/l10n/pl.php b/apps/files_encryption/l10n/pl.php
index 896086108ec..505e8659f08 100644
--- a/apps/files_encryption/l10n/pl.php
+++ b/apps/files_encryption/l10n/pl.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "Szyfrowanie",
-"Exclude the following file types from encryption" => "Wyłącz następujące typy plików z szyfrowania",
"None" => "Brak"
);
diff --git a/apps/files_encryption/l10n/pt_BR.php b/apps/files_encryption/l10n/pt_BR.php
index 8bd6492a8f7..356419e0e7f 100644
--- a/apps/files_encryption/l10n/pt_BR.php
+++ b/apps/files_encryption/l10n/pt_BR.php
@@ -4,13 +4,6 @@
"Change encryption password to login password" => "Mudar senha de criptografia para senha de login",
"Please check your passwords and try again." => "Por favor, verifique suas senhas e tente novamente.",
"Could not change your file encryption password to your login password" => "Não foi possível mudar sua senha de criptografia de arquivos para sua senha de login",
-"Choose encryption mode:" => "Escolha o modo de criptografia:",
-"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Criptografia por parte do cliente (mais segura, mas torna impossível acessar seus dados a partir da interface web)",
-"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Criptografia por parte do servidor (permite que você acesse seus arquivos da interface web e do cliente desktop)",
-"None (no encryption at all)" => "Nenhuma (sem qualquer criptografia)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "Importante: Uma vez que tiver escolhido um modo de criptografia, não há um meio de voltar atrás",
-"User specific (let the user decide)" => "Específico por usuário (deixa o usuário decidir)",
"Encryption" => "Criptografia",
-"Exclude the following file types from encryption" => "Excluir os seguintes tipos de arquivo da criptografia",
"None" => "Nenhuma"
);
diff --git a/apps/files_encryption/l10n/pt_PT.php b/apps/files_encryption/l10n/pt_PT.php
index b6eedcdc509..4dac4d2273b 100644
--- a/apps/files_encryption/l10n/pt_PT.php
+++ b/apps/files_encryption/l10n/pt_PT.php
@@ -4,13 +4,6 @@
"Change encryption password to login password" => "Alterar a password de encriptação para a password de login",
"Please check your passwords and try again." => "Por favor verifique as suas paswords e tente de novo.",
"Could not change your file encryption password to your login password" => "Não foi possível alterar a password de encriptação de ficheiros para a sua password de login",
-"Choose encryption mode:" => "Escolha o método de encriptação",
-"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Encriptação do lado do cliente (mais seguro mas torna possível o acesso aos dados através do interface web)",
-"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Encriptação do lado do servidor (permite o acesso aos seus ficheiros através do interface web e do cliente de sincronização)",
-"None (no encryption at all)" => "Nenhuma (sem encriptação)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "Importante: Uma vez escolhido o modo de encriptação, não existe maneira de o alterar!",
-"User specific (let the user decide)" => "Escolhido pelo utilizador",
"Encryption" => "Encriptação",
-"Exclude the following file types from encryption" => "Excluir da encriptação os seguintes tipo de ficheiros",
"None" => "Nenhum"
);
diff --git a/apps/files_encryption/l10n/ro.php b/apps/files_encryption/l10n/ro.php
index f958692dd8d..9a3acc18dd3 100644
--- a/apps/files_encryption/l10n/ro.php
+++ b/apps/files_encryption/l10n/ro.php
@@ -4,13 +4,6 @@
"Change encryption password to login password" => "Schimbă parola de ecriptare în parolă de acces",
"Please check your passwords and try again." => "Verifică te rog parolele și înceracă din nou.",
"Could not change your file encryption password to your login password" => "Nu s-a putut schimba parola de encripție a fișierelor ca parolă de acces",
-"Choose encryption mode:" => "Alege tipul de ecripție",
-"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Encripție locală (cea mai sigură, dar face ca datele să nu mai fie accesibile din interfața web)",
-"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Encripție pe server (permite să accesezi datele tale din interfața web și din clientul pentru calculator)",
-"None (no encryption at all)" => "Fără (nici un fel de ecriptare)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "Important: Din moment ce ai setat un mod de encriptare, nu mai există metode de a-l schimba înapoi",
-"User specific (let the user decide)" => "Spefic fiecărui utilizator (lasă utilizatorul să decidă)",
"Encryption" => "Încriptare",
-"Exclude the following file types from encryption" => "Exclude următoarele tipuri de fișiere de la încriptare",
"None" => "Niciuna"
);
diff --git a/apps/files_encryption/l10n/ru.php b/apps/files_encryption/l10n/ru.php
index 14115c12683..651885fe022 100644
--- a/apps/files_encryption/l10n/ru.php
+++ b/apps/files_encryption/l10n/ru.php
@@ -1,5 +1,12 @@
<?php $TRANSLATIONS = array(
+"Please switch to your ownCloud client and change your encryption password to complete the conversion." => "Пожалуйста переключитесь на Ваш клиент ownCloud и поменяйте пароль шиврования для завершения преобразования.",
+"switched to client side encryption" => "переключён на шифрование со стороны клиента",
+"Change encryption password to login password" => "Изменить пароль шифрования для пароля входа",
+"Please check your passwords and try again." => "Пожалуйста проверьте пароли и попробуйте снова.",
+"Could not change your file encryption password to your login password" => "Невозможно изменить Ваш пароль файла шифрования для пароля входа",
"Encryption" => "Шифрование",
-"Exclude the following file types from encryption" => "Исключить шифрование следующих типов файлов",
+"File encryption is enabled." => "Шифрование файла включено.",
+"The following file types will not be encrypted:" => "Следующие типы файлов не будут зашифрованы:",
+"Exclude the following file types from encryption:" => "Исключить следующие типы файлов из шифрованных:",
"None" => "Ничего"
);
diff --git a/apps/files_encryption/l10n/ru_RU.php b/apps/files_encryption/l10n/ru_RU.php
index 1149ac64f3e..dbbb22ed9cf 100644
--- a/apps/files_encryption/l10n/ru_RU.php
+++ b/apps/files_encryption/l10n/ru_RU.php
@@ -2,13 +2,6 @@
"Please switch to your ownCloud client and change your encryption password to complete the conversion." => "Пожалуйста, переключитесь на ownCloud-клиент и измените Ваш пароль шифрования для завершения конвертации.",
"switched to client side encryption" => "переключено на шифрование на клиентской стороне",
"Please check your passwords and try again." => "Пожалуйста, проверьте Ваш пароль и попробуйте снова",
-"Choose encryption mode:" => "Выберите способ шифрования:",
-"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Шифрование на стороне клиента (наиболее безопасно, но делает невозможным получение доступа к Вашим данным по вэб-интерфейсу)",
-"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Шифрование на стороне сервера (позволяет Вам получить доступ к Вашим файлам по вэб-интерфейсу и десктопному клиенту)",
-"None (no encryption at all)" => "Нет (шифрование полностью отсутствует)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "Важно: Невозможно будет изменить выбранный способ шифрования",
-"User specific (let the user decide)" => "Специфика пользователя (позволено решить пользователю)",
"Encryption" => "Шифрование",
-"Exclude the following file types from encryption" => "Исключите следующие типы файлов из шифрования",
"None" => "Ни один"
);
diff --git a/apps/files_encryption/l10n/si_LK.php b/apps/files_encryption/l10n/si_LK.php
index 2d61bec45b8..d9cec4b7220 100644
--- a/apps/files_encryption/l10n/si_LK.php
+++ b/apps/files_encryption/l10n/si_LK.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "ගුප්ත කේතනය",
-"Exclude the following file types from encryption" => "මෙම ගොනු වර්ග ගුප්ත කේතනය කිරීමෙන් බැහැරව තබන්න",
"None" => "කිසිවක් නැත"
);
diff --git a/apps/files_encryption/l10n/sk_SK.php b/apps/files_encryption/l10n/sk_SK.php
index 355b45a4ce2..dc2907e704f 100644
--- a/apps/files_encryption/l10n/sk_SK.php
+++ b/apps/files_encryption/l10n/sk_SK.php
@@ -4,13 +4,9 @@
"Change encryption password to login password" => "Zmeniť šifrovacie heslo na prihlasovacie",
"Please check your passwords and try again." => "Skontrolujte si heslo a skúste to znovu.",
"Could not change your file encryption password to your login password" => "Nie je možné zmeniť šifrovacie heslo na prihlasovacie",
-"Choose encryption mode:" => "Vyberte režim šifrovania:",
-"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Šifrovanie prostredníctvom klienta (najbezpečnejšia voľba, neumožňuje však prístup k súborom z webového rozhrania)",
-"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Šifrovanie na serveri (umožňuje pristupovať k súborom z webového rozhrania a desktopového klienta)",
-"None (no encryption at all)" => "Žiadne (žiadne šifrovanie)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "Dôležité: ak si zvolíte režim šifrovania, nie je možné ho znovu zrušiť",
-"User specific (let the user decide)" => "Definovaný používateľom (umožňuje používateľovi vybrať si)",
"Encryption" => "Šifrovanie",
-"Exclude the following file types from encryption" => "Vynechať nasledujúce súbory pri šifrovaní",
+"File encryption is enabled." => "Kryptovanie súborov nastavené.",
+"The following file types will not be encrypted:" => "Uvedené typy súborov nebudú kryptované:",
+"Exclude the following file types from encryption:" => "Nekryptovať uvedené typy súborov",
"None" => "Žiadne"
);
diff --git a/apps/files_encryption/l10n/sl.php b/apps/files_encryption/l10n/sl.php
index db963ef2f8d..45272f1ee06 100644
--- a/apps/files_encryption/l10n/sl.php
+++ b/apps/files_encryption/l10n/sl.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "Šifriranje",
-"Exclude the following file types from encryption" => "Navedene vrste datotek naj ne bodo šifrirane",
"None" => "Brez"
);
diff --git a/apps/files_encryption/l10n/sr.php b/apps/files_encryption/l10n/sr.php
index 198bcc94ef9..91f7fc62a90 100644
--- a/apps/files_encryption/l10n/sr.php
+++ b/apps/files_encryption/l10n/sr.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "Шифровање",
-"Exclude the following file types from encryption" => "Не шифруј следеће типове датотека",
"None" => "Ништа"
);
diff --git a/apps/files_encryption/l10n/sv.php b/apps/files_encryption/l10n/sv.php
index 9b6ce141782..e5294974e4e 100644
--- a/apps/files_encryption/l10n/sv.php
+++ b/apps/files_encryption/l10n/sv.php
@@ -4,13 +4,9 @@
"Change encryption password to login password" => "Ändra krypteringslösenord till loginlösenord",
"Please check your passwords and try again." => "Kontrollera dina lösenord och försök igen.",
"Could not change your file encryption password to your login password" => "Kunde inte ändra ditt filkrypteringslösenord till ditt loginlösenord",
-"Choose encryption mode:" => "Välj krypteringsläge:",
-"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "Kryptering på klientsidan (säkraste men gör det omöjligt att komma åt dina filer med en webbläsare)",
-"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "Kryptering på serversidan (kan komma åt dina filer från webbläsare och datorklient)",
-"None (no encryption at all)" => "Ingen (ingen kryptering alls)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "Viktigt: När du har valt ett krypteringsläge finns det inget sätt att ändra tillbaka",
-"User specific (let the user decide)" => "Användarspecifik (låter användaren bestämma)",
"Encryption" => "Kryptering",
-"Exclude the following file types from encryption" => "Exkludera följande filtyper från kryptering",
+"File encryption is enabled." => "Filkryptering är aktiverat.",
+"The following file types will not be encrypted:" => "Följande filtyper kommer inte att krypteras:",
+"Exclude the following file types from encryption:" => "Exkludera följande filtyper från kryptering:",
"None" => "Ingen"
);
diff --git a/apps/files_encryption/l10n/ta_LK.php b/apps/files_encryption/l10n/ta_LK.php
index aab628b5519..152e631d0fc 100644
--- a/apps/files_encryption/l10n/ta_LK.php
+++ b/apps/files_encryption/l10n/ta_LK.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "மறைக்குறியீடு",
-"Exclude the following file types from encryption" => "மறைக்குறியாக்கலில் பின்வரும் கோப்பு வகைகளை நீக்கவும்",
"None" => "ஒன்றுமில்லை"
);
diff --git a/apps/files_encryption/l10n/th_TH.php b/apps/files_encryption/l10n/th_TH.php
index f8c19456ab3..28d9e30864f 100644
--- a/apps/files_encryption/l10n/th_TH.php
+++ b/apps/files_encryption/l10n/th_TH.php
@@ -4,13 +4,6 @@
"Change encryption password to login password" => "เปลี่ยนรหัสผ่านสำหรับเข้ารหัสไปเป็นรหัสผ่านสำหรับการเข้าสู่ระบบ",
"Please check your passwords and try again." => "กรุณาตรวจสอบรหัสผ่านของคุณแล้วลองใหม่อีกครั้ง",
"Could not change your file encryption password to your login password" => "ไม่สามารถเปลี่ยนรหัสผ่านสำหรับการเข้ารหัสไฟล์ของคุณไปเป็นรหัสผ่านสำหรับการเข้าสู่ระบบของคุณได้",
-"Choose encryption mode:" => "เลือกรูปแบบการเข้ารหัส:",
-"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "การเข้ารหัสด้วยโปรแกรมไคลเอนต์ (ปลอดภัยที่สุด แต่จะทำให้คุณไม่สามารถเข้าถึงข้อมูลต่างๆจากหน้าจอเว็บไซต์ได้)",
-"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "การเข้ารหัสจากทางฝั่งเซิร์ฟเวอร์ (อนุญาตให้คุณเข้าถึงไฟล์ของคุณจากหน้าจอเว็บไซต์ และโปรแกรมไคลเอนต์จากเครื่องเดสก์ท็อปได้)",
-"None (no encryption at all)" => "ไม่ต้อง (ไม่มีการเข้ารหัสเลย)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "ข้อความสำคัญ: หลังจากที่คุณได้เลือกรูปแบบการเข้ารหัสแล้ว จะไม่สามารถเปลี่ยนกลับมาใหม่ได้อีก",
-"User specific (let the user decide)" => "ให้ผู้ใช้งานเลือกเอง (ปล่อยให้ผู้ใช้งานตัดสินใจเอง)",
"Encryption" => "การเข้ารหัส",
-"Exclude the following file types from encryption" => "ไม่ต้องรวมชนิดของไฟล์ดังต่อไปนี้จากการเข้ารหัส",
"None" => "ไม่ต้อง"
);
diff --git a/apps/files_encryption/l10n/tr.php b/apps/files_encryption/l10n/tr.php
index 07f78d148c8..0868d0a6905 100644
--- a/apps/files_encryption/l10n/tr.php
+++ b/apps/files_encryption/l10n/tr.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "Şifreleme",
-"Exclude the following file types from encryption" => "Aşağıdaki dosya tiplerini şifrelemeye dahil etme",
"None" => "Hiçbiri"
);
diff --git a/apps/files_encryption/l10n/uk.php b/apps/files_encryption/l10n/uk.php
index e3589215658..8236c5afefd 100644
--- a/apps/files_encryption/l10n/uk.php
+++ b/apps/files_encryption/l10n/uk.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "Шифрування",
-"Exclude the following file types from encryption" => "Не шифрувати файли наступних типів",
"None" => "Жоден"
);
diff --git a/apps/files_encryption/l10n/vi.php b/apps/files_encryption/l10n/vi.php
index 218285b675a..b86cd839783 100644
--- a/apps/files_encryption/l10n/vi.php
+++ b/apps/files_encryption/l10n/vi.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "Mã hóa",
-"Exclude the following file types from encryption" => "Loại trừ các loại tập tin sau đây từ mã hóa",
"None" => "Không có gì hết"
);
diff --git a/apps/files_encryption/l10n/zh_CN.GB2312.php b/apps/files_encryption/l10n/zh_CN.GB2312.php
index 31a3d3b49b8..12d903e6567 100644
--- a/apps/files_encryption/l10n/zh_CN.GB2312.php
+++ b/apps/files_encryption/l10n/zh_CN.GB2312.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "加密",
-"Exclude the following file types from encryption" => "从加密中排除如下文件类型",
"None" => "无"
);
diff --git a/apps/files_encryption/l10n/zh_CN.php b/apps/files_encryption/l10n/zh_CN.php
index aa4817b590c..867d000f2ed 100644
--- a/apps/files_encryption/l10n/zh_CN.php
+++ b/apps/files_encryption/l10n/zh_CN.php
@@ -1,5 +1,4 @@
<?php $TRANSLATIONS = array(
"Encryption" => "加密",
-"Exclude the following file types from encryption" => "从加密中排除列出的文件类型",
"None" => "None"
);
diff --git a/apps/files_encryption/l10n/zh_TW.php b/apps/files_encryption/l10n/zh_TW.php
index 146724def08..bd8257ed602 100644
--- a/apps/files_encryption/l10n/zh_TW.php
+++ b/apps/files_encryption/l10n/zh_TW.php
@@ -4,13 +4,6 @@
"Change encryption password to login password" => "將加密密碼修改為登入密碼",
"Please check your passwords and try again." => "請檢查您的密碼並再試一次。",
"Could not change your file encryption password to your login password" => "無法變更您的檔案加密密碼為登入密碼",
-"Choose encryption mode:" => "選擇加密模式:",
-"Client side encryption (most secure but makes it impossible to access your data from the web interface)" => "客戶端加密 (最安全但是會使您無法從網頁界面存取您的檔案)",
-"Server side encryption (allows you to access your files from the web interface and the desktop client)" => "伺服器端加密 (您可以從網頁界面及客戶端程式存取您的檔案)",
-"None (no encryption at all)" => "無 (不加密)",
-"Important: Once you selected an encryption mode there is no way to change it back" => "重要:一旦您選擇了加密就無法再改回來",
-"User specific (let the user decide)" => "使用者自訂 (讓使用者自己決定)",
"Encryption" => "加密",
-"Exclude the following file types from encryption" => "下列的檔案類型不加密",
"None" => "無"
);
diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php
index fddc89dae54..d00f71b6141 100755
--- a/apps/files_encryption/lib/crypt.php
+++ b/apps/files_encryption/lib/crypt.php
@@ -1,4 +1,5 @@
<?php
+
/**
* ownCloud
*
@@ -27,12 +28,10 @@ namespace OCA\Encryption;
require_once 'Crypt_Blowfish/Blowfish.php';
// Todo:
-// - Crypt/decrypt button in the userinterface
-// - Setting if crypto should be on by default
-// - Add a setting "Don´t encrypt files larger than xx because of performance reasons"
-// - Transparent decrypt/encrypt in filesystem.php. Autodetect if a file is encrypted (.encrypted extension)
-// - Don't use a password directly as encryption key. but a key which is stored on the server and encrypted with the user password. -> password change faster
-// - IMPORTANT! Check if the block lenght of the encrypted data stays the same
+// - Add a setting "Don´t encrypt files larger than xx because of performance"
+// - Don't use a password directly as encryption key. but a key which is
+// stored on the server and encrypted with the user password. -> change pass
+// faster
/**
* Class for common cryptography functionality
@@ -46,24 +45,6 @@ class Crypt {
* @return string 'client' or 'server'
*/
public static function mode( $user = null ) {
-
-// $mode = \OC_Appconfig::getValue( 'files_encryption', 'mode', 'none' );
-//
-// if ( $mode == 'user') {
-// if ( !$user ) {
-// $user = \OCP\User::getUser();
-// }
-// $mode = 'none';
-// if ( $user ) {
-// $query = \OC_DB::prepare( "SELECT mode FROM *PREFIX*encryption WHERE uid = ?" );
-// $result = $query->execute(array($user));
-// if ($row = $result->fetchRow()){
-// $mode = $row['mode'];
-// }
-// }
-// }
-//
-// return $mode;
return 'server';
@@ -93,7 +74,10 @@ class Crypt {
* @brief Add arbitrary padding to encrypted data
* @param string $data data to be padded
* @return padded data
- * @note In order to end up with data exactly 8192 bytes long we must add two letters. It is impossible to achieve exactly 8192 length blocks with encryption alone, hence padding is added to achieve the required length.
+ * @note In order to end up with data exactly 8192 bytes long we must
+ * add two letters. It is impossible to achieve exactly 8192 length
+ * blocks with encryption alone, hence padding is added to achieve the
+ * required length.
*/
public static function addPadding( $data ) {
@@ -118,7 +102,7 @@ class Crypt {
} else {
- # TODO: log the fact that unpadded data was submitted for removal of padding
+ // TODO: log the fact that unpadded data was submitted for removal of padding
return false;
}
@@ -130,13 +114,7 @@ class Crypt {
* @return true / false
* @note see also OCA\Encryption\Util->isEncryptedPath()
*/
- public static function isEncryptedContent( $content ) {
-
- if ( !$content ) {
-
- return false;
-
- }
+ public static function isCatfile( $content ) {
$noPadding = self::removePadding( $content );
@@ -168,10 +146,10 @@ class Crypt {
*/
public static function isEncryptedMeta( $path ) {
- # TODO: Use DI to get OC_FileCache_Cached out of here
+ // TODO: Use DI to get \OC\Files\Filesystem out of here
// Fetch all file metadata from DB
- $metadata = \OC_FileCache_Cached::get( $path, '' );
+ $metadata = \OC\Files\Filesystem::getFileInfo( $path, '' );
// Return encryption status
return isset( $metadata['encrypted'] ) and ( bool )$metadata['encrypted'];
@@ -180,19 +158,22 @@ class Crypt {
/**
* @brief Check if a file is encrypted via legacy system
+ * @param string $relPath The path of the file, relative to user/data;
+ * e.g. filename or /Docs/filename, NOT admin/files/filename
* @return true / false
*/
- public static function isLegacyEncryptedContent( $content ) {
+ public static function isLegacyEncryptedContent( $data, $relPath ) {
// Fetch all file metadata from DB
- $metadata = \OC_FileCache_Cached::get( $content, '' );
-
- // If a file is flagged with encryption in DB, but isn't a valid content + IV combination, it's probably using the legacy encryption system
+ $metadata = \OC\Files\Filesystem::getFileInfo( $relPath, '' );
+
+ // If a file is flagged with encryption in DB, but isn't a
+ // valid content + IV combination, it's probably using the
+ // legacy encryption system
if (
- $content
- and isset( $metadata['encrypted'] )
- and $metadata['encrypted'] === true
- and !self::isEncryptedContent( $content )
+ isset( $metadata['encrypted'] )
+ and $metadata['encrypted'] === true
+ and ! self::isCatfile( $data )
) {
return true;
@@ -217,7 +198,7 @@ class Crypt {
} else {
- \OC_Log::write( 'Encryption library', 'Encryption (symmetric) of content failed' , \OC_Log::ERROR );
+ \OC_Log::write( 'Encryption library', 'Encryption (symmetric) of content failed', \OC_Log::ERROR );
return false;
@@ -313,7 +294,7 @@ class Crypt {
} else {
- \OC_Log::write( 'Encryption library', 'Encryption (symmetric) of keyfile content failed' , \OC_Log::ERROR );
+ \OC_Log::write( 'Encryption library', 'Encryption (symmetric) of keyfile content failed', \OC_Log::ERROR );
return false;
@@ -390,6 +371,8 @@ class Crypt {
*/
public static function multiKeyEncrypt( $plainContent, array $publicKeys ) {
+ // Set empty vars to be set by openssl by reference
+ $sealed = '';
$envKeys = array();
if( openssl_seal( $plainContent, $sealed, $envKeys, $publicKeys ) ) {
@@ -429,7 +412,7 @@ class Crypt {
} else {
- \OC_Log::write( 'Encryption library', 'Decryption (asymmetric) of sealed content failed' , \OC_Log::ERROR );
+ \OC_Log::write( 'Encryption library', 'Decryption (asymmetric) of sealed content failed', \OC_Log::ERROR );
return false;
@@ -577,7 +560,7 @@ class Crypt {
if ( !$strong ) {
// If OpenSSL indicates randomness is insecure, log error
- \OC_Log::write( 'Encryption library', 'Insecure symmetric key was generated using openssl_random_pseudo_bytes()' , \OC_Log::WARN );
+ \OC_Log::write( 'Encryption library', 'Insecure symmetric key was generated using openssl_random_pseudo_bytes()', \OC_Log::WARN );
}
@@ -621,18 +604,27 @@ class Crypt {
}
- public static function changekeypasscode($oldPassword, $newPassword) {
+ public static function changekeypasscode( $oldPassword, $newPassword ) {
- if(\OCP\User::isLoggedIn()){
+ if ( \OCP\User::isLoggedIn() ) {
+
$key = Keymanager::getPrivateKey( $user, $view );
- if ( ($key = Crypt::symmetricDecryptFileContent($key,$oldpasswd)) ) {
- if ( ($key = Crypt::symmetricEncryptFileContent($key, $newpasswd)) ) {
- Keymanager::setPrivateKey($key);
+
+ if ( ( $key = Crypt::symmetricDecryptFileContent($key,$oldpasswd) ) ) {
+
+ if ( ( $key = Crypt::symmetricEncryptFileContent( $key, $newpasswd ) ) ) {
+
+ Keymanager::setPrivateKey( $key );
+
return true;
}
+
}
+
}
+
return false;
+
}
/**
@@ -723,10 +715,8 @@ class Crypt {
*/
public static function legacyRecrypt( $legacyContent, $legacyPassphrase, $newPassphrase ) {
- # TODO: write me
+ // TODO: write me
}
-}
-
-?> \ No newline at end of file
+} \ No newline at end of file
diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php
index 706e1c2661e..43af70dacc2 100755
--- a/apps/files_encryption/lib/keymanager.php
+++ b/apps/files_encryption/lib/keymanager.php
@@ -1,5 +1,6 @@
<?php
-/***
+
+/**
* ownCloud
*
* @author Bjoern Schiessle
@@ -27,8 +28,6 @@ namespace OCA\Encryption;
* @note Where a method requires a view object, it's root must be '/'
*/
class Keymanager {
-
- # TODO: make all dependencies (including static classes) explicit, such as ocfsview objects, by adding them as method arguments (dependency injection)
/**
* @brief retrieve the ENCRYPTED private key from a user
@@ -84,38 +83,7 @@ class Keymanager {
// Check if sharing is enabled
if ( OC_App::isEnabled( 'files_sharing' ) ) {
-// // Check if file was shared with other users
-// $query = \OC_DB::prepare( "
-// SELECT
-// uid_owner
-// , source
-// , target
-// , uid_shared_with
-// FROM
-// `*PREFIX*sharing`
-// WHERE
-// ( target = ? AND uid_shared_with = ? )
-// OR source = ?
-// " );
-//
-// $result = $query->execute( array ( $filepath, $userId, $filepath ) );
-//
-// $users = array();
-//
-// if ( $row = $result->fetchRow() )
-// {
-// $source = $row['source'];
-// $owner = $row['uid_owner'];
-// $users[] = $owner;
-// // get the uids of all user with access to the file
-// $query = \OC_DB::prepare( "SELECT source, uid_shared_with FROM `*PREFIX*sharing` WHERE source = ?" );
-// $result = $query->execute( array ($source));
-// while ( ($row = $result->fetchRow()) ) {
-// $users[] = $row['uid_shared_with'];
-//
-// }
-//
-// }
+
} else {
@@ -147,62 +115,86 @@ class Keymanager {
}
/**
+ * @brief store file encryption key
+ *
+ * @param string $path relative path of the file, including filename
+ * @param string $key
+ * @return bool true/false
+ * @note The keyfile is not encrypted here. Client code must
+ * asymmetrically encrypt the keyfile before passing it to this method
+ */
+ public static function setFileKey( \OC_FilesystemView $view, $path, $userId, $catfile ) {
+
+ $basePath = '/' . $userId . '/files_encryption/keyfiles';
+
+ $targetPath = self::keySetPreparation( $view, $path, $basePath, $userId );
+
+ if ( $view->is_dir( $basePath . '/' . $targetPath ) ) {
+
+
+
+ } else {
+
+ // Save the keyfile in parallel directory
+ return $view->file_put_contents( $basePath . '/' . $targetPath . '.key', $catfile );
+
+ }
+
+ }
+
+ /**
* @brief retrieve keyfile for an encrypted file
* @param string file name
- * @return string file key or false
+ * @return string file key or false on failure
* @note The keyfile returned is asymmetrically encrypted. Decryption
* of the keyfile must be performed by client code
*/
public static function getFileKey( \OC_FilesystemView $view, $userId, $filePath ) {
$filePath_f = ltrim( $filePath, '/' );
+
+ $catfilePath = '/' . $userId . '/files_encryption/keyfiles/' . $filePath_f . '.key';
+
+ if ( $view->file_exists( $catfilePath ) ) {
-// // update $keypath and $userId if path point to a file shared by someone else
-// $query = \OC_DB::prepare( "SELECT uid_owner, source, target FROM `*PREFIX*sharing` WHERE target = ? AND uid_shared_with = ?" );
-//
-// $result = $query->execute( array ('/'.$userId.'/files/'.$keypath, $userId));
-//
-// if ($row = $result->fetchRow()) {
-//
-// $keypath = $row['source'];
-// $keypath_parts = explode( '/', $keypath );
-// $userId = $keypath_parts[1];
-// $keypath = str_replace( '/' . $userId . '/files/', '', $keypath );
-//
-// }
-
- return $view->file_get_contents( '/' . $userId . '/files_encryption/keyfiles/' . $filePath_f . '.key' );
+ return $view->file_get_contents( $catfilePath );
+
+ } else {
+
+ return false;
+
+ }
}
/**
- * @brief retrieve file encryption key
+ * @brief Delete a keyfile
*
- * @param string file name
- * @return string file key or false
+ * @param OC_FilesystemView $view
+ * @param string $userId username
+ * @param string $path path of the file the key belongs to
+ * @return bool Outcome of unlink operation
+ * @note $path must be relative to data/user/files. e.g. mydoc.txt NOT
+ * /data/admin/files/mydoc.txt
*/
- public static function deleteFileKey( $path, $staticUserClass = 'OCP\User' ) {
+ public static function deleteFileKey( \OC_FilesystemView $view, $userId, $path ) {
- $keypath = ltrim( $path, '/' );
- $user = $staticUserClass::getUser();
-
- // update $keypath and $user if path point to a file shared by someone else
-// $query = \OC_DB::prepare( "SELECT uid_owner, source, target FROM `*PREFIX*sharing` WHERE target = ? AND uid_shared_with = ?" );
-//
-// $result = $query->execute( array ('/'.$user.'/files/'.$keypath, $user));
-//
-// if ($row = $result->fetchRow()) {
-//
-// $keypath = $row['source'];
-// $keypath_parts = explode( '/', $keypath );
-// $user = $keypath_parts[1];
-// $keypath = str_replace( '/' . $user . '/files/', '', $keypath );
-//
-// }
-
- $view = new \OC_FilesystemView('/'.$user.'/files_encryption/keyfiles/');
-
- return $view->unlink( $keypath . '.key' );
+ $trimmed = ltrim( $path, '/' );
+ $keyPath = '/' . $userId . '/files_encryption/keyfiles/' . $trimmed . '.key';
+
+ // Unlink doesn't tell us if file was deleted (not found returns
+ // true), so we perform our own test
+ if ( $view->file_exists( $keyPath ) ) {
+
+ return $view->unlink( $keyPath );
+
+ } else {
+
+ \OC_Log::write( 'Encryption library', 'Could not delete keyfile; does not exist: "' . $keyPath, \OC_Log::ERROR );
+
+ return false;
+
+ }
}
@@ -238,7 +230,7 @@ class Keymanager {
*/
public static function setUserKeys($privatekey, $publickey) {
- return (self::setPrivateKey($privatekey) && self::setPublicKey($publickey));
+ return ( self::setPrivateKey( $privatekey ) && self::setPublicKey( $publickey ) );
}
@@ -263,71 +255,39 @@ class Keymanager {
}
/**
- * @brief store file encryption key
- *
- * @param string $path relative path of the file, including filename
- * @param string $key
- * @return bool true/false
- * @note The keyfile is not encrypted here. Client code must
- * asymmetrically encrypt the keyfile before passing it to this method
+ * @note 'shareKey' is a more user-friendly name for env_key
*/
- public static function setFileKey( $path, $key, $view = Null, $dbClassName = '\OC_DB') {
-
- $targetPath = ltrim( $path, '/' );
- $user = \OCP\User::getUser();
+ public static function setShareKey( \OC_FilesystemView $view, $path, $userId, $shareKey ) {
-// // update $keytarget and $user if key belongs to a file shared by someone else
-// $query = $dbClassName::prepare( "SELECT uid_owner, source, target FROM `*PREFIX*sharing` WHERE target = ? AND uid_shared_with = ?" );
-//
-// $result = $query->execute( array ( '/'.$user.'/files/'.$targetPath, $user ) );
-//
-// if ( $row = $result->fetchRow( ) ) {
-//
-// $targetPath = $row['source'];
-//
-// $targetPath_parts = explode( '/', $targetPath );
-//
-// $user = $targetPath_parts[1];
-//
-// $rootview = new \OC_FilesystemView( '/' );
-//
-// if ( ! $rootview->is_writable( $targetPath ) ) {
-//
-// \OC_Log::write( 'Encryption library', "File Key not updated because you don't have write access for the corresponding file", \OC_Log::ERROR );
-//
-// return false;
-//
-// }
-//
-// $targetPath = str_replace( '/'.$user.'/files/', '', $targetPath );
-//
-// //TODO: check for write permission on shared file once the new sharing API is in place
-//
-// }
+ $basePath = '/' . $userId . '/files_encryption/share-keys';
- $path_parts = pathinfo( $targetPath );
+ $shareKeyPath = self::keySetPreparation( $view, $path, $basePath, $userId );
- if ( !$view ) {
+ return $view->file_put_contents( $basePath . '/' . $shareKeyPath . '.shareKey', $shareKey );
- $view = new \OC_FilesystemView( '/' );
-
- }
+ }
+
+ /**
+ * @brief Make preparations to vars and filesystem for saving a keyfile
+ */
+ public static function keySetPreparation( \OC_FilesystemView $view, $path, $basePath, $userId ) {
- $view->chroot( '/' . $user . '/files_encryption/keyfiles' );
+ $targetPath = ltrim( $path, '/' );
+
+ $path_parts = pathinfo( $targetPath );
// If the file resides within a subdirectory, create it
if (
isset( $path_parts['dirname'] )
- && ! $view->file_exists( $path_parts['dirname'] )
+ && ! $view->file_exists( $basePath . '/' . $path_parts['dirname'] )
) {
- $view->mkdir( $path_parts['dirname'] );
+ $view->mkdir( $basePath . '/' . $path_parts['dirname'] );
}
- // Save the keyfile in parallel directory
- return $view->file_put_contents( '/' . $targetPath . '.key', $key );
-
+ return $targetPath;
+
}
/**
diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php
index 52f47dba294..55cddf2bec8 100644
--- a/apps/files_encryption/lib/proxy.php
+++ b/apps/files_encryption/lib/proxy.php
@@ -22,6 +22,12 @@
*
*/
+/**
+* @brief Encryption proxy which handles filesystem operations before and after
+* execution and encrypts, and handles keyfiles accordingly. Used for
+* webui.
+*/
+
namespace OCA\Encryption;
class Proxy extends \OC_FileProxy {
@@ -42,8 +48,8 @@ class Proxy extends \OC_FileProxy {
if ( is_null( self::$enableEncryption ) ) {
if (
- \OCP\Config::getAppValue( 'files_encryption', 'enable_encryption', 'true' ) == 'true'
- && Crypt::mode() == 'server'
+ \OCP\Config::getAppValue( 'files_encryption', 'enable_encryption', 'true' ) == 'true'
+ && Crypt::mode() == 'server'
) {
self::$enableEncryption = true;
@@ -64,19 +70,19 @@ class Proxy extends \OC_FileProxy {
if ( is_null(self::$blackList ) ) {
- self::$blackList = explode(',', \OCP\Config::getAppValue( 'files_encryption','type_blacklist','jpg,png,jpeg,avi,mpg,mpeg,mkv,mp3,oga,ogv,ogg' ) );
+ self::$blackList = explode(',', \OCP\Config::getAppValue( 'files_encryption', 'type_blacklist', 'jpg,png,jpeg,avi,mpg,mpeg,mkv,mp3,oga,ogv,ogg' ) );
}
- if ( Crypt::isEncryptedContent( $path ) ) {
+ if ( Crypt::isCatfile( $path ) ) {
return true;
}
- $extension = substr( $path, strrpos( $path,'.' ) +1 );
+ $extension = substr( $path, strrpos( $path, '.' ) +1 );
- if ( array_search( $extension, self::$blackList ) === false ){
+ if ( array_search( $extension, self::$blackList ) === false ) {
return true;
@@ -101,6 +107,8 @@ class Proxy extends \OC_FileProxy {
// Disable encryption proxy to prevent recursive calls
\OC_FileProxy::$enabled = false;
+ // TODO: Check if file is shared, if so, use multiKeyEncrypt
+
// Encrypt plain data and fetch key
$encrypted = Crypt::keyEncryptKeyfile( $data, Keymanager::getPublicKey( $rootView, $userId ) );
@@ -113,14 +121,15 @@ class Proxy extends \OC_FileProxy {
$filePath = '/' . implode( '/', $filePath );
- # TODO: make keyfile dir dynamic from app config
- $view = new \OC_FilesystemView( '/' . $userId . '/files_encryption/keyfiles' );
+ // TODO: make keyfile dir dynamic from app config
+
+ $view = new \OC_FilesystemView( '/' );
// Save keyfile for newly encrypted file in parallel directory tree
- Keymanager::setFileKey( $filePath, $encrypted['key'], $view, '\OC_DB' );
+ Keymanager::setFileKey( $view, $filePath, $userId, $encrypted['key'] );
// Update the file cache with file info
- \OC_FileCache::put( $path, array( 'encrypted'=>true, 'size' => $size ), '' );
+ \OC\Files\Filesystem::putFileInfo( $path, array( 'encrypted'=>true, 'size' => $size ), '' );
// Re-enable proxy - our work is done
\OC_FileProxy::$enabled = true;
@@ -136,15 +145,15 @@ class Proxy extends \OC_FileProxy {
*/
public function postFile_get_contents( $path, $data ) {
- # TODO: Use dependency injection to add required args for view and user etc. to this method
+ // TODO: Use dependency injection to add required args for view and user etc. to this method
// Disable encryption proxy to prevent recursive calls
\OC_FileProxy::$enabled = false;
// If data is a catfile
if (
- Crypt::mode() == 'server'
- && Crypt::isEncryptedContent( $data )
+ Crypt::mode() == 'server'
+ && Crypt::isCatfile( $data )
) {
$split = explode( '/', $path );
@@ -153,12 +162,14 @@ class Proxy extends \OC_FileProxy {
$filePath = '/' . implode( '/', $filePath );
- //$cached = \OC_FileCache_Cached::get( $path, '' );
+ //$cached = \OC\Files\Filesystem::getFileInfo( $path, '' );
$view = new \OC_FilesystemView( '' );
$userId = \OCP\USER::getUser();
+ // TODO: Check if file is shared, if so, use multiKeyDecrypt
+
$encryptedKeyfile = Keymanager::getFileKey( $view, $userId, $filePath );
$session = new Session();
@@ -187,6 +198,79 @@ class Proxy extends \OC_FileProxy {
}
+ /**
+ * @brief When a file is deleted, remove its keyfile also
+ */
+ public function preUnlink( $path ) {
+
+ // Disable encryption proxy to prevent recursive calls
+ \OC_FileProxy::$enabled = false;
+
+ $view = new \OC_FilesystemView( '/' );
+
+ $userId = \OCP\USER::getUser();
+
+ // Format path to be relative to user files dir
+ $trimmed = ltrim( $path, '/' );
+ $split = explode( '/', $trimmed );
+ $sliced = array_slice( $split, 2 );
+ $relPath = implode( '/', $sliced );
+
+ if ( $view->is_dir( $path ) ) {
+
+ // Dirs must be handled separately as deleteFileKey
+ // doesn't handle them
+ $view->unlink( $userId . '/' . 'files_encryption' . '/' . 'keyfiles' . '/'. $relPath );
+
+ } else {
+
+ // Delete keyfile so it isn't orphaned
+ $result = Keymanager::deleteFileKey( $view, $userId, $relPath );
+
+ \OC_FileProxy::$enabled = true;
+
+ return $result;
+
+ }
+
+ }
+
+ /**
+ * @brief When a file is renamed, rename its keyfile also
+ * @return bool Result of rename()
+ * @note This is pre rather than post because using post didn't work
+ */
+ public function preRename( $oldPath, $newPath ) {
+
+ // Disable encryption proxy to prevent recursive calls
+ \OC_FileProxy::$enabled = false;
+
+ $view = new \OC_FilesystemView( '/' );
+
+ $userId = \OCP\USER::getUser();
+
+ // Format paths to be relative to user files dir
+ $oldTrimmed = ltrim( $oldPath, '/' );
+ $oldSplit = explode( '/', $oldTrimmed );
+ $oldSliced = array_slice( $oldSplit, 2 );
+ $oldRelPath = implode( '/', $oldSliced );
+ $oldKeyfilePath = $userId . '/' . 'files_encryption' . '/' . 'keyfiles' . '/' . $oldRelPath . '.key';
+
+ $newTrimmed = ltrim( $newPath, '/' );
+ $newSplit = explode( '/', $newTrimmed );
+ $newSliced = array_slice( $newSplit, 2 );
+ $newRelPath = implode( '/', $newSliced );
+ $newKeyfilePath = $userId . '/' . 'files_encryption' . '/' . 'keyfiles' . '/' . $newRelPath . '.key';
+
+ // Rename keyfile so it isn't orphaned
+ $result = $view->rename( $oldKeyfilePath, $newKeyfilePath );
+
+ \OC_FileProxy::$enabled = true;
+
+ return $result;
+
+ }
+
public function postFopen( $path, &$result ){
if ( !$result ) {
@@ -210,8 +294,8 @@ class Proxy extends \OC_FileProxy {
// If file is already encrypted, decrypt using crypto protocol
if (
- Crypt::mode() == 'server'
- && $util->isEncryptedPath( $path )
+ Crypt::mode() == 'server'
+ && $util->isEncryptedPath( $path )
) {
// Close the original encrypted file
@@ -223,9 +307,9 @@ class Proxy extends \OC_FileProxy {
} elseif (
- self::shouldEncrypt( $path )
- and $meta ['mode'] != 'r'
- and $meta['mode'] != 'rb'
+ self::shouldEncrypt( $path )
+ and $meta ['mode'] != 'r'
+ and $meta['mode'] != 'rb'
) {
// If the file is not yet encrypted, but should be
// encrypted when it's saved (it's not read only)
@@ -263,27 +347,43 @@ class Proxy extends \OC_FileProxy {
}
- public function postGetMimeType($path,$mime){
- if( Crypt::isEncryptedContent($path)){
- $mime = \OCP\Files::getMimeType('crypt://'.$path,'w');
+ public function postGetMimeType( $path, $mime ) {
+
+ if ( Crypt::isCatfile( $path ) ) {
+
+ $mime = \OCP\Files::getMimeType( 'crypt://' . $path, 'w' );
+
}
+
return $mime;
+
}
- public function postStat($path,$data){
- if( Crypt::isEncryptedContent($path)){
- $cached= \OC_FileCache_Cached::get($path,'');
- $data['size']=$cached['size'];
+ public function postStat( $path, $data ) {
+
+ if ( Crypt::isCatfile( $path ) ) {
+
+ $cached = \OC\Files\Filesystem::getFileInfo( $path, '' );
+
+ $data['size'] = $cached['size'];
+
}
+
return $data;
}
- public function postFileSize($path,$size){
- if( Crypt::isEncryptedContent($path)){
- $cached = \OC_FileCache_Cached::get($path,'');
+ public function postFileSize( $path, $size ) {
+
+ if ( Crypt::isCatfile( $path ) ) {
+
+ $cached = \OC\Files\Filesystem::getFileInfo( $path, '' );
+
return $cached['size'];
- }else{
+
+ } else {
+
return $size;
+
}
}
}
diff --git a/apps/files_encryption/lib/session.php b/apps/files_encryption/lib/session.php
index 85d533fde7a..769a40b359f 100644
--- a/apps/files_encryption/lib/session.php
+++ b/apps/files_encryption/lib/session.php
@@ -29,11 +29,11 @@ namespace OCA\Encryption;
class Session {
/**
- * @brief Sets user id for session and triggers emit
+ * @brief Sets user private key to session
* @return bool
*
*/
- public function setPrivateKey( $privateKey, $userId ) {
+ public function setPrivateKey( $privateKey ) {
$_SESSION['privateKey'] = $privateKey;
@@ -42,15 +42,15 @@ class Session {
}
/**
- * @brief Gets user id for session and triggers emit
+ * @brief Gets user private key from session
* @returns string $privateKey The user's plaintext private key
*
*/
- public function getPrivateKey( $userId ) {
+ public function getPrivateKey() {
if (
- isset( $_SESSION['privateKey'] )
- && !empty( $_SESSION['privateKey'] )
+ isset( $_SESSION['privateKey'] )
+ && !empty( $_SESSION['privateKey'] )
) {
return $_SESSION['privateKey'];
@@ -62,5 +62,42 @@ class Session {
}
}
+
+ /**
+ * @brief Sets user legacy key to session
+ * @return bool
+ *
+ */
+ public function setLegacyKey( $legacyKey ) {
+
+ if ( $_SESSION['legacyKey'] = $legacyKey ) {
+
+ return true;
+
+ }
+
+ }
+
+ /**
+ * @brief Gets user legacy key from session
+ * @returns string $legacyKey The user's plaintext legacy key
+ *
+ */
+ public function getLegacyKey() {
+
+ if (
+ isset( $_SESSION['legacyKey'] )
+ && !empty( $_SESSION['legacyKey'] )
+ ) {
+
+ return $_SESSION['legacyKey'];
+
+ } else {
+
+ return false;
+
+ }
+
+ }
} \ No newline at end of file
diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php
index f482e2d75ac..d4b993b4c06 100644
--- a/apps/files_encryption/lib/stream.php
+++ b/apps/files_encryption/lib/stream.php
@@ -49,9 +49,10 @@ class Stream {
public static $sourceStreams = array();
- # TODO: make all below properties private again once unit testing is configured correctly
+ // TODO: make all below properties private again once unit testing is
+ // configured correctly
public $rawPath; // The raw path received by stream_open
- public $path_f; // The raw path formatted to include username and data directory
+ public $path_f; // The raw path formatted to include username and data dir
private $userId;
private $handle; // Resource returned by fopen
private $path;
@@ -235,10 +236,12 @@ class Stream {
*/
public function getKey() {
- // If a keyfile already exists for a file named identically to file to be written
+ // If a keyfile already exists for a file named identically to
+ // file to be written
if ( self::$view->file_exists( $this->userId . '/'. 'files_encryption' . '/' . 'keyfiles' . '/' . $this->rawPath . '.key' ) ) {
- # TODO: add error handling for when file exists but no keyfile
+ // TODO: add error handling for when file exists but no
+ // keyfile
// Fetch existing keyfile
$this->encKeyfile = Keymanager::getFileKey( $this->rootView, $this->userId, $this->rawPath );
@@ -266,13 +269,14 @@ class Stream {
// Only get the user again if it isn't already set
if ( empty( $this->userId ) ) {
- # TODO: Move this user call out of here - it belongs elsewhere
+ // TODO: Move this user call out of here - it belongs
+ // elsewhere
$this->userId = \OCP\User::getUser();
}
- # TODO: Add a method for getting the user in case OCP\User::
- # getUser() doesn't work (can that scenario ever occur?)
+ // TODO: Add a method for getting the user in case OCP\User::
+ // getUser() doesn't work (can that scenario ever occur?)
}
@@ -287,7 +291,10 @@ class Stream {
*/
public function stream_write( $data ) {
- // Disable the file proxies so that encryption is not automatically attempted when the file is written to disk - we are handling that separately here and we don't want to get into an infinite loop
+ // Disable the file proxies so that encryption is not
+ // automatically attempted when the file is written to disk -
+ // we are handling that separately here and we don't want to
+ // get into an infinite loop
\OC_FileProxy::$enabled = false;
// Get the length of the unencrypted data that we are handling
@@ -296,14 +303,19 @@ class Stream {
// So far this round, no data has been written
$written = 0;
- // Find out where we are up to in the writing of data to the file
+ // Find out where we are up to in the writing of data to the
+ // file
$pointer = ftell( $this->handle );
// Make sure the userId is set
$this->getuser();
+ // TODO: Check if file is shared, if so, use multiKeyEncrypt and
+ // save shareKeys in necessary user directories
+
// Get / generate the keyfile for the file we're handling
- // If we're writing a new file (not overwriting an existing one), save the newly generated keyfile
+ // If we're writing a new file (not overwriting an existing
+ // one), save the newly generated keyfile
if ( ! $this->getKey() ) {
$this->keyfile = Crypt::generateKey();
@@ -312,26 +324,32 @@ class Stream {
$this->encKeyfile = Crypt::keyEncrypt( $this->keyfile, $this->publicKey );
- // Save the new encrypted file key
- Keymanager::setFileKey( $this->rawPath, $this->encKeyfile, new \OC_FilesystemView( '/' ) );
+ $view = new \OC_FilesystemView( '/' );
+ $userId = \OCP\User::getUser();
- # TODO: move this new OCFSV out of here some how, use DI
+ // Save the new encrypted file key
+ Keymanager::setFileKey( $view, $this->rawPath, $userId, $this->encKeyfile );
}
- // If extra data is left over from the last round, make sure it is integrated into the next 6126 / 8192 block
+ // If extra data is left over from the last round, make sure it
+ // is integrated into the next 6126 / 8192 block
if ( $this->writeCache ) {
// Concat writeCache to start of $data
$data = $this->writeCache . $data;
- // Clear the write cache, ready for resuse - it has been flushed and its old contents processed
+ // Clear the write cache, ready for resuse - it has been
+ // flushed and its old contents processed
$this->writeCache = '';
}
//
// // Make sure we always start on a block start
- if ( 0 != ( $pointer % 8192 ) ) { // if the current positoin of file indicator is not aligned to a 8192 byte block, fix it so that it is
+ if ( 0 != ( $pointer % 8192 ) ) {
+ // if the current position of
+ // file indicator is not aligned to a 8192 byte block, fix it
+ // so that it is
// fseek( $this->handle, - ( $pointer % 8192 ), SEEK_CUR );
//
@@ -356,14 +374,22 @@ class Stream {
// // While there still remains somed data to be processed & written
while( strlen( $data ) > 0 ) {
//
-// // Remaining length for this iteration, not of the entire file (may be greater than 8192 bytes)
+// // Remaining length for this iteration, not of the
+// // entire file (may be greater than 8192 bytes)
// $remainingLength = strlen( $data );
//
-// // If data remaining to be written is less than the size of 1 6126 byte block
+// // If data remaining to be written is less than the
+// // size of 1 6126 byte block
if ( strlen( $data ) < 6126 ) {
// Set writeCache to contents of $data
- // The writeCache will be carried over to the next write round, and added to the start of $data to ensure that written blocks are always the correct length. If there is still data in writeCache after the writing round has finished, then the data will be written to disk by $this->flush().
+ // The writeCache will be carried over to the
+ // next write round, and added to the start of
+ // $data to ensure that written blocks are
+ // always the correct length. If there is still
+ // data in writeCache after the writing round
+ // has finished, then the data will be written
+ // to disk by $this->flush().
$this->writeCache = $data;
// Clear $data ready for next round
@@ -376,13 +402,17 @@ class Stream {
$encrypted = $this->preWriteEncrypt( $chunk, $this->keyfile );
- // Write the data chunk to disk. This will be addended to the last data chunk if the file being handled totals more than 6126 bytes
+ // Write the data chunk to disk. This will be
+ // addended to the last data chunk if the file
+ // being handled totals more than 6126 bytes
fwrite( $this->handle, $encrypted );
$writtenLen = strlen( $encrypted );
//fseek( $this->handle, $writtenLen, SEEK_CUR );
- // Remove the chunk we just processed from $data, leaving only unprocessed data in $data var, for handling on the next round
+ // Remove the chunk we just processed from
+ // $data, leaving only unprocessed data in $data
+ // var, for handling on the next round
$data = substr( $data, 6126 );
}
@@ -396,16 +426,16 @@ class Stream {
}
- public function stream_set_option($option,$arg1,$arg2) {
+ public function stream_set_option( $option, $arg1, $arg2 ) {
switch($option) {
case STREAM_OPTION_BLOCKING:
- stream_set_blocking($this->handle,$arg1);
+ stream_set_blocking( $this->handle, $arg1 );
break;
case STREAM_OPTION_READ_TIMEOUT:
- stream_set_timeout($this->handle,$arg1,$arg2);
+ stream_set_timeout( $this->handle, $arg1, $arg2 );
break;
case STREAM_OPTION_WRITE_BUFFER:
- stream_set_write_buffer($this->handle,$arg1,$arg2);
+ stream_set_write_buffer( $this->handle, $arg1, $arg2 );
}
}
@@ -413,13 +443,14 @@ class Stream {
return fstat($this->handle);
}
- public function stream_lock($mode) {
- flock($this->handle,$mode);
+ public function stream_lock( $mode ) {
+ flock( $this->handle, $mode );
}
public function stream_flush() {
- return fflush($this->handle); // Not a typo: http://php.net/manual/en/function.fflush.php
+ return fflush( $this->handle );
+ // Not a typo: http://php.net/manual/en/function.fflush.php
}
@@ -453,7 +484,7 @@ class Stream {
and $this->meta['mode']!='rb'
) {
- \OC_FileCache::put( $this->path, array( 'encrypted' => true, 'size' => $this->size ), '' );
+ \OC\Files\Filesystem::putFileInfo( $this->path, array( 'encrypted' => true, 'size' => $this->size ), '' );
}
diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php
index cd46d23108a..52bc74db27a 100644
--- a/apps/files_encryption/lib/util.php
+++ b/apps/files_encryption/lib/util.php
@@ -24,81 +24,83 @@
// Todo:
// - Crypt/decrypt button in the userinterface
// - Setting if crypto should be on by default
-// - Add a setting "Don´t encrypt files larger than xx because of performance reasons"
-// - Transparent decrypt/encrypt in filesystem.php. Autodetect if a file is encrypted (.encrypted extension)
-// - Don't use a password directly as encryption key. but a key which is stored on the server and encrypted with the user password. -> password change faster
+// - Add a setting "Don´t encrypt files larger than xx because of performance
+// reasons"
+// - Transparent decrypt/encrypt in filesystem.php. Autodetect if a file is
+// encrypted (.encrypted extension)
+// - Don't use a password directly as encryption key. but a key which is
+// stored on the server and encrypted with the user password. -> password
+// change faster
// - IMPORTANT! Check if the block lenght of the encrypted data stays the same
namespace OCA\Encryption;
/**
* @brief Class for utilities relating to encrypted file storage system
- * @param $view OC_FilesystemView object, expected to have OC '/' as root path
- * @param $client flag indicating status of client side encryption. Currently
+ * @param OC_FilesystemView $view expected to have OC '/' as root path
+ * @param string $userId ID of the logged in user
+ * @param int $client indicating status of client side encryption. Currently
* unused, likely to become obsolete shortly
*/
class Util {
- # Web UI:
+ // Web UI:
- ## DONE: files created via web ui are encrypted
- ## DONE: file created & encrypted via web ui are readable in web ui
- ## DONE: file created & encrypted via web ui are readable via webdav
+ //// DONE: files created via web ui are encrypted
+ //// DONE: file created & encrypted via web ui are readable in web ui
+ //// DONE: file created & encrypted via web ui are readable via webdav
- # WebDAV:
+ // WebDAV:
- ## DONE: new data filled files added via webdav get encrypted
- ## DONE: new data filled files added via webdav are readable via webdav
- ## DONE: reading unencrypted files when encryption is enabled works via webdav
- ## DONE: files created & encrypted via web ui are readable via webdav
+ //// DONE: new data filled files added via webdav get encrypted
+ //// DONE: new data filled files added via webdav are readable via webdav
+ //// DONE: reading unencrypted files when encryption is enabled works via
+ //// webdav
+ //// DONE: files created & encrypted via web ui are readable via webdav
- # Legacy support:
+ // Legacy support:
- ## DONE: add method to check if file is encrypted using new system
- ## DONE: add method to check if file is encrypted using old system
- ## DONE: add method to fetch legacy key
- ## DONE: add method to decrypt legacy encrypted data
+ //// DONE: add method to check if file is encrypted using new system
+ //// DONE: add method to check if file is encrypted using old system
+ //// DONE: add method to fetch legacy key
+ //// DONE: add method to decrypt legacy encrypted data
- ## TODO: add method to encrypt all user files using new system
- ## TODO: add method to decrypt all user files using new system
- ## TODO: add method to encrypt all user files using old system
- ## TODO: add method to decrypt all user files using old system
+ // Admin UI:
- # Admin UI:
+ //// DONE: changing user password also changes encryption passphrase
- ## DONE: changing user password also changes encryption passphrase
+ //// TODO: add support for optional recovery in case of lost passphrase / keys
+ //// TODO: add admin optional required long passphrase for users
+ //// TODO: add UI buttons for encrypt / decrypt everything
+ //// TODO: implement flag system to allow user to specify encryption by folder, subfolder, etc.
- ## TODO: add support for optional recovery in case of lost passphrase / keys
- ## TODO: add admin optional required long passphrase for users
- ## TODO: add UI buttons for encrypt / decrypt everything
- ## TODO: implement flag system to allow user to specify encryption by folder, subfolder, etc.
+ // Sharing:
- # Sharing:
+ //// TODO: add support for encrypting to multiple public keys
+ //// TODO: add support for decrypting to multiple private keys
- ## TODO: add support for encrypting to multiple public keys
- ## TODO: add support for decrypting to multiple private keys
+ // Integration testing:
- # Integration testing:
-
- ## TODO: test new encryption with webdav
- ## TODO: test new encryption with versioning
- ## TODO: test new encryption with sharing
- ## TODO: test new encryption with proxies
+ //// TODO: test new encryption with versioning
+ //// TODO: test new encryption with sharing
+ //// TODO: test new encryption with proxies
private $view; // OC_FilesystemView object for filesystem operations
+ private $userId; // ID of the currently logged-in user
private $pwd; // User Password
private $client; // Client side encryption mode flag
- private $publicKeyDir; // Directory containing all public user keys
- private $encryptionDir; // Directory containing user's files_encryption
- private $keyfilesPath; // Directory containing user's keyfiles
+ private $publicKeyDir; // Dir containing all public user keys
+ private $encryptionDir; // Dir containing user's files_encryption
+ private $keyfilesPath; // Dir containing user's keyfiles
+ private $shareKeysPath; // Dir containing env keys for shared files
private $publicKeyPath; // Path to user's public key
private $privateKeyPath; // Path to user's private key
@@ -107,9 +109,12 @@ class Util {
$this->view = $view;
$this->userId = $userId;
$this->client = $client;
+ $this->userDir = '/' . $this->userId;
+ $this->userFilesDir = '/' . $this->userId . '/' . 'files';
$this->publicKeyDir = '/' . 'public-keys';
$this->encryptionDir = '/' . $this->userId . '/' . 'files_encryption';
$this->keyfilesPath = $this->encryptionDir . '/' . 'keyfiles';
+ $this->shareKeysPath = $this->encryptionDir . '/' . 'share-keys';
$this->publicKeyPath = $this->publicKeyDir . '/' . $this->userId . '.public.key'; // e.g. data/public-keys/admin.public.key
$this->privateKeyPath = $this->encryptionDir . '/' . $this->userId . '.private.key'; // e.g. data/admin/admin.private.key
@@ -118,7 +123,9 @@ class Util {
public function ready() {
if(
- !$this->view->file_exists( $this->keyfilesPath )
+ !$this->view->file_exists( $this->encryptionDir )
+ or !$this->view->file_exists( $this->keyfilesPath )
+ or !$this->view->file_exists( $this->shareKeysPath )
or !$this->view->file_exists( $this->publicKeyPath )
or !$this->view->file_exists( $this->privateKeyPath )
) {
@@ -139,6 +146,20 @@ class Util {
*/
public function setupServerSide( $passphrase = null ) {
+ // Create user dir
+ if( !$this->view->file_exists( $this->userDir ) ) {
+
+ $this->view->mkdir( $this->userDir );
+
+ }
+
+ // Create user files dir
+ if( !$this->view->file_exists( $this->userFilesDir ) ) {
+
+ $this->view->mkdir( $this->userFilesDir );
+
+ }
+
// Create shared public key directory
if( !$this->view->file_exists( $this->publicKeyDir ) ) {
@@ -159,16 +180,23 @@ class Util {
$this->view->mkdir( $this->keyfilesPath );
}
+
+ // Create mirrored share env keys directory
+ if( !$this->view->file_exists( $this->shareKeysPath ) ) {
+
+ $this->view->mkdir( $this->shareKeysPath );
+
+ }
// Create user keypair
if (
- !$this->view->file_exists( $this->publicKeyPath )
- or !$this->view->file_exists( $this->privateKeyPath )
+ ! $this->view->file_exists( $this->publicKeyPath )
+ or ! $this->view->file_exists( $this->privateKeyPath )
) {
// Generate keypair
$keypair = Crypt::createKeypair();
-
+
\OC_FileProxy::$enabled = false;
// Save public key
@@ -188,48 +216,77 @@ class Util {
}
- public function findFiles( $directory, $type = 'plain' ) {
-
- # TODO: test finding non plain content
+ /**
+ * @brief Find all files and their encryption status within a directory
+ * @param string $directory The path of the parent directory to search
+ * @return mixed false if 0 found, array on success. Keys: name, path
+
+ * @note $directory needs to be a path relative to OC data dir. e.g.
+ * /admin/files NOT /backup OR /home/www/oc/data/admin/files
+ */
+ public function findFiles( $directory ) {
+
+ // Disable proxy - we don't want files to be decrypted before
+ // we handle them
+ \OC_FileProxy::$enabled = false;
+
+ $found = array( 'plain' => array(), 'encrypted' => array(), 'legacy' => array() );
+
+ if (
+ $this->view->is_dir( $directory )
+ && $handle = $this->view->opendir( $directory )
+ ) {
- if ( $handle = $this->view->opendir( $directory ) ) {
-
while ( false !== ( $file = readdir( $handle ) ) ) {
-
+
if (
$file != "."
&& $file != ".."
) {
-
- $filePath = $directory . '/' . $this->view->getRelativePath( '/' . $file );
- var_dump($filePath);
+ $filePath = $directory . '/' . $this->view->getRelativePath( '/' . $file );
+ $relPath = $this->stripUserFilesPath( $filePath );
+ // If the path is a directory, search
+ // its contents
if ( $this->view->is_dir( $filePath ) ) {
$this->findFiles( $filePath );
-
- } elseif ( $this->view->is_file( $filePath ) ) {
-
- if ( $type == 'plain' ) {
- $this->files[] = array( 'name' => $file, 'path' => $filePath );
-
- } elseif ( $type == 'encrypted' ) {
+ // If the path is a file, determine
+ // its encryption status
+ } elseif ( $this->view->is_file( $filePath ) ) {
- if ( Crypt::isEncryptedContent( $this->view->file_get_contents( $filePath ) ) ) {
-
- $this->files[] = array( 'name' => $file, 'path' => $filePath );
-
- }
+ // Disable proxies again, some-
+ // where they got re-enabled :/
+ \OC_FileProxy::$enabled = false;
+
+ $data = $this->view->file_get_contents( $filePath );
+
+ // If the file is encrypted
+ // NOTE: If the userId is
+ // empty or not set, file will
+ // detected as plain
+ // NOTE: This is inefficient;
+ // scanning every file like this
+ // will eat server resources :(
+ if (
+ Keymanager::getFileKey( $this->view, $this->userId, $file )
+ && Crypt::isCatfile( $data )
+ ) {
- } elseif ( $type == 'legacy' ) {
+ $found['encrypted'][] = array( 'name' => $file, 'path' => $filePath );
- if ( Crypt::isLegacyEncryptedContent( $this->view->file_get_contents( $filePath ) ) ) {
+ // If the file uses old
+ // encryption system
+ } elseif ( Crypt::isLegacyEncryptedContent( $this->view->file_get_contents( $filePath ), $relPath ) ) {
- $this->files[] = array( 'name' => $file, 'path' => $filePath );
+ $found['legacy'][] = array( 'name' => $file, 'path' => $filePath );
- }
+ // If the file is not encrypted
+ } else {
+
+ $found['plain'][] = array( 'name' => $file, 'path' => $filePath );
}
@@ -239,18 +296,22 @@ class Util {
}
- if ( !empty( $this->files ) ) {
-
- return $this->files;
+ \OC_FileProxy::$enabled = true;
- } else {
+ if ( empty( $found ) ) {
return false;
+ } else {
+
+ return $found;
+
}
}
+ \OC_FileProxy::$enabled = true;
+
return false;
}
@@ -269,26 +330,111 @@ class Util {
\OC_FileProxy::$enabled = true;
- return Crypt::isEncryptedContent( $data );
+ return Crypt::isCatfile( $data );
+
+ }
+
+ /**
+ * @brief Format a path to be relative to the /user/files/ directory
+ */
+ public function stripUserFilesPath( $path ) {
+
+ $trimmed = ltrim( $path, '/' );
+ $split = explode( '/', $trimmed );
+ $sliced = array_slice( $split, 2 );
+ $relPath = implode( '/', $sliced );
+
+ return $relPath;
}
- public function encryptAll( $directory ) {
+ /**
+ * @brief Encrypt all files in a directory
+ * @param string $publicKey the public key to encrypt files with
+ * @param string $dirPath the directory whose files will be encrypted
+ * @note Encryption is recursive
+ */
+ public function encryptAll( $publicKey, $dirPath, $legacyPassphrase = null, $newPassphrase = null ) {
- $plainFiles = $this->findFiles( $this->view, 'plain' );
+ if ( $found = $this->findFiles( $dirPath ) ) {
- if ( $this->encryptFiles( $plainFiles ) ) {
+ // Disable proxy to prevent file being encrypted twice
+ \OC_FileProxy::$enabled = false;
- return true;
+ // Encrypt unencrypted files
+ foreach ( $found['plain'] as $plainFile ) {
+
+ // Fetch data from file
+ $plainData = $this->view->file_get_contents( $plainFile['path'] );
+
+ // Encrypt data, generate catfile
+ $encrypted = Crypt::keyEncryptKeyfile( $plainData, $publicKey );
+
+ $relPath = $this->stripUserFilesPath( $plainFile['path'] );
+
+ // Save keyfile
+ Keymanager::setFileKey( $this->view, $relPath, $this->userId, $encrypted['key'] );
+
+ // Overwrite the existing file with the encrypted one
+ $this->view->file_put_contents( $plainFile['path'], $encrypted['data'] );
+
+ $size = strlen( $encrypted['data'] );
+
+ // Add the file to the cache
+ \OC\Files\Filesystem::putFileInfo( $plainFile['path'], array( 'encrypted'=>true, 'size' => $size ), '' );
+
+ }
+
+ // Encrypt legacy encrypted files
+ if (
+ ! empty( $legacyPassphrase )
+ && ! empty( $newPassphrase )
+ ) {
+
+ foreach ( $found['legacy'] as $legacyFile ) {
+
+ // Fetch data from file
+ $legacyData = $this->view->file_get_contents( $legacyFile['path'] );
+
+ // Recrypt data, generate catfile
+ $recrypted = Crypt::legacyKeyRecryptKeyfile( $legacyData, $legacyPassphrase, $publicKey, $newPassphrase );
+
+ $relPath = $this->stripUserFilesPath( $legacyFile['path'] );
+
+ // Save keyfile
+ Keymanager::setFileKey( $this->view, $relPath, $this->userId, $recrypted['key'] );
+
+ // Overwrite the existing file with the encrypted one
+ $this->view->file_put_contents( $legacyFile['path'], $recrypted['data'] );
+
+ $size = strlen( $recrypted['data'] );
+
+ // Add the file to the cache
+ \OC\Files\Filesystem::putFileInfo( $legacyFile['path'], array( 'encrypted'=>true, 'size' => $size ), '' );
+
+ }
+
+ }
+
+ \OC_FileProxy::$enabled = true;
+ // If files were found, return true
+ return true;
+
} else {
+ // If no files were found, return false
return false;
}
}
+ /**
+ * @brief Return important encryption related paths
+ * @param string $pathName Name of the directory to return the path of
+ * @return string path
+ */
public function getPath( $pathName ) {
switch ( $pathName ) {
diff --git a/apps/files_encryption/settings-personal.php b/apps/files_encryption/settings-personal.php
index 014288f2efe..6fe4ea6d564 100644
--- a/apps/files_encryption/settings-personal.php
+++ b/apps/files_encryption/settings-personal.php
@@ -1,29 +1,19 @@
<?php
/**
- * Copyright (c) 2012 Bjoern Schiessle <schiessle@owncloud.com>
+ * Copyright (c) 2013 Sam Tuke <samtuke@owncloud.com>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
-$sysEncMode = \OC_Appconfig::getValue('files_encryption', 'mode', 'none');
+$tmpl = new OCP\Template( 'files_encryption', 'settings-personal');
-if ($sysEncMode == 'user') {
+$blackList = explode( ',', \OCP\Config::getAppValue( 'files_encryption', 'type_blacklist', 'jpg,png,jpeg,avi,mpg,mpeg,mkv,mp3,oga,ogv,ogg' ) );
- $tmpl = new OCP\Template( 'files_encryption', 'settings-personal');
+$tmpl->assign( 'blacklist', $blackList );
- $query = \OC_DB::prepare( "SELECT mode FROM *PREFIX*encryption WHERE uid = ?" );
- $result = $query->execute(array(\OCP\User::getUser()));
-
- if ($row = $result->fetchRow()){
- $mode = $row['mode'];
- } else {
- $mode = 'none';
- }
-
- OCP\Util::addscript('files_encryption','settings-personal');
- $tmpl->assign('encryption_mode', $mode);
- return $tmpl->fetchPage();
-}
+OCP\Util::addscript('files_encryption','settings-personal');
+
+return $tmpl->fetchPage();
return null;
diff --git a/apps/files_encryption/templates/settings-personal.php b/apps/files_encryption/templates/settings-personal.php
index 1274bd3bb5c..1f71efb1735 100644
--- a/apps/files_encryption/templates/settings-personal.php
+++ b/apps/files_encryption/templates/settings-personal.php
@@ -1,45 +1,22 @@
<form id="encryption">
<fieldset class="personalblock">
- <strong><?php echo $l->t('Choose encryption mode:'); ?></strong>
+ <legend>
+ <?php echo $l->t( 'Encryption' ); ?>
+ </legend>
<p>
- <input
- type="hidden"
- name="prev_encryption_mode"
- id="prev_encryption_mode"
- value="<?php echo $_['encryption_mode']; ?>"
- >
-
- <input
- type="radio"
- name="encryption_mode"
- value="client"
- id='client_encryption'
- style="width:20px;"
- <?php if ($_['encryption_mode'] == 'client') echo "checked='checked'"?>
- />
- <?php echo $l->t('Client side encryption (most secure but makes it impossible to access your data from the web interface)'); ?>
- <br />
-
- <input
- type="radio"
- name="encryption_mode"
- value="server"
- id='server_encryption'
- style="width:20px;" <?php if ($_['encryption_mode'] == 'server') echo "checked='checked'"?>
- />
- <?php echo $l->t('Server side encryption (allows you to access your files from the web interface and the desktop client)'); ?>
- <br />
-
- <input
- type="radio"
- name="encryption_mode"
- value="none"
- id='none_encryption'
- style="width:20px;"
- <?php if ($_['encryption_mode'] == 'none') echo "checked='checked'"?>
- />
- <?php echo $l->t('None (no encryption at all)'); ?>
- <br/>
+ <?php echo $l->t( 'File encryption is enabled.' ); ?>
</p>
+ <?php if ( ! empty( $_["blacklist"] ) ): ?>
+ <p>
+ <?php $l->t( 'The following file types will not be encrypted:' ); ?>
+ </p>
+ <ul>
+ <?php foreach( $_["blacklist"] as $type ): ?>
+ <li>
+ <?php echo $type; ?>
+ </li>
+ <?php endforeach; ?>
+ </p>
+ <?php endif; ?>
</fieldset>
</form>
diff --git a/apps/files_encryption/templates/settings.php b/apps/files_encryption/templates/settings.php
index 544ec793f37..f7ef8a8efe6 100644
--- a/apps/files_encryption/templates/settings.php
+++ b/apps/files_encryption/templates/settings.php
@@ -1,77 +1,18 @@
<form id="encryption">
<fieldset class="personalblock">
- <strong>
- <?php echo $l->t('Choose encryption mode:'); ?>
- </strong>
-
- <p>
- <i>
- <?php echo $l->t('Important: Once you selected an encryption mode there is no way to change it back'); ?>
- </i>
- </p>
-
<p>
- <input
- type="radio"
- name="encryption_mode"
- id="client_encryption"
- value="client"
- style="width:20px;"
- <?php if ($_['encryption_mode'] == 'client') echo "checked='checked'"; if ($_['encryption_mode'] != 'none') echo "DISABLED"?>
- />
+ <strong><?php echo $l->t( 'Encryption' ); ?></strong>
- <?php echo $l->t("Client side encryption (most secure but makes it impossible to access your data from the web interface)"); ?>
+ <?php echo $l->t( "Exclude the following file types from encryption:" ); ?>
<br />
- <input
- type="radio"
- name="encryption_mode"
- id="server_encryption"
- value="server"
- style="width:20px;"
- <?php if ($_['encryption_mode'] == 'server') echo "checked='checked'"; if ($_['encryption_mode'] != 'none') echo "DISABLED"?>
- />
-
- <?php echo $l->t('Server side encryption (allows you to access your files from the web interface and the desktop client)'); ?>
- <br />
-
- <input
- type="radio"
- name="encryption_mode"
- id="user_encryption"
- value="user"
- style="width:20px;"
- <?php if ($_['encryption_mode'] == 'user') echo "checked='checked'"; if ($_['encryption_mode'] != 'none') echo "DISABLED"?>
- />
-
- <?php echo $l->t('User specific (let the user decide)'); ?>
- <br/>
-
- <input
- type="radio"
- name="encryption_mode"
- id="none_encryption"
- value="none"
- style="width:20px;"
- <?php if ($_['encryption_mode'] == 'none') echo "checked='checked'"; if ($_['encryption_mode'] != 'none') echo "DISABLED"?>
- />
-
- <?php echo $l->t('None (no encryption at all)'); ?>
- <br/>
-
- </p>
- <p>
- <strong><?php echo $l->t('Encryption'); ?></strong>
-
- <?php echo $l->t("Exclude the following file types from encryption"); ?>
-
<select
id='encryption_blacklist'
- title="<?php echo $l->t('None')?>"
+ title="<?php echo $l->t( 'None' )?>"
multiple="multiple">
<?php foreach($_["blacklist"] as $type): ?>
- <option selected="selected" value="<?php echo $type;?>"> <?php echo $type;?> </option>
+ <option selected="selected" value="<?php echo $type; ?>"> <?php echo $type; ?> </option>
<?php endforeach;?>
</select>
</p>
diff --git a/apps/files_encryption/test/crypt.php b/apps/files_encryption/test/crypt.php
index 19c10ab0ab5..aa87ec32821 100755
--- a/apps/files_encryption/test/crypt.php
+++ b/apps/files_encryption/test/crypt.php
@@ -416,13 +416,13 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase {
function testIsEncryptedContent() {
- $this->assertFalse( Encryption\Crypt::isEncryptedContent( $this->dataUrl ) );
+ $this->assertFalse( Encryption\Crypt::isCatfile( $this->dataUrl ) );
- $this->assertFalse( Encryption\Crypt::isEncryptedContent( $this->legacyEncryptedData ) );
+ $this->assertFalse( Encryption\Crypt::isCatfile( $this->legacyEncryptedData ) );
$keyfileContent = Encryption\Crypt::symmetricEncryptFileContent( $this->dataUrl, 'hat' );
- $this->assertTrue( Encryption\Crypt::isEncryptedContent( $keyfileContent ) );
+ $this->assertTrue( Encryption\Crypt::isCatfile( $keyfileContent ) );
}
diff --git a/apps/files_encryption/test/keymanager.php b/apps/files_encryption/test/keymanager.php
index f02d6eb5f7a..bf453fe3163 100644
--- a/apps/files_encryption/test/keymanager.php
+++ b/apps/files_encryption/test/keymanager.php
@@ -79,15 +79,13 @@ class Test_Keymanager extends \PHPUnit_Framework_TestCase {
# NOTE: This cannot be tested until we are able to break out
# of the FileSystemView data directory root
-// $key = Crypt::symmetricEncryptFileContentKeyfile( $this->data, 'hat' );
-//
-// $tmpPath = sys_get_temp_dir(). '/' . 'testSetFileKey';
-//
-// $view = new \OC_FilesystemView( '/tmp/' );
-//
-// //$view = new \OC_FilesystemView( '/' . $this->userId . '/files_encryption/keyfiles' );
-//
-// Encryption\Keymanager::setFileKey( $tmpPath, $key['key'], $view );
+ $key = Encryption\Crypt::symmetricEncryptFileContentKeyfile( $this->randomKey, 'hat' );
+
+ $path = 'unittest-'.time().'txt';
+
+ //$view = new \OC_FilesystemView( '/' . $this->userId . '/files_encryption/keyfiles' );
+
+ Encryption\Keymanager::setFileKey( $this->view, $path, $this->userId, $key['key'] );
}
diff --git a/apps/files_encryption/test/util.php b/apps/files_encryption/test/util.php
index a299ec67f59..1cdeff8008d 100755
--- a/apps/files_encryption/test/util.php
+++ b/apps/files_encryption/test/util.php
@@ -51,7 +51,7 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase {
$this->publicKeyPath = $this->publicKeyDir . '/' . $this->userId . '.public.key'; // e.g. data/public-keys/admin.public.key
$this->privateKeyPath = $this->encryptionDir . '/' . $this->userId . '.private.key'; // e.g. data/admin/admin.private.key
- $this->view = new OC_FilesystemView( '/admin' );
+ $this->view = new \OC_FilesystemView( '/' );
$this->mockView = m::mock('OC_FilesystemView');
$this->util = new Encryption\Util( $this->mockView, $this->userId );
@@ -88,8 +88,8 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase {
$mockView = m::mock('OC_FilesystemView');
- $mockView->shouldReceive( 'file_exists' )->times(4)->andReturn( false );
- $mockView->shouldReceive( 'mkdir' )->times(3)->andReturn( true );
+ $mockView->shouldReceive( 'file_exists' )->times(5)->andReturn( false );
+ $mockView->shouldReceive( 'mkdir' )->times(4)->andReturn( true );
$mockView->shouldReceive( 'file_put_contents' )->withAnyArgs();
$util = new Encryption\Util( $mockView, $this->userId );
@@ -105,7 +105,7 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase {
$mockView = m::mock('OC_FilesystemView');
- $mockView->shouldReceive( 'file_exists' )->times(5)->andReturn( true );
+ $mockView->shouldReceive( 'file_exists' )->times(6)->andReturn( true );
$mockView->shouldReceive( 'file_put_contents' )->withAnyArgs();
$util = new Encryption\Util( $mockView, $this->userId );
@@ -149,6 +149,21 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase {
# then false will be returned. Use strict ordering?
}
+
+ function testFindFiles() {
+
+// $this->view->chroot( "/data/{$this->userId}/files" );
+
+ $util = new Encryption\Util( $this->view, $this->userId );
+
+ $files = $util->findFiles( '/', 'encrypted' );
+
+ var_dump( $files );
+
+ # TODO: Add more tests here to check that if any of the dirs are
+ # then false will be returned. Use strict ordering?
+
+ }
// /**
// * @brief test decryption using legacy blowfish method
diff --git a/apps/files_external/l10n/af_ZA.php b/apps/files_external/l10n/af_ZA.php
new file mode 100644
index 00000000000..cf9b951828d
--- /dev/null
+++ b/apps/files_external/l10n/af_ZA.php
@@ -0,0 +1,3 @@
+<?php $TRANSLATIONS = array(
+"Users" => "Gebruikers"
+);
diff --git a/apps/files_external/l10n/lv.php b/apps/files_external/l10n/lv.php
index 26452f98b01..ee53346fcde 100644
--- a/apps/files_external/l10n/lv.php
+++ b/apps/files_external/l10n/lv.php
@@ -1,5 +1,26 @@
<?php $TRANSLATIONS = array(
+"Access granted" => "Piešķirta pieeja",
+"Error configuring Dropbox storage" => "Kļūda, konfigurējot Dropbox krātuvi",
+"Grant access" => "Piešķirt pieeju",
+"Fill out all required fields" => "Aizpildīt visus pieprasītos laukus",
+"Please provide a valid Dropbox app key and secret." => "Lūdzu, norādiet derīgu Dropbox lietotnes atslēgu un noslēpumu.",
+"Error configuring Google Drive storage" => "Kļūda, konfigurējot Google Drive krātuvi",
+"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Brīdinājums:</b> nav uzinstalēts “smbclient”. Nevar montēt CIFS/SMB koplietojumus. Lūdzu, vaicājiet savam sistēmas administratoram, lai to uzinstalē.",
+"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b>Brīdinājums: </b> uz PHP nav aktivēts vai instalēts FTP atbalsts. Nevar montēt FTP koplietojumus. Lūdzu, vaicājiet savam sistēmas administratoram, lai to uzinstalē.",
+"External Storage" => "Ārējā krātuve",
+"Mount point" => "Montēšanas punkts",
+"Backend" => "Aizmugure",
+"Configuration" => "Konfigurācija",
+"Options" => "Opcijas",
+"Applicable" => "Piemērojams",
+"Add mount point" => "Pievienot montēšanas punktu",
+"None set" => "Neviens nav iestatīts",
+"All Users" => "Visi lietotāji",
"Groups" => "Grupas",
"Users" => "Lietotāji",
-"Delete" => "Izdzēst"
+"Delete" => "Dzēst",
+"Enable User External Storage" => "Aktivēt lietotāja ārējo krātuvi",
+"Allow users to mount their own external storage" => "Ļaut lietotājiem montēt pašiem savu ārējo krātuvi",
+"SSL root certificates" => "SSL saknes sertifikāti",
+"Import Root Certificate" => "Importēt saknes sertifikātus"
);
diff --git a/apps/files_sharing/l10n/af_ZA.php b/apps/files_sharing/l10n/af_ZA.php
new file mode 100644
index 00000000000..344585a62fc
--- /dev/null
+++ b/apps/files_sharing/l10n/af_ZA.php
@@ -0,0 +1,4 @@
+<?php $TRANSLATIONS = array(
+"Password" => "Wagwoord",
+"web services under your control" => "webdienste onder jou beheer"
+);
diff --git a/apps/files_sharing/l10n/lv.php b/apps/files_sharing/l10n/lv.php
index 4d2eed23a25..0b224867089 100644
--- a/apps/files_sharing/l10n/lv.php
+++ b/apps/files_sharing/l10n/lv.php
@@ -1,3 +1,9 @@
<?php $TRANSLATIONS = array(
-"Download" => "Lejupielādēt"
+"Password" => "Parole",
+"Submit" => "Iesniegt",
+"%s shared the folder %s with you" => "%s ar jums dalījās ar mapi %s",
+"%s shared the file %s with you" => "%s ar jums dalījās ar datni %s",
+"Download" => "Lejupielādēt",
+"No preview available for" => "Nav pieejams priekšskatījums priekš",
+"web services under your control" => "jūsu vadībā esošie tīmekļa servisi"
);
diff --git a/apps/files_sharing/l10n/sr.php b/apps/files_sharing/l10n/sr.php
index 7a922b89002..6e277f67711 100644
--- a/apps/files_sharing/l10n/sr.php
+++ b/apps/files_sharing/l10n/sr.php
@@ -1,3 +1,5 @@
<?php $TRANSLATIONS = array(
-"Submit" => "Пошаљи"
+"Password" => "Лозинка",
+"Submit" => "Пошаљи",
+"Download" => "Преузми"
);
diff --git a/apps/files_trashbin/ajax/delete.php b/apps/files_trashbin/ajax/delete.php
new file mode 100644
index 00000000000..7a6bd1342ea
--- /dev/null
+++ b/apps/files_trashbin/ajax/delete.php
@@ -0,0 +1,24 @@
+<?php
+
+OCP\JSON::checkLoggedIn();
+OCP\JSON::callCheck();
+
+$file = $_REQUEST['file'];
+
+$path_parts = pathinfo($file);
+if ($path_parts['dirname'] == '.') {
+ $delimiter = strrpos($file, '.d');
+ $filename = substr($file, 0, $delimiter);
+ $timestamp = substr($file, $delimiter+2);
+} else {
+ $filename = $file;
+ $timestamp = null;
+}
+
+if (OCA\Files_Trashbin\Trashbin::delete($filename, $timestamp)) {
+ OCP\JSON::success(array("data" => array("filename" => $file)));
+} else {
+ $l = OC_L10N::get('files_trashbin');
+ OCP\JSON::error(array("data" => array("message" => $l->t("Couldn't delete %s permanently", array($file)))));
+}
+
diff --git a/apps/files_trashbin/ajax/undelete.php b/apps/files_trashbin/ajax/undelete.php
index ee1c64aaaf2..cc010979c51 100644
--- a/apps/files_trashbin/ajax/undelete.php
+++ b/apps/files_trashbin/ajax/undelete.php
@@ -22,7 +22,7 @@ foreach ($list as $file) {
$timestamp = null;
}
- if ( !OCA_Trash\Trashbin::restore($file, $filename, $timestamp) ) {
+ if ( !OCA\Files_Trashbin\Trashbin::restore($file, $filename, $timestamp) ) {
$error[] = $filename;
} else {
$success[$i]['filename'] = $file;
@@ -37,8 +37,10 @@ if ( $error ) {
foreach ( $error as $e ) {
$filelist .= $e.', ';
}
- OCP\JSON::error(array("data" => array("message" => "Couldn't restore ".rtrim($filelist,', '), "success" => $success, "error" => $error)));
+ $l = OC_L10N::get('files_trashbin');
+ $message = $l->t("Couldn't restore %s", array(rtrim($filelist,', ')));
+ OCP\JSON::error(array("data" => array("message" => $message,
+ "success" => $success, "error" => $error)));
} else {
OCP\JSON::success(array("data" => array("success" => $success)));
}
-
diff --git a/apps/files_trashbin/appinfo/app.php b/apps/files_trashbin/appinfo/app.php
index 3741d42c781..b1a15cd13d1 100644
--- a/apps/files_trashbin/appinfo/app.php
+++ b/apps/files_trashbin/appinfo/app.php
@@ -1,7 +1,7 @@
<?php
-OC::$CLASSPATH['OCA_Trash\Hooks'] = 'apps/files_trashbin/lib/hooks.php';
-OC::$CLASSPATH['OCA_Trash\Trashbin'] = 'apps/files_trashbin/lib/trash.php';
+OC::$CLASSPATH['OCA\Files_Trashbin\Hooks'] = 'apps/files_trashbin/lib/hooks.php';
+OC::$CLASSPATH['OCA\Files_Trashbin\Trashbin'] = 'apps/files_trashbin/lib/trash.php';
-OCP\Util::connectHook('OC_Filesystem', 'delete', "OCA_Trash\Hooks", "remove_hook");
+OCP\Util::connectHook('OC_Filesystem', 'delete', "OCA\Files_Trashbin\Hooks", "remove_hook");
diff --git a/apps/files_trashbin/js/disableDefaultActions.js b/apps/files_trashbin/js/disableDefaultActions.js
index 56b95407dd3..27c3e13db4d 100644
--- a/apps/files_trashbin/js/disableDefaultActions.js
+++ b/apps/files_trashbin/js/disableDefaultActions.js
@@ -1,3 +1,4 @@
/* disable download and sharing actions */
var disableDownloadActions = true;
var disableSharing = true;
+var trashBinApp = true; \ No newline at end of file
diff --git a/apps/files_trashbin/js/trash.js b/apps/files_trashbin/js/trash.js
index f1241fce51e..6c810e4c2bd 100644
--- a/apps/files_trashbin/js/trash.js
+++ b/apps/files_trashbin/js/trash.js
@@ -22,6 +22,31 @@ $(document).ready(function() {
});
};
+ FileActions.register('all', 'Delete', OC.PERMISSION_READ, function () {
+ return OC.imagePath('core', 'actions/delete');
+ }, function (filename) {
+ $('.tipsy').remove();
+
+ var tr=$('tr').filterAttr('data-file', filename);
+ var deleteAction = $('tr').filterAttr('data-file',filename).children("td.date").children(".action.delete");
+ var oldHTML = deleteAction[0].outerHTML;
+ var newHTML = '<img class="move2trash" data-action="Delete" title="'+t('files', 'delete file permanently')+'" src="'+ OC.imagePath('core', 'loading.gif') +'"></a>';
+ deleteAction[0].outerHTML = newHTML;
+
+ $.post(OC.filePath('files_trashbin','ajax','delete.php'),
+ {file:tr.attr('data-file') },
+ function(result){
+ if ( result.status == 'success' ) {
+ var row = document.getElementById(result.data.filename);
+ row.parentNode.removeChild(row);
+ } else {
+ deleteAction[0].outerHTML = oldHTML;
+ OC.dialogs.alert(result.data.message, 'Error');
+ }
+ });
+
+ });
+
// Sets the select_all checkbox behaviour :
$('#select_all').click(function() {
if($(this).attr('checked')){
diff --git a/apps/files_trashbin/l10n/ca.php b/apps/files_trashbin/l10n/ca.php
index 3af33c8a310..803b0c81ef0 100644
--- a/apps/files_trashbin/l10n/ca.php
+++ b/apps/files_trashbin/l10n/ca.php
@@ -1,5 +1,8 @@
<?php $TRANSLATIONS = array(
+"Couldn't delete %s permanently" => "No s'ha pogut esborrar permanentment %s",
+"Couldn't restore %s" => "No s'ha pogut restaurar %s",
"perform restore operation" => "executa l'operació de restauració",
+"delete file permanently" => "esborra el fitxer permanentment",
"Name" => "Nom",
"Deleted" => "Eliminat",
"1 folder" => "1 carpeta",
diff --git a/apps/files_trashbin/l10n/cs_CZ.php b/apps/files_trashbin/l10n/cs_CZ.php
index caaaea37436..eeb27784d3e 100644
--- a/apps/files_trashbin/l10n/cs_CZ.php
+++ b/apps/files_trashbin/l10n/cs_CZ.php
@@ -1,5 +1,8 @@
<?php $TRANSLATIONS = array(
+"Couldn't delete %s permanently" => "Nelze trvale odstranit %s",
+"Couldn't restore %s" => "Nelze obnovit %s",
"perform restore operation" => "provést obnovu",
+"delete file permanently" => "trvale odstranit soubor",
"Name" => "Název",
"Deleted" => "Smazáno",
"1 folder" => "1 složka",
diff --git a/apps/files_trashbin/l10n/de_DE.php b/apps/files_trashbin/l10n/de_DE.php
index 45e30d85a3b..e293bf0b2eb 100644
--- a/apps/files_trashbin/l10n/de_DE.php
+++ b/apps/files_trashbin/l10n/de_DE.php
@@ -1,5 +1,6 @@
<?php $TRANSLATIONS = array(
"perform restore operation" => "Führe die Wiederherstellung aus",
+"delete file permanently" => "Datei entgültig löschen",
"Name" => "Name",
"Deleted" => "Gelöscht",
"1 folder" => "1 Ordner",
diff --git a/apps/files_trashbin/l10n/es.php b/apps/files_trashbin/l10n/es.php
index 798322cab24..c14b9776473 100644
--- a/apps/files_trashbin/l10n/es.php
+++ b/apps/files_trashbin/l10n/es.php
@@ -1,8 +1,14 @@
<?php $TRANSLATIONS = array(
+"Couldn't delete %s permanently" => "No se puede eliminar %s permanentemente",
+"Couldn't restore %s" => "No se puede restaurar %s",
+"perform restore operation" => "Restaurar",
+"delete file permanently" => "Eliminar archivo permanentemente",
"Name" => "Nombre",
+"Deleted" => "Eliminado",
"1 folder" => "1 carpeta",
"{count} folders" => "{count} carpetas",
"1 file" => "1 archivo",
"{count} files" => "{count} archivos",
+"Nothing in here. Your trash bin is empty!" => "Nada aqui. La papelera esta vacia!",
"Restore" => "Recuperar"
);
diff --git a/apps/files_trashbin/l10n/fr.php b/apps/files_trashbin/l10n/fr.php
index 51ade82d908..609b2fa9bd7 100644
--- a/apps/files_trashbin/l10n/fr.php
+++ b/apps/files_trashbin/l10n/fr.php
@@ -1,5 +1,8 @@
<?php $TRANSLATIONS = array(
+"Couldn't delete %s permanently" => "Impossible d'effacer %s de façon permanente",
+"Couldn't restore %s" => "Impossible de restaurer %s",
"perform restore operation" => "effectuer l'opération de restauration",
+"delete file permanently" => "effacer définitivement le fichier",
"Name" => "Nom",
"Deleted" => "Effacé",
"1 folder" => "1 dossier",
diff --git a/apps/files_trashbin/l10n/it.php b/apps/files_trashbin/l10n/it.php
index 7def431a42a..8627682d088 100644
--- a/apps/files_trashbin/l10n/it.php
+++ b/apps/files_trashbin/l10n/it.php
@@ -1,5 +1,8 @@
<?php $TRANSLATIONS = array(
+"Couldn't delete %s permanently" => "Impossibile eliminare %s definitivamente",
+"Couldn't restore %s" => "Impossibile ripristinare %s",
"perform restore operation" => "esegui operazione di ripristino",
+"delete file permanently" => "elimina il file definitivamente",
"Name" => "Nome",
"Deleted" => "Eliminati",
"1 folder" => "1 cartella",
diff --git a/apps/files_trashbin/l10n/ja_JP.php b/apps/files_trashbin/l10n/ja_JP.php
index 0b4e1954e74..2bccf3f3bd5 100644
--- a/apps/files_trashbin/l10n/ja_JP.php
+++ b/apps/files_trashbin/l10n/ja_JP.php
@@ -1,5 +1,8 @@
<?php $TRANSLATIONS = array(
+"Couldn't delete %s permanently" => "%s を完全に削除出来ませんでした",
+"Couldn't restore %s" => "%s を復元出来ませんでした",
"perform restore operation" => "復元操作を実行する",
+"delete file permanently" => "ファイルを完全に削除する",
"Name" => "名前",
"Deleted" => "削除済み",
"1 folder" => "1 フォルダ",
diff --git a/apps/files_trashbin/l10n/lv.php b/apps/files_trashbin/l10n/lv.php
index 017a8d285c0..5ecb99b9892 100644
--- a/apps/files_trashbin/l10n/lv.php
+++ b/apps/files_trashbin/l10n/lv.php
@@ -1,5 +1,8 @@
<?php $TRANSLATIONS = array(
+"Couldn't delete %s permanently" => "Nevarēja pilnībā izdzēst %s",
+"Couldn't restore %s" => "Nevarēja atjaunot %s",
"perform restore operation" => "veikt atjaunošanu",
+"delete file permanently" => "dzēst datni pavisam",
"Name" => "Nosaukums",
"Deleted" => "Dzēsts",
"1 folder" => "1 mape",
diff --git a/apps/files_trashbin/l10n/nl.php b/apps/files_trashbin/l10n/nl.php
index 4efa6ecf662..a41a5c2fd9c 100644
--- a/apps/files_trashbin/l10n/nl.php
+++ b/apps/files_trashbin/l10n/nl.php
@@ -1,5 +1,6 @@
<?php $TRANSLATIONS = array(
"perform restore operation" => "uitvoeren restore operatie",
+"delete file permanently" => "verwijder bestanden definitief",
"Name" => "Naam",
"Deleted" => "Verwijderd",
"1 folder" => "1 map",
diff --git a/apps/files_trashbin/l10n/ru.php b/apps/files_trashbin/l10n/ru.php
index 23d739a2ff7..f6c85a6800e 100644
--- a/apps/files_trashbin/l10n/ru.php
+++ b/apps/files_trashbin/l10n/ru.php
@@ -1,7 +1,14 @@
<?php $TRANSLATIONS = array(
+"Couldn't delete %s permanently" => "%s не может быть удалён навсегда",
+"Couldn't restore %s" => "%s не может быть восстановлен",
+"perform restore operation" => "выполнить операцию восстановления",
+"delete file permanently" => "удалить файл навсегда",
"Name" => "Имя",
+"Deleted" => "Удалён",
"1 folder" => "1 папка",
"{count} folders" => "{count} папок",
"1 file" => "1 файл",
-"{count} files" => "{count} файлов"
+"{count} files" => "{count} файлов",
+"Nothing in here. Your trash bin is empty!" => "Здесь ничего нет. Ваша корзина пуста!",
+"Restore" => "Восстановить"
);
diff --git a/apps/files_trashbin/l10n/ru_RU.php b/apps/files_trashbin/l10n/ru_RU.php
index 8ef2658cf24..c5b1408e2cc 100644
--- a/apps/files_trashbin/l10n/ru_RU.php
+++ b/apps/files_trashbin/l10n/ru_RU.php
@@ -3,5 +3,6 @@
"1 folder" => "1 папка",
"{count} folders" => "{количество} папок",
"1 file" => "1 файл",
-"{count} files" => "{количество} файлов"
+"{count} files" => "{количество} файлов",
+"Restore" => "Восстановить"
);
diff --git a/apps/files_trashbin/l10n/sk_SK.php b/apps/files_trashbin/l10n/sk_SK.php
index 854c17ad48e..759850783e2 100644
--- a/apps/files_trashbin/l10n/sk_SK.php
+++ b/apps/files_trashbin/l10n/sk_SK.php
@@ -1,8 +1,13 @@
<?php $TRANSLATIONS = array(
+"Couldn't restore %s" => "Nemožno obnoviť %s",
+"perform restore operation" => "vykonať obnovu",
+"delete file permanently" => "trvalo zmazať súbor",
"Name" => "Meno",
+"Deleted" => "Zmazané",
"1 folder" => "1 priečinok",
"{count} folders" => "{count} priečinkov",
"1 file" => "1 súbor",
"{count} files" => "{count} súborov",
+"Nothing in here. Your trash bin is empty!" => "Žiadny obsah. Kôš je prázdny!",
"Restore" => "Obnoviť"
);
diff --git a/apps/files_trashbin/l10n/sv.php b/apps/files_trashbin/l10n/sv.php
index ca4dba04967..5bde85e7056 100644
--- a/apps/files_trashbin/l10n/sv.php
+++ b/apps/files_trashbin/l10n/sv.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"perform restore operation" => "utför återställning",
"Name" => "Namn",
"Deleted" => "Raderad",
"1 folder" => "1 mapp",
diff --git a/apps/files_trashbin/lib/hooks.php b/apps/files_trashbin/lib/hooks.php
index d3bee105b51..d6a62d447b8 100644
--- a/apps/files_trashbin/lib/hooks.php
+++ b/apps/files_trashbin/lib/hooks.php
@@ -24,7 +24,7 @@
* This class contains all hooks.
*/
-namespace OCA_Trash;
+namespace OCA\Files_Trashbin;
class Hooks {
diff --git a/apps/files_trashbin/lib/trash.php b/apps/files_trashbin/lib/trash.php
index a7eff3d44e0..bc6562b2080 100644
--- a/apps/files_trashbin/lib/trash.php
+++ b/apps/files_trashbin/lib/trash.php
@@ -20,7 +20,7 @@
*
*/
-namespace OCA_Trash;
+namespace OCA\Files_Trashbin;
class Trashbin {
@@ -65,7 +65,7 @@ class Trashbin {
if ( \OCP\App::isEnabled('files_versions') ) {
if ( $view->is_dir('files_versions'.$file_path) ) {
$view->rename('files_versions'.$file_path, 'versions_trashbin/'. $deleted.'.d'.$timestamp);
- } else if ( $versions = \OCA_Versions\Storage::getVersions($file_path) ) {
+ } else if ( $versions = \OCA\Files_Versions\Storage::getVersions($file_path) ) {
foreach ($versions as $v) {
$view->rename('files_versions'.$v['path'].'.v'.$v['version'], 'versions_trashbin/'. $deleted.'.v'.$v['version'].'.d'.$timestamp);
}
@@ -151,6 +151,45 @@ class Trashbin {
}
/**
+ * delete file from trash bin permanently
+ * @param $filename path to the file
+ * @param $timestamp of deletion time
+ * @return true/false
+ */
+ public static function delete($filename, $timestamp=null) {
+
+ $user = \OCP\User::getUser();
+ $view = new \OC_FilesystemView('/'.$user);
+
+ if ( $timestamp ) {
+ $query = \OC_DB::prepare('DELETE FROM *PREFIX*files_trash WHERE user=? AND id=? AND timestamp=?');
+ $query->execute(array($user,$filename,$timestamp));
+ $file = $filename.'.d'.$timestamp;
+ } else {
+ $file = $filename;
+ }
+
+ if ( \OCP\App::isEnabled('files_versions') ) {
+ if ($view->is_dir('versions_trashbin/'.$file)) {
+ $view->unlink('versions_trashbin/'.$file);
+ } else if ( $versions = self::getVersionsFromTrash($file, $timestamp) ) {
+ foreach ($versions as $v) {
+ if ($timestamp ) {
+ $view->unlink('versions_trashbin/'.$filename.'.v'.$v.'.d'.$timestamp);
+ } else {
+ $view->unlink('versions_trashbin/'.$file.'.v'.$v);
+ }
+ }
+ }
+ }
+
+ $view->unlink('/files_trashbin/'.$file);
+
+ return true;
+ }
+
+
+ /**
* clean up the trash bin
*/
private static function expire() {
diff --git a/apps/files_trashbin/templates/index.php b/apps/files_trashbin/templates/index.php
index c3e51b4becd..24e4a0e6c69 100644
--- a/apps/files_trashbin/templates/index.php
+++ b/apps/files_trashbin/templates/index.php
@@ -9,7 +9,7 @@
<div id="emptyfolder"><?php echo $l->t('Nothing in here. Your trash bin is empty!')?></div>
<?php endif; ?>
-<table>
+<table class="hascontrols">
<thead>
<tr>
<th id='headerName'>
diff --git a/apps/files_versions/ajax/getVersions.php b/apps/files_versions/ajax/getVersions.php
index 600e69cf798..53fc04625c6 100644
--- a/apps/files_versions/ajax/getVersions.php
+++ b/apps/files_versions/ajax/getVersions.php
@@ -5,7 +5,7 @@ $userDirectory = "/".OCP\USER::getUser()."/files";
$source = $_GET['source'];
$count = 5; //show the newest revisions
-if( ($versions = OCA_Versions\Storage::getVersions( $source, $count)) ) {
+if( ($versions = OCA\Files_Versions\Storage::getVersions( $source, $count)) ) {
$versionsFormatted = array();
diff --git a/apps/files_versions/ajax/rollbackVersion.php b/apps/files_versions/ajax/rollbackVersion.php
index f2c211d9c1e..2970915ac63 100644
--- a/apps/files_versions/ajax/rollbackVersion.php
+++ b/apps/files_versions/ajax/rollbackVersion.php
@@ -8,9 +8,10 @@ $userDirectory = "/".OCP\USER::getUser()."/files";
$file = $_GET['file'];
$revision=(int)$_GET['revision'];
-if(OCA_Versions\Storage::rollback( $file, $revision )) {
+if(OCA\Files_Versions\Storage::rollback( $file, $revision )) {
OCP\JSON::success(array("data" => array( "revision" => $revision, "file" => $file )));
}else{
- OCP\JSON::error(array("data" => array( "message" => "Could not revert:" . $file )));
+ $l = OC_L10N::get('files_versions');
+ OCP\JSON::error(array("data" => array( "message" => $l->t("Could not revert: %s", array($file) ))));
}
diff --git a/apps/files_versions/appinfo/app.php b/apps/files_versions/appinfo/app.php
index 9ac86728cc6..d45c0c99a73 100644
--- a/apps/files_versions/appinfo/app.php
+++ b/apps/files_versions/appinfo/app.php
@@ -1,9 +1,10 @@
<?php
//require_once 'files_versions/versions.php';
-OC::$CLASSPATH['OCA_Versions\Storage'] = 'apps/files_versions/lib/versions.php';
-OC::$CLASSPATH['OCA_Versions\Hooks'] = 'apps/files_versions/lib/hooks.php';
-OC::$CLASSPATH['OC_Files_Versions_Capabiltiies'] = 'apps/files_versions/lib/capabilities.php';
+OC::$CLASSPATH['OCA\Files_Versions\Storage'] = 'apps/files_versions/lib/versions.php';
+OC::$CLASSPATH['OCA\Files_Versions\Hooks'] = 'apps/files_versions/lib/hooks.php';
+OC::$CLASSPATH['OCA\Files_Versions\Capabiltiies'] = 'apps/files_versions/lib/capabilities.php';
+
OCP\App::registerAdmin('files_versions', 'settings');
OCP\App::registerPersonal('files_versions', 'settings-personal');
@@ -11,7 +12,7 @@ OCP\App::registerPersonal('files_versions', 'settings-personal');
OCP\Util::addscript('files_versions', 'versions');
// Listen to write signals
-OCP\Util::connectHook('OC_Filesystem', 'write', "OCA_Versions\Hooks", "write_hook");
+OCP\Util::connectHook('OC_Filesystem', 'write', "OCA\Files_Versions\Hooks", "write_hook");
// Listen to delete and rename signals
-OCP\Util::connectHook('OC_Filesystem', 'post-delete', "OCA_Versions\Hooks", "remove_hook");
-OCP\Util::connectHook('OC_Filesystem', 'rename', "OCA_Versions\Hooks", "rename_hook"); \ No newline at end of file
+OCP\Util::connectHook('OC_Filesystem', 'post-delete', "OCA\Files_Versions\Hooks", "remove_hook");
+OCP\Util::connectHook('OC_Filesystem', 'rename', "OCA\Files_Versions\Hooks", "rename_hook");
diff --git a/apps/files_versions/history.php b/apps/files_versions/history.php
index 6071240e583..437a3fec065 100644
--- a/apps/files_versions/history.php
+++ b/apps/files_versions/history.php
@@ -24,27 +24,34 @@
OCP\User::checkLoggedIn( );
OCP\Util::addStyle('files_versions', 'versions');
$tmpl = new OCP\Template( 'files_versions', 'history', 'user' );
+$l = OC_L10N::get('files_versions');
if ( isset( $_GET['path'] ) ) {
$path = $_GET['path'];
$tmpl->assign( 'path', $path );
- $versions = new OCA_Versions\Storage();
+ $versions = new OCA\Files_Versions\Storage();
// roll back to old version if button clicked
if( isset( $_GET['revert'] ) ) {
if( $versions->rollback( $path, $_GET['revert'] ) ) {
- $tmpl->assign( 'outcome_stat', 'success' );
+ $tmpl->assign( 'outcome_stat', $l->t('success') );
- $tmpl->assign( 'outcome_msg', "File {$_GET['path']} was reverted to version ".OCP\Util::formatDate( doubleval($_GET['revert']) ) );
+ $message = $l->t('File %s was reverted to version %s',
+ array($_GET['path'], OCP\Util::formatDate( doubleval($_GET['revert']) ) ) );
+
+ $tmpl->assign( 'outcome_msg', $message);
} else {
- $tmpl->assign( 'outcome_stat', 'failure' );
+ $tmpl->assign( 'outcome_stat', $l->t('failure') );
+
+ $message = $l->t('File %s could not be reverted to version %s',
+ array($_GET['path'], OCP\Util::formatDate( doubleval($_GET['revert']) ) ) );
- $tmpl->assign( 'outcome_msg', "File {$_GET['path']} could not be reverted to version ".OCP\Util::formatDate( doubleval($_GET['revert']) ) );
+ $tmpl->assign( 'outcome_msg', $message);
}
@@ -52,18 +59,18 @@ if ( isset( $_GET['path'] ) ) {
// show the history only if there is something to show
$count = 999; //show the newest revisions
- if( ($versions = OCA_Versions\Storage::getVersions( $path, $count)) ) {
+ if( ($versions = OCA\Files_Versions\Storage::getVersions( $path, $count)) ) {
$tmpl->assign( 'versions', array_reverse( $versions ) );
}else{
- $tmpl->assign( 'message', 'No old versions available' );
+ $tmpl->assign( 'message', $l->t('No old versions available') );
}
}else{
- $tmpl->assign( 'message', 'No path specified' );
+ $tmpl->assign( 'message', $l->t('No path specified') );
}
diff --git a/apps/files_versions/l10n/ca.php b/apps/files_versions/l10n/ca.php
index 01e0a116873..fc900c47dc7 100644
--- a/apps/files_versions/l10n/ca.php
+++ b/apps/files_versions/l10n/ca.php
@@ -1,5 +1,13 @@
<?php $TRANSLATIONS = array(
+"Could not revert: %s" => "No s'ha pogut revertir: %s",
+"success" => "èxit",
+"File %s was reverted to version %s" => "El fitxer %s s'ha revertit a la versió %s",
+"failure" => "fallada",
+"File %s could not be reverted to version %s" => "El fitxer %s no s'ha pogut revertir a la versió %s",
+"No old versions available" => "No hi ha versións antigues disponibles",
+"No path specified" => "No heu especificat el camí",
"History" => "Historial",
+"Revert a file to a previous version by clicking on its revert button" => "Reverteix un fitxer a una versió anterior fent clic en el seu botó de reverteix",
"Files Versioning" => "Fitxers de Versions",
"Enable" => "Habilita"
);
diff --git a/apps/files_versions/l10n/cs_CZ.php b/apps/files_versions/l10n/cs_CZ.php
index d219c3e68da..22d4a2ad827 100644
--- a/apps/files_versions/l10n/cs_CZ.php
+++ b/apps/files_versions/l10n/cs_CZ.php
@@ -1,5 +1,13 @@
<?php $TRANSLATIONS = array(
+"Could not revert: %s" => "Nelze navrátit: %s",
+"success" => "úspěch",
+"File %s was reverted to version %s" => "Soubor %s byl navrácen na verzi %s",
+"failure" => "sehlhání",
+"File %s could not be reverted to version %s" => "Soubor %s nemohl být navrácen na verzi %s",
+"No old versions available" => "Nejsou dostupné žádné starší verze",
+"No path specified" => "Nezadána cesta",
"History" => "Historie",
+"Revert a file to a previous version by clicking on its revert button" => "Navraťte soubor do předchozí verze kliknutím na tlačítko navrátit",
"Files Versioning" => "Verzování souborů",
"Enable" => "Povolit"
);
diff --git a/apps/files_versions/l10n/de_DE.php b/apps/files_versions/l10n/de_DE.php
index 2fcb996de7b..cf33bb071e6 100644
--- a/apps/files_versions/l10n/de_DE.php
+++ b/apps/files_versions/l10n/de_DE.php
@@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
+"success" => "Erfolgreich",
+"failure" => "Fehlgeschlagen",
+"No old versions available" => "keine älteren Versionen verfügbar",
+"No path specified" => "Kein Pfad angegeben",
"History" => "Historie",
"Files Versioning" => "Dateiversionierung",
"Enable" => "Aktivieren"
diff --git a/apps/files_versions/l10n/es.php b/apps/files_versions/l10n/es.php
index 4a8c34e5180..608e171a4b1 100644
--- a/apps/files_versions/l10n/es.php
+++ b/apps/files_versions/l10n/es.php
@@ -1,5 +1,13 @@
<?php $TRANSLATIONS = array(
+"Could not revert: %s" => "No se puede revertir: %s",
+"success" => "exitoso",
+"File %s was reverted to version %s" => "El archivo %s fue revertido a la version %s",
+"failure" => "fallo",
+"File %s could not be reverted to version %s" => "El archivo %s no puede ser revertido a la version %s",
+"No old versions available" => "No hay versiones antiguas disponibles",
+"No path specified" => "Ruta no especificada",
"History" => "Historial",
+"Revert a file to a previous version by clicking on its revert button" => "Revertir un archivo a una versión anterior haciendo clic en el boton de revertir",
"Files Versioning" => "Versionado de archivos",
"Enable" => "Habilitar"
);
diff --git a/apps/files_versions/l10n/fr.php b/apps/files_versions/l10n/fr.php
index 2d26b98860a..6b2cf9ba6b5 100644
--- a/apps/files_versions/l10n/fr.php
+++ b/apps/files_versions/l10n/fr.php
@@ -1,5 +1,13 @@
<?php $TRANSLATIONS = array(
+"Could not revert: %s" => "Impossible de restaurer %s",
+"success" => "succès",
+"File %s was reverted to version %s" => "Le fichier %s a été restauré dans sa version %s",
+"failure" => "échec",
+"File %s could not be reverted to version %s" => "Le fichier %s ne peut être restauré dans sa version %s",
+"No old versions available" => "Aucune ancienne version n'est disponible",
+"No path specified" => "Aucun chemin spécifié",
"History" => "Historique",
+"Revert a file to a previous version by clicking on its revert button" => "Restaurez un fichier dans une version antérieure en cliquant sur son bouton de restauration",
"Files Versioning" => "Versionnage des fichiers",
"Enable" => "Activer"
);
diff --git a/apps/files_versions/l10n/it.php b/apps/files_versions/l10n/it.php
index c57b0930111..3289f7f68d1 100644
--- a/apps/files_versions/l10n/it.php
+++ b/apps/files_versions/l10n/it.php
@@ -1,5 +1,13 @@
<?php $TRANSLATIONS = array(
+"Could not revert: %s" => "Impossibild ripristinare: %s",
+"success" => "completata",
+"File %s was reverted to version %s" => "Il file %s è stato ripristinato alla versione %s",
+"failure" => "non riuscita",
+"File %s could not be reverted to version %s" => "Il file %s non può essere ripristinato alla versione %s",
+"No old versions available" => "Non sono disponibili versioni precedenti",
+"No path specified" => "Nessun percorso specificato",
"History" => "Cronologia",
+"Revert a file to a previous version by clicking on its revert button" => "Ripristina un file a una versione precedente facendo clic sul rispettivo pulsante di ripristino",
"Files Versioning" => "Controllo di versione dei file",
"Enable" => "Abilita"
);
diff --git a/apps/files_versions/l10n/ja_JP.php b/apps/files_versions/l10n/ja_JP.php
index c97ba3d00ee..16018765708 100644
--- a/apps/files_versions/l10n/ja_JP.php
+++ b/apps/files_versions/l10n/ja_JP.php
@@ -1,5 +1,13 @@
<?php $TRANSLATIONS = array(
+"Could not revert: %s" => "元に戻せませんでした: %s",
+"success" => "成功",
+"File %s was reverted to version %s" => "ファイル %s をバージョン %s に戻しました",
+"failure" => "失敗",
+"File %s could not be reverted to version %s" => "ファイル %s をバージョン %s に戻せませんでした",
+"No old versions available" => "利用可能な古いバージョンはありません",
+"No path specified" => "パスが指定されていません",
"History" => "履歴",
+"Revert a file to a previous version by clicking on its revert button" => "もとに戻すボタンをクリックすると、ファイルを過去のバージョンに戻します",
"Files Versioning" => "ファイルのバージョン管理",
"Enable" => "有効化"
);
diff --git a/apps/files_versions/l10n/lv.php b/apps/files_versions/l10n/lv.php
index e363693e45d..2203dc706b8 100644
--- a/apps/files_versions/l10n/lv.php
+++ b/apps/files_versions/l10n/lv.php
@@ -1,3 +1,13 @@
<?php $TRANSLATIONS = array(
+"Could not revert: %s" => "Nevarēja atgriezt — %s",
+"success" => "veiksme",
+"File %s was reverted to version %s" => "Datne %s tika atgriezt uz versiju %s",
+"failure" => "neveiksme",
+"File %s could not be reverted to version %s" => "Datni %s nevarēja atgriezt uz versiju %s",
+"No old versions available" => "Nav pieejamu vecāku versiju",
+"No path specified" => "Nav norādīts ceļš",
+"History" => "Vēsture",
+"Revert a file to a previous version by clicking on its revert button" => "Atgriez datni uz iepriekšēju versiju, spiežot uz tās atgriešanas pogu",
+"Files Versioning" => "Datņu versiju izskošana",
"Enable" => "Aktivēt"
);
diff --git a/apps/files_versions/l10n/ru.php b/apps/files_versions/l10n/ru.php
index 4c7fb501091..221d24ce8d1 100644
--- a/apps/files_versions/l10n/ru.php
+++ b/apps/files_versions/l10n/ru.php
@@ -1,5 +1,13 @@
<?php $TRANSLATIONS = array(
+"Could not revert: %s" => "Не может быть возвращён: %s",
+"success" => "успех",
+"File %s was reverted to version %s" => "Файл %s был возвращён к версии %s",
+"failure" => "провал",
+"File %s could not be reverted to version %s" => "Файл %s не может быть возвращён к версии %s",
+"No old versions available" => "Нет доступных старых версий",
+"No path specified" => "Путь не указан",
"History" => "История",
+"Revert a file to a previous version by clicking on its revert button" => "Вернуть файл к предыдущей версии нажатием на кнопку возврата",
"Files Versioning" => "Версии файлов",
"Enable" => "Включить"
);
diff --git a/apps/files_versions/l10n/sk_SK.php b/apps/files_versions/l10n/sk_SK.php
index a3a3567cb4f..8a59286b5a5 100644
--- a/apps/files_versions/l10n/sk_SK.php
+++ b/apps/files_versions/l10n/sk_SK.php
@@ -1,4 +1,9 @@
<?php $TRANSLATIONS = array(
+"success" => "uspech",
+"File %s was reverted to version %s" => "Subror %s bol vrateny na verziu %s",
+"failure" => "chyba",
+"No old versions available" => "Nie sú dostupné žiadne staršie verzie",
+"No path specified" => "Nevybrali ste cestu",
"History" => "História",
"Files Versioning" => "Vytváranie verzií súborov",
"Enable" => "Zapnúť"
diff --git a/apps/files_versions/lib/hooks.php b/apps/files_versions/lib/hooks.php
index 5cefc532895..dc02c605c44 100644
--- a/apps/files_versions/lib/hooks.php
+++ b/apps/files_versions/lib/hooks.php
@@ -10,7 +10,7 @@
* This class contains all hooks.
*/
-namespace OCA_Versions;
+namespace OCA\Files_Versions;
class Hooks {
diff --git a/apps/files_versions/lib/versions.php b/apps/files_versions/lib/versions.php
index 003d548d2b2..b54bc4a4422 100644
--- a/apps/files_versions/lib/versions.php
+++ b/apps/files_versions/lib/versions.php
@@ -13,7 +13,7 @@
* A class to handle the versioning of files.
*/
-namespace OCA_Versions;
+namespace OCA\Files_Versions;
class Storage {
@@ -195,6 +195,7 @@ class Storage {
$files_view = new \OC_FilesystemView('/'.$uid.'/files');
$local_file = $files_view->getLocalFile($filename);
+ $local_file_md5 = \md5_file( $local_file );
foreach( $matches as $ma ) {
$parts = explode( '.v', $ma );
@@ -206,7 +207,7 @@ class Storage {
$versions[$key]['size'] = $versions_fileview->filesize($filename.'.v'.$version);
// if file with modified date exists, flag it in array as currently enabled version
- ( \md5_file( $ma ) == \md5_file( $local_file ) ? $versions[$key]['fileMatch'] = 1 : $versions[$key]['fileMatch'] = 0 );
+ ( \md5_file( $ma ) == $local_file_md5 ? $versions[$key]['fileMatch'] = 1 : $versions[$key]['fileMatch'] = 0 );
}
@@ -333,7 +334,8 @@ class Storage {
}
// calculate available space for version history
- $rootInfo = \OC_FileCache::get('', '/'. $uid . '/files');
+ $files_view = new \OC_FilesystemView('/'.$uid.'/files');
+ $rootInfo = $files_view->getFileInfo('/');
$free = $quota-$rootInfo['size']; // remaining free space for user
if ( $free > 0 ) {
$availableSpace = ($free * self::DEFAULTMAXSIZE / 100) - $versionsSize; // how much space can be used for versions
diff --git a/apps/files_versions/templates/history.php b/apps/files_versions/templates/history.php
index cc5a494f19e..850ece89c98 100644
--- a/apps/files_versions/templates/history.php
+++ b/apps/files_versions/templates/history.php
@@ -17,7 +17,7 @@ if( isset( $_['message'] ) ) {
}
echo( '<strong>Versions of '.$_['path'] ).'</strong><br>';
- echo('<p><em>Revert a file to a previous version by clicking on its revert button</em></p><br />');
+ echo('<p><em>'.$l->t('Revert a file to a previous version by clicking on its revert button').'</em></p><br />');
foreach ( $_['versions'] as $v ) {
echo ' ';
diff --git a/apps/user_ldap/l10n/af_ZA.php b/apps/user_ldap/l10n/af_ZA.php
new file mode 100644
index 00000000000..944495f3869
--- /dev/null
+++ b/apps/user_ldap/l10n/af_ZA.php
@@ -0,0 +1,4 @@
+<?php $TRANSLATIONS = array(
+"Password" => "Wagwoord",
+"Help" => "Hulp"
+);
diff --git a/apps/user_ldap/l10n/bn_BD.php b/apps/user_ldap/l10n/bn_BD.php
index 6c347eab879..69dfc896179 100644
--- a/apps/user_ldap/l10n/bn_BD.php
+++ b/apps/user_ldap/l10n/bn_BD.php
@@ -18,7 +18,6 @@
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "কোন স্থান ধারক ব্যতীত, উদাহরণঃ\"objectClass=posixGroup\"।",
"Port" => "পোর্ট",
"Use TLS" => "TLS ব্যবহার কর",
-"Do not use it for SSL connections, it will fail." => "SSL সংযোগের জন্য এটি ব্যবহার করবেন না, তাহলে ব্যর্থ হবেনই।",
"Case insensitve LDAP server (Windows)" => "বর্ণ অসংবেদী LDAP সার্ভার (উইন্ডোজ)",
"Turn off SSL certificate validation." => "SSL সনদপত্র যাচাইকরণ বন্ধ রাক।",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "শুধুমাত্র যদি এই বিকল্পটি ব্যবহার করেই সংযোগ কার্যকরী হয় তবে আপনার ownCloud সার্ভারে LDAP সার্ভারের SSL সনদপত্রটি আমদানি করুন।",
diff --git a/apps/user_ldap/l10n/ca.php b/apps/user_ldap/l10n/ca.php
index 7cfbac6c743..e4f27e25a7f 100644
--- a/apps/user_ldap/l10n/ca.php
+++ b/apps/user_ldap/l10n/ca.php
@@ -33,6 +33,7 @@
"Group Filter" => "Filtre de grup",
"Defines the filter to apply, when retrieving groups." => "Defineix el filtre a aplicar quan es mostren grups.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "sense cap paràmetre de substitució, per exemple \"objectClass=grupPosix\".",
+"Connection Settings" => "Arranjaments de connexió",
"Configuration Active" => "Configuració activa",
"When unchecked, this configuration will be skipped." => "Si està desmarcat, aquesta configuració s'ometrà.",
"Port" => "Port",
@@ -42,12 +43,13 @@
"Disable Main Server" => "Desactiva el servidor principal",
"When switched on, ownCloud will only connect to the replica server." => "Quan està connectat, ownCloud només es connecta al servidor de la rèplica.",
"Use TLS" => "Usa TLS",
-"Do not use it for SSL connections, it will fail." => "No ho useu en connexions SSL, fallarà.",
+"Do not use it additionally for LDAPS connections, it will fail." => "No ho useu adicionalment per a conexions LDAPS, fallarà.",
"Case insensitve LDAP server (Windows)" => "Servidor LDAP sense distinció entre majúscules i minúscules (Windows)",
"Turn off SSL certificate validation." => "Desactiva la validació de certificat SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Si la connexió només funciona amb aquesta opció, importeu el certificat SSL del servidor LDAP en el vostre servidor ownCloud.",
"Not recommended, use for testing only." => "No recomanat, ús només per proves.",
"in seconds. A change empties the cache." => "en segons. Un canvi buidarà la memòria de cau.",
+"Directory Settings" => "Arranjaments de carpetes",
"User Display Name Field" => "Camp per mostrar el nom d'usuari",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Atribut LDAP a usar per generar el nom d'usuari ownCloud.",
"Base User Tree" => "Arbre base d'usuaris",
@@ -60,6 +62,7 @@
"One Group Base DN per line" => "Una DN Base de Grup per línia",
"Group Search Attributes" => "Atributs de cerca de grup",
"Group-Member association" => "Associació membres-grup",
+"Special Attributes" => "Atributs especials",
"in bytes" => "en bytes",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Deixeu-ho buit pel nom d'usuari (per defecte). Altrament, especifiqueu un atribut LDAP/AD.",
"Help" => "Ajuda"
diff --git a/apps/user_ldap/l10n/cs_CZ.php b/apps/user_ldap/l10n/cs_CZ.php
index 0aace1f7410..4c74f195cf4 100644
--- a/apps/user_ldap/l10n/cs_CZ.php
+++ b/apps/user_ldap/l10n/cs_CZ.php
@@ -43,7 +43,7 @@
"Disable Main Server" => "Zakázat hlavní serveru",
"When switched on, ownCloud will only connect to the replica server." => "Při zapnutí se ownCloud připojí pouze k záložnímu serveru",
"Use TLS" => "Použít TLS",
-"Do not use it for SSL connections, it will fail." => "Nepoužívejte pro připojení pomocí SSL, připojení selže.",
+"Do not use it additionally for LDAPS connections, it will fail." => "Nepoužívejte pro spojení LDAP, selže.",
"Case insensitve LDAP server (Windows)" => "LDAP server nerozlišující velikost znaků (Windows)",
"Turn off SSL certificate validation." => "Vypnout ověřování SSL certifikátu.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Pokud připojení pracuje pouze s touto možností, tak importujte SSL certifikát SSL serveru do Vašeho serveru ownCloud",
diff --git a/apps/user_ldap/l10n/da.php b/apps/user_ldap/l10n/da.php
index dd7fb8a1a0c..9329c4e8a24 100644
--- a/apps/user_ldap/l10n/da.php
+++ b/apps/user_ldap/l10n/da.php
@@ -14,7 +14,6 @@
"Defines the filter to apply, when retrieving groups." => "Definere filteret der bruges når der indlæses grupper.",
"Port" => "Port",
"Use TLS" => "Brug TLS",
-"Do not use it for SSL connections, it will fail." => "Brug ikke til SSL forbindelser, da den vil fejle.",
"Turn off SSL certificate validation." => "Deaktiver SSL certifikat validering",
"Not recommended, use for testing only." => "Anbefales ikke, brug kun for at teste.",
"User Display Name Field" => "User Display Name Field",
diff --git a/apps/user_ldap/l10n/de.php b/apps/user_ldap/l10n/de.php
index df680465c98..618e7a32457 100644
--- a/apps/user_ldap/l10n/de.php
+++ b/apps/user_ldap/l10n/de.php
@@ -23,7 +23,6 @@
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "ohne Platzhalter, z.B.: \"objectClass=posixGroup\"",
"Port" => "Port",
"Use TLS" => "Nutze TLS",
-"Do not use it for SSL connections, it will fail." => "Verwende dies nicht für SSL-Verbindungen, es wird fehlschlagen.",
"Case insensitve LDAP server (Windows)" => "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)",
"Turn off SSL certificate validation." => "Schalte die SSL-Zertifikatsprüfung aus.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Falls die Verbindung es erfordert, muss das SSL-Zertifikat des LDAP-Server importiert werden.",
diff --git a/apps/user_ldap/l10n/de_DE.php b/apps/user_ldap/l10n/de_DE.php
index 4859b223576..7d3847f8a89 100644
--- a/apps/user_ldap/l10n/de_DE.php
+++ b/apps/user_ldap/l10n/de_DE.php
@@ -4,6 +4,7 @@
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Die Konfiguration ist valide, aber das Herstellen einer Verbindung schlug fehl. Bitte überprüfen Sie die Server-Einstellungen und Zertifikate.",
"The configuration is invalid. Please look in the ownCloud log for further details." => "Die Konfiguration ist nicht valide. Weitere Details können Sie im ownCloud-Log nachlesen.",
"Deletion failed" => "Löschen fehlgeschlagen",
+"Take over settings from recent server configuration?" => "Sollen die Einstellungen der letzten Server-Konfiguration übernommen werden?",
"Keep settings?" => "Einstellungen behalten?",
"Cannot add server configuration" => "Das Hinzufügen der Server-Konfiguration schlug fehl",
"Connection test succeeded" => "Verbindungs-Test erfolgreich",
@@ -32,28 +33,35 @@
"Group Filter" => "Gruppen-Filter",
"Defines the filter to apply, when retrieving groups." => "Definiert den Filter für die Anfrage der Gruppen.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "ohne Platzhalter, z.B.: \"objectClass=posixGroup\"",
+"Connection Settings" => "Verbindungs-Einstellungen",
"Configuration Active" => "Konfiguration aktiv",
"When unchecked, this configuration will be skipped." => "Wenn nicht angehakt, wird diese Konfiguration übersprungen.",
"Port" => "Port",
"Backup (Replica) Host" => "Back-Up (Replikation) Host",
+"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Optionaler Backup Host. Es muss ein Replikat des eigentlichen LDAP/AD Servers sein.",
"Backup (Replica) Port" => "Back-Up (Replikation) Port",
+"Disable Main Server" => "Hauptserver deaktivieren",
+"When switched on, ownCloud will only connect to the replica server." => "Wenn eingeschaltet wird sich ownCloud nur mit dem Replilat-Server verbinden.",
"Use TLS" => "Nutze TLS",
-"Do not use it for SSL connections, it will fail." => "Verwenden Sie dies nicht für SSL-Verbindungen, es wird fehlschlagen.",
"Case insensitve LDAP server (Windows)" => "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)",
"Turn off SSL certificate validation." => "Schalten Sie die SSL-Zertifikatsprüfung aus.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Falls die Verbindung es erfordert, muss das SSL-Zertifikat des LDAP-Server importiert werden.",
"Not recommended, use for testing only." => "Nicht empfohlen, nur zu Testzwecken.",
"in seconds. A change empties the cache." => "in Sekunden. Eine Änderung leert den Cache.",
+"Directory Settings" => "Verzeichnis-Einstellungen",
"User Display Name Field" => "Feld für den Anzeigenamen des Benutzers",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Das LDAP-Attribut für die Generierung des Benutzernamens in ownCloud. ",
"Base User Tree" => "Basis-Benutzerbaum",
"One User Base DN per line" => "Ein Benutzer Base DN pro Zeile",
+"User Search Attributes" => "Benutzer-Suche Eigenschaften",
"Optional; one attribute per line" => "Optional; Ein Attribut pro Zeile",
"Group Display Name Field" => "Feld für den Anzeigenamen der Gruppe",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Das LDAP-Attribut für die Generierung des Gruppennamens in ownCloud. ",
"Base Group Tree" => "Basis-Gruppenbaum",
"One Group Base DN per line" => "Ein Gruppen Base DN pro Zeile",
+"Group Search Attributes" => "Gruppen-Suche Eigenschaften",
"Group-Member association" => "Assoziation zwischen Gruppe und Benutzer",
+"Special Attributes" => "besondere Eigenschaften",
"in bytes" => "in Bytes",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Ohne Eingabe wird der Benutzername (Standard) verwendet. Anderenfall trage ein LDAP/AD-Attribut ein.",
"Help" => "Hilfe"
diff --git a/apps/user_ldap/l10n/el.php b/apps/user_ldap/l10n/el.php
index 3951c94dfa7..7c0940dc09c 100644
--- a/apps/user_ldap/l10n/el.php
+++ b/apps/user_ldap/l10n/el.php
@@ -20,7 +20,6 @@
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "χωρίς κάποια μεταβλητή, π.χ. \"objectClass=ΟμάδαPosix\".",
"Port" => "Θύρα",
"Use TLS" => "Χρήση TLS",
-"Do not use it for SSL connections, it will fail." => "Μην χρησιμοποιείτε για συνδέσεις SSL, θα αποτύχει.",
"Case insensitve LDAP server (Windows)" => "LDAP server (Windows) με διάκριση πεζών-ΚΕΦΑΛΑΙΩΝ",
"Turn off SSL certificate validation." => "Απενεργοποίηση επικύρωσης πιστοποιητικού SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Εάν η σύνδεση δουλεύει μόνο με αυτή την επιλογή, εισάγετε το LDAP SSL πιστοποιητικό του διακομιστή στον ownCloud server σας.",
diff --git a/apps/user_ldap/l10n/eo.php b/apps/user_ldap/l10n/eo.php
index 2a2b70603c5..3ffcbddb3e3 100644
--- a/apps/user_ldap/l10n/eo.php
+++ b/apps/user_ldap/l10n/eo.php
@@ -17,7 +17,6 @@
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "sen ajna referencilo, ekz.: \"objectClass=posixGroup\".",
"Port" => "Pordo",
"Use TLS" => "Uzi TLS-on",
-"Do not use it for SSL connections, it will fail." => "Ne uzu ĝin por SSL-konektoj, ĝi malsukcesos.",
"Case insensitve LDAP server (Windows)" => "LDAP-servilo blinda je litergrandeco (Vindozo)",
"Turn off SSL certificate validation." => "Malkapabligi validkontrolon de SSL-atestiloj.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se la konekto nur funkcias kun ĉi tiu malnepro, enportu la SSL-atestilo de la LDAP-servilo en via ownCloud-servilo.",
diff --git a/apps/user_ldap/l10n/es.php b/apps/user_ldap/l10n/es.php
index a6d1d9d260d..c0a444c0c7d 100644
--- a/apps/user_ldap/l10n/es.php
+++ b/apps/user_ldap/l10n/es.php
@@ -4,6 +4,7 @@
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "La configuración es válida, pero falló el Enlace. Por favor, compruebe la configuración del servidor y las credenciales.",
"The configuration is invalid. Please look in the ownCloud log for further details." => "La configuración no es válida. Por favor, busque en el log de ownCloud para más detalles.",
"Deletion failed" => "Falló el borrado",
+"Take over settings from recent server configuration?" => "Hacerse cargo de los ajustes de configuración del servidor reciente?",
"Keep settings?" => "Mantener la configuración?",
"Cannot add server configuration" => "No se puede añadir la configuración del servidor",
"Connection test succeeded" => "La prueba de conexión fue exitosa",
@@ -13,6 +14,7 @@
"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Advertencia:</b> Los Apps user_ldap y user_webdavauth son incompatibles. Puede que experimente un comportamiento inesperado. Pregunte al administrador del sistema para desactivar uno de ellos.",
"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Advertencia:</b> El módulo LDAP de PHP no está instalado, el sistema no funcionará. Por favor consulte al administrador del sistema para instalarlo.",
"Server configuration" => "Configuración del Servidor",
+"Add Server Configuration" => "Agregar configuracion del servidor",
"Host" => "Máquina",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Puede omitir el protocolo, excepto si requiere SSL. En ese caso, empiece con ldaps://",
"Base DN" => "DN base",
@@ -31,23 +33,36 @@
"Group Filter" => "Filtro de grupo",
"Defines the filter to apply, when retrieving groups." => "Define el filtro a aplicar, cuando se obtienen grupos.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "Con cualquier placeholder, ej: \"objectClass=posixGroup\".",
+"Connection Settings" => "Configuracion de coneccion",
+"Configuration Active" => "Configuracion activa",
+"When unchecked, this configuration will be skipped." => "Cuando deseleccione, esta configuracion sera omitida.",
"Port" => "Puerto",
+"Backup (Replica) Host" => "Host para backup (Replica)",
+"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Dar un host de copia de seguridad opcional. Debe ser una réplica del servidor principal LDAP / AD.",
+"Backup (Replica) Port" => "Puerto para backup (Replica)",
+"Disable Main Server" => "Deshabilitar servidor principal",
+"When switched on, ownCloud will only connect to the replica server." => "Cuando se inicie, ownCloud unicamente estara conectado al servidor replica",
"Use TLS" => "Usar TLS",
-"Do not use it for SSL connections, it will fail." => "No usarlo para SSL, habrá error.",
+"Do not use it additionally for LDAPS connections, it will fail." => "No usar adicionalmente para conecciones LDAPS, estas fallaran",
"Case insensitve LDAP server (Windows)" => "Servidor de LDAP sensible a mayúsculas/minúsculas (Windows)",
"Turn off SSL certificate validation." => "Apagar la validación por certificado SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Si la conexión sólo funciona con esta opción, importe el certificado SSL del servidor LDAP en su servidor ownCloud.",
"Not recommended, use for testing only." => "No recomendado, sólo para pruebas.",
"in seconds. A change empties the cache." => "en segundos. Un cambio vacía la cache.",
+"Directory Settings" => "Configuracion de directorio",
"User Display Name Field" => "Campo de nombre de usuario a mostrar",
"The LDAP attribute to use to generate the user`s ownCloud name." => "El atributo LDAP a usar para generar el nombre de usuario de ownCloud.",
"Base User Tree" => "Árbol base de usuario",
"One User Base DN per line" => "Un DN Base de Usuario por línea",
+"User Search Attributes" => "Atributos de la busqueda de usuario",
+"Optional; one attribute per line" => "Opcional; un atributo por linea",
"Group Display Name Field" => "Campo de nombre de grupo a mostrar",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "El atributo LDAP a usar para generar el nombre de los grupos de ownCloud.",
"Base Group Tree" => "Árbol base de grupo",
"One Group Base DN per line" => "Un DN Base de Grupo por línea",
+"Group Search Attributes" => "Atributos de busqueda de grupo",
"Group-Member association" => "Asociación Grupo-Miembro",
+"Special Attributes" => "Atributos especiales",
"in bytes" => "en bytes",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Vacío para el nombre de usuario (por defecto). En otro caso, especifique un atributo LDAP/AD.",
"Help" => "Ayuda"
diff --git a/apps/user_ldap/l10n/es_AR.php b/apps/user_ldap/l10n/es_AR.php
index dce2321e6b1..a87444a270c 100644
--- a/apps/user_ldap/l10n/es_AR.php
+++ b/apps/user_ldap/l10n/es_AR.php
@@ -1,7 +1,17 @@
<?php $TRANSLATIONS = array(
+"Failed to delete the server configuration" => "Fallo al borrar la configuración del servidor",
+"The configuration is valid and the connection could be established!" => "La configuración es valida y la conexión pudo ser establecida.",
"Deletion failed" => "Error al borrar",
+"Keep settings?" => "¿Mantener preferencias?",
+"Cannot add server configuration" => "No se pudo añadir la configuración del servidor",
+"Connection test succeeded" => "El este de conexión ha sido completado satisfactoriamente",
+"Connection test failed" => "Falló es test de conexión",
+"Do you really want to delete the current Server Configuration?" => "¿Realmente desea borrar la configuración actual del servidor?",
+"Confirm Deletion" => "Confirmar borrado",
"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Advertencia:</b> Los Apps user_ldap y user_webdavauth son incompatibles. Puede que experimente un comportamiento inesperado. Pregunte al administrador del sistema para desactivar uno de ellos.",
"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Atención:</b> El módulo PHP LDAP no está instalado, este elemento no va a funcionar. Por favor, pedile al administrador que lo instale.",
+"Server configuration" => "Configuración del Servidor",
+"Add Server Configuration" => "Añadir Configuración del Servidor",
"Host" => "Servidor",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Podés omitir el protocolo, excepto si SSL es requerido. En ese caso, empezá con ldaps://",
"Base DN" => "DN base",
@@ -20,14 +30,17 @@
"Group Filter" => "Filtro de grupo",
"Defines the filter to apply, when retrieving groups." => "Define el filtro a aplicar cuando se obtienen grupos.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "Sin ninguna plantilla, p. ej.: \"objectClass=posixGroup\".",
+"Connection Settings" => "Configuración de Conección",
+"Configuration Active" => "Configuración activa",
"Port" => "Puerto",
+"Disable Main Server" => "Deshabilitar el Servidor Principal",
"Use TLS" => "Usar TLS",
-"Do not use it for SSL connections, it will fail." => "No usarlo para SSL, dará error.",
"Case insensitve LDAP server (Windows)" => "Servidor de LDAP sensible a mayúsculas/minúsculas (Windows)",
"Turn off SSL certificate validation." => "Desactivar la validación por certificado SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Si la conexión sólo funciona con esta opción, importá el certificado SSL del servidor LDAP en tu servidor ownCloud.",
"Not recommended, use for testing only." => "No recomendado, sólo para pruebas.",
"in seconds. A change empties the cache." => "en segundos. Cambiarlo vacía la cache.",
+"Directory Settings" => "Configuración de Directorio",
"User Display Name Field" => "Campo de nombre de usuario a mostrar",
"The LDAP attribute to use to generate the user`s ownCloud name." => "El atributo LDAP a usar para generar el nombre de usuario de ownCloud.",
"Base User Tree" => "Árbol base de usuario",
@@ -37,6 +50,7 @@
"Base Group Tree" => "Árbol base de grupo",
"One Group Base DN per line" => "Una DN base de grupo por línea",
"Group-Member association" => "Asociación Grupo-Miembro",
+"Special Attributes" => "Atributos Especiales",
"in bytes" => "en bytes",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Vacío para el nombre de usuario (por defecto). En otro caso, especificá un atributo LDAP/AD.",
"Help" => "Ayuda"
diff --git a/apps/user_ldap/l10n/et_EE.php b/apps/user_ldap/l10n/et_EE.php
index ba03a8a8093..91eb38c7c5f 100644
--- a/apps/user_ldap/l10n/et_EE.php
+++ b/apps/user_ldap/l10n/et_EE.php
@@ -19,7 +19,6 @@
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "ilma ühegi kohatäitjata, nt. \"objectClass=posixGroup\".",
"Port" => "Port",
"Use TLS" => "Kasutaja TLS",
-"Do not use it for SSL connections, it will fail." => "Ära kasuta seda SSL ühenduse jaoks, see ei toimi.",
"Case insensitve LDAP server (Windows)" => "Mittetõstutundlik LDAP server (Windows)",
"Turn off SSL certificate validation." => "Lülita SSL sertifikaadi kontrollimine välja.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Kui ühendus toimib ainult selle valikuga, siis impordi LDAP serveri SSL sertifikaat oma ownCloud serverisse.",
diff --git a/apps/user_ldap/l10n/eu.php b/apps/user_ldap/l10n/eu.php
index 2aad2363ce9..97c23f86480 100644
--- a/apps/user_ldap/l10n/eu.php
+++ b/apps/user_ldap/l10n/eu.php
@@ -22,7 +22,6 @@
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "txantiloirik gabe, adb. \"objectClass=posixGroup\".",
"Port" => "Portua",
"Use TLS" => "Erabili TLS",
-"Do not use it for SSL connections, it will fail." => "Ez erabili SSL konexioetan, huts egingo du.",
"Case insensitve LDAP server (Windows)" => "Maiuskulak eta minuskulak ezberditzen ez dituen LDAP zerbitzaria (windows)",
"Turn off SSL certificate validation." => "Ezgaitu SSL ziurtagirien egiaztapena.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Konexioa aukera hau ezinbestekoa badu, inportatu LDAP zerbitzariaren SSL ziurtagiria zure ownCloud zerbitzarian.",
diff --git a/apps/user_ldap/l10n/fa.php b/apps/user_ldap/l10n/fa.php
index e3955d3f32d..7ddd7dad5c3 100644
--- a/apps/user_ldap/l10n/fa.php
+++ b/apps/user_ldap/l10n/fa.php
@@ -1,5 +1,6 @@
<?php $TRANSLATIONS = array(
"Deletion failed" => "حذف کردن انجام نشد",
+"Keep settings?" => "آیا تنظیمات ذخیره شود ؟",
"Host" => "میزبانی",
"Password" => "رمز عبور",
"Port" => "درگاه",
diff --git a/apps/user_ldap/l10n/fi_FI.php b/apps/user_ldap/l10n/fi_FI.php
index 4f8fd3f2d17..1c2a92f844a 100644
--- a/apps/user_ldap/l10n/fi_FI.php
+++ b/apps/user_ldap/l10n/fi_FI.php
@@ -19,7 +19,6 @@
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "ilman paikanvaraustermiä, ts. \"objectClass=posixGroup\".",
"Port" => "Portti",
"Use TLS" => "Käytä TLS:ää",
-"Do not use it for SSL connections, it will fail." => "Älä käytä SSL-yhteyttä varten, se epäonnistuu. ",
"Case insensitve LDAP server (Windows)" => "Kirjainkoosta piittamaton LDAP-palvelin (Windows)",
"Turn off SSL certificate validation." => "Poista käytöstä SSL-varmenteen vahvistus",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Jos yhteys toimii vain tällä valinnalla, siirrä LDAP-palvelimen SSL-varmenne ownCloud-palvelimellesi.",
diff --git a/apps/user_ldap/l10n/fr.php b/apps/user_ldap/l10n/fr.php
index a2879b4fa03..abe13635698 100644
--- a/apps/user_ldap/l10n/fr.php
+++ b/apps/user_ldap/l10n/fr.php
@@ -33,6 +33,7 @@
"Group Filter" => "Filtre de groupes",
"Defines the filter to apply, when retrieving groups." => "Définit le filtre à appliquer lors de la récupération des groupes.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "sans élément de substitution, par exemple \"objectClass=posixGroup\".",
+"Connection Settings" => "Paramètres de connexion",
"Configuration Active" => "Configuration active",
"When unchecked, this configuration will be skipped." => "Lorsque non cochée, la configuration sera ignorée.",
"Port" => "Port",
@@ -42,12 +43,13 @@
"Disable Main Server" => "Désactiver le serveur principal",
"When switched on, ownCloud will only connect to the replica server." => "Lorsqu'activé, ownCloud ne se connectera qu'au serveur répliqué.",
"Use TLS" => "Utiliser TLS",
-"Do not use it for SSL connections, it will fail." => "Ne pas utiliser pour les connexions SSL, car cela échouera.",
+"Do not use it additionally for LDAPS connections, it will fail." => "À ne pas utiliser pour les connexions LDAPS (cela échouera).",
"Case insensitve LDAP server (Windows)" => "Serveur LDAP insensible à la casse (Windows)",
"Turn off SSL certificate validation." => "Désactiver la validation du certificat SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Si la connexion ne fonctionne qu'avec cette option, importez le certificat SSL du serveur LDAP dans le serveur ownCloud.",
"Not recommended, use for testing only." => "Non recommandé, utilisation pour tests uniquement.",
"in seconds. A change empties the cache." => "en secondes. Tout changement vide le cache.",
+"Directory Settings" => "Paramètres du répertoire",
"User Display Name Field" => "Champ \"nom d'affichage\" de l'utilisateur",
"The LDAP attribute to use to generate the user`s ownCloud name." => "L'attribut LDAP utilisé pour générer les noms d'utilisateurs d'ownCloud.",
"Base User Tree" => "DN racine de l'arbre utilisateurs",
@@ -60,6 +62,7 @@
"One Group Base DN per line" => "Un DN racine groupe par ligne",
"Group Search Attributes" => "Recherche des attributs du groupe",
"Group-Member association" => "Association groupe-membre",
+"Special Attributes" => "Attributs spéciaux",
"in bytes" => "en octets",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Laisser vide ",
"Help" => "Aide"
diff --git a/apps/user_ldap/l10n/gl.php b/apps/user_ldap/l10n/gl.php
index a2531a40a83..36c1f7af114 100644
--- a/apps/user_ldap/l10n/gl.php
+++ b/apps/user_ldap/l10n/gl.php
@@ -20,7 +20,6 @@
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "sen ningunha marca de posición, como p.ex «objectClass=grupoPosix».",
"Port" => "Porto",
"Use TLS" => "Usar TLS",
-"Do not use it for SSL connections, it will fail." => "Non empregalo para conexións SSL: fallará.",
"Case insensitve LDAP server (Windows)" => "Servidor LDAP que non distingue entre maiúsculas e minúsculas (Windows)",
"Turn off SSL certificate validation." => "Desactiva a validación do certificado SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se a conexión só funciona con esta opción importa o certificado SSL do servidor LDAP no seu servidor ownCloud.",
diff --git a/apps/user_ldap/l10n/hu_HU.php b/apps/user_ldap/l10n/hu_HU.php
index 64de16fa65f..48a0823a583 100644
--- a/apps/user_ldap/l10n/hu_HU.php
+++ b/apps/user_ldap/l10n/hu_HU.php
@@ -22,7 +22,6 @@
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "itt ne használjunk változót, pl. \"objectClass=posixGroup\".",
"Port" => "Port",
"Use TLS" => "Használjunk TLS-t",
-"Do not use it for SSL connections, it will fail." => "Ne használjuk SSL-kapcsolat esetén, mert nem fog működni!",
"Case insensitve LDAP server (Windows)" => "Az LDAP-kiszolgáló nem tesz különbséget a kis- és nagybetűk között (Windows)",
"Turn off SSL certificate validation." => "Ne ellenőrizzük az SSL-tanúsítvány érvényességét",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Ha a kapcsolat csak ezzel a beállítással működik, akkor importálja az LDAP-kiszolgáló SSL tanúsítványát az ownCloud kiszolgálóra!",
diff --git a/apps/user_ldap/l10n/id.php b/apps/user_ldap/l10n/id.php
index 33e8cc70e93..c07892386d6 100644
--- a/apps/user_ldap/l10n/id.php
+++ b/apps/user_ldap/l10n/id.php
@@ -6,7 +6,6 @@
"Group Filter" => "saringan grup",
"Port" => "port",
"Use TLS" => "gunakan TLS",
-"Do not use it for SSL connections, it will fail." => "jangan gunakan untuk koneksi SSL, itu akan gagal.",
"Turn off SSL certificate validation." => "matikan validasi sertivikat SSL",
"Not recommended, use for testing only." => "tidak disarankan, gunakan hanya untuk pengujian.",
"in seconds. A change empties the cache." => "dalam detik. perubahan mengosongkan cache",
diff --git a/apps/user_ldap/l10n/it.php b/apps/user_ldap/l10n/it.php
index 0220aa958ce..594529190d9 100644
--- a/apps/user_ldap/l10n/it.php
+++ b/apps/user_ldap/l10n/it.php
@@ -43,7 +43,7 @@
"Disable Main Server" => "Disabilita server principale",
"When switched on, ownCloud will only connect to the replica server." => "Se abilitata, ownCloud si collegherà solo al server di replica.",
"Use TLS" => "Usa TLS",
-"Do not use it for SSL connections, it will fail." => "Non utilizzare per le connessioni SSL, fallirà.",
+"Do not use it additionally for LDAPS connections, it will fail." => "Da non utilizzare per le connessioni LDAPS, non funzionerà.",
"Case insensitve LDAP server (Windows)" => "Case insensitve LDAP server (Windows)",
"Turn off SSL certificate validation." => "Disattiva il controllo del certificato SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se la connessione funziona esclusivamente con questa opzione, importa il certificato SSL del server LDAP nel tuo server ownCloud.",
diff --git a/apps/user_ldap/l10n/ja_JP.php b/apps/user_ldap/l10n/ja_JP.php
index 7706357cbf3..11ad6cc7a37 100644
--- a/apps/user_ldap/l10n/ja_JP.php
+++ b/apps/user_ldap/l10n/ja_JP.php
@@ -43,7 +43,7 @@
"Disable Main Server" => "メインサーバを無効にする",
"When switched on, ownCloud will only connect to the replica server." => "有効にすると、ownCloudはレプリカサーバにのみ接続します。",
"Use TLS" => "TLSを利用",
-"Do not use it for SSL connections, it will fail." => "SSL接続に利用しないでください、失敗します。",
+"Do not use it additionally for LDAPS connections, it will fail." => "LDAPS接続のために追加でそれを利用しないで下さい。失敗します。",
"Case insensitve LDAP server (Windows)" => "大文字/小文字を区別しないLDAPサーバ(Windows)",
"Turn off SSL certificate validation." => "SSL証明書の確認を無効にする。",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "接続がこのオプションでのみ動作する場合は、LDAPサーバのSSL証明書をownCloudサーバにインポートしてください。",
diff --git a/apps/user_ldap/l10n/ko.php b/apps/user_ldap/l10n/ko.php
index 9ff8ff99d08..419e2d0a690 100644
--- a/apps/user_ldap/l10n/ko.php
+++ b/apps/user_ldap/l10n/ko.php
@@ -22,7 +22,6 @@
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "자리 비움자를 사용할 수 없습니다. 예제: \"objectClass=posixGroup\"",
"Port" => "포트",
"Use TLS" => "TLS 사용",
-"Do not use it for SSL connections, it will fail." => "SSL 연결 시 사용하는 경우 연결되지 않습니다.",
"Case insensitve LDAP server (Windows)" => "서버에서 대소문자를 구분하지 않음 (Windows)",
"Turn off SSL certificate validation." => "SSL 인증서 유효성 검사를 해제합니다.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "이 옵션을 사용해야 연결할 수 있는 경우에는 LDAP 서버의 SSL 인증서를 ownCloud로 가져올 수 있습니다.",
diff --git a/apps/user_ldap/l10n/lv.php b/apps/user_ldap/l10n/lv.php
index 52353472e4d..34e9196b8d9 100644
--- a/apps/user_ldap/l10n/lv.php
+++ b/apps/user_ldap/l10n/lv.php
@@ -1,3 +1,69 @@
<?php $TRANSLATIONS = array(
+"Failed to delete the server configuration" => "Neizdevās izdzēst servera konfigurāciju",
+"The configuration is valid and the connection could be established!" => "Konfigurācija ir derīga un varēja izveidot savienojumu!",
+"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurācija ir derīga, bet sasaiste neizdevās. Lūdzu, pārbaudiet servera iestatījumus un akreditācijas datus.",
+"The configuration is invalid. Please look in the ownCloud log for further details." => "Konfigurācija ir nederīga. Lūdzu, apskatiet ownCloud žurnālu, lai uzzinātu vairāk.",
+"Deletion failed" => "Neizdevās izdzēst",
+"Take over settings from recent server configuration?" => "Paņemt iestatījumus no nesenas servera konfigurācijas?",
+"Keep settings?" => "Paturēt iestatījumus?",
+"Cannot add server configuration" => "Nevar pievienot servera konfigurāciju",
+"Connection test succeeded" => "Savienojuma tests ir veiksmīgs",
+"Connection test failed" => "Savienojuma tests cieta neveiksmi",
+"Do you really want to delete the current Server Configuration?" => "Vai tiešām vēlaties dzēst pašreizējo servera konfigurāciju?",
+"Confirm Deletion" => "Apstiprināt dzēšanu",
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Brīdinājums:</b> lietotnes user_ldap un user_webdavauth ir nesavietojamas. Tās var izraisīt negaidītu uzvedību. Lūdzu, prasiet savam sistēmas administratoram kādu no tām deaktivēt.",
+"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Brīdinājums:</b> PHP LDAP modulis nav uzinstalēts, aizmugure nedarbosies. Lūdzu, prasiet savam sistēmas administratoram kādu no tām deaktivēt.",
+"Server configuration" => "Servera konfigurācija",
+"Add Server Configuration" => "Pievienot servera konfigurāciju",
+"Host" => "Resursdators",
+"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Var neiekļaut protokolu, izņemot, ja vajag SSL. Tad sākums ir ldaps://",
+"Base DN" => "Bāzes DN",
+"One Base DN per line" => "Viena bāzes DN rindā",
+"You can specify Base DN for users and groups in the Advanced tab" => "Lietotājiem un grupām bāzes DN var norādīt cilnē “Paplašināti”",
+"User DN" => "Lietotāja DN",
+"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "Klienta lietotāja DN, ar ko veiks sasaisti, piemēram, uid=agent,dc=example,dc=com. Lai piekļūtu anonīmi, atstājiet DN un paroli tukšu.",
+"Password" => "Parole",
+"For anonymous access, leave DN and Password empty." => "Lai piekļūtu anonīmi, atstājiet DN un paroli tukšu.",
+"User Login Filter" => "Lietotāja ierakstīšanās filtrs",
+"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "Definē filtru, ko izmantot, kad mēģina ierakstīties. %%uid ierakstīšanās darbībā aizstāj lietotājvārdu.",
+"use %%uid placeholder, e.g. \"uid=%%uid\"" => "lieto %%uid vietturi, piemēram, \"uid=%%uid\"",
+"User List Filter" => "Lietotāju saraksta filtrs",
+"Defines the filter to apply, when retrieving users." => "Definē filtru, ko izmantot, kad saņem lietotāju sarakstu.",
+"without any placeholder, e.g. \"objectClass=person\"." => "bez jebkādiem vietturiem, piemēram, \"objectClass=person\".",
+"Group Filter" => "Grupu filtrs",
+"Defines the filter to apply, when retrieving groups." => "Definē filtru, ko izmantot, kad saņem grupu sarakstu.",
+"without any placeholder, e.g. \"objectClass=posixGroup\"." => "bez jebkādiem vietturiem, piemēram, \"objectClass=posixGroup\".",
+"Connection Settings" => "Savienojuma iestatījumi",
+"Configuration Active" => "Konfigurācija ir aktīva",
+"When unchecked, this configuration will be skipped." => "Ja nav atzīmēts, šī konfigurācija tiks izlaista.",
+"Port" => "Ports",
+"Backup (Replica) Host" => "Rezerves (kopija) serveris",
+"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Norādi rezerves serveri (nav obligāti). Tam ir jābūt galvenā LDAP/AD servera kopijai.",
+"Backup (Replica) Port" => "Rezerves (kopijas) ports",
+"Disable Main Server" => "Deaktivēt galveno serveri",
+"When switched on, ownCloud will only connect to the replica server." => "Kad ieslēgts, ownCloud savienosies tikai ar kopijas serveri.",
+"Use TLS" => "Lietot TLS",
+"Do not use it additionally for LDAPS connections, it will fail." => "Neizmanto papildu LDAPS savienojumus! Tas nestrādās.",
+"Case insensitve LDAP server (Windows)" => "Reģistrnejutīgs LDAP serveris (Windows)",
+"Turn off SSL certificate validation." => "Izslēgt SSL sertifikātu validēšanu.",
+"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Ja savienojums darbojas ar šo opciju, importē LDAP serveru SSL sertifikātu savā ownCloud serverī.",
+"Not recommended, use for testing only." => "Nav ieteicams, izmanto tikai testēšanai!",
+"in seconds. A change empties the cache." => "sekundēs. Izmaiņas iztukšos kešatmiņu.",
+"Directory Settings" => "Direktorijas iestatījumi",
+"User Display Name Field" => "Lietotāja redzamā vārda lauks",
+"The LDAP attribute to use to generate the user`s ownCloud name." => "LDAP atribūts, ko izmantot lietotāja ownCloud vārda veidošanai.",
+"Base User Tree" => "Bāzes lietotāju koks",
+"One User Base DN per line" => "Viena lietotāju bāzes DN rindā",
+"User Search Attributes" => "Lietotāju meklēšanas atribūts",
+"Optional; one attribute per line" => "Neobligāti; viens atribūts rindā",
+"Group Display Name Field" => "Grupas redzamā nosaukuma lauks",
+"The LDAP attribute to use to generate the groups`s ownCloud name." => "LDAP atribūts, ko izmantot grupas ownCloud nosaukuma veidošanai.",
+"Base Group Tree" => "Bāzes grupu koks",
+"One Group Base DN per line" => "Viena grupu bāzes DN rindā",
+"Group Search Attributes" => "Grupu meklēšanas atribūts",
+"Group-Member association" => "Grupu piederības asociācija",
+"Special Attributes" => "Īpašie atribūti",
+"in bytes" => "baitos",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Atstāt tukšu lietotāja vārdam (noklusējuma). Citādi, norādi LDAP/AD atribūtu.",
"Help" => "Palīdzība"
);
diff --git a/apps/user_ldap/l10n/nb_NO.php b/apps/user_ldap/l10n/nb_NO.php
index 295166b0a50..8aab71354b0 100644
--- a/apps/user_ldap/l10n/nb_NO.php
+++ b/apps/user_ldap/l10n/nb_NO.php
@@ -4,7 +4,6 @@
"Group Filter" => "Gruppefilter",
"Port" => "Port",
"Use TLS" => "Bruk TLS",
-"Do not use it for SSL connections, it will fail." => "Ikke bruk for SSL tilkoblinger, dette vil ikke fungere.",
"Not recommended, use for testing only." => "Ikke anbefalt, bruk kun for testing",
"in seconds. A change empties the cache." => "i sekunder. En endring tømmer bufferen.",
"in bytes" => "i bytes",
diff --git a/apps/user_ldap/l10n/nl.php b/apps/user_ldap/l10n/nl.php
index cc5e85fc30b..6879a4c4b94 100644
--- a/apps/user_ldap/l10n/nl.php
+++ b/apps/user_ldap/l10n/nl.php
@@ -1,6 +1,7 @@
<?php $TRANSLATIONS = array(
"Failed to delete the server configuration" => "Verwijderen serverconfiguratie mislukt",
"The configuration is valid and the connection could be established!" => "De configuratie is geldig en de verbinding is geslaagd!",
+"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "De configuratie is geldig, maar Bind mislukte. Controleer de serverinstellingen en inloggegevens.",
"The configuration is invalid. Please look in the ownCloud log for further details." => "De configuratie is ongeldig. Controleer de ownCloud log voor meer details.",
"Deletion failed" => "Verwijderen mislukt",
"Take over settings from recent server configuration?" => "Overnemen instellingen van de recente serverconfiguratie?",
@@ -32,29 +33,35 @@
"Group Filter" => "Groep Filter",
"Defines the filter to apply, when retrieving groups." => "Definiëerd de toe te passen filter voor het ophalen van groepen.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "zonder een placeholder, bijv. \"objectClass=posixGroup\"",
+"Connection Settings" => "Verbindingsinstellingen",
"Configuration Active" => "Configuratie actief",
+"When unchecked, this configuration will be skipped." => "Als dit niet is ingeschakeld wordt deze configuratie overgeslagen.",
"Port" => "Poort",
"Backup (Replica) Host" => "Backup (Replica) Host",
+"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Opgeven optionele backup host. Het moet een replica van de hoofd LDAP/AD server.",
"Backup (Replica) Port" => "Backup (Replica) Poort",
"Disable Main Server" => "Deactiveren hoofdserver",
"When switched on, ownCloud will only connect to the replica server." => "Wanneer ingeschakeld, zal ownCloud allen verbinden met de replicaserver.",
"Use TLS" => "Gebruik TLS",
-"Do not use it for SSL connections, it will fail." => "Gebruik niet voor SSL connecties, deze mislukken.",
"Case insensitve LDAP server (Windows)" => "Niet-hoofdlettergevoelige LDAP server (Windows)",
"Turn off SSL certificate validation." => "Schakel SSL certificaat validatie uit.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Als de connectie alleen werkt met deze optie, importeer dan het LDAP server SSL certificaat naar je ownCloud server.",
"Not recommended, use for testing only." => "Niet aangeraden, gebruik alleen voor test doeleinden.",
"in seconds. A change empties the cache." => "in seconden. Een verandering maakt de cache leeg.",
+"Directory Settings" => "Mapinstellingen",
"User Display Name Field" => "Gebruikers Schermnaam Veld",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Het te gebruiken LDAP attribuut voor het genereren van de ownCloud naam voor de gebruikers.",
"Base User Tree" => "Basis Gebruikers Structuur",
"One User Base DN per line" => "Een User Base DN per regel",
+"User Search Attributes" => "Attributen voor gebruikerszoekopdrachten",
"Optional; one attribute per line" => "Optioneel; één attribuut per regel",
"Group Display Name Field" => "Groep Schermnaam Veld",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Het te gebruiken LDAP attribuut voor het genereren van de ownCloud naam voor de groepen.",
"Base Group Tree" => "Basis Groupen Structuur",
"One Group Base DN per line" => "Een Group Base DN per regel",
+"Group Search Attributes" => "Attributen voor groepszoekopdrachten",
"Group-Member association" => "Groepslid associatie",
+"Special Attributes" => "Speciale attributen",
"in bytes" => "in bytes",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Laat leeg voor de gebruikersnaam (standaard). Of, specificeer een LDAP/AD attribuut.",
"Help" => "Help"
diff --git a/apps/user_ldap/l10n/pl.php b/apps/user_ldap/l10n/pl.php
index 83a8d1615ae..ef3f9140ef7 100644
--- a/apps/user_ldap/l10n/pl.php
+++ b/apps/user_ldap/l10n/pl.php
@@ -20,7 +20,6 @@
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "bez żadnych symboli zastępczych np. \"objectClass=posixGroup\".",
"Port" => "Port",
"Use TLS" => "Użyj TLS",
-"Do not use it for SSL connections, it will fail." => "Nie używaj SSL dla połączeń, jeśli się nie powiedzie.",
"Case insensitve LDAP server (Windows)" => "Wielkość liter serwera LDAP (Windows)",
"Turn off SSL certificate validation." => "Wyłączyć sprawdzanie poprawności certyfikatu SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Jeśli połączenie działa tylko z tą opcją, zaimportuj certyfikat SSL serwera LDAP w serwerze ownCloud.",
diff --git a/apps/user_ldap/l10n/pt_BR.php b/apps/user_ldap/l10n/pt_BR.php
index 79e56eeb652..514ceb7027e 100644
--- a/apps/user_ldap/l10n/pt_BR.php
+++ b/apps/user_ldap/l10n/pt_BR.php
@@ -19,7 +19,6 @@
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "sem nenhum espaço reservado, ex. \"objectClass=posixGroup\"",
"Port" => "Porta",
"Use TLS" => "Usar TLS",
-"Do not use it for SSL connections, it will fail." => "Não use-o para conexões SSL, pois falhará.",
"Case insensitve LDAP server (Windows)" => "Servidor LDAP sensível à caixa alta (Windows)",
"Turn off SSL certificate validation." => "Desligar validação de certificado SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se a conexão só funciona com essa opção, importe o certificado SSL do servidor LDAP no seu servidor ownCloud.",
diff --git a/apps/user_ldap/l10n/pt_PT.php b/apps/user_ldap/l10n/pt_PT.php
index 21735b497c6..058e7ba2532 100644
--- a/apps/user_ldap/l10n/pt_PT.php
+++ b/apps/user_ldap/l10n/pt_PT.php
@@ -33,6 +33,7 @@
"Group Filter" => "Filtrar por grupo",
"Defines the filter to apply, when retrieving groups." => "Defina o filtro a aplicar, ao recuperar grupos.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "Sem nenhuma variável. Exemplo: \"objectClass=posixGroup\".",
+"Connection Settings" => "Definições de ligação",
"Configuration Active" => "Configuração activa",
"When unchecked, this configuration will be skipped." => "Se não estiver marcada, esta definição não será tida em conta.",
"Port" => "Porto",
@@ -42,12 +43,12 @@
"Disable Main Server" => "Desactivar servidor principal",
"When switched on, ownCloud will only connect to the replica server." => "Se estiver ligado, o ownCloud vai somente ligar-se a este servidor de réplicas.",
"Use TLS" => "Usar TLS",
-"Do not use it for SSL connections, it will fail." => "Não use para ligações SSL, irá falhar.",
"Case insensitve LDAP server (Windows)" => "Servidor LDAP (Windows) não sensível a maiúsculas.",
"Turn off SSL certificate validation." => "Desligar a validação de certificado SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se a ligação apenas funcionar com está opção, importe o certificado SSL do servidor LDAP para o seu servidor do ownCloud.",
"Not recommended, use for testing only." => "Não recomendado, utilizado apenas para testes!",
"in seconds. A change empties the cache." => "em segundos. Uma alteração esvazia a cache.",
+"Directory Settings" => "Definições de directorias",
"User Display Name Field" => "Mostrador do nome de utilizador.",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Atributo LDAP para gerar o nome de utilizador do ownCloud.",
"Base User Tree" => "Base da árvore de utilizadores.",
@@ -60,6 +61,7 @@
"One Group Base DN per line" => "Uma base de grupo DN por linha",
"Group Search Attributes" => "Atributos de pesquisa de grupo",
"Group-Member association" => "Associar utilizador ao grupo.",
+"Special Attributes" => "Atributos especiais",
"in bytes" => "em bytes",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Deixe vazio para nome de utilizador (padrão). De outro modo, especifique um atributo LDAP/AD.",
"Help" => "Ajuda"
diff --git a/apps/user_ldap/l10n/ro.php b/apps/user_ldap/l10n/ro.php
index 3e7e7500429..8f55a35b491 100644
--- a/apps/user_ldap/l10n/ro.php
+++ b/apps/user_ldap/l10n/ro.php
@@ -22,7 +22,6 @@
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "fără substituenți, d.e. \"objectClass=posixGroup\"",
"Port" => "Portul",
"Use TLS" => "Utilizează TLS",
-"Do not use it for SSL connections, it will fail." => "A nu se utiliza pentru conexiuni SSL, va eșua.",
"Case insensitve LDAP server (Windows)" => "Server LDAP insensibil la majuscule (Windows)",
"Turn off SSL certificate validation." => "Oprește validarea certificatelor SSL ",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Dacă conexiunea lucrează doar cu această opțiune, importează certificatul SSL al serverului LDAP în serverul ownCloud.",
diff --git a/apps/user_ldap/l10n/ru.php b/apps/user_ldap/l10n/ru.php
index 45f6c171bf3..4c4b9708667 100644
--- a/apps/user_ldap/l10n/ru.php
+++ b/apps/user_ldap/l10n/ru.php
@@ -1,6 +1,18 @@
<?php $TRANSLATIONS = array(
+"Failed to delete the server configuration" => "Не удалось удалить конфигурацию сервера",
+"The configuration is valid and the connection could be established!" => "Конфигурация правильная и подключение может быть установлено!",
+"The configuration is invalid. Please look in the ownCloud log for further details." => "Конфигурация не верна. Пожалуйста, посмотрите в журнале ownCloud детали.",
"Deletion failed" => "Удаление не удалось",
+"Take over settings from recent server configuration?" => "Принять настройки из последней конфигурации сервера?",
+"Keep settings?" => "Сохранить настройки?",
+"Cannot add server configuration" => "Не получилось добавить конфигурацию сервера",
+"Connection test succeeded" => "Проверка соединения удалась",
+"Connection test failed" => "Проверка соединения не удалась",
+"Do you really want to delete the current Server Configuration?" => "Вы действительно хотите удалить существующую конфигурацию сервера?",
+"Confirm Deletion" => "Подтверждение удаления",
"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Внимание:</b>Приложения user_ldap и user_webdavauth несовместимы. Вы можете столкнуться с неожиданным поведением. Пожалуйста, обратитесь к системному администратору, чтобы отключить одно из них.",
+"Server configuration" => "Конфигурация сервера",
+"Add Server Configuration" => "Добавить конфигурацию сервера",
"Host" => "Сервер",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Можно опустить протокол, за исключением того, когда вам требуется SSL. Тогда начните с ldaps :/ /",
"Base DN" => "Базовый DN",
@@ -18,21 +30,27 @@
"Group Filter" => "Фильтр группы",
"Defines the filter to apply, when retrieving groups." => "Определяет фильтр для применения при получении группы.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "без заполнения, например \"objectClass=posixGroup\".",
+"Connection Settings" => "Настройки подключения",
+"Configuration Active" => "Конфигурация активна",
"Port" => "Порт",
+"Disable Main Server" => "Отключение главного сервера",
"Use TLS" => "Использовать TLS",
-"Do not use it for SSL connections, it will fail." => "Не используйте для соединений SSL",
"Case insensitve LDAP server (Windows)" => "Нечувствительный к регистру сервер LDAP (Windows)",
"Turn off SSL certificate validation." => "Отключить проверку сертификата SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Если соединение работает только с этой опцией, импортируйте на ваш сервер ownCloud сертификат SSL сервера LDAP.",
"Not recommended, use for testing only." => "Не рекомендуется, используйте только для тестирования.",
"in seconds. A change empties the cache." => "в секундах. Изменение очистит кэш.",
+"Directory Settings" => "Настройки каталога",
"User Display Name Field" => "Поле отображаемого имени пользователя",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Атрибут LDAP для генерации имени пользователя ownCloud.",
"Base User Tree" => "База пользовательского дерева",
+"User Search Attributes" => "Поисковые атрибуты пользователя",
+"Optional; one attribute per line" => "Опционально; один атрибут на линию",
"Group Display Name Field" => "Поле отображаемого имени группы",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Атрибут LDAP для генерации имени группы ownCloud.",
"Base Group Tree" => "База группового дерева",
"Group-Member association" => "Ассоциация Группа-Участник",
+"Special Attributes" => "Специальные атрибуты",
"in bytes" => "в байтах",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Оставьте имя пользователя пустым (по умолчанию). Иначе укажите атрибут LDAP/AD.",
"Help" => "Помощь"
diff --git a/apps/user_ldap/l10n/ru_RU.php b/apps/user_ldap/l10n/ru_RU.php
index f62d2cd4eaf..a4ed503b1d1 100644
--- a/apps/user_ldap/l10n/ru_RU.php
+++ b/apps/user_ldap/l10n/ru_RU.php
@@ -22,7 +22,6 @@
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "без каких-либо заполнителей, например, \"objectClass=posixGroup\".",
"Port" => "Порт",
"Use TLS" => "Использовать TLS",
-"Do not use it for SSL connections, it will fail." => "Не используйте это SSL-соединений, это не будет выполнено.",
"Case insensitve LDAP server (Windows)" => "Нечувствительный к регистру LDAP-сервер (Windows)",
"Turn off SSL certificate validation." => "Выключить проверку сертификата SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Если соединение работает только с этой опцией, импортируйте SSL-сертификат LDAP сервера в ваш ownCloud сервер.",
diff --git a/apps/user_ldap/l10n/sk_SK.php b/apps/user_ldap/l10n/sk_SK.php
index 3d7dbd62695..af8ff0307a7 100644
--- a/apps/user_ldap/l10n/sk_SK.php
+++ b/apps/user_ldap/l10n/sk_SK.php
@@ -1,7 +1,20 @@
<?php $TRANSLATIONS = array(
+"Failed to delete the server configuration" => "Zlyhalo zmazanie nastavenia servera.",
+"The configuration is valid and the connection could be established!" => "Nastavenie je v poriadku a pripojenie je stabilné.",
+"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Nastavenie je v poriadku, ale pripojenie zlyhalo. Skontrolujte nastavenia servera a prihlasovacie údaje.",
+"The configuration is invalid. Please look in the ownCloud log for further details." => "Nastavenia sú neplatné. Podrobnosti hľadajte v logu ownCloud.",
"Deletion failed" => "Odstránenie zlyhalo",
+"Take over settings from recent server configuration?" => "Prebrať nastavenia z nedávneho nastavenia servera?",
+"Keep settings?" => "Ponechať nastavenia?",
+"Cannot add server configuration" => "Nemožno pridať nastavenie servera",
+"Connection test succeeded" => "Test pripojenia bol úspešný",
+"Connection test failed" => "Test pripojenia zlyhal",
+"Do you really want to delete the current Server Configuration?" => "Naozaj chcete zmazať súčasné nastavenie servera?",
+"Confirm Deletion" => "Potvrdiť vymazanie",
"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Upozornenie:</b> Aplikácie user_ldap a user_webdavauth nie sú kompatibilné. Môže nastávať neočakávané správanie. Požiadajte správcu systému aby jednu z nich zakázal.",
"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Upozornenie:</b> nie je nainštalovaný LDAP modul pre PHP, backend vrstva nebude fungovať. Požádejte správcu systému aby ho nainštaloval.",
+"Server configuration" => "Nastavenia servera",
+"Add Server Configuration" => "Pridať nastavenia servera.",
"Host" => "Hostiteľ",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Môžete vynechať protokol, s výnimkou požadovania SSL. Vtedy začnite s ldaps://",
"Base DN" => "Základné DN",
@@ -20,23 +33,35 @@
"Group Filter" => "Filter skupiny",
"Defines the filter to apply, when retrieving groups." => "Definuje použitý filter, pre získanie skupín.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "bez zástupných znakov, napr. \"objectClass=posixGroup\"",
+"Connection Settings" => "Nastavenie pripojenia",
+"Configuration Active" => "Nastavenia sú aktívne ",
+"When unchecked, this configuration will be skipped." => "Ak nie je zaškrtnuté, nastavenie bude preskočené.",
"Port" => "Port",
+"Backup (Replica) Host" => "Záložný server (kópia) hosť",
+"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Zadajte záložný LDAP/AD. Musí to byť kópia hlavného LDAP/AD servera.",
+"Backup (Replica) Port" => "Záložný server (kópia) port",
+"Disable Main Server" => "Zakázať hlavný server",
+"When switched on, ownCloud will only connect to the replica server." => "Pri zapnutí sa ownCloud pripojí len k záložnému serveru.",
"Use TLS" => "Použi TLS",
-"Do not use it for SSL connections, it will fail." => "Nepoužívajte pre pripojenie SSL, pripojenie zlyhá.",
"Case insensitve LDAP server (Windows)" => "LDAP server nerozlišuje veľkosť znakov (Windows)",
"Turn off SSL certificate validation." => "Vypnúť overovanie SSL certifikátu.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Ak pripojenie pracuje len s touto možnosťou, tak importujte SSL certifikát LDAP serveru do vášho servera ownCloud.",
"Not recommended, use for testing only." => "Nie je doporučované, len pre testovacie účely.",
"in seconds. A change empties the cache." => "v sekundách. Zmena vyprázdni vyrovnávaciu pamäť.",
+"Directory Settings" => "Nastavenie priečinka",
"User Display Name Field" => "Pole pre zobrazenia mena používateľa",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Atribút LDAP použitý na vygenerovanie mena používateľa ownCloud ",
"Base User Tree" => "Základný používateľský strom",
"One User Base DN per line" => "Jedna používateľská základná DN na riadok",
+"User Search Attributes" => "Atribúty vyhľadávania používateľov",
+"Optional; one attribute per line" => "Voliteľné, jeden atribút na jeden riadok",
"Group Display Name Field" => "Pole pre zobrazenie mena skupiny",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Atribút LDAP použitý na vygenerovanie mena skupiny ownCloud ",
"Base Group Tree" => "Základný skupinový strom",
"One Group Base DN per line" => "Jedna skupinová základná DN na riadok",
+"Group Search Attributes" => "Atribúty vyhľadávania skupín",
"Group-Member association" => "Asociácia člena skupiny",
+"Special Attributes" => "Špeciálne atribúty",
"in bytes" => "v bajtoch",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Nechajte prázdne pre používateľské meno (predvolené). Inak uveďte atribút LDAP/AD.",
"Help" => "Pomoc"
diff --git a/apps/user_ldap/l10n/sl.php b/apps/user_ldap/l10n/sl.php
index 133d7ee9119..e1734a90780 100644
--- a/apps/user_ldap/l10n/sl.php
+++ b/apps/user_ldap/l10n/sl.php
@@ -20,7 +20,6 @@
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "Brez katerekoli vsebnika, npr. \"objectClass=posixGroup\".",
"Port" => "Vrata",
"Use TLS" => "Uporabi TLS",
-"Do not use it for SSL connections, it will fail." => "Uporaba SSL za povezave bo spodletela.",
"Case insensitve LDAP server (Windows)" => "Strežnik LDAP ne upošteva velikosti črk (Windows)",
"Turn off SSL certificate validation." => "Onemogoči potrditev veljavnosti potrdila SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "V primeru, da povezava deluje le s to možnostjo, uvozite potrdilo SSL iz strežnika LDAP na vaš strežnik ownCloud.",
diff --git a/apps/user_ldap/l10n/sr.php b/apps/user_ldap/l10n/sr.php
index f16e59273cd..52569a08ef8 100644
--- a/apps/user_ldap/l10n/sr.php
+++ b/apps/user_ldap/l10n/sr.php
@@ -1,4 +1,35 @@
<?php $TRANSLATIONS = array(
"Deletion failed" => "Брисање није успело",
+"Host" => "Домаћин",
+"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Можете да изоставите протокол, осим ако захтевате SSL. У том случају почните са ldaps://.",
+"Base DN" => "База DN",
+"User DN" => "Корисник DN",
+"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN корисника клијента са којим треба да се успостави веза, нпр. uid=agent,dc=example,dc=com. За анониман приступ, оставите поља DN и лозинка празним.",
+"Password" => "Лозинка",
+"For anonymous access, leave DN and Password empty." => "За анониман приступ, оставите поља DN и лозинка празним.",
+"User Login Filter" => "Филтер за пријаву корисника",
+"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "Одређује филтер за примењивање при покушају пријаве. %%uid замењује корисничко име.",
+"use %%uid placeholder, e.g. \"uid=%%uid\"" => "користите чувар места %%uid, нпр. „uid=%%uid\"",
+"User List Filter" => "Филтер за списак корисника",
+"Defines the filter to apply, when retrieving users." => "Одређује филтер за примењивање при прибављању корисника.",
+"without any placeholder, e.g. \"objectClass=person\"." => "без икаквог чувара места, нпр. „objectClass=person“.",
+"Group Filter" => "Филтер групе",
+"Defines the filter to apply, when retrieving groups." => "Одређује филтер за примењивање при прибављању група.",
+"without any placeholder, e.g. \"objectClass=posixGroup\"." => "без икаквог чувара места, нпр. „objectClass=posixGroup“.",
+"Port" => "Порт",
+"Use TLS" => "Користи TLS",
+"Case insensitve LDAP server (Windows)" => "LDAP сервер осетљив на велика и мала слова (Windows)",
+"Turn off SSL certificate validation." => "Искључите потврду SSL сертификата.",
+"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Увезите SSL сертификат LDAP сервера у свој ownCloud ако веза ради само са овом опцијом.",
+"Not recommended, use for testing only." => "Не препоручује се; користите само за тестирање.",
+"in seconds. A change empties the cache." => "у секундама. Промена испражњава кеш меморију.",
+"User Display Name Field" => "Име приказа корисника",
+"The LDAP attribute to use to generate the user`s ownCloud name." => "LDAP атрибут за стварање имена ownCloud-а корисника.",
+"Base User Tree" => "Основно стабло корисника",
+"Group Display Name Field" => "Име приказа групе",
+"The LDAP attribute to use to generate the groups`s ownCloud name." => "LDAP атрибут за стварање имена ownCloud-а групе.",
+"Base Group Tree" => "Основна стабло група",
+"Group-Member association" => "Придруживање чланова у групу",
+"in bytes" => "у бајтовима",
"Help" => "Помоћ"
);
diff --git a/apps/user_ldap/l10n/sv.php b/apps/user_ldap/l10n/sv.php
index b1da09ad3e1..c100fc94afe 100644
--- a/apps/user_ldap/l10n/sv.php
+++ b/apps/user_ldap/l10n/sv.php
@@ -1,8 +1,10 @@
<?php $TRANSLATIONS = array(
"Failed to delete the server configuration" => "Misslyckades med att radera serverinställningen",
"The configuration is valid and the connection could be established!" => "Inställningen är giltig och anslutningen kunde upprättas!",
+"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurationen är riktig, men Bind felade. Var vänlig och kontrollera serverinställningar och logininformation.",
"The configuration is invalid. Please look in the ownCloud log for further details." => "Inställningen är ogiltig. Vänligen se ownCloud-loggen för fler detaljer.",
"Deletion failed" => "Raderingen misslyckades",
+"Take over settings from recent server configuration?" => "Ta över inställningar från tidigare serverkonfiguration?",
"Keep settings?" => "Behåll inställningarna?",
"Cannot add server configuration" => "Kunde inte lägga till serverinställning",
"Connection test succeeded" => "Anslutningstestet lyckades",
@@ -31,24 +33,35 @@
"Group Filter" => "Gruppfilter",
"Defines the filter to apply, when retrieving groups." => "Definierar filter att tillämpa vid listning av grupper.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "utan platshållare, t.ex. \"objectClass=posixGroup\".",
+"Connection Settings" => "Uppkopplingsinställningar",
+"Configuration Active" => "Konfiguration aktiv",
+"When unchecked, this configuration will be skipped." => "Ifall denna är avbockad så kommer konfigurationen att skippas.",
"Port" => "Port",
+"Backup (Replica) Host" => "Säkerhetskopierings-värd (Replika)",
+"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Ange en valfri värd för säkerhetskopiering. Den måste vara en replika av den huvudsakliga LDAP/AD-servern",
+"Backup (Replica) Port" => "Säkerhetskopierins-port (Replika)",
"Disable Main Server" => "Inaktivera huvudserver",
+"When switched on, ownCloud will only connect to the replica server." => "När denna är påkopplad kommer ownCloud att koppla upp till replika-servern, endast.",
"Use TLS" => "Använd TLS",
-"Do not use it for SSL connections, it will fail." => "Använd inte för SSL-anslutningar, det kommer inte att fungera.",
"Case insensitve LDAP server (Windows)" => "LDAP-servern är okänslig för gemener och versaler (Windows)",
"Turn off SSL certificate validation." => "Stäng av verifiering av SSL-certifikat.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Om anslutningen bara fungerar med det här alternativet, importera LDAP-serverns SSL-certifikat i din ownCloud-server.",
"Not recommended, use for testing only." => "Rekommenderas inte, använd bara för test. ",
"in seconds. A change empties the cache." => "i sekunder. En förändring tömmer cache.",
+"Directory Settings" => "Mappinställningar",
"User Display Name Field" => "Attribut för användarnamn",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Attribut som används för att generera användarnamn i ownCloud.",
"Base User Tree" => "Bas för användare i katalogtjänst",
"One User Base DN per line" => "En Användare start DN per rad",
+"User Search Attributes" => "Användarsökningsattribut",
+"Optional; one attribute per line" => "Valfritt; ett attribut per rad",
"Group Display Name Field" => "Attribut för gruppnamn",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Attribut som används för att generera gruppnamn i ownCloud.",
"Base Group Tree" => "Bas för grupper i katalogtjänst",
"One Group Base DN per line" => "En Grupp start DN per rad",
+"Group Search Attributes" => "Gruppsökningsattribut",
"Group-Member association" => "Attribut för gruppmedlemmar",
+"Special Attributes" => "Specialattribut",
"in bytes" => "i bytes",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Lämnas tomt för användarnamn (standard). Ange annars ett LDAP/AD-attribut.",
"Help" => "Hjälp"
diff --git a/apps/user_ldap/l10n/ta_LK.php b/apps/user_ldap/l10n/ta_LK.php
index d617f49700f..f6beb3c4863 100644
--- a/apps/user_ldap/l10n/ta_LK.php
+++ b/apps/user_ldap/l10n/ta_LK.php
@@ -9,7 +9,6 @@
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "எந்த ஒதுக்கீடும் இல்லாமல், உதாரணம். \"objectClass=posixGroup\".",
"Port" => "துறை ",
"Use TLS" => "TLS ஐ பயன்படுத்தவும்",
-"Do not use it for SSL connections, it will fail." => "SSL இணைப்பிற்கு பயன்படுத்தவேண்டாம், அது தோல்வியடையும்.",
"Case insensitve LDAP server (Windows)" => "உணர்ச்சியான LDAP சேவையகம் (சாளரங்கள்)",
"Turn off SSL certificate validation." => "SSL சான்றிதழின் செல்லுபடியை நிறுத்திவிடவும்",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "இந்த தெரிவுகளில் மட்டும் இணைப்பு வேலைசெய்தால், உங்களுடைய owncloud சேவையகத்திலிருந்து LDAP சேவையகத்தின் SSL சான்றிதழை இறக்குமதி செய்யவும்",
diff --git a/apps/user_ldap/l10n/th_TH.php b/apps/user_ldap/l10n/th_TH.php
index 07dbc835b31..802badb2f03 100644
--- a/apps/user_ldap/l10n/th_TH.php
+++ b/apps/user_ldap/l10n/th_TH.php
@@ -36,7 +36,6 @@
"Port" => "พอร์ต",
"Disable Main Server" => "ปิดใช้งานเซิร์ฟเวอร์หลัก",
"Use TLS" => "ใช้ TLS",
-"Do not use it for SSL connections, it will fail." => "กรุณาอย่าใช้การเชื่อมต่อแบบ SSL การเชื่อมต่อจะเกิดการล้มเหลว",
"Case insensitve LDAP server (Windows)" => "เซิร์ฟเวอร์ LDAP ประเภท Case insensitive (วินโดวส์)",
"Turn off SSL certificate validation." => "ปิดใช้งานการตรวจสอบความถูกต้องของใบรับรองความปลอดภัย SSL",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "หากการเชื่อมต่อสามารถทำงานได้เฉพาะกับตัวเลือกนี้เท่านั้น, ให้นำเข้าข้อมูลใบรับรองความปลอดภัยแบบ SSL ของเซิร์ฟเวอร์ LDAP ดังกล่าวเข้าไปไว้ในเซิร์ฟเวอร์ ownCloud",
diff --git a/apps/user_ldap/l10n/tr.php b/apps/user_ldap/l10n/tr.php
index 8ded27a2952..1bed9e246c9 100644
--- a/apps/user_ldap/l10n/tr.php
+++ b/apps/user_ldap/l10n/tr.php
@@ -12,7 +12,6 @@
"Group Filter" => "Grup Süzgeci",
"Port" => "Port",
"Use TLS" => "TLS kullan",
-"Do not use it for SSL connections, it will fail." => "SSL bağlantıları ile kullanmayın, başarısız olacaktır.",
"Turn off SSL certificate validation." => "SSL sertifika doğrulamasını kapat.",
"Not recommended, use for testing only." => "Önerilmez, sadece test için kullanın.",
"in seconds. A change empties the cache." => "saniye cinsinden. Bir değişiklik önbelleği temizleyecektir.",
diff --git a/apps/user_ldap/l10n/uk.php b/apps/user_ldap/l10n/uk.php
index 4dd1256ee33..643a7495890 100644
--- a/apps/user_ldap/l10n/uk.php
+++ b/apps/user_ldap/l10n/uk.php
@@ -1,9 +1,24 @@
<?php $TRANSLATIONS = array(
+"Failed to delete the server configuration" => "Не вдалося видалити конфігурацію сервера",
+"The configuration is valid and the connection could be established!" => "Конфігурація вірна і зв'язок може бути встановлений ​​!",
+"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Конфігурація вірна, але встановити зв'язок не вдалося. Будь ласка, перевірте налаштування сервера і облікові дані.",
+"The configuration is invalid. Please look in the ownCloud log for further details." => "Конфігурація невірна. Подробиці подивіться, будь ласка, в журналі ownCloud.",
"Deletion failed" => "Видалення не було виконано",
+"Take over settings from recent server configuration?" => "Застосувати налаштування з останньої конфігурації сервера ?",
+"Keep settings?" => "Зберегти налаштування ?",
+"Cannot add server configuration" => "Неможливо додати конфігурацію сервера",
+"Connection test succeeded" => "Перевірка з'єднання пройшла успішно",
+"Connection test failed" => "Перевірка з'єднання завершилась неуспішно",
+"Do you really want to delete the current Server Configuration?" => "Ви дійсно бажаєте видалити поточну конфігурацію сервера ?",
+"Confirm Deletion" => "Підтвердіть Видалення",
"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Увага:</b> Застосунки user_ldap та user_webdavauth не сумісні. Ви можете зіткнутися з несподіваною поведінкою. Будь ласка, зверніться до системного адміністратора, щоб відключити одну з них.",
+"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Увага:</ b> Потрібний модуль PHP LDAP не встановлено, базова програма працювати не буде. Будь ласка, зверніться до системного адміністратора, щоб встановити його.",
+"Server configuration" => "Налаштування Сервера",
+"Add Server Configuration" => "Додати налаштування Сервера",
"Host" => "Хост",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Можна не вказувати протокол, якщо вам не потрібен SSL. Тоді почніть з ldaps://",
"Base DN" => "Базовий DN",
+"One Base DN per line" => "Один Base DN на одній строчці",
"You can specify Base DN for users and groups in the Advanced tab" => "Ви можете задати Базовий DN для користувачів і груп на вкладинці Додатково",
"User DN" => "DN Користувача",
"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN клієнтського користувача для прив'язки, наприклад: uid=agent,dc=example,dc=com. Для анонімного доступу, залиште DN і Пароль порожніми.",
@@ -18,9 +33,10 @@
"Group Filter" => "Фільтр Груп",
"Defines the filter to apply, when retrieving groups." => "Визначає фільтр, який застосовується при отриманні груп.",
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "без будь-якого заповнювача, наприклад: \"objectClass=posixGroup\".",
+"Configuration Active" => "Налаштування Активне",
+"When unchecked, this configuration will be skipped." => "Якщо \"галочка\" знята, ця конфігурація буде пропущена.",
"Port" => "Порт",
"Use TLS" => "Використовуйте TLS",
-"Do not use it for SSL connections, it will fail." => "Не використовуйте його для SSL з'єднань, це не буде виконано.",
"Case insensitve LDAP server (Windows)" => "Нечутливий до регістру LDAP сервер (Windows)",
"Turn off SSL certificate validation." => "Вимкнути перевірку SSL сертифіката.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Якщо з'єднання працює лише з цією опцією, імпортуйте SSL сертифікат LDAP сервера у ваший ownCloud сервер.",
@@ -29,9 +45,11 @@
"User Display Name Field" => "Поле, яке відображає Ім'я Користувача",
"The LDAP attribute to use to generate the user`s ownCloud name." => "Атрибут LDAP, який використовується для генерації імен користувачів ownCloud.",
"Base User Tree" => "Основне Дерево Користувачів",
+"One User Base DN per line" => "Один Користувач Base DN на одній строчці",
"Group Display Name Field" => "Поле, яке відображає Ім'я Групи",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "Атрибут LDAP, який використовується для генерації імен груп ownCloud.",
"Base Group Tree" => "Основне Дерево Груп",
+"One Group Base DN per line" => "Одна Група Base DN на одній строчці",
"Group-Member association" => "Асоціація Група-Член",
"in bytes" => "в байтах",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Залиште порожнім для імені користувача (за замовчанням). Інакше, вкажіть атрибут LDAP/AD.",
diff --git a/apps/user_ldap/l10n/vi.php b/apps/user_ldap/l10n/vi.php
index 76ff6fe33a4..46054e4a4e2 100644
--- a/apps/user_ldap/l10n/vi.php
+++ b/apps/user_ldap/l10n/vi.php
@@ -19,7 +19,6 @@
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "mà không giữ chỗ nào, ví dụ như \"objectClass = osixGroup\".",
"Port" => "Cổng",
"Use TLS" => "Sử dụng TLS",
-"Do not use it for SSL connections, it will fail." => "Kết nối SSL bị lỗi. ",
"Case insensitve LDAP server (Windows)" => "Trường hợp insensitve LDAP máy chủ (Windows)",
"Turn off SSL certificate validation." => "Tắt xác thực chứng nhận SSL",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Nếu kết nối chỉ hoạt động với tùy chọn này, vui lòng import LDAP certificate SSL trong máy chủ ownCloud của bạn.",
diff --git a/apps/user_ldap/l10n/zh_CN.GB2312.php b/apps/user_ldap/l10n/zh_CN.GB2312.php
index 91b059afd0b..f5bc41fd46b 100644
--- a/apps/user_ldap/l10n/zh_CN.GB2312.php
+++ b/apps/user_ldap/l10n/zh_CN.GB2312.php
@@ -19,7 +19,6 @@
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "不能使用占位符,例如 \"objectClass=posixGroup\"。",
"Port" => "端口",
"Use TLS" => "使用 TLS",
-"Do not use it for SSL connections, it will fail." => "不要使用它进行 SSL 连接,会失败的。",
"Case insensitve LDAP server (Windows)" => "大小写不敏感的 LDAP 服务器 (Windows)",
"Turn off SSL certificate validation." => "关闭 SSL 证书校验。",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "如果只有使用此选项才能连接,请导入 LDAP 服务器的 SSL 证书到您的 ownCloud 服务器。",
diff --git a/apps/user_ldap/l10n/zh_CN.php b/apps/user_ldap/l10n/zh_CN.php
index d0c32e94e08..d494945e2e4 100644
--- a/apps/user_ldap/l10n/zh_CN.php
+++ b/apps/user_ldap/l10n/zh_CN.php
@@ -20,7 +20,6 @@
"without any placeholder, e.g. \"objectClass=posixGroup\"." => "无需占位符,例如\"objectClass=posixGroup\"",
"Port" => "端口",
"Use TLS" => "使用TLS",
-"Do not use it for SSL connections, it will fail." => "不要在SSL链接中使用此选项,会导致失败。",
"Case insensitve LDAP server (Windows)" => "大小写敏感LDAP服务器(Windows)",
"Turn off SSL certificate validation." => "关闭SSL证书验证",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "如果链接仅在此选项时可用,在您的ownCloud服务器中导入LDAP服务器的SSL证书。",
diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php
index acc33e047c6..f92779b1cad 100644
--- a/apps/user_ldap/lib/connection.php
+++ b/apps/user_ldap/lib/connection.php
@@ -409,6 +409,11 @@ class Connection {
$this->config[$key] = array();
}
}
+ if((strpos($this->config['ldapHost'], 'ldaps') === 0)
+ && $this->config['ldapTLS']) {
+ $this->config['ldapTLS'] = false;
+ \OCP\Util::writeLog('user_ldap', 'LDAPS (already using secure connection) and TLS do not work together. Switched off TLS.', \OCP\Util::INFO);
+ }
@@ -523,7 +528,7 @@ class Connection {
if(!$this->config['ldapOverrideMainServer'] && !$this->getFromCache('overrideMainServer')) {
$this->doConnect($this->config['ldapHost'], $this->config['ldapPort']);
$bindStatus = $this->bind();
- $error = ldap_errno($this->ldapConnectionRes);
+ $error = is_resource($this->ldapConnectionRes) ? ldap_errno($this->ldapConnectionRes) : -1;
} else {
$bindStatus = false;
$error = null;
@@ -547,6 +552,9 @@ class Connection {
}
private function doConnect($host, $port) {
+ if(empty($host)) {
+ return false;
+ }
$this->ldapConnectionRes = ldap_connect($host, $port);
if(ldap_set_option($this->ldapConnectionRes, LDAP_OPT_PROTOCOL_VERSION, 3)) {
if(ldap_set_option($this->ldapConnectionRes, LDAP_OPT_REFERRALS, 0)) {
@@ -564,9 +572,13 @@ class Connection {
if(!$this->config['ldapConfigurationActive']) {
return false;
}
- $ldapLogin = @ldap_bind($this->getConnectionResource(), $this->config['ldapAgentName'], $this->config['ldapAgentPassword']);
+ $cr = $this->getConnectionResource();
+ if(!is_resource($cr)) {
+ return false;
+ }
+ $ldapLogin = @ldap_bind($cr, $this->config['ldapAgentName'], $this->config['ldapAgentPassword']);
if(!$ldapLogin) {
- \OCP\Util::writeLog('user_ldap', 'Bind failed: ' . ldap_errno($this->ldapConnectionRes) . ': ' . ldap_error($this->ldapConnectionRes), \OCP\Util::ERROR);
+ \OCP\Util::writeLog('user_ldap', 'Bind failed: ' . ldap_errno($cr) . ': ' . ldap_error($cr), \OCP\Util::ERROR);
$this->ldapConnectionRes = null;
return false;
}
diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php
index eb3840a611b..c6f1834e013 100644
--- a/apps/user_ldap/templates/settings.php
+++ b/apps/user_ldap/templates/settings.php
@@ -35,7 +35,7 @@
<p><label for="ldap_backup_host"><?php echo $l->t('Backup (Replica) Host');?></label><input type="text" id="ldap_backup_host" name="ldap_backup_host" data-default="<?php echo $_['ldap_backup_host_default']; ?>" title="<?php echo $l->t('Give an optional backup host. It must be a replica of the main LDAP/AD server.');?>"></p>
<p><label for="ldap_backup_port"><?php echo $l->t('Backup (Replica) Port');?></label><input type="number" id="ldap_backup_port" name="ldap_backup_port" data-default="<?php echo $_['ldap_backup_port_default']; ?>" /></p>
<p><label for="ldap_override_main_server"><?php echo $l->t('Disable Main Server');?></label><input type="checkbox" id="ldap_override_main_server" name="ldap_override_main_server" value="1" data-default="<?php echo $_['ldap_override_main_server_default']; ?>" title="<?php echo $l->t('When switched on, ownCloud will only connect to the replica server.');?>" /></p>
- <p><label for="ldap_tls"><?php echo $l->t('Use TLS');?></label><input type="checkbox" id="ldap_tls" name="ldap_tls" value="1" data-default="<?php echo $_['ldap_tls_default']; ?>" title="<?php echo $l->t('Do not use it for SSL connections, it will fail.');?>" /></p>
+ <p><label for="ldap_tls"><?php echo $l->t('Use TLS');?></label><input type="checkbox" id="ldap_tls" name="ldap_tls" value="1" data-default="<?php echo $_['ldap_tls_default']; ?>" title="<?php echo $l->t('Do not use it additionally for LDAPS connections, it will fail.');?>" /></p>
<p><label for="ldap_nocase"><?php echo $l->t('Case insensitve LDAP server (Windows)');?></label><input type="checkbox" id="ldap_nocase" name="ldap_nocase" data-default="<?php echo $_['ldap_nocase_default']; ?>" value="1"<?php if (isset($_['ldap_nocase']) && ($_['ldap_nocase'])) echo ' checked'; ?>></p>
<p><label for="ldap_turn_off_cert_check"><?php echo $l->t('Turn off SSL certificate validation.');?></label><input type="checkbox" id="ldap_turn_off_cert_check" name="ldap_turn_off_cert_check" title="<?php echo $l->t('If connection only works with this option, import the LDAP server\'s SSL certificate in your ownCloud server.');?>" data-default="<?php echo $_['ldap_turn_off_cert_check_default']; ?>" value="1"><br/><small><?php echo $l->t('Not recommended, use for testing only.');?></small></p>
<p><label for="ldap_cache_ttl">Cache Time-To-Live</label><input type="number" id="ldap_cache_ttl" name="ldap_cache_ttl" title="<?php echo $l->t('in seconds. A change empties the cache.');?>" data-default="<?php echo $_['ldap_cache_ttl_default']; ?>" /></p>
diff --git a/apps/user_webdavauth/l10n/id.php b/apps/user_webdavauth/l10n/id.php
new file mode 100644
index 00000000000..4324ee8ff52
--- /dev/null
+++ b/apps/user_webdavauth/l10n/id.php
@@ -0,0 +1,5 @@
+<?php $TRANSLATIONS = array(
+"WebDAV Authentication" => "Otentikasi WebDAV",
+"URL: http://" => "URL: http://",
+"ownCloud will send the user credentials to this URL. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "ownCloud akan mengirimkan informasi pengguna ke URL ini. Pengaya akan mengecek respon dan menginterpretasikan kode status HTTP 401 serta 403 sebagai informasi yang keliru, sedangkan respon lainnya dianggap benar."
+);
diff --git a/apps/user_webdavauth/l10n/lv.php b/apps/user_webdavauth/l10n/lv.php
new file mode 100644
index 00000000000..d0043df9f07
--- /dev/null
+++ b/apps/user_webdavauth/l10n/lv.php
@@ -0,0 +1,5 @@
+<?php $TRANSLATIONS = array(
+"WebDAV Authentication" => "WebDAV autentifikācija",
+"URL: http://" => "URL: http://",
+"ownCloud will send the user credentials to this URL. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "ownCloud sūtīs lietotāja akreditācijas datus uz šo URL. Šis spraudnis pārbauda atbildi un interpretē HTTP statusa kodus 401 un 403 kā nederīgus akreditācijas datus un visas citas atbildes kā derīgus akreditācijas datus."
+);
diff --git a/apps/user_webdavauth/settings.php b/apps/user_webdavauth/settings.php
index 41d7fa51cd2..7eabb0d48cc 100755
--- a/apps/user_webdavauth/settings.php
+++ b/apps/user_webdavauth/settings.php
@@ -24,7 +24,9 @@
OC_Util::checkAdminUser();
if($_POST) {
-
+ // CSRF check
+ OCP\JSON::callCheck();
+
if(isset($_POST['webdav_url'])) {
OC_CONFIG::setValue('user_webdavauth_url', strip_tags($_POST['webdav_url']));
}
diff --git a/apps/user_webdavauth/templates/settings.php b/apps/user_webdavauth/templates/settings.php
index 880b77ac959..45f4d81aecf 100755
--- a/apps/user_webdavauth/templates/settings.php
+++ b/apps/user_webdavauth/templates/settings.php
@@ -2,6 +2,7 @@
<fieldset class="personalblock">
<legend><strong><?php echo $l->t('WebDAV Authentication');?></strong></legend>
<p><label for="webdav_url"><?php echo $l->t('URL: http://');?><input type="text" id="webdav_url" name="webdav_url" value="<?php echo $_['webdav_url']; ?>"></label>
+ <input type="hidden" name="requesttoken" value="<?php echo $_['requesttoken'] ?>" id="requesttoken">
<input type="submit" value="Save" />
<br /><?php echo $l->t('ownCloud will send the user credentials to this URL. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials.'); ?>
</fieldset>