summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorBjörn Schießle <schiessle@owncloud.com>2013-06-12 20:53:45 +0200
committerBjörn Schießle <schiessle@owncloud.com>2013-06-12 20:53:45 +0200
commit27fcdb3af5d1b1012695a09e04c0a654a1dde710 (patch)
tree6de492454c862852de3f51bd8834e2012139b5ac /apps
parent46e5e9bd73a68f7b50bb79f883a8bc6efacaca97 (diff)
parent3584d48d65900b15dc3ef6831926f4a52e508625 (diff)
downloadnextcloud-server-27fcdb3af5d1b1012695a09e04c0a654a1dde710.tar.gz
nextcloud-server-27fcdb3af5d1b1012695a09e04c0a654a1dde710.zip
Merge branch 'master' into files_encryption_upgrade_fix
Conflicts: apps/files_encryption/tests/crypt.php
Diffstat (limited to 'apps')
-rw-r--r--apps/files/appinfo/app.php2
-rw-r--r--apps/files/css/files.css21
-rw-r--r--apps/files/js/filelist.js2
-rw-r--r--apps/files/l10n/cs_CZ.php1
-rw-r--r--apps/files/l10n/de.php1
-rw-r--r--apps/files/l10n/he.php7
-rw-r--r--apps/files/l10n/hi.php4
-rw-r--r--apps/files/l10n/lt_LT.php26
-rw-r--r--apps/files/l10n/ru.php1
-rw-r--r--apps/files/l10n/sv.php1
-rw-r--r--apps/files/templates/part.list.php4
-rw-r--r--apps/files_encryption/hooks/hooks.php9
-rw-r--r--apps/files_encryption/l10n/ca.php20
-rw-r--r--apps/files_encryption/l10n/cs_CZ.php20
-rw-r--r--apps/files_encryption/l10n/de.php15
-rw-r--r--apps/files_encryption/l10n/de_DE.php13
-rw-r--r--apps/files_encryption/l10n/el.php10
-rw-r--r--apps/files_encryption/l10n/es.php20
-rw-r--r--apps/files_encryption/l10n/fr.php20
-rw-r--r--apps/files_encryption/l10n/ja_JP.php4
-rw-r--r--apps/files_encryption/l10n/lt_LT.php20
-rw-r--r--apps/files_encryption/l10n/nl.php4
-rw-r--r--apps/files_encryption/l10n/pt_BR.php4
-rw-r--r--apps/files_encryption/l10n/pt_PT.php15
-rw-r--r--apps/files_encryption/l10n/sv.php20
-rw-r--r--apps/files_encryption/l10n/tr.php20
-rw-r--r--apps/files_encryption/l10n/vi.php8
-rw-r--r--apps/files_encryption/l10n/zh_CN.php20
-rwxr-xr-xapps/files_encryption/lib/helper.php1
-rw-r--r--apps/files_encryption/lib/util.php8
-rwxr-xr-xapps/files_encryption/tests/crypt.php84
-rw-r--r--apps/files_encryption/tests/keymanager.php18
-rwxr-xr-xapps/files_encryption/tests/share.php18
-rw-r--r--apps/files_encryption/tests/stream.php3
-rwxr-xr-xapps/files_encryption/tests/trashbin.php3
-rwxr-xr-xapps/files_encryption/tests/util.php16
-rw-r--r--apps/files_external/ajax/addRootCertificate.php4
-rw-r--r--apps/files_external/js/settings.js19
-rw-r--r--apps/files_external/l10n/sv.php1
-rw-r--r--apps/files_external/l10n/zh_CN.GB2312.php1
-rw-r--r--apps/files_external/lib/smb.php14
-rw-r--r--apps/files_external/tests/config.php9
-rw-r--r--apps/files_sharing/l10n/lt_LT.php3
-rw-r--r--apps/files_trashbin/l10n/bg_BG.php2
-rw-r--r--apps/files_trashbin/l10n/he.php17
-rw-r--r--apps/files_trashbin/l10n/lt_LT.php11
-rw-r--r--apps/files_versions/l10n/he.php10
-rw-r--r--apps/files_versions/l10n/sv.php2
-rw-r--r--apps/user_ldap/appinfo/app.php2
-rw-r--r--apps/user_ldap/js/settings.js2
-rw-r--r--apps/user_ldap/l10n/cs_CZ.php9
-rw-r--r--apps/user_ldap/l10n/de_DE.php2
-rw-r--r--apps/user_ldap/l10n/hu_HU.php6
-rw-r--r--apps/user_ldap/l10n/is.php2
-rw-r--r--apps/user_ldap/l10n/nl.php3
-rw-r--r--apps/user_ldap/l10n/pl.php1
-rw-r--r--apps/user_ldap/l10n/pt_PT.php9
-rw-r--r--apps/user_ldap/l10n/ru.php9
-rw-r--r--apps/user_ldap/l10n/sv.php12
-rw-r--r--apps/user_ldap/l10n/zh_CN.php12
-rw-r--r--apps/user_ldap/lib/connection.php4
-rw-r--r--apps/user_ldap/lib/helper.php8
-rw-r--r--apps/user_ldap/lib/jobs.php19
-rw-r--r--apps/user_webdavauth/l10n/he.php5
-rw-r--r--apps/user_webdavauth/l10n/is.php1
65 files changed, 599 insertions, 63 deletions
diff --git a/apps/files/appinfo/app.php b/apps/files/appinfo/app.php
index 05ab1722b3e..99739cb4cee 100644
--- a/apps/files/appinfo/app.php
+++ b/apps/files/appinfo/app.php
@@ -20,4 +20,4 @@ OC_Search::registerProvider('OC_Search_Provider_File');
\OC_Hook::connect('OC_Filesystem', 'post_delete', '\OC\Files\Cache\Updater', 'deleteHook');
\OC_Hook::connect('OC_Filesystem', 'post_rename', '\OC\Files\Cache\Updater', 'renameHook');
-\OC_BackgroundJob_RegularTask::register('\OC\Files\Cache\BackgroundWatcher', 'checkNext');
+\OCP\BackgroundJob::addRegularTask('\OC\Files\Cache\BackgroundWatcher', 'checkNext');
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index f788949b1b6..108dcd741c6 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -63,8 +63,12 @@
}
#filestable { position: relative; top:37px; 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; }
+tbody tr:hover, tbody tr:active {
+ background-color: rgb(240,240,240);
+}
+tbody tr.selected {
+ background-color: rgb(230,230,230);
+}
tbody a { color:#000; }
span.extension, span.uploading, td.date { color:#999; }
span.extension { text-transform:lowercase; -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"; filter:alpha(opacity=70); opacity:.7; -webkit-transition:opacity 300ms; -moz-transition:opacity 300ms; -o-transition:opacity 300ms; transition:opacity 300ms; }
@@ -81,7 +85,12 @@ table th#headerDate, table td.date { min-width:11em; padding:0 .1em 0 1em; text-
/* Multiselect bar */
#filestable.multiselect { top:63px; }
table.multiselect thead { position:fixed; top:82px; z-index:1; -moz-box-sizing: border-box; box-sizing: border-box; left: 0; padding-left: 64px; width:100%; }
-table.multiselect thead th { background:rgba(230,230,230,.8); color:#000; font-weight:bold; border-bottom:0; }
+table.multiselect thead th {
+ background-color: rgba(210,210,210,.7);
+ color: #000;
+ font-weight: bold;
+ border-bottom: 0;
+}
table.multiselect #headerName { width: 100%; }
table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; }
table td.filename a.name { display:block; height:1.5em; vertical-align:middle; margin-left:3em; }
@@ -115,10 +124,12 @@ table td.filename form { font-size:.85em; margin-left:3em; margin-right:3em; }
}
#fileList .name { position:relative; /* Firefox needs to explicitly have this default set … */ }
#fileList tr:hover .fileactions { /* background to distinguish when overlaying with file names */
- background:rgba(248,248,248,.9); box-shadow:-5px 0 7px rgba(248,248,248,.9);
+ background-color: rgba(240,240,240,0.898);
+ box-shadow: -5px 0 7px rgba(240,240,240,0.898);
}
#fileList tr.selected:hover .fileactions, #fileList tr.mouseOver .fileactions { /* slightly darker color for selected rows */
- background:rgba(238,238,238,.9); box-shadow:-5px 0 7px rgba(238,238,238,.9);
+ background-color: rgba(230,230,230,.9);
+ box-shadow: -5px 0 7px rgba(230,230,230,.9);
}
#fileList .fileactions a.action img { position:relative; top:.2em; }
#fileList a.action { display:inline; margin:-.5em 0; padding:1em .5em 1em .5em !important; }
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index c24d1fd8244..e19a35bbc5b 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -51,7 +51,7 @@ var FileList={
}else{
simpleSize=t('files', 'Pending');
}
- var sizeColor = Math.round(200-Math.pow((size/(1024*1024)),2));
+ var sizeColor = Math.round(160-Math.pow((size/(1024*1024)),2));
var lastModifiedTime = Math.round(lastModified.getTime() / 1000);
td = $('<td></td>').attr({
"class": "filesize",
diff --git a/apps/files/l10n/cs_CZ.php b/apps/files/l10n/cs_CZ.php
index de6a1542421..8c6b6372655 100644
--- a/apps/files/l10n/cs_CZ.php
+++ b/apps/files/l10n/cs_CZ.php
@@ -46,6 +46,7 @@
"{count} folders" => "{count} složky",
"1 file" => "1 soubor",
"{count} files" => "{count} soubory",
+"Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "Název složky nelze použít. Použití názvu 'Shared' je ownCloudem rezervováno",
"Unable to rename file" => "Nelze přejmenovat soubor",
"Upload" => "Odeslat",
"File handling" => "Zacházení se soubory",
diff --git a/apps/files/l10n/de.php b/apps/files/l10n/de.php
index bcc3a4c6c9d..e9a6ad6bdef 100644
--- a/apps/files/l10n/de.php
+++ b/apps/files/l10n/de.php
@@ -46,6 +46,7 @@
"{count} folders" => "{count} Ordner",
"1 file" => "1 Datei",
"{count} files" => "{count} Dateien",
+"Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "Der Ordnername ist ungültig. Nur ownCloud kann den Ordner \"Shared\" anlegen",
"Unable to rename file" => "Konnte Datei nicht umbenennen",
"Upload" => "Hochladen",
"File handling" => "Dateibehandlung",
diff --git a/apps/files/l10n/he.php b/apps/files/l10n/he.php
index 963f25ebedc..b15c7a56499 100644
--- a/apps/files/l10n/he.php
+++ b/apps/files/l10n/he.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
+"Could not move %s - File with this name already exists" => "לא ניתן להעביר את %s - קובץ בשם הזה כבר קיים",
+"Could not move %s" => "לא ניתן להעביר את %s",
"No file was uploaded. Unknown error" => "לא הועלה קובץ. טעות בלתי מזוהה.",
"There is no error, the file uploaded with success" => "לא התרחשה שגיאה, הקובץ הועלה בהצלחה",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "הקבצים שנשלחו חורגים מהגודל שצוין בהגדרה upload_max_filesize שבקובץ php.ini:",
@@ -7,6 +9,8 @@
"No file was uploaded" => "שום קובץ לא הועלה",
"Missing a temporary folder" => "תקיה זמנית חסרה",
"Failed to write to disk" => "הכתיבה לכונן נכשלה",
+"Not enough storage available" => "אין די שטח פנוי באחסון",
+"Invalid directory." => "תיקייה שגויה.",
"Files" => "קבצים",
"Share" => "שתף",
"Delete permanently" => "מחק לצמיתות",
@@ -19,7 +23,9 @@
"cancel" => "ביטול",
"replaced {new_name} with {old_name}" => "{new_name} הוחלף ב־{old_name}",
"undo" => "ביטול",
+"perform delete operation" => "ביצוע פעולת מחיקה",
"1 file uploading" => "קובץ אחד נשלח",
+"files uploading" => "קבצים בהעלאה",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "השם שגוי, אסור להשתמש בתווים '\\', '/', '<', '>', ':', '\"', '|', '?' ו־'*'.",
"Unable to upload your file as it is a directory or has 0 bytes" => "לא יכול להעלות את הקובץ מכיוון שזו תקיה או שמשקל הקובץ 0 בתים",
"Upload cancelled." => "ההעלאה בוטלה.",
@@ -33,6 +39,7 @@
"{count} folders" => "{count} תיקיות",
"1 file" => "קובץ אחד",
"{count} files" => "{count} קבצים",
+"Unable to rename file" => "לא ניתן לשנות את שם הקובץ",
"Upload" => "העלאה",
"File handling" => "טיפול בקבצים",
"Maximum upload size" => "גודל העלאה מקסימלי",
diff --git a/apps/files/l10n/hi.php b/apps/files/l10n/hi.php
new file mode 100644
index 00000000000..df57abe28b6
--- /dev/null
+++ b/apps/files/l10n/hi.php
@@ -0,0 +1,4 @@
+<?php $TRANSLATIONS = array(
+"Share" => "साझा करें",
+"Save" => "सहेजें"
+);
diff --git a/apps/files/l10n/lt_LT.php b/apps/files/l10n/lt_LT.php
index 3e2ea80c949..5938521beab 100644
--- a/apps/files/l10n/lt_LT.php
+++ b/apps/files/l10n/lt_LT.php
@@ -1,12 +1,19 @@
<?php $TRANSLATIONS = array(
+"Could not move %s - File with this name already exists" => "Nepavyko perkelti %s - failas su tokiu pavadinimu jau egzistuoja",
+"Could not move %s" => "Nepavyko perkelti %s",
+"No file was uploaded. Unknown error" => "Failai nebuvo įkelti dėl nežinomos priežasties",
"There is no error, the file uploaded with success" => "Failas įkeltas sėkmingai, be klaidų",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Įkeliamas failas yra didesnis nei leidžia upload_max_filesize php.ini faile:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Įkeliamo failo dydis viršija MAX_FILE_SIZE nustatymą, kuris naudojamas HTML formoje.",
"The uploaded file was only partially uploaded" => "Failas buvo įkeltas tik dalinai",
"No file was uploaded" => "Nebuvo įkeltas joks failas",
"Missing a temporary folder" => "Nėra laikinojo katalogo",
"Failed to write to disk" => "Nepavyko įrašyti į diską",
+"Not enough storage available" => "Nepakanka vietos serveryje",
+"Invalid directory." => "Neteisingas aplankas",
"Files" => "Failai",
"Share" => "Dalintis",
+"Delete permanently" => "Ištrinti negrįžtamai",
"Delete" => "Ištrinti",
"Rename" => "Pervadinti",
"Pending" => "Laukiantis",
@@ -16,10 +23,21 @@
"cancel" => "atšaukti",
"replaced {new_name} with {old_name}" => "pakeiskite {new_name} į {old_name}",
"undo" => "anuliuoti",
+"perform delete operation" => "ištrinti",
"1 file uploading" => "įkeliamas 1 failas",
+"files uploading" => "įkeliami failai",
+"'.' is an invalid file name." => "'.' yra neleidžiamas failo pavadinime.",
+"File name cannot be empty." => "Failo pavadinimas negali būti tuščias.",
+"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Neleistinas pavadinimas, '\\', '/', '<', '>', ':', '\"', '|', '?' ir '*' yra neleidžiami.",
+"Your storage is full, files can not be updated or synced anymore!" => "Jūsų visa vieta serveryje užimta",
+"Your storage is almost full ({usedSpacePercent}%)" => "Jūsų vieta serveryje beveik visa užimta ({usedSpacePercent}%)",
+"Your download is being prepared. This might take some time if the files are big." => "Jūsų atsisiuntimas yra paruošiamas. tai gali užtrukti jei atsisiunčiamas didelis failas.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Neįmanoma įkelti failo - jo dydis gali būti 0 bitų arba tai katalogas",
+"Not enough space available" => "Nepakanka vietos",
"Upload cancelled." => "Įkėlimas atšauktas.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Failo įkėlimas pradėtas. Jei paliksite šį puslapį, įkėlimas nutrūks.",
+"URL cannot be empty." => "URL negali būti tuščias.",
+"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Negalimas aplanko pavadinimas. 'Shared' pavadinimas yra rezervuotas ownCloud",
"Error" => "Klaida",
"Name" => "Pavadinimas",
"Size" => "Dydis",
@@ -28,6 +46,8 @@
"{count} folders" => "{count} aplankalai",
"1 file" => "1 failas",
"{count} files" => "{count} failai",
+"Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "Negalimas aplanko pavadinimas. 'Shared' pavadinimas yra rezervuotas ownCloud",
+"Unable to rename file" => "Nepavyko pervadinti failo",
"Upload" => "Įkelti",
"File handling" => "Failų tvarkymas",
"Maximum upload size" => "Maksimalus įkeliamo failo dydis",
@@ -40,12 +60,16 @@
"New" => "Naujas",
"Text file" => "Teksto failas",
"Folder" => "Katalogas",
+"From link" => "Iš nuorodos",
+"Deleted files" => "Ištrinti failai",
"Cancel upload" => "Atšaukti siuntimą",
+"You don’t have write permissions here." => "Jūs neturite rašymo leidimo.",
"Nothing in here. Upload something!" => "Čia tuščia. Įkelkite ką nors!",
"Download" => "Atsisiųsti",
"Unshare" => "Nebesidalinti",
"Upload too large" => "Įkėlimui failas per didelis",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Bandomų įkelti failų dydis viršija maksimalų, kuris leidžiamas šiame serveryje",
"Files are being scanned, please wait." => "Skenuojami failai, prašome palaukti.",
-"Current scanning" => "Šiuo metu skenuojama"
+"Current scanning" => "Šiuo metu skenuojama",
+"Upgrading filesystem cache..." => "Atnaujinamas sistemos kešavimas..."
);
diff --git a/apps/files/l10n/ru.php b/apps/files/l10n/ru.php
index 83412bf2be8..43a8dc70080 100644
--- a/apps/files/l10n/ru.php
+++ b/apps/files/l10n/ru.php
@@ -46,6 +46,7 @@
"{count} folders" => "{count} папок",
"1 file" => "1 файл",
"{count} files" => "{count} файлов",
+"Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "Неправильное имя каталога. Имя 'Shared' зарезервировано.",
"Unable to rename file" => "Невозможно переименовать файл",
"Upload" => "Загрузка",
"File handling" => "Управление файлами",
diff --git a/apps/files/l10n/sv.php b/apps/files/l10n/sv.php
index 82d169d569c..171c95f7a0b 100644
--- a/apps/files/l10n/sv.php
+++ b/apps/files/l10n/sv.php
@@ -46,6 +46,7 @@
"{count} folders" => "{count} mappar",
"1 file" => "1 fil",
"{count} files" => "{count} filer",
+"Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "Ogiltigt mappnamn. Användning av 'Shared' är reserverad av ownCloud",
"Unable to rename file" => "Kan inte byta namn på filen",
"Upload" => "Ladda upp",
"File handling" => "Filhantering",
diff --git a/apps/files/templates/part.list.php b/apps/files/templates/part.list.php
index 1719d25e660..1e94275dcba 100644
--- a/apps/files/templates/part.list.php
+++ b/apps/files/templates/part.list.php
@@ -3,12 +3,12 @@
<?php foreach($_['files'] as $file):
$simple_file_size = OCP\simple_file_size($file['size']);
// the bigger the file, the darker the shade of grey; megabytes*2
- $simple_size_color = intval(200-$file['size']/(1024*1024)*2);
+ $simple_size_color = intval(160-$file['size']/(1024*1024)*2);
if($simple_size_color<0) $simple_size_color = 0;
$relative_modified_date = OCP\relative_modified_date($file['mtime']);
// the older the file, the brighter the shade of grey; days*14
$relative_date_color = round((time()-$file['mtime'])/60/60/24*14);
- if($relative_date_color>200) $relative_date_color = 200;
+ if($relative_date_color>160) $relative_date_color = 160;
$name = rawurlencode($file['name']);
$name = str_replace('%2F', '/', $name);
$directory = rawurlencode($file['directory']);
diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php
index f823999dcb0..94fc19fae2a 100644
--- a/apps/files_encryption/hooks/hooks.php
+++ b/apps/files_encryption/hooks/hooks.php
@@ -142,6 +142,15 @@ class Hooks {
}
/**
+ * @brief If the password can't be changed within ownCloud, than update the key password in advance.
+ */
+ public static function preSetPassphrase($params) {
+ if ( ! \OC_User::canUserChangePassword($params['uid']) ) {
+ self::setPassphrase($params);
+ }
+ }
+
+ /**
* @brief Change a user's encryption passphrase
* @param array $params keys: uid, password
*/
diff --git a/apps/files_encryption/l10n/ca.php b/apps/files_encryption/l10n/ca.php
index 46e91d1f070..5db1d7e58c5 100644
--- a/apps/files_encryption/l10n/ca.php
+++ b/apps/files_encryption/l10n/ca.php
@@ -1,4 +1,22 @@
<?php $TRANSLATIONS = array(
+"Recovery key successfully enabled" => "La clau de recuperació s'ha activat",
+"Could not enable recovery key. Please check your recovery key password!" => "No s'ha pogut activar la clau de recuperació. Comproveu contrasenya de la clau de recuperació!",
+"Recovery key successfully disabled" => "La clau de recuperació s'ha descativat",
+"Could not disable recovery key. Please check your recovery key password!" => "No s'ha pogut desactivar la calu de recuperació. Comproveu la contrasenya de la clau de recuperació!",
+"Password successfully changed." => "La contrasenya s'ha canviat.",
+"Could not change the password. Maybe the old password was not correct." => "No s'ha pogut canviar la contrasenya. Potser la contrasenya anterior no era correcta.",
"Saving..." => "Desant...",
-"Encryption" => "Xifrat"
+"Encryption" => "Xifrat",
+"Enable encryption passwords recovery key (allow sharing to recovery key):" => "Activa la clau de recuperació de contrasenya (permet compartir la clau de recuperació):",
+"Recovery account password" => "Contrasenya de recuperació del compte",
+"Enabled" => "Activat",
+"Disabled" => "Desactivat",
+"Change encryption passwords recovery key:" => "Canvia la clau de recuperació de la contrasenya:",
+"Old Recovery account password" => "Contrasenya de recuperació anterior",
+"New Recovery account password" => "Nova contrasenya de recuperació de compte",
+"Change Password" => "Canvia la contrasenya",
+"Enable password recovery by sharing all files with your administrator:" => "Activa la recuperació de contrasenya compartint tots els fitxers amb l'administrador:",
+"Enabling this option will allow you to reobtain access to your encrypted files if your password is lost" => "Activant aquesta opció us permetrà obtenir de nou accés als fitxers encriptats si perdeu la contrasenya",
+"File recovery settings updated" => "S'han actualitzat els arranjaments de recuperació de fitxers",
+"Could not update file recovery" => "No s'ha pogut actualitzar la recuperació de fitxers"
);
diff --git a/apps/files_encryption/l10n/cs_CZ.php b/apps/files_encryption/l10n/cs_CZ.php
index f9b2dd06b6f..e8c365972ca 100644
--- a/apps/files_encryption/l10n/cs_CZ.php
+++ b/apps/files_encryption/l10n/cs_CZ.php
@@ -1,4 +1,22 @@
<?php $TRANSLATIONS = array(
+"Recovery key successfully enabled" => "Záchranný klíč byl úspěšně povolen",
+"Could not enable recovery key. Please check your recovery key password!" => "Nepodařilo se povolit záchranný klíč. Zkontrolujte prosím vaše heslo záchranného klíče!",
+"Recovery key successfully disabled" => "Záchranný klíč byl úspěšně zakázán",
+"Could not disable recovery key. Please check your recovery key password!" => "Nelze zakázat záchranný klíč. Zkontrolujte prosím heslo vašeho záchranného klíče.",
+"Password successfully changed." => "Heslo bylo úspěšně změněno.",
+"Could not change the password. Maybe the old password was not correct." => "Nelze změnit heslo. Pravděpodobně nebylo stávající heslo zadáno správně.",
"Saving..." => "Ukládám...",
-"Encryption" => "Šifrování"
+"Encryption" => "Šifrování",
+"Enable encryption passwords recovery key (allow sharing to recovery key):" => "Povolit záchranný klíč šifrovacích hesel (povolí sdílený záchranný klíč):",
+"Recovery account password" => "Heslo pro obnovu účtu",
+"Enabled" => "Povoleno",
+"Disabled" => "Zakázáno",
+"Change encryption passwords recovery key:" => "Změnit záchranný klíč šifrovacích hesel:",
+"Old Recovery account password" => "Stávající heslo pro obnovu účtu",
+"New Recovery account password" => "Nové heslo pro obnovu účtu",
+"Change Password" => "Změnit heslo",
+"Enable password recovery by sharing all files with your administrator:" => "Povolit obnovu hesla sdílením všech souborů s vaším správcem:",
+"Enabling this option will allow you to reobtain access to your encrypted files if your password is lost" => "Povolení vám umožní znovu získat přístup k vašim zašifrovaným souborům pokud ztratíte heslo",
+"File recovery settings updated" => "Možnosti obnovy souborů aktualizovány",
+"Could not update file recovery" => "Nelze aktualizovat obnovu souborů"
);
diff --git a/apps/files_encryption/l10n/de.php b/apps/files_encryption/l10n/de.php
index 2ab77f480cf..18fe7df6487 100644
--- a/apps/files_encryption/l10n/de.php
+++ b/apps/files_encryption/l10n/de.php
@@ -1,4 +1,17 @@
<?php $TRANSLATIONS = array(
+"Recovery key successfully enabled" => "Wiederherstellungsschlüssel wurde erfolgreich aktiviert",
+"Could not enable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Überprüfen Sie Ihr Wiederherstellungspasswort!",
+"Recovery key successfully disabled" => "Wiederherstellungsschlüssel deaktiviert.",
+"Could not disable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Überprüfen Sie Ihr Wiederherstellungspasswort!",
+"Password successfully changed." => "Dein Passwort wurde geändert.",
+"Could not change the password. Maybe the old password was not correct." => "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort falsch.",
"Saving..." => "Speichern...",
-"Encryption" => "Verschlüsselung"
+"Encryption" => "Verschlüsselung",
+"Recovery account password" => "Password zurücksetzen",
+"Enabled" => "Aktiviert",
+"Disabled" => "Deaktiviert",
+"Change encryption passwords recovery key:" => "Wiederherstellungsschlüssel für Passwörter ändern:",
+"Change Password" => "Passwort ändern",
+"Enabling this option will allow you to reobtain access to your encrypted files if your password is lost" => "Wenn Sie diese Einstellung aktivieren, können Sie auch im Falle des Verlustes Ihres Passworts auf verschlüsselte Dateien zugreifen",
+"File recovery settings updated" => "Einstellungen zur Wiederherstellung von Dateien wurden aktualisiert"
);
diff --git a/apps/files_encryption/l10n/de_DE.php b/apps/files_encryption/l10n/de_DE.php
index 5ab283ccab3..48bf3a89a24 100644
--- a/apps/files_encryption/l10n/de_DE.php
+++ b/apps/files_encryption/l10n/de_DE.php
@@ -1,9 +1,20 @@
<?php $TRANSLATIONS = array(
+"Recovery key successfully enabled" => "Der Wiederherstellungsschlüssel wurde erfolgreich aktiviert.",
+"Could not enable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht aktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!",
+"Recovery key successfully disabled" => "Der Wiederherstellungsschlüssel wurde erfolgreich deaktiviert.",
+"Could not disable recovery key. Please check your recovery key password!" => "Der Wiederherstellungsschlüssel konnte nicht deaktiviert werden. Bitte überprüfen Sie das Passwort für den Wiederherstellungsschlüssel!",
"Password successfully changed." => "Das Passwort wurde erfolgreich geändert.",
"Could not change the password. Maybe the old password was not correct." => "Das Passwort konnte nicht geändert werden. Vielleicht war das alte Passwort nicht richtig.",
"Saving..." => "Speichern...",
"Encryption" => "Verschlüsselung",
+"Recovery account password" => "Account-Passwort wiederherstellen",
"Enabled" => "Aktiviert",
"Disabled" => "Deaktiviert",
-"Change Password" => "Passwort ändern"
+"Old Recovery account password" => "Altes Passwort für die Account-Wiederherstellung",
+"New Recovery account password" => "Neues Passwort für die Account-Wiederherstellung",
+"Change Password" => "Passwort ändern",
+"Enable password recovery by sharing all files with your administrator:" => "Aktiviere die Wiederherstellung deines Passwortes durch das Teilen aller Dateien mit dem Administrator:",
+"Enabling this option will allow you to reobtain access to your encrypted files if your password is lost" => "Durch die Aktivierung dieser Option haben Sie die Möglichkeit, wieder auf Ihre verschlüsselten Dateien zugreifen zu können, wenn Sie Ihr Passwort verloren haben.",
+"File recovery settings updated" => "Die Einstellungen für die Dateiwiederherstellung wurden aktualisiert.",
+"Could not update file recovery" => "Die Dateiwiederherstellung konnte nicht aktualisiert werden."
);
diff --git a/apps/files_encryption/l10n/el.php b/apps/files_encryption/l10n/el.php
index 7067799cd2e..c73fbf56462 100644
--- a/apps/files_encryption/l10n/el.php
+++ b/apps/files_encryption/l10n/el.php
@@ -1,4 +1,12 @@
<?php $TRANSLATIONS = array(
+"Password successfully changed." => "Ο κωδικός αλλάχτηκε επιτυχώς.",
+"Could not change the password. Maybe the old password was not correct." => "Αποτυχία αλλαγής κωδικού ίσως ο παλιός κωδικός να μην ήταν σωστός.",
"Saving..." => "Γίνεται αποθήκευση...",
-"Encryption" => "Κρυπτογράφηση"
+"Encryption" => "Κρυπτογράφηση",
+"Recovery account password" => "Επαναφορά κωδικού πρόσβασης λογαριασμού",
+"Enabled" => "Ενεργοποιημένο",
+"Disabled" => "Απενεργοποιημένο",
+"Change Password" => "Αλλαγή Κωδικού Πρόσβασης",
+"Enable password recovery by sharing all files with your administrator:" => "Ενεργοποιήστε την επαναφορά κωδικού πρόσβασης με το να μοιραστείτε όλα τα αρχεία με τον διαχειριστή σας:",
+"File recovery settings updated" => "Οι ρυθμίσεις επαναφοράς αρχείων ανανεώθηκαν"
);
diff --git a/apps/files_encryption/l10n/es.php b/apps/files_encryption/l10n/es.php
index 7311a78f09b..58adbd716a8 100644
--- a/apps/files_encryption/l10n/es.php
+++ b/apps/files_encryption/l10n/es.php
@@ -1,4 +1,22 @@
<?php $TRANSLATIONS = array(
+"Recovery key successfully enabled" => "Se ha habilitado la recuperación de archivos",
+"Could not enable recovery key. Please check your recovery key password!" => "No se pudo habilitar la clave de recuperación. Por favor compruebe su contraseña.",
+"Recovery key successfully disabled" => "Clave de recuperación deshabilitada",
+"Could not disable recovery key. Please check your recovery key password!" => "No se pudo deshabilitar la clave de recuperación. Por favor compruebe su contraseña!",
+"Password successfully changed." => "Su contraseña ha sido cambiada",
+"Could not change the password. Maybe the old password was not correct." => "No se pudo cambiar la contraseña. Compruebe que la contraseña actual sea correcta.",
"Saving..." => "Guardando...",
-"Encryption" => "Cifrado"
+"Encryption" => "Cifrado",
+"Enable encryption passwords recovery key (allow sharing to recovery key):" => "Habilitar clave de recuperación de contraseñas ():",
+"Recovery account password" => "Recuperar contraseña",
+"Enabled" => "Habilitar",
+"Disabled" => "Deshabilitado",
+"Change encryption passwords recovery key:" => "Cambiar clave de cifrado de contraseñas:",
+"Old Recovery account password" => "Contraseña de recuperación actual",
+"New Recovery account password" => "Contraseña de recuperación nueva",
+"Change Password" => "Cambiar contraseña",
+"Enable password recovery by sharing all files with your administrator:" => "Habilitar recuperación de contraseña compartiendo todos los archivos con su administrador",
+"Enabling this option will allow you to reobtain access to your encrypted files if your password is lost" => "Habilitar esta opción para poder acceder a sus archivos cifrados si pierde su contraseña",
+"File recovery settings updated" => "Opciones de recuperación de archivos actualizada",
+"Could not update file recovery" => "No se pudo actualizar la recuperación de archivos"
);
diff --git a/apps/files_encryption/l10n/fr.php b/apps/files_encryption/l10n/fr.php
index 98fb70691df..af4fd1a893f 100644
--- a/apps/files_encryption/l10n/fr.php
+++ b/apps/files_encryption/l10n/fr.php
@@ -1,4 +1,22 @@
<?php $TRANSLATIONS = array(
+"Recovery key successfully enabled" => "Clé de récupération activée avec succès",
+"Could not enable recovery key. Please check your recovery key password!" => "Ne peut pas activer la clé de récupération. s'il vous plait vérifiez votre mot de passe de clé de récupération!",
+"Recovery key successfully disabled" => "Clé de récupération désactivée avc succès",
+"Could not disable recovery key. Please check your recovery key password!" => "Ne peut pas désactiver la clé de récupération. S'il vous plait vérifiez votre mot de passe de clé de récupération!",
+"Password successfully changed." => "Mot de passe changé avec succès ",
+"Could not change the password. Maybe the old password was not correct." => "Ne peut pas changer le mot de passe. L'ancien mot de passe est peut-être incorrect.",
"Saving..." => "Enregistrement...",
-"Encryption" => "Chiffrement"
+"Encryption" => "Chiffrement",
+"Enable encryption passwords recovery key (allow sharing to recovery key):" => "Activer la clé de récupération par mots de passe de cryptage (autoriser le partage de la clé de récupération) ",
+"Recovery account password" => "Rétablissement du compte mot de passe ",
+"Enabled" => "Activer",
+"Disabled" => "Désactiver",
+"Change encryption passwords recovery key:" => "Changer les mots de passe de cryptage par la clé de récupération",
+"Old Recovery account password" => "Ancien compte de récupération de mots de passe",
+"New Recovery account password" => "Nouveau compte de récupération de mots de passe",
+"Change Password" => "Changer de mot de passe",
+"Enable password recovery by sharing all files with your administrator:" => "Activer la récupération des mots de passe en partageant les fichiers avec votre administrateur:",
+"Enabling this option will allow you to reobtain access to your encrypted files if your password is lost" => "En activant cette option cela vous autorisera à récupérer votre accès aux fichiers cryptés si votre mot de passe est perdu",
+"File recovery settings updated" => "Mise à jour des paramètres de récupération de fichiers ",
+"Could not update file recovery" => "Ne peut pas remettre à jour les fichiers de récupération"
);
diff --git a/apps/files_encryption/l10n/ja_JP.php b/apps/files_encryption/l10n/ja_JP.php
index 7f906ae5c03..6d2d3e249c0 100644
--- a/apps/files_encryption/l10n/ja_JP.php
+++ b/apps/files_encryption/l10n/ja_JP.php
@@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
+"Recovery key successfully enabled" => "リカバリ用のキーは正常に有効化されました",
+"Could not enable recovery key. Please check your recovery key password!" => "リカバリ用のキーを有効にできませんでした。リカバリ用のキーのパスワードを確認して下さい!",
+"Recovery key successfully disabled" => "リカバリ用のキーを正常に無効化しました",
+"Could not disable recovery key. Please check your recovery key password!" => "リカバリ用のキーを無効化できませんでした。リカバリ用のキーのパスワードを確認して下さい!",
"Password successfully changed." => "パスワードを変更できました。",
"Could not change the password. Maybe the old password was not correct." => "パスワードを変更できませんでした。古いパスワードが間違っているかもしれません。",
"Saving..." => "保存中...",
diff --git a/apps/files_encryption/l10n/lt_LT.php b/apps/files_encryption/l10n/lt_LT.php
index 6bc80ff44ab..8e9d02c3b13 100644
--- a/apps/files_encryption/l10n/lt_LT.php
+++ b/apps/files_encryption/l10n/lt_LT.php
@@ -1,4 +1,22 @@
<?php $TRANSLATIONS = array(
+"Recovery key successfully enabled" => "Atkūrimo raktas sėkmingai įjungtas",
+"Could not enable recovery key. Please check your recovery key password!" => "Neišėjo įjungti jūsų atkūrimo rakto. Prašome jį patikrinti!",
+"Recovery key successfully disabled" => "Atkūrimo raktas sėkmingai išjungtas",
+"Could not disable recovery key. Please check your recovery key password!" => "Neišėjo išjungti jūsų atkūrimo rakto. Prašome jį patikrinti!",
+"Password successfully changed." => "Slaptažodis sėkmingai pakeistas",
+"Could not change the password. Maybe the old password was not correct." => "Slaptažodis nebuvo pakeistas. Gali būti, kad buvo neteisingai suvestas senasis.",
"Saving..." => "Saugoma...",
-"Encryption" => "Šifravimas"
+"Encryption" => "Šifravimas",
+"Enable encryption passwords recovery key (allow sharing to recovery key):" => "Įjungti šifravimo slaptažodžio atstatymo raktą (leidžia dalintis su atstatymo raktu):",
+"Recovery account password" => "Atstatymo vartotojo slaptažodis",
+"Enabled" => "Įjungta",
+"Disabled" => "Išjungta",
+"Change encryption passwords recovery key:" => "Pakeisti šifravimo slaptažodžio atstatymo raktą:",
+"Old Recovery account password" => "Seno atstatymo vartotojo slaptažodis",
+"New Recovery account password" => "naujo atstatymo vartotojo slaptažodis",
+"Change Password" => "Pakeisti slaptažodį",
+"Enable password recovery by sharing all files with your administrator:" => "Įjungti slaptažodžio atkūrimą dalinantis visais failas su administratoriumi:",
+"Enabling this option will allow you to reobtain access to your encrypted files if your password is lost" => "Įjungus šią funkciją jums bus suteiktas priėjimas prie šifruotos informacijos ir pamiršus slaptažodį.",
+"File recovery settings updated" => "Failų atstatymo nustatymai pakeisti",
+"Could not update file recovery" => "Neišėjo atnaujinti failų atkūrimo"
);
diff --git a/apps/files_encryption/l10n/nl.php b/apps/files_encryption/l10n/nl.php
index ebcbdfab15f..9c462917cf3 100644
--- a/apps/files_encryption/l10n/nl.php
+++ b/apps/files_encryption/l10n/nl.php
@@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
+"Recovery key successfully enabled" => "Herstelsleutel succesvol geactiveerd",
+"Could not enable recovery key. Please check your recovery key password!" => "Kon herstelsleutel niet activeren. Controleer het wachtwoord van uw herstelsleutel!",
+"Recovery key successfully disabled" => "Herstelsleutel succesvol gedeactiveerd",
+"Could not disable recovery key. Please check your recovery key password!" => "Kon herstelsleutel niet deactiveren. Controleer het wachtwoord van uw herstelsleutel!",
"Password successfully changed." => "Wachtwoord succesvol gewijzigd.",
"Could not change the password. Maybe the old password was not correct." => "Kon wachtwoord niet wijzigen. Wellicht oude wachtwoord niet juist ingevoerd.",
"Saving..." => "Opslaan",
diff --git a/apps/files_encryption/l10n/pt_BR.php b/apps/files_encryption/l10n/pt_BR.php
index ce8814c233e..e5fa0b55cad 100644
--- a/apps/files_encryption/l10n/pt_BR.php
+++ b/apps/files_encryption/l10n/pt_BR.php
@@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
+"Recovery key successfully enabled" => "Recuperação de chave habilitada com sucesso",
+"Could not enable recovery key. Please check your recovery key password!" => "Impossível habilitar recuperação de chave. Por favor verifique sua senha para recuperação de chave!",
+"Recovery key successfully disabled" => "Recuperação de chave desabilitada com sucesso",
+"Could not disable recovery key. Please check your recovery key password!" => "Impossível desabilitar recuperação de chave. Por favor verifique sua senha para recuperação de chave!",
"Password successfully changed." => "Senha alterada com sucesso.",
"Could not change the password. Maybe the old password was not correct." => "Não foi possível alterar a senha. Talvez a senha antiga não estava correta.",
"Saving..." => "Salvando...",
diff --git a/apps/files_encryption/l10n/pt_PT.php b/apps/files_encryption/l10n/pt_PT.php
index e1bb17ecaa7..eede4804cf6 100644
--- a/apps/files_encryption/l10n/pt_PT.php
+++ b/apps/files_encryption/l10n/pt_PT.php
@@ -1,9 +1,22 @@
<?php $TRANSLATIONS = array(
+"Recovery key successfully enabled" => "Chave de recuperação activada com sucesso",
+"Could not enable recovery key. Please check your recovery key password!" => "Não foi possível activar a chave de recuperação. Por favor verifique a password da chave de recuperação!",
+"Recovery key successfully disabled" => "Chave de recuperação descativada com sucesso",
+"Could not disable recovery key. Please check your recovery key password!" => "Não foi possível desactivar a chave de recuperação. Por favor verifique a password da chave de recuperação.",
"Password successfully changed." => "Password alterada com sucesso.",
"Could not change the password. Maybe the old password was not correct." => "Não foi possivel alterar a password. Possivelmente a password antiga não está correcta.",
"Saving..." => "A guardar...",
"Encryption" => "Encriptação",
+"Enable encryption passwords recovery key (allow sharing to recovery key):" => "Activar a chave de recuperação das passwords de encriptação (permitir partilha da chave de recuperação):",
+"Recovery account password" => "Password de recuperação de conta",
"Enabled" => "Activado",
"Disabled" => "Desactivado",
-"Change Password" => "Mudar a Password"
+"Change encryption passwords recovery key:" => "Alterar a chave de recuperação da password de encriptação:",
+"Old Recovery account password" => "Password de recuperação de conta antiga:",
+"New Recovery account password" => "Nova password de recuperação de conta",
+"Change Password" => "Mudar a Password",
+"Enable password recovery by sharing all files with your administrator:" => "Activar a recuperação de password ao partilhar todos os ficheiros com o administrador:",
+"Enabling this option will allow you to reobtain access to your encrypted files if your password is lost" => "Activar esta opção, tornar-lhe-a possível a obtenção de acesso aos seus ficheiros encriptados caso perca a password.",
+"File recovery settings updated" => "Actualizadas as definições de recuperação de ficheiros",
+"Could not update file recovery" => "Não foi possível actualizar a recuperação de ficheiros"
);
diff --git a/apps/files_encryption/l10n/sv.php b/apps/files_encryption/l10n/sv.php
index 966963b5549..efcfc105073 100644
--- a/apps/files_encryption/l10n/sv.php
+++ b/apps/files_encryption/l10n/sv.php
@@ -1,4 +1,22 @@
<?php $TRANSLATIONS = array(
+"Recovery key successfully enabled" => "Återställningsnyckeln har framgångsrikt aktiverats",
+"Could not enable recovery key. Please check your recovery key password!" => "Kunde inte aktivera återställningsnyckeln. Vänligen kontrollera ditt lösenord för återställningsnyckeln!",
+"Recovery key successfully disabled" => "Återställningsnyckeln har framgångsrikt inaktiverats",
+"Could not disable recovery key. Please check your recovery key password!" => "Kunde inte inaktivera återställningsnyckeln. Vänligen kontrollera ditt lösenord för återställningsnyckeln!",
+"Password successfully changed." => "Ändringen av lösenordet lyckades.",
+"Could not change the password. Maybe the old password was not correct." => "Kunde inte ändra lösenordet. Kanske det gamla lösenordet inte var rätt.",
"Saving..." => "Sparar...",
-"Encryption" => "Kryptering"
+"Encryption" => "Kryptering",
+"Enable encryption passwords recovery key (allow sharing to recovery key):" => "Aktivera återställningsnyckel för krypterade lösenord. (tillåt delning till återställningsnyckeln):",
+"Recovery account password" => "Återställning av kontolösenord",
+"Enabled" => "Aktiverad",
+"Disabled" => "Inaktiverad",
+"Change encryption passwords recovery key:" => "Ändra återställningsnyckeln för krypterade lösenord:",
+"Old Recovery account password" => "Gamla lösenordet för återställningskontot",
+"New Recovery account password" => "Nytt återställningslösenord för kontot",
+"Change Password" => "Byt lösenord",
+"Enable password recovery by sharing all files with your administrator:" => "Aktivera lösenordsåterställning genom att dela alla filer med din administratör:",
+"Enabling this option will allow you to reobtain access to your encrypted files if your password is lost" => "Aktivera det här alternativet för att kunna återfå tillgång till dina krypterade filer om du skulle förlora/glömma ditt lösenord",
+"File recovery settings updated" => "Inställningarna för filåterställning har uppdaterats",
+"Could not update file recovery" => "Kunde inte uppdatera filåterställning"
);
diff --git a/apps/files_encryption/l10n/tr.php b/apps/files_encryption/l10n/tr.php
index 917ff0a0eae..fc0847ed85d 100644
--- a/apps/files_encryption/l10n/tr.php
+++ b/apps/files_encryption/l10n/tr.php
@@ -1,4 +1,22 @@
<?php $TRANSLATIONS = array(
+"Recovery key successfully enabled" => "Kurtarma anahtarı başarıyla etkinleştirildi",
+"Could not enable recovery key. Please check your recovery key password!" => "Kurtarma anahtarı etkinleştirilemedi. Lütfen kurtarma anahtarı parolanızı kontrol edin!",
+"Recovery key successfully disabled" => "Kurtarma anahtarı başarıyla devre dışı bırakıldı",
+"Could not disable recovery key. Please check your recovery key password!" => "Kurtarma anahtarı devre dışı bırakılamadı. Lütfen kurtarma anahtarı parolanızı kontrol edin!",
+"Password successfully changed." => "Şifreniz başarıyla değiştirildi.",
+"Could not change the password. Maybe the old password was not correct." => "Parola değiştirilemedi. Eski parolanız doğru olmayabilir",
"Saving..." => "Kaydediliyor...",
-"Encryption" => "Şifreleme"
+"Encryption" => "Şifreleme",
+"Enable encryption passwords recovery key (allow sharing to recovery key):" => "Şifreli parola kurtarma anahtarını etkinleştir(kurtarma anahtarı paylaşımına izin ver)",
+"Recovery account password" => "Kurtarma hesabı parolası",
+"Enabled" => "Etkinleştirildi",
+"Disabled" => "Devre dışı",
+"Change encryption passwords recovery key:" => "Şifreli parolalar kurtarma anahtarını değiştir:",
+"Old Recovery account password" => "Eski kurtarma hesabı parolası",
+"New Recovery account password" => "Yeni kurtarma hesabı parolası",
+"Change Password" => "Parola değiştir",
+"Enable password recovery by sharing all files with your administrator:" => "Parola kurtarmasını tüm paylaşılan dosyaları sistem yöneticiniz ile paylaşarak kurtarmayı etkinleştir:",
+"Enabling this option will allow you to reobtain access to your encrypted files if your password is lost" => "Bu seçeneği etkinleştirmekle eğer parolanızı kaybederseniz şifreli dosyalara erişimi elde etmiş olursunuz",
+"File recovery settings updated" => "Dosya kurtarma ayarları güncellendi",
+"Could not update file recovery" => "Dosya kurtarma güncellenemedi"
);
diff --git a/apps/files_encryption/l10n/vi.php b/apps/files_encryption/l10n/vi.php
index 0af5bdc9a67..3e76060b1de 100644
--- a/apps/files_encryption/l10n/vi.php
+++ b/apps/files_encryption/l10n/vi.php
@@ -1,4 +1,10 @@
<?php $TRANSLATIONS = array(
+"Password successfully changed." => "Đã đổi mật khẩu.",
+"Could not change the password. Maybe the old password was not correct." => "Không thể đổi mật khẩu. Có lẽ do mật khẩu cũ không đúng.",
"Saving..." => "Đang lưu...",
-"Encryption" => "Mã hóa"
+"Encryption" => "Mã hóa",
+"Recovery account password" => "Mật khẩu cho tài khoản cứu hộ",
+"Enabled" => "Bật",
+"Disabled" => "Tắt",
+"Change Password" => "Đổi Mật khẩu"
);
diff --git a/apps/files_encryption/l10n/zh_CN.php b/apps/files_encryption/l10n/zh_CN.php
index e565fce801c..59582e6fd52 100644
--- a/apps/files_encryption/l10n/zh_CN.php
+++ b/apps/files_encryption/l10n/zh_CN.php
@@ -1,4 +1,22 @@
<?php $TRANSLATIONS = array(
+"Recovery key successfully enabled" => "恢复密钥成功启用",
+"Could not enable recovery key. Please check your recovery key password!" => "不能启用恢复密钥。请检查恢复密钥密码!",
+"Recovery key successfully disabled" => "恢复密钥成功禁用",
+"Could not disable recovery key. Please check your recovery key password!" => "不能禁用恢复密钥。请检查恢复密钥密码!",
+"Password successfully changed." => "密码修改成功。",
+"Could not change the password. Maybe the old password was not correct." => "不能修改密码。旧密码可能不正确。",
"Saving..." => "保存中",
-"Encryption" => "加密"
+"Encryption" => "加密",
+"Enable encryption passwords recovery key (allow sharing to recovery key):" => "启用加密密码恢复密钥(允许共享恢复密钥):",
+"Recovery account password" => "恢复账户密码",
+"Enabled" => "开启",
+"Disabled" => "禁用",
+"Change encryption passwords recovery key:" => "变更加密密码恢复密钥:",
+"Old Recovery account password" => "旧恢复账号密码",
+"New Recovery account password" => "新恢复账号密码",
+"Change Password" => "修改密码",
+"Enable password recovery by sharing all files with your administrator:" => "通过与系统管理员共享全部文件启用密码恢复:",
+"Enabling this option will allow you to reobtain access to your encrypted files if your password is lost" => "启用该选项将允许你丢失密码时重新取得加密过的文件。",
+"File recovery settings updated" => "文件恢复设置已更新",
+"Could not update file recovery" => "不能更新文件恢复"
);
diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php
index e078ab35541..184e1782494 100755
--- a/apps/files_encryption/lib/helper.php
+++ b/apps/files_encryption/lib/helper.php
@@ -48,6 +48,7 @@ class Helper {
\OCP\Util::connectHook('OC_User', 'post_login', 'OCA\Encryption\Hooks', 'login');
\OCP\Util::connectHook('OC_User', 'post_setPassword', 'OCA\Encryption\Hooks', 'setPassphrase');
+ \OCP\Util::connectHook('OC_User', 'pre_setPassword', 'OCA\Encryption\Hooks', 'preSetPassphrase');
\OCP\Util::connectHook('OC_User', 'post_createUser', 'OCA\Encryption\Hooks', 'postCreateUser');
\OCP\Util::connectHook('OC_User', 'post_deleteUser', 'OCA\Encryption\Hooks', 'postDeleteUser');
}
diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php
index 3d85edf9841..6d720a3ff49 100644
--- a/apps/files_encryption/lib/util.php
+++ b/apps/files_encryption/lib/util.php
@@ -289,7 +289,7 @@ class Util {
*/
public function recoveryEnabledForUser() {
- $sql = 'SELECT `recovery_enabled` FROM `*PREFIX*encryption` WHERE uid = ?';
+ $sql = 'SELECT `recovery_enabled` FROM `*PREFIX*encryption` WHERE `uid` = ?';
$args = array($this->userId);
@@ -347,7 +347,7 @@ class Util {
// Create a new record instead
} else {
- $sql = 'UPDATE `*PREFIX*encryption` SET recovery_enabled = ? WHERE uid = ?';
+ $sql = 'UPDATE `*PREFIX*encryption` SET `recovery_enabled` = ? WHERE `uid` = ?';
$args = array(
$enabled,
@@ -1048,7 +1048,7 @@ class Util {
*/
public function setMigrationStatus($status) {
- $sql = 'UPDATE `*PREFIX*encryption` SET migration_status = ? WHERE uid = ?';
+ $sql = 'UPDATE `*PREFIX*encryption` SET `migration_status` = ? WHERE `uid` = ?';
$args = array(
$status,
@@ -1077,7 +1077,7 @@ class Util {
*/
public function getMigrationStatus() {
- $sql = 'SELECT `migration_status` FROM `*PREFIX*encryption` WHERE uid = ?';
+ $sql = 'SELECT `migration_status` FROM `*PREFIX*encryption` WHERE `uid` = ?';
$args = array($this->userId);
diff --git a/apps/files_encryption/tests/crypt.php b/apps/files_encryption/tests/crypt.php
index e153a49a2c7..341904b1189 100755
--- a/apps/files_encryption/tests/crypt.php
+++ b/apps/files_encryption/tests/crypt.php
@@ -103,6 +103,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
\OC_User::deleteUser(\Test_Encryption_Crypt::TEST_ENCRYPTION_CRYPT_USER1);
}
+ /**
+ * @medium
+ */
function testGenerateKey() {
# TODO: use more accurate (larger) string length for test confirmation
@@ -114,6 +117,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
}
/**
+ * @large
* @return String
*/
function testGenerateIv() {
@@ -127,6 +131,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
}
/**
+ * @large
* @depends testGenerateIv
*/
function testConcatIv($iv) {
@@ -159,6 +164,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
}
/**
+ * @medium
* @depends testConcatIv
*/
function testSplitIv($testConcatIv) {
@@ -175,6 +181,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
}
/**
+ * @medium
* @return string padded
*/
function testAddPadding() {
@@ -190,6 +197,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
}
/**
+ * @medium
* @depends testAddPadding
*/
function testRemovePadding($padded) {
@@ -200,6 +208,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
}
+ /**
+ * @medium
+ */
function testEncrypt() {
$random = openssl_random_pseudo_bytes(13);
@@ -212,6 +223,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
}
+ /**
+ * @medium
+ */
function testDecrypt() {
$random = openssl_random_pseudo_bytes(13);
@@ -226,6 +240,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
}
+ /**
+ * @medium
+ */
function testSymmetricEncryptFileContent() {
# TODO: search in keyfile for actual content as IV will ensure this test always passes
@@ -241,6 +258,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
}
+ /**
+ * @medium
+ */
function testSymmetricStreamEncryptShortFileContent() {
$filename = 'tmp-' . time() . '.test';
@@ -291,6 +311,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
}
/**
+ * @medium
* @brief Test that data that is written by the crypto stream wrapper
* @note Encrypted data is manually prepared and decrypted here to avoid dependency on success of stream_read
* @note If this test fails with truncate content, check that enough array slices are being rejoined to form $e, as the crypt.php file may have gotten longer and broken the manual
@@ -377,6 +398,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
}
/**
+ * @medium
* @brief Test that data that is read by the crypto stream wrapper
*/
function testSymmetricStreamDecryptShortFileContent() {
@@ -406,6 +428,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
$this->view->unlink($this->userId . '/files/' . $filename);
}
+ /**
+ * @medium
+ */
function testSymmetricStreamDecryptLongFileContent() {
$filename = 'tmp-' . time();
@@ -425,6 +450,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
$this->view->unlink($this->userId . '/files/' . $filename);
}
+ /**
+ * @medium
+ */
function testSymmetricEncryptFileContentKeyfile() {
# TODO: search in keyfile for actual content as IV will ensure this test always passes
@@ -440,6 +468,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
}
+ /**
+ * @medium
+ */
function testIsEncryptedContent() {
$this->assertFalse(Encryption\Crypt::isCatfileContent($this->dataUrl));
@@ -452,6 +483,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
}
+ /**
+ * @large
+ */
function testMultiKeyEncrypt() {
# TODO: search in keyfile for actual content as IV will ensure this test always passes
@@ -476,6 +510,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
}
+ /**
+ * @medium
+ */
function testKeyEncrypt() {
// Generate keypair
@@ -494,6 +531,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
}
/**
+ * @medium
* @brief test encryption using legacy blowfish method
*/
function testLegacyEncryptShort() {
@@ -510,6 +548,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
}
/**
+ * @medium
* @brief test decryption using legacy blowfish method
* @depends testLegacyEncryptShort
*/
@@ -522,6 +561,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
}
/**
+ * @medium
* @brief test encryption using legacy blowfish method
*/
function testLegacyEncryptLong() {
@@ -538,6 +578,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
}
/**
+ * @medium
* @brief test decryption using legacy blowfish method
* @depends testLegacyEncryptLong
*/
@@ -551,6 +592,7 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
}
/**
+ * @medium
* @brief test generation of legacy encryption key
* @depends testLegacyDecryptShort
*/
@@ -569,6 +611,27 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
}
+ /**
+ * @medium
+ * @brief test decryption using legacy blowfish method
+ * @depends testLegacyEncryptLong
+ */
+ function testLegacyKeyRecryptKeyfileEncrypt($crypted) {
+
+ $recrypted = Encryption\Crypt::LegacyKeyRecryptKeyfile($crypted, $this->pass, array($this->genPublicKey));
+
+ $this->assertNotEquals($this->dataLong, $recrypted['data']);
+
+ return $recrypted;
+
+ # TODO: search inencrypted text for actual content to ensure it
+ # genuine transformation
+
+ }
+
+ /**
+ * @medium
+ */
function testRenameFile() {
$filename = 'tmp-' . time();
@@ -597,6 +660,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
$view->unlink($newFilename);
}
+ /**
+ * @medium
+ */
function testMoveFileIntoFolder() {
$filename = 'tmp-' . time();
@@ -627,6 +693,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
$view->unlink($newFolder);
}
+ /**
+ * @medium
+ */
function testMoveFolder() {
$view = new \OC\Files\View('/' . $this->userId . '/files');
@@ -662,6 +731,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
$view->unlink('/newfolder');
}
+ /**
+ * @medium
+ */
function testChangePassphrase() {
$filename = 'tmp-' . time();
@@ -696,6 +768,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
$view->unlink($filename);
}
+ /**
+ * @medium
+ */
function testViewFilePutAndGetContents() {
$filename = '/tmp-' . time();
@@ -727,6 +802,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
$view->unlink($filename);
}
+ /**
+ * @large
+ */
function testTouchExistingFile() {
$filename = '/tmp-' . time();
$view = new \OC\Files\View('/' . $this->userId . '/files');
@@ -748,6 +826,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
$view->unlink($filename);
}
+ /**
+ * @medium
+ */
function testTouchFile() {
$filename = '/tmp-' . time();
$view = new \OC\Files\View('/' . $this->userId . '/files');
@@ -769,6 +850,9 @@ class Test_Encryption_Crypt extends \PHPUnit_Framework_TestCase {
$view->unlink($filename);
}
+ /**
+ * @medium
+ */
function testFopenFile() {
$filename = '/tmp-' . time();
$view = new \OC\Files\View('/' . $this->userId . '/files');
diff --git a/apps/files_encryption/tests/keymanager.php b/apps/files_encryption/tests/keymanager.php
index 40ae1659a55..19ba9a8117f 100644
--- a/apps/files_encryption/tests/keymanager.php
+++ b/apps/files_encryption/tests/keymanager.php
@@ -103,6 +103,9 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase {
\OC_FileProxy::$enabled = true;
}
+ /**
+ * @medium
+ */
function testGetPrivateKey() {
$key = Encryption\Keymanager::getPrivateKey($this->view, $this->userId);
@@ -119,6 +122,9 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase {
}
+ /**
+ * @medium
+ */
function testGetPublicKey() {
$publiceKey = Encryption\Keymanager::getPublicKey($this->view, $this->userId);
@@ -132,6 +138,9 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase {
$this->assertArrayHasKey('key', $sslInfo);
}
+ /**
+ * @medium
+ */
function testSetFileKey() {
# NOTE: This cannot be tested until we are able to break out
@@ -165,6 +174,9 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase {
}
+ /**
+ * @medium
+ */
function testGetUserKeys() {
$keys = Encryption\Keymanager::getUserKeys($this->view, $this->userId);
@@ -188,6 +200,9 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase {
$this->assertArrayHasKey('key', $sslInfoPrivate);
}
+ /**
+ * @medium
+ */
function testFixPartialFilePath() {
$partFilename = 'testfile.txt.part';
@@ -202,6 +217,9 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase {
$this->assertEquals('testfile.txt', Encryption\Keymanager::fixPartialFilePath($filename));
}
+ /**
+ * @medium
+ */
function testRecursiveDelShareKeys() {
// generate filename
diff --git a/apps/files_encryption/tests/share.php b/apps/files_encryption/tests/share.php
index 6d92881ceb0..15dd5058ebb 100755
--- a/apps/files_encryption/tests/share.php
+++ b/apps/files_encryption/tests/share.php
@@ -129,6 +129,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
}
/**
+ * @medium
* @param bool $withTeardown
*/
function testShareFile($withTeardown = true) {
@@ -205,6 +206,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
}
/**
+ * @medium
* @param bool $withTeardown
*/
function testReShareFile($withTeardown = true) {
@@ -275,6 +277,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
}
/**
+ * @medium
* @param bool $withTeardown
* @return array
*/
@@ -363,6 +366,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
}
/**
+ * @medium
* @param bool $withTeardown
*/
function testReShareFolder($withTeardown = true) {
@@ -534,7 +538,7 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
// some hacking to simulate public link
$GLOBALS['app'] = 'files_sharing';
$GLOBALS['fileOwner'] = \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1;
- \OC_User::setUserId('');
+ \OC_User::setUserId(false);
// get file contents
$retrievedCryptedFile = file_get_contents('crypt://' . $this->filename);
@@ -564,6 +568,9 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
. $this->filename . '.' . \Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1 . '.shareKey'));
}
+ /**
+ * @medium
+ */
function testShareFileWithGroup() {
// login as admin
\Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
@@ -639,6 +646,9 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
}
+ /**
+ * @large
+ */
function testRecoveryFile() {
// login as admin
\Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
@@ -741,6 +751,9 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
$this->assertEquals(0, \OC_Appconfig::getValue('files_encryption', 'recoveryAdminEnabled'));
}
+ /**
+ * @large
+ */
function testRecoveryForUser() {
// login as admin
\Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
@@ -837,6 +850,9 @@ class Test_Encryption_Share extends \PHPUnit_Framework_TestCase {
$this->assertEquals(0, \OC_Appconfig::getValue('files_encryption', 'recoveryAdminEnabled'));
}
+ /**
+ * @medium
+ */
function testFailShareFile() {
// login as admin
\Test_Encryption_Util::loginHelper(\Test_Encryption_Share::TEST_ENCRYPTION_SHARE_USER1);
diff --git a/apps/files_encryption/tests/stream.php b/apps/files_encryption/tests/stream.php
index 3d978767542..50ac41e4536 100644
--- a/apps/files_encryption/tests/stream.php
+++ b/apps/files_encryption/tests/stream.php
@@ -140,6 +140,9 @@ class Test_Encryption_Stream extends \PHPUnit_Framework_TestCase {
$view->unlink($filename);
}
+ /**
+ * @medium
+ */
function testStreamSetTimeout() {
$filename = '/tmp-' . time();
$view = new \OC\Files\View('/' . $this->userId . '/files');
diff --git a/apps/files_encryption/tests/trashbin.php b/apps/files_encryption/tests/trashbin.php
index 29f8fb5a396..ade968fbece 100755
--- a/apps/files_encryption/tests/trashbin.php
+++ b/apps/files_encryption/tests/trashbin.php
@@ -113,6 +113,7 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase {
}
/**
+ * @medium
* @brief test delete file
*/
function testDeleteFile() {
@@ -184,6 +185,7 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase {
}
/**
+ * @medium
* @brief test restore file
*
* @depends testDeleteFile
@@ -215,6 +217,7 @@ class Test_Encryption_Trashbin extends \PHPUnit_Framework_TestCase {
}
/**
+ * @medium
* @brief test delete file forever
*/
function testPermanentDeleteFile() {
diff --git a/apps/files_encryption/tests/util.php b/apps/files_encryption/tests/util.php
index b36d7e41172..b945fb4c0f3 100755
--- a/apps/files_encryption/tests/util.php
+++ b/apps/files_encryption/tests/util.php
@@ -118,6 +118,7 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase {
}
/**
+ * @medium
* @brief test that paths set during User construction are correct
*/
function testKeyPaths() {
@@ -132,6 +133,7 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase {
}
/**
+ * @medium
* @brief test setup of encryption directories
*/
function testSetupServerSide() {
@@ -139,6 +141,7 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase {
}
/**
+ * @medium
* @brief test checking whether account is ready for encryption,
*/
function testUserIsReady() {
@@ -159,6 +162,7 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase {
// }
/**
+ * @medium
* @brief test checking whether account is not ready for encryption,
*/
function testIsLegacyUser() {
@@ -186,6 +190,9 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase {
$this->assertEquals($this->legacyKey, \OC::$session->get('legacyKey'));
}
+ /**
+ * @medium
+ */
function testRecoveryEnabledForUser() {
$util = new Encryption\Util($this->view, $this->userId);
@@ -206,6 +213,9 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase {
}
+ /**
+ * @medium
+ */
function testGetUidAndFilename() {
\OC_User::setUserId(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_USER1);
@@ -232,6 +242,9 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase {
$this->view->unlink($this->userId . '/files/' . $filename);
}
+ /**
+ * @medium
+ */
function testIsSharedPath() {
$sharedPath = '/user1/files/Shared/test';
$path = '/user1/files/test';
@@ -241,6 +254,9 @@ class Test_Encryption_Util extends \PHPUnit_Framework_TestCase {
$this->assertFalse($this->util->isSharedPath($path));
}
+ /**
+ * @large
+ */
function testEncryptLegacyFiles() {
\Test_Encryption_Util::loginHelper(\Test_Encryption_Util::TEST_ENCRYPTION_UTIL_LEGACY_USER);
diff --git a/apps/files_external/ajax/addRootCertificate.php b/apps/files_external/ajax/addRootCertificate.php
index 43fd6752c4a..ae349bfcd3a 100644
--- a/apps/files_external/ajax/addRootCertificate.php
+++ b/apps/files_external/ajax/addRootCertificate.php
@@ -29,8 +29,12 @@ if ($isValid == false) {
// add the certificate if it could be verified
if ( $isValid ) {
+ // disable proxy to prevent multiple fopen calls
+ $proxyStatus = \OC_FileProxy::$enabled;
+ \OC_FileProxy::$enabled = false;
$view->file_put_contents($filename, $data);
OC_Mount_Config::createCertificateBundle();
+ \OC_FileProxy::$enabled = $proxyStatus;
} else {
OCP\Util::writeLog('files_external',
'Couldn\'t import SSL root certificate ('.$filename.'), allowed formats: PEM and DER',
diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js
index ac408786ff6..3e605c59a93 100644
--- a/apps/files_external/js/settings.js
+++ b/apps/files_external/js/settings.js
@@ -88,7 +88,7 @@ OC.MountConfig={
url: OC.filePath('files_external', 'ajax', 'removeMountPoint.php'),
data: {
mountPoint: mountPoint,
- class: backendClass,
+ 'class': backendClass,
classOptions: classOptions,
mountType: mountType,
applicable: applicable,
@@ -103,7 +103,7 @@ OC.MountConfig={
url: OC.filePath('files_external', 'ajax', 'removeMountPoint.php'),
data: {
mountPoint: mountPoint,
- class: backendClass,
+ 'class': backendClass,
classOptions: classOptions,
mountType: mountType,
applicable: applicable,
@@ -247,15 +247,18 @@ $(document).ready(function() {
OC.MountConfig.saveStorage($(this).parent().parent());
});
+ $('#sslCertificate').on('click', 'td.remove>img', function() {
+ var $tr = $(this).parent().parent();
+ var row = this.parentNode.parentNode;
+ $.post(OC.filePath('files_external', 'ajax', 'removeRootCertificate.php'), {cert: row.id});
+ $tr.remove();
+ return true;
+ });
+
$('#externalStorage').on('click', 'td.remove>img', function() {
var tr = $(this).parent().parent();
var mountPoint = $(tr).find('.mountPoint input').val();
- if ( ! mountPoint) {
- var row=this.parentNode.parentNode;
- $.post(OC.filePath('files_external', 'ajax', 'removeRootCertificate.php'), { cert: row.id });
- $(tr).remove();
- return true;
- }
+
if ($('#externalStorage').data('admin') === true) {
var isPersonal = false;
var multiselect = $(tr).find('.chzn-select').val();
diff --git a/apps/files_external/l10n/sv.php b/apps/files_external/l10n/sv.php
index 45d3589228f..80e68ab6e06 100644
--- a/apps/files_external/l10n/sv.php
+++ b/apps/files_external/l10n/sv.php
@@ -6,6 +6,7 @@
"Error configuring Google Drive storage" => "Fel vid konfigurering av Google Drive",
"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Varning:</b> \"smb-klienten\" är inte installerad. Montering av CIFS/SMB delningar är inte möjligt. Kontakta din systemadministratör för att få den installerad.",
"<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>Varning:</b> Stöd för FTP i PHP är inte aktiverat eller installerat. Montering av FTP-delningar är inte möjligt. Kontakta din systemadministratör för att få det installerat.",
+"<b>Warning:</b> The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "<b>Varning:<b> Curl-stöd i PHP är inte aktiverat eller installerat. Montering av ownCloud / WebDAV eller GoogleDrive är inte möjligt. Vänligen be din administratör att installera det.",
"External Storage" => "Extern lagring",
"Folder name" => "Mappnamn",
"External storage" => "Extern lagring",
diff --git a/apps/files_external/l10n/zh_CN.GB2312.php b/apps/files_external/l10n/zh_CN.GB2312.php
index c74323db175..47298f8007d 100644
--- a/apps/files_external/l10n/zh_CN.GB2312.php
+++ b/apps/files_external/l10n/zh_CN.GB2312.php
@@ -6,6 +6,7 @@
"Error configuring Google Drive storage" => "配置 Google Drive 存储失败",
"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>注意:</b>“SMB客户端”未安装。CIFS/SMB分享不可用。请向您的系统管理员请求安装该客户端。",
"<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>注意:</b>PHP的FTP支持尚未启用或未安装。FTP分享不可用。请向您的系统管理员请求安装。",
+"<b>Warning:</b> The Curl support in PHP is not enabled or installed. Mounting of ownCloud / WebDAV or GoogleDrive is not possible. Please ask your system administrator to install it." => "<b>警告:</b> PHP 的 Curl 支持没有安装或打开。挂载 ownCloud、WebDAV 或 Google Drive 的功能将不可用。请询问您的系统管理员去安装它。",
"External Storage" => "外部存储",
"Folder name" => "文件夹名",
"External storage" => "外部存储",
diff --git a/apps/files_external/lib/smb.php b/apps/files_external/lib/smb.php
index 655c3c9a816..81a6c956385 100644
--- a/apps/files_external/lib/smb.php
+++ b/apps/files_external/lib/smb.php
@@ -57,12 +57,22 @@ class SMB extends \OC\Files\Storage\StreamWrapper{
public function stat($path) {
if ( ! $path and $this->root=='/') {//mtime doesn't work for shares
- $mtime=$this->shareMTime();
$stat=stat($this->constructUrl($path));
+ if (empty($stat)) {
+ return false;
+ }
+ $mtime=$this->shareMTime();
$stat['mtime']=$mtime;
return $stat;
} else {
- return stat($this->constructUrl($path));
+ $stat = stat($this->constructUrl($path));
+
+ // smb4php can return an empty array if the connection could not be established
+ if (empty($stat)) {
+ return false;
+ }
+
+ return $stat;
}
}
diff --git a/apps/files_external/tests/config.php b/apps/files_external/tests/config.php
index 1d4f30c713d..bac594b485f 100644
--- a/apps/files_external/tests/config.php
+++ b/apps/files_external/tests/config.php
@@ -1,4 +1,13 @@
<?php
+
+// in case there are private configurations in the users home -> use them
+$privateConfigFile = $_SERVER['HOME'] . '/owncloud-extfs-test-config.php';
+if (file_exists($privateConfigFile)) {
+ $config = include($privateConfigFile);
+ return $config;
+}
+
+// this is now more a template now for your private configurations
return array(
'ftp'=>array(
'run'=>false,
diff --git a/apps/files_sharing/l10n/lt_LT.php b/apps/files_sharing/l10n/lt_LT.php
index 96ab48cd2c5..40ed115599f 100644
--- a/apps/files_sharing/l10n/lt_LT.php
+++ b/apps/files_sharing/l10n/lt_LT.php
@@ -1,6 +1,9 @@
<?php $TRANSLATIONS = array(
"Password" => "Slaptažodis",
"Submit" => "Išsaugoti",
+"%s shared the folder %s with you" => "%s pasidalino su jumis %s aplanku",
+"%s shared the file %s with you" => "%s pasidalino su jumis %s failu",
"Download" => "Atsisiųsti",
+"No preview available for" => "Peržiūra nėra galima",
"web services under your control" => "jūsų valdomos web paslaugos"
);
diff --git a/apps/files_trashbin/l10n/bg_BG.php b/apps/files_trashbin/l10n/bg_BG.php
index 288518e1a41..1e0953b013a 100644
--- a/apps/files_trashbin/l10n/bg_BG.php
+++ b/apps/files_trashbin/l10n/bg_BG.php
@@ -1,5 +1,5 @@
<?php $TRANSLATIONS = array(
-"Couldn't delete %s permanently" => "Невъзможно изтриване на %s завинаги",
+"Couldn't delete %s permanently" => "Невъзможно перманентното изтриване на %s",
"Couldn't restore %s" => "Невъзможно възтановяване на %s",
"perform restore operation" => "извършване на действие по възстановяване",
"Error" => "Грешка",
diff --git a/apps/files_trashbin/l10n/he.php b/apps/files_trashbin/l10n/he.php
index e31fdb952ea..853d4e1925a 100644
--- a/apps/files_trashbin/l10n/he.php
+++ b/apps/files_trashbin/l10n/he.php
@@ -1,17 +1,18 @@
<?php $TRANSLATIONS = array(
-"Couldn't delete %s permanently" => "בלתי אפשרי למחוק את %s לצמיתות",
-"Couldn't restore %s" => "בלתי אפשרי לשחזר את %s",
-"perform restore operation" => "בצע פעולת שחזור",
+"Couldn't delete %s permanently" => "לא ניתן למחוק את %s לצמיתות",
+"Couldn't restore %s" => "לא ניתן לשחזר את %s",
+"perform restore operation" => "ביצוע פעולת שחזור",
"Error" => "שגיאה",
-"delete file permanently" => "מחק קובץ לצמיתות",
-"Delete permanently" => "מחק לצמיתות",
+"delete file permanently" => "מחיקת קובץ לצמיתות",
+"Delete permanently" => "מחיקה לצמיתות",
"Name" => "שם",
"Deleted" => "נמחק",
"1 folder" => "תיקייה אחת",
"{count} folders" => "{count} תיקיות",
"1 file" => "קובץ אחד",
"{count} files" => "{count} קבצים",
-"Nothing in here. Your trash bin is empty!" => "שום דבר כאן. סל המחזור שלך ריק!",
-"Restore" => "שחזר",
-"Delete" => "מחיקה"
+"Nothing in here. Your trash bin is empty!" => "אין כאן שום דבר. סל המיחזור שלך ריק!",
+"Restore" => "שחזור",
+"Delete" => "מחיקה",
+"Deleted Files" => "קבצים שנמחקו"
);
diff --git a/apps/files_trashbin/l10n/lt_LT.php b/apps/files_trashbin/l10n/lt_LT.php
index 011de161e42..7df63bd7f28 100644
--- a/apps/files_trashbin/l10n/lt_LT.php
+++ b/apps/files_trashbin/l10n/lt_LT.php
@@ -1,9 +1,18 @@
<?php $TRANSLATIONS = array(
+"Couldn't delete %s permanently" => "Nepavyko negrįžtamai ištrinti %s",
+"Couldn't restore %s" => "Nepavyko atkurti %s",
+"perform restore operation" => "atkurti",
"Error" => "Klaida",
+"delete file permanently" => "failą ištrinti negrįžtamai",
+"Delete permanently" => "Ištrinti negrįžtamai",
"Name" => "Pavadinimas",
+"Deleted" => "Ištrinti",
"1 folder" => "1 aplankalas",
"{count} folders" => "{count} aplankalai",
"1 file" => "1 failas",
"{count} files" => "{count} failai",
-"Delete" => "Ištrinti"
+"Nothing in here. Your trash bin is empty!" => "Nieko nėra. Jūsų šiukšliadėžė tuščia!",
+"Restore" => "Atstatyti",
+"Delete" => "Ištrinti",
+"Deleted Files" => "Ištrinti failai"
);
diff --git a/apps/files_versions/l10n/he.php b/apps/files_versions/l10n/he.php
index ad2e261d539..577389eb081 100644
--- a/apps/files_versions/l10n/he.php
+++ b/apps/files_versions/l10n/he.php
@@ -1,3 +1,11 @@
<?php $TRANSLATIONS = array(
-"Versions" => "גרסאות"
+"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" => "לא צוין נתיב",
+"Versions" => "גרסאות",
+"Revert a file to a previous version by clicking on its revert button" => "ניתן להחזיר קובץ לגרסה קודמת על ידי לחיצה על לחצן ההחזרה שלו"
);
diff --git a/apps/files_versions/l10n/sv.php b/apps/files_versions/l10n/sv.php
index bcd21bc599c..83170976309 100644
--- a/apps/files_versions/l10n/sv.php
+++ b/apps/files_versions/l10n/sv.php
@@ -7,5 +7,5 @@
"No old versions available" => "Inga gamla versioner finns tillgängliga",
"No path specified" => "Ingen sökväg angiven",
"Versions" => "Versioner",
-"Revert a file to a previous version by clicking on its revert button" => "Återställ en fil till en tidigare version genom att klicka på knappen"
+"Revert a file to a previous version by clicking on its revert button" => "Återställ en fil till en tidigare version genom att klicka på återställningsknappen"
);
diff --git a/apps/user_ldap/appinfo/app.php b/apps/user_ldap/appinfo/app.php
index 81eaa0404b7..593e846bc03 100644
--- a/apps/user_ldap/appinfo/app.php
+++ b/apps/user_ldap/appinfo/app.php
@@ -49,7 +49,7 @@ $entry = array(
'name' => 'LDAP'
);
-OCP\Backgroundjob::addRegularTask('OCA\user_ldap\lib\Jobs', 'updateGroups');
+OCP\Backgroundjob::registerJob('OCA\user_ldap\lib\Jobs');
if(OCP\App::isEnabled('user_webdavauth')) {
OCP\Util::writeLog('user_ldap',
'user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour',
diff --git a/apps/user_ldap/js/settings.js b/apps/user_ldap/js/settings.js
index f47d49cf222..52d5dbc48d9 100644
--- a/apps/user_ldap/js/settings.js
+++ b/apps/user_ldap/js/settings.js
@@ -14,7 +14,7 @@ var LdapConfiguration = {
//deal with Checkboxes
if($(elementID).is('input[type=checkbox]')) {
- if(configvalue === 1) {
+ if(parseInt(configvalue) === 1) {
$(elementID).attr('checked', 'checked');
} else {
$(elementID).removeAttr('checked');
diff --git a/apps/user_ldap/l10n/cs_CZ.php b/apps/user_ldap/l10n/cs_CZ.php
index dd7373eb690..65c7c76b5d7 100644
--- a/apps/user_ldap/l10n/cs_CZ.php
+++ b/apps/user_ldap/l10n/cs_CZ.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"Failed to clear the mappings." => "Selhalo zrušení mapování.",
"Failed to delete the server configuration" => "Selhalo smazání nastavení serveru",
"The configuration is valid and the connection could be established!" => "Nastavení je v pořádku a spojení bylo navázáno.",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurace je v pořádku, ale spojení selhalo. Zkontrolujte, prosím, nastavení serveru a přihlašovací údaje.",
@@ -7,6 +8,7 @@
"Take over settings from recent server configuration?" => "Převzít nastavení z nedávného nastavení serveru?",
"Keep settings?" => "Ponechat nastavení?",
"Cannot add server configuration" => "Nelze přidat nastavení serveru",
+"mappings cleared" => "mapování zrušeno",
"Success" => "Úspěch",
"Error" => "Chyba",
"Connection test succeeded" => "Test spojení byl úspěšný",
@@ -72,6 +74,13 @@
"Email Field" => "Pole e-mailu",
"User Home Folder Naming Rule" => "Pravidlo pojmenování domovské složky uživatele",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Ponechte prázdné pro uživatelské jméno (výchozí). Jinak uveďte LDAP/AD parametr.",
+"Internal Username" => "Interní uživatelské jméno",
+"Internal Username Attribute:" => "Atribut interního uživatelského jména:",
+"Override UUID detection" => "Nastavit ručně UUID atribut",
+"UUID Attribute:" => "Atribut UUID:",
+"Username-LDAP User Mapping" => "Mapování uživatelských jmen z LDAPu",
+"Clear Username-LDAP User Mapping" => "Zrušit mapování uživatelských jmen LDAPu",
+"Clear Groupname-LDAP Group Mapping" => "Zrušit mapování názvů skupin LDAPu",
"Test Configuration" => "Vyzkoušet nastavení",
"Help" => "Nápověda"
);
diff --git a/apps/user_ldap/l10n/de_DE.php b/apps/user_ldap/l10n/de_DE.php
index e22c5b5bdd9..8aa64477e41 100644
--- a/apps/user_ldap/l10n/de_DE.php
+++ b/apps/user_ldap/l10n/de_DE.php
@@ -74,6 +74,8 @@
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Ohne Eingabe wird der Benutzername (Standard) verwendet. Anderenfalls tragen Sie bitte ein LDAP/AD-Attribut ein.",
"Internal Username" => "Interner Benutzername",
"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder in ownCloud. It is also a port of remote URLs, for instance for all *DAV services. With this setting, the default behaviour can be overriden. To achieve a similar behaviour as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behaviour. Changes will have effect only on newly mapped (added) LDAP users." => "Standardmäßig wird der interne Benutzername mittels des UUID-Attributes erzeugt. Dies stellt sicher, dass der Benutzername einzigartig ist und keinerlei Zeichen konvertiert werden müssen. Der interne Benutzername unterliegt Beschränkungen, die nur die nachfolgenden Zeichen erlauben: [ a-zA-Z0-9_.@- ]. Andere Zeichenwerden mittels ihrer korrespondierenden Zeichen ersetzt oder einfach ausgelassen. Bei Übereinstimmungen wird ein Zähler hinzugefügt bzw. der Zähler um einen Wert erhöht. Der interne Benutzername wird benutzt, um einen Benutzer intern zu identifizieren. Es ist ebenso der standardmäßig vorausgewählte Namen des Heimatverzeichnisses in ownCloud. Es dient weiterhin als Port für Remote-URLs - zum Beispiel für alle *DAV-Dienste Mit dieser Einstellung kann das Standardverhalten überschrieben werden. Um ein ähnliches Verhalten wie vor ownCloud 5 zu erzielen, fügen Sie das anzuzeigende Attribut des Benutzernamens in das nachfolgende Feld ein. Lassen Sie dies hingegen für das Standardverhalten leer. Die Änderungen werden sich einzig und allein nur auf neu gemappte (hinzugefügte) LDAP-Benutzer auswirken.",
+"Override UUID detection" => "UUID-Erkennung überschreiben",
+"UUID Attribute:" => "UUID-Attribut:",
"Test Configuration" => "Testkonfiguration",
"Help" => "Hilfe"
);
diff --git a/apps/user_ldap/l10n/hu_HU.php b/apps/user_ldap/l10n/hu_HU.php
index a06d0bd5355..361ae5e0403 100644
--- a/apps/user_ldap/l10n/hu_HU.php
+++ b/apps/user_ldap/l10n/hu_HU.php
@@ -75,6 +75,12 @@
"User Home Folder Naming Rule" => "A home könyvtár elérési útvonala",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Hagyja üresen, ha a felhasználónevet kívánja használni. Ellenkező esetben adjon meg egy LDAP/AD attribútumot!",
"Internal Username" => "Belső felhasználónév",
+"Internal Username Attribute:" => "A belső felhasználónév attribútuma:",
+"Override UUID detection" => "Az UUID-felismerés felülbírálása",
+"UUID Attribute:" => "UUID attribútum:",
+"Username-LDAP User Mapping" => "Felhasználó - LDAP felhasználó hozzárendelés",
+"Clear Username-LDAP User Mapping" => "A felhasználó - LDAP felhasználó hozzárendelés törlése",
+"Clear Groupname-LDAP Group Mapping" => "A csoport - LDAP csoport hozzárendelés törlése",
"Test Configuration" => "A beállítások tesztelése",
"Help" => "Súgó"
);
diff --git a/apps/user_ldap/l10n/is.php b/apps/user_ldap/l10n/is.php
index dadac9eedaa..6ea474f56df 100644
--- a/apps/user_ldap/l10n/is.php
+++ b/apps/user_ldap/l10n/is.php
@@ -1,6 +1,8 @@
<?php $TRANSLATIONS = array(
+"Keep settings?" => "Geyma stillingar ?",
"Error" => "Villa",
"Host" => "Netþjónn",
"Password" => "Lykilorð",
+"Test Configuration" => "Prúfa uppsetningu",
"Help" => "Hjálp"
);
diff --git a/apps/user_ldap/l10n/nl.php b/apps/user_ldap/l10n/nl.php
index c935d387ccc..c75aae3ea4f 100644
--- a/apps/user_ldap/l10n/nl.php
+++ b/apps/user_ldap/l10n/nl.php
@@ -75,10 +75,13 @@
"User Home Folder Naming Rule" => "Gebruikers Home map naamgevingsregel",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Laat leeg voor de gebruikersnaam (standaard). Of, specificeer een LDAP/AD attribuut.",
"Internal Username" => "Interne gebruikersnaam",
+"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder in ownCloud. It is also a port of remote URLs, for instance for all *DAV services. With this setting, the default behaviour can be overriden. To achieve a similar behaviour as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behaviour. Changes will have effect only on newly mapped (added) LDAP users." => "Standaard wordt de interne gebruikersnaam aangemaakt op basis van de UUID attribuut. Het zorgt ervoor dat de gebruikersnaam uniek is en dat tekens niet hoeven te worden geconverteerd. De interne gebruikersnaam heeft als beperking dat alleen deze tekens zijn toegestaan​​: [a-zA-Z0-9_.@- ]. Andere tekens worden vervangen door hun ASCII vertaling of gewoonweg weggelaten. Bij identieke namen wordt een nummer toegevoegd of verhoogd. De interne gebruikersnaam wordt gebruikt om een ​​gebruiker binnen het systeem te herkennen. Het is ook de standaardnaam voor de standaardmap van de gebruiker in ownCloud. Het is ook een vertaling voor externe URL's, bijvoorbeeld voor alle * DAV diensten. Met deze instelling kan het standaardgedrag worden overschreven. Om een soortgelijk gedrag te bereiken als van voor ownCloud 5, voer het gebruikersweergavenaam attribuut in in het volgende veld. Laat het leeg voor standaard gedrag. Veranderingen worden alleen toegepast op nieuw in kaart gebracht (toegevoegde) LDAP-gebruikers.",
"Internal Username Attribute:" => "Interne gebruikersnaam attribuut:",
"Override UUID detection" => "Negeren UUID detectie",
+"By default, ownCloud autodetects the UUID attribute. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behaviour. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Standaard herkent ownCloud het UUID attribuut automatisch. Het UUID attribuut wordt gebruikt om LDAP-gebruikers en -groepen uniek te identificeren. Ook zal de interne gebruikersnaam worden aangemaakt op basis van het UUID, tenzij dit hierboven anders is aangegeven. U kunt de instelling overschrijven en zelf een waarde voor het attribuut opgeven. U moet ervoor zorgen dat het ingestelde attribuut kan worden opgehaald voor zowel gebruikers als groepen en dat het uniek is. Laat het leeg voor standaard gedrag. Veranderingen worden alleen doorgevoerd op nieuw in kaart gebrachte (toegevoegde) LDAP-gebruikers en-groepen.",
"UUID Attribute:" => "UUID Attribuut:",
"Username-LDAP User Mapping" => "Gebruikersnaam-LDAP gebruikers vertaling",
+"ownCloud uses usernames to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from ownCloud username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found by ownCloud. The internal ownCloud name is used all over in ownCloud. Clearing the Mappings will have leftovers everywhere. Clearing the Mappings is not configuration sensitive, it affects all LDAP configurations! Do never clear the mappings in a production environment. Only clear mappings in a testing or experimental stage." => "ownCloud maakt gebruik van gebruikersnamen om (meta) data op te slaan en toe te wijzen. Om gebruikers uniek te identificeren, zal elke LDAP-gebruiker ook een interne gebruikersnaam krijgen. Dit vereist een mapping van de ownCloud gebruikersnaam naar een ​​LDAP-gebruiker. De gecreëerde gebruikersnaam is gekoppeld aan de UUID van de LDAP-gebruiker. Ook de 'DN' wordt gecached om het aantal LDAP transacties te verminderen, maar deze wordt niet gebruikt voor identificatie. Als de DN verandert, zullen de veranderingen worden gevonden door ownCloud. De interne ownCloud naam wordt overal in ownCloud gebruikt. Wissen van de koppeling zal overal overblijfsel laten staan. Het wissen van Mappings is niet configuratiegevoelig, maar het raakt wel alle LDAP instellingen! Zorg ervoor dat deze Mappings nooit in een productieomgeving plaatsvinden. Maak ze alleen leeg in een test-of ontwikkelomgeving.",
"Clear Username-LDAP User Mapping" => "Leegmaken Gebruikersnaam-LDAP gebruikers vertaling",
"Clear Groupname-LDAP Group Mapping" => "Leegmaken Groepsnaam-LDAP groep vertaling",
"Test Configuration" => "Test configuratie",
diff --git a/apps/user_ldap/l10n/pl.php b/apps/user_ldap/l10n/pl.php
index 7edfe0919eb..5495ab99404 100644
--- a/apps/user_ldap/l10n/pl.php
+++ b/apps/user_ldap/l10n/pl.php
@@ -75,6 +75,7 @@
"User Home Folder Naming Rule" => "Reguły nazewnictwa folderu domowego użytkownika",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Pozostaw puste dla user name (domyślnie). W przeciwnym razie podaj atrybut LDAP/AD.",
"Internal Username" => "Wewnętrzna nazwa użytkownika",
+"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder in ownCloud. It is also a port of remote URLs, for instance for all *DAV services. With this setting, the default behaviour can be overriden. To achieve a similar behaviour as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behaviour. Changes will have effect only on newly mapped (added) LDAP users." => "Domyślnie, wewnętrzna nazwa użytkownika zostanie utworzona z atrybutu UUID, ang. Universally unique identifier - Unikalny identyfikator użytkownika. To daje pewność, że nazwa użytkownika jest niepowtarzalna a znaki nie muszą być konwertowane. Wewnętrzna nazwa użytkownika dopuszcza jedynie znaki: [ a-zA-Z0-9_.@- ]. Pozostałe znaki zamieniane są na ich odpowiedniki ASCII lub po prostu pomijane. W przypadku, gdy nazwa się powtarza na końcu dodawana / zwiększana jest cyfra. Wewnętrzna nazwa użytkownika służy do wewnętrznej identyfikacji użytkownika. Jest to również domyślna nazwa głównego folderu w ownCloud. Jest to również klucz zdalnego URL, na przykład dla wszystkich usług *DAV. Dzięki temu ustawieniu można modyfikować domyślne zachowania. Aby osiągnąć podobny efekt jak w ownCloud 5 wpisz atrybut nazwy użytkownika w poniższym polu. Pozostaw puste dla domyślnego zachowania. Zmiany będą miały wpływ tylko na nowo stworzonych (dodane) użytkowników LDAP.",
"Internal Username Attribute:" => "Wewnętrzny atrybut nazwy uzżytkownika:",
"Override UUID detection" => "Zastąp wykrywanie UUID",
"UUID Attribute:" => "Atrybuty UUID:",
diff --git a/apps/user_ldap/l10n/pt_PT.php b/apps/user_ldap/l10n/pt_PT.php
index ed1e0f376db..308fd34760a 100644
--- a/apps/user_ldap/l10n/pt_PT.php
+++ b/apps/user_ldap/l10n/pt_PT.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"Failed to clear the mappings." => "Falhou a limpar os mapas",
"Failed to delete the server configuration" => "Erro ao eliminar as configurações do servidor",
"The configuration is valid and the connection could be established!" => "A configuração está correcta e foi possível estabelecer a ligação!",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "A configuração está correcta, mas não foi possível estabelecer o \"laço\", por favor, verifique as configurações do servidor e as credenciais.",
@@ -7,6 +8,7 @@
"Take over settings from recent server configuration?" => "Assumir as configurações da configuração do servidor mais recente?",
"Keep settings?" => "Manter as definições?",
"Cannot add server configuration" => "Não foi possível adicionar as configurações do servidor.",
+"mappings cleared" => "Mapas limpos",
"Success" => "Sucesso",
"Error" => "Erro",
"Connection test succeeded" => "Teste de conecção passado com sucesso.",
@@ -72,6 +74,13 @@
"Email Field" => "Campo de email",
"User Home Folder Naming Rule" => "Regra da pasta inicial do utilizador",
"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.",
+"Internal Username" => "Nome de utilizador interno",
+"Internal Username Attribute:" => "Atributo do nome de utilizador interno",
+"Override UUID detection" => "Passar a detecção do UUID",
+"UUID Attribute:" => "Atributo UUID:",
+"Username-LDAP User Mapping" => "Mapeamento do utilizador LDAP",
+"Clear Username-LDAP User Mapping" => "Limpar mapeamento do utilizador-LDAP",
+"Clear Groupname-LDAP Group Mapping" => "Limpar o mapeamento do nome de grupo LDAP",
"Test Configuration" => "Testar a configuração",
"Help" => "Ajuda"
);
diff --git a/apps/user_ldap/l10n/ru.php b/apps/user_ldap/l10n/ru.php
index eed6d373b9f..0573be3993f 100644
--- a/apps/user_ldap/l10n/ru.php
+++ b/apps/user_ldap/l10n/ru.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"Failed to clear the mappings." => "Не удалось очистить соотвествия.",
"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." => "Конфигурация верна, но операция подключения завершилась неудачно. Пожалуйста, проверьте настройки сервера и учетные данные.",
@@ -7,6 +8,7 @@
"Take over settings from recent server configuration?" => "Принять настройки из последней конфигурации сервера?",
"Keep settings?" => "Сохранить настройки?",
"Cannot add server configuration" => "Не получилось добавить конфигурацию сервера",
+"mappings cleared" => "Соответствия очищены",
"Success" => "Успешно",
"Error" => "Ошибка",
"Connection test succeeded" => "Проверка соединения удалась",
@@ -72,6 +74,13 @@
"Email Field" => "Поле адресса эллектронной почты",
"User Home Folder Naming Rule" => "Правило именования Домашней Папки Пользователя",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Оставьте имя пользователя пустым (по умолчанию). Иначе укажите атрибут LDAP/AD.",
+"Internal Username" => "Внутреннее имя пользователя",
+"Internal Username Attribute:" => "Аттрибут для внутреннего имени:",
+"Override UUID detection" => "Переопределить нахождение UUID",
+"UUID Attribute:" => "Аттрибут для UUID:",
+"Username-LDAP User Mapping" => "Соответствия Имя-Пользователь LDAP",
+"Clear Username-LDAP User Mapping" => "Очистить соответствия Имя-Пользователь LDAP",
+"Clear Groupname-LDAP Group Mapping" => "Очистить соответствия Группа-Группа LDAP",
"Test Configuration" => "Тестовая конфигурация",
"Help" => "Помощь"
);
diff --git a/apps/user_ldap/l10n/sv.php b/apps/user_ldap/l10n/sv.php
index eb30bd22f01..6ab8a9e5a6e 100644
--- a/apps/user_ldap/l10n/sv.php
+++ b/apps/user_ldap/l10n/sv.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"Failed to clear the mappings." => "Fel vid rensning av mappningar",
"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.",
@@ -7,6 +8,7 @@
"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",
+"mappings cleared" => "mappningar rensade",
"Success" => "Lyckat",
"Error" => "Fel",
"Connection test succeeded" => "Anslutningstestet lyckades",
@@ -72,6 +74,16 @@
"Email Field" => "E-postfält",
"User Home Folder Naming Rule" => "Namnregel för hemkatalog",
"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.",
+"Internal Username" => "Internt Användarnamn",
+"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder in ownCloud. It is also a port of remote URLs, for instance for all *DAV services. With this setting, the default behaviour can be overriden. To achieve a similar behaviour as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behaviour. Changes will have effect only on newly mapped (added) LDAP users." => "Som standard skapas det interna användarnamnet från UUID-attributet. Det säkerställer att användarnamnet är unikt och tecken inte behöver konverteras. Det interna användarnamnet har restriktionerna att endast följande tecken är tillåtna: [ a-zA-Z0-9_.@- ]. Andra tecken blir ersatta av deras motsvarighet i ASCII eller utelämnas helt. En siffra kommer att läggas till eller ökas på vid en kollision. Det interna användarnamnet används för att identifiera användaren internt. Det är även förvalt som användarens användarnamn i ownCloud. Det är även en port för fjärråtkomst, t.ex. för alla *DAV-tjänster. Med denna inställning kan det förvalda beteendet åsidosättas. För att uppnå ett liknande beteende som innan ownCloud 5, ange attributet för användarens visningsnamn i detta fält. Lämna det tomt för förvalt beteende. Ändringarna kommer endast att påverka nyligen mappade (tillagda) LDAP-användare",
+"Internal Username Attribute:" => "Internt Användarnamn Attribut:",
+"Override UUID detection" => "Åsidosätt UUID detektion",
+"By default, ownCloud autodetects the UUID attribute. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behaviour. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Som standard upptäcker ownCloud automatiskt UUID-attributet. Det UUID-attributet används för att utan tvivel identifiera LDAP-användare och grupper. Dessutom kommer interna användarnamn skapas baserat på detta UUID, om inte annat anges ovan. Du kan åsidosätta inställningen och passera ett attribut som du själv väljer. Du måste se till att attributet som du väljer kan hämtas för både användare och grupper och att det är unikt. Lämna det tomt för standard beteende. Förändringar kommer endast att påverka nyligen mappade (tillagda) LDAP-användare och grupper.",
+"UUID Attribute:" => "UUID Attribut:",
+"Username-LDAP User Mapping" => "Användarnamn-LDAP User Mapping",
+"ownCloud uses usernames to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from ownCloud username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found by ownCloud. The internal ownCloud name is used all over in ownCloud. Clearing the Mappings will have leftovers everywhere. Clearing the Mappings is not configuration sensitive, it affects all LDAP configurations! Do never clear the mappings in a production environment. Only clear mappings in a testing or experimental stage." => "ownCloud använder sig av användarnamn för att lagra och tilldela (meta) data. För att exakt kunna identifiera och känna igen användare, kommer varje LDAP-användare ha ett internt användarnamn. Detta kräver en mappning från ownCloud-användarnamn till LDAP-användare. Det skapade användarnamnet mappas till UUID för LDAP-användaren. Dessutom cachas DN samt minska LDAP-interaktionen, men den används inte för identifiering. Om DN förändras, kommer förändringarna hittas av ownCloud. Det interna ownCloud-namnet används överallt i ownCloud. Om du rensar/raderar mappningarna kommer att lämna referenser överallt i systemet. Men den är inte konfigurationskänslig, den påverkar alla LDAP-konfigurationer! Rensa/radera aldrig mappningarna i en produktionsmiljö. Utan gör detta endast på i testmiljö!",
+"Clear Username-LDAP User Mapping" => "Rensa Användarnamn-LDAP User Mapping",
+"Clear Groupname-LDAP Group Mapping" => "Rensa Gruppnamn-LDAP Group Mapping",
"Test Configuration" => "Testa konfigurationen",
"Help" => "Hjälp"
);
diff --git a/apps/user_ldap/l10n/zh_CN.php b/apps/user_ldap/l10n/zh_CN.php
index 7b8389227ae..675fe4dfc75 100644
--- a/apps/user_ldap/l10n/zh_CN.php
+++ b/apps/user_ldap/l10n/zh_CN.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"Failed to clear the mappings." => "清除映射失败。",
"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." => "配置有效但绑定失败。请检查服务器设置和认证信息。",
@@ -7,6 +8,7 @@
"Take over settings from recent server configuration?" => "从近期的服务器配置中导入设置?",
"Keep settings?" => "保留设置吗?",
"Cannot add server configuration" => "无法添加服务器配置",
+"mappings cleared" => "清除映射",
"Success" => "成功",
"Error" => "错误",
"Connection test succeeded" => "连接测试成功",
@@ -72,6 +74,16 @@
"Email Field" => "电邮字段",
"User Home Folder Naming Rule" => "用户主目录命名规则",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "将用户名称留空(默认)。否则指定一个LDAP/AD属性",
+"Internal Username" => "内部用户名",
+"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder in ownCloud. It is also a port of remote URLs, for instance for all *DAV services. With this setting, the default behaviour can be overriden. To achieve a similar behaviour as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behaviour. Changes will have effect only on newly mapped (added) LDAP users." => "默认情况下内部用户名具有唯一识别属性来确保用户名的唯一性和属性不用转换。内部用户名有严格的字符限制,只允许使用 [ a-zA-Z0-9_.@- ]。其他字符会被ASCII码取代或者被活力。当冲突时会增加或者减少一个数字。内部用户名被用于内部识别用户,同时也作为ownCloud中用户根文件夹的默认名。也作为远程URLs的一部分,比如为了所有的*DAV服务。在这种设置下,默认行为可以被超越。实现一个类似的行为,owncloud 5输入用户的显示名称属性在以下领域之前。让它空着的默认行为。更改只对新映射的影响(增加)的LDAP用户。",
+"Internal Username Attribute:" => "内部用户名属性:",
+"Override UUID detection" => "超越UUID检测",
+"By default, ownCloud autodetects the UUID attribute. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behaviour. Changes will have effect only on newly mapped (added) LDAP users and groups." => "默认ownCloud自动检测UUID属性。UUID属性用来无误的识别LDAP用户和组。同时内部用户名也基于UUID创建,如果没有上述的指定。也可以超越设置直接指定一种属性。但一定要确保指定的属性取得的用户和组是唯一的。默认行为空。变更基于新映射(增加)LDAP用户和组才会生效。",
+"UUID Attribute:" => "UUID属性:",
+"Username-LDAP User Mapping" => "用户名-LDAP用户映射",
+"ownCloud uses usernames to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from ownCloud username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found by ownCloud. The internal ownCloud name is used all over in ownCloud. Clearing the Mappings will have leftovers everywhere. Clearing the Mappings is not configuration sensitive, it affects all LDAP configurations! Do never clear the mappings in a production environment. Only clear mappings in a testing or experimental stage." => "ownCloud使用用户名存储和分配数据(元)。为了准确地识别和确认用户,每个用户都有一个内部用户名。需要从ownCloud用户名映射到LDAP用户。创建的用户名映射到LDAP用户的UUID。此外,DN是缓存以及减少LDAP交互,但它不用于识别。如果DN变化,ownCloud也会变化。内部ownCloud名在ownCloud的各处使用。清除映射将一片混乱。清除映射不是常用的配置,它影响到所有LDAP配置!千万不要在正式环境中清除映射。只有在测试或试验阶段可以清除映射。",
+"Clear Username-LDAP User Mapping" => "清除用户-LDAP用户映射",
+"Clear Groupname-LDAP Group Mapping" => "清除组用户-LDAP级映射",
"Test Configuration" => "测试配置",
"Help" => "帮助"
);
diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php
index 409f3758792..31150a5bec5 100644
--- a/apps/user_ldap/lib/connection.php
+++ b/apps/user_ldap/lib/connection.php
@@ -621,6 +621,10 @@ class Connection {
if(empty($host)) {
return false;
}
+ if(strpos($host, '://') !== false) {
+ //ldap_connect ignores port paramater when URLs are passed
+ $host .= ':' . $port;
+ }
$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)) {
diff --git a/apps/user_ldap/lib/helper.php b/apps/user_ldap/lib/helper.php
index 07d13a806a6..10ed40ebd6a 100644
--- a/apps/user_ldap/lib/helper.php
+++ b/apps/user_ldap/lib/helper.php
@@ -118,7 +118,13 @@ class Helper {
return false;
}
- $query = \OCP\DB::prepare('TRUNCATE '.$table);
+ if(strpos(\OCP\Config::getSystemValue('dbtype'), 'sqlite') !== false) {
+ $query = \OCP\DB::prepare('DELETE FROM '.$table);
+ } else {
+ $query = \OCP\DB::prepare('TRUNCATE '.$table);
+ }
+
+
$res = $query->execute();
if(\OCP\DB::isError($res)) {
diff --git a/apps/user_ldap/lib/jobs.php b/apps/user_ldap/lib/jobs.php
index 094d11db3d5..60ecc0da33d 100644
--- a/apps/user_ldap/lib/jobs.php
+++ b/apps/user_ldap/lib/jobs.php
@@ -23,20 +23,22 @@
namespace OCA\user_ldap\lib;
-class Jobs {
+class Jobs extends \OC\BackgroundJob\TimedJob {
static private $groupsFromDB;
static private $groupBE;
static private $connector;
+ public function __construct(){
+ $this->interval = self::getRefreshInterval();
+ }
+
+ public function run($argument){
+ Jobs::updateGroups();
+ }
+
static public function updateGroups() {
\OCP\Util::writeLog('user_ldap', 'Run background job "updateGroups"', \OCP\Util::DEBUG);
- $lastUpdate = \OCP\Config::getAppValue('user_ldap', 'bgjUpdateGroupsLastRun', 0);
- if((time() - $lastUpdate) < self::getRefreshInterval()) {
- \OCP\Util::writeLog('user_ldap', 'bgJ "updateGroups" – last run too fresh, aborting.', \OCP\Util::DEBUG);
- //komm runter Werner die Maurer geben ein aus
- return;
- }
$knownGroups = array_keys(self::getKnownGroups());
$actualGroups = self::getGroupBE()->getGroups();
@@ -45,7 +47,6 @@ class Jobs {
\OCP\Util::writeLog('user_ldap',
'bgJ "updateGroups" – groups do not seem to be configured properly, aborting.',
\OCP\Util::INFO);
- \OCP\Config::setAppValue('user_ldap', 'bgjUpdateGroupsLastRun', time());
return;
}
@@ -53,8 +54,6 @@ class Jobs {
self::handleCreatedGroups(array_diff($actualGroups, $knownGroups));
self::handleRemovedGroups(array_diff($knownGroups, $actualGroups));
- \OCP\Config::setAppValue('user_ldap', 'bgjUpdateGroupsLastRun', time());
-
\OCP\Util::writeLog('user_ldap', 'bgJ "updateGroups" – Finished.', \OCP\Util::DEBUG);
}
diff --git a/apps/user_webdavauth/l10n/he.php b/apps/user_webdavauth/l10n/he.php
new file mode 100644
index 00000000000..9ab6b83bc7c
--- /dev/null
+++ b/apps/user_webdavauth/l10n/he.php
@@ -0,0 +1,5 @@
+<?php $TRANSLATIONS = array(
+"WebDAV Authentication" => "הזדהות מול WebDAV",
+"URL: http://" => "כתובת: 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 תשלח את פרטי המשתמש לכתובת זו. התוסף יבדוק את התגובה ויתרגם את הקודים 401 ו־403 כתגובה לציון פרטי גישה שגויים ואת כל שאר התגובות כפרטי גישה נכונים."
+);
diff --git a/apps/user_webdavauth/l10n/is.php b/apps/user_webdavauth/l10n/is.php
index 8fe0d974b32..bb59ef5e445 100644
--- a/apps/user_webdavauth/l10n/is.php
+++ b/apps/user_webdavauth/l10n/is.php
@@ -1,3 +1,4 @@
<?php $TRANSLATIONS = array(
+"WebDAV Authentication" => "WebDAV Auðkenni",
"URL: http://" => "Vefslóð: http://"
);